summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--3rdparty/libconfig/grammar.c2
-rw-r--r--Hercules-10.sln22
-rw-r--r--Hercules-11.sln16
-rw-r--r--Hercules-12.sln21
-rw-r--r--Hercules.xcodeproj/project.pbxproj254
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_char.xcscheme77
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_login.xcscheme77
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_map.xcscheme (renamed from Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking.xcscheme)15
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/char-server.xcscheme2
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/db2sql.xcscheme2
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/login-server.xcscheme2
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/map-server.xcscheme2
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/mapcache.xcscheme2
-rw-r--r--Hercules.xcodeproj/xcshareddata/xcschemes/sample.xcscheme11
-rw-r--r--conf/battle/battle.conf11
-rw-r--r--conf/battle/feature.conf5
-rw-r--r--conf/battle/homunc.conf2
-rw-r--r--conf/battle/items.conf7
-rw-r--r--conf/battle/misc.conf13
-rw-r--r--conf/battle/monster.conf31
-rw-r--r--conf/battle/skill.conf22
-rw-r--r--conf/inter-server.conf2
-rw-r--r--conf/messages.conf5
-rwxr-xr-xconfigure346
-rw-r--r--configure.in242
-rw-r--r--db/const.txt38
-rw-r--r--db/homunculus_db.txt33
-rw-r--r--db/item_db2.conf21
-rw-r--r--db/mercenary_db.txt4
-rw-r--r--db/mob_db2.txt2
-rw-r--r--db/pet_db.txt9
-rw-r--r--db/pet_db2.txt7
-rw-r--r--db/pre-re/homunculus_db.txt33
-rw-r--r--db/pre-re/item_db.conf259
-rw-r--r--db/pre-re/item_packages.conf82
-rw-r--r--db/pre-re/map_zone_db.conf2
-rw-r--r--db/pre-re/size_fix.txt (renamed from db/size_fix.txt)0
-rw-r--r--db/pre-re/skill_cast_db.txt4
-rw-r--r--db/pre-re/skill_db.txt6
-rw-r--r--db/pre-re/skill_unit_db.txt26
-rw-r--r--db/quest_db.txt18
-rw-r--r--db/re/homunculus_db.txt33
-rw-r--r--db/re/item_db.conf640
-rw-r--r--db/re/item_group.conf39
-rw-r--r--db/re/item_packages.conf82
-rw-r--r--db/re/map_zone_db.conf2
-rw-r--r--db/re/mob_db.txt2595
-rw-r--r--db/re/mob_skill_db.txt14076
-rw-r--r--db/re/size_fix.txt7
-rw-r--r--db/re/skill_cast_db.txt6
-rw-r--r--db/re/skill_db.txt14
-rw-r--r--db/re/skill_unit_db.txt29
-rw-r--r--db/roulette_db.conf77
-rw-r--r--doc/item_db.txt1
-rw-r--r--doc/mob_db_mode_list.txt4
-rw-r--r--doc/permissions.txt4
-rw-r--r--doc/sample/npc_test_quest.txt8
-rw-r--r--doc/script_commands.txt594
-rw-r--r--npc/airports/airships.txt78
-rw-r--r--npc/battleground/bg_common.txt44
-rw-r--r--npc/battleground/flavius/flavius01.txt86
-rw-r--r--npc/battleground/flavius/flavius02.txt90
-rw-r--r--npc/battleground/flavius/flavius_enter.txt292
-rw-r--r--npc/battleground/kvm/kvm01.txt76
-rw-r--r--npc/battleground/kvm/kvm02.txt72
-rw-r--r--npc/battleground/kvm/kvm03.txt76
-rw-r--r--npc/battleground/kvm/kvm_enter.txt16
-rw-r--r--npc/battleground/kvm/kvm_item_pay.txt8
-rw-r--r--npc/battleground/tierra/tierra01.txt70
-rw-r--r--npc/battleground/tierra/tierra02.txt70
-rw-r--r--npc/battleground/tierra/tierra_enter.txt292
-rw-r--r--npc/cities/alberta.txt8
-rw-r--r--npc/cities/aldebaran.txt304
-rw-r--r--npc/cities/amatsu.txt8
-rw-r--r--npc/cities/ayothaya.txt2
-rw-r--r--npc/cities/comodo.txt4
-rw-r--r--npc/cities/geffen.txt6
-rw-r--r--npc/cities/gonryun.txt2
-rw-r--r--npc/cities/jawaii.txt12
-rw-r--r--npc/cities/lighthalzen.txt4
-rw-r--r--npc/cities/lutie.txt36
-rw-r--r--npc/cities/manuk.txt2
-rw-r--r--npc/cities/morocc.txt2
-rw-r--r--npc/cities/niflheim.txt21
-rw-r--r--npc/cities/payon.txt2
-rw-r--r--npc/cities/prontera.txt16
-rw-r--r--npc/cities/rachel.txt2
-rw-r--r--npc/custom/battleground/bg_common.txt84
-rw-r--r--npc/custom/bgqueue/flavius.txt4
-rw-r--r--npc/custom/breeder.txt51
-rw-r--r--npc/custom/etc/blackjack.txt21
-rw-r--r--npc/custom/etc/penal_servitude.txt4
-rw-r--r--npc/custom/etc/quest_warper.txt2
-rw-r--r--npc/custom/events/disguise.txt5
-rw-r--r--npc/custom/jobmaster.txt4
-rw-r--r--npc/custom/quests/hunting_missions.txt18
-rw-r--r--npc/dev/test.txt4
-rw-r--r--npc/events/MemorialDay_2008.txt26
-rw-r--r--npc/events/RWC_2011.txt64
-rw-r--r--npc/events/RWC_2012.txt70
-rw-r--r--npc/events/StPatrick_2008.txt8
-rw-r--r--npc/events/bossnia.txt2
-rw-r--r--npc/events/children_week.txt4
-rw-r--r--npc/events/christmas_2005.txt56
-rw-r--r--npc/events/christmas_2008.txt26
-rw-r--r--npc/events/dumplingfestival.txt72
-rw-r--r--npc/events/easter_2008.txt28
-rw-r--r--npc/events/easter_2010.txt178
-rw-r--r--npc/events/event_skill_reset.txt101
-rw-r--r--npc/events/gdevent_aru.txt245
-rw-r--r--npc/events/gdevent_sch.txt251
-rw-r--r--npc/events/god_se_festival.txt12
-rw-r--r--npc/events/halloween_2006.txt20
-rw-r--r--npc/events/halloween_2008.txt338
-rw-r--r--npc/events/halloween_2009.txt86
-rw-r--r--npc/events/lunar_2008.txt16
-rw-r--r--npc/events/nguild/nguild_dunsw.txt2
-rw-r--r--npc/events/nguild/nguild_ev_agit.txt34
-rw-r--r--npc/events/nguild/nguild_flags.txt2
-rw-r--r--npc/events/nguild/nguild_kafras.txt6
-rw-r--r--npc/events/nguild/nguild_managers.txt123
-rw-r--r--npc/events/nguild/nguild_treas.txt18
-rw-r--r--npc/events/twintowers.txt79
-rw-r--r--npc/events/valentinesday_2009.txt22
-rw-r--r--npc/events/valentinesday_2012.txt22
-rw-r--r--npc/events/whiteday.txt181
-rw-r--r--npc/events/xmas.txt16
-rw-r--r--npc/guild/agit_controller.txt2
-rw-r--r--npc/guild/agit_main.txt208
-rw-r--r--npc/guild/aldeg_cas01.txt2
-rw-r--r--npc/guild/aldeg_cas02.txt2
-rw-r--r--npc/guild/aldeg_cas03.txt2
-rw-r--r--npc/guild/aldeg_cas04.txt2
-rw-r--r--npc/guild/aldeg_cas05.txt2
-rw-r--r--npc/guild/gefg_cas01.txt2
-rw-r--r--npc/guild/gefg_cas02.txt2
-rw-r--r--npc/guild/gefg_cas03.txt2
-rw-r--r--npc/guild/gefg_cas04.txt2
-rw-r--r--npc/guild/gefg_cas05.txt2
-rw-r--r--npc/guild/payg_cas01.txt2
-rw-r--r--npc/guild/payg_cas02.txt2
-rw-r--r--npc/guild/payg_cas03.txt2
-rw-r--r--npc/guild/payg_cas04.txt2
-rw-r--r--npc/guild/payg_cas05.txt2
-rw-r--r--npc/guild/prtg_cas01.txt2
-rw-r--r--npc/guild/prtg_cas02.txt2
-rw-r--r--npc/guild/prtg_cas03.txt2
-rw-r--r--npc/guild/prtg_cas04.txt2
-rw-r--r--npc/guild/prtg_cas05.txt2
-rw-r--r--npc/guild/trs_rp.txt2
-rw-r--r--npc/guild2/agit_main_se.txt214
-rw-r--r--npc/instances/EndlessTower.txt136
-rw-r--r--npc/instances/NydhoggsNest.txt122
-rw-r--r--npc/instances/OrcsMemory.txt76
-rw-r--r--npc/instances/SealedShrine.txt118
-rw-r--r--npc/jobs/1-1e/gunslinger.txt12
-rw-r--r--npc/jobs/1-1e/ninja.txt10
-rw-r--r--npc/jobs/1-1e/taekwon.txt10
-rw-r--r--npc/jobs/2-1/assassin.txt188
-rw-r--r--npc/jobs/2-1/blacksmith.txt130
-rw-r--r--npc/jobs/2-1/hunter.txt90
-rw-r--r--npc/jobs/2-1/knight.txt126
-rw-r--r--npc/jobs/2-1/priest.txt50
-rw-r--r--npc/jobs/2-1/wizard.txt148
-rw-r--r--npc/jobs/2-1a/AssassinCross.txt4
-rw-r--r--npc/jobs/2-1a/HighPriest.txt4
-rw-r--r--npc/jobs/2-1a/HighWizard.txt4
-rw-r--r--npc/jobs/2-1a/LordKnight.txt4
-rw-r--r--npc/jobs/2-1a/Sniper.txt4
-rw-r--r--npc/jobs/2-1a/WhiteSmith.txt4
-rw-r--r--npc/jobs/2-1e/StarGladiator.txt54
-rw-r--r--npc/jobs/2-2/alchemist.txt168
-rw-r--r--npc/jobs/2-2/bard.txt80
-rw-r--r--npc/jobs/2-2/crusader.txt130
-rw-r--r--npc/jobs/2-2/dancer.txt106
-rw-r--r--npc/jobs/2-2/monk.txt144
-rw-r--r--npc/jobs/2-2/rogue.txt140
-rw-r--r--npc/jobs/2-2/sage.txt306
-rw-r--r--npc/jobs/2-2a/Champion.txt4
-rw-r--r--npc/jobs/2-2a/Clown.txt4
-rw-r--r--npc/jobs/2-2a/Gypsy.txt4
-rw-r--r--npc/jobs/2-2a/Paladin.txt4
-rw-r--r--npc/jobs/2-2a/Professor.txt4
-rw-r--r--npc/jobs/2-2a/Stalker.txt4
-rw-r--r--npc/jobs/2-2e/SoulLinker.txt30
-rw-r--r--npc/jobs/novice/supernovice.txt4
-rw-r--r--npc/jobs/valkyrie.txt18
-rw-r--r--npc/kafras/dts_warper.txt155
-rw-r--r--npc/kafras/functions_kafras.txt2
-rw-r--r--npc/kafras/kafras.txt2
-rw-r--r--npc/merchants/advanced_refiner.txt12
-rw-r--r--npc/merchants/alchemist.txt4
-rw-r--r--npc/merchants/cashheadgear_dye.txt38
-rw-r--r--npc/merchants/clothes_dyer.txt14
-rw-r--r--npc/merchants/coin_exchange.txt14
-rw-r--r--npc/merchants/dye_maker.txt38
-rw-r--r--npc/merchants/elemental_trader.txt14
-rw-r--r--npc/merchants/enchan_arm.txt54
-rw-r--r--npc/merchants/gemstone.txt2
-rw-r--r--npc/merchants/hair_dyer.txt60
-rw-r--r--npc/merchants/hair_style.txt36
-rw-r--r--npc/merchants/hd_refine.txt36
-rw-r--r--npc/merchants/milk_trader.txt6
-rw-r--r--npc/merchants/novice_exchange.txt2
-rw-r--r--npc/merchants/old_pharmacist.txt10
-rw-r--r--npc/merchants/quivers.txt8
-rw-r--r--npc/merchants/refine.txt146
-rw-r--r--npc/merchants/renters.txt36
-rw-r--r--npc/merchants/socket_enchant.txt2
-rw-r--r--npc/merchants/socket_enchant2.txt4
-rw-r--r--npc/other/CashShop_Functions.txt4
-rw-r--r--npc/other/Global_Functions.txt166
-rw-r--r--npc/other/acolyte_warp.txt16
-rw-r--r--npc/other/arena/arena_aco.txt196
-rw-r--r--npc/other/arena/arena_lvl50.txt41
-rw-r--r--npc/other/arena/arena_lvl60.txt41
-rw-r--r--npc/other/arena/arena_lvl70.txt41
-rw-r--r--npc/other/arena/arena_lvl80.txt41
-rw-r--r--npc/other/arena/arena_party.txt93
-rw-r--r--npc/other/arena/arena_point.txt16
-rw-r--r--npc/other/arena/arena_room.txt76
-rw-r--r--npc/other/books.txt66
-rw-r--r--npc/other/card_trader.txt24
-rw-r--r--npc/other/comodo_gambling.txt498
-rw-r--r--npc/other/divorce.txt2
-rw-r--r--npc/other/fortune.txt18
-rw-r--r--npc/other/gm_npcs.txt2
-rw-r--r--npc/other/guildpvp.txt4
-rw-r--r--npc/other/gympass.txt8
-rw-r--r--npc/other/hugel_bingo.txt230
-rw-r--r--npc/other/marriage.txt34
-rw-r--r--npc/other/mercenary_rent.txt43
-rw-r--r--npc/other/monster_race.txt277
-rw-r--r--npc/other/poring_war.txt138
-rw-r--r--npc/other/powernpc.txt30
-rw-r--r--npc/other/pvp.txt16
-rw-r--r--npc/other/turbo_track.txt409
-rw-r--r--npc/pre-re/guides/guides_alberta.txt14
-rw-r--r--npc/pre-re/guides/guides_einbroch.txt28
-rw-r--r--npc/pre-re/guides/guides_geffen.txt14
-rw-r--r--npc/pre-re/guides/guides_hugel.txt10
-rw-r--r--npc/pre-re/guides/guides_izlude.txt14
-rw-r--r--npc/pre-re/guides/guides_lighthalzen.txt14
-rw-r--r--npc/pre-re/guides/guides_louyang.txt2
-rw-r--r--npc/pre-re/guides/guides_morroc.txt14
-rw-r--r--npc/pre-re/guides/guides_payon.txt28
-rw-r--r--npc/pre-re/guides/guides_prontera.txt14
-rw-r--r--npc/pre-re/guides/guides_rachel.txt12
-rw-r--r--npc/pre-re/guides/guides_veins.txt12
-rw-r--r--npc/pre-re/jobs/1-1/acolyte.txt16
-rw-r--r--npc/pre-re/jobs/1-1/archer.txt14
-rw-r--r--npc/pre-re/jobs/1-1/mage.txt68
-rw-r--r--npc/pre-re/jobs/1-1/merchant.txt72
-rw-r--r--npc/pre-re/jobs/1-1/swordman.txt10
-rw-r--r--npc/pre-re/jobs/1-1/thief.txt14
-rw-r--r--npc/pre-re/jobs/novice/novice.txt821
-rw-r--r--npc/pre-re/mobs/dungeons/lhz_dun.txt28
-rw-r--r--npc/pre-re/quests/collection/quest_alligator.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_caramel.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_coco.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_creamy.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_demonpungus.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_disguiseloliruri.txt8
-rw-r--r--npc/pre-re/quests/collection/quest_dokebi.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_dryad.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_fabre.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_frilldora.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_goat.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_golem.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_hode.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_leafcat.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_mantis.txt4
-rw-r--r--npc/pre-re/quests/collection/quest_pecopeco.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_pupa.txt12
-rw-r--r--npc/pre-re/quests/collection/quest_zhupolong.txt4
-rw-r--r--npc/pre-re/warps/fields/morroc_fild.txt4
-rw-r--r--npc/quests/bard_quest.txt129
-rw-r--r--npc/quests/bunnyband.txt8
-rw-r--r--npc/quests/cooking_quest.txt60
-rw-r--r--npc/quests/counteragent_mixture.txt12
-rw-r--r--npc/quests/dandelion_request.txt450
-rw-r--r--npc/quests/doomed_swords.txt36
-rw-r--r--npc/quests/doomed_swords_quest.txt26
-rw-r--r--npc/quests/eye_of_hellion.txt86
-rw-r--r--npc/quests/first_class/tu_acolyte.txt72
-rw-r--r--npc/quests/first_class/tu_archer.txt100
-rw-r--r--npc/quests/first_class/tu_ma_th01.txt82
-rw-r--r--npc/quests/first_class/tu_magician01.txt42
-rw-r--r--npc/quests/first_class/tu_merchant.txt124
-rw-r--r--npc/quests/first_class/tu_sword.txt131
-rw-r--r--npc/quests/first_class/tu_thief01.txt54
-rw-r--r--npc/quests/guildrelay.txt218
-rw-r--r--npc/quests/gunslinger_quests.txt100
-rw-r--r--npc/quests/juice_maker.txt40
-rw-r--r--npc/quests/kiel_hyre_quest.txt192
-rw-r--r--npc/quests/lvl4_weapon_quest.txt340
-rw-r--r--npc/quests/newgears/2004_headgears.txt152
-rw-r--r--npc/quests/newgears/2005_headgears.txt58
-rw-r--r--npc/quests/newgears/2006_headgears.txt34
-rw-r--r--npc/quests/newgears/2008_headgears.txt12
-rw-r--r--npc/quests/ninja_quests.txt404
-rw-r--r--npc/quests/obb_quest.txt72
-rw-r--r--npc/quests/okolnir.txt538
-rw-r--r--npc/quests/partyrelay.txt290
-rw-r--r--npc/quests/quests_13_1.txt538
-rw-r--r--npc/quests/quests_13_2.txt319
-rw-r--r--npc/quests/quests_airship.txt152
-rw-r--r--npc/quests/quests_alberta.txt71
-rw-r--r--npc/quests/quests_amatsu.txt132
-rw-r--r--npc/quests/quests_ayothaya.txt130
-rw-r--r--npc/quests/quests_comodo.txt46
-rw-r--r--npc/quests/quests_ein.txt250
-rw-r--r--npc/quests/quests_geffen.txt72
-rw-r--r--npc/quests/quests_gonryun.txt172
-rw-r--r--npc/quests/quests_hugel.txt378
-rw-r--r--npc/quests/quests_izlude.txt2
-rw-r--r--npc/quests/quests_juperos.txt250
-rw-r--r--npc/quests/quests_lighthalzen.txt468
-rw-r--r--npc/quests/quests_louyang.txt248
-rw-r--r--npc/quests/quests_morocc.txt578
-rw-r--r--npc/quests/quests_moscovia.txt779
-rw-r--r--npc/quests/quests_nameless.txt578
-rw-r--r--npc/quests/quests_niflheim.txt52
-rw-r--r--npc/quests/quests_prontera.txt132
-rw-r--r--npc/quests/quests_rachel.txt202
-rw-r--r--npc/quests/quests_umbala.txt102
-rw-r--r--npc/quests/quests_veins.txt192
-rw-r--r--npc/quests/quests_yuno.txt56
-rw-r--r--npc/quests/seals/brisingamen_seal.txt171
-rw-r--r--npc/quests/seals/god_global.txt16
-rw-r--r--npc/quests/seals/god_weapon_creation.txt42
-rw-r--r--npc/quests/seals/megingard_seal.txt124
-rw-r--r--npc/quests/seals/mjolnir_seal.txt296
-rw-r--r--npc/quests/seals/seal_status.txt12
-rw-r--r--npc/quests/seals/sleipnir_seal.txt122
-rw-r--r--npc/quests/skills/alchemist_skills.txt72
-rw-r--r--npc/quests/skills/assassin_skills.txt24
-rw-r--r--npc/quests/skills/bard_skills.txt14
-rw-r--r--npc/quests/skills/blacksmith_skills.txt22
-rw-r--r--npc/quests/skills/crusader_skills.txt26
-rw-r--r--npc/quests/skills/dancer_skills.txt18
-rw-r--r--npc/quests/skills/hunter_skills.txt6
-rw-r--r--npc/quests/skills/knight_skills.txt20
-rw-r--r--npc/quests/skills/merchant_skills.txt2
-rw-r--r--npc/quests/skills/monk_skills.txt14
-rw-r--r--npc/quests/skills/novice_skills.txt14
-rw-r--r--npc/quests/skills/priest_skills.txt20
-rw-r--r--npc/quests/skills/rogue_skills.txt54
-rw-r--r--npc/quests/skills/sage_skills.txt18
-rw-r--r--npc/quests/skills/swordman_skills.txt4
-rw-r--r--npc/quests/skills/thief_skills.txt4
-rw-r--r--npc/quests/skills/wizard_skills.txt8
-rw-r--r--npc/quests/thana_quest.txt156
-rw-r--r--npc/quests/the_sign_quest.txt1003
-rw-r--r--npc/re/cities/brasilis.txt2
-rw-r--r--npc/re/cities/dewata.txt14
-rw-r--r--npc/re/cities/izlude.txt2
-rw-r--r--npc/re/cities/malangdo.txt60
-rw-r--r--npc/re/cities/malaya.txt54
-rw-r--r--npc/re/events/halloween_2014.txt2556
-rw-r--r--npc/re/guides/guides_alberta.txt14
-rw-r--r--npc/re/guides/guides_aldebaran.txt10
-rw-r--r--npc/re/guides/guides_ayothaya.txt4
-rw-r--r--npc/re/guides/guides_comodo.txt8
-rw-r--r--npc/re/guides/guides_einbroch.txt8
-rw-r--r--npc/re/guides/guides_geffen.txt8
-rw-r--r--npc/re/guides/guides_hugel.txt18
-rw-r--r--npc/re/guides/guides_izlude.txt10
-rw-r--r--npc/re/guides/guides_juno.txt8
-rw-r--r--npc/re/guides/guides_lighthalzen.txt8
-rw-r--r--npc/re/guides/guides_louyang.txt2
-rw-r--r--npc/re/guides/guides_morroc.txt16
-rw-r--r--npc/re/guides/guides_moscovia.txt2
-rw-r--r--npc/re/guides/guides_payon.txt10
-rw-r--r--npc/re/guides/guides_prontera.txt10
-rw-r--r--npc/re/guides/guides_rachel.txt8
-rw-r--r--npc/re/guides/navigation.txt2
-rw-r--r--npc/re/guild/invest_main.txt476
-rw-r--r--npc/re/instances/BakonawaLake.txt66
-rw-r--r--npc/re/instances/BangungotHospital.txt169
-rw-r--r--npc/re/instances/BuwayaCave.txt44
-rw-r--r--npc/re/instances/HazyForest.txt61
-rw-r--r--npc/re/instances/MalangdoCulvert.txt152
-rw-r--r--npc/re/instances/OctopusCave.txt58
-rw-r--r--npc/re/instances/OldGlastHeim.txt126
-rw-r--r--npc/re/instances/WolfchevLaboratory.txt23
-rw-r--r--npc/re/jobs/1-1/acolyte.txt6
-rw-r--r--npc/re/jobs/1-1/thief.txt4
-rw-r--r--npc/re/jobs/3-1/archbishop.txt42
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt232
-rw-r--r--npc/re/jobs/3-1/mechanic.txt26
-rw-r--r--npc/re/jobs/3-1/ranger.txt101
-rw-r--r--npc/re/jobs/3-1/rune_knight.txt142
-rw-r--r--npc/re/jobs/3-1/warlock.txt32
-rw-r--r--npc/re/jobs/3-2/genetic.txt110
-rw-r--r--npc/re/jobs/3-2/minstrel.txt64
-rw-r--r--npc/re/jobs/3-2/royal_guard.txt22
-rw-r--r--npc/re/jobs/3-2/shadow_chaser.txt130
-rw-r--r--npc/re/jobs/3-2/sorcerer.txt14
-rw-r--r--npc/re/jobs/3-2/sura.txt18
-rw-r--r--npc/re/jobs/3-2/wanderer.txt44
-rw-r--r--npc/re/jobs/novice/novice.txt448
-rw-r--r--npc/re/jobs/novice/supernovice_ex.txt54
-rw-r--r--npc/re/jobs/repair.txt68
-rw-r--r--npc/re/merchants/3rd_trader.txt42
-rw-r--r--npc/re/merchants/advanced_refiner.txt38
-rw-r--r--npc/re/merchants/alchemist.txt22
-rw-r--r--npc/re/merchants/blessed_refiner.txt44
-rw-r--r--npc/re/merchants/card_separation.txt138
-rw-r--r--npc/re/merchants/catalog.txt4
-rw-r--r--npc/re/merchants/coin_exchange.txt210
-rw-r--r--npc/re/merchants/diamond.txt6
-rw-r--r--npc/re/merchants/enchan_mal.txt354
-rw-r--r--npc/re/merchants/enchan_mora.txt584
-rw-r--r--npc/re/merchants/enchan_upg.txt168
-rw-r--r--npc/re/merchants/flute.txt4
-rw-r--r--npc/re/merchants/hd_refiner.txt36
-rw-r--r--npc/re/merchants/quivers.txt16
-rw-r--r--npc/re/merchants/refine.txt90
-rw-r--r--npc/re/merchants/renters.txt48
-rw-r--r--npc/re/merchants/ticket_refiner.txt34
-rw-r--r--npc/re/mobs/dungeons/lhz_dun.txt60
-rw-r--r--npc/re/other/resetskill.txt4
-rw-r--r--npc/re/other/stone_change.txt8
-rw-r--r--npc/re/quests/cupet.txt34
-rw-r--r--npc/re/quests/eden/11-25.txt30
-rw-r--r--npc/re/quests/eden/26-40.txt16
-rw-r--r--npc/re/quests/eden/41-55.txt11
-rw-r--r--npc/re/quests/eden/56-70.txt18
-rw-r--r--npc/re/quests/eden/71-85.txt95
-rw-r--r--npc/re/quests/eden/86-90.txt22
-rw-r--r--npc/re/quests/eden/91-99.txt32
-rw-r--r--npc/re/quests/eden/eden_common.txt10
-rw-r--r--npc/re/quests/eden/eden_iro.txt44
-rw-r--r--npc/re/quests/eden/eden_quests.txt618
-rw-r--r--npc/re/quests/eden/eden_tutorial.txt158
-rw-r--r--npc/re/quests/homun_s.txt40
-rw-r--r--npc/re/quests/magic_books.txt44
-rw-r--r--npc/re/quests/quests_brasilis.txt133
-rw-r--r--npc/re/quests/quests_dewata.txt322
-rw-r--r--npc/re/quests/quests_dicastes.txt378
-rw-r--r--npc/re/quests/quests_eclage.txt55
-rw-r--r--npc/re/quests/quests_malangdo.txt966
-rw-r--r--npc/re/quests/quests_malaya.txt538
-rw-r--r--npc/re/quests/quests_mora.txt606
-rw-r--r--npc/re/quests/quests_morocc.txt20
-rw-r--r--npc/re/scripts.conf3
-rw-r--r--npc/re/warps/cities/dicastes.txt12
-rw-r--r--npc/re/warps/cities/malaya.txt2
-rw-r--r--npc/re/warps/fields/morroc_fild.txt4
-rw-r--r--npc/scripts_jobs.conf26
-rw-r--r--npc/warps/dungeons/mosk_dun.txt2
-rw-r--r--npc/warps/other/arena.txt2
-rw-r--r--sql-files/item_db.sql132
-rw-r--r--sql-files/item_db_re.sql291
-rw-r--r--sql-files/main.sql9
-rw-r--r--sql-files/mob_db.sql220
-rw-r--r--sql-files/mob_db2.sql72
-rw-r--r--sql-files/mob_db_re.sql4198
-rw-r--r--sql-files/mob_skill_db.sql3534
-rw-r--r--sql-files/mob_skill_db2.sql209
-rw-r--r--sql-files/mob_skill_db_re.sql14876
-rw-r--r--sql-files/upgrades/2014-09-01--16-53.sql5
-rw-r--r--sql-files/upgrades/2014-11-03--00-45.sql3
-rw-r--r--sql-files/upgrades/index.txt2
-rw-r--r--src/char/HPMchar.c53
-rw-r--r--src/char/HPMchar.h21
-rw-r--r--src/char/Makefile.in14
-rw-r--r--src/char/char.c5556
-rw-r--r--src/char/char.h223
-rw-r--r--src/char/geoip.c187
-rw-r--r--src/char/geoip.h32
-rw-r--r--src/char/int_auction.c221
-rw-r--r--src/char/int_auction.h23
-rw-r--r--src/char/int_elemental.c123
-rw-r--r--src/char/int_elemental.h15
-rw-r--r--src/char/int_guild.c727
-rw-r--r--src/char/int_guild.h47
-rw-r--r--src/char/int_homun.c156
-rw-r--r--src/char/int_homun.h18
-rw-r--r--src/char/int_mail.c293
-rw-r--r--src/char/int_mail.h24
-rw-r--r--src/char/int_mercenary.c132
-rw-r--r--src/char/int_mercenary.h21
-rw-r--r--src/char/int_party.c382
-rw-r--r--src/char/int_party.h39
-rw-r--r--src/char/int_pet.c209
-rw-r--r--src/char/int_pet.h23
-rw-r--r--src/char/int_quest.c98
-rw-r--r--src/char/int_quest.h11
-rw-r--r--src/char/int_storage.c181
-rw-r--r--src/char/int_storage.h25
-rw-r--r--src/char/inter.c779
-rw-r--r--src/char/inter.h43
-rw-r--r--src/char/loginif.c181
-rw-r--r--src/char/loginif.h33
-rw-r--r--src/char/mapif.c362
-rw-r--r--src/char/mapif.h198
-rw-r--r--src/char/pincode.c97
-rw-r--r--src/char/pincode.h32
-rw-r--r--src/common/HPM.c350
-rw-r--r--src/common/HPM.h6
-rw-r--r--src/common/HPMDataCheck.h159
-rw-r--r--src/common/HPMi.h49
-rw-r--r--src/common/atomic.h14
-rw-r--r--src/common/cbasetypes.h113
-rw-r--r--src/common/conf.c12
-rw-r--r--src/common/conf.h28
-rw-r--r--src/common/console.c92
-rw-r--r--src/common/core.c30
-rw-r--r--src/common/db.c23
-rw-r--r--src/common/db.h103
-rw-r--r--src/common/des.c16
-rw-r--r--src/common/ers.c40
-rw-r--r--src/common/ers.h2
-rw-r--r--src/common/grfio.c91
-rw-r--r--src/common/malloc.c76
-rw-r--r--src/common/malloc.h20
-rw-r--r--src/common/mapindex.c43
-rw-r--r--src/common/mapindex.h7
-rw-r--r--src/common/md5calc.c224
-rw-r--r--src/common/mmo.h32
-rw-r--r--src/common/mutex.c60
-rw-r--r--src/common/nullpo.c4
-rw-r--r--src/common/showmsg.c361
-rw-r--r--src/common/socket.c78
-rw-r--r--src/common/socket.h2
-rw-r--r--src/common/spinlock.h26
-rw-r--r--src/common/sql.c18
-rw-r--r--src/common/sql.h2
-rw-r--r--src/common/strlib.c21
-rw-r--r--src/common/strlib.h32
-rw-r--r--src/common/thread.c37
-rw-r--r--src/common/thread.h4
-rw-r--r--src/common/timer.c36
-rw-r--r--src/common/utils.c66
-rw-r--r--src/common/winapi.h6
-rw-r--r--src/config/classes/general.h5
-rw-r--r--src/config/const.h13
-rw-r--r--src/config/core.h13
-rw-r--r--src/login/HPMlogin.c53
-rw-r--r--src/login/HPMlogin.h20
-rw-r--r--src/login/Makefile.in6
-rw-r--r--src/login/account.h4
-rw-r--r--src/login/account_sql.c93
-rw-r--r--src/login/ipban_sql.c6
-rw-r--r--src/login/login.c1675
-rw-r--r--src/login/login.h154
-rw-r--r--src/login/loginlog_sql.c4
-rw-r--r--src/map/HPMmap.c56
-rw-r--r--src/map/HPMmap.h2
-rw-r--r--src/map/Makefile.in2
-rw-r--r--src/map/atcommand.c2436
-rw-r--r--src/map/battle.c762
-rw-r--r--src/map/battle.h172
-rw-r--r--src/map/battleground.c124
-rw-r--r--src/map/buyingstore.c15
-rw-r--r--src/map/chat.c32
-rw-r--r--src/map/chat.h23
-rw-r--r--src/map/chrif.c303
-rw-r--r--src/map/chrif.h16
-rw-r--r--src/map/clif.c1001
-rw-r--r--src/map/clif.h129
-rw-r--r--src/map/duel.c2
-rw-r--r--src/map/duel.h4
-rw-r--r--src/map/elemental.c44
-rw-r--r--src/map/elemental.h16
-rw-r--r--src/map/guild.c185
-rw-r--r--src/map/guild.h4
-rw-r--r--src/map/homunculus.c68
-rw-r--r--src/map/homunculus.h13
-rw-r--r--src/map/instance.c12
-rw-r--r--src/map/instance.h8
-rw-r--r--src/map/intif.c157
-rw-r--r--src/map/irc-bot.c34
-rw-r--r--src/map/itemdb.c145
-rw-r--r--src/map/itemdb.h34
-rw-r--r--src/map/log.c7
-rw-r--r--src/map/log.h8
-rw-r--r--src/map/map.c235
-rw-r--r--src/map/map.h145
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/mercenary.h20
-rw-r--r--src/map/mob.c544
-rw-r--r--src/map/mob.h39
-rw-r--r--src/map/npc.c274
-rw-r--r--src/map/npc.h8
-rw-r--r--src/map/packets.h335
-rw-r--r--src/map/packets_struct.h76
-rw-r--r--src/map/party.c44
-rw-r--r--src/map/party.h16
-rw-r--r--src/map/path.c99
-rw-r--r--src/map/path.h12
-rw-r--r--src/map/pc.c899
-rw-r--r--src/map/pc.h205
-rw-r--r--src/map/pc_groups.c4
-rw-r--r--src/map/pc_groups.h4
-rw-r--r--src/map/pet.c74
-rw-r--r--src/map/pet.h13
-rw-r--r--src/map/script.c1293
-rw-r--r--src/map/script.h29
-rw-r--r--src/map/searchstore.c4
-rw-r--r--src/map/skill.c1391
-rw-r--r--src/map/skill.h165
-rw-r--r--src/map/status.c2011
-rw-r--r--src/map/status.h162
-rw-r--r--src/map/storage.c172
-rw-r--r--src/map/storage.h3
-rw-r--r--src/map/trade.c43
-rw-r--r--src/map/unit.c565
-rw-r--r--src/map/unit.h8
-rw-r--r--src/map/vending.c30
-rw-r--r--src/plugins/HPMHooking.c105
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.GetSymbol.inc22
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc1814
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc472
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.Hooks.inc11904
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.sources.inc22
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.GetSymbol.inc7
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc235
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc66
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.Hooks.inc1473
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.sources.inc7
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.GetSymbol.inc (renamed from src/plugins/HPMHooking/HPMHooking.GetSymbol.inc)0
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc (renamed from src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc)156
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc (renamed from src/plugins/HPMHooking/HPMHooking.HookingPoints.inc)39
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc (renamed from src/plugins/HPMHooking/HPMHooking.Hooks.inc)1026
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.sources.inc (renamed from src/plugins/HPMHooking/HPMHooking.sources.inc)0
-rw-r--r--src/plugins/Makefile.in20
-rw-r--r--src/plugins/db2sql.c46
-rw-r--r--src/plugins/dbghelpplug.c175
-rw-r--r--src/plugins/sample.c44
-rw-r--r--src/test/test_spinlock.c26
-rw-r--r--src/tool/Makefile.in2
-rw-r--r--tools/HPMHookGen/HPMDataCheckGen.pl25
-rwxr-xr-xtools/HPMHookGen/HPMHookGen.pl202
-rwxr-xr-xtools/validateinterfaces.py246
-rwxr-xr-xtravis.sh1
-rw-r--r--vcproj-10/char-server.vcxproj12
-rw-r--r--vcproj-10/char-server.vcxproj.filters42
-rw-r--r--vcproj-10/login-server.vcxproj2
-rw-r--r--vcproj-10/login-server.vcxproj.filters6
-rw-r--r--vcproj-10/plugin-HPMHooking_char.vcxproj118
-rw-r--r--vcproj-10/plugin-HPMHooking_login.vcxproj118
-rw-r--r--vcproj-10/plugin-HPMHooking_map.vcxproj (renamed from vcproj-10/plugin-HPMHooking.vcxproj)10
-rw-r--r--vcproj-11/char-server.vcxproj22
-rw-r--r--vcproj-11/char-server.vcxproj.filters36
-rw-r--r--vcproj-11/login-server.vcxproj2
-rw-r--r--vcproj-11/login-server.vcxproj.filters6
-rw-r--r--vcproj-11/plugin-HPMHooking_char.vcxproj120
-rw-r--r--vcproj-11/plugin-HPMHooking_login.vcxproj120
-rw-r--r--vcproj-11/plugin-HPMHooking_map.vcxproj (renamed from vcproj-11/plugin-HPMHooking.vcxproj)10
-rw-r--r--vcproj-12/char-server.vcxproj10
-rw-r--r--vcproj-12/char-server.vcxproj.filters36
-rw-r--r--vcproj-12/login-server.vcxproj2
-rw-r--r--vcproj-12/login-server.vcxproj.filters6
-rw-r--r--vcproj-12/plugin-HPMHooking_char.vcxproj120
-rw-r--r--vcproj-12/plugin-HPMHooking_login.vcxproj120
-rw-r--r--vcproj-12/plugin-HPMHooking_map.vcxproj (renamed from vcproj-12/plugin-HPMHooking.vcxproj)10
-rw-r--r--vcproj-9/char-server.vcproj32
-rw-r--r--vcproj-9/login-server.vcproj8
662 files changed, 77579 insertions, 49989 deletions
diff --git a/.travis.yml b/.travis.yml
index a7f6a789f..3095bbc67 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,7 +12,7 @@ before_script:
- ./travis.sh importdb ragnarok travis
- mysql -u root -e "SET PASSWORD FOR 'travis'@'localhost' = PASSWORD('travis');"
-script:
+script:
- ./travis.sh build $CONFIGURE_FLAGS
- ./travis.sh test ragnarok travis travis
diff --git a/3rdparty/libconfig/grammar.c b/3rdparty/libconfig/grammar.c
index 26444f816..55216535b 100644
--- a/3rdparty/libconfig/grammar.c
+++ b/3rdparty/libconfig/grammar.c
@@ -1261,7 +1261,7 @@ YYSTYPE yylval;
`yyss': related to states.
`yyvs': related to semantic values.
- Refer to the stacks thru separate pointers, to allow yyoverflow
+ Refer to the stacks through separate pointers, to allow yy overflow
to reallocate them elsewhere. */
/* The state stack. */
diff --git a/Hercules-10.sln b/Hercules-10.sln
index b663ad491..dc6bacfbc 100644
--- a/Hercules-10.sln
+++ b/Hercules-10.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server", "vcproj-10\char-server.vcxproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server", "vcproj-10\login-server.vcxproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
@@ -10,7 +10,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-10\mapca
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-sample", "vcproj-10\plugin-sample.vcxproj", "{E64C56D3-CDFB-483B-900B-A62D216B6D2F}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking", "vcproj-10\plugin-HPMHooking.vcxproj", "{E64C56D3-CDFB-483B-900B-A62D216B6D2F}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_map", "vcproj-10\plugin-HPMHooking_map.vcxproj", "{7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_char", "vcproj-10\plugin-HPMHooking_char.vcxproj", "{337F99A2-528C-473C-97F0-BF202F197061}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_login", "vcproj-10\plugin-HPMHooking_login.vcxproj", "{B7B66F36-2EE9-4F16-929A-5E4A64492DAE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -36,8 +40,18 @@ Global
{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.Build.0 = Release|Win32
{E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Debug|Win32.ActiveCfg = Debug|Win32
{E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Release|Win32.ActiveCfg = Release|Win32
- {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Debug|Win32.ActiveCfg = Debug|Win32
- {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Release|Win32.ActiveCfg = Release|Win32
+ {7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}.Debug|Win32.Build.0 = Debug|Win32
+ {7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}.Release|Win32.ActiveCfg = Release|Win32
+ {7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}.Release|Win32.Build.0 = Release|Win32
+ {337F99A2-528C-473C-97F0-BF202F197061}.Debug|Win32.ActiveCfg = Debug|Win32
+ {337F99A2-528C-473C-97F0-BF202F197061}.Debug|Win32.Build.0 = Debug|Win32
+ {337F99A2-528C-473C-97F0-BF202F197061}.Release|Win32.ActiveCfg = Release|Win32
+ {337F99A2-528C-473C-97F0-BF202F197061}.Release|Win32.Build.0 = Release|Win32
+ {B7B66F36-2EE9-4F16-929A-5E4A64492DAE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B7B66F36-2EE9-4F16-929A-5E4A64492DAE}.Debug|Win32.Build.0 = Debug|Win32
+ {B7B66F36-2EE9-4F16-929A-5E4A64492DAE}.Release|Win32.ActiveCfg = Release|Win32
+ {B7B66F36-2EE9-4F16-929A-5E4A64492DAE}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Hercules-11.sln b/Hercules-11.sln
index b395132be..cc5aad477 100644
--- a/Hercules-11.sln
+++ b/Hercules-11.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio Express 2012 for Windows Desktop
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server", "vcproj-11\char-server.vcxproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server", "vcproj-11\login-server.vcxproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
@@ -10,7 +10,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-11\mapca
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-sample", "vcproj-11\plugin-sample.vcxproj", "{E64C56D3-CDFB-483B-900B-A62D216B6D2F}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking", "vcproj-11\plugin-HPMHooking.vcxproj", "{745D4A8C-6A68-4721-A43A-D81BF59860A1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_map", "vcproj-11\plugin-HPMHooking_map.vcxproj", "{745D4A8C-6A68-4721-A43A-D81BF59860A1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_char", "vcproj-11\plugin-HPMHooking_char.vcxproj", "{ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_login", "vcproj-11\plugin-HPMHooking_login.vcxproj", "{93DB46CC-FC44-4E43-820A-63DC7318F413}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -42,6 +46,14 @@ Global
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Debug|Win32.Build.0 = Debug|Win32
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.ActiveCfg = Release|Win32
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.Build.0 = Release|Win32
+ {ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}.Debug|Win32.Build.0 = Debug|Win32
+ {ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}.Release|Win32.ActiveCfg = Release|Win32
+ {ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}.Release|Win32.Build.0 = Release|Win32
+ {93DB46CC-FC44-4E43-820A-63DC7318F413}.Debug|Win32.ActiveCfg = Debug|Win32
+ {93DB46CC-FC44-4E43-820A-63DC7318F413}.Debug|Win32.Build.0 = Debug|Win32
+ {93DB46CC-FC44-4E43-820A-63DC7318F413}.Release|Win32.ActiveCfg = Release|Win32
+ {93DB46CC-FC44-4E43-820A-63DC7318F413}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Hercules-12.sln b/Hercules-12.sln
index 7cb72efd7..ab0df4e07 100644
--- a/Hercules-12.sln
+++ b/Hercules-12.sln
@@ -1,6 +1,7 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.21005.1
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server", "vcproj-12\char-server.vcxproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
EndProject
@@ -12,7 +13,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server", "vcproj-12\map
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-sample", "vcproj-12\plugin-sample.vcxproj", "{E64C56D3-CDFB-483B-900B-A62D216B6D2F}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking", "vcproj-12\plugin-HPMHooking.vcxproj", "{745D4A8C-6A68-4721-A43A-D81BF59860A1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_map", "vcproj-12\plugin-HPMHooking_map.vcxproj", "{745D4A8C-6A68-4721-A43A-D81BF59860A1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_char", "vcproj-12\plugin-HPMHooking_char.vcxproj", "{D495824D-24D3-4623-A28C-4CA506084A09}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_login", "vcproj-12\plugin-HPMHooking_login.vcxproj", "{544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -44,6 +49,14 @@ Global
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Debug|Win32.Build.0 = Debug|Win32
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.ActiveCfg = Release|Win32
{745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.Build.0 = Release|Win32
+ {D495824D-24D3-4623-A28C-4CA506084A09}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D495824D-24D3-4623-A28C-4CA506084A09}.Debug|Win32.Build.0 = Debug|Win32
+ {D495824D-24D3-4623-A28C-4CA506084A09}.Release|Win32.ActiveCfg = Release|Win32
+ {D495824D-24D3-4623-A28C-4CA506084A09}.Release|Win32.Build.0 = Release|Win32
+ {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Debug|Win32.Build.0 = Debug|Win32
+ {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Release|Win32.ActiveCfg = Release|Win32
+ {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Hercules.xcodeproj/project.pbxproj b/Hercules.xcodeproj/project.pbxproj
index e50e4b22a..6efdbfced 100644
--- a/Hercules.xcodeproj/project.pbxproj
+++ b/Hercules.xcodeproj/project.pbxproj
@@ -12,6 +12,9 @@
A5380CD91856CF4A0090CBC4 /* core.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC694185643BB009EB79C /* core.c */; };
A5380CDA1856D0650090CBC4 /* socket.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC6BA185643BB009EB79C /* socket.c */; };
A5380CDB1856D0690090CBC4 /* malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC6A3185643BB009EB79C /* malloc.c */; };
+ A5467AD31A16FCB4008AFAA6 /* loginif.c in Sources */ = {isa = PBXBuildFile; fileRef = A5467AD11A16FCB4008AFAA6 /* loginif.c */; };
+ A5467AD61A16FCDC008AFAA6 /* mapif.c in Sources */ = {isa = PBXBuildFile; fileRef = A5467AD41A16FCDC008AFAA6 /* mapif.c */; };
+ A5467AD91A16FD08008AFAA6 /* geoip.c in Sources */ = {isa = PBXBuildFile; fileRef = A5467AD71A16FD08008AFAA6 /* geoip.c */; };
A567612D185D11D700997C0D /* nullpo.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC6B2185643BB009EB79C /* nullpo.c */; };
A56CC68918564387009EB79C /* account_sql.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC68118564387009EB79C /* account_sql.c */; };
A56CC68A18564387009EB79C /* ipban_sql.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC68318564387009EB79C /* ipban_sql.c */; };
@@ -158,6 +161,10 @@
A58A5A281858025D0099683E /* HPMHooking.c in Sources */ = {isa = PBXBuildFile; fileRef = A58A5A271858025D0099683E /* HPMHooking.c */; };
A5AA94EE185796CB00C940C8 /* sample.c in Sources */ = {isa = PBXBuildFile; fileRef = A5AA94ED185796CB00C940C8 /* sample.c */; };
A5AA94FA185799E400C940C8 /* db2sql.c in Sources */ = {isa = PBXBuildFile; fileRef = A5AA94F8185799DF00C940C8 /* db2sql.c */; };
+ A5B894AA1A03CDD4005AD22E /* HPMlogin.c in Sources */ = {isa = PBXBuildFile; fileRef = A5B894A81A03CDD4005AD22E /* HPMlogin.c */; };
+ A5B894AD1A03CDFA005AD22E /* HPMchar.c in Sources */ = {isa = PBXBuildFile; fileRef = A5B894AB1A03CDFA005AD22E /* HPMchar.c */; };
+ A5B894B01A03CE25005AD22E /* HPMHooking.c in Sources */ = {isa = PBXBuildFile; fileRef = A58A5A271858025D0099683E /* HPMHooking.c */; };
+ A5B894B91A03CE5D005AD22E /* HPMHooking.c in Sources */ = {isa = PBXBuildFile; fileRef = A58A5A271858025D0099683E /* HPMHooking.c */; };
A5F7946C191CA34E002293AB /* sysinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A5F79469191CA34E002293AB /* sysinfo.c */; };
A5F7946D191CA34E002293AB /* sysinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A5F79469191CA34E002293AB /* sysinfo.c */; };
A5F7946E191CA34E002293AB /* sysinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = A5F79469191CA34E002293AB /* sysinfo.c */; };
@@ -206,6 +213,12 @@
/* Begin PBXFileReference section */
A5380CCD1856CE180090CBC4 /* mapcache */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = mapcache; sourceTree = BUILT_PRODUCTS_DIR; };
A5380CD61856CE3C0090CBC4 /* mapcache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mapcache.c; path = src/tool/mapcache.c; sourceTree = "<group>"; };
+ A5467AD11A16FCB4008AFAA6 /* loginif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = loginif.c; path = src/char/loginif.c; sourceTree = SOURCE_ROOT; };
+ A5467AD21A16FCB4008AFAA6 /* loginif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = loginif.h; path = src/char/loginif.h; sourceTree = SOURCE_ROOT; };
+ A5467AD41A16FCDC008AFAA6 /* mapif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mapif.c; path = src/char/mapif.c; sourceTree = SOURCE_ROOT; };
+ A5467AD51A16FCDC008AFAA6 /* mapif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mapif.h; path = src/char/mapif.h; sourceTree = SOURCE_ROOT; };
+ A5467AD71A16FD08008AFAA6 /* geoip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = geoip.c; path = src/char/geoip.c; sourceTree = SOURCE_ROOT; };
+ A5467AD81A16FD08008AFAA6 /* geoip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = geoip.h; path = src/char/geoip.h; sourceTree = SOURCE_ROOT; };
A56CC66A18564315009EB79C /* login-server */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "login-server"; sourceTree = BUILT_PRODUCTS_DIR; };
A56CC6731856434D009EB79C /* char-server */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "char-server"; sourceTree = BUILT_PRODUCTS_DIR; };
A56CC67C18564356009EB79C /* map-server */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "map-server"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -389,17 +402,33 @@
A56CC7B618565812009EB79C /* unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unit.h; path = src/map/unit.h; sourceTree = SOURCE_ROOT; };
A56CC7B718565812009EB79C /* vending.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vending.c; path = src/map/vending.c; sourceTree = SOURCE_ROOT; };
A56CC7B818565812009EB79C /* vending.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vending.h; path = src/map/vending.h; sourceTree = SOURCE_ROOT; };
- A58A5A26185801FF0099683E /* HPMHooking.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = HPMHooking.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+ A58A5A26185801FF0099683E /* HPMHooking_map.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = HPMHooking_map.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
A58A5A271858025D0099683E /* HPMHooking.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = HPMHooking.c; path = src/plugins/HPMHooking.c; sourceTree = "<group>"; };
- A58A5A2A1858028C0099683E /* HPMHooking.GetSymbol.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HPMHooking.GetSymbol.inc; path = src/plugins/HPMHooking/HPMHooking.GetSymbol.inc; sourceTree = "<group>"; };
- A58A5A2B1858028C0099683E /* HPMHooking.HookingPoints.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HPMHooking.HookingPoints.inc; path = src/plugins/HPMHooking/HPMHooking.HookingPoints.inc; sourceTree = "<group>"; };
- A58A5A2C1858028C0099683E /* HPMHooking.Hooks.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HPMHooking.Hooks.inc; path = src/plugins/HPMHooking/HPMHooking.Hooks.inc; sourceTree = "<group>"; };
- A58A5A2D1858028C0099683E /* HPMHooking.HPMHooksCore.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HPMHooking.HPMHooksCore.inc; path = src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc; sourceTree = "<group>"; };
- A58A5A2E1858028C0099683E /* HPMHooking.sources.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HPMHooking.sources.inc; path = src/plugins/HPMHooking/HPMHooking.sources.inc; sourceTree = "<group>"; };
A5AA94E71857956100C940C8 /* sample.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = sample.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
A5AA94ED185796CB00C940C8 /* sample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sample.c; path = src/plugins/sample.c; sourceTree = "<group>"; };
A5AA94F3185799B700C940C8 /* db2sql.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = db2sql.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
A5AA94F8185799DF00C940C8 /* db2sql.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = db2sql.c; path = src/plugins/db2sql.c; sourceTree = "<group>"; };
+ A5B894A81A03CDD4005AD22E /* HPMlogin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = HPMlogin.c; path = src/login/HPMlogin.c; sourceTree = SOURCE_ROOT; };
+ A5B894A91A03CDD4005AD22E /* HPMlogin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HPMlogin.h; path = src/login/HPMlogin.h; sourceTree = SOURCE_ROOT; };
+ A5B894AB1A03CDFA005AD22E /* HPMchar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = HPMchar.c; path = src/char/HPMchar.c; sourceTree = SOURCE_ROOT; };
+ A5B894AC1A03CDFA005AD22E /* HPMchar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HPMchar.h; path = src/char/HPMchar.h; sourceTree = SOURCE_ROOT; };
+ A5B894B61A03CE25005AD22E /* HPMHooking_char.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = HPMHooking_char.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+ A5B894BF1A03CE5D005AD22E /* HPMHooking_login.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = HPMHooking_login.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+ A5B894C01A03CEE1005AD22E /* HPMHooking_char.GetSymbol.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_char.GetSymbol.inc; path = src/plugins/HPMHooking/HPMHooking_char.GetSymbol.inc; sourceTree = "<group>"; };
+ A5B894C11A03CEE1005AD22E /* HPMHooking_char.HookingPoints.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_char.HookingPoints.inc; path = src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc; sourceTree = "<group>"; };
+ A5B894C21A03CEE1005AD22E /* HPMHooking_char.Hooks.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_char.Hooks.inc; path = src/plugins/HPMHooking/HPMHooking_char.Hooks.inc; sourceTree = "<group>"; };
+ A5B894C31A03CEE1005AD22E /* HPMHooking_char.HPMHooksCore.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_char.HPMHooksCore.inc; path = src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc; sourceTree = "<group>"; };
+ A5B894C41A03CEE1005AD22E /* HPMHooking_char.sources.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_char.sources.inc; path = src/plugins/HPMHooking/HPMHooking_char.sources.inc; sourceTree = "<group>"; };
+ A5B894C51A03CEE1005AD22E /* HPMHooking_login.GetSymbol.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_login.GetSymbol.inc; path = src/plugins/HPMHooking/HPMHooking_login.GetSymbol.inc; sourceTree = "<group>"; };
+ A5B894C61A03CEE1005AD22E /* HPMHooking_login.HookingPoints.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_login.HookingPoints.inc; path = src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc; sourceTree = "<group>"; };
+ A5B894C71A03CEE1005AD22E /* HPMHooking_login.Hooks.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_login.Hooks.inc; path = src/plugins/HPMHooking/HPMHooking_login.Hooks.inc; sourceTree = "<group>"; };
+ A5B894C81A03CEE1005AD22E /* HPMHooking_login.HPMHooksCore.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_login.HPMHooksCore.inc; path = src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc; sourceTree = "<group>"; };
+ A5B894C91A03CEE1005AD22E /* HPMHooking_login.sources.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_login.sources.inc; path = src/plugins/HPMHooking/HPMHooking_login.sources.inc; sourceTree = "<group>"; };
+ A5B894CA1A03CEE1005AD22E /* HPMHooking_map.GetSymbol.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_map.GetSymbol.inc; path = src/plugins/HPMHooking/HPMHooking_map.GetSymbol.inc; sourceTree = "<group>"; };
+ A5B894CB1A03CEE1005AD22E /* HPMHooking_map.HookingPoints.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_map.HookingPoints.inc; path = src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc; sourceTree = "<group>"; };
+ A5B894CC1A03CEE1005AD22E /* HPMHooking_map.Hooks.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_map.Hooks.inc; path = src/plugins/HPMHooking/HPMHooking_map.Hooks.inc; sourceTree = "<group>"; };
+ A5B894CD1A03CEE1005AD22E /* HPMHooking_map.HPMHooksCore.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_map.HPMHooksCore.inc; path = src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc; sourceTree = "<group>"; };
+ A5B894CE1A03CEE1005AD22E /* HPMHooking_map.sources.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; name = HPMHooking_map.sources.inc; path = src/plugins/HPMHooking/HPMHooking_map.sources.inc; sourceTree = "<group>"; };
A5F79468191CA34E002293AB /* HPMDataCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HPMDataCheck.h; path = src/common/HPMDataCheck.h; sourceTree = "<group>"; };
A5F79469191CA34E002293AB /* sysinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sysinfo.c; path = src/common/sysinfo.c; sourceTree = "<group>"; };
A5F7946A191CA34E002293AB /* sysinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sysinfo.h; path = src/common/sysinfo.h; sourceTree = "<group>"; };
@@ -457,6 +486,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ A5B894B11A03CE25005AD22E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A5B894BA1A03CE5D005AD22E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -488,7 +531,9 @@
A5380CCD1856CE180090CBC4 /* mapcache */,
A5AA94E71857956100C940C8 /* sample.dylib */,
A5AA94F3185799B700C940C8 /* db2sql.dylib */,
- A58A5A26185801FF0099683E /* HPMHooking.dylib */,
+ A58A5A26185801FF0099683E /* HPMHooking_map.dylib */,
+ A5B894B61A03CE25005AD22E /* HPMHooking_char.dylib */,
+ A5B894BF1A03CE5D005AD22E /* HPMHooking_login.dylib */,
);
name = Products;
sourceTree = "<group>";
@@ -496,6 +541,8 @@
A56CC66B18564315009EB79C /* login-server */ = {
isa = PBXGroup;
children = (
+ A5B894A81A03CDD4005AD22E /* HPMlogin.c */,
+ A5B894A91A03CDD4005AD22E /* HPMlogin.h */,
A56CC68118564387009EB79C /* account_sql.c */,
A56CC68218564387009EB79C /* account.h */,
A56CC68318564387009EB79C /* ipban_sql.c */,
@@ -511,6 +558,14 @@
A56CC6741856434D009EB79C /* char-server */ = {
isa = PBXGroup;
children = (
+ A5467AD71A16FD08008AFAA6 /* geoip.c */,
+ A5467AD81A16FD08008AFAA6 /* geoip.h */,
+ A5467AD41A16FCDC008AFAA6 /* mapif.c */,
+ A5467AD51A16FCDC008AFAA6 /* mapif.h */,
+ A5467AD11A16FCB4008AFAA6 /* loginif.c */,
+ A5467AD21A16FCB4008AFAA6 /* loginif.h */,
+ A5B894AB1A03CDFA005AD22E /* HPMchar.c */,
+ A5B894AC1A03CDFA005AD22E /* HPMchar.h */,
A56CC743185657D9009EB79C /* char.c */,
A56CC744185657D9009EB79C /* char.h */,
A56CC745185657D9009EB79C /* int_auction.c */,
@@ -752,11 +807,21 @@
A58A5A291858026F0099683E /* HPMHooking */ = {
isa = PBXGroup;
children = (
- A58A5A2A1858028C0099683E /* HPMHooking.GetSymbol.inc */,
- A58A5A2B1858028C0099683E /* HPMHooking.HookingPoints.inc */,
- A58A5A2C1858028C0099683E /* HPMHooking.Hooks.inc */,
- A58A5A2D1858028C0099683E /* HPMHooking.HPMHooksCore.inc */,
- A58A5A2E1858028C0099683E /* HPMHooking.sources.inc */,
+ A5B894C01A03CEE1005AD22E /* HPMHooking_char.GetSymbol.inc */,
+ A5B894C11A03CEE1005AD22E /* HPMHooking_char.HookingPoints.inc */,
+ A5B894C21A03CEE1005AD22E /* HPMHooking_char.Hooks.inc */,
+ A5B894C31A03CEE1005AD22E /* HPMHooking_char.HPMHooksCore.inc */,
+ A5B894C41A03CEE1005AD22E /* HPMHooking_char.sources.inc */,
+ A5B894C51A03CEE1005AD22E /* HPMHooking_login.GetSymbol.inc */,
+ A5B894C61A03CEE1005AD22E /* HPMHooking_login.HookingPoints.inc */,
+ A5B894C71A03CEE1005AD22E /* HPMHooking_login.Hooks.inc */,
+ A5B894C81A03CEE1005AD22E /* HPMHooking_login.HPMHooksCore.inc */,
+ A5B894C91A03CEE1005AD22E /* HPMHooking_login.sources.inc */,
+ A5B894CA1A03CEE1005AD22E /* HPMHooking_map.GetSymbol.inc */,
+ A5B894CB1A03CEE1005AD22E /* HPMHooking_map.HookingPoints.inc */,
+ A5B894CC1A03CEE1005AD22E /* HPMHooking_map.Hooks.inc */,
+ A5B894CD1A03CEE1005AD22E /* HPMHooking_map.HPMHooksCore.inc */,
+ A5B894CE1A03CEE1005AD22E /* HPMHooking_map.sources.inc */,
A58A5A271858025D0099683E /* HPMHooking.c */,
);
name = HPMHooking;
@@ -812,6 +877,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ A5B894B21A03CE25005AD22E /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A5B894BB1A03CE5D005AD22E /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
@@ -887,9 +966,9 @@
productReference = A56CC67C18564356009EB79C /* map-server */;
productType = "com.apple.product-type.tool";
};
- A58A5A1E185801FF0099683E /* HPMHooking */ = {
+ A58A5A1E185801FF0099683E /* HPMHooking_map */ = {
isa = PBXNativeTarget;
- buildConfigurationList = A58A5A23185801FF0099683E /* Build configuration list for PBXNativeTarget "HPMHooking" */;
+ buildConfigurationList = A58A5A23185801FF0099683E /* Build configuration list for PBXNativeTarget "HPMHooking_map" */;
buildPhases = (
A58A5A1F185801FF0099683E /* Sources */,
A58A5A21185801FF0099683E /* Frameworks */,
@@ -899,9 +978,9 @@
);
dependencies = (
);
- name = HPMHooking;
+ name = HPMHooking_map;
productName = sample;
- productReference = A58A5A26185801FF0099683E /* HPMHooking.dylib */;
+ productReference = A58A5A26185801FF0099683E /* HPMHooking_map.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
A5AA94E61857956100C940C8 /* sample */ = {
@@ -938,13 +1017,47 @@
productReference = A5AA94F3185799B700C940C8 /* db2sql.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
+ A5B894AE1A03CE25005AD22E /* HPMHooking_char */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = A5B894B31A03CE25005AD22E /* Build configuration list for PBXNativeTarget "HPMHooking_char" */;
+ buildPhases = (
+ A5B894AF1A03CE25005AD22E /* Sources */,
+ A5B894B11A03CE25005AD22E /* Frameworks */,
+ A5B894B21A03CE25005AD22E /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = HPMHooking_char;
+ productName = sample;
+ productReference = A5B894B61A03CE25005AD22E /* HPMHooking_char.dylib */;
+ productType = "com.apple.product-type.library.dynamic";
+ };
+ A5B894B71A03CE5D005AD22E /* HPMHooking_login */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = A5B894BC1A03CE5D005AD22E /* Build configuration list for PBXNativeTarget "HPMHooking_login" */;
+ buildPhases = (
+ A5B894B81A03CE5D005AD22E /* Sources */,
+ A5B894BA1A03CE5D005AD22E /* Frameworks */,
+ A5B894BB1A03CE5D005AD22E /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = HPMHooking_login;
+ productName = sample;
+ productReference = A5B894BF1A03CE5D005AD22E /* HPMHooking_login.dylib */;
+ productType = "com.apple.product-type.library.dynamic";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
A56CC652185642B4009EB79C /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0500;
+ LastUpgradeCheck = 0610;
ORGANIZATIONNAME = hercules.ws;
};
buildConfigurationList = A56CC655185642B4009EB79C /* Build configuration list for PBXProject "Hercules" */;
@@ -963,7 +1076,9 @@
A56CC6721856434D009EB79C /* char-server */,
A56CC67B18564356009EB79C /* map-server */,
A5380CCC1856CE180090CBC4 /* mapcache */,
- A58A5A1E185801FF0099683E /* HPMHooking */,
+ A5B894B71A03CE5D005AD22E /* HPMHooking_login */,
+ A5B894AE1A03CE25005AD22E /* HPMHooking_char */,
+ A58A5A1E185801FF0099683E /* HPMHooking_map */,
A5AA94F2185799B700C940C8 /* db2sql */,
A5AA94E61857956100C940C8 /* sample */,
);
@@ -1056,6 +1171,7 @@
A56CC6EA185643BB009EB79C /* md5calc.c in Sources */,
A5F7946C191CA34E002293AB /* sysinfo.c in Sources */,
A56CC74018564C23009EB79C /* mt19937ar.c in Sources */,
+ A5B894AA1A03CDD4005AD22E /* HPMlogin.c in Sources */,
A56CC6DE185643BB009EB79C /* grfio.c in Sources */,
A56CC68C18564387009EB79C /* loginlog_sql.c in Sources */,
A56CC73118564C05009EB79C /* libconfig.c in Sources */,
@@ -1094,6 +1210,7 @@
A56CC75D185657D9009EB79C /* char.c in Sources */,
A56CC6D9185643BB009EB79C /* ers.c in Sources */,
A56CC6CA185643BB009EB79C /* conf.c in Sources */,
+ A5467AD91A16FD08008AFAA6 /* geoip.c in Sources */,
A56CC718185643BB009EB79C /* utils.c in Sources */,
A56CC715185643BB009EB79C /* timer.c in Sources */,
A56CC6CD185643BB009EB79C /* console.c in Sources */,
@@ -1101,8 +1218,10 @@
A56CC6EB185643BB009EB79C /* md5calc.c in Sources */,
A56CC760185657D9009EB79C /* int_guild.c in Sources */,
A56CC768185657D9009EB79C /* inter.c in Sources */,
+ A5467AD61A16FCDC008AFAA6 /* mapif.c in Sources */,
A56CC73818564C05009EB79C /* scanner.c in Sources */,
A56CC700185643BB009EB79C /* random.c in Sources */,
+ A5B894AD1A03CDFA005AD22E /* HPMchar.c in Sources */,
A56CC761185657D9009EB79C /* int_homun.c in Sources */,
A56CC6FA185643BB009EB79C /* nullpo.c in Sources */,
A56CC6E5185643BB009EB79C /* malloc.c in Sources */,
@@ -1122,6 +1241,7 @@
A56CC73518564C05009EB79C /* scanctx.c in Sources */,
A56CC712185643BB009EB79C /* thread.c in Sources */,
A56CC6D0185643BB009EB79C /* core.c in Sources */,
+ A5467AD31A16FCB4008AFAA6 /* loginif.c in Sources */,
A56CC767185657D9009EB79C /* int_storage.c in Sources */,
A56CC763185657D9009EB79C /* int_mercenary.c in Sources */,
A56CC6D3185643BB009EB79C /* db.c in Sources */,
@@ -1230,6 +1350,22 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ A5B894AF1A03CE25005AD22E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A5B894B01A03CE25005AD22E /* HPMHooking.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A5B894B81A03CE5D005AD22E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A5B894B91A03CE5D005AD22E /* HPMHooking.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
@@ -1372,7 +1508,6 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
);
LIBRARY_SEARCH_PATHS = /usr/local/lib;
- MACOSX_DEPLOYMENT_TARGET = "";
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = (
"-DMAXCONN=16384",
@@ -1406,6 +1541,7 @@
"-DHAVE_XLOCALE_H=1",
"-DHAVE_LIBZ=1",
"-DHAVE_LIBPTHREAD=1",
+ "-DHPMHOOKING_LOGIN",
);
OTHER_LDFLAGS = (
"-lpthread",
@@ -1451,7 +1587,6 @@
);
LIBRARY_SEARCH_PATHS = /usr/local/lib;
LLVM_LTO = YES;
- MACOSX_DEPLOYMENT_TARGET = "";
OTHER_CFLAGS = (
"-DMAXCONN=16384",
"-DHAS_TLS",
@@ -1484,6 +1619,7 @@
"-DHAVE_XLOCALE_H=1",
"-DHAVE_LIBZ=1",
"-DHAVE_LIBPTHREAD=1",
+ "-DHPMHOOKING_LOGIN",
);
OTHER_LDFLAGS = (
"-lpthread",
@@ -1551,28 +1687,31 @@
A58A5A24185801FF0099683E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
- PRODUCT_NAME = HPMHooking;
+ PRODUCT_NAME = HPMHooking_map;
};
name = Debug;
};
A58A5A25185801FF0099683E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
- PRODUCT_NAME = HPMHooking;
+ PRODUCT_NAME = HPMHooking_map;
};
name = Release;
};
A5AA94E81857956100C940C8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -1586,6 +1725,7 @@
A5AA94E91857956100C940C8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1595,6 +1735,7 @@
A5AA94F5185799B700C940C8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -1608,12 +1749,61 @@
A5AA94F6185799B700C940C8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
EXECUTABLE_PREFIX = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
+ A5B894B41A03CE25005AD22E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
+ EXECUTABLE_PREFIX = "";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ PRODUCT_NAME = HPMHooking_char;
+ };
+ name = Debug;
+ };
+ A5B894B51A03CE25005AD22E /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
+ EXECUTABLE_PREFIX = "";
+ PRODUCT_NAME = HPMHooking_char;
+ };
+ name = Release;
+ };
+ A5B894BD1A03CE5D005AD22E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
+ EXECUTABLE_PREFIX = "";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ PRODUCT_NAME = HPMHooking_login;
+ };
+ name = Debug;
+ };
+ A5B894BE1A03CE5D005AD22E /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/plugins";
+ EXECUTABLE_PREFIX = "";
+ PRODUCT_NAME = HPMHooking_login;
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -1662,7 +1852,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- A58A5A23185801FF0099683E /* Build configuration list for PBXNativeTarget "HPMHooking" */ = {
+ A58A5A23185801FF0099683E /* Build configuration list for PBXNativeTarget "HPMHooking_map" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A58A5A24185801FF0099683E /* Debug */,
@@ -1689,6 +1879,24 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ A5B894B31A03CE25005AD22E /* Build configuration list for PBXNativeTarget "HPMHooking_char" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ A5B894B41A03CE25005AD22E /* Debug */,
+ A5B894B51A03CE25005AD22E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ A5B894BC1A03CE5D005AD22E /* Build configuration list for PBXNativeTarget "HPMHooking_login" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ A5B894BD1A03CE5D005AD22E /* Debug */,
+ A5B894BE1A03CE5D005AD22E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = A56CC652185642B4009EB79C /* Project object */;
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_char.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_char.xcscheme
new file mode 100644
index 000000000..12a0d695e
--- /dev/null
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_char.xcscheme
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0610"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894AE1A03CE25005AD22E"
+ BuildableName = "HPMHooking_char.dylib"
+ BlueprintName = "HPMHooking_char"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894AE1A03CE25005AD22E"
+ BuildableName = "HPMHooking_char.dylib"
+ BlueprintName = "HPMHooking_char"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894AE1A03CE25005AD22E"
+ BuildableName = "HPMHooking_char.dylib"
+ BlueprintName = "HPMHooking_char"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_login.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_login.xcscheme
new file mode 100644
index 000000000..5fa20971c
--- /dev/null
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_login.xcscheme
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0610"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894B71A03CE5D005AD22E"
+ BuildableName = "HPMHooking_login.dylib"
+ BlueprintName = "HPMHooking_login"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894B71A03CE5D005AD22E"
+ BuildableName = "HPMHooking_login.dylib"
+ BlueprintName = "HPMHooking_login"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5B894B71A03CE5D005AD22E"
+ BuildableName = "HPMHooking_login.dylib"
+ BlueprintName = "HPMHooking_login"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_map.xcscheme
index 50337fc91..858418253 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/HPMHooking_map.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -15,8 +15,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A58A5A1E185801FF0099683E"
- BuildableName = "HPMHooking.dylib"
- BlueprintName = "HPMHooking"
+ BuildableName = "HPMHooking_map.dylib"
+ BlueprintName = "HPMHooking_map"
ReferencedContainer = "container:Hercules.xcodeproj">
</BuildableReference>
</BuildActionEntry>
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A58A5A1E185801FF0099683E"
+ BuildableName = "HPMHooking_map.dylib"
+ BlueprintName = "HPMHooking_map"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/char-server.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/char-server.xcscheme
index 0b5101f68..b9836d007 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/char-server.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/char-server.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/db2sql.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/db2sql.xcscheme
index 8aebe0f38..d7e8bdeee 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/db2sql.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/db2sql.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/login-server.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/login-server.xcscheme
index 10b7e424a..440318f1a 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/login-server.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/login-server.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/map-server.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/map-server.xcscheme
index bb95d0555..7dc549275 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/map-server.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/map-server.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/mapcache.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/mapcache.xcscheme
index 30ab4dc51..20d0f01e1 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/mapcache.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/mapcache.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/Hercules.xcodeproj/xcshareddata/xcschemes/sample.xcscheme b/Hercules.xcodeproj/xcshareddata/xcschemes/sample.xcscheme
index a9df36929..0fcd90852 100644
--- a/Hercules.xcodeproj/xcshareddata/xcschemes/sample.xcscheme
+++ b/Hercules.xcodeproj/xcshareddata/xcschemes/sample.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0500"
+ LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "A5AA94E61857956100C940C8"
+ BuildableName = "sample.dylib"
+ BlueprintName = "sample"
+ ReferencedContainer = "container:Hercules.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
diff --git a/conf/battle/battle.conf b/conf/battle/battle.conf
index fc962b008..42d9a7262 100644
--- a/conf/battle/battle.conf
+++ b/conf/battle/battle.conf
@@ -103,7 +103,12 @@ weapon_defense_type: 0
magic_defense_type: 0
// Change attacker's direction to face opponent on every attack? (Note 3)
-attack_direction_change: 15
+// NOTE: On official servers knockback of some skills like Firewall is always based on the
+// last direction walked. Even when attacking in a completely different direction, the
+// knockback direction won't change, so e.g. if you walk north and then attack an enemy to
+// the south you will still be knocked back to the south by Firewall. Immobile monsters
+// will always be knocked back to the south as their default direction is north.
+attack_direction_change: 0
// For those who is set, their innate attack element is "not elemental"
// (100% versus on all defense-elements) (Note 3)
@@ -146,3 +151,7 @@ autospell_check_range: no
// If both the attacker and the target are on the same tile, should the target be knocked back to the left?
// Official behavior is "yes", setting this to "no" will knock the target back behind the attacker.
knockback_left: yes
+
+// Should the target be able of dodging damage by snapping away to the edge of the screen?
+// Official behavior is "no"
+snap_dodge: no
diff --git a/conf/battle/feature.conf b/conf/battle/feature.conf
index 161ea324d..000bc318b 100644
--- a/conf/battle/feature.conf
+++ b/conf/battle/feature.conf
@@ -27,3 +27,8 @@ feature.banking: on
// Feature became unstable on clients 2012 onwards (exact date not known),
// it has been fixed on clients 2013-05-15 onwards however.
feature.auction: off
+
+// Roulette (Note 1)
+// Requires: 2014-10-22bRagexe or later
+// Off by default while test version is out; enable at your own risk -- the mean dev.
+feature.roulette: off
diff --git a/conf/battle/homunc.conf b/conf/battle/homunc.conf
index 92c4b5fe8..a33eab8ea 100644
--- a/conf/battle/homunc.conf
+++ b/conf/battle/homunc.conf
@@ -18,7 +18,7 @@
// stat window (by default they don't crit)
// 0x020: Their Min-Matk is always the same as their max
// 0x040: Skill re-use delay is reset when they are vaporized.
-hom_setting: 0x3D
+hom_setting: 0x1D
// The rate a homunculus will get friendly by feeding it. (Note 2)
homunculus_friendly_rate: 100
diff --git a/conf/battle/items.conf b/conf/battle/items.conf
index 2b342f4f2..09210a3ea 100644
--- a/conf/battle/items.conf
+++ b/conf/battle/items.conf
@@ -86,3 +86,10 @@ item_restricted_consumption_type: 1
// 1 : yes(official)
// 0 : no
item_enabled_npc: 1
+
+// Unequip the equipments that has disabled by map_zone_db.conf ?
+// 0 : disabled equipments and cards are nullify (official)
+// 1 : disabled equipments are unequip, disabled cards are nullify
+// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip
+// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2)
+unequip_restricted_equipment: 0
diff --git a/conf/battle/misc.conf b/conf/battle/misc.conf
index dd3d57aaa..b9aaa2356 100644
--- a/conf/battle/misc.conf
+++ b/conf/battle/misc.conf
@@ -80,10 +80,15 @@ duel_time_interval: 60
// Restrict duel usage to same map
duel_only_on_same_map: no
-// Determines max number of characters that can stack within a single cell.
-// NOTE: For this setting to make effect you have to use a server compiled with
-// Cell Stack Limit support (see src/map/map.h)
-cell_stack_limit: 1
+// Determines max number of characters that can stack within a single cell.
+// Official - Only affects the walking routines of characters, including monsters.
+// If a unit stops walking and is on a cell with more than stack limit
+// characters on it, it will walk to the closest free cell.
+// Custom - This variation will make every full cell to be considered a wall.
+// NOTE: For this setting to take effect you have to use a server compiled
+// with Cell Stack Limit support (see src/map/map.h)
+official_cell_stack_limit: 1
+custom_cell_stack_limit: 1
// Allow autotrade only in map with autotrade flag?
// Set this to "no" will allow autotrade where no "autotrade" mapflag is set
diff --git a/conf/battle/monster.conf b/conf/battle/monster.conf
index 50d661087..b26bda207 100644
--- a/conf/battle/monster.conf
+++ b/conf/battle/monster.conf
@@ -29,9 +29,7 @@ monster_max_aspd: 199
// 0x004: If not set, mobs that can change target only do so when melee attacked
// (distance player/mob < 3), otherwise mobs may change target and chase
// ranged attackers. This flag also overrides the 'provoke' target.
-// 0x008: If set, when a mob loses track of their target, they stop walking
-// immediately. Otherwise, they continue to their last target tile. When
-// set mobs also scatter as soon as they lose their target. Use this mode
+// 0x008: When set, mobs scatter as soon as they lose their target. Use this mode
// to make it much harder to mob-train by hiding and collecting them on a
// single spot (ie: GrimTooth training)
// 0x010: If set, mob skills defined for friends will also trigger on themselves.
@@ -52,6 +50,17 @@ monster_max_aspd: 199
// Example: 0x140 -> Chase players through warps + use skills in random order.
monster_ai: 0
+// How often should a monster rethink its chase?
+// 0: Every 100ms (MIN_MOBTHINKTIME)
+// 1: Every cell moved
+// 2: Every 2 cells moved
+// 3: Every 3 cells moved (official)
+// x: Every x cells moved
+// Regardless of this setting, a monster will always rethink its chase if it has
+// reached its target. Increase this value if you want to make monsters continue
+// moving after they lost their target (hide, no line of sight, etc.).
+monster_chase_refresh: 3
+
// Should mobs be able to be warped (add as needed)?
// 0: Disable.
// 1: Enable mob-warping when standing on NPC-warps
@@ -207,3 +216,19 @@ mvp_tomb_enabled: yes
// This is only invoked under the 'monster' command, @monsterbig, and @monstersmall. (Note 1)
// Default: no
mob_size_influence: no
+
+// How should a monster be trapped by an icewall casted directly on it?
+// On official servers, monsters can only leave an icewall to the west and south. If their target is north or east of
+// them they will continously try to chase it but fail doing so. This brings them into a loop during which they will use
+// idle and chase skills. Boss monsters on the other hand will behave like a trapped monster, do not move and will use
+// idle and rudeattacked skills (when attacked).
+// 0: Monster won't be stuck in icewall at all.
+// 1: Monster will behave like a trapped monster.
+// 2-255: Number of loops a monster will go through the behavior described above before it frees itself from icewall.
+// NOTE: On some servers, normal monsters can free themselves after 15-35 second depending on their speed. On other
+// servers, they will be stuck inside icewall until it expires. Also, many official servers (e.g. iRO) have casting
+// icewall completely blocked on all maps that have boss monsters on them.
+// Default (least exploitable): mob - 75, boss - 0
+// Default (most official): mob - 220, boss - 1
+mob_icewall_walk_block: 220
+boss_icewall_walk_block: 1 \ No newline at end of file
diff --git a/conf/battle/skill.conf b/conf/battle/skill.conf
index 849989709..028228729 100644
--- a/conf/battle/skill.conf
+++ b/conf/battle/skill.conf
@@ -69,9 +69,9 @@ skill_out_range_consume: no
skillrange_by_distance: 14
// Should the equipped weapon's range override the skill's range defined in the skill_db for most weapon-based skills? (Note 3)
-// NOTE: Skills affected by this option are those whose range in the skill_db are negative. Note that unless monster_ai&0x400 is
-// set, the range of all skills is 9 for monsters.
-skillrange_from_weapon: 30
+// NOTE: Skills affected by this option are those whose range in the skill_db are negative. By default always the skill range is used.
+// Note that if you want all monster skills to have a range of 9 you need to set monster_ai&0x400.
+skillrange_from_weapon: 0
// Should a check on the caster's status be performed in all skill attacks?
// When set to yes, meteors, storm gust and any other ground skills will have
@@ -127,6 +127,13 @@ traps_setting: 0
// one hydra out)
summon_flora_setting: 3
+// When songs are canceled, terminated or the character goes out of the
+// area of effect, there's an additional effect that lasts for 20 seconds
+// Should that time be reset for each song?
+// 0: No, you must recast the song AFTER those 20 seconds to have the effect again (Aegis)
+// 1: Yes, recasting songs reset the 20 seconds timer (eathena)
+song_timer_reset: 0
+
// Whether placed down skills will check walls (Note 1)
// (Makes it so that Storm Gust/Lord of Vermillion/etc when cast next to a wall, won't hit on the other side)
skill_wall_check: yes
@@ -286,4 +293,11 @@ mob_max_skilllvl: 100
// 1: Gutter line system without demi gutter bug
// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41)
// Note: If you knock the target out of the area it will only be hit once and won't do splash damage
-bowling_bash_area: 0 \ No newline at end of file
+bowling_bash_area: 0
+
+// On official servers, Storm Gust consists of 81 units that all deal 3x3 splash damage "away from center". Due to
+// south-western cells being processed first, this usually leads to a knockback to the northeast. Knockback at the
+// edges will be away from SG. Knockback direction can also be influenced by Ganbantein and Land Protector. If you
+// punch a hole into SG it will for example create a "suck in" effect.
+// If you disable this setting, the knockback direction will be completely random (eAthena style).
+stormgust_knockback: yes
diff --git a/conf/inter-server.conf b/conf/inter-server.conf
index 184285cfd..d6b833289 100644
--- a/conf/inter-server.conf
+++ b/conf/inter-server.conf
@@ -121,8 +121,10 @@ item_db_db: item_db
item_db_re_db: item_db_re
item_db2_db: item_db2
mob_db_db: mob_db
+mob_db_re_db: mob_db_re
mob_db2_db: mob_db2
mob_skill_db_db: mob_skill_db
+mob_skill_db_re_db: mob_skill_db_re
mob_skill_db2_db: mob_skill_db2
mapreg_db: mapreg
autotrade_merchants_db: autotrade_merchants
diff --git a/conf/messages.conf b/conf/messages.conf
index d9d4e9411..3ec46eb92 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -1232,7 +1232,10 @@
1289: %s spawns in:
1290: This monster does not spawn normally.
-//1291-1294 FREE
+// @mobinfo ...
+1291: ATK:%d~%d MATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d)
+
+//1292-1294 FREE
// @version
1295: %s revision '%s' (src) / '%s' (scripts)
diff --git a/configure b/configure
index 52551bbe9..52050b25c 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in f354000.
+# From configure.in 2ae9f0c.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
@@ -623,9 +623,10 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
-DLLEXT
HAVE_PERL
HAVE_DOXYGEN
+PLUGINSTATIC
+STATIC
PCRE_CFLAGS
PCRE_LIBS
HAVE_PCRE
@@ -634,6 +635,7 @@ MYSQL_CFLAGS
MYSQL_VERSION
HAVE_MYSQL
MYSQL_CONFIG_HOME
+DLLEXT
WITH_PLUGINS
SOFLAGS
AR
@@ -701,6 +703,8 @@ enable_rdtsc
enable_profiler
enable_64bit
enable_lto
+enable_static
+enable_sanitize
enable_renewal
with_maxconn
with_mysql
@@ -1351,6 +1355,10 @@ Optional Features:
--disable-64bit Enforce 32bit output on x86_64 systems.
--enable-lto Enables or Disables Linktime Code Optimization (LTO
is enabled by default)
+ --enable-static Enables or Disables Statick Linking (STATIC is
+ disabled by default)
+ --enable-sanitize Enables or Disables Sanitize Address Checking
+ (SANITIZE is disabled by default)
--disable-renewal Disable Ragnarok Renewal support (override settings
in src/config/renewal.h)
@@ -3657,6 +3665,46 @@ fi
#
+# static linking
+#
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static;
+ enable_static="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) as_fn_error $? "invalid argument --enable-static=$disableval... stopping" "$LINENO" 5;;
+ esac
+
+else
+ enable_static="no"
+
+fi
+
+
+
+#
+# adress sanitize
+#
+# Check whether --enable-sanitize was given.
+if test "${enable_sanitize+set}" = set; then :
+ enableval=$enable_sanitize;
+ enable_sanitize="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) as_fn_error $? "invalid argument --enable-sanitize=$disableval... stopping" "$LINENO" 5;;
+ esac
+
+else
+ enable_sanitize="no"
+
+fi
+
+
+
+#
# Renewal
#
# Check whether --enable-renewal was given.
@@ -5007,6 +5055,54 @@ fi
fi
+#
+# sanitize Support test
+#
+if test "$enable_sanitize" != "no" ; then
+
+ OLD_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fsanitize=address"
+
+ OLD_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -fsanitize=address"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fsanitize=address" >&5
+$as_echo_n "checking whether $CC supports -fsanitize=address... " >&6; }
+ if test "$cross_compiling" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: guessing no" >&5
+$as_echo "guessing no" >&6; }
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ int main(int argc, char **argv){
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$OLD_CFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+
+
@@ -6526,6 +6622,57 @@ case $enable_renewal in
esac
#
+# Host specific stuff
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host OS" >&5
+$as_echo_n "checking host OS... " >&6; }
+host_os="`uname`"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $host_os" >&5
+$as_echo "$host_os" >&6; }
+fd_setsize=""
+DLLEXT=".so"
+case $host_os in
+Solaris* )
+ LIBS="$LIBS -lsocket -lnsl -ldl"
+ ;;
+Linux* )
+ LIBS="$LIBS -ldl"
+ ;;
+FreeBSD*)
+ CPPFLAGS="$CPPFLAGS -D__FREEBSD__"
+ ;;
+NetBSD*)
+ CPPFLAGS="$CPPFLAGS -D__NETBSD__"
+ ;;
+CYGWIN*)
+ CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096 -DCYGWIN"
+ fd_setsize="done"
+ DLLEXT=".dll"
+ ;;
+Darwin*)
+ DLLEXT=".dylib"
+ ;;
+esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MinGW" >&5
+$as_echo_n "checking for MinGW... " >&6; }
+if test -n "`$CC --version 2>/dev/null | grep -i mingw`" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ CPPFLAGS="$CPPFLAGS -DMINGW"
+ if test -z "$fd_setsize" ; then
+ CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096"
+ fi
+ LIBS="$LIBS -lws2_32"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+#
# zlib library (required)
#
if test -n "${ZLIB_HOME}" ; then
@@ -7248,45 +7395,10 @@ else
MYSQL_VERSION="unknown"
fi
-MYSQL_OLD_LDFLAGS="$LDFLAGS" ; LDFLAGS="$LDFLAGS $MYSQL_LIBS"
+MYSQL_OLD_LIBS="$LIBS" ; LIBS="$LIBS $MYSQL_LIBS"
MYSQL_OLD_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="$CPPFLAGS $MYSQL_CFLAGS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mysql_init in -lmysqlclient" >&5
-$as_echo_n "checking for mysql_init in -lmysqlclient... " >&6; }
-if ${ac_cv_lib_mysqlclient_mysql_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmysqlclient $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char mysql_init ();
-int
-main ()
-{
-return mysql_init ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_mysqlclient_mysql_init=yes
-else
- ac_cv_lib_mysqlclient_mysql_init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mysqlclient_mysql_init" >&5
-$as_echo "$ac_cv_lib_mysqlclient_mysql_init" >&6; }
-if test "x$ac_cv_lib_mysqlclient_mysql_init" = xyes; then :
+ac_fn_c_check_func "$LINENO" "mysql_init" "ac_cv_func_mysql_init"
+if test "x$ac_cv_func_mysql_init" = xyes; then :
HAVE_MYSQL="yes"
fi
@@ -7299,7 +7411,7 @@ fi
CPPFLAGS="$MYSQL_OLD_CPPFLAGS"
-LDFLAGS="$MYSQL_OLD_LDFLAGS"
+LIBS="$MYSQL_OLD_LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MySQL library (required)" >&5
$as_echo_n "checking MySQL library (required)... " >&6; }
@@ -7444,6 +7556,107 @@ fi
+
+#
+# static Support test
+#
+if test "$enable_static" != "no" ; then
+
+ STATIC="-static"
+ PLUGINSTATIC="-static-libgcc"
+
+ OLD_CFLAGS="$CFLAGS"
+ OLD_LDFLAGS="$LDFLAGS"
+ OLD_LIBS="$LIBS"
+
+ CFLAGS="$OLD_CFLAGS $MYSQL_CFLAGS $PCRE_CFLAGS -static"
+ LDFLAGS="$OLD_LDFLAGS -static"
+ LIBS="$OLD_LIBS $MYSQL_LIBS $PCRE_LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -static" >&5
+$as_echo_n "checking whether $CC supports -static... " >&6; }
+ if test "$cross_compiling" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: guessing no" >&5
+$as_echo "guessing no" >&6; }
+ STATIC=""
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ int main(int argc, char **argv){
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ STATIC=""
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ CFLAGS="$OLD_CFLAGS -static-libgcc"
+ LDFLAGS="$OLD_LDFLAGS -static-libgcc"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -static-libgcc" >&5
+$as_echo_n "checking whether $CC supports -static-libgcc... " >&6; }
+ if test "$cross_compiling" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: guessing no" >&5
+$as_echo "guessing no" >&6; }
+ PLUGINSTATIC=""
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ int main(int argc, char **argv){
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PLUGINSTATIC=""
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+ CFLAGS="$OLD_CFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+ LIBS="$OLD_LIBS"
+fi
+
+STATIC=${STATIC}
+
+PLUGINSTATIC=${PLUGINSTATIC}
+
+
+
+
#
# Doxygen, perl (for HPMHookGen)
#
@@ -7526,57 +7739,6 @@ fi
-#
-# Host specific stuff
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host OS" >&5
-$as_echo_n "checking host OS... " >&6; }
-host_os="`uname`"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $host_os" >&5
-$as_echo "$host_os" >&6; }
-fd_setsize=""
-DLLEXT=".so"
-case $host_os in
-Solaris* )
- LIBS="$LIBS -lsocket -lnsl -ldl"
- ;;
-Linux* )
- LIBS="$LIBS -ldl"
- ;;
-FreeBSD*)
- CPPFLAGS="$CPPFLAGS -D__FREEBSD__"
- ;;
-NetBSD*)
- CPPFLAGS="$CPPFLAGS -D__NETBSD__"
- ;;
-CYGWIN*)
- CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096 -DCYGWIN"
- fd_setsize="done"
- DLLEXT=".dll"
- ;;
-Darwin*)
- DLLEXT=".dylib"
- ;;
-esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MinGW" >&5
-$as_echo_n "checking for MinGW... " >&6; }
-if test -n "`$CC --version 2>/dev/null | grep -i mingw`" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CPPFLAGS="$CPPFLAGS -DMINGW"
- if test -z "$fd_setsize" ; then
- CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096"
- fi
- LIBS="$LIBS -lws2_32"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
###############################################################################
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
diff --git a/configure.in b/configure.in
index e236c25fe..ec3b1f735 100644
--- a/configure.in
+++ b/configure.in
@@ -272,6 +272,52 @@ AC_ARG_ENABLE(
#
+# static linking
+#
+AC_ARG_ENABLE(
+ [static],
+ AC_HELP_STRING(
+ [--enable-static],
+ [
+ Enables or Disables Statick Linking (STATIC is disabled by default)
+ ]
+ ),
+ [
+ enable_static="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) AC_MSG_ERROR([[invalid argument --enable-static=$disableval... stopping]]);;
+ esac
+ ],
+ [enable_static="no"]
+)
+
+
+#
+# adress sanitize
+#
+AC_ARG_ENABLE(
+ [sanitize],
+ AC_HELP_STRING(
+ [--enable-sanitize],
+ [
+ Enables or Disables Sanitize Address Checking (SANITIZE is disabled by default)
+ ]
+ ),
+ [
+ enable_sanitize="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) AC_MSG_ERROR([[invalid argument --enable-sanitize=$disableval... stopping]]);;
+ esac
+ ],
+ [enable_sanitize="no"]
+)
+
+
+#
# Renewal
#
AC_ARG_ENABLE(
@@ -575,6 +621,39 @@ if test "$enable_lto" != "no" ; then
fi
+#
+# sanitize Support test
+#
+if test "$enable_sanitize" != "no" ; then
+
+ OLD_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fsanitize=address"
+
+ OLD_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -fsanitize=address"
+
+ AC_MSG_CHECKING([whether $CC supports -fsanitize=address])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([
+ int main(int argc, char **argv){
+ return 0;
+ }
+ ])],
+ [
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ CFLAGS="$OLD_CFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+ ],
+ [
+ AC_MSG_RESULT([guessing no])
+ ]
+ )
+fi
+
+
AC_DEFUN(AC_CHECK_COMPILER_WFLAG,
[
AC_MSG_CHECKING([whether $CC supports -W$1])
@@ -1039,6 +1118,52 @@ case $enable_renewal in
esac
#
+# Host specific stuff
+#
+AC_MSG_CHECKING([host OS])
+host_os="`uname`"
+AC_MSG_RESULT([$host_os])
+fd_setsize=""
+DLLEXT=".so"
+case $host_os in
+Solaris* )
+ LIBS="$LIBS -lsocket -lnsl -ldl"
+ ;;
+Linux* )
+ LIBS="$LIBS -ldl"
+ ;;
+FreeBSD*)
+ CPPFLAGS="$CPPFLAGS -D__FREEBSD__"
+ ;;
+NetBSD*)
+ CPPFLAGS="$CPPFLAGS -D__NETBSD__"
+ ;;
+CYGWIN*)
+ CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096 -DCYGWIN"
+ fd_setsize="done"
+ DLLEXT=".dll"
+ ;;
+Darwin*)
+ DLLEXT=".dylib"
+ ;;
+esac
+AC_SUBST([DLLEXT])
+
+AC_MSG_CHECKING([for MinGW])
+if test -n "`$CC --version 2>/dev/null | grep -i mingw`" ; then
+ AC_MSG_RESULT([yes])
+ CPPFLAGS="$CPPFLAGS -DMINGW"
+ if test -z "$fd_setsize" ; then
+ CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096"
+ fi
+ LIBS="$LIBS -lws2_32"
+else
+ AC_MSG_RESULT([no])
+fi
+
+
+
+#
# zlib library (required)
#
if test -n "${ZLIB_HOME}" ; then
@@ -1131,12 +1256,12 @@ else
MYSQL_VERSION="unknown"
fi
-MYSQL_OLD_LDFLAGS="$LDFLAGS" ; LDFLAGS="$LDFLAGS $MYSQL_LIBS"
+MYSQL_OLD_LIBS="$LIBS" ; LIBS="$LIBS $MYSQL_LIBS"
MYSQL_OLD_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="$CPPFLAGS $MYSQL_CFLAGS"
-AC_CHECK_LIB([mysqlclient], [mysql_init], [HAVE_MYSQL="yes"], [])
+AC_CHECK_FUNC([mysql_init], [HAVE_MYSQL="yes"])
AC_CHECK_HEADER([mysql.h], [], [HAVE_MYSQL=""])
CPPFLAGS="$MYSQL_OLD_CPPFLAGS"
-LDFLAGS="$MYSQL_OLD_LDFLAGS"
+LIBS="$MYSQL_OLD_LIBS"
AC_MSG_CHECKING([MySQL library (required)])
if test "$HAVE_MYSQL" = "yes" ; then
@@ -1195,59 +1320,82 @@ AC_SUBST([HAVE_PCRE])
AC_SUBST([PCRE_LIBS])
AC_SUBST([PCRE_CFLAGS])
+
#
-# Doxygen, perl (for HPMHookGen)
+# static Support test
#
+if test "$enable_static" != "no" ; then
-AC_CHECK_PROG([HAVE_DOXYGEN],[doxygen],[yes],[no])
+ STATIC="-static"
+ PLUGINSTATIC="-static-libgcc"
-AC_CHECK_PROG([HAVE_PERL],[perl],[yes],[no])
+ OLD_CFLAGS="$CFLAGS"
+ OLD_LDFLAGS="$LDFLAGS"
+ OLD_LIBS="$LIBS"
-#
-# Host specific stuff
-#
-AC_MSG_CHECKING([host OS])
-host_os="`uname`"
-AC_MSG_RESULT([$host_os])
-fd_setsize=""
-DLLEXT=".so"
-case $host_os in
-Solaris* )
- LIBS="$LIBS -lsocket -lnsl -ldl"
- ;;
-Linux* )
- LIBS="$LIBS -ldl"
- ;;
-FreeBSD*)
- CPPFLAGS="$CPPFLAGS -D__FREEBSD__"
- ;;
-NetBSD*)
- CPPFLAGS="$CPPFLAGS -D__NETBSD__"
- ;;
-CYGWIN*)
- CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096 -DCYGWIN"
- fd_setsize="done"
- DLLEXT=".dll"
- ;;
-Darwin*)
- DLLEXT=".dylib"
- ;;
-esac
-AC_SUBST([DLLEXT])
+ CFLAGS="$OLD_CFLAGS $MYSQL_CFLAGS $PCRE_CFLAGS -static"
+ LDFLAGS="$OLD_LDFLAGS -static"
+ LIBS="$OLD_LIBS $MYSQL_LIBS $PCRE_LIBS"
-AC_MSG_CHECKING([for MinGW])
-if test -n "`$CC --version 2>/dev/null | grep -i mingw`" ; then
- AC_MSG_RESULT([yes])
- CPPFLAGS="$CPPFLAGS -DMINGW"
- if test -z "$fd_setsize" ; then
- CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=4096"
- fi
- LIBS="$LIBS -lws2_32"
-else
- AC_MSG_RESULT([no])
+ AC_MSG_CHECKING([whether $CC supports -static])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([
+ int main(int argc, char **argv){
+ return 0;
+ }
+ ])],
+ [
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ STATIC=""
+ ],
+ [
+ AC_MSG_RESULT([guessing no])
+ STATIC=""
+ ]
+ )
+ CFLAGS="$OLD_CFLAGS -static-libgcc"
+ LDFLAGS="$OLD_LDFLAGS -static-libgcc"
+
+ AC_MSG_CHECKING([whether $CC supports -static-libgcc])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([
+ int main(int argc, char **argv){
+ return 0;
+ }
+ ])],
+ [
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ PLUGINSTATIC=""
+ ],
+ [
+ AC_MSG_RESULT([guessing no])
+ PLUGINSTATIC=""
+ ]
+ )
+
+ CFLAGS="$OLD_CFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+ LIBS="$OLD_LIBS"
fi
+AC_SUBST(STATIC, ${STATIC})
+AC_SUBST(PLUGINSTATIC, ${PLUGINSTATIC})
+
+
+
+#
+# Doxygen, perl (for HPMHookGen)
+#
+AC_CHECK_PROG([HAVE_DOXYGEN],[doxygen],[yes],[no])
+
+AC_CHECK_PROG([HAVE_PERL],[perl],[yes],[no])
###############################################################################
AC_OUTPUT
diff --git a/db/const.txt b/db/const.txt
index 8023fc30f..c7fff2825 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -712,7 +712,10 @@ SC_CONFUSION 7
SC_BLIND 8
SC_BLOODING 9
SC_DPOISON 10
-SC_BURNING 11
+SC_FEAR 11
+SC_COLD 12
+SC_BURNING 13
+SC_DEEP_SLEEP 14
SC_PROVOKE 20
SC_ENDURE 21
SC_TWOHANDQUICKEN 22
@@ -993,7 +996,6 @@ SC_FOOD_VIT_CASH 306
SC_FOOD_DEX_CASH 307
SC_FOOD_INT_CASH 308
SC_FOOD_LUK_CASH 309
-SC_FEAR 310
SC_FROSTMISTY 311
SC_ENCHANTBLADE 312
SC_DEATHBOUND 313
@@ -1071,7 +1073,6 @@ SC_BANDING_DEFENCE 384
SC_EARTHDRIVE 385
SC_INSPIRATION 386
SC_SPELLFIST 387
-SC_COLD 388
SC_STRIKING 389
SC_WARMER 390
SC_VACUUM_EXTREME 391
@@ -1083,7 +1084,6 @@ SC_RUSH_WINDMILL 396
SC_ECHOSONG 397
SC_HARMONIZE 398
SC_SIREN 399
-SC_DEEP_SLEEP 400
SC_SIRCLEOFNATURE 401
SC_GLOOMYDAY 402
SC_GLOOMYDAY_SK 403
@@ -1263,6 +1263,16 @@ SC__MAELSTROM 576
SC__CHAOS 577
SC__FEINTBOMB_MASTER 578
SC_FALLENEMPIRE 579
+SC_FLASHCOMBO 580
+SC_DEFSET 581
+SC_MDEFSET 582
+SC_NO_SWITCH_EQUIP 583
+
+// 2014 Halloween Event
+SC_MTF_MHP 584
+SC_MTF_MSP 585
+SC_MTF_PUMPKIN 586
+SC_MTF_HITFLEE 587
e_gasp 0
e_what 1
@@ -3354,3 +3364,23 @@ PC_NAME 0
PC_PARTY 1
PC_GUILD 2
PC_MAP 3
+
+// sc_start
+SCFLAG_NONE 0x00
+SCFLAG_NOAVOID 0x01
+SCFLAG_FIXEDTICK 0x02
+SCFLAG_LOADED 0x04
+SCFLAG_FIXEDRATE 0x08
+SCFLAG_NOICON 0x10
+
+// Mount types
+MOUNT_NONE 0
+MOUNT_PECO 1
+MOUNT_WUG 2
+MOUNT_MADO 3
+MOUNT_DRAGON 4
+MOUNT_DRAGON_GREEN 4
+MOUNT_DRAGON_BROWN 5
+MOUNT_DRAGON_GRAY 6
+MOUNT_DRAGON_BLUE 7
+MOUNT_DRAGON_RED 8
diff --git a/db/homunculus_db.txt b/db/homunculus_db.txt
deleted file mode 100644
index d099db173..000000000
--- a/db/homunculus_db.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-// Homunculus Database
-//
-// Structure of Database:
-// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
-//
-// 01. Class Homunculus ID.
-// 02. EvoClass Homunculus ID of the evolved version.
-// 03. Name Name of the homunculus.
-// 04. FoodID Item ID of the homunuclus food.
-// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
-// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
-// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
-// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
-// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
-// The element level is always 1.
-// ...
-//
-// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
-// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
-
-6001,6009,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
-6002,6010,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
-6003,6011,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
-6004,6012,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
-6005,6013,Lif,537,60000,0,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
-6006,6014,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
-6007,6015,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
-6008,6016,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
-6048,6048,Eira,6098,60000,1,1,7,0,700,150,40,17,20,15,35,24,12,60,100,4,9,5,19,5,19,5,19,4,20,6,20,6,20,1,10,10,20,1,5,1,4,1,5,4,10,1,10,1,3
-6049,6049,Bayeri,6112,60000,1,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
-6050,6050,Sera,6108,60000,1,1,4,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,8,20,1,10,3,19,4,20,3,19,5,15,5,15,4,10,1,10,1,3,1,4,1,5,1,5
-6051,6051,Dieter,6104,60000,1,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,10,1,10,1,10,1,10,1,10,1,10
-6052,6052,Eleanor,6115,60000,1,1,2,0,700,320,10,20,17,35,11,24,12,80,130,1,4,8,20,4,20,4,20,1,10,3,19,3,19,10,20,1,10,1,10,1,5,4,10,1,3,1,4,1,5
diff --git a/db/item_db2.conf b/db/item_db2.conf
index f552f5d44..b209b0f79 100644
--- a/db/item_db2.conf
+++ b/db/item_db2.conf
@@ -29,6 +29,27 @@ item_db: (
Refine: Refineable (boolean, defaults to true)
View: View ID (int, defaults to 0)
BindOnEquip: true/false (boolean, defaults to false)
+ BuyingStore: true/false (boolean, defaults to false)
+ Delay: Delay to use item (int, defaults to 0)
+ KeepAfterUse: true/false (boolean, defaults to false)
+ Trade: { (defaults to no restrictions)
+ override: GroupID (int, defaults to 100)
+ nodrop: true/false (boolean, defaults to false)
+ notrade: true/false (boolean, defaults to false)
+ partneroverride: true/false (boolean, defaults to false)
+ noselltonpc: true/false (boolean, defaults to false)
+ nocart: true/false (boolean, defaults to false)
+ nostorage: true/false (boolean, defaults to false)
+ nogstorage: true/false (boolean, defaults to false)
+ nomail: true/false (boolean, defaults to false)
+ noauction: true/false (boolean, defaults to false)
+ }
+ Nouse: { (defaults to no restrictions)
+ override: GroupID (int, defaults to 100)
+ sitting: true/false (boolean, defaults to false)
+ }
+ Stack: [amount, type] (int, defaults to 0)
+ Sprite: SpriteID (int, defaults to 0)
Script: <"
Script
(it can be multi-line)
diff --git a/db/mercenary_db.txt b/db/mercenary_db.txt
index 6adbae8ee..63c552623 100644
--- a/db/mercenary_db.txt
+++ b/db/mercenary_db.txt
@@ -10,8 +10,8 @@
1965,M_WILD_ROSE,Wild Rose,38,2980,130,2,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,100,964,864,288
1966,M_DOPPELGANGER,Doppelganger,72,7800,200,2,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,100,480,480,288
1967,M_YGNIZEM,Egnigem Cenia,58,11200,320,2,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,145,576,432,288
-2000,M_GAMEMASTER,[GM] Game Master,50,7000,250,2,100,50,6,17,1,109,1,60,215,111,10,0,0,7,20,150,450,432,300
-2001,F_GAMEMASTER,[GM] Game Master,50,7000,250,2,100,50,6,17,1,109,1,60,215,111,10,0,0,7,20,150,450,432,300
+2000,M_GAMEMASTER,Male Game Master,50,7000,250,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,200,300,384,288
+2001,F_GAMEMASTER,Female Game Master,50,7000,250,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,200,300,384,288
2034,M_DESERT_WOLF_B,Baby Desert Wolf,9,164,15,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,100,1600,900,240
2037,VALKYRIE_A,Valkyrie Randgris,90,5000,15,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,100,576,576,480
2038,VALKYRIE_B,Valkyrie Randgris,90,10000,15,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,100,576,576,480
diff --git a/db/mob_db2.txt b/db/mob_db2.txt
index 3ab8fb9cf..f38c1d462 100644
--- a/db/mob_db2.txt
+++ b/db/mob_db2.txt
@@ -3,7 +3,7 @@
// Structure of Database :
// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper
-// rAthena Dev Team
+// Athena Dev Team
//1900,VALARIS,Valaris,Valaris,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1
//1901,VALARIS_WORSHIPPER,Valaris's Worshipper,Valaris's Worshipper,50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x1685,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1
//1902,MC_CAMERI,MC Cameri,MC Cameri,99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1
diff --git a/db/pet_db.txt b/db/pet_db.txt
index 24e5e4cfd..bf7623c9b 100644
--- a/db/pet_db.txt
+++ b/db/pet_db.txt
@@ -43,10 +43,6 @@
//Casts a support skill when the health levels are below the specified hp% and
//sp%. Delay is the minimum time in seconds before the skill can be cast again
-//petheal amount, delay, hp%, sp%
-//Similar to petskillsupport, but the skill is fixed to heal (28) and the
-//heal-amount is fixed to the value given.
-
//petrecovery type, delay: Cures the "type" status effect after "delay" seconds
//petskillbonus type, value, duration, delay
@@ -55,8 +51,7 @@
//delay is the time elapsed after the bonus ends and before it starts again.
//A single pet can have petloot, petskillbonus, petskillattack (or
-//petskillattack2) and petskillsupport (or petheal) at the same time,
-//but only one of each.
+//petskillattack2) and petskillsupport at the same time, but only one of each.
1002,PORING,Poring,619,9001,10013,531,80,60,50,100,250,20,2000,150,1,0,350,400,800,{ petloot 10; },{ bonus bLuk,2; bonus bCritical,1; }
1113,DROPS,Drops,620,9002,10013,508,80,60,40,100,250,20,1500,150,1,0,300,400,500,{ petloot 10; },{ bonus bHit,3; bonus bAtk,3; }
@@ -77,7 +72,7 @@
1023,ORK_WARRIOR,Orc Warrior,635,9017,10009,537,80,60,20,100,250,20,500,150,1,0,600,200,300,{ petskillattack2 "NPC_PIERCINGATT",100,1,0,10; },{ bonus bAtk,10; bonus bDef,-3; }
1026,MUNAK,Munak,636,9018,10008,537,80,60,20,100,250,20,500,150,0,0,300,750,300,{ petskillattack2 "NPC_DARKNESSATTACK",444,1,0,10; },{ bonus bInt,1; bonus bDef,1; }
1110,DOKEBI,Dokebi,637,9019,10005,537,80,60,20,100,250,20,500,150,0,0,300,300,800,{ petskillattack "BS_HAMMERFALL",1,0,10; },{ bonus bMatkRate,1; bonus bAtkRate,-1; }
-1170,SOHEE,Sohee,638,9020,10016,537,80,60,10,100,250,20,500,150,0,0,100,1000,200,{ petheal 400,60,33,100; },{ bonus bStr,1; bonus bDex,1; }
+1170,SOHEE,Sohee,638,9020,10016,537,80,60,10,100,250,20,500,150,0,0,100,1000,200,{ petskillsupport AL_HEAL,10,60,33,100; },{ bonus bStr,1; bonus bDex,1; }
1029,ISIS,Isis,639,9021,10006,537,80,60,10,100,250,20,500,150,0,0,650,450,150,{ petskillsupport "PR_MAGNIFICAT",2,60,50,50; },{ bonus bMatkRate,-1; bonus bAtkRate,1; }
1155,PETIT,Petite,640,9022,10011,537,80,60,20,100,250,20,500,150,0,0,800,400,100,{ petskillattack2 "WZ_HEAVENDRIVE",500,1,0,10; },{ bonus bDef,-2; bonus bMdef,-2; bonus bAspdRate,1; }
1109,DEVIRUCHI,Deviruchi,641,9023,10004,711,80,60,10,100,250,20,500,150,0,0,800,200,100,{ petskillbonus bAgiDexStr,6,20,40; },{ bonus bMatkRate,1; bonus bAtkRate,1; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }
diff --git a/db/pet_db2.txt b/db/pet_db2.txt
index cf39171e8..ca5e4e14a 100644
--- a/db/pet_db2.txt
+++ b/db/pet_db2.txt
@@ -43,10 +43,6 @@
//Casts a support skill when the health levels are below the specified hp% and
//sp%. Delay is the minimum time in seconds before the skill can be cast again
-//petheal amount, delay, hp%, sp%
-//Similar to petskillsupport, but the skill is fixed to heal (28) and the
-//heal-amount is fixed to the value given.
-
//petrecovery type, delay: Cures the "type" status effect after "delay" seconds
//petskillbonus type, value, duration, delay
@@ -55,6 +51,5 @@
//delay is the time elapsed after the bonus ends and before it starts again.
//A single pet can have petloot, petskillbonus, petskillattack (or
-//petskillattack2) and petskillsupport (or petheal) at the same time,
-//but only one of each.
+//petskillattack2) and petskillsupport at the same time, but only one of each.
diff --git a/db/pre-re/homunculus_db.txt b/db/pre-re/homunculus_db.txt
new file mode 100644
index 000000000..5c74b70f7
--- /dev/null
+++ b/db/pre-re/homunculus_db.txt
@@ -0,0 +1,33 @@
+// Homunculus Database
+//
+// Structure of Database:
+// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
+//
+// 01. Class Homunculus ID.
+// 02. EvoClass Homunculus ID of the evolved version.
+// 03. Name Name of the homunculus.
+// 04. FoodID Item ID of the homunuclus food.
+// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
+// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
+// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
+// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
+// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
+// The element level is always 1.
+// ...
+//
+// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
+// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
+
+6001,6009,Lif,537,60000,0,1,7,0,700,150,40,12,20,15,35,24,14,60,100,4,9,5,19,4,20,5,19,6,20,5,19,6,20,800,2400,220,480,10,30,30,50,20,40,20,40,10,30,10,20
+6002,6010,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,13,80,130,1,4,8,20,1,10,4,20,3,19,4,20,3,19,1600,3600,120,360,20,50,20,50,20,50,10,30,10,30,10,30
+6003,6011,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,3,19,1,10,4,20,8,20,3,19,1200,3200,200,400,10,30,10,30,10,30,20,50,20,50,10,20
+6004,6012,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,20,50,10,30,10,50,10,30,10,100
+6005,6013,Lif,537,60000,0,1,7,0,700,150,40,12,20,15,35,24,14,60,100,4,9,5,19,4,20,5,19,6,20,5,19,6,20,800,2400,220,480,10,30,30,50,20,40,20,40,10,30,10,20
+6006,6014,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,13,80,130,1,4,8,20,1,10,4,20,3,19,4,20,3,19,1600,3600,120,360,20,50,20,50,20,50,10,30,10,30,10,30
+6007,6015,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,3,19,1,10,4,20,8,20,3,19,1200,3200,200,400,10,30,10,30,10,30,20,50,20,50,10,20
+6008,6016,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,20,50,10,30,10,50,10,30,10,100
+6048,6048,Eira,6098,60000,1,1,8,0,700,450,120,36,60,45,105,86,42,40,160,20,42,13,39,14,48,15,25,16,36,28,42,9,18,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6049,6049,Bayeri,6112,60000,1,1,2,0,700,1060,30,60,51,105,33,86,39,90,360,48,52,18,36,22,44,16,32,12,24,8,36,20,36,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6050,6050,Sera,6108,60000,1,1,4,0,700,330,80,87,90,55,24,126,9,60,240,36,64,10,25,7,35,5,25,28,40,16,32,20,40,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6051,6051,Dieter,6104,60000,1,1,0,0,700,300,44,44,44,44,44,53,44,240,480,40,120,20,40,15,40,18,36,16,32,13,26,4,16,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6052,6052,Eleanor,6115,60000,1,1,7,0,700,310,60,87,115,27,24,108,27,60,300,10,20,20,40,5,15,24,48,12,36,10,50,2,10,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 0207b8184..ff5d7a4c8 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -31,6 +31,7 @@ item_db: (
BindOnEquip: true/false (boolean, defaults to false)
BuyingStore: true/false (boolean, defaults to false)
Delay: Delay to use item (int, defaults to 0)
+ KeepAfterUse: true/false (boolean, defaults to false)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
@@ -415,7 +416,7 @@ item_db: (
BuyingStore: true
Script: <"
itemheal rand(105,145),0;
- if(rand(1000)<250) sc_start SC_FREEZE,10000,0;
+ sc_start SC_FREEZE,10000,0,2500,SCFLAG_NONE;
">
},
{
@@ -545,7 +546,7 @@ item_db: (
BuyingStore: true
Script: <"
itemheal rand(50,100),0;
- if(rand(1000)<150) sc_start SC_STUN,3000,0;
+ sc_start SC_STUN,3000,0,1500,SCFLAG_NONE;
">
},
{
@@ -597,7 +598,7 @@ item_db: (
Script: <"
itemheal rand(105,145),0;
sc_start SC_STUN,3000,0;
- if(rand(1000)<150) sc_start SC_BLIND,2000,0;
+ sc_start SC_BLIND,2000,0,1500,SCFLAG_NONE;
">
},
{
@@ -1757,7 +1758,7 @@ item_db: (
Buy: 0
Weight: 20
BuyingStore: true
- Script: <" set Zeny,Zeny+rand(1000,10000); ">
+ Script: <" Zeny += rand(1000,10000); ">
},
{
Id: 669
@@ -1780,10 +1781,22 @@ item_db: (
{
Id: 671
AegisName: "Gold_Coin"
- Name: "Gold Coin"
- Type: 3
- Buy: 10000
- Weight: 40
+ Name: "Gold Roulette Coin"
+ Type: 2
+ Buy: 0
+ Weight: 0
+ Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteGold += 1; ">
},
{
Id: 672
@@ -1812,10 +1825,22 @@ item_db: (
{
Id: 675
AegisName: "Silver_Coin"
- Name: "Silver Coin"
- Type: 3
- Buy: 5000
- Weight: 40
+ Name: "Silver Roulette Coin"
+ Type: 2
+ Buy: 0
+ Weight: 0
+ Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteSilver += 1; ">
},
{
Id: 676
@@ -1858,7 +1883,7 @@ item_db: (
Weight: 300
BuyingStore: true
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -5957,8 +5982,8 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
- bonus3 bAutoSpell,LK_CONCENTRATION,getskilllv(LK_CONCENTRATION)>1?getskilllv(LK_CONCENTRATION):1,30;
- bonus3 bAutoSpell,LK_AURABLADE,getskilllv(LK_AURABLADE)>1?getskilllv(LK_AURABLADE):1,30;
+ bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30;
+ bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30;
}
">
@@ -13061,7 +13086,7 @@ item_db: (
bonus bAtkEle,Ele_Holy;
bonus bMatkRate,15;
bonus bInt,4;
- bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,getskilllv(AL_BLESSING)>1?getskilllv(AL_BLESSING):1,20;
+ bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,max(getskilllv(AL_BLESSING),1),20;
">
},
{
@@ -14713,7 +14738,7 @@ item_db: (
bonus bInt,1;
bonus2 bAddRace,RC_DemiHuman,95;
bonus2 bCastrate,MO_EXTREMITYFIST,-25;
- autobonus "{ bonus2 bCastrate,\"MO_EXTREMITYFIST\",-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }";
+ autobonus "{ bonus2 bCastrate,MO_EXTREMITYFIST,-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }";
bonus bUnbreakableWeapon,0;
">
},
@@ -21442,7 +21467,7 @@ item_db: (
EquipLv: 70
Script: <"
bonus bMdef,3;
- bonus3 bAutoSpellWhenHit,AL_HEAL,getskilllv(AL_HEAL)?getskilllv(AL_HEAL):1,20;
+ bonus3 bAutoSpellWhenHit,AL_HEAL,max(getskilllv(AL_HEAL),1),20;
">
},
{
@@ -40983,10 +41008,10 @@ item_db: (
nogstorage: true
}
Script: <"
- bonus2 bSkillAtk, "WZ_HEAVENDRIVE", 15 + getequiprefinerycnt(EQI_HAND_R);
- bonus2 bSkillAtk, "WZ_EARTHSPIKE", 15 + getequiprefinerycnt(EQI_HAND_R);
- bonus2 bCastrate, "WZ_HEAVENDRIVE", -25;
- bonus2 bCastrate, "WZ_EARTHSPIKE", -25;
+ bonus2 bSkillAtk, WZ_HEAVENDRIVE, 15 + getequiprefinerycnt(EQI_HAND_R);
+ bonus2 bSkillAtk, WZ_EARTHSPIKE, 15 + getequiprefinerycnt(EQI_HAND_R);
+ bonus2 bCastrate, WZ_HEAVENDRIVE, -25;
+ bonus2 bCastrate, WZ_EARTHSPIKE, -25;
;
">
},
@@ -42958,7 +42983,6 @@ item_db: (
bonus bDex,1;
bonus bAspdRate,2;
bonus bCastrate,-2;
- bonus3 bAutoSpell,MO_EXTREMITYFIST,1,30;
">
},
*/
@@ -61832,7 +61856,7 @@ item_db: (
}
Script: <"
percentheal 9,0;
- if(rand(1000)<300) sc_start SC_CURSE,30000,0;
+ sc_start SC_CURSE,30000,0,3000,SCFLAG_NONE;
">
},
{
@@ -61926,7 +61950,7 @@ item_db: (
}
Script: <"
percentheal 0,9;
- if(rand(1000)<300) sc_start SC_SILENCE,30000,0;
+ sc_start SC_SILENCE,30000,0,3000,SCFLAG_NONE;
">
},
{
@@ -63116,7 +63140,7 @@ item_db: (
Weight: 80
Script: <"
if(gettime(5)!=MDiceCone) {
- set MDiceCone,gettime(5);
+ MDiceCone = gettime(5);
percentheal 50,50;
}
@@ -63129,7 +63153,7 @@ item_db: (
Type: 2
Buy: 1
Weight: 10
- Script: <" set Zeny,Zeny+rand(1000,10000); ">
+ Script: <" Zeny += rand(1000,10000); ">
},
{
Id: 12135
@@ -63140,7 +63164,7 @@ item_db: (
Weight: 30
Script: <"
percentheal 50,50;
- if(rand(100)>=90)sc_start SC_CONFUSION,10000,0;
+ sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;
">
},
{
@@ -64431,7 +64455,7 @@ item_db: (
sitting: true
}
Script: <"
- set .@type,getiteminfo(getequipid(EQI_HAND_R),11);
+ .@type = getiteminfo(getequipid(EQI_HAND_R),11);
if (.@type==6||.@type==7||.@type==8) {
skilleffect BS_ADRENALINE,0;
sc_start SC_ADRENALINE,150000,5;
@@ -64657,7 +64681,7 @@ item_db: (
Buy: 20
Weight: 100
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -64669,7 +64693,7 @@ item_db: (
Buy: 20
Weight: 100
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -68891,6 +68915,16 @@ item_db: (
Script: <" searchstores 10,1; ">
},
{
+ Id: 12609
+ AegisName: "Old_Ore_Box"
+ Name: "Old Ore Box"
+ Type: 2
+ Buy: 20
+ Weight: 100
+ Upper: 63
+ Script: <" packageitem(); ">
+},
+{
Id: 12701
AegisName: "Old_Blue_Box_F"
Name: "Old Blue Box"
@@ -69085,7 +69119,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_PARALYSE,300000,0; ">
+ Script: <" sc_start SC_PARALYSE,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12718
@@ -69095,7 +69129,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_LEECHESEND,300000,0; ">
+ Script: <" sc_start SC_LEECHESEND,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12719
@@ -69105,7 +69139,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_OBLIVIONCURSE,300000,0; ">
+ Script: <" sc_start SC_OBLIVIONCURSE,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12720
@@ -69115,7 +69149,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_DEATHHURT,300000,0; ">
+ Script: <" sc_start SC_DEATHHURT,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12721
@@ -69125,7 +69159,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_TOXIN,300000,0; ">
+ Script: <" sc_start SC_TOXIN,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12722
@@ -69135,7 +69169,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_PYREXIA,300000,0; ">
+ Script: <" sc_start SC_PYREXIA,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12723
@@ -69145,7 +69179,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_MAGICMUSHROOM,300000,0; ">
+ Script: <" sc_start SC_MAGICMUSHROOM,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12724
@@ -69155,7 +69189,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_VENOMBLEED,15000,0; ">
+ Script: <" sc_start SC_VENOMBLEED,15000,0,10,SCFLAG_FIXEDTICK; ">
},
// Rune Knight's Rune Stones
{
@@ -69517,6 +69551,11 @@ item_db: (
nomail: true
noauction: true
}
+ Script: <"
+ autobonus "{bonus2 bAddRace,RC_Boss,5}",10000,1800000;
+ autobonus "{bonus2 bAddRace,RC_Angel,5;}",10000,1800000;
+ autobonus "{bonus2 bAddEle,Ele_Holy,5;}",10000,1800000;
+ ">
},
{
Id: 12747
@@ -69525,6 +69564,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <" autobonus "{bonus2 bSubRace,RC_Boss,5;}",10000,1800000; ">
},
{
Id: 12748
@@ -69533,6 +69573,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <" autobonus "{bonus2 bAddEle,Ele_Neutral,-5;}",10000,1800000; ">
},
{
Id: 12749
@@ -69541,6 +69582,7 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <" sc_start SC_PLUSMAGICPOWER,180000,5; ">
},
{
Id: 12750
@@ -69549,6 +69591,10 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <"
+ sc_start SC_ATTHASTE_POTION3,1800000,5;
+ sc_start SC_PLUSATTACKPOWER,1800000,5;
+ ">
},
{
Id: 12751
@@ -69557,6 +69603,10 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <"
+ sc_start SC_PROTECT_DEF,1800000,5;
+ sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;
+ ">
},
{
Id: 12752
@@ -69565,6 +69615,10 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <"
+ sc_start SC_PROTECT_MDEF,1800000,5;
+ sc_start SC_INCFLEE2,1800000,10;
+ ">
},
{
Id: 12753
@@ -69573,6 +69627,10 @@ item_db: (
Type: 2
Buy: 20
Weight: 10
+ Script: <"
+ sc_start SC_INCMHPRATE,1800000,5;
+ sc_start SC_INCMSPRATE,1800000,5;
+ ">
},
{
Id: 12754
@@ -69828,14 +69886,38 @@ item_db: (
AegisName: "Change_Slot_Card"
Name: "Character Position Change Coupon"
Type: 2
- Script: <" set SlotChange, SlotChange + 1; ">
+ Script: <" SlotChange += 1; ">
},
{
Id: 12790
AegisName: "Change_Name_Card"
Name: "Name Change Coupon"
Type: 2
- Script: <" set CharRename, CharRename + 1; ">
+ Script: <" CharRename += 1; ">
+},
+{
+ Id: 12831
+ AegisName: "Potion_Box"
+ Name: "Potion Box"
+ Type: 2
+ Buy: 0
+ Weight: 50
+ Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ getitem 545,100;
+ getitem 546,100;
+ getitem 547,100;
+ getitem 505,100;
+ ">
},
{
Id: 12848
@@ -80052,7 +80134,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14009,1; ">
+ Script: <" rentitem 14009,2592000; ">
},
{
Id: 13943
@@ -80070,7 +80152,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14010,1; ">
+ Script: <" rentitem 14010,2592000; ">
},
{
Id: 13944
@@ -80088,7 +80170,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14011,1; ">
+ Script: <" rentitem 14011,2592000; ">
},
{
Id: 13945
@@ -85479,7 +85561,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2753,1; ">
+ Script: <" rentitem 2753,604800; ">
},
{
Id: 14243
@@ -85493,7 +85575,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2754,1; ">
+ Script: <" rentitem 2754,604800; ">
},
{
Id: 14244
@@ -85507,7 +85589,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2755,1; ">
+ Script: <" rentitem 2755,604800; ">
},
{
Id: 14245
@@ -85521,7 +85603,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2756,1; ">
+ Script: <" rentitem 2756,604800; ">
},
{
Id: 14246
@@ -85535,7 +85617,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2757,1; ">
+ Script: <" rentitem 2757,604800; ">
},
{
Id: 14247
@@ -85549,7 +85631,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2758,1; ">
+ Script: <" rentitem 2758,604800; ">
},
{
Id: 14248
@@ -85563,7 +85645,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2759,1; ">
+ Script: <" rentitem 2759,604800; ">
},
{
Id: 14249
@@ -85577,7 +85659,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2760,1; ">
+ Script: <" rentitem 2760,604800; ">
},
{
Id: 14250
@@ -85591,7 +85673,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2761,1; ">
+ Script: <" rentitem 2761,604800; ">
},
{
Id: 14251
@@ -85605,7 +85687,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2762,1; ">
+ Script: <" rentitem 2762,604800; ">
},
{
Id: 14252
@@ -85619,7 +85701,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2753,1; ">
+ Script: <" rentitem 2753,1296000; ">
},
{
Id: 14253
@@ -85633,7 +85715,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2754,1; ">
+ Script: <" rentitem 2754,1296000; ">
},
{
Id: 14254
@@ -85647,7 +85729,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2755,1; ">
+ Script: <" rentitem 2755,1296000; ">
},
{
Id: 14255
@@ -85661,7 +85743,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2756,1; ">
+ Script: <" rentitem 2756,1296000; ">
},
{
Id: 14256
@@ -85675,7 +85757,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2757,1; ">
+ Script: <" rentitem 2757,1296000; ">
},
{
Id: 14257
@@ -85689,7 +85771,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2758,1; ">
+ Script: <" rentitem 2758,1296000; ">
},
{
Id: 14258
@@ -85703,7 +85785,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2759,1; ">
+ Script: <" rentitem 2759,1296000; ">
},
{
Id: 14259
@@ -85717,7 +85799,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2760,1; ">
+ Script: <" rentitem 2760,1296000; ">
},
{
Id: 14260
@@ -85731,7 +85813,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2761,1; ">
+ Script: <" rentitem 2761,1296000; ">
},
{
Id: 14261
@@ -85745,7 +85827,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2762,1; ">
+ Script: <" rentitem 2762,1296000; ">
},
{
Id: 14262
@@ -85904,7 +85986,7 @@ item_db: (
Type: 18
Buy: 20
Weight: 10
- Script: <" getitem 1638,1; ">
+ Script: <" rentitem 1638,604800; ">
},
/*
{
@@ -86771,7 +86853,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
- Script: <" sc_start SC_PLUSATTACKPOWER,180000,10; ">
+ Script: <" sc_start SC_PLUSATTACKPOWER,1800000,10; ">
},
{
Id: 14526
@@ -86780,7 +86862,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 10
- Script: <" sc_start SC_PLUSMAGICPOWER,180000,10; ">
+ Script: <" sc_start SC_PLUSMAGICPOWER,1800000,10; ">
},
{
Id: 14527
@@ -89179,4 +89261,47 @@ item_db: (
Stack: [20, 1]
Script: <" itemskill RK_LUXANIMA,1; ">
},
+{
+ Id: 22777
+ AegisName: "Buff_Gift_Set"
+ Name: "Buff Gift Set"
+ Type: 2
+ Buy: 20
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ getitem 14534,5;
+ getitem 12215,5;
+ getitem 12216,5;
+ ">
+},
+{
+ Id: 22837
+ AegisName: "Integer_Time"
+ Name: "Integer Time"
+ Type: 2
+ Buy: 0
+ Weight: 0
+ Upper: 63
+ EquipLv: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteBronze += 1; ">
+},
)
diff --git a/db/pre-re/item_packages.conf b/db/pre-re/item_packages.conf
index f01fed471..dc9346e32 100644
--- a/db/pre-re/item_packages.conf
+++ b/db/pre-re/item_packages.conf
@@ -13466,3 +13466,85 @@ Malang_Woe_Encard_Box: {
// }
}
*/
+Old_Ore_Box: {
+ Iron_Ore: {
+ Random: 1
+ Rate: 600
+ }
+ Iron: {
+ Random: 1
+ Rate: 380
+ }
+ Yellow_Live: {
+ Random: 1
+ Rate: 100
+ }
+ Coal: {
+ Random: 1
+ Rate: 80
+ }
+ Wind_Of_Verdure: {
+ Random: 1
+ Rate: 100
+ }
+ Phracon: {
+ Random: 1
+ Rate: 600
+ }
+ Crystal_Blue: {
+ Random: 1
+ Rate: 100
+ }
+ Boody_Red: {
+ Random: 1
+ Rate: 100
+ }
+ Steel: {
+ Random: 1
+ Rate: 50
+ }
+ Emveretarcon: {
+ Random: 1
+ Rate: 380
+ }
+ Elunium_Stone: {
+ Random: 1
+ Rate: 70
+ }
+ Oridecon_Stone: {
+ Random: 1
+ Rate: 80
+ }
+ Great_Nature: {
+ Random: 1
+ Rate: 40
+ }
+ Rough_Wind: {
+ Random: 1
+ Rate: 40
+ }
+ Mistic_Frozen: {
+ Random: 1
+ Rate: 40
+ }
+ Flame_Heart: {
+ Random: 1
+ Rate: 40
+ }
+ Elunium: {
+ Random: 1
+ Rate: 20
+ }
+ Oridecon: {
+ Random: 1
+ Rate: 20
+ }
+ Gold: {
+ Random: 1
+ Rate: 10
+ }
+ Emperium: {
+ Random: 1
+ Rate: 50
+ }
+} \ No newline at end of file
diff --git a/db/pre-re/map_zone_db.conf b/db/pre-re/map_zone_db.conf
index 326921a48..558a168ce 100644
--- a/db/pre-re/map_zone_db.conf
+++ b/db/pre-re/map_zone_db.conf
@@ -59,7 +59,7 @@ zones: (
},
{
/* Normal zone is applied to all maps that are not pkable (where players cant fight each other) */
- /* However, it wont be applied to maps with its own zones (specified thru mapflag) */
+ /* However, it wont be applied to maps with its own zones (specified through mapflag) */
name: "Normal" /* changing this name requires MAP_ZONE_NORMAL_NAME to also be changed in src/map/map.h file */
disabled_skills: {
diff --git a/db/size_fix.txt b/db/pre-re/size_fix.txt
index 81bba5044..81bba5044 100644
--- a/db/size_fix.txt
+++ b/db/pre-re/size_fix.txt
diff --git a/db/pre-re/skill_cast_db.txt b/db/pre-re/skill_cast_db.txt
index 95a402c4f..5021ad6e9 100644
--- a/db/pre-re/skill_cast_db.txt
+++ b/db/pre-re/skill_cast_db.txt
@@ -158,7 +158,7 @@
//-- WZ_FIREPILLAR
80,3000:2700:2400:2100:1800:1500:1200:900:600:300,1000,0,30000,600:800:1000:1200:1400:1600:1800:2000:2200:2400,0
//-- WZ_SIGHTRASHER
-81,700,2000,0,500,0,0
+81,500,2000,0,500,0,0
//-- WZ_METEOR
83,15000,2000:3000:3000:4000:4000:5000:5000:6000:6000:7000,0,500,5000,0
//-- WZ_JUPITEL
@@ -1679,7 +1679,7 @@
//-- KO_MUCHANAGE
3008,1000,0,0,100,0,10000
//-- KO_HUUMARANKA
-3009,1000:1200:1400:1600:1800,1000,0,500,0,3000
+3009,1000:1200:1400:1600:1800,1000,0,100,0,3000
//-- KO_MAKIBISHI
3010,0,0,0,12000:14000:16000:18000:20000,10000,10000
//-- KO_MEIKYOUSISUI
diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt
index 4c085b8df..739a453ae 100644
--- a/db/pre-re/skill_db.txt
+++ b/db/pre-re/skill_db.txt
@@ -124,7 +124,7 @@
77,5,6,1,6,0x28,0,10,1,yes,0,0,0,magic,0, PR_TURNUNDEAD,Turn Undead
78,9,6,1,0,0x1,0,1,0,yes,0,0,0,magic,0, PR_LEXAETERNA,Lex Aeterna
79,9,8,2,6,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, PR_MAGNUS,Magnus Exorcismus
-80,9,8,2,3,0x20,1:1:1:1:1:2:2:2:2:2:2,10,3:4:5:6:7:8:9:10:11:12:12,yes,0,0x80,5,magic,0, WZ_FIREPILLAR,Fire Pillar
+80,9,8,2,3,0x20,1:1:1:1:1:2:2:2:2:2:2,10,-3:-4:-5:-6:-7:-8:-9:-10:-11:-12:-12,yes,0,0x80,5,magic,0, WZ_FIREPILLAR,Fire Pillar
81,0,6,4,3,0,3,10,1,yes,0,0,0,magic,5, WZ_SIGHTRASHER,Sightrasher
83,9,8,2,3,0,3:3:3:3:3:3:3:3:3:3:14,10,1:1:2:2:3:3:4:4:5:5:15,yes,0,0,0,magic,0, WZ_METEOR,Meteor Storm
84,9,8,1,4,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,2:3:3:4:4:5:5:6:6:7, WZ_JUPITEL,Jupitel Thunder
@@ -578,7 +578,7 @@
532,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0, NJ_BUNSINJYUTSU,Mirror Image
533,0,0,0,0,0,0,10,0,no,0,0,0,none,0, NJ_NINPOU,Spirit of the Blade
534,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, NJ_KOUENKA,Crimson Fire Petal
-535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1, NJ_KAENSIN,Crimson Fire Formation
+535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,0, NJ_KAENSIN,Crimson Fire Formation
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0, NJ_BAKUENRYU,Raging Fire Dragon
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0, NJ_HYOUSENSOU,Spear of Ice
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0, NJ_SUITON,Hidden Water
@@ -1064,7 +1064,7 @@
3006,7:8:9:10:11,6,2,0,0x2,2,5,0,no,0,0,0,weapon,0, KO_BAKURETSU,Bakuretsu Kunai
3007,0,6,4,-1,0x42,4:4:4:4:5,5,0,no,0,0,0,misc,0, KO_HAPPOKUNAI,Happo Kunai
3008,9,8,2,0,0x12,2,10,-10,no,0,0,0,misc,0, KO_MUCHANAGE,Mucha Nage
-3009,9:10:11:12:13,8,2,-1,0x2,3,5,2,no,0,0,0,weapon,0, KO_HUUMARANKA,Huuma Shuriken Ranka
+3009,9:10:11:12:13,8,2,-1,0x2,3,5,-5,no,0,0,0,weapon,0, KO_HUUMARANKA,Huuma Shuriken Ranka
3010,3,6,4,0,0x42,0,5,1,no,0,0x80,0,weapon,0, KO_MAKIBISHI,Makibishi
3011,0,6,4,0,0x1,0,5,0,yes,0,0,0,none,0, KO_MEIKYOUSISUI,Meikyo Shisui
3012,0,6,4,0,0x1,0,5,0,no,0,0,1,none,3:4:5:6:7, KO_ZANZOU,Zanzou
diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt
index bba3670e8..2bdb0a7f3 100644
--- a/db/pre-re/skill_unit_db.txt
+++ b/db/pre-re/skill_unit_db.txt
@@ -4,7 +4,7 @@
// target = friend (party +guildmates +neutral players) / party / guild
// ally (party +guildmates) / all / sameguild (guild but no allies) / enemy
// flag 0x001(UF_DEFNOTENEMY) If 'defunit_not_enemy' is set, the target is changed to 'friend'
-// 0x002(UF_NOREITERRATION) Spell cannot be stacked
+// 0x002(UF_NOREITERATION) Spell cannot be stacked
// 0x004(UF_NOFOOTSET) Spell cannot be cast near/on targets
// 0x008(UF_NOOVERLAP) Spell effects do not overlap
// 0x010(UF_PATHCHECK) Only cells with a shootable path will be placed
@@ -35,10 +35,10 @@
79,0x84, , -1, 1,3000,enemy, 0x018 //PR_MAGNUS
80,0x87,0x88, 0, 1,2000,enemy, 0x006 //WZ_FIREPILLAR
83,0x86, , 0, 3,1000,enemy, 0x010 //WZ_METEOR
- 85,0x86, , 0, 6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x018 //WZ_VERMILION
+ 85,0x86, , 5, 1:1:1:1:1:1:1:1:1:1:3,1250,enemy,0x018 //WZ_VERMILION
87,0x8d, , -1, 0, -1,all, 0x010 //WZ_ICEWALL
- 89,0x86, , 0, 5, 450,enemy, 0x018 //WZ_STORMGUST
- 91,0x86, , 0, 2,1000,enemy, 0x010 //WZ_HEAVENDRIVE
+ 89,0x86, , 4, 1, 450,enemy, 0x018 //WZ_STORMGUST
+ 91,0x86, , 2, 0,1000,enemy, 0x010 //WZ_HEAVENDRIVE
92,0x8e, , 2, 0, -1,enemy, 0x010 //WZ_QUAGMIRE
115,0x90, , 0, 1,1000,enemy, 0x006 //HT_SKIDTRAP
116,0x93, , 0, 1,1000,enemy, 0x006 //HT_LANDMINE
@@ -50,7 +50,7 @@
122,0x8f, , 0, 1,1000,enemy, 0x006 //HT_BLASTMINE
123,0x98, , 0, 1,1000,enemy, 0x006 //HT_CLAYMORETRAP
125,0x99, , 0, 1,1000,all, 0x000 //HT_TALKIEBOX
-140,0x92, , -1, 0,1000,enemy, 0x000 //AS_VENOMDUST
+140,0x92, , -1, 1,1000,enemy, 0x000 //AS_VENOMDUST
220,0xb0, , 0, 0, -1,all, 0x002 //RG_GRAFFITI
229,0xb1, , 0, 1,1000,enemy, 0x006 //AM_DEMONSTRATION
254,0x86, , -1, 0, 300,enemy, 0x010 //CR_GRANDCROSS
@@ -67,15 +67,15 @@
312,0xa4, , 4, 0, -1,party, 0x240 //BD_INTOABYSS
313,0xa5, , 4, 0, -1,party, 0x200 //BD_SIEGFRIED
317,0xa6, , 3, 0,3000,enemy, 0x400 //BA_DISSONANCE
-319,0xa7, , 3, 0, -1,all, 0x440 //BA_WHISTLE
-320,0xa8, , 3, 0, -1,all, 0x440 //BA_ASSASSINCROSS
-321,0xa9, , 3, 0, -1,all, 0x440 //BA_POEMBRAGI
+319,0xa7, , 3, 0,3000,all, 0xC40 //BA_WHISTLE
+320,0xa8, , 3, 0,3000,all, 0xC40 //BA_ASSASSINCROSS
+321,0xa9, , 3, 0,3000,all, 0xC40 //BA_POEMBRAGI
322,0xaa, , 3, 0,6000,all, 0xC40 //BA_APPLEIDUN
325,0xab, , 3, 0,3000,enemy, 0x100 //DC_UGLYDANCE
-327,0xac, , 3, 0, -1,all, 0x140 //DC_HUMMING
-328,0xad, , 3, 0, -1,enemy, 0x100 //DC_DONTFORGETME
-329,0xae, , 3, 0, -1,all, 0x140 //DC_FORTUNEKISS
-330,0xaf, , 3, 0, -1,all, 0x140 //DC_SERVICEFORYOU
+327,0xac, , 3, 0,3000,all, 0x940 //DC_HUMMING
+328,0xad, , 3, 0,3000,enemy, 0x900 //DC_DONTFORGETME
+329,0xae, , 3, 0,3000,all, 0x940 //DC_FORTUNEKISS
+330,0xaf, , 3, 0,3000,all, 0x940 //DC_SERVICEFORYOU
336,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLPARTNER
339,0x86, , -1, 0, 300,enemy, 0x000 //NPC_DARKGRANDCROSS
362,0xb4, , 0, 2, 300,all, 0x000 //HP_BASILICA
@@ -155,7 +155,7 @@
3006,0x86, , 0, 2, 100,enemy, 0x018 //KO_BAKURETSU
3008,0x86, , 0, 2, 100,enemy, 0x018 //KO_MUCHANAGE
-3009,0x86, , 0, 3, 500,enemy, 0x018 //KO_HUUMARANKA
+3009,0x86, , 0, 3, 100,enemy, 0x018 //KO_HUUMARANKA
3020,0xf8, , 0, 3, 100,all, 0x018 //KO_ZENKAI
3010,0xfc, , 0, 0,5000,enemy, 0x018 //KO_MAKIBISHI
diff --git a/db/quest_db.txt b/db/quest_db.txt
index 42cd3c651..bd23dea69 100644
--- a/db/quest_db.txt
+++ b/db/quest_db.txt
@@ -2339,6 +2339,24 @@
14140,0,0,0,0,0,0,0,"To Wuhari"
14141,0,0,0,0,0,0,0,"Ingredients for research"
+// 2014 Halloween Event
+14450,0,0,0,0,0,0,0,"Let's help the priest"
+14451,0,0,0,0,0,0,0,"To Church"
+14452,0,0,0,0,0,0,0,"Material of holy stuff"
+14453,0,0,0,0,0,0,0,"To Niflheim"
+14454,0,0,0,0,0,0,0,"To Lutie"
+14455,0,0,0,0,0,0,0,"Back to Church"
+14456,0,0,0,0,0,0,0,"Preparing for recall"
+14457,0,0,0,0,0,0,0,"Back to Niflheim"
+14458,0,0,0,0,0,0,0,"Request of Loru"
+14459,0,0,0,0,0,0,0,"Request of Devi"
+14460,0,3382,10,0,0,0,0,"Favor of Loru"
+14461,0,0,0,0,0,0,0,"Favor of Loru"
+14462,0,3381,10,0,0,0,0,"Favor of Devi"
+14463,0,1510,20,1507,20,0,0,"Favor of Devi"
+14464,82800,0,0,0,0,0,0,"Party is going for a day"
+14465,82800,0,0,0,0,0,0,"They are still quiet"
+
16000,0,0,0,0,0,0,0,"Metz Brayde's Notice"
16001,0,0,0,0,0,0,0,"First examination"
16002,0,0,0,0,0,0,0,"Fetching Items for Arian -1"
diff --git a/db/re/homunculus_db.txt b/db/re/homunculus_db.txt
new file mode 100644
index 000000000..5c74b70f7
--- /dev/null
+++ b/db/re/homunculus_db.txt
@@ -0,0 +1,33 @@
+// Homunculus Database
+//
+// Structure of Database:
+// Class,EvoClass,Name,FoodID,HungryDelay,BaseSize,EvoSize,Race,Element,bASPD,bHP,bSP,bSTR,bAGI,bVIT,bINT,bDEX,bLUK,gnHP,gxHP,gnSP,gxSP,gnSTR,gxSTR,gnAGI,gxAGI,gnVIT,gxVIT,gnINT,gxINT,gnDEX,gxDEX,gnLUK,gxLUK,enHP,exHP,enSP,exSP,enSTR,exSTR,enAGI,exAGI,enVIT,exVIT,enINT,exINT,enDEX,exDEX,enLUK,exLUK
+//
+// 01. Class Homunculus ID.
+// 02. EvoClass Homunculus ID of the evolved version.
+// 03. Name Name of the homunculus.
+// 04. FoodID Item ID of the homunuclus food.
+// 05. HungryDelay Time interval in milliseconds after which the homunculus' hunger value is altered.
+// 06. BaseSize Size of the base homunculus class (0 = small, 1 = normal, 2 = large).
+// 07. EvoSize Size of the evolved homunculus class (0 = small, 1 = normal, 2 = large).
+// 08. Race Race of the homunculus (0 = formless, 1 = undead, 2 = brute, 3 = plant, 4 = insect, 5 = fish, 6 = demon, 7 = demi-human, 8 = angel, 9 = dragon).
+// 09. Element Element of the homunculus (0 = neutral, 1 = water, 2 = earth, 3 = fire, 4 = wind, 5 = poison, 6 = holy, 7 = dark, 8 = ghost, 9 = undead).
+// The element level is always 1.
+// ...
+//
+// Legend: b: base, gn: growth min, gx: growth max, en: evolution min, ex: evolution max
+// NOTE: Only the growth values are in a 1/10 scale, the other stats are 1/1 (eg: 5 gmAGI means 0.5 agi)
+
+6001,6009,Lif,537,60000,0,1,7,0,700,150,40,12,20,15,35,24,14,60,100,4,9,5,19,4,20,5,19,6,20,5,19,6,20,800,2400,220,480,10,30,30,50,20,40,20,40,10,30,10,20
+6002,6010,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,13,80,130,1,4,8,20,1,10,4,20,3,19,4,20,3,19,1600,3600,120,360,20,50,20,50,20,50,10,30,10,30,10,30
+6003,6011,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,3,19,1,10,4,20,8,20,3,19,1200,3200,200,400,10,30,10,30,10,30,20,50,20,50,10,20
+6004,6012,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,20,50,10,30,10,50,10,30,10,100
+6005,6013,Lif,537,60000,0,1,7,0,700,150,40,12,20,15,35,24,14,60,100,4,9,5,19,4,20,5,19,6,20,5,19,6,20,800,2400,220,480,10,30,30,50,20,40,20,40,10,30,10,20
+6006,6014,Amistr,912,60000,0,1,2,0,700,320,10,20,17,35,11,24,13,80,130,1,4,8,20,1,10,4,20,3,19,4,20,3,19,1600,3600,120,360,20,50,20,50,20,50,10,30,10,30,10,30
+6007,6015,Filir,910,60000,0,1,2,0,700,90,25,29,35,9,8,30,9,45,75,3,6,4,20,3,19,1,10,4,20,8,20,3,19,1200,3200,200,400,10,30,10,30,10,30,20,50,20,50,10,20
+6008,6016,Vanilmirth,911,60000,0,1,0,0,700,80,11,11,11,11,11,11,11,30,150,0,7,1,30,1,30,1,30,1,30,1,30,1,30,1200,4800,480,640,10,30,20,50,10,30,10,50,10,30,10,100
+6048,6048,Eira,6098,60000,1,1,8,0,700,450,120,36,60,45,105,86,42,40,160,20,42,13,39,14,48,15,25,16,36,28,42,9,18,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6049,6049,Bayeri,6112,60000,1,1,2,0,700,1060,30,60,51,105,33,86,39,90,360,48,52,18,36,22,44,16,32,12,24,8,36,20,36,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6050,6050,Sera,6108,60000,1,1,4,0,700,330,80,87,90,55,24,126,9,60,240,36,64,10,25,7,35,5,25,28,40,16,32,20,40,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6051,6051,Dieter,6104,60000,1,1,0,0,700,300,44,44,44,44,44,53,44,240,480,40,120,20,40,15,40,18,36,16,32,13,26,4,16,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
+6052,6052,Eleanor,6115,60000,1,1,7,0,700,310,60,87,115,27,24,108,27,60,300,10,20,20,40,5,15,24,48,12,36,10,50,2,10,1000,2000,10,200,1,10,1,10,1,10,1,10,1,10,1,10
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 7f9f9d306..b4b313446 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -31,6 +31,7 @@ item_db: (
BindOnEquip: true/false (boolean, defaults to false)
BuyingStore: true/false (boolean, defaults to false)
Delay: Delay to use item (int, defaults to 0)
+ KeepAfterUse: true/false (boolean, defaults to false)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
@@ -449,7 +450,7 @@ item_db: (
BuyingStore: true
Script: <"
itemheal rand(105,145),0;
- if(rand(1000)<250) sc_start SC_FREEZE,10000,0;
+ sc_start SC_FREEZE,10000,0,2500,SCFLAG_NONE;
">
},
{
@@ -588,7 +589,7 @@ item_db: (
BuyingStore: true
Script: <"
itemheal rand(50,100),0;
- if(rand(1000)<150) sc_start SC_STUN,3000,0;
+ sc_start SC_STUN,3000,0,1500,SCFLAG_NONE;
">
},
{
@@ -645,7 +646,7 @@ item_db: (
Script: <"
itemheal rand(105,145),0;
sc_start SC_STUN,3000,0;
- if(rand(1000)<150) sc_start SC_BLIND,2000,0;
+ sc_start SC_BLIND,2000,0,1500,SCFLAG_NONE;
">
},
{
@@ -1908,7 +1909,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" set Zeny,Zeny+rand(1000,10000); ">
+ Script: <" Zeny += rand(1000,10000); ">
},
{
Id: 669
@@ -1933,11 +1934,22 @@ item_db: (
{
Id: 671
AegisName: "Gold_Coin"
- Name: "Gold Coin"
- Type: 3
- Buy: 10000
- Weight: 40
+ Name: "Gold Roulette Coin"
+ Type: 2
+ Buy: 0
+ Weight: 0
Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteGold += 1; ">
},
{
Id: 672
@@ -1969,11 +1981,22 @@ item_db: (
{
Id: 675
AegisName: "Silver_Coin"
- Name: "Silver Coin"
- Type: 3
- Buy: 5000
- Weight: 40
+ Name: "Silver Roulette Coin"
+ Type: 2
+ Buy: 0
+ Weight: 0
Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteSilver += 1; ">
},
{
Id: 676
@@ -2020,7 +2043,7 @@ item_db: (
Upper: 63
BuyingStore: true
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -6214,12 +6237,12 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,25;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,1);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(), 14)-3,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
- bonus3 bAutoSpell,LK_CONCENTRATION,getskilllv(LK_CONCENTRATION)>1?getskilllv(LK_CONCENTRATION):1,30;
- bonus3 bAutoSpell,LK_AURABLADE,getskilllv(LK_AURABLADE)>1?getskilllv(LK_AURABLADE):1,30;
+ bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30;
+ bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30;
}
">
},
@@ -8040,7 +8063,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) autobonus "{ bonus bAspdRate,100; }",70,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }";
@@ -8074,7 +8097,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bCriticalAddRace,RC_DemiHuman,5;
}
if(getrefine()>8) autobonus "{ bonus bAspdRate,100; }",70,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }";
@@ -8371,8 +8394,8 @@ item_db: (
Script: <"
bonus bBaseAtk,(getrefine()*5);
bonus bCritAtkRate,getrefine();
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -8581,7 +8604,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
bonus bAspdRate,5;
}
@@ -9425,7 +9448,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,25;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-3,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50;
}
@@ -9807,8 +9830,8 @@ item_db: (
Script: <"
bonus bUnbreakableWeapon,0;
bonus bBaseAtk,(getrefine()*7);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
// 1-Handed Spears
@@ -10339,7 +10362,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
bonus bAspdRate,10;
}
@@ -11310,7 +11333,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,25;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -11492,8 +11515,8 @@ item_db: (
View: 5
Script: <"
bonus bBaseAtk,(getrefine()*6);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -12440,7 +12463,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
bonus bAspdRate,5;
}
@@ -13084,7 +13107,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,25;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) autobonus "{ bonus bBaseAtk,200; }",30,3000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }";
@@ -13386,8 +13409,8 @@ item_db: (
bonus bUnbreakableWeapon,0;
bonus bBaseAtk,(getrefine()*5);
bonus bMatk,(getrefine()*2);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -14335,7 +14358,7 @@ item_db: (
bonus bUnbreakableWeapon,0;
if(getrefine() > 5) {
bonus2 bIgnoreMdefRate,RC_DemiHuman,5;
- bonus bHealPower,5+(((getrefine()>14)?14:getrefine())-5)*2;
+ bonus bHealPower,5+(min(getrefine(),14)-5)*2;
}
if(getrefine() > 8) bonus5 bAutoSpellOnSkill,AL_HEAL,AL_HEAL,10,100,1;
if(getrefine() > 9) {
@@ -14508,7 +14531,7 @@ item_db: (
Script: <"
bonus bAtkEle,Ele_Holy;
bonus bInt,4;
- bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,getskilllv(AL_BLESSING)>1?getskilllv(AL_BLESSING):1,20;
+ bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,max(getskilllv(AL_BLESSING),1),20;
">
},
{
@@ -14845,12 +14868,12 @@ item_db: (
Script: <"
bonus bUnbreakableWeapon,0;
bonus bMatk,30*(getrefine()/3);
- if(getrefine()>=7) {
- set .@i,1;
- bonus4 bAutoSpell,"HW_MAGICPOWER",1,10,0;
+ if (getrefine()>=7) {
+ .@val = 1;
+ bonus4 bAutoSpell,HW_MAGICPOWER,1,10,0;
}
if (getrefine()>=4) {
- set .@rate,5*(.@i+1);
+ .@rate = 5*(.@val+1);
bonus2 bMagicAddRace,RC_Boss,.@rate;
bonus2 bMagicAddRace,RC_NonBoss,.@rate;
}
@@ -15680,7 +15703,7 @@ item_db: (
bonus bCritAtkRate,getrefine() * 2;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20;
@@ -16687,7 +16710,7 @@ item_db: (
bonus bInt,1;
bonus2 bAddRace,RC_DemiHuman,95;
bonus2 bVariableCastrate,MO_EXTREMITYFIST,-25;
- autobonus "{ bonus2 bVariableCastrate,\"MO_EXTREMITYFIST\",-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }";
+ autobonus "{ bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }";
bonus bUnbreakableWeapon,0;
">
},
@@ -16741,7 +16764,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -16778,7 +16801,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -17505,7 +17528,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;
@@ -18255,7 +18278,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;
@@ -18462,8 +18485,8 @@ item_db: (
bonus2 bIgnoreMdefRate,RC_DemiHuman,25;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bMagicAddRace,RC_DemiHuman,(((getrefine()>14)?14:getrefine())-5)*2;
- bonus2 bIgnoreMdefRate,RC_DemiHuman,5+(((getrefine()>14)?14:getrefine())-5)*2;
+ bonus2 bMagicAddRace,RC_DemiHuman,(min(getrefine(),14)-5)*2;
+ bonus2 bIgnoreMdefRate,RC_DemiHuman,5+(min(getrefine(),14)-5)*2;
}
if(getrefine()>8) {
bonus5 bAutoSpellOnSkill,WZ_STORMGUST,MG_SAFETYWALL,10,200,1;
@@ -18855,8 +18878,8 @@ item_db: (
if(BaseJob==Job_Wizard) bonus bMatk,15;
else if(BaseJob==Job_Sage) bonus bMatk,10;
bonus bMatk,(getrefine()*5);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bMatk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bMatk,((.@val-2)*5);
">
},
// Shields
@@ -20034,7 +20057,7 @@ item_db: (
Upper: 63
Loc: 32
View: 1
- Script: <" if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,((getrefine()>12)?12:getrefine())-5; ">
+ Script: <" if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,min(getrefine(),12)-5; ">
},
{
Id: 2169
@@ -24605,7 +24628,7 @@ item_db: (
EquipLv: 100
Script: <"
bonus bMaxSP,40;
- bonus bAgi,-7+(getequiprefinerycnt(EQI_SHOES)>8)?8:getequiprefinerycnt(EQI_SHOES);
+ bonus bAgi,-7+min(getequiprefinerycnt(EQI_SHOES),8);
">
},
{
@@ -25623,7 +25646,7 @@ item_db: (
EquipLv: 70
Script: <"
bonus bMdef,3;
- bonus3 bAutoSpellWhenHit,AL_HEAL,getskilllv(AL_HEAL)?getskilllv(AL_HEAL):1,20;
+ bonus3 bAutoSpellWhenHit,AL_HEAL,max(getskilllv(AL_HEAL),1),20;
">
},
{
@@ -26104,9 +26127,9 @@ item_db: (
EquipLv: 100
Script: <"
bonus bFlee,5;
- set .@i,(getskilllv("AB_ORATIO")<2)?2:getskilllv("AB_ORATIO");
- bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,30,BF_WEAPON,0;
- bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,40,BF_MAGIC,0;
+ .@val = max(getskilllv(AB_ORATIO), 2);
+ bonus5 bAutoSpellWhenHit,AB_ORATIO,.@val,30,BF_WEAPON,0;
+ bonus5 bAutoSpellWhenHit,AB_ORATIO,.@val,40,BF_MAGIC,0;
">
},
{
@@ -36913,7 +36936,7 @@ item_db: (
Loc: 4
Script: <"
bonus bLuk,getrefine()-5;
- bonus bCritical,(getrefine()>10?10:getrefine());
+ bonus bCritical,min(getrefine(),10);
">
},
{
@@ -37319,7 +37342,7 @@ item_db: (
Weight: 10
Loc: 16
Script: <"
- bonus bMagicDamageReturn,(getrefine()>10?10:getrefine())*2;
+ bonus bMagicDamageReturn,min(getrefine(),10)*2;
if(BaseClass==Job_Mage) bonus bMdef,3;
">
},
@@ -38044,7 +38067,7 @@ item_db: (
Loc: 769
Script: <"
bonus bHealPower,4;
- bonus2 bSkillUseSP,"AL_HEAL",-15;
+ bonus2 bSkillUseSP,AL_HEAL,-15;
">
},
{
@@ -38321,7 +38344,7 @@ item_db: (
Weight: 10
Loc: 64
Script: <"
- set .@rate,((getrefine()>14)?7:5);
+ .@rate = (getrefine() > 14) ? 7 : 5);
bonus bMaxHPrate,.@rate;
bonus bMaxSPrate,.@rate;
bonus2 bHPRegenRate,50,10000;
@@ -38360,7 +38383,7 @@ item_db: (
Weight: 10
Loc: 16
Script: <"
- set .@rate,((getrefine()>14)?30:20);
+ .@rate = (getrefine() > 14) ? 30 : 20;
bonus2 bAddEle,Ele_Holy,.@rate;
bonus2 bAddEle,Ele_Dark,.@rate;
bonus2 bAddRace,RC_Angel,.@rate;
@@ -38513,7 +38536,7 @@ item_db: (
noauction: true
}
Script: <"
- set .@rate, ((getrefine()>14)?15:10);
+ .@rate = (getrefine() > 14) ? 15 : 10;
bonus2 bAddRace,RC_NonBoss,.@rate;
bonus2 bAddRace,RC_Boss,.@rate;
bonus3 bAutoSpell,SM_MAGNUM,10,15;
@@ -39196,7 +39219,7 @@ item_db: (
Script: <"
bonus bMatkRate,((getrefine()>14)?8:5);
bonus bMaxSPrate,-50;
- set .@rate,((getrefine()>14)?33:25);
+ .@rate = (getrefine() > 14) ? 33 : 25;
bonus2 bMagicAddRace,RC_Angel,.@rate;
bonus2 bMagicAddRace,RC_DemiHuman,.@rate;
">
@@ -39217,7 +39240,7 @@ item_db: (
noauction: true
}
Script: <"
- set .@rate, ((getrefine()>14)?350:250);
+ .@rate = (getrefine() > 14) ? 350 : 250;
bonus3 bAddEff,Eff_Stun,.@rate,ATF_SHORT;
bonus3 bAddEff,Eff_Curse,.@rate,ATF_SHORT;
bonus3 bAddEff,Eff_Silence,.@rate,ATF_SHORT;
@@ -39500,7 +39523,7 @@ item_db: (
Loc: 16
Script: <"
bonus bInt,4;
- bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",3,2500,BF_MAGIC,0;
+ bonus5 bAutoSpellWhenHit,NPC_WIDESLEEP,3,2500,BF_MAGIC,0;
">
},
{
@@ -39526,7 +39549,7 @@ item_db: (
Loc: 16
Script: <"
bonus bVit,4;
- bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",3,2500,BF_MAGIC,0;
+ bonus5 bAutoSpellWhenHit,NPC_WIDESTONE,3,2500,BF_MAGIC,0;
">
},
// Armor Enchant System
@@ -41269,6 +41292,7 @@ item_db: (
Loc: 16
Script: <" bonus bMaxSP,75; ">
},
+
// More Headgears
// ===================================================================
{
@@ -47848,7 +47872,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" bonus3 bAutoSpell,"SA_FROSTWEAPON",1,5; ">
+ Script: <" bonus3 bAutoSpell,SA_FROSTWEAPON,1,5; ">
},
{
Id: 5381
@@ -52240,7 +52264,7 @@ item_db: (
Script: <"
bonus bAspdRate,3;
bonus2 bSubEle,Ele_Earth,5;
- if(getrefine()>6) bonus3 bAutoSpell,"MO_BALKYOUNG",1,50;
+ if(getrefine()>6) bonus3 bAutoSpell,MO_BALKYOUNG,1,50;
">
},
{
@@ -53236,7 +53260,6 @@ item_db: (
bonus bDex,1;
bonus bAspdRate,2;
bonus bVariableCastrate,-2;
- bonus3 bAutoSpell,MO_EXTREMITYFIST,1,3;
">
},
{
@@ -55300,11 +55323,11 @@ item_db: (
bonus bStr,2;
bonus2 bAddMonsterDropItem,574,500;
bonus2 bAddItemHealRate,574,5;
- set .@rate,(getrefine()>10)?10:getrefine();
+ .@rate = min(getrefine(),10);
bonus bMaxHPrate,.@rate;
bonus bMaxSPrate,.@rate;
- bonus3 bAutoSpellWhenHit,"AL_INCAGI",.@rate,10;
- bonus3 bAutoSpell,"AL_INCAGI",.@rate,10;
+ bonus3 bAutoSpellWhenHit,AL_INCAGI,.@rate,10;
+ bonus3 bAutoSpell,AL_INCAGI,.@rate,10;
">
},
{
@@ -61279,7 +61302,7 @@ item_db: (
{
Id: 6422
AegisName: "Egrade_Coin"
- Name: "DClass Coin"
+ Name: "EClass Coin"
Type: 3
Buy: 20
Trade: {
@@ -62652,6 +62675,52 @@ item_db: (
Buy: 0
},
{
+ Id: 6913
+ AegisName: "Sacred_Rosary"
+ Name: "Sacred Rosary"
+ Type: 3
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+},
+{
+ Id: 6914
+ AegisName: "Black_Soul"
+ Name: "Black Soul"
+ Type: 3
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+},
+{
+ Id: 6915
+ AegisName: "Captured_Soul"
+ Name: "Captured Soul"
+ Type: 3
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+},
+{
Id: 7001
AegisName: "Mould_Powder"
Name: "Mould Powder"
@@ -74183,6 +74252,7 @@ item_db: (
Buy: 10
Weight: 40
Upper: 63
+ Script: <" percentheal 5,5; ">
},
{
Id: 11551
@@ -74225,6 +74295,50 @@ item_db: (
Script: <" itemheal rand(20,30),0; ">
},
{
+ Id: 11592
+ AegisName: "Trance_Candy_R"
+ Name: "Red Transform Candy"
+ Type: 0
+ Weight: 30
+ Script: <"
+ itemheal rand(45,65),0;
+ montransform "Bloody Murderer",600000,SC_MTF_MHP,1000;
+ ">
+},
+{
+ Id: 11593
+ AegisName: "Trance_Candy_B"
+ Name: "Blue Transform Candy"
+ Type: 0
+ Weight: 30
+ Script: <"
+ itemheal rand(45,65),0;
+ montransform "Bathory",600000,SC_MTF_MSP,100;
+ ">
+},
+{
+ Id: 11594
+ AegisName: "Trance_Candy_Y"
+ Name: "Yellow Transform Candy"
+ Type: 0
+ Weight: 30
+ Script: <"
+ itemheal rand(45,65),0;
+ montransform "Jakk",600000,SC_MTF_PUMPKIN,2000;
+ ">
+},
+{
+ Id: 11595
+ AegisName: "Trance_Candy_G"
+ Name: "Green Transform Candy"
+ Type: 0
+ Weight: 30
+ Script: <"
+ itemheal rand(45,65),0;
+ montransform "Quve",600000,SC_MTF_HITFLEE,10,20;
+ ">
+},
+{
Id: 11701
AegisName: "Girl_Bunch_Of_Flower"
Name: "Girl's Bouquet"
@@ -74669,7 +74783,7 @@ item_db: (
}
Script: <"
percentheal 9,0;
- if(rand(1000)<300) sc_start SC_CURSE,30000,0;
+ sc_start SC_CURSE,30000,0,3000,SCFLAG_NONE;
">
},
{
@@ -74770,7 +74884,7 @@ item_db: (
}
Script: <"
percentheal 0,9;
- if(rand(1000)<300) sc_start SC_SILENCE,30000,0;
+ sc_start SC_SILENCE,30000,0,3000,SCFLAG_NONE;
">
},
{
@@ -76059,7 +76173,7 @@ item_db: (
Upper: 63
Script: <"
if(gettime(5)!=MDiceCone) {
- set MDiceCone,gettime(5);
+ MDiceCone = gettime(5);
percentheal 50,50;
}
">
@@ -76072,7 +76186,7 @@ item_db: (
Buy: 1
Weight: 10
Upper: 63
- Script: <" set Zeny,Zeny+rand(1000,10000); ">
+ Script: <" Zeny += rand(1000,10000); ">
},
{
Id: 12135
@@ -76084,7 +76198,7 @@ item_db: (
Upper: 63
Script: <"
percentheal 50,50;
- if(rand(100)>=90)sc_start SC_CONFUSION,10000,0;
+ sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;
">
},
{
@@ -77462,7 +77576,7 @@ item_db: (
sitting: true
}
Script: <"
- set .@type,getiteminfo(getequipid(EQI_HAND_R),11);
+ .@type = getiteminfo(getequipid(EQI_HAND_R),11);
if (.@type==6||.@type==7||.@type==8) {
skilleffect BS_ADRENALINE,0;
sc_start SC_ADRENALINE,150000,5;
@@ -77702,7 +77816,7 @@ item_db: (
Weight: 100
Upper: 63
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -77715,7 +77829,7 @@ item_db: (
Weight: 100
Upper: 63
Script: <"
- if(rand(1000)<100) sc_start SC_DPOISON,10000,0;
+ sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE;
sc_start SC_POISON,50000,0;
">
},
@@ -80154,7 +80268,7 @@ item_db: (
Job: 0x00000400
Upper: 63
BuyingStore: true
- Script: <" if(checkmadogear()) itemheal rand(200,300),0; ">
+ Script: <" if(checkmount() == MOUNT_MADO) itemheal rand(200,300),0; ">
},
{
Id: 12393
@@ -80166,7 +80280,7 @@ item_db: (
Job: 0x00000400
Upper: 63
BuyingStore: true
- Script: <" if(checkmadogear()) itemheal rand(300,400),0; ">
+ Script: <" if(checkmount() == MOUNT_MADO) itemheal rand(300,400),0; ">
},
{
Id: 12394
@@ -80178,7 +80292,7 @@ item_db: (
Job: 0x00000400
Upper: 63
BuyingStore: true
- Script: <" if(checkmadogear()) itemheal rand(400,500),0; ">
+ Script: <" if(checkmount() == MOUNT_MADO) itemheal rand(400,500),0; ">
},
{
Id: 12395
@@ -82497,6 +82611,16 @@ item_db: (
Script: <" packageitem(); ">
},
{
+ Id: 12609
+ AegisName: "Old_Ore_Box"
+ Name: "Old Ore Box"
+ Type: 2
+ Buy: 20
+ Weight: 100
+ Upper: 63
+ Script: <" packageitem(); ">
+},
+{
Id: 12612
AegisName: "Old_Coin_Pocket"
Name: "Shabby Coin Bag"
@@ -82604,7 +82728,7 @@ item_db: (
Buy: 20
Upper: 63
Delay: 3000
- Script: <" setmounting(); ">
+ Script: <" setcashmount(); ">
},
{
Id: 12623
@@ -83574,7 +83698,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_PARALYSE,300000,0; ">
+ Script: <" sc_start SC_PARALYSE,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12718
@@ -83585,7 +83709,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_LEECHESEND,300000,0; ">
+ Script: <" sc_start SC_LEECHESEND,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12719
@@ -83596,7 +83720,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_OBLIVIONCURSE,300000,0; ">
+ Script: <" sc_start SC_OBLIVIONCURSE,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12720
@@ -83607,7 +83731,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_DEATHHURT,300000,0; ">
+ Script: <" sc_start SC_DEATHHURT,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12721
@@ -83618,7 +83742,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_TOXIN,300000,0; ">
+ Script: <" sc_start SC_TOXIN,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12722
@@ -83629,7 +83753,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_PYREXIA,300000,0; ">
+ Script: <" sc_start SC_PYREXIA,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12723
@@ -83640,7 +83764,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_MAGICMUSHROOM,300000,0; ">
+ Script: <" sc_start SC_MAGICMUSHROOM,300000,0,10,SCFLAG_FIXEDTICK; ">
},
{
Id: 12724
@@ -83651,7 +83775,7 @@ item_db: (
Weight: 20
Upper: 63
BuyingStore: true
- Script: <" if(rand(10000)<10) sc_start SC_VENOMBLEED,15000,0; ">
+ Script: <" sc_start SC_VENOMBLEED,15000,0,10,SCFLAG_FIXEDTICK; ">
},
// Rune Knight's Rune Stones
{
@@ -84066,8 +84190,8 @@ item_db: (
Weight: 10
Upper: 63
Script: <"
- sc_start SC_ATTHASTE_POTION3,180000,5;
- sc_start SC_PLUSATTACKPOWER,180000,5;
+ sc_start SC_ATTHASTE_POTION3,1800000,5;
+ sc_start SC_PLUSATTACKPOWER,1800000,5;
">
},
{
@@ -84079,8 +84203,8 @@ item_db: (
Weight: 10
Upper: 63
Script: <"
- sc_start SC_PROTECT_DEF,180000,5;
- sc_start SC_FOOD_BASICAVOIDANCE,180000,10;
+ sc_start SC_PROTECT_DEF,1800000,5;
+ sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;
">
},
{
@@ -84092,8 +84216,8 @@ item_db: (
Weight: 10
Upper: 63
Script: <"
- sc_start SC_PROTECT_MDEF,180000,5;
- sc_start SC_INCFLEE2,180000,10;
+ sc_start SC_PROTECT_MDEF,1800000,5;
+ sc_start SC_INCFLEE2,1800000,10;
">
},
{
@@ -84105,8 +84229,8 @@ item_db: (
Weight: 10
Upper: 63
Script: <"
- sc_start SC_INCMHPRATE,180000,5;
- sc_start SC_INCMSPRATE,180000,5;
+ sc_start SC_INCMHPRATE,1800000,5;
+ sc_start SC_INCMSPRATE,1800000,5;
">
},
{
@@ -84488,7 +84612,7 @@ item_db: (
Type: 2
Buy: 0
Upper: 63
- Script: <" set SlotChange, SlotChange + 1; ">
+ Script: <" SlotChange += 1; ">
},
{
Id: 12787
@@ -84525,7 +84649,7 @@ item_db: (
Type: 2
Buy: 0
Upper: 63
- Script: <" set CharRename, CharRename + 1; ">
+ Script: <" CharRename += 1; ">
},
{
Id: 12791
@@ -84647,6 +84771,30 @@ item_db: (
EquipLv: 100
},
{
+ Id: 12831
+ AegisName: "Potion_Box"
+ Name: "Potion Box"
+ Type: 2
+ Buy: 0
+ Weight: 50
+ Upper: 63
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ getitem 545,100;
+ getitem 546,100;
+ getitem 547,100;
+ getitem 505,100;
+ ">
+},
+{
Id: 12848
AegisName: "Falcon_Flute"
Name: "Falcon Flute"
@@ -87219,7 +87367,7 @@ item_db: (
bonus3 bAutoSpell,PR_LEXDIVINA,1,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250;
@@ -87611,7 +87759,7 @@ item_db: (
Script: <"
bonus2 bSkillAtk,SC_FATALMENACE,30;
if(getrefine() >= 6) {
- bonus2 bSkillAtk,"SC_FATALMENACE",(getrefine()-5)*2;
+ bonus2 bSkillAtk,SC_FATALMENACE,(getrefine()-5)*2;
bonus bMatk,(getrefine()-5)*3;
}
">
@@ -87968,8 +88116,8 @@ item_db: (
Script: <"
bonus bBaseAtk,(getrefine()*5);
bonus bMatk,(getrefine()*2);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -88009,11 +88157,11 @@ item_db: (
bonus bBaseAtk,20*(getrefine()/3);
bonus bMatk,20*(getrefine()/3);
if(getrefine()>=9) {
- set .@i,1;
+ .@val = 1;
bonus4 bAutoSpell,BS_WEAPONPERFECT,1,20,0;
}
if(getrefine()>=6) {
- set .@rate,5*(.@i+1);
+ .@rate = 5*(.@val+1);
bonus2 bAddRace,RC_Boss,.@rate;
bonus2 bAddRace,RC_NonBoss,.@rate;
bonus2 bMagicAddRace,RC_Boss,.@rate;
@@ -88252,7 +88400,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -88411,8 +88559,8 @@ item_db: (
EquipLv: 99
View: 17
Script: <"
- bonus2 bSkillAtk,"GS_DESPERADO",20;
- bonus2 bSkillAtk,"RL_FALLEN_ANGEL",20;
+ bonus2 bSkillAtk,GS_DESPERADO,20;
+ bonus2 bSkillAtk,RL_FALLEN_ANGEL,20;
">
},
{
@@ -89059,7 +89207,7 @@ item_db: (
bonus2 bSkillAtk,GS_TRIPLEACTION,30;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -89097,7 +89245,7 @@ item_db: (
bonus2 bSkillAtk,GS_TRIPLEACTION,30;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -89136,7 +89284,7 @@ item_db: (
bonus2 bSkillAtk,GS_TRIPLEACTION,30;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -89174,7 +89322,7 @@ item_db: (
bonus2 bSkillAtk,GS_TRIPLEACTION,30;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -89290,7 +89438,7 @@ item_db: (
Script: <"
bonus bHit,10;
bonus bCriticalRate,15;
- bonus4 bAutoSpell,"AL_DECAGI",1,500,0;
+ bonus4 bAutoSpell,AL_DECAGI,1,500,0;
">
},
{
@@ -89334,7 +89482,7 @@ item_db: (
Script: <"
bonus bHit,-10;
bonus bDelayrate,-10;
- bonus3 bAutoSpell,"MG_THUNDERSTORM",5,500;
+ bonus3 bAutoSpell,MG_THUNDERSTORM,5,500;
">
},
{
@@ -89375,7 +89523,7 @@ item_db: (
Script: <"
bonus bHit,10;
bonus bCriticalRate,15;
- bonus4 bAutoSpell,"AL_DECAGI",1,10,0;
+ bonus4 bAutoSpell,AL_DECAGI,1,10,0;
">
},
{
@@ -90582,7 +90730,7 @@ item_db: (
autobonus "{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }",50,10000;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-3,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>8) {
@@ -90738,7 +90886,7 @@ item_db: (
Script: <"
bonus bMatk,50;
bonus bAtkEle,Ele_Water;
- bonus3 bAutoSpell,NJ_HYOUSYOURAKU,(getskilllv(NJ_HYOUSYOURAKU)?getskilllv(NJ_HYOUSYOURAKU):1),30;
+ bonus3 bAutoSpell,NJ_HYOUSYOURAKU,max(getskilllv(NJ_HYOUSYOURAKU),1),30;
">
},
{
@@ -90760,7 +90908,7 @@ item_db: (
Script: <"
bonus bMatk,50;
bonus bAtkEle,Ele_Wind;
- bonus3 bAutoSpell,NJ_RAIGEKISAI,(getskilllv(NJ_RAIGEKISAI)?getskilllv(NJ_RAIGEKISAI):1),30;
+ bonus3 bAutoSpell,NJ_RAIGEKISAI,max(getskilllv(NJ_RAIGEKISAI),1),30;
">
},
{
@@ -91195,7 +91343,7 @@ item_db: (
bonus2 bIgnoreDefRate,RC_DemiHuman,20;
bonus bUnbreakableWeapon,0;
if(getrefine()>5) {
- bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2);
+ bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2);
bonus2 bIgnoreDefRate,RC_DemiHuman,5;
}
if(getrefine()>6) bonus bAspdRate,5;
@@ -97204,7 +97352,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14009,1; ">
+ Script: <" rentitem 14009,2592000; ">
},
{
Id: 13943
@@ -97223,7 +97371,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14010,1; ">
+ Script: <" rentitem 14010,2592000; ">
},
{
Id: 13944
@@ -97242,7 +97390,7 @@ item_db: (
nomail: true
noauction: true
}
- Script: <" getitem 14011,1; ">
+ Script: <" rentitem 14011,2592000; ">
},
{
Id: 13945
@@ -102859,7 +103007,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2753,1; ">
+ Script: <" rentitem 2753,604800; ">
},
{
Id: 14243
@@ -102874,7 +103022,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2754,1; ">
+ Script: <" rentitem 2754,604800; ">
},
{
Id: 14244
@@ -102889,7 +103037,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2755,1; ">
+ Script: <" rentitem 2755,604800; ">
},
{
Id: 14245
@@ -102904,7 +103052,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2756,1; ">
+ Script: <" rentitem 2756,604800; ">
},
{
Id: 14246
@@ -102919,7 +103067,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2757,1; ">
+ Script: <" rentitem 2757,604800; ">
},
{
Id: 14247
@@ -102934,7 +103082,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2758,1; ">
+ Script: <" rentitem 2758,604800; ">
},
{
Id: 14248
@@ -102949,7 +103097,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2759,1; ">
+ Script: <" rentitem 2759,604800; ">
},
{
Id: 14249
@@ -102964,7 +103112,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2760,1; ">
+ Script: <" rentitem 2760,604800; ">
},
{
Id: 14250
@@ -102979,7 +103127,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2761,1; ">
+ Script: <" rentitem 2761,604800; ">
},
{
Id: 14251
@@ -102994,7 +103142,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2762,1; ">
+ Script: <" rentitem 2762,604800; ">
},
{
Id: 14252
@@ -103009,7 +103157,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2753,1; ">
+ Script: <" rentitem 2753,1296000; ">
},
{
Id: 14253
@@ -103024,7 +103172,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2754,1; ">
+ Script: <" rentitem 2754,1296000; ">
},
{
Id: 14254
@@ -103039,7 +103187,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2755,1; ">
+ Script: <" rentitem 2755,1296000; ">
},
{
Id: 14255
@@ -103054,7 +103202,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2756,1; ">
+ Script: <" rentitem 2756,1296000; ">
},
{
Id: 14256
@@ -103069,7 +103217,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2757,1; ">
+ Script: <" rentitem 2757,1296000; ">
},
{
Id: 14257
@@ -103084,7 +103232,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2758,1; ">
+ Script: <" rentitem 2758,1296000; ">
},
{
Id: 14258
@@ -103099,7 +103247,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2759,1; ">
+ Script: <" rentitem 2759,1296000; ">
},
{
Id: 14259
@@ -103114,7 +103262,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2760,1; ">
+ Script: <" rentitem 2760,1296000; ">
},
{
Id: 14260
@@ -103129,7 +103277,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2761,1; ">
+ Script: <" rentitem 2761,1296000; ">
},
{
Id: 14261
@@ -103144,7 +103292,7 @@ item_db: (
noselltonpc: true
nogstorage: true
}
- Script: <" getitem 2762,1; ">
+ Script: <" rentitem 2762,1296000; ">
},
{
Id: 14262
@@ -103322,7 +103470,7 @@ item_db: (
Buy: 20
Weight: 10
Upper: 63
- Script: <" getitem 1638,1; ">
+ Script: <" rentitem 1638,604800; ">
},
{
Id: 14281
@@ -103332,7 +103480,7 @@ item_db: (
Buy: 20
Weight: 10
Upper: 63
- Script: <" getitem 2752,1; ">
+ Script: <" rentitem 2752,604800; ">
},
{
Id: 14282
@@ -103362,7 +103510,7 @@ item_db: (
Buy: 20
Weight: 10
Upper: 63
- Script: <" getitem 2548,1; ">
+ Script: <" rentitem 2548,604800; ">
},
{
Id: 14285
@@ -103372,7 +103520,7 @@ item_db: (
Buy: 20
Weight: 10
Upper: 63
- Script: <" getitem 2137,1; ">
+ Script: <" rentitem 2137,604800; ">
},
{
Id: 14286
@@ -103382,7 +103530,7 @@ item_db: (
Buy: 20
Weight: 10
Upper: 63
- Script: <" getitem 2763,1; ">
+ Script: <" rentitem 2763,604800; ">
},
{
Id: 14287
@@ -104453,7 +104601,7 @@ item_db: (
Buy: 0
Weight: 10
Upper: 63
- Script: <" sc_start SC_PLUSATTACKPOWER,180000,10; ">
+ Script: <" sc_start SC_PLUSATTACKPOWER,1800000,10; ">
},
{
Id: 14526
@@ -104463,7 +104611,7 @@ item_db: (
Buy: 0
Weight: 10
Upper: 63
- Script: <" sc_start SC_PLUSMAGICPOWER,180000,10; ">
+ Script: <" sc_start SC_PLUSMAGICPOWER,1800000,10; ">
},
{
Id: 14527
@@ -106539,7 +106687,7 @@ item_db: (
EquipLv: 100
Script: <"
bonus bLuk,3;
- bonus3 bAutoSpell,ASC_METEORASSAULT,(getskilllv(ASC_METEORASSAULT)?getskilllv(ASC_METEORASSAULT):1),20;
+ bonus3 bAutoSpell,ASC_METEORASSAULT,max(getskilllv(ASC_METEORASSAULT),1),20;
">
},
{
@@ -106572,7 +106720,7 @@ item_db: (
Loc: 16
EquipLv: 50
Script: <"
- set .@rate,(getrefine()>10)?10:getrefine();
+ .@rate = min(getrefine(), 10);
bonus bHit,.@rate;
bonus bFlee,.@rate;
">
@@ -107340,7 +107488,7 @@ item_db: (
View: 8
Script: <"
bonus bAtkEle,Ele_Dark;
- bonus3 bAutoSpell,WL_HELLINFERNO,1,(getrefine()?getrefine()*20:20);
+ bonus3 bAutoSpell,WL_HELLINFERNO,1,max(getrefine(),1)*20;
">
},
{
@@ -107472,8 +107620,8 @@ item_db: (
Script: <"
bonus bUnbreakableWeapon,0;
bonus bBaseAtk,(getrefine()*5);
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = min(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -111310,8 +111458,8 @@ item_db: (
if(BaseJob==Job_Hunter && Upper!=2) bonus bBaseAtk,10;
bonus bBaseAtk,(getrefine()*3);
bonus bLongAtkRate,getrefine();
- set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10);
- if(.@i>2) bonus bBaseAtk,((.@i-2)*5);
+ .@val = max(BaseLevel/10, 12);
+ if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);
">
},
{
@@ -111955,7 +112103,7 @@ item_db: (
bonus bAtkRate,5;
bonus bDelayrate,-1;
bonus bMaxHP,0+(getrefine()*100);
- bonus2 bSkillAtk,"MC_MAMMONITE",20;
+ bonus2 bSkillAtk,MC_MAMMONITE,20;
">
},
{
@@ -112156,7 +112304,7 @@ item_db: (
Upper: 63
Loc: 256
View: 721
- Script: <" skill "AL_INCAGI",2; ">
+ Script: <" skill AL_INCAGI,2; ">
},
{
Id: 18548
@@ -114044,7 +114192,7 @@ item_db: (
EquipLv: 30
View: 836
Script: <"
- bonus3 bAutoSpell,"AL_INCAGI",10,50;
+ bonus3 bAutoSpell,AL_INCAGI,10,50;
bonus2 bAddItemHealRate,Carrot,2000;
">
},
@@ -117799,6 +117947,87 @@ item_db: (
OnUnequipScript: <" sc_end SC_DECORATION_OF_MUSIC; ">
},
{
+ Id: 19903
+ AegisName: "C_Witchs_Hat"
+ Name: "C Witchs Hat"
+ Type: 5
+ Loc: 1024
+ EquipLv: 1
+ Refine: false
+ View: 717
+ Script: <" bonus bCastrate,-10; ">
+},
+{
+ Id: 19917
+ AegisName: "C_Gloomy_Pumpkin_Hat"
+ Name: "C Gloomy Pumpkin Hat"
+ Type: 5
+ Loc: 1024
+ EquipLv: 1
+ Refine: false
+ View: 691
+ Script: <" bonus bSpeedRate,25; ">
+},
+{
+ Id: 19918
+ AegisName: "C_Lude_Mask"
+ Name: "C Lude Mask"
+ Type: 5
+ Loc: 6144
+ EquipLv: 1
+ Refine: false
+ View: 802
+ Script: <" bonus bHealPower2,20; bonus bAddItemHealRate,20; ">
+},
+{
+ Id: 19919
+ AegisName: "C_Cube_Mask_"
+ Name: "C Cube Mask "
+ Type: 5
+ Loc: 6144
+ EquipLv: 1
+ Refine: false
+ View: 472
+ Script: <" bonus bAspdRate,10; ">
+},
+{
+ Id: 19920
+ AegisName: "C_Adv_Whisper_Mask"
+ Name: "C Adv Whisper Mask"
+ Type: 5
+ Loc: 7168
+ EquipLv: 1
+ Refine: false
+ View: 458
+ Script: <" bonus bFlee,20; ">
+},
+{
+ Id: 22067
+ AegisName: "Witch_Shoes"
+ Name: "Witch Shoes"
+ Type: 5
+ Buy: 3500
+ Weight: 400
+ Def: 10
+ Job: 0xFFFFFFFE
+ Loc: 64
+ Script: <"
+ skill ALL_CATCRY, 1;
+ bonus bUnbreakableShoes,0;
+ autobonus3 "{ }",1000,7000,ALL_CATCRY,"{ montransform 1505,420000; }";
+ ">
+},
+{
+ Id: 20183
+ AegisName: "C_There_Is_Something"
+ Name: "C There Is Something"
+ Type: 5
+ Loc: 3072
+ EquipLv: 1
+ Refine: false
+ View: 1091
+},
+{
Id: 20500
AegisName: "T_Archangel_Wing"
Name: "T Archangel's Wings"
@@ -118019,6 +118248,89 @@ item_db: (
Script: <" itemskill RK_LUXANIMA,1; ">
},
{
+ Id: 22669
+ AegisName: "HALLOWEEN_G_BOX"
+ Name: "Halloween Box"
+ Type: 2
+ Weight: 20
+ Script: <" getrandgroupitem 22669,1; ">
+},
+{
+ Id: 22670
+ AegisName: "DARK_INVITATION"
+ Name: "Invitation of Darkness"
+ Type: 2
+ Buy: 10
+ Weight: 10
+ Upper: 63
+ Script: <"
+ .@r = rand(1,3);
+ if (.@r == 1) {
+ specialeffect2 EF_DEVIL;
+ warp "niflheim",193,186;
+ } else if(.@r == 2) {
+ heal -500,-1000;
+ sc_start SC_STUN,3000,0;
+ } else {
+ specialeffect2 EF_DEVIL;
+ warp "niflheim",347,255;
+ }
+ ">
+},
+{
+ Id: 22777
+ AegisName: "Buff_Gift_Set"
+ Name: "Buff Gift Set"
+ Type: 2
+ Buy: 20
+ Weight: 100
+ Trade: {
+ nodrop: true
+ notrade: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <"
+ getitem 14534,5;
+ getitem 12215,5;
+ getitem 12216,5;
+ ">
+},
+{
+ Id: 22837
+ AegisName: "Integer_Time"
+ Name: "Integer Time"
+ Type: 2
+ Buy: 0
+ Weight: 0
+ Upper: 63
+ EquipLv: 50
+ Trade: {
+ nodrop: true
+ notrade: true
+ noselltonpc: true
+ nocart: true
+ nostorage: true
+ nogstorage: true
+ nomail: true
+ noauction: true
+ }
+ Script: <" TmpRouletteBronze += 1; ">
+},
+{
+
+ Id: 22838
+ AegisName: "Something_Candy_Holder"
+ Name: "Something Candy Holder"
+ Type: 2
+ Buy: 20
+ Weight: 10
+ Script: <" getrandgroupitem 22838,1; ">
+},
+{
Id: 28200
AegisName: "End_Of_The_Horizon"
Name: "End Of The Horizon"
@@ -118050,7 +118362,7 @@ item_db: (
WeaponLv: 4
EquipLv: 141
View: 21
- Script: <" bonus3 bAutoSpell,"GC_CROSSIMPACT",1,50; ">
+ Script: <" bonus3 bAutoSpell,GC_CROSSIMPACT,1,50; ">
},
{
Id: 28202
@@ -118068,7 +118380,7 @@ item_db: (
WeaponLv: 4
EquipLv: 141
View: 21
- Script: <" bonus3 bAutoSpell,"GC_CROSSIMPACT",1,50; ">
+ Script: <" bonus3 bAutoSpell,GC_CROSSIMPACT,1,50; ">
},
{
Id: 28203
@@ -118089,7 +118401,7 @@ item_db: (
bonus bHit,8;
bonus bCritical,8;
bonus2 bAddRace,RC_DemiHuman,30;
- bonus2 bVariableCastrate,"GS_TRACKING",-20;
+ bonus2 bVariableCastrate,GS_TRACKING,-20;
bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10;
bonus bUnbreakableWeapon,0;
">
diff --git a/db/re/item_group.conf b/db/re/item_group.conf
index 3d0f138c2..3a25d92b8 100644
--- a/db/re/item_group.conf
+++ b/db/re/item_group.conf
@@ -4745,3 +4745,42 @@ Lucky_Bag: (
"Big_Luk_Bookmark",
)
*/
+HALLOWEEN_G_BOX: (
+ ("Immortal_Heart", 30),
+ ("Starsand_Of_Witch", 30),
+ ("Empty_Bottle", 30),
+ ("Alchol", 30),
+ ("Karvodailnirol", 30),
+ ("Transparent_Cloth", 30),
+ ("Stem", 30),
+ ("Poison_Spore", 30),
+ ("Speed_Up_Potion", 5),
+ ("Chocolate", 5),
+ ("Guarana_Candy", 5),
+ ("Seed_Of_Yggdrasil", 5),
+ "Old_Blue_Box",
+ "Old_Card_Album",
+ "Old_Violet_Box"
+)
+Something_Candy_Holder: (
+ ("Honey", 3),
+ ("Candy", 7),
+ ("Well_Baked_Cookie", 2),
+ "Piece_Of_Cake",
+ ("Bread", 3),
+ "Pumpkin_Cake",
+ ("Pumpkin_Pie", 3),
+ ("Meat", 5),
+ "HALLOWEEN_G_BOX",
+ ("Trance_Candy_R", 3),
+ ("Trance_Candy_B", 3),
+ ("Trance_Candy_Y", 3),
+ ("Trance_Candy_G", 3),
+ "Old_Blue_Box",
+ "Yggdrasilberry",
+ "Old_Card_Album",
+ "Old_Violet_Box",
+ "DARK_INVITATION",
+ "C_There_Is_Something",
+ "Witch_Shoes"
+)
diff --git a/db/re/item_packages.conf b/db/re/item_packages.conf
index 62e0c782b..e900ca23e 100644
--- a/db/re/item_packages.conf
+++ b/db/re/item_packages.conf
@@ -12223,6 +12223,88 @@ Fruit_Basket: {
Rate: 40
}
}
+Old_Ore_Box: {
+ Iron_Ore: {
+ Random: 1
+ Rate: 600
+ }
+ Iron: {
+ Random: 1
+ Rate: 380
+ }
+ Yellow_Live: {
+ Random: 1
+ Rate: 100
+ }
+ Coal: {
+ Random: 1
+ Rate: 80
+ }
+ Wind_Of_Verdure: {
+ Random: 1
+ Rate: 100
+ }
+ Phracon: {
+ Random: 1
+ Rate: 600
+ }
+ Crystal_Blue: {
+ Random: 1
+ Rate: 100
+ }
+ Boody_Red: {
+ Random: 1
+ Rate: 100
+ }
+ Steel: {
+ Random: 1
+ Rate: 50
+ }
+ Emveretarcon: {
+ Random: 1
+ Rate: 380
+ }
+ Elunium_Stone: {
+ Random: 1
+ Rate: 70
+ }
+ Oridecon_Stone: {
+ Random: 1
+ Rate: 80
+ }
+ Great_Nature: {
+ Random: 1
+ Rate: 40
+ }
+ Rough_Wind: {
+ Random: 1
+ Rate: 40
+ }
+ Mistic_Frozen: {
+ Random: 1
+ Rate: 40
+ }
+ Flame_Heart: {
+ Random: 1
+ Rate: 40
+ }
+ Elunium: {
+ Random: 1
+ Rate: 20
+ }
+ Oridecon: {
+ Random: 1
+ Rate: 20
+ }
+ Gold: {
+ Random: 1
+ Rate: 10
+ }
+ Emperium: {
+ Random: 1
+ Rate: 50
+ }
+}
Old_Coin_Pocket: {
Malang_Sp_Can: {
Random: 1
diff --git a/db/re/map_zone_db.conf b/db/re/map_zone_db.conf
index b9723a99b..71616c4d4 100644
--- a/db/re/map_zone_db.conf
+++ b/db/re/map_zone_db.conf
@@ -59,7 +59,7 @@ zones: (
},
{
/* Normal zone is applied to all maps that are not pkable (where players cant fight each other) */
- /* However, it wont be applied to maps with its own zones (specified thru mapflag) */
+ /* However, it wont be applied to maps with its own zones (specified through mapflag) */
name: "Normal" /* changing this name requires MAP_ZONE_NORMAL_NAME to also be changed in src/map/map.h file */
disabled_skills: {
diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt
index c0f905dbc..ef5f37f74 100644
--- a/db/re/mob_db.txt
+++ b/db/re/mob_db.txt
@@ -4,224 +4,224 @@
// ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper
// Note: Keep the Sprite_Name field as it is in the game client.
-1001,SCORPION,Scorpion,Scorpion,16,153,1,108,81,1,33,40,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1
-1002,PORING,Poring,Poring,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1
+1001,SCORPION,Scorpion,Scorpion,16,153,1,108,81,1,33,7,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1
+1002,PORING,Poring,Poring,1,60,1,36,20,1,8,1,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1
//1003,TESTEGG,Test Egg,Test Egg,2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0x0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1004,HORNET,Hornet,Hornet,11,90,1,81,60,1,13,16,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1
-1005,FARMILIAR,Familiar,Familiar,24,427,1,144,162,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1
+1004,HORNET,Hornet,Hornet,11,90,1,81,60,1,13,3,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1
+1005,FARMILIAR,Familiar,Familiar,24,427,1,144,162,1,68,9,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1
//1006,THIEF_BUG_LARVA,Thief Bug Larva,Thief Bug Larva,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1007,FABRE,Fabre,Fabre,6,72,1,54,41,1,12,15,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1
-1008,PUPA,Pupa,Pupa,4,66,1,36,27,1,1,4,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1
-1009,CONDOR,Condor,Condor,12,114,1,81,60,1,14,20,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1081,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1
-1010,WILOW,Willow,Willow,8,91,1,63,47,1,13,18,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1
-1011,CHONCHON,Chonchon,Chonchon,5,57,1,45,36,1,11,14,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1
-1012,RODA_FROG,Roda Frog,Roda Frog,13,160,1,90,68,1,19,23,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1
-1013,WOLF,Wolf,Wolf,45,1219,1,342,386,1,80,91,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1
-1014,SPORE,Spore,Spore,18,280,1,117,87,1,25,33,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1
-1015,ZOMBIE,Zombie,Zombie,17,234,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
-1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,405,455,9,95,118,47,10,30,29,20,10,35,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1
+1007,FABRE,Fabre,Fabre,6,72,1,54,41,1,12,3,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1
+1008,PUPA,Pupa,Pupa,4,66,1,36,27,1,1,3,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1
+1009,CONDOR,Condor,Condor,12,114,1,81,60,1,14,6,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1081,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1
+1010,WILOW,Willow,Willow,8,91,1,63,47,1,13,5,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1
+1011,CHONCHON,Chonchon,Chonchon,5,57,1,45,36,1,11,3,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1
+1012,RODA_FROG,Roda Frog,Roda Frog,13,160,1,90,68,1,19,4,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1
+1013,WOLF,Wolf,Wolf,45,1219,1,342,386,1,80,11,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1
+1014,SPORE,Spore,Spore,18,280,1,117,87,1,25,8,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1
+1015,ZOMBIE,Zombie,Zombie,17,234,1,117,87,1,38,12,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
+1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,424,455,9,95,23,47,10,30,29,20,10,35,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1
//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1
-1018,CREAMY,Creamy,Creamy,23,378,1,144,162,1,61,62,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1
-1019,PECOPECO,Peco Peco,Peco Peco,25,446,1,162,183,1,76,83,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1
-1020,MANDRAGORA,Mandragora,Mandragora,13,156,1,97,73,4,20,23,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1
+1018,CREAMY,Creamy,Creamy,23,378,1,144,162,1,61,1,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1
+1019,PECOPECO,Peco Peco,Peco Peco,25,446,1,162,183,1,76,7,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1
+1020,MANDRAGORA,Mandragora,Mandragora,13,156,1,97,73,4,20,3,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1
//1021,THIEF_BUG_MALE,Thief Bug Male,Thief Bug Male,19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,0x653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1
//1022,WEREWOLF,Werewolf,Werewolf,80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,0x163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0
-1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,44,1434,1,350,540,1,71,104,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1
-1024,WORM_TAIL,Wormtail,Wormtail,17,200,1,117,87,1,22,27,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1
-1025,SNAKE,Snake,Boa,18,217,1,117,87,1,23,28,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1
-1026,MUNAK,Munak,Munak,58,2445,1,495,557,1,184,214,77,15,53,9,25,10,33,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1
+1023,ORK_WARRIOR,Orc Warrior,Orc Warrior,44,1434,1,350,540,1,71,33,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1
+1024,WORM_TAIL,Wormtail,Wormtail,17,200,1,117,87,1,22,5,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1
+1025,SNAKE,Snake,Boa,18,217,1,117,87,1,23,5,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1
+1026,MUNAK,Munak,Munak,58,2445,1,520,557,1,184,30,77,15,53,9,25,10,33,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1
//1027,RAPTICE,Raptice,Raptice,17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,0x131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,216,243,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1
-1029,ISIS,Isis,Isis,59,2092,1,531,597,1,202,239,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1
-1030,ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,1602,1202,1,504,559,92,0,79,46,28,43,67,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1
-1031,POPORING,Poporing,Poporing,30,524,1,198,224,1,74,94,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1
-1032,VERIT,Verit,Verit,52,1944,1,414,467,1,132,152,63,10,51,4,25,10,5,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1
-1033,ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,233,263,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1
-1034,THARA_FROG,Thara Frog,Thara Frog,40,1157,1,311,350,1,73,103,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1
-1035,HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,604,681,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1
-1036,GHOUL,Ghoul,Ghoul,61,2614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1
-1037,SIDE_WINDER,Side Winder,Side Winder,70,2736,1,720,810,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1
-1038,OSIRIS,Osiris,Osiris,68,475840,1,245520,200880,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1
-1039,BAPHOMET,Baphomet,Baphomet,81,668000,1,396525,334106,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1
-1040,GOLEM,Golem,Golem,61,2245,1,540,608,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1
-1041,MUMMY,Mummy,Mummy,55,2155,1,486,548,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1
-1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,48,1199,1,369,414,1,77,112,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1
+1028,SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,216,243,1,84,14,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1
+1029,ISIS,Isis,Isis,59,2092,1,558,597,1,202,37,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1
+1030,ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,1922,1202,1,504,55,92,0,79,46,28,43,67,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1
+1031,POPORING,Poporing,Poporing,30,524,1,198,224,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1
+1032,VERIT,Verit,Verit,52,1944,1,434,467,1,139,20,63,10,51,4,25,10,6,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1
+1033,ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,233,263,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1
+1034,THARA_FROG,Thara Frog,Thara Frog,40,1157,1,311,350,1,73,30,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1
+1035,HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,634,681,1,226,20,46,20,32,72,22,25,100,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1
+1036,GHOUL,Ghoul,Ghoul,61,2614,1,612,656,1,227,29,78,5,56,12,19,11,30,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1
+1037,SIDE_WINDER,Side Winder,Side Winder,70,2736,1,756,810,1,316,30,101,12,52,32,35,20,73,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1
+1038,OSIRIS,Osiris,Osiris,68,1175840,1,245520,200880,1,1980,1503,172,164,97,99,86,131,165,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1
+1039,BAPHOMET,Baphomet,Baphomet,81,668000,1,436178,334106,2,3150,1984,379,45,120,125,30,85,186,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1
+1040,GOLEM,Golem,Golem,61,2245,1,566,608,1,208,25,190,12,70,27,67,5,34,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1
+1041,MUMMY,Mummy,Mummy,55,2155,1,510,548,1,180,21,95,3,54,4,14,1,68,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1
+1042,STEEL_CHONCHON,Steel Chonchon,Steel Chonchon,48,1199,1,369,414,1,77,35,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1
//1043,SEAHORES,Seahorse,Seahorse,18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,0x131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1044,OBEAUNE,Obeaune,Obeaune,53,2158,1,476,534,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1
-1045,MARC,Marc,Marc,56,2522,1,525,590,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1
-1046,DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1
-1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,7,75,1,54,41,0,1,1,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1
-1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,20,344,1,126,143,0,1,2,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1
-1049,PICKY,Picky,Picky,9,95,1,63,47,1,18,19,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1
-1050,PICKY_,Picky,Picky,10,89,1,72,54,1,18,38,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1
-1051,THIEF_BUG,Thief Bug,Thief Bug,21,354,1,126,143,1,56,61,24,3,19,7,10,0,12,5,10,12,0,4,60,0x1183,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1
-1052,ROCKER,Rocker,Rocker,15,185,1,99,74,1,19,24,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1
-1053,THIEF_BUG_,Thief Bug Female,Thief Bug Female,28,531,1,180,203,1,42,58,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1
-1054,THIEF_BUG__,Thief Bug Male,Thief Bug Male,30,595,1,198,224,1,46,67,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1
-1055,MUKA,Muka,Muka,23,468,1,144,162,1,66,75,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1
-1056,SMOKIE,Smokie,Smokie,29,591,1,180,203,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1
-1057,YOYO,Yoyo,Yoyo,38,898,1,270,305,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1
-1058,METALLER,Metaller,Metaller,55,1687,1,450,507,1,187,228,72,12,52,24,10,0,47,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1
-1059,MISTRESS,Mistress,Mistress,78,378000,1,368280,301320,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1
-1060,BIGFOOT,Bigfoot,Bigfoot,29,587,1,180,203,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1
-1061,NIGHTMARE,Nightmare,Nightmare,69,2872,1,501,1032,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1
-1062,PORING_,Santa Poring,Santa Poring,3,69,1,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1
-1063,LUNATIC,Lunatic,Lunatic,3,55,1,36,27,1,11,12,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,601,20,0,0,4006,1
-1064,MEGALODON,Megalodon,Megalodon,46,1335,1,342,386,1,117,149,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1
-1065,STROUF,Strouf,Strouf,61,3052,1,626,705,1,162,192,67,21,49,16,31,20,33,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1
-1066,VADON,Vadon,Vadon,45,1252,1,342,386,1,78,103,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1
-1067,CORNUTUS,Cornutus,Cornutus,48,1450,1,369,414,1,79,126,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1
-1068,HYDRA,Hydra,Hydra,34,854,1,233,263,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1
-1069,SWORD_FISH,Swordfish,Swordfish,57,2600,1,525,590,1,149,184,52,12,50,56,25,15,40,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1
-1070,KUKRE,Kukre,Kukre,42,1111,1,315,354,1,65,93,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1
-1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,48,1411,1,369,414,1,105,125,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1
-1072,KAHO,Kaho,Kaho,98,7045,1,1953,1463,1,504,728,106,55,81,61,55,65,66,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1
-1073,CRAB,Crab,Crab,43,1233,1,315,354,1,69,79,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1
-1074,SHELLFISH,Shellfish,Shellfish,50,1680,1,405,455,1,70,92,43,5,42,11,48,25,26,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1
+1044,OBEAUNE,Obeaune,Obeaune,53,2158,1,500,534,1,107,45,48,26,54,47,21,40,40,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1
+1045,MARC,Marc,Marc,56,2522,1,550,590,1,145,25,55,24,50,24,22,15,53,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1
+1046,DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,344520,250560,1,2103,1176,246,86,122,122,105,67,203,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1
+1047,PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,7,75,1,54,41,0,1,0,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1
+1048,THIEF_BUG_EGG,Thief Bug Egg,Thief Bug Egg,20,344,1,126,143,0,1,1,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1
+1049,PICKY,Picky,Picky,9,95,1,63,47,1,18,1,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1
+1050,PICKY_,Picky,Picky,10,89,1,72,54,1,18,20,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1
+1051,THIEF_BUG,Thief Bug,Thief Bug,21,354,1,126,143,1,56,5,24,3,19,7,10,0,12,5,10,12,0,4,60,0x1183,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1
+1052,ROCKER,Rocker,Rocker,15,185,1,99,74,1,19,5,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1
+1053,THIEF_BUG_,Thief Bug Female,Female Thief Bug,28,531,1,180,203,1,42,16,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1
+1054,THIEF_BUG__,Thief Bug Male,Male Thief Bug,30,595,1,198,224,1,46,21,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1
+1055,MUKA,Muka,Muka,23,468,1,144,162,1,66,9,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1
+1056,SMOKIE,Smokie,Smokie,29,591,1,180,203,1,70,11,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1
+1057,YOYO,Yoyo,Yoyo,38,898,1,270,305,1,63,11,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1
+1058,METALLER,Metaller,Metaller,55,1687,1,472,507,1,196,41,72,12,52,24,10,0,52,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1
+1059,MISTRESS,Mistress,Mistress,78,378000,1,368280,301320,1,985,1967,287,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1
+1060,BIGFOOT,Bigfoot,Bigfoot,29,587,1,180,203,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1
+1061,NIGHTMARE,Nightmare,Nightmare,69,2872,1,526,1032,1,297,62,116,15,57,32,20,15,77,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1
+1062,PORING_,Santa Poring,Santa Poring,3,69,1,4,5,1,12,4,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1
+1063,LUNATIC,Lunatic,Lunatic,3,55,1,36,27,1,11,1,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1
+1064,MEGALODON,Megalodon,Megalodon,46,1335,1,342,386,1,117,32,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1
+1065,STROUF,Strouf,Strouf,61,3052,1,656,705,1,170,30,67,21,49,16,31,20,36,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1
+1066,VADON,Vadon,Vadon,45,1252,1,342,386,1,78,25,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1
+1067,CORNUTUS,Cornutus,Cornutus,48,1450,1,369,414,1,79,47,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1
+1068,HYDRA,Hydra,Hydra,34,854,1,233,263,7,35,6,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1
+1069,SWORD_FISH,Swordfish,Swordfish,57,2600,1,550,590,1,156,35,52,12,50,56,25,15,44,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1
+1070,KUKRE,Kukre,Kukre,42,1111,1,315,354,1,65,28,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1
+1071,PIRATE_SKEL,Pirate Skeleton,Pirate Skeleton,48,1411,1,369,414,1,105,20,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1
+1072,KAHO,Kaho,Kaho,98,7045,1,2344,1463,1,655,224,106,55,81,61,55,65,79,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1
+1073,CRAB,Crab,Crab,43,1233,1,315,354,1,69,10,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1
+1074,SHELLFISH,Shellfish,Shellfish,50,1680,1,424,455,1,74,22,43,5,42,11,48,25,29,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1
//1075,TURTLE,Turtle,Turtle,3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1076,SKELETON,Skeleton,Skeleton,27,612,1,162,183,1,78,102,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1
-1077,POISON_SPORE,Poison Spore,Poison Spore,26,456,1,162,183,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1
-1078,RED_PLANT,Red Plant,Red Plant,1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2
-1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2
-1080,GREEN_PLANT,Green Plant,Green Plant,1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2
-1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,6,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7937,300,707,5,914,500,0,0,0,0,2269,2
-1082,WHITE_PLANT,White Plant,White Plant,1,7,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2
-1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,7938,500,607,50,0,0,0,0,714,1
-1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500
-1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500
-1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,65,222750,1,194400,155520,1,907,1750,159,81,71,77,80,62,127,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1
-1087,ORK_HERO,Orc Hero,Orc Hero,50,362000,1,106920,97200,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1
-1088,VOCAL,Vocal,Vocal,18,3317,1,99,79,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1
-1089,TOAD,Toad,Toad,27,660,1,162,183,1,70,89,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1
-1090,MASTERING,Mastering,Mastering,42,1260,1,315,354,1,80,120,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1
-1091,DRAGON_FLY,Dragon Fly,Dragon Fly,47,1035,1,360,405,1,102,135,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1
-1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,93,8203,1,1422,2601,1,399,445,102,51,72,63,55,29,90,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1
-1093,ECLIPSE,Eclipse,Eclipse,31,625,1,207,233,1,60,80,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1
-1094,AMBERNITE,Ambernite,Ambernite,19,340,1,117,87,1,26,37,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1
-1095,ANDRE,Andre,Andre,33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x1181,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1
-1096,ANGELING,Angeling,Angeling,77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1
-1097,ANT_EGG,Ant Egg,Ant Egg,28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1
-1098,ANUBIS,Anubis,Anubis,105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1
-1099,ARGIOPE,Argiope,Argiope,75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1
-1100,ARGOS,Argos,Argos,47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1
-1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1
-1102,BATHORY,Bathory,Bathory,86,5242,1,1170,1364,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1
-1103,CARAMEL,Caramel,Caramel,25,518,1,162,183,1,67,76,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1
-1104,COCO,Coco,Coco,38,836,1,270,305,1,71,82,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1
-1105,DENIRO,Deniro,Deniro,31,671,1,207,233,1,45,61,52,16,15,16,30,10,23,15,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1
-1106,DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,1800,1350,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,200,1287,1,756,53,1217,140,0,0,0,0,4082,1
-1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,90,68,1,33,41,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1081,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,200,2301,200,13011,5,582,1000,0,0,0,0,4023,1
-1108,DEVIACE,Deviace,Deviace,60,3135,1,658,740,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1
-1109,DEVIRUCHI,Deviruchi,Deviruchi,93,8912,1,1806,2166,1,367,549,72,16,61,49,30,85,99,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1
-1110,DOKEBI,Dokebi,Dokebi,68,2820,1,675,759,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1
-1111,DRAINLIAR,Drainliar,Drainliar,47,1162,1,389,438,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1
-1112,DRAKE,Drake,Drake,91,804500,1,515160,417960,1,1938,3341,279,135,121,103,114,107,135,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1
-1113,DROPS,Drops,Drops,2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1
-1114,DUSTINESS,Dustiness,Dustiness,62,2026,1,602,678,1,158,189,69,50,46,22,46,60,68,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1
-1115,EDDGA,Eddga,Eddga,65,247500,1,198000,148500,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1
-1116,EGGYRA,Eggyra,Eggyra,53,1676,1,330,689,1,105,145,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1
-1117,EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,1339,1280,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1
-1118,FLORA,Flora,Flora,59,2301,1,531,597,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1
-1119,FRILLDORA,Frilldora,Frilldora,57,1821,1,486,548,1,172,214,84,10,48,38,38,15,46,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1
-1120,GHOSTRING,Ghostring,Ghostring,90,26700,1,4305,4467,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1
-1121,GIEARTH,Giearth,Giearth,42,1118,1,315,354,1,70,85,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1
-1122,GOBLIN_1,Goblin,Goblin,48,1058,1,369,414,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1
-1123,GOBLIN_2,Goblin,Goblin,44,931,1,333,374,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1550,2297,3,0,0,0,0,4060,1
-1124,GOBLIN_3,Goblin,Goblin,44,930,1,333,374,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1
-1125,GOBLIN_4,Goblin,Goblin,49,1494,1,396,446,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1
-1126,GOBLIN_5,Goblin,Goblin,56,2342,1,486,548,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1
-1127,HODE,Hode,Hode,63,2676,1,632,710,1,170,215,91,24,61,16,42,5,29,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1
-1128,HORN,Horn,Horn,32,705,1,216,243,1,64,75,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1
-1129,HORONG,Horong,Horong,66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1
-1130,JAKK,Jakk,Jakk,63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1
-1131,JOKER,Joker,Joker,90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1
-1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1
-1133,KOBOLD_1,Kobold,Kobold,107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1
-1134,KOBOLD_2,Kobold,Kobold,102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1
-1135,KOBOLD_3,Kobold,Kobold,101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1
-//1136,KOBOLD_4,Kobold,Kobold,31,1961,1,783,395,1,316,378,24,10,1,31,31,20,55,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1
-//1137,KOBOLD_5,Kobold,Kobold,31,1962,1,580,366,1,223,256,24,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1
-1138,MAGNOLIA,Magnolia,Magnolia,53,1984,1,441,495,1,91,256,51,8,49,25,21,50,28,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1
-1139,MANTIS,Mantis,Mantis,65,2719,1,594,669,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1
-1140,MARDUK,Marduk,Marduk,73,2893,1,774,872,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1
-1141,MARINA,Marina,Marina,42,1209,1,340,381,1,73,98,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1
-1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,51,1924,1,446,503,1,1,2,41,28,10,16,35,25,26,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1
-1143,MARIONETTE,Marionette,Marionette,90,7166,1,1442,2009,1,202,392,35,24,52,79,28,105,72,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1
-1144,MARSE,Marse,Marse,47,1456,1,389,438,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1
-1145,MARTIN,Martin,Martin,39,1056,1,311,350,1,70,88,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1
-1146,MATYR,Matyr,Matyr,58,2087,1,495,557,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1
-1147,MAYA,Maya,Maya,55,380000,1,178560,133920,1,555,820,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1
-1148,MEDUSA,Medusa,Medusa,102,10045,1,1737,1302,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1
-1149,MINOROUS,Minorous,Minorous,58,1893,1,544,602,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,10,1301,200,568,300,0,0,0,0,4126,1
-1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,79,324000,1,334080,271440,1,2029,3280,154,81,86,102,93,82,131,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1
-1151,MYST,Myst,Myst,49,1223,1,396,446,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1
-1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,459,524,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1
-1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,430,498,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1
-1154,PASANA,Pasana,Pasana,79,3510,1,972,1194,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1
-1155,PETIT,Petite,Petite,86,5799,1,1170,1317,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,40,606,15,0,0,0,0,4118,1
-1156,PETIT_,Petite,Petite,79,3556,1,900,1013,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1
-1157,PHARAOH,Pharaoh,Pharaoh,85,500000,1,417600,334080,1,1476,3258,124,269,98,102,96,142,144,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1
-1158,PHEN,Phen,Phen,52,1963,1,446,503,1,97,127,44,11,54,15,35,15,25,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1
-1159,PHREEONI,Phreeoni,Phreeoni,71,300000,1,116000,180000,1,630,1597,269,98,88,70,112,87,102,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1
-1160,PIERE,Piere,Piere,32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1
-1161,PLANKTON,Plankton,Plankton,40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1
-1162,RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1
-1163,RAYDRIC,Raydric,Raydric,115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1
-1164,REQUIEM,Requiem,Requiem,71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1
-1165,SAND_MAN,Sandman,Sandman,61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1
-1166,SAVAGE,Savage,Savage,59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1
-1167,SAVAGE_BABE,Savage Babe,Savage Babe,14,180,1,90,68,1,19,25,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,1,949,850,1010,80,627,40,0,0,0,0,4017,1
-//1168,SCORPION_KING,Scorpion King,Scorpion King,50,5719,1,1968,1211,1,600,713,64,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1
-1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,333,374,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1
-1170,SOHEE,Sohee,Sohee,64,2875,1,594,669,1,169,199,61,21,61,24,29,20,37,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1
+1076,SKELETON,Skeleton,Skeleton,27,612,1,162,183,1,78,24,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1
+1077,POISON_SPORE,Poison Spore,Poison Spore,26,456,1,162,183,1,68,15,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1
+1078,RED_PLANT,Red Plant,Red Plant,1,5,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2
+1079,BLUE_PLANT,Blue Plant,Blue Plant,1,10,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2
+1080,GREEN_PLANT,Green Plant,Green Plant,1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2
+1081,YELLOW_PLANT,Yellow Plant,Yellow Plant,1,6,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7935,300,707,5,914,500,0,0,0,0,2269,2
+1082,WHITE_PLANT,White Plant,White Plant,1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2
+1083,SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,1,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,518,500,607,50,0,0,0,0,714,1
+1084,BLACK_MUSHROOM,Black Mushroom,Black Mushroom,1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500
+1085,RED_MUSHROOM,Red Mushroom,Red Mushroom,1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500
+1086,GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,65,222750,1,204120,155520,1,952,843,159,81,71,77,80,62,140,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1
+1087,ORK_HERO,Orc Hero,Orc Hero,50,362000,1,106920,97200,1,662,441,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1
+1088,VOCAL,Vocal,Vocal,18,3317,1,99,79,1,71,11,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1
+1089,TOAD,Toad,Toad,27,660,1,162,183,1,70,19,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1
+1090,MASTERING,Mastering,Mastering,42,1260,1,315,354,1,80,40,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1
+1091,DRAGON_FLY,Dragon Fly,Dragon Fly,47,1035,1,360,405,1,102,33,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1
+1092,VAGABOND_WOLF,Vagabond Wolf,Vagabond Wolf,93,8203,1,1706,2601,1,519,46,102,51,72,63,55,29,108,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1
+1093,ECLIPSE,Eclipse,Eclipse,31,625,1,207,233,1,60,20,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1
+1094,AMBERNITE,Ambernite,Ambernite,19,340,1,117,87,1,26,11,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1
+1095,ANDRE,Andre,Andre,33,724,1,216,243,1,51,21,55,16,11,20,40,10,24,10,10,12,0,4,22,0x1181,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1
+1096,ANGELING,Angeling,Angeling,77,19800,1,3366,2693,1,391,145,72,238,58,50,33,105,80,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1
+1097,ANT_EGG,Ant Egg,Ant Egg,28,530,1,180,203,0,1,1,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1
+1098,ANUBIS,Anubis,Anubis,105,38826,1,6026,2725,1,984,415,103,48,88,67,40,128,107,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,15042,100,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1
+1099,ARGIOPE,Argiope,Argiope,75,3105,1,890,912,1,321,50,88,32,60,23,40,30,24,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1
+1100,ARGOS,Argos,Argos,47,1005,1,360,405,1,96,33,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1
+1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,510,548,1,195,33,70,25,52,60,36,17,57,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1
+1102,BATHORY,Bathory,Bathory,86,5242,1,1286,1364,1,252,96,61,89,66,38,40,77,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1
+1103,CARAMEL,Caramel,Caramel,25,518,1,162,183,1,67,9,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1
+1104,COCO,Coco,Coco,38,836,1,270,305,1,71,11,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1
+1105,DENIRO,Deniro,Deniro,31,671,1,207,233,1,45,16,52,16,15,16,30,10,23,15,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1
+1106,DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,2160,1350,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,10,1287,1,756,53,1217,140,0,0,0,0,4082,1
+1107,DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,90,68,1,33,8,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1081,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,2,2301,200,13011,5,582,1000,0,0,0,0,4023,1
+1108,DEVIACE,Deviace,Deviace,60,3135,1,690,740,1,168,29,51,16,57,26,32,25,50,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1
+1109,DEVIRUCHI,Deviruchi,Deviruchi,93,8912,1,2166,2166,1,477,182,72,16,61,49,30,85,119,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1
+1110,DOKEBI,Dokebi,Dokebi,68,2820,1,708,759,1,333,30,85,20,52,56,35,20,66,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,10038,10,1005,5,0,0,0,0,4098,1
+1111,DRAINLIAR,Drainliar,Drainliar,47,1162,1,389,438,1,100,42,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1
+1112,DRAKE,Drake,Drake,91,804500,1,618192,417960,1,2519,1403,279,135,121,103,114,107,162,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1
+1113,DROPS,Drops,Drops,2,45,1,27,20,1,12,1,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1
+1114,DUSTINESS,Dustiness,Dustiness,62,2026,1,632,678,1,166,31,69,50,46,22,46,60,75,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1
+1115,EDDGA,Eddga,Eddga,65,947500,1,207900,148500,1,1509,776,166,70,92,80,103,66,139,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,800,985,2400,13046,200,0,0,0,0,4123,1
+1116,EGGYRA,Eggyra,Eggyra,53,1676,1,346,689,1,110,40,85,20,46,25,25,15,57,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1
+1117,EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,1472,1280,1,378,68,88,45,62,32,24,45,85,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1
+1118,FLORA,Flora,Flora,59,2301,1,558,597,3,163,31,99,29,49,29,35,5,46,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1
+1119,FRILLDORA,Frilldora,Frilldora,57,1821,1,510,548,1,181,42,84,10,48,38,38,15,51,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1
+1120,GHOSTRING,Ghostring,Ghostring,90,26700,1,4736,4467,1,385,162,88,72,66,85,66,66,119,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1
+1121,GIEARTH,Giearth,Giearth,42,1118,1,315,354,1,70,15,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1
+1122,GOBLIN_1,Goblin,Goblin,48,1058,1,369,414,1,87,34,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1
+1123,GOBLIN_2,Goblin,Goblin,44,931,1,333,374,1,94,28,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1000,2297,3,0,0,0,0,4060,1
+1124,GOBLIN_3,Goblin,Goblin,44,930,1,333,374,1,88,33,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1000,508,220,0,0,0,0,4060,1
+1125,GOBLIN_4,Goblin,Goblin,49,1494,1,396,446,1,72,22,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1
+1126,GOBLIN_5,Goblin,Goblin,56,2342,1,510,548,1,167,31,64,5,51,37,22,15,42,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1
+1127,HODE,Hode,Hode,63,2676,1,664,710,1,179,45,91,24,61,16,42,5,32,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1
+1128,HORN,Horn,Horn,32,705,1,216,243,1,64,11,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1
+1129,HORONG,Horong,Horong,66,2304,1,820,879,1,275,70,84,35,36,32,35,45,62,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1
+1130,JAKK,Jakk,Jakk,63,2054,1,664,710,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1
+1131,JOKER,Joker,Joker,90,6022,1,1780,1821,1,317,60,64,76,84,99,30,50,92,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1
+1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,3920,2646,1,1232,96,125,10,121,48,40,31,125,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,15036,100,0,0,0,0,4136,1
+1133,KOBOLD_1,Kobold,Kobold,107,10483,1,2728,1706,1,701,87,103,25,109,76,61,53,98,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1
+1134,KOBOLD_2,Kobold,Kobold,102,9152,1,2332,1458,1,477,62,117,59,96,61,55,48,95,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1
+1135,KOBOLD_3,Kobold,Kobold,101,9078,1,2192,1371,1,468,64,109,48,103,64,59,42,80,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1
+1136,KOBOLD_4,Kobold,Kobold,31,10,1,4582500,4582500,1,316,62,1,1,1,31,31,20,55,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1
+1137,KOBOLD_5,Kobold,Kobold,31,10,1,4582500,4582500,1,223,33,1,1,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1
+1138,MAGNOLIA,Magnolia,Magnolia,53,1984,1,462,495,1,96,165,51,8,49,25,21,50,31,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1
+1139,MANTIS,Mantis,Mantis,65,2719,1,624,669,1,187,31,90,0,55,33,24,5,46,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1
+1140,MARDUK,Marduk,Marduk,73,2893,1,850,872,1,198,112,66,43,66,49,21,40,79,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1
+1141,MARINA,Marina,Marina,42,1209,1,340,381,1,73,25,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1
+1142,MARINE_SPHERE,Marine Sphere,Marine Sphere,51,1924,1,468,503,1,1,1,41,28,10,16,35,25,29,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1
+1143,MARIONETTE,Marionette,Marionette,90,7166,1,1586,2009,1,222,190,35,24,52,79,28,105,86,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1
+1144,MARSE,Marse,Marse,47,1456,1,389,438,1,85,20,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1
+1145,MARTIN,Martin,Martin,39,1056,1,311,350,1,70,18,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1
+1146,MATYR,Matyr,Matyr,58,2087,1,520,557,1,151,26,63,5,48,20,21,17,47,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1
+1147,MAYA,Maya,Maya,55,380000,1,178560,133920,1,555,265,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1
+1148,MEDUSA,Medusa,Medusa,102,10045,1,2084,1302,1,620,113,87,66,99,68,65,79,83,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1
+1149,MINOROUS,Minorous,Minorous,58,1893,1,570,602,1,247,36,100,10,65,42,36,43,61,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,100,1301,200,568,300,0,0,0,0,4126,1
+1150,MOONLIGHT,Moonlight Flower,Moonlight Flower,79,324000,1,367488,271440,1,2232,1251,254,81,86,102,93,82,157,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1
+1151,MYST,Myst,Myst,49,1223,1,396,446,1,96,20,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1
+1152,ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,482,524,1,121,25,82,10,52,16,24,5,24,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1
+1153,ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,452,498,1,114,15,71,5,45,17,32,5,57,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1
+1154,PASANA,Pasana,Pasana,79,3510,1,1068,1194,1,438,40,93,35,76,36,33,20,80,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1
+1155,PETIT,Petite,Petite,86,5799,1,1286,1317,1,321,66,99,49,55,32,38,37,65,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,100,606,15,0,0,0,0,4118,1
+1156,PETIT_,Petite,Petite,79,3556,1,990,1013,1,308,36,86,42,63,39,31,55,86,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1
+1157,PHARAOH,Pharaoh,Pharaoh,85,900000,1,459360,334080,1,1624,1782,124,269,98,102,96,142,173,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1
+1158,PHEN,Phen,Phen,52,1963,1,468,503,1,102,30,44,11,54,15,35,15,28,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1
+1159,PHREEONI,Phreeoni,Phreeoni,71,300000,1,127600,180000,1,693,967,269,98,88,70,112,87,122,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1
+1160,PIERE,Piere,Piere,32,696,1,216,243,1,47,20,57,16,19,19,36,8,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1
+1161,PLANKTON,Plankton,Plankton,40,1232,1,334,375,1,75,36,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1
+1162,RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,1286,1317,3,325,41,86,2,47,41,44,29,78,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1
+1163,RAYDRIC,Raydric,Raydric,115,18408,1,3600,2076,1,901,96,89,15,129,87,55,32,106,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,15037,10,1004,10,7054,4850,0,0,0,0,4133,1
+1164,REQUIEM,Requiem,Requiem,71,3089,1,812,831,1,348,48,88,20,58,34,35,12,50,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1
+1165,SAND_MAN,Sandman,Sandman,61,2887,1,656,705,1,164,56,126,24,44,8,55,15,34,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1
+1166,SAVAGE,Savage,Savage,59,2301,1,602,644,1,181,23,126,3,56,21,54,10,52,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,50,757,70,526,2,0,0,0,0,4078,1
+1167,SAVAGE_BABE,Savage Babe,Savage Babe,14,180,1,90,68,1,19,6,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,6,949,850,1010,80,627,40,0,0,0,0,4017,1
+1168,SCORPION_KING,Scorpion King,Scorpion King,50,5719,1,2066,1211,1,630,113,64,10,1,50,47,1,91,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1
+1169,SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,333,374,1,92,12,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1
+1170,SOHEE,Sohee,Sohee,64,2875,1,624,669,1,177,30,61,21,61,24,29,20,41,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1
//1171,SOLDIER_ANDRE,Soldier Andre,Soldier Andre,22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1
//1172,SOLDIER_DENIRO,Soldier Deniro,Soldier Deniro,29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1
//1173,SOLDIER_PIERE,Soldier Piere,Soldier Piere,23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1
-1174,STAINER,Stainer,Stainer,21,365,1,126,143,1,65,74,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1
-1175,TAROU,Tarou,Tarou,22,420,1,135,152,1,72,78,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1
-1176,VITATA,Vitata,Vitata,35,756,1,234,264,1,68,86,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1
-1177,ZENORC,Zenorc,Zenorc,54,1816,1,450,507,1,130,154,69,5,50,18,20,5,25,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1
-1178,ZEROM,Zerom,Zerom,70,2687,1,720,960,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1
-1179,WHISPER,Whisper,Whisper,46,1109,1,242,513,1,65,120,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1
-1180,NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,887,998,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1
-//1181,ZOMBIE_DRAGON,Zombie Dragon,Zombie Dragon,1,1000,1,44550,1485,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,1,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1183,CHONCHON_,Chonchon,Chonchon,5,63,1,36,27,1,11,14,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1
-1184,FABRE_,Fabre,Fabre,1,30,1,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0
-1185,WHISPER_,Whisper,Whisper,34,1796,1,483,737,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0
-1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,630,710,1,282,341,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1
-1188,BON_GUN,Bongun,Bongun,59,2510,1,531,597,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1
-1189,ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,922,1161,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1
-1190,ORC_LORD,Orc Lord,Orc Lord,55,552000,1,156240,122760,1,780,1428,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,100,0,0,0,0,4135,1
-1191,MIMIC,Mimic,Mimic,56,1939,1,486,548,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1
-1192,WRAITH,Wraith,Wraith,77,5168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1
-1193,ALARM,Alarm,Alarm,88,5562,1,1242,1398,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1
-1194,ARCLOUSE,Arclouse,Arclouze,107,10020,1,1844,2607,1,269,309,101,36,60,73,45,35,140,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1
-1195,RIDEWORD,Rideword,Rideword,74,3222,1,810,1212,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1
-1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,1566,1763,1,466,521,95,41,84,35,60,20,71,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1
-1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,1458,1647,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1
-1198,DARK_PRIEST,Dark Priest,Dark Priest,98,12090,0,2430,1667,2,355,554,56,30,5,60,41,89,78,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1
-1199,PUNK,Punk,Punk,82,3869,1,972,1094,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1
-1200,ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,6944,6458,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1
-1201,RYBIO,Rybio,Rybio,98,8700,1,1575,1442,1,477,553,109,30,96,52,61,30,73,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1
-1202,PHENDARK,Phendark,Phendark,102,11000,1,1990,1302,2,539,614,307,50,111,65,71,20,91,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1
-1203,MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,7919,4987,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1
-1204,TIRFING,Tirfing,Ogretooth,114,59000,1,5345,5009,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1
-1205,EXECUTIONER,Executioner,Executioner,101,40200,1,4860,3645,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1
-1206,ANOLIAN,Anolian,Anolian,109,15547,1,2930,2223,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1
-1207,STING,Sting,Sting,104,10143,1,2172,1629,1,611,678,146,34,108,49,68,34,99,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1
-1208,WANDER_MAN,Wander Man,Wanderer,120,19307,1,3389,2466,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1
-1209,CRAMP,Cramp,Cramp,82,3898,1,972,1094,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1
+1174,STAINER,Stainer,Stainer,21,365,1,126,143,1,65,9,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1
+1175,TAROU,Tarou,Tarou,22,420,1,135,152,1,72,6,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1
+1176,VITATA,Vitata,Vitata,35,756,1,234,264,1,68,18,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1
+1177,ZENORC,Zenorc,Zenorc,54,1816,1,472,507,1,137,24,69,5,50,18,20,5,28,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1
+1178,ZEROM,Zerom,Zerom,70,2687,1,756,960,1,328,38,93,15,57,49,30,15,62,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1
+1179,WHISPER,Whisper,Whisper,46,1109,1,242,513,1,65,55,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1
+1180,NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,976,998,1,491,50,95,40,61,38,30,20,106,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1
+1181,ZOMBIE_DRAGON,Fafnir,Fafnir,1,1000,1,44550,1485,3,7900,1240,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1182,THIEF_MUSHROOM,Thief Mushroom,Thief Mushroom,1,15,1,0,0,1,1,1,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,3000,1070,6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1183,CHONCHON_,Chonchon,Chonchon,5,63,1,36,27,1,11,3,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1
+1184,FABRE_,Fabre,Fabre,1,30,1,1,0,1,4,3,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0
+1185,WHISPER_,Whisper,Whisper,34,1796,1,483,737,1,198,41,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,2282,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0
+1186,WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,662,710,1,296,59,94,45,40,79,44,51,74,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1
+1188,BON_GUN,Bongun,Bongun,59,2510,1,558,597,1,198,29,88,5,55,24,24,5,37,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1
+1189,ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,1014,1161,9,286,43,67,31,55,32,24,30,119,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1
+1190,ORC_LORD,Orc Lord,Orc Lord,55,552000,1,156240,122760,1,780,648,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1
+1191,MIMIC,Mimic,Mimic,56,1939,1,510,548,1,232,22,63,15,49,120,20,15,109,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1
+1192,WRAITH,Wraith,Wraith,77,5168,1,1308,1191,1,369,61,80,40,62,26,30,55,91,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1
+1193,ALARM,Alarm,Alarm,88,5562,1,1366,1398,1,319,48,106,53,70,72,40,25,66,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1
+1194,ARCLOUSE,Arclouse,Arclouze,107,10020,1,2212,2607,1,350,40,101,36,60,73,45,35,168,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1
+1195,RIDEWORD,Rideword,Rideword,74,3222,1,890,1212,1,387,22,61,38,67,53,32,44,125,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1
+1196,SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,1878,1763,1,606,55,95,41,84,35,60,20,85,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1
+1197,ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,1604,1647,1,392,60,89,28,87,39,58,5,82,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1
+1198,DARK_PRIEST,Dark Priest,Dark Priest,98,12090,0,2916,1667,2,462,259,56,30,5,60,41,89,94,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1
+1199,PUNK,Punk,Punk,82,3869,1,1068,1094,1,293,54,68,55,67,39,30,35,95,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1
+1200,ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,9332,6458,1,993,250,91,99,88,61,51,62,136,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,10037,10,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1
+1201,RYBIO,Rybio,Rybio,98,8700,1,1890,1942,1,720,76,109,30,96,52,61,30,88,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1
+1202,PHENDARK,Phendark,Phendark,102,11000,1,2388,1882,2,872,75,440,50,111,65,71,20,109,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,6216,500,0,0,0,0,4329,1
+1203,MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,10294,4987,2,1079,567,73,61,102,139,62,65,182,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1
+1204,TIRFING,Tirfing,Ogretooth,114,59000,1,6948,5009,1,948,411,87,69,105,105,75,73,151,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1
+1205,EXECUTIONER,Executioner,Executioner,101,40200,1,5832,3645,2,670,359,97,188,99,96,77,78,95,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1
+1206,ANOLIAN,Anolian,Anolian,109,15547,1,3516,2223,1,650,110,61,11,130,63,55,66,70,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1
+1207,STING,Sting,Sting,104,10143,1,2606,1629,1,794,67,146,34,108,49,68,34,119,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1
+1208,WANDER_MAN,Wander Man,Wanderer,120,19307,1,4406,3726,2,1695,105,64,5,118,92,36,15,169,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1
+1209,CRAMP,Cramp,Cramp,82,3898,1,1068,1094,1,435,48,88,42,65,43,35,25,82,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1
//1210,FILAMENTOUS,Filamentous,Filamentous,51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1
-1211,BRILIGHT,Brilight,Brilight,71,2772,1,738,831,1,306,339,93,25,51,19,38,32,56,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1
-1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1292,1368,1,430,590,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1
-1213,HIGH_ORC,High Orc,High Orc,81,4193,1,1099,1158,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1
-1214,CHOCO,Choco,Choco,48,1080,1,369,414,1,120,167,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1
-1215,STEM_WORM,Stem Worm,Stem Worm,84,4530,1,1080,1215,1,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1
-1216,PENOMENA,Penomena,Penomena,85,4589,1,1116,1556,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1
-1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,122,23297,1,4779,4013,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1
-1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1
-1221,M_SAVAGE,Savage,Savage,26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1
+1211,BRILIGHT,Brilight,Brilight,71,2772,1,812,831,1,337,33,93,25,51,19,38,32,67,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1
+1212,IRON_FIST,Iron Fist,Iron Fist,47,4221,0,1292,1368,1,430,160,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1
+1213,HIGH_ORC,High Orc,High Orc,81,4193,1,1208,1158,1,428,50,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1
+1214,CHOCO,Choco,Choco,48,1080,1,369,414,1,120,47,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1
+1215,STEM_WORM,Stem Worm,Stem Worm,84,4530,1,1188,1215,1,293,41,73,50,55,37,25,47,84,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1
+1216,PENOMENA,Penomena,Penomena,85,4589,1,1528,1556,7,481,41,85,32,76,38,35,35,107,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1
+1219,KNIGHT_OF_ABYSS,Knight of Abyss,Abysmal Knight,122,23297,1,6212,4212,1,1734,192,102,50,121,55,68,70,136,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1
+//1220,M_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1
+//1221,M_SAVAGE,Savage,Savage,26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1
//1222,L_HIGH_ORC,High Orc,High Orc,52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1
//1223,L_ORC,Orc,Orc,24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1
//1224,L_POISON_SPORE,Poison Spore,Poison Spore,19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1
@@ -229,696 +229,696 @@
//1226,L_KOBOLD,Kobold,Kobold,36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1
//1227,L_GOBLIN,Goblin,Goblin,25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1
//1228,L_PHEN,Phen,Phen,26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1
-1229,META_FABRE,Fabre,Fabre,2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1
-1230,META_PUPA,Pupa,Pupa,2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1
-1231,META_CREAMY,Creamy,Creamy,16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1
-1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1
+//1229,META_FABRE,Fabre,Fabre,2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1
+//1230,META_PUPA,Pupa,Pupa,2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1
+//1231,META_CREAMY,Creamy,Creamy,16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1
+//1232,META_PECOPECO_EGG,Peco Peco Egg,Peco Peco Egg,3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1
//1233,CONCEIVE_PECOPECO,Peco Peco,Peco Peco,19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1
-1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1
-1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1
-1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1
-1237,META_ANDRE,Andre,Andre,17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x1181,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1
-1238,META_PIERE,Piere,Piere,18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1
-1239,META_DENIRO,Deniro,Deniro,19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1
-1240,META_PICKY,Picky,Picky,3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1
-1241,META_PICKY_,Picky,Picky,4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1
+//1234,PROVOKE_YOYO,Yoyo,Yoyo,19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1
+//1235,SMOKING_ORC,Smoking Orc,Smoking Orc,24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1
+//1236,META_ANT_EGG,Ant Egg,Ant Egg,4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1
+//1237,META_ANDRE,Andre,Andre,17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x1181,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1
+//1238,META_PIERE,Piere,Piere,18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1
+//1239,META_DENIRO,Deniro,Deniro,19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1
+//1240,META_PICKY,Picky,Picky,3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1
+//1241,META_PICKY_,Picky,Picky,4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1
+
// Lutie (2.0)
-1242,MARIN,Marin,Marin,37,987,1,282,317,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1
-1243,SASQUATCH,Sasquatch,Sasquatch,72,3163,1,765,860,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1
-1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,63,2054,1,1002,619,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1
-1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,254,154,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1
-1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,282,317,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1
-1247,ANTONIO,Antonio,Antonio,10,10,1,3,2,1,13,21,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,5136,1000,5811,1000,604,3000,14550,10000,12225,2000,12132,2000,12354,3000,0,0,0,0,12132,2000
-1248,CRUISER,Cruiser,Cruiser,41,919,1,288,324,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1
-1249,MYSTCASE,Myst Case,Myst Case,39,879,1,288,324,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1
-1250,CHEPET,Chepet,Chepet,42,4950,0,1315,1854,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1
-1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,92,630500,1,413800,302200,2,2677,4110,306,166,126,165,132,104,171,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1
-1252,GARM,Garm,Hatii,98,1275500,1,758880,613800,3,1862,3595,173,103,122,153,135,116,146,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1
+1242,MARIN,Marin,Marin,37,987,1,282,317,1,69,14,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1
+1243,SASQUATCH,Sasquatch,Sasquatch,72,3163,1,842,860,1,293,30,101,28,70,35,60,10,71,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1
+1244,JAKK_XMAS,Christmas Jakk,Christmas Jakk,63,2054,1,1052,619,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1
+1245,GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,254,154,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1
+1246,COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,282,317,1,70,35,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1
+1247,ANTONIO,Antonio,Antonio,10,10,1,1,2,1,13,8,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,7034,10000,644,2000,529,10000,14550,10000,12225,2000,12132,2000,12354,200,12132,2000,0,0,0,0
+1248,CRUISER,Cruiser,Cruiser,41,919,1,288,324,7,55,20,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1
+1249,MYSTCASE,Myst Case,Myst Case,39,879,1,288,324,1,68,21,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1
+1250,CHEPET,Chepet,Chepet,42,4950,0,1315,1854,1,79,33,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1
+1251,KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,92,630500,1,496560,302200,2,3480,1433,306,166,126,165,132,104,205,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1
+1252,GARM,Garm,Hatii,98,1275500,1,910656,613800,3,2421,1733,173,103,122,153,135,116,175,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1
// Comodo (3.0)
-1253,GARGOYLE,Gargoyle,Gargoyle,100,8772,1,1900,1425,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,2506,2,1746,5,2619,1,1769,2000,757,238,0,0,0,0,4149,1
-1254,RAGGLER,Raggler,Raggler,48,1148,1,369,414,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1
-1255,NERAID,Neraid,Nereid,98,9550,1,1575,1181,1,196,267,100,37,97,45,60,30,69,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1
-1256,PEST,Pest,Pest,89,5747,1,1341,1509,1,304,352,55,33,73,77,48,15,88,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1
-1257,INJUSTICE,Injustice,Injustice,95,7952,1,1574,1997,1,344,460,76,31,77,59,58,65,73,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1
-1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,450,507,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1
-1259,GRYPHON,Gryphon,Gryphon,105,60720,1,9410,5808,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1
-1260,DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,992,1115,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1
-1261,WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,720,1110,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1
-1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,3644,12830,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1
-1263,WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,918,1334,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1
-1264,MERMAN,Merman,Merman,60,2940,1,616,692,1,125,157,62,8,45,29,30,19,50,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1
-1265,COOKIE,Cookie,Cookie,35,666,1,234,264,1,59,84,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1
-1266,ASTER,Aster,Aster,50,1509,1,405,455,1,85,107,70,7,41,14,15,0,28,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1
-1267,CARAT,Carat,Carat,103,9222,1,1944,1458,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1
-1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,7348,6511,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1
-1269,CLOCK,Clock,Clock,81,5556,1,1231,1158,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1
-1270,C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,1305,1467,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1
-1271,ALLIGATOR,Alligator,Alligator,57,2430,1,486,548,1,150,187,62,30,47,48,24,15,36,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1
-1272,DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,714240,558000,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1
-1273,ORC_LADY,Orc Lady,Orc Lady,45,1520,1,380,435,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1
-1274,MEGALITH,Megalith,Megalith,65,2451,1,594,669,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1
-1275,ALICE,Alice,Alice,100,9230,1,1630,1222,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,3000,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1
-1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,1049,1332,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1
-1277,GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,486,548,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1
-1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,68,2590,1,675,759,1,341,362,230,5,67,47,48,1,63,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1
-1279,TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,347,297,1,278,306,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1
-1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,66,2241,1,680,765,1,280,315,85,5,52,61,32,15,82,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1
-1281,SAGEWORM,Sage Worm,Sage Worm,70,2872,1,720,810,1,158,279,109,45,39,29,28,71,44,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1
-1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1
-1283,CHIMERA,Chimera,Chimera,70,26406,1,5168,4698,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1
+1253,GARGOYLE,Gargoyle,Gargoyle,100,8772,1,2280,1425,9,498,89,98,43,100,61,60,57,120,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,1746,6,0,0,2619,1,1769,2000,757,238,0,0,0,0,4149,1
+1254,RAGGLER,Raggler,Raggler,48,1148,1,369,414,1,72,39,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1
+1255,NERAID,Neraid,Nereid,98,9550,1,1890,1181,1,255,71,100,37,97,45,60,30,83,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1
+1256,PEST,Pest,Pest,89,5747,1,1474,1509,1,334,48,55,33,73,77,48,15,106,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1
+1257,INJUSTICE,Injustice,Injustice,95,7952,1,1888,1997,1,447,116,76,31,77,59,58,65,88,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1
+1258,GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,472,507,9,100,24,69,0,40,34,20,15,53,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1
+1259,GRYPHON,Gryphon,Gryphon,105,60720,1,11292,5808,1,1432,103,113,72,101,133,66,70,164,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1
+1260,DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,1090,1115,1,350,30,67,27,69,37,36,10,64,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1
+1261,WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,756,1110,1,147,45,75,15,44,87,31,35,69,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1
+1262,MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,3826,12830,4,1176,534,130,20,75,35,30,68,108,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1
+1263,WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,1010,1334,2,182,95,64,51,62,27,25,55,102,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1
+1264,MERMAN,Merman,Merman,60,2940,1,646,692,1,131,32,62,8,45,29,30,19,55,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1
+1265,COOKIE,Cookie,Cookie,35,666,1,234,264,1,59,25,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1
+1266,ASTER,Aster,Aster,50,1509,1,424,455,1,89,22,70,7,41,14,15,0,31,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1
+1267,CARAT,Carat,Carat,103,9222,1,2332,1458,1,777,76,111,67,102,64,60,40,80,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1
+1268,BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,9552,6511,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1
+1269,CLOCK,Clock,Clock,81,5556,1,1354,1158,1,443,53,91,43,68,24,35,41,97,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1
+1270,C_TOWER_MANAGER,Clock Tower Manager,Tower Keeper,90,6400,1,1436,1467,3,427,70,96,60,80,28,40,25,88,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1
+1271,ALLIGATOR,Alligator,Alligator,57,2430,1,510,548,1,158,37,62,30,47,48,24,15,40,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1
+1272,DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,857088,558000,2,3935,2585,330,168,118,136,154,142,193,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1
+1273,ORC_LADY,Orc Lady,Orc Lady,45,1520,1,380,435,1,77,33,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1
+1274,MEGALITH,Megalith,Megalith,65,2451,1,624,669,9,122,30,66,18,57,14,35,10,99,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1
+1275,ALICE,Alice,Alice,100,9230,1,1956,1222,1,514,98,93,73,82,53,45,70,96,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1
+1276,RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,1154,1332,9,415,18,63,40,53,24,40,15,134,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1
+1277,GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,510,548,3,226,26,114,30,58,30,20,25,28,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1
+1278,STALACTIC_GOLEM,Stalactic Golem,Stalactic Golem,68,2590,1,708,759,1,358,21,230,5,67,47,48,1,69,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1
+1279,TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,364,297,1,292,28,22,5,1,33,24,10,61,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1
+1280,STEAM_GOBLIN,Steam Goblin,Goblin Steamrider,66,2241,1,714,765,1,294,35,85,5,52,61,32,15,90,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1
+1281,SAGEWORM,Sage Worm,Sage Worm,70,2872,1,756,810,1,166,121,109,45,39,29,28,71,48,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,10024,10,689,100,5012,1,0,0,0,0,4219,1
+1282,KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,2592,2620,9,762,33,84,5,99,39,48,30,124,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1
+1283,CHIMERA,Chimera,Chimera,70,26406,1,5426,4698,1,1029,148,159,10,1,38,110,88,91,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1
//1284,HUGELING,Hugeling,Hugeling,1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0
// War Of Emperium & Guild Dungeon (4.1)
-1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,1,1,1,12,1120,1600,56,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,1,1,1,2,1280,1560,88,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,1,1,1,1,873,1036,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1288,EMPELIUM,Emperium,Emperium,90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,77670,1,11714,6516,2,1447,2000,139,40,95,52,80,95,73,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1
-1290,SKELETON_GENERAL,Skeleton General,Skeleton General,88,6720,0,1368,1553,1,540,579,100,35,72,34,52,31,84,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1
-1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,2518,1824,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1
-1292,MINI_DEMON,Mini Demon,Mini Demon,117,19402,1,2700,2025,1,670,784,80,25,130,69,55,56,79,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1
-1293,CREMY_FEAR,Creamy Fear,Creamy Fear,77,3420,0,945,1067,2,272,335,76,37,65,36,33,49,66,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1
-1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,91,7650,0,1485,1674,1,500,550,107,45,82,56,58,45,69,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1
-1295,OWL_BARON,Owl Baron,Owl Baron,120,21000,1,3042,2282,2,449,650,88,25,72,65,55,102,77,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1
-1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,2643,2383,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1
-1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,114,27157,1,4104,3199,1,701,901,93,51,126,57,55,69,112,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1
-1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,92,8780,0,1710,1857,1,499,629,78,46,55,60,48,49,72,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1
-1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,4450,5007,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1
-1300,CATERPILLAR,Caterpillar,Caterpillar,84,5555,0,1312,1487,1,270,313,100,42,58,37,51,50,45,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1
-1301,AM_MUT,Am Mut,Am Mut,76,3530,0,945,1067,1,342,391,90,42,58,44,40,35,67,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1
-1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,4091,4099,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1
-1303,GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,1080,1215,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1
-1304,GIANT_SPIDER,Giant Spider,Giant Spider,85,4680,0,1242,1418,1,298,350,86,38,71,58,43,38,61,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1
-1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,1139,1283,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1
-1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,87,6050,0,1314,1485,1,299,363,127,31,72,35,80,35,64,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1
-1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,79,23600,0,4148,5792,1,467,547,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1
-1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,52,1471,1,446,504,1,122,180,60,25,52,60,35,35,68,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1
-1309,GAJOMART,Gajomart,Gajomart,81,3825,0,1317,1490,1,355,412,98,50,77,47,39,33,78,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1
-1310,MAJORUROS,Majoruros,Majoruros,107,11801,1,3090,2200,1,654,1086,111,25,112,58,65,55,72,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1
-1311,GULLINBURSTI,Gullinbursti,Gullinbursti,89,7080,0,1478,1677,1,371,419,108,43,88,54,82,35,63,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1
+1285,ARCHER_GUARDIAN,Archer Guardian,Archer Guardian,74,28634,1,1,1,12,1232,480,56,60,95,80,80,90,198,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1286,KNIGHT_GUARDIAN,Knight Guardian,Knight Guardian,86,30214,1,1,1,2,1408,280,88,30,110,40,140,65,150,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1287,SOLDIER_GUARDIAN,Soldier Guardian,Soldier Guardian,56,15670,1,1,1,1,873,163,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1288,EMPELIUM,Emperium,Emperium,90,100,1,0,0,1,66,13,64,50,1,17,80,50,31,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1289,MAYA_PUPLE,Maya Purple,Maya Purple,81,77670,1,12884,6516,2,1592,553,139,40,95,52,80,95,88,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1
+1290,SKELETON_GENERAL,Skeleton General,Skeleton General,139,180130,0,10614,10115,1,1317,1701,100,35,72,34,52,31,101,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1
+1291,WRAITH_DEAD,Wraith Dead,Wraith Dead,121,25990,0,3802,3410,2,1002,160,88,56,63,69,55,45,106,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,4,568,300,0,0,0,0,4189,1
+1292,MINI_DEMON,Mini Demon,Mini Demon,117,19402,1,3510,2025,1,938,114,80,25,130,69,55,56,111,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1
+1293,CREMY_FEAR,Creamy Fear,Creamy Fear,117,25084,0,1901,1608,2,757,110,76,37,65,36,33,49,79,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1
+1294,KILLER_MANTIS,Killer Mantis,Killer Mantis,141,180141,0,11303,10301,1,1521,1201,107,45,82,56,58,45,83,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1
+1295,OWL_BARON,Owl Baron,Owl Baron,120,21000,1,3954,2282,2,629,201,88,25,72,65,55,102,108,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1
+1296,KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,3436,2383,1,995,96,90,62,135,34,68,56,116,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1
+1297,ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,114,27157,1,5334,3199,1,981,200,93,51,126,57,55,69,157,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1
+1298,ZOMBIE_MASTER,Zombie Master,Zombie Master,119,25510,0,1802,3502,1,824,151,78,46,55,60,48,49,86,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,7071,2,0,0,0,0,4274,1
+1299,GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,4672,5007,1,173,49,72,30,60,67,45,18,73,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1
+1300,CATERPILLAR,Caterpillar,Caterpillar,121,25656,0,1950,1650,1,1007,125,100,42,58,37,51,50,54,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,603,4,508,500,0,0,0,0,4289,1
+1301,AM_MUT,Am Mut,Am Mut,141,181487,0,10014,10113,1,1415,1630,90,42,58,44,40,35,80,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,500,0,0,0,0,4245,1
+1302,DARK_ILLUSION,Dark Illusion,Dark Illusion,96,46255,0,4954,4549,2,1166,360,145,30,82,36,55,100,182,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1
+1303,GIANT_HONET,Giant Hornet,Giant Hornet,120,26521,0,1801,1661,1,811,132,80,43,70,45,47,32,74,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,522,12,1608,3,722,20,1736,15,0,0,0,0,4271,1
+1304,GIANT_SPIDER,Giant Spider,Giant Spider,117,25001,0,1810,1601,1,743,122,86,38,71,58,43,38,73,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1
+1305,ANCIENT_WORM,Ancient Worm,Ancient Worm,121,24005,0,1901,1677,1,1051,133,90,41,70,56,56,55,84,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1
+1306,LEIB_OLMAI,Leib Olmai,Leib Olmai,118,24001,0,1900,1720,1,895,105,127,31,72,35,80,35,77,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1
+1307,CAT_O_NINE_TAIL,Cat o' Nine Tails,Cat o' Nine Tails,79,23600,0,4148,5792,1,467,80,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1
+1308,PANZER_GOBLIN,Panzer Goblin,Panzer Goblin,52,1471,1,468,504,1,128,58,60,25,52,60,35,35,75,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1
+1309,GAJOMART,Gajomart,Gajomart,140,185098,0,11810,10801,1,1615,1601,98,50,77,47,39,33,94,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,12008,200,2131,20,994,180,0,0,0,0,4151,1
+1310,MAJORUROS,Majoruros,Majoruros,107,11801,1,3708,2200,1,850,432,111,25,112,58,65,55,86,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,1000,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1
+1311,GULLINBURSTI,Gullinbursti,Gullinbursti,120,25098,0,1951,1710,1,1028,148,108,43,88,54,82,35,76,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1
// Turtle Dungeon (4.0)
-1312,TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,933120,748440,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1
-1313,MOBSTER,Mobster,Mobster,58,2253,1,495,557,1,149,172,87,18,72,36,33,21,41,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1
-1314,PERMETER,Permeter,Permeter,90,6575,1,1305,1467,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1
-1315,ASSULTER,Assaulter,Assaulter,100,8977,1,1992,1779,2,405,472,169,49,100,92,30,20,103,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1
-1316,SOLIDER,Solider,Solider,92,8768,1,1487,1671,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1
-1317,FUR_SEAL,Fur Seal,Seal,47,1371,1,360,405,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1
-1318,HEATER,Heater,Heater,98,8180,1,1893,1611,2,511,590,199,50,89,49,50,30,88,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1
-1319,FREEZER,Freezer,Freezer,94,9990,1,1555,1749,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1
-1320,OWL_DUKE,Owl Duke,Owl Duke,92,7381,1,1377,1953,1,480,680,80,45,54,51,45,88,88,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1
-1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,86,4680,1,1264,1422,1,182,217,63,25,61,65,35,40,52,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1
-1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,88,6684,1,1341,1509,1,288,328,108,42,68,66,35,30,48,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1
-1323,SEE_OTTER,Sea Otter,Sea Otter,48,1820,1,428,480,1,83,125,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1
+1312,TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,1119744,748440,2,3169,2066,394,123,116,123,154,99,217,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1
+1313,MOBSTER,Mobster,Mobster,58,2253,1,520,557,1,156,23,87,18,72,36,33,21,45,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1
+1314,PERMETER,Permeter,Permeter,90,6575,1,1305,1467,2,292,56,144,50,68,28,55,40,50,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1
+1315,ASSULTER,Assaulter,Assaulter,100,8977,1,2390,2278,2,627,67,169,49,100,92,30,20,144,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1
+1316,SOLIDER,Solider,Solider,92,8768,1,1784,1671,2,367,40,206,58,65,44,60,15,56,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1
+1317,FUR_SEAL,Fur Seal,Seal,47,1371,1,360,405,1,87,40,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1
+1318,HEATER,Heater,Heater,98,8180,1,2272,1611,2,664,79,199,50,89,49,50,30,106,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1
+1319,FREEZER,Freezer,Freezer,94,9990,1,1866,1749,2,604,150,127,38,68,47,50,45,69,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1
+1320,OWL_DUKE,Owl Duke,Owl Duke,92,7381,1,1652,1953,1,624,300,80,45,54,51,45,88,106,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1
+1321,DRAGON_TAIL,Dragon Tail,Dragon Tail,86,4680,1,1390,1422,1,200,35,63,25,61,65,35,40,62,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1
+1322,SPRING_RABBIT,Spring Rabbit,Spring Rabbit,88,6684,1,1474,1509,1,317,40,108,42,68,66,35,30,58,5,10,12,1,2,42,0x83,160,1120,552,0,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1
+1323,SEE_OTTER,Sea Otter,Sea Otter,48,1820,1,428,480,1,83,42,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1
// WoE Treasure Boxes
-1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0
-1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0
-1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0
-1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0
-1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0
-1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0
-1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0
-1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0
-1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0
-1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0
-1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0
-1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0
-1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0
-1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0
-1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0
-1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0
-1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0
-1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0
-1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0
-1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0
-1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0
+1324,TREASURE_BOX1,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1325,TREASURE_BOX2,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1326,TREASURE_BOX3,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1327,TREASURE_BOX4,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1328,TREASURE_BOX5,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1329,TREASURE_BOX6,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1330,TREASURE_BOX7,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1331,TREASURE_BOX8,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1332,TREASURE_BOX9,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1333,TREASURE_BOX10,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1334,TREASURE_BOX11,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1335,TREASURE_BOX12,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1336,TREASURE_BOX13,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1337,TREASURE_BOX14,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1338,TREASURE_BOX15,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1339,TREASURE_BOX16,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1340,TREASURE_BOX17,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1341,TREASURE_BOX18,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1342,TREASURE_BOX19,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1343,TREASURE_BOX20,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1344,TREASURE_BOX21,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1345,TREASURE_BOX22,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1346,TREASURE_BOX23,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1347,TREASURE_BOX24,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1348,TREASURE_BOX25,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1349,TREASURE_BOX26,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1350,TREASURE_BOX27,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1351,TREASURE_BOX28,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1352,TREASURE_BOX29,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1353,TREASURE_BOX30,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1354,TREASURE_BOX31,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1355,TREASURE_BOX32,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1356,TREASURE_BOX33,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1357,TREASURE_BOX34,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1358,TREASURE_BOX35,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1359,TREASURE_BOX36,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1360,TREASURE_BOX37,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1361,TREASURE_BOX38,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
+1362,TREASURE_BOX39,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0
+1363,TREASURE_BOX40,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0
// Yuno (5.0)
-1364,G_ASSULTER,Assaulter,Assaulter,98,7798,1,0,0,2,225,292,83,49,100,86,30,20,82,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1365,APOCALIPS,Apocalypse,Apocalypse,121,22090,1,3042,2282,2,752,868,136,26,130,53,76,25,89,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1
-1366,LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,2232,1674,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1
-1367,BLAZZER,Blazer,Blazer,101,8121,1,1827,1371,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1
-1368,GEOGRAPHER,Geographer,Geographer,73,3866,1,898,1010,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1
-1369,GRAND_PECO,Grand Peco,Grand Peco,75,3150,1,887,998,2,316,372,95,30,63,45,50,23,51,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1
-1370,SUCCUBUS,Succubus,Succubus,119,24960,1,3924,3489,2,670,864,76,48,100,64,45,80,82,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1
-1371,FAKE_ANGEL,Fake Angel,False Angel,105,10988,1,2100,1570,2,505,640,106,84,112,67,43,81,68,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1
-1372,GOAT,Goat,Goat,80,3980,1,1065,1197,1,387,447,95,43,61,40,48,40,65,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1
-1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603883,1,437121,345252,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1
-1374,INCUBUS,Incubus,Incubus,120,28000,1,3928,3646,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1
-1375,THE_PAPER,The Paper,The Paper,97,8500,1,1530,1148,1,280,390,32,39,77,49,30,5,61,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1
-1376,HARPY,Harpy,Harpy,83,4423,1,1201,1349,1,282,323,69,44,71,39,50,31,96,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1
-1377,ELDER,Elder,Elder,92,7341,1,1377,2898,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1
-1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,91,6466,1,1350,1520,1,428,493,80,52,63,61,30,38,79,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1
-1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,2443,1832,1,629,755,78,37,118,53,55,63,88,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1
-1380,DRILLER,Driller,Driller,65,2719,1,594,669,1,181,212,96,18,62,50,25,15,48,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1
-1381,GRIZZLY,Grizzly,Grizzly,66,2241,1,731,822,1,254,267,109,2,60,26,44,3,78,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,10,0,0,0,0,0,0,0,0,0,0,4162,1
-1382,DIABOLIC,Diabolic,Diabolic,104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1
-1383,EXPLOSION,Explosion,Explosion,100,7813,1,1900,1425,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1
-1384,DELETER,Deleter,Deleter,105,10000,1,2099,1574,1,502,581,111,53,105,55,53,68,67,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1
-1385,DELETER_,Deleter,Deleter,105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1
-1386,SLEEPER,Sleeper,Sleeper,81,5160,1,1034,1160,1,274,322,101,29,74,41,57,27,54,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1
-1387,GIG,Gig,Gig,100,8721,1,1769,1327,1,476,599,104,53,92,66,60,48,60,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1
-1388,ARCHANGELING,Archangeling,Arc Angeling,84,25100,1,3253,2910,1,539,639,92,81,32,48,62,99,99,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1
-1389,DRACULA,Dracula,Dracula,75,350000,1,312480,245520,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1
-1390,VIOLY,Violy,Violy,118,20557,1,2862,2147,10,548,668,74,36,90,86,38,76,90,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1
-1391,GALAPAGO,Galapago,Galapago,45,1221,1,342,386,1,68,103,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,500,508,3500,606,100,6264,500,5111,1,582,1000,0,0,0,0,4152,1
-1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,399,449,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1
-1393,G_MUMMY,Mummy,Mummy,55,2155,1,0,0,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1394,G_ZOMBIE,Zombie,Zombie,17,234,1,0,0,1,43,55,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,100
-1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,150
-1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,150
-1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100
+1364,G_ASSULTER,Assaulter,Assaulter,98,7798,1,0,0,2,293,67,83,49,100,86,30,20,98,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1365,APOCALIPS,Apocalypse,Apocalypse,121,22090,1,3954,2282,2,1053,116,136,26,130,53,76,25,125,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1
+1366,LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,2678,1674,1,777,53,299,27,126,42,103,28,92,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1
+1367,BLAZZER,Blazer,Blazer,101,8121,1,2192,1371,2,599,94,116,60,99,75,55,70,72,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1
+1368,GEOGRAPHER,Geographer,Geographer,73,3866,1,988,1010,3,309,82,158,42,81,26,35,56,72,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1
+1369,GRAND_PECO,Grand Peco,Grand Peco,75,3150,1,976,998,2,348,56,95,30,63,45,50,23,61,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1
+1370,SUCCUBUS,Succubus,Succubus,119,24960,1,5100,3489,2,1138,394,76,48,100,64,45,80,115,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1
+1371,FAKE_ANGEL,Fake Angel,False Angel,105,10988,1,2520,1570,2,657,135,106,84,112,67,43,81,82,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,7104,0,7105,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1
+1372,GOAT,Goat,Goat,80,3980,1,1172,1197,1,426,60,95,43,61,40,48,40,78,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1
+1373,LORD_OF_DEATH,Lord of Death,Lord of the Dead,94,603883,1,524544,345252,3,5351,1962,336,73,140,99,30,129,170,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1
+1374,INCUBUS,Incubus,Incubus,120,28000,1,5106,3646,2,1256,375,72,46,120,56,52,75,139,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1
+1375,THE_PAPER,The Paper,The Paper,97,8500,1,1836,1148,1,364,110,32,39,77,49,30,5,73,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1
+1376,HARPY,Harpy,Harpy,83,4423,1,1320,1520,1,340,41,69,44,71,39,50,31,125,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1
+1377,ELDER,Elder,Elder,92,7341,1,1652,2898,3,359,802,72,41,67,63,35,99,106,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1
+1378,DEMON_PUNGUS,Demon Pungus,Demon Pungus,91,6466,1,1620,1520,1,556,65,80,52,63,61,30,38,95,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1
+1379,NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,2443,1832,1,918,226,78,37,118,53,55,63,106,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1
+1380,DRILLER,Driller,Driller,65,2719,1,624,669,1,190,31,96,18,62,50,25,15,53,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1
+1381,GRIZZLY,Grizzly,Grizzly,66,2241,1,768,822,1,267,13,109,2,60,26,44,3,86,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,20,0,0,0,0,0,0,0,0,0,0,4162,1
+1382,DIABOLIC,Diabolic,Diabolic,104,10572,1,2172,1629,1,707,200,68,61,103,80,53,65,94,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1
+1383,EXPLOSION,Explosion,Explosion,100,7813,1,1900,1425,1,625,110,112,50,91,51,63,50,78,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1
+1384,DELETER,Deleter,Deleter,105,10000,1,2099,1574,1,653,179,111,53,105,55,53,68,80,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1
+1385,DELETER_,Deleter,Deleter,105,10000,1,2099,1574,1,663,211,114,53,98,65,49,72,68,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1
+1386,SLEEPER,Sleeper,Sleeper,81,5160,1,1136,1160,1,301,48,101,29,74,41,57,27,65,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1
+1387,GIG,Gig,Gig,100,8721,1,2122,1327,1,619,123,104,53,92,66,60,48,72,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1
+1388,ARCHANGELING,Archangeling,Arc Angeling,84,25100,1,3578,2910,1,593,100,92,81,32,48,62,99,119,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1
+1389,DRACULA,Dracula,Dracula,75,350000,1,343728,245520,3,2454,1812,252,146,86,99,88,92,194,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1
+1390,VIOLY,Violy,Violy,118,20557,1,3720,2147,10,767,120,74,36,90,86,38,76,126,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1
+1391,GALAPAGO,Galapago,Galapago,45,1221,1,342,386,1,68,35,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,300,508,3500,606,100,6264,300,5111,1,582,1000,0,0,0,0,4152,1
+1392,ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,399,449,10,75,40,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1
+1393,G_MUMMY,Mummy,Mummy,55,2155,1,0,0,1,180,21,95,3,54,4,14,1,68,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1394,G_ZOMBIE,Zombie,Zombie,17,234,1,0,0,1,43,12,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1395,CRYSTAL_1,Wind Crystal,Wind Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,529,4000,532,6500,558,5000,607,100,0,0,0,0
+1396,CRYSTAL_2,Earth Crystal,Earth Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,150,0,0,0,0
+1397,CRYSTAL_3,Fire Crystal,Fire Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,150,0,0,0,0
+1398,CRYSTAL_4,Water Crystal,Water Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0
// Event MVP
-1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,78525,25106,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,0,0,0,0,2256,1550
+1399,EVENT_BAPHO,Baphomet,Baphomet,68,1264000,0,82450,25106,3,1939,420,35,45,1,152,96,85,132,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0
// Amatsu (6.0)
-1400,KARAKASA,Karakasa,Karakasa,72,3092,1,765,860,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1
-1401,SHINOBI,Shinobi,Shinobi,95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1
-1402,POISON_TOAD,Poison Toad,Poison Toad,87,4876,1,1341,1509,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1
-1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,1352,1512,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1
-1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,1116,1256,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1
-1405,TENGU,Tengu,Tengu,98,10196,1,1701,1275,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1
-1406,KAPHA,Kapha,Kapha,83,5470,1,1035,1164,1,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1
+1400,KARAKASA,Karakasa,Karakasa,72,3092,1,842,860,1,172,42,93,29,66,73,33,20,64,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1
+1401,SHINOBI,Shinobi,Shinobi,95,8000,1,2028,1902,2,573,51,49,45,71,70,55,30,83,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1
+1402,POISON_TOAD,Poison Toad,Poisonous Toad,87,4876,1,1474,1509,3,233,54,80,42,66,42,40,45,70,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1
+1403,ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,1486,1512,10,356,45,72,30,67,44,30,30,100,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1
+1404,MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,1228,1256,1,238,66,57,19,66,30,30,55,88,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1
+1405,TENGU,Tengu,Tengu,98,10196,1,2040,1275,2,274,83,134,46,99,38,40,30,80,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1
+1406,KAPHA,Kapha,Kapha,83,5470,1,1138,1164,1,306,32,61,38,67,59,40,31,73,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1
//1407,DOKEBI_,Dokebi,Dokebi,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Gonryun (6.1)
-1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,1555,1749,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1
-1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,60,2098,1,531,597,1,128,150,96,12,50,43,29,5,43,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1
-1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,1499,1724,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1
-//1411,PEACH_TREE_BULLET,Peach Tree Bullet,Peach Tree Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,1503,1127,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1
-1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,1409,1586,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1
-//1414,GINSENG_BULLET,Ginseng Bullet,Ginseng Bullet... (mode 129),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,500,1016,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1
-1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,1775,1331,2,340,468,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1
-1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,90,6620,1,1305,1467,1,410,467,130,40,68,51,50,35,58,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1
-1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,105,1101000,1,720000,630000,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1
+1408,BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,1866,1749,3,361,67,79,50,70,68,40,55,108,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1
+1409,RICE_CAKE_BOY,Rice Cake Boy,Dumpling Child,60,2098,1,558,597,1,134,22,96,12,50,43,29,5,47,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1
+1410,LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,1798,1724,7,351,72,109,40,76,52,55,40,92,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1
+1411,PEACH_TREE_BULLET,Enchanted Peach Tree Bullet,Enchanted Peach Tree Bullet,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1412,EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,1804,1127,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1
+1413,WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,1550,1586,1,575,71,56,62,76,51,60,60,91,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1
+1414,GINSENG_BULLET,Hermit Bullet,Hermit Bullet,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1415,BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,524,1016,2,291,52,77,5,46,36,20,4,61,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1
+1416,WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,2130,1331,2,442,128,46,45,84,46,45,70,92,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1
+1417,ZIPPER_BEAR,Zipper Bear,Zipper Bear,90,6620,1,1436,1467,1,451,57,130,40,68,51,50,35,70,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1
+1418,DARK_SNAKE_LORD,Evil Snake Lord,Evil Snake Lord,105,1101000,1,864000,630000,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,617,5000,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1
// Additional G_Mobs
-1419,G_FARMILIAR,Familiar,Familiar,24,427,1,0,0,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,0,0,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1421,G_ISIS,Isis,Isis,59,2092,1,0,0,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,0,0,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1423,G_GHOUL,Ghoul,Ghoul,61,2614,1,0,0,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1424,G_SIDE_WINDER,Side Winder,Side Winder,70,2736,1,0,0,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1425,G_OBEAUNE,Obeaune,Obeaune,53,2158,1,0,0,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1426,G_MARC,Marc,Marc,56,2522,1,0,0,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1427,G_NIGHTMARE,Nightmare,Nightmare,69,2872,1,0,0,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1428,G_POISON_SPORE,Poison Spore,Poison Spore,26,456,1,0,0,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1429,G_ARGIOPE,Argiope,Argiope,75,3105,1,0,0,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1430,G_ARGOS,Argos,Argos,47,1005,1,0,0,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,0,0,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1433,G_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1434,G_DRAINLIAR,Drainliar,Drainliar,47,1162,1,0,0,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1435,G_EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,0,0,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1436,G_JAKK,Jakk,Jakk,63,2054,1,0,0,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1437,G_JOKER,Joker,Joker,90,6022,1,0,0,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,0,0,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1439,G_HIGH_ORC,High Orc,High Orc,81,4193,1,0,0,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1440,G_STEM_WORM,Stem Worm,Stem Worm,84,4530,1,0,0,2,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1441,G_PENOMENA,Penomena,Penomena,85,4589,1,0,0,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1442,G_SASQUATCH,Sasquatch,Sasquatch,72,3163,1,0,0,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1443,G_CRUISER,Cruiser,Cruiser,41,919,1,0,0,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1445,G_RAGGLER,Raggler,Raggler,48,1148,1,0,0,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1446,G_INJUSTICE,Injustice,Injustice,95,7952,1,0,0,1,344,460,76,0,77,59,58,65,73,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1447,G_GRYPHON,Gryphon,Gryphon,105,60720,1,0,0,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1448,G_DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,0,0,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,0,0,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,0,0,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1451,G_MERMAN,Merman,Merman,60,2940,1,0,0,2,125,157,62,8,45,29,30,19,50,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1452,G_ORC_LADY,Orc Lady,Orc Lady,45,1520,1,0,0,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,0,0,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1454,G_TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,0,0,1,178,206,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,0,0,9,586,619,84,5,99,39,48,30,90,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1456,G_CHIMERA,Chimera,Chimera,70,26406,1,0,0,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1457,G_MANTIS,Mantis,Mantis,65,2719,1,0,0,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1458,G_MARDUK,Marduk,Marduk,73,2893,1,0,0,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1459,G_MARIONETTE,Marionette,Marionette,62,2209,1,0,0,1,166,222,71,35,52,36,28,25,56,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1460,G_MATYR,Matyr,Matyr,58,2087,1,0,0,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1461,G_MINOROUS,Minorous,Minorous,58,1893,1,0,0,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,0,0,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,0,0,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1464,G_PASANA,Pasana,Pasana,79,3510,1,0,0,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1465,G_PETIT,Petite,Petite,86,5799,1,0,0,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1466,G_PETIT_,Petite,Petite,79,3556,1,0,0,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1467,G_RAYDRIC,Raydric,Raydric,115,18408,1,0,0,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1468,G_REQUIEM,Requim,Requim,71,3089,1,0,0,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,0,0,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1470,G_ZEROM,Zerom,Zerom,70,2687,1,0,0,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1471,G_NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,0,0,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1472,G_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1473,G_ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,0,0,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1474,G_MIMIC,Mimic,Mimic,56,1939,1,0,0,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1475,G_WRAITH,Wraith,Wraith,77,5168,1,0,0,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1476,G_ALARM,Alarm,Alarm,88,5562,1,0,0,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1477,G_ARCLOUSE,Arclouse,Arclouze,77,4320,1,0,0,1,269,309,101,36,60,73,45,35,60,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1478,G_RIDEWORD,Rideword,Rideword,74,3222,1,0,0,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,0,0,1,266,321,95,41,84,35,60,20,71,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,0,0,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1481,G_PUNK,Punk,Punk,82,3869,1,0,0,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1482,G_ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,0,0,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1483,G_RYBIO,Rybio,Rybio,98,8700,1,0,0,1,277,353,109,30,96,52,61,30,80,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1484,G_PHENDARK,Phendark,Phendark,102,11000,1,0,0,2,539,614,307,50,111,65,71,20,71,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,0,0,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1486,G_TIRFING,Tirfing,Ogretooth,114,59000,1,0,0,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1487,G_EXECUTIONER,Executioner,Executioner,101,40200,1,0,0,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1488,G_ANOLIAN,Anolian,Anolian,109,15547,1,0,0,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1489,G_STING,Sting,Sting,104,14143,1,0,0,1,521,588,146,50,108,49,68,43,87,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1490,G_WANDER_MAN,Wander Man,Wanderer,120,19307,1,0,0,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1491,G_DOKEBI,Dokebi,Dokebi,68,2820,1,0,0,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1419,G_FARMILIAR,Familiar,Familiar,24,427,1,0,0,1,68,9,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1420,G_ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,50,1646,1,0,0,9,95,23,47,10,30,29,20,10,35,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1421,G_ISIS,Isis,Isis,59,2092,1,0,0,1,202,37,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1422,G_HUNTER_FLY,Hunter Fly,Hunter Fly,63,2050,1,0,0,1,226,20,46,20,32,72,22,25,100,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1423,G_GHOUL,Ghoul,Ghoul,61,2614,1,0,0,1,227,29,78,5,56,12,19,11,30,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1424,G_SIDE_WINDER,Side Winder,Side Winder,70,2736,1,0,0,1,316,30,101,12,52,32,35,20,73,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1425,G_OBEAUNE,Obeaune,Obeaune,53,2158,1,0,0,1,102,45,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1426,G_MARC,Marc,Marc,56,2522,1,0,0,1,145,25,55,24,50,24,22,15,53,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1427,G_NIGHTMARE,Nightmare,Nightmare,69,2872,1,0,0,1,297,62,116,15,57,32,20,15,77,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1428,G_POISON_SPORE,Poison Spore,Poison Spore,26,456,1,0,0,1,68,15,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1429,G_ARGIOPE,Argiope,Argiope,75,3105,1,0,0,1,321,50,88,32,60,23,40,30,24,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1430,G_ARGOS,Argos,Argos,47,1005,1,0,0,1,96,33,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1431,G_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,0,0,1,195,33,70,25,52,60,36,17,57,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1432,G_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1433,G_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,221,73,62,30,61,17,30,35,57,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1434,G_DRAINLIAR,Drainliar,Drainliar,47,1162,1,0,0,1,100,42,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1435,G_EVIL_DRUID,Evil Druid,Evil Druid,80,5149,1,0,0,1,378,68,88,45,62,32,24,45,85,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1436,G_JAKK,Jakk,Jakk,63,2054,1,0,0,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1437,G_JOKER,Joker,Joker,90,6022,1,0,0,1,317,60,64,76,84,99,30,50,92,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1438,G_KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,0,0,1,1232,96,125,10,121,48,40,31,125,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1439,G_HIGH_ORC,High Orc,High Orc,81,4193,1,0,0,1,428,50,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1440,G_STEM_WORM,Stem Worm,Stem Worm,84,4530,1,0,0,2,293,41,73,50,55,37,25,47,84,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1441,G_PENOMENA,Penomena,Penomena,85,4589,1,0,0,7,321,41,85,32,76,38,35,35,107,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1442,G_SASQUATCH,Sasquatch,Sasquatch,72,3163,1,0,0,1,293,30,101,28,70,35,60,10,71,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1443,G_CRUISER,Cruiser,Cruiser,41,919,1,0,0,7,55,20,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1444,G_CHEPET,Chepet,Chepet,42,4950,0,0,0,1,79,33,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1445,G_RAGGLER,Raggler,Raggler,48,1148,1,0,0,1,72,39,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1446,G_INJUSTICE,Injustice,Injustice,95,7952,1,0,0,1,447,116,76,0,77,59,58,65,88,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1447,G_GRYPHON,Gryphon,Gryphon,105,60720,1,0,0,1,932,103,113,72,101,133,66,70,164,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1448,G_DARK_FRAME,Dark Frame,Dark Frame,76,3520,1,0,0,1,350,30,67,27,69,37,36,10,64,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1449,G_MUTANT_DRAGON,Mutant Dragon,Mutant Dragonoid,65,50706,1,0,0,4,1176,534,130,20,75,35,30,68,108,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1450,G_WIND_GHOST,Wind Ghost,Wind Ghost,80,4008,1,0,0,2,182,95,64,51,62,27,25,55,102,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1451,G_MERMAN,Merman,Merman,60,2940,1,0,0,2,131,32,62,8,45,29,30,19,55,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1452,G_ORC_LADY,Orc Lady,Orc Lady,45,1520,1,0,0,1,77,33,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1453,G_RAYDRIC_ARCHER,Raydric Archer,Raydric Archer,82,4437,1,0,0,9,415,18,63,40,53,24,40,15,134,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1454,G_TRI_JOINT,Tri Joint,Tri Joint,66,2530,0,0,0,1,187,28,22,5,1,33,24,10,61,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1455,G_KOBOLD_ARCHER,Kobold Archer,Kobold Archer,108,11053,1,0,0,9,762,33,84,5,99,39,48,30,108,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1456,G_CHIMERA,Chimera,Chimera,70,26406,1,0,0,1,1029,148,159,10,1,38,110,88,91,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1457,G_MANTIS,Mantis,Mantis,65,2719,1,0,0,1,187,31,90,0,55,33,24,5,46,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1458,G_MARDUK,Marduk,Marduk,73,2893,1,0,0,1,198,112,66,43,66,49,21,40,79,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1459,G_MARIONETTE,Marionette,Marionette,62,2209,1,0,0,1,174,56,71,35,52,36,28,25,62,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1460,G_MATYR,Matyr,Matyr,58,2087,1,0,0,1,151,26,63,5,48,20,21,17,47,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1461,G_MINOROUS,Minorous,Minorous,58,1893,1,0,0,1,247,36,100,10,65,42,36,43,61,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1462,G_ORC_SKELETON,Orc Skeleton,Orc Skeleton,53,2077,1,0,0,1,115,25,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1463,G_ORC_ZOMBIE,Orc Zombie,Orc Zombie,51,1908,1,0,0,1,114,15,71,5,45,17,32,5,57,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1464,G_PASANA,Pasana,Pasana,79,3510,1,0,0,1,438,40,93,35,76,36,33,20,80,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1465,G_PETIT,Petite,Petite,86,5799,1,0,0,1,321,66,99,49,55,32,38,37,65,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1466,G_PETIT_,Petite,Petite,79,3556,1,0,0,1,308,36,86,42,63,39,31,55,86,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1467,G_RAYDRIC,Raydric,Raydric,115,18408,1,0,0,1,901,96,89,15,129,87,55,32,106,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1468,G_REQUIEM,Requim,Requiem,71,3089,1,0,0,1,348,48,88,20,58,34,35,12,50,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1469,G_SKEL_WORKER,Skeleton Worker,Skeleton Worker,44,1240,1,0,0,1,92,12,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1470,G_ZEROM,Zerom,Zerom,70,2687,1,0,0,1,328,38,93,15,57,49,30,15,62,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1471,G_NINE_TAIL,Nine Tail,Nine Tail,72,2783,1,0,0,1,491,50,95,40,61,38,30,20,106,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1472,G_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,198,29,88,5,55,24,24,5,37,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1473,G_ORC_ARCHER,Orc Archer,Orc Archer,78,4835,1,0,0,9,286,43,67,31,55,32,24,30,119,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1474,G_MIMIC,Mimic,Mimic,56,1939,1,0,0,1,232,22,63,15,49,120,20,15,109,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1475,G_WRAITH,Wraith,Wraith,77,5168,1,0,0,1,369,61,80,40,62,26,30,55,91,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1476,G_ALARM,Alarm,Alarm,88,5562,1,0,0,1,319,48,106,53,70,72,40,25,66,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1477,G_ARCLOUSE,Arclouse,Arclouze,77,4320,1,0,0,1,296,40,101,36,60,73,45,35,72,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1478,G_RIDEWORD,Rideword,Rideword,74,3222,1,0,0,1,387,22,61,38,67,53,32,44,125,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1479,G_SKEL_PRISONER,Skeleton Prisoner,Skeleton Prisoner,91,9194,1,0,0,1,346,55,95,41,84,35,60,20,85,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1480,G_ZOMBIE_PRISONER,Zombie Prisoner,Zombie Prisoner,89,8045,1,0,0,1,392,60,89,28,87,39,58,5,82,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1481,G_PUNK,Punk,Punk,82,3869,1,0,0,1,293,54,68,55,67,39,30,35,95,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1482,G_ZHERLTHSH,Zherlthsh,Zealotus,105,61350,1,0,0,1,993,250,91,99,88,61,51,62,136,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1483,G_RYBIO,Rybio,Rybio,98,8700,1,0,0,1,360,76,109,30,96,52,61,30,96,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1484,G_PHENDARK,Phendark,Phendark,102,11000,1,0,0,2,701,75,307,50,111,65,71,20,85,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1485,G_MYSTELTAINN,Mysteltainn,Mysteltainn,130,70000,1,0,0,2,1079,567,73,61,102,139,62,65,182,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1486,G_TIRFING,Tirfing,Ogretooth,114,59000,1,0,0,1,948,411,87,69,105,105,75,73,151,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1487,G_EXECUTIONER,Executioner,Executioner,101,40200,1,0,0,2,670,359,97,188,99,96,77,78,95,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1488,G_ANOLIAN,Anolian,Anolian,109,15547,1,0,0,1,650,110,61,11,130,63,55,66,70,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1489,G_STING,Sting,Sting,104,14143,1,0,0,1,677,67,146,50,108,49,68,43,104,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1490,G_WANDER_MAN,Wander Man,Wanderer,120,19307,1,0,0,2,1695,105,64,5,118,92,36,15,169,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1491,G_DOKEBI,Dokebi,Dokebi,68,2820,1,0,0,1,333,30,85,20,52,56,35,20,66,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Umbala (6.2)
-1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,100,901000,1,751680,595080,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1
-1493,DRYAD,Dryad,Dryad,68,3640,1,837,939,3,266,301,153,8,54,14,40,35,67,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,500,1964,1,7939,100,7100,3000,0,0,0,0,4177,1
-1494,KIND_OF_BEETLE,Beetle King,Beetle King,55,2061,1,450,507,1,110,162,79,8,53,47,10,0,45,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1
-1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,64,2101,1,689,776,10,201,254,88,15,55,55,36,15,77,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1
-//1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,72,3914,1,950,1079,1,292,334,249,26,69,30,45,5,49,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1
-1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,67,3096,1,711,798,10,140,175,91,21,32,23,38,20,69,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1
-1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,67,2327,1,709,798,1,243,279,103,8,63,14,36,5,56,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1
-1500,PARASITE,Parasite,Parasite,76,3222,1,923,1337,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1
-//1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet... (mode 2181),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1492,INCANTATION_SAMURAI,Incantation Samurai,Samurai Specter,100,901000,1,902016,595080,3,2855,936,296,140,145,161,88,66,186,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1
+1493,DRYAD,Dryad,Dryad,68,3640,1,878,939,3,279,35,153,8,54,14,40,35,74,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,300,1964,1,2270,10,7100,3000,0,0,0,0,4177,1
+1494,KIND_OF_BEETLE,Beetle King,Beetle King,55,2061,1,472,507,1,116,52,79,8,53,47,10,0,50,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1
+1495,STONE_SHOOTER,Stone Shooter,Stone Shooter,64,2101,1,722,776,10,211,53,88,15,55,55,36,15,85,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1
+1496,STONE_SHOOTER_BULLET,Stone Shooter Bullet,Stone Shooter Bullet,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1497,WOODEN_GOLEM,Wooden Golem,Wooden Golem,72,3914,1,1044,1079,1,321,42,249,26,69,30,45,5,59,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1
+1498,WOOTAN_SHOOTER,Wootan Shooter,Wootan Shooter,67,3096,1,746,798,10,147,35,91,21,32,23,38,20,76,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1
+1499,WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,67,2327,1,744,798,1,255,36,103,8,63,14,36,5,62,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1
+1500,PARASITE,Parasite,Parasite,76,3222,1,1014,1337,8,177,45,63,30,55,78,33,50,106,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1
+1501,PARASITE_BULLET,Parasite Bullet,Parasite Bullet,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Event MVP
-1502,PORING_V,Pori Pori,Bring it on!,99,95000000,1,78525,25106,1,5000,10000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,0,0,0,0,2110,4500
+1502,PORING_V,Pori Pori,Bring it on!,99,95000000,1,94230,25106,1,6500,5000,0,10,100,100,65,100,306,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,2110,4500,0,0,0,0
// Nifflheim (7.0)
-1503,GIBBET,Gibbet,Gibbet,105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1
-1504,DULLAHAN,Dullahan,Dullahan,108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1
-1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1
-1506,DISGUISE,Disguise,Disguise,103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1
-1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1
-1508,QUVE,Quve,Quve,100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1
-1509,LUDE,Lude,Lude,101,11574,1,1692,1269,2,218,296,90,53,97,38,55,82,69,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1
-1510,HYLOZOIST,Hylozoist,Heirozoist,102,12000,1,1876,1406,1,268,349,101,68,97,67,72,88,69,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1
+1503,GIBBET,Gibbet,Gibbet,105,12999,1,1944,1458,1,697,85,116,45,103,56,62,55,73,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1
+1504,DULLAHAN,Dullahan,Dullahan,108,19546,1,3010,2976,2,1066,175,111,38,121,29,51,43,100,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,15039,10,0,0,0,0,0,0,4176,1
+1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,3348,2093,2,1123,280,53,44,111,50,47,79,95,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,15038,10,0,0,0,0,4191,1
+1506,DISGUISE,Disguise,Disguise,103,13895,1,2678,1674,2,338,82,85,58,92,53,57,75,80,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1
+1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,110,14099,1,3268,2244,2,1397,298,84,41,120,65,66,41,107,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1
+1508,QUVE,Quve,Quve,100,11090,1,1966,1229,1,294,97,96,55,84,54,55,50,85,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1
+1509,LUDE,Lude,Lude,101,11574,1,2030,1269,2,283,78,90,53,97,38,55,82,83,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1
+1510,HYLOZOIST,Hylozoist,Heirozoist,102,12000,1,2250,1406,1,548,81,101,68,97,67,72,88,83,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1
// Pyramid Basement
-1511,AMON_RA,Amon Ra,Amon Ra,69,319000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1
+1511,AMON_RA,Amon Ra,Amon Ra,69,1009000,1,240120,187920,3,2090,2052,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1
// Louyang (8.0)
-1512,HYEGUN,Hyegun,Yao Jun,87,6996,1,1283,1445,1,246,294,84,43,69,38,40,20,68,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1
-1513,CIVIL_SERVANT,Civil Servant,Mao Guai,89,5292,1,1349,1512,2,276,337,90,56,67,76,40,65,62,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1
-1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,972,1094,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1
-1515,GARM_BABY,Garm Baby,Baby Hatii,94,10016,1,1555,1749,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1
-1516,INCREASE_SOIL,Increase Soil,Mi Gao,83,5335,1,1201,1529,1,332,362,112,39,67,23,41,49,78,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1
-1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,80,5187,1,1065,1197,1,179,220,110,37,61,22,33,35,62,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1
-1518,BACSOJIN,Bacsojin,White Lady,97,720500,1,668160,542880,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,0,0,0,0,2234,1
-1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,0,0,0,0,5042,2
-1520,BOILED_RICE,Boiled Rice,Boiled Rice,15,777,1,7,7,1,7,14,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0
+1512,HYEGUN,Hyegun,Yao Jun,87,6996,1,1410,1445,1,271,48,84,43,69,38,40,20,82,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1
+1513,CIVIL_SERVANT,Civil Servant,Mao Guai,89,5292,1,1484,1512,2,304,61,90,56,67,76,40,65,74,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1
+1514,DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,1068,1094,2,295,35,83,36,59,76,40,30,73,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1
+1515,GARM_BABY,Garm Baby,Hatii Baby,94,10016,1,1866,1749,1,498,61,62,43,69,61,55,61,106,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1
+1516,INCREASE_SOIL,Increase Soil,Mi Gao,83,5335,1,1320,1529,1,365,30,112,39,67,23,41,49,94,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1
+1517,LI_ME_MANG_RYANG,Li Me Mang Ryang,Jing Guai,80,5187,1,1172,1197,1,197,41,110,37,61,22,33,35,74,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1
+1518,BACSOJIN,Bacsojin,White Lady,97,720500,1,801792,542880,2,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,5411,500,2234,1,0,0,0,0
+1519,CHUNG_E,Chung E,Green Maiden,49,23900,0,2156,894,1,460,590,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,11505,1000,0,0,0,0,5042,2,0,0,0,0
+1520,BOILED_RICE,Boiled Rice,Dumpling,15,777,1,7,7,1,7,7,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,683,3000,11505,1000,682,3000,564,8000,7272,4000,18753,500,0,0,0,0,0,0,0,0
// Additional G_Mobs & Bosses
-1521,G_ALICE,Alice,Alice,100,9230,1,0,0,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,115,29157,1,0,0,1,701,801,93,27,126,57,55,69,56,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,0,0,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,0,0,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1525,G_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,0,0,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1527,G_C_TOWER_MANAGER,Clock Tower Manager,Clock Tower Manager,90,6400,1,0,0,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1528,G_CLOCK,Clock,Clock,81,5556,1,0,0,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,0,0,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1530,G_DRACULA,Dracula,Dracula,75,350000,1,0,0,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,0,0,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1532,G_EXPLOSION,Explosion,Explosion,100,7813,1,0,0,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1533,G_FUR_SEAL,Fur Seal,Seal,47,1371,1,0,0,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1534,G_GOBLIN_1,Goblin,Goblin,48,1058,1,0,0,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1535,G_GOBLIN_2,Goblin,Goblin,44,931,1,0,0,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1536,G_GOBLIN_3,Goblin,Goblin,44,930,1,0,0,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1537,G_GOBLIN_4,Goblin,Goblin,49,1494,1,0,0,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1538,G_GOBLIN_5,Goblin,Goblin,56,2342,1,0,0,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,0,0,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1540,G_GOLEM,Golem,Golem,61,2245,1,0,0,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1541,G_GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,0,0,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1543,G_KAPHA,Kapha,Kapha,83,5470,1,0,0,3,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1544,G_KARAKASA,Karakasa,Karakasa,72,3092,1,0,0,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1545,G_KOBOLD_1,Kobold,Kobold,107,10483,1,0,0,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1546,G_KOBOLD_2,Kobold,Kobold,102,9152,1,0,0,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1547,G_KOBOLD_3,Kobold,Kobold,101,9078,1,0,0,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,0,0,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,0,0,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,0,0,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1551,G_MARSE,Marse,Marse,47,1456,1,0,0,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,0,0,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1553,G_MYST,Myst,Myst,49,1223,1,0,0,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,0,0,1,629,755,78,37,118,53,55,63,53,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1555,G_PARASITE,Parasite,Parasite,76,3222,1,0,0,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,87,4876,1,0,0,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,0,0,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1558,G_SAND_MAN,Sandman,Sandman,61,2887,1,0,0,1,156,212,126,25,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1559,G_SCORPION,Scorpion,Scorpion,16,153,1,0,0,1,39,46,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1560,G_SHINOBI,Shinobi,Shinobi,95,8000,1,0,0,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1561,G_SMOKIE,Smokie,Smokie,29,591,1,0,0,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,0,0,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1563,G_TENGU,Tengu,Tengu,98,10196,1,0,0,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,0,0,2,218,346,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,0,0,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,0,0,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,0,0,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1568,G_ANGELING,Angeling,Angeling,77,19800,1,0,0,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1570,G_CRAMP,Cramp,Cramp,82,3898,1,0,0,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1571,G_DEVIACE,Deviace,Deviace,60,3135,1,0,0,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1572,G_DROPS,Drops,Drops,2,45,1,0,0,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1573,G_ELDER,Elder,Elder,92,7341,1,0,0,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1574,G_ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1575,G_FLORA,Flora,Flora,59,2301,1,0,0,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1576,G_GHOSTRING,Ghostring,Ghostring,90,26700,1,0,0,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,0,0,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1578,G_HORONG,Horong,Horong,66,2304,1,0,0,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1579,G_HYDRA,Hydra,Hydra,34,854,1,0,0,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1580,G_INCUBUS,Incubus,Incubus,120,28000,1,0,0,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1581,G_VOCAL,Vocal,Vocal,18,3317,1,0,0,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1582,DEVILING,Deviling,Deviling,66,16890,1,2281,2379,1,298,481,67,70,48,50,33,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1
-1583,TAO_GUNKA,Tao Gunka,Tao Gunka,110,1252000,1,900000,720000,2,2890,4150,404,143,135,175,98,110,199,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1
+1521,G_ALICE,Alice,Alice,100,9230,1,0,0,1,514,98,93,73,82,53,45,70,96,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1522,G_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,115,29157,1,0,0,1,981,100,93,27,126,57,55,69,78,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1523,G_ANTIQUE_FIRELOCK,Antique Firelock,Firelock Soldier,88,7524,1,0,0,10,356,45,72,30,67,44,30,30,100,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1524,G_BABY_LEOPARD,Baby Leopard,Baby Leopard,68,2590,1,0,0,2,291,52,77,5,46,36,20,4,61,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1525,G_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,252,96,61,89,66,38,40,77,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1526,G_BLOOD_BUTTERFLY,Bloody Butterfly,Bloody Butterfly,94,7030,1,0,0,3,361,67,79,50,70,68,40,55,108,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1527,G_C_TOWER_MANAGER,Clock Tower Manager,Tower Keeper,90,6400,1,0,0,3,427,70,96,60,80,28,40,25,88,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1528,G_CLOCK,Clock,Clock,81,5556,1,0,0,1,443,53,91,43,68,24,35,41,97,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1529,G_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,0,0,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1530,G_DRACULA,Dracula,Dracula,75,350000,1,0,0,3,1454,1812,152,146,86,99,88,92,174,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1531,G_EVIL_CLOUD_HERMIT,Evil Cloud Hermit,Taoist Hermit,96,8266,1,0,0,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1532,G_EXPLOSION,Explosion,Explosion,100,7813,1,0,0,1,625,110,112,50,91,51,63,50,78,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1533,G_FUR_SEAL,Fur Seal,Seal,47,1371,1,0,0,1,87,40,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1534,G_GOBLIN_1,Goblin,Goblin,48,1058,1,0,0,1,87,34,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1535,G_GOBLIN_2,Goblin,Goblin,44,931,1,0,0,1,94,28,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1536,G_GOBLIN_3,Goblin,Goblin,44,930,1,0,0,1,88,33,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1537,G_GOBLIN_4,Goblin,Goblin,49,1494,1,0,0,1,72,22,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1538,G_GOBLIN_5,Goblin,Goblin,56,2342,1,0,0,1,167,31,64,5,51,37,22,15,42,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1539,G_GOBLIN_LEADER,Goblin Leader,Goblin Leader,55,21692,1,0,0,1,173,49,72,30,60,67,45,18,73,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1540,G_GOLEM,Golem,Golem,61,2245,1,0,0,1,208,25,190,12,70,27,67,5,34,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1541,G_GREATEST_GENERAL,Greatest General,Greatest General,55,1575,1,0,0,3,226,26,114,30,58,30,20,25,28,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+//1542,G_INCANTATION_SAMURA,Incantation Samurai,Incantation Samurai,100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1543,G_KAPHA,Kapha,Kapha,83,5470,1,0,0,3,306,32,61,38,67,59,40,31,73,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1544,G_KARAKASA,Karakasa,Karakasa,72,3092,1,0,0,1,172,42,93,29,66,73,33,20,64,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1545,G_KOBOLD_1,Kobold,Kobold,107,10483,1,0,0,1,701,87,103,25,109,76,61,53,98,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1546,G_KOBOLD_2,Kobold,Kobold,102,9152,1,0,0,1,477,62,117,59,96,61,55,48,95,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1547,G_KOBOLD_3,Kobold,Kobold,101,9078,1,0,0,1,468,64,109,48,103,64,59,42,80,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1548,G_KOBOLD_LEADER,Kobold Leader,Kobold Leader,112,13520,1,0,0,1,995,96,90,62,135,34,68,56,116,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1549,G_LAVA_GOLEM,Lava Golem,Lava Golem,103,8452,1,0,0,1,777,53,299,27,126,42,103,28,92,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1550,G_LIVE_PEACH_TREE,Live Peach Tree,Enchanted Peach Tree,92,8777,1,0,0,7,351,72,109,40,76,52,55,40,92,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1551,G_MARSE,Marse,Marse,47,1456,1,0,0,1,85,20,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1552,G_MIYABI_NINGYO,Miyabi Ningyo,Miyabi Doll,85,5188,1,0,0,1,238,66,57,19,66,30,30,55,88,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1553,G_MYST,Myst,Myst,49,1223,1,0,0,1,96,20,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1554,G_NIGHTMARE_TERROR,Nightmare Terror,Nightmare Terror,107,13289,1,0,0,1,818,126,78,37,118,53,55,63,64,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1555,G_PARASITE,Parasite,Parasite,76,3222,1,0,0,8,177,45,63,30,55,78,33,50,106,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1556,G_POISON_TOAD,Poison Toad,Poisonous Toad,87,4876,1,0,0,3,233,54,80,42,66,42,40,45,70,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1557,G_ROTAR_ZAIRO,Rotar Zairo,Rotar Zairo,48,1088,1,0,0,10,75,40,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1558,G_SAND_MAN,Sandman,Sandman,61,2887,1,0,0,1,164,56,126,25,44,8,55,15,34,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1559,G_SCORPION,Scorpion,Scorpion,16,153,1,0,0,1,39,7,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1560,G_SHINOBI,Shinobi,Shinobi,95,8000,1,0,0,2,573,51,49,45,71,70,55,30,83,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1561,G_SMOKIE,Smokie,Smokie,29,591,1,0,0,1,70,11,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1562,G_SOLDIER_SKELETON,Soldier Skeleton,Soldier Skeleton,34,804,1,0,0,1,84,14,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1563,G_TENGU,Tengu,Tengu,98,10196,1,0,0,2,274,83,134,46,99,38,40,30,80,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1564,G_WICKED_NYMPH,Wicked Nymph,Evil Nymph,97,8491,1,0,0,2,283,128,46,45,84,46,45,70,92,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1565,G_WILD_GINSENG,Wild Ginseng,Hermit Plant,90,6052,1,0,0,1,575,71,56,62,76,51,60,60,91,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1566,G_WRAITH_DEAD,Wraith Dead,Wraith Dead,86,10035,0,0,0,2,442,60,88,56,63,69,55,45,106,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1567,G_ANCIENT_WORM,Ancient Worm,Ancient Worm,83,4140,0,0,0,1,329,35,90,41,70,56,56,55,84,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1568,G_ANGELING,Angeling,Angeling,77,19800,1,0,0,1,391,145,72,238,58,50,33,105,80,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1569,G_BLOODY_KNIGHT,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1570,G_CRAMP,Cramp,Cramp,82,3898,1,0,0,1,435,48,88,42,65,43,35,25,82,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1571,G_DEVIACE,Deviace,Deviace,60,3135,1,0,0,1,168,29,51,16,57,26,32,25,50,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1572,G_DROPS,Drops,Drops,2,45,1,0,0,1,12,1,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1573,G_ELDER,Elder,Elder,92,7341,1,0,0,3,359,402,72,41,67,63,35,99,106,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1574,G_ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,0,0,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1575,G_FLORA,Flora,Flora,59,2301,1,0,0,3,163,31,99,29,49,29,35,5,46,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1576,G_GHOSTRING,Ghostring,Ghostring,90,26700,1,0,0,1,385,162,88,72,66,85,66,66,119,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1577,G_GOBLIN_ARCHER,Goblin Archer,Goblin Archer,55,1575,1,0,0,9,100,24,69,0,40,34,20,15,53,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1578,G_HORONG,Horong,Horong,66,2304,1,0,0,1,275,70,84,35,36,32,35,45,62,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1579,G_HYDRA,Hydra,Hydra,34,854,1,0,0,7,35,6,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1580,G_INCUBUS,Incubus,Incubus,120,28000,1,0,0,2,956,375,72,46,120,56,52,75,139,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1581,G_VOCAL,Vocal,Vocal,18,3317,1,0,0,1,71,11,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1582,DEVILING,Deviling,Deviling,66,16890,1,2394,2379,1,313,183,67,70,48,50,33,75,85,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1
+1583,TAO_GUNKA,Tao Gunka,Tao Gunka,110,1252000,1,1080000,720000,2,3757,1260,404,143,135,175,98,110,239,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1
// Ayothaya (9.0)
-1584,TAMRUAN,Tamruan,Tamruan,73,3195,1,898,1010,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1
-1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0
-1586,LEAF_CAT,Leaf Cat,Leaf Cat,64,2635,1,594,669,1,140,181,88,16,46,16,12,45,33,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1
-1587,KRABEN,Kraben,Kraben,70,2901,1,510,1095,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1
+1584,TAMRUAN,Tamruan,Tamruan,73,3195,1,988,1010,1,336,37,63,30,60,38,40,20,73,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1
+//1585,MIME_MONKEY,Mime Monkey,Mime Monkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0
+1586,LEAF_CAT,Leaf Cat,Leaf Cat,64,2635,1,624,669,1,147,41,88,16,46,16,12,45,36,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1
+1587,KRABEN,Kraben,Kraben,70,2901,1,536,1095,1,279,45,108,20,54,33,35,15,68,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1
// Additional G_Mobs & Xmas_Orc
-1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,1,235,144,1,104,126,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1
-1589,G_MANDRAGORA,Mandragora,Mandragora,13,156,1,0,0,4,38,41,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1590,G_GEOGRAPHER,Geographer,Geographer,73,3866,1,0,0,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,245,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,355,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0
-1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,930,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1594,G_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1595,G_MARIN,Marin,Marin,37,987,1,0,0,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1596,G_TAMRUAN,Tamruan,Tamruan,73,3195,1,0,0,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1597,G_GARGOYLE,Gargoyle,Gargoyle,100,8772,1,0,0,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1598,G_BLAZZER,Blazzer,Blazzer,101,8121,1,0,0,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,0,0,1,182,241,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1600,G_HEATER,Heater,Heater,96,7480,1,0,0,2,495,574,186,42,75,49,50,30,80,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1601,G_PERMETER,Permeter,Permeter,90,6575,1,0,0,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1602,G_SOLIDER,Solider,Solider,92,8768,1,0,0,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1603,G_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,0,0,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,96,29255,0,0,0,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1606,G_GARM_BABY,Garm Baby,Baby Hatii,94,10016,1,0,0,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1607,G_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,1,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1608,G_THIEF_BUG__,Thief Bug Male,Thief Bug Male,19,583,1,0,0,1,76,88,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,2727,692,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,0,0,0,0,668,100
-1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100
-1611,A_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100
-1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,1128,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100
+1588,ORC_XMAS,Christmas Orc,Christmas Orc,24,1400,1,235,144,1,104,22,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1
+1589,G_MANDRAGORA,Mandragora,Mandragora,13,156,1,0,0,4,38,3,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1590,G_GEOGRAPHER,Geographer,Geographer,73,3866,1,0,0,3,309,82,158,42,81,26,35,56,72,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1591,A_LUNATIC,Lunatic,Lunatic,29,2334,0,0,0,1,221,24,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1592,A_MOBSTER,Gangster,Gangster,40,8000,0,0,0,1,300,55,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0
+1593,A_ANCIENT_MUMMY,Ancient Mummy,Ancient Mummy,52,8613,0,0,0,1,830,100,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1594,G_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,604,50,127,38,68,47,50,45,66,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1595,G_MARIN,Marin,Marin,37,987,1,0,0,1,69,14,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1596,G_TAMRUAN,Tamruan,Tamruan,73,3195,1,0,0,1,336,37,63,30,60,38,40,20,73,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1597,G_GARGOYLE,Gargoyle,Gargoyle,100,8772,1,0,0,9,498,89,98,43,100,61,60,57,120,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1598,G_BLAZZER,Blazzer,Blazzer,101,8121,1,0,0,2,599,94,116,60,99,75,55,70,72,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1599,G_WHISPER_BOSS,Giant Whisper,Giant Whisper,66,2570,0,0,0,1,191,59,94,45,40,79,44,51,74,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1600,G_HEATER,Heater,Heater,96,7480,1,0,0,2,644,79,186,42,75,49,50,30,96,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1601,G_PERMETER,Permeter,Permeter,90,6575,1,0,0,2,292,56,144,50,68,28,55,40,50,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1602,G_SOLIDER,Solider,Solider,92,8768,1,0,0,2,367,40,206,58,65,44,60,15,56,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1603,G_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1604,G_GIANT_HONET,Giant Hornet,Giant Hornet,82,3960,0,0,0,1,303,53,80,43,70,45,47,32,74,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1605,G_DARK_ILLUSION,Dark Illusion,Dark Illusion,96,46255,0,0,0,2,1166,360,145,30,82,36,55,100,182,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1606,G_GARM_BABY,Garm Baby,Hatii Baby,94,10016,1,0,0,1,498,61,62,43,69,61,55,61,106,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1607,G_GOBLINE_XMAS,Christmas Goblin,Santa Goblin,25,1176,1,0,0,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1608,G_THIEF_BUG__,Thief Bug Male,Male Thief Bug,19,583,1,0,0,1,76,12,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1609,G_DANCING_DRAGON,Dancing Dragon,Zhu Po Long,82,3943,1,0,0,2,295,35,83,36,59,76,40,30,73,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,668,100,0,0,0,0
+1610,A_MUNAK,Munak,Munak,30,2872,0,0,0,1,40,10,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0
+1611,A_BON_GUN,Bongun,Bongun,59,2510,1,0,0,1,189,29,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0
+1612,A_HYEGUN,Hyegun,Yao Jun,56,9981,0,0,0,1,710,418,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0
// Einbroch (10.1)
-1613,METALING,Metaling,Metaling,81,4300,1,954,1074,1,171,210,69,28,58,30,49,17,50,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1
-1614,MINERAL,Mineral,Mineral,96,8300,1,1503,1127,1,578,635,127,23,70,61,40,50,62,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1
-1615,OBSIDIAN,Obsidian,Obsidian,97,10088,1,1652,1239,1,590,670,129,37,84,38,40,60,53,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1
-1616,PITMAN,Pitman,Pitman,90,7208,1,1409,1586,1,182,242,104,48,78,56,45,35,50,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1
-1617,WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,1377,1548,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1
-1618,UNGOLIANT,Ungoliant,Ungoliant,94,17070,1,3501,1913,1,689,733,108,28,71,70,58,43,92,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1
-1619,PORCELLIO,Porcellio,Porcellio,85,5544,1,1294,1455,1,266,319,79,37,67,48,28,40,62,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1
-1620,NOXIOUS,Noxious,Noxious,87,5430,1,888,1785,1,255,326,117,66,58,45,60,55,57,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1
-1621,VENOMOUS,Venomous,Venomous,87,4770,1,1188,1337,1,287,337,104,65,61,28,60,55,45,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1
-1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,91,7238,1,1350,1799,1,371,433,106,39,57,81,66,20,68,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1
-1623,RSX_0806,RSX 0806,RSX-0806,100,1001000,1,720000,576000,1,2315,3291,317,96,153,143,110,128,165,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1
-1624,G_WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,0,0,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1625,G_PORCELLIO,Porcellio,Porcellio,85,5544,1,922,624,1,165,218,79,37,67,48,28,40,62,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1613,METALING,Metaling,Metaling,81,4300,1,1048,1074,1,188,39,69,28,58,30,49,17,60,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1
+1614,MINERAL,Mineral,Mineral,96,8300,1,1604,2026,1,751,57,127,23,70,61,40,50,74,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1
+1615,OBSIDIAN,Obsidian,Obsidian,97,10088,1,1782,2038,1,767,80,129,37,84,38,40,60,64,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1
+1616,PITMAN,Pitman,Pitman,90,7208,1,1550,1586,1,200,60,104,48,78,56,45,35,60,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1
+1617,WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,1652,1548,1,530,60,100,47,76,61,50,30,67,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1
+1618,UNGOLIANT,Ungoliant,Ungoliant,94,27070,1,4100,2456,1,1296,144,108,28,71,70,58,43,110,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1
+1619,PORCELLIO,Porcellio,Porcellio,85,5544,1,1422,1455,1,293,53,79,37,67,48,28,40,74,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1
+1620,NOXIOUS,Noxious,Noxious,87,5430,1,976,1785,1,281,71,117,66,58,45,60,55,68,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1
+1621,VENOMOUS,Venomous,Venomous,87,4770,1,1306,1337,1,316,50,104,65,61,28,60,55,54,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1
+1622,TEDDY_BEAR,Teddy Bear,Teddy Bear,91,7238,1,1620,1799,1,482,62,106,39,57,81,66,20,82,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1
+1623,RSX_0806,RSX 0806,RSX-0806,100,1001000,1,864000,576000,1,3010,976,317,96,153,143,110,128,198,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1
+1624,G_WASTE_STOVE,Waste Stove,Old Stove,92,7400,1,0,0,1,530,60,100,47,76,61,50,30,67,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1625,G_PORCELLIO,Porcellio,Porcellio,85,5544,1,1014,624,1,182,53,79,37,67,48,28,40,74,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Hellion Revenant
-1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,79,8600,1,1,1,2,178,238,88,50,54,63,40,78,56,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0
+1626,G_DARK_PRIEST,Hellion Revenant,Hellion Revenant,79,8600,1,1,1,2,196,60,88,50,54,63,40,78,67,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0
// Lighthalzen (10.2)
-1627,ANOPHELES,Anopheles,Anopheles,95,7238,1,1691,1902,1,242,260,7,10,64,60,42,58,88,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1
-1628,MOLE,Mole,Holden,85,6228,1,1206,1358,9,260,309,82,16,53,65,31,30,48,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1
-1629,HILL_WIND,Hill Wind,Hill Wind,43,2870,0,340,340,3,290,480,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1
-1630,BACSOJIN_,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1
-1631,CHUNG_E_,Chung E,Green Maiden,82,3901,0,1049,1481,2,247,310,69,15,66,79,36,48,66,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1
-1632,GREMLIN,Gremlin,Gremlin,118,20313,1,3091,2318,1,606,744,76,25,141,75,48,61,90,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1
-1633,BEHOLDER,Beholder,Beholder,120,19280,1,3285,2463,6,588,718,50,30,96,82,65,107,94,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1
+1627,ANOPHELES,Anopheles,Anopheles,95,7238,1,2028,1902,1,315,18,7,10,64,60,42,58,106,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1
+1628,MOLE,Mole,Holden,85,6228,1,1326,1358,9,286,49,82,16,53,65,31,30,58,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1
+1629,HILL_WIND,Hill Wind,Hill Wind,43,2870,0,340,340,3,290,190,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1
+1630,BACSOJIN_,Bacsojin,White Lady,97,720500,1,801792,542880,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,12395,50,2700,100,2234,10,0,0,0,0,4372,1
+1631,CHUNG_E_,Chung E,Green Maiden,82,3901,0,1154,1481,2,272,63,69,15,66,79,36,48,79,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1
+1632,GREMLIN,Gremlin,Gremlin,118,20313,1,4018,2318,1,848,138,76,25,141,75,48,61,126,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1
+1633,BEHOLDER,Beholder,Beholder,120,19280,1,4270,2463,6,823,130,50,30,96,82,65,107,132,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1
// Normal advanced class mobs
-1634,SEYREN,Seyren,Seyren Windsor,142,194962,1,10386,7790,1,1670,1987,166,12,142,69,86,49,132,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,6223,10,2229,12,2317,1,13421,100,0,0,0,0,4358,1
-1635,EREMES,Eremes,Eremes Guile,140,190525,1,10329,6846,1,1503,1674,122,12,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1
-1636,HARWORD,Harword,Howard Alt-Eisen,142,348100,1,10854,7241,1,1308,1590,131,10,138,79,62,53,82,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,100,1361,110,2104,10,2318,1,6223,10,0,0,0,0,4362,1
-1637,MAGALETA,Magaleta,Margaretha Sorin,140,220800,1,9895,7421,1,851,1405,108,93,126,74,71,123,99,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,100,6223,1,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1
-1638,SHECIL,Shecil,Cecil Damon,141,190255,1,10103,7577,14,1158,1406,76,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,6223,1,1745,100,0,0,0,0,4368,1
-1639,KATRINN,Katrinn,Kathryne Keyron,141,219780,1,9207,6905,1,726,1449,77,74,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1
+1634,SEYREN,Seyren,Seyren Windsor,142,204962,1,17751,14895,1,3505,1317,166,12,162,99,186,49,198,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,12623,5,6223,10,6471,1,6469,200,13421,100,0,0,0,0,4358,1
+1635,EREMES,Eremes,Eremes Guile,140,220525,1,16714,13423,1,3055,1171,122,12,145,137,59,67,191,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1
+1636,HARWORD,Harword,Howard Alt-Eisen,142,378100,1,17055,13620,1,2762,1282,131,10,158,79,92,53,123,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6471,1,1311,100,12623,3,6469,200,2318,1,6223,10,0,0,0,0,4362,1
+1637,MAGALETA,Magaleta,Margaretha Sorin,140,250800,1,15432,11710,1,1277,3554,108,93,126,74,71,123,149,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,100,6471,1,1561,5,2162,5,1659,10,6469,200,0,0,0,0,4364,1
+1638,SHECIL,Shecil,Cecil Damon,141,200255,1,16567,13788,14,3737,1248,76,15,121,126,67,80,308,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,18110,10,12623,3,6469,200,6471,1,1745,100,0,0,0,0,4368,1
+1639,KATRINN,Katrinn,Kathryne Keyron,141,209780,1,13484,13452,1,1089,3123,77,333,108,78,55,144,209,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,12623,1,6469,200,5085,1,6471,1,0,0,0,0,4366,1
// MVP Slaves
-1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,2680000,1,0,0,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
-1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,1230000,1,0,0,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
-1642,G_HARWORD,Whitesmith Harword,Whitesmith Howard,160,3750000,1,0,0,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
-1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,2800000,1,0,0,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
-1644,G_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,0,0,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
-1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,0,0,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10
+1640,G_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,2680000,1,0,0,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
+1641,G_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,1230000,1,0,0,1,6083,1378,445,98,211,338,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
+1642,G_HARWORD,Whitesmith Harword,MasterSmith Howard,160,3750000,1,0,0,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
+1643,G_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,2800000,1,0,0,1,2499,3396,231,349,172,150,164,203,233,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
+1644,G_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,0,0,14,4155,1550,178,135,176,258,155,132,464,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
+1645,G_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,0,0,1,2097,4254,215,555,165,190,142,236,299,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0
// MVP Monsters
-1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,4642560,3481920,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1
-1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,4185000,3147120,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1
-1648,B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,3555000,2664000,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1
-1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,4800000,1,3465000,2520000,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1
-1650,B_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,4106880,3080160,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1
-1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,3240000,2430000,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1
+1646,B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,6035328,3481920,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1
+1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,5440500,3147120,1,6083,1378,445,98,211,338,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1
+1648,B_HARWORD,Whitesmith Harword,MasterSmith Howard,160,6750000,1,4621500,2664000,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1
+1649,B_MAGALETA,High Priest Magaleta,High Priest Margaretha,160,4800000,1,4504500,2520000,1,2499,3396,231,349,172,150,164,203,233,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1
+1650,B_SHECIL,Sniper Shecil,Sniper Cecil,160,4140000,1,5338944,3080160,14,4155,1550,178,135,176,258,155,132,464,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1
+1651,B_KATRINN,High Wizard Katrinn,High Wizard Kathryne,160,4500000,1,4212000,2430000,1,2097,4254,215,555,165,190,142,236,299,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1
// 1'st Class Mobs
-1652,YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,5229,4461,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1
-1653,WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,5094,4721,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1
-1654,ARMAIA,Armaia,Armeyer Dinze,134,46878,1,4895,4909,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1
-1655,EREND,Erend,Errende Ebecee,133,42764,1,4860,4545,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1
-1656,KAVAC,Kavac,Kavach Icarus,135,43079,1,5103,4276,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1
-1657,RAWREL,Rawrel,Laurell Weinder,133,40282,1,4500,4477,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1
+1652,YGNIZEM,Ygnizem,Egnigem Cenia,136,40327,1,7398,5460,1,1985,328,224,8,144,92,86,69,149,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1
+1653,WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,6622,4721,1,1414,144,114,66,114,91,69,42,128,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1
+1654,ARMAIA,Armaia,Armeyer Dinze,134,46878,1,6364,5908,1,1390,155,199,4,123,59,85,65,144,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1
+1655,EREND,Erend,Errende Ebecee,133,42764,1,6318,4545,1,937,552,106,99,77,66,90,145,131,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1
+1656,KAVAC,Kavac,Kavach Icarus,135,43079,1,6934,5276,9,1195,129,86,48,103,109,62,50,274,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1
+1657,RAWREL,Rawrel,Laurell Weinder,133,40282,1,5850,5476,1,668,1032,76,180,67,79,65,162,168,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1
// 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs.
-1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,141,2910088,1,1054400,1860000,1,3057,5408,373,175,188,177,165,142,185,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1
-1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,0,0,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1660,G_ARMAIA,Armaia,Armeyer Dinze,134,46878,1,0,0,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1661,G_EREND,Erend,Errende Ebecee,133,42764,1,0,0,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1662,G_KAVAC,Kavac,Kavach Icarus,135,43079,1,0,0,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1663,G_RAWREL,Rawrel,Laurell Weinder,133,40282,1,0,0,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1658,B_YGNIZEM,Ygnizem,Egnigem Cenia,141,2910088,1,1370720,1860000,1,5986,2351,373,175,188,177,165,142,278,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1
+1659,G_WHIKEBAIN,Whikebain,Wickebine Tres,132,43191,1,0,0,1,1414,144,114,66,114,91,69,42,128,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1660,G_ARMAIA,Armaia,Armeyer Dinze,134,46878,1,0,0,1,1390,155,199,4,123,59,85,65,144,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1661,G_EREND,Erend,Errende Ebecee,133,42764,1,0,0,1,937,552,106,99,77,66,90,145,131,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1662,G_KAVAC,Kavac,Kavach Icarus,135,43079,1,0,0,9,1195,129,86,48,103,109,62,50,274,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1663,G_RAWREL,Rawrel,Laurell Weinder,133,40282,1,0,0,1,668,832,76,180,67,79,65,162,168,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Juperos
-1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,800,600,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,600,800,9,700,800,24,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0
-1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,800,600,9,800,900,13,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,600,800,9,700,800,24,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1668,ARCHDAM,Archdam,Archdam,119,20700,1,2862,2147,3,603,722,98,15,118,64,70,65,66,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1
-1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,45,28,15,69,40,15,63,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1
-1670,DIMIK_1,Dimik,Dimik,116,17552,1,2916,2187,7,656,763,93,28,114,90,66,52,122,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1
-1671,DIMIK_2,Dimik,Dimik,116,23840,1,2916,2187,5,630,733,76,21,118,72,62,55,88,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1
-1672,DIMIK_3,Dimik,Dimik,116,21920,1,2916,2187,5,610,705,114,24,115,64,68,50,82,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1
-1673,DIMIK_4,Dimik,Dimik,116,16940,1,2916,2187,5,699,823,98,28,112,79,72,53,86,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1
-1674,MONEMUS,Monemus,Monemus,88,80000,1,0,0,5,2400,3400,87,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1675,VENATU,Venatu,Venatu,77,12717,1,0,0,2,652,779,96,20,99,56,58,62,48,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1
-1676,VENATU_1,Venatu,Venatu,113,15900,1,2448,1836,2,687,772,95,20,109,54,60,50,60,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1
-1677,VENATU_2,Venatu,Venatu,113,14717,1,2637,1980,2,655,762,86,20,99,73,58,62,98,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1
-1678,VENATU_3,Venatu,Venatu,113,21040,1,2643,1983,2,698,798,104,16,103,50,62,57,69,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1
-1679,VENATU_4,Venatu,Venatu,113,21810,1,2643,1983,2,656,745,74,15,106,69,61,55,72,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1
-1680,HILL_WIND_1,Hill Wind,Hill Wind,101,9100,1,1900,1425,3,308,375,90,37,105,69,59,35,80,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1
-1681,GEMINI,Gemini-S58,Gemini-S58,135,108999,1,4725,3543,3,785,1107,89,45,115,92,81,92,94,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1
-1682,REMOVAL,Removal,Remover,121,32235,0,3772,2829,1,713,833,110,47,127,50,82,35,89,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1
-1683,G_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1684,G_ARCHDAM,Archdam,Archdam,119,20700,1,0,0,3,603,722,98,15,118,64,70,65,66,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1685,APOCALIPS_H,Vesper,Vesper,128,3802000,1,2700000,2250000,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1
-1686,ORC_BABY,Orc Baby,Orc Baby,43,1122,1,315,354,1,64,75,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1
-1687,GREEN_IGUANA,Green Iguana,Grove,55,2090,1,486,548,1,139,174,96,18,58,42,22,5,45,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1
-1688,LADY_TANEE,Lady Tanee,Lady Tanee,80,360000,1,334080,261000,14,1760,2685,141,104,86,108,88,121,200,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1
-1689,G_BACSOJIN,Bacsojin,White Lady,97,720500,1,0,0,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1690,G_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,511,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1691,G_KRABEN,Kraben,Kraben,70,2901,1,0,0,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0
+1664,POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,840,600,9,840,100,16,30,1,40,25,20,88,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1665,POTON_CANON_1,Photon Cannon,Photon Cannon,67,7500,0,630,800,9,735,100,24,30,1,40,30,40,95,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0
+1666,POTON_CANON_2,Photon Cannon,Photon Cannon,64,7100,0,840,600,9,840,100,13,30,1,40,21,29,88,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1667,POTON_CANON_3,Photon Cannon,Photon Cannon,65,7800,0,630,800,9,735,100,24,30,1,40,23,30,99,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1668,ARCHDAM,Archdam,Archdam,119,20700,1,3720,2147,3,844,119,98,15,118,64,70,65,92,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1
+1669,DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1144,840,45,28,15,69,40,15,76,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1
+1670,DIMIK_1,Dimik,Dimik,116,17552,1,3790,2586,7,1618,107,93,28,114,90,66,52,201,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1
+1671,DIMIK_2,Dimik,Dimik,116,23840,1,3790,2586,5,982,103,76,21,118,72,62,55,153,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1
+1672,DIMIK_3,Dimik,Dimik,116,21920,1,3790,2586,5,954,95,114,24,115,64,68,50,135,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1
+1673,DIMIK_4,Dimik,Dimik,116,16940,1,3790,2586,5,1079,124,98,28,112,79,72,53,150,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1
+1674,MONEMUS,Monemus,Monemus,88,80000,1,0,0,5,2640,1000,87,25,0,1,90,24,173,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1675,VENATU,Venatu,Venatu,77,12717,1,0,0,2,717,127,96,20,99,56,58,62,58,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1
+1676,VENATU_1,Venatu,Venatu,113,15900,1,3182,2036,2,1662,85,95,20,109,54,60,50,84,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1
+1677,VENATU_2,Venatu,Venatu,113,14717,1,3428,2080,2,917,107,86,20,99,73,58,62,137,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1
+1678,VENATU_3,Venatu,Venatu,113,21040,1,3436,2082,2,977,100,104,16,103,50,62,57,97,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1
+1679,VENATU_4,Venatu,Venatu,113,21810,1,3436,2082,2,918,89,74,15,106,69,61,55,101,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1
+1680,HILL_WIND_1,Hill Wind,Hill Wind,101,9100,1,2280,1425,3,400,67,90,37,105,69,59,35,96,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1
+1681,GEMINI,Gemini-S58,Gemini-S58,135,108999,1,6071,4771,3,2178,622,89,45,115,92,81,92,141,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1
+1682,REMOVAL,Removal,Remover,121,32235,0,4504,2829,1,998,120,110,47,127,50,82,35,125,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1
+1683,G_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,840,100,16,30,1,40,25,20,88,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1684,G_ARCHDAM,Archdam,Archdam,119,20700,1,0,0,3,844,119,98,15,118,64,70,65,92,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1685,APOCALIPS_H,Vesper,Vesper,128,3802000,1,3510000,2250000,3,3668,4656,402,109,177,195,165,130,255,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1
+1686,ORC_BABY,Orc Baby,Orc Baby,43,1122,1,315,354,1,64,11,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1
+1687,GREEN_IGUANA,Green Iguana,Grove,55,2090,1,510,548,1,146,35,96,18,58,42,22,5,50,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1
+1688,LADY_TANEE,Lady Tanee,Lady Tanee,80,360000,1,367488,261000,14,1936,925,241,104,86,108,88,121,240,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1
+1689,G_BACSOJIN,Bacsojin,White Lady,97,720500,1,0,0,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1690,G_SPRING_RABBIT,Spring Rabbit,Lunar Rabbit,12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,0,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1691,G_KRABEN,Kraben,Kraben,70,2901,1,0,0,1,279,45,108,20,54,33,35,15,68,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0
// Thanatos Tower (10.3)
-1692,BREEZE,Breeze,Breeze,92,6755,1,1598,1797,2,379,431,83,32,75,101,46,35,66,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1
-1693,PLASMA_Y,Plasma,Plasma,119,20600,1,2111,2882,1,615,750,130,45,141,94,75,91,103,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1
-1694,PLASMA_R,Plasma,Plasma,118,16789,1,3549,2661,1,835,935,111,12,147,77,66,65,95,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1
-1695,PLASMA_G,Plasma,Plasma,116,24975,1,3348,2511,1,608,720,120,3,121,60,58,62,73,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1
-1696,PLASMA_P,Plasma,Plasma,117,18955,1,3348,2511,1,623,762,78,49,130,71,72,70,87,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1
-1697,PLASMA_B,Plasma,Plasma,115,24651,1,3181,2384,1,428,498,51,18,124,74,60,55,66,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1
-1698,DEATHWORD,Deathword,Death Word,114,16390,1,2565,1923,1,596,721,68,40,91,64,53,88,99,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1
-1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,112,14700,1,2448,2069,1,685,769,100,40,121,70,63,43,101,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1
-1700,OBSERVATION,Observation,Dame of Sentinel,127,34538,1,3735,2801,2,643,795,98,55,99,75,52,55,106,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1
-1701,SHELTER,Shelter,Mistress of Shelter,125,27000,1,4010,3051,2,691,935,80,89,99,66,41,103,95,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1
-1702,RETRIBUTION,Retribution,Baroness of Retribution,121,22152,1,3528,2463,2,798,1102,61,35,112,60,45,77,78,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1
-1703,SOLACE,Solace,Lady Solace,123,24729,1,3758,2819,2,667,832,96,96,106,65,61,42,82,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1
-1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,3960,3666,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1
-1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,3960,3666,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1
-1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,3960,3666,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1
-1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,3960,3666,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1
-1708,THANATOS,Thanatos,Thanatos Phantom,99,1445660,1,1299400,1930554,3,3812,5483,364,35,100,129,30,86,206,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1
-1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,0,0,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,0,0,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,0,0,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1692,BREEZE,Breeze,Breeze,92,6755,1,1918,1797,2,493,52,83,32,75,101,46,35,79,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1
+1693,PLASMA_Y,Plasma,Plasma,119,20600,1,2744,2882,1,861,135,130,45,141,94,75,91,144,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1
+1694,PLASMA_R,Plasma,Plasma,118,16789,1,4614,2661,1,1169,100,111,12,147,77,66,65,133,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1
+1695,PLASMA_G,Plasma,Plasma,116,24975,1,4352,2511,1,851,112,120,3,121,60,58,62,102,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1
+1696,PLASMA_P,Plasma,Plasma,117,18955,1,4352,2511,1,872,139,78,49,130,71,72,70,122,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1
+1697,PLASMA_B,Plasma,Plasma,115,24651,1,4134,2384,1,599,70,51,18,124,74,60,55,92,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1
+1698,DEATHWORD,Deathword,Death Word,114,16390,1,3334,1923,1,834,125,68,40,91,64,53,88,139,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1
+1699,ANCIENT_MIMIC,Ancient Mimic,Ancient Mimic,112,14700,1,3182,2069,1,959,84,100,40,121,70,63,43,141,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1
+1700,OBSERVATION,Observation,Dame of Sentinel,127,34538,1,5556,5100,2,1400,152,98,55,99,75,52,55,178,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1
+1701,SHELTER,Shelter,Mistress of Shelter,125,27000,1,5212,5050,2,1067,944,80,89,99,66,41,153,133,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1
+1702,RETRIBUTION,Retribution,Baroness of Retribution,121,22152,1,4986,4462,2,1117,804,61,35,112,60,45,127,149,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1
+1703,SOLACE,Solace,Lady Solace,123,24729,1,4884,4818,2,1234,165,96,96,106,65,61,42,125,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1
+1704,THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,5148,3666,9,1061,144,120,30,106,78,71,54,181,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1
+1705,THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,5148,3666,2,1032,171,95,69,111,96,66,65,127,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1
+1706,THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,5148,3666,2,1058,245,96,90,97,111,70,133,115,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1
+1707,THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,5148,3666,2,980,201,71,80,91,72,59,96,109,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1
+1708,THANATOS,Thanatos,Memory of Thanatos,99,1445660,1,1559280,1930554,3,4956,1671,364,35,100,129,30,86,247,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1
+1709,G_THA_ODIUM,Thanatos Odium,Odium of Thanatos,129,40200,1,0,0,9,1061,144,120,30,106,78,71,54,181,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1710,G_THA_DESPERO,Thanatos Despero,Despero of Thanatos,129,41111,1,0,0,2,1032,171,95,69,111,96,66,65,127,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1711,G_THA_MAERO,Thanatos Maero,Maero of Thanatos,129,42599,1,0,0,2,1058,245,96,90,97,111,70,133,115,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,0,0,2,980,201,71,80,91,72,59,96,109,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Abyss Lake
-1713,ACIDUS,Acidus,Acidus,130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1
-1714,FERUS,Ferus,Ferus,126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1
-1715,NOVUS,Novus,Novus,90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1
-1716,ACIDUS_,Acidus,Acidus,130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1
-1717,FERUS_,Ferus,Ferus,126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1
-1718,NOVUS_,Novus,Novus,84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1
-1719,DETALE,Detale,Detardeurus,135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1
-1720,HYDRO,Hydro,Hydrolancer,121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1
-1721,DRAGON_EGG,Dragon Egg,Dragon Egg,119,20990,1,2862,2147,0,503,653,172,85,84,59,85,40,118,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1
-1722,EVENT_JAKK,Jakk,Jakk,99,10310,0,93,90,1,115,182,8,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000
-1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,600,900,40,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,1300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,0,0,1,33,41,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,590,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1730,R_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1731,G_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1732,G_TREASURE_BOX,Treasure Chest,Treasure Chest,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1713,ACIDUS,Acidus,Acidus,130,48430,1,6176,3988,2,871,695,101,90,109,78,50,55,108,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,2890,10,7448,800,1269,10,2114,50,0,0,0,0,4378,1
+1714,FERUS,Ferus,Ferus,126,25668,1,5180,2989,2,969,115,96,45,94,80,55,60,109,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,2891,10,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1
+1715,NOVUS,Novus,Novus,90,6670,1,1436,1505,1,427,57,95,48,74,56,57,25,108,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1
+1716,ACIDUS_,Acidus,Acidus,130,40718,1,5876,3389,2,1484,158,98,47,106,110,61,53,133,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,2890,10,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1
+1717,FERUS_,Ferus,Ferus,126,39054,1,5440,2989,2,906,122,111,33,91,57,57,61,87,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,2891,10,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1
+1718,NOVUS_,Novus,Novus,84,5028,1,1188,1215,1,293,48,88,28,53,43,43,55,108,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1
+1719,DETALE,Detale,Detardeurus,135,6005000,1,5616000,3420000,3,6108,2662,364,166,165,153,171,136,278,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1
+1720,HYDRO,Hydro,Hydrolancer,121,41500,0,8170,4463,3,1064,150,92,58,120,72,67,66,123,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1
+1721,DRAGON_EGG,Dragon Egg,Dragon Egg,119,20990,1,3720,2147,0,704,150,172,85,84,59,85,40,165,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1
+1722,EVENT_JAKK,Jakk,Halloween Jakk,99,10310,0,112,90,1,150,67,8,11,1,28,18,13,42,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,5134,10000,0,0,0,0
+1723,A_SHECIL,Shecil Damon,Cecil Damon,82,30000,0,0,0,14,660,300,40,15,1,145,27,32,161,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1724,A_POTON_CANON,Photon Cannon,Photon Cannon,66,8000,0,0,0,9,1000,300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1725,R_PORING,Poring,Poring,1,50,0,0,0,1,7,3,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,7049,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1726,R_LUNATIC,Lunatic,Lunatic,3,60,0,0,0,1,9,3,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1727,R_SAVAGE_BABE,Savage Babe,Savage Babe,7,182,0,0,0,1,20,5,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1728,R_DESERT_WOLF_B,Desert Wolf Baby,Baby Desert Wolf,14,140,1,0,0,1,33,8,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1729,R_BAPHOMET_,Baphomet Jr.,Baphomet Jr.,50,8578,0,0,0,1,487,103,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1730,R_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,73,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1731,G_DOPPELGANGER,Doppelganger,Outrageous Doppelganger,77,380000,1,0,0,1,1803,1176,246,86,122,122,105,67,203,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1732,G_TREASURE_BOX,Treasure Chest,New Year Treasure Chest,98,500,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Kiel Dungeon (10.4)
-1733,KIEL,Kiel,Kiehl,90,523500,1,32850,21065,3,2018,3647,45,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1734,KIEL_,Kiel D-01,Kiel D-01,125,2502000,1,1800000,1440000,3,2937,6517,314,232,166,187,155,141,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1
-1735,ALICEL,Alicel,Alicel,115,18000,1,2565,1923,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1
-1736,ALIOT,Aliot,Aliot,112,15669,1,2448,1836,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1
-1737,ALIZA,Aliza,Aliza,112,14450,1,2448,1836,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1
-1738,CONSTANT,Constant,Constant,108,12050,0,2506,1879,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0
-1739,G_ALICEL,Alicel,Alicel,115,18000,1,0,0,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1740,G_ALIOT,Aliot,Aliot,112,15669,1,0,0,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,0,0,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1742,G_CARAT,Carat,Carat,103,9222,1,0,0,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1743,G_MYSTCASE,Myst Case,Myst Case,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1744,G_WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,0,0,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1745,G_CONSTANT,Constant,Constant,108,2000,0,0,0,1,560,704,92,82,126,98,62,57,91,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1746,G_ALIZA,Aliza,Aliza,112,14450,1,0,0,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1747,G_SNAKE,Snake,Boa,18,217,1,0,0,1,29,34,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1748,G_ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,0,0,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1749,G_MEDUSA,Medusa,Medusa,102,10045,1,0,0,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1750,G_RED_PLANT,Red Plant,Red Plant,1,100,1,0,0,1,100,200,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1733,KIEL,Kiel,Kiel,90,523500,1,36134,21065,3,2220,1629,45,32,100,112,76,89,187,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,7513,0,7513,0,7513,0,7513,0,7513,0,7513,0,0,0,0,0,0,0,0,0
+1734,KIEL_,Kiel D-01,Kiel D-01,125,2502000,1,2340000,1440000,3,4112,3580,314,232,166,187,155,141,279,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1
+1735,ALICEL,Alicel,Alicel,115,18000,1,3334,1961,2,952,398,109,30,121,53,59,63,102,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1
+1736,ALIOT,Aliot,Aliot,112,15669,1,3182,1918,2,1051,89,106,15,111,56,55,42,107,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1
+1737,ALIZA,Aliza,Aliza,112,14450,1,2448,1836,1,840,397,98,5,115,50,51,62,88,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1
+1738,CONSTANT,Constant,Constant,108,12050,0,3006,1879,1,858,144,92,82,126,98,62,57,109,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0
+1739,G_ALICEL,Alicel,Alicel,115,18000,1,0,0,2,952,398,109,30,121,53,59,63,102,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1740,G_ALIOT,Aliot,Aliot,112,15669,1,0,0,2,1051,89,106,15,111,56,55,42,107,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1741,G_COOKIE_XMAS,Christmas Cookie,Christmas Cookie,37,733,1,0,0,1,70,35,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1742,G_CARAT,Carat,Carat,103,9222,1,0,0,1,777,76,111,67,102,64,60,40,80,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1743,G_MYSTCASE,Myst Case,Myst Case,39,879,1,0,0,1,68,21,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1744,G_WILD_ROSE,Wild Rose,Wild Rose,70,2682,1,0,0,1,147,45,75,15,44,87,31,35,69,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1745,G_CONSTANT,Constant,Constant,108,2000,0,0,0,1,728,144,92,82,126,98,62,57,109,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1746,G_ALIZA,Aliza,Aliza,112,14450,1,0,0,1,840,397,98,5,115,50,51,62,88,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1747,G_SNAKE,Snake,Boa,18,217,1,0,0,1,29,5,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1748,G_ANACONDAQ,Anacondaq,Anacondaq,100,8510,1,0,0,1,504,55,92,0,79,46,28,43,67,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1749,G_MEDUSA,Medusa,Medusa,102,10045,1,0,0,1,620,113,87,66,99,68,65,79,83,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1750,G_RED_PLANT,Red Plant,Red Plant,1,100,1,0,0,1,100,100,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Odin's Temple
-1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1
-1752,SKOGUL,Skogul,Skogul,126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1
-1753,FRUS,Frus,Frus,128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1
-1754,SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1
-1755,SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1
-1756,G_HYDRO,Hydro,Hydrolancer,121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1757,G_ACIDUS,Acidus,Acidus,130,48430,1,0,0,2,622,1017,101,47,109,78,50,55,77,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1758,G_FERUS,Ferus,Ferus,126,25668,1,0,0,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1759,G_ACIDUS_,Acidus,Acidus,130,40718,1,0,0,2,703,861,98,90,106,110,61,53,95,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1760,G_FERUS_,Ferus,Ferus,126,39054,1,0,0,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1761,G_SKOGUL,Skogul,Skogul,126,34240,1,0,0,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1762,G_FRUS,Frus,Frus,128,39520,1,0,0,2,710,879,65,35,114,77,66,51,69,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1763,G_SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,0,0,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,0,0,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1765,G_RANDGRIS,Valkyrie,Valkyrie,141,1005000,1,10000,10000,3,2895,6101,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,3205000,1,2600000,2200000,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,6000,2357,600,2524,2000,2421,2000,2229,6000,7024,3000,0,0,0,0,0,0,4407,1
+1752,SKOGUL,Skogul,Skogul,126,34240,1,5904,5210,2,1007,456,72,15,100,71,63,85,115,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,2884,10,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1
+1753,FRUS,Frus,Frus,128,39520,1,5930,5420,2,1494,169,65,35,114,77,66,51,111,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,2884,10,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1
+1754,SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,7218,4419,1,1100,325,85,92,91,89,65,118,147,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1
+1755,SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,7214,4411,1,1151,218,80,86,91,86,67,116,153,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1
+1756,G_HYDRO,Hydro,Hydrolancer,121,41500,0,0,0,3,1064,150,92,95,120,72,67,66,123,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1757,G_ACIDUS,Acidus,Acidus,130,48430,1,0,0,2,871,695,101,47,109,78,50,55,108,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1758,G_FERUS,Ferus,Ferus,126,25668,1,0,0,2,969,115,96,45,94,80,55,60,109,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1759,G_ACIDUS_,Acidus,Acidus,130,40718,1,0,0,2,1484,158,98,90,106,110,61,53,133,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1760,G_FERUS_,Ferus,Ferus,126,39054,1,0,0,2,906,122,111,33,91,57,57,61,87,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1761,G_SKOGUL,Skogul,Skogul,126,34240,1,0,0,2,1007,456,72,15,100,71,63,85,115,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1762,G_FRUS,Frus,Frus,128,39520,1,0,0,2,1494,169,65,35,114,77,66,51,111,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1763,G_SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,0,0,1,1100,325,85,92,91,89,65,118,147,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1764,G_SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,0,0,1,1151,218,80,86,91,86,67,116,153,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1765,G_RANDGRIS,Valkyrie,Valkyrie,141,1005000,1,13000,10000,3,6343,3206,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,160,617,40,2115,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1766,EM_ANGELING,Angeling,Angeling,99,128430,0,0,0,1,78,11,64,50,1,17,80,80,151,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1767,EM_DEVILING,Deviling,Deviling,99,128430,0,0,0,1,78,11,64,50,1,17,80,80,151,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Rachel / Ice Dungeon (11.1)
-1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1
-1769,AGAV,Agav,Agav,128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1
-1770,ECHIO,Echio,Echio,126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1
-1771,VANBERK,Vanberk,Vanberk,123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1
-1772,ISILLA,Isilla,Isilla,124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1
-1773,HODREMLIN,Hodremlin,Hodremlin,122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1
-1774,SEEKER,Seeker,Seeker,124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1
-1775,SNOWIER,Snowier,Snowier,103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1
-1776,SIROMA,Siroma,Siroma,98,11910,1,1827,1369,1,389,489,64,38,83,43,50,70,80,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1
-1777,ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,2724,2644,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1
-1778,GAZETI,Gazeti,Gazeti,106,14000,1,2025,1518,10,596,664,71,21,105,37,42,38,97,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,200,0,0,0,0,0,0,4418,1
-1779,KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,1035576,949942,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1
-1780,MUSCIPULAR,Muscipular,Muscipular,105,12550,1,1944,1458,1,401,477,114,43,100,60,58,37,60,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,200,0,0,0,0,4420,1
-1781,DROSERA,Drosera,Drosera,101,10878,1,1350,1013,7,168,222,86,52,79,32,64,38,78,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,200,1032,2000,1033,2000,621,3,905,1000,6217,50,0,0,0,0,4421,1
-1782,ROWEEN,Roween,Roween,95,7385,1,1691,1902,1,375,410,73,33,70,82,55,45,73,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1
-1783,GALION,Galion,Galion,100,8821,1,1769,1327,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1
-1784,STAPO,Stapo,Stapo,95,8805,1,1574,1772,1,364,415,129,36,20,46,25,35,53,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1
-1785,ATROCE,Atroce,Atroce,113,1502000,1,1080000,855000,2,2031,3534,316,176,121,165,135,99,152,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1
-1786,G_AGAV,Agav,Agav,128,40000,1,0,0,1,637,818,77,82,85,66,55,113,66,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1787,G_ECHIO,Echio,Echio,126,31620,1,0,0,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1788,G_ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,0,0,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1789,ICEICLE,Iceicle,Iceicle,100,1012,1,164,122,3,425,426,2,15,99,1,1,1,95,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500
-1790,G_RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,0,0,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1791,G_GALION,Galion,Galion,100,8821,1,0,0,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,0,0,0,0,617,1000
-1793,G_MEGALITH,Megalith,Megalith,65,2451,1,0,0,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1794,G_ROWEEN,Roween,Roween,95,7385,1,0,0,1,175,210,73,33,70,82,55,45,73,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,0,0,0,0,7578,10000
+1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2808000,1800000,3,6592,2785,479,262,191,223,187,155,362,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1
+1769,AGAV,Agav,Agav,128,40000,1,5112,2949,1,892,181,77,82,85,66,55,113,120,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1
+1770,ECHIO,Echio,Echio,126,31620,1,4796,2768,1,848,159,66,11,111,63,51,37,132,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1
+1771,VANBERK,Vanberk,Vanberk,123,24605,1,4212,2430,1,918,141,100,6,109,70,55,60,122,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,2883,10,0,0,0,0,4411,1
+1772,ISILLA,Isilla,Isilla,124,26324,1,4492,2592,1,848,168,69,19,90,65,43,82,127,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,2883,10,0,0,0,0,4412,1
+1773,HODREMLIN,Hodremlin,Hodremlin,122,23182,1,4884,2819,1,955,154,75,25,106,70,77,60,83,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1
+1774,SEEKER,Seeker,Seeker,124,24500,1,5212,3006,6,855,120,64,30,91,90,35,75,176,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1
+1775,SNOWIER,Snowier,Snowier,103,13934,1,2332,1458,2,763,82,121,47,91,61,67,45,83,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1
+1776,SIROMA,Siroma,Siroma,98,11910,1,1827,1369,1,506,100,64,38,83,43,50,70,96,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,500,7066,1500,510,10,7066,0,7066,0,7066,0,991,20,0,0,0,0,4416,1
+1777,ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,3268,2644,1,1088,98,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1
+1778,GAZETI,Gazeti,Gazeti,106,14000,1,2430,1518,10,775,68,71,21,105,37,42,38,116,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,500,0,0,0,0,0,0,4418,1
+1779,KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,1242690,949942,3,3754,2680,129,78,85,126,30,125,212,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1
+1780,MUSCIPULAR,Muscipular,Muscipular,105,12550,1,2332,1458,3,521,76,114,43,100,60,58,37,72,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,400,0,0,0,0,4420,1
+1781,DROSERA,Drosera,Drosera,101,10878,1,1620,1013,7,218,54,86,52,79,32,64,38,94,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,100,1032,2000,1033,2000,621,3,905,1000,6217,200,0,0,0,0,4421,1
+1782,ROWEEN,Roween,Roween,95,7385,1,2028,1902,1,588,35,73,33,70,82,55,45,108,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1
+1783,GALION,Galion,Galion,100,8821,1,2122,1327,1,527,77,100,62,106,79,62,45,108,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1
+1784,STAPO,Stapo,Stapo,95,8805,1,1888,1772,1,573,51,129,36,20,46,25,35,64,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1
+1785,ATROCE,Atroce,Atroce,113,1502000,1,1404000,855000,2,2843,1503,316,176,121,165,135,99,213,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1
+1786,G_AGAV,Agav,Agav,128,40000,1,0,0,1,892,181,77,82,85,66,55,113,92,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,0,0,0,0
+1787,G_ECHIO,Echio,Echio,126,31620,1,0,0,1,848,159,66,11,111,63,51,37,132,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,0,0,0,0
+1788,G_ICE_TITAN,Ice Titan,Ice Titan,110,20820,1,0,0,1,1088,98,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1789,ICEICLE,Iceicle,Iceicle,100,1012,1,196,122,3,553,1,2,15,99,1,1,1,194,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0
+1790,G_RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,0,0,3,325,41,86,2,47,41,44,29,78,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1791,G_GALION,Galion,Galion,100,8821,1,0,0,1,527,77,100,62,106,79,62,45,108,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1792,SOCCER_BALL,Soccer Ball,Soccer Ball,1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,617,1000,0,0,0,0
+1793,G_MEGALITH,Megalith,Megalith,65,2451,1,0,0,9,122,30,66,18,57,14,35,10,99,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,757,0,757,0,757,0,757,0,757,0,757,0,757,0,757,0,0,0,0,0
+1794,G_ROWEEN,Roween,Roween,95,7385,1,0,0,1,228,35,73,33,70,82,55,45,88,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1795,BLOODY_KNIGHT_,Bloody Knight,Bloody Knight,116,68500,1,0,0,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,7578,10000,0,0,0,0
// WoE SE Guild Dungeon
-1796,AUNOE,Aunoe,Aunoe,110,13050,0,1935,1454,1,646,727,107,42,118,63,62,77,70,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1
-1797,FANAT,Fanat,Fanat,120,21000,1,3042,2282,1,599,705,81,64,102,66,70,47,79,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1
+1796,AUNOE,Aunoe,Aunoe,110,13050,0,2322,1454,1,840,81,107,42,118,63,62,77,84,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1
+1797,FANAT,Fanat,Fanat,120,21000,1,3954,2282,1,839,106,81,64,102,66,70,47,111,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1
// Additional Event Monsters
-1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1799,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1800,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1801,G_HARWORD_,Whitesmith Harword,Mastersmith Howard,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1802,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1803,G_SHECIL_,Sniper Shecil,Sniper Cecil,10,10,1,1,1,14,1,2,1,1,1,1,1,1,1,1,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1804,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1805,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,4352040,1412973,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1806,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,3675060,1433142,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1807,B_HARWORD_,Whitesmith Harword,Mastersmith Howard,99,1460000,0,3602106,1278900,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1808,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,3831300,1186920,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1809,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,3683700,1373400,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1810,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,3607380,1473030,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1811,G_SMOKIE_,Smokie,Bandit,18,641,1,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0
-1812,EVENT_LUDE,Lude,Delightful Lude,99,15,0,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0
-1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,3600000,1800000,3,15000,47767,96,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,2000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0
-1814,EVENT_MOON,Moonlight Flower,Moonlight Flower,80,30000,0,27000,27000,1,500,800,80,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1815,EVENT_RICECAKE,Rice Cake,Rice Cake,12,777,1,7,7,1,7,14,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,2,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1817,EVENT_DETALE,Detale,Detarderous,99,8880000,0,4050000,2250000,3,32767,65534,104,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0
-1818,EVENT_ALARM,Alarm,Alarm,58,10647,0,0,0,0,1,2,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000
-1819,EVENT_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1823,EVENT_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,188,238,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1824,EVENT_GARM_BABY,Garm Baby,Baby Hatii,94,10016,1,0,0,1,183,244,62,43,69,61,55,61,53,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Christmas Goblin,25,1176,0,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1826,EVENT_MYST,Myst,Myst,39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,280,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbrusti,20,20,0,0,0,1,59,72,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1798,TREASURE_BOX_,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1799,B_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,99,1647590,0,5222448,1412973,1,9409,3802,72,37,120,110,81,65,156,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1800,B_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4410072,1433142,1,5446,4100,37,39,90,181,62,37,146,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1801,B_HARWORD_,Whitesmith Harword,Master Smith Howard,99,1460000,0,4322526,1278900,1,10169,429,66,36,100,73,112,35,163,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1802,B_MAGALETA_,High Priest Magaleta,High Priest Margaretha,99,1092910,0,4597560,1186920,1,6094,892,35,78,1,84,64,182,110,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1803,B_SHECIL_,Sniper Shecil,Sniper Cecil,99,1349000,0,4420440,1373400,14,6360,4221,22,35,1,180,39,67,232,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1804,B_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,99,1069920,0,4328856,1473030,1,1556,3197,10,88,1,89,42,223,154,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1805,G_SEYREN_,Lord Knight Seyren,Lord Knight Seyren,10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1806,G_EREMES_,Assassin Cross Eremes,Assassin Cross Eremes,10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1807,G_HARWORD_,Whitesmith Harword,MasterSmith Howard,10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1808,G_MAGALETA_,High Priest Magaleta,High Priest Margaretha,10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1809,G_SHECIL_,Sniper Shecil,Sniper Cecil,10,10,1,1,1,14,1,1,1,1,1,1,1,1,1,1,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1810,G_KATRINN_,High Wizard Katrinn,High Wizard Kathryne,10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1811,G_SMOKIE_,Smokie,Bandit,18,641,1,0,0,1,61,11,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0
+1812,EVENT_LUDE,Lude,Delightful Lude,10,20,1,0,0,2,13,8,1,0,1,1,1,50,100,100,10,12,0,1,29,0x40,150,890,960,480,0,0,0,0,0,0,0,558,10000,561,6000,529,16000,530,16000,0,0,0,0,0,0,0,0,0,0,0,0
+1813,EVENT_HYDRO,Hydro,Hydrolancer,99,1880000,0,4320000,1800000,3,19500,32767,96,55,1,142,200,250,227,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,5000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0
+1814,EVENT_MOON,Moonlight Flower,Fox Queen,80,30000,0,29700,27000,1,550,300,80,50,1,35,45,112,83,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1815,EVENT_RICECAKE,Rice Cake,Hot Ricecake,12,777,1,7,7,1,7,7,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1816,EVENT_GOURD,Gourd,Gourd,12,1000,0,0,0,1,1,1,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,632,5000,632,5000,632,5000,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1817,EVENT_DETALE,Detale,Detardeurus,99,8880000,0,4860000,2250000,3,42597,32767,104,65,1,142,200,250,227,50,10,12,2,8,48,0x37B5,100,972,936,360,0,12103,5500,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0
+1818,EVENT_ALARM,Alarm,Imperfect Alarm,58,10647,0,0,0,0,1,1,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000,0,0,0,0
+1819,EVENT_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,252,96,61,41,66,38,40,55,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1820,EVENT_BIGFOOT,Bigfoot,Bigfoot,29,587,1,0,0,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1821,EVENT_DESERT_WOLF,Desert Wolf,Desert Wolf,103,9447,1,0,0,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1822,EVENT_DEVIRUCHI,Deviruchi,Deviruchi,64,2300,1,0,0,1,210,73,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1823,EVENT_FREEZER,Freezer,Freezer,94,9990,1,0,0,2,244,50,68,38,68,47,50,45,59,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1824,EVENT_GARM_BABY,Garm Baby,Baby Hatii,94,10016,1,0,0,1,238,61,62,43,69,61,55,61,64,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1825,EVENT_GOBLINE_XMAS,Christmas Goblin,Santa Goblin,25,1176,0,0,0,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1826,EVENT_MYST,Myst,Myst,39,879,1,0,0,1,68,21,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1827,EVENT_SASQUATCH,Sasquatch,Sasquatch,30,3163,0,0,0,1,250,30,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1828,EVENT_GULLINBURSTI,Gullinbrusti,Gullinbursti,20,20,0,0,0,1,59,13,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Thor Volcano (11.2)
-1829,SWORD_GUARDIAN,Sword Guardian,Sword Guardian,133,70000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1
-1830,BOW_GUARDIAN,Bow Guardian,Bow Guardian,132,63000,0,4392,3294,12,766,886,127,62,109,80,65,52,122,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1
-1831,SALAMANDER,Salamander,Salamander,138,80390,1,5919,7139,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,10,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1
-1832,IFRIT,Ifrit,Ifrit,146,6935000,1,6696000,4860000,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1
-1833,KASA,Kasa,Kasa,135,70128,1,5599,7709,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1
-1834,G_SALAMANDER,Salamander,Salamander,138,80390,1,0,0,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1835,G_KASA,Kasa,Kasa,135,70128,1,0,0,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1836,MAGMARING,Magmaring,Magmaring,110,13079,1,2536,1903,1,678,722,100,45,107,33,35,47,61,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1
-1837,IMP,Imp,Imp,129,36830,1,4594,3445,1,885,1091,56,75,66,83,65,88,72,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1
-1838,KNOCKER,Knocker,Knocker,126,43900,1,3690,3768,1,633,736,126,62,93,62,58,56,99,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1
-1839,BYORGUE,Byorgue,Byrogue,135,92544,1,7725,5543,2,793,934,120,13,114,86,70,65,81,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1
+1829,SWORD_GUARDIAN,Sword Guardian,Sword Master,133,70000,0,5850,3375,2,1127,129,122,62,122,87,54,65,155,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1
+1830,BOW_GUARDIAN,Bow Guardian,Bow Master,132,63000,0,5710,3294,12,1149,120,127,62,109,80,65,52,183,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1
+1831,SALAMANDER,Salamander,Salamander,138,80390,1,7694,7139,2,2299,600,141,68,189,105,92,85,198,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,20,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1
+1832,IFRIT,Ifrit,Ifrit,146,6935000,1,8704800,4860000,3,8063,3389,436,218,180,201,156,190,299,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,617,5500,6223,5000,616,2000,994,12000,2677,3000,2678,100,2679,100,1471,2400,1133,2000,2345,200,0,0,0,0,4430,1
+1833,KASA,Kasa,Kasa,135,70128,1,7278,7709,2,1506,305,104,70,111,74,65,78,162,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1
+1834,G_SALAMANDER,Salamander,Salamander,138,80390,1,0,0,2,2299,600,141,68,189,105,92,85,198,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1835,G_KASA,Kasa,Kasa,135,70128,1,0,0,2,1506,305,104,70,111,74,65,78,162,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1836,MAGMARING,Magmaring,Magmaring,110,13079,1,3042,1903,1,881,44,190,45,107,33,35,47,73,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1
+1837,IMP,Imp,Imp,129,36830,1,5972,3445,1,1239,406,56,75,66,83,65,88,101,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,100,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1
+1838,KNOCKER,Knocker,Knocker,126,43900,1,4796,3768,1,886,103,126,62,93,62,58,56,139,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1
+1839,BYORGUE,Byorgue,Byrogue,135,92544,1,10042,5543,2,1190,141,120,13,114,86,70,65,122,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1
// Additional Event Monsters
-1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,1,1,1,1,500,700,160,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,0,0,0,0,12239,3000
-1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,1,1,1,1,46,55,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,1,1,1,1,124,157,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,673,1000,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,1,1,1,1,240,320,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,1,1,1,1,423,507,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,673,1000,675,1000,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0
-1845,G_TREASURE_BOX_,Treasure Box,Treasure Box,98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500
-1846,DREAMMETAL,Dream Metal,Dream Metal,90,1499,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1847,EVENT_PORING,Poring,Poring,98,10000500,0,900000,900000,1,15000,20000,96,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,45000,0,900,900,2,1500,3000,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,1800,1800,1,3500,5000,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,2700,2700,1,4000,5500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,1,0,0,1,910,1128,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1840,GOLDEN_SAVAGE,Golden Savage,Golden Savage,99,500,1,1,1,1,650,200,160,99,0,1,1,50,144,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,12239,3000,0,0,0,0
+1841,G_SNAKE_,Snake Lord's Minion,Snake Lord's Minion,15,10,1,1,1,1,46,9,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1842,G_ANACONDAQ_,Snake Lord's Minion,Snake Lord's Minion,23,15,1,1,1,1,124,33,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7915,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1843,G_SIDE_WINDER_,Snake Lord's Minion,Snake Lord's Minion,43,18,1,1,1,1,240,80,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1844,G_ISIS_,Snake Lord's Minion,Snake Lord's Minion,47,25,1,1,1,1,423,84,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,1000,7915,1000,7916,1000,12715,500,0,0,0,0,0,0,0,0,0,0
+1845,G_TREASURE_BOX_,Treasure Box,Treasure Chest,98,500,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,12245,2500,0,0,0,0
+1846,DREAMMETAL,Dream Metal,Dream Metal,90,1499,0,1,1,1,1,1,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1848,EVENT_BAPHOMET,Baphomet,Baphomet,50,10000,0,900,900,3,1500,1500,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1849,EVENT_OSIRIS,Osiris,Osiris,60,125000,0,1800,1800,1,3500,1500,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1850,EVENT_ORCHERO,Orc Hero,Orc Hero,50,175000,0,2700,2700,1,4000,1500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1851,EVENT_MOBSTER,Mobster,Mobster,61,7991,1,0,0,1,910,218,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1852,G_EM_ANGELING,Angeling,Angeling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1853,G_EM_DEVILING,Deviling,Deviling,99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1854,E_MUKA,Muka,Muka,17,610,0,246,108,1,40,49,8,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1
@@ -930,241 +930,241 @@
1860,E_COCO,Coco,Coco,17,817,0,108,70,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1
1861,E_CHOCO,Choco,Choco,43,4278,0,1139,1139,1,315,402,8,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1
1862,E_MARTIN,Martin,Martin,18,1109,0,121,77,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1
-1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,0,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Cursed Abbey (11.3)
-1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1
-1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1
-1866,HELL_POODLE,Hell Poodle,Hellhound,115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1
-1867,BANSHEE,Banshee,Banshee,130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1
-1868,G_BANSHEE,Banshee,Banshee,130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1869,FLAME_SKULL,Flame Skull,Flame Skull,121,21276,1,2332,2890,1,767,902,93,40,111,90,60,70,99,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1
-1870,NECROMANCER,Necromancer,Necromancer,133,91304,1,5580,4185,1,706,1112,84,73,108,54,77,116,91,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1
-1871,FALLINGBISHOP,Fallen Bishop,Falling Bishop,138,5655000,1,2700000,1890000,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1
-1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,127,502000,1,0,0,1,643,795,98,55,99,90,52,55,89,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1873,BEELZEBUB,Beelzebub,Beelzebub,147,6805000,1,0,0,1,3500,5600,288,265,155,235,200,225,204,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1874,BEELZEBUB_,Beelzebub,Beelzebub,147,4805000,1,7050000,7050000,2,4200,8150,418,265,178,236,200,250,218,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,0,0,0,0,0,0,4145,1
-1875,TRISTAN_3RD,Tristan III,Tristan III,80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,118209,39011,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,4138,2702,1,1190,117,100,45,117,58,82,13,136,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,2886,10,0,0,0,0,4435,1
+1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3814,3087,9,1334,130,85,35,81,50,64,56,178,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,2887,100,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1
+1866,HELL_POODLE,Hell Poodle,Hellhound,115,17168,1,3334,1923,1,899,145,86,20,114,56,59,82,108,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1
+1867,BANSHEE,Banshee,Banshee,130,48666,1,5876,3500,1,1014,703,73,96,97,71,55,143,137,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1
+1868,G_BANSHEE,Banshee,Banshee,130,48666,1,0,0,1,1014,703,73,96,97,71,55,143,137,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1869,FLAME_SKULL,Flame Skull,Flame Skull,121,21276,1,2332,2890,1,1074,135,93,40,111,90,60,70,139,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1
+1870,NECROMANCER,Necromancer,Necromancer,133,91304,1,5980,5980,1,1359,1006,84,73,108,54,77,116,137,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1
+1871,FALLINGBISHOP,Fallen Bishop,Falling Bishop,138,5655000,1,3510000,1890000,1,4290,4636,274,382,186,165,95,226,273,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,608,3500,732,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1
+1872,BEELZEBUB_FLY,Hell Fly,Hell Fly,127,502000,1,0,0,1,900,152,98,55,99,90,52,55,125,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1873,BEELZEBUB,Beelzebub,Beelzebub,147,6805000,1,0,0,1,5250,2100,288,265,155,235,200,225,306,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1874,BEELZEBUB_,Beelzebub,Beelzebub,147,4805000,1,9165000,7050000,2,6666,4444,418,265,178,236,200,250,327,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,617,5500,607,5000,12030,5500,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,607,2750,0,0,0,0,4145,1
+1875,TRISTAN_3RD,Tristan III,Tristan III,80,43000,0,1,1,2,1503,260,25,30,5,10,10,69,84,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1876,E_LORD_OF_DEATH,Lord of the Dead,Lord of the Dead,99,99000000,0,141850,39011,3,4459,802,75,73,120,120,120,169,180,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1877,CRYSTAL_5,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1878,E_SHINING_PLANT,Shining Plant,Shining Plant,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0
-1879,ECLIPSE_P,Eclipse Pet,Eclipse,6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1878,E_SHINING_PLANT,Shining Plant,Mystic Plant,1,100,0,0,0,1,1,1,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0
+1879,ECLIPSE_P,Eclipse Pet,Eclipse Pet,6,1800,0,0,0,1,20,6,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Moscovia
-1880,WOOD_GOBLIN,Wood Goblin,Wood Goblin,81,5499,1,1106,1245,1,193,208,144,12,73,19,56,15,56,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0
-1881,LES,Les,Les,82,6216,1,1205,1356,1,270,300,123,30,63,20,35,25,52,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0
-1882,VAVAYAGA,Baba Yaga,Baba-Yaga,87,6498,1,1188,1337,2,282,353,63,60,69,45,30,60,51,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0
-1883,UZHAS,Uzhas,Uzhas,85,7140,1,1294,1455,1,271,306,49,8,69,14,41,30,55,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0
-1884,MAVKA,Mavka,Mavka,84,5421,1,1253,1530,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0
-1885,GOPINICH,Gopinich,Gopinich,97,1120500,1,714240,580320,3,1988,3849,355,121,127,102,143,102,152,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0
-1886,G_MAVKA,Mavka,Mavka,84,5421,1,0,0,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1880,WOOD_GOBLIN,Wood Goblin,Leshij,81,5499,1,1216,1245,1,212,15,144,12,73,19,56,15,67,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0
+1881,LES,Les,Lesavka,82,6216,1,1326,1356,1,297,30,123,30,63,20,35,25,62,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0
+1882,VAVAYAGA,Baba Yaga,Baba-Yaga,87,6498,1,1306,1337,2,310,71,63,60,69,45,30,60,61,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0
+1883,UZHAS,Uzhas,Kikimora,85,7140,1,1422,1455,1,298,35,49,8,69,14,41,30,66,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0
+1884,MAVKA,Mavka,Mavka,84,5421,1,1378,1530,7,289,60,98,58,65,31,50,35,97,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0
+1885,GOPINICH,Gopinich,Gopinch,97,1120500,1,857088,580320,3,2584,1861,355,121,127,102,143,102,182,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0
+1886,G_MAVKA,Mavka,Mavka,84,5421,1,0,0,7,289,60,98,58,65,31,50,35,97,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Additional Monsters
-1887,FREEZER_R,Freezer,Freezer,94,9990,1,0,0,2,388,438,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1888,GARM_BABY_R,Garm Baby,Baby Hatii,61,15199,0,90,90,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,900,900,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1890,GOPINICH_R,The Immortal Koshei,The Immortal Koshei,85,299321,0,900,900,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1891,G_RANDGRIS_,Valkyrie,Valkyrie,99,1567200,1,0,0,3,5560,9980,40,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1887,FREEZER_R,Freezer,Freezer,94,9990,1,0,0,2,604,50,68,38,68,47,50,45,59,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1888,GARM_BABY_R,Hatii Baby,Hatii Baby,61,15199,0,90,90,1,680,900,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1889,GARM_R,Marozka's Guard,Marozka's Guard,73,100000,0,990,900,3,990,1300,20,23,85,126,10,50,114,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1890,GOPINICH_R,Koschei the Immortal,Koschei the Immortal,85,599321,0,990,900,3,2055,4256,20,42,50,65,55,50,182,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1891,G_RANDGRIS_,Valkyrie,Valkyrie,141,1005000,1,0,0,3,6343,3206,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,0,0,0,0
1892,G_LOLI_RURI,Lolo Ruri,Lolo Ruri,109,15280,1,0,0,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1893,G_KNIGHT_OF_ABYSS,Knight of the Abyss,Abysmal Knight,122,23297,1,0,0,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1894,POURING,Pouring,Pouring,15,777,1,7,7,1,7,14,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6296,9000,6296,100,6296,100,909,3000,909,2000,909,2000,909,2000,0,0,0,0,909,2000
+1894,POURING,Pouring,Pouring,15,777,1,7,7,1,7,7,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,0,0,0,0
1895,EVENT_SEYREN,Seyren,Seyren Windsor,91,88902,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1896,EVENT_KATRINN,Katrinn,Kathryne Keyron,92,47780,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1897,EVENT_BAPHOMET_,Baphomet,Baphomet,81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1898,EVENT_ZOMBIE,Zombie,Zombie,12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// WoE Second Edition; Battlegrounds
-1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,133,70000,0,0,0,2,451,580,122,33,122,87,54,65,103,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,1,0,0,12,1840,2520,64,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1901,E_CONDOR,Condor,Condor,10,15,0,90,90,1,13,20,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1081,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1902,E_TREASURE1,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1903,E_TREASURE2,Treasure Box,Treasure Box,99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,1,415,256,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1905,BARRICADE,Barricade,Barricade,98,600500,1,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1906,BARRICADE_,Barricade,Barricade,98,600,1,0,0,1,0,0,160,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1909,OBJ_A,Food Storage,Food Storage,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1910,OBJ_B,Food Depot,Food Depot,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1914,OBJ_A2,Blue Crystal,Blue Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1915,OBJ_B2,Pink Crystal,Pink Crystal,90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1899,SWORD_GUARDIAN_,Sword Guardian,Sword Guardian,133,70000,0,0,0,2,677,129,122,33,122,87,54,65,155,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1900,BOW_GUARDIAN_,Archer Guardian,Archer Guardian,80,80404,1,0,0,12,2024,680,64,62,95,80,33,90,198,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1901,E_CONDOR,Condor,Condor,10,15,0,90,90,1,13,7,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1081,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1902,E_TREASURE1,Treasure Box,Treasure Chest,99,49,0,0,0,0,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1903,E_TREASURE2,Treasure Box,Treasure Chest,99,49,0,0,0,0,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1904,BOMBPORING,Bomb Poring,Bombring,28,1000000,1,415,256,1,120,200,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1905,BARRICADE,Barricade,Barricade,98,600500,1,0,0,1,0,0,0,0,1,17,1,80,151,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1906,BARRICADE_,Barricade,Barricade,98,600,1,0,0,1,0,0,160,99,1,17,1,80,151,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,1,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120500,1,0,0,0,1,1,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1909,OBJ_A,Food Storage,Food Storage,90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1910,OBJ_B,Food Depot,Food Depot,90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1911,OBJ_NEUTRAL,Neutrality Flag,Neutrality Flag,90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1912,OBJ_FLAG_A,Lion Flag,Lion Flag,90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1913,OBJ_FLAG_B,Eagle Flag,Eagle Flag,90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1914,OBJ_A2,Blue Crystal,Blue Crystal,90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1915,OBJ_B2,Pink Crystal,Pink Crystal,90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Dimentional Gorge (12.1)
-1916,MOROCC,Satan Morroc,Satan Morroc,151,7000000,1,0,0,2,3560,6200,400,65,165,182,180,225,180,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0
-1917,MOROCC_,Wounded Morroc,Wounded Morroc,151,5000000,1,4050000,3042000,2,3020,5900,425,65,165,185,200,245,180,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0
-1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,4392,3294,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0
-1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,5094,3821,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0
-1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,5220,3780,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0
-1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,4608,4056,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0
-1922,G_MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,0,0,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1923,G_MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,0,0,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1924,G_MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,0,0,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1925,G_MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,0,0,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1916,MOROCC,Satan Morroc,Satan Morroc,151,7000000,1,0,0,2,5340,2640,400,65,165,182,180,225,270,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0
+1917,MOROCC_,Wounded Morroc,Wounded Morroc,151,5000000,1,5265000,3042000,2,4530,2880,425,65,165,185,200,245,270,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0
+1918,MOROCC_1,Incarnation of Morroc,Incarnation of Morroc,132,63900,1,5710,3294,1,1901,145,199,35,126,91,63,61,114,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0
+1919,MOROCC_2,Incarnation of Morroc,Incarnation of Morroc,132,64922,1,6622,3821,1,1625,159,92,5,121,86,71,65,113,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0
+1920,MOROCC_3,Incarnation of Morroc,Incarnation of Morroc,133,94800,1,6786,3780,2,1218,363,111,37,102,59,55,82,147,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0
+1921,MOROCC_4,Incarnation of Morroc,Incarnation of Morroc,134,77389,1,5990,4056,1,1235,599,109,54,114,88,62,97,164,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0
+1922,G_MOROCC_1,Incarnation of Morroc,Shadow of Morroc,132,63900,1,0,0,1,1901,145,199,35,126,91,63,61,114,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1923,G_MOROCC_2,Incarnation of Morroc,Shadow of Morroc,132,64922,1,0,0,1,1625,159,92,5,121,86,71,65,113,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1924,G_MOROCC_3,Incarnation of Morroc,Shadow of Morroc,133,94800,1,0,0,2,1218,363,111,37,102,59,55,82,147,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1925,G_MOROCC_4,Incarnation of Morroc,Shadow of Morroc,134,77389,1,0,0,1,1235,599,109,54,114,88,62,97,164,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// God Item Creation (WoE SE); Catacombs
-1926,JAKK_H,Jakk,Jakk,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12396,1000,6298,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1927,WHISPER_H,Whisper,Whisper,1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12397,1000,6299,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1929,BAPHOMET_I,Great Demon Baphomet,Unsealed Baphomet,98,4520500,1,4068000,2268000,2,4200,6500,190,45,140,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1
-1930,PIAMETTE,Piamette,Piamette,90,3000500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567700,1,0,0,3,6500,9800,40,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,1,0,0,1,1,2,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,1,0,0,1,1666,2609,88,55,30,57,56,126,128,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1935,RED_FLOWER,Red Flower,Red Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1937,CONSTANT_,Constant,Constant,108,11000,0,0,0,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0
-1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0
-1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0
-1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0
-1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0
-1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0
-1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0
-1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0
-1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0
-1947,PIAMETTE_,Piamette,Piamette,90,500500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1948,G_YGNIZEM,Ygnizem,Egnigem Cenia,136,44327,1,0,0,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1926,JAKK_H,Jakk,Shameless Jakk,1,1000,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12192,2000,535,10000,6298,5000,12192,1000,535,5000,12130,1000,11550,1000,0,0,0,0,0,0
+1927,WHISPER_H,Whisper,Whisper,1,1000,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12192,2000,6299,5000,535,10000,12130,2000,11550,1000,0,0,0,0,0,0,0,0,0,0
+1928,DEVIRUCHI_H,Deviruchi,Deviruchi,46,500,0,0,0,1,5,5,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1929,BAPHOMET_I,Great Demon Baphomet,Unsealed Baphomet,98,4520500,1,4881600,2268000,2,5460,2300,190,45,140,152,5,85,240,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1
+1930,PIAMETTE,Piamette,Piamette,90,3000500,1,0,0,2,1650,1200,56,35,1,66,5,99,144,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1931,WISH_MAIDEN,Wish Maiden,Wish Maiden,98,3567700,1,0,0,3,8450,3300,40,42,100,120,30,120,264,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1932,GARDEN_KEEPER,Garden Keeper,Garden Keeper,80,100,1,0,0,1,1,1,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1933,GARDEN_WATCHER,Garden Watcher,Garden Watcher,81,300000,1,0,0,1,1833,943,88,55,30,57,56,126,154,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1934,BLUE_FLOWER,Blue Flower,Blue Flower,98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1935,RED_FLOWER,Red Flower,Red Flower,98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1936,YELL_FLOWER,Yellow Flower,Yellow Flower,98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1937,CONSTANT_,Constant,Constant,108,11000,0,0,0,1,858,144,92,82,126,98,62,57,109,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1938,TREASURE_BOX41,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,10,658,500,604,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0
+1939,TREASURE_BOX42,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,10,658,500,604,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0
+1940,TREASURE_BOX43,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,10,658,500,604,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0
+1941,TREASURE_BOX44,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,10,658,500,604,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0
+1942,TREASURE_BOX45,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,10,658,500,604,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0
+1943,TREASURE_BOX46,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,10,658,500,604,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0
+1944,TREASURE_BOX47,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,10,658,500,604,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0
+1945,TREASURE_BOX48,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,10,658,500,604,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0
+1946,TREASURE_BOX49,Treasure Chest,Treasure Chest,99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,10,658,500,604,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0
+1947,PIAMETTE_,Piamette,Piamette,90,500500,1,0,0,2,1650,1200,56,35,1,66,5,99,144,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1948,G_YGNIZEM,Ygnizem,Ygnizem,136,40327,1,0,0,1,1985,328,224,8,144,92,86,69,149,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Battlegrounds Guardians
-1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,1,0,0,2,7590,9140,96,33,110,40,5,65,125,65,14,16,2,7,80,0x2085,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,1,0,0,12,1840,2520,64,62,95,80,5,90,165,55,14,16,2,7,80,0x2085,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1949,B_S_GUARDIAN,Camp Guardian,Camp Guardian,86,457599,1,0,0,2,8349,1550,96,33,110,40,5,65,150,65,14,16,2,7,80,0x2085,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1950,B_B_GUARDIAN,Camp Guardian,Camp Guardian,80,241212,1,0,0,12,2024,680,64,62,95,80,5,90,198,55,14,16,2,7,80,0x2085,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Ravies Sister's 'Valyrie's Gift' monsters.
-1951,CRYSTAL_6,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,200
-1952,CRYSTAL_7,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,250
-1953,CRYSTAL_8,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,300
-1954,CRYSTAL_9,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100
+1951,CRYSTAL_6,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0
+1952,CRYSTAL_7,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0
+1953,CRYSTAL_8,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0
+1954,CRYSTAL_9,Crystal,Crystal,1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0
// ?
-1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,1,1,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,9000,12281,2000,12281,1000,721,2000,723,2000,727,2000,732,100,0,0,0,0,719,2000
+1955,TREASURE_BOX_I,Treasure Chest,Treasure Chest,1,40,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12396,1000,12397,1000,6424,1000,909,5000,538,1000,530,1000,0,0,0,0,0,0,0,0
// Endless Tower
-1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,5000000,1,3600000,1800000,2,5400,8600,410,40,190,60,80,220,264,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1
-1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,2400500,1,1430000,1215000,12,4400,8000,171,66,90,70,40,160,190,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1
-1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,1,0,0,12,4040,4720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1956,NAGHT_SIEGER,Naght Sieger,Naght Sieger,99,5000000,1,4320000,1800000,2,7020,3200,410,40,190,60,80,220,317,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1
+1957,ENTWEIHEN,Entweihen Crothen,Entweihen Crothen,90,2400500,1,1573000,1215000,12,4840,3600,171,66,90,70,40,160,228,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1
+1958,G_ENTWEIHEN_R,Thorny Skeleton,Thorny Skeleton,89,5400000,1,0,0,12,4444,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1959,G_ENTWEIHEN_H,Thorn of Recovery,Thorn of Recovery,89,350000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1960,G_ENTWEIHEN_M,Thorn of Magic,Thorn of Magic,89,5400000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1961,G_ENTWEIHEN_S,Thorn of Purification,Thorn of Purification,89,5400000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Additional Monsters
-1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,1,0,0,1,13,20,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1962,ANTONIO_,Christmas Thief,Christmas Thief,10,15,1,0,0,1,13,7,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1963,P_CHUNG_E,New Year Doll,New Year Doll,49,23900,0,2156,894,1,460,590,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1964,NIGHTMARE_T,Nightmare,Nightmare,30,2000,0,461,348,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1968,E_STROUF,Strouf,Strouf,48,11990,0,5544,3776,1,200,1250,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1
-1969,E_MARC,Marc,Marc,36,6900,0,1778,1125,1,220,280,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1
-1970,E_OBEAUNE,Obeune,Obeune,31,3952,0,1159,733,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1
-1971,E_VADON,Vadon,Vadon,19,1017,0,243,153,1,74,85,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1
-1972,E_MARINA,Marina,Marina,21,2087,0,392,252,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1
-1973,E_PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0
+1965,M_WILD_ROSE,Wild Rose,Wild Rose,38,4000,50,0,0,1,100,45,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1966,M_DOPPELGANGER,Doppelganger,Doppelganger,72,7800,200,0,0,1,220,50,30,20,0,38,30,35,78,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1967,M_YGNIZEM,Ygnizem,Egnigem Cenia,79,7800,200,0,0,1,220,50,30,20,0,38,30,35,78,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1968,E_STROUF,Strouf,Strouf,48,11990,0,5544,3776,1,200,1050,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1
+1969,E_MARC,Marc,Marc,36,6900,0,1778,1125,1,220,60,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1
+1970,E_OBEAUNE,Obeune,Obeaune,31,3952,0,1159,733,1,141,24,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1
+1971,E_VADON,Vadon,Vadon,19,5000,0,243,153,1,74,11,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1
+1972,E_MARINA,Marina,Marina,21,2087,0,392,252,1,84,22,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1
+1973,E_PORING,Poring,Poring,99,10,0,2,1,1,7,3,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,644,10000,603,10000,617,10000,616,5000,909,5000,0,0,0,0,0,0,0,0,0,0
// WoE SE Guild Dungeon
-1974,BANSHEE_MASTER,Banshee Master,Banshee Master,118,20320,0,3402,2556,2,599,897,87,94,121,58,48,122,60,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4450,1
-1975,BEHOLDER_MASTER,Beholder Master,Beholder Master,106,10135,0,2430,1845,6,471,559,73,62,103,67,42,69,69,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1
-1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,113,15800,0,2700,2070,1,645,737,113,44,110,55,65,57,95,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1
-1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,107,11500,0,2610,1980,1,672,784,134,65,105,63,86,58,56,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1
-1978,HELL_APOCALIPS,Hell Apocalips,Hell Vesper,121,22100,0,3348,3020,2,780,902,155,43,135,62,80,48,89,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1
-1979,ZAKUDAM,Zukadam,Zakudam,115,17200,0,2880,2160,3,650,780,106,92,122,66,70,61,66,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1
-1980,KUBLIN,Kubkin,Kublin,85,633600,0,90000,90000,1,1180,1400,22,10,85,81,25,40,55,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0
+1974,BANSHEE_MASTER,Banshee Master,Banshee Master,118,20320,0,4422,2556,2,839,298,87,94,121,58,48,122,84,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,2135,20,0,0,0,0,4450,1
+1975,BEHOLDER_MASTER,Beholder Master,Beholder Master,106,10135,0,2916,1845,6,612,88,73,62,103,67,42,69,83,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1
+1976,COBALT_MINERAL,Cobalt Mineral,Cobalt Mineral,113,15800,0,3510,2070,1,903,92,113,44,110,55,65,57,133,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1
+1977,HEAVY_METALING,Heavy Metaling,Heavy Metaling,107,11500,0,3132,1980,1,874,112,134,65,105,63,86,58,67,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1
+1978,HELL_APOCALIPS,Hell Apocalips,Hell Vesper,121,22100,0,4352,3020,2,1092,122,155,43,135,62,80,48,125,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1
+1979,ZAKUDAM,Zukadam,Zakudam,115,17200,0,3744,2160,3,910,130,106,92,122,66,70,61,92,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1
+1980,KUBLIN,Kubkin,Kublin,85,633600,0,99000,90000,1,1298,220,22,10,85,81,25,40,66,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,608,0,732,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0
// Orc Dungeon Instance
-1981,I_HIGH_ORC,Safeguard Chief,Safeguard Chief,81,44193,1,0,0,1,489,639,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1982,I_ORC_ARCHER,Orc Sniper,Orc Sniper,78,54835,1,0,0,9,460,503,67,31,55,32,24,30,125,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1983,I_ORC_SKELETON,Depraved Orc Spirit,Depraved Orc Spirit,87,80087,0,0,0,1,496,759,23,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1984,I_ORC_LADY,Shaman Cargalache,Shaman Cargalache,80,50058,0,0,0,1,423,812,56,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1981,I_HIGH_ORC,Safeguard Chief,Orc Elite Guard,81,44193,1,0,0,1,538,150,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1982,I_ORC_ARCHER,Orc Sniper,Orc Bowman,78,54835,1,0,0,9,506,43,67,31,55,32,24,30,150,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1983,I_ORC_SKELETON,Depraved Orc Spirit,Orc Undead,87,80087,0,0,0,1,546,263,23,30,1,31,41,93,80,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1984,I_ORC_LADY,Shaman Cargalache,Orc Lady,80,50058,0,0,0,1,465,389,56,10,60,35,52,18,95,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Another World (13.1)
-1985,DANDELION,Dandelion Member,Dandelion Member,37,45000,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1986,TATACHO,Tatacho,Tatacho,128,33336,1,3762,3092,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1
-1987,CENTIPEDE,Centipede,Centipede,125,24992,1,3201,2711,2,601,713,143,25,133,71,69,39,86,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1
-1988,NEPENTHES,Nepenthes,Nepenthes,114,15099,1,2599,1793,7,602,727,25,5,94,32,41,39,150,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1
-1989,HILLSRION,Hillslion,Hillthrion,123,21422,1,2909,1698,1,450,552,83,11,110,69,72,41,102,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7054,4850,7938,1000,0,0,0,0,4453,1
-1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,137,1900944,1,142293,81178,2,1552,2326,449,43,191,66,102,49,131,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1
-1991,TENDRILRION,Tendrillion,Tendrillion,126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1
-1992,CORNUS,Cornus,Cornus,120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1
-1993,NAGA,Naga,Naga,117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1
-1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1
-1995,PINGUICULA,Pinguicula,Pinguicula,105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1
-//1996,BACSOJIN_T,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1997,G_TATACHO,Tatacho,Tatacho,128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1998,G_HILLSRION,Hillslion,Hillslion,123,21422,1,0,0,1,450,552,83,15,110,69,72,41,102,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,118,20667,1,2930,2003,2,521,609,98,17,103,62,66,27,77,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1
+1985,DANDELION,Dandelion Member,Dandelion Member,37,45000,0,0,0,1,305,55,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1986,TATACHO,Tatacho,Tatacho,128,33336,1,4890,3092,2,1018,72,151,14,119,33,70,56,109,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1
+1987,CENTIPEDE,Centipede,Centipede,125,24992,1,4160,2711,2,841,112,143,25,133,71,69,39,120,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1
+1988,NEPENTHES,Nepenthes,Nepenthes,114,15099,1,3378,1793,7,843,125,25,5,94,32,41,39,210,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1
+1989,HILLSRION,Hillslion,Hillslion,123,21422,1,3782,1698,1,630,102,83,11,110,69,72,41,143,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7938,1200,7054,4850,0,0,0,0,4453,1
+1990,HARDROCK_MOMMOTH,Hardrock Mammoth,Hardrock Mammoth,137,1900944,1,184980,81178,2,2328,774,449,43,191,66,102,49,197,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1
+1991,TENDRILRION,Tendrillion,Tendrillion,126,1397451,1,131004,75299,2,1403,1320,132,123,144,66,77,181,203,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1
+1992,CORNUS,Cornus,Cornus,120,20722,1,8112,4004,2,403,522,66,95,51,47,59,99,130,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1
+1993,NAGA,Naga,Naga,117,21099,1,3826,2212,3,685,102,72,5,112,65,71,32,99,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1
+1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,2946,1806,1,589,111,59,55,88,89,55,32,143,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,15043,10,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1
+1995,PINGUICULA,Pinguicula,Pinguicula,105,13058,1,2920,2662,1,546,322,46,77,67,60,64,107,77,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1
+1996,BACSOJIN_T,White Lady,White Lady,97,720500,1,801792,542880,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1997,G_TATACHO,Tatacho,Tatacho,128,33336,1,0,0,2,1018,72,151,14,119,33,70,56,109,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1998,G_HILLSRION,Hillslion,Hillslion,123,21422,1,0,0,1,630,102,83,15,110,69,72,41,143,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1999,CENTIPEDE_LARVA,Centipede Larva,Centipede Larva,118,20667,1,3808,2003,2,729,88,98,17,103,62,66,27,108,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1
// Additional Monsters
-//2000,M_GAMEMASTER,Male Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2001,F_GAMEMASTER,Female Game Master,Game Master,50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2002,T_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,50,8000,0,3584,1589,1,585,813,47,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2003,T_BACSOJIN,White Lady,White Lady,97,720500,1,0,0,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0
-//2004,T_WICKED_NYMPH,Evil Nymph,Evil Nymph,63,16029,0,0,0,2,399,1090,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0
-//2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0
-//2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0
-//2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0
-2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,90000,90000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,90000,90000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2010,G_MAJORUROS,Ox,Ox,66,500000,0,9,9,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2011,E_GHOUL,Ghoul,Ghoul,40,99999,0,979,560,1,420,500,100,20,1,20,29,0,45,20,10,12,1,1,49,0x120,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2012,E_ZOMBIE,Zombie,Zombie,15,99999,0,45,30,1,67,79,100,10,1,8,7,0,15,0,10,12,1,1,29,0x120,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2000,M_GAMEMASTER,Male Game Master,Male Game Master,50,7000,250,0,0,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,0x0081,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2001,F_GAMEMASTER,Female Game Master,Female Game Master,50,7000,250,0,0,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,0x0081,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2002,T_SPRING_RABBIT,Talisman Ghost,Talisman Ghost,50,8000,0,3584,1589,1,585,228,47,21,45,61,5,15,77,90,10,12,1,2,42,0x0083,160,1120,552,0,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2003,T_BACSOJIN,Talisman Ghost,Talisman Ghost,97,720500,1,0,0,2,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0
+2004,T_WICKED_NYMPH,Talisman Ghost,Talisman Ghost,63,16029,0,0,0,2,399,691,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0
+2005,T_PLASMA_B,Plasma,Plasma,44,8200,0,0,0,3,300,400,0,30,1,30,5,73,90,30,10,12,0,0,81,0x3885,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0
+2006,T_PLASMA_P,Plasma,Plasma,49,5900,0,0,0,3,300,400,0,30,1,30,5,54,90,30,10,12,0,0,87,0x3885,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0
+2007,T_PLASMA_R,Plasma,Plasma,43,5700,0,0,0,3,300,400,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0
+2008,WOOMAWANG,Woomawang,Woomawang,82,4000000,0,99000,90000,3,8800,2000,40,40,60,110,200,250,199,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2009,WOOMAWANG_,Woomawang,Woomawang,82,2000000,0,99000,90000,1,17600,4000,40,40,60,110,200,250,199,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2010,G_MAJORUROS,Ox,Ox,66,500000,0,9,9,1,1260,2000,25,15,65,50,20,20,94,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2011,E_GHOUL,Tenacious Ghoul,Tenacious Ghoul,40,99999,0,979,560,1,420,80,100,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,12192,100,535,0,535,0,0,0,0,0,4110,1
+2012,E_ZOMBIE,Tenacious Zombie,Tenacious Zombie,15,99999,0,45,30,1,67,12,100,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,6,938,1000,958,50,12192,100,535,0,535,0,0,0,0,0,4038,1
// Enter The Unknown (13.2)
-2013,DRACO,Draco,Draco,114,20099,1,1995,1205,1,556,666,56,3,21,58,47,34,71,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1
-2014,DRACO_EGG,Draco Egg,Draco Egg,101,100000,1,2000,1500,0,1,2,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1
-2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,113,17002,1,2101,2419,1,251,640,59,35,89,55,55,95,66,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1
-2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,121,33209,1,4155,4155,1,616,1066,23,8,95,61,25,25,86,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,2787,10,0,0,0,0,0,0,0,0,4443,1
-2017,RATA,Rata,Rata,131,58299,1,7787,6119,1,720,931,81,46,101,74,71,51,98,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1
-2018,DUNEYRR,Duneyrr,Duneyrr,135,63342,1,8601,7298,1,833,1134,144,28,133,69,72,55,110,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1
-2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,144,388933,1,7308,5481,1,788,864,226,37,148,72,93,58,99,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1
-2020,RHYNCHO,Rhyncho,Rhyncho,139,337220,1,6107,4579,1,575,776,68,12,119,98,62,48,79,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1
-2021,PHYLLA,Phylla,Phylla,139,345560,1,6107,4579,10,550,726,61,14,107,85,60,58,101,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1
-2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggur's Shadow,117,3452000,0,4320000,3510000,2,4040,7880,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,0,0,0,0,0,0,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1
-2023,DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1
-2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,133,45739,1,6553,3595,1,871,974,359,12,189,25,125,45,69,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1
-//2025,MYSTCASE_EVENT,Mystcase,Mystcase,10,10,0,77,77,1,10,20,1,99,1,1,1,1,48,1,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,0,0,0,0,573,10
-2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552500,0,45000,22500,1,3050,4300,40,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000
-2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,0,0,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2013,DRACO,Draco,Draco,114,20099,1,2594,1205,1,778,110,56,3,21,58,47,34,99,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1
+2014,DRACO_EGG,Draco Egg,Draco Egg,101,100000,1,2400,1500,0,1,1,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1
+2015,PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,113,17002,1,2730,2419,1,451,789,59,35,89,55,55,95,92,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1
+2016,AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,121,33209,1,5402,4155,1,862,450,23,8,95,61,25,25,120,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,1061,2500,2787,10,0,0,0,0,0,0,0,0,4443,1
+2017,RATA,Rata,Rata,131,58299,1,10122,6119,1,1080,211,81,46,101,74,71,51,147,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1
+2018,DUNEYRR,Duneyrr,Duneyrr,135,63342,1,11180,7298,1,1250,301,144,28,133,69,72,55,165,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1
+2019,ANCIENT_TREE,Ancient Tree,Ancient Tree,144,388933,1,9500,5481,1,1182,76,226,37,148,72,93,58,149,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1
+2020,RHYNCHO,Rhyncho,Rhyncho,139,337220,1,7938,4579,1,863,201,68,12,119,98,62,48,119,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1
+2021,PHYLLA,Phylla,Phylla,139,345560,1,7938,4579,10,825,176,61,14,107,85,60,58,152,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1
+2022,S_NYDHOG,Nidhoggr's Shadow,Nidhoggur's Shadow,117,3452000,0,5616000,3510000,2,6656,3840,60,75,1,34,62,236,263,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,617,5500,617,5000,616,2000,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1
+2023,DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,9918,5721,1,1353,157,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1
+2024,BRADIUM_GOLEM,Bradium Golem,Bradium Golem,133,45739,1,8518,3595,1,1307,103,559,12,189,25,125,45,104,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1
+2025,MYSTCASE_EVENT,Wild Gift Box,Wild Gift Box,10,10,0,77,77,1,10,10,1,99,1,1,1,1,48,1,10,12,1,0,20,0x0081,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,573,10,0,0,0,0
+2026,DANDELION_,Runaway Dandelion Member,Runaway Dandelion Member,90,552500,0,49500,22500,1,3355,1250,40,35,1,66,66,45,106,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,902,2000,0,0,0,0
+2027,G_DARK_SHADOW,Dark Shadow,Dark Shadow,147,434300,1,0,0,1,1353,157,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Additional Monsters
//2028,E_MINOROUS,Minorous,Minorous,1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2029,E_MINOROUS_,Minorous,Minorous,10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1
-2030,HIDEN_PRIEST,Hiden Priest,Hiden Priest,90,240500,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x37B5,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2031,DANDELION_H,Dandelion,Dandelion,80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x37B5,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,99999,0,0,0,1,3000,6000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x120,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,100,0,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2035,NIHILITY_ZEM,Nihility Zem,Nihility Zem,90,200500,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie Randgris,98,11780,0,0,0,1,780,930,16,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2037,VALKYRIE_A,Valkyrie Randgris,Valkyrie Randgris,90,5500,15,0,0,1,10,160,16,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2038,VALKYRIE_B,Valkyrie Randgris,Valkyrie Randgris,90,10500,15,0,0,1,300,450,16,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,570,950,56,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,950,1146,48,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1160,1440,48,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2030,HIDEN_PRIEST,Hiden Priest,Hidden Priest,90,240500,0,0,0,2,1430,683,0,30,1,32,40,100,98,40,10,12,2,6,89,0x37B5,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2031,DANDELION_H,Dandelion,Dandelion Executive,80,120000,0,0,0,1,336,305,0,10,1,19,32,0,76,20,10,12,1,7,47,0x37B5,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2032,GUARDIAN_FOREST,Forest Guardian,Forest Guardian,50,99999,0,0,0,1,3000,3000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x308D,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2033,GOLDEN_TULIP,Golden Tulip,Golden Tulip,1,100,0,0,0,1,1,1,160,99,0,0,0,0,0,0,7,12,0,3,22,0x0,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2034,M_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,9,164,15,0,0,1,500,100,0,0,1,9,9,5,40,40,10,12,0,2,23,0x0081,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2035,NIHILITY_ZEM,Nihility Zem,Stone of Futility,90,200500,0,0,0,0,1,1,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2036,VALKYRIE_N,Valkyrie Randgris,Valkyrie,98,11780,0,0,0,1,1014,150,16,20,1,24,39,0,86,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2037,VALKYRIE_A,Valkyrie,Valkyrie,90,5500,15,0,0,1,11,150,16,20,1,20,40,0,24,20,10,12,1,8,66,0x0081,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2038,VALKYRIE_B,Valkyrie,Valkyrie,90,10500,15,0,0,1,330,150,16,40,1,20,80,0,96,20,10,12,1,8,66,0x0081,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2039,EXECUTIONER_R,Executioner,Executioner,65,28980,0,0,0,2,599,380,56,35,64,85,40,25,97,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2040,TIRFING_R,Tirfing,Ogretooth,71,29900,0,0,0,1,1045,196,48,35,58,87,55,35,158,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2041,MYSTELTAINN_R,Mysteltainn,Mysteltainn,76,33350,0,0,0,2,1276,280,48,30,77,139,80,35,191,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Mechanic Fixed Autonomous Weapon Platforms
-2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2043,MAGICDECOY_FIRE,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2044,MAGICDECOY_WATER,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2045,MAGICDECOY_EARTH,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2046,MAGICDECOY_WIND,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2042,SILVERSNIPER,Silver Sniper,Silver Sniper,100,4500,0,0,0,9,390,0,80,10,10,60,10,10,120,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2043,MAGICDECOY_FIRE,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2044,MAGICDECOY_WATER,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2045,MAGICDECOY_EARTH,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2046,MAGICDECOY_WIND,Magic Decoy,Magic Decoy,100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Additional Monsters
-2047,W_NAGA,Naga,Naga,99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0
-2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,99,8780,0,0,0,1,536,656,24,5,1,23,22,1,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0
-2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3895,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,99,33220,0,0,0,1,421,516,13,12,1,23,19,8,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2052,E_DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,2010,2010,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,1005,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1
-//2053,NC_DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1040,1880,72,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,998,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1
+2047,W_NAGA,Naga,Naga,99,46708,0,0,0,3,640,113,61,15,113,42,30,18,146,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0
+2048,W_PINGUICULA_D,Dark Pinguicula,Dark Pinguicula,99,8780,0,0,0,1,697,120,24,5,1,23,22,1,107,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0
+2049,W_BRADIUM_GOLEM,Bradium Golem,Bradium Golem,99,45200,0,0,0,1,936,166,125,18,0,10,82,2,72,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2050,W_AQUA_ELEMENTAL,Aqua Elemental,Aqua Elemental,99,33220,0,0,0,1,547,95,13,12,1,23,19,8,92,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2051,E_BAPHOMET,Baphomet,Baphomet,1,1,0,0,0,1,1,1,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2052,E_DARKLORD,Dark Lord,Dark Lord,1,1,0,0,0,1,1,1,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,1005,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2053,NC_DIMIK,Dimik,Dimik,77,10000,0,0,0,5,1144,840,72,28,15,35,40,15,144,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,999,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1
//2054,E_BATHORY,Bathory,Bathory,86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2055,E_INCUBUS,Incubus,Incubus,75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2056,E_ZHERLTHSH,Zherlthsh,Zealotus,63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2057,E_CRAMP,Suspicious Mouse,Strange Mouse,1,4720,0,0,0,1,1,2,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2058,M_MIMIC,Mimic,Mimic,51,6120,182,0,0,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,0x120,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2059,M_DISGUISE,Disguise,Disguise,55,7543,180,0,0,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,0x120,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2060,M_ALICE,Alice,Alice,62,10000,221,0,0,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,0x120,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2057,E_CRAMP,Suspicious Mouse,Sticky Rat,1,4720,0,0,0,1,1,1,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2058,M_MIMIC,Mimic,Mimic,51,6120,182,0,0,1,800,150,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2059,M_DISGUISE,Disguise,Disguise,55,7543,180,0,0,2,526,167,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3885,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2060,M_ALICE,Alice,Alice,62,10000,221,0,0,1,700,150,5,5,64,64,42,85,100,130,10,12,1,7,60,0x0091,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2061,E_STAPO,Stapo,Stapo,23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1
//2062,E_POPORING,Poporing,poporing,14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1
//2063,E_DROPS,Drops,Drops,3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1
@@ -1174,224 +1174,224 @@
2067,E_ANOPHELES_,Anopheles,Anopheles,3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x120,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1
// Brasilis
-2068,BOITATA,Boitata,Boitata,93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0
-2069,IARA,Iara,Iara,79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0
-2070,PIRANHA,Piranha,Piranha,75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0
-2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0
-2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0
-2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0
-2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0
+2068,BOITATA,Boitata,Boitata,93,1283990,1,89146,77950,2,1378,962,32,66,140,99,30,109,120,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0
+2069,IARA,Iara,Iara,79,5890,1,1176,890,1,188,99,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0
+2070,PIRANHA,Piranha,Piranha,75,4522,1,988,1023,1,200,41,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0
+2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1112,1120,1,231,57,33,44,68,51,50,35,80,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0
+2072,JAGUAR,Jaguar,Jaguar,71,3914,1,792,512,1,211,42,44,15,69,30,45,5,71,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0
+2073,TOUCAN,Toucan,Toucan,70,3640,1,692,544,1,174,35,12,12,54,14,40,35,48,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0
+2074,CURUPIRA,Curupira,Curupira,68,3096,1,652,450,1,147,35,42,12,32,23,38,20,50,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0
// Event MVP
-2075,E_VADON_X,Ragunta,Ragunta,150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000
+2075,E_VADON_X,Vadon,Vadon,1,700,0,32000,26000,5,4620,7220,42,32,200,1,30,35,222,32,10,12,2,0,20,0x120,150,1632,432,540,0,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,4049,1
// Additional Monsters
-2076,S_WIND_GHOST,Shadow of Deception,Shadow of Deception,105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2077,S_SKOGUL,Shadow of Illusion,Shadow of Illusion,105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2078,S_SUCCUBUS,Shadow of Pleasure,Shadow of Pleasure,105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2079,CRYSTAL_H,Crystal,Crystal,77,7777777,1,3777777,3777777,0,17777,25554,77,77,1,7,7,77,77,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-//2080,CRYSTAL_L,Crystal,Crystal,7,77,1,7,7,0,7,14,7,7,1,7,7,7,7,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2082,G_PIRANHA,Piranha,Piranha,75,4522,1,0,0,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2076,S_WIND_GHOST,Shadow of Deception,Shadow of Deception,105,190800,1,0,0,1,601,495,64,51,62,44,25,105,102,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2077,S_SKOGUL,Shadow of Illusion,Shadow of Illusion,105,244400,1,0,0,1,1183,256,72,15,100,88,63,99,114,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2078,S_SUCCUBUS,Shadow of Pleasure,Shadow of Pleasure,105,206660,1,0,0,1,1144,324,76,48,100,70,45,110,122,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2079,CRYSTAL_H,Mother Crystal,Mother Crystal,77,7777777,1,4155554,3777777,0,19555,7777,77,77,1,7,7,77,92,77,0,0,2,0,60,0x3695,177,1152,1152,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2080,CRYSTAL_L,Large Crystal,Large Crystal,7,77,1,7,7,0,7,7,7,7,1,7,7,7,7,77,0,0,2,0,60,0x3695,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2081,E_HYDRA,Suspicious Hydra,Strange Hydra,34,854,1,0,0,7,1,1,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2082,G_PIRANHA,Piranha,Piranha,75,4522,1,0,0,1,200,41,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// El Dicastes (13.3)
-2083,HORN_SCARABA,Scaraba,One-Horned Scaraba,130,51100,1,5220,4011,1,633,724,135,20,44,59,55,21,71,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1
-2084,HORN_SCARABA2,Scaraba,Two-Horned Scaraba,134,58900,1,5780,4549,1,690,795,150,38,44,68,72,45,84,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1
-2085,ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,6330,5255,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1
-2086,RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,6990,5995,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,2,12735,10,15000,10,993,2,0,0,0,0,0,0,0,0,4505,1
-2087,QUEEN_SCARABA,Queen Scaraba,Scaraba Queen,140,2441600,1,410220,212200,3,1889,3129,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,0,0,0,4507,1
-2088,HORN_SCARABA_EGG,Scaraba Egg,Scaraba Egg,125,63000,1,4000,3000,0,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2089,HORN_SCARABA2_EGG,Scaraba Egg,Scaraba Egg,126,66000,1,4000,3000,0,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2090,ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,127,69000,1,4000,3000,0,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2091,RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,128,72000,1,4000,3000,0,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,10,0,0,0,0,0,0,0,0,0,0,0,0
-2092,DOLOMEDES,Dolomedes,Dolomedes,132,54591,1,5155,5155,3,677,963,112,52,149,34,82,55,95,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,2,12738,10,6224,500,1984,2,0,0,0,0,4506,1
-2093,BOTARING,Botaring,Botaring,15,15,1,7,7,2,20,40,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,0,0,0,0,603,500
+2083,HORN_SCARABA,Scaraba,Uni Horn Scaraba,130,51100,1,5220,4011,1,886,91,135,20,44,59,55,21,99,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1
+2084,HORN_SCARABA2,Scaraba,Horn Scaraba,134,58900,1,5780,4549,1,1935,105,150,38,44,68,72,45,126,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1
+2085,ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,6330,5255,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1
+2086,RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,6990,5995,1,1645,112,250,70,90,66,145,52,168,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,10,12735,10,15000,100,993,100,0,0,0,0,0,0,0,0,4505,1
+2087,QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,140,2441600,1,533286,212200,3,2834,1240,350,220,100,88,82,149,317,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,1,0,0,4507,1
+2088,HORN_SCARABA_EGG,Scaraba Egg,Uni Horn Scaraba Egg,125,63000,1,5200,3000,0,1,1,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2089,HORN_SCARABA2_EGG,Scaraba Egg,Horn Scaraba Egg,126,66000,1,5200,3000,0,1,1,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2090,ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,127,69000,1,5200,3000,0,1,1,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2091,RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,128,72000,1,5200,3000,0,1,1,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,500,0,0,0,0,0,0,0,0,0,0,0,0
+2092,DOLOMEDES,Dolomedes,Dolomedes,132,54591,1,6702,5154,3,1016,286,112,52,149,34,82,55,143,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,10,12738,10,6224,500,1984,10,0,0,0,0,4506,1
+2093,BOTARING,Botaring,Botaring,15,15,1,7,7,2,20,20,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,603,500,0,0,0,0
// Additional MVPs
-2094,E_ORK_HERO2,Orc Hero,Orc Hero,50,362000,1,2010,2010,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1
-2095,E_EDDGA,Eddga,Eddga,65,247500,1,2010,2010,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1030,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1
-2096,E_OSIRIS2,Osiris,Osiris,68,475840,1,2010,2010,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,2000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1
-2097,E_DRACULA,Dracula,Dracula,75,350000,1,2010,2010,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1
-2098,E_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,2010,2010,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,723,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1
-2099,E_MISTRESS,Mistress,Mistress,78,378000,1,2010,2010,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1
-2100,E_BAPHOMET2,Baphomet,Baphomet,81,668000,1,2010,2010,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1
-2101,E_LORD_OF_DEATH2,Lord of Death,Lord of the Dead,94,603883,1,2010,2010,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1
-2102,E_DARKLORD,Dark Lord,Dark Lord,1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2103,E_KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,2010,2010,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1
-2104,E_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,2010,2010,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1
-2105,E_TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,2010,2010,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1
-2106,E_APOCALIPS_H,Vesper,Vesper,128,3802000,1,2010,2010,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1
-2107,E_FALLINGBISHOP,Fallen Bishop,Fallen Bishop Hibram,138,5655000,1,2010,2010,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1
-2108,E_GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2010,2010,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1
-2109,E_RANDGRIS,Valkyrie Randgris,Valkyrie Randgris1,141,2205000,1,2010,2010,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1
-2110,E_IFRIT,Ifrit,Ifrit,146,6935000,1,2010,2010,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1
-2111,E_B_HARWORD,Whitesmith Harword,Whitesmith Howard,160,6750000,1,2010,2010,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1
-2112,E_B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,2010,2010,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0
-2113,E_B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,2010,2010,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,13017,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1
+2094,E_ORK_HERO2,Orc Hero,Orc Hero,50,362000,1,2010,2010,1,662,441,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1
+2095,E_EDDGA,Eddga,Eddga,65,947500,1,2010,2010,1,1509,776,166,70,92,80,103,66,139,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1029,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1
+2096,E_OSIRIS2,Osiris,Osiris,68,475840,1,2010,2010,1,1580,903,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,4000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1
+2097,E_DRACULA,Dracula,Dracula,75,350000,1,2210,2010,3,1454,1812,152,146,86,99,88,92,174,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1
+2098,E_DOPPELGANGER,Doppelganger,Doppelganger,77,380000,1,2210,2010,1,1803,1176,246,86,122,122,105,67,203,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,724,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1
+2099,E_MISTRESS,Mistress,Mistress,78,378000,1,2010,2010,1,985,1367,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1
+2100,E_BAPHOMET2,Baphomet,Baphomet,81,668000,1,2210,2010,2,3150,1284,279,45,120,125,30,85,186,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1
+2101,E_LORD_OF_DEATH2,Lord of Death,Lord of the Dead,94,603883,1,2412,2010,3,5351,962,336,73,140,99,30,109,120,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1
+2102,E_DARK_LORD,Dark Lord,Dark Lord,96,1190900,1,2412,2010,2,3935,2085,330,168,118,136,154,142,193,66,10,12,2,6,89,0x37B5,100,868,768,480,0,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1
+2103,E_KTULLANUX,Ktullanux,Ktullanux,98,2626000,1,2412,2010,3,3754,2680,129,78,85,126,30,125,212,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1
+2104,E_DARK_SNAKE_LORD,Dark Snake Lord,Evil Snake Lord,105,1101000,1,2412,2010,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1
+2105,E_TURTLE_GENERAL,Turtle General,Turtle General,110,1442000,1,2412,2010,2,3169,2066,394,123,116,123,154,99,217,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1
+2106,E_APOCALIPS_H,Vesper,Vesper,128,3802000,1,2612,2010,3,3668,4656,402,109,177,195,165,130,255,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1
+2107,E_FALLINGBISHOP,Fallen Bishop,Fallen Bishop,138,5655000,1,2612,2010,1,4290,4636,274,382,186,165,95,226,273,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1
+2108,E_GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2612,2010,3,6592,2785,479,262,191,223,187,155,362,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1
+2109,E_RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,3205000,1,2612,2010,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1
+2110,E_IFRIT,Ifrit,Ifrit,146,6935000,1,2612,2010,3,8063,3389,436,218,180,201,156,190,299,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1
+2111,E_B_HARWORD,Whitesmith Harword,MasterSmith Howard,160,6750000,1,2612,2010,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1
+2112,E_B_SEYREN,Lord Knight Seyren,Lord Knight Seyren,160,4680000,1,2612,2010,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0
+2113,E_B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,160,4230000,1,2612,2010,1,6083,1378,445,98,211,181,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,1230,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1
// Sorcerer Elemental Spirits
-// 2114,EL_AGNI_S,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2115,EL_AGNI_M,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2116,EL_AGNI_L,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2117,EL_AQUA_S,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2118,EL_AQUA_M,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2119,EL_AQUA_L,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2120,EL_VENTUS_S,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,0,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2121,EL_VENTUS_M,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,1,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2122,EL_VENTUS_L,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,2,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2123,EL_TERA_S,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2124,EL_TERA_M,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-// 2125,EL_TERA_L,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-2126,M_ANOPHELES,Anopheles,Anopheles,100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2127,M_HORNET,Hornet,Hornet,110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2128,M_HORNET2,Hornet,Hornet,120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2129,M_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2130,M_LUCIOLA_VESPA2,Luciola Vespa,Luciola Vespa,140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2114,EL_AGNI_S,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2115,EL_AGNI_M,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2116,EL_AGNI_L,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2117,EL_AQUA_S,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2118,EL_AQUA_M,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2119,EL_AQUA_L,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2120,EL_VENTUS_S,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,0,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2121,EL_VENTUS_M,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,1,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2122,EL_VENTUS_L,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,2,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2123,EL_TERA_S,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2124,EL_TERA_M,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2125,EL_TERA_L,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2126,M_ANOPHELES,Anopheles,Anopheles,100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2127,M_HORNET,Hornet,Hornet,110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2128,M_HORNET2,Hornet,Hornet,120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2129,M_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+// 2130,M_LUCIOLA_VESPA2,Luciola Vespa,Luciola Vespa,140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Bifrost (14.1)
-2131,LOST_DRAGON,Lost Dragon,Lost Dragon,135,608920,0,30000,30000,3,1050,1580,60,51,140,81,69,122,98,61,10,12,2,9,67,0x3695,150,840,648,576,15000,617,2500,616,5000,0,0,2610,1000,13062,1000,607,1000,608,500,610,500,1985,500,2854,300,0,0,0,0,0,0
-2132,POM_SPIDER,Pom Spider,Pom Spider,145,122110,1,8010,8037,1,632,847,240,115,156,85,178,88,139,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,13431,10,1654,3,0,0,0,0,0,0,0,0,4514,1
-2133,ANGRA_MANTIS,Angra Mantis,Angra Mantis,144,91720,1,7790,7020,1,579,756,175,81,122,155,119,81,132,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,5000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,4513,1
-2134,PARUS,Parus,Parus,142,86990,1,7310,6990,1,511,663,161,39,80,136,128,44,105,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,5000,7063,1000,12736,100,6383,5000,6383,3000,6383,1000,0,0,0,0,0,0,4512,1
+2131,LOST_DRAGON,Lost Dragon,Lost Dragon,135,608920,0,39000,30000,3,1975,530,60,51,140,81,69,122,147,61,10,12,2,9,67,0x3695,150,840,648,576,0,616,500,617,5000,617,5000,2610,1000,2854,100,13062,100,607,500,608,500,1985,100,0,0,0,0,0,0,0,0
+2132,POM_SPIDER,Pom Spider,Pom Spider,145,122110,1,10412,8037,1,948,215,240,115,156,85,178,88,209,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,1654,2,13431,50,0,0,0,0,0,0,0,0,4514,1
+2133,ANGRA_MANTIS,Angra Mantis,Angra Mantis,144,91720,1,10126,7020,1,869,177,175,81,122,155,119,81,198,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,3000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,0,0
+2134,PARUS,Parus,Parus,142,86990,1,9502,6990,1,767,152,161,39,80,136,128,44,158,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,3000,7063,1000,12736,100,6383,3000,6383,3000,6383,3000,0,0,0,0,0,0,4512,1
2135,CREEPER,Creeper,Creeper,100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2136,LITTLE_FATUM,Little Fatum,Little Fatum,142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1
-2137,MIMING,Miming,Miming,140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1
-2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2144,G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2145,G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2146,G_S_NYDHOG,G_S_NYDHOG,G_S_NYDHOG,117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2136,LITTLE_FATUM,Little Fatum,Little Fatum,142,85100,1,9750,6500,1,663,452,51,198,10,66,17,148,222,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,3000,7938,100,11519,100,2465,2,0,0,0,0,0,0,0,0,0,0,4511,1
+2137,MIMING,Miming,Miming,140,81200,1,9230,6300,1,645,222,120,120,90,66,105,77,200,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,3000,7938,100,969,1,2853,2,0,0,0,0,0,0,0,0,0,0,4510,1
+2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhoggur Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2144,G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,0,0,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2145,G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,0,0,1,1645,112,250,70,90,66,145,52,168,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2146,G_S_NYDHOG,G_S_NYDHOG,Shade of Dragon,117,300000,0,0,0,2,1176,840,60,60,1,30,30,136,123,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2147,E_WHITE_PLANT,White Plant,White Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2148,E_BLUE_PLANT,Blue Plant,Blue Plant,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2149,E_SAVAGE_BABE,Savage Babe,Savage Babe,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2150,WATERMELON,Watermelon,Watermelon,12,10,0,0,0,1,7,10,1,1,1,1,1,1,6,30,10,12,1,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,6411,5000,911,2000,7198,2000,741,100,0,0,0,0,0,0,0,0,0,0,0,0
+2150,WATERMELON,Watermelon,Ripe Watermelon,12,10,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,3,21,0x40,2000,96,96,96,0,0,0,0,0,0,0,905,3000,7186,2000,7198,3000,6411,14000,6411,2000,6411,2000,0,0,0,0,0,0,0,0
// Dewata
-2151,ALNOLDI,Alnoldi,Rafflesia Alnoldi,80,5149,0,1399,1280,1,378,447,80,20,1,32,24,61,85,30,10,12,1,3,22,0x3895,300,768,768,576,0,0,0,0,0,0,0,705,250,520,425,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1
-2152,COMODO,Comodo,Comodo,81,4002,0,1072,1581,1,427,469,92,11,50,52,35,20,94,48,10,12,1,2,65,0x3895,165,432,432,360,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1
-2153,CENDRAWASIH,Cendrawasih,Cendrawasih,84,5556,0,2612,2687,1,297,467,72,33,50,77,51,58,92,45,10,12,1,8,23,0x3895,220,768,768,576,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1
-2154,BANASPATY,Banaspaty,Banaspaty,85,4680,0,1164,1688,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x3895,220,1872,672,480,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1
-2155,BUTOIJO,Butoijo,Butoijo,88,7524,0,1355,1752,1,358,460,77,12,50,65,30,30,106,44,10,12,2,6,43,0x4995,200,1100,483,528,0,0,0,0,0,0,0,938,2750,537,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1
-2156,LEAK,Leak,Leak,94,1266000,0,472800,300120,1,3723,5007,280,128,100,125,30,85,186,55,10,12,2,6,47,0x37B5,150,151,288,360,236400,607,5500,617,2250,616,450,1422,10,617,2500,607,2500,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1
-2157,G_BANASPATY,Banaspaty,Banaspaty,85,4680,0,0,0,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x37B5,220,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2151,ALNOLDI,Rafflesia Arnoldi,Rafflesia Arnoldi,80,5149,1,1472,1280,2,378,69,80,20,40,32,24,61,85,30,10,12,1,3,22,0x3885,300,500,576,504,0,0,0,0,0,0,0,705,250,520,426,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1
+2152,COMODO,Comodo,Comodo,81,4002,1,1178,1480,2,427,42,92,11,65,52,35,20,94,48,10,12,1,2,65,0x3885,180,500,576,504,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1
+2153,CENDRAWASIH,Cendrawasih,Cendrawasih,84,5556,1,1442,1486,1,297,170,72,33,58,77,51,58,92,45,10,12,1,8,24,0x3885,200,576,720,360,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1
+2154,BANASPATY,Banaspaty,Banaspaty,85,4680,1,1610,1088,1,200,182,63,89,61,78,35,77,79,20,10,12,0,0,63,0x3885,250,1152,2304,432,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1
+2155,BUTOIJO,Butoijo,Butoijo,88,7524,1,1490,1552,1,358,102,77,12,66,65,30,30,106,44,10,12,2,6,43,0x3885,170,576,768,432,0,0,0,0,0,0,0,938,2750,517,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1
+2156,LEAK,Leak,Leak,94,1266000,1,472800,300120,2,3723,1284,280,128,122,125,30,85,186,55,10,12,2,6,47,0x37B5,130,576,576,360,0,617,5000,617,5000,617,5000,1422,10,617,2500,607,1250,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1
+2157,G_BANASPATY,Butoijo,Banaspaty,85,4680,1,0,0,1,182,182,63,89,61,78,35,77,66,20,10,12,0,0,63,0x83,250,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Homunculus S Summons
-2158,S_HORNET,Hornet,Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2159,S_GIANT_HORNET,Giant Hornet,Giant Hornet,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2160,S_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2158,S_HORNET,Hornet,Hornet,95,5000,1,0,0,1,381,494,7,1,62,54,54,65,76,55,10,12,0,4,24,0x83,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2159,S_GIANT_HORNET,Giant Hornet,Giant Hornet,110,11960,0,0,0,1,456,579,80,43,117,65,67,72,77,34,10,12,0,4,24,0x83,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2160,S_LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,130,16466,1,0,0,1,677,831,59,55,88,89,55,32,119,59,10,12,1,4,24,0x83,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Nightmare Scaraba Hole
-2161,I_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,15660,12033,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6324,10000,1433,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1
-2162,I_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,17340,13647,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6323,10000,13061,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1
-2163,I_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,18990,15675,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x3795,220,76,384,288,0,0,0,0,0,0,0,6322,10000,1930,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1
-2164,I_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,20970,16785,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x3795,200,76,384,288,0,0,0,0,0,0,0,6321,10000,16010,4,12735,20,15000,20,993,4,0,0,0,0,0,0,0,0,4508,1
-2165,I_QUEEN_SCARABA,Gold Queen Scaraba,Gold Queen Scaraba,140,6441600,0,4102200,2122000,3,3778,6258,350,220,100,138,82,249,261,144,10,12,2,4,62,0x37B5,200,768,768,576,2051100,616,5500,616,5000,616,2000,6326,10000,1191,2000,2364,2000,1196,800,18103,1000,0,0,0,0,0,0,0,0,4509,1
-2166,I_HORN_SCARABA_EGG,Gold One-Horn Scaraba Egg,Gold One-Horn Scaraba Egg,125,126000,0,12000,9000,1,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2167,I_HORN_SCARABA2_EGG,Gold Two-Horn Scaraba Egg,Gold Two-Horn Scaraba Egg,126,132000,0,12000,9000,1,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2168,I_ANTLER_SCARABA_EGG,Gold Antler Scaraba Egg,Gold Antler Scaraba Egg,127,138000,0,12000,9000,1,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2169,I_RAKE_SCARABA_EGG,Gold Rake Scaraba Egg,Gold Rake Scaraba Egg,128,144000,0,12000,9000,1,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,2153,20,0,0,0,0,0,0,0,0,0,0,0,0
-2170,I_G_ANTLER_SCARABA,Gold Antler Scaraba,Gold Antler Scaraba,136,250400,0,0,0,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x37B5,220,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2171,I_G_RAKE_SCARABA,Gold Rake Scaraba,Gold Rake Scaraba,139,270800,0,0,0,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x37B5,200,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2172,I_G_HORN_SCARABA,Gold One-Horn Scaraba,Gold One-Horn Scaraba,130,204400,0,0,0,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2173,I_G_HORN_SCARABA2,Gold Two-Horn Scaraba,Gold Two-Horn Scaraba,134,235600,0,0,0,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2161,I_HORN_SCARABA,Scaraba,Uni Horn Scaraba,130,204400,1,17880,16044,1,1270,590,135,10,84,109,115,31,111,53,10,12,0,4,22,0x3395,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,10,12735,100,7939,100,993,100,617,10,12107,10,0,0,0,0,4508,1
+2162,I_HORN_SCARABA2,Scaraba,Horn Scaraba,134,235600,1,20120,18196,1,690,3090,150,15,44,28,72,125,184,51,10,12,0,4,22,0x3395,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,10,12735,100,7939,100,993,100,617,10,12107,10,0,0,0,0,4508,1
+2163,I_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,250400,1,20320,21020,1,412,3211,155,20,23,59,59,209,191,45,10,12,1,4,42,0x3395,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,100,7939,100,993,10,617,10,12107,10,0,0,0,0,4508,1
+2164,I_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,270800,1,22960,23980,1,1830,630,250,25,94,136,145,42,152,97,10,12,1,4,42,0x3395,140,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,10,12735,100,15000,100,993,100,617,10,12107,10,0,0,0,0,4508,1
+2165,I_QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,140,6441600,1,1210220,612200,3,4889,6440,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,0,616,5000,616,5000,616,5000,6326,5000,1191,700,2364,700,1196,400,18103,500,12608,1000,12539,1000,12103,100,0,0,4509,1
+2166,I_HORN_SCARABA_EGG,Scaraba Egg,Uni Horn Scaraba Egg,125,126000,1,12000,9000,0,1,1,280,55,1,1,130,34,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0
+2167,I_HORN_SCARABA2_EGG,Scaraba Egg,Horn Scaraba Egg,126,132000,1,12000,9000,0,1,1,300,62,1,1,130,48,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0
+2168,I_ANTLER_SCARABA_EGG,Antler Scaraba Egg,Antler Scaraba Egg,127,138000,1,12000,9000,0,1,1,285,180,1,1,130,82,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0
+2169,I_RAKE_SCARABA_EGG,Rake Scaraba Egg,Rake Scaraba Egg,128,144000,1,12000,9000,0,1,1,340,44,1,1,130,39,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,2153,500,617,10,0,0,0,0,0,0,0,0,0,0
+2170,I_G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,250400,1,0,0,1,412,3211,155,15,23,59,59,209,191,45,10,12,1,4,42,0x3395,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2171,I_G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,270800,1,0,0,1,1830,630,250,20,94,136,145,42,152,97,10,12,1,4,42,0x3395,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2172,I_G_HORN_SCARABA,Scaraba,Rake Scaraba,130,204400,1,0,0,1,1270,590,135,10,84,109,115,31,111,53,10,12,0,4,22,0x3395,200,384,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2173,I_G_HORN_SCARABA2,Scaraba,Horn Scaraba,134,235600,1,0,0,1,690,3090,150,15,44,28,72,125,184,51,10,12,0,4,22,0x3395,150,336,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Malangdo Island
-2174,MD_VADON,Deep Sea Vadon,Deep Sea Vadon,95,120000,0,1500,1500,1,710,1384,154,21,1,63,84,60,99,45,10,12,0,5,21,0x37B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1
-2175,MD_MARSE,Deep Sea Marse,Deep Sea Marse,95,120000,0,1500,1500,1,740,1456,58,218,1,51,75,30,99,30,10,12,0,5,41,0x37B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1
-2176,MD_CRAB,Deep Sea Crab,Deep Sea Crab,95,120000,0,1500,1500,1,600,1176,136,15,54,42,72,21,84,45,7,12,0,5,21,0x37B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1
-2177,MD_CORNUTUS,Deep Sea Cornutus,Deep Sea Cornutus,100,160000,0,1500,1500,1,715,1392,342,48,1,81,135,48,51,45,10,12,0,5,21,0x37B5,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1
-2178,MD_SHELLFISH,Deep Sea Shellfish,Deep Sea Shellfish,100,160000,0,1500,1500,1,740,1408,43,215,1,33,144,75,78,30,10,12,0,5,21,0x37B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1
-2179,MD_KUKRE,Deep Sea Kukre,Deep Sea Kukre,100,160000,0,1500,1500,1,595,1160,123,33,1,90,66,60,96,60,10,12,0,5,21,0x37B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1
-2180,MD_STROUF,Deep Sea Strouf,Deep Sea Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2181,MD_SWORD_FISH,Deep Sea Sword Fish,Deep Sea Sword Fish,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2182,MD_MARC,Deep Sea Marc,Deep Sea Marc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2183,MD_ANOLIAN,Deep Sea Anolian,Deep Sea Anolian,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2184,MD_OBEAUNE,Deep Sea Obeaune,Deep Sea Obeaune,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2185,MD_KAPHA,Deep Sea Kapha,Deep Sea Kapha,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2186,COELACANTH_N_E,Coelacanth,Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2187,COELACANTH_N_A,Dark Coelacanth,Dark Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4527,1
-2188,COELACANTH_N_M,Weird Coelacanth,Weird Coelacanth,100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4526,1
-2189,COELACANTH_H_M,Mutant Coelacanth,Mutant Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4528,1
-2190,COELACANTH_H_A,Violent Coelacanth,Violent Coelacanth,140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4529,1
-2191,MD_SEAWEED,Seaweed,Seaweed,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2192,MD_OCTOPUS,Octopus,Octopus,90,6000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x3795,150,768,768,576,0,0,0,0,0,0,0,1024,3000,962,3000,12615,10,0,0,0,0,0,0,0,0,0,0,0,0,4533,1
-2193,MD_OCTOPUS_LEG,Octopus Leg,Octopus Leg,90,500000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x1A4,400,768,768,576,0,0,0,0,0,0,0,12613,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2194,MD_GIANT_OCTOPUS,Giant Octupus,Giant Octopus,95,500000,0,40000,20000,2,1900,2850,154,21,100,50,50,150,150,50,10,12,2,5,41,0x37B5,400,768,768,576,0,0,0,0,0,0,0,12615,7000,12615,3000,12614,3000,12617,1000,12642,1000,12623,500,0,0,0,0,0,0,4534,1
-2195,MD_G_KUKRE,Kukre,Kukre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2196,MD_G_STROUF,Strouf,Strouf,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2197,RED_ERUMA,Red Eruma,Red Eruma,91,9900,0,1909,1909,1,620,930,102,102,1,75,40,40,75,30,10,12,1,5,41,0x89,150,768,768,576,0,0,0,0,0,0,0,6426,7000,965,4000,966,4000,1056,2000,757,200,756,50,603,10,0,0,0,0,4531,1
-2198,KING_DRAMOH,King Dramoh,King Dramoh,117,28800,0,3350,1300,1,1320,1848,480,22,100,70,30,50,100,70,10,12,2,5,41,0x37B5,120,432,432,360,0,0,0,0,0,0,0,960,7000,943,3000,7938,500,995,100,6256,100,1523,1,13035,1,0,0,0,0,4524,1
-2199,SIORAVA,Siorava,Siorava,87,6500,0,1200,1200,1,450,675,20,40,1,30,25,55,60,30,10,12,0,0,21,0x83,200,1872,672,480,0,0,0,0,0,0,0,958,7000,7071,3000,7005,1000,932,1000,12624,500,1202,10,13034,1,0,0,0,0,4530,1
+2174,MD_VADON,Ancient Crustacean,Ancient Crustacea,95,120000,1,1500,1500,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,21,0x33B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,6,943,100,757,40,0,0,12615,4,0,0,0,0
+2175,MD_MARSE,Deepsea Marse,Deepsea Marse,95,120000,1,1500,1500,1,500,820,58,218,133,37,85,156,133,60,10,12,0,5,41,0x33B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,0,0,720,10,995,12,1007,6,514,300,12615,4,0,0,0,0
+2176,MD_CRAB,Deepsea Crab,Deepsea Crab,95,120000,1,1500,1500,1,696,234,136,15,122,54,84,37,98,65,7,12,0,5,21,0x33B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,14,0,0,0,0,757,38,12615,4,0,0,0,0
+2177,MD_CORNUTUS,Deepsea Cornutus,Deepsea Cornutus,100,160000,1,1500,1500,1,1129,237,342,48,122,87,135,66,137,75,10,12,0,5,21,0x33B5,200,1248,48,480,0,0,0,0,0,0,0,991,46,961,5500,911,800,757,54,2106,6,943,1000,0,0,12615,6,0,0,0,0
+2178,MD_SHELLFISH,Deepsea Shellfish,Deepsea Shellfish,100,160000,1,1500,1500,1,720,1122,43,215,72,31,68,225,166,60,10,12,0,5,41,0x33B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,12615,4,0,0,0,0
+2179,MD_KUKRE,Ancient Kukre,Ancient Kukre,100,160000,1,1500,1500,1,975,118,123,33,125,80,112,60,102,30,10,12,0,4,21,0x33B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,0,0,928,450,623,20,12615,4,0,0,0,0
+2180,MD_STROUF,Ancient Sea Lord,Ancient Sea Lord,145,400000,1,2000,2000,1,1200,3500,67,221,149,126,81,252,183,66,10,12,2,5,61,0x33B5,150,1872,672,384,0,0,0,0,0,0,0,951,5336,756,116,0,0,1461,2,949,3000,720,20,956,1500,12614,6,0,0,0,0
+2181,MD_SWORD_FISH,Ancient Sword Fish,Ancient Sword Fish,145,400000,1,2000,2000,1,1849,235,255,17,155,156,115,85,194,65,10,12,2,5,41,0x33B5,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,34,2257,2,757,50,0,0,956,600,12614,6,0,0,0,0
+2182,MD_MARC,Ancient Seahorse,Ancient Seahorse,145,400000,1,2000,2000,1,1423,331,255,51,150,145,221,83,148,66,10,12,1,5,41,0x33B5,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,96,951,1000,720,10,0,0,509,700,12612,6,0,0,0,0
+2183,MD_ANOLIAN,Mutant Anolian,Mutant Anolian,151,700000,1,2200,2200,1,2122,312,268,22,177,188,205,126,198,61,10,12,1,5,41,0x33B5,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,0,0,10019,10,16003,6,2625,2,984,134,12614,6,0,0,0,0
+2184,MD_OBEAUNE,Deepsea Mermaid,Deepsea Mermaid,151,700000,1,2200,2200,1,1502,3845,68,326,166,87,101,233,196,55,10,12,1,6,61,0x33B5,200,1872,672,288,0,0,0,0,0,0,0,995,14,950,9000,0,0,2326,10,720,10,951,500,748,30,12614,6,0,0,0,0
+2185,MD_KAPHA,Transform Kapha,Transform Kapha,151,700000,1,2200,2200,1,2590,256,261,58,167,209,128,61,191,20,10,12,1,6,41,0x33B5,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,0,0,521,2300,708,2,1915,10,13008,6,12612,6,0,0,0,0
+2186,COELACANTH_N_E,Coelacanth,Coelacanth,100,1200000,1,400000,400000,1,1290,1290,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,4000,12615,4000,12623,1400,12614,4000,12615,4000,12615,4000,12615,4000,0,0,0,0
+2187,COELACANTH_N_A,Dark Coelacanth,Dark Coelacanth,100,2200000,1,1000000,1000000,1,1890,1890,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,10000,12615,10000,12623,1500,12614,10000,12615,10000,12615,10000,0,0,0,0,4527,1
+2188,COELACANTH_N_M,Grotesque Coelacanth,Grotesque Coelacanth,100,2200000,1,1000000,1000000,1,1890,1890,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,10000,12615,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4526,1
+2189,COELACANTH_H_M,Mutant Coelacanth,Mutant Coelacanth,155,5200000,1,3000000,3000000,1,5500,5500,280,280,260,260,260,260,260,260,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,14000,6423,14000,12612,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4528,1
+2190,COELACANTH_H_A,Ferocious Coelacanth,Ferocious Coelacanth,155,5200000,1,3000000,3000000,1,5500,5500,280,280,260,260,260,260,260,260,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,14000,6423,10000,12612,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4529,1
+2191,MD_SEAWEED,Seaweed,Seaweed,100,100000,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,5,21,0x1E4,2000,384,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2192,MD_OCTOPUS,Small Octopus,Small Octopus,90,6000,1,4000,2000,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,41,0x33B5,300,576,2160,504,0,0,0,0,0,0,0,1024,5000,962,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4533,1
+2193,MD_OCTOPUS_LEG,Octupus Leg,Octopus Leg,90,500000,1,4000,2000,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,41,0x1A4,300,432,720,360,0,0,0,0,0,0,0,1024,9000,962,5000,938,5000,0,0,0,0,0,0,0,0,12615,2,0,0,0,0
+2194,MD_GIANT_OCTOPUS,Giant Octopus,Giant Octopus,95,500000,1,40000,20000,1,1900,1200,154,21,145,91,138,60,113,45,10,12,2,5,41,0x37B5,300,576,1584,360,0,0,0,0,0,0,0,12618,3000,12614,1000,12623,500,13534,3000,0,0,0,0,12615,4000,12615,4000,0,0,4534,1
+2195,MD_G_KUKRE,Ancient Kukre,Ancient Kukre,100,160000,1,0,0,1,975,118,123,33,125,80,112,60,102,30,10,12,0,4,21,0x3395,150,1776,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2196,MD_G_STROUF,Ancient Sea Lord,Ancient Sea Lord,145,400000,1,0,0,1,1200,3500,67,221,149,126,81,252,183,66,10,12,2,5,61,0x33B5,150,1872,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2197,RED_ERUMA,Red Eruma,Red Eruma,91,9900,1,1908,1908,1,620,290,102,102,77,90,88,21,99,21,10,12,1,5,41,0x1089,140,768,1224,432,0,0,0,0,0,0,0,965,5000,966,2000,1056,3000,757,100,756,100,603,20,6426,1400,0,0,0,0,4531,1
+2198,KING_DRAMOH,King Kray,King Kray,117,28800,0,6700,2600,1,1320,330,480,22,119,44,150,89,130,44,10,12,2,5,41,0x37B5,140,576,720,720,0,0,0,0,0,0,0,6256,100,960,5000,943,5000,1523,50,7938,200,995,50,991,50,0,0,0,0,4524,1
+2199,SIORAVA,Siorava,Siorava,87,6500,1,1200,1200,1,450,210,20,40,10,40,66,70,67,10,10,12,0,0,21,0x83,250,1536,1296,576,0,0,0,0,0,0,0,12624,1400,7005,1000,932,1000,958,1000,7071,1000,13034,2,1202,2,0,0,0,0,4530,1
// Izlude Dungeon F6
//2200,J_TAINI,Taini,Taini,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2201,SROPHO,Sropho,Sropho,113,24002,0,1934,1900,1,571,856,44,91,100,50,30,70,90,30,10,12,1,5,41,0x3795,135,700,600,360,0,0,0,0,0,0,0,951,7000,7938,500,756,250,12012,25,1971,25,1972,10,0,0,0,0,0,0,4522,1
-2202,KRAKEN,Kraken,Kraken,124,5602800,0,983332,961111,3,3823,4969,55,229,150,150,150,180,180,150,10,12,2,5,81,0x37B5,150,768,768,576,491666,607,5500,617,2250,616,450,962,9000,1422,1000,1484,500,1131,300,2347,100,7444,5000,0,0,0,0,0,0,4525,1
-2203,POT_DOFLE,Pot Dofle,Pot Dofle,115,25211,0,2650,1350,1,1088,1632,122,55,100,50,50,70,100,30,10,12,0,5,41,0x1089,135,768,768,576,0,0,0,0,0,0,0,1056,3000,7013,1000,1024,500,6257,100,969,2,617,1,0,0,0,0,0,0,4523,1
-2204,SEDORA,Sedora,Sedora,110,22050,0,1853,1739,1,758,1137,92,55,100,50,50,30,70,30,10,12,1,5,41,0x3795,120,504,960,576,0,0,0,0,0,0,0,962,5000,1024,5000,6256,100,7939,100,2424,10,603,5,0,0,0,0,0,0,4521,1
+2201,SROPHO,Sropho,Squidgitte,113,24002,0,3868,3800,1,571,565,44,91,77,53,33,133,99,66,10,12,1,5,41,0x3795,200,768,792,432,0,0,0,0,0,0,0,951,5000,1972,4,1971,4,12012,100,756,100,7938,100,991,50,0,0,0,0,4522,1
+2202,KRAKEN,Kraken,Kraken,124,5602800,0,1966664,1922222,3,3823,1830,55,229,196,99,165,117,162,99,10,12,2,5,81,0x37B5,130,432,864,360,491666,617,5000,616,5000,616,5000,962,5000,1484,500,1131,500,1422,500,2347,500,7444,5000,995,500,0,0,0,0,4525,1
+2203,POT_DOFLE,Pot Dofle,Octo Pot,115,25211,0,5300,2700,1,1088,212,122,55,133,54,78,33,114,26,10,12,0,5,41,0x1089,180,1008,936,432,0,0,0,0,0,0,0,6257,10,7013,1000,969,6,1056,1000,1024,1000,617,20,991,50,0,0,0,0,4523,1
+2204,SEDORA,Sedora,Lamp Rey,110,22050,0,3706,3478,1,758,444,92,55,126,118,61,107,109,84,10,12,1,5,41,0x3795,150,768,792,432,0,0,0,0,0,0,0,962,5000,2424,6,6256,30,7939,30,1024,3000,603,10,991,50,0,0,0,0,4521,1
//2205,TACNU,Tacnu,Tacnu,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2206,KRAKEN_LEG,Kraken Leg,Kraken Leg,124,39190,0,0,0,2,1685,2190,128,158,100,100,100,130,130,100,10,12,2,5,81,0x37B5,150,768,768,576,0,0,0,0,0,0,0,7565,10,6253,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2206,KRAKEN_LEG,Kraken Leg,Kraken Tentacle,124,39190,0,0,0,1,1685,555,128,158,130,92,53,128,189,54,10,12,2,5,61,0x37B5,2000,576,864,240,0,0,0,0,0,0,0,7565,2,6253,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2207,RACARCH,Racarch,Racarch,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2208,WILD_RIDER,Wild Rider,Wild Rider,95,33300,0,8300,3300,1,1320,1848,480,22,100,100,30,70,100,30,10,12,2,5,41,0x37B5,150,432,432,360,0,0,0,0,0,0,0,956,7000,12624,7000,720,4000,995,2000,7938,1000,617,1000,0,0,0,0,0,0,4532,1
+2208,WILD_RIDER,Wild Rider,Wild Rider,95,33300,0,8300,3300,1,1320,330,480,22,89,124,89,56,112,56,10,12,2,5,41,0x37B5,120,432,792,360,0,0,0,0,0,0,0,12624,5000,956,5000,720,5000,7938,1000,617,2000,995,1000,0,0,0,0,0,0,4532,1
// Additional Monsters
-2209,E_THIEF_BUG,Thief Bug,Thief Bug,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2210,XMAS_LUNATIC,Xmas Lunatic,Christmas Lunatic,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2211,E_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2209,E_THIEF_BUG,Thief Bug,Agile Shadow,1,10,1,0,0,1,1,1,1,1,1,100,1,1,1,1,10,12,0,4,60,0x181,100,1288,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2210,XMAS_LUNATIC,Xmas Lunatic,Christmas Snow Rabbit,1,100,1,0,0,1,1,1,0,0,10,1,1,1,1,1,10,12,0,2,20,0x83,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2211,E_TEDDY_BEAR,Teddy Bear,Christmas Teddy Bear,10,10,1,0,0,1,1,1,0,1,1,1,1,1,100,1,10,12,0,0,20,0x83,160,512,780,504,0,0,0,0,0,0,0,603,1000,644,3000,530,1000,529,1000,644,500,617,10,7034,1000,0,0,0,0,0,0
2212,E_KNIGHT_OF_WINDSTORM,Knight of Windstorm,Stormy Knight,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2213,M_WANDER_MAN,Wander Man,Wanderer,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2214,M_WICKED_NYMPH,Wicked Nymph,Evil Nymph,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2215,M_KASA,Kasa,Kasa,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2216,M_SALAMANDER,Salamander,Salamander,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2217,M_TEDDY_BEAR,Teddy Bear,Teddy Bear,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2213,M_WANDER_MAN,Wander Man,Wanderer,81,8614,220,0,0,2,1100,200,60,20,80,110,63,51,85,90,10,12,1,6,24,0x83,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2214,M_WICKED_NYMPH,Wicked Nymph,Evil Nymph,85,6157,256,0,0,2,420,200,30,45,40,50,40,92,60,110,10,12,1,6,67,0x83,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2215,M_KASA,Kasa,Kasa,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,2,0,63,0x83,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2216,M_SALAMANDER,Salamander,Salamander,87,9517,260,0,0,2,900,200,60,68,90,80,65,45,87,95,10,12,2,0,63,0x83,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2217,M_TEDDY_BEAR,Teddy Bear,Teddy Bear,85,14493,243,0,0,1,600,200,100,70,60,20,85,50,75,130,10,12,0,0,60,0x83,200,512,780,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2218,E_OCTOPUS_LEG,Octopus Leg,Octopus Tentacle,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2219,E_GIANT_OCTOPUS,Giant Octopus,Giant Octopus,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2220,E_QUVE,Quve,Quve,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2220,E_QUVE,Quve,Messenger of Devil,10,20,1,0,0,1,13,8,1,0,1,1,1,50,100,100,10,12,0,1,29,0x83,150,912,1248,576,0,0,0,0,0,0,0,558,10000,561,6000,529,16000,530,16000,0,0,0,0,0,0,0,0,0,0,0,0
// Lighthalzen Biolab F4
-2221,RANDEL,Randel,Randel,141,478745,0,32367,24055,1,3055,4277,180,56,142,69,86,49,132,55,10,12,1,7,66,0x3095,170,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,617,10,1435,1,2162,1,0,0,0,0,0,0
-2222,FLAMEL,Flamel,Flamel,141,316468,0,31166,21445,1,1074,1503,93,40,138,79,62,53,82,48,10,12,1,7,63,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,984,100,617,10,16010,10,15044,1,0,0,0,0,0,0
-2223,CELIA,Celia,Celia,141,253145,0,22107,19017,1,1612,2256,74,312,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,1654,10,2853,10,18111,1,0,0,0,0,0,0
-2224,CHEN,Chen,Chen,141,218721,2000,25684,19810,1,2501,3501,125,56,126,74,71,123,99,65,10,12,1,6,81,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1814,10,1659,1,0,0,0,0,0,0
-2225,GERTIE,Gertie,Gertie,141,266926,0,24267,20233,1,3684,5157,108,10,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,617,10,13061,10,18109,1,0,0,0,0,0,0
-2226,ALPHOCCIO,Alphoccio,Alphoccio,142,256202,0,22192,20322,1,1273,1782,84,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1930,10,2161,1,0,0,0,0,0,0
-2227,TRENTINI,Trentini,Trentini,142,204962,0,15995,13248,1,1070,1498,70,12,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,1984,10,2465,10,2892,1,0,0,0,0,0,0
-2228,G_RANDEL,Paladin Randel,Paladin Randel,160,3870000,0,18000,10000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2229,G_FLAMEL,Creator Flamel,Creator Flamel,160,2230000,0,18000,10000,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2230,G_CELIA,Professor Celia,Professor Celia,160,1847804,0,18000,10000,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2231,G_CHEN,Champion Chen,Champion Chen,160,2249350,5000,18000,10000,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2232,G_GERTIE,Stalker Gertie,Stalker Gertie,160,2057279,0,18000,10000,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2233,G_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,1894278,0,18000,10000,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2234,G_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,1894278,0,18000,10000,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2235,B_RANDEL,Paladin Randel,Paladin Randel,160,6870000,0,4621500,2664000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,2310750,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13062,5000,2160,5000,1490,5000,0,0,0,0,0,0
-2236,B_FLAMEL,Creator Flamel,Creator Flamel,160,4230000,0,5223570,2630354,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,2611785,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1387,5000,1392,5000,1393,5000,0,0,0,0,0,0
-2237,B_CELIA,Professor Celia,Professor Celia,160,3847804,0,5027308,2509792,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,2513654,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,2854,5000,1584,5000,2582,5000,0,0,0,0,0,0
-2238,B_CHEN,Champion Chen,Champion Chen,160,4249350,5000,5113568,2934974,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,2556784,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1285,5000,1813,5000,16017,5000,0,0,0,0,0,0
-2239,B_GERTIE,Stalker Gertie,Stalker Gertie,160,4057279,0,4420698,2691274,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,2210349,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13069,5000,13070,5000,1291,5000,0,0,0,0,0,0
-2240,B_ALPHOCCIO,Clown Alphoccio,Clown Alphoccio,160,3894278,0,4226036,2468972,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2113018,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,18103,5000,1290,5000,1913,5000,0,0,0,0,0,0
-2241,B_TRENTINI,Gypsy Trentini,Gypsy Trentini,160,3894278,0,4463758,2563096,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2231879,0,0,0,0,0,0,12623,9000,12616,9000,616,9000,6224,9000,18103,5000,18110,5000,1963,5000,0,0,0,0,0,0
-2242,MD_DESERT_WOLF,Desert Wolf,Desert Wolf,135,551578,0,0,0,1,1040,1158,151,39,93,69,63,61,82,42,10,12,1,6,20,0x37B5,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2243,MD_DESERT_WOLF_B,Desert Wolf,Desert Wolf,130,274531,0,0,0,1,66,82,13,0,10,12,8,5,17,7,10,12,0,6,20,0x37B5,300,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-// Fix me! 2244 needs new info.
-2244,QUEST_CHEN,Champion Chen,Champion Chen,99,15000,2000,0,0,1,1700,3000,216,134,126,74,71,123,99,65,10,12,1,7,68,0x37B5,180,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2245,EXP_TEST,Exp Test,Exp Test,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2246,Q_WOOTAN_FIGHTER,Wootan Fighter,Wootan Fighter,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2247,Q_INCREASE_SOIL,Increase Soil,Mi Gao,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2248,GOLDPORING,Gold Poring,Gold Poring,1,15,0,0,0,1,1,2,160,5,1,1,1,1,6,30,10,12,1,3,21,0xC3,400,1872,672,480,0,0,0,0,0,0,0,7602,3000,7470,3000,6012,3000,6485,3000,6486,3000,6487,3000,6487,3000,0,0,0,0,0,0
+2221,RANDEL,Randal,Randel,141,478745,1,64734,48110,1,3055,1230,180,56,158,74,213,50,185,65,10,12,1,7,66,0x3095,180,76,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,617,200,985,200,1435,20,2162,20,6470,300,0,0,0,0,0,0
+2222,FLAMEL,Flamel,Flamel,141,316468,1,52794,46160,1,2017,1602,86,12,141,78,70,81,147,51,10,12,1,7,63,0x3095,180,1152,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,617,200,984,200,15044,20,16010,2,6470,300,0,0,0,0,0,0
+2223,CELIA,Celia,Celia,141,253145,1,44214,38034,1,1612,2450,74,312,136,99,61,121,121,49,10,12,1,7,68,0x3095,180,1152,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,2853,40,985,200,18111,20,1654,2,6470,300,0,0,0,0,0,0
+2224,CHEN,Chen,Chen,141,279562,25,51368,39620,1,2501,1248,125,56,122,81,83,130,201,61,10,12,1,6,81,0x3195,180,76,768,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,984,200,1830,20,1814,10,6470,300,0,0,0,0,0,0
+2225,GERTIE,Gertie,Gertie,141,266926,1,48534,40466,1,3684,1207,108,10,180,125,55,51,211,45,10,12,1,6,85,0x3195,150,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,985,200,18109,20,13061,20,6470,300,0,0,0,0,0,0
+2226,ALPHOCCIO,Alphoccio,Alphoccio,142,256202,1,44384,40644,1,1273,3076,84,15,120,97,71,181,81,81,10,12,1,7,64,0x3095,180,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,984,200,2161,20,1930,20,6470,300,0,0,0,0,0,0
+2227,TRENTINI,Trentini,Trentini,142,204962,1,31990,26496,2,1070,3206,70,12,115,81,65,194,95,76,10,12,1,7,64,0x3095,180,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,2465,40,985,200,2892,20,1984,20,6470,300,0,0,0,0,0,0
+2228,G_RANDEL,Paladin Randel,Randel,160,3163000,1,0,0,1,5537,3017,667,151,291,155,201,101,265,66,10,12,1,7,86,0x37B5,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2229,G_FLAMEL,Biochemist Flamel,Flamel,160,2531750,1,0,0,1,2355,2514,253,113,159,175,157,170,237,71,10,12,1,7,83,0x37B5,100,1152,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2230,G_CELIA,Scholar Celia,Celia,160,2025160,1,0,0,1,2481,3114,201,543,165,148,171,155,267,85,10,12,1,7,68,0x37B5,100,1152,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2231,G_CHEN,Champion Chen,Chen,160,2236500,1553,0,0,1,3617,1947,216,134,180,165,165,50,298,66,10,12,1,7,81,0x37B5,100,76,768,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2232,G_GERTIE,Stalker Gertie,Gertie,160,2135410,1,0,0,1,6162,1274,251,107,217,315,127,51,333,61,10,12,1,7,85,0x37B5,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2233,G_ALPHOCCIO,Minstel Alphoccio,Alphoccio,160,2049620,1,0,0,1,2641,3749,201,109,219,161,130,107,270,99,10,12,1,7,84,0x37B5,150,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2234,G_TRENTINI,Gypsy Trentini,Trentini,160,2049620,1,0,0,2,2016,4036,181,112,167,247,165,217,233,61,10,12,1,7,84,0x37B5,150,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2235,B_RANDEL,Paladin Randel,Randel,160,6870000,1,7348978,3908302,1,5537,3017,667,151,291,155,201,101,265,66,10,12,1,7,86,0x37B5,100,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,2160,4000,13062,4000,0,0,0,0,0,0,0,0
+2236,B_FLAMEL,Biochemist Flamel,Flamel,160,4230000,1,5223570,2630354,1,2355,2514,253,113,159,175,157,170,237,71,10,12,1,7,83,0x37B5,100,1152,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,1393,4000,1392,4000,1387,4000,0,0,0,0,0,0
+2237,B_CELIA,Scholar Celia,Celia,160,3847804,1,5027308,2509792,1,2481,3114,201,543,165,148,171,155,267,85,10,12,1,7,68,0x37B5,100,1152,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,2854,4000,0,0,0,0,0,0,0,0,0,0
+2238,B_CHEN,Champion Chen,Chen,160,4249350,1553,5113568,2934974,1,3617,1947,216,134,180,165,165,50,298,66,10,12,1,6,81,0x37B5,100,76,768,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,1285,4000,1813,4000,0,0,0,0,0,0,0,0
+2239,B_GERTIE,Stalker Gertie,Gertie,160,4057279,1,4420698,2691274,1,6162,1274,251,107,217,315,127,51,333,61,10,12,1,6,85,0x37B5,100,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,13070,4000,13069,4000,0,0,0,0,0,0,0,0
+2240,B_ALPHOCCIO,Minstel Alphoccio,Alphoccio,160,3894278,1,4226036,2468972,1,2641,3749,201,109,219,161,130,107,270,99,10,12,1,7,84,0x37B5,150,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,18103,4000,0,0,0,0,0,0,0,0,0,0
+2241,B_TRENTINI,Gypsy Trentini,Trentini,160,3894278,1,4463758,2563096,2,2016,4036,181,112,167,247,165,217,233,61,10,12,1,7,84,0x37B5,150,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,1985,4000,18103,4000,0,0,0,0,0,0,0,0
+2242,MD_DESERT_WOLF,Desert Wolf,Desert Wolf,135,551578,1,0,0,1,676,59,151,39,151,69,63,72,98,42,10,12,1,6,20,0x83,150,200,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2243,MD_DESERT_WOLF_B,Baby Desert Wolf,Baby Desert Wolf,130,274531,1,0,0,1,33,8,13,123,101,12,8,121,17,7,10,12,0,6,20,0x83,130,200,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2244,QUEST_CHEN,Champion Chen,Dark Martial Arts Master,130,300,1,0,0,1,103,23,25,56,122,81,83,130,201,61,10,12,1,1,81,0x83,300,200,768,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2245,EXP_TEST,EXP_TEST,Experience Test,1,100,1,200,200,1,8,1,2,5,6,1,1,0,6,5,10,12,1,7,21,0x0,400,1000,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2246,Q_WOOTAN_FIGHTER,Q_WOOTAN_FIGHTER,Wootan Fighter,95,9000,1,2800,4000,1,255,36,103,8,63,14,36,5,62,15,10,12,1,7,43,0x0,200,912,1344,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2247,Q_INCREASE_SOIL,Q_INCREASE_SOIL,Mi Gao,95,20000,1,2800,4000,1,365,30,112,39,67,23,41,49,94,30,10,12,1,0,62,0x0,445,106,1056,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+
+2248,GOLDPORING,Golden Poring,Golden Poring,1,15,1,0,0,0,0,0,160,5,1,1,1,1,999,1,10,12,1,3,21,0x81,400,1872,672,480,0,0,0,0,0,0,0,6012,4000,6485,4000,6486,4000,6487,4000,7470,4000,7602,4000,12696,10000,12697,10000,0,0,0,0
// Hall of Abyss Guild Dungeon
-2249,PYURIEL,Pyuriel,Pyuriel,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2250,LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2251,GIOIA,Gioia,Gioia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2252,ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2253,DAEHYON,Daehyon,Daehyon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2254,SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2255,KADES,Kades,Kades,143,2466698,0,0,0,1,700,1000,479,262,100,100,100,100,100,100,10,12,2,0,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2256,RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2249,PYURIEL,Pyuriel,Angry Student Pyuriel,141,2205000,1,3000246,2400000,2,2515,1513,388,206,196,131,125,276,401,156,10,12,1,7,83,0x37B5,100,576,1380,360,750061,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0
+2250,LORA,Lora,Warrior Laura,136,500255,1,33134,27576,2,1985,1701,224,58,144,92,86,69,149,68,10,12,0,7,43,0x3795,130,1600,432,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0
+2251,GIOIA,Gioia,Gioia,146,2507989,1,3006902,2607094,1,1105,2601,436,218,180,201,156,190,299,77,10,12,2,0,84,0x37B5,100,1344,2592,432,751725,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0
+2252,ELVIRA,Elvira,Elvira,138,501765,1,35694,27138,3,699,2101,171,68,189,105,92,85,198,72,10,12,0,0,64,0x3795,120,880,1224,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0
+2253,DAEHYON,Daehyon,General Daehyon,142,2500148,1,3003122,2548440,2,2710,1410,494,123,116,123,154,99,217,98,10,12,2,7,62,0x37B5,100,900,792,432,750780,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0
+2254,SOHEON,Soheon,Samurai Soheon,137,502015,1,31430,25080,2,1591,1036,210,178,118,244,98,126,246,102,10,12,1,7,64,0x3795,120,1000,1008,432,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0
+2255,KADES,Kades,Dark Guardian Kades,143,2505000,1,3208000,2620000,1,2201,2001,479,262,191,223,187,155,362,163,10,12,2,0,67,0x37B5,100,900,648,480,802000,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0
+2256,RUDO,Rudo,Rudo,135,501489,1,27266,24818,1,1401,1501,196,96,106,65,61,42,125,72,10,12,0,8,66,0x3795,120,1576,504,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0
2257,I_PIAMETTE,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2258,I_PIAMETTE_,Piamette,Piamette,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2259,I_GARDEN_KEEPER,Garden Keeper,Garden Keeper,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
@@ -1412,18 +1412,18 @@
2274,I_YGNIZEM,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2275,I_YGNIZEM_,Ygnizem,Egnigem Cenia,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2276,I_DOPPELGANGER,Doppelganger,Doppelganger,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2277,G_LORA,Lora,Lora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2278,G_ELVIRA,Elvira,Elvira,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2279,G_SOHEON,Soheon,Soheon,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2280,G_RUDO,Rudo,Rudo,135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2281,GLD_DARK_SHADOW,Abysmal Dark Shadow,Abysmal Dark Shadow,147,214109,0,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,87,0x37B5,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1
-2282,GLD_DARK_FRAME,Abysmal Dark Frame,Abysmal Dark Frame,145,200018,0,992,1115,1,318,348,81,37,69,37,36,10,53,5,10,12,1,6,67,0x37B5,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1
-2283,GLD_DARK_PRIEST,Abysmal Dark Priest,Abysmal Dark Priest,141,191878,0,2430,1667,2,355,554,62,41,5,60,41,89,78,42,10,12,1,6,89,0x37B5,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2626,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1
-2284,GLD_KOBOLD_1,Abysmal Kobold,Abysmal Kobold,143,180483,0,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x37B5,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1
-2285,GLD_KOBOLD_2,Abysmal Kobold,Abysmal Kobold,142,181340,0,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x37B5,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1
-2286,GLD_KOBOLD_3,Abysmal Kobold,Abysmal Kobold,141,182830,0,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x37B5,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1
-2287,GLD_KOBOLD_ARCHER,Abysmal Kobold Archer,Abysmal Kobold Archer,142,180530,0,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x37B5,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1
-2288,GLD_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2277,G_LORA,Lora,Warrior Laura,136,500255,1,0,0,2,1985,1701,224,58,144,92,86,69,149,68,10,12,0,7,43,0x3795,130,1600,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2278,G_ELVIRA,Elvira,Elvira,138,501765,1,0,0,3,699,2101,171,68,189,105,92,85,198,72,10,12,0,0,64,0x3795,120,880,1224,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2279,G_SOHEON,Soheon,Soheon,137,502015,1,0,0,2,1591,1036,210,178,118,244,98,126,246,102,10,12,1,7,64,0x3795,120,1000,1008,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2280,G_RUDO,Rudo,Rudo,135,501489,1,0,0,1,1401,1501,196,96,106,65,61,42,125,72,10,12,0,8,66,0x3795,120,1576,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2281,GLD_DARK_SHADOW,Abysmal Dark Shadow,Dark Shadow,147,204109,1,23000,20200,1,1653,1621,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,6,6089,1000,2783,2,12676,4,6224,4,0,0,0,0,0,0
+2282,GLD_DARK_FRAME,Abysmal Dark Frame,Dark Frame,145,180018,1,20202,20006,1,1850,1601,81,37,69,37,36,10,64,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,1587,2,12676,100,1000,80,747,4,0,0,0,0,0,0
+2283,GLD_DARK_PRIEST,Abysmal Dark Priest,Dark Priest,141,181878,0,21096,21602,2,1326,1651,62,41,5,60,41,89,94,42,10,12,1,6,89,0x3795,200,864,1252,476,0,0,0,0,0,0,0,1586,2,2898,2,12680,4,716,450,1009,2,2319,6,7005,3000,0,0,0,0,0,0
+2284,GLD_KOBOLD_1,Abysmal Kobold,Dark Axe Kobold,145,194830,1,22080,21460,1,1851,201,103,25,109,76,61,53,98,30,10,12,1,7,44,0x3795,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1396,2,12679,4,0,0,0,0,0,0,0,0
+2285,GLD_KOBOLD_2,Abysmal Kobold,Dark Hammer Kobold,142,181340,1,20720,20300,1,1401,133,117,59,96,61,55,48,95,20,10,12,1,7,45,0x3795,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1396,2,12679,4,0,0,0,0,0,0,0,0
+2286,GLD_KOBOLD_3,Abysmal Kobold,Dark Mace Kobold,141,182830,1,20240,20600,1,1301,134,109,48,103,64,59,42,80,20,10,12,1,7,43,0x3795,300,1228,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1436,2,12679,4,0,0,0,0,0,0,0,0
+2287,GLD_KOBOLD_ARCHER,Abysmal Kobold Archer,Dark Kobold Archer,142,180530,1,21140,20200,9,1504,121,84,5,99,39,48,30,124,25,10,12,0,7,23,0x3795,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,12676,10,18114,10,756,80,0,0,0,0,0,0
+2288,GLD_TREASURE,Treasure Chest,Treasure Chest,140,5,0,0,0,1,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,11547,4000,11548,2000,11549,2000,12675,100,7444,100,12680,100,11547,4000,1661,20,0,0,0,0
// Additional Monsters
2289,E_FABRE,Fabre,Fabre,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
@@ -1443,80 +1443,80 @@
2303,E_MAYA,Maya,Maya,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2304,E_QUEEN_SCARABA,Queen Scaraba,Queen Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2305,E_UNGOLIANT,Ungoliant,Ungoliant,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2306,E_GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2306,E_GOLDEN_BUG,Golden Thief Bug,Golden Thief Bug,12,15,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,2,4,43,0x83,100,768,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2307,J_MISTRESS,Mistress,Mistress,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2308,KO_KAGE,Zanzou,Zanzou,1,50,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,7,20,0x0,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// Malaya Port
-2309,BUNGISNGIS,Bungisngis,Bungisngis,121,25513,0,1960,1650,1,851,1276,115,35,100,100,30,30,100,30,10,12,2,7,42,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,2000,6510,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2310,ENGKANTO,Engkanto,Engkanto,125,23948,0,1723,1547,1,675,1012,101,41,100,100,30,30,125,30,10,12,1,7,40,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,1000,6510,2000,528,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0
-2311,MANANANGGAL,Manananggal,Manananggal,107,20451,0,1415,1410,1,801,1201,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,3000,6511,2000,6510,1000,7006,500,913,500,0,0,0,0,0,0,0,0,0,0
-2312,MANGKUKULAM,Mangkukulam,Mangkukulam,110,20151,0,1517,1351,1,582,873,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,7071,2000,6510,2000,6511,1000,7054,1000,12700,50,0,0,0,0,0,0,0,0,0,0
-2313,TIKBALANG,Tikbalang,Tikbalang,115,22131,0,1756,1351,1,781,1171,84,34,100,125,30,30,100,30,10,12,2,2,64,0x3795,150,1000,768,360,0,0,0,0,0,0,0,6496,500,12700,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2314,TIYANAK,Tiyanak,Tiyanak,105,17146,0,1314,1101,1,457,685,76,21,100,100,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,938,1000,6508,1500,6509,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2315,WAKWAK,Wakwak,Wakwak,111,20451,0,1374,1254,1,561,841,24,71,100,200,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,4000,6509,2000,12700,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2316,JEJELING,Jejeling,Jejeling,100,10247,0,801,741,1,675,1012,100,26,100,100,30,30,100,30,10,12,2,3,42,0x81,400,1872,672,480,0,0,0,0,0,0,0,6498,1000,909,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2317,BANGUNGOT_1,Bangungot,Bangungot,115,1519517,0,781541,761201,1,2561,3329,411,95,200,100,30,250,200,100,10,12,1,6,47,0x37B5,200,768,768,576,100,607,5500,617,2250,616,450,6499,7000,6524,2000,6517,2000,2491,1000,0,0,0,0,0,0,0,0,0,0,0,0
-2318,BANGUNGOT_2,Bangungot,Bangungot,99,1519517,0,0,0,1,7,10,411,95,200,100,30,250,200,100,10,12,1,6,47,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2319,BUWAYA,Buwaya,Buwaya,151,4090365,0,3000012,2801564,1,3614,4698,201,78,200,250,30,250,150,100,10,12,2,9,81,0x37B5,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6525,2000,6518,2000,2590,1000,0,0,0,0,0,0,0,0,0,0,0,0
-2320,BAKONAWA_1,Bakonawa,Bakonawa,156,3351884,0,2510111,2345151,9,4801,6241,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6523,2000,6516,2000,15051,1000,0,0,0,0,0,0,0,0,0,0,0,0
-2321,BAKONAWA_2,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2322,BAKONAWA_3,Bakonawa,Bakonawa,156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2323,EVENT_BOMB,Bomb Poring,Bomb Poring,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2324,EVENT_RANGE,Penomena,Penomena,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2325,M_BAPHOMET_,Baphomet,Baphomet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2326,M_GALAPAGO,Galapago,Galapago,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2327,BANGUNGOT_3,Bangungot,Bangungot,115,250,0,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x30F5,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2328,MA_DRUM,Drum,Drum,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2329,BUWAYA_EGG,Buwaya Egg,Buwaya Egg,100,10000,0,0,0,1,7,10,90,90,1,1,50,50,1,80,10,12,0,0,60,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2330,BUWAYA_SLAVE,Buwaya Slave,Buwaya Slave,135,20145,0,0,0,1,2300,3100,105,71,100,50,70,50,100,30,10,12,0,3,22,0x3795,250,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2331,MA_SEAW,Seaweed,Seaweed,100,10,0,0,0,1,7,10,0,5,1,1,100,100,1,30,10,12,0,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2332,BUWAYA_GHOST,Fake Buwaya,Fake Buwaya,138,30000,0,30000,30000,1,2726,3398,481,78,150,200,30,200,100,100,10,12,0,3,81,0x37B5,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2333,BUWAYA_WEAK,Buwaya's Weakness,Buwaya's Weakness,138,20,0,0,0,1,7,10,100,78,1,1,1,1,6,30,10,12,0,3,81,0x60,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2334,G_WAKWAK,Wakwak,Wakwak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2335,MA_TREASURE,Treasure Chest,Treasure Chest,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2336,DOMOVOI,Domovoi,Domovoi,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2337,HIDDEN_MOB,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2338,MD_MANANANGGAL,Bangungot Manananggal,Bangungot Manananggal,107,204511,0,0,0,1,901,1124,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2339,MD_MANGKUKULAM,Bangungot Mangkukulam,Bangungot Mangkukulam,110,102154,0,0,0,1,598,766,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2340,MD_TIYANAK,Tiyanak,Tiyanak,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2341,RWC_BOSS2011,RWC Boss,RWC Boss,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2309,BUNGISNGIS,Bungisngis,Bungisngis,121,25513,0,3880,3300,1,851,151,115,35,71,32,61,30,74,19,10,12,2,7,42,0x3795,200,1568,432,360,0,0,0,0,0,0,0,7054,2000,6511,2000,985,20,12700,200,0,0,0,0,0,0,0,0,0,0,4582,1
+2310,ENGKANTO,Engkanto,Engkanto,125,23948,1,3446,3094,1,675,124,101,41,68,57,49,57,81,27,10,12,1,7,40,0x3795,200,1424,576,360,0,0,0,0,0,0,0,7054,2000,6511,2000,528,2000,12700,200,0,0,0,0,0,0,0,0,0,0,4583,1
+2311,MANANANGGAL,Manananggal,Manananggal,107,20451,1,2830,2820,1,801,103,64,31,75,85,45,71,75,46,10,12,1,6,47,0x3795,100,280,720,360,0,0,0,0,0,0,0,6508,4000,6510,2000,7006,2000,913,2000,6511,2000,6509,2000,12700,200,0,0,0,0,4584,1
+2312,MANGKUKULAM,Mangkukulam,Mangkukulam,110,20151,1,3034,2702,1,582,196,89,75,35,71,31,82,64,52,10,12,1,6,40,0x3795,150,1664,336,480,0,0,0,0,0,0,0,7054,2000,6510,2000,7071,2000,6511,2000,6509,2000,12700,200,0,0,0,0,0,0,4585,1
+2313,TIKBALANG,Tikbalang,Tikbalang,115,22131,1,3512,2702,1,781,115,84,34,71,52,84,44,64,46,10,12,2,2,64,0x3795,130,1064,936,360,0,0,0,0,0,0,0,0,0,6496,1000,984,20,12700,200,0,0,0,0,0,0,0,0,0,0,4586,1
+2314,TIYANAK,Tiyanak,Tiyanak,105,17146,1,2628,2202,1,457,251,76,21,41,58,41,51,72,47,10,12,0,6,47,0x3795,100,496,504,360,0,0,0,0,0,0,0,6508,3000,0,0,6509,2000,938,2000,0,0,0,0,0,0,0,0,0,0,4587,1
+2315,WAKWAK,Wakwak,Wakwak,111,20012,1,2748,2508,1,561,301,24,71,54,75,64,65,77,31,10,12,0,6,47,0x3795,100,424,576,360,0,0,0,0,0,0,0,6508,3000,6509,2000,12700,400,0,0,0,0,0,0,0,0,0,0,0,0,4588,1
+2316,JEJELING,Jejeling,Jejeling,100,10247,1,1602,1482,1,450,715,100,26,51,71,84,54,15,104,10,12,2,3,42,0x81,400,1328,672,480,0,0,0,0,0,0,0,6498,4000,909,2000,6511,200,6510,200,6509,200,12700,200,0,0,0,0,0,0,4589,1
+2317,BANGUNGOT_1,Bangungot,Bangungot,115,1519517,1,0,0,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x37B5,200,920,1080,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4590,1
+2318,BANGUNGOT_2,Bangungot,Bangungot,99,1409758,1,0,0,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x60,2000,920,1080,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2319,BUWAYA,Buwaya,Buwaya,151,4090365,1,6000024,5603128,1,3614,3501,201,78,151,201,130,231,310,66,10,12,2,9,81,0x37B5,100,1424,576,360,1500006,0,0,0,0,0,0,6518,4000,6525,100,6499,4000,2590,2000,2169,200,0,0,6499,20000,0,0,0,0,4592,1
+2320,BAKONAWA_1,Bakonawa,Bakonawa,156,3351884,1,0,0,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4591,1
+2321,BAKONAWA_2,Bakonawa,Bakonawa,156,3351884,1,0,0,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2322,BAKONAWA_3,Bakonawa,Bakonawa,156,3351884,1,5020222,4690302,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2323,EVENT_BOMB,Bomb Poring,Bomb Poring,100,50000,1,0,0,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,200,1672,672,480,0,0,0,0,0,0,0,664,1000,665,1000,666,1000,667,1000,0,0,0,0,0,0,0,0,0,0,0,0
+2324,EVENT_RANGE,Penomena,Penomena,100,50000,1,0,0,7,481,522,160,99,76,38,35,35,107,10,10,12,1,5,25,0x3695,200,832,500,600,0,0,0,0,0,0,0,664,1000,665,1000,666,1000,667,1000,0,0,0,0,0,0,0,0,0,0,0,0
+2325,M_BAPHOMET_,Baphomet,Baphomet Jr.,57,7510,204,0,0,1,810,145,70,40,52,60,36,17,57,25,10,12,0,6,27,0x37B5,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2326,M_GALAPAGO,Galapago,Galapago,45,7513,201,0,0,1,760,155,70,40,30,28,29,18,30,16,10,12,0,2,22,0x37B5,165,1430,1080,1080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2327,BANGUNGOT_3,Bangungot,Bangungot Doll,115,250,1,1563082,1522402,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x30F5,2000,0,0,0,0,0,0,0,0,0,0,6517,4000,6524,100,6499,4000,2491,2000,2169,200,0,0,6499,20000,0,0,0,0,0,0
+2328,MA_DRUM,Drum,Book,1,200,0,0,0,1,1,1,100,99,0,0,0,0,0,0,10,12,0,0,20,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2329,BUWAYA_EGG,Buwaya's Egg,Buwaya's Egg,100,10000,1,0,0,0,1,1,90,90,1,1,1,1,1,1,10,12,0,0,60,0x0,2000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2330,BUWAYA_SLAVE,Buwaya's Slave,Slave,135,20145,1,0,0,1,2413,2041,105,71,151,120,110,102,143,61,10,12,0,3,22,0x3795,200,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2331,MA_SEAW,Seaweed,Seaweed,100,10,1,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,0,5,21,0x1C4,2000,384,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2332,BUWAYA_GHOST,Fake Buwaya,Buwaya,138,30000,1,0,0,1,1280,1252,481,78,201,248,174,112,371,57,10,12,0,3,81,0x37B5,100,1424,576,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2333,BUWAYA_WEAK,Buwaya's Weakness,Weakpoint,138,20,1,0,0,1,0,1,100,78,0,0,0,0,0,0,10,12,0,3,81,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2334,G_WAKWAK,Wakwak,Wakwak,145,194830,1,0,0,1,1544,3171,24,104,101,154,104,184,151,71,10,12,0,6,47,0x83,100,424,576,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2335,MA_TREASURE,Treasure Chest,Bakonawa's Treasure,140,5,0,0,0,1,0,0,100,0,0,0,0,0,1199,0,10,12,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,6516,4000,6523,100,6499,4000,15051,2000,2169,200,969,4000,6499,20000,0,0,0,0,0,0
+2336,DOMOVOI,Domovoi,Domovoi,38,898,1,135,152,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x83,200,800,1200,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2337,HIDDEN_MOB,Hidden Mob,Monster,151,10000,200,0,0,7,0,1000,200,10,200,200,200,200,200,200,12,12,0,4,88,0x1C4,2000,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2338,MD_MANANANGGAL,Bangungot Manananggal,Manananggal,107,204511,1,0,0,1,801,103,64,31,75,85,45,71,75,46,10,12,1,6,47,0x3795,100,280,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2339,MD_MANGKUKULAM,Bangungot Mangkukulam,Mangkukulam,110,102154,1,0,0,1,582,196,89,75,35,71,31,82,64,52,10,12,1,6,40,0x3795,150,1664,336,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2340,MD_TIYANAK,Tiyanak,Tiyanak,105,50211,1,0,0,1,457,251,76,21,41,58,41,51,72,47,10,12,0,6,47,0x3795,100,496,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2341,RWC_BOSS2011,RWC Boss,2011 RWC Boss,141,3205000,1,2600000,2200000,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,650000,616,5000,616,5000,616,5000,12539,10000,7444,10000,12608,10000,12549,10000,12623,10000,617,10000,12696,10000,12697,10000,0,0,0,0
// Additional Mercenary Monsters
-2342,MER_DIABOLIC,Diabolic,Diabolic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2343,HIDDEN_MOB_W,Hidden Mob,Hidden Mob,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2342,MER_DIABOLIC,Diabolic,Diabolic,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2343,HIDDEN_MOB_W,Hidden Mob,Monster,151,10000,200,0,0,7,0,1000,200,10,200,200,200,200,200,200,12,12,0,4,88,0x1C4,2000,0,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2344,MER_WISH_MAIDEN,Wish Maiden,Wish Maiden,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2345,MER_ZHERLTHSH,Zherlthsh,Zealotus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2345,MER_ZHERLTHSH,Zherlthsh,Zealotus,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2346,MER_KTULLANUX,Ktullanux,Ktullanux,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2347,MER_EDDGA,Eddga,Eddga,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2348,MER_CIVIL_SERVANT,Civil Servant,Mao Guai,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2349,MER_LOLI_RURI,Loli Ruri,Loli Ruri,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2350,MER_SEDORA,Sedora,Sedora,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2351,MER_CHEPET,Chepet,Chepet,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2347,MER_EDDGA,Eddga,Eddga,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2348,MER_CIVIL_SERVANT,Civil Servant,Mao Guai,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2349,MER_LOLI_RURI,Loli Ruri,Loli Ruri,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2350,MER_SEDORA,Sedora,Lamp Rey,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2351,MER_CHEPET,Chepet,Chepet,83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-// Nightmare Pyrimids
+// Nightmare Pyramids
2352,E_RSX_0805,RSX 0805,RSX 0805,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2353,N_MINOROUS,Nightmare Minorous,Nightmare Minorous,121,27141,0,16176,12252,1,853,1279,131,41,1,1,1,1,6,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2354,N_MUMMY,Nightmare Mummy,Nightmare Mummy,117,22557,0,15480,11670,1,761,1141,110,21,1,1,1,1,6,30,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2355,N_VERIT,Nightmare Verit,Nightmare Verit,115,21034,0,5280,4584,1,623,934,82,20,1,1,1,1,6,30,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2356,N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2357,G_N_MIMIC,Nightmare Mimic,Nightmare Mimic,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2358,N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2359,G_N_ARCLOUSE,Nightmare Arclouse,Nightmare Arclouse,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2360,N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2361,G_N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Nightmare Ancient Mummy,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2362,N_AMON_RA,Nightmare Amon Ra,Nightmare Amon Ra,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2353,N_MINOROUS,Nightmare Minorous,Minorous (Nightmare),121,27141,1,4402,3820,1,853,154,131,41,71,47,51,51,81,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,941,10000,756,400,1361,4,1005,20,6254,200,1301,400,568,600,0,0,0,0,4126,1
+2354,N_MUMMY,Nightmare Mummy,Mummy (Nightmare),117,22557,1,4300,3242,1,761,192,110,21,61,5,21,1,72,0,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,930,18000,756,200,934,1000,2604,4,2611,20,525,500,508,2000,0,0,0,0,4106,1
+2355,N_VERIT,Nightmare Verit,Verit (Nightmare),115,21034,1,4148,3142,1,623,142,82,20,57,7,31,15,7,7,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,929,18000,912,1400,930,2200,509,1200,2609,4,2612,400,639,40,0,0,0,0,4107,1
+2356,N_MIMIC,Nightmare Mimic,Mimic (Nightmare),137,63101,1,6402,5408,1,1345,413,210,40,71,180,35,21,61,0,10,12,1,0,60,0x3795,100,972,500,288,0,0,0,0,0,0,0,617,12,603,100,1065,2400,7938,2000,0,0,2626,4,757,540,0,0,0,0,4205,1
+2357,G_N_MIMIC,Nightmare Mimic,Mimic (Nightmare),137,63101,1,0,0,1,1345,413,210,40,71,180,35,21,61,0,10,12,1,0,60,0x3795,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2358,N_ARCLOUSE,Nightmare Arclouse,Arclouze (Nightmare),134,48013,1,5012,4606,1,1104,341,101,45,65,85,51,45,251,31,10,12,1,4,42,0x3795,100,960,500,480,0,0,0,0,0,0,0,1096,7000,938,6000,943,1600,912,1000,716,600,997,40,912,5000,0,0,0,0,4240,1
+2359,G_N_ARCLOUSE,Nightmare Arclouse,Arclouze (Nightmare),134,48013,1,0,0,1,1104,341,101,45,65,85,51,45,251,31,10,12,1,4,42,0x3795,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2360,N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Ancient Mummy,141,90157,1,9424,8002,1,1841,347,142,51,126,75,61,85,187,24,10,12,1,1,49,0x3795,175,1772,120,384,0,0,0,0,0,0,0,930,9000,934,3600,2624,4,2611,300,12735,20,756,300,757,200,0,0,0,0,4248,1
+2361,G_N_ANCIENT_MUMMY,Nightmare Ancient Mummy,Ancient Mummy (Nightmare),141,90157,1,0,0,1,1841,347,142,51,126,75,61,85,187,24,10,12,1,1,49,0x3795,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2362,N_AMON_RA,Nightmare Amon Ra,Amon Ra (Nightmare),145,2515784,1,3252974,2604174,3,4106,3201,367,301,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,813243,607,5500,608,3500,732,5500,5053,300,2615,100,7211,14000,985,7600,616,800,1552,20,607,3000,0,0,0,0,4236,1
// Eclage (14.2)
-2363,MENBLATT,Menblatt,Menblatt,143,82200,0,4150,3421,1,816,1224,79,50,1,1,1,1,6,30,10,12,1,4,44,0x3795,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2364,PETAL,Petal,Petal,141,81031,0,4058,3361,1,671,1006,73,33,1,1,1,1,6,30,10,12,1,2,24,0x3795,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2365,CENERE,Cenere,Cenere,146,130131,0,7117,5712,1,1802,2342,87,81,1,1,1,1,6,30,10,12,0,3,24,0x3795,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2366,ANTIQUE_BOOK,Antique Book,Antique Book,143,134615,0,7225,5870,1,1861,2419,74,42,1,1,1,1,6,30,10,12,0,0,60,0x3795,150,176,912,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2367,LICHTERN_B,Blue Lichtern,Blue Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2368,LICHTERN_Y,Yellow Lichtern,Yellow Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2369,LICHTERN_R,Red Lichtern,Red Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2370,LICHTERN_G,Green Lichtern,Green Lichtern,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2371,FAITHFUL_MANAGER,Faithful Manager,Faithful Manager,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2363,MENBLATT,Menblatt,Menblatt,143,82200,1,8300,6842,3,816,201,79,50,70,68,40,55,108,30,10,12,1,4,44,0x3795,145,472,1056,480,0,0,0,0,0,0,0,6557,3000,7168,1000,7163,2304,12813,5,0,0,0,0,0,0,7199,500,0,0,0,0
+2364,PETAL,Petal,Petal,141,81031,1,8116,6722,9,671,173,73,33,70,82,55,45,108,25,10,12,1,2,24,0x3795,200,1500,768,480,0,0,0,0,0,0,0,6558,3000,12346,1000,1026,1000,6089,250,12814,5,0,0,0,0,7199,500,0,0,0,0
+2365,CENERE,Cenere,Cenere,146,130131,1,14234,11424,1,1802,1031,87,81,67,39,30,35,95,45,10,12,0,3,24,0x3795,300,1500,720,360,0,0,0,0,0,0,0,6561,5000,7322,500,7001,1500,7320,1000,12815,500,0,0,0,0,0,0,0,0,0,0
+2366,ANTIQUE_BOOK,Antique Book,Antique Book,148,134615,1,14450,11740,1,1861,1213,74,42,67,53,32,44,125,5,10,12,0,0,60,0x3795,150,864,960,480,0,0,0,0,0,0,0,6560,3000,7015,1000,1097,1000,12812,5,0,0,0,0,0,0,0,0,0,0,0,0
+2367,LICHTERN_B,Blue Lichtern,Lichtern,149,131211,1,14374,11402,1,1513,1410,76,41,124,74,60,55,92,50,10,12,0,0,81,0x3795,150,480,1728,480,0,0,0,0,0,0,0,1000,1000,1001,1000,995,20,12812,5,0,0,0,0,0,0,0,0,0,0,0,0
+2368,LICHTERN_Y,Yellow Lichtern,Lichtern,147,131513,1,14142,11620,1,1416,1561,84,51,141,94,75,91,144,50,10,12,0,0,88,0x3795,150,0,3456,480,0,0,0,0,0,0,0,1000,1000,1001,1000,997,20,12815,5,0,0,0,0,0,0,0,0,0,0,0,0
+2369,LICHTERN_R,Red Lichtern,Lichtern,149,135718,1,14402,12026,1,1647,1449,111,53,147,77,66,65,133,50,10,12,0,0,83,0x3795,150,0,4032,480,0,0,0,0,0,0,0,1000,1000,1001,1000,994,20,12813,5,0,0,0,0,0,0,0,0,0,0,0,0
+2370,LICHTERN_G,Green Lichtern,Lichtern,151,133451,1,14428,11420,1,1547,1594,120,57,121,60,58,62,102,50,10,12,0,0,82,0x3795,100,0,2304,480,0,0,0,0,0,0,0,1000,1000,1001,1000,996,20,12814,5,0,0,0,0,0,0,0,0,0,0,0,0
+2371,FAITHFUL_MANAGER,Faithful Manager,Faithful Manager,155,151548,1,17352,13002,3,2091,1607,204,141,80,28,40,25,88,45,10,12,2,0,80,0x3795,200,480,1536,480,0,0,0,0,0,0,0,6559,3000,12353,1000,970,100,971,100,972,100,0,0,0,0,0,0,0,0,0,0
// Additional Monsters
2372,SOIL,Soil,Soil,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
@@ -1525,11 +1525,11 @@
2375,MOROCC_4_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2376,MOROCC_2_142,Incarnation of Morroc,Incarnation of Morroc,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2377,E_NOVUS_,Novus,Novus,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2378,MER_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2379,XMAS_SMOKEY_SOCK,Smokey Sock,Smokey Sock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2380,XMAS_SMOKEY_GIFT,Smokey Gift,Smokey Gift,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2378,MER_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,30000,1,0,0,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x37B5,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2379,XMAS_SMOKEY_SOCK,Smokey Sock,Socks Stealing Raccoon,10,10,1,0,0,1,70,11,1,0,1,1,16,5,100,100,10,12,0,2,22,0x181,200,1576,576,420,0,0,0,0,0,0,0,6535,6000,6535,6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2380,XMAS_SMOKEY_GIFT,Smokey Gift,Gift Stealing Raccoon,10,10,1,0,0,1,70,11,1,0,1,1,16,5,100,100,10,12,0,2,22,0x181,200,1576,576,420,0,0,0,0,0,0,0,7909,6000,7910,6000,7909,6000,7910,6000,0,0,0,0,0,0,0,0,0,0,0,0
-// Monster's Waitting To Be Coded In
+// Monsters Waitting To Be Coded In
//2381,E_VADON_X_S
//2382,E_VADON_X_H
//2383,E_VADON_X_H_S
@@ -1547,24 +1547,22 @@
//2395,SEIREN
//2396,POSEIDON
//2397,KRAKEN_BABY
-//2398,LITTLE_PORING
+2398,LITTLE_PORING,LITTLE_PORING,Baby Poring,1,40,1,18,10,1,8,1,2,5,6,1,1,0,6,5,10,12,0,3,21,0x0,400,1872,672,480,0,0,0,0,0,0,0,909,9000,1202,100,938,1000,512,5000,507,1000,512,500,507,1000,0,0,0,0,4545,100
//2399,E_MINI_DEMON
//2400,E_DIABOLIC
-//2401,G_PORING
-//2402,POPORING_IMMUNE_M
-//2403,POPORING_IMMUNE_A
-//2404,DEAD_PLANKTON
-//2405,WEAK_SKELETON
-//2406,WEAK_SKEL_SOLDIER
-//2407,SAILOR_SKELETON
-
-2408,DUMMY_10,Dummy 10,Dummy 10,10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2409,DUMMY_50,Dummy 50,Dummy 50,50,99999999,1,0,0,0,0,0,50,50,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2410,DUMMY_100,Dummy 100,Dummy 100,100,99999999,1,0,0,0,0,0,90,90,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-2411,DUMMY_150,Dummy 150,Dummy 150,150,99999999,1,0,0,0,0,0,120,120,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2401,G_PORING,G_PORING,Poring,1,60,1,0,0,1,8,1,2,5,6,1,1,0,6,5,10,12,1,3,21,0x0,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2402,POPORING_IMMUNE_M,POPORING_IMMUNE_M,Poporing,30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2403,POPORING_IMMUNE_A,POPORING_IMMUNE_A,Poporing,30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2404,DEAD_PLANKTON,DEAD_PLANKTON,DEAD_PLANKTON,9,95,1,15,11,1,18,19,21,3,14,5,10,0,10,3,10,12,0,1,29,0x0,400,2208,1008,324,0,0,0,0,0,0,0,1052,2000,910,70,938,170,970,1,0,0,630,5,645,10,0,0,0,0,0,0
+2405,WEAK_SKELETON,WEAK_SKELETON,WEAK_SKELETON,18,280,1,29,21,1,25,33,12,2,15,5,10,0,12,0,10,12,1,1,29,0x0,200,2228,528,576,0,0,0,0,0,0,0,1010,45,932,800,1505,40,909,1500,507,500,2609,15,0,0,0,0,0,0,0,0
+2406,WEAK_SKEL_SOLDIER,WEAK_SKEL_SOLDIER,WEAK_SKEL_SOLDIER,23,468,1,36,40,1,66,75,28,5,18,9,28,5,43,5,10,12,1,1,29,0x0,200,2276,576,432,0,0,0,0,0,0,0,932,1300,756,15,1214,3,507,170,934,2,2315,1,1216,10,0,0,0,0,0,0
+2407,SAILOR_SKELETON,SAILOR_SKELETON,SAILOR_SKELETON,19,310,1,29,21,1,27,35,12,2,15,5,10,0,12,0,10,12,1,1,29,0x0,200,2228,528,576,0,0,0,0,0,0,0,932,700,2287,4,7477,1,2211,60,1104,60,756,10,628,5,0,0,0,0,0,0
+2408,DUMMY_10,Lv. 10,Lv 10,10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2409,DUMMY_50,Lv. 50,Lv 50,50,99999999,1,0,0,0,0,0,50,50,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2410,DUMMY_100,Lv. 100,Lv 100,100,99999999,1,0,0,0,0,0,90,90,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2411,DUMMY_150,Lv. 150,Lv 150,150,99999999,1,0,0,0,0,0,120,120,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2412,E_VALKIWI
-2413,DUMMY_10_FIRE,Dummy 10,Dummy 10,10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,1,0,23,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
+2413,DUMMY_10_FIRE,DUMMY_10_FIRE,DUMMY_10_FIRE,10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,23,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2414,RUNAWAY_BOOK
//2415,L_SEYREN
//2416,L_EREMES
@@ -2078,19 +2076,19 @@
//2921,OWL_VISCOUNT
//2922,G_OWL_VISCOUNT
//2923,OWL_MARQUEES
-//2924,T_ELDER_WILOW
-//2925,T_WILOW
-//2926,T_HARPY
-//2927,T_MINERAL
-//2928,T_GIBBET
-//2929,T_PLASMA_G
-//2930,T_SOLACE
-//2931,T_METALING
-//2932,T_POPORING
-//2933,T_DEVILING
-//2934,T_ARCHANGELING
-//2935,T_EVIL_CLOUD_HERMIT
-//2936,E_GHOSTRING
+2924,T_ELDER_WILOW,Elder Willow,Elder Willow,34,599,1,116,131,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,6067,500,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2925,T_WILOW,Willow,Willow,8,91,1,31,23,1,13,5,38,2,13,3,8,5,12,5,10,12,1,3,22,0x0081,200,1672,672,432,0,0,0,0,0,0,0,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2926,T_HARPY,Harpy,Harpy,83,4423,1,660,760,1,340,41,69,44,71,39,50,31,125,12,10,12,1,6,64,0x3885,155,972,672,470,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2927,T_MINERAL,Mineral,Mineral,96,8300,1,802,1013,1,751,57,127,23,70,61,40,50,74,50,10,12,0,0,40,0x0091,250,648,480,360,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2928,T_GIBBET,Gibbet,Gibbet,105,12999,1,972,874,1,697,85,116,45,103,56,62,55,73,37,10,12,2,6,27,0x3885,180,917,1584,576,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2929,T_PLASMA_G,Plasma,Plasma,116,24975,1,2176,1506,1,851,112,120,3,121,60,58,62,102,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2930,T_SOLACE,Solace,Solace,123,24729,1,2442,2409,2,1234,165,96,96,106,65,61,42,125,72,10,12,1,8,66,0x3295,180,576,420,360,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2931,T_METALING,Metaling,Metaling,81,4300,1,524,537,1,188,39,69,28,58,30,49,17,60,5,10,12,0,0,20,0x0083,300,384,672,480,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2932,T_POPORING,Poporing,Poporing,30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0083,300,1672,672,480,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2933,T_DEVILING,Deviling,Deviling,66,16890,1,1197,1189,1,313,183,67,70,48,50,33,75,85,200,10,12,1,6,87,0x3695,200,1072,1056,384,0,0,0,0,0,0,0,7410,500,7411,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2934,T_ARCHANGELING,Arc Angeling,Arc Angeling,84,25100,1,1789,1455,1,593,100,92,81,32,48,62,99,119,105,10,12,1,8,66,0x3695,180,1072,672,480,0,0,0,0,0,0,0,7410,500,7411,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2935,T_EVIL_CLOUD_HERMIT,Taoist Hermit,Taoist Hermit,96,8266,1,902,563,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+2936,E_GHOSTRING,E_GHOSTRING,E_GHOSTRING,1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,20,0,300,1220,1080,648,0,0,0,0,0,0,0,535,2000,12192,2000,7225,2000,6658,4000,0,0,0,0,0,0,0,0,0,0,0,0
//2937,M_LOKI
//2938,MM_MAGIC_SEAL
//2939,MM_EVIL_SHADOW1
@@ -2264,3 +2262,6 @@
//3107,E_EASTER_BUNNY
//3108,JITTERBUG1
//3109,JITTERBUG2
+// 2014 Halloween Event
+3381,DARK_SOUL,Dark Soul,Dark Soul,10,20,1,0,0,1,20,20,0,0,1,1,1,1,1,1,0,0,1,6,27,0x81,100,1960,960,504,0,0,0,0,0,0,0,12192,2000,6914,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+3382,WANDERING_SOUL,Wandering Soul,Wandering Soul,1,10,1,0,0,1,10,10,0,0,1,1,1,1,1,1,0,0,1,6,28,0x81,100,912,1248,576,0,0,0,0,0,0,0,12192,2000,6915,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt
index 662754b4b..c7f952199 100644
--- a/db/re/mob_skill_db.txt
+++ b/db/re/mob_skill_db.txt
@@ -1,5 +1,5 @@
// Mob Skill Database
-// Based on Aegis Episode 11.3
+// Based on Aegis Episode 14.2
//
// Structure of Database:
// MobID,Dummy value (info only),State,SkillID,SkillLv,Rate,CastTime,Delay,Cancelable,Target,Condition type,Condition value,val1,val2,val3,val4,val5,Emotion,Chat
@@ -54,7643 +54,7973 @@
// -2: added for all normal types.
// -4: added for all mobs.
-1001,Scorpion@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1001,Scorpion@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1002,Poring@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1002,Poring@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1004,Hornet@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,0,,,,,,6,
-1004,Hornet@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1005,Familiar@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1005,Familiar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1005,Familiar@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1005,Familiar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1007,Fabre@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1007,Fabre@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,0,1008,,,,,,
-1008,Pupa@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1008,Pupa@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,0,1018,,,,,,
-1009,Condor@BS_ADRENALINE,attack,111,1,500,1500,300000,yes,self,always,0,,,,,,,
-1009,Condor@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,5,,,,,,
-1009,Condor@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1010,Willow@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1010,Willow@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,9,
-1010,Willow@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,9,
-1011,Chonchon@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-//1011,Chonchon@NPC_RUN,attack,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
-//1011,Chonchon@NPC_RUN,chase,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
-1012,Roda Frog@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1013,Wolf@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1013,Wolf@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1014,Spore@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1014,Spore@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1014,Spore@NPC_SLEEPATTACK,attack,182,1,500,0,5000,yes,target,always,0,,,,,,,
-1014,Spore@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1015,Zombie@NPC_POISON,attack,176,1,500,800,5000,no,target,always,0,,,,,,,
-1015,Zombie@NPC_POISON,angry,176,1,500,800,5000,no,target,always,0,,,,,,,
-1015,Zombie@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1015,Zombie@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1016,Archer Skeleton@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,0,,,,,,,
-1016,Archer Skeleton@NPC_UNDEADATTACK,attack,347,2,500,500,5000,no,target,always,0,,,,,,,
-//1016,Archer Skeleton@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
+1001,Scorpion@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1001,Scorpion@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
+1001,Scorpion@NPC_POISONATTACK,attack,188,1,500,300,5000,no,target,always,,,,,,,,
+1002,Poring@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1002,Poring@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1004,Hornet@NPC_PIERCINGATT,attack,158,1,500,0,5000,yes,target,always,,,,,,,6,
+1004,Hornet@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1005,Familiar@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,,,,,,,,
+1005,Familiar@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,,,,,,,,
+1005,Familiar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1005,Familiar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1007,Fabre@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,,,,,,,,
+1008,Pupa@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1009,Condor@BS_ADRENALINE,attack,111,1,500,1500,300000,yes,self,always,,,,,,,,
+1009,Condor@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,5,,,,,,
+1009,Condor@NPC_WINDATTACK,attack,187,1,500,500,5000,yes,target,always,,,,,,,6,
+1010,Willow@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,,,,,,,,
+1010,Willow@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,9,
+1010,Willow@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,9,
+1011,Chonchon@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1012,Roda Frog@NPC_WATERATTACK,attack,184,2,2000,0,5000,yes,target,always,,,,,,,,
+1013,Wolf@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1013,Wolf@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1014,Spore@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1014,Spore@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1014,Spore@NPC_SLEEPATTACK,attack,182,1,500,0,5000,yes,target,always,,,,,,,,
+1014,Spore@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1015,Zombie@NPC_POISON,angry,176,1,500,800,5000,no,target,always,,,,,,,,
+1015,Zombie@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
+1015,Zombie@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1015,Zombie@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1016,Archer Skeleton@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,,,,,,,,
+1016,Archer Skeleton@NPC_UNDEADATTACK,attack,347,2,500,500,5000,no,target,always,,,,,,,,
+1018,Creamy@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
1018,Creamy@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1018,Creamy@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1018,Creamy@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1018,Creamy@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1019,Peco Peco@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
-1019,Peco Peco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1019,Peco Peco@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1019,Peco Peco@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
-1023,Orc Warrior@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,,,,,,,
-1023,Orc Warrior@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1023,Orc Warrior@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1023,Orc Warrior@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,0x3885,,,,,
-1023,Orc Warrior@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,0,,,,,,9,
-1023,Orc Warrior@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,0,27,,,,,,
-1023,Orc Warrior@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1023,Orc Warrior@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1024,Worm Tail@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1025,Snake@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1025,Snake@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1026,Munak@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1026,Munak@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,0x3885,,,,,
-1026,Munak@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-1026,Munak@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1026,Munak@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-1028,Skeleton Soldier@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1028,Skeleton Soldier@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1028,Skeleton Soldier@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1028,Skeleton Soldier@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,0,,,,,,,
-1028,Skeleton Soldier@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1028,Skeleton Soldier@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1029,Isis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1029,Isis@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1029,Isis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1029,Isis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3195,,,,,
-1030,Anacondaq@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1030,Anacondaq@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1031,Poporing@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1031,Poporing@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1031,Poporing@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1032,Verit@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1032,Verit@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1032,Verit@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1033,Elder Willow@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1033,Elder Willow@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1033,Elder Willow@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
-1033,Elder Willow@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1033,Elder Willow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-1034,Thara Frog@NPC_WATERATTACK,attack,184,3,2000,500,5000,no,target,always,0,,,,,,6,
-1035,Hunter Fly@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1035,Hunter Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1035,Hunter Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1035,Hunter Fly@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1035,Hunter Fly@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3985,,,,,
-1035,Hunter Fly@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1035,Hunter Fly@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1035,Hunter Fly@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1035,Hunter Fly@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1035,Hunter Fly@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1036,Ghoul@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1036,Ghoul@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1037,Side Winder@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
-1037,Side Winder@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1037,Side Winder@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,,
+1018,Creamy@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1018,Creamy@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1019,Peco Peco@AS_SONICBLOW,attack,136,1,500,800,5000,no,target,always,,,,,,,6,
+1019,Peco Peco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1019,Peco Peco@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1019,Peco Peco@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1020,Mandragora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1023,Orc Warrior@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1023,Orc Warrior@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1023,Orc Warrior@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,0x3885,,,,,
+1023,Orc Warrior@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,,27,,,,,,
+1023,Orc Warrior@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,,,,,,,
+1023,Orc Warrior@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,,,,,,,6,
+1023,Orc Warrior@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1023,Orc Warrior@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,,,,,,,9,
+1024,Wormtail@NPC_GROUNDATTACK,attack,185,1,500,500,5000,no,target,always,,,,,,,6,
+1025,Boa@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1025,Boa@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
+1026,Munak@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1026,Munak@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1026,Munak@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1026,Munak@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,0x3885,,,,,
+1026,Munak@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,,,,,,,6,
+1026,Munak@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
+1028,Soldier Skeleton@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1028,Soldier Skeleton@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1028,Soldier Skeleton@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,,,,,,,,
+1028,Soldier Skeleton@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1028,Soldier Skeleton@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1028,Soldier Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1029,Isis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1029,Isis@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1029,Isis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1029,Isis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3095,,,,,
+1030,Anacondaq@NPC_POISON,attack,176,4,500,800,5000,no,target,always,,,,,,,,
+1030,Anacondaq@NPC_POISONATTACK,attack,188,2,2000,0,5000,yes,target,always,,,,,,,,
+1031,Poporing@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1031,Poporing@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,,
+1031,Poporing@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1032,Verit@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1032,Verit@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1032,Verit@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1033,Elder Willow@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1033,Elder Willow@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1033,Elder Willow@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1033,Elder Willow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1033,Elder Willow@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1034,Thara Frog@NPC_LICK,attack,206,1,500,0,5000,yes,target,always,,,,,,,6,
+1034,Thara Frog@NPC_WATERATTACK,attack,184,3,2000,500,5000,no,target,always,,,,,,,6,
+1035,Hunter Fly@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1035,Hunter Fly@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1035,Hunter Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1035,Hunter Fly@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,6,
+1035,Hunter Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,6,
+1035,Hunter Fly@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1035,Hunter Fly@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1035,Hunter Fly@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+1035,Hunter Fly@NPC_WINDATTACK,angry,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1035,Hunter Fly@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1036,Ghoul@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,,
+1036,Ghoul@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1037,Side Winder@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
+1037,Side Winder@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1037,Side Winder@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,,,,,,,,
1038,Osiris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1038,Osiris@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1038,Osiris@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1038,Osiris@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1038,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,no,target,always,,,,,,,,
1038,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,no,target,skillused,18,,,,,,,
-1038,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,no,target,always,0,,,,,,,
+1038,Osiris@ASC_METEORASSAULT,attack,406,10,10000,500,5000,no,self,always,,,,,,,32,
+1038,Osiris@MG_STONECURSE,attack,16,10,2000,0,5000,no,target,always,,,,,,,,
1038,Osiris@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1038,Osiris@MG_STONECURSE,attack,16,10,2000,0,5000,no,target,always,0,,,,,,,
-1038,Osiris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1038,Osiris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1038,Osiris@ASC_METEORASSAULT,attack,406,10,10000,500,5000,no,self,always,0,,,,,,32,
-1038,Osiris@NPC_CURSEATTACK,attack,181,5,2000,0,5000,no,target,always,0,,,,,,9,
-1038,Osiris@NPC_CURSEATTACK,chase,181,5,2000,0,5000,no,target,always,0,,,,,,9,
-1038,Osiris@NPC_DARKBREATH,attack,202,5,500,0,5000,no,target,always,0,,,,,,9,
-1038,Osiris@NPC_DARKBREATH,chase,202,5,500,0,5000,no,target,always,0,,,,,,9,
-1038,Osiris@NPC_POISONATTACK,attack,188,5,2000,0,5000,no,target,always,0,,,,,,9,
+1038,Osiris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1038,Osiris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1038,Osiris@NPC_CURSEATTACK,attack,181,5,2000,0,5000,no,target,always,,,,,,,9,
+1038,Osiris@NPC_CURSEATTACK,chase,181,5,2000,0,5000,no,target,always,,,,,,,9,
+1038,Osiris@NPC_DARKBREATH,attack,202,5,500,0,5000,no,target,always,,,,,,,9,
+1038,Osiris@NPC_DARKBREATH,chase,202,5,500,0,5000,no,target,always,,,,,,,9,
+1038,Osiris@NPC_DARKTHUNDER,chase,341,10,2000,0,5000,no,target,always,,,,,,,,
+1038,Osiris@NPC_DARKTHUNDER,chase,341,10,10000,0,5000,no,target,skillused,18,,,,,,,
+1038,Osiris@NPC_POISONATTACK,attack,188,5,2000,0,5000,no,target,always,,,,,,,9,
+1038,Osiris@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1038,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,0,0,no,self,onspawn,0,1029,,,,,,
1038,Osiris@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
1038,Osiris@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
-1038,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,0,0,no,self,onspawn,0,1029,,,,,,
-1038,Osiris@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,0,,,,,,,
-1038,Osiris@NPC_DARKTHUNDER,chase,341,10,2000,0,5000,no,target,always,0,,,,,,,
-1038,Osiris@NPC_DARKTHUNDER,chase,341,10,10000,0,5000,no,target,skillused,18,,,,,,,
-1038,Osiris@WZ_QUAGMIRE,chase,92,5,2000,0,5000,no,target,always,0,,,,,,,
-1039,Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,0,,,,,,,
-1039,Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,0,,,,,,,
+1038,Osiris@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,,,,,,,,
+1038,Osiris@WZ_QUAGMIRE,chase,92,5,2000,0,5000,no,target,always,,,,,,,,
+1039,Baphomet@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
1039,Baphomet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1039,Baphomet@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1039,Baphomet@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,29,
-1039,Baphomet@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
+1039,Baphomet@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,29,
+1039,Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,,,,,,,,
+1039,Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,,
+1039,Baphomet@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+1039,Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1039,Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1039,Baphomet@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,,,,,,,,
+1039,Baphomet@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,,,,,,,29,
+1039,Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,,,,,,,,
1039,Baphomet@NPC_EARTHQUAKE,attack,653,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
+1039,Baphomet@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
+1039,Baphomet@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
+1039,Baphomet@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,no,self,always,,,,,,,6,
+1039,Baphomet@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,no,self,always,,,,,,,6,
1039,Baphomet@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1039,Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1039,Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1039,Baphomet@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,no,self,always,0,,,,,,6,
-1039,Baphomet@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,no,self,always,0,,,,,,6,
-1039,Baphomet@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,0,,,,,,29,
-1039,Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
-1039,Baphomet@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
1039,Baphomet@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1431,,,,,,
1039,Baphomet@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1431,,,,,,
1039,Baphomet@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1101,,,,,,
-1039,Baphomet@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,29,
-1039,Baphomet@WZ_VERMILION,chase,85,20,5000,500,2000,no,target,skillused,18,,,,,,29,
-1039,Baphomet@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,29,
-1039,Baphomet@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
-1040,Golem@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1040,Golem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1040,Golem@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
+1039,Baphomet@WZ_VERMILION,attack,85,10,2000,500,2000,no,target,always,,,,,,,29,
+1039,Baphomet@WZ_VERMILION,chase,85,10,2000,500,2000,no,target,always,,,,,,,29,
+1039,Baphomet@WZ_VERMILION,chase,85,10,5000,500,2000,no,target,skillused,18,,,,,,29,
+1040,Golem@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1040,Golem@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1041,Mummy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,9,
-1041,Mummy@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1041,Mummy@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3885,,,,,
-1041,Mummy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,9,
-1041,Mummy@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1041,Mummy@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1042,Steel Chonchon@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,0,,,,,,,
-1042,Steel Chonchon@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1044,Obeaune@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1044,Obeaune@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3095,,,,,
-1044,Obeaune@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-1044,Obeaune@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,0,,,,,,2,
-1044,Obeaune@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,0,,,,,,2,
-1045,Marc@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1045,Marc@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3885,,,,,
-1045,Marc@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-1045,Marc@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
-1045,Marc@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1045,Marc@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-1045,Marc@NPC_WATERATTACK,angry,184,2,500,500,5000,no,target,always,0,,,,,,6,
-1046,Doppelganger@AL_HEAL,attack,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1046,Doppelganger@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1046,Doppelganger@AL_HEAL,chase,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1046,Doppelganger@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1040,Golem@CR_SHIELDCHARGE,attack,250,2,500,1500,5000,no,target,always,,,,,,,9,
+1040,Golem@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1040,Golem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1041,Mummy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,9,
+1041,Mummy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,9,
+1041,Mummy@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1041,Mummy@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1041,Mummy@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+1041,Mummy@NPC_UNDEADATTACK,attack,347,3,2000,0,5000,yes,target,always,,,,,,,,
+1042,Steel Chonchon@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,,,,,,,,
+1042,Steel Chonchon@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1044,Obeaune@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1044,Obeaune@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3095,,,,,
+1044,Obeaune@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,2,
+1044,Obeaune@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+1044,Obeaune@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+1044,Obeaune@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+1045,Marc@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1045,Marc@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1045,Marc@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+1045,Marc@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,,,,,,,6,
+1045,Marc@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
+1045,Marc@NPC_WATERATTACK,angry,184,3,500,500,5000,no,target,always,,,,,,,6,
+1045,Marc@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+1046,Doppelganger@AL_DECAGI,attack,30,10,500,0,20000,yes,target,always,,,,,,,5,
+1046,Doppelganger@AL_DECAGI,chase,30,10,500,0,20000,yes,target,always,,,,,,,5,
+1046,Doppelganger@AL_HEAL,attack,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1046,Doppelganger@AL_HEAL,chase,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1046,Doppelganger@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1046,Doppelganger@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
1046,Doppelganger@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1046,Doppelganger@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1046,Doppelganger@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1046,Doppelganger@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1046,Doppelganger@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1046,Doppelganger@BS_HAMMERFALL,chase,110,10,10000,0,5000,yes,target,skillused,18,,,,,,,
+1046,Doppelganger@CR_AUTOGUARD,attack,249,10,2000,500,300000,yes,self,always,,,,,,,29,
+1046,Doppelganger@CR_AUTOGUARD,chase,249,10,2000,500,300000,yes,self,longrangeattacked,,,,,,,29,
+1046,Doppelganger@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1046,Doppelganger@LK_SPIRALPIERCE,attack,397,5,10000,1000,10000,yes,target,myhpltmaxrate,80,,,,,,36,
+1046,Doppelganger@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,,
+1046,Doppelganger@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+1046,Doppelganger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1046,Doppelganger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1046,Doppelganger@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
1046,Doppelganger@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1046,Doppelganger@LK_SPIRALPIERCE,attack,397,5,10000,1000,10000,no,target,myhpltmaxrate,80,,,,,,36,
-1046,Doppelganger@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1046,Doppelganger@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1046,Doppelganger@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1046,Doppelganger@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,,
-1046,Doppelganger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1046,Doppelganger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1046,Doppelganger@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-1046,Doppelganger@CR_AUTOGUARD,attack,249,10,2000,500,300000,no,self,always,0,,,,,,29,
-1046,Doppelganger@CR_AUTOGUARD,chase,249,10,2000,500,300000,no,self,longrangeattacked,,,,,,,29,
-1046,Doppelganger@AL_DECAGI,attack,30,48,500,0,20000,no,target,always,0,,,,,,5,
-1046,Doppelganger@AL_DECAGI,chase,30,48,500,0,20000,no,target,always,0,,,,,,5,
-1046,Doppelganger@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,1427,,,,,,
-1046,Doppelganger@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,1427,,,,,,
-1046,Doppelganger@BS_HAMMERFALL,chase,110,11,10000,0,5000,yes,target,skillused,18,,,,,,,
-1047,PecoPeco Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1047,PecoPeco Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,0,1049,1050,,,,,
-1048,Thief Bug Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1048,Thief Bug Egg@NPC_METAMORPHOSIS,idle,193,4,10,2000,5000,no,self,always,0,1051,,,,,,
-1049,Picky@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1049,Picky@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1050,Shell Picky@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1050,Shell Picky@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1051,Thief Bug Larva@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,0,,,,,,,
-1051,Thief Bug Larva@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,,
-1052,Rocker@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1052,Rocker@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1053,Thief Bug Female@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,0,,,,,,,
-1053,Thief Bug Female@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,,
-1054,Thief Bug Male@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,0,,,,,,,
-1054,Thief Bug Male@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,,
-1055,Muka@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1055,Muka@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,6,
+1046,Doppelganger@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,3,1427,,,,,,
+1046,Doppelganger@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,3,1427,,,,,,
+1047,Peco Peco Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1047,Peco Peco Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,,1049,1050,,,,,
+1048,Thief Bug Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1049,Picky@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1049,Picky@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1050,Picky@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1050,Picky@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1051,Thief Bug@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,,,,,,,,
+1051,Thief Bug@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,,,,,,,,
+1052,Rocker@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1052,Rocker@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1053,Female Thief Bug@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,,,,,,,,
+1053,Female Thief Bug@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,,,,,,,,
+1054,Male Thief Bug@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,,,,,,,,
+1054,Male Thief Bug@NPC_AGIUP,loot,350,1,1000,0,10000,yes,self,always,,,,,,,,
+1055,Muka@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1055,Muka@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
1055,Muka@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
1056,Smokie@AL_HEAL,idle,28,5,10000,0,5000,yes,self,mystatuson,hiding,,,,,,2,
-1056,Smokie@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1056,Smokie@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1056,Smokie@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
+1056,Smokie@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1056,Smokie@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1056,Smokie@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
1056,Smokie@TF_HIDING,attack,51,1,500,500,5000,no,self,myhpltmaxrate,50,,,,,,19,
-1057,Yoyo@AM_POTIONPITCHER,idle,231,1,500,1500,5000,yes,self,always,0,,,,,,,
-1057,Yoyo@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1057,Yoyo@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1057,Yoyo@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1057,Yoyo@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,always,0,,,,,,,
-1057,Yoyo@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,0,,,,,,6,
-1058,Metaller@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1058,Metaller@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1058,Metaller@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,2,
-1058,Metaller@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,0,,,,,,2,
-1059,Mistress@AL_HEAL,attack,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1059,Mistress@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1059,Mistress@AL_HEAL,chase,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1059,Mistress@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1057,Yoyo@AM_POTIONPITCHER,idle,231,1,500,1500,5000,yes,self,always,,,,,,,,
+1057,Yoyo@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1057,Yoyo@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1057,Yoyo@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1057,Yoyo@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,always,,,,,,,,
+1057,Yoyo@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,6,
+1058,Metaller@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1058,Metaller@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1058,Metaller@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,2,
+1058,Metaller@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,,,,,,,2,
+1059,Mistress@AL_HEAL,attack,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1059,Mistress@AL_HEAL,chase,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1059,Mistress@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1059,Mistress@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
1059,Mistress@AL_PNEUMA,attack,25,1,2000,0,5000,yes,self,longrangeattacked,,,,,,,18,
1059,Mistress@AL_PNEUMA,chase,25,1,2000,0,5000,yes,self,longrangeattacked,,,,,,,18,
+1059,Mistress@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,always,,,,,,,,
+1059,Mistress@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,,,,,,,,
1059,Mistress@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1059,Mistress@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,always,0,,,,,,,
-1059,Mistress@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,0,,,,,,,
1059,Mistress@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1059,Mistress@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1059,Mistress@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1059,Mistress@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1059,Mistress@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1059,Mistress@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,18,
-1059,Mistress@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,0,,,,,,18,
-1059,Mistress@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-1059,Mistress@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
+1059,Mistress@NPC_BLEEDING,attack,660,1,500,0,5000,yes,target,always,,,,,,,,
+1059,Mistress@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1059,Mistress@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1059,Mistress@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,18,
+1059,Mistress@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,,,,,,,18,
+1059,Mistress@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,,,,,,,,
+1059,Mistress@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,,,,,,,,
1059,Mistress@NPC_SILENCEATTACK,chase,178,5,10000,0,5000,no,target,skillused,18,,,,,,,
+1059,Mistress@NPC_STOP,attack,342,1,2000,0,15000,no,target,always,,,,,,,6,
+1059,Mistress@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1156,,,,,,
1059,Mistress@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1604,,,,,,
1059,Mistress@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1604,,,,,,
-1059,Mistress@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1156,,,,,,
-1059,Mistress@NPC_STOP,attack,342,1,2000,0,15000,no,target,always,0,,,,,,6,
-1059,Mistress@WZ_JUPITEL,attack,84,28,2000,0,5000,yes,target,always,0,,,,,,,
-1059,Mistress@WZ_JUPITEL,chase,84,28,2000,0,5000,yes,target,always,0,,,,,,,
-1060,Bigfoot@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1060,Bigfoot@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1060,Bigfoot@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1060,Bigfoot@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
+1059,Mistress@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1059,Mistress@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1059,Mistress@WZ_JUPITEL,attack,84,10,2000,0,5000,yes,target,always,,,,,,,,
+1059,Mistress@WZ_JUPITEL,chase,84,10,2000,0,5000,yes,target,always,,,,,,,,
+1060,Bigfoot@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1060,Bigfoot@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1060,Bigfoot@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1060,Bigfoot@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
1060,Bigfoot@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1061,Nightmare@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1061,Nightmare@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1061,Nightmare@NPC_MENTALBREAKER,attack,159,1,500,800,5000,no,target,always,0,,,,,,,
-1061,Nightmare@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1062,Santa Poring@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1062,Santa Poring@NPC_HOLYATTACK,attack,189,1,2000,0,5000,yes,target,always,0,,,,,,,
-//1063,Lunatic@NPC_RUN,attack,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
-//1063,Lunatic@NPC_RUN,chase,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
+1061,Nightmare@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1061,Nightmare@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1061,Nightmare@NPC_MENTALBREAKER,attack,159,1,500,800,5000,no,target,always,,,,,,,,
+1061,Nightmare@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,,
+1062,Santa Poring@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1062,Santa Poring@NPC_HOLYATTACK,attack,189,1,2000,0,5000,yes,target,always,,,,,,,,
1064,Megalodon@NPC_CHANGETELEKINESIS,attack,169,1,500,2000,5000,no,self,myhpltmaxrate,30,,,,,,7,
-1064,Megalodon@NPC_UNDEADATTACK,attack,347,2,500,0,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_FROSTDIVER,attack,15,9,1000,1000,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_LIGHTNINGBOLT,attack,20,3,500,1500,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,0,,,,,,,
-1065,Strouf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1065,Strouf@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-//1065,Strouf@SA_DISPELL,attack,289,5,0,0,30000,yes,target,always,0,,,,,,9,
-//1065,Strouf@SA_DISPELL,chase,289,5,0,0,30000,yes,target,always,0,,,,,,9,
-1065,Strouf@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1065,Strouf@MG_FROSTDIVER,angry,15,9,1000,1000,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_FROSTDIVER,follow,15,9,1000,1000,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_LIGHTNINGBOLT,angry,20,3,500,1500,5000,yes,target,always,0,,,,,,,
-1065,Strouf@MG_LIGHTNINGBOLT,follow,20,3,500,1500,5000,yes,target,always,0,,,,,,,
-1065,Strouf@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-//1065,Strouf@SA_DISPELL,angry,289,5,0,0,30000,yes,target,always,0,,,,,,9,
-//1065,Strouf@SA_DISPELL,follow,289,5,0,0,30000,yes,target,always,0,,,,,,9,
-1065,Strouf@WZ_WATERBALL,angry,86,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1066,Vadon@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-1066,Vadon@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
+1064,Megalodon@NPC_UNDEADATTACK,attack,347,2,500,0,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_FROSTDIVER,angry,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_FROSTDIVER,attack,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_FROSTDIVER,follow,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_LIGHTNINGBOLT,angry,20,3,500,1500,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_LIGHTNINGBOLT,attack,20,3,500,1500,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_LIGHTNINGBOLT,follow,20,3,500,1500,5000,yes,target,always,,,,,,,,
+1065,Strouf@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,,,,,,,,
+1065,Strouf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1065,Strouf@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1065,Strouf@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1065,Strouf@WZ_WATERBALL,angry,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+1065,Strouf@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+1066,Vadon@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1066,Vadon@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1066,Vadon@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1067,Cornutus@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
-1067,Cornutus@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
-1067,Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
+1066,Vadon@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
+1066,Vadon@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1067,Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1067,Cornutus@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,randomtarget,always,0,,,,,,,
-1069,Swordfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1069,Swordfish@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,,
-1069,Swordfish@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,,
-1069,Swordfish@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1069,Swordfish@WZ_WATERBALL,angry,86,3,500,1500,5000,yes,target,always,0,,,,,,,
-1069,Swordfish@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,0,,,,,,,
-1070,Kukre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,0,,,,,,
-1070,Kukre@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1071,Pirate Skeleton@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,27,
-1071,Pirate Skeleton@SM_BASH,angry,5,5,500,0,5000,yes,target,always,0,,,,,,27,
-1071,Pirate Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1072,Kaho@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1072,Kaho@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1072,Kaho@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-1072,Kaho@MG_FIREBOLT,angry,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1072,Kaho@MG_FIREBOLT,follow,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1072,Kaho@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,,
-1073,Crab@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1074,Shellfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1076,Skeleton@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1076,Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1077,Poison Spore@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,6,
-1077,Poison Spore@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1077,Poison Spore@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1077,Poison Spore@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,0x3885,,,,,
-1077,Poison Spore@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,6,
-1077,Poison Spore@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1077,Poison Spore@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
+1067,Cornutus@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
+1067,Cornutus@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,,,,,,,6,
+1068,Hydra@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,,,,,,,,
+1069,Swordfish@NPC_CRITICALWOUND,attack,673,1,100,0,5000,yes,target,always,,,,,,,,
+1069,Swordfish@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1069,Swordfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1069,Swordfish@WZ_WATERBALL,angry,86,3,500,1500,5000,yes,target,always,,,,,,,,
+1069,Swordfish@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,,
+1069,Swordfish@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,,,,,,,,
+1069,Swordfish@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,,
+1070,Kukre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,0,,,,,,
+1070,Kukre@NPC_WATERATTACK,attack,184,2,2000,0,5000,yes,target,always,,,,,,,,
+1071,Pirate Skeleton@NPC_BLEEDING,attack,660,1,1000,0,5000,yes,target,always,,,,,,,32,
+1071,Pirate Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1071,Pirate Skeleton@SM_BASH,angry,5,5,500,0,5000,yes,target,always,,,,,,,27,
+1071,Pirate Skeleton@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,27,
+1072,Kaho@MG_FIREBOLT,angry,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1072,Kaho@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1072,Kaho@MG_FIREBOLT,follow,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1072,Kaho@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1072,Kaho@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,,
+1072,Kaho@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+1073,Crab@NPC_CRITICALWOUND,attack,673,1,1000,0,120000,yes,target,always,,,,,,,,
+1073,Crab@NPC_WATERATTACK,attack,184,3,2000,0,5000,yes,target,always,,,,,,,,
+1074,Shellfish@NPC_WATERATTACK,attack,184,3,2000,0,5000,yes,target,always,,,,,,,,
+1076,Skeleton@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1076,Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1077,Poison Spore@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1077,Poison Spore@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1077,Poison Spore@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,0x3885,,,,,
+1077,Poison Spore@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,6,
+1077,Poison Spore@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,6,
+1077,Poison Spore@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1077,Poison Spore@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1086,Golden Thief Bug@AL_HEAL,idle,28,10,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
1086,Golden Thief Bug@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1086,Golden Thief Bug@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1086,Golden Thief Bug@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1086,Golden Thief Bug@HP_ASSUMPTIO,idle,361,5,10000,0,100000,yes,self,always,0,,,,,,36,
-1086,Golden Thief Bug@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,always,0,,,,,,36,
-1086,Golden Thief Bug@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,6,
-1086,Golden Thief Bug@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,6,
-1086,Golden Thief Bug@MC_MAMMONITE,attack,42,20,2000,0,5000,no,target,always,0,,,,,,8,
-1086,Golden Thief Bug@SM_MAGNUM,attack,7,20,2000,0,5000,no,self,always,0,,,,,,,
-1086,Golden Thief Bug@MG_FIREBALL,chase,17,20,2000,0,5000,no,target,skillused,18,,,,,,,
-1086,Golden Thief Bug@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
+1086,Golden Thief Bug@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,,,,,,,6,
+1086,Golden Thief Bug@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,,,,,,,6,
+1086,Golden Thief Bug@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,always,,,,,,,36,
+1086,Golden Thief Bug@HP_ASSUMPTIO,idle,361,5,10000,0,100000,yes,self,always,,,,,,,36,
+1086,Golden Thief Bug@MC_MAMMONITE,attack,42,10,2000,0,5000,no,target,always,,,,,,,8,
+1086,Golden Thief Bug@MG_FIREBALL,chase,17,10,2000,0,5000,no,target,skillused,18,,,,,,,
+1086,Golden Thief Bug@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
1086,Golden Thief Bug@NPC_SUMMONSLAVE,attack,196,10,10000,700,10000,no,self,slavele,5,1608,,,,,,
1086,Golden Thief Bug@NPC_SUMMONSLAVE,idle,196,10,10000,700,10000,no,self,slavele,5,1608,,,,,,
1086,Golden Thief Bug@NPC_SUMMONSLAVE,idle,196,10,10000,0,0,no,self,onspawn,0,1054,,,,,,
+1086,Golden Thief Bug@SM_MAGNUM,attack,7,10,2000,0,5000,no,self,always,,,,,,,,
1086,Golden Thief Bug@TF_HIDING,attack,51,1,1000,0,5000,no,self,myhpltmaxrate,20,,,,,,19,
-1086,Golden Thief Bug@AL_HEAL,idle,28,11,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
-1087,Orc Hero@AL_DECAGI,chase,30,48,2000,0,300000,no,target,always,0,,,,,,6,
+1087,Orc Hero@AL_DECAGI,chase,30,10,2000,0,300000,no,target,always,,,,,,,6,
+1087,Orc Hero@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1087,Orc Hero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1087,Orc Hero@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1087,Orc Hero@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1087,Orc Hero@NPC_ARMORBRAKE,attack,344,10,2000,500,300000,no,target,always,0,,,,,,6,
-1087,Orc Hero@NPC_ARMORBRAKE,chase,344,10,2000,500,300000,no,target,always,0,,,,,,6,
+1087,Orc Hero@CR_AUTOGUARD,attack,249,10,2000,0,300000,yes,self,always,,,,,,,,
+1087,Orc Hero@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1087,Orc Hero@LK_SPIRALPIERCE,attack,397,5,1500,1000,10000,no,target,always,,,,,,,,
+1087,Orc Hero@MG_THUNDERSTORM,attack,21,10,2000,1500,5000,no,target,always,,,,,,,,
+1087,Orc Hero@MG_THUNDERSTORM,chase,21,10,10000,1500,5000,no,target,skillused,18,,,,,,,
+1087,Orc Hero@NPC_ARMORBRAKE,attack,344,10,2000,500,300000,no,target,always,,,,,,,6,
+1087,Orc Hero@NPC_ARMORBRAKE,chase,344,10,2000,500,300000,no,target,always,,,,,,,6,
+1087,Orc Hero@NPC_BLEEDING,attack,660,1,500,0,5000,yes,target,always,,,,,,,,
+1087,Orc Hero@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1087,Orc Hero@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1087,Orc Hero@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,,,,,,,,
+1087,Orc Hero@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,5,
1087,Orc Hero@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1087,Orc Hero@LK_SPIRALPIERCE,attack,397,5,1500,1000,10000,no,target,always,0,,,,,,,
-1087,Orc Hero@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1087,Orc Hero@MG_THUNDERSTORM,attack,21,15,2000,1500,5000,no,target,always,0,,,,,,,
-1087,Orc Hero@MG_THUNDERSTORM,chase,21,15,10000,1500,5000,no,target,skillused,18,,,,,,,
-1087,Orc Hero@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1087,Orc Hero@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1087,Orc Hero@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,0,,,,,,,
-1087,Orc Hero@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,5,
-1087,Orc Hero@CR_AUTOGUARD,attack,249,10,2000,0,300000,yes,self,always,0,,,,,,,
1087,Orc Hero@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,no,self,slavele,3,1439,,,,,,
1087,Orc Hero@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,no,self,slavele,3,1439,,,,,,
-1087,Orc Hero@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1088,Vocal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1088,Vocal@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,6,
-1088,Vocal@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1088,Vocal@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,2,
-1088,Vocal@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,0,,,,,,2,
+1088,Vocal@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,6,
+1088,Vocal@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,,,,,,,,
+1088,Vocal@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,2,
+1088,Vocal@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,,,,,,,2,
1088,Vocal@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1052,,,,,2,
1088,Vocal@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1052,,,,,2,
1088,Vocal@NPC_SUMMONSLAVE,idle,196,8,10000,0,0,no,self,onspawn,0,1052,,,,,,
1089,Toad@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1089,Toad@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1012,,,,,,
+1089,Toad@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1012,,,,,,
1089,Toad@NPC_SUMMONSLAVE,idle,196,6,10000,0,0,no,self,onspawn,0,1012,,,,,,
-1089,Toad@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
+1089,Toad@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
1090,Mastering@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1090,Mastering@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1002,1113,,,,21,
-1090,Mastering@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1002,1113,,,,21,
1090,Mastering@NPC_SUMMONSLAVE,idle,196,10,10000,0,0,no,self,onspawn,0,1002,,,,,21,
-1090,Mastering@NPC_WATERATTACK,attack,184,5,500,500,5000,no,target,always,0,,,,,,6,
+1090,Mastering@NPC_WATERATTACK,attack,184,5,500,500,5000,no,target,always,,,,,,,6,
1091,Dragon Fly@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1091,Dragon Fly@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,0,,,,,,6,
-1091,Dragon Fly@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,0,,,,,,6,
-1091,Dragon Fly@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,0,1011,,,,,27,
-1091,Dragon Fly@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,0,1011,,,,,27,
+1091,Dragon Fly@NPC_SILENCEATTACK,attack,178,5,500,700,5000,yes,target,always,,,,,,,6,
+1091,Dragon Fly@NPC_SILENCEATTACK,chase,178,5,500,700,5000,yes,target,always,,,,,,,6,
+1091,Dragon Fly@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,yes,self,slavele,0,1011,,,,,27,
+1091,Dragon Fly@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,yes,self,slavele,0,1011,,,,,27,
1091,Dragon Fly@NPC_SUMMONSLAVE,idle,196,8,10000,0,0,no,self,onspawn,0,1011,,,,,27,
-1091,Dragon Fly@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,0,,,,,,6,
+1091,Dragon Fly@NPC_WINDATTACK,attack,187,5,500,500,5000,yes,target,always,,,,,,,6,
1092,Vagabond Wolf@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1092,Vagabond Wolf@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1092,Vagabond Wolf@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,27,,,,,,
-1092,Vagabond Wolf@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
+1092,Vagabond Wolf@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,6,
+1092,Vagabond Wolf@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,27,,,,,,
+1092,Vagabond Wolf@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
1092,Vagabond Wolf@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1013,,,,,27,
1092,Vagabond Wolf@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1013,,,,,27,
1092,Vagabond Wolf@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1013,,,,,27,
1093,Eclipse@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1093,Eclipse@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,0,,,,,,6,
-1093,Eclipse@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1063,,,,,,
+1093,Eclipse@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,,,,,,,6,
+1093,Eclipse@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,yes,self,slavele,3,1063,,,,,,
1093,Eclipse@NPC_SUMMONSLAVE,idle,196,8,10000,0,0,no,self,onspawn,0,1063,,,,,,
-1094,Ambernite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
+1094,Ambernite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,19,,,,,,
1094,Ambernite@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,attackpcge,2,,,,,,9,
-1094,Ambernite@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1095,Andre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1095,Andre@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
+1094,Ambernite@NPC_WATERATTACK,attack,184,2,2000,0,5000,yes,target,always,,,,,,,,
+1095,Andre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1095,Andre@NPC_GROUNDATTACK,attack,185,2,1500,500,5000,no,target,always,,,,,,,,
1096,Angeling@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
1096,Angeling@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1096,Angeling@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
1096,Angeling@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1096,Angeling@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1096,Angeling@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,0,,,,,,18,
-1096,Angeling@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1096,Angeling@NPC_HOLYATTACK,attack,189,5,500,500,5000,no,target,always,0,,,,,,18,
-1096,Angeling@NPC_HOLYATTACK,chase,189,5,500,500,5000,no,target,always,0,,,,,,18,
-1096,Angeling@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1031,1062,,,,18,
-1096,Angeling@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1031,1062,,,,18,
+1096,Angeling@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,,,,,,,18,
+1096,Angeling@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1096,Angeling@NPC_HOLYATTACK,attack,189,5,500,500,5000,no,target,always,,,,,,,18,
+1096,Angeling@NPC_HOLYATTACK,chase,189,5,500,500,5000,no,target,always,,,,,,,18,
1096,Angeling@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1031,,,,,,
-1096,Angeling@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-1096,Angeling@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-1097,Ant Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1097,Ant Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,0,1095,1105,1160,,,,
-1098,Anubis@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1098,Anubis@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1098,Anubis@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,,
-1098,Anubis@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,,
-1098,Anubis@NPC_DARKBREATH,attack,202,3,500,800,5000,no,target,always,0,,,,,,,
-1098,Anubis@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1098,Anubis@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1098,Anubis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1098,Anubis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1098,Anubis@MG_THUNDERSTORM,attack,21,5,1000,1500,5000,no,target,always,0,,,,,,,
-1098,Anubis@MG_THUNDERSTORM,chase,21,5,1000,1500,5000,no,target,skillused,18,,,,,,,
+1096,Angeling@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,18,
+1096,Angeling@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,18,
+1097,Ant Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1097,Ant Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,,1095,1105,1160,,,,
1098,Anubis@AL_HEAL,attack,28,5,5000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
1098,Anubis@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
1098,Anubis@AL_HEAL,chase,28,5,10000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
-1098,Anubis@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1099,Argiope@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,0,,,,,,,
-1099,Argiope@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1099,Argiope@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1099,Argiope@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1099,Argiope@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3795,,,,,
-1100,Argos@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1100,Argos@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,target,always,0,,,,,,,
-1100,Argos@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,0,,,,,,,
-1100,Argos@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
+1098,Anubis@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1098,Anubis@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1098,Anubis@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+1098,Anubis@MG_THUNDERSTORM,attack,21,5,1000,1500,5000,no,target,always,,,,,,,,
+1098,Anubis@MG_THUNDERSTORM,chase,21,5,1000,1500,5000,no,target,skillused,18,,,,,,,
+1098,Anubis@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1098,Anubis@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1098,Anubis@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,,
+1098,Anubis@NPC_DARKBREATH,attack,202,3,500,800,5000,no,target,always,,,,,,,,
+1098,Anubis@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1098,Anubis@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1098,Anubis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1098,Anubis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1098,Anubis@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,,,,,,,,
+1098,Anubis@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,,,,,,,,
+1098,Anubis@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1098,Anubis@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1099,Argiope@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,,,,,,,,
+1099,Argiope@NPC_POISON,attack,176,3,1500,800,5000,no,target,always,,,,,,,,
+1099,Argiope@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,,,,,,,,
+1099,Argiope@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1099,Argiope@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1100,Argos@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1100,Argos@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,target,always,,,,,,,,
+1100,Argos@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,,,,,,,,
+1100,Argos@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
1101,Baphomet Jr.@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1101,Baphomet Jr.@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1101,Baphomet Jr.@SA_DISPELL,attack,289,1,0,0,30000,yes,target,always,0,,,,,,29,
-1101,Baphomet Jr.@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,6,
-1101,Baphomet Jr.@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1101,Baphomet Jr.@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1101,Baphomet Jr.@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1101,Baphomet Jr.@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1101,Baphomet Jr.@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3795,,,,,
-1102,Bathory@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1102,Bathory@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,30,,,,,,
-1102,Bathory@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1102,Bathory@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1102,Bathory@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-1102,Bathory@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1103,Caramel@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1103,Caramel@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,0,,,,,,6,
-1104,Coco@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1104,Coco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1104,Coco@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,0,,,,,,6,
-1105,Deniro@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1105,Deniro@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1106,Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1106,Desert Wolf@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1106,Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x308D,,,,,
-1106,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,6,
-1107,Baby Desert Wolf@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1107,Baby Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1108,Deviace@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,9,
-1108,Deviace@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,0,,,,,,,
-1108,Deviace@WZ_WATERBALL,chase,86,4,500,1500,5000,yes,target,always,0,,,,,,,
-1108,Deviace@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-1108,Deviace@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x91,,,,,
+1101,Baphomet Jr.@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,29,
+1101,Baphomet Jr.@SA_DISPELL,attack,289,1,0,0,30000,yes,target,always,,,,,,,29,
+1101,Baphomet Jr.@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1101,Baphomet Jr.@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1101,Baphomet Jr.@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1101,Baphomet Jr.@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1101,Baphomet Jr.@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1101,Baphomet Jr.@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1102,Bathory@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1102,Bathory@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,30,,,,,,
+1102,Bathory@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1102,Bathory@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1102,Bathory@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+1102,Bathory@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+1103,Caramel@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1103,Caramel@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
+1104,Coco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1104,Coco@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1104,Coco@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,6,
+1105,Deniro@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1105,Deniro@NPC_GROUNDATTACK,attack,185,2,500,500,5000,yes,target,always,,,,,,,,
+1106,Desert Wolf@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1106,Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x308D,,,,,
+1106,Desert Wolf@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,,,,,,,,
+1106,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,6,
+1107,Baby Desert Wolf@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1107,Baby Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1108,Deviace@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0091,,,,,
+1108,Deviace@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+1108,Deviace@NPC_WATERATTACK,attack,184,5,500,500,5000,yes,target,always,,,,,,,9,
+1108,Deviace@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+1108,Deviace@WZ_WATERBALL,chase,86,4,500,1500,5000,yes,target,always,,,,,,,,
1109,Deviruchi@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1109,Deviruchi@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1109,Deviruchi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
+1109,Deviruchi@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,29,
+1109,Deviruchi@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1109,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,,,,,,,29,
+1109,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,,,,,,,29,
1109,Deviruchi@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
1109,Deviruchi@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
-1109,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1109,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1110,Dokebi@BS_ADRENALINE,attack,111,1,500,1500,5000,no,self,always,0,,,,,,,
-1110,Dokebi@BS_ADRENALINE,chase,111,1,500,1500,5000,no,self,always,0,,,,,,6,
-1110,Dokebi@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,8,
-1110,Dokebi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1110,Dokebi@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1111,Drainliar@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1111,Drainliar@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1111,Drainliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1112,Drake@AL_DECAGI,chase,30,48,2000,0,60000,no,target,always,0,,,,,,29,
-1112,Drake@NPC_ARMORBRAKE,attack,344,10,2000,0,60000,no,target,always,0,,,,,,,
+1110,Dokebi@BS_ADRENALINE,attack,111,1,500,1500,5000,yes,self,always,,,,,,,,
+1110,Dokebi@BS_ADRENALINE,chase,111,1,500,1500,5000,yes,self,always,,,,,,,6,
+1110,Dokebi@MC_MAMMONITE,attack,42,5,500,800,5000,yes,target,always,,,,,,,8,
+1110,Dokebi@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1110,Dokebi@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1111,Drainliar@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1111,Drainliar@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1111,Drainliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1112,Drake@AL_DECAGI,chase,30,10,2000,0,60000,yes,target,always,,,,,,,29,
1112,Drake@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1112,Drake@BS_MAXIMIZE,attack,114,1,500,0,5000,no,self,always,0,,,,,,,
-1112,Drake@BS_MAXIMIZE,chase,114,1,500,0,5000,no,self,always,0,,,,,,,
+1112,Drake@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+1112,Drake@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
1112,Drake@NPC_AGIUP,attack,350,10,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1112,Drake@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1112,Drake@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1112,Drake@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
-1112,Drake@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,0,,,,,,,
-1112,Drake@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1566,,,,,,
-1112,Drake@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1566,,,,,,
+1112,Drake@NPC_ARMORBRAKE,attack,344,10,2000,0,60000,yes,target,always,,,,,,,,
+1112,Drake@NPC_BLEEDING,attack,660,2,500,0,5000,yes,target,always,,,,,,,,
+1112,Drake@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1112,Drake@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1112,Drake@NPC_DRAGONFEAR,attack,659,5,2000,0,30000,yes,self,always,,,,,,,6,
+1112,Drake@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+1112,Drake@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+1112,Drake@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1566,,,,,,
+1112,Drake@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1566,,,,,,
1112,Drake@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1192,,,,,,
-1112,Drake@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29,
-1112,Drake@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,skillused,18,,,,,,29,
-1112,Drake@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29,
-1112,Drake@WZ_WATERBALL,attack,86,10,2000,500,5000,no,target,always,0,,,,,,0,
-1112,Drake@WZ_WATERBALL,chase,86,10,2000,500,5000,no,target,always,0,,,,,,0,
-1113,Drops@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1113,Drops@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1114,Dustiness@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1114,Dustiness@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1114,Dustiness@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1114,Dustiness@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
+1112,Drake@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+1112,Drake@NPC_WATERATTACK,chase,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+1112,Drake@NPC_WATERATTACK,chase,184,5,2000,0,5000,yes,target,skillused,18,,,,,,29,
+1112,Drake@WZ_WATERBALL,attack,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+1112,Drake@WZ_WATERBALL,chase,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+1113,Drops@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1113,Drops@NPC_FIREATTACK,attack,186,2,2000,0,5000,yes,target,always,,,,,,,,
+1114,Dustiness@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1114,Dustiness@NPC_SILENCEATTACK,attack,178,3,500,700,5000,yes,target,always,,,,,,,,
+1114,Dustiness@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1114,Dustiness@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1115,Eddga@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1115,Eddga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1115,Eddga@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1115,Eddga@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1115,Eddga@AM_DEMONSTRATION,attack,229,5,2000,0,2000,yes,target,always,,,,,,,6,
+1115,Eddga@AM_DEMONSTRATION,chase,229,5,2000,0,2000,yes,target,always,,,,,,,6,
+1115,Eddga@MG_FIREBALL,chase,17,10,4000,0,0,yes,target,always,,,,,,,,
+1115,Eddga@MG_FIREBALL,chase,17,10,10000,0,0,yes,target,skillused,18,,,,,,,
+1115,Eddga@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,,,,,,,32,
+1115,Eddga@NPC_BLEEDING,attack,660,2,500,0,5000,yes,target,always,,,,,,,,
+1115,Eddga@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1115,Eddga@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
1115,Eddga@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1115,Eddga@MG_FIREBALL,chase,17,20,4000,0,0,yes,target,always,0,,,,,,,
-1115,Eddga@MG_FIREBALL,chase,17,20,10000,0,0,yes,target,skillused,18,,,,,,,
-1115,Eddga@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1115,Eddga@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1115,Eddga@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,0,,,,,,32,
-1115,Eddga@AM_DEMONSTRATION,attack,229,5,2000,0,2000,yes,target,always,0,,,,,,6,
-1115,Eddga@AM_DEMONSTRATION,chase,229,5,2000,0,2000,yes,target,always,0,,,,,,6,
-1115,Eddga@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,no,self,slavele,3,1603,,,,,,
-1115,Eddga@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,no,self,slavele,3,1603,,,,,,
+1115,Eddga@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,yes,self,slavele,3,1603,,,,,,
+1115,Eddga@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,yes,self,slavele,3,1603,,,,,,
1115,Eddga@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1060,,,,,,
1115,Eddga@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1115,Eddga@SM_MAGNUM,attack,7,20,3000,0,2000,no,self,always,0,,,,,,,
-1115,Eddga@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1116,Eggyra@NPC_BLINDATTACK,attack,177,5,2000,0,5000,yes,target,always,0,,,,,,,
-1116,Eggyra@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,6,
-1116,Eggyra@CR_AUTOGUARD,attack,249,2,500,0,5000,yes,self,always,0,,,,,,,
+1115,Eddga@SM_MAGNUM,attack,7,10,3000,0,2000,yes,self,always,,,,,,,,
+1116,Eggyra@CR_AUTOGUARD,attack,249,2,500,0,5000,yes,self,always,,,,,,,,
1116,Eggyra@CR_AUTOGUARD,chase,249,2,2000,0,5000,yes,self,longrangeattacked,,,,,,,,
-1117,Evil Druid@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,9,
-1117,Evil Druid@NPC_UNDEADATTACK,chase,347,3,500,500,5000,no,target,always,0,,,,,,9,
-1117,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1117,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,randomtarget,always,0,,,,,,,
-1118,Flora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1118,Flora@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,randomtarget,always,0,,,,,,,
-1119,Frilldora@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1119,Frilldora@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1119,Frilldora@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1119,Frilldora@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1119,Frilldora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1119,Frilldora@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1119,Frilldora@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1119,Frilldora@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1119,Frilldora@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1119,Frilldora@NPC_FIREATTACK,angry,186,1,2000,0,5000,yes,target,always,0,,,,,,,
+1116,Eggyra@NPC_BLINDATTACK,attack,177,5,2000,0,5000,yes,target,always,,,,,,,,
+1116,Eggyra@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,6,
+1117,Evil Druid@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_CURSEATTACK,chase,181,3,500,800,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_UNDEADATTACK,attack,347,3,500,500,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@NPC_UNDEADATTACK,chase,347,3,500,500,5000,yes,target,always,,,,,,,9,
+1117,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1117,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1118,Flora@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1118,Flora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1118,Flora@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,,,,,,,,
+1119,Frilldora@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1119,Frilldora@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1119,Frilldora@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1119,Frilldora@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1119,Frilldora@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1119,Frilldora@NPC_COMBOATTACK,angry,171,1,500,700,5000,yes,target,always,,,,,,,6,
+1119,Frilldora@NPC_COMBOATTACK,attack,171,1,500,700,5000,yes,target,always,,,,,,,6,
+1119,Frilldora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1119,Frilldora@NPC_FIREATTACK,angry,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1119,Frilldora@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
1120,Ghostring@AL_TELEPORT,attack,26,1,5000,0,5000,yes,self,myhpltmaxrate,30,,,,,,28,
-1120,Ghostring@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1120,Ghostring@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,28,
+1120,Ghostring@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1120,Ghostring@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,28,
-1120,Ghostring@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1120,Ghostring@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1120,Ghostring@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1120,Ghostring@MG_SOULSTRIKE,chase,13,9,2000,500,5000,yes,target,always,0,,,,,,,
-1120,Ghostring@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,28,
-1120,Ghostring@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,28,,,,,,
-1120,Ghostring@NPC_SUMMONSLAVE,attack,196,5,10000,2000,10000,no,self,slavele,3,1599,,,,,,
-1120,Ghostring@NPC_SUMMONSLAVE,idle,196,5,10000,2000,10000,no,self,slavele,3,1599,,,,,,
+1120,Ghostring@MG_SOULSTRIKE,chase,13,9,2000,500,5000,yes,target,always,,,,,,,,
+1120,Ghostring@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,28,
+1120,Ghostring@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,28,,,,,,
+1120,Ghostring@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,,,,,,,,
+1120,Ghostring@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,,,,,,,,
+1120,Ghostring@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,,,,,,,,
1120,Ghostring@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1186,,,,,,
-1120,Ghostring@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,28,
-1121,Giearth@HT_SANDMAN,idle,119,5,500,0,300000,yes,around2,always,0,,,,,,29,
-1121,Giearth@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,8,,,,,,
-1121,Giearth@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1121,Giearth@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,6,
-1122,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,18,,,,,,
-1122,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1122,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3695,,,,,
-1122,Goblin@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1123,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1123,Goblin@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1123,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1123,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3095,,,,,
-1124,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1124,Goblin@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1124,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1124,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x308D,,,,,
-1125,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1125,Goblin@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1125,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1125,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x308D,,,,,
-1126,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,28,,,,,,
-1126,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1126,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x308D,,,,,
-1126,Goblin@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,,
-1127,Hode@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1127,Hode@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1127,Hode@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1128,Horn@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1128,Horn@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,0,,,,,,6,
+1120,Ghostring@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,28,
+1121,Giearth@HT_SANDMAN,idle,119,5,500,0,300000,yes,around2,always,,,,,,,29,
+1121,Giearth@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,8,,,,,,
+1121,Giearth@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1121,Giearth@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,6,
+1122,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1122,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x308D,,,,,
+1122,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,18,,,,,,
+1122,Goblin@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,,,,,,,,
+1123,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1123,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x308D,,,,,
+1123,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1123,Goblin@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,,
+1124,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1124,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x308D,,,,,
+1124,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1124,Goblin@NPC_POISONATTACK,attack,188,5,500,500,5000,no,target,always,,,,,,,,
+1125,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1125,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x308D,,,,,
+1125,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1125,Goblin@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,,,,,,,,
+1126,Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1126,Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x308D,,,,,
+1126,Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,28,,,,,,
+1126,Goblin@NPC_WATERATTACK,attack,184,5,500,500,5000,no,target,always,,,,,,,,
+1127,Hode@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1127,Hode@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1127,Hode@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1128,Horn@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1128,Horn@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
1129,Horong@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1129,Horong@MG_SIGHT,chase,10,1,2000,0,5000,yes,self,always,0,,,,,,,
-1129,Horong@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1129,Horong@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1129,Horong@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,9,
-1130,Jakk@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1130,Jakk@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1130,Jakk@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1130,Jakk@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1130,Jakk@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1130,Jakk@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3695,,,,,
-1131,Joker@MG_FIREBALL,chase,17,5,500,800,5000,yes,target,always,0,,,,,,10,
-1131,Joker@MG_FROSTDIVER,chase,15,9,500,1000,5000,yes,target,always,0,,,,,,10,
-1131,Joker@MG_SOULSTRIKE,chase,13,9,500,500,5000,yes,target,always,0,,,,,,12,
-1131,Joker@NPC_ATTRICHANGE,idle,161,1,500,2000,300000,no,self,always,0,,,,,,10,
-1131,Joker@NPC_ENERGYDRAIN,chase,200,1,500,800,5000,no,target,always,0,,,,,,12,
-1131,Joker@NPC_WINDATTACK,chase,187,2,500,800,5000,no,target,always,0,,,,,,11,
-1131,Joker@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,11,
-1131,Joker@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,0,,,,,,11,
-1131,Joker@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,12,
-1131,Joker@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,0,20,0x81,,,,,
-1131,Joker@NPC_EMOTION,idle,197,1,100,0,60000,yes,self,always,0,6,0x3695,,,,,
-1131,Joker@NPC_EMOTION,attack,197,1,10000,0,60000,yes,self,always,0,6,,,,,,
-1131,Joker@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,0,22,0x83,,,,,
+1129,Horong@MG_SIGHT,chase,10,1,2000,0,5000,yes,self,always,,,,,,,,
+1129,Horong@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+1129,Horong@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1129,Horong@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,9,
+1130,Jakk@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1130,Jakk@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,29,
+1130,Jakk@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,29,
+1130,Jakk@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1130,Jakk@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3695,,,,,
+1130,Jakk@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1131,Joker@MG_FIREBALL,chase,17,5,500,800,5000,yes,target,always,,,,,,,10,
+1131,Joker@MG_FROSTDIVER,chase,15,9,500,1000,5000,yes,target,always,,,,,,,10,
+1131,Joker@MG_SOULSTRIKE,chase,13,9,500,500,5000,yes,target,always,,,,,,,12,
+1131,Joker@NPC_ATTRICHANGE,idle,161,1,500,2000,300000,no,self,always,,,,,,,10,
+1131,Joker@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,,,,,,,11,
+1131,Joker@NPC_EMOTION,idle,197,1,100,0,60000,yes,self,always,,6,0x3695,,,,,
+1131,Joker@NPC_EMOTION,attack,197,1,10000,0,60000,yes,self,always,,6,,,,,,
+1131,Joker@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,,20,0x0081,,,,,
+1131,Joker@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,,22,0x0083,,,,,
+1131,Joker@NPC_ENERGYDRAIN,chase,200,1,500,800,5000,no,target,always,,,,,,,12,
+1131,Joker@NPC_WINDATTACK,chase,187,2,500,800,5000,no,target,always,,,,,,,11,
+1131,Joker@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,11,
+1131,Joker@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,12,
1132,Khalitzburg@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1132,Khalitzburg@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1132,Khalitzburg@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1132,Khalitzburg@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
+1132,Khalitzburg@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1132,Khalitzburg@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1132,Khalitzburg@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
1132,Khalitzburg@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,9,
-1132,Khalitzburg@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,9,
-1133,Kobold 1@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1133,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1133,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-1133,Kobold@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1134,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1134,Kobold@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,6,
-1134,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1134,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-1135,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1135,Kobold@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1135,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1135,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-1138,Magnolia@HT_FLASHER,idle,120,5,500,0,300000,yes,around2,always,0,,,,,,29,
-1138,Magnolia@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,28,,,,,,
-1138,Magnolia@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1138,Magnolia@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1139,Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1139,Mantis@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1139,Mantis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1139,Mantis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3195,,,,,
+1132,Khalitzburg@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,9,
+1133,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1133,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+1133,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1133,Kobold@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,,,,,,,6,
+1134,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1134,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+1134,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1134,Kobold@NPC_POISONATTACK,attack,188,5,500,500,5000,no,target,always,,,,,,,6,
+1135,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1135,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+1135,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1135,Kobold@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,6,
+1138,Magnolia@HT_FLASHER,idle,120,5,500,0,300000,yes,around2,always,,,,,,,29,
+1138,Magnolia@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,28,,,,,,
+1138,Magnolia@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1138,Magnolia@NPC_UNDEADATTACK,attack,347,3,2000,0,5000,yes,target,always,,,,,,,,
+1139,Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,6,
+1139,Mantis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1139,Mantis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3095,,,,,
+1139,Mantis@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
1140,Marduk@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1140,Marduk@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,0,,,,,,9,
-1140,Marduk@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,0,,,,,,9,
-1140,Marduk@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1140,Marduk@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1140,Marduk@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1140,Marduk@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,9,
-1141,Marina@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1141,Marina@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1141,Marina@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
-1142,Marine Sphere@NPC_RUN,idle,354,7,10000,0,30000,no,master,alchemist,,,,,,,,
-1142,Marine Sphere@NPC_SELFDESTRUCTION,any,173,1,10000,3000,0,no,self,afterskill,354,,,,,,,
+1140,Marduk@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,,,,,,,9,
+1140,Marduk@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,,,,,,,9,
+1140,Marduk@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+1140,Marduk@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1140,Marduk@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1140,Marduk@NPC_MAGICALATTACK,attack,192,2,500,1000,5000,no,target,always,,,,,,,9,
+1141,Marina@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1141,Marina@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1141,Marina@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+1142,Marine Sphere@NPC_RANDOMMOVE,idle,331,1,10000,0,30000,yes,target,alchemist,,,,,,,,
+1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,0,0,yes,self,alchemist,,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,500,2000,5000,no,self,myhpltmaxrate,99,,,,,,,
1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,2000,5000,no,self,skillused,173,,,,,,,
-//1142,Marine Sphere@NPC_SELFDESTRUCTION,idle,173,1,10000,0,0,yes,self,always,0,,,,,,,
-//1142,Marine Sphere@NPC_SPEEDUP,any,332,1,10000,0,700,yes,self,always,0,,,,,,,
-1143,Marionette@HT_FREEZINGTRAP,idle,121,5,500,0,300000,yes,around2,always,0,,,,,,29,
-1143,Marionette@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,2,
-1143,Marionette@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,6,
-1144,Marse@NPC_BLINDATTACK,attack,177,5,2000,0,5000,yes,target,always,0,,,,,,6,
-1144,Marse@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1144,Marse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x91,,,,,
-1144,Marse@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-1145,Martin@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
+1142,Marine Sphere@NPC_SPEEDUP,idle,332,1,10000,0,700,yes,target,always,,,,,,,,
+1143,Marionette@HT_FREEZINGTRAP,idle,121,5,500,0,300000,yes,around2,always,,,,,,,29,
+1143,Marionette@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,2,
+1143,Marionette@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1143,Marionette@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,6,
+1144,Marse@NPC_BLINDATTACK,attack,177,5,2000,0,5000,yes,target,always,,,,,,,6,
+1144,Marse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0091,,,,,
+1144,Marse@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1144,Marse@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+1145,Martin@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
1145,Martin@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
-1145,Martin@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,6,
-1146,Matyr@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
-1146,Matyr@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1146,Matyr@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,7,0x81,,,,,
-1146,Matyr@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3095,,,,,
-1147,Maya@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-1147,Maya@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
-1147,Maya@AL_HEAL,chase,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-1147,Maya@AL_HEAL,chase,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+1145,Martin@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,6,
+1146,Matyr@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,6,
+1146,Matyr@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1146,Matyr@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,7,0x0081,,,,,
+1146,Matyr@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3095,,,,,
+1147,Maya@AL_HEAL,attack,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+1147,Maya@AL_HEAL,chase,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+1147,Maya@AL_HEAL,attack,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+1147,Maya@AL_HEAL,chase,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+1147,Maya@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1147,Maya@AL_TELEPORT,walk,26,1,500,0,5000,yes,self,always,,,,,,,,
1147,Maya@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1147,Maya@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1147,Maya@AL_TELEPORT,walk,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1147,Maya@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1147,Maya@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1147,Maya@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
+1147,Maya@CR_AUTOGUARD,attack,249,10,500,0,5000,yes,self,always,,,,,,,,
+1147,Maya@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,,
+1147,Maya@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,6,
+1147,Maya@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1147,Maya@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1147,Maya@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1147,Maya@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,18,
1147,Maya@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1147,Maya@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1147,Maya@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1147,Maya@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,6,
-1147,Maya@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,18,
-1147,Maya@CR_AUTOGUARD,attack,249,10,500,0,5000,yes,self,always,0,,,,,,,
1147,Maya@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1477,,,,,,
1147,Maya@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1477,,,,,,
1147,Maya@NPC_SUMMONSLAVE,idle,196,10,10000,0,0,no,self,onspawn,0,1194,,,,,,
-1147,Maya@WZ_HEAVENDRIVE,attack,91,5,2000,0,5000,no,target,always,0,,,,,,,
-1147,Maya@WZ_HEAVENDRIVE,chase,91,5,2000,0,5000,no,target,always,0,,,,,,,
+1147,Maya@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1147,Maya@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1147,Maya@WZ_HEAVENDRIVE,attack,91,5,2000,0,5000,no,target,always,,,,,,,,
+1147,Maya@WZ_HEAVENDRIVE,chase,91,5,2000,0,5000,no,target,always,,,,,,,,
1147,Maya@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,,
-1148,Medusa@MG_STONECURSE,attack,16,10,500,1500,5000,no,target,always,0,,,,,,3,
-1148,Medusa@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,0,,,,,,3,
-1148,Medusa@NPC_PETRIFYATTACK,chase,180,5,500,500,5000,no,target,always,0,,,,,,3,
-1148,Medusa@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1148,Medusa@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3795,,,,,
+1148,Medusa@MG_STONECURSE,attack,16,10,500,1500,5000,no,target,always,,,,,,,3,
+1148,Medusa@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,,,,,,,32,
+1148,Medusa@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1148,Medusa@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1148,Medusa@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,,,,,,,3,
+1148,Medusa@NPC_PETRIFYATTACK,chase,180,5,500,500,5000,no,target,always,,,,,,,3,
1149,Minorous@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1149,Minorous@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,0,,,,,,,
-1149,Minorous@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1149,Minorous@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1149,Minorous@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1149,Minorous@WZ_HEAVENDRIVE,attack,91,3,500,1200,5000,yes,target,always,0,,,,,,19,
-1150,Moonlight Flower@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,21,
-1150,Moonlight Flower@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,21,
-1150,Moonlight Flower@AL_HEAL,chase,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,21,
-1150,Moonlight Flower@AL_HEAL,chase,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,21,
-1150,Moonlight Flower@SA_LANDPROTECTOR,chase,288,1,10000,1000,5000,no,target,skillused,89,,,,,,,
-1150,Moonlight Flower@SA_LANDPROTECTOR,attack,288,1,10000,500,10000,no,target,myhpltmaxrate,80,,,,,,32,
+1149,Minorous@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+1149,Minorous@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1149,Minorous@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3095,,,,,
+1149,Minorous@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1149,Minorous@WZ_HEAVENDRIVE,attack,91,3,500,1200,5000,yes,target,always,,,,,,,19,
+1150,Moonlight Flower@AL_HEAL,attack,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,21,
+1150,Moonlight Flower@AL_HEAL,chase,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,21,
+1150,Moonlight Flower@AL_HEAL,attack,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,21,
+1150,Moonlight Flower@AL_HEAL,chase,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,21,
1150,Moonlight Flower@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1150,Moonlight Flower@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1150,Moonlight Flower@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1150,Moonlight Flower@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1150,Moonlight Flower@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1150,Moonlight Flower@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,6,
-1150,Moonlight Flower@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1150,Moonlight Flower@MC_MAMMONITE,attack,42,20,2000,0,5000,no,target,always,0,,,,,,8,
-1150,Moonlight Flower@MG_COLDBOLT,chase,14,5,2000,0,5000,no,target,always,0,,,,,,0,
+1150,Moonlight Flower@BS_HAMMERFALL,attack,110,10,2000,0,5000,no,target,always,,,,,,,0,
+1150,Moonlight Flower@BS_HAMMERFALL,chase,110,10,2000,0,5000,no,target,always,,,,,,,0,
+1150,Moonlight Flower@MC_MAMMONITE,attack,42,10,2000,0,5000,no,target,always,,,,,,,8,
+1150,Moonlight Flower@MG_COLDBOLT,chase,14,5,2000,0,5000,no,target,always,,,,,,,0,
1150,Moonlight Flower@MG_COLDBOLT,chase,14,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-1150,Moonlight Flower@MG_FIREBOLT,chase,19,5,2000,0,5000,no,target,always,0,,,,,,0,
+1150,Moonlight Flower@MG_FIREBOLT,chase,19,5,2000,0,5000,no,target,always,,,,,,,0,
1150,Moonlight Flower@MG_FIREBOLT,chase,19,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-1150,Moonlight Flower@MG_LIGHTNINGBOLT,chase,20,5,2000,0,5000,no,target,always,0,,,,,,0,
+1150,Moonlight Flower@MG_LIGHTNINGBOLT,chase,20,5,2000,0,5000,no,target,always,,,,,,,0,
1150,Moonlight Flower@MG_LIGHTNINGBOLT,chase,20,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-1150,Moonlight Flower@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1150,Moonlight Flower@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1150,Moonlight Flower@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,6,
-1150,Moonlight Flower@SA_DISPELL,attack,289,5,2000,500,5000,no,target,always,0,,,,,,6,
-1150,Moonlight Flower@SA_DISPELL,chase,289,5,2000,500,5000,no,target,always,0,,,,,,6,
+1150,Moonlight Flower@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1150,Moonlight Flower@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1150,Moonlight Flower@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1150,Moonlight Flower@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,6,
+1150,Moonlight Flower@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
1150,Moonlight Flower@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1471,,,,,,
1150,Moonlight Flower@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1471,,,,,,
1150,Moonlight Flower@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1180,,,,,,
-1150,Moonlight Flower@BS_HAMMERFALL,chase,110,11,2000,0,5000,no,target,always,0,,,,,,0,
-1150,Moonlight Flower@BS_HAMMERFALL,attack,110,11,2000,0,5000,no,target,always,0,,,,,,0,
-1151,Myst@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1151,Myst@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,,,,,,
-1151,Myst@NPC_MENTALBREAKER,attack,159,2,500,800,5000,no,target,always,0,,,,,,9,
-1151,Myst@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
-1152,Orc Skeleton@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,9,
-1152,Orc Skeleton@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,9,
-1152,Orc Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1152,Orc Skeleton@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1153,Orc Zombie@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,9,
-1153,Orc Zombie@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,9,
-1153,Orc Zombie@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1153,Orc Zombie@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,0,,,,,,,
+1150,Moonlight Flower@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1150,Moonlight Flower@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+1150,Moonlight Flower@SA_DISPELL,attack,289,5,2000,500,5000,no,target,always,,,,,,,6,
+1150,Moonlight Flower@SA_DISPELL,chase,289,5,2000,500,5000,no,target,always,,,,,,,6,
+1150,Moonlight Flower@SA_LANDPROTECTOR,attack,288,1,10000,500,10000,no,target,myhpltmaxrate,80,,,,,,32,
+1150,Moonlight Flower@SA_LANDPROTECTOR,chase,288,1,10000,1000,5000,no,target,skillused,89,,,,,,,
+1150,Moonlight Flower@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,,,,,,,6,
+1151,Myst@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1151,Myst@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,,,,,,
+1151,Myst@NPC_MENTALBREAKER,attack,159,2,500,800,5000,no,target,always,,,,,,,9,
+1151,Myst@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,,,,,,,9,
+1152,Orc Skeleton@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,9,
+1152,Orc Skeleton@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,9,
+1152,Orc Skeleton@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1152,Orc Skeleton@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1152,Orc Skeleton@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1153,Orc Zombie@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,9,
+1153,Orc Zombie@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,9,
+1153,Orc Zombie@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1153,Orc Zombie@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1153,Orc Zombie@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,,,,,,,,
1154,Pasana@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1154,Pasana@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1154,Pasana@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
-1154,Pasana@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1154,Pasana@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3095,,,,,
-1154,Pasana@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
-1155,Petite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1155,Petite@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1155,Petite@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1155,Petite@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-1155,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1156,Petite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1156,Petite@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1156,Petite@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-1156,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1156,Petite@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1157,Pharaoh@AC_CHARGEARROW,attack,148,1,2000,0,0,yes,target,always,0,,,,,,,
+1154,Pasana@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,,,,,,,32,
+1154,Pasana@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1154,Pasana@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,29,
+1154,Pasana@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1154,Pasana@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3095,,,,,
+1154,Pasana@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
+1155,Petite@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1155,Petite@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1155,Petite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1155,Petite@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1155,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,,
+1155,Petite@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
+1156,Petite@AL_INCAGI,chase,29,5,2000,700,300000,no,self,always,,,,,,,6,
+1156,Petite@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1156,Petite@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1156,Petite@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1156,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,,
+1156,Petite@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
+1157,Pharaoh@AC_CHARGEARROW,attack,148,1,2000,0,0,yes,target,always,,,,,,,,
1157,Pharaoh@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1157,Pharaoh@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1157,Pharaoh@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1157,Pharaoh@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
1157,Pharaoh@MG_THUNDERSTORM,chase,21,9,2000,0,5000,no,target,skillused,18,,,,,,,
-1157,Pharaoh@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-1157,Pharaoh@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-1157,Pharaoh@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1157,Pharaoh@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1157,Pharaoh@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,0,,,,,,29,
-1157,Pharaoh@NPC_ENERGYDRAIN,attack,200,1,2000,0,5000,yes,target,always,0,,,,,,,
-1157,Pharaoh@NPC_ENERGYDRAIN,chase,200,1,2000,0,5000,yes,target,always,0,,,,,,,
+1157,Pharaoh@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1157,Pharaoh@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1157,Pharaoh@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,,,,,,,29,
+1157,Pharaoh@NPC_DARKNESSBREATH,attack,658,2,500,800,5000,no,target,always,,,,,,,7,
+1157,Pharaoh@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,,,,,,,,
+1157,Pharaoh@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,,,,,,,,
+1157,Pharaoh@NPC_ENERGYDRAIN,attack,200,1,2000,0,5000,yes,target,always,,,,,,,,
+1157,Pharaoh@NPC_ENERGYDRAIN,chase,200,1,2000,0,5000,yes,target,always,,,,,,,,
1157,Pharaoh@NPC_ENERGYDRAIN,chase,200,1,10000,0,5000,yes,target,skillused,18,,,,,,,
-1157,Pharaoh@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,0,,,,,,,
+1157,Pharaoh@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,,,,,,,,
+1157,Pharaoh@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
1157,Pharaoh@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1458,1464,,,,,
1157,Pharaoh@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1458,1464,,,,,
-1158,Phen@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,0,,,,,,19,
-1158,Phen@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,19,
+1158,Phen@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+1158,Phen@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,19,
+1159,Phreeoni@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1159,Phreeoni@AL_HEAL,idle,28,10,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
1159,Phreeoni@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1159,Phreeoni@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1159,Phreeoni@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1159,Phreeoni@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1159,Phreeoni@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1159,Phreeoni@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1159,Phreeoni@NPC_WIDESTONE,chase,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,,
-1159,Phreeoni@NPC_WIDESTONE,attack,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,,
+1159,Phreeoni@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1159,Phreeoni@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1159,Phreeoni@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,,,,,,,,
1159,Phreeoni@NPC_HELMBRAKE,attack,345,10,2000,0,5000,no,target,skillused,18,,,,,,,
-1159,Phreeoni@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,0,,,,,,,
-1159,Phreeoni@NPC_LICK,attack,206,5,2000,0,5000,yes,target,always,0,,,,,,3,
-1159,Phreeoni@NPC_PETRIFYATTACK,chase,180,5,2000,500,5000,no,target,always,0,,,,,,3,
+1159,Phreeoni@NPC_LICK,attack,206,5,2000,0,5000,yes,target,always,,,,,,,3,
+1159,Phreeoni@NPC_PETRIFYATTACK,chase,180,5,2000,500,5000,no,target,always,,,,,,,3,
+1159,Phreeoni@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
1159,Phreeoni@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1558,,,,,,
1159,Phreeoni@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1558,,,,,,
1159,Phreeoni@NPC_SUMMONSLAVE,idle,196,10,10000,0,0,no,self,onspawn,0,1127,,,,,,
+1159,Phreeoni@NPC_WIDESTONE,attack,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,,
+1159,Phreeoni@NPC_WIDESTONE,chase,666,5,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,,
1159,Phreeoni@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,20,,,,,,19,
-1159,Phreeoni@AL_HEAL,idle,28,11,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
1159,Phreeoni@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,19,
-1159,Phreeoni@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1160,Piere@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1160,Piere@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-1161,Plankton@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1163,Raydric@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1163,Raydric@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1163,Raydric@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1163,Raydric@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,0,,,,,,
-1163,Raydric@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,6,
+1160,Piere@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1160,Piere@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1161,Plankton@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1163,Raydric@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1163,Raydric@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1163,Raydric@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1163,Raydric@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1163,Raydric@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1164,Requiem@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1164,Requiem@NPC_EMOTION,walk,197,1,200,0,5000,yes,self,always,0,19,,,,,,
-1164,Requiem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1165,Sandman@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1165,Sandman@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1165,Sandman@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1165,Sandman@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1165,Sandman@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1165,Sandman@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1165,Sandman@NPC_GROUNDATTACK,angry,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1165,Sandman@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1166,Savage@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,0,,,,,,6,
-1166,Savage@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1166,Savage@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1167,Savage Babe@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1167,Savage Babe@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1169,Skeleton Worker@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1169,Skeleton Worker@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1169,Skeleton Worker@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1170,Sohee@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,28,,,,,,
-1170,Sohee@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,0,,,,,,9,
+1163,Raydric@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1163,Raydric@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,0,,,,,,
+1163,Raydric@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,,,,,,,6,
+1164,Requiem@NPC_DARKNESSATTACK,attack,190,2,2000,0,5000,yes,target,always,,,,,,,,
+1164,Requiem@NPC_EMOTION,walk,197,1,200,0,5000,yes,self,always,,19,,,,,,
+1164,Requiem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1165,Sandman@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1165,Sandman@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1165,Sandman@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1165,Sandman@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1165,Sandman@NPC_GROUNDATTACK,angry,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1165,Sandman@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1165,Sandman@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,,,,,,,,
+1165,Sandman@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,,
+1166,Savage@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,,,,,,,6,
+1166,Savage@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1166,Savage@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1167,Savage Babe@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1167,Savage Babe@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1169,Skeleton Worker@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1169,Skeleton Worker@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1169,Skeleton Worker@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1170,Sohee@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,28,,,,,,
+1170,Sohee@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,,,,,,,9,
1170,Sohee@NPC_SUICIDE,attack,175,1,500,0,5000,yes,self,myhpltmaxrate,80,,,,,,,
-1170,Sohee@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
+1170,Sohee@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
1174,Stainer@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,attackpcge,2,,,,,,19,
-1174,Stainer@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,0,,,,,,,
-1174,Stainer@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1175,Tarou@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1175,Tarou@NPC_POISON,attack,176,1,500,800,5000,no,target,always,0,,,,,,,
+1174,Stainer@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,,,,,,,,
+1174,Stainer@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1175,Tarou@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1175,Tarou@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
1176,Vitata@AM_POTIONPITCHER,attack,231,2,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
-1176,Vitata@AM_POTIONPITCHER,attack,231,2,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
1176,Vitata@AM_POTIONPITCHER,chase,231,2,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+1176,Vitata@AM_POTIONPITCHER,attack,231,2,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
1176,Vitata@AM_POTIONPITCHER,chase,231,2,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
-1176,Vitata@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1177,Zenorc@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1177,Zenorc@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1177,Zenorc@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1178,Zerom@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-1178,Zerom@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1178,Zerom@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1178,Zerom@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3885,,,,,
-1178,Zerom@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1178,Zerom@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1179,Whisper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1179,Whisper@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1179,Whisper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1179,Whisper@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,,,,,,
-1179,Whisper@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1179,Whisper@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,28,0x3195,,,,,
-1179,Whisper@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,28,
-1180,Nine-Tail@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1180,Nine-Tail@NPC_ATTRICHANGE,attack,161,1,500,2000,5000,no,self,myhpltmaxrate,30,,,,,,,
-1180,Nine-Tail@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1180,Nine-Tail@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1180,Nine-Tail@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,0,,,,,,6,
-1188,Bon Gun@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1188,Bon Gun@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,0,
+1176,Vitata@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1177,Zenorc@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1177,Zenorc@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1177,Zenorc@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1178,Zerom@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1178,Zerom@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1178,Zerom@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3885,,,,,
+1178,Zerom@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+1178,Zerom@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,6,
+1178,Zerom@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1179,Whisper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1179,Whisper@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1179,Whisper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1179,Whisper@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,28,
+1179,Whisper@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1179,Whisper@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,28,0x3095,,,,,
+1179,Whisper@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,,,,,,
+1180,Nine Tail@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1180,Nine Tail@NPC_ATTRICHANGE,attack,161,1,500,2000,5000,no,self,myhpltmaxrate,30,,,,,,,
+1180,Nine Tail@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+1180,Nine Tail@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1180,Nine Tail@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1180,Nine Tail@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1180,Nine Tail@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,,,,,,,6,
+1188,Bongun@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1188,Bongun@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,0,
+1189,Orc Archer@AC_DOUBLE,attack,46,5,2000,1000,5000,yes,target,always,,,,,,,,
1189,Orc Archer@AC_SHOWER,attack,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,6,
-1189,Orc Archer@HT_ANKLESNARE,idle,117,5,500,0,300000,yes,around2,always,0,,,,,,29,
-1189,Orc Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,5,,,,,,
-1189,Orc Archer@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-//1189,Orc Archer@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
-1190,Orc Lord@AL_INCAGI,chase,29,10,2000,700,300000,no,self,always,0,,,,,,6,
+1189,Orc Archer@HT_ANKLESNARE,idle,117,5,500,0,300000,yes,around2,always,,,,,,,29,
+1189,Orc Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,5,,,,,,
+1189,Orc Archer@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+1190,Orc Lord@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+1190,Orc Lord@AL_INCAGI,chase,29,10,2000,700,300000,no,self,always,,,,,,,6,
1190,Orc Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1190,Orc Lord@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1190,Orc Lord@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1190,Orc Lord@CR_SHIELDCHARGE,attack,250,5,2000,0,5000,no,target,always,0,,,,,,,
-1190,Orc Lord@NPC_EARTHQUAKE,chase,653,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,32,
+1190,Orc Lord@BS_HAMMERFALL,attack,110,10,2000,0,5000,no,target,always,,,,,,,0,
+1190,Orc Lord@BS_HAMMERFALL,chase,110,10,2000,0,5000,no,target,always,,,,,,,0,
+1190,Orc Lord@CR_SHIELDCHARGE,attack,250,5,2000,0,5000,no,target,always,,,,,,,,
+1190,Orc Lord@MG_COLDBOLT,chase,14,10,2000,0,5000,no,target,always,,,,,,,,
+1190,Orc Lord@MG_FIREBOLT,chase,19,10,2000,0,5000,no,target,always,,,,,,,,
+1190,Orc Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1190,Orc Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1190,Orc Lord@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
1190,Orc Lord@NPC_EARTHQUAKE,attack,653,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,32,
+1190,Orc Lord@NPC_EARTHQUAKE,chase,653,5,10000,1500,30000,no,self,myhpltmaxrate,80,,,,,,32,
+1190,Orc Lord@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,,,,,,,6,
1190,Orc Lord@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1190,Orc Lord@MG_COLDBOLT,chase,14,10,2000,0,5000,no,target,always,0,,,,,,,
-1190,Orc Lord@MG_FIREBOLT,chase,19,10,2000,0,5000,no,target,always,0,,,,,,,
-1190,Orc Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1190,Orc Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1190,Orc Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,0,,,,,,,
-1190,Orc Lord@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,0,,,,,,6,
+1190,Orc Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,,,,,,,,
1190,Orc Lord@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1473,,,,,27,
1190,Orc Lord@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1473,,,,,27,
1190,Orc Lord@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1189,,,,,,
-1190,Orc Lord@PR_LEXDIVINA,chase,76,10,2000,0,5000,no,target,always,0,,,,,,9,
+1190,Orc Lord@PR_LEXDIVINA,chase,76,10,2000,0,5000,no,target,always,,,,,,,9,
1190,Orc Lord@PR_LEXDIVINA,chase,76,10,10000,0,5000,no,target,skillused,18,,,,,,9,
-1190,Orc Lord@SM_PROVOKE,chase,6,10,2000,0,5000,no,target,always,0,,,,,,2,
-1190,Orc Lord@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
-1191,Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1191,Mimic@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
+1190,Orc Lord@SM_PROVOKE,chase,6,10,2000,0,5000,no,target,always,,,,,,,2,
+1191,Mimic@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1191,Mimic@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1191,Mimic@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1192,Wraith@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1192,Wraith@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1192,Wraith@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1192,Wraith@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1193,Alarm@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1193,Alarm@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,0,,,,,,7,
-1193,Alarm@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1193,Alarm@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
+1191,Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1191,Mimic@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1191,Mimic@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1192,Wraith@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1192,Wraith@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,9,
+1192,Wraith@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,9,
+1192,Wraith@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,,
+1193,Alarm@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1193,Alarm@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,,,,,,,7,
+1193,Alarm@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1193,Alarm@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
1193,Alarm@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,6,
-1194,Arclouse@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1194,Arclouse@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1194,Arclouse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1194,Arclouse@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3195,,,,,
-1195,Rideword@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1195,Rideword@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1195,Rideword@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,2,
-1196,Skeleton Prisoner@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
+1194,Arclouze@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1194,Arclouze@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1194,Arclouze@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1194,Arclouze@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1195,Rideword@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1195,Rideword@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1195,Rideword@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,2,
+1196,Skeleton Prisoner@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
1196,Skeleton Prisoner@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1197,Zombie Prisoner@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1197,Zombie Prisoner@NPC_UNDEADATTACK,attack,347,2,500,500,5000,no,target,always,0,,,,,,,
-1198,Dark Priest@NPC_DARKCROSS,attack,338,10,5000,0,10000,yes,target,always,0,,,,,,9,
-1198,Dark Priest@NPC_CHANGEUNDEAD,attack,348,5,1000,1000,30000,no,target,always,0,,,,,,9,
+1197,Zombie Prisoner@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1197,Zombie Prisoner@NPC_POISONATTACK,attack,188,3,500,800,5000,no,target,always,,,,,,,,
+1197,Zombie Prisoner@NPC_UNDEADATTACK,attack,347,2,500,500,5000,no,target,always,,,,,,,,
1198,Dark Priest@MO_BODYRELOCATION,chase,264,1,10000,0,5000,yes,target,skillused,18,,,,,,,
-1198,Dark Priest@NPC_DARKBREATH,chase,202,5,500,800,30000,no,target,always,0,,,,,,9,
-1198,Dark Priest@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,0,,,,,,,
-1199,Punk@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,7,
-1199,Punk@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1199,Punk@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-1199,Punk@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1200,Zherlthsh@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1200,Zherlthsh@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,3,
-1200,Zherlthsh@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,30,,,,,,
-1200,Zherlthsh@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,30,
-1200,Zherlthsh@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,0,,,,,,30,
-1200,Zherlthsh@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1257,,,,,,
-1200,Zherlthsh@NPC_STOP,attack,342,1,500,0,30000,no,target,always,0,,,,,,3,
-1201,Rybio@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,4,
-1201,Rybio@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,4,
-1201,Rybio@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,0,,,,,,4,
-1202,Phendark@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,29,
-1202,Phendark@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,29,
-1202,Phendark@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,29,
-1203,Mysteltainn@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1203,Mysteltainn@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1203,Mysteltainn@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1203,Mysteltainn@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,0,,,,,,29,
-1203,Mysteltainn@NPC_SHIELDBRAKE,attack,346,5,500,0,5000,yes,target,always,0,,,,,,,
+1198,Dark Priest@NPC_BLEEDING,attack,660,3,10,0,5000,yes,target,always,,,,,,,,
+1198,Dark Priest@NPC_CHANGEUNDEAD,attack,348,1,300,1000,30000,yes,target,always,,,,,,,9,
+1198,Dark Priest@NPC_DARKBREATH,chase,202,2,500,800,30000,yes,target,always,,,,,,,9,
+1198,Dark Priest@NPC_DARKCROSS,attack,338,3,5000,0,10000,yes,target,always,,,,,,,9,
+1198,Dark Priest@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,yes,target,always,,,,,,,,
+1199,Punk@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1199,Punk@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1199,Punk@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1199,Punk@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,7,
+1199,Punk@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+1200,Zealotus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1200,Zealotus@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,3,
+1200,Zealotus@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,30,,,,,,
+1200,Zealotus@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,30,
+1200,Zealotus@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,,,,,,,30,
+1200,Zealotus@NPC_STOP,attack,342,1,500,0,30000,no,target,always,,,,,,,3,
+1200,Zealotus@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1257,,,,,,
+1201,Rybio@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,4,
+1201,Rybio@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,4,
+1201,Rybio@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,,,,,,,4,
+1202,Phendark@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,29,
+1202,Phendark@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,29,
+1202,Phendark@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,29,
+1203,Mysteltainn@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1203,Mysteltainn@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1203,Mysteltainn@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,,,,,,,,
1203,Mysteltainn@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1203,Mysteltainn@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-1204,Tyrfing@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,18,
-1204,Tyrfing@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1204,Tyrfing@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1204,Tyrfing@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,6,
-1204,Tyrfing@NPC_HELMBRAKE,attack,345,5,500,0,5000,yes,target,always,0,,,,,,,
-1204,Tyrfing@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1204,Tyrfing@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-1205,Executioner@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1205,Executioner@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
+1203,Mysteltainn@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1203,Mysteltainn@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,,,,,,,29,
+1203,Mysteltainn@NPC_SHIELDBRAKE,attack,346,5,500,0,5000,yes,target,always,,,,,,,,
+1204,Ogretooth@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,18,
+1204,Ogretooth@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,,,,,,,,
+1204,Ogretooth@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1204,Ogretooth@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1204,Ogretooth@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1204,Ogretooth@NPC_HELMBRAKE,attack,345,5,500,0,5000,yes,target,always,,,,,,,,
+1204,Ogretooth@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,6,
+1205,Executioner@BS_MAXIMIZE,attack,114,5,500,1000,5000,yes,self,always,,,,,,,,
+1205,Executioner@BS_MAXIMIZE,chase,114,5,500,1000,5000,yes,self,always,,,,,,,,
+1205,Executioner@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,,,,,,,,
1205,Executioner@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1205,Executioner@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-1205,Executioner@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1205,Executioner@NPC_ARMORBRAKE,attack,344,5,500,0,5000,yes,target,always,0,,,,,,,
-1206,Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1206,Anolian@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1206,Anolian@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,2,
-1206,Anolian@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1206,Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3695,,,,,
+1205,Executioner@NPC_ARMORBRAKE,attack,344,5,500,0,5000,yes,target,always,,,,,,,,
+1205,Executioner@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1206,Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1206,Anolian@NPC_WATERATTACK,attack,184,3,2000,0,5000,yes,target,always,,,,,,,,
+1206,Anolian@SM_BASH,attack,5,7,500,800,5000,no,target,always,,,,,,,2,
+1206,Anolian@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1206,Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3695,,,,,
1207,Sting@AM_POTIONPITCHER,idle,231,4,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
-1207,Sting@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,11,
-1207,Sting@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,,,,,,,
-1207,Sting@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,12,
-1207,Sting@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1207,Sting@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,20,0x3095,,,,,
+1207,Sting@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,,,,,,,11,
+1207,Sting@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1207,Sting@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,20,0x3695,,,,,
+1207,Sting@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,,,,,,,
+1207,Sting@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,12,
1207,Sting@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,10,
-1207,Sting@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,0,,,,,,11,
-1207,Sting@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,0,,,,,,11,
+1207,Sting@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,,,,,,,11,
+1207,Sting@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,,,,,,,11,
1208,Wanderer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1208,Wanderer@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,0,,,,,,,
-1208,Wanderer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
+1208,Wanderer@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,,,,,,,,
+1208,Wanderer@NPC_BLEEDING,attack,660,1,2000,0,3000,yes,target,always,,,,,,,32,
+1208,Wanderer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
1208,Wanderer@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1208,Wanderer@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,,
-1208,Wanderer@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
-1209,Cramp@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1209,Cramp@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1211,Brilight@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
+1208,Wanderer@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,,,,,,,,
+1208,Wanderer@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,,,,,,,,
+1209,Cramp@NPC_POISON,attack,176,3,500,800,5000,yes,target,always,,,,,,,,
+1209,Cramp@NPC_POISONATTACK,attack,188,3,2000,0,5000,yes,target,always,,,,,,,,
+1211,Brilight@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
1211,Brilight@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,20,,,,,,9,
-1211,Brilight@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,0,,,,,,,
-1211,Brilight@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1213,High Orc@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1213,High Orc@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
-1213,High Orc@CR_SHIELDCHARGE,attack,250,1,500,0,5000,no,target,always,0,,,,,,,
-1213,High Orc@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1213,High Orc@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3695,,,,,
-1213,High Orc@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,0,,,,,,32,
-1214,Choco@AM_POTIONPITCHER,idle,231,1,500,1500,5000,yes,self,always,0,,,,,,,
+1211,Brilight@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,,
+1211,Brilight@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+1213,High Orc@CR_SHIELDCHARGE,attack,250,2,500,0,5000,no,target,always,,,,,,,,
+1213,High Orc@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1213,High Orc@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3695,,,,,
+1213,High Orc@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1213,High Orc@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1213,High Orc@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,,,,,,,32,
1214,Choco@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1214,Choco@HT_SKIDTRAP,idle,115,5,500,0,5000,yes,around2,always,0,,,,,,29,
-1214,Choco@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1214,Choco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1214,Choco@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1214,Choco@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000,no,self,slavele,0,1057,,,,,27,
-1214,Choco@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1057,,,,,27,
-1214,Choco@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,always,0,,,,,,,
-1214,Choco@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,0,,,,,,,
-1215,Stem Worm@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1215,Stem Worm@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1216,Penomena@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1216,Penomena@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1216,Penomena@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1219,Knight of Abyss@AC_CHARGEARROW,chase,148,1,500,0,5000,yes,target,always,0,,,,,,,
-1219,Knight of Abyss@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1219,Knight of Abyss@KN_BRANDISHSPEAR,attack,57,20,500,1000,5000,no,target,always,0,,,,,,9,
-1219,Knight of Abyss@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,0,,,,,,9,
-1219,Knight of Abyss@NPC_SUMMONSLAVE,idle,196,2,10000,2000,600000,no,self,slavele,0,1132,,,,,,
-1219,Knight of Abyss@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,0,,,,,,,
-1219,Knight of Abyss@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1219,Knight of Abyss@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-1242,Marin@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1242,Marin@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,0,,,,,,,
-1242,Marin@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1242,Marin@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1243,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,6,
-1243,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1243,Sasquatch@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1243,Sasquatch@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
+1214,Choco@AM_POTIONPITCHER,idle,231,1,500,1500,5000,yes,self,always,,,,,,,,
+1214,Choco@HT_SKIDTRAP,idle,115,5,500,0,5000,yes,around2,always,,,,,,,29,
+1214,Choco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1214,Choco@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3095,,,,,
+1214,Choco@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1214,Choco@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000,yes,self,slavele,0,1057,,,,,27,
+1214,Choco@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,yes,self,slavele,0,1057,,,,,27,
+1214,Choco@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,always,,,,,,,,
+1214,Choco@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,,
+1215,Stem Worm@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,,,,,,,,
+1215,Stem Worm@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
+1216,Penomena@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1216,Penomena@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1216,Penomena@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1219,Abysmal Knight@AC_CHARGEARROW,chase,148,1,500,0,5000,yes,target,always,,,,,,,,
+1219,Abysmal Knight@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1219,Abysmal Knight@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,,,,,,,,
+1219,Abysmal Knight@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1219,Abysmal Knight@KN_BRANDISHSPEAR,attack,57,10,500,1000,5000,no,target,always,,,,,,,9,
+1219,Abysmal Knight@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,,,,,,,,
+1219,Abysmal Knight@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,,,,,,,9,
+1219,Abysmal Knight@NPC_SUMMONSLAVE,idle,196,2,10000,2000,600000,no,self,slavele,0,1132,,,,,,
+1242,Marin@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,,,,,,,,
+1242,Marin@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1242,Marin@NPC_WATERATTACK,attack,184,3,2000,0,5000,yes,target,always,,,,,,,,
+1243,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,,,,,,,6,
+1243,Sasquatch@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1243,Sasquatch@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1243,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1243,Sasquatch@NPC_WATERATTACK,angry,184,3,2000,0,5000,yes,target,always,,,,,,,,
1243,Sasquatch@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-//1244,Christmas Jakk@NPC_EMOTION,idle,197,1,500,0,5000,yes,self,always,0,,,,,,,
-//1245,Christmas Goblin@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,0,,,,,,,
-//1245,Christmas Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,18,,,,,,
-//1245,Christmas Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-//1245,Christmas Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3695,,,,,
-//1245,Christmas Goblin@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1246,Christmas Cookie@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,0,,,,,,21,
-1246,Christmas Cookie@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,21,
-1246,Christmas Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1246,Christmas Cookie@NPC_HOLYATTACK,attack,189,1,2000,0,5000,yes,target,always,0,,,,,,,
-1246,Christmas Cookie@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-1246,Christmas Cookie@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-1246,Christmas Cookie@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1246,Christmas Cookie@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1247,Antonio@AL_TELEPORT,attack,26,1,1000,0,5000,yes,self,always,0,,,,,,29,
-1247,Antonio@AL_TELEPORT,idle,26,1,1000,0,5000,yes,self,always,0,,,,,,29,
-1247,Antonio@AL_TELEPORT,chase,26,1,1000,0,5000,yes,self,always,0,,,,,,29,
-1247,Antonio@NPC_RUN,attack,354,1,10000,0,0,yes,self,always,0,,,,,,29,
-1247,Antonio@NPC_RUN,chase,354,1,10000,0,0,yes,self,always,0,,,,,,29,
-1248,Cruiser@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,24,
-1248,Cruiser@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,27,,,,,,
-//1248,Cruiser@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,,
+1246,Christmas Cookie@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,,,,,,,21,
+1246,Christmas Cookie@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,21,
+1246,Christmas Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1246,Christmas Cookie@NPC_HOLYATTACK,attack,189,3,2000,0,5000,yes,target,always,,,,,,,,
+1246,Christmas Cookie@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+1246,Christmas Cookie@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+1246,Christmas Cookie@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1246,Christmas Cookie@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1247,Antonio@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,always,,,,,,,29,
+1247,Antonio@AL_TELEPORT,idle,26,1,1000,0,5000,yes,self,always,,,,,,,29,
+1247,Antonio@NPC_RUN,attack,354,1,10000,0,0,yes,self,always,,,,,,,29,
+1247,Antonio@NPC_RUN,chase,354,1,10000,0,0,yes,self,always,,,,,,,29,
+1247,Antonio@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,29,
+1247,Antonio@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,29,
+1247,Antonio@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,,,,,,,18,
+1247,Antonio@NPC_HOLYATTACK,attack,189,3,500,500,5000,no,target,always,,,,,,,18,
+1247,Antonio@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,,,,,,,6,
+1248,Cruiser@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,,,,,,,,
+1248,Cruiser@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,24,
+1248,Cruiser@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,27,,,,,,
1249,Myst Case@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1249,Myst Case@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1249,Myst Case@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,8,
-1249,Myst Case@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-1249,Myst Case@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-1249,Myst Case@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,6,
+1249,Myst Case@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1249,Myst Case@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,8,
+1249,Myst Case@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+1249,Myst Case@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,6,
+1249,Myst Case@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,6,
1250,Chepet@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1250,Chepet@AL_HEAL,attack,28,9,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1250,Chepet@AL_HEAL,chase,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1250,Chepet@AL_HEAL,attack,28,9,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1250,Chepet@AL_HEAL,chase,28,9,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1250,Chepet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1250,Chepet@NPC_EMOTION,attack,197,1,2000,0,5000,yes,self,always,0,17,,,,,,
-1250,Chepet@AM_DEMONSTRATION,attack,229,5,500,500,5000,no,target,always,0,,,,,,17,
-1250,Chepet@AM_DEMONSTRATION,chase,229,5,500,500,5000,no,target,always,0,,,,,,17,
-1250,Chepet@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,0,,,,,,,
-1250,Chepet@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000,no,self,slavele,0,1743,,,,,27,
-1250,Chepet@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1743,,,,,27,
+1250,Chepet@AM_DEMONSTRATION,attack,229,5,500,500,5000,yes,target,always,,,,,,,17,
+1250,Chepet@AM_DEMONSTRATION,chase,229,5,500,500,5000,yes,target,always,,,,,,,17,
+1250,Chepet@NPC_EMOTION,attack,197,1,2000,0,5000,yes,self,always,,17,,,,,,
+1250,Chepet@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000,yes,self,slavele,0,1743,,,,,27,
+1250,Chepet@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,yes,self,slavele,0,1743,,,,,27,
1250,Chepet@PR_STRECOVERY,attack,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,3,
1250,Chepet@PR_STRECOVERY,chase,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,3,
+1250,Chepet@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,,,,,,,,
+1251,Stormy Knight@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1251,Stormy Knight@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1251,Stormy Knight@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1251,Stormy Knight@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1251,Stormy Knight@NPC_WIDEFREEZE,chase,664,5,10000,1000,10000,no,self,myhpltmaxrate,80,,,,,,32,
-1251,Stormy Knight@NPC_WIDEFREEZE,attack,664,5,10000,1000,10000,no,self,myhpltmaxrate,80,,,,,,32,
+1251,Stormy Knight@CR_SHIELDCHARGE,attack,250,5,2000,0,20000,no,target,always,,,,,,,21,
+1251,Stormy Knight@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1251,Stormy Knight@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1251,Stormy Knight@NPC_HALLUCINATION,chase,207,1,500,0,5000,no,target,always,,,,,,,,
1251,Stormy Knight@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1251,Stormy Knight@NPC_WINDATTACK,chase,187,5,2000,0,5000,no,target,always,0,,,,,,,
-1251,Stormy Knight@NPC_WINDATTACK,attack,187,5,2000,0,5000,no,target,always,0,,,,,,,
-1251,Stormy Knight@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1251,Stormy Knight@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1251,Stormy Knight@CR_SHIELDCHARGE,attack,250,5,2000,0,20000,no,target,always,0,,,,,,21,
-1251,Stormy Knight@NPC_HALLUCINATION,chase,207,1,500,0,5000,no,target,always,0,,,,,,,
1251,Stormy Knight@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1607,,,,,27,
1251,Stormy Knight@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1607,,,,,27,
-1251,Stormy Knight@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1515,,,,,,
-1251,Stormy Knight@WZ_STORMGUST,attack,89,10,2000,500,5000,no,target,always,0,,,,,,21,
-1251,Stormy Knight@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,0,,,,,,21,
+1251,Stormy Knight@NPC_WIDEFREEZE,attack,664,5,10000,1000,10000,no,self,myhpltmaxrate,80,,,,,,32,
+1251,Stormy Knight@NPC_WIDEFREEZE,chase,664,5,10000,1000,10000,no,self,myhpltmaxrate,80,,,,,,32,
+1251,Stormy Knight@NPC_WINDATTACK,attack,187,5,2000,0,5000,no,target,always,,,,,,,,
+1251,Stormy Knight@NPC_WINDATTACK,chase,187,5,2000,0,5000,no,target,always,,,,,,,,
+1251,Stormy Knight@WZ_STORMGUST,attack,89,10,2000,500,5000,no,target,always,,,,,,,21,
+1251,Stormy Knight@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,,,,,,,21,
1251,Stormy Knight@WZ_STORMGUST,chase,89,10,10000,500,5000,no,target,skillused,18,,,,,,21,
-1251,Stormy Knight@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1252,Garm@AL_DECAGI,chase,30,48,2000,0,300000,no,target,always,0,,,,,,6,
-1252,Garm@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1252,Garm@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1252,Garm@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1252,Garm@NPC_WIDEFREEZE,chase,664,5,10000,1000,20000,yes,self,always,0,,,,,,36,
-1252,Garm@NPC_WIDEFREEZE,attack,664,5,10000,1000,20000,yes,self,always,0,,,,,,36,
-1252,Garm@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,no,target,always,0,,,,,,6,
-1252,Garm@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1252,Garm@WZ_STORMGUST,chase,89,10,2000,0,5000,no,target,always,0,,,,,,,
-1252,Garm@WZ_STORMGUST,attack,89,10,2000,0,5000,no,target,always,0,,,,,,,
-1252,Garm@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1252,Garm@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1252,Garm@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
-1252,Garm@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1606,,,,,,
-1252,Garm@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1606,,,,,,
-1252,Garm@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,6,
-1252,Garm@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,skillused,18,,,,,,6,
-1252,Garm@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1253,Gargoyle@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,0,,,,,,,
+1252,Hatii@AL_DECAGI,chase,30,10,2000,0,300000,no,target,always,,,,,,,6,
+1252,Hatii@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1252,Hatii@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1252,Hatii@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1252,Hatii@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1252,Hatii@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1252,Hatii@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1252,Hatii@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1252,Hatii@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1252,Hatii@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
+1252,Hatii@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1606,,,,,,
+1252,Hatii@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1606,,,,,,
+1252,Hatii@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,,,,,,,6,
+1252,Hatii@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,skillused,18,,,,,,6,
+1252,Hatii@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,no,target,always,,,,,,,6,
+1252,Hatii@NPC_WIDEFREEZE,attack,664,5,10000,1000,20000,yes,self,always,,,,,,,36,
+1252,Hatii@NPC_WIDEFREEZE,chase,664,5,10000,1000,20000,yes,self,always,,,,,,,36,
+1252,Hatii@WZ_STORMGUST,attack,89,10,2000,0,5000,no,target,always,,,,,,,,
+1252,Hatii@WZ_STORMGUST,chase,89,10,2000,0,5000,no,target,always,,,,,,,,
+1253,Gargoyle@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,,,,,,,,
1253,Gargoyle@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1253,Gargoyle@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
+1253,Gargoyle@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
1253,Gargoyle@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
-1253,Gargoyle@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-//1253,Gargoyle@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,,
-1254,Raggler@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,6,
-1254,Raggler@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1254,Raggler@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1254,Raggler@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1255,Neraid@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1255,Neraid@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1255,Neraid@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3695,,,,,
-1256,Pest@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1256,Pest@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1256,Pest@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1256,Pest@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1256,Pest@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1256,Pest@NPC_POISON,attack,176,1,500,800,5000,no,target,always,0,,,,,,,
-1257,Injustice@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,2,
-1257,Injustice@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1258,Goblin Archer@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,16,,,,,,
-1258,Goblin Archer@NPC_POISON,attack,176,1,500,800,5000,no,target,always,0,,,,,,,
-1258,Goblin Archer@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-//1258,Goblin Archer@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
-1259,Gryphon@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,0,,,,,,6,
-1259,Gryphon@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1259,Gryphon@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1260,Dark Frame@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,1,
-1260,Dark Frame@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,1,
-1260,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,26,
-1260,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,0,
-1260,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,0,
-1260,Dark Frame@CR_REFLECTSHIELD,attack,252,2,500,0,300000,no,self,always,0,,,,,,7,
-1260,Dark Frame@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,2,
-1260,Dark Frame@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,0,,,,,,2,
-1261,Wild Rose@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
-1261,Wild Rose@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1261,Wild Rose@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1262,Mutant Dragon@MG_FIREBALL,chase,17,20,500,0,5000,yes,target,always,0,,,,,,,
-1262,Mutant Dragon@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,6,
-1262,Mutant Dragon@SM_MAGNUM,attack,7,20,500,500,5000,no,self,always,0,,,,,,,
-1263,Wind Ghost@HT_SHOCKWAVE,idle,118,5,500,0,300000,yes,around2,always,0,,,,,,29,
-1263,Wind Ghost@MG_LIGHTNINGBOLT,attack,20,5,500,1500,5000,yes,target,always,0,,,,,,6,
-1263,Wind Ghost@MG_LIGHTNINGBOLT,chase,20,5,500,1500,5000,yes,target,always,0,,,,,,6,
-1263,Wind Ghost@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1263,Wind Ghost@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,9,
-1263,Wind Ghost@NPC_UNDEADATTACK,attack,347,1,2000,0,5000,yes,target,always,0,,,,,,,
-1263,Wind Ghost@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1263,Wind Ghost@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1264,Merman@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
-1264,Merman@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1264,Merman@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1264,Merman@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,0,,,,,,,
-1264,Merman@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
+1253,Gargoyle@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1254,Raggler@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,6,
+1254,Raggler@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1254,Raggler@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1254,Raggler@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1255,Nereid@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1255,Nereid@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1255,Nereid@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,0,0x3695,,,,,
+1255,Nereid@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1256,Pest@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1256,Pest@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1256,Pest@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1256,Pest@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1256,Pest@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1256,Pest@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1256,Pest@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
+1257,Injustice@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,2,
+1257,Injustice@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1258,Goblin Archer@AC_DOUBLE,attack,46,2,500,0,5000,yes,target,always,,,,,,,,
+1258,Goblin Archer@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,16,,,,,,
+1258,Goblin Archer@NPC_POISON,attack,176,1,500,800,5000,no,target,always,,,,,,,,
+1258,Goblin Archer@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,,,,,,,,
+1259,Gryphon@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,,,,,,,6,
+1259,Gryphon@NPC_CRITICALSLASH,attack,170,2,500,500,5000,no,target,always,,,,,,,6,
+1259,Gryphon@NPC_WINDATTACK,attack,187,4,2000,0,5000,yes,target,always,,,,,,,,
+1260,Dark Frame@CR_REFLECTSHIELD,attack,252,2,500,0,300000,yes,self,always,,,,,,,7,
+1260,Dark Frame@NPC_BLINDATTACK,attack,177,3,1500,0,5000,yes,target,always,,,,,,,1,
+1260,Dark Frame@NPC_BLINDATTACK,chase,177,3,1500,0,5000,yes,target,always,,,,,,,1,
+1260,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,26,
+1260,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,0,
+1260,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,yes,target,always,,,,,,,0,
+1260,Dark Frame@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,yes,target,always,,,,,,,2,
+1260,Dark Frame@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,yes,target,always,,,,,,,2,
+1261,Wild Rose@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,6,
+1261,Wild Rose@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1261,Wild Rose@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1262,Mutant Dragonoid@MG_FIREBALL,chase,17,10,500,0,5000,yes,target,always,,,,,,,,
+1262,Mutant Dragonoid@NPC_BLEEDING,attack,660,3,1000,0,5000,yes,target,always,,,,,,,32,
+1262,Mutant Dragonoid@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,6,
+1262,Mutant Dragonoid@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,,,,,,,,
+1263,Wind Ghost@HT_SHOCKWAVE,idle,118,5,500,0,300000,yes,around2,always,,,,,,,29,
+1263,Wind Ghost@MG_LIGHTNINGBOLT,attack,20,5,500,1500,5000,yes,target,always,,,,,,,6,
+1263,Wind Ghost@MG_LIGHTNINGBOLT,chase,20,5,500,1500,5000,yes,target,always,,,,,,,6,
+1263,Wind Ghost@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1263,Wind Ghost@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,,,,,,,9,
+1263,Wind Ghost@NPC_UNDEADATTACK,attack,347,2,2000,0,5000,yes,target,always,,,,,,,,
+1263,Wind Ghost@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,,,,,,,6,
+1263,Wind Ghost@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,6,
+1264,Merman@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
+1264,Merman@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1264,Merman@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1264,Merman@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
+1264,Merman@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
1265,Cookie@AL_HEAL,attack,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,0,
-1265,Cookie@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,0,
1265,Cookie@AL_HEAL,idle,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,0,
-1265,Cookie@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,0,
1265,Cookie@AL_HEAL,chase,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,0,
+1265,Cookie@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,0,
+1265,Cookie@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,0,
1265,Cookie@AL_HEAL,chase,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,0,
-1265,Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1265,Cookie@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,4,
-1265,Cookie@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,4,
-//1266,Aster@NPC_RUN,attack,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
-//1266,Aster@NPC_RUN,chase,354,1,10000,0,3000,no,self,always,0,,0x81,,,,19,
+1265,Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1265,Cookie@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,4,
+1265,Cookie@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,4,
+1267,Carat@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
1267,Carat@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
1267,Carat@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1267,Carat@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1267,Carat@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1267,Carat@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,18,
-1267,Carat@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1267,Carat@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,0,,,,,,18,
-1267,Carat@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1267,Carat@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
+1267,Carat@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1267,Carat@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,18,
+1267,Carat@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1267,Carat@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1267,Carat@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1267,Carat@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,,,,,,,18,
1268,Bloody Knight@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1268,Bloody Knight@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,0,,,,,,9,
+1268,Bloody Knight@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,,,,,,,9,
+1268,Bloody Knight@KN_BRANDISHSPEAR,attack,57,7,500,1000,5000,no,target,always,,,,,,,9,
1268,Bloody Knight@NPC_CHANGEFIRE,attack,164,1,10000,2000,600000,no,self,myhpltmaxrate,20,,,,,,,
-1268,Bloody Knight@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,9,
-1268,Bloody Knight@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,0,,,,,,9,
-1268,Bloody Knight@WZ_METEOR,attack,83,5,2000,1500,5000,no,target,myhpltmaxrate,20,,,,,,,
-1268,Bloody Knight@WZ_METEOR,chase,83,5,2000,1500,5000,no,target,myhpltmaxrate,20,,,,,,,
-1268,Bloody Knight@NPC_WEAPONBRAKER,attack,343,5,500,0,30000,yes,target,always,0,,,,,,,
-1269,Clock@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,6,
-1269,Clock@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1269,Clock@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-1269,Clock@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x91,,,,,
-1270,Tower Keeper@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1270,Tower Keeper@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,0,,,,,,9,
-1270,Tower Keeper@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,0,,,,,,,
-1270,Tower Keeper@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,0,,,,,,9,
-1270,Tower Keeper@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,0,,,,,,9,
-1270,Tower Keeper@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,9,
-1270,Tower Keeper@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,0,,,,,,9,
-1270,Tower Keeper@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-1270,Tower Keeper@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x91,,,,,
-1271,Alligator@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
-1271,Alligator@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x91,,,,,
+1268,Bloody Knight@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,9,
+1268,Bloody Knight@NPC_WEAPONBRAKER,attack,343,5,500,0,30000,yes,target,always,,,,,,,,
+1268,Bloody Knight@WZ_METEOR,attack,83,7,2000,1500,5000,no,target,myhpltmaxrate,20,,,,,,,
+1268,Bloody Knight@WZ_METEOR,chase,83,7,2000,1500,5000,no,target,myhpltmaxrate,20,,,,,,,
+1269,Clock@NPC_CURSEATTACK,attack,181,4,500,800,5000,yes,target,always,,,,,,,6,
+1269,Clock@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0091,,,,,
+1269,Clock@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+1269,Clock@NPC_GROUNDATTACK,attack,185,4,500,500,5000,yes,target,always,,,,,,,6,
+1269,Clock@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,6,
+1270,Tower Keeper@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1270,Tower Keeper@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0081,,,,,
+1270,Tower Keeper@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+1270,Tower Keeper@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,,,,,,,9,
+1270,Tower Keeper@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,,,,,,,9,
+1270,Tower Keeper@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,9,
+1270,Tower Keeper@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,,,,,,,9,
+1270,Tower Keeper@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,,,,,,,,
+1270,Tower Keeper@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,,,,,,,9,
+1271,Alligator@NPC_WATERATTACK,attack,184,4,1000,500,5000,no,target,always,,,,,,,6,
+1271,Alligator@NPC_CRITICALSLASH,attack,170,2,500,500,5000,no,target,always,,,,,,,6,
+1271,Alligator@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0091,,,,,
1272,Dark Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1272,Dark Lord@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1272,Dark Lord@MG_FIREWALL,chase,18,10,2000,500,5000,yes,target,always,,,,,,,,
1272,Dark Lord@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1272,Dark Lord@MG_FIREWALL,chase,18,10,2000,500,5000,no,target,always,0,,,,,,,
-1272,Dark Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1272,Dark Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1272,Dark Lord@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,no,self,always,0,,,,,,36,
-1272,Dark Lord@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,no,self,always,0,,,,,,36,
-1272,Dark Lord@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,0,,,,,,9,
-1272,Dark Lord@NPC_HELMBRAKE,attack,345,10,2000,500,5000,no,target,always,0,,,,,,,
-1272,Dark Lord@NPC_SUMMONSLAVE,attack,196,3,10000,700,10000,no,self,slavele,3,1605,,,,,,
-1272,Dark Lord@NPC_SUMMONSLAVE,idle,196,3,10000,700,10000,no,self,slavele,3,1605,,,,,,
-1272,Dark Lord@WZ_METEOR,attack,83,11,5000,500,2000,no,target,always,0,,,,,,,
-1272,Dark Lord@WZ_METEOR,chase,83,11,5000,500,2000,no,target,skillused,18,,,,,,,
-1272,Dark Lord@WZ_METEOR,chase,83,11,5000,500,2000,no,target,always,0,,,,,,,
-1273,Orc Lady@AL_INCAGI,chase,29,1,500,700,5000,no,self,always,0,,,,,,30,
-1273,Orc Lady@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-1273,Orc Lady@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-1274,Megalith@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1274,Megalith@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
+1272,Dark Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1272,Dark Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1272,Dark Lord@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,,,,,,,,
+1272,Dark Lord@NPC_DARKBLESSING,attack,203,1,500,800,5000,yes,target,always,,,,,,,9,
+1272,Dark Lord@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,yes,self,always,,,,,,,36,
+1272,Dark Lord@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,yes,self,always,,,,,,,36,
+1272,Dark Lord@NPC_HELMBRAKE,attack,345,10,2000,500,5000,yes,target,always,,,,,,,,
+1272,Dark Lord@NPC_SUMMONSLAVE,attack,196,3,10000,700,10000,yes,self,slavele,3,1605,,,,,,
+1272,Dark Lord@NPC_SUMMONSLAVE,idle,196,3,10000,700,10000,yes,self,slavele,3,1605,,,,,,
+1272,Dark Lord@WZ_METEOR,attack,83,10,5000,500,2000,yes,target,always,,,,,,,,
+1272,Dark Lord@WZ_METEOR,chase,83,10,5000,500,2000,yes,target,always,,,,,,,,
+1272,Dark Lord@WZ_METEOR,chase,83,10,5000,500,2000,yes,target,skillused,18,,,,,,,
+1273,Orc Lady@AL_INCAGI,chase,29,1,500,700,5000,no,self,always,,,,,,,30,
+1273,Orc Lady@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+1273,Orc Lady@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+1274,Megalith@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1274,Megalith@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1274,Megalith@NPC_STUNATTACK,attack,179,2,500,0,5000,yes,target,always,,,,,,,,
1275,Alice@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1275,Alice@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1275,Alice@CR_SHIELDCHARGE,attack,250,3,2000,0,5000,no,target,always,0,,,,,,6,
-1275,Alice@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,0,,,,,,,
-1275,Alice@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,0,,,,,,,
-1275,Alice@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
+1275,Alice@CR_SHIELDCHARGE,attack,250,3,2000,0,5000,no,target,always,,,,,,,6,
+1275,Alice@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,,,,,,,,
+1275,Alice@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,,,,,,,,
+1275,Alice@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,,,,,,
1275,Alice@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,1744,,,,,,
-1276,Raydric Archer@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,0,,,,,,9,
-1276,Raydric Archer@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,9,
-//1276,Raydric Archer@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,,
+1276,Raydric Archer@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,,,,,,,9,
+1276,Raydric Archer@AC_DOUBLE,attack,46,5,500,1000,5000,no,target,always,,,,,,,9,
+1276,Raydric Archer@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1276,Raydric Archer@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1276,Raydric Archer@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
-1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
-1277,Greatest General@NPC_FIREATTACK,attack,186,2,500,500,5000,no,randomtarget,always,0,,,,,,,
-1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,longrangeattacked,,,,,,,6,
-1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,randomtarget,casttargeted,,,,,,,6,
-1278,Stalactite Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,6,
-1278,Stalactite Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1278,Stalactite Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-1278,Stalactite Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x91,,,,,
-1278,Stalactite Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1278,Stalactite Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-1279,Tri-Joint@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1280,Steam Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,27,,,,,,
-1280,Steam Goblin@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
-1280,Steam Goblin@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1280,Steam Goblin@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,6,
-1281,Sage Worm@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1281,Sage Worm@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1281,Sage Worm@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1281,Sage Worm@MG_SAFETYWALL,attack,12,5,2000,1000,20000,yes,self,always,0,,,,,,20,
-1281,Sage Worm@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1281,Sage Worm@SA_DISPELL,attack,289,5,0,0,30000,yes,target,always,0,,,,,,20,
-1282,Kobold Archer@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,0,,,,,,6,
-1282,Kobold Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1282,Kobold Archer@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
-//1282,Kobold Archer@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
+1276,Raydric Archer@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,9,
+1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,target,casttargeted,,,,,,,6,
+1277,Greatest General@NPC_BLINDATTACK,idle,177,3,10000,1500,5000,no,target,longrangeattacked,,,,,,,6,
+1277,Greatest General@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,target,casttargeted,,,,,,,6,
+1277,Greatest General@WZ_EARTHSPIKE,idle,90,3,5000,1500,5000,no,target,longrangeattacked,,,,,,,6,
+1278,Stalactic Golem@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+1278,Stalactic Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1278,Stalactic Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1278,Stalactic Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0091,,,,,
+1278,Stalactic Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+1278,Stalactic Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,,,,,,,6,
+1278,Stalactic Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+1279,Tri Joint@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+1280,Goblin Steamrider@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,27,,,,,,
+1280,Goblin Steamrider@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
+1280,Goblin Steamrider@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,,
+1280,Goblin Steamrider@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,,,,,,,6,
+1281,Sage Worm@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,6,
+1281,Sage Worm@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,,,,,,,6,
+1281,Sage Worm@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,,,,,,,6,
+1281,Sage Worm@MG_SAFETYWALL,attack,12,5,2000,1000,20000,yes,self,always,,,,,,,20,
+1281,Sage Worm@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1281,Sage Worm@SA_DISPELL,attack,289,5,0,0,30000,yes,target,always,,,,,,,20,
+1282,Kobold Archer@AC_DOUBLE,attack,46,3,500,1000,5000,no,target,always,,,,,,,6,
+1282,Kobold Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1282,Kobold Archer@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
1283,Chimera@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1283,Chimera@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1283,Chimera@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1283,Chimera@NPC_SUMMONSLAVE,idle,196,4,10000,2000,60000,no,self,slavele,0,1253,,,,,,
-1283,Chimera@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,6,
-1283,Chimera@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,6,
-1283,Chimera@NPC_SHIELDBRAKE,attack,346,5,500,0,5000,yes,target,always,0,,,,,,6,
-1283,Chimera@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1283,Chimera@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
1283,Chimera@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1285,Guardian Archer@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,0,,,,,,,
-1285,Guardian Archer@AC_DOUBLE,attack,46,1,2000,1000,5000,no,target,always,0,,,,,,,
-1287,Guardian Soldier@NPC_STUNATTACK,attack,179,5,500,1500,5000,no,target,always,0,,,,,,,
-1287,Guardian Soldier@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,0,,,,,,,
+1283,Chimera@NPC_FIREATTACK,attack,186,5,500,500,5000,yes,target,always,,,,,,,6,
+1283,Chimera@NPC_SHIELDBRAKE,attack,346,5,500,0,5000,yes,target,always,,,,,,,6,
+1283,Chimera@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+1283,Chimera@NPC_SUMMONSLAVE,idle,196,4,10000,2000,60000,yes,self,slavele,0,1253,,,,,,
+1283,Chimera@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,6,
+1283,Chimera@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,6,
+1285,Archer Guardian@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,,,,,,,,
+1285,Archer Guardian@AC_DOUBLE,attack,46,1,2000,1000,5000,no,target,always,,,,,,,,
+1287,Soldier Guardian@NPC_STUNATTACK,attack,179,5,500,1500,5000,no,target,always,,,,,,,,
+1287,Soldier Guardian@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,,,,,,,,
1289,Maya Purple@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1289,Maya Purple@KN_BRANDISHSPEAR,attack,57,20,500,1000,5000,no,target,always,0,,,,,,,
-1289,Maya Purple@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0xA1,,,,,
-1289,Maya Purple@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x37B5,,,,,
+1289,Maya Purple@KN_BRANDISHSPEAR,attack,57,10,500,1000,5000,no,target,always,,,,,,,,
+1289,Maya Purple@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1289,Maya Purple@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1289,Maya Purple@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3695,,,,,
1289,Maya Purple@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1194,,,,,,
-1289,Maya Purple@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1289,Maya Purple@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
+1289,Maya Purple@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1289,Maya Purple@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,,
1290,Skeleton General@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1290,Skeleton General@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1290,Skeleton General@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
+1290,Skeleton General@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1290,Skeleton General@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
1290,Skeleton General@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
1290,Skeleton General@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1028,1016,,,,,
-1291,Wraith Dead@AL_DECAGI,chase,30,9,500,1000,5000,no,target,always,0,,,,,,29,
+1290,Skeleton General@NPC_UNDEADATTACK,attack,347,5,2000,0,5000,yes,target,always,,,,,,,,
+1291,Wraith Dead@AL_DECAGI,chase,30,9,500,1000,5000,no,target,always,,,,,,,29,
1291,Wraith Dead@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1291,Wraith Dead@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1291,Wraith Dead@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1291,Wraith Dead@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1291,Wraith Dead@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,29,
+1291,Wraith Dead@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1291,Wraith Dead@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,,,,,,,29,
+1291,Wraith Dead@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,,,,,,,29,
+1291,Wraith Dead@NPC_POISON,attack,176,5,500,800,5000,no,target,always,,,,,,,29,
1292,Mini Demon@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1292,Mini Demon@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,0,,,,,,29,
-1292,Mini Demon@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1292,Mini Demon@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1292,Mini Demon@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,18,0x3795,,,,,
+1292,Mini Demon@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1292,Mini Demon@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,,,,,,,29,
+1292,Mini Demon@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1292,Mini Demon@NPC_DARKTHUNDER,attack,341,5,500,1500,5000,yes,target,always,,,,,,,29,
+1292,Mini Demon@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,,,,,,,29,
+1292,Mini Demon@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1292,Mini Demon@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,18,0x3695,,,,,
1292,Mini Demon@NPC_SUMMONSLAVE,attack,196,2,10000,2000,60000,no,self,slavele,0,1109,,,,,11,
1292,Mini Demon@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1109,,,,,11,
-1292,Mini Demon@NPC_DARKTHUNDER,attack,341,5,500,1500,5000,yes,target,always,0,,,,,,29,
-1292,Mini Demon@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,0,,,,,,29,
-1292,Mini Demon@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1292,Mini Demon@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1293,Creamy Fear@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,always,0,,,,,,,
+1292,Mini Demon@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1292,Mini Demon@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1293,Creamy Fear@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,always,,,,,,,,
+1293,Creamy Fear@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
1293,Creamy Fear@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1293,Creamy Fear@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1293,Creamy Fear@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1293,Creamy Fear@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,,
-1293,Creamy Fear@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1018,,,,,,
-1293,Creamy Fear@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
+1293,Creamy Fear@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1293,Creamy Fear@NPC_CURSEATTACK,attack,181,5,500,800,5000,yes,target,always,,,,,,,,
+1293,Creamy Fear@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,yes,self,slavele,0,1018,,,,,,
+1293,Creamy Fear@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,,,,,,,,
1294,Killer Mantis@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1294,Killer Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1294,Killer Mantis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1294,Killer Mantis@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1294,Killer Mantis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1294,Killer Mantis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3795,,,,,
+1294,Killer Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1294,Killer Mantis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1294,Killer Mantis@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1294,Killer Mantis@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1294,Killer Mantis@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,,,,,,,6,
1294,Killer Mantis@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1139,,,,,,
1295,Owl Baron@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1295,Owl Baron@MG_LIGHTNINGBOLT,attack,20,5,2000,0,5000,yes,target,always,0,,,,,,,
-1295,Owl Baron@MG_LIGHTNINGBOLT,chase,20,5,2000,0,5000,yes,target,always,0,,,,,,,
-1295,Owl Baron@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1295,Owl Baron@SA_DISPELL,attack,289,5,0,0,30000,yes,target,always,0,,,,,,5,
-1295,Owl Baron@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0xA1,,,,,
-1295,Owl Baron@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x37B5,,,,,
+1295,Owl Baron@MG_LIGHTNINGBOLT,attack,20,5,2000,0,5000,yes,target,always,,,,,,,,
+1295,Owl Baron@MG_LIGHTNINGBOLT,chase,20,5,2000,0,5000,yes,target,always,,,,,,,,
+1295,Owl Baron@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1295,Owl Baron@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1295,Owl Baron@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
1295,Owl Baron@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1320,,,,,,
+1295,Owl Baron@SA_DISPELL,attack,289,5,0,0,30000,yes,target,always,,,,,,,5,
1296,Kobold Leader@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1296,Kobold Leader@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-1296,Kobold Leader@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-1296,Kobold Leader@CR_SHIELDCHARGE,attack,250,3,500,0,5000,no,target,always,0,,,,,,6,
+1296,Kobold Leader@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,,,,,,,6,
+1296,Kobold Leader@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,,,,,,,6,
+1296,Kobold Leader@CR_SHIELDCHARGE,attack,250,3,500,0,5000,no,target,always,,,,,,,6,
1296,Kobold Leader@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,2,1133,1134,1135,1282,,27,
1296,Kobold Leader@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,2,1133,1134,1135,1282,,27,
1297,Ancient Mummy@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1297,Ancient Mummy@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,,
-1297,Ancient Mummy@NPC_DARKBREATH,attack,202,3,500,800,5000,no,target,always,0,,,,,,7,
+1297,Ancient Mummy@NPC_UNDEADATTACK,attack,347,4,500,500,5000,no,target,always,,,,,,,,
+1297,Ancient Mummy@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,7,
1298,Zombie Master@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1298,Zombie Master@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,0,,,,,,,
-1298,Zombie Master@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
+1298,Zombie Master@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,,,,,,,,
+1298,Zombie Master@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
1298,Zombie Master@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1036,,,,,,
+1298,Zombie Master@NPC_UNDEADATTACK,angry,347,1,2000,0,5000,yes,target,always,,,,,,,,
+1298,Zombie Master@NPC_UNDEADATTACK,attack,347,3,2000,0,5000,yes,target,always,,,,,,,,
1299,Goblin Leader@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1299,Goblin Leader@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,27,
-1299,Goblin Leader@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,27,
-1299,Goblin Leader@CR_SHIELDCHARGE,attack,250,3,500,0,5000,no,target,always,0,,,,,,27,
+1299,Goblin Leader@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,27,
+1299,Goblin Leader@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,27,
+1299,Goblin Leader@CR_SHIELDCHARGE,attack,250,3,500,0,5000,no,target,always,,,,,,,27,
1299,Goblin Leader@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,2,1122,1123,1124,1125,1126,27,
1299,Goblin Leader@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,2,1122,1123,1124,1125,1126,27,
-1300,Caterpillar@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,0,,,,,,,
-1300,Caterpillar@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,,
-1300,Caterpillar@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
+1300,Caterpillar@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,,,,,,,,
+1300,Caterpillar@NPC_POISON,attack,176,5,500,800,5000,no,target,always,,,,,,,,
+1300,Caterpillar@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
1301,Am Mut@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1301,Am Mut@MC_MAMMONITE,attack,42,9,500,800,5000,no,target,always,0,,,,,,8,
-1301,Am Mut@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-1301,Am Mut@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1301,Am Mut@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
+1301,Am Mut@MC_MAMMONITE,attack,42,9,500,800,5000,no,target,always,,,,,,,8,
+1301,Am Mut@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,,,,,,,29,
+1301,Am Mut@NPC_DARKNESSATTACK,attack,190,4,500,500,5000,no,target,always,,,,,,,6,
+1301,Am Mut@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
1301,Am Mut@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1110,,,,,,
1302,Dark Illusion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1302,Dark Illusion@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,,
-1302,Dark Illusion@WZ_METEOR,attack,83,5,500,1500,5000,yes,target,always,0,,,,,,,
-1302,Dark Illusion@WZ_METEOR,chase,83,5,500,1500,5000,yes,target,always,0,,,,,,,
+1302,Dark Illusion@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,yes,target,always,,,,,,,,
+1302,Dark Illusion@WZ_METEOR,attack,83,5,500,1500,5000,yes,target,always,,,,,,,,
+1302,Dark Illusion@WZ_METEOR,chase,83,5,500,1500,5000,yes,target,always,,,,,,,,
1303,Giant Hornet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1303,Giant Hornet@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,6,
-1303,Giant Hornet@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1303,Giant Hornet@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3795,,,,,
-1303,Giant Hornet@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,0,,,,,,,
-1303,Giant Hornet@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1303,Giant Hornet@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,6,
+1303,Giant Hornet@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1303,Giant Hornet@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3695,,,,,
+1303,Giant Hornet@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,6,
+1303,Giant Hornet@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,,,,,,,,
+1303,Giant Hornet@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1303,Giant Hornet@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
1304,Giant Spider@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1304,Giant Spider@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1304,Giant Spider@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,,
-1304,Giant Spider@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,0,,,,,,,
-1304,Giant Spider@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1304,Giant Spider@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3795,,,,,
+1304,Giant Spider@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1304,Giant Spider@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1304,Giant Spider@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3695,,,,,
+1304,Giant Spider@NPC_POISON,attack,176,5,500,800,5000,no,target,always,,,,,,,,
+1304,Giant Spider@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,,,,,,,,
1304,Giant Spider@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1100,,,,,,
1305,Ancient Worm@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1305,Ancient Worm@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,0,,,,,,,
-1305,Ancient Worm@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,,
-1305,Ancient Worm@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
+1305,Ancient Worm@AS_VENOMDUST,attack,140,2,500,1500,5000,no,target,always,,,,,,,,
+1305,Ancient Worm@NPC_POISON,attack,176,5,500,800,5000,no,target,always,,,,,,,,
+1305,Ancient Worm@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
1305,Ancient Worm@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1099,,,,,,
+1305,Ancient Worm@NPC_CRITICALSLASH,attack,170,2,500,500,5000,no,target,always,,,,,,,6,
1306,Leib Olmai@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1306,Leib Olmai@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1306,Leib Olmai@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1306,Leib Olmai@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1306,Leib Olmai@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
+1306,Leib Olmai@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1306,Leib Olmai@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1306,Leib Olmai@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1306,Leib Olmai@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
1306,Leib Olmai@NPC_SUMMONSLAVE,idle,196,3,10000,2000,60000,no,self,slavele,0,1243,,,,,,
1306,Leib Olmai@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1306,Leib Olmai@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,6,
-1307,Cat'o'Nine Tails@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1307,Cat'o'Nine Tails@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1307,Cat'o'Nine Tails@MC_MAMMONITE,attack,42,9,500,800,5000,no,target,always,0,,,,,,8,
-1307,Cat'o'Nine Tails@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,,
-1307,Cat'o'Nine Tails@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1180,,,,,,
+1306,Leib Olmai@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,,,,,,,6,
+1307,Cat o' Nine Tails@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1307,Cat o' Nine Tails@MC_MAMMONITE,attack,42,9,500,800,5000,no,target,always,,,,,,,8,
+1307,Cat o' Nine Tails@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1307,Cat o' Nine Tails@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,,,,,,,,
+1307,Cat o' Nine Tails@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1180,,,,,,
+1308,Panzer Goblin@AC_DOUBLE,attack,46,5,2000,1000,5000,yes,target,always,,,,,,,,
1308,Panzer Goblin@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
-1308,Panzer Goblin@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1308,Panzer Goblin@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,6,
+1308,Panzer Goblin@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1308,Panzer Goblin@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,,,,,,,6,
1309,Gajomart@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1309,Gajomart@MG_SIGHT,chase,10,1,2000,0,5000,yes,self,always,0,,,,,,,
-1309,Gajomart@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1309,Gajomart@NPC_BLINDATTACK,chase,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1309,Gajomart@WZ_SIGHTRASHER,attack,81,7,1000,1000,5000,no,target,always,0,,,,,,,
-1309,Gajomart@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1309,Gajomart@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,,
+1309,Gajomart@MG_SIGHT,chase,10,1,2000,0,5000,yes,self,always,,,,,,,,
+1309,Gajomart@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1309,Gajomart@NPC_BLINDATTACK,chase,177,5,500,0,5000,yes,target,always,,,,,,,,
+1309,Gajomart@NPC_FIREATTACK,attack,186,3,2000,0,5000,yes,target,always,,,,,,,,
+1309,Gajomart@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,,
1309,Gajomart@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1129,,,,,,
-1309,Gajomart@RG_STRIPWEAPON,attack,215,5,500,0,30000,yes,target,always,0,,,,,,,
+1309,Gajomart@RG_STRIPWEAPON,attack,215,5,500,0,30000,yes,target,always,,,,,,,,
+1309,Gajomart@WZ_SIGHTRASHER,attack,81,7,1000,1000,5000,no,self,always,,,,,,,,
1310,Majoruros@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1310,Majoruros@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,,
-1310,Majoruros@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1310,Majoruros@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1310,Majoruros@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3695,,,,,
+1310,Majoruros@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+1310,Majoruros@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1310,Majoruros@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3695,,,,,
+1310,Majoruros@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
1310,Majoruros@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1149,,,,,,
-1310,Majoruros@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,2,
-1310,Majoruros@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,2,
+1310,Majoruros@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,2,
+1310,Majoruros@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,2,
1311,Gullinbursti@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1311,Gullinbursti@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1311,Gullinbursti@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1311,Gullinbursti@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1311,Gullinbursti@NPC_STUNATTACK,attack,179,5,500,1500,5000,no,target,always,0,,,,,,6,
+1311,Gullinbursti@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1311,Gullinbursti@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1311,Gullinbursti@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1311,Gullinbursti@NPC_STUNATTACK,attack,179,5,500,1500,5000,no,target,always,,,,,,,6,
1311,Gullinbursti@NPC_SUMMONSLAVE,idle,196,4,10000,2000,60000,no,self,slavele,0,1166,,,,,,
-1311,Gullinbursti@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1311,Gullinbursti@RG_STRIPSHIELD,attack,216,5,500,0,5000,yes,target,always,0,,,,,,,
+1311,Gullinbursti@RG_STRIPSHIELD,attack,216,5,500,0,5000,yes,target,always,,,,,,,,
+1311,Gullinbursti@SM_ENDURE,chase,8,3,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
1312,Turtle General@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1312,Turtle General@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1312,Turtle General@AS_SONICBLOW,attack,136,10,2000,0,5000,no,target,always,0,,,,,,18,
-1312,Turtle General@BS_MAXIMIZE,attack,114,5,500,0,30000,no,self,always,0,,,,,,,
-1312,Turtle General@BS_MAXIMIZE,chase,114,5,500,0,30000,no,self,always,0,,,,,,,
-1312,Turtle General@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,skillused,18,,,,,,,
+1312,Turtle General@AS_SONICBLOW,attack,136,10,2000,0,5000,no,target,always,,,,,,,18,
+1312,Turtle General@BS_MAXIMIZE,attack,114,5,500,0,30000,no,self,always,,,,,,,,
+1312,Turtle General@BS_MAXIMIZE,chase,114,5,500,0,30000,no,self,always,,,,,,,,
1312,Turtle General@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1312,Turtle General@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1312,Turtle General@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1312,Turtle General@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,0,,,,,,6,
-1312,Turtle General@NPC_WEAPONBRAKER,attack,343,10,500,0,20000,no,target,always,0,,,,,,18,
-1312,Turtle General@NPC_STUNATTACK,attack,179,5,2000,0,5000,no,target,always,0,,,,,,6,
+1312,Turtle General@NPC_BLEEDING,attack,660,2,500,0,5000,yes,target,always,,,,,,,,
+1312,Turtle General@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1312,Turtle General@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1312,Turtle General@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,,,,,,,6,
+1312,Turtle General@NPC_STUNATTACK,attack,179,5,2000,0,5000,no,target,always,,,,,,,6,
1312,Turtle General@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1364,1594,1600,1601,1602,,
1312,Turtle General@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1364,1594,1600,1601,1602,,
+1312,Turtle General@NPC_WEAPONBRAKER,attack,343,10,500,0,20000,no,target,always,,,,,,,18,
1312,Turtle General@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1312,Turtle General@WZ_WATERBALL,attack,86,5,2000,500,20000,no,target,always,0,,,,,,18,
-1313,Mobster@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,29,
-1313,Mobster@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,6,
-1313,Mobster@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-//1313,Mobster@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,,,,,,,
-1313,Mobster@TF_SPRINKLESAND,attack,149,1,2000,0,5000,yes,target,always,0,,,,,,29,
-1313,Mobster@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
-1314,Perimeter@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
-1314,Perimeter@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
-1314,Perimeter@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
-1314,Perimeter@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
-1314,Perimeter@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
-1314,Perimeter@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
-1314,Perimeter@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1314,Perimeter@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1314,Perimeter@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1314,Perimeter@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1314,Perimeter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x91,,,,,
-1314,Perimeter@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,,
+1312,Turtle General@WZ_WATERBALL,attack,86,5,2000,500,20000,no,target,always,,,,,,,18,
+1312,Turtle General@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,skillused,18,,,,,,,
+1313,Mobster@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,29,
+1313,Mobster@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,6,
+1313,Mobster@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1313,Mobster@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,,,,,,,
+1313,Mobster@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,,,,,,,,
+1313,Mobster@TF_SPRINKLESAND,attack,149,1,2000,0,5000,yes,target,always,,,,,,,29,
+1314,Permeter@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+1314,Permeter@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+1314,Permeter@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+1314,Permeter@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+1314,Permeter@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+1314,Permeter@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+1314,Permeter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0091,,,,,
+1314,Permeter@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1314,Permeter@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1314,Permeter@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,,
+1314,Permeter@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,,
+1314,Permeter@NPC_STUNATTACK,attack,179,3,2000,0,0,no,target,always,,,,,,,,
+1314,Permeter@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,,
1315,Assaulter@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1315,Assaulter@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1315,Assaulter@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
+1315,Assaulter@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1315,Assaulter@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
1315,Assaulter@NPC_EMOTION,attack,197,1,2000,0,600000,yes,self,myhpltmaxrate,20,23,,,,,,
-1315,Assaulter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1315,Assaulter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3695,,,,,
-1315,Assaulter@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
+1315,Assaulter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1315,Assaulter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3695,,,,,
+1315,Assaulter@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,,,,,,,6,
+1315,Assaulter@NPC_COMBOATTACK,attack,171,1,1500,700,5000,no,target,always,,,,,,,24,
1315,Assaulter@TF_BACKSLIDING,attack,150,1,10000,500,600000,no,self,myhpltmaxrate,10,,,,,,,
-1315,Assaulter@NPC_SUMMONSLAVE,chase,196,3,10000,0,600000,yes,self,myhpltmaxrate,10,1364,,,,,,
-1316,Solider@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1316,Solider@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-1316,Solider@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x91,,,,,
-1316,Solider@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1316,Solider@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
+1315,Assaulter@NPC_SUMMONSLAVE,chase,196,3,10000,0,600000,yes,self,myhpltmaxrate,10,,,,,,,
+1316,Solider@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1316,Solider@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1316,Solider@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1317,Seal@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1317,Seal@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1317,Seal@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,0x3885,,,,,
-1317,Seal@NPC_WATERATTACK,attack,184,5,500,500,5000,no,target,always,0,,,,,,6,
-1318,Heater@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,0,,,,,,,
-1318,Heater@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1318,Heater@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1318,Heater@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1318,Heater@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1318,Heater@WZ_FIREPILLAR,idle,80,3,500,0,5000,no,around2,always,0,,,,,,6,
-1319,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1319,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1319,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,0,,,,,,,
-1319,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1319,Freezer@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1319,Freezer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
-1319,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
+1316,Solider@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0091,,,,,
+1316,Solider@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1316,Solider@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
+1316,Solider@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+1316,Solider@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1317,Seal@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,6,
+1317,Seal@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1317,Seal@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,0x3095,,,,,
+1317,Seal@NPC_WATERATTACK,attack,184,5,500,500,5000,yes,target,always,,,,,,,6,
+1318,Heater@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,,,,,,,,
+1318,Heater@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1318,Heater@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1318,Heater@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1318,Heater@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1318,Heater@WZ_FIREPILLAR,idle,80,3,500,0,5000,no,around2,always,,,,,,,6,
+1319,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1319,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1319,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,,,,,,,,
+1319,Freezer@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1319,Freezer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1319,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1319,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,,,,,,,6,
1320,Owl Duke@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1320,Owl Duke@MG_LIGHTNINGBOLT,attack,20,3,2000,0,5000,yes,target,always,0,,,,,,,
-1320,Owl Duke@MG_LIGHTNINGBOLT,chase,20,3,2000,0,5000,yes,target,always,0,,,,,,,
-1320,Owl Duke@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1320,Owl Duke@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0xA1,,,,,
-1320,Owl Duke@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x37B5,,,,,
-1321,Dragon Tail@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1321,Dragon Tail@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1321,Dragon Tail@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1322,Spring Rabbit@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1322,Spring Rabbit@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1322,Spring Rabbit@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x83,,,,,
-1322,Spring Rabbit@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,6,
-1322,Spring Rabbit@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,0,,,,,,,
-1323,Sea Otter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1323,Sea Otter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1323,Sea Otter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,0x3885,,,,,
-1323,Sea Otter@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1323,Sea Otter@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1323,Sea Otter@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1365,Apocalypse@KN_BRANDISHSPEAR,attack,57,5,1000,1000,5000,no,target,always,0,,,,,,9,
-1365,Apocalypse@NPC_DARKTHUNDER,attack,341,4,1000,700,5000,no,target,always,0,,,,,,9,
-1365,Apocalypse@NPC_SELFDESTRUCTION,attack,173,1,1000,2000,5000,no,self,myhpltmaxrate,10,,,,,,9,
+1320,Owl Duke@MG_LIGHTNINGBOLT,attack,20,3,2000,0,5000,yes,target,always,,,,,,,,
+1320,Owl Duke@MG_LIGHTNINGBOLT,chase,20,3,2000,0,5000,yes,target,always,,,,,,,,
+1320,Owl Duke@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1320,Owl Duke@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1320,Owl Duke@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1320,Owl Duke@PR_LEXDIVINA,attack,76,3,500,1000,5000,yes,target,always,,,,,,,2,
+1320,Owl Duke@PR_LEXDIVINA,chase,76,3,500,1000,5000,yes,target,always,,,,,,,2,
+1321,Dragon Tail@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1321,Dragon Tail@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1321,Dragon Tail@NPC_WINDATTACK,attack,187,3,500,500,5000,yes,target,always,,,,,,,,
+1322,Spring Rabbit@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0083,,,,,
+1322,Spring Rabbit@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1322,Spring Rabbit@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1322,Spring Rabbit@SM_BASH,attack,5,10,500,0,5000,yes,target,always,,,,,,,6,
+1322,Spring Rabbit@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,,
+1323,Sea Otter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1323,Sea Otter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,0x3095,,,,,
+1323,Sea Otter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1323,Sea Otter@NPC_WATERATTACK,attack,184,3,2000,0,5000,yes,target,always,,,,,,,,
+1323,Sea Otter@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+1323,Sea Otter@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+1365,Apocalypse@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
1365,Apocalypse@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1365,Apocalypse@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1365,Apocalypse@KN_BRANDISHSPEAR,attack,57,5,1000,1000,5000,no,target,always,,,,,,,9,
+1365,Apocalypse@NPC_DARKTHUNDER,attack,341,4,1000,700,5000,no,target,always,,,,,,,9,
+1365,Apocalypse@NPC_SELFDESTRUCTION,attack,173,1,1000,2000,5000,no,self,myhpltmaxrate,10,,,,,,9,
1366,Lava Golem@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1366,Lava Golem@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,7,
+1366,Lava Golem@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,7,
1366,Lava Golem@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,1367,,,,,,
-1366,Lava Golem@WZ_FIREPILLAR,idle,80,3,500,0,5000,yes,around2,always,0,,,,,,,
+1366,Lava Golem@WZ_FIREPILLAR,idle,80,3,500,0,5000,yes,around2,always,,,,,,,,
1367,Blazer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1367,Blazer@MG_FIREBALL,chase,17,9,2000,0,5000,yes,target,always,0,,,,,,,
-1367,Blazer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1367,Blazer@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-1367,Blazer@WZ_SIGHTRASHER,attack,81,5,500,1000,5000,no,target,always,0,,,,,,6,
+1367,Blazer@MG_FIREBALL,chase,17,9,2000,0,5000,yes,target,always,,,,,,,,
+1367,Blazer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1367,Blazer@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,,
+1367,Blazer@WZ_SIGHTRASHER,attack,81,5,500,1000,5000,no,self,always,,,,,,,6,
1368,Geographer@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
1368,Geographer@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
-1369,Grand Peco@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
-1369,Grand Peco@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1369,Grand Peco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1369,Grand Peco@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-1369,Grand Peco@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x1089,,,,,
-1370,Succubus@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1370,Succubus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1370,Succubus@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,3,
-1370,Succubus@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,3,
-1370,Succubus@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1370,Succubus@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1371,Fake Angel@NPC_DARKSTRIKE,attack,340,7,500,700,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_DARKSTRIKE,chase,340,7,500,700,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_BLINDATTACK,angry,177,7,500,700,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_BLINDATTACK,follow,177,7,500,700,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_CURSEATTACK,angry,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_CURSEATTACK,follow,181,5,500,800,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_HALLUCINATION,angry,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_HALLUCINATION,follow,207,1,500,500,5000,yes,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_SILENCEATTACK,angry,178,5,500,700,5000,no,target,always,0,,,,,,29,
-1371,Fake Angel@NPC_SILENCEATTACK,follow,178,5,500,700,5000,no,target,always,0,,,,,,29,
-1372,Goat@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-1372,Goat@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-1372,Goat@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x1089,,,,,
+1368,Geographer@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,,
+1369,Grand Peco@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,6,
+1369,Grand Peco@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0081,,,,,
+1369,Grand Peco@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1369,Grand Peco@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+1369,Grand Peco@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1370,Succubus@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1370,Succubus@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,,,,,,,32,
+1370,Succubus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1370,Succubus@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,,,,,,,3,
+1370,Succubus@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,3,
+1370,Succubus@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1370,Succubus@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1371,False Angel@NPC_BLINDATTACK,angry,177,7,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_BLINDATTACK,follow,177,7,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_CURSEATTACK,angry,181,5,500,800,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_CURSEATTACK,attack,181,5,500,800,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_CURSEATTACK,follow,181,5,500,800,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_CURSEATTACK,chase,181,5,500,800,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_DARKSTRIKE,attack,340,7,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_DARKSTRIKE,chase,340,7,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_HALLUCINATION,angry,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_HALLUCINATION,follow,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_SILENCEATTACK,angry,178,5,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_SILENCEATTACK,attack,178,5,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_SILENCEATTACK,follow,178,5,500,700,5000,yes,target,always,,,,,,,29,
+1371,False Angel@NPC_SILENCEATTACK,chase,178,5,500,700,5000,yes,target,always,,,,,,,29,
+1372,Goat@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,,,,,,,6,
+1372,Goat@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,,,,,,,6,
+1372,Goat@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1372,Goat@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x1089,,,,,
1372,Goat@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1372,Goat@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1373,Lord of Death@AL_DECAGI,chase,30,48,2000,0,60000,no,target,always,0,,,,,,,
-1373,Lord of Death@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1373,Lord of Death@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1373,Lord of Death@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-1373,Lord of Death@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-1373,Lord of Death@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
-1373,Lord of Death@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-1373,Lord of Death@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,no,target,always,0,,,,,,,
-1373,Lord of Death@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1373,Lord of Death@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1373,Lord of Death@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1373,Lord of Death@NPC_GRANDDARKNESS,attack,339,10,1000,700,5000,no,self,myhpltmaxrate,30,,,,,,,
-1373,Lord of Death@NPC_STUNATTACK,attack,179,5,2000,0,0,no,target,always,0,,,,,,,
-1373,Lord of Death@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
-1373,Lord of Death@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
-1373,Lord of Death@NPC_DARKSTRIKE,chase,340,10,10000,0,5000,yes,target,skillused,18,,,,,,,
-1374,Incubus@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-1374,Incubus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1374,Incubus@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,,
-1374,Incubus@NPC_DARKSTRIKE,attack,340,9,500,700,5000,no,target,always,0,,,,,,29,
-1374,Incubus@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,0,,,,,,29,
-1374,Incubus@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,14,
-1374,Incubus@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,0,,,,,,14,
-1375,The Paper@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,6,
-1375,The Paper@NPC_DEFENDER,attack,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
-1375,The Paper@NPC_DEFENDER,chase,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
-1375,The Paper@NPC_COMBOATTACK,angry,171,2,500,700,5000,no,target,always,0,,,,,,6,
+1372,Goat@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1373,Lord of the Dead@AL_DECAGI,chase,30,10,2000,0,60000,no,target,always,,,,,,,,
+1373,Lord of the Dead@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1373,Lord of the Dead@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,,
+1373,Lord of the Dead@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1373,Lord of the Dead@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1373,Lord of the Dead@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1373,Lord of the Dead@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,no,target,always,,,,,,,,
+1373,Lord of the Dead@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1373,Lord of the Dead@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,,,,,,,,
+1373,Lord of the Dead@NPC_DARKSTRIKE,chase,340,10,10000,0,5000,yes,target,skillused,18,,,,,,,
+1373,Lord of the Dead@NPC_GRANDDARKNESS,attack,339,10,1000,700,5000,no,self,myhpltmaxrate,30,,,,,,,
+1373,Lord of the Dead@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,,,,,,,36,
+1373,Lord of the Dead@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,,,,,,,36,
+1373,Lord of the Dead@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1373,Lord of the Dead@NPC_STUNATTACK,attack,179,5,2000,0,0,no,target,always,,,,,,,,
+1373,Lord of the Dead@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
+1373,Lord of the Dead@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
+1374,Incubus@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+1374,Incubus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1374,Incubus@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,,,,,,,,
+1374,Incubus@NPC_DARKSTRIKE,attack,340,9,500,700,5000,no,target,always,,,,,,,29,
+1374,Incubus@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,,,,,,,29,
+1374,Incubus@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,14,
+1374,Incubus@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,,,,,,,14,
+1375,The Paper@NPC_BLEEDING,attack,660,1,500,0,3000,yes,target,always,,,,,,,32,
+1375,The Paper@NPC_COMBOATTACK,angry,171,2,500,700,5000,no,target,always,,,,,,,6,
+1375,The Paper@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,6,
1375,The Paper@NPC_DEFENDER,angry,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
+1375,The Paper@NPC_DEFENDER,attack,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
1375,The Paper@NPC_DEFENDER,follow,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
-1376,Harpy@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1376,Harpy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1376,Harpy@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,0,,,,,,2,
-1376,Harpy@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,0,,,,,,2,
-1376,Harpy@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1376,Harpy@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1376,Harpy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1376,Harpy@NPC_SILENCEATTACK,angry,178,5,500,700,5000,no,target,always,0,,,,,,2,
-1376,Harpy@NPC_SILENCEATTACK,follow,178,5,500,700,5000,no,target,always,0,,,,,,2,
-1376,Harpy@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1377,Elder@MG_FIREBOLT,attack,19,7,10000,1500,5000,yes,target,always,0,,,,,,11,
-1377,Elder@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,0,,,,,,,
-1377,Elder@MG_LIGHTNINGBOLT,chase,20,7,10000,1500,5000,yes,target,always,0,,,,,,12,
-1377,Elder@MG_STONECURSE,attack,16,10,10000,0,5000,yes,target,always,0,,,,,,11,
-1377,Elder@SA_DISPELL,attack,289,1,0,0,30000,yes,target,always,0,,,,,,,
-//1377,Elder@NPC_RUN,attack,354,1,2000,500,0,no,self,always,0,,,,,,,
-1377,Elder@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,0,,,,,,,
-//1377,Elder@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,0x91,,,,,
-1377,Elder@MG_FIREBOLT,idle,19,7,10000,1500,5000,yes,randomtarget,always,0,,,,,,11,
-1377,Elder@MG_FROSTDIVER,idle,15,9,10000,500,5000,yes,randomtarget,always,0,,,,,,,
-1377,Elder@MG_LIGHTNINGBOLT,idle,20,7,10000,1500,5000,yes,randomtarget,always,0,,,,,,12,
-1377,Elder@MG_STONECURSE,idle,16,10,10000,0,5000,yes,randomtarget,always,0,,,,,,11,
-1378,Demon Pungus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_BLINDATTACK,chase,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_PETRIFYATTACK,chase,180,5,500,500,5000,no,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_BLINDATTACK,angry,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_BLINDATTACK,follow,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_PETRIFYATTACK,angry,180,5,500,500,5000,no,target,always,0,,,,,,,
-1378,Demon Pungus@NPC_PETRIFYATTACK,follow,180,5,500,500,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_DARKSTRIKE,attack,340,7,500,700,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1379,Nightmare Terror@NPC_MENTALBREAKER,attack,159,2,500,800,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_DARKSTRIKE,angry,340,7,500,700,5000,no,target,always,0,,,,,,,
-1379,Nightmare Terror@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1379,Nightmare Terror@NPC_MENTALBREAKER,angry,159,2,500,800,5000,no,target,always,0,,,,,,,
-1380,Driller@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1380,Driller@AS_CLOAKING,idle,135,1,100,200,5000,yes,self,always,0,,,,,,,
-1380,Driller@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1380,Driller@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1380,Driller@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1380,Driller@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1380,Driller@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1380,Driller@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1380,Driller@NPC_COMBOATTACK,angry,171,2,500,700,5000,no,target,always,0,,,,,,,
-1380,Driller@NPC_GROUNDATTACK,angry,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1381,Grizzly@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,6,
-1381,Grizzly@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1381,Grizzly@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3885,,,,,
-1381,Grizzly@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
+1375,The Paper@NPC_DEFENDER,chase,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
+1376,Harpy@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1376,Harpy@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1376,Harpy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1376,Harpy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1376,Harpy@NPC_SILENCEATTACK,angry,178,5,500,700,5000,no,target,always,,,,,,,2,
+1376,Harpy@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,,,,,,,2,
+1376,Harpy@NPC_SILENCEATTACK,follow,178,5,500,700,5000,no,target,always,,,,,,,2,
+1376,Harpy@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,,,,,,,2,
+1376,Harpy@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,,,,,,,6,
+1376,Harpy@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
+1377,Elder@MG_FIREBOLT,attack,19,7,10000,1500,5000,yes,target,always,,,,,,,11,
+1377,Elder@MG_FIREBOLT,idle,19,7,10000,1500,5000,yes,target,always,,,,,,,11,
+1377,Elder@MG_FROSTDIVER,idle,15,9,10000,500,5000,yes,target,always,,,,,,,,
+1377,Elder@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,,,,,,,,
+1377,Elder@MG_LIGHTNINGBOLT,idle,20,7,10000,1500,5000,yes,target,always,,,,,,,12,
+1377,Elder@MG_LIGHTNINGBOLT,chase,20,7,10000,1500,5000,yes,target,always,,,,,,,12,
+1377,Elder@MG_STONECURSE,attack,16,10,10000,0,5000,yes,target,always,,,,,,,11,
+1377,Elder@MG_STONECURSE,idle,16,10,10000,0,5000,yes,target,always,,,,,,,11,
+1377,Elder@NPC_SILENCEATTACK,attack,178,5,500,700,5000,yes,target,always,,,,,,,,
+1377,Elder@SA_DISPELL,attack,289,1,0,0,30000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_BLINDATTACK,angry,177,5,500,0,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_BLINDATTACK,follow,177,5,500,0,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_BLINDATTACK,chase,177,5,500,0,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_PETRIFYATTACK,angry,180,5,500,500,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_PETRIFYATTACK,follow,180,5,500,500,5000,yes,target,always,,,,,,,,
+1378,Demon Pungus@NPC_PETRIFYATTACK,chase,180,5,500,500,5000,yes,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_DARKSTRIKE,angry,340,7,500,700,5000,no,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_DARKSTRIKE,attack,340,7,500,700,5000,no,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,6,
+1379,Nightmare Terror@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+1379,Nightmare Terror@NPC_MENTALBREAKER,angry,159,2,500,800,5000,no,target,always,,,,,,,,
+1379,Nightmare Terror@NPC_MENTALBREAKER,attack,159,2,500,800,5000,no,target,always,,,,,,,,
+1380,Driller@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1380,Driller@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1380,Driller@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1380,Driller@AS_CLOAKING,idle,135,1,100,200,5000,yes,self,always,,,,,,,,
+1380,Driller@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1380,Driller@NPC_COMBOATTACK,angry,171,2,500,700,5000,yes,target,always,,,,,,,,
+1380,Driller@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,,
+1380,Driller@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1380,Driller@NPC_GROUNDATTACK,angry,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1380,Driller@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+1381,Grizzly@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,,,,,,,6,
+1381,Grizzly@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,,,,,,,6,
+1381,Grizzly@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1381,Grizzly@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1381,Grizzly@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3885,,,,,
+1381,Grizzly@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1381,Grizzly@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1381,Grizzly@SM_ENDURE,follow,8,3,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
1381,Grizzly@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1381,Grizzly@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,0,,,,,,6,
-1381,Grizzly@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1381,Grizzly@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1381,Grizzly@SM_ENDURE,follow,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1382,Diabolic@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,29,
-1382,Diabolic@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
-1382,Diabolic@WZ_METEOR,attack,83,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1382,Diabolic@WZ_METEOR,chase,83,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1382,Diabolic@MO_BODYRELOCATION,follow,264,1,2000,500,5000,no,target,always,0,,,,,,29,
-1382,Diabolic@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,0,,,,,,6,
-1382,Diabolic@WZ_METEOR,angry,83,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1382,Diabolic@WZ_METEOR,follow,83,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1383,Explosion@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1383,Explosion@AM_DEMONSTRATION,attack,229,1,100,500,5000,yes,target,always,0,,,,,,,
-1383,Explosion@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,0,,,,,,,
-1383,Explosion@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,0,,,,,,,
-1383,Explosion@AM_DEMONSTRATION,angry,229,1,100,500,5000,yes,target,always,0,,,,,,,
-1383,Explosion@SM_MAGNUM,angry,7,5,500,500,5000,no,self,always,0,,,,,,,
-1384,Deleter@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,0,,,,,,,
-1384,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1384,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1384,Deleter@NPC_PIERCINGATT,attack,158,1,500,0,5000,yes,target,always,0,,,,,,,
-1384,Deleter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1384,Deleter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x308D,,,,,
-1385,Deleter@MG_FIREWALL,attack,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1385,Deleter@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1385,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1385,Deleter@NPC_FIREATTACK,chase,186,3,500,500,5000,no,target,always,0,,,,,,6,
-1385,Deleter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1385,Deleter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x308D,,,,,
-1385,Deleter@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,,
-1386,Sleeper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@AS_CLOAKING,idle,135,1,100,200,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
+1382,Diabolic@MO_BODYRELOCATION,follow,264,1,2000,500,5000,yes,target,always,,,,,,,29,
+1382,Diabolic@MO_BODYRELOCATION,chase,264,1,2000,500,5000,yes,target,always,,,,,,,29,
+1382,Diabolic@NPC_FIREATTACK,angry,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1382,Diabolic@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1382,Diabolic@WZ_METEOR,angry,83,3,500,1500,5000,yes,target,always,,,,,,,29,
+1382,Diabolic@WZ_METEOR,attack,83,3,500,1500,5000,yes,target,always,,,,,,,29,
+1382,Diabolic@WZ_METEOR,follow,83,3,500,1500,5000,yes,target,always,,,,,,,29,
+1382,Diabolic@WZ_METEOR,chase,83,3,500,1500,5000,yes,target,always,,,,,,,29,
+1383,Explosion@AM_DEMONSTRATION,angry,229,2,100,500,5000,yes,target,always,,,,,,,,
+1383,Explosion@AM_DEMONSTRATION,attack,229,2,100,500,5000,yes,target,always,,,,,,,,
+1383,Explosion@NPC_FIREATTACK,angry,186,2,500,500,5000,yes,target,always,,,,,,,,
+1383,Explosion@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,,
+1383,Explosion@SM_MAGNUM,angry,7,5,500,500,5000,yes,self,always,,,,,,,,
+1383,Explosion@SM_MAGNUM,attack,7,5,500,500,5000,yes,self,always,,,,,,,,
+1384,Deleter@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,,,,,,,,
+1384,Deleter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1384,Deleter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x308D,,,,,
+1384,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1384,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1384,Deleter@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,,
+1385,Deleter@MG_FIREWALL,attack,18,5,500,500,5000,yes,target,always,,,,,,,,
+1385,Deleter@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+1385,Deleter@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1385,Deleter@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x308D,,,,,
+1385,Deleter@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1385,Deleter@NPC_FIREATTACK,chase,186,3,500,500,5000,yes,target,always,,,,,,,6,
+1385,Deleter@SM_MAGNUM,attack,7,9,500,500,5000,yes,self,always,,,,,,,,
+1386,Sleeper@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1386,Sleeper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1386,Sleeper@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1386,Sleeper@AS_CLOAKING,idle,135,1,100,200,5000,yes,self,always,,,,,,,,
+1386,Sleeper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1386,Sleeper@NPC_DEFENDER,angry,205,1,500,0,5000,yes,self,always,,,,,,,,
+1386,Sleeper@NPC_DEFENDER,follow,205,1,500,0,5000,yes,self,always,,,,,,,,
1386,Sleeper@NPC_DEFENDER,attack,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
1386,Sleeper@NPC_DEFENDER,chase,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
-1386,Sleeper@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,29,
-1386,Sleeper@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1386,Sleeper@AS_CLOAKING,angry,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@AS_CLOAKING,follow,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@NPC_DEFENDER,angry,205,1,500,0,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@NPC_DEFENDER,follow,205,1,500,0,5000,yes,self,always,0,,,,,,,
-1386,Sleeper@NPC_SLEEPATTACK,angry,182,5,500,0,5000,yes,target,always,0,,,,,,,
-1386,Sleeper@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1387,Gig@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1387,Gig@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1387,Gig@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3885,,,,,
-1387,Gig@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
-1387,Gig@TF_POISON,attack,52,10,500,1000,5000,no,target,always,0,,,,,,,
-1387,Gig@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,0,,,,,,,
-1387,Gig@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1387,Gig@TF_HIDING,angry,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
-1387,Gig@TF_POISON,angry,52,10,500,1000,5000,no,target,always,0,,,,,,,
-1387,Gig@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1387,Gig@CR_AUTOGUARD,angry,249,2,500,0,300000,yes,self,always,0,,,,,,,
-1387,Gig@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1386,Sleeper@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1386,Sleeper@NPC_SLEEPATTACK,angry,182,5,500,0,5000,yes,target,always,,,,,,,,
+1386,Sleeper@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,29,
+1386,Sleeper@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,,,,,,,,
+1386,Sleeper@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,,
+1387,Gig@CR_AUTOGUARD,angry,249,2,500,0,300000,yes,self,always,,,,,,,,
+1387,Gig@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
1387,Gig@CR_AUTOGUARD,follow,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1388,Arc Angeling@CR_GRANDCROSS,attack,254,1,2000,0,0,yes,self,always,0,,,,,,,
-1388,Arc Angeling@AL_HEAL,attack,28,11,10000,0,1000,no,friend,friendhpltmaxrate,50,,,,,,18,
-1388,Arc Angeling@AL_HEAL,attack,28,11,10000,0,0,no,self,myhpltmaxrate,50,,,,,,18,
-1388,Arc Angeling@AL_HEAL,chase,28,11,10000,0,1000,no,friend,friendhpltmaxrate,50,,,,,,18,
-1388,Arc Angeling@AL_HEAL,chase,28,11,10000,0,0,no,self,myhpltmaxrate,50,,,,,,18,
-1388,Arc Angeling@PR_SANCTUARY,attack,70,10,10000,500,30000,no,self,always,0,,,,,,18,
-1388,Arc Angeling@PR_SANCTUARY,chase,70,10,10000,500,30000,no,self,always,0,,,,,,18,
+1387,Gig@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1387,Gig@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1387,Gig@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1387,Gig@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+1387,Gig@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,,,,,,,,
+1387,Gig@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,,,,,,,,
+1387,Gig@TF_HIDING,angry,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
+1387,Gig@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
+1387,Gig@TF_POISON,angry,52,10,500,1000,5000,no,target,always,,,,,,,,
+1387,Gig@TF_POISON,attack,52,10,500,1000,5000,no,target,always,,,,,,,,
+1388,Arc Angeling@AL_HEAL,attack,28,10,10000,0,1000,no,friend,friendhpltmaxrate,50,,,,,,18,
+1388,Arc Angeling@AL_HEAL,chase,28,10,10000,0,1000,no,friend,friendhpltmaxrate,50,,,,,,18,
+1388,Arc Angeling@AL_HEAL,attack,28,10,10000,0,0,no,self,myhpltmaxrate,50,,,,,,18,
+1388,Arc Angeling@AL_HEAL,chase,28,10,10000,0,0,no,self,myhpltmaxrate,50,,,,,,18,
1388,Arc Angeling@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1388,Arc Angeling@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,18,
+1388,Arc Angeling@CR_GRANDCROSS,attack,254,1,2000,0,0,yes,self,always,,,,,,,,
1388,Arc Angeling@NPC_BARRIER,attack,204,1,500,1000,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1388,Arc Angeling@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1388,Arc Angeling@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1388,Arc Angeling@NPC_HOLYATTACK,attack,189,5,500,0,5000,no,target,always,0,,,,,,18,
-1388,Arc Angeling@NPC_HOLYATTACK,chase,189,5,500,0,5000,no,target,always,0,,,,,,18,
-1388,Arc Angeling@NPC_SUMMONSLAVE,attack,196,7,10000,700,60000,no,self,slavele,3,1443,1246,1742,1743,1744,18,
-1388,Arc Angeling@NPC_SUMMONSLAVE,idle,196,7,10000,700,60000,no,self,slavele,3,1443,1246,1742,1743,1744,18,
-1388,Arc Angeling@RG_INTIMIDATE,attack,219,5,2000,0,5000,yes,target,always,0,,,,,,,
-1389,Dracula@AL_DECAGI,chase,30,48,2000,0,5000,no,target,always,0,,,,,,,
+1388,Arc Angeling@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1388,Arc Angeling@NPC_HOLYATTACK,attack,189,5,500,0,5000,no,target,always,,,,,,,18,
+1388,Arc Angeling@NPC_HOLYATTACK,chase,189,5,500,0,5000,no,target,always,,,,,,,18,
+1388,Arc Angeling@PR_SANCTUARY,attack,70,10,10000,500,30000,no,self,always,,,,,,,18,
+1388,Arc Angeling@PR_SANCTUARY,chase,70,10,10000,500,30000,no,self,always,,,,,,,18,
+1388,Arc Angeling@RG_INTIMIDATE,attack,219,5,2000,0,5000,yes,target,always,,,,,,,,
+1389,Dracula@AL_DECAGI,chase,30,10,2000,0,5000,yes,target,always,,,,,,,,
1389,Dracula@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1389,Dracula@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1389,Dracula@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1389,Dracula@NPC_HELLJUDGEMENT,chase,662,10,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,36,
-1389,Dracula@NPC_HELLJUDGEMENT,attack,662,10,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,36,
-1389,Dracula@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
+1389,Dracula@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1389,Dracula@MO_BODYRELOCATION,chase,264,1,2000,200,5000,yes,target,always,,,,,,,,
1389,Dracula@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1389,Dracula@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,0,,,,,,,
-1389,Dracula@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,0,,,,,,,
-1389,Dracula@MO_BODYRELOCATION,chase,264,1,2000,200,5000,yes,target,always,0,,,,,,,
-1389,Dracula@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1389,Dracula@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1389,Dracula@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,no,target,always,0,,,,,,9,
-1389,Dracula@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1389,Dracula@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1389,Dracula@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-1389,Dracula@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-1389,Dracula@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-1389,Dracula@NPC_SUMMONSLAVE,attack,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
-1389,Dracula@NPC_SUMMONSLAVE,idle,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
+1389,Dracula@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,,,,,,,,
+1389,Dracula@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1389,Dracula@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1389,Dracula@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,yes,target,always,,,,,,,9,
+1389,Dracula@NPC_CRITICALWOUND,attack,673,2,1500,0,5000,yes,target,always,,,,,,,,
+1389,Dracula@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,,,,,,,,
1389,Dracula@NPC_ENERGYDRAIN,chase,200,1,10000,0,0,yes,target,skillused,18,,,,,,,
-1390,Violy@NPC_DARKSTRIKE,attack,340,5,500,700,5000,yes,target,always,0,,,,,,,
-1390,Violy@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,2,
-1390,Violy@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,0,,,,,,,
-1390,Violy@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,0,,,,,,2,
-//1390,Violy@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,,
+1389,Dracula@NPC_HELLJUDGEMENT,attack,662,10,10000,500,20000,yes,self,myhpltmaxrate,80,,,,,,36,
+1389,Dracula@NPC_HELLJUDGEMENT,chase,662,10,10000,500,20000,yes,self,myhpltmaxrate,80,,,,,,36,
+1389,Dracula@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,,,,,,,,
+1389,Dracula@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,,,,,,,,
+1389,Dracula@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,,,,,,,,
+1389,Dracula@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,yes,target,always,,,,,,,,
+1389,Dracula@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,yes,target,always,,,,,,,,
+1389,Dracula@NPC_SUMMONSLAVE,attack,196,16,10000,700,5000,yes,self,slavele,5,1419,,,,,,
+1389,Dracula@NPC_SUMMONSLAVE,idle,196,16,10000,700,5000,yes,self,slavele,5,1419,,,,,,
+1390,Violy@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,2,
+1390,Violy@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,,,,,,,,
+1390,Violy@NPC_DARKSTRIKE,attack,340,5,500,700,5000,yes,target,always,,,,,,,,
+1390,Violy@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,,,,,,,2,
1391,Galapago@AM_POTIONPITCHER,idle,231,4,500,500,5000,yes,self,myhpltmaxrate,99,,,,,,2,
-1391,Galapago@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1391,Galapago@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,0x108B,,,,,
-1391,Galapago@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,1,
-1391,Galapago@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,2,
-1391,Galapago@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,2,
-1392,Rotar Zairo@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
+1391,Galapago@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1391,Galapago@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,0x108B,,,,,
+1391,Galapago@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,1,
+1391,Galapago@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,2,
+1391,Galapago@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,2,
+1392,Rotar Zairo@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,6,
1392,Rotar Zairo@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
-1393,G Mummy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1393,G Mummy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-//1395,Wind Crystal@WZ_EARTHSPIKE,chase,90,5,4000,0,0,no,target,always,0,,,,,,0,
-//1395,Wind Crystal@WZ_EARTHSPIKE,chase,90,5,10000,0,0,no,target,skillused,18,,,,,,0,
-//1395,Wind Crystal@WZ_EARTHSPIKE,attack,90,5,4000,0,0,no,target,always,0,,,,,,0,
-//1395,Wind Crystal@WZ_HEAVENDRIVE,chase,91,5,2000,0,5000,no,target,always,0,,,,,,21,
-//1395,Wind Crystal@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,21,
-//1395,Wind Crystal@WZ_HEAVENDRIVE,attack,91,5,2000,0,5000,no,target,always,0,,,,,,21,
-//1395,Wind Crystal@MG_STONECURSE,attack,16,10,2000,0,5000,no,target,always,0,,,,,,,
-//1395,Wind Crystal@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1395,Wind Crystal@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1395,Wind Crystal@SM_ENDURE,chase,8,7,10000,0,20000,yes,self,longrangeattacked,,,,,,,,
-//1395,Wind Crystal@AL_INCAGI,chase,29,1,5000,3000,120000,no,self,myhpltmaxrate,50,,,,,,,
-//1395,Wind Crystal@KN_TWOHANDQUICKEN,attack,60,10,5000,3000,300000,no,self,myhpltmaxrate,20,,,,,,,
-//1395,Wind Crystal@AL_DECAGI,chase,30,1,1000,0,10000,yes,target,always,0,,,,,,,
-//1395,Wind Crystal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-//1395,Wind Crystal@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,yes,target,always,0,,,,,,,
-//1395,Wind Crystal@NPC_CHANGEDARKNESS,chase,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1395,Wind Crystal@NPC_CHANGEDARKNESS,attack,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1395,Wind Crystal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1395,Wind Crystal@AL_TELEPORT,walk,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1395,Wind Crystal@NPC_HELMBRAKE,attack,345,10,2000,0,5000,no,target,always,0,,,,,,29,
-//1396,Earth Crystal@MG_LIGHTNINGBOLT,chase,20,5,2000,0,5000,no,target,always,0,,,,,,0,
-//1396,Earth Crystal@MG_LIGHTNINGBOLT,chase,20,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-//1396,Earth Crystal@WZ_JUPITEL,chase,84,10,2000,500,5000,no,target,always,0,,,,,,0,
-//1396,Earth Crystal@WZ_JUPITEL,chase,84,10,10000,500,5000,no,target,skillused,18,,,,,,0,
-//1396,Earth Crystal@WZ_JUPITEL,attack,84,10,2000,500,5000,no,target,always,0,,,,,,0,
-//1396,Earth Crystal@WZ_VERMILION,chase,85,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1396,Earth Crystal@WZ_VERMILION,chase,85,10,10000,500,5000,no,target,skillused,18,,,,,,21,
-//1396,Earth Crystal@WZ_VERMILION,attack,85,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1396,Earth Crystal@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1396,Earth Crystal@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1396,Earth Crystal@SM_ENDURE,chase,8,7,10000,0,20000,yes,self,longrangeattacked,,,,,,,,
-//1396,Earth Crystal@AL_INCAGI,chase,29,1,5000,3000,120000,no,self,myhpltmaxrate,50,,,,,,,
-//1396,Earth Crystal@KN_TWOHANDQUICKEN,attack,60,10,5000,3000,300000,no,self,myhpltmaxrate,20,,,,,,,
-//1396,Earth Crystal@AL_DECAGI,chase,30,1,1000,0,10000,yes,target,always,0,,,,,,,
-//1396,Earth Crystal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-//1396,Earth Crystal@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
-//1396,Earth Crystal@NPC_CHANGEDARKNESS,chase,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1396,Earth Crystal@NPC_CHANGEDARKNESS,attack,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1396,Earth Crystal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1396,Earth Crystal@AL_TELEPORT,walk,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1396,Earth Crystal@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,6,
-//1397,Fire Crystal@MG_FIREBOLT,chase,19,5,2000,0,5000,no,target,always,0,,,,,,0,
-//1397,Fire Crystal@MG_FIREBOLT,chase,19,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-//1397,Fire Crystal@MG_FIREBALL,chase,17,20,4000,0,0,no,target,always,0,,,,,,0,
-//1397,Fire Crystal@MG_FIREBALL,chase,17,20,10000,0,0,no,target,skillused,18,,,,,,0,
-//1397,Fire Crystal@MG_FIREBALL,attack,17,10,4000,0,0,no,target,always,0,,,,,,0,
-//1397,Fire Crystal@WZ_METEOR,chase,83,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1397,Fire Crystal@WZ_METEOR,chase,83,10,10000,500,5000,no,target,skillused,18,,,,,,21,
-//1397,Fire Crystal@WZ_METEOR,attack,83,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1397,Fire Crystal@WZ_SIGHTRASHER,attack,81,10,1000,1000,5000,no,self,always,0,,,,,,,
-//1397,Fire Crystal@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1397,Fire Crystal@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1397,Fire Crystal@SM_ENDURE,chase,8,7,10000,0,20000,yes,self,longrangeattacked,,,,,,,,
-//1397,Fire Crystal@AL_INCAGI,chase,29,1,5000,3000,120000,no,self,myhpltmaxrate,50,,,,,,,
-//1397,Fire Crystal@KN_TWOHANDQUICKEN,attack,60,10,5000,3000,300000,no,self,myhpltmaxrate,20,,,,,,,
-//1397,Fire Crystal@AL_DECAGI,chase,30,1,1000,0,10000,yes,target,always,0,,,,,,,
-//1397,Fire Crystal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-//1397,Fire Crystal@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,0,,,,,,,
-//1397,Fire Crystal@NPC_CHANGEDARKNESS,chase,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1397,Fire Crystal@NPC_CHANGEDARKNESS,attack,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1397,Fire Crystal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1397,Fire Crystal@AL_TELEPORT,walk,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1397,Fire Crystal@NPC_WEAPONBRAKER,attack,343,10,2000,0,5000,no,target,always,0,,,,,,18,
-//1398,Water Crystal@MG_COLDBOLT,chase,14,5,2000,0,5000,no,target,always,0,,,,,,0,
-//1398,Water Crystal@MG_COLDBOLT,chase,14,5,4000,0,5000,no,target,skillused,18,,,,,,0,
-//1398,Water Crystal@WZ_WATERBALL,chase,86,10,2000,500,5000,no,target,always,0,,,,,,0,
-//1398,Water Crystal@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,skillused,18,,,,,,0,
-//1398,Water Crystal@WZ_WATERBALL,attack,86,10,2000,500,5000,no,target,always,0,,,,,,0,
-//1398,Water Crystal@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1398,Water Crystal@WZ_STORMGUST,chase,89,10,10000,500,5000,no,target,skillused,18,,,,,,21,
-//1398,Water Crystal@WZ_STORMGUST,attack,89,10,2000,500,5000,no,target,always,0,,,,,,21,
-//1398,Water Crystal@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1398,Water Crystal@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-//1398,Water Crystal@SM_ENDURE,chase,8,7,10000,0,20000,yes,self,longrangeattacked,,,,,,,,
-//1398,Water Crystal@AL_INCAGI,chase,29,1,5000,3000,120000,no,self,myhpltmaxrate,50,,,,,,,
-//1398,Water Crystal@KN_TWOHANDQUICKEN,attack,60,10,5000,3000,300000,no,self,myhpltmaxrate,20,,,,,,,
-//1398,Water Crystal@AL_DECAGI,chase,30,1,1000,0,10000,yes,target,always,0,,,,,,,
-//1398,Water Crystal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-//1398,Water Crystal@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,0,,,,,,,
-//1398,Water Crystal@NPC_CHANGEDARKNESS,chase,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1398,Water Crystal@NPC_CHANGEDARKNESS,attack,168,1,10000,0,300000,yes,self,myhpltmaxrate,50,,,,,,,
-//1398,Water Crystal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1398,Water Crystal@AL_TELEPORT,walk,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-//1398,Water Crystal@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,no,target,always,0,,,,,,2,
-1399,Event Baphomet@AL_TELEPORT,idle,26,1,2000,0,0,yes,self,always,0,,,,,,20,
-1399,Event Baphomet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1399,Event Baphomet@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1399,Event Baphomet@KN_BRANDISHSPEAR,attack,57,20,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1399,Event Baphomet@NPC_BARRIER,attack,204,1,2000,3000,60000,no,self,always,0,,,,,,,
-1399,Event Baphomet@NPC_GUIDEDATTACK,attack,172,5,2000,0,20000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@NPC_SUMMONSLAVE,attack,196,10,10000,2000,20000,no,self,slavele,3,1026,1170,1029,1044,1749,,
-1399,Event Baphomet@NPC_SUMMONSLAVE,idle,196,10,10000,2000,20000,no,self,slavele,3,1026,1170,1029,1044,1749,,
-1399,Event Baphomet@WZ_METEOR,chase,83,11,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@WZ_METEOR,attack,83,11,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@WZ_STORMGUST,chase,89,10,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@WZ_STORMGUST,attack,89,10,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@WZ_VERMILION,chase,85,20,2000,0,5000,yes,target,always,0,,,,,,29,
-1399,Event Baphomet@WZ_VERMILION,attack,85,20,2000,0,5000,yes,target,always,0,,,,,,29,
-1400,Karakasa@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,31,
-1400,Karakasa@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,31,
-1400,Karakasa@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,6,
-1400,Karakasa@WZ_WATERBALL,chase,86,1,500,500,5000,yes,target,always,0,,,,,,6,
-1400,Karakasa@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,0,28,0x3885,,,,,
-1401,Shinobi@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
+1393,Mummy@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1393,Mummy@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1399,Baphomet@AL_TELEPORT,idle,26,1,2000,0,0,yes,self,always,,,,,,,20,
+1399,Baphomet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1399,Baphomet@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1399,Baphomet@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1399,Baphomet@NPC_BARRIER,attack,204,1,2000,3000,60000,yes,self,always,,,,,,,,
+1399,Baphomet@NPC_GUIDEDATTACK,attack,172,5,2000,0,20000,yes,target,always,,,,,,,29,
+1399,Baphomet@NPC_SUMMONSLAVE,attack,196,10,10000,2000,20000,yes,self,slavele,3,1026,1170,1029,1044,1749,,
+1399,Baphomet@NPC_SUMMONSLAVE,idle,196,10,10000,2000,20000,yes,self,slavele,3,1026,1170,1029,1044,1749,,
+1399,Baphomet@WZ_METEOR,attack,83,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@WZ_METEOR,chase,83,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@WZ_STORMGUST,attack,89,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@WZ_STORMGUST,chase,89,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@WZ_VERMILION,attack,85,10,2000,0,5000,yes,target,always,,,,,,,29,
+1399,Baphomet@WZ_VERMILION,chase,85,10,2000,0,5000,yes,target,always,,,,,,,29,
+1400,Karakasa@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,6,
+1400,Karakasa@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,,28,0x3885,,,,,
+1400,Karakasa@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,31,
+1400,Karakasa@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,31,
+1400,Karakasa@WZ_WATERBALL,chase,86,1,500,500,5000,yes,target,always,,,,,,,6,
+1401,Shinobi@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
1401,Shinobi@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1401,Shinobi@AS_CLOAKING,idle,135,1,500,200,5000,yes,self,always,0,,,,,,,
-1401,Shinobi@HT_CLAYMORETRAP,idle,123,5,500,0,300000,yes,around2,always,0,,,,,,9,
+1401,Shinobi@AS_CLOAKING,idle,135,1,500,200,5000,yes,self,always,,,,,,,,
+1401,Shinobi@HT_CLAYMORETRAP,idle,123,5,500,0,300000,yes,around2,always,,,,,,,9,
1401,Shinobi@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,myhpltmaxrate,10,,,,,,,
-1401,Shinobi@NPC_REBIRTH,dead,208,2,5000,0,0,yes,self,always,0,,,,,,29,
-1401,Shinobi@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
+1401,Shinobi@NPC_REBIRTH,dead,208,2,5000,0,0,yes,self,always,,,,,,,29,
+1401,Shinobi@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
1401,Shinobi@TF_BACKSLIDING,attack,150,1,10000,500,3600000,no,self,myhpltmaxrate,10,,,,,,,
-1402,Poison Toad@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,,,,,,
-1402,Poison Toad@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1402,Poison Toad@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1403,Antique Firelock@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,7,
-1404,Miyabi Ningyo@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,7,
-1404,Miyabi Ningyo@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,7,
-1404,Miyabi Ningyo@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,6,
-1404,Miyabi Ningyo@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,6,
-1404,Miyabi Ningyo@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1404,Miyabi Ningyo@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1404,Miyabi Ningyo@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,0,,,,,,,
-1405,Tengu@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1405,Tengu@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,6,
-1405,Tengu@NPC_STUNATTACK,chase,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1405,Tengu@SM_PROVOKE,attack,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-1405,Tengu@SM_PROVOKE,chase,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-1405,Tengu@WZ_EARTHSPIKE,attack,90,1,500,0,5000,no,target,always,0,,,,,,6,
-1405,Tengu@WZ_EARTHSPIKE,attack,90,2,500,0,5000,no,target,always,0,,,,,,6,
-1405,Tengu@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,0,,,,,,6,
-1405,Tengu@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,0,,,,,,6,
-1405,Tengu@NPC_STUNATTACK,follow,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1405,Tengu@SM_PROVOKE,angry,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-1405,Tengu@SM_PROVOKE,follow,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-1405,Tengu@WZ_EARTHSPIKE,angry,90,1,500,0,5000,no,target,always,0,,,,,,6,
-1405,Tengu@WZ_EARTHSPIKE,angry,90,2,500,0,5000,no,target,always,0,,,,,,6,
-1405,Tengu@WZ_EARTHSPIKE,angry,90,3,500,0,5000,no,target,always,0,,,,,,6,
-1406,Kapha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1406,Kapha@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1406,Kapha@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,0,,,,,,6,
-1406,Kapha@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,0,,,,,,16,
-1406,Kapha@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1406,Kapha@NPC_WATERATTACK,angry,184,3,500,500,5000,yes,target,always,0,,,,,,6,
-1406,Kapha@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,0,,,,,,16,
-1408,Bloody Butterfly@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,0,,,,,,6,
-1408,Bloody Butterfly@NPC_DARKSTRIKE,chase,340,5,2000,700,5000,no,target,always,0,,,,,,6,
-1408,Bloody Butterfly@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,0,,,,,,7,
-1408,Bloody Butterfly@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,0,,,,,,7,
-1409,Rice Cake Boy@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,0,,,,,,6,
-1410,Live Peach Tree@AM_POTIONPITCHER,attack,231,2,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
-1410,Live Peach Tree@AM_POTIONPITCHER,idle,231,3,10000,500,10000,no,self,always,0,,,,,,18,
-1410,Live Peach Tree@AM_POTIONPITCHER,chase,231,2,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
-1410,Live Peach Tree@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1410,Live Peach Tree@NPC_GUIDEDATTACK,chase,172,2,500,1000,20000,no,target,always,0,,,,,,6,
-//1410,Live Peach Tree@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
+1402,Poisonous Toad@NPC_COMBOATTACK,attack,171,2,2000,0,5000,yes,target,always,,,,,,,,
+1402,Poisonous Toad@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,,,,,,
+1402,Poisonous Toad@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1402,Poisonous Toad@NPC_POISONATTACK,attack,188,3,2000,0,5000,yes,target,always,,,,,,,,
+1403,Firelock Soldier@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,7,
+1403,Firelock Soldier@AC_DOUBLE,attack,46,4,2000,1000,5000,no,target,always,,,,,,,,
+1403,Firelock Soldier@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,,,,,,,,
+1404,Miyabi Doll@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,7,
+1404,Miyabi Doll@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,,,,,,,7,
+1404,Miyabi Doll@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,6,
+1404,Miyabi Doll@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,6,
+1404,Miyabi Doll@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1404,Miyabi Doll@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+1404,Miyabi Doll@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,,,,,,,,
+1405,Tengu@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1405,Tengu@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,,,,,,,6,
+1405,Tengu@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,6,
+1405,Tengu@NPC_STUNATTACK,follow,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1405,Tengu@NPC_STUNATTACK,chase,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1405,Tengu@SM_PROVOKE,angry,6,10,2000,600,30000,no,target,always,,,,,,,23,
+1405,Tengu@SM_PROVOKE,attack,6,10,2000,600,30000,no,target,always,,,,,,,23,
+1405,Tengu@SM_PROVOKE,follow,6,10,2000,600,30000,no,target,always,,,,,,,23,
+1405,Tengu@SM_PROVOKE,chase,6,10,2000,600,30000,no,target,always,,,,,,,23,
+1405,Tengu@WZ_EARTHSPIKE,angry,90,1,500,0,5000,no,target,always,,,,,,,6,
+1405,Tengu@WZ_EARTHSPIKE,angry,90,2,500,0,5000,no,target,always,,,,,,,6,
+1405,Tengu@WZ_EARTHSPIKE,angry,90,3,500,0,5000,no,target,always,,,,,,,6,
+1405,Tengu@WZ_EARTHSPIKE,attack,90,1,500,0,5000,no,target,always,,,,,,,6,
+1405,Tengu@WZ_EARTHSPIKE,attack,90,2,500,0,5000,no,target,always,,,,,,,6,
+1405,Tengu@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,,,,,,,6,
+1406,Kapha@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1406,Kapha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1406,Kapha@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1406,Kapha@NPC_WATERATTACK,angry,184,5,500,500,5000,yes,target,always,,,,,,,6,
+1406,Kapha@NPC_WATERATTACK,attack,184,5,500,500,5000,yes,target,always,,,,,,,6,
+1406,Kapha@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,,,,,,,16,
+1406,Kapha@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,16,
+1408,Bloody Butterfly@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,,,,,,,6,
+1408,Bloody Butterfly@NPC_DARKSTRIKE,chase,340,5,2000,700,5000,no,target,always,,,,,,,6,
+1408,Bloody Butterfly@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,7,
+1408,Bloody Butterfly@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,,,,,,,7,
+1409,Dumpling Child@NPC_WINDATTACK,attack,187,3,2000,0,5000,yes,target,always,,,,,,,6,
+1410,Enchanted Peach Tree@AM_POTIONPITCHER,idle,231,3,10000,500,10000,no,self,always,,,,,,,18,
+1410,Enchanted Peach Tree@AM_POTIONPITCHER,attack,231,2,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
+1410,Enchanted Peach Tree@AM_POTIONPITCHER,chase,231,2,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,19,
+1410,Enchanted Peach Tree@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1410,Enchanted Peach Tree@NPC_GUIDEDATTACK,chase,172,3,500,1000,20000,no,target,always,,,,,,,6,
1412,Taoist Hermit@AL_TELEPORT,attack,26,1,500,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1412,Taoist Hermit@MG_LIGHTNINGBOLT,attack,20,5,2000,1500,5000,yes,target,always,0,,,,,,6,
-1412,Taoist Hermit@MG_LIGHTNINGBOLT,chase,20,5,2000,1500,5000,yes,target,always,0,,,,,,6,
-1412,Taoist Hermit@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,29,
-1412,Taoist Hermit@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,29,
-//1412,Taoist Cloud Hermit@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,,
-1413,Wild Ginseng@NPC_BARRIER,attack,204,1,2000,3000,5000,no,self,myhpltmaxrate,30,,,,,,9,
-1413,Wild Ginseng@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,7,
-1415,Baby Leopard@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1415,Baby Leopard@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1415,Baby Leopard@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1416,Wicked Nymph@AL_HEAL,attack,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1416,Wicked Nymph@AL_HEAL,attack,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1416,Wicked Nymph@AL_HEAL,idle,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1416,Wicked Nymph@AL_HEAL,idle,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1416,Wicked Nymph@AL_HEAL,chase,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1416,Wicked Nymph@AL_HEAL,chase,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1416,Wicked Nymph@NPC_STOP,attack,342,1,500,0,30000,no,target,always,0,,,,,,6,
-1416,Wicked Nymph@SA_DISPELL,attack,289,5,0,0,5000,yes,target,always,0,,,,,,,
-1417,Zipper Bear@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1417,Zipper Bear@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,6,
+1412,Taoist Hermit@MG_LIGHTNINGBOLT,attack,20,5,2000,1500,5000,yes,target,always,,,,,,,6,
+1412,Taoist Hermit@MG_LIGHTNINGBOLT,chase,20,5,2000,1500,5000,yes,target,always,,,,,,,6,
+1412,Taoist Hermit@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,29,
+1412,Taoist Hermit@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,,,,,,,29,
+1413,Hermit Plant@NPC_BARRIER,attack,204,1,2000,3000,5000,no,self,myhpltmaxrate,30,,,,,,9,
+1413,Hermit Plant@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,,,,,,,7,
+1415,Baby Leopard@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1415,Baby Leopard@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,6,
+1415,Baby Leopard@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1416,Evil Nymph@AL_HEAL,attack,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1416,Evil Nymph@AL_HEAL,idle,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1416,Evil Nymph@AL_HEAL,chase,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1416,Evil Nymph@AL_HEAL,attack,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1416,Evil Nymph@AL_HEAL,idle,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1416,Evil Nymph@AL_HEAL,chase,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1416,Evil Nymph@NPC_STOP,attack,342,1,500,0,30000,no,target,always,,,,,,,6,
+1416,Evil Nymph@SA_DISPELL,attack,289,5,0,0,5000,yes,target,always,,,,,,,,
+1417,Zipper Bear@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1417,Zipper Bear@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
1418,Evil Snake Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1418,Evil Snake Lord@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1418,Evil Snake Lord@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,6,
-1418,Evil Snake Lord@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1418,Evil Snake Lord@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1418,Evil Snake Lord@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1418,Evil Snake Lord@MG_FROSTDIVER,attack,15,10,2000,0,5000,yes,target,always,0,,,,,,,
-1418,Evil Snake Lord@MG_FROSTDIVER,chase,15,10,2000,0,0,yes,target,always,0,,,,,,,
-1418,Evil Snake Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,0,yes,target,always,0,,,,,,2,
-1418,Evil Snake Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1418,Evil Snake Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1418,Evil Snake Lord@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,0,,,,,,29,
-1418,Evil Snake Lord@NPC_STOP,attack,342,1,10000,0,15000,yes,target,always,0,,,,,,2,
-1418,Evil Snake Lord@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,2,1531,1531,1564,,,,
-1418,Evil Snake Lord@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,2,1531,1531,1564,,,,
-1418,Evil Snake Lord@SM_MAGNUM,attack,7,20,2000,0,5000,yes,self,attackpcge,2,,,,,,,
+1418,Evil Snake Lord@MG_FROSTDIVER,attack,15,10,2000,0,5000,yes,target,always,,,,,,,,
+1418,Evil Snake Lord@MG_FROSTDIVER,chase,15,10,2000,0,0,yes,target,always,,,,,,,,
1418,Evil Snake Lord@MG_FROSTDIVER,chase,15,10,10000,0,0,yes,target,skillused,18,,,,,,,
-1419,Farmiliar@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1419,Farmiliar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1419,Farmiliar@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1419,Farmiliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1420,Skeleton Archer@AC_DOUBLE,angry,46,1,500,1000,5000,no,target,always,0,,,,,,,
-1420,Skeleton Archer@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,0,,,,,,,
-1420,Skeleton Archer@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,0,,,,,,,
-1420,Skeleton Archer@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1421,Isis@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1421,Isis@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1421,Isis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1421,Isis@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1422,Hunter Fly@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1423,Ghoul@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1423,Ghoul@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@KN_PIERCE,angry,56,5,500,700,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@NPC_POISONATTACK,angry,188,3,500,500,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1424,Sidewinder@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,,
-1425,Obeaune@NPC_WATERATTACK,angry,184,3,500,500,5000,no,target,always,0,,,,,,,
-1425,Obeaune@PR_LEXDIVINA,follow,76,5,500,1000,5000,yes,target,always,0,,,,,,,
-1425,Obeaune@PR_LEXDIVINA,angry,76,5,500,1000,5000,yes,target,always,0,,,,,,,
-1425,Obeaune@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,,
-1425,Obeaune@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,0,,,,,,,
-1425,Obeaune@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,0,,,,,,,
-1426,Marc@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,0,,,,,,,
-1426,Marc@NPC_WATERATTACK,angry,184,2,500,500,5000,no,target,always,0,,,,,,,
-1426,Marc@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
-1426,Marc@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,,
-1427,Nightmare@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1427,Nightmare@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1427,Nightmare@NPC_MENTALBREAKER,angry,159,1,500,800,5000,no,target,always,0,,,,,,,
-1427,Nightmare@NPC_TELEKINESISATTACK,angry,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1427,Nightmare@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1427,Nightmare@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1427,Nightmare@NPC_MENTALBREAKER,attack,159,1,500,800,5000,no,target,always,0,,,,,,,
-1427,Nightmare@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1428,Poison Spore@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1428,Poison Spore@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1428,Poison Spore@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1428,Poison Spore@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1429,Argiope@AS_VENOMDUST,angry,140,1,500,1500,5000,no,target,always,0,,,,,,,
-1429,Argiope@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1429,Argiope@NPC_POISONATTACK,angry,188,2,500,500,5000,no,target,always,0,,,,,,,
-1429,Argiope@AS_VENOMDUST,attack,140,1,500,1500,5000,no,target,always,0,,,,,,,
-1429,Argiope@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1429,Argiope@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1430,Argos@NPC_POISON,angry,176,2,500,800,5000,no,target,always,0,,,,,,,
-1430,Argos@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1430,Argos@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1430,Argos@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_DARKBREATH,angry,202,1,500,800,5000,no,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_DARKNESSATTACK,angry,190,2,500,500,5000,no,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_HALLUCINATION,follow,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_HALLUCINATION,angry,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_DARKBREATH,attack,202,1,500,800,5000,no,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1431,Baphomet Jr.@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1432,Desert Wolf@NPC_FIREATTACK,angry,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1432,Desert Wolf@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1432,Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1432,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_BLINDATTACK,follow,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_ENERGYDRAIN,follow,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
+1418,Evil Snake Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1418,Evil Snake Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1418,Evil Snake Lord@NPC_DARKBREATH,attack,202,5,2000,800,5000,yes,target,always,,,,,,,29,
+1418,Evil Snake Lord@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,yes,self,always,,,,,,,6,
+1418,Evil Snake Lord@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1418,Evil Snake Lord@NPC_POISON,attack,176,5,2000,0,5000,yes,target,always,,,,,,,,
+1418,Evil Snake Lord@NPC_POISONATTACK,attack,188,7,2000,0,5000,yes,target,always,,,,,,,,
+1418,Evil Snake Lord@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1418,Evil Snake Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,0,yes,target,always,,,,,,,2,
+1418,Evil Snake Lord@NPC_STOP,attack,342,1,10000,0,15000,yes,target,always,,,,,,,2,
+1418,Evil Snake Lord@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,2,1531,1531,1564,,,,
+1418,Evil Snake Lord@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,2,1531,1531,1564,,,,
+1418,Evil Snake Lord@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1418,Evil Snake Lord@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1418,Evil Snake Lord@SM_MAGNUM,attack,7,10,2000,0,5000,yes,self,attackpcge,2,,,,,,,
+1419,Familiar@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,,,,,,,,
+1419,Familiar@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,,,,,,,,
+1419,Familiar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1419,Familiar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1420,Archer Skeleton@AC_DOUBLE,angry,46,1,500,1000,5000,yes,target,always,,,,,,,,
+1420,Archer Skeleton@AC_DOUBLE,attack,46,1,500,1000,5000,yes,target,always,,,,,,,,
+1420,Archer Skeleton@NPC_FIREATTACK,angry,186,2,500,500,5000,yes,target,always,,,,,,,,
+1420,Archer Skeleton@NPC_FIREATTACK,attack,186,2,500,500,5000,yes,target,always,,,,,,,,
+1421,Isis@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1421,Isis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1421,Isis@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1421,Isis@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1422,Hunter Fly@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1422,Hunter Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1422,Hunter Fly@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1422,Hunter Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1422,Hunter Fly@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1422,Hunter Fly@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1423,Ghoul@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,,
+1423,Ghoul@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1424,Side Winder@KN_PIERCE,angry,56,5,500,700,5000,no,target,always,,,,,,,,
+1424,Side Winder@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
+1424,Side Winder@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,,
+1424,Side Winder@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1424,Side Winder@NPC_POISONATTACK,angry,188,3,500,500,5000,no,target,always,,,,,,,,
+1424,Side Winder@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,,,,,,,,
+1425,Obeaune@NPC_WATERATTACK,angry,184,3,500,500,5000,no,target,always,,,,,,,,
+1425,Obeaune@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,,
+1425,Obeaune@PR_LEXDIVINA,angry,76,5,500,1000,5000,yes,target,always,,,,,,,,
+1425,Obeaune@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,,,,,,,,
+1425,Obeaune@PR_LEXDIVINA,follow,76,5,500,1000,5000,yes,target,always,,,,,,,,
+1425,Obeaune@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,,,,,,,,
+1426,Marc@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,,,,,,,,
+1426,Marc@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
+1426,Marc@NPC_WATERATTACK,angry,184,2,500,500,5000,no,target,always,,,,,,,,
+1426,Marc@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,,,,,,,,
+1427,Nightmare@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1427,Nightmare@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1427,Nightmare@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1427,Nightmare@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1427,Nightmare@NPC_MENTALBREAKER,angry,159,1,500,800,5000,no,target,always,,,,,,,,
+1427,Nightmare@NPC_MENTALBREAKER,attack,159,1,500,800,5000,no,target,always,,,,,,,,
+1427,Nightmare@NPC_TELEKINESISATTACK,angry,191,5,500,0,5000,yes,target,always,,,,,,,,
+1427,Nightmare@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,,
+1428,Poison Spore@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,,
+1428,Poison Spore@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1428,Poison Spore@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1428,Poison Spore@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1429,Argiope@AS_VENOMDUST,angry,140,1,500,1500,5000,yes,target,always,,,,,,,,
+1429,Argiope@AS_VENOMDUST,attack,140,1,500,1500,5000,yes,target,always,,,,,,,,
+1429,Argiope@NPC_POISON,angry,176,3,500,800,5000,yes,target,always,,,,,,,,
+1429,Argiope@NPC_POISON,attack,176,3,500,800,5000,yes,target,always,,,,,,,,
+1429,Argiope@NPC_POISONATTACK,angry,188,2,500,500,5000,yes,target,always,,,,,,,,
+1429,Argiope@NPC_POISONATTACK,attack,188,2,500,500,5000,yes,target,always,,,,,,,,
+1430,Argos@NPC_POISON,angry,176,2,500,800,5000,yes,target,always,,,,,,,,
+1430,Argos@NPC_POISON,attack,176,2,500,800,5000,yes,target,always,,,,,,,,
+1430,Argos@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1430,Argos@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_DARKBREATH,angry,202,1,500,800,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_DARKBREATH,attack,202,1,500,800,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_DARKNESSATTACK,angry,190,2,500,500,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_HALLUCINATION,angry,207,1,500,500,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_HALLUCINATION,follow,207,1,500,500,5000,yes,target,always,,,,,,,,
+1431,Baphomet Jr.@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,,
+1432,Desert Wolf@NPC_FIREATTACK,angry,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1432,Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1432,Desert Wolf@TF_SPRINKLESAND,angry,149,1,500,0,5000,yes,target,always,,,,,,,,
+1432,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_BLINDATTACK,follow,177,3,500,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKTHUNDER,angry,341,3,500,1500,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKTHUNDER,follow,341,3,500,1500,5000,yes,target,always,,,,,,,,
+1433,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,,,,,,,,
1433,Deviruchi@NPC_ENERGYDRAIN,angry,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
-1433,Deviruchi@NPC_DARKTHUNDER,follow,341,3,500,1500,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_DARKTHUNDER,angry,341,3,500,1500,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
1433,Deviruchi@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
-1433,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,0,,,,,,,
-1433,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1434,Drainliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_BLINDATTACK,angry,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_BLINDATTACK,follow,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_ENERGYDRAIN,follow,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_ENERGYDRAIN,angry,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_PETRIFYATTACK,follow,180,3,500,500,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_PETRIFYATTACK,angry,180,3,500,500,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@WZ_HEAVENDRIVE,angry,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,,
-1435,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1435,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1436,Jakk@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1436,Jakk@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1436,Jakk@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,0,,,,,,,
-1436,Jakk@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,,
-1436,Jakk@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1436,Jakk@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1436,Jakk@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
-1436,Jakk@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-1437,Joker@MG_FIREBALL,follow,17,5,500,800,5000,yes,target,always,0,,,,,,,
-1437,Joker@MG_FROSTDIVER,follow,15,10,500,1000,5000,yes,target,always,0,,,,,,,
-1437,Joker@MG_SOULSTRIKE,follow,13,9,500,500,5000,yes,target,always,0,,,,,,,
-1437,Joker@NPC_ENERGYDRAIN,follow,200,1,500,800,5000,no,target,always,0,,,,,,,
-1437,Joker@NPC_WINDATTACK,follow,187,2,500,800,5000,no,target,always,0,,,,,,,
-1437,Joker@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1437,Joker@NPC_DARKTHUNDER,follow,341,5,500,1500,5000,yes,target,always,0,,,,,,,
-1437,Joker@WZ_QUAGMIRE,follow,92,5,500,700,5000,yes,target,always,0,,,,,,,
-1437,Joker@MG_FIREBALL,chase,17,5,500,800,5000,yes,target,always,0,,,,,,,
-1437,Joker@MG_FROSTDIVER,chase,15,10,500,1000,5000,yes,target,always,0,,,,,,,
-1437,Joker@MG_SOULSTRIKE,chase,13,9,500,500,5000,yes,target,always,0,,,,,,,
-1437,Joker@NPC_ATTRICHANGE,idle,161,1,500,2000,300000,no,self,always,0,,,,,,,
-1437,Joker@NPC_ENERGYDRAIN,chase,200,1,500,800,5000,no,target,always,0,,,,,,,
-1437,Joker@NPC_WINDATTACK,chase,187,2,500,800,5000,no,target,always,0,,,,,,,
-1437,Joker@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1437,Joker@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,0,,,,,,,
-1437,Joker@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,,
-1438,Khalitzburg@AS_GRIMTOOTH,follow,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1438,Khalitzburg@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1438,Khalitzburg@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,0,,,,,,,
+1433,Deviruchi@NPC_ENERGYDRAIN,follow,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
+1433,Deviruchi@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,,
+1434,Drainliar@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1434,Drainliar@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1434,Drainliar@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1434,Drainliar@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1434,Drainliar@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1434,Drainliar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_BLINDATTACK,angry,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_BLINDATTACK,attack,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_BLINDATTACK,follow,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_ENERGYDRAIN,angry,200,1,500,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_ENERGYDRAIN,follow,200,1,500,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@NPC_PETRIFYATTACK,angry,180,3,500,500,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_PETRIFYATTACK,follow,180,3,500,500,5000,no,target,always,,,,,,,,
+1435,Evil Druid@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,,,,,,,,
+1435,Evil Druid@WZ_HEAVENDRIVE,angry,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1435,Evil Druid@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1436,Jakk@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1436,Jakk@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1436,Jakk@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1436,Jakk@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1436,Jakk@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,,,,,,,,
+1436,Jakk@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,,
+1436,Jakk@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,,
+1436,Jakk@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+1437,Joker@MG_FIREBALL,follow,17,5,500,800,5000,yes,target,always,,,,,,,,
+1437,Joker@MG_FIREBALL,chase,17,5,500,800,5000,yes,target,always,,,,,,,,
+1437,Joker@MG_FROSTDIVER,follow,15,10,500,1000,5000,yes,target,always,,,,,,,,
+1437,Joker@MG_FROSTDIVER,chase,15,10,500,1000,5000,yes,target,always,,,,,,,,
+1437,Joker@MG_SOULSTRIKE,follow,13,9,500,500,5000,yes,target,always,,,,,,,,
+1437,Joker@MG_SOULSTRIKE,chase,13,9,500,500,5000,yes,target,always,,,,,,,,
+1437,Joker@NPC_ATTRICHANGE,idle,161,1,500,2000,300000,no,self,always,,,,,,,,
+1437,Joker@NPC_DARKTHUNDER,follow,341,5,500,1500,5000,yes,target,always,,,,,,,,
+1437,Joker@NPC_DARKTHUNDER,chase,341,5,500,1500,5000,yes,target,always,,,,,,,,
+1437,Joker@NPC_ENERGYDRAIN,follow,200,1,500,800,5000,no,target,always,,,,,,,,
+1437,Joker@NPC_ENERGYDRAIN,chase,200,1,500,800,5000,no,target,always,,,,,,,,
+1437,Joker@NPC_WINDATTACK,follow,187,2,500,800,5000,no,target,always,,,,,,,,
+1437,Joker@NPC_WINDATTACK,chase,187,2,500,800,5000,no,target,always,,,,,,,,
+1437,Joker@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1437,Joker@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1437,Joker@WZ_QUAGMIRE,follow,92,5,500,700,5000,yes,target,always,,,,,,,,
+1437,Joker@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,,
+1438,Khalitzburg@AS_GRIMTOOTH,follow,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1438,Khalitzburg@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1438,Khalitzburg@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,,,,,,,,
+1438,Khalitzburg@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1438,Khalitzburg@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,,,,,,,,
+1438,Khalitzburg@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
1438,Khalitzburg@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1438,Khalitzburg@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1438,Khalitzburg@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1438,Khalitzburg@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1438,Khalitzburg@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
1438,Khalitzburg@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1438,Khalitzburg@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1439,High Orc@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,0,,,,,,,
-1439,High Orc@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1439,High Orc@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1439,High Orc@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1439,High Orc@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,0,,,,,,,
-1440,Stem Worm@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1440,Stem Worm@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,0,,,,,,,
-1440,Stem Worm@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1440,Stem Worm@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
-1441,Penomena@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1441,Penomena@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1441,Penomena@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1441,Penomena@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1441,Penomena@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1441,Penomena@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-1442,Sasquatch@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,0,,,,,,,
-1442,Sasquatch@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,0,,,,,,,
+1438,Khalitzburg@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,,,,,,,,
+1438,Khalitzburg@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,,
+1439,High Orc@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,,,,,,,,
+1439,High Orc@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,,,,,,,,
+1439,High Orc@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,,,,,,,,
+1439,High Orc@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,,,,,,,,
+1439,High Orc@NPC_SMOKING,idle,195,1,500,0,36000000,yes,self,always,,,,,,,,
+1440,Stem Worm@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,,,,,,,,
+1440,Stem Worm@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,,,,,,,,
+1440,Stem Worm@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,,,,,,,,
+1440,Stem Worm@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
+1441,Penomena@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1441,Penomena@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1441,Penomena@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1441,Penomena@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1441,Penomena@NPC_POISONATTACK,angry,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1441,Penomena@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+1442,Sasquatch@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,,,,,,,,
+1442,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,,,,,,,,
+1442,Sasquatch@NPC_EMOTION,follow,197,1,2000,0,5000,yes,self,always,,,,,,,,
+1442,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,,,,,,,
1442,Sasquatch@SM_ENDURE,follow,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,,
-1442,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,,
-1442,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,,,,,,,
1442,Sasquatch@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,,
-1443,Cruiser@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1443,Cruiser@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1444,Chepet@AL_HEAL,angry,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1444,Chepet@AL_HEAL,follow,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1444,Chepet@AL_HEAL,angry,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1444,Chepet@AL_HEAL,follow,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1444,Chepet@MG_FIREWALL,follow,18,10,500,500,5000,yes,target,always,0,,,,,,,
-1444,Chepet@MG_FIREWALL,angry,18,10,500,500,5000,yes,target,always,0,,,,,,,
-1444,Chepet@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,0,,,,,,,
-1444,Chepet@NPC_GUIDEDATTACK,angry,172,5,500,1000,20000,no,target,always,0,,,,,,,
-1444,Chepet@PR_STRECOVERY,follow,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
+1443,Cruiser@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1443,Cruiser@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1444,Chepet@AL_HEAL,angry,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1444,Chepet@AL_HEAL,attack,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1444,Chepet@AL_HEAL,follow,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1444,Chepet@AL_HEAL,chase,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+1444,Chepet@AL_HEAL,angry,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1444,Chepet@AL_HEAL,attack,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1444,Chepet@AL_HEAL,follow,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1444,Chepet@AL_HEAL,chase,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1444,Chepet@MG_FIREWALL,angry,18,10,500,500,5000,yes,target,always,,,,,,,,
+1444,Chepet@MG_FIREWALL,attack,18,10,500,500,5000,yes,target,always,,,,,,,,
+1444,Chepet@MG_FIREWALL,follow,18,10,500,500,5000,yes,target,always,,,,,,,,
+1444,Chepet@MG_FIREWALL,chase,18,10,500,500,5000,yes,target,always,,,,,,,,
+1444,Chepet@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,,,,,,,,
+1444,Chepet@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,,
+1444,Chepet@NPC_GUIDEDATTACK,angry,172,5,500,1000,20000,no,target,always,,,,,,,,
+1444,Chepet@NPC_GUIDEDATTACK,attack,172,5,500,1000,20000,no,target,always,,,,,,,,
1444,Chepet@PR_STRECOVERY,angry,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
-1444,Chepet@AL_HEAL,attack,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1444,Chepet@AL_HEAL,chase,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-1444,Chepet@AL_HEAL,attack,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1444,Chepet@AL_HEAL,chase,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1444,Chepet@MG_FIREWALL,chase,18,10,500,500,5000,yes,target,always,0,,,,,,,
-1444,Chepet@MG_FIREWALL,attack,18,10,500,500,5000,yes,target,always,0,,,,,,,
-1444,Chepet@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,,
-1444,Chepet@NPC_GUIDEDATTACK,attack,172,5,500,1000,20000,no,target,always,0,,,,,,,
-1444,Chepet@PR_STRECOVERY,chase,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
1444,Chepet@PR_STRECOVERY,attack,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
-1445,Raggler@NPC_COMBOATTACK,angry,171,2,500,700,5000,no,target,always,0,,,,,,,
-1445,Raggler@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1445,Raggler@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1445,Raggler@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1446,Injustice@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,0,,,,,,,
-1446,Injustice@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1446,Injustice@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1446,Injustice@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1447,Gryphon@KN_PIERCE,angry,56,10,500,700,5000,no,target,always,0,,,,,,,
-1447,Gryphon@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1447,Gryphon@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1447,Gryphon@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,0,,,,,,,
-1447,Gryphon@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1447,Gryphon@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLINDATTACK,follow,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_PETRIFYATTACK,angry,180,1,500,500,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_PETRIFYATTACK,follow,180,1,500,500,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLINDATTACK,chase,177,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1448,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_PETRIFYATTACK,attack,180,1,500,500,5000,no,target,always,0,,,,,,,
-1448,Dark Frame@NPC_PETRIFYATTACK,chase,180,1,500,500,5000,no,target,always,0,,,,,,,
-1449,Mutant Dragon@MG_FIREBALL,follow,17,20,500,0,5000,yes,target,always,0,,,,,,,
-1449,Mutant Dragon@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,0,,,,,,,
-1449,Mutant Dragon@SM_MAGNUM,angry,7,20,500,500,5000,no,self,always,0,,,,,,,
-1449,Mutant Dragon@MG_FIREBALL,chase,17,20,500,0,5000,yes,target,always,0,,,,,,,
-1449,Mutant Dragon@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,,
-1449,Mutant Dragon@SM_MAGNUM,attack,7,20,500,500,5000,no,self,always,0,,,,,,,
-1450,Wind Ghost@MG_LIGHTNINGBOLT,follow,20,5,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@MG_LIGHTNINGBOLT,angry,20,5,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@NPC_MAGICALATTACK,angry,192,1,500,1000,5000,no,target,always,0,,,,,,,
-1450,Wind Ghost@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@WZ_JUPITEL,follow,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@WZ_JUPITEL,angry,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@HT_SHOCKWAVE,idle,118,5,500,0,300000,yes,around2,always,0,,,,,,,
-1450,Wind Ghost@MG_LIGHTNINGBOLT,chase,20,5,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@MG_LIGHTNINGBOLT,attack,20,5,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,,
-1450,Wind Ghost@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1450,Wind Ghost@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-1451,Merman@KN_PIERCE,angry,56,5,500,700,5000,no,target,always,0,,,,,,,
-1451,Merman@NPC_RANGEATTACK,follow,160,1,500,0,5000,yes,target,always,0,,,,,,,
-1451,Merman@NPC_WATERATTACK,angry,184,3,500,500,5000,no,target,always,0,,,,,,,
-1451,Merman@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,0,,,,,,,
-1451,Merman@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,0,,,,,,,
-1451,Merman@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,,
-1452,Orc Lady@AL_INCAGI,follow,29,1,500,700,5000,no,self,always,0,,,,,,,
-1452,Orc Lady@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,0,,,,,,,
-1452,Orc Lady@AL_INCAGI,chase,29,1,500,700,5000,no,self,always,0,,,,,,,
-1452,Orc Lady@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-1453,Raydric Archer@AC_CHARGEARROW,angry,148,1,500,0,5000,yes,target,always,0,,,,,,,
-1453,Raydric Archer@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,0,,,,,,,
-1453,Raydric Archer@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,0,,,,,,,
-1453,Raydric Archer@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1454,Tri Joint@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,0,,,,,,,
-1454,Tri Joint@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1455,Kobold Archer@AC_DOUBLE,angry,46,1,500,1000,5000,no,target,always,0,,,,,,,
-1455,Kobold Archer@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,0,,,,,,,
-1455,Kobold Archer@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,0,,,,,,,
-1455,Kobold Archer@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,,
-1456,Chimera@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,,
+1444,Chepet@PR_STRECOVERY,follow,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
+1444,Chepet@PR_STRECOVERY,chase,72,1,2000,700,5000,yes,friend,friendstatuson,anybad,,,,,,,
+1445,Raggler@NPC_COMBOATTACK,angry,171,2,500,700,5000,no,target,always,,,,,,,,
+1445,Raggler@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+1445,Raggler@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1445,Raggler@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1446,Injustice@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,,,,,,,,
+1446,Injustice@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1446,Injustice@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1446,Injustice@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1447,Gryphon@KN_PIERCE,angry,56,10,500,700,5000,no,target,always,,,,,,,,
+1447,Gryphon@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,,,,,,,,
+1447,Gryphon@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1447,Gryphon@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1447,Gryphon@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1447,Gryphon@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLINDATTACK,angry,177,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLINDATTACK,attack,177,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLINDATTACK,follow,177,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLINDATTACK,chase,177,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1448,Dark Frame@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_PETRIFYATTACK,angry,180,1,500,500,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_PETRIFYATTACK,attack,180,1,500,500,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_PETRIFYATTACK,follow,180,1,500,500,5000,no,target,always,,,,,,,,
+1448,Dark Frame@NPC_PETRIFYATTACK,chase,180,1,500,500,5000,no,target,always,,,,,,,,
+1449,Mutant Dragonoid@MG_FIREBALL,follow,17,10,500,0,5000,yes,target,always,,,,,,,,
+1449,Mutant Dragonoid@MG_FIREBALL,chase,17,10,500,0,5000,yes,target,always,,,,,,,,
+1449,Mutant Dragonoid@NPC_FIREATTACK,angry,186,5,500,500,5000,no,target,always,,,,,,,,
+1449,Mutant Dragonoid@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,,
+1449,Mutant Dragonoid@SM_MAGNUM,angry,7,10,500,500,5000,no,self,always,,,,,,,,
+1449,Mutant Dragonoid@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,,,,,,,,
+1450,Wind Ghost@HT_SHOCKWAVE,idle,118,5,500,0,300000,yes,around2,always,,,,,,,,
+1450,Wind Ghost@MG_LIGHTNINGBOLT,angry,20,5,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@MG_LIGHTNINGBOLT,attack,20,5,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@MG_LIGHTNINGBOLT,follow,20,5,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@MG_LIGHTNINGBOLT,chase,20,5,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@NPC_MAGICALATTACK,angry,192,1,500,1000,5000,no,target,always,,,,,,,,
+1450,Wind Ghost@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,,,,,,,,
+1450,Wind Ghost@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@WZ_JUPITEL,angry,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@WZ_JUPITEL,follow,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1450,Wind Ghost@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,,
+1451,Merman@KN_PIERCE,angry,56,5,500,700,5000,no,target,always,,,,,,,,
+1451,Merman@KN_PIERCE,attack,56,5,500,700,5000,no,target,always,,,,,,,,
+1451,Merman@NPC_RANGEATTACK,follow,160,1,500,0,5000,yes,target,always,,,,,,,,
+1451,Merman@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
+1451,Merman@NPC_WATERATTACK,angry,184,3,500,500,5000,no,target,always,,,,,,,,
+1451,Merman@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,,
+1452,Orc Lady@AL_INCAGI,follow,29,1,500,700,5000,no,self,always,,,,,,,,
+1452,Orc Lady@AL_INCAGI,chase,29,1,500,700,5000,no,self,always,,,,,,,,
+1452,Orc Lady@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,,,,,,,,
+1452,Orc Lady@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+1453,Raydric Archer@AC_CHARGEARROW,angry,148,1,500,0,5000,yes,target,always,,,,,,,,
+1453,Raydric Archer@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,,,,,,,,
+1453,Raydric Archer@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,,,,,,,,
+1453,Raydric Archer@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1454,Tri Joint@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,,,,,,,,
+1454,Tri Joint@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+1455,Kobold Archer@AC_DOUBLE,angry,46,1,500,1000,5000,no,target,always,,,,,,,,
+1455,Kobold Archer@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,,,,,,,,
+1455,Kobold Archer@NPC_FIREATTACK,angry,186,2,500,500,5000,no,target,always,,,,,,,,
+1455,Kobold Archer@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,,,,,,,,
+1456,Chimera@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,,
+1456,Chimera@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
1456,Chimera@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1456,Chimera@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1456,Chimera@WZ_HEAVENDRIVE,angry,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1456,Chimera@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
1456,Chimera@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1456,Chimera@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1456,Chimera@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,,
-1457,Mantis@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1457,Mantis@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,0,,,,,,,
-1457,Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1457,Mantis@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1458,Marduk@MG_FIREBOLT,follow,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@MG_FIREBOLT,angry,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@MG_FIREWALL,follow,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_BLINDATTACK,follow,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_FIREATTACK,angry,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_MAGICALATTACK,angry,192,1,500,1000,5000,no,target,always,0,,,,,,,
-1458,Marduk@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1458,Marduk@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,,
-1459,Marionette@MG_FIREWALL,follow,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1459,Marionette@NPC_TELEKINESISATTACK,angry,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1459,Marionette@HT_FREEZINGTRAP,idle,121,5,500,0,300000,yes,around2,always,0,,,,,,,
-1459,Marionette@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-1459,Marionette@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1460,Matyr@AS_SONICBLOW,angry,136,5,500,800,5000,no,target,always,0,,,,,,,
-1460,Matyr@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1460,Matyr@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
-1460,Matyr@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1461,Minorous@BS_HAMMERFALL,angry,110,3,500,1500,5000,no,target,always,0,,,,,,,
-1461,Minorous@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,,
-1461,Minorous@WZ_HEAVENDRIVE,angry,91,3,500,1200,5000,yes,target,always,0,,,,,,,
-1461,Minorous@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,0,,,,,,,
-1461,Minorous@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-1461,Minorous@WZ_HEAVENDRIVE,attack,91,3,500,1200,5000,yes,target,always,0,,,,,,,
-1462,Orc Skeleton@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1462,Orc Skeleton@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1463,Orc Zombie@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1463,Orc Zombie@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1464,Pasana@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,0,,,,,,,
-1464,Pasana@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1464,Pasana@SM_BASH,angry,5,5,500,0,5000,yes,target,always,0,,,,,,,
-1464,Pasana@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1464,Pasana@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1464,Pasana@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
-1465,Petite@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,0,,,,,,,
-1465,Petite@NPC_TELEKINESISATTACK,follow,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1465,Petite@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-1465,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1466,Petite@NPC_TELEKINESISATTACK,follow,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1466,Petite@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,0,,,,,,,
-1466,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,,
-1466,Petite@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
-1467,Raydric@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1467,Raydric@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1467,Raydric@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,0,,,,,,,
-1467,Raydric@SM_MAGNUM,angry,7,20,500,500,5000,no,self,always,0,,,,,,,
-1467,Raydric@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1467,Raydric@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1467,Raydric@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1467,Raydric@SM_MAGNUM,attack,7,20,500,500,5000,no,self,always,0,,,,,,,
-1468,Requim@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1468,Requim@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1468,Requim@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1468,Requim@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1469,Skeleton Worker@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1469,Skeleton Worker@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1470,Zerom@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,0,,,,,,,
-1470,Zerom@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
+1456,Chimera@WZ_HEAVENDRIVE,angry,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1456,Chimera@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1456,Chimera@WZ_HEAVENDRIVE,follow,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1456,Chimera@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,,,,,,,,
+1457,Mantis@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1457,Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1457,Mantis@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,,,,,,,,
+1457,Mantis@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+1458,Marduk@MG_FIREBOLT,angry,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1458,Marduk@MG_FIREBOLT,attack,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1458,Marduk@MG_FIREBOLT,follow,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1458,Marduk@MG_FIREBOLT,chase,19,3,500,1500,5000,yes,target,always,,,,,,,,
+1458,Marduk@MG_FIREWALL,follow,18,5,500,500,5000,yes,target,always,,,,,,,,
+1458,Marduk@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+1458,Marduk@NPC_BLINDATTACK,follow,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1458,Marduk@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,,
+1458,Marduk@NPC_FIREATTACK,angry,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1458,Marduk@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1458,Marduk@NPC_MAGICALATTACK,angry,192,1,500,1000,5000,no,target,always,,,,,,,,
+1458,Marduk@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,,,,,,,,
+1459,Marionette@HT_FREEZINGTRAP,idle,121,5,500,0,300000,yes,around2,always,,,,,,,,
+1459,Marionette@MG_FIREWALL,follow,18,5,500,500,5000,yes,target,always,,,,,,,,
+1459,Marionette@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+1459,Marionette@NPC_TELEKINESISATTACK,angry,191,5,500,0,5000,yes,target,always,,,,,,,,
+1459,Marionette@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,,
+1460,Matyr@AS_SONICBLOW,angry,136,5,500,800,5000,no,target,always,,,,,,,,
+1460,Matyr@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,,
+1460,Matyr@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1460,Matyr@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1461,Minorous@BS_HAMMERFALL,angry,110,3,500,1500,5000,no,target,always,,,,,,,,
+1461,Minorous@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+1461,Minorous@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,,
+1461,Minorous@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+1461,Minorous@WZ_HEAVENDRIVE,angry,91,3,500,1200,5000,yes,target,always,,,,,,,,
+1461,Minorous@WZ_HEAVENDRIVE,attack,91,3,500,1200,5000,yes,target,always,,,,,,,,
+1462,Orc Skeleton@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1462,Orc Skeleton@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1463,Orc Zombie@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1463,Orc Zombie@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1464,Pasana@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,,
+1464,Pasana@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1464,Pasana@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1464,Pasana@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1464,Pasana@SM_BASH,angry,5,5,500,0,5000,yes,target,always,,,,,,,,
+1464,Pasana@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
+1465,Petite@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,,,,,,,,
+1465,Petite@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+1465,Petite@NPC_TELEKINESISATTACK,follow,191,5,500,0,5000,yes,target,always,,,,,,,,
+1465,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,,
+1466,Petite@NPC_TELEKINESISATTACK,follow,191,5,500,0,5000,yes,target,always,,,,,,,,
+1466,Petite@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,,
+1466,Petite@NPC_WINDATTACK,angry,187,3,500,500,5000,no,target,always,,,,,,,,
+1466,Petite@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
+1467,Raydric@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,,,,,,,,
+1467,Raydric@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1467,Raydric@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,,,,,,,,
+1467,Raydric@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1467,Raydric@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,,,,,,,,
+1467,Raydric@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1467,Raydric@SM_MAGNUM,angry,7,10,500,500,5000,no,self,always,,,,,,,,
+1467,Raydric@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,,,,,,,,
+1468,Requiem@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1468,Requiem@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1468,Requiem@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,,,,,,,,
+1468,Requiem@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,,
+1469,Skeleton Worker@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1469,Skeleton Worker@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1470,Zerom@NPC_FIREATTACK,angry,186,3,500,500,5000,no,target,always,,,,,,,,
+1470,Zerom@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
1471,Nine Tail@NPC_ATTRICHANGE,angry,161,1,500,2000,5000,no,self,myhpltmaxrate,30,,,,,,,
-1471,Nine Tail@NPC_RANDOMATTACK,angry,183,3,500,500,5000,no,target,always,0,,,,,,,
1471,Nine Tail@NPC_ATTRICHANGE,attack,161,1,500,2000,5000,no,self,myhpltmaxrate,30,,,,,,,
-1471,Nine Tail@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,0,,,,,,,
-1472,Bon Gun@KN_SPEARSTAB,angry,58,5,500,800,5000,no,target,always,0,,,,,,,
-1472,Bon Gun@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1472,Bon Gun@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1472,Bon Gun@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,,
+1471,Nine Tail@NPC_RANDOMATTACK,angry,183,3,500,500,5000,no,target,always,,,,,,,,
+1471,Nine Tail@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,,,,,,,,
+1472,Bongun@KN_SPEARSTAB,angry,58,5,500,800,5000,yes,target,always,,,,,,,,
+1472,Bongun@KN_SPEARSTAB,attack,58,5,500,800,5000,yes,target,always,,,,,,,,
+1472,Bongun@NPC_STUNATTACK,angry,179,3,500,1500,5000,yes,target,always,,,,,,,,
+1472,Bongun@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,,
1473,Orc Archer@AC_SHOWER,angry,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,,
-1473,Orc Archer@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,0,,,,,,,
1473,Orc Archer@AC_SHOWER,attack,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,,
-1473,Orc Archer@HT_ANKLESNARE,idle,117,5,500,0,300000,yes,around2,always,0,,,,,,,
-1473,Orc Archer@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-1474,Mimic@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1474,Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1475,Wraith@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1475,Wraith@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,0,,,,,,,
-1475,Wraith@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,0,,,,,,,
-1475,Wraith@NPC_ENERGYDRAIN,angry,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1475,Wraith@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1475,Wraith@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1475,Wraith@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
-1475,Wraith@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,,
-1476,Alarm@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1476,Alarm@NPC_DARKBREATH,angry,202,2,500,800,5000,no,target,always,0,,,,,,,
-1476,Alarm@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,always,0,,,,,,,
-1476,Alarm@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1476,Alarm@NPC_DARKBREATH,attack,202,2,500,800,5000,no,target,always,0,,,,,,,
-1476,Alarm@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,0,,,,,,,
-1477,Arclouse@NPC_GROUNDATTACK,angry,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1477,Arclouse@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_PIERCINGATT,angry,158,3,500,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-1478,Rideword@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,,
-1479,Skeleton Prisoner@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,,
-1479,Skeleton Prisoner@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,always,0,,,,,,,
-1479,Skeleton Prisoner@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1479,Skeleton Prisoner@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,0,,,,,,,
-1480,Zombie Prisoner@NPC_POISON,angry,176,3,500,800,5000,no,target,always,0,,,,,,,
-1480,Zombie Prisoner@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1481,Punk@NPC_PETRIFYATTACK,angry,180,3,500,500,5000,no,target,always,0,,,,,,,
-1481,Punk@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1481,Punk@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,,
-1481,Punk@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1482,Zherlthsh@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,0,,,,,,,
-1482,Zherlthsh@NPC_GUIDEDATTACK,angry,172,3,500,1000,20000,no,target,always,0,,,,,,,
-1482,Zherlthsh@NPC_LICK,angry,206,3,500,0,5000,yes,target,always,0,,,,,,,
-1482,Zherlthsh@SM_PROVOKE,follow,6,10,500,600,5000,no,target,always,0,,,,,,,
-1482,Zherlthsh@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1482,Zherlthsh@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,,
-1482,Zherlthsh@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,0,,,,,,,
-1482,Zherlthsh@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,0,,,,,,,
-1483,Rybio@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,0,,,,,,,
-1483,Rybio@NPC_POISON,angry,176,2,500,800,5000,no,target,always,0,,,,,,,
-1483,Rybio@SM_PROVOKE,follow,6,5,500,600,5000,no,target,always,0,,,,,,,
-1483,Rybio@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1483,Rybio@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1483,Rybio@SM_PROVOKE,chase,6,5,500,600,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_POISON,angry,176,2,500,800,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_WINDATTACK,angry,187,2,500,500,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,,
-1484,Phendark@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1485,Mysteltainn@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1485,Mysteltainn@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1485,Mysteltainn@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,0,,,,,,,
-1485,Mysteltainn@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1485,Mysteltainn@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1485,Mysteltainn@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1485,Mysteltainn@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1485,Mysteltainn@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,0,,,,,,,
-1486,Tirfing@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,0,,,,,,,
-1486,Tirfing@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1486,Tirfing@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1486,Tirfing@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,0,,,,,,,
-1486,Tirfing@NPC_PIERCINGATT,angry,158,3,500,0,5000,yes,target,always,0,,,,,,,
-1486,Tirfing@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-1486,Tirfing@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1486,Tirfing@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1486,Tirfing@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1486,Tirfing@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,,
-1487,Executioner@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1487,Executioner@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1487,Executioner@KN_AUTOCOUNTER,angry,61,5,500,0,5000,yes,self,always,0,,,,,,,
-1487,Executioner@KN_SPEARBOOMERANG,follow,59,5,500,0,5000,yes,target,always,0,,,,,,,
-1487,Executioner@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1487,Executioner@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1487,Executioner@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1487,Executioner@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,0,,,,,,,
-1487,Executioner@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,,
-1487,Executioner@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1488,Anolian@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1488,Anolian@NPC_WATERATTACK,follow,184,1,500,0,5000,yes,target,always,0,,,,,,,
-1488,Anolian@SM_BASH,angry,5,5,500,800,5000,no,target,always,0,,,,,,,
-1488,Anolian@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-1488,Anolian@NPC_WATERATTACK,chase,184,1,500,0,5000,yes,target,always,0,,,,,,,
-1488,Anolian@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,,
-1489,Sting@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,0,,,,,,,
-1489,Sting@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,0,,,,,,,
-1489,Sting@TF_HIDING,angry,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
-1489,Sting@WZ_QUAGMIRE,follow,92,5,500,700,5000,no,target,always,0,,,,,,,
-1489,Sting@WZ_QUAGMIRE,angry,92,5,500,700,5000,no,target,always,0,,,,,,,
+1473,Orc Archer@HT_ANKLESNARE,idle,117,5,500,0,300000,yes,around2,always,,,,,,,,
+1473,Orc Archer@NPC_GROUNDATTACK,angry,185,2,500,500,5000,no,target,always,,,,,,,,
+1473,Orc Archer@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+1474,Mimic@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1474,Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1475,Wraith@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1475,Wraith@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1475,Wraith@NPC_CURSEATTACK,angry,181,3,500,800,5000,no,target,always,,,,,,,,
+1475,Wraith@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1475,Wraith@NPC_CURSEATTACK,follow,181,3,500,800,5000,no,target,always,,,,,,,,
+1475,Wraith@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,,
+1475,Wraith@NPC_ENERGYDRAIN,angry,200,1,500,0,5000,yes,target,always,,,,,,,,
+1475,Wraith@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_DARKBREATH,angry,202,2,500,800,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_DARKBREATH,attack,202,2,500,800,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,always,,,,,,,,
+1476,Alarm@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,,,,,,,,
+1477,Arclouze@NPC_GROUNDATTACK,angry,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1477,Arclouze@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_BLINDATTACK,angry,177,3,500,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_PIERCINGATT,angry,158,3,500,0,5000,yes,target,always,,,,,,,,
+1478,Rideword@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,,
+1479,Skeleton Prisoner@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,,
+1479,Skeleton Prisoner@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1479,Skeleton Prisoner@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,always,,,,,,,,
+1479,Skeleton Prisoner@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,,,,,,,,
+1480,Zombie Prisoner@NPC_POISON,angry,176,3,500,800,5000,no,target,always,,,,,,,,
+1480,Zombie Prisoner@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1481,Punk@NPC_PETRIFYATTACK,angry,180,3,500,500,5000,no,target,always,,,,,,,,
+1481,Punk@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,,
+1481,Punk@NPC_WINDATTACK,angry,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1481,Punk@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1482,Zealotus@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,,,,,,,,
+1482,Zealotus@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1482,Zealotus@NPC_GUIDEDATTACK,angry,172,3,500,1000,20000,no,target,always,,,,,,,,
+1482,Zealotus@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,,
+1482,Zealotus@NPC_LICK,angry,206,3,500,0,5000,yes,target,always,,,,,,,,
+1482,Zealotus@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,,,,,,,,
+1482,Zealotus@SM_PROVOKE,follow,6,10,500,600,5000,no,target,always,,,,,,,,
+1482,Zealotus@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,,,,,,,,
+1483,Rybio@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,,,,,,,,
+1483,Rybio@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1483,Rybio@NPC_POISON,angry,176,2,500,800,5000,no,target,always,,,,,,,,
+1483,Rybio@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,,
+1483,Rybio@SM_PROVOKE,follow,6,5,500,600,5000,no,target,always,,,,,,,,
+1483,Rybio@SM_PROVOKE,chase,6,5,500,600,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_POISON,angry,176,2,500,800,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_STUNATTACK,angry,179,3,500,1500,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_WINDATTACK,angry,187,2,500,500,5000,no,target,always,,,,,,,,
+1484,Phendark@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
+1485,Mysteltainn@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,,,,,,,,
+1485,Mysteltainn@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1485,Mysteltainn@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,,,,,,,,
+1485,Mysteltainn@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1485,Mysteltainn@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,,,,,,,,
+1485,Mysteltainn@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1485,Mysteltainn@NPC_GUIDEDATTACK,angry,172,1,500,1000,20000,no,target,always,,,,,,,,
+1485,Mysteltainn@NPC_GUIDEDATTACK,attack,172,1,500,1000,20000,no,target,always,,,,,,,,
+1486,Ogretooth@AS_SONICBLOW,angry,136,10,500,800,5000,no,target,always,,,,,,,,
+1486,Ogretooth@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+1486,Ogretooth@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,,,,,,,,
+1486,Ogretooth@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1486,Ogretooth@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,,,,,,,,
+1486,Ogretooth@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1486,Ogretooth@NPC_DARKNESSATTACK,angry,190,3,500,500,5000,no,target,always,,,,,,,,
+1486,Ogretooth@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1486,Ogretooth@NPC_PIERCINGATT,angry,158,3,500,0,5000,yes,target,always,,,,,,,,
+1486,Ogretooth@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,,
+1487,Executioner@BS_MAXIMIZE,angry,114,5,500,1000,5000,no,self,always,,,,,,,,
+1487,Executioner@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1487,Executioner@BS_MAXIMIZE,follow,114,5,500,1000,5000,no,self,always,,,,,,,,
+1487,Executioner@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1487,Executioner@KN_AUTOCOUNTER,angry,61,5,500,0,5000,yes,self,always,,,,,,,,
+1487,Executioner@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,,,,,,,,
+1487,Executioner@KN_SPEARBOOMERANG,follow,59,5,500,0,5000,yes,target,always,,,,,,,,
+1487,Executioner@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,,
+1487,Executioner@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1487,Executioner@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1488,Anolian@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1488,Anolian@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+1488,Anolian@NPC_WATERATTACK,follow,184,1,500,0,5000,yes,target,always,,,,,,,,
+1488,Anolian@NPC_WATERATTACK,chase,184,1,500,0,5000,yes,target,always,,,,,,,,
+1488,Anolian@SM_BASH,angry,5,5,500,800,5000,yes,target,always,,,,,,,,
+1488,Anolian@SM_BASH,attack,5,5,500,800,5000,yes,target,always,,,,,,,,
1489,Sting@AL_HEAL,idle,28,5,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,
-1489,Sting@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,,
-1489,Sting@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
+1489,Sting@KN_SPEARSTAB,angry,58,10,500,800,5000,no,target,always,,,,,,,,
+1489,Sting@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,,,,,,,,
+1489,Sting@NPC_GROUNDATTACK,angry,185,3,500,500,5000,no,target,always,,,,,,,,
+1489,Sting@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+1489,Sting@TF_HIDING,angry,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
1489,Sting@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
-1489,Sting@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,0,,,,,,,
-1489,Sting@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,0,,,,,,,
-1490,Wander Man@KN_AUTOCOUNTER,angry,61,5,500,0,5000,yes,self,always,0,,,,,,,
-1490,Wander Man@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1490,Wander Man@NPC_WINDATTACK,angry,187,2,500,500,5000,no,target,always,0,,,,,,,
-1490,Wander Man@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,0,,,,,,,
-1490,Wander Man@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1490,Wander Man@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1491,Dokebi@BS_ADRENALINE,follow,111,1,500,1500,5000,no,self,always,0,,,,,,,
-1491,Dokebi@BS_ADRENALINE,angry,111,1,500,1500,5000,no,self,always,0,,,,,,,
-1491,Dokebi@MC_MAMMONITE,angry,42,5,500,800,5000,no,target,always,0,,,,,,,
-1491,Dokebi@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1491,Dokebi@BS_ADRENALINE,chase,111,1,500,1500,5000,no,self,always,0,,,,,,,
-1491,Dokebi@BS_ADRENALINE,attack,111,1,500,1500,5000,no,self,always,0,,,,,,,
-1491,Dokebi@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,,
-1491,Dokebi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1492,Incantation Samurai@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1492,Incantation Samurai@AL_TELEPORT,idle,26,1,5000,1000,5000,yes,self,myhpltmaxrate,20,,,,,,,
-1492,Incantation Samurai@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,9,
-1492,Incantation Samurai@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1492,Incantation Samurai@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1492,Incantation Samurai@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-1492,Incantation Samurai@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-1492,Incantation Samurai@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1492,Incantation Samurai@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1492,Incantation Samurai@ASC_BREAKER,idle,379,10,10000,500,5000,no,target,longrangeattacked,,,,,,,,
-1492,Incantation Samurai@ASC_BREAKER,chase,379,10,5000,500,10000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@ASC_BREAKER,attack,379,10,2000,0,5000,no,target,always,0,,,,,,32,
-1492,Incantation Samurai@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_HELMBRAKE,chase,345,10,2000,0,5000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,2,1560,,,,,,
-1492,Incantation Samurai@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,2,1560,,,,,,
-1492,Incantation Samurai@RG_INTIMIDATE,attack,219,10,2000,0,60000,no,target,always,0,,,,,,,
-1492,Incantation Samurai@AL_TELEPORT,chase,26,1,10000,0,0,yes,self,skillused,18,,,,,,,
-1492,Incantation Samurai@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1493,Dryad@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1489,Sting@WZ_QUAGMIRE,angry,92,5,500,700,5000,no,target,always,,,,,,,,
+1489,Sting@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,,,,,,,,
+1489,Sting@WZ_QUAGMIRE,follow,92,5,500,700,5000,no,target,always,,,,,,,,
+1489,Sting@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,,,,,,,,
+1490,Wanderer@KN_AUTOCOUNTER,angry,61,5,500,0,5000,yes,self,always,,,,,,,,
+1490,Wanderer@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,,,,,,,,
+1490,Wanderer@NPC_SPLASHATTACK,angry,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+1490,Wanderer@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+1490,Wanderer@NPC_WINDATTACK,angry,187,2,500,500,5000,no,target,always,,,,,,,,
+1490,Wanderer@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
+1491,Dokebi@BS_ADRENALINE,angry,111,1,500,1500,5000,no,self,always,,,,,,,,
+1491,Dokebi@BS_ADRENALINE,attack,111,1,500,1500,5000,no,self,always,,,,,,,,
+1491,Dokebi@BS_ADRENALINE,follow,111,1,500,1500,5000,no,self,always,,,,,,,,
+1491,Dokebi@BS_ADRENALINE,chase,111,1,500,1500,5000,no,self,always,,,,,,,,
+1491,Dokebi@MC_MAMMONITE,angry,42,5,500,800,5000,no,target,always,,,,,,,,
+1491,Dokebi@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,,
+1491,Dokebi@NPC_DARKNESSATTACK,angry,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1491,Dokebi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1492,Samurai Specter@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1492,Samurai Specter@AL_TELEPORT,idle,26,1,5000,1000,5000,yes,self,myhpltmaxrate,20,,,,,,,
+1492,Samurai Specter@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1492,Samurai Specter@AL_TELEPORT,chase,26,1,10000,0,0,yes,self,skillused,18,,,,,,,
+1492,Samurai Specter@ASC_BREAKER,attack,379,10,2000,0,5000,no,target,always,,,,,,,32,
+1492,Samurai Specter@ASC_BREAKER,chase,379,10,5000,500,10000,no,target,always,,,,,,,,
+1492,Samurai Specter@ASC_BREAKER,idle,379,10,10000,500,5000,no,target,longrangeattacked,,,,,,,,
+1492,Samurai Specter@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,,
+1492,Samurai Specter@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1492,Samurai Specter@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,9,
+1492,Samurai Specter@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,,
+1492,Samurai Specter@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1492,Samurai Specter@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1492,Samurai Specter@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,no,target,always,,,,,,,,
+1492,Samurai Specter@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1492,Samurai Specter@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
+1492,Samurai Specter@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,,,,,,,36,
+1492,Samurai Specter@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,,,,,,,36,
+1492,Samurai Specter@NPC_HELMBRAKE,chase,345,10,2000,0,5000,no,target,always,,,,,,,,
+1492,Samurai Specter@NPC_POISON,attack,176,5,2000,0,5000,yes,target,always,,,,,,,,
+1492,Samurai Specter@NPC_POISONATTACK,attack,188,7,2000,0,5000,yes,target,always,,,,,,,,
+1492,Samurai Specter@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1492,Samurai Specter@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,no,target,always,,,,,,,,
+1492,Samurai Specter@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,2,1560,,,,,,
+1492,Samurai Specter@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,2,1560,,,,,,
+1492,Samurai Specter@RG_INTIMIDATE,attack,219,10,2000,0,60000,no,target,always,,,,,,,,
1493,Dryad@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1493,Dryad@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,0,,,,,,3,
-1493,Dryad@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-1493,Dryad@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1493,Dryad@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,,
-1494,Beetle King@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1494,Beetle King@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
+1493,Dryad@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1493,Dryad@NPC_GROUNDATTACK,attack,185,3,500,500,5000,yes,target,always,,,,,,,,
+1493,Dryad@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,,
+1493,Dryad@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,,
+1493,Dryad@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,,,,,,,3,
+1494,Beetle King@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1494,Beetle King@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
1494,Beetle King@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,19,
-1495,Stone Shooter@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
-1495,Stone Shooter@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,0,,,,,,6,
-//1495,Stone Shooter@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
-1497,Wooden Golem@AL_HEAL,idle,28,1,2000,0,5000,yes,self,always,0,,,,,,,
+1495,Stone Shooter@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,,,,,,,6,
+1495,Stone Shooter@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
+1497,Wooden Golem@AL_HEAL,idle,28,1,2000,0,5000,yes,self,always,,,,,,,,
1497,Wooden Golem@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,9,
-1497,Wooden Golem@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
-1498,Wootan Shooter@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,2,
-1498,Wootan Shooter@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,2,
+1497,Wooden Golem@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
+1498,Wootan Shooter@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,,,,,,,2,
+1498,Wootan Shooter@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,2,
1499,Wootan Fighter@KN_TWOHANDQUICKEN,attack,60,9,2000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1499,Wootan Fighter@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,0,,,,,,,
-//1498,Wootan Shooter@NPC_RUN,attack,354,1,500,0,5000,yes,self,attackpcge,1,,,,,,19,
-1500,Parasite@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1500,Parasite@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,9,
-1500,Parasite@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,9,
-1500,Parasite@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,9,
-1500,Parasite@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,0,,,,,,9,
-1500,Parasite@NPC_POISON,chase,176,3,500,800,5000,no,target,always,0,,,,,,9,
-1502,Bring it on!@AL_HEAL,idle,28,11,10000,0,2000,yes,self,always,0,,,,,,4,
-1502,Bring it on!@AL_HEAL,walk,28,11,10000,0,2000,yes,self,always,0,,,,,,4,
+1499,Wootan Fighter@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,,,,,,,,
+1500,Parasite@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,9,
+1500,Parasite@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,9,
+1500,Parasite@NPC_ENERGYDRAIN,attack,200,2,500,0,5000,yes,target,always,,,,,,,30,
+1500,Parasite@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,9,
+1500,Parasite@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,,,,,,,9,
+1500,Parasite@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,9,
+1500,Parasite@NPC_POISON,chase,176,3,500,800,5000,no,target,always,,,,,,,9,
+1502,Bring it on!@AL_HEAL,idle,28,10,10000,0,2000,yes,self,always,,,,,,,4,
+1502,Bring it on!@AL_HEAL,walk,28,10,10000,0,2000,yes,self,always,,,,,,,4,
1502,Bring it on!@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1502,Bring it on!@BS_HAMMERFALL,chase,110,11,10000,0,15000,yes,target,always,0,,,,,,,
-1502,Bring it on!@BS_HAMMERFALL,attack,110,11,10000,0,15000,yes,target,always,0,,,,,,,
-1502,Bring it on!@MG_FIREWALL,attack,18,10,10000,0,10000,yes,target,always,0,,,,,,,
-1502,Bring it on!@AS_SONICBLOW,attack,136,10,10000,0,20000,yes,target,always,0,,,,,,,
-1502,Bring it on!@SM_MAGNUM,attack,7,20,10000,0,30000,yes,self,always,0,,,,,,,
-1502,Bring it on!@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-1502,Bring it on!@WZ_VERMILION,chase,85,20,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@WZ_METEOR,chase,83,11,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@WZ_METEOR,attack,83,11,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@WZ_STORMGUST,chase,89,10,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@WZ_STORMGUST,attack,89,10,1000,1000,5000,no,target,always,0,,,,,,29,
-1502,Bring it on!@NPC_DARKBLESSING,attack,203,1,1000,2000,5000,no,target,always,0,,,,,,18,
-1502,Bring it on!@NPC_SUMMONSLAVE,idle,196,16,10000,2000,10000,no,self,slavele,3,1491,1431,1433,,,18,
+1502,Bring it on!@AS_SONICBLOW,attack,136,10,10000,0,20000,yes,target,always,,,,,,,,
+1502,Bring it on!@BS_HAMMERFALL,attack,110,10,10000,0,15000,yes,target,always,,,,,,,,
+1502,Bring it on!@BS_HAMMERFALL,chase,110,10,10000,0,15000,yes,target,always,,,,,,,,
+1502,Bring it on!@MG_FIREWALL,attack,18,10,10000,0,10000,yes,target,always,,,,,,,,
+1502,Bring it on!@NPC_DARKBLESSING,attack,203,1,1000,2000,5000,no,target,always,,,,,,,18,
1502,Bring it on!@NPC_SUMMONSLAVE,attack,196,16,10000,2000,10000,no,self,slavele,3,1491,1431,1433,,,18,
-1502,Bring it on!@RG_STRIPARMOR,attack,217,5,2000,0,3000,yes,target,always,0,,,,,,,
-1502,Bring it on!@RG_STRIPHELM,attack,218,5,2000,0,3000,yes,target,always,0,,,,,,,
-1502,Bring it on!@RG_STRIPSHIELD,attack,216,5,2000,0,3000,yes,target,always,0,,,,,,,
-1502,Bring it on!@RG_STRIPWEAPON,attack,215,5,2000,0,3000,yes,target,always,0,,,,,,,
-1503,Gibbet@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-1503,Gibbet@NPC_CURSEATTACK,attack,181,3,1000,800,5000,no,target,always,0,,,,,,6,
-1503,Gibbet@NPC_UNDEADATTACK,attack,347,2,500,500,5000,no,target,always,0,,,,,,6,
-1504,Dullahan@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
-1504,Dullahan@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
+1502,Bring it on!@NPC_SUMMONSLAVE,idle,196,16,10000,2000,10000,no,self,slavele,3,1491,1431,1433,,,18,
+1502,Bring it on!@RG_STRIPARMOR,attack,217,5,2000,0,3000,yes,target,always,,,,,,,,
+1502,Bring it on!@RG_STRIPHELM,attack,218,5,2000,0,3000,yes,target,always,,,,,,,,
+1502,Bring it on!@RG_STRIPSHIELD,attack,216,5,2000,0,3000,yes,target,always,,,,,,,,
+1502,Bring it on!@RG_STRIPWEAPON,attack,215,5,2000,0,3000,yes,target,always,,,,,,,,
+1502,Bring it on!@SM_MAGNUM,attack,7,10,10000,0,30000,yes,self,always,,,,,,,,
+1502,Bring it on!@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+1502,Bring it on!@WZ_METEOR,attack,83,10,1000,1000,5000,no,target,always,,,,,,,29,
+1502,Bring it on!@WZ_METEOR,chase,83,10,1000,1000,5000,no,target,always,,,,,,,29,
+1502,Bring it on!@WZ_STORMGUST,attack,89,10,1000,1000,5000,no,target,always,,,,,,,29,
+1502,Bring it on!@WZ_STORMGUST,chase,89,10,1000,1000,5000,no,target,always,,,,,,,29,
+1502,Bring it on!@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,29,
+1502,Bring it on!@WZ_VERMILION,chase,85,10,1000,1000,5000,no,target,always,,,,,,,29,
+1503,Gibbet@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+1503,Gibbet@NPC_CURSEATTACK,attack,181,3,1000,800,5000,no,target,always,,,,,,,6,
+1503,Gibbet@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,,,,,,,6,
+1504,Dullahan@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,yes,target,always,,,,,,,,
+1504,Dullahan@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,,,,,,,6,
1505,Loli Ruri@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1505,Loli Ruri@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1505,Loli Ruri@NPC_DARKSTRIKE,chase,340,5,500,700,5000,no,target,always,,,,,,,6,
1505,Loli Ruri@NPC_DARKSTRIKE,attack,340,5,500,700,5000,no,target,myhpltmaxrate,50,,,,,,6,
-1505,Loli Ruri@NPC_DARKSTRIKE,chase,340,5,500,700,5000,no,target,always,0,,,,,,6,
-1505,Loli Ruri@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-1505,Loli Ruri@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,,,,,,,
-1505,Loli Ruri@PR_LEXDIVINA,chase,76,10,500,1000,5000,yes,target,always,0,,,,,,2,
-1505,Loli Ruri@PR_LEXDIVINA,attack,76,10,500,1000,5000,yes,target,always,0,,,,,,2,
-1505,Loli Ruri@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1505,Loli Ruri@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-1506,Disguise@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,0,,,,,,9,
-1506,Disguise@NPC_METAMORPHOSIS,attack,193,2,500,0,60000,no,self,myhpltmaxrate,10,1509,1508,,,,19,
-1506,Disguise@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,0,,,,,,,
-1507,Bloody Murderer@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,29,
-1507,Bloody Murderer@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1508,Quve@MG_STONECURSE,attack,16,10,500,1500,5000,no,target,always,0,,,,,,6,
-1508,Quve@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,29,
+1505,Loli Ruri@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+1505,Loli Ruri@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,0,,,,,,
+1505,Loli Ruri@PR_LEXDIVINA,attack,76,10,500,1000,5000,yes,target,always,,,,,,,2,
+1505,Loli Ruri@PR_LEXDIVINA,chase,76,10,500,1000,5000,yes,target,always,,,,,,,2,
+1505,Loli Ruri@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1505,Loli Ruri@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+1506,Disguise@NPC_COMBOATTACK,attack,171,2,1000,700,5000,yes,target,always,,,,,,,9,
+1506,Disguise@NPC_METAMORPHOSIS,attack,193,1,500,0,60000,yes,self,myhpltmaxrate,10,1509,1508,,,,19,
+1506,Disguise@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,,
+1507,Bloody Murderer@AS_SONICBLOW,attack,136,7,500,800,5000,no,target,always,,,,,,,29,
+1507,Bloody Murderer@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,,,,,,,29,
+1508,Quve@MG_STONECURSE,attack,16,10,500,1500,5000,no,target,always,,,,,,,6,
+1508,Quve@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,29,
1508,Quve@NPC_METAMORPHOSIS,attack,193,1,1000,0,60000,no,self,myhpltmaxrate,30,1509,,,,,19,
-1509,Lude@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
1509,Lude@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1509,Lude@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1509,Lude@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
1509,Lude@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1509,Lude@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1509,Lude@NPC_METAMORPHOSIS,attack,193,1,1000,0,60000,no,self,myhpltmaxrate,30,1508,,,,,19,
-1509,Lude@PR_LEXAETERNA,chase,78,1,1000,1000,5000,yes,target,always,0,,,,,,6,
-1509,Lude@PR_LEXAETERNA,attack,78,1,1000,1000,5000,yes,target,always,0,,,,,,6,
-1510,Hylozoist@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,0,,,,,,29,
-1510,Hylozoist@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,9,
-1510,Hylozoist@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,9,
-1510,Hylozoist@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
-1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
-1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
-1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,always,0,,,,,,29,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,casttargeted,0,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,no,self,longrangeattacked,0,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,no,self,casttargeted,0,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,18,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,89,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,21,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,28,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,79,1474,1477,1438,,,9,
-1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,no,self,skillused,83,1474,1477,1438,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,18,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,89,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,21,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,28,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,79,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,skillused,83,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,longrangeattacked,,,,,,,9,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,casttargeted,,,,,,,9,
-1511,Amon Ra@WZ_METEOR,attack,83,11,5000,0,3000,yes,randomtarget,always,0,,,,,,9,
-1511,Amon Ra@WZ_FIREPILLAR,idle,80,11,10000,0,2000,yes,around2,always,0,,,,,,,
-1511,Amon Ra@WZ_FIREPILLAR,idle,80,11,10000,0,2000,yes,around2,always,0,,,,,,,
-1511,Amon Ra@WZ_FIREPILLAR,attack,80,11,5000,0,2000,yes,around2,always,0,,,,,,,
-1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,randomtarget,always,0,,,,,,,
-1511,Amon Ra@WZ_METEOR,idle,83,11,10000,0,5000,yes,randomtarget,always,0,,,,,,9,
+1509,Lude@PR_LEXAETERNA,attack,78,1,1000,1000,5000,yes,target,always,,,,,,,6,
+1509,Lude@PR_LEXAETERNA,chase,78,1,1000,1000,5000,yes,target,always,,,,,,,6,
+1510,Heirozoist@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,,,,,,,29,
+1510,Heirozoist@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
+1510,Heirozoist@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,9,
+1510,Heirozoist@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,9,
+1511,Amon Ra@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1511,Amon Ra@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1511,Amon Ra@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1511,Amon Ra@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1512,Hyegun@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-1512,Hyegun@AS_SONICBLOW,attack,136,5,500,1000,30000,no,target,always,0,,,,,,,
-1512,Hyegun@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
-1513,Civil Servant@NPC_DARKTHUNDER,chase,341,3,500,800,5000,yes,target,always,0,,,,,,,
-1513,Civil Servant@NPC_DARKTHUNDER,attack,341,3,500,800,5000,yes,target,always,0,,,,,,,
-1513,Civil Servant@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-1513,Civil Servant@AM_POTIONPITCHER,attack,231,4,10000,500,10000,yes,self,always,0,,,,,,2,
-1513,Civil Servant@AM_POTIONPITCHER,idle,231,4,10000,500,10000,yes,self,always,0,,,,,,2,
-1514,Dancing Dragon@NPC_AGIUP,loot,350,1,10000,0,10000,yes,self,always,0,,,,,,18,
-1514,Dancing Dragon@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,18,
-1514,Dancing Dragon@NPC_EMOTION,idle,197,1,10000,0,3000,yes,self,always,0,22,,,,,,
-1514,Dancing Dragon@NPC_EMOTION,attack,197,1,10000,0,3000,yes,self,always,0,19,,,,,,
-1514,Dancing Dragon@NPC_EMOTION,chase,197,1,10000,0,3000,yes,self,always,0,6,,,,,,
-1515,Garm Baby@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,0,,,,,,6,
-1515,Garm Baby@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,0,,,,,,6,
-1516,Increase Soil@NPC_METAMORPHOSIS,attack,193,2,50,5000,5000,no,self,always,0,1516,,,,,,
-1517,Li Me Mang Ryang@NPC_RANGEATTACK,chase,160,1,2000,0,5000,yes,target,always,0,,,,,,24,
-1517,Li Me Mang Ryang@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,0,,,,,,6,
-1518,Bacsojin@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,0,,,,,,29,
-1518,Bacsojin@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,0,,,,,,18,
-1518,Bacsojin@HP_ASSUMPTIO,idle,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1518,Bacsojin@HP_ASSUMPTIO,chase,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1518,Bacsojin@HP_ASSUMPTIO,attack,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1518,Bacsojin@NPC_WIDESLEEP,chase,668,5,10000,700,25000,yes,self,always,0,,,,,,,
-1518,Bacsojin@NPC_WIDESLEEP,attack,668,5,10000,700,25000,yes,self,myhpltmaxrate,80,,,,,,,
-1518,Bacsojin@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,0,,,,,,,
-1518,Bacsojin@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,0,,,,,,,
-1518,Bacsojin@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,0,,,,,,6,
-1518,Bacsojin@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-1518,Bacsojin@NPC_SUMMONSLAVE,idle,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-1518,Bacsojin@NPC_SUMMONSLAVE,attack,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-1518,Bacsojin@NPC_SUMMONSLAVE,chase,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-1519,Chung E@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,6,
-1519,Chung E@RG_INTIMIDATE,attack,219,1,1000,1000,0,yes,target,always,0,,,,,,6,
-1519,Chung E@PR_LEXDIVINA,chase,76,1,2000,0,5000,yes,target,always,0,,,,,,6,
-1519,Chung E@TF_POISON,attack,52,10,1000,0,5000,yes,target,always,0,,,,,,6,
-1520,Boiled Rice@CR_AUTOGUARD,idle,249,10,10000,0,300000,yes,self,always,0,,,,,,,
-1520,Boiled Rice@NPC_SUICIDE,attack,175,1,10000,4000,0,no,self,myhpltmaxrate,50,,,,,,,
-//1566,Wraith Dead@AL_DECAGI,chase,30,9,500,1000,5000,no,target,always,0,,,,,,29,
-//1566,Wraith Dead@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
-//1566,Wraith Dead@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,29,
-//1566,Wraith Dead@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,29,
-//1566,Wraith Dead@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,29,
-1555,Parasite@NPC_REVENGE,idle,333,1,10000,0,0,yes,target,masterattacked,,,,,,,,
-1575,Flora@NPC_REVENGE,idle,333,1,10000,0,0,yes,target,masterattacked,,,,,,,,
-1579,Hydra@NPC_REVENGE,idle,333,1,10000,0,0,yes,target,masterattacked,,,,,,,,
-//1580,Incubus@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-//1580,Incubus@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,,
-//1580,Incubus@NPC_DARKSTRIKE,attack,340,9,500,700,5000,no,target,always,0,,,,,,29,
-//1580,Incubus@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,0,,,,,,29,
-//1580,Incubus@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,14,
-//1580,Incubus@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,0,,,,,,14,
-1582,Deviling@NPC_SUMMONSLAVE,attack,196,7,10000,2000,10000,no,self,slavele,3,1595,1595,1595,1433,,6,
-1582,Deviling@NPC_SUMMONSLAVE,idle,196,7,10000,2000,10000,no,self,slavele,3,1595,1595,1595,1433,,6,
-1582,Deviling@NPC_DARKSTRIKE,chase,340,5,3000,700,0,no,target,always,0,,,,,,32,
-1582,Deviling@NPC_DARKSTRIKE,attack,340,5,3000,700,0,no,target,always,0,,,,,,32,
-1582,Deviling@NPC_DARKNESSATTACK,attack,190,2,2000,0,5000,no,target,always,0,,,,,,6,
-1582,Deviling@AL_DECAGI,chase,30,1,2000,1000,5000,no,target,always,0,,,,,,29,
+1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+1511,Amon Ra@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+1511,Amon Ra@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+1511,Amon Ra@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1511,Amon Ra@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,target,always,,,,,,,,
+1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,yes,self,casttargeted,,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,casttargeted,,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,yes,self,longrangeattacked,,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,longrangeattacked,,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,28,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,18,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,21,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,79,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,83,,,,,,9,
+1511,Amon Ra@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,89,,,,,,9,
+1511,Amon Ra@WZ_FIREPILLAR,attack,80,10,5000,0,2000,yes,around2,always,,,,,,,,
+1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,,,,,,,,
+1511,Amon Ra@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,,,,,,,,
+1511,Amon Ra@WZ_METEOR,attack,83,10,5000,0,3000,yes,target,always,,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,5000,yes,target,always,,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,casttargeted,,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,longrangeattacked,,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,28,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,18,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,21,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,79,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,83,,,,,,9,
+1511,Amon Ra@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,89,,,,,,9,
+1512,Yao Jun@AS_SONICBLOW,attack,136,5,500,1000,30000,no,target,always,,,,,,,,
+1512,Yao Jun@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
+1512,Yao Jun@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,,,,,,,,
+1513,Mao Guai@AM_POTIONPITCHER,attack,231,4,10000,500,10000,yes,self,always,,,,,,,2,
+1513,Mao Guai@AM_POTIONPITCHER,idle,231,4,10000,500,10000,yes,self,always,,,,,,,2,
+1513,Mao Guai@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+1513,Mao Guai@NPC_DARKTHUNDER,attack,341,3,500,800,5000,yes,target,always,,,,,,,,
+1513,Mao Guai@NPC_DARKTHUNDER,chase,341,3,500,800,5000,yes,target,always,,,,,,,,
+1514,Zhu Po Long@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,,,,,,,18,
+1514,Zhu Po Long@NPC_AGIUP,loot,350,1,10000,0,10000,yes,self,always,,,,,,,18,
+1514,Zhu Po Long@NPC_EMOTION,attack,197,1,10000,0,3000,yes,self,always,,19,,,,,,
+1514,Zhu Po Long@NPC_EMOTION,idle,197,1,10000,0,3000,yes,self,always,,22,,,,,,
+1514,Zhu Po Long@NPC_EMOTION,chase,197,1,10000,0,3000,yes,self,always,,6,,,,,,
+1515,Hatii Baby@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,,,,,,,6,
+1515,Hatii Baby@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,,,,,,,6,
+1516,Mi Gao@NPC_METAMORPHOSIS,attack,193,1,50,5000,5000,no,self,always,,1516,,,,,,
+1517,Jing Guai@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,,,,,,,6,
+1517,Jing Guai@NPC_RANGEATTACK,chase,160,1,2000,0,5000,yes,target,always,,,,,,,24,
+1518,White Lady@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,,,,,,,,
+1518,White Lady@HP_ASSUMPTIO,attack,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1518,White Lady@HP_ASSUMPTIO,idle,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1518,White Lady@HP_ASSUMPTIO,chase,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1518,White Lady@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29,
+1518,White Lady@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6,
+1518,White Lady@NPC_SUMMONSLAVE,attack,196,1,10000,0,5000,yes,self,slavele,1,0,,,,,,
+1518,White Lady@NPC_SUMMONSLAVE,idle,196,1,10000,0,5000,yes,self,slavele,1,0,,,,,,
+1518,White Lady@NPC_SUMMONSLAVE,chase,196,1,10000,0,5000,yes,self,slavele,1,0,,,,,,
+1518,White Lady@NPC_WIDESLEEP,chase,668,5,10000,700,25000,yes,self,always,,,,,,,,
+1518,White Lady@NPC_WIDESLEEP,attack,668,5,10000,700,25000,yes,self,myhpltmaxrate,80,,,,,,,
+1518,White Lady@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18,
+1518,White Lady@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,,
+1518,White Lady@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,,
+1519,Green Maiden@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,,,,,,,6,
+1519,Green Maiden@PR_LEXDIVINA,chase,76,1,2000,0,5000,yes,target,always,,,,,,,6,
+1519,Green Maiden@RG_INTIMIDATE,attack,219,1,1000,1000,0,yes,target,always,,,,,,,6,
+1519,Green Maiden@TF_POISON,attack,52,10,1000,0,5000,yes,target,always,,,,,,,6,
+1520,Dumpling@CR_AUTOGUARD,idle,249,10,10000,0,300000,yes,self,always,,,,,,,,
+1520,Dumpling@NPC_SUICIDE,attack,175,1,10000,4000,0,no,self,myhpltmaxrate,50,,,,,,,
+1555,Parasite@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
+1575,Flora@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
+1579,Hydra@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
+1582,Deviling@NPC_DARKSTRIKE,chase,340,5,3000,700,0,yes,target,always,,,,,,,32,
+1582,Deviling@NPC_DARKSTRIKE,attack,340,5,3000,700,0,yes,target,always,,,,,,,32,
+1582,Deviling@NPC_DARKBREATH,attack,202,3,1000,800,5000,yes,target,always,,,,,,,7,
+1582,Deviling@NPC_DARKNESSATTACK,attack,190,4,2000,0,5000,yes,target,always,,,,,,,6,
+1582,Deviling@AL_DECAGI,chase,30,3,2000,1000,5000,yes,target,always,,,,,,,29,
1583,Tao Gunka@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1583,Tao Gunka@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,9,
-1583,Tao Gunka@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1583,Tao Gunka@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1583,Tao Gunka@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
-1583,Tao Gunka@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,4,1793,,,,,,
-1583,Tao Gunka@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,4,1793,,,,,,
1583,Tao Gunka@AL_TELEPORT,chase,26,1,10000,0,0,yes,self,skillused,18,,,,,,,
-1583,Tao Gunka@NPC_MENTALBREAKER,attack,159,5,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_MENTALBREAKER,chase,159,5,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_COMBOATTACK,attack,171,10,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_COMBOATTACK,chase,171,10,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_STUNATTACK,chase,179,5,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_GUIDEDATTACK,attack,172,10,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_GUIDEDATTACK,chase,172,10,2000,0,5000,yes,target,always,0,,,,,,7,
-1583,Tao Gunka@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,7,
-1584,Tamruan@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-1584,Tamruan@NPC_SILENCEATTACK,attack,178,5,2000,700,5000,no,target,always,0,,,,,,9,
-1584,Tamruan@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-//1585,Mime Monkey@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,18,
-//1585,Mime Monkey@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,0,,,,,,18,
-//1585,Mime Monkey@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,18,
-//1585,Mime Monkey@SM_PROVOKE,attack,6,10,500,600,5000,no,target,always,0,,,,,,18,
+1583,Tao Gunka@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,9,
+1583,Tao Gunka@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,,
+1583,Tao Gunka@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1583,Tao Gunka@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1583,Tao Gunka@NPC_COMBOATTACK,attack,171,10,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_COMBOATTACK,chase,171,10,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_CRITICALWOUND,attack,673,2,10,0,5000,yes,target,always,,,,,,,,
+1583,Tao Gunka@NPC_GUIDEDATTACK,attack,172,10,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_GUIDEDATTACK,chase,172,10,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_MENTALBREAKER,attack,159,5,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_MENTALBREAKER,chase,159,5,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_STUNATTACK,chase,179,5,2000,0,5000,yes,target,always,,,,,,,7,
+1583,Tao Gunka@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,2,1793,,,,,,
+1583,Tao Gunka@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,2,1793,,,,,,
+1584,Tamruan@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1584,Tamruan@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+1584,Tamruan@NPC_SILENCEATTACK,attack,178,5,2000,700,5000,no,target,always,,,,,,,9,
1586,Leaf Cat@AL_HEAL,attack,28,1,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1586,Leaf Cat@AL_HEAL,attack,28,1,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1586,Leaf Cat@AL_HEAL,chase,28,1,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
+1586,Leaf Cat@AL_HEAL,attack,28,1,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1586,Leaf Cat@AL_HEAL,chase,28,1,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1587,Kraben@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,19,
-1587,Kraben@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,19,
-1587,Kraben@NPC_STUNATTACK,attack,179,1,500,0,5000,no,target,always,0,,,,,,6,
-//1588,Christmas Orc@NPC_EMOTION,idle,197,1,500,0,5000,yes,self,always,0,,,,,,,
-1589,Mandragora@NPC_REVENGE,idle,333,1,10000,0,0,yes,target,masterattacked,,,,,,,,
+1587,Kraben@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,19,
+1587,Kraben@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,19,
+1587,Kraben@NPC_STUNATTACK,attack,179,1,500,0,5000,no,target,always,,,,,,,6,
+1589,Mandragora@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
1590,Geographer@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,90,,,,,,,
-1590,Geographer@NPC_REVENGE,idle,333,1,10000,0,0,yes,target,masterattacked,,,,,,,,
-//1609,Dancing Dragon@NPC_AGIUP,loot,350,1,10000,0,10000,yes,self,always,0,,,,,,18,
-//1609,Dancing Dragon@NPC_AGIUP,idle,350,1,0,0,10000,yes,self,always,0,,,,,,18,
-//1609,Dancing Dragon@NPC_EMOTION,idle,197,1,10000,0,3000,yes,self,always,0,22,,,,,,
-//1609,Dancing Dragon@NPC_EMOTION,attack,197,1,10000,0,3000,yes,self,always,0,19,,,,,,
-//1609,Dancing Dragon@NPC_EMOTION,chase,197,1,10000,0,3000,yes,self,always,0,6,,,,,,
-1613,Metaling@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,0,,,,,,7,
-1613,Metaling@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1590,Geographer@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
+1613,Metaling@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
1613,Metaling@CR_AUTOGUARD,chase,249,5,500,0,300000,yes,self,longrangeattacked,,,,,,,,
-1613,Metaling@RG_STRIPWEAPON,attack,215,3,500,0,10000,no,target,always,0,,,,,,18,
-1613,Metaling@MC_MAMMONITE,attack,42,5,1000,800,5000,yes,target,always,0,,,,,,8,
-1614,Mineral@CR_REFLECTSHIELD,attack,252,2,1000,1000,5000,no,self,always,0,,,,,,,
-1614,Mineral@NPC_RANDOMATTACK,attack,183,2,500,500,5000,yes,target,always,0,,,,,,,
+1613,Metaling@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,,,,,,,7,
+1613,Metaling@MC_MAMMONITE,attack,42,5,1000,800,5000,yes,target,always,,,,,,,8,
+1613,Metaling@RG_STRIPWEAPON,attack,215,3,500,0,10000,no,target,always,,,,,,,18,
+1614,Mineral@CR_REFLECTSHIELD,attack,252,2,1000,1000,5000,no,self,always,,,,,,,,
1614,Mineral@NPC_BARRIER,attack,204,1,500,3000,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1614,Mineral@NPC_RANDOMATTACK,attack,183,2,500,500,5000,yes,target,always,,,,,,,,
1614,Mineral@NPC_SPLASHATTACK,attack,174,1,500,0,5000,no,target,attackpcge,2,,,,,,,
-1614,Mineral@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,0,,,,,,19,
-1614,Mineral@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-1615,Obsidian@CR_SHIELDCHARGE,attack,250,2,1000,1000,5000,no,target,always,0,,,,,,,
-1615,Obsidian@NPC_GROUNDATTACK,attack,185,2,500,500,5000,yes,target,always,0,,,,,,,
+1614,Mineral@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,,,,,,,19,
+1614,Mineral@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,,,,,,,19,
+1615,Obsidian@CR_SHIELDCHARGE,attack,250,2,1000,1000,5000,no,target,always,,,,,,,,
1615,Obsidian@NPC_BARRIER,attack,204,1,500,3000,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1615,Obsidian@NPC_GROUNDATTACK,attack,185,2,500,500,5000,yes,target,always,,,,,,,,
1615,Obsidian@SM_MAGNUM,attack,7,5,500,500,5000,no,self,attackpcge,2,,,,,,,
-1615,Obsidian@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,0,,,,,,19,
-1615,Obsidian@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-1616,Pitman@TF_SPRINKLESAND,attack,149,1,500,0,5000,no,target,always,0,,,,,,6,
-1616,Pitman@TF_SPRINKLESAND,chase,149,1,500,0,5000,no,target,always,0,,,,,,6,
-1616,Pitman@NPC_COMBOATTACK,attack,171,3,500,700,5000,no,target,always,0,,,,,,,
+1615,Obsidian@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,,,,,,,19,
+1615,Obsidian@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,,,,,,,19,
+1616,Pitman@HT_CLAYMORETRAP,idle,123,5,500,0,300000,yes,around2,always,,,,,,,18,
+1616,Pitman@NPC_COMBOATTACK,attack,171,3,500,700,5000,no,target,always,,,,,,,,
1616,Pitman@NPC_POWERUP,attack,349,2,3000,500,10000,no,self,myhpltmaxrate,40,,,,,,,
-1616,Pitman@HT_CLAYMORETRAP,idle,123,5,500,0,300000,yes,around2,always,0,,,,,,18,
-1617,Waste Stove@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,9,
-1617,Waste Stove@TF_THROWSTONE,chase,152,1,1000,0,30000,yes,target,always,0,,,,,,,
-1617,Waste Stove@NPC_RANDOMATTACK,attack,183,3,500,200,5000,no,target,always,0,,,,,,,
-1617,Waste Stove@NPC_SPLASHATTACK,attack,174,1,1000,500,5000,yes,target,attackpcge,2,,,,,,9,
-1618,Ungoliant@NPC_PETRIFYATTACK,attack,180,2,1000,500,5000,no,target,always,0,,,,,,3,
-1618,Ungoliant@NPC_DARKBREATH,attack,202,3,500,500,5000,no,target,always,0,,,,,,29,
-1618,Ungoliant@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,14,
-1618,Ungoliant@NPC_POISONATTACK,attack,188,3,1000,0,5000,yes,target,always,0,,,,,,,
-1618,Ungoliant@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1616,Pitman@TF_SPRINKLESAND,attack,149,1,500,0,5000,no,target,always,,,,,,,6,
+1616,Pitman@TF_SPRINKLESAND,chase,149,1,500,0,5000,no,target,always,,,,,,,6,
+1617,Old Stove@NPC_RANDOMATTACK,attack,183,3,500,200,5000,no,target,always,,,,,,,,
+1617,Old Stove@NPC_SPLASHATTACK,attack,174,1,1000,500,5000,yes,target,attackpcge,2,,,,,,9,
+1617,Old Stove@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,9,
+1617,Old Stove@TF_THROWSTONE,chase,152,1,1000,0,30000,yes,target,always,,,,,,,,
1618,Ungoliant@AL_TELEPORT,attack,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1618,Ungoliant@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1618,Ungoliant@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,14,
+1618,Ungoliant@NPC_DARKBREATH,attack,202,3,500,500,5000,no,target,always,,,,,,,29,
+1618,Ungoliant@NPC_PETRIFYATTACK,attack,180,2,1000,500,5000,no,target,always,,,,,,,3,
+1618,Ungoliant@NPC_POISONATTACK,attack,188,3,1000,0,5000,yes,target,always,,,,,,,,
1618,Ungoliant@NPC_SUMMONSLAVE,attack,196,3,10000,700,30000,no,self,slavele,0,1625,,,,,,
1618,Ungoliant@NPC_SUMMONSLAVE,idle,196,3,10000,700,30000,no,self,slavele,0,1625,,,,,,
1619,Porcellio@AL_PNEUMA,attack,25,1,500,0,5000,yes,self,longrangeattacked,,,,,,,18,
-1619,Porcellio@NPC_GROUNDATTACK,attack,185,2,1000,0,5000,yes,target,always,0,,,,,,,
+1619,Porcellio@NPC_GROUNDATTACK,attack,185,3,1000,0,5000,yes,target,always,,,,,,,,
1619,Porcellio@NPC_KEEPING,attack,201,1,2000,1000,5000,no,self,myhpltmaxrate,25,,,,,,9,
+1620,Noxious@NPC_MENTALBREAKER,attack,159,3,500,0,5000,yes,target,always,,,,,,,14,
+1620,Noxious@NPC_MENTALBREAKER,chase,159,2,500,0,5000,yes,target,casttargeted,,,,,,,14,
1620,Noxious@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
1620,Noxious@NPC_SELFDESTRUCTION,chase,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
1620,Noxious@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,skillused,173,,,,,,23,
-1620,Noxious@NPC_TELEKINESISATTACK,attack,191,3,1000,800,5000,no,target,always,0,,,,,,,
-1620,Noxious@NPC_MENTALBREAKER,attack,159,3,500,0,5000,yes,target,always,0,,,,,,14,
-1620,Noxious@NPC_MENTALBREAKER,chase,159,2,500,0,5000,yes,target,casttargeted,,,,,,,14,
+1620,Noxious@NPC_TELEKINESISATTACK,attack,191,3,1000,800,5000,no,target,always,,,,,,,,
+1621,Venomous@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,6,
+1621,Venomous@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,,,,,,,6,
+1621,Venomous@NPC_POISON,attack,176,5,1000,800,5000,no,target,always,,,,,,,,
1621,Venomous@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
1621,Venomous@NPC_SELFDESTRUCTION,chase,173,1,500,2000,5000,no,self,myhpltmaxrate,50,,,,,,23,
1621,Venomous@NPC_SELFDESTRUCTION,attack,173,1,500,2000,5000,no,self,skillused,173,,,,,,23,
-1621,Venomous@NPC_POISON,attack,176,3,1000,800,5000,no,target,always,0,,,,,,,
-1621,Venomous@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,6,
-1621,Venomous@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,6,
+1622,Teddy Bear@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1622,Teddy Bear@NPC_CURSEATTACK,attack,181,4,500,800,10000,no,target,always,,,,,,,2,
+1622,Teddy Bear@NPC_CURSEATTACK,chase,181,4,500,800,10000,no,target,always,,,,,,,2,
+1622,Teddy Bear@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,,23,,,,,,
+1622,Teddy Bear@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,7,,,,,,
1622,Teddy Bear@NPC_SELFDESTRUCTION,attack,173,1,1000,2000,10000,no,self,attackpcge,3,,,,,,23,
1622,Teddy Bear@NPC_SELFDESTRUCTION,chase,173,1,1000,2000,10000,no,self,attackpcge,3,,,,,,23,
-1622,Teddy Bear@NPC_CURSEATTACK,attack,181,4,500,800,10000,no,target,always,0,,,,,,2,
-1622,Teddy Bear@NPC_CURSEATTACK,chase,181,4,500,800,10000,no,target,always,0,,,,,,2,
-1622,Teddy Bear@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1622,Teddy Bear@SA_DISPELL,attack,289,1,50,500,10000,no,target,always,0,,,,,,6,
-1622,Teddy Bear@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,7,,,,,,
-1622,Teddy Bear@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,0,23,,,,,,
-1623,RSX 0806@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,0,,,,,,6,
-1623,RSX 0806@NPC_POWERUP,attack,349,5,2000,0,60000,no,self,always,0,,,,,,6,
-1623,RSX 0806@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1623,RSX 0806@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1623,RSX 0806@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,no,self,myhpltmaxrate,50,,,,,,32,
-1623,RSX 0806@NPC_EARTHQUAKE,attack,653,5,10000,2000,30000,no,self,myhpltmaxrate,50,,,,,,32,
-1623,RSX 0806@NPC_SUMMONSLAVE,attack,196,5,10000,2000,10000,no,self,slavele,3,1624,1624,1621,1620,,,
-1623,RSX 0806@NPC_SUMMONSLAVE,idle,196,5,10000,2000,10000,no,self,slavele,3,1624,1624,1621,1620,,,
-1623,RSX 0806@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1617,,,,,,
-1623,RSX 0806@NPC_WEAPONBRAKER,attack,343,10,1000,0,60000,no,target,always,0,,,,,,6,
-1623,RSX 0806@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1623,RSX 0806@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
-1623,RSX 0806@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
-1623,RSX 0806@NPC_CRITICALSLASH,attack,170,1,2000,500,5000,no,target,always,0,,,,,,,
-1623,RSX 0806@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,2,
-1623,RSX 0806@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
-1624,Waste Stove@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,9,
-1624,Waste Stove@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,0,,,,,,,
-1624,Waste Stove@NPC_RANDOMATTACK,attack,183,3,500,200,5000,no,target,always,0,,,,,,,
-1624,Waste Stove@NPC_SPLASHATTACK,attack,174,1,1000,500,5000,yes,target,attackpcge,2,,,,,,9,
+1622,Teddy Bear@SA_DISPELL,attack,289,1,50,500,10000,no,target,always,,,,,,,6,
+1623,RSX-0806@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+1623,RSX-0806@AL_TELEPORT,idle,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
+1623,RSX-0806@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
+1623,RSX-0806@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,2,
+1623,RSX-0806@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1623,RSX-0806@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,,,,,,,6,
+1623,RSX-0806@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1623,RSX-0806@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1623,RSX-0806@NPC_CRITICALSLASH,attack,170,1,2000,500,5000,no,target,always,,,,,,,,
+1623,RSX-0806@NPC_CRITICALWOUND,attack,673,4,10,0,5000,yes,target,always,,,,,,,,
+1623,RSX-0806@NPC_EARTHQUAKE,attack,653,5,10000,2000,30000,no,self,myhpltmaxrate,50,,,,,,32,
+1623,RSX-0806@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,no,self,myhpltmaxrate,50,,,,,,32,
+1623,RSX-0806@NPC_POWERUP,attack,349,5,2000,0,60000,no,self,always,,,,,,,6,
+1623,RSX-0806@NPC_SUMMONSLAVE,attack,196,5,10000,2000,10000,no,self,slavele,3,1624,1624,1621,1620,,,
+1623,RSX-0806@NPC_SUMMONSLAVE,idle,196,5,10000,2000,10000,no,self,slavele,3,1624,1624,1621,1620,,,
+1623,RSX-0806@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1617,,,,,,
+1623,RSX-0806@NPC_WEAPONBRAKER,attack,343,10,1000,0,60000,no,target,always,,,,,,,6,
+1624,Old Stove@NPC_RANDOMATTACK,attack,183,3,500,200,5000,no,target,always,,,,,,,,
+1624,Old Stove@NPC_SPLASHATTACK,attack,174,1,1000,500,5000,yes,target,attackpcge,2,,,,,,9,
+1624,Old Stove@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,9,
+1624,Old Stove@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,,,,,,,,
1625,Porcellio@AL_PNEUMA,attack,25,1,500,0,5000,yes,self,longrangeattacked,,,,,,,18,
-1625,Porcellio@NPC_GROUNDATTACK,attack,185,2,1000,0,5000,yes,target,always,0,,,,,,,
+1625,Porcellio@NPC_GROUNDATTACK,attack,185,2,1000,0,5000,yes,target,always,,,,,,,,
1625,Porcellio@NPC_KEEPING,attack,201,1,2000,1000,5000,no,self,myhpltmaxrate,25,,,,,,9,
-1626,Dark Priest@NPC_DARKCROSS,attack,338,10,5000,0,10000,yes,target,always,0,,,,,,9,
-1626,Dark Priest@NPC_CHANGEUNDEAD,attack,348,5,1000,1000,30000,no,target,always,0,,,,,,9,
-1626,Dark Priest@MO_BODYRELOCATION,chase,264,1,10000,0,5000,yes,target,skillused,18,,,,,,,
-1626,Dark Priest@NPC_DARKBREATH,chase,202,5,500,800,30000,no,target,always,0,,,,,,9,
-1626,Dark Priest@NPC_GRANDDARKNESS,attack,339,5,2000,2000,30000,no,self,attackpcge,2,,,,,,9,
-1626,Dark Priest@NPC_GRANDDARKNESS,attack,339,5,500,2000,30000,no,self,attackpcge,2,,,,,,9,
-1626,Dark Priest@NPC_DARKSTRIKE,chase,340,10,2000,700,5000,yes,target,always,0,,,,,,9,
-1626,Dark Priest@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
-1626,Dark Priest@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
-1626,Dark Priest@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,yes,target,always,0,,,,,,,
-1627,Anopheles@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,30,
-1627,Anopheles@NPC_BLOODDRAIN,chase,199,1,500,0,5000,yes,target,always,0,,,,,,30,
-1627,Anopheles@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1627,Anopheles@NPC_COMBOATTACK,chase,171,2,500,700,5000,no,target,always,0,,,,,,,
-1627,Anopheles@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1627,Anopheles@NPC_WINDATTACK,chase,187,2,500,500,5000,no,target,always,0,,,,,,,
-1628,Mole@TF_HIDING,idle,51,1,500,500,25000,no,self,always,0,,,,,,,
-1628,Mole@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,29,
-1628,Mole@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-1628,Mole@NPC_GROUNDATTACK,chase,185,3,500,500,5000,no,target,always,0,,,,,,,
-1628,Mole@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,7,
-1628,Mole@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1628,Mole@NPC_COMBOATTACK,chase,171,1,500,700,5000,no,target,always,0,,,,,,,
-1629,Hill Wind@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-1629,Hill Wind@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1629,Hill Wind@NPC_WINDATTACK,chase,187,3,500,500,5000,no,target,always,0,,,,,,,
-1629,Hill Wind@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
-1629,Hill Wind@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,,
-1630,Bacsojin@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,0,,,,,,29,
-1630,Bacsojin@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,0,,,,,,18,
-1630,Bacsojin@HP_ASSUMPTIO,idle,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1630,Bacsojin@HP_ASSUMPTIO,chase,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1630,Bacsojin@HP_ASSUMPTIO,attack,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-1630,Bacsojin@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,0,,,,,,,
-1630,Bacsojin@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,0,,,,,,,
-1630,Bacsojin@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,0,,,,,,6,
-1630,Bacsojin@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-1630,Bacsojin@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,,
-1630,Bacsojin@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,,
-1630,Bacsojin@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,,
-1631,Chung E@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,6,
-1631,Chung E@RG_INTIMIDATE,attack,219,1,1000,1000,0,yes,target,always,0,,,,,,6,
-1631,Chung E@PR_LEXDIVINA,chase,76,1,2000,0,5000,yes,target,always,0,,,,,,6,
-1631,Chung E@TF_POISON,attack,52,10,1000,0,5000,yes,target,always,0,,,,,,6,
-1632,Gremlin@RG_STRIPARMOR,attack,217,5,500,0,5000,yes,target,always,0,,,,,,,
-1632,Gremlin@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1633,Beholder@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,2,
-1633,Beholder@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,0,,,,,,2,
-1633,Beholder@MG_NAPALMBEAT,chase,11,5,2000,0,5000,yes,target,always,0,,,,,,,
-1633,Beholder@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,0,,,,,,18,
-1633,Beholder@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,0,,,,,,,
-1633,Beholder@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,0,,,,,,,
+1626,Hellion Revenant@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
+1626,Hellion Revenant@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
+1626,Hellion Revenant@MO_BODYRELOCATION,chase,264,1,10000,0,5000,yes,target,skillused,18,,,,,,,
+1626,Hellion Revenant@NPC_CHANGEUNDEAD,attack,348,5,1000,1000,30000,no,target,always,,,,,,,9,
+1626,Hellion Revenant@NPC_DARKBREATH,chase,202,5,500,800,30000,no,target,always,,,,,,,9,
+1626,Hellion Revenant@NPC_DARKCROSS,attack,338,10,5000,0,10000,yes,target,always,,,,,,,9,
+1626,Hellion Revenant@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,yes,target,always,,,,,,,,
+1626,Hellion Revenant@NPC_DARKSTRIKE,chase,340,10,2000,700,5000,yes,target,always,,,,,,,9,
+1626,Hellion Revenant@NPC_GRANDDARKNESS,attack,339,5,2000,2000,30000,no,self,attackpcge,2,,,,,,9,
+1626,Hellion Revenant@NPC_GRANDDARKNESS,attack,339,5,500,2000,30000,no,self,attackpcge,2,,,,,,9,
+1627,Anopheles@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,30,
+1627,Anopheles@NPC_BLOODDRAIN,chase,199,1,500,0,5000,yes,target,always,,,,,,,30,
+1627,Anopheles@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+1627,Anopheles@NPC_COMBOATTACK,chase,171,2,500,700,5000,no,target,always,,,,,,,,
+1627,Anopheles@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
+1627,Anopheles@NPC_WINDATTACK,chase,187,2,500,500,5000,no,target,always,,,,,,,,
+1628,Holden@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1628,Holden@NPC_COMBOATTACK,chase,171,1,500,700,5000,no,target,always,,,,,,,,
+1628,Holden@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+1628,Holden@NPC_GROUNDATTACK,chase,185,3,500,500,5000,no,target,always,,,,,,,,
+1628,Holden@TF_HIDING,idle,51,1,500,500,25000,no,self,always,,,,,,,,
+1628,Holden@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,29,
+1628,Holden@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,7,
+1629,Hill Wind@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,,
+1629,Hill Wind@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1629,Hill Wind@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,1,,,,,,
+1629,Hill Wind@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
+1629,Hill Wind@NPC_WINDATTACK,chase,187,3,500,500,5000,no,target,always,,,,,,,,
+1630,White Lady@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,,,,,,,,
+1630,White Lady@HP_ASSUMPTIO,attack,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1630,White Lady@HP_ASSUMPTIO,idle,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1630,White Lady@HP_ASSUMPTIO,chase,361,5,10000,500,100000,yes,self,always,,,,,,,,
+1630,White Lady@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+1630,White Lady@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29,
+1630,White Lady@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6,
+1630,White Lady@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,,
+1630,White Lady@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,,
+1630,White Lady@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,,
+1630,White Lady@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18,
+1630,White Lady@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,,
+1630,White Lady@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,,
+1631,Green Maiden@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,,,,,,,6,
+1631,Green Maiden@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,,
+1631,Green Maiden@PR_LEXDIVINA,chase,76,1,2000,0,5000,yes,target,always,,,,,,,6,
+1631,Green Maiden@RG_INTIMIDATE,attack,219,1,1000,1000,0,yes,target,always,,,,,,,6,
+1631,Green Maiden@TF_POISON,attack,52,10,1000,0,5000,yes,target,always,,,,,,,6,
+1632,Gremlin@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1632,Gremlin@RG_STRIPARMOR,attack,217,5,500,0,5000,yes,target,always,,,,,,,,
+1633,Beholder@MG_NAPALMBEAT,chase,11,5,2000,0,5000,yes,target,always,,,,,,,,
+1633,Beholder@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,,
+1633,Beholder@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,,,,,,,,
+1633,Beholder@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,2,
+1633,Beholder@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,,,,,,,2,
+1633,Beholder@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,,,,,,,18,
1634,Seyren Windsor@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1634,Seyren Windsor@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1634,Seyren Windsor@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
-1634,Seyren Windsor@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,always,0,,,,,,,
-1634,Seyren Windsor@LK_SPIRALPIERCE,attack,397,5,2000,0,5000,yes,target,always,0,,,,,,,
+1634,Seyren Windsor@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,target,always,,,,,,,6,
1634,Seyren Windsor@KN_SPEARBOOMERANG,chase,59,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-//1634,Seyren Windsor@KN_BOWLINGBASH,attack,62,5,1000,0,10000,yes,target,always,0,,,,,,,
-1634,Seyren Windsor@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
+1634,Seyren Windsor@LK_SPIRALPIERCE,attack,397,5,2000,0,5000,yes,target,always,,,,,,,,
+1634,Seyren Windsor@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,always,,,,,,,,
+1634,Seyren Windsor@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+1634,Seyren Windsor@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,,,,,,,9,
+1634,Seyren Windsor@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+1634,Seyren Windsor@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,,
+1634,Seyren Windsor@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
1634,Seyren Windsor@SM_MAGNUM,attack,7,9,1000,0,0,yes,self,attackpcge,2,,,,,,,
-1634,Seyren Windsor@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1634,Seyren Windsor@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,0,,,,,,29,
-1634,Seyren Windsor@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
-1634,Seyren Windsor@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-1634,Seyren Windsor@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-1634,Seyren Windsor@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,0,,,,,,9,
-1635,Eremes Guile@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1635,Eremes Guile@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1635,Eremes Guile@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
+1634,Seyren Windsor@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,,,,,,,29,
+1634,Seyren Windsor@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
1635,Eremes Guile@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1635,Eremes Guile@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1635,Eremes Guile@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+1635,Eremes Guile@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1635,Eremes Guile@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1635,Eremes Guile@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1635,Eremes Guile@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,target,always,,,,,,,6,
+1635,Eremes Guile@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,,,,,,,,
1635,Eremes Guile@AS_GRIMTOOTH,chase,137,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-1635,Eremes Guile@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,0,,,,,,,
-1635,Eremes Guile@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,0,,,,,,,
-1635,Eremes Guile@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,0,,,,,,,
-1635,Eremes Guile@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-1635,Eremes Guile@AS_SONICBLOW,attack,136,5,2000,0,5000,yes,target,always,0,,,,,,6,
-1635,Eremes Guile@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,0,,,,,,,
-1635,Eremes Guile@AS_VENOMDUST,idle,140,1,2000,0,50000,yes,randomtarget,always,0,,,,,,29,
-1635,Eremes Guile@AS_VENOMDUST,attack,140,1,2000,0,50000,yes,target,always,0,,,,,,29,
-1635,Eremes Guile@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1635,Eremes Guile@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1635,Eremes Guile@NPC_POISONATTACK,attack,188,5,1000,0,5000,yes,target,always,0,,,,,,,
+1635,Eremes Guile@AS_SONICBLOW,attack,136,5,2000,0,5000,yes,target,always,,,,,,,6,
+1635,Eremes Guile@AS_VENOMDUST,attack,140,1,2000,0,50000,yes,target,always,,,,,,,29,
+1635,Eremes Guile@AS_VENOMDUST,idle,140,1,2000,0,50000,yes,target,always,,,,,,,29,
+1635,Eremes Guile@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,,,,,,,,
+1635,Eremes Guile@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,,,,,,,,
+1635,Eremes Guile@NPC_AGIUP,attack,350,1,2000,0,100000,yes,self,always,,,,,,,,
+1635,Eremes Guile@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1635,Eremes Guile@NPC_POISONATTACK,attack,188,5,1000,0,5000,yes,target,always,,,,,,,,
+1635,Eremes Guile@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1635,Eremes Guile@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,,,,,,,,
1636,Howard Alt-Eisen@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1636,Howard Alt-Eisen@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1636,Howard Alt-Eisen@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,0,,,,,,,
-1636,Howard Alt-Eisen@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
-1636,Howard Alt-Eisen@MC_MAMMONITE,attack,42,9,2000,0,5000,yes,target,always,0,,,,,,23,
-1636,Howard Alt-Eisen@BS_HAMMERFALL,chase,110,5,2000,0,5000,yes,target,always,0,,,,,,,
-1636,Howard Alt-Eisen@BS_HAMMERFALL,attack,110,5,2000,0,5000,yes,target,always,0,,,,,,,
-1636,Howard Alt-Eisen@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
+1636,Howard Alt-Eisen@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,,,,,,,,
+1636,Howard Alt-Eisen@BS_HAMMERFALL,attack,110,5,2000,0,5000,yes,target,always,,,,,,,,
+1636,Howard Alt-Eisen@BS_HAMMERFALL,chase,110,5,2000,0,5000,yes,target,always,,,,,,,,
+1636,Howard Alt-Eisen@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,,,,,,,,
+1636,Howard Alt-Eisen@MC_MAMMONITE,attack,42,9,2000,0,5000,yes,target,always,,,,,,,23,
+1636,Howard Alt-Eisen@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,,,,,,,19,
+1636,Howard Alt-Eisen@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1636,Howard Alt-Eisen@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,,,,,,,,
+1636,Howard Alt-Eisen@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
1636,Howard Alt-Eisen@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
-1636,Howard Alt-Eisen@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1636,Howard Alt-Eisen@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1636,Howard Alt-Eisen@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,0,,,,,,,
-1636,Howard Alt-Eisen@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,0,,,,,,,
-1637,Margaretha Sorin@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
-1637,Margaretha Sorin@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,100,,,,,,,
-1637,Margaretha Sorin@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1637,Margaretha Sorin@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1637,Margaretha Sorin@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1637,Margaretha Sorin@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1637,Margaretha Sorin@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-1637,Margaretha Sorin@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1637,Margaretha Sorin@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1637,Margaretha Sorin@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1637,Margaretha Sorin@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-1637,Margaretha Sorin@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1637,Margaretha Sorin@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1637,Margaretha Sorin@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
-1637,Margaretha Sorin@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
-1637,Margaretha Sorin@PR_LEXDIVINA,idle,76,10,10000,0,5000,yes,target,casttargeted,,,,,,,18,
-1637,Margaretha Sorin@PR_LEXDIVINA,attack,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
-1637,Margaretha Sorin@PR_LEXDIVINA,chase,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
-1637,Margaretha Sorin@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1637,Margaretha Sorin@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1637,Margaretha Sorin@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1637,Margaretha Sorin@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1637,Margaretha Sorin@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,0,,,,,,,
+1636,Howard Alt-Eisen@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,,,,,,,,
+1637,Margaretha Sorin@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
1637,Margaretha Sorin@AL_HEAL,attack,28,9,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1637,Margaretha Sorin@AL_HEAL,attack,28,9,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
1637,Margaretha Sorin@AL_HEAL,idle,28,9,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1637,Margaretha Sorin@AL_HEAL,idle,28,9,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
1637,Margaretha Sorin@AL_HEAL,chase,28,9,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1637,Margaretha Sorin@AL_HEAL,attack,28,9,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+1637,Margaretha Sorin@AL_HEAL,idle,28,9,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
1637,Margaretha Sorin@AL_HEAL,chase,28,9,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+1637,Margaretha Sorin@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+1637,Margaretha Sorin@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+1637,Margaretha Sorin@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+1637,Margaretha Sorin@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
+1637,Margaretha Sorin@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+1637,Margaretha Sorin@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1637,Margaretha Sorin@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1637,Margaretha Sorin@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1637,Margaretha Sorin@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1637,Margaretha Sorin@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
+1637,Margaretha Sorin@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,100,,,,,,,
+1637,Margaretha Sorin@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1637,Margaretha Sorin@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1637,Margaretha Sorin@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+1637,Margaretha Sorin@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1637,Margaretha Sorin@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1637,Margaretha Sorin@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1637,Margaretha Sorin@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,,,,,,,18,
+1637,Margaretha Sorin@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,,,,,,,18,
+1637,Margaretha Sorin@PR_LEXDIVINA,attack,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
+1637,Margaretha Sorin@PR_LEXDIVINA,idle,76,10,10000,0,5000,yes,target,casttargeted,,,,,,,18,
+1637,Margaretha Sorin@PR_LEXDIVINA,chase,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
+1638,Cecil Damon@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,,,,,,,6,
+1638,Cecil Damon@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,,,,,,,6,
+1638,Cecil Damon@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,,,,,,,6,
1638,Cecil Damon@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1638,Cecil Damon@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1638,Cecil Damon@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1638,Cecil Damon@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1638,Cecil Damon@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,0,,,,,,6,
-1638,Cecil Damon@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1638,Cecil Damon@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1638,Cecil Damon@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-1638,Cecil Damon@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,always,0,,,,,,,
-1638,Cecil Damon@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,0,,,,,,,
-1638,Cecil Damon@HT_SKIDTRAP,idle,115,5,2000,0,60000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@HT_SKIDTRAP,attack,115,5,500,0,5000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@HT_FLASHER,idle,120,5,2000,0,60000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@HT_FLASHER,attack,120,5,500,0,5000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@HT_FREEZINGTRAP,idle,121,5,2000,0,60000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@HT_FREEZINGTRAP,attack,121,5,500,0,5000,yes,around2,always,0,,,,,,,
-1638,Cecil Damon@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1638,Cecil Damon@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1638,Cecil Damon@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,0,,,,,,,
-1639,Kathryne Keyron@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
+1638,Cecil Damon@HT_FLASHER,attack,120,5,500,0,5000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@HT_FLASHER,idle,120,5,2000,0,60000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@HT_FREEZINGTRAP,attack,121,5,500,0,5000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@HT_FREEZINGTRAP,idle,121,5,2000,0,60000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@HT_SKIDTRAP,attack,115,5,500,0,5000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@HT_SKIDTRAP,idle,115,5,2000,0,60000,yes,around2,always,,,,,,,,
+1638,Cecil Damon@NPC_AGIUP,attack,350,1,2000,0,25000,yes,self,always,,,,,,,,
+1638,Cecil Damon@NPC_AGIUP,idle,350,1,10000,0,35000,yes,self,always,,,,,,,,
+1638,Cecil Damon@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1638,Cecil Damon@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+1638,Cecil Damon@NPC_POWERUP,attack,349,1,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1638,Cecil Damon@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1638,Cecil Damon@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+1638,Cecil Damon@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,,,,,,,,
1639,Kathryne Keyron@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1639,Kathryne Keyron@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1639,Kathryne Keyron@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_JUPITEL,idle,84,28,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREBALL,idle,17,20,10000,500,10000,no,randomtarget,always,0,,,,,,,
+1639,Kathryne Keyron@HW_GANBANTEIN,attack,483,1,10000,500,7000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREBALL,attack,17,10,3000,500,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREBALL,chase,17,10,3000,500,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,skillused,18,,,,,,,
+1639,Kathryne Keyron@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,,,,,,,,
1639,Kathryne Keyron@MG_FROSTDIVER,chase,15,10,10000,1000,10000,no,target,skillused,18,,,,,,,
-1639,Kathryne Keyron@WZ_JUPITEL,chase,84,28,10000,1000,10000,no,target,skillused,18,,,,,,,
-1639,Kathryne Keyron@MG_FIREBALL,chase,17,20,10000,500,10000,no,target,skillused,18,,,,,,,
-1639,Kathryne Keyron@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@HW_GANBANTEIN,attack,483,1,10000,500,7000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_JUPITEL,attack,84,28,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_JUPITEL,chase,84,28,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_THUNDERSTORM,attack,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_THUNDERSTORM,chase,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREBALL,attack,17,20,3000,500,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREBALL,chase,17,20,3000,500,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_SIGHTRASHER,attack,81,20,3000,0,10000,yes,self,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_QUAGMIRE,chase,92,5,3000,0,10000,yes,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_SAFETYWALL,attack,12,10,3000,0,10000,yes,self,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-1639,Kathryne Keyron@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-1640,Lord Knight Seyren@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1640,Lord Knight Seyren@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1640,Lord Knight Seyren@WZ_STORMGUST,idle,89,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1640,Lord Knight Seyren@WZ_STORMGUST,walk,89,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-1640,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+1639,Kathryne Keyron@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_SAFETYWALL,attack,12,10,3000,0,10000,yes,self,always,,,,,,,,
+1639,Kathryne Keyron@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,,,,,,,,
+1639,Kathryne Keyron@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
+1639,Kathryne Keyron@MG_THUNDERSTORM,attack,21,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@MG_THUNDERSTORM,chase,21,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,,,,,,,,
+1639,Kathryne Keyron@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,,,,,,,,
+1639,Kathryne Keyron@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_JUPITEL,attack,84,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_JUPITEL,idle,84,10,10000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_JUPITEL,chase,84,10,3000,1000,10000,no,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_JUPITEL,chase,84,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1639,Kathryne Keyron@WZ_QUAGMIRE,chase,92,5,3000,0,10000,yes,target,always,,,,,,,,
+1639,Kathryne Keyron@WZ_SIGHTRASHER,attack,81,10,3000,0,10000,yes,self,always,,,,,,,,
+1640,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,target,always,,,,,,,6,
+1640,Lord Knight Seyren@KN_SPEARBOOMERANG,chase,59,5,10000,0,0,yes,target,skillused,18,,,,,,6,
+1640,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,yes,self,always,,,,,,,2,
1640,Lord Knight Seyren@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
1640,Lord Knight Seyren@LK_SPIRALPIERCE,attack,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
-1640,Lord Knight Seyren@KN_SPEARBOOMERANG,chase,59,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-1640,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,20,10000,0,300000,yes,self,always,0,,,,,,2,
-//1640,Lord Knight Seyren@KN_BOWLINGBASH,attack,62,10,1000,0,10000,yes,target,always,0,,,,,,,
-//1640,Lord Knight Seyren@KN_BOWLINGBASH,attack,62,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-1640,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1640,Lord Knight Seyren@SM_BASH,attack,5,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-1640,Lord Knight Seyren@SM_MAGNUM,attack,7,20,1000,0,0,yes,self,attackpcge,2,,,,,,,
-1640,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
+1640,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1640,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,,,,,,,,
+1640,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
1640,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1640,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,0,,,,,,29,
-1640,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
+1640,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1640,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1640,Lord Knight Seyren@SM_BASH,attack,5,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
1640,Lord Knight Seyren@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
-1640,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1640,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1640,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1641,Assassin Cross Eremes@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1641,Assassin Cross Eremes@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-1641,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+1640,Lord Knight Seyren@SM_MAGNUM,attack,7,10,1000,0,0,yes,self,attackpcge,2,,,,,,,
+1640,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,,,,,,,29,
+1640,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
+1641,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,target,always,,,,,,,6,
+1641,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,,,,,,,,
1641,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-1641,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1641,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,6,
+1641,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,6,
1641,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,3000,0,0,yes,target,myhpltmaxrate,30,,,,,,6,
-1641,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,randomtarget,always,0,,,,,,29,
-1641,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,0,,,,,,29,
-1641,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1641,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,0,,,,,,,
-1642,Whitesmith Howard@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1642,Whitesmith Howard@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1642,Whitesmith Howard@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1642,Whitesmith Howard@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-1642,Whitesmith Howard@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,0,,,,,,,
-1642,Whitesmith Howard@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
-1642,Whitesmith Howard@MC_MAMMONITE,attack,42,20,2000,0,5000,yes,target,always,0,,,,,,23,
-1642,Whitesmith Howard@MC_MAMMONITE,attack,42,20,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
-1642,Whitesmith Howard@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1642,Whitesmith Howard@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1642,Whitesmith Howard@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1642,Whitesmith Howard@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1642,Whitesmith Howard@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
-1642,Whitesmith Howard@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1642,Whitesmith Howard@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1642,Whitesmith Howard@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1642,Whitesmith Howard@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1642,Whitesmith Howard@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
-1643,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
-1643,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1643,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1643,High Priest Margaretha@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1643,High Priest Margaretha@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1643,High Priest Margaretha@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+1641,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1641,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1641,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,,,,,,,,
+1641,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1641,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,,,,,,,,
+1641,Assassin Cross Eremes@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+1641,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1641,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,,,,,,,,
+1642,MasterSmith Howard@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,,,,,,,,
+1642,MasterSmith Howard@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1642,MasterSmith Howard@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1642,MasterSmith Howard@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,,,,,,,,
+1642,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,5000,yes,target,always,,,,,,,23,
+1642,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
+1642,MasterSmith Howard@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,,,,,,,19,
+1642,MasterSmith Howard@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1642,MasterSmith Howard@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,,,,,,,19,
+1642,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1642,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1642,MasterSmith Howard@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+1642,MasterSmith Howard@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,,,,,,,19,
+1642,MasterSmith Howard@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
+1642,MasterSmith Howard@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,,,,,,,,
+1643,High Priest Margaretha@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1643,High Priest Margaretha@AL_HEAL,attack,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_HEAL,idle,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_HEAL,chase,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_HEAL,attack,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_HEAL,idle,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_HEAL,chase,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1643,High Priest Margaretha@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+1643,High Priest Margaretha@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
1643,High Priest Margaretha@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-1643,High Priest Margaretha@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1643,High Priest Margaretha@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1643,High Priest Margaretha@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
1643,High Priest Margaretha@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
1643,High Priest Margaretha@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1643,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
-1643,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
+1643,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1643,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1643,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
+1643,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
+1643,High Priest Margaretha@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1643,High Priest Margaretha@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1643,High Priest Margaretha@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+1643,High Priest Margaretha@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+1643,High Priest Margaretha@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1643,High Priest Margaretha@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1643,High Priest Margaretha@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1643,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,,,,,,,18,
+1643,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,,,,,,,18,
1643,High Priest Margaretha@PR_LEXDIVINA,idle,76,10,10000,0,5000,yes,target,casttargeted,,,,,,,18,
1643,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
1643,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
-1643,High Priest Margaretha@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1643,High Priest Margaretha@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1643,High Priest Margaretha@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,0,,,,,,,
-1643,High Priest Margaretha@AL_HEAL,attack,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1643,High Priest Margaretha@AL_HEAL,attack,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-1643,High Priest Margaretha@AL_HEAL,idle,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1643,High Priest Margaretha@AL_HEAL,idle,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-1643,High Priest Margaretha@AL_HEAL,chase,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1643,High Priest Margaretha@AL_HEAL,chase,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-1644,Sniper Cecil@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1644,Sniper Cecil@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1644,Sniper Cecil@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1644,Sniper Cecil@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-1644,Sniper Cecil@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1644,Sniper Cecil@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1644,Sniper Cecil@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,0,,,,,,6,
-1644,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1644,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1644,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
+1644,Sniper Cecil@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,,,,,,,6,
+1644,Sniper Cecil@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,,,,,,,6,
+1644,Sniper Cecil@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,,,,,,,6,
+1644,Sniper Cecil@HT_ANKLESNARE,idle,117,5,2000,0,60000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@HT_ANKLESNARE,attack,117,5,500,0,5000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@HT_BLASTMINE,idle,122,5,2000,0,60000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@HT_BLASTMINE,attack,122,5,500,0,5000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@HT_LANDMINE,idle,116,5,2000,0,60000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@HT_LANDMINE,attack,116,5,500,0,5000,yes,around3,always,,,,,,,5,
+1644,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
1644,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1644,Sniper Cecil@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,0,,,,,,,
-1644,Sniper Cecil@HT_LANDMINE,idle,116,5,2000,0,60000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@HT_LANDMINE,attack,116,5,500,0,5000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@HT_ANKLESNARE,idle,117,5,2000,0,60000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@HT_ANKLESNARE,attack,117,5,500,0,5000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@HT_BLASTMINE,idle,122,5,2000,0,60000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@HT_BLASTMINE,attack,122,5,500,0,5000,yes,around3,always,0,,,,,,5,
-1644,Sniper Cecil@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1644,Sniper Cecil@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1644,Sniper Cecil@NPC_WINDATTACK,attack,187,10,1000,0,5000,yes,target,always,0,,,,,,,
+1644,Sniper Cecil@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1644,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1644,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1644,Sniper Cecil@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+1644,Sniper Cecil@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1644,Sniper Cecil@NPC_WINDATTACK,attack,187,10,1000,0,5000,yes,target,always,,,,,,,,
+1644,Sniper Cecil@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@HW_GANBANTEIN,attack,483,1,10000,500,7000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,,,,,,,,
+1645,High Wizard Kathryne@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
1645,High Wizard Kathryne@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-//1645,High Wizard Kathryne@RG_INTIMIDATE,attack,219,10,100,0,5000,yes,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-//1645,High Wizard Kathryne@NPC_SUMMONSLAVE,attack,196,1,10000,700,30000,no,self,slavele,2,,,,,,,
-//1645,High Wizard Kathryne@NPC_SUMMONSLAVE,idle,196,1,10000,700,30000,no,self,slavele,2,,,,,,,
-1645,High Wizard Kathryne@WZ_STORMGUST,idle,89,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_VERMILION,idle,85,20,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,idle,83,11,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1645,High Wizard Kathryne@HW_GANBANTEIN,attack,483,5,10000,500,7000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,0,,,,,,,
+1645,High Wizard Kathryne@WZ_FIREPILLAR,idle,80,10,5000,200,2000,yes,around2,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_FIREPILLAR,attack,80,10,2000,200,0,yes,around2,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_HEAVENDRIVE,attack,91,5,2000,0,20000,yes,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_METEOR,idle,83,10,10000,1000,10000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_METEOR,chase,83,10,10000,1000,20000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_METEOR,attack,83,10,10000,1000,20000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_METEOR,chase,83,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1645,High Wizard Kathryne@WZ_STORMGUST,idle,89,10,10000,1000,10000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,,,,,,,,
1645,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,10000,no,target,skillused,18,,,,,,,
-1645,High Wizard Kathryne@WZ_VERMILION,chase,85,20,10000,1000,10000,no,target,skillused,18,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,chase,83,11,10000,1000,10000,no,target,skillused,18,,,,,,,
-1645,High Wizard Kathryne@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,0,,,,,,,
-1645,High Wizard Kathryne@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-1645,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_VERMILION,chase,85,20,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_VERMILION,attack,85,20,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_FIREPILLAR,idle,80,11,5000,200,2000,yes,around2,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_FIREPILLAR,attack,80,11,2000,200,0,yes,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,chase,83,11,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_METEOR,attack,83,11,10000,1000,20000,no,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_HEAVENDRIVE,attack,91,5,2000,0,20000,yes,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_WATERBALL,chase,86,5,5000,0,3000,yes,target,always,0,,,,,,,
-1645,High Wizard Kathryne@WZ_WATERBALL,attack,86,5,5000,0,3000,yes,target,always,0,,,,,,,
+1645,High Wizard Kathryne@WZ_VERMILION,idle,85,10,10000,1000,10000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_VERMILION,chase,85,10,10000,1000,20000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_VERMILION,attack,85,10,10000,1000,20000,no,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_VERMILION,chase,85,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1645,High Wizard Kathryne@WZ_WATERBALL,chase,86,5,5000,0,3000,yes,target,always,,,,,,,,
+1645,High Wizard Kathryne@WZ_WATERBALL,attack,86,5,5000,0,3000,yes,target,always,,,,,,,,
1646,Lord Knight Seyren@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1646,Lord Knight Seyren@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1646,Lord Knight Seyren@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1646,Lord Knight Seyren@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1646,Lord Knight Seyren@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,0,
-1646,Lord Knight Seyren@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,0,
-1646,Lord Knight Seyren@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1641,1642,1643,1644,1645,0,
-1646,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+1646,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,target,always,,,,,,,6,
1646,Lord Knight Seyren@KN_SPEARBOOMERANG,chase,59,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-1646,Lord Knight Seyren@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
+1646,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,yes,self,always,,,,,,,2,
1646,Lord Knight Seyren@LK_SPIRALPIERCE,attack,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
-1646,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,20,10000,0,300000,yes,self,always,0,,,,,,2,
-//1646,Lord Knight Seyren@KN_BOWLINGBASH,attack,62,10,1000,0,10000,yes,target,always,0,,,,,,,
-//1646,Lord Knight Seyren@KN_BOWLINGBASH,attack,62,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-1646,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1646,Lord Knight Seyren@SM_BASH,attack,5,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-1646,Lord Knight Seyren@SM_MAGNUM,attack,7,20,1000,0,0,yes,self,attackpcge,2,,,,,,,
-1646,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1646,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1646,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,0,,,,,,29,
-1646,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
-1646,Lord Knight Seyren@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
-1646,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1646,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1646,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,0,,,,,,,
+1646,Lord Knight Seyren@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
+1646,Lord Knight Seyren@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1646,Lord Knight Seyren@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
1646,Lord Knight Seyren@NPC_CHANGEFIRE,attack,164,1,10000,500,60000000,no,self,myhpltmaxrate,70,,,,,,9,
1646,Lord Knight Seyren@NPC_CHANGEHOLY,attack,167,1,10000,500,60000000,no,self,myhpltmaxrate,40,,,,,,9,
1646,Lord Knight Seyren@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,60000000,no,self,myhpltmaxrate,10,,,,,,9,
+1646,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1646,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,,,,,,,,
+1646,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1646,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1646,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1646,Lord Knight Seyren@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1646,Lord Knight Seyren@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,,
+1646,Lord Knight Seyren@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,,
+1646,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1646,Lord Knight Seyren@SM_BASH,attack,5,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
+1646,Lord Knight Seyren@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
+1646,Lord Knight Seyren@SM_MAGNUM,attack,7,10,1000,0,0,yes,self,attackpcge,2,,,,,,,
+1646,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,,,,,,,29,
+1646,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
1647,Assassin Cross Eremes@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1647,Assassin Cross Eremes@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1647,Assassin Cross Eremes@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,0,
-1647,Assassin Cross Eremes@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,0,
-1647,Assassin Cross Eremes@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1642,1643,1644,1645,0,
-1647,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+1647,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,target,always,,,,,,,6,
+1647,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,,,,,,,,
1647,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-1647,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1647,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,6,
+1647,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,6,
1647,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,3000,0,0,yes,target,myhpltmaxrate,30,,,,,,6,
-1647,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,randomtarget,always,0,,,,,,29,
-1647,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,0,,,,,,29,
-1647,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,0,,,,,,,
-1647,Assassin Cross Eremes@NPC_CHANGEWIND,attack,165,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1647,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1647,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1647,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,,,,,,,,
+1647,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1647,Assassin Cross Eremes@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
1647,Assassin Cross Eremes@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
1647,Assassin Cross Eremes@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
-1648,Whitesmith Howard@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1648,Whitesmith Howard@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1648,Whitesmith Howard@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,0,
-1648,Whitesmith Howard@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,0,
-1648,Whitesmith Howard@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1641,1643,1644,1645,0,
-1648,Whitesmith Howard@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,0,,,,,,,
-1648,Whitesmith Howard@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
-1648,Whitesmith Howard@MC_MAMMONITE,attack,42,20,2000,0,5000,yes,target,always,0,,,,,,23,
-1648,Whitesmith Howard@MC_MAMMONITE,attack,42,20,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
-1648,Whitesmith Howard@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1648,Whitesmith Howard@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1648,Whitesmith Howard@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
-1648,Whitesmith Howard@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1648,Whitesmith Howard@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1648,Whitesmith Howard@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,0,,,,,,19,
-1648,Whitesmith Howard@ST_FULLSTRIP,attack,476,5,1500,0,1000,yes,target,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,0,,,,,,,
-1648,Whitesmith Howard@NPC_CHANGEGROUND,attack,163,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
-1648,Whitesmith Howard@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
-1648,Whitesmith Howard@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
-1649,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
-1649,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
-1649,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1649,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
-1649,High Priest Margaretha@AL_HEAL,attack,28,11,10000,0,1000,yes,self,myhpltmaxrate,10,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,attack,28,11,10000,0,1000,yes,friend,friendhpltmaxrate,5,,,,,,3,
-1649,High Priest Margaretha@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1649,High Priest Margaretha@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1649,High Priest Margaretha@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1649,High Priest Margaretha@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1649,High Priest Margaretha@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1644,1645,0,
-1649,High Priest Margaretha@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1644,1645,0,
-1649,High Priest Margaretha@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1641,1642,1644,1645,0,
-1649,High Priest Margaretha@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-1649,High Priest Margaretha@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1649,High Priest Margaretha@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-1649,High Priest Margaretha@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1649,High Priest Margaretha@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
+1647,Assassin Cross Eremes@NPC_CHANGEWIND,attack,165,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1647,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1647,Assassin Cross Eremes@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1647,Assassin Cross Eremes@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,,
+1647,Assassin Cross Eremes@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,,
+1647,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,,,,,,,,
+1648,MasterSmith Howard@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1648,MasterSmith Howard@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1648,MasterSmith Howard@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,,,,,,,,
+1648,MasterSmith Howard@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1648,MasterSmith Howard@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1648,MasterSmith Howard@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,,,,,,,,
+1648,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,5000,yes,target,always,,,,,,,23,
+1648,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
+1648,MasterSmith Howard@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,,,,,,,19,
+1648,MasterSmith Howard@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1648,MasterSmith Howard@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1648,MasterSmith Howard@NPC_CHANGEGROUND,attack,163,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1648,MasterSmith Howard@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+1648,MasterSmith Howard@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+1648,MasterSmith Howard@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1648,MasterSmith Howard@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,,,,,,,19,
+1648,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1648,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1648,MasterSmith Howard@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,,,,,,,19,
+1648,MasterSmith Howard@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
+1648,MasterSmith Howard@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1648,MasterSmith Howard@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,,
+1648,MasterSmith Howard@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,,
+1648,MasterSmith Howard@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,,,,,,,,
+1648,MasterSmith Howard@ST_FULLSTRIP,attack,476,5,1500,0,1000,yes,target,always,,,,,,,,
+1649,High Priest Margaretha@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1649,High Priest Margaretha@AL_HEAL,attack,28,10,10000,0,1000,yes,friend,friendhpltmaxrate,5,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,attack,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,idle,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,chase,28,10,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,attack,28,10,10000,0,1000,yes,self,myhpltmaxrate,10,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,attack,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,idle,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_HEAL,chase,28,10,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+1649,High Priest Margaretha@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
1649,High Priest Margaretha@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+1649,High Priest Margaretha@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
1649,High Priest Margaretha@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1649,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
-1649,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,0,,,,,,18,
-1649,High Priest Margaretha@PR_LEXDIVINA,idle,76,10,10000,0,5000,yes,target,casttargeted,,,,,,,18,
-1649,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
-1649,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
-1649,High Priest Margaretha@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1649,High Priest Margaretha@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,0,,,,,,29,
-1649,High Priest Margaretha@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1649,High Priest Margaretha@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1649,High Priest Margaretha@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,0,,,,,,,
-1649,High Priest Margaretha@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1649,High Priest Margaretha@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1649,High Priest Margaretha@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1649,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1649,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,friend,friendhpltmaxrate,100,,,,,,,
+1649,High Priest Margaretha@HP_ASSUMPTIO,idle,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
+1649,High Priest Margaretha@HP_ASSUMPTIO,chase,361,5,10000,1000,10000,no,self,myhpltmaxrate,90,,,,,,,
+1649,High Priest Margaretha@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1649,High Priest Margaretha@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1649,High Priest Margaretha@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
1649,High Priest Margaretha@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
1649,High Priest Margaretha@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
-1649,High Priest Margaretha@AL_HEAL,attack,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,attack,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,idle,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,idle,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,chase,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-1649,High Priest Margaretha@AL_HEAL,chase,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+1649,High Priest Margaretha@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1649,High Priest Margaretha@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1649,High Priest Margaretha@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+1649,High Priest Margaretha@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1649,High Priest Margaretha@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1649,High Priest Margaretha@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1644,1645,,
+1649,High Priest Margaretha@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1644,1645,,
+1649,High Priest Margaretha@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1649,High Priest Margaretha@PR_LEXAETERNA,chase,78,1,1000,0,5000,yes,target,always,,,,,,,29,
+1649,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,2000,0,5000,yes,target,always,,,,,,,18,
+1649,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,2000,0,5000,yes,target,always,,,,,,,18,
+1649,High Priest Margaretha@PR_LEXDIVINA,attack,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
+1649,High Priest Margaretha@PR_LEXDIVINA,idle,76,10,10000,0,5000,yes,target,casttargeted,,,,,,,18,
+1649,High Priest Margaretha@PR_LEXDIVINA,chase,76,10,5000,0,5000,yes,target,casttargeted,,,,,,,18,
+1650,Sniper Cecil@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,,,,,,,6,
+1650,Sniper Cecil@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,,,,,,,6,
+1650,Sniper Cecil@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,,,,,,,6,
1650,Sniper Cecil@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1650,Sniper Cecil@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1650,Sniper Cecil@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1650,Sniper Cecil@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1650,Sniper Cecil@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1645,0,
-1650,Sniper Cecil@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1645,0,
-1650,Sniper Cecil@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1641,1642,1643,1645,0,
-1650,Sniper Cecil@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1650,Sniper Cecil@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-1650,Sniper Cecil@AC_CHARGEARROW,attack,148,1,2000,0,3000,yes,target,always,0,,,,,,6,
-1650,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1650,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1650,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
+1650,Sniper Cecil@HT_CLAYMORETRAP,attack,123,5,500,0,5000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@HT_CLAYMORETRAP,idle,123,5,2000,0,10000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@HT_SANDMAN,attack,119,5,500,0,5000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@HT_SANDMAN,idle,119,5,2000,0,10000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@HT_SHOCKWAVE,attack,118,5,500,0,5000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@HT_SHOCKWAVE,idle,118,5,2000,0,10000,yes,around2,always,,,,,,,5,
+1650,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
1650,Sniper Cecil@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1650,Sniper Cecil@HT_CLAYMORETRAP,idle,123,5,2000,0,10000,yes,around2,always,0,,,,,,5,
-1650,Sniper Cecil@HT_CLAYMORETRAP,attack,123,5,500,0,5000,yes,target,always,0,,,,,,5,
-1650,Sniper Cecil@HT_SANDMAN,idle,119,5,2000,0,10000,yes,around2,always,0,,,,,,5,
-1650,Sniper Cecil@HT_SANDMAN,attack,119,5,500,0,5000,yes,target,always,0,,,,,,5,
-1650,Sniper Cecil@HT_SHOCKWAVE,idle,118,5,2000,0,10000,yes,around2,always,0,,,,,,5,
-1650,Sniper Cecil@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,0,,,,,,,
-1650,Sniper Cecil@HT_SHOCKWAVE,attack,118,5,500,0,5000,yes,target,always,0,,,,,,5,
-1650,Sniper Cecil@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1650,Sniper Cecil@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1650,Sniper Cecil@NPC_WINDATTACK,attack,187,10,1000,0,5000,yes,target,always,0,,,,,,,
-1650,Sniper Cecil@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1650,Sniper Cecil@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1650,Sniper Cecil@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
1650,Sniper Cecil@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
1650,Sniper Cecil@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+1650,Sniper Cecil@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1650,Sniper Cecil@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1650,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1650,Sniper Cecil@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1650,Sniper Cecil@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1650,Sniper Cecil@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1650,Sniper Cecil@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1645,,
+1650,Sniper Cecil@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1645,,
+1650,Sniper Cecil@NPC_WINDATTACK,attack,187,10,1000,0,5000,yes,target,always,,,,,,,,
+1650,Sniper Cecil@SN_SHARPSHOOTING,attack,382,5,2000,500,1500,no,target,always,,,,,,,,
1651,High Wizard Kathryne@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1651,High Wizard Kathryne@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1651,High Wizard Kathryne@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1651,High Wizard Kathryne@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1651,High Wizard Kathryne@NPC_SUMMONSLAVE,attack,196,5,10000,700,30000,no,self,slavele,3,1640,1641,1642,1643,1644,0,
-1651,High Wizard Kathryne@NPC_SUMMONSLAVE,idle,196,5,10000,700,30000,no,self,slavele,3,1640,1641,1642,1643,1644,0,
-1651,High Wizard Kathryne@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1641,1642,1643,1644,0,
-1651,High Wizard Kathryne@WZ_STORMGUST,idle,89,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_VERMILION,idle,85,20,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_METEOR,idle,83,11,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-1651,High Wizard Kathryne@HW_GANBANTEIN,attack,483,1,10000,500,7000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,10000,no,target,skillused,18,,,,,,,
-1651,High Wizard Kathryne@WZ_VERMILION,chase,85,20,10000,1000,10000,no,target,skillused,18,,,,,,,
-1651,High Wizard Kathryne@WZ_METEOR,chase,83,11,10000,1000,10000,no,target,skillused,18,,,,,,,
-1651,High Wizard Kathryne@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,0,,,,,,,
+1651,High Wizard Kathryne@HW_GANBANTEIN,attack,483,1,10000,500,7000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@HW_NAPALMVULCAN,chase,400,5,2000,1000,2000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,,,,,,,,
1651,High Wizard Kathryne@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-1651,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_VERMILION,chase,85,20,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_VERMILION,attack,85,20,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_FIREPILLAR,idle,80,11,5000,200,2000,yes,around3,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_FIREPILLAR,attack,80,11,2000,200,0,yes,around3,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_METEOR,chase,83,11,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_METEOR,attack,83,11,10000,1000,20000,no,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_HEAVENDRIVE,attack,91,5,2000,0,20000,yes,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_WATERBALL,chase,86,5,5000,0,3000,yes,target,always,0,,,,,,,
-1651,High Wizard Kathryne@WZ_WATERBALL,attack,86,5,5000,0,3000,yes,target,always,0,,,,,,,
1651,High Wizard Kathryne@NPC_ATTRICHANGE,attack,161,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+1651,High Wizard Kathryne@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1651,High Wizard Kathryne@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
1651,High Wizard Kathryne@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
1651,High Wizard Kathryne@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
-1652,Egnigem Cenia@SM_BASH,attack,5,9,1000,800,5000,no,target,always,0,,,,,,32,
-1652,Egnigem Cenia@SM_BASH,attack,5,9,10000,800,1000,no,target,skillused,5,,,,,,32,
-1652,Egnigem Cenia@SM_MAGNUM,attack,7,9,5000,500,5000,no,self,attackpcge,2,,,,,,,
-1652,Egnigem Cenia@SM_PROVOKE,chase,6,9,500,600,5000,no,target,always,0,,,,,,6,
-1652,Egnigem Cenia@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1652,Egnigem Cenia@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,0,,,,,,,
-1652,Egnigem Cenia@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1651,High Wizard Kathryne@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+1651,High Wizard Kathryne@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1644,,
+1651,High Wizard Kathryne@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1642,1643,1644,,
+1651,High Wizard Kathryne@WZ_FIREPILLAR,attack,80,10,2000,200,0,yes,around2,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_FIREPILLAR,idle,80,10,5000,200,2000,yes,around2,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_HEAVENDRIVE,attack,91,5,2000,0,20000,yes,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_METEOR,attack,83,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_METEOR,idle,83,10,10000,1000,10000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_METEOR,chase,83,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_METEOR,chase,83,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1651,High Wizard Kathryne@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_STORMGUST,idle,89,10,10000,1000,10000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_STORMGUST,chase,89,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1651,High Wizard Kathryne@WZ_VERMILION,attack,85,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_VERMILION,idle,85,10,10000,1000,10000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_VERMILION,chase,85,10,10000,1000,20000,no,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_VERMILION,chase,85,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+1651,High Wizard Kathryne@WZ_WATERBALL,attack,86,5,5000,0,3000,yes,target,always,,,,,,,,
+1651,High Wizard Kathryne@WZ_WATERBALL,chase,86,5,5000,0,3000,yes,target,always,,,,,,,,
+1652,Egnigem Cenia@NPC_BLEEDING,attack,660,3,10,0,5000,yes,target,always,,,,,,,,
+1652,Egnigem Cenia@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
1652,Egnigem Cenia@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1652,Egnigem Cenia@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1652,Egnigem Cenia@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1652,Egnigem Cenia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1653,Wickebine Tres@TF_POISON,attack,52,9,1000,1000,5000,no,target,always,0,,,,,,,
-1653,Wickebine Tres@TF_POISON,attack,52,9,10000,1000,1000,no,target,skillused,52,,,,,,,
-1653,Wickebine Tres@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,0,,,,,,,
-1653,Wickebine Tres@NPC_POISONATTACK,attack,188,3,500,0,5000,yes,target,always,0,,,,,,,
-1653,Wickebine Tres@NPC_POISON,attack,176,5,1000,800,5000,no,target,always,0,,,,,,,
-1653,Wickebine Tres@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1652,Egnigem Cenia@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,,,,,,,,
+1652,Egnigem Cenia@SM_BASH,attack,5,9,1000,800,5000,no,target,always,,,,,,,32,
+1652,Egnigem Cenia@SM_BASH,attack,5,9,10000,800,1000,no,target,skillused,5,,,,,,32,
+1652,Egnigem Cenia@SM_MAGNUM,attack,7,9,5000,500,5000,no,self,attackpcge,2,,,,,,,
+1652,Egnigem Cenia@SM_PROVOKE,chase,6,9,500,600,5000,no,target,always,,,,,,,6,
+1653,Wickebine Tres@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1653,Wickebine Tres@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1653,Wickebine Tres@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1653,Wickebine Tres@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1653,Wickebine Tres@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1654,Armeyer Dinze@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,8,,,,,,
-1654,Armeyer Dinze@MC_MAMMONITE,attack,42,9,1000,800,5000,no,target,always,0,,,,,,8,
+1653,Wickebine Tres@NPC_POISON,attack,176,5,1000,800,5000,no,target,always,,,,,,,,
+1653,Wickebine Tres@NPC_POISONATTACK,attack,188,3,500,0,5000,yes,target,always,,,,,,,,
+1653,Wickebine Tres@TF_POISON,attack,52,9,1000,1000,5000,no,target,always,,,,,,,,
+1653,Wickebine Tres@TF_POISON,attack,52,9,10000,1000,1000,no,target,skillused,52,,,,,,,
+1653,Wickebine Tres@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,,,,,,,,
+1654,Armeyer Dinze@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1654,Armeyer Dinze@MC_MAMMONITE,attack,42,9,1000,800,5000,no,target,always,,,,,,,8,
1654,Armeyer Dinze@MC_MAMMONITE,attack,42,9,10000,800,1000,no,target,skillused,42,,,,,,8,
-1654,Armeyer Dinze@NPC_STUNATTACK,attack,179,3,500,0,5000,yes,target,always,0,,,,,,,
-1654,Armeyer Dinze@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,,
-1654,Armeyer Dinze@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1654,Armeyer Dinze@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,8,,,,,,
1654,Armeyer Dinze@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1654,Armeyer Dinze@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1654,Armeyer Dinze@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1654,Armeyer Dinze@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1655,Errende Ebecee@AL_PNEUMA,idle,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,22,
+1654,Armeyer Dinze@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,,,,,,,,
+1654,Armeyer Dinze@NPC_STUNATTACK,attack,179,3,500,0,5000,yes,target,always,,,,,,,,
+1655,Errende Ebecee@AL_BLESSING,idle,34,10,10000,500,5000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1655,Errende Ebecee@AL_DECAGI,attack,30,1,500,1000,5000,yes,target,always,,,,,,,29,
+1655,Errende Ebecee@AL_DECAGI,chase,30,1,2000,1000,20000,yes,target,always,,,,,,,29,
1655,Errende Ebecee@AL_HEAL,attack,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1655,Errende Ebecee@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1655,Errende Ebecee@AL_HEAL,idle,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1655,Errende Ebecee@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1655,Errende Ebecee@AL_HEAL,chase,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1655,Errende Ebecee@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
+1655,Errende Ebecee@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1655,Errende Ebecee@AL_HEAL,chase,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
-1655,Errende Ebecee@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,0,,,,,,,
-1655,Errende Ebecee@NPC_SILENCEATTACK,attack,178,4,1000,700,5000,no,target,always,0,,,,,,,
-1655,Errende Ebecee@AL_DECAGI,attack,30,1,500,1000,5000,no,target,always,0,,,,,,29,
-1655,Errende Ebecee@AL_DECAGI,chase,30,1,2000,1000,20000,no,target,always,0,,,,,,29,
+1655,Errende Ebecee@AL_PNEUMA,idle,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,22,
1655,Errende Ebecee@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1656,Kavach Icarus@AC_DOUBLE,attack,46,1,1000,1000,5000,no,target,always,0,,,,,,,
+1655,Errende Ebecee@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,,,,,,,,
+1655,Errende Ebecee@NPC_SILENCEATTACK,attack,178,4,1000,700,5000,yes,target,always,,,,,,,,
+1656,Kavach Icarus@AC_DOUBLE,attack,46,1,1000,1000,5000,no,target,always,,,,,,,,
+1656,Kavach Icarus@AC_DOUBLE,chase,46,1,2000,1000,5000,no,target,always,,,,,,,,
1656,Kavach Icarus@AC_DOUBLE,attack,46,1,10000,1000,1000,no,target,skillused,46,,,,,,,
-1656,Kavach Icarus@AC_DOUBLE,chase,46,1,2000,1000,5000,no,target,always,0,,,,,,,
1656,Kavach Icarus@AC_SHOWER,attack,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,,
-1656,Kavach Icarus@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,0,,,,,,,
-1656,Kavach Icarus@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,0,,,,,,,
-1656,Kavach Icarus@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1656,Kavach Icarus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1656,Kavach Icarus@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1656,Kavach Icarus@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1656,Kavach Icarus@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1656,Kavach Icarus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1657,Laurell Weinder@MG_SOULSTRIKE,idle,13,9,5000,0,1000,yes,randomtarget,always,0,,,,,,,
-1657,Laurell Weinder@MG_LIGHTNINGBOLT,idle,20,9,1000,1000,5000,no,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,2,
-1657,Laurell Weinder@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,attackpcge,2,,,,,,,
-1657,Laurell Weinder@MG_FROSTDIVER,chase,15,9,10000,500,20000,yes,target,always,0,,,,,,2,
-1657,Laurell Weinder@MG_LIGHTNINGBOLT,chase,20,7,10000,1000,20000,no,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,5,3000,0,1000,yes,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,3,2000,0,1000,yes,target,always,0,,,,,,,
-1657,Laurell Weinder@MG_SAFETYWALL,attack,12,10,2000,1000,5000,no,self,myhpltmaxrate,30,,,,,,26,
+1656,Kavach Icarus@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,,
+1656,Kavach Icarus@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,,,,,,,,
1657,Laurell Weinder@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1658,Egnigem Cenia@SM_BASH,attack,5,10,1000,800,5000,no,target,always,0,,,,,,32,
-1658,Egnigem Cenia@SM_BASH,attack,5,10,10000,800,1000,no,target,skillused,5,,,,,,32,
-1658,Egnigem Cenia@SM_MAGNUM,attack,7,20,5000,500,5000,no,self,attackpcge,2,,,,,,,
-1658,Egnigem Cenia@SM_PROVOKE,attack,6,10,500,600,5000,no,target,always,0,,,,,,6,
-1658,Egnigem Cenia@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,0,,,,,,6,
-1658,Egnigem Cenia@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1658,Egnigem Cenia@LK_SPIRALPIERCE,attack,397,2,2500,0,5000,yes,target,always,0,,,,,,,
-1658,Egnigem Cenia@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,0,,,,,,6,
+1657,Laurell Weinder@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,2,
+1657,Laurell Weinder@MG_FROSTDIVER,chase,15,9,10000,500,20000,yes,target,always,,,,,,,2,
+1657,Laurell Weinder@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,,,,,,,,
+1657,Laurell Weinder@MG_LIGHTNINGBOLT,idle,20,9,1000,1000,5000,no,target,always,,,,,,,,
+1657,Laurell Weinder@MG_LIGHTNINGBOLT,chase,20,7,10000,1000,20000,no,target,always,,,,,,,,
+1657,Laurell Weinder@MG_SAFETYWALL,attack,12,10,2000,1000,5000,no,self,myhpltmaxrate,30,,,,,,26,
+1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,,,,,,,,
+1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,5,3000,0,1000,yes,target,always,,,,,,,,
+1657,Laurell Weinder@MG_SOULSTRIKE,attack,13,3,2000,0,1000,yes,target,always,,,,,,,,
+1657,Laurell Weinder@MG_SOULSTRIKE,idle,13,9,5000,0,1000,yes,target,always,,,,,,,,
+1657,Laurell Weinder@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,attackpcge,2,,,,,,,
+1658,Egnigem Cenia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1658,Egnigem Cenia@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1658,Egnigem Cenia@LK_SPIRALPIERCE,attack,397,2,2500,0,5000,yes,target,always,,,,,,,,
+1658,Egnigem Cenia@NPC_BLEEDING,attack,660,2,10000,0,5000,yes,target,always,,,,,,,15,
+1658,Egnigem Cenia@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1658,Egnigem Cenia@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
1658,Egnigem Cenia@NPC_CHANGEWATER,attack,162,1,10000,500,10000,no,self,skillused,89,,,,,,9,
1658,Egnigem Cenia@NPC_CHANGEWIND,attack,165,1,10000,500,10000,no,self,skillused,84,,,,,,9,
-1658,Egnigem Cenia@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1659,1660,1661,1662,1663,0,
-1658,Egnigem Cenia@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1659,1660,1661,1662,1663,0,
-1658,Egnigem Cenia@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1658,Egnigem Cenia@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1658,Egnigem Cenia@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-1658,Egnigem Cenia@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1658,Egnigem Cenia@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
1658,Egnigem Cenia@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1658,Egnigem Cenia@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1658,Egnigem Cenia@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1658,Egnigem Cenia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1659,Wickebine Tres@TF_POISON,attack,52,9,500,1000,5000,no,target,always,0,,,,,,,
-1659,Wickebine Tres@TF_POISON,attack,52,9,10000,1000,1000,no,target,skillused,52,,,,,,,
-1659,Wickebine Tres@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,0,,,,,,,
-1659,Wickebine Tres@NPC_POISONATTACK,attack,188,3,1000,0,5000,yes,target,always,0,,,,,,,
-1659,Wickebine Tres@NPC_POISON,attack,176,5,1000,800,5000,no,target,always,0,,,,,,,
-1659,Wickebine Tres@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1658,Egnigem Cenia@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,,,,,,,6,
+1658,Egnigem Cenia@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1659,1660,1661,1662,1663,,
+1658,Egnigem Cenia@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1659,1660,1661,1662,1663,,
+1658,Egnigem Cenia@SM_BASH,attack,5,10,1000,800,5000,no,target,always,,,,,,,32,
+1658,Egnigem Cenia@SM_BASH,attack,5,10,10000,800,1000,no,target,skillused,5,,,,,,32,
+1658,Egnigem Cenia@SM_MAGNUM,attack,7,10,5000,500,5000,no,self,attackpcge,2,,,,,,,
+1658,Egnigem Cenia@SM_PROVOKE,attack,6,10,500,600,5000,no,target,always,,,,,,,6,
+1658,Egnigem Cenia@SM_PROVOKE,chase,6,10,500,600,5000,no,target,always,,,,,,,6,
1659,Wickebine Tres@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1659,Wickebine Tres@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1659,Wickebine Tres@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1660,Armeyer Dinze@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,8,,,,,,
-1660,Armeyer Dinze@MC_MAMMONITE,attack,42,9,1000,800,5000,no,target,always,0,,,,,,8,
-1660,Armeyer Dinze@MC_MAMMONITE,attack,42,9,10000,800,1000,no,target,skillused,42,,,,,,8,
-1660,Armeyer Dinze@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,0,,,,,,,
-1660,Armeyer Dinze@NPC_GROUNDATTACK,attack,185,5,1000,0,5000,yes,target,always,0,,,,,,,
-1660,Armeyer Dinze@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1659,Wickebine Tres@NPC_POISON,attack,176,5,1000,800,5000,no,target,always,,,,,,,,
+1659,Wickebine Tres@NPC_POISONATTACK,attack,188,3,1000,0,5000,yes,target,always,,,,,,,,
+1659,Wickebine Tres@TF_POISON,attack,52,9,500,1000,5000,no,target,always,,,,,,,,
+1659,Wickebine Tres@TF_POISON,attack,52,9,10000,1000,1000,no,target,skillused,52,,,,,,,
+1659,Wickebine Tres@TF_THROWSTONE,chase,152,1,4000,0,3000,yes,target,always,,,,,,,,
+1660,Armeyer Dinze@MC_MAMMONITE,attack,42,9,1000,800,5000,yes,target,always,,,,,,,8,
+1660,Armeyer Dinze@MC_MAMMONITE,attack,42,9,10000,800,1000,yes,target,skillused,42,,,,,,8,
+1660,Armeyer Dinze@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,8,,,,,,
1660,Armeyer Dinze@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1660,Armeyer Dinze@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1660,Armeyer Dinze@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1661,Errende Ebecee@AL_HEAL,attack,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1661,Errende Ebecee@AL_HEAL,attack,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
-1661,Errende Ebecee@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1661,Errende Ebecee@AL_HEAL,idle,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
-1661,Errende Ebecee@AL_HEAL,chase,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1661,Errende Ebecee@AL_HEAL,chase,28,11,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
-1661,Errende Ebecee@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,0,,,,,,,
-1661,Errende Ebecee@NPC_SILENCEATTACK,attack,178,4,1000,700,5000,no,target,always,0,,,,,,,
-1661,Errende Ebecee@AL_DECAGI,attack,30,48,500,1000,5000,no,target,always,0,,,,,,29,
-1661,Errende Ebecee@AL_DECAGI,chase,30,48,500,1000,5000,no,target,always,0,,,,,,29,
-1662,Kavach Icarus@AC_DOUBLE,attack,46,10,500,1000,5000,no,target,always,0,,,,,,,
+1660,Armeyer Dinze@NPC_GROUNDATTACK,attack,185,5,1000,0,5000,yes,target,always,,,,,,,,
+1660,Armeyer Dinze@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,,,,,,,,
+1661,Errende Ebecee@AL_BLESSING,idle,34,10,10000,500,5000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+1661,Errende Ebecee@AL_DECAGI,attack,30,10,500,1000,5000,no,target,always,,,,,,,29,
+1661,Errende Ebecee@AL_DECAGI,chase,30,10,500,1000,5000,no,target,always,,,,,,,29,
+1661,Errende Ebecee@AL_HEAL,attack,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1661,Errende Ebecee@AL_HEAL,idle,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1661,Errende Ebecee@AL_HEAL,chase,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1661,Errende Ebecee@AL_HEAL,attack,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
+1661,Errende Ebecee@AL_HEAL,idle,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
+1661,Errende Ebecee@AL_HEAL,chase,28,10,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,3,
+1661,Errende Ebecee@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,,,,,,,,
+1661,Errende Ebecee@NPC_SILENCEATTACK,attack,178,4,1000,700,5000,no,target,always,,,,,,,,
+1662,Kavach Icarus@AC_DOUBLE,attack,46,10,500,1000,5000,no,target,always,,,,,,,,
+1662,Kavach Icarus@AC_DOUBLE,chase,46,10,2000,1000,5000,no,target,always,,,,,,,,
1662,Kavach Icarus@AC_DOUBLE,attack,46,10,10000,1000,1000,no,target,skillused,46,,,,,,,
-1662,Kavach Icarus@AC_DOUBLE,chase,46,10,2000,1000,5000,no,target,always,0,,,,,,,
1662,Kavach Icarus@AC_SHOWER,attack,47,10,2000,1000,5000,no,target,attackpcge,2,,,,,,,
-1662,Kavach Icarus@NPC_WINDATTACK,attack,187,3,1000,0,5000,yes,target,always,0,,,,,,,
-1662,Kavach Icarus@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
-1662,Kavach Icarus@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1662,Kavach Icarus@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1662,Kavach Icarus@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1662,Kavach Icarus@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1663,Laurell Weinder@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,2,
-1663,Laurell Weinder@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,attackpcge,2,,,,,,,
-1663,Laurell Weinder@MG_FROSTDIVER,chase,15,9,10000,500,20000,yes,target,always,0,,,,,,2,
-1663,Laurell Weinder@MG_LIGHTNINGBOLT,chase,20,7,10000,1000,20000,no,target,always,0,,,,,,,
-1663,Laurell Weinder@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,0,,,,,,,
-1663,Laurell Weinder@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,0,,,,,,,
+1662,Kavach Icarus@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,,,,,,,,
+1662,Kavach Icarus@NPC_WINDATTACK,attack,187,3,1000,0,5000,yes,target,always,,,,,,,,
+1663,Laurell Weinder@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,2,
+1663,Laurell Weinder@MG_FROSTDIVER,chase,15,9,10000,500,20000,yes,target,always,,,,,,,2,
+1663,Laurell Weinder@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,,,,,,,,
+1663,Laurell Weinder@MG_LIGHTNINGBOLT,chase,20,7,10000,1000,20000,no,target,always,,,,,,,,
1663,Laurell Weinder@MG_SAFETYWALL,attack,12,10,2000,1000,5000,no,self,myhpltmaxrate,30,,,,,,26,
-1663,Laurell Weinder@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1663,Laurell Weinder@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,,,,,,,,
+1663,Laurell Weinder@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,attackpcge,2,,,,,,,
1663,Laurell Weinder@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+1663,Laurell Weinder@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
1663,Laurell Weinder@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
-1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
-1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
-1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
-1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
-1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
-1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
-1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
-1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
-1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
-1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,randomtarget,always,0,,,,,,,
-1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,randomtarget,always,0,,,,,,,
-1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
-1668,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
-1668,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,29,
-1668,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
+1664,Photon Cannon@NPC_WINDATTACK,attack,187,5,1000,1000,10000,yes,target,always,,,,,,,,
+1664,Photon Cannon@NPC_WINDATTACK,attack,187,3,2000,500,5000,yes,target,always,,,,,,,,
+1664,Photon Cannon@NPC_WINDATTACK,attack,187,1,10000,0,0,yes,target,always,,,,,,,,
+1665,Photon Cannon@NPC_FIREATTACK,attack,186,5,1000,1000,10000,yes,target,always,,,,,,,,
+1665,Photon Cannon@NPC_FIREATTACK,attack,186,3,2000,500,5000,yes,target,always,,,,,,,,
+1665,Photon Cannon@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,,,,,,,,
+1666,Photon Cannon@NPC_WATERATTACK,attack,184,5,1000,1000,10000,yes,target,always,,,,,,,,
+1666,Photon Cannon@NPC_WATERATTACK,attack,184,3,2000,500,5000,yes,target,always,,,,,,,,
+1666,Photon Cannon@NPC_WATERATTACK,attack,184,1,10000,0,0,yes,target,always,,,,,,,,
+1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,5,1000,1000,10000,yes,target,always,,,,,,,,
+1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,3,2000,500,5000,yes,target,always,,,,,,,,
+1667,Photon Cannon@NPC_GROUNDATTACK,attack,185,1,10000,0,0,yes,target,always,,,,,,,,
1668,Archdam@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1668,Archdam@NPC_RANDOMATTACK,attack,183,5,1000,500,5000,no,target,always,0,,,,,,,
-1669,Dimik@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,,
+1668,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1668,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,,,,,,,29,
+1668,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,,,,,,,,
+1668,Archdam@NPC_RANDOMATTACK,attack,183,5,1000,500,5000,no,target,always,,,,,,,,
+1669,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
1669,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1669,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-1669,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
-1669,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
-1670,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1670,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1669,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,yes,target,always,,,,,,,,
+1669,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,yes,target,always,,,,,,,,
+1669,Dimik@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,,,,,,,,
1670,Dimik@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1670,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
-1670,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
-1670,Dimik@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,0,,,,,,,
-1671,Dimik@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,,
-1671,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1671,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1670,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1670,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1670,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,yes,target,always,,,,,,,,
+1670,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,yes,target,always,,,,,,,,
+1670,Dimik@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,,,,,,,,
1671,Dimik@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1671,Dimik@NPC_COMBOATTACK,attack,171,6,500,700,5000,no,target,always,0,,,,,,,
-1671,Dimik@NPC_COMBOATTACK,chase,171,6,500,700,5000,no,target,always,0,,,,,,,
-1671,Dimik@NPC_WATERATTACK,attack,184,3,1000,0,5000,yes,target,always,0,,,,,,,
-1672,Dimik@NPC_RANDOMATTACK,attack,183,2,1000,500,5000,no,target,always,0,,,,,,,
-1672,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1672,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1671,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1671,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1671,Dimik@NPC_COMBOATTACK,attack,171,6,500,700,5000,yes,target,always,,,,,,,,
+1671,Dimik@NPC_COMBOATTACK,chase,171,6,500,700,5000,yes,target,always,,,,,,,,
+1671,Dimik@NPC_DARKBREATH,attack,202,4,500,800,5000,yes,target,always,,,,,,,,
+1671,Dimik@NPC_WATERATTACK,attack,184,3,1000,0,5000,yes,target,always,,,,,,,,
1672,Dimik@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1672,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
-1672,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
-1672,Dimik@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,,
-1673,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1673,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1672,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1672,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1672,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,yes,target,always,,,,,,,,
+1672,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,yes,target,always,,,,,,,,
+1672,Dimik@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,,,,,,,,
+1672,Dimik@NPC_RANDOMATTACK,attack,183,2,1000,500,5000,yes,target,always,,,,,,,,
1673,Dimik@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1673,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,no,target,always,0,,,,,,,
-1673,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,no,target,always,0,,,,,,,
-1673,Dimik@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,0,,,,,,,
-1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,randomtarget,always,0,,,,,,,
-1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,randomtarget,always,0,,,,,,,
-1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,randomtarget,always,0,,,,,,,
-1675,Venatu@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1675,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1675,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
-1675,Venatu@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,0,,,,,,,
-1675,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,0,7,0x81,,,,,
-1675,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3095,,,,,
-1676,Venatu@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1676,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1676,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
+1673,Dimik@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1673,Dimik@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1673,Dimik@NPC_COMBOATTACK,attack,171,4,500,700,5000,yes,target,always,,,,,,,,
+1673,Dimik@NPC_COMBOATTACK,chase,171,4,500,700,5000,yes,target,always,,,,,,,,
+1673,Dimik@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,,,,,,,,
+1674,Monemus@NPC_FIREATTACK,attack,186,10,500,1000,30000,yes,target,always,,,,,,,,
+1674,Monemus@NPC_FIREATTACK,attack,186,3,1000,0,10000,yes,target,always,,,,,,,,
+1674,Monemus@NPC_FIREATTACK,attack,186,1,10000,0,0,yes,target,always,,,,,,,,
+1675,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,,7,0x0081,,,,,
+1675,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1675,Venatu@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,,,,,,,,
+1675,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1675,Venatu@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+1675,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,11,
1676,Venatu@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1676,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,0,7,0x81,,,,,
-1676,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3095,,,,,
-1677,Venatu@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1677,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1677,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
+1676,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,,7,0x0081,,,,,
+1676,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1676,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1676,Venatu@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1676,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,11,
1677,Venatu@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1677,Venatu@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,0,,,,,,,
-1677,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,0,7,0x81,,,,,
-1677,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3095,,,,,
-1678,Venatu@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,0,,,,,,,
-1678,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1678,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
+1677,Venatu@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1677,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,,7,0x0081,,,,,
+1677,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1677,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1677,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,11,
+1677,Venatu@NPC_WINDATTACK,attack,187,3,500,0,5000,yes,target,always,,,,,,,,
1678,Venatu@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1678,Venatu@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,,
-1678,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,0,7,0x81,,,,,
-1678,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3095,,,,,
-1679,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,0,,,,,,6,
-1679,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,11,
+1678,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,,7,0x0081,,,,,
+1678,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1678,Venatu@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,,,,,,,,
+1678,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1678,Venatu@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,,,,,,,,
+1678,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,11,
1679,Venatu@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1679,Venatu@NPC_WATERATTACK,attack,184,3,500,0,5000,yes,target,always,0,,,,,,,
-1679,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,0,7,0x81,,,,,
-1679,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,0,0x3095,,,,,
-1680,Hill Wind@NPC_WINDATTACK,chase,187,3,500,500,5000,no,target,always,0,,,,,,,
-1680,Hill Wind@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
+1679,Venatu@NPC_EMOTION,chase,197,1,100,0,5000,yes,self,always,,7,0x0081,,,,,
+1679,Venatu@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1679,Venatu@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,target,always,,,,,,,6,
+1679,Venatu@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,11,
+1679,Venatu@NPC_WATERATTACK,attack,184,3,500,0,5000,yes,target,always,,,,,,,,
1680,Hill Wind@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,attackpcge,2,,,,,,,
-1680,Hill Wind@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1680,Hill Wind@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,6,
-1681,Gemini-S58@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,30,,,,,,
-1681,Gemini-S58@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,31,,,,,,
-1681,Gemini-S58@KN_PIERCE,attack,56,5,1000,700,5000,no,target,always,0,,,,,,,
-1681,Gemini-S58@NPC_PIERCINGATT,attack,158,10,1000,0,5000,yes,target,always,0,,,,,,,
+1680,Hill Wind@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
+1680,Hill Wind@NPC_WINDATTACK,chase,187,3,500,500,5000,no,target,always,,,,,,,,
+1680,Hill Wind@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,,,,,,,6,
+1680,Hill Wind@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,6,
1681,Gemini-S58@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1681,Gemini-S58@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,29,
-1681,Gemini-S58@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1681,Gemini-S58@NPC_COMBOATTACK,chase,171,1,500,700,5000,no,target,always,0,,,,,,,
-1682,Remover@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,,
-1682,Remover@NPC_UNDEADATTACK,attack,347,3,500,0,5000,yes,target,always,0,,,,,,,
-1684,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
-1684,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,29,
-1684,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1684,Archdam@NPC_RANDOMATTACK,attack,183,3,500,500,5000,no,target,always,0,,,,,,,
-1685,Vesper@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,15,1365,1669,1675,,,,
-1685,Vesper@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1365,,,,,,
+1681,Gemini-S58@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,29,
+1681,Gemini-S58@KN_PIERCE,attack,56,5,1000,700,5000,no,target,always,,,,,,,,
+1681,Gemini-S58@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1681,Gemini-S58@NPC_COMBOATTACK,chase,171,1,500,700,5000,no,target,always,,,,,,,,
+1681,Gemini-S58@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,31,,,,,,
+1681,Gemini-S58@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,30,,,,,,
+1681,Gemini-S58@NPC_PIERCINGATT,attack,158,10,1000,0,5000,yes,target,always,,,,,,,,
+1682,Remover@NPC_UNDEADATTACK,attack,347,3,500,0,5000,yes,target,always,,,,,,,,
+1682,Remover@SM_BASH,attack,5,5,500,800,5000,no,target,always,,,,,,,,
+1684,Archdam@KN_SPEARSTAB,attack,58,5,500,800,5000,yes,target,always,,,,,,,,
+1684,Archdam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,yes,target,always,,,,,,,29,
+1684,Archdam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,,,,,,,,
+1684,Archdam@NPC_RANDOMATTACK,attack,183,3,500,500,5000,yes,target,always,,,,,,,,
1685,Vesper@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1685,Vesper@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1685,Vesper@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1685,Vesper@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1685,Vesper@NPC_POWERUP,attack,349,5,5000,0,30000,yes,self,always,0,,,,,,,
-1685,Vesper@NPC_CRITICALSLASH,attack,170,1,5000,0,3000,yes,target,always,0,,,,,,,
-1685,Vesper@WZ_METEOR,attack,83,11,500,10000,20000,yes,target,always,0,,,,,,,
-1685,Vesper@NPC_EMOTION,idle,197,1,1000,0,0,yes,self,always,0,9,,,,,,
-1686,Orc Baby@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,6,
-1686,Orc Baby@NPC_EMOTION,idle,197,1,10000,0,5000,no,self,slavele,0,28,,,,,,
+1685,Vesper@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,,,,,,,32,
+1685,Vesper@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1685,Vesper@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1685,Vesper@NPC_CRITICALSLASH,attack,170,1,5000,0,3000,yes,target,always,,,,,,,,
+1685,Vesper@NPC_EMOTION,idle,197,1,1000,0,0,yes,self,always,,9,,,,,,
+1685,Vesper@NPC_POWERUP,attack,349,5,5000,0,30000,yes,self,always,,,,,,,,
+1685,Vesper@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,15,1365,1669,1675,,,,
+1685,Vesper@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1365,,,,,,
+1685,Vesper@WZ_METEOR,attack,83,10,500,10000,20000,yes,target,always,,,,,,,,
1686,Orc Baby@NPC_EMOTION,attack,197,1,10000,0,5000,no,self,slavele,0,28,,,,,,
-1686,Orc Baby@NPC_SUMMONSLAVE,idle,196,2,10000,0,6000000,yes,self,slavele,0,1023,1273,,,,,
-1686,Orc Baby@NPC_SUMMONSLAVE,attack,196,2,10000,0,6000000,yes,self,slavele,0,1023,1273,,,,,
-1686,Orc Baby@NPC_SUMMONSLAVE,chase,196,2,10000,0,6000000,yes,self,slavele,0,1023,1273,,,,,
-1688,Lady Tany@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1688,Lady Tany@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1688,Lady Tany@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-1688,Lady Tany@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,friend,friendhpltmaxrate,90,,,,,,2,
-1688,Lady Tany@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,friend,friendhpltmaxrate,90,,,,,,2,
-1688,Lady Tany@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-1688,Lady Tany@AL_TELEPORT,attack,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-1688,Lady Tany@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
-1688,Lady Tany@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,randomtarget,always,0,,,,,,6,
-1688,Lady Tany@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,randomtarget,always,0,,,,,,,
-1688,Lady Tany@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,randomtarget,always,0,,,,,,6,
-1688,Lady Tany@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,randomtarget,always,0,,,,,,,
-1688,Lady Tany@NPC_STUNATTACK,attack,179,5,500,0,5000,no,randomtarget,always,0,,,,,,,
-1688,Lady Tany@NPC_DEFENDER,attack,205,1,500,0,30000,yes,self,longrangeattacked,,,,,,,29,
-1688,Lady Tany@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1688,Lady Tany@NPC_SUMMONSLAVE,attack,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
-1688,Lady Tany@NPC_SUMMONSLAVE,idle,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
-1688,Lady Tany@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1688,Lady Tany@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1689,Bacsojin@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,0,,,,,,29,
-1689,Bacsojin@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,0,,,,,,18,
-1689,Bacsojin@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,0,,,,,,,
-1689,Bacsojin@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,0,,,,,,,
-1689,Bacsojin@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,0,,,,,,6,
-1689,Bacsojin@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-1689,Bacsojin@NPC_SUMMONSLAVE,idle,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
-1689,Bacsojin@NPC_SUMMONSLAVE,attack,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
-1689,Bacsojin@NPC_SUMMONSLAVE,chase,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
-1690,Spring Rabbit@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1690,Spring Rabbit@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1690,Spring Rabbit@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0xC3,,,,,
-1690,Spring Rabbit@SM_BASH,attack,5,10,500,0,5000,yes,target,always,0,,,,,,6,
-1690,Spring Rabbit@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,0,,,,,,,
-1691,Kraben@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,19,
-1691,Kraben@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,19,
-1691,Kraben@NPC_STUNATTACK,attack,179,1,500,0,5000,no,target,always,0,,,,,,6,
-
+1686,Orc Baby@NPC_EMOTION,idle,197,1,10000,0,5000,no,self,slavele,0,28,,,,,,
+1686,Orc Baby@NPC_SUMMONSLAVE,attack,196,2,10000,0,6000000,yes,self,slavele,0,1023,,,,,,
+1686,Orc Baby@NPC_SUMMONSLAVE,idle,196,2,10000,0,6000000,yes,self,slavele,0,1023,,,,,,
+1686,Orc Baby@NPC_SUMMONSLAVE,chase,196,2,10000,0,6000000,yes,self,slavele,0,1023,,,,,,
+1686,Orc Baby@SM_BASH,attack,5,5,500,800,5000,no,target,always,,,,,,,6,
+1688,Lady Tanee@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,,,,,,,6,
+1688,Lady Tanee@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1688,Lady Tanee@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+1688,Lady Tanee@AL_TELEPORT,attack,26,1,1000,0,30000,yes,self,always,,,,,,,,
+1688,Lady Tanee@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,,,,,,,,
+1688,Lady Tanee@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,friend,friendhpltmaxrate,90,,,,,,2,
+1688,Lady Tanee@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,friend,friendhpltmaxrate,90,,,,,,2,
+1688,Lady Tanee@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,,,,,,,32,
+1688,Lady Tanee@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1688,Lady Tanee@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1688,Lady Tanee@NPC_COMBOATTACK,attack,171,1,1000,0,5000,no,target,always,,,,,,,,
+1688,Lady Tanee@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1688,Lady Tanee@NPC_DEFENDER,attack,205,1,500,0,30000,yes,self,longrangeattacked,,,,,,,29,
+1688,Lady Tanee@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1688,Lady Tanee@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
+1688,Lady Tanee@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
+1688,Lady Tanee@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1688,Lady Tanee@NPC_STUNATTACK,attack,179,5,500,0,5000,no,target,always,,,,,,,,
+1688,Lady Tanee@NPC_SUMMONSLAVE,attack,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
+1688,Lady Tanee@NPC_SUMMONSLAVE,idle,196,5,10000,2000,5000,no,self,slavele,2,1691,,,,,,
+1689,White Lady@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,,,,,,,,
+1689,White Lady@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29,
+1689,White Lady@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6,
+1689,White Lady@NPC_SUMMONSLAVE,attack,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
+1689,White Lady@NPC_SUMMONSLAVE,idle,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
+1689,White Lady@NPC_SUMMONSLAVE,chase,196,4,10000,0,5000,yes,self,slavele,2,1690,,,,,,
+1689,White Lady@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18,
+1689,White Lady@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,,
+1689,White Lady@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,,
+1690,Lunar Rabbit@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0083,,,,,
+1690,Lunar Rabbit@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1691,Kraben@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,19,
+1691,Kraben@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,19,
+1691,Kraben@NPC_STUNATTACK,attack,179,1,500,0,5000,no,target,always,,,,,,,6,
+1692,Breeze@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,6,
+1692,Breeze@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,,,,,,,6,
1692,Breeze@NPC_DEFENDER,attack,205,1,1000,0,5000,yes,self,longrangeattacked,,,,,,,29,
1692,Breeze@NPC_DEFENDER,chase,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,29,
-1692,Breeze@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,6,
-1692,Breeze@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,6,
-1692,Breeze@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-1693,Plasma@NPC_STUNATTACK,chase,179,3,1000,0,5000,yes,target,always,0,,,,,,39,
-1693,Plasma@NPC_STUNATTACK,attack,179,3,1000,0,5000,yes,target,always,0,,,,,,39,
-1693,Plasma@MG_SOULSTRIKE,chase,13,9,3000,500,5000,no,target,always,0,,,,,,,
-1693,Plasma@MG_SOULSTRIKE,attack,13,9,3000,500,5000,no,target,always,0,,,,,,,
-1693,Plasma@MG_NAPALMBEAT,attack,11,7,2000,0,5000,yes,target,always,0,,,,,,,
+1692,Breeze@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
+1693,Plasma@MG_NAPALMBEAT,attack,11,7,2000,0,5000,yes,target,always,,,,,,,,
1693,Plasma@MG_NAPALMBEAT,attack,11,7,4000,0,5000,yes,target,attackpcge,2,,,,,,,
-1693,Plasma@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,0,,,,,,21,
-1694,Plasma@NPC_SLEEPATTACK,chase,182,5,1000,300,5000,yes,target,always,0,,,,,,29,
-1694,Plasma@NPC_SLEEPATTACK,attack,182,5,1000,500,5000,no,target,always,0,,,,,,29,
-1694,Plasma@MG_FIREBOLT,chase,19,7,3000,1000,5000,no,target,always,0,,,,,,6,
-1694,Plasma@MG_FIREBOLT,attack,19,7,3000,1000,5000,no,target,always,0,,,,,,6,
-1694,Plasma@MG_FIREBALL,chase,17,5,3000,500,5000,no,target,attackpcge,2,,,,,,,
+1693,Plasma@MG_SOULSTRIKE,attack,13,9,3000,500,5000,no,target,always,,,,,,,,
+1693,Plasma@MG_SOULSTRIKE,chase,13,9,3000,500,5000,no,target,always,,,,,,,,
+1693,Plasma@NPC_STUNATTACK,attack,179,3,1000,0,5000,yes,target,always,,,,,,,39,
+1693,Plasma@NPC_STUNATTACK,chase,179,3,1000,0,5000,yes,target,always,,,,,,,39,
+1693,Plasma@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,,,,,,,21,
1694,Plasma@MG_FIREBALL,attack,17,7,2000,500,5000,no,target,attackpcge,2,,,,,,,
-1694,Plasma@NPC_FIREATTACK,attack,186,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1695,Plasma@MG_STONECURSE,chase,16,8,2000,500,5000,yes,target,always,0,,,,,,29,
-1695,Plasma@MG_STONECURSE,attack,16,8,2000,500,5000,no,target,always,0,,,,,,29,
-1695,Plasma@WZ_EARTHSPIKE,chase,90,5,3000,1000,5000,no,target,always,0,,,,,,6,
-1695,Plasma@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,0,,,,,,6,
-1695,Plasma@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,0,,,,,,11,
-1695,Plasma@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,0,,,,,,11,
-1695,Plasma@NPC_GROUNDATTACK,attack,185,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1696,Plasma@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1696,Plasma@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,,
-1696,Plasma@NPC_DARKSTRIKE,chase,340,9,3000,500,5000,yes,target,always,0,,,,,,,
-1696,Plasma@NPC_DARKSTRIKE,attack,340,9,3000,500,5000,yes,target,always,0,,,,,,,
-1696,Plasma@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,0,,,,,,21,
+1694,Plasma@MG_FIREBALL,chase,17,5,3000,500,5000,no,target,attackpcge,2,,,,,,,
+1694,Plasma@MG_FIREBOLT,attack,19,7,3000,1000,5000,no,target,always,,,,,,,6,
+1694,Plasma@MG_FIREBOLT,chase,19,7,3000,1000,5000,no,target,always,,,,,,,6,
+1694,Plasma@NPC_FIREATTACK,attack,186,3,1000,0,5000,yes,target,always,,,,,,,21,
+1694,Plasma@NPC_SLEEPATTACK,attack,182,5,1000,500,5000,no,target,always,,,,,,,29,
+1694,Plasma@NPC_SLEEPATTACK,chase,182,5,1000,300,5000,yes,target,always,,,,,,,29,
+1695,Plasma@MG_STONECURSE,attack,16,8,2000,500,5000,no,target,always,,,,,,,29,
+1695,Plasma@MG_STONECURSE,chase,16,8,2000,500,5000,yes,target,always,,,,,,,29,
+1695,Plasma@NPC_GROUNDATTACK,attack,185,3,1000,0,5000,yes,target,always,,,,,,,21,
+1695,Plasma@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,,,,,,,6,
+1695,Plasma@WZ_EARTHSPIKE,chase,90,5,3000,1000,5000,no,target,always,,,,,,,6,
+1695,Plasma@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,,,,,,,11,
+1695,Plasma@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,,,,,,,11,
+1696,Plasma@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1696,Plasma@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,,
+1696,Plasma@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,,,,,,,21,
+1696,Plasma@NPC_DARKSTRIKE,attack,340,9,3000,500,5000,yes,target,always,,,,,,,,
+1696,Plasma@NPC_DARKSTRIKE,chase,340,9,3000,500,5000,yes,target,always,,,,,,,,
1696,Plasma@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1697,Plasma@MG_FROSTDIVER,chase,15,9,2000,500,5000,yes,target,always,0,,,,,,,
-1697,Plasma@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,0,,,,,,,
-1697,Plasma@MG_COLDBOLT,chase,14,6,3000,1000,5000,no,target,always,0,,,,,,6,
-1697,Plasma@MG_COLDBOLT,attack,14,6,3000,1000,5000,no,target,always,0,,,,,,6,
-1697,Plasma@WZ_WATERBALL,attack,86,3,500,1500,5000,no,target,always,0,,,,,,,
-1697,Plasma@NPC_WATERATTACK,attack,184,3,1000,0,5000,yes,target,always,0,,,,,,21,
+1697,Plasma@MG_COLDBOLT,attack,14,6,3000,1000,5000,no,target,always,,,,,,,6,
+1697,Plasma@MG_COLDBOLT,chase,14,6,3000,1000,5000,no,target,always,,,,,,,6,
+1697,Plasma@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,,,,,,,,
+1697,Plasma@MG_FROSTDIVER,chase,15,9,2000,500,5000,yes,target,always,,,,,,,,
+1697,Plasma@NPC_WATERATTACK,attack,184,3,1000,0,5000,yes,target,always,,,,,,,21,
+1697,Plasma@WZ_WATERBALL,attack,86,3,500,1500,5000,no,target,always,,,,,,,,
// Thanatos Tower Mobs
-1698,Deathword@NPC_SPLASHATTACK,attack,174,1,1000,0,5000,yes,target,attackpcge,2,,,,,,,
-1698,Deathword@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1698,Deathword@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,36,
-1698,Deathword@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
+1698,Death Word@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1698,Death Word@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,,
+1698,Death Word@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,36,
+1698,Death Word@NPC_SPLASHATTACK,attack,174,1,1000,0,5000,yes,target,attackpcge,2,,,,,,,
+1699,Ancient Mimic@CR_AUTOGUARD,attack,249,3,500,0,250000,yes,self,always,,,,,,,,
1699,Ancient Mimic@CR_AUTOGUARD,chase,249,3,1000,0,250000,yes,self,longrangeattacked,,,,,,,,
-1699,Ancient Mimic@CR_AUTOGUARD,attack,249,3,500,0,250000,yes,self,always,0,,,,,,,
-1699,Ancient Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1700,Observation@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1700,Observation@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1700,Observation@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1700,Observation@RG_INTIMIDATE,attack,219,5,500,0,5000,yes,target,always,0,,,,,,,
-1700,Observation@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,0,,,,,,18,
-1700,Observation@WZ_JUPITEL,attack,84,4,1000,1000,5000,yes,target,always,0,,,,,,6,
-1700,Observation@WZ_JUPITEL,chase,84,4,1000,1000,5000,yes,target,always,0,,,,,,6,
-1700,Observation@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
-1700,Observation@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
-1700,Observation@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
-1700,Observation@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
-1701,Shelter@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1701,Shelter@NPC_DARKNESSATTACK,chase,190,2,500,500,5000,no,target,always,0,,,,,,36,
-1701,Shelter@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,36,
-1701,Shelter@NPC_DARKTHUNDER,chase,341,4,500,1000,5000,yes,target,always,0,,,,,,,
-1701,Shelter@NPC_DARKTHUNDER,attack,341,4,500,1000,5000,yes,target,always,0,,,,,,,
-1701,Shelter@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,randomtarget,always,0,,,,,,29,
-1701,Shelter@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,0,,,,,,29,
-1701,Shelter@NPC_BLINDATTACK,angry,177,7,500,700,5000,yes,target,always,0,,,,,,29,
-1701,Shelter@NPC_BLINDATTACK,follow,177,7,500,700,5000,yes,target,always,0,,,,,,29,
-1702,Retribution@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1702,Retribution@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,36,
-1702,Retribution@NPC_GRANDDARKNESS,attack,339,1,500,700,5000,no,self,myhpltmaxrate,50,,,,,,,
-1702,Retribution@NPC_DARKCROSS,attack,338,3,500,700,5000,no,target,always,0,,,,,,36,
-//1702,Retribution@KN_BOWLINGBASH,attack,62,7,500,0,10000,yes,target,always,0,,,,,,,
-1702,Retribution@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1702,Retribution@NPC_DARKBREATH,attack,202,1,500,800,5000,no,target,always,0,,,,,,29,
-1703,Solace@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1703,Solace@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1703,Solace@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1703,Solace@CR_GRANDCROSS,attack,254,1,1000,1500,5000,no,self,myhpltmaxrate,50,,,,,,,
-1703,Solace@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,6,
-1703,Solace@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,6,
-1703,Solace@PR_LEXDIVINA,chase,76,10,500,0,5000,yes,target,always,0,,,,,,2,
-1703,Solace@PR_LEXDIVINA,attack,76,10,500,0,5000,yes,target,always,0,,,,,,2,
-1703,Solace@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,0,,,,,,,
-1703,Solace@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,0,,,,,,,
-1704,Thanatos Odium@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1704,Thanatos Odium@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,0,,,,,,36,
-1704,Thanatos Odium@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,36,
-1704,Thanatos Odium@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
-1704,Thanatos Odium@NPC_CHANGEDARKNESS,attack,168,1,1000,0,5000,no,self,always,0,,,,,,,
-1704,Thanatos Odium@NPC_POWERUP,attack,349,5,2000,0,50000,yes,self,always,0,,,,,,,
-1704,Thanatos Odium@NPC_POWERUP,attack,349,5,2000,0,10000,yes,self,myhpltmaxrate,40,,,,,,6,
-1704,Thanatos Odium@NPC_TELEKINESISATTACK,attack,191,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1705,Thanatos Despero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1705,Thanatos Despero@NPC_FIREATTACK,attack,186,4,1000,0,5000,yes,target,always,0,,,,,,9,
-1705,Thanatos Despero@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1705,Thanatos Despero@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,0,,,,,,,
-1705,Thanatos Despero@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,21,
-1705,Thanatos Despero@WZ_SIGHTRASHER,attack,81,20,1000,0,10000,yes,target,attackpcge,2,,,,,,,
-//1705,Thanatos Despero@KN_BOWLINGBASH,attack,62,4,1000,0,10000,yes,target,always,0,,,,,,,
-1705,Thanatos Despero@NPC_AGIUP,attack,350,5,1000,0,60000,yes,self,always,0,,,,,,,
-1705,Thanatos Despero@NPC_AGIUP,attack,350,5,2000,0,10000,yes,self,myhpltmaxrate,30,,,,,,,
-1705,Thanatos Despero@SM_PROVOKE,attack,6,5,500,0,5000,yes,target,always,0,,,,,,29,
-1705,Thanatos Despero@SM_PROVOKE,chase,6,5,1000,0,5000,yes,target,always,0,,,,,,29,
-1706,Thanatos Maero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1706,Thanatos Maero@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-1706,Thanatos Maero@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-1706,Thanatos Maero@AS_SONICBLOW,attack,136,10,500,0,5000,yes,target,always,0,,,,,,6,
-1706,Thanatos Maero@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,0,,,,,,21,
-1706,Thanatos Maero@NPC_INVISIBLE,attack,353,1,500,200,5000,yes,self,always,0,,,,,,,
-1706,Thanatos Maero@NPC_INVISIBLE,idle,353,1,500,200,5000,yes,self,always,0,,,,,,,
-1707,Thanatos Dolor@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1707,Thanatos Dolor@NPC_MAGICALATTACK,attack,192,1,1000,0,5000,yes,target,always,0,,,,,,9,
-1707,Thanatos Dolor@NPC_MENTALBREAKER,attack,159,2,500,0,5000,yes,target,always,0,,,,,,30,
-1707,Thanatos Dolor@NPC_MENTALBREAKER,chase,159,2,500,0,5000,yes,target,always,0,,,,,,30,
-1707,Thanatos Dolor@NPC_DARKTHUNDER,attack,341,9,500,1000,5000,no,target,always,0,,,,,,,
-1707,Thanatos Dolor@NPC_DARKTHUNDER,chase,341,9,500,1000,5000,no,target,always,0,,,,,,,
-1707,Thanatos Dolor@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1707,Thanatos Dolor@AL_DECAGI,attack,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1707,Thanatos Dolor@AL_HEAL,attack,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
-1707,Thanatos Dolor@AL_HEAL,attack,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
-1707,Thanatos Dolor@AL_HEAL,idle,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
-1707,Thanatos Dolor@AL_HEAL,idle,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
-1707,Thanatos Dolor@AL_HEAL,chase,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
-1707,Thanatos Dolor@AL_HEAL,chase,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
-1708,Thanatos@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1708,Thanatos@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1708,Thanatos@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,0,1711,1710,1709,1712,,,
-1708,Thanatos@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,0,1711,1710,1709,1712,,,
-1708,Thanatos@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
-1708,Thanatos@KN_TWOHANDQUICKEN,attack,60,20,3000,0,300000,yes,self,myhpltmaxrate,30,,,,,,2,
-//1708,Thanatos@KN_BOWLINGBASH,attack,62,10,1000,0,10000,yes,target,always,0,,,,,,,
-1708,Thanatos@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1708,Thanatos@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1708,Thanatos@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-1708,Thanatos@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1708,Thanatos@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1708,Thanatos@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
-1708,Thanatos@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,0,,,,,,29,
-1708,Thanatos@NPC_CHANGEHOLY,attack,167,1,5000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
-1708,Thanatos@WZ_STORMGUST,chase,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@WZ_VERMILION,chase,85,20,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@WZ_STORMGUST,attack,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@WZ_VERMILION,attack,85,20,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@WZ_METEOR,chase,83,11,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@WZ_METEOR,attack,83,11,2000,1000,20000,no,target,always,0,,,,,,,
-1708,Thanatos@MG_SOULSTRIKE,chase,13,10,2000,0,3000,yes,target,always,0,,,,,,,
-1708,Thanatos@MG_SOULSTRIKE,attack,13,10,2000,0,3000,yes,target,always,0,,,,,,,
-1708,Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1708,Thanatos@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
-1708,Thanatos@AL_TELEPORT,attack,26,1,500,0,10000,yes,self,always,0,,,,,,,
-1709,Thanatos Odium@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1709,Thanatos Odium@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,0,,,,,,36,
-1709,Thanatos Odium@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,36,
-1709,Thanatos Odium@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
-1709,Thanatos Odium@NPC_CHANGEDARKNESS,attack,168,1,1000,0,5000,no,self,always,0,,,,,,,
-1709,Thanatos Odium@NPC_POWERUP,attack,349,5,2000,0,50000,yes,self,always,0,,,,,,,
-1709,Thanatos Odium@NPC_POWERUP,attack,349,5,2000,0,10000,yes,self,myhpltmaxrate,40,,,,,,6,
-1709,Thanatos Odium@NPC_TELEKINESISATTACK,attack,191,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1710,Thanatos Despero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1710,Thanatos Despero@NPC_FIREATTACK,attack,186,4,1000,0,5000,yes,target,always,0,,,,,,9,
-1710,Thanatos Despero@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1710,Thanatos Despero@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,0,,,,,,,
-1710,Thanatos Despero@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,0,,,,,,21,
-1710,Thanatos Despero@WZ_SIGHTRASHER,attack,81,20,1000,0,10000,yes,target,attackpcge,2,,,,,,,
-//1710,Thanatos Despero@KN_BOWLINGBASH,attack,62,5,1000,0,10000,yes,target,always,0,,,,,,,
-1710,Thanatos Despero@NPC_AGIUP,attack,350,5,1000,0,60000,yes,self,always,0,,,,,,,
-1710,Thanatos Despero@NPC_AGIUP,attack,350,5,2000,0,10000,yes,self,myhpltmaxrate,30,,,,,,,
-1710,Thanatos Despero@SM_PROVOKE,attack,6,10,500,0,5000,yes,target,always,0,,,,,,29,
-1710,Thanatos Despero@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
-1711,Thanatos Maero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1711,Thanatos Maero@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-1711,Thanatos Maero@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-1711,Thanatos Maero@AS_SONICBLOW,attack,136,10,500,0,5000,yes,target,always,0,,,,,,6,
-1711,Thanatos Maero@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,0,,,,,,21,
-1711,Thanatos Maero@NPC_INVISIBLE,attack,353,1,500,200,5000,yes,self,always,0,,,,,,,
-1711,Thanatos Maero@NPC_INVISIBLE,idle,353,1,500,200,5000,yes,self,always,0,,,,,,,
-1712,Thanatos Dolor@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1712,Thanatos Dolor@NPC_MAGICALATTACK,attack,192,1,1000,0,5000,yes,target,always,0,,,,,,9,
-1712,Thanatos Dolor@NPC_MENTALBREAKER,attack,159,2,500,1000,10000,no,target,always,0,,,,,,,
-1712,Thanatos Dolor@NPC_MENTALBREAKER,chase,159,2,500,1000,10000,no,target,always,0,,,,,,,
-1712,Thanatos Dolor@NPC_DARKTHUNDER,attack,341,9,500,1000,5000,no,target,always,0,,,,,,,
-1712,Thanatos Dolor@NPC_DARKTHUNDER,chase,341,9,500,1000,5000,no,target,always,0,,,,,,,
-1712,Thanatos Dolor@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1712,Thanatos Dolor@AL_DECAGI,attack,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1712,Thanatos Dolor@AL_HEAL,attack,28,11,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
-1712,Thanatos Dolor@AL_HEAL,attack,28,11,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
-1712,Thanatos Dolor@AL_HEAL,idle,28,9,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
-1712,Thanatos Dolor@AL_HEAL,idle,28,9,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
-1712,Thanatos Dolor@AL_HEAL,chase,28,9,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
-1712,Thanatos Dolor@AL_HEAL,chase,28,9,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
+1699,Ancient Mimic@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1700,Dame of Sentinel@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
+1700,Dame of Sentinel@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
+1700,Dame of Sentinel@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
+1700,Dame of Sentinel@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
+1700,Dame of Sentinel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1700,Dame of Sentinel@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,,,,,,,18,
+1700,Dame of Sentinel@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,,,,,,,18,
+1700,Dame of Sentinel@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,,,,,,,18,
+1700,Dame of Sentinel@RG_INTIMIDATE,attack,219,5,500,0,5000,yes,target,always,,,,,,,,
+1700,Dame of Sentinel@WZ_JUPITEL,attack,84,4,1000,1000,5000,yes,target,always,,,,,,,6,
+1700,Dame of Sentinel@WZ_JUPITEL,chase,84,4,1000,1000,5000,yes,target,always,,,,,,,6,
+1701,Mistress of Shelter@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1701,Mistress of Shelter@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1701,Mistress of Shelter@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+1701,Mistress of Shelter@NPC_BLINDATTACK,angry,177,7,500,700,5000,yes,target,always,,,,,,,29,
+1701,Mistress of Shelter@NPC_BLINDATTACK,follow,177,7,500,700,5000,yes,target,always,,,,,,,29,
+1701,Mistress of Shelter@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,,,,,,,36,
+1701,Mistress of Shelter@NPC_DARKNESSATTACK,chase,190,2,500,500,5000,no,target,always,,,,,,,36,
+1701,Mistress of Shelter@NPC_DARKTHUNDER,attack,341,4,500,1000,5000,yes,target,always,,,,,,,,
+1701,Mistress of Shelter@NPC_DARKTHUNDER,chase,341,4,500,1000,5000,yes,target,always,,,,,,,,
+1702,Baroness of Retribution@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1702,Baroness of Retribution@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1702,Baroness of Retribution@NPC_DARKBREATH,attack,202,1,500,800,5000,no,target,always,,,,,,,29,
+1702,Baroness of Retribution@NPC_DARKCROSS,attack,338,3,500,700,5000,no,target,always,,,,,,,36,
+1702,Baroness of Retribution@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,,,,,,,36,
+1702,Baroness of Retribution@NPC_GRANDDARKNESS,attack,339,1,500,700,5000,no,self,myhpltmaxrate,50,,,,,,,
+1703,Lady Solace@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1703,Lady Solace@CR_GRANDCROSS,attack,254,1,1000,1500,5000,no,self,myhpltmaxrate,50,,,,,,,
+1703,Lady Solace@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,,,,,,,,
+1703,Lady Solace@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,,,,,,,,
+1703,Lady Solace@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,,,,,,,18,
+1703,Lady Solace@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,,,,,,,18,
+1703,Lady Solace@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,6,
+1703,Lady Solace@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,,,,,,,6,
+1703,Lady Solace@PR_LEXDIVINA,attack,76,10,500,0,5000,yes,target,always,,,,,,,2,
+1703,Lady Solace@PR_LEXDIVINA,chase,76,10,500,0,5000,yes,target,always,,,,,,,2,
+1704,Odium of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1704,Odium of Thanatos@NPC_CHANGEDARKNESS,attack,168,1,1000,0,5000,no,self,always,,,,,,,,
+1704,Odium of Thanatos@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,,,,,,,36,
+1704,Odium of Thanatos@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,36,
+1704,Odium of Thanatos@NPC_POWERUP,attack,349,5,2000,0,50000,yes,self,always,,,,,,,,
+1704,Odium of Thanatos@NPC_POWERUP,attack,349,5,2000,0,10000,yes,self,myhpltmaxrate,40,,,,,,6,
+1704,Odium of Thanatos@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
+1704,Odium of Thanatos@NPC_TELEKINESISATTACK,attack,191,3,1000,0,5000,yes,target,always,,,,,,,21,
+1705,Despero of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1705,Despero of Thanatos@NPC_AGIUP,attack,350,5,1000,0,60000,yes,self,always,,,,,,,,
+1705,Despero of Thanatos@NPC_AGIUP,attack,350,5,2000,0,10000,yes,self,myhpltmaxrate,30,,,,,,,
+1705,Despero of Thanatos@NPC_BLEEDING,attack,660,3,1000,0,60000,yes,target,always,,,,,,,,
+1705,Despero of Thanatos@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1705,Despero of Thanatos@NPC_FIREATTACK,attack,186,4,1000,0,5000,yes,target,always,,,,,,,9,
+1705,Despero of Thanatos@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,,,,,,,,
+1705,Despero of Thanatos@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,21,
+1705,Despero of Thanatos@SM_PROVOKE,attack,6,5,500,0,5000,yes,target,always,,,,,,,29,
+1705,Despero of Thanatos@SM_PROVOKE,chase,6,5,1000,0,5000,yes,target,always,,,,,,,29,
+1705,Despero of Thanatos@WZ_SIGHTRASHER,attack,81,10,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+1706,Maero of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1706,Maero of Thanatos@AS_SONICBLOW,attack,136,10,500,0,5000,yes,target,always,,,,,,,6,
+1706,Maero of Thanatos@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,,,,,,,,
+1706,Maero of Thanatos@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,,,,,,,,
+1706,Maero of Thanatos@NPC_INVISIBLE,attack,353,1,500,200,5000,yes,self,always,,,,,,,,
+1706,Maero of Thanatos@NPC_INVISIBLE,idle,353,1,500,200,5000,yes,self,always,,,,,,,,
+1706,Maero of Thanatos@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,,,,,,,21,
+1707,Dolor of Thanatos@AL_DECAGI,attack,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1707,Dolor of Thanatos@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1707,Dolor of Thanatos@AL_HEAL,attack,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_HEAL,idle,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_HEAL,chase,28,8,1000,0,5000,yes,friend,friendhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_HEAL,attack,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_HEAL,idle,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_HEAL,chase,28,8,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,3,
+1707,Dolor of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1707,Dolor of Thanatos@NPC_DARKTHUNDER,attack,341,9,500,1000,5000,no,target,always,,,,,,,,
+1707,Dolor of Thanatos@NPC_DARKTHUNDER,chase,341,9,500,1000,5000,no,target,always,,,,,,,,
+1707,Dolor of Thanatos@NPC_MAGICALATTACK,attack,192,1,1000,0,5000,yes,target,always,,,,,,,9,
+1707,Dolor of Thanatos@NPC_MENTALBREAKER,attack,159,2,500,0,5000,yes,target,always,,,,,,,30,
+1707,Dolor of Thanatos@NPC_MENTALBREAKER,chase,159,2,500,0,5000,yes,target,always,,,,,,,30,
+1708,Memory of Thanatos@AL_TELEPORT,attack,26,1,500,0,10000,yes,self,always,,,,,,,,
+1708,Memory of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1708,Memory of Thanatos@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
+1708,Memory of Thanatos@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@KN_TWOHANDQUICKEN,attack,60,10,3000,0,300000,yes,self,myhpltmaxrate,30,,,,,,2,
+1708,Memory of Thanatos@MG_SOULSTRIKE,attack,13,10,2000,0,3000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@MG_SOULSTRIKE,chase,13,10,2000,0,3000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@NPC_BLEEDING,attack,660,5,2000,0,60000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1708,Memory of Thanatos@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1708,Memory of Thanatos@NPC_CHANGEHOLY,attack,167,1,5000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+1708,Memory of Thanatos@NPC_EXPULSION,attack,674,1,1000,1000,10000,no,target,myhpltmaxrate,60,,,,,,,
+1708,Memory of Thanatos@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1708,Memory of Thanatos@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1708,Memory of Thanatos@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,0,1711,1710,1709,1712,,,
+1708,Memory of Thanatos@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,0,1711,1710,1709,1712,,,
+1708,Memory of Thanatos@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1708,Memory of Thanatos@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,,,,,,,29,
+1708,Memory of Thanatos@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
+1708,Memory of Thanatos@WZ_METEOR,attack,83,10,2000,1000,20000,no,target,always,,,,,,,,
+1708,Memory of Thanatos@WZ_METEOR,chase,83,10,2000,1000,20000,no,target,always,,,,,,,,
+1708,Memory of Thanatos@WZ_STORMGUST,attack,89,10,2000,1000,20000,no,target,always,,,,,,,,
+1708,Memory of Thanatos@WZ_STORMGUST,chase,89,10,2000,1000,20000,no,target,always,,,,,,,,
+1708,Memory of Thanatos@WZ_VERMILION,attack,85,10,2000,1000,20000,no,target,always,,,,,,,,
+1708,Memory of Thanatos@WZ_VERMILION,chase,85,10,2000,1000,20000,no,target,always,,,,,,,,
+1709,Odium of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1709,Odium of Thanatos@NPC_CHANGEDARKNESS,attack,168,1,1000,0,5000,no,self,always,,,,,,,,
+1709,Odium of Thanatos@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,,,,,,,36,
+1709,Odium of Thanatos@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,36,
+1709,Odium of Thanatos@NPC_POWERUP,attack,349,5,2000,0,50000,yes,self,always,,,,,,,,
+1709,Odium of Thanatos@NPC_POWERUP,attack,349,5,2000,0,10000,yes,self,myhpltmaxrate,40,,,,,,6,
+1709,Odium of Thanatos@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
+1709,Odium of Thanatos@NPC_TELEKINESISATTACK,attack,191,3,1000,0,5000,yes,target,always,,,,,,,21,
+1710,Despero of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1710,Despero of Thanatos@NPC_AGIUP,attack,350,5,1000,0,60000,yes,self,always,,,,,,,,
+1710,Despero of Thanatos@NPC_AGIUP,attack,350,5,2000,0,10000,yes,self,myhpltmaxrate,30,,,,,,,
+1710,Despero of Thanatos@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1710,Despero of Thanatos@NPC_FIREATTACK,attack,186,4,1000,0,5000,yes,target,always,,,,,,,9,
+1710,Despero of Thanatos@NPC_STUNATTACK,attack,179,4,1000,0,5000,yes,target,always,,,,,,,,
+1710,Despero of Thanatos@NPC_TELEKINESISATTACK,attack,191,5,500,0,5000,yes,target,always,,,,,,,21,
+1710,Despero of Thanatos@SM_PROVOKE,attack,6,10,500,0,5000,yes,target,always,,,,,,,29,
+1710,Despero of Thanatos@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
+1710,Despero of Thanatos@WZ_SIGHTRASHER,attack,81,10,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+1711,Maero of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1711,Maero of Thanatos@AS_SONICBLOW,attack,136,10,500,0,5000,yes,target,always,,,,,,,6,
+1711,Maero of Thanatos@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,,,,,,,,
+1711,Maero of Thanatos@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,,,,,,,,
+1711,Maero of Thanatos@NPC_INVISIBLE,attack,353,1,500,200,5000,yes,self,always,,,,,,,,
+1711,Maero of Thanatos@NPC_INVISIBLE,idle,353,1,500,200,5000,yes,self,always,,,,,,,,
+1711,Maero of Thanatos@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,,,,,,,21,
+1712,Dolor of Thanatos@AL_DECAGI,attack,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1712,Dolor of Thanatos@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+1712,Dolor of Thanatos@AL_HEAL,attack,28,10,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_HEAL,idle,28,9,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_HEAL,chase,28,9,1000,0,5000,yes,friend,friendhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_HEAL,attack,28,10,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_HEAL,idle,28,9,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_HEAL,chase,28,9,1000,0,5000,yes,self,myhpltmaxrate,70,,,,,,3,
+1712,Dolor of Thanatos@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1712,Dolor of Thanatos@NPC_DARKTHUNDER,attack,341,9,500,1000,5000,no,target,always,,,,,,,,
+1712,Dolor of Thanatos@NPC_DARKTHUNDER,chase,341,9,500,1000,5000,no,target,always,,,,,,,,
+1712,Dolor of Thanatos@NPC_MAGICALATTACK,attack,192,1,1000,0,5000,yes,target,always,,,,,,,9,
+1712,Dolor of Thanatos@NPC_MENTALBREAKER,attack,159,2,500,1000,10000,no,target,always,,,,,,,,
+1712,Dolor of Thanatos@NPC_MENTALBREAKER,chase,159,2,500,1000,10000,no,target,always,,,,,,,,
// Abyss Lake
-1713,Acidus@NPC_FIREATTACK,attack,186,6,500,500,5000,no,target,always,0,,,,,,,
-1713,Acidus@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
-1713,Acidus@NPC_STUNATTACK,attack,179,5,1000,1500,5000,no,target,always,0,,,,,,,
-1713,Acidus@MG_FIREBALL,idle,17,9,2000,0,5000,yes,randomtarget,always,0,,,,,,,
-1713,Acidus@MG_FIREBALL,chase,17,9,2000,0,5000,yes,target,always,0,,,,,,44,
-1713,Acidus@SM_MAGNUM,attack,7,9,2000,500,5000,no,self,attackpcge,2,,,,,,36,
-1713,Acidus@WZ_FIREPILLAR,idle,80,3,100,0,30000,yes,around2,always,0,,,,,,32,
1713,Acidus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1714,Ferus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1714,Ferus@KN_BRANDISHSPEAR,attack,57,20,500,1000,5000,no,target,always,0,,,,,,9,
-1714,Ferus@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,0,,,,,,,
-1714,Ferus@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1714,Ferus@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1714,Ferus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,36,0x3095,,,,,
-1714,Ferus@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1714,Ferus@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,6,
+1713,Acidus@MG_FIREBALL,idle,17,9,2000,0,5000,yes,target,always,,,,,,,,
+1713,Acidus@MG_FIREBALL,chase,17,9,2000,0,5000,yes,target,always,,,,,,,44,
+1713,Acidus@NPC_BLEEDING,attack,660,2,2000,0,30000,yes,target,always,,,,,,,32,
+1713,Acidus@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,,,,,,,,
+1713,Acidus@NPC_FIREATTACK,attack,186,6,500,500,5000,no,target,always,,,,,,,,
+1713,Acidus@NPC_STUNATTACK,attack,179,5,1000,1500,5000,no,target,always,,,,,,,,
+1713,Acidus@SM_MAGNUM,attack,7,9,2000,500,5000,no,self,attackpcge,2,,,,,,36,
+1713,Acidus@WZ_FIREPILLAR,idle,80,3,100,0,30000,yes,around2,always,,,,,,,32,
1714,Ferus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1715,Novus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1715,Novus@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1715,Novus@SM_BASH,attack,5,5,500,500,5000,no,target,always,0,,,,,,,
-1715,Novus@NPC_PIERCINGATT,attack,158,2,500,0,5000,no,target,always,0,,,,,,,
-1715,Novus@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,37,
-1716,Acidus@NPC_WINDATTACK,attack,187,6,500,500,5000,no,target,always,0,,,,,,,
-1716,Acidus@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
-1716,Acidus@MG_LIGHTNINGBOLT,idle,20,8,2000,1000,5000,yes,randomtarget,always,0,,,,,,,
-1716,Acidus@MG_LIGHTNINGBOLT,chase,20,8,1000,1000,5000,yes,target,always,0,,,,,,32,
-1716,Acidus@MG_LIGHTNINGBOLT,attack,20,8,1000,1000,5000,yes,target,always,0,,,,,,,
-1716,Acidus@MG_THUNDERSTORM,attack,21,9,1000,1000,5000,no,target,always,0,,,,,,,
-1716,Acidus@MG_THUNDERSTORM,attack,21,9,2000,1000,5000,no,target,attackpcge,2,,,,,,6,
+1714,Ferus@KN_BRANDISHSPEAR,attack,57,10,500,1000,5000,yes,target,always,,,,,,,9,
+1714,Ferus@KN_SPEARSTAB,attack,58,10,500,800,5000,yes,target,always,,,,,,,6,
+1714,Ferus@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,,
+1714,Ferus@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,,,,,,,,
+1714,Ferus@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1714,Ferus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,36,0x3695,,,,,
+1714,Ferus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1714,Ferus@NPC_FIREATTACK,attack,186,5,500,500,5000,yes,target,always,,,,,,,,
+1715,Novus@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,37,
+1715,Novus@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1715,Novus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1715,Novus@NPC_PIERCINGATT,attack,158,2,500,0,5000,no,target,always,,,,,,,,
+1715,Novus@SM_BASH,attack,5,5,500,500,5000,no,target,always,,,,,,,,
1716,Acidus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1717,Ferus@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-1717,Ferus@KN_BRANDISHSPEAR,attack,57,20,500,1000,5000,no,target,always,0,,,,,,9,
-1717,Ferus@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,0,,,,,,44,
-1717,Ferus@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,0,,,,,,,
-1717,Ferus@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1717,Ferus@NPC_PIERCINGATT,attack,158,5,500,0,5000,no,target,always,0,,,,,,,
-1717,Ferus@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,6,
+1716,Acidus@MG_LIGHTNINGBOLT,attack,20,8,1000,1000,5000,yes,target,always,,,,,,,,
+1716,Acidus@MG_LIGHTNINGBOLT,idle,20,8,2000,1000,5000,yes,target,always,,,,,,,,
+1716,Acidus@MG_LIGHTNINGBOLT,chase,20,8,1000,1000,5000,yes,target,always,,,,,,,32,
+1716,Acidus@MG_THUNDERSTORM,attack,21,9,1000,1000,5000,no,target,always,,,,,,,,
+1716,Acidus@MG_THUNDERSTORM,attack,21,9,2000,1000,5000,no,target,attackpcge,2,,,,,,6,
+1716,Acidus@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
+1716,Acidus@NPC_WINDATTACK,attack,187,6,500,500,5000,no,target,always,,,,,,,,
1717,Ferus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1718,Novus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1718,Novus@SM_BASH,attack,5,5,500,500,5000,no,target,always,0,,,,,,,
-1718,Novus@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1718,Novus@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,18,
-1719,Detale@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1719,Detale@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,no,self,slavele,0,1756,,,,,,
-1719,Detale@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,no,self,slavele,0,1756,,,,,,
-1719,Detale@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,no,self,slavele,0,1756,,,,,,
-1719,Detale@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1719,Detale@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1719,Detale@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1719,Detale@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,6,
-1719,Detale@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-1719,Detale@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1719,Detale@NPC_FIREBREATH,attack,654,5,500,800,5000,no,target,always,0,,,,,,32,
-1719,Detale@NPC_DARKBREATH,attack,202,5,500,800,5000,no,target,always,0,,,,,,36,
-1719,Detale@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
-1719,Detale@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,29,
-1719,Detale@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,0,,,,,,,
-1719,Detale@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-1719,Detale@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-1719,Detale@WZ_METEOR,attack,83,11,2000,500,2000,no,target,always,0,,,,,,,
-1719,Detale@WZ_METEOR,chase,83,11,2000,500,2000,no,target,always,0,,,,,,,
-1719,Detale@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,,
-1719,Detale@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,,
-1719,Detale@MG_FIREBALL,chase,17,20,5000,500,1000,no,target,always,0,,,,,,,
-1719,Detale@SM_PROVOKE,attack,6,10,10000,0,30000,yes,target,always,0,,,,,,6,
-1719,Detale@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-1719,Detale@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1719,Detale@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1719,Detale@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1720,Hydro@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1720,Hydro@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1720,Hydro@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1720,Hydro@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1720,Hydro@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,0,,,,,,6,
-1720,Hydro@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1720,Hydro@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1720,Hydro@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,0,,,,,,,
-1720,Hydro@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,32,
-1720,Hydro@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
-1720,Hydro@WZ_METEOR,attack,83,11,2000,1000,30000,no,target,always,0,,,,,,,
-1720,Hydro@NPC_SUMMONSLAVE,attack,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1720,Hydro@NPC_SUMMONSLAVE,idle,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1720,Hydro@NPC_SUMMONSLAVE,chase,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1720,Hydro@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1720,Hydro@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1720,Hydro@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1721,Dragon Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,1715,1718,,,,,
+1717,Ferus@KN_BRANDISHSPEAR,attack,57,10,500,1000,5000,yes,target,always,,,,,,,9,
+1717,Ferus@KN_SPEARSTAB,attack,58,10,500,800,5000,yes,target,always,,,,,,,6,
+1717,Ferus@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,,
+1717,Ferus@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1717,Ferus@NPC_GROUNDATTACK,attack,185,5,500,500,5000,yes,target,always,,,,,,,,
+1717,Ferus@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,,
+1717,Ferus@SM_PROVOKE,chase,6,10,2000,600,5000,yes,target,always,,,,,,,44,
+1718,Novus@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1718,Novus@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,18,
+1718,Novus@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+1718,Novus@SM_BASH,attack,5,5,500,500,5000,no,target,always,,,,,,,,
+1719,Detardeurus@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1719,Detardeurus@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1719,Detardeurus@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1719,Detardeurus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1719,Detardeurus@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+1719,Detardeurus@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+1719,Detardeurus@MG_FIREBALL,chase,17,10,5000,500,1000,yes,target,always,,,,,,,,
+1719,Detardeurus@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+1719,Detardeurus@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1719,Detardeurus@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1719,Detardeurus@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1719,Detardeurus@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,,,,,,,,
+1719,Detardeurus@NPC_CRITICALWOUND,attack,673,3,2000,0,60000,yes,target,always,,,,,,,,
+1719,Detardeurus@NPC_DARKBREATH,attack,202,5,500,800,5000,yes,target,always,,,,,,,36,
+1719,Detardeurus@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,yes,self,always,,,,,,,6,
+1719,Detardeurus@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1719,Detardeurus@NPC_FIREBREATH,attack,654,5,500,800,5000,yes,target,always,,,,,,,32,
+1719,Detardeurus@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+1719,Detardeurus@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,yes,self,slavele,0,1756,,,,,,
+1719,Detardeurus@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,yes,self,slavele,0,1756,,,,,,
+1719,Detardeurus@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,yes,self,slavele,0,1756,,,,,,
+1719,Detardeurus@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,,,,,,,,
+1719,Detardeurus@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+1719,Detardeurus@SM_PROVOKE,attack,6,10,10000,0,30000,yes,target,always,,,,,,,6,
+1719,Detardeurus@WZ_METEOR,attack,83,10,2000,500,2000,yes,target,always,,,,,,,,
+1719,Detardeurus@WZ_METEOR,chase,83,10,2000,500,2000,yes,target,always,,,,,,,,
+1719,Detardeurus@WZ_VERMILION,attack,85,10,2000,500,2000,yes,target,always,,,,,,,,
+1719,Detardeurus@WZ_VERMILION,chase,85,10,2000,500,2000,yes,target,always,,,,,,,,
+1720,Hydrolancer@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1720,Hydrolancer@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1720,Hydrolancer@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1720,Hydrolancer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1720,Hydrolancer@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,,,,,,,,
+1720,Hydrolancer@NPC_BLEEDING,attack,660,2,2000,0,30000,yes,target,always,,,,,,,32,
+1720,Hydrolancer@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1720,Hydrolancer@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1720,Hydrolancer@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1720,Hydrolancer@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+1720,Hydrolancer@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1720,Hydrolancer@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,,,,,,,,
+1720,Hydrolancer@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,32,
+1720,Hydrolancer@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+1720,Hydrolancer@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,,,,,,,6,
+1720,Hydrolancer@NPC_SUMMONSLAVE,attack,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1720,Hydrolancer@NPC_SUMMONSLAVE,idle,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1720,Hydrolancer@NPC_SUMMONSLAVE,chase,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1720,Hydrolancer@WZ_METEOR,attack,83,10,2000,1000,30000,no,target,always,,,,,,,,
+1721,Dragon Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,yes,self,myhpltmaxrate,99,1715,1718,,,,,
// Kiel dungeon
-1733,Kiel@SM_MAGNUM,chase,7,5,2500,0,3000,yes,self,always,0,,,,,,,
-1733,Kiel@SM_MAGNUM,attack,7,5,2500,0,3000,yes,self,always,0,,,,,,,
-1733,Kiel@MG_SAFETYWALL,idle,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-1733,Kiel@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-1733,Kiel@MG_SAFETYWALL,attack,12,10,4000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1733,Kiel@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1733,Kiel@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,0,,,,,,,
-1733,Kiel@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,0,,,,,,,
-1733,Kiel@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,always,0,,,,,,,
-1733,Kiel@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,casttargeted,,,,,,,,
-1733,Kiel@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,0,,,,,,,
-1733,Kiel@KN_BRANDISHSPEAR,chase,57,6,2000,0,3000,yes,target,always,0,,,,,,,
-1733,Kiel@KN_BRANDISHSPEAR,attack,57,6,2000,0,3000,yes,target,always,0,,,,,,,
1733,Kiel@AL_PNEUMA,attack,25,1,10000,0,10000,yes,self,longrangeattacked,,,,,,,,
1733,Kiel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1733,Kiel@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
-1734,Kiel-D-01@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,0,1739,1740,,,,,
-1734,Kiel-D-01@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,0,1739,1740,,,,,
-1734,Kiel-D-01@HW_GANBANTEIN,attack,483,5,5000,0,5000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@SM_MAGNUM,chase,7,20,1000,0,3000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@SM_MAGNUM,attack,7,20,1000,0,3000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@NPC_WIDESILENCE,chase,663,5,10000,500,25000,no,self,myhpltmaxrate,80,,,,,,9,
-1734,Kiel-D-01@NPC_WIDESILENCE,attack,663,5,10000,500,25000,no,self,myhpltmaxrate,80,,,,,,9,
-1734,Kiel-D-01@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,0,,,,,,9,
-1734,Kiel-D-01@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@MG_SAFETYWALL,attack,12,10,4000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1734,Kiel-D-01@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@NPC_POWERUP,attack,349,4,2000,0,100000,yes,self,always,0,,,,,,,
-1734,Kiel-D-01@NPC_POWERUP,attack,349,4,3000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1734,Kiel-D-01@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,casttargeted,,,,,,,,
-1734,Kiel-D-01@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@KN_BRANDISHSPEAR,chase,57,20,2000,0,3000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@KN_BRANDISHSPEAR,attack,57,20,2000,0,3000,yes,target,always,0,,,,,,,
-1734,Kiel-D-01@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1734,Kiel-D-01@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
-1734,Kiel-D-01@AL_PNEUMA,attack,25,1,10000,0,10000,yes,self,longrangeattacked,,,,,,,,
-1734,Kiel-D-01@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1735,Alicel@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-1735,Alicel@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1735,Alicel@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1735,Alicel@NPC_GUIDEDATTACK,attack,172,1,1000,1000,20000,no,target,always,0,,,,,,,
+1733,Kiel@KN_BRANDISHSPEAR,attack,57,6,2000,0,3000,yes,target,always,,,,,,,,
+1733,Kiel@KN_BRANDISHSPEAR,chase,57,6,2000,0,3000,yes,target,always,,,,,,,,
+1733,Kiel@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1733,Kiel@MG_SAFETYWALL,idle,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1733,Kiel@MG_SAFETYWALL,attack,12,10,4000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1733,Kiel@NPC_BLEEDING,attack,660,5,2000,0,60000,yes,target,always,,,,,,,,
+1733,Kiel@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,,,,,,,,
+1733,Kiel@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,always,,,,,,,,
+1733,Kiel@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,casttargeted,,,,,,,,
+1733,Kiel@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1733,Kiel@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,,,,,,,,
+1733,Kiel@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,,,,,,,,
+1733,Kiel@SM_MAGNUM,attack,7,5,2500,0,3000,yes,self,always,,,,,,,,
+1733,Kiel@SM_MAGNUM,chase,7,5,2500,0,3000,yes,self,always,,,,,,,,
+1734,Kiel D-01@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1734,Kiel D-01@AL_PNEUMA,attack,25,1,10000,0,10000,yes,self,longrangeattacked,,,,,,,,
+1734,Kiel D-01@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1734,Kiel D-01@AL_TELEPORT,walk,26,1,10000,0,5000,yes,self,rudeattacked,,,,,,,,
+1734,Kiel D-01@HW_GANBANTEIN,attack,483,1,5000,0,5000,yes,target,always,,,,,,,,
+1734,Kiel D-01@KN_BRANDISHSPEAR,attack,57,10,2000,0,3000,yes,target,always,,,,,,,,
+1734,Kiel D-01@KN_BRANDISHSPEAR,chase,57,10,2000,0,3000,yes,target,always,,,,,,,,
+1734,Kiel D-01@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1734,Kiel D-01@MG_SAFETYWALL,attack,12,10,4000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1734,Kiel D-01@NPC_BLEEDING,attack,660,5,2000,0,60000,yes,target,always,,,,,,,,
+1734,Kiel D-01@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1734,Kiel D-01@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1734,Kiel D-01@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,,,,,,,9,
+1734,Kiel D-01@NPC_POWERUP,attack,349,4,2000,0,100000,yes,self,always,,,,,,,,
+1734,Kiel D-01@NPC_POWERUP,attack,349,4,3000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1734,Kiel D-01@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,0,1739,1740,,,,,
+1734,Kiel D-01@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,0,1739,1740,,,,,
+1734,Kiel D-01@NPC_WIDESILENCE,attack,663,5,10000,500,25000,no,self,myhpltmaxrate,80,,,,,,9,
+1734,Kiel D-01@NPC_WIDESILENCE,chase,663,5,10000,500,25000,no,self,myhpltmaxrate,80,,,,,,9,
+1734,Kiel D-01@PR_LEXAETERNA,attack,78,1,1000,0,5000,yes,target,always,,,,,,,,
+1734,Kiel D-01@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,always,,,,,,,,
+1734,Kiel D-01@PR_LEXDIVINA,attack,76,5,1000,0,30000,yes,target,casttargeted,,,,,,,,
+1734,Kiel D-01@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1734,Kiel D-01@SM_ENDURE,attack,8,10,2000,0,5000,yes,self,always,,,,,,,,
+1734,Kiel D-01@SM_ENDURE,chase,8,10,5000,0,5000,yes,self,always,,,,,,,,
+1734,Kiel D-01@SM_MAGNUM,attack,7,10,1000,0,3000,yes,self,always,,,,,,,,
+1734,Kiel D-01@SM_MAGNUM,chase,7,10,1000,0,3000,yes,self,always,,,,,,,,
1735,Alicel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1736,Aliot@KN_SPEARSTAB,attack,58,10,1000,0,5000,yes,target,always,0,,,,,,,
-1736,Aliot@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1736,Aliot@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
+1735,Alicel@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
+1735,Alicel@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,,
+1735,Alicel@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1735,Alicel@NPC_GUIDEDATTACK,attack,172,1,1000,1000,20000,no,target,always,,,,,,,,
+1736,Aliot@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,,
+1736,Aliot@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,,
+1736,Aliot@CR_AUTOGUARD,attack,249,5,1000,0,300000,yes,self,always,,,,,,,,
1736,Aliot@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1736,Aliot@CR_AUTOGUARD,attack,249,5,1000,0,300000,yes,self,always,0,,,,,,,
-1736,Aliot@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
+1736,Aliot@KN_SPEARSTAB,attack,58,10,1000,0,5000,yes,target,always,,,,,,,,
+1736,Aliot@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,,,,,,,,
+1736,Aliot@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,,,,,,,,
1736,Aliot@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1736,Aliot@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,0,,,,,,,
-1737,Aliza@SM_BASH,attack,5,10,2000,1000,30000,no,target,always,0,,,,,,52,
-1737,Aliza@NPC_EMOTION,walk,197,1,500,0,30000,yes,self,always,0,2,,,,,,
-1737,Aliza@NPC_EMOTION,idle,197,1,500,0,30000,yes,self,always,0,54,,,,,,
+1737,Aliza@AL_HEAL,attack,28,5,5000,1000,5000,yes,friend,friendhpltmaxrate,80,,,,,,3,
1737,Aliza@AL_HEAL,idle,28,5,5000,1000,5000,yes,friend,friendhpltmaxrate,80,,,,,,3,
1737,Aliza@AL_HEAL,walk,28,5,5000,1000,5000,yes,friend,friendhpltmaxrate,80,,,,,,3,
1737,Aliza@AL_HEAL,chase,28,5,5000,1000,5000,yes,friend,friendhpltmaxrate,80,,,,,,3,
-1737,Aliza@AL_HEAL,attack,28,5,5000,1000,5000,yes,friend,friendhpltmaxrate,80,,,,,,3,
-1738,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,1000,0,no,self,always,0,,,,,,,
-1738,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,1000,0,no,self,always,0,,,,,,,
-1739,Alicel@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-1739,Alicel@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1739,Alicel@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,,
-1739,Alicel@NPC_GUIDEDATTACK,attack,172,1,1000,1000,20000,no,target,always,0,,,,,,,
-1740,Aliot@KN_SPEARSTAB,attack,58,10,1000,0,5000,yes,target,always,0,,,,,,,
-1740,Aliot@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
-1740,Aliot@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
+1737,Aliza@NPC_EMOTION,idle,197,1,500,0,30000,yes,self,always,,54,,,,,,
+1737,Aliza@NPC_EMOTION,walk,197,1,500,0,30000,yes,self,always,,2,,,,,,
+1737,Aliza@SM_BASH,attack,5,10,2000,1000,30000,no,target,always,,,,,,,52,
+1738,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,1000,0,yes,self,always,,,,,,,,
+1738,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,1000,0,yes,self,always,,,,,,,,
+1739,Alicel@MO_BODYRELOCATION,chase,264,1,2000,500,5000,yes,target,always,,,,,,,,
+1739,Alicel@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,,,,,,,,
+1739,Alicel@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+1739,Alicel@NPC_GUIDEDATTACK,attack,172,1,1000,1000,20000,yes,target,always,,,,,,,,
+1740,Aliot@BS_MAXIMIZE,attack,114,5,500,1000,5000,yes,self,always,,,,,,,,
+1740,Aliot@BS_MAXIMIZE,chase,114,5,500,1000,5000,yes,self,always,,,,,,,,
+1740,Aliot@CR_AUTOGUARD,attack,249,5,1000,0,300000,yes,self,always,,,,,,,,
1740,Aliot@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1740,Aliot@CR_AUTOGUARD,attack,249,5,1000,0,300000,yes,self,always,0,,,,,,,
-1740,Aliot@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
+1740,Aliot@KN_SPEARSTAB,attack,58,10,1000,0,5000,yes,target,always,,,,,,,,
+1740,Aliot@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,yes,target,always,,,,,,,,
+1740,Aliot@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,,,,,,,,
1740,Aliot@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-1740,Aliot@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,0,,,,,,,
-1741,Christmas Cookie@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,0,,,,,,21,
-1741,Christmas Cookie@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,21,
-1741,Christmas Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1741,Christmas Cookie@NPC_HOLYATTACK,attack,189,1,2000,0,5000,yes,target,always,0,,,,,,,
-1741,Christmas Cookie@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-1741,Christmas Cookie@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-1742,Carat@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1742,Carat@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,18,
-1742,Carat@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1742,Carat@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,0,,,,,,18,
+1741,Christmas Cookie@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,,,,,,,21,
+1741,Christmas Cookie@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,21,
+1741,Christmas Cookie@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1741,Christmas Cookie@NPC_HOLYATTACK,attack,189,1,2000,0,5000,yes,target,always,,,,,,,,
+1741,Christmas Cookie@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+1741,Christmas Cookie@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+1742,Carat@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1742,Carat@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,18,
+1742,Carat@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1742,Carat@SM_PROVOKE,chase,6,10,2000,600,5000,yes,target,always,,,,,,,18,
1743,Myst Case@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1743,Myst Case@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1743,Myst Case@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,8,
-1743,Myst Case@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-1743,Myst Case@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-1743,Myst Case@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-1744,Wild Rose@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,6,
-1744,Wild Rose@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1744,Wild Rose@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-1745,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,0,0,no,self,always,0,,,,,,,
-1745,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,0,0,no,self,always,0,,,,,,,
-1751,Valkyrie Randgris@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-1751,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-1751,Valkyrie Randgris@NPC_SUMMONSLAVE,chase,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-1751,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1765,,,,,,
-1751,Valkyrie Randgris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1751,Valkyrie Randgris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1751,Valkyrie Randgris@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+1743,Myst Case@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1743,Myst Case@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,8,
+1743,Myst Case@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+1743,Myst Case@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,6,
+1743,Myst Case@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,6,
+1744,Wild Rose@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,6,
+1744,Wild Rose@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1744,Wild Rose@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+1745,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,0,0,no,self,always,,,,,,,,
+1745,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,0,0,no,self,always,,,,,,,,
1751,Valkyrie Randgris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1751,Valkyrie Randgris@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
-1751,Valkyrie Randgris@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+1751,Valkyrie Randgris@HP_ASSUMPTIO,chase,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+1751,Valkyrie Randgris@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
1751,Valkyrie Randgris@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
1751,Valkyrie Randgris@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
-1751,Valkyrie Randgris@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32,
-1751,Valkyrie Randgris@HP_ASSUMPTIO,chase,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
-1751,Valkyrie Randgris@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
-1751,Valkyrie Randgris@HW_GANBANTEIN,attack,483,5,2000,0,5000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@KN_TWOHANDQUICKEN,attack,60,20,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
-1751,Valkyrie Randgris@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,0,,,,,,,
-1751,Valkyrie Randgris@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@KN_BRANDISHSPEAR,attack,57,20,2000,0,5000,yes,target,always,0,,,,,,,
-1751,Valkyrie Randgris@MG_THUNDERSTORM,attack,21,15,10000,1500,5000,no,target,attackpcge,2,,,,,,,
-1751,Valkyrie Randgris@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1751,Valkyrie Randgris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1751,Valkyrie Randgris@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1751,Valkyrie Randgris@NPC_CRITICALWOUND,attack,673,4,2000,0,5000,yes,target,always,,,,,,,,
1751,Valkyrie Randgris@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
-1751,Valkyrie Randgris@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,always,0,,,,,,,
-1751,Valkyrie Randgris@WZ_VERMILION,chase,85,20,2000,1000,5000,no,target,always,0,,,,,,,
-1752,Skogul@TF_HIDING,idle,51,1,2000,0,180000,yes,self,always,0,,,,,,9,
-1752,Skogul@MG_SOULSTRIKE,chase,13,5,2000,0,3000,yes,target,always,0,,,,,,,
-1752,Skogul@AS_GRIMTOOTH,idle,137,5,10000,0,700,yes,randomtarget,mystatuson,hiding,,,,,,,
-1752,Skogul@NPC_CURSEATTACK,attack,181,5,1000,0,5000,yes,target,always,0,,,,,,,
-1752,Skogul@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,0,,,,,,9,
+1751,Valkyrie Randgris@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,,,,,,,,
+1751,Valkyrie Randgris@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+1751,Valkyrie Randgris@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+1751,Valkyrie Randgris@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
+1751,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
+1751,Valkyrie Randgris@NPC_SUMMONSLAVE,chase,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
+1751,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1765,,,,,,
+1751,Valkyrie Randgris@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+1751,Valkyrie Randgris@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,,
+1751,Valkyrie Randgris@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,always,,,,,,,,
+1752,Skogul@AS_GRIMTOOTH,idle,137,5,10000,0,700,yes,target,mystatuson,hiding,,,,,,,
+1752,Skogul@MG_SOULSTRIKE,chase,13,5,2000,0,3000,yes,target,always,,,,,,,,
+1752,Skogul@NPC_CURSEATTACK,attack,181,5,1000,0,5000,yes,target,always,,,,,,,,
+1752,Skogul@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,,,,,,,9,
1752,Skogul@NPC_SUMMONSLAVE,attack,196,1,100,0,3600000,no,self,slavele,0,1762,,,,,,
-1753,Frus@RG_STRIPARMOR,attack,217,3,500,0,30000,yes,target,always,0,,,,,,2,
-1753,Frus@NPC_POISON,attack,176,5,1000,0,5000,yes,target,always,0,,,,,,,
-1753,Frus@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,0,,,,,,2,
-1753,Frus@NPC_CHANGEUNDEAD,attack,348,2,500,0,30000,yes,target,always,0,,,,,,2,
-1753,Frus@MG_FIREWALL,chase,18,5,2000,500,5000,yes,target,always,0,,,,,,2,
-1753,Frus@NPC_SUMMONSLAVE,attack,196,1,100,0,3600000,no,self,slavele,0,1761,,,,,,
+1752,Skogul@TF_HIDING,idle,51,1,2000,0,180000,yes,self,always,,,,,,,9,
+1753,Frus@MG_FIREWALL,chase,18,5,2000,500,5000,yes,target,always,,,,,,,2,
+1753,Frus@NPC_CHANGEUNDEAD,attack,348,2,500,0,30000,yes,target,always,,,,,,,2,
+1753,Frus@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,,,,,,,2,
+1753,Frus@NPC_POISON,attack,176,5,1000,0,5000,yes,target,always,,,,,,,,
+1753,Frus@NPC_SUMMONSLAVE,attack,196,1,100,0,3600000,yes,self,slavele,0,1761,,,,,,
+1753,Frus@RG_STRIPARMOR,attack,217,3,500,0,30000,yes,target,always,,,,,,,2,
+1754,Skeggiold@AL_DECAGI,attack,30,10,500,0,30000,no,target,always,,,,,,,29,
+1754,Skeggiold@AL_DECAGI,chase,30,10,500,0,30000,no,target,always,,,,,,,29,
1754,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,friend,friendhpltmaxrate,30,,,,,,18,
-1754,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1754,Skeggiold@AL_HEAL,idle,28,9,5000,500,5000,no,friend,friendhpltmaxrate,30,,,,,,18,
+1754,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1754,Skeggiold@AL_HEAL,idle,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1754,Skeggiold@MG_THUNDERSTORM,attack,21,7,1000,1500,10000,no,target,always,0,,,,,,,
-1754,Skeggiold@MG_THUNDERSTORM,chase,21,7,1000,1500,10000,no,target,always,0,,,,,,,
-1754,Skeggiold@AL_DECAGI,attack,30,48,500,0,30000,no,target,always,0,,,,,,29,
-1754,Skeggiold@AL_DECAGI,chase,30,48,500,0,30000,no,target,always,0,,,,,,29,
-1754,Skeggiold@NPC_PETRIFYATTACK,attack,180,2,500,500,5000,no,target,always,0,,,,,,3,
-1754,Skeggiold@NPC_PETRIFYATTACK,chase,180,2,500,500,5000,no,target,always,0,,,,,,3,
-1754,Skeggiold@RG_STRIPARMOR,attack,217,3,500,0,5000,yes,target,always,0,,,,,,6,
-1754,Skeggiold@RG_STRIPARMOR,chase,217,3,500,0,5000,yes,target,always,0,,,,,,6,
-1754,Skeggiold@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,0,,,,,,18,
-1754,Skeggiold@NPC_HOLYATTACK,attack,189,3,500,500,5000,no,target,always,0,,,,,,18,
-1754,Skeggiold@NPC_HOLYATTACK,chase,189,3,500,500,5000,no,target,always,0,,,,,,18,
-1754,Skeggiold@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,29,
-1754,Skeggiold@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,29,
1754,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1754,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1754,Skeggiold@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1754,Skeggiold@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
+1754,Skeggiold@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,,,,,,,18,
+1754,Skeggiold@MG_THUNDERSTORM,attack,21,7,1000,1500,10000,no,target,always,,,,,,,,
+1754,Skeggiold@MG_THUNDERSTORM,chase,21,7,1000,1500,10000,no,target,always,,,,,,,,
+1754,Skeggiold@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1754,Skeggiold@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1754,Skeggiold@NPC_HOLYATTACK,attack,189,3,500,500,5000,no,target,always,,,,,,,18,
+1754,Skeggiold@NPC_HOLYATTACK,chase,189,3,500,500,5000,no,target,always,,,,,,,18,
+1754,Skeggiold@NPC_PETRIFYATTACK,attack,180,2,500,500,5000,no,target,always,,,,,,,3,
+1754,Skeggiold@NPC_PETRIFYATTACK,chase,180,2,500,500,5000,no,target,always,,,,,,,3,
1754,Skeggiold@NPC_SUMMONSLAVE,any,196,2,10000,700,60000,no,self,onspawn,0,1763,,,,,,
+1754,Skeggiold@RG_STRIPARMOR,attack,217,3,500,0,5000,yes,target,always,,,,,,,6,
+1754,Skeggiold@RG_STRIPARMOR,chase,217,3,500,0,5000,yes,target,always,,,,,,,6,
+1754,Skeggiold@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,29,
+1754,Skeggiold@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,29,
1755,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,friend,friendhpltmaxrate,30,,,,,,18,
-1755,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1755,Skeggiold@AL_HEAL,idle,28,9,5000,500,5000,no,friend,friendhpltmaxrate,30,,,,,,18,
+1755,Skeggiold@AL_HEAL,attack,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
1755,Skeggiold@AL_HEAL,idle,28,9,5000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1755,Skeggiold@CR_HOLYCROSS,attack,253,3,1000,0,5000,yes,target,always,0,,,,,,,
-1755,Skeggiold@MG_SOULSTRIKE,chase,13,7,500,0,5000,yes,target,always,0,,,,,,,
-1755,Skeggiold@MG_SOULSTRIKE,attack,13,7,500,0,5000,yes,target,always,0,,,,,,,
-1755,Skeggiold@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,0,,,,,,18,
-1755,Skeggiold@NPC_HOLYATTACK,attack,189,3,500,500,5000,no,target,always,0,,,,,,18,
-1755,Skeggiold@NPC_HOLYATTACK,chase,189,3,500,500,5000,no,target,always,0,,,,,,18,
-1755,Skeggiold@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,29,
-1755,Skeggiold@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,29,
1755,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1755,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1755,Skeggiold@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-1755,Skeggiold@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
+1755,Skeggiold@CR_HOLYCROSS,attack,253,3,1000,0,5000,yes,target,always,,,,,,,,
+1755,Skeggiold@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,,,,,,,18,
+1755,Skeggiold@MG_SOULSTRIKE,attack,13,7,500,0,5000,yes,target,always,,,,,,,,
+1755,Skeggiold@MG_SOULSTRIKE,chase,13,7,500,0,5000,yes,target,always,,,,,,,,
+1755,Skeggiold@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1755,Skeggiold@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+1755,Skeggiold@NPC_HOLYATTACK,attack,189,3,500,500,5000,no,target,always,,,,,,,18,
+1755,Skeggiold@NPC_HOLYATTACK,chase,189,3,500,500,5000,no,target,always,,,,,,,18,
1755,Skeggiold@NPC_SUMMONSLAVE,any,196,2,10000,700,60000,no,self,onspawn,0,1764,,,,,,
-1756,Hydro@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1756,Hydro@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1756,Hydro@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1756,Hydro@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1756,Hydro@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,0,,,,,,6,
-1756,Hydro@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1756,Hydro@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-1756,Hydro@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,0,,,,,,,
-1756,Hydro@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,0,,,,,,32,
-1756,Hydro@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
-1756,Hydro@WZ_METEOR,attack,83,10,2000,1000,30000,no,target,always,0,,,,,,,
-1756,Hydro@NPC_SUMMONSLAVE,attack,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1756,Hydro@NPC_SUMMONSLAVE,idle,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1756,Hydro@NPC_SUMMONSLAVE,chase,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
-1756,Hydro@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1756,Hydro@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1756,Hydro@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1761,Skogul@TF_HIDING,idle,51,1,2000,0,180000,yes,self,always,0,,,,,,9,
-1761,Skogul@MG_SOULSTRIKE,chase,13,5,2000,0,3000,yes,target,always,0,,,,,,,
-1761,Skogul@AS_GRIMTOOTH,idle,137,5,10000,0,700,yes,randomtarget,mystatuson,hiding,,,,,,,
-1761,Skogul@NPC_CURSEATTACK,attack,181,5,1000,0,5000,yes,target,always,0,,,,,,,
-1761,Skogul@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,0,,,,,,9,
-1762,Frus@RG_STRIPARMOR,attack,217,3,500,0,30000,yes,target,always,0,,,,,,2,
-1762,Frus@NPC_POISON,attack,176,5,1000,0,5000,yes,target,always,0,,,,,,,
-1762,Frus@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,0,,,,,,2,
-1762,Frus@NPC_CHANGEUNDEAD,attack,348,2,500,0,30000,yes,target,always,0,,,,,,2,
-1762,Frus@MG_FIREWALL,chase,18,5,2000,500,5000,yes,target,always,0,,,,,,2,
-1763,Skeggiold@MG_THUNDERSTORM,attack,21,4,500,1500,10000,no,target,always,0,,,,,,,
-1763,Skeggiold@MG_THUNDERSTORM,chase,21,4,500,1500,10000,no,target,always,0,,,,,,,
-1763,Skeggiold@AL_DECAGI,attack,30,5,500,0,30000,no,target,always,0,,,,,,29,
-1763,Skeggiold@AL_DECAGI,chase,30,5,500,0,30000,no,target,always,0,,,,,,29,
-1763,Skeggiold@NPC_PETRIFYATTACK,attack,180,2,500,500,5000,no,target,always,0,,,,,,3,
-1763,Skeggiold@MG_SAFETYWALL,attack,12,5,500,1000,10000,no,self,always,0,,,,,,18,
-1763,Skeggiold@NPC_HOLYATTACK,attack,189,2,500,500,5000,no,target,always,0,,,,,,18,
-1763,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,0,,,,,,18,
+1755,Skeggiold@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,29,
+1755,Skeggiold@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,29,
+1756,Hydrolancer@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1756,Hydrolancer@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1756,Hydrolancer@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1756,Hydrolancer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1756,Hydrolancer@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,,,,,,,,
+1756,Hydrolancer@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1756,Hydrolancer@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1756,Hydrolancer@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1756,Hydrolancer@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+1756,Hydrolancer@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+1756,Hydrolancer@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,32,
+1756,Hydrolancer@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+1756,Hydrolancer@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,,,,,,,6,
+1756,Hydrolancer@NPC_SUMMONSLAVE,attack,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1756,Hydrolancer@NPC_SUMMONSLAVE,idle,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1756,Hydrolancer@NPC_SUMMONSLAVE,chase,196,4,10000,2000,5000,no,self,slavele,2,1757,1758,1759,1760,,,
+1756,Hydrolancer@WZ_METEOR,attack,83,10,2000,1000,30000,no,target,always,,,,,,,,
+1761,Skogul@AS_GRIMTOOTH,idle,137,5,10000,0,700,yes,target,mystatuson,hiding,,,,,,,
+1761,Skogul@MG_SOULSTRIKE,chase,13,5,2000,0,3000,yes,target,always,,,,,,,,
+1761,Skogul@NPC_BLEEDING,attack,660,2,500,0,60000,yes,target,always,,,,,,,,
+1761,Skogul@NPC_CURSEATTACK,attack,181,5,1000,0,5000,yes,target,always,,,,,,,,
+1761,Skogul@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,,,,,,,9,
+1761,Skogul@TF_HIDING,idle,51,1,2000,0,180000,yes,self,always,,,,,,,9,
+1762,Frus@MG_FIREWALL,chase,18,5,2000,500,5000,yes,target,always,,,,,,,2,
+1762,Frus@NPC_CHANGEUNDEAD,attack,348,2,500,0,30000,yes,target,always,,,,,,,2,
+1762,Frus@NPC_DARKNESSATTACK,attack,190,5,1000,0,5000,yes,target,always,,,,,,,2,
+1762,Frus@NPC_POISON,attack,176,5,1000,0,5000,yes,target,always,,,,,,,,
+1762,Frus@RG_STRIPARMOR,attack,217,3,500,0,30000,yes,target,always,,,,,,,2,
+1763,Skeggiold@AL_DECAGI,attack,30,5,500,0,30000,no,target,always,,,,,,,29,
+1763,Skeggiold@AL_DECAGI,chase,30,5,500,0,30000,no,target,always,,,,,,,29,
1763,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1763,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1764,Skeggiold@CR_HOLYCROSS,attack,253,2,1000,0,5000,yes,target,always,0,,,,,,,
-1764,Skeggiold@MG_SOULSTRIKE,chase,13,5,500,0,5000,yes,target,always,0,,,,,,,
-1764,Skeggiold@MG_SOULSTRIKE,attack,13,5,500,0,5000,yes,target,always,0,,,,,,,
-1764,Skeggiold@MG_SAFETYWALL,attack,12,5,1000,1000,10000,no,self,always,0,,,,,,18,
-1764,Skeggiold@NPC_HOLYATTACK,attack,189,2,500,500,5000,no,target,always,0,,,,,,18,
-1764,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,0,,,,,,18,
+1763,Skeggiold@MG_SAFETYWALL,attack,12,5,500,1000,10000,no,self,always,,,,,,,18,
+1763,Skeggiold@MG_THUNDERSTORM,attack,21,4,500,1500,10000,no,target,always,,,,,,,,
+1763,Skeggiold@MG_THUNDERSTORM,chase,21,4,500,1500,10000,no,target,always,,,,,,,,
+1763,Skeggiold@NPC_HOLYATTACK,attack,189,2,500,500,5000,no,target,always,,,,,,,18,
+1763,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,,,,,,,18,
+1763,Skeggiold@NPC_PETRIFYATTACK,attack,180,2,500,500,5000,no,target,always,,,,,,,3,
1764,Skeggiold@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1764,Skeggiold@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1764,Skeggiold@CR_HOLYCROSS,attack,253,2,1000,0,5000,yes,target,always,,,,,,,,
+1764,Skeggiold@MG_SAFETYWALL,attack,12,5,1000,1000,10000,no,self,always,,,,,,,18,
+1764,Skeggiold@MG_SOULSTRIKE,attack,13,5,500,0,5000,yes,target,always,,,,,,,,
+1764,Skeggiold@MG_SOULSTRIKE,chase,13,5,500,0,5000,yes,target,always,,,,,,,,
+1764,Skeggiold@NPC_HOLYATTACK,attack,189,2,500,500,5000,no,target,always,,,,,,,18,
+1764,Skeggiold@NPC_HOLYATTACK,chase,189,2,500,500,5000,no,target,always,,,,,,,18,
+1765,Valkyrie@AL_HEAL,attack,28,10,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_HEAL,idle,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1765,Valkyrie@AL_HEAL,attack,28,11,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1765,Valkyrie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1765,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-1765,Valkyrie@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,0,,,,,,,
-1765,Valkyrie@KN_BRANDISHSPEAR,attack,57,20,1000,0,5000,yes,target,always,0,,,,,,,
-1765,Valkyrie@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,0,,,,,,,
-1765,Valkyrie@WZ_JUPITEL,attack,84,28,100,2000,5000,yes,target,always,0,,,,,,,
-1766,Angeling@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1766,Angeling@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1766,Angeling@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1766,Angeling@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1766,Angeling@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1766,Angeling@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,0,,,,,,18,
-1766,Angeling@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-1766,Angeling@NPC_HOLYATTACK,attack,189,5,500,500,5000,no,target,always,0,,,,,,18,
-1766,Angeling@NPC_HOLYATTACK,chase,189,5,500,500,5000,no,target,always,0,,,,,,18,
-1766,Angeling@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,3,1031,1062,,,,18,
-1766,Angeling@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,3,1031,1062,,,,18,
-1766,Angeling@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-1766,Angeling@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-1767,Deviling@AL_DECAGI,chase,30,1,2000,1000,5000,no,target,always,0,,,,,,29,
-1767,Deviling@NPC_DARKNESSATTACK,attack,190,2,2000,0,5000,no,target,always,0,,,,,,6,
-1767,Deviling@NPC_DARKSTRIKE,attack,340,5,3000,700,0,no,target,always,0,,,,,,32,
-1767,Deviling@NPC_DARKSTRIKE,chase,340,5,3000,700,0,no,target,always,0,,,,,,32,
-1767,Deviling@NPC_SUMMONSLAVE,attack,196,7,10000,2000,10000,no,self,slavele,3,1595,1595,1595,1433,,6,
-1767,Deviling@NPC_SUMMONSLAVE,idle,196,7,10000,2000,10000,no,self,slavele,3,1595,1595,1595,1433,,6,
-1768,Gloom Under Night@NPC_FIREATTACK,attack,186,10,1000,0,5000,no,target,always,0,,,,,,,
-1768,Gloom Under Night@NPC_TELEKINESISATTACK,attack,191,10,1000,0,5000,no,target,always,0,,,,,,,
-1768,Gloom Under Night@WZ_FIREPILLAR,idle,80,11,1000,0,5000,yes,around2,always,0,,,,,,,
-1768,Gloom Under Night@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-1768,Gloom Under Night@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-1768,Gloom Under Night@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,0,,,,,,,
-1768,Gloom Under Night@NPC_POWERUP,attack,349,5,10000,700,25000,no,self,myhpltmaxrate,30,,,,,,,
-1768,Gloom Under Night@NPC_POWERUP,attack,349,5,2000,700,50000,no,self,always,0,,,,,,,
+1765,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+1765,Valkyrie@KN_BRANDISHSPEAR,attack,57,10,1000,0,5000,yes,target,always,,,,,,,,
+1765,Valkyrie@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,,,,,,,,
+1765,Valkyrie@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,,,,,,,,
+1765,Valkyrie@WZ_JUPITEL,attack,84,10,100,2000,5000,yes,target,always,,,,,,,,
+1768,Gloom Under Night@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1768,Gloom Under Night@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1768,Gloom Under Night@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,,,,,,,,
+1768,Gloom Under Night@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,,,,,,,,
+1768,Gloom Under Night@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,,,,,,,,
+1768,Gloom Under Night@MG_FIREBALL,attack,17,10,1000,500,20000,no,target,always,,,,,,,,
+1768,Gloom Under Night@MG_FIREBALL,chase,17,10,10000,500,20000,no,target,always,,,,,,,,
+1768,Gloom Under Night@NPC_BLEEDING,attack,660,3,2000,0,50000,yes,target,always,,,,,,,,
+1768,Gloom Under Night@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1768,Gloom Under Night@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1768,Gloom Under Night@NPC_FIREATTACK,attack,186,10,1000,0,5000,no,target,always,,,,,,,,
1768,Gloom Under Night@NPC_FIREBREATH,chase,654,10,2000,500,10000,no,target,myhpltmaxrate,80,,,,,,,
-1768,Gloom Under Night@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-1768,Gloom Under Night@WZ_SIGHTRASHER,attack,81,20,2000,0,5000,yes,self,always,0,,,,,,,
-1768,Gloom Under Night@MG_FIREBALL,attack,17,20,1000,500,20000,no,target,always,0,,,,,,,
-1768,Gloom Under Night@MG_FIREBALL,chase,17,20,10000,500,20000,no,target,always,0,,,,,,,
-1768,Gloom Under Night@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1768,Gloom Under Night@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+1768,Gloom Under Night@NPC_POWERUP,attack,349,5,2000,700,50000,no,self,always,,,,,,,,
+1768,Gloom Under Night@NPC_POWERUP,attack,349,5,10000,700,25000,no,self,myhpltmaxrate,30,,,,,,,
1768,Gloom Under Night@NPC_SUMMONSLAVE,attack,196,4,10000,700,30000,no,self,slavele,3,1786,1787,,,,,
1768,Gloom Under Night@NPC_SUMMONSLAVE,idle,196,4,10000,700,30000,no,self,slavele,3,1786,1787,,,,,
-1768,Gloom Under Night@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1768,Gloom Under Night@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1769,Agav@MG_SIGHT,idle,10,1,1000,0,5000,yes,self,always,0,,,,,,,
-1769,Agav@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-1769,Agav@MG_SOULSTRIKE,chase,13,9,1000,500,5000,yes,target,always,0,,,,,,,
-1769,Agav@MG_SOULSTRIKE,attack,13,9,1000,500,5000,yes,target,always,0,,,,,,,
-1769,Agav@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,always,0,,,,,,,
-1769,Agav@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,always,0,,,,,,,
-1769,Agav@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,0,,,,,,,
-1769,Agav@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,0,,,,,,,
-1769,Agav@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1769,Agav@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1769,Agav@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1769,Agav@PR_LEXDIVINA,attack,76,1,1000,0,5000,yes,target,always,0,,,,,,36,
-1769,Agav@PR_LEXDIVINA,chase,76,1,1000,0,5000,yes,target,always,0,,,,,,36,
-1769,Agav@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
-1769,Agav@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
+1768,Gloom Under Night@NPC_TELEKINESISATTACK,attack,191,10,1000,0,5000,no,target,always,,,,,,,,
+1768,Gloom Under Night@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+1768,Gloom Under Night@WZ_FIREPILLAR,idle,80,10,1000,0,5000,yes,around2,always,,,,,,,,
+1768,Gloom Under Night@WZ_SIGHTRASHER,attack,81,10,2000,0,5000,yes,self,always,,,,,,,,
+1769,Agav@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
1769,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1769,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1769,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1769,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1769,Agav@AL_HEAL,chase,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
+1769,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
+1769,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1769,Agav@AL_HEAL,chase,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
-1770,Echio@CR_HOLYCROSS,attack,253,5,1000,0,5000,yes,target,always,0,,,,,,,
-1770,Echio@SM_BASH,attack,5,7,1000,0,5000,yes,target,always,0,,,,,,,
-1770,Echio@NPC_SLEEPATTACK,attack,182,4,500,0,5000,yes,target,always,0,,,,,,,
-1770,Echio@AS_SONICBLOW,attack,136,5,1000,800,5000,no,target,always,0,,,,,,,
-1770,Echio@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1770,Echio@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,0,,,,,,,
-1770,Echio@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,0,,,,,,,
-1770,Echio@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,0,,,,,,,
-1770,Echio@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,36,
-1770,Echio@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,36,
-1771,Vanberk@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,0,,,,,,,
-1771,Vanberk@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1771,Vanberk@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
-1771,Vanberk@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1771,Vanberk@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1771,Vanberk@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,0,,,,,,,
-1771,Vanberk@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,0,,,,,,,
-1772,Isilla@MG_THUNDERSTORM,attack,21,5,500,1200,10000,no,target,always,0,,,,,,,
-1772,Isilla@MG_THUNDERSTORM,chase,21,5,500,1200,10000,no,target,always,0,,,,,,,
-1772,Isilla@NPC_HOLYATTACK,attack,189,2,500,0,5000,yes,target,always,0,,,,,,,
-1772,Isilla@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1772,Isilla@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1772,Isilla@PR_LEXDIVINA,attack,76,1,500,0,5000,yes,target,always,0,,,,,,36,
-1772,Isilla@PR_LEXDIVINA,chase,76,1,500,0,5000,yes,target,always,0,,,,,,36,
-1772,Isilla@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
-1772,Isilla@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
+1769,Agav@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,,,,,,,,
+1769,Agav@MG_SIGHT,idle,10,1,1000,0,5000,yes,self,always,,,,,,,,
+1769,Agav@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
+1769,Agav@MG_SOULSTRIKE,attack,13,9,1000,500,5000,yes,target,always,,,,,,,,
+1769,Agav@MG_SOULSTRIKE,chase,13,9,1000,500,5000,yes,target,always,,,,,,,,
+1769,Agav@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,always,,,,,,,,
+1769,Agav@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,always,,,,,,,,
+1769,Agav@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,,,,,,,30,
+1769,Agav@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,,,,,,,30,
+1769,Agav@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,,,,,,,,
+1769,Agav@PR_LEXDIVINA,attack,76,1,1000,0,5000,yes,target,always,,,,,,,36,
+1769,Agav@PR_LEXDIVINA,chase,76,1,1000,0,5000,yes,target,always,,,,,,,36,
+1769,Agav@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1769,Agav@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1770,Echio@AS_SONICBLOW,attack,136,5,1000,800,5000,yes,target,always,,,,,,,,
+1770,Echio@BS_MAXIMIZE,attack,114,5,500,500,5000,yes,self,always,,,,,,,,
+1770,Echio@BS_MAXIMIZE,chase,114,5,500,500,5000,yes,self,always,,,,,,,,
+1770,Echio@CR_HOLYCROSS,attack,253,5,1000,0,5000,yes,target,always,,,,,,,,
+1770,Echio@NPC_CRITICALSLASH,angry,170,1,500,500,5000,yes,target,always,,,,,,,36,
+1770,Echio@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,,,,,,,36,
+1770,Echio@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,,,,,,,,
+1770,Echio@NPC_SLEEPATTACK,attack,182,4,500,0,5000,yes,target,always,,,,,,,,
+1770,Echio@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,36,
+1770,Echio@SM_BASH,attack,5,7,1000,0,5000,yes,target,always,,,,,,,,
+1771,Vanberk@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,,
+1771,Vanberk@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,,,,,,,,
+1771,Vanberk@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,,,,,,,,
+1771,Vanberk@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,,,,,,,,
+1771,Vanberk@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1771,Vanberk@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,36,
+1771,Vanberk@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,,,,,,,36,
1772,Isilla@AL_HEAL,attack,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1772,Isilla@AL_HEAL,attack,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1772,Isilla@AL_HEAL,idle,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1772,Isilla@AL_HEAL,idle,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1772,Isilla@AL_HEAL,chase,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
+1772,Isilla@AL_HEAL,attack,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
+1772,Isilla@AL_HEAL,idle,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1772,Isilla@AL_HEAL,chase,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
-1773,Hodremlin@AS_SONICBLOW,attack,136,5,500,500,5000,no,target,always,0,,,,,,,
-1773,Hodremlin@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1773,Hodremlin@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-1773,Hodremlin@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-1773,Hodremlin@NPC_DARKNESSATTACK,attack,190,2,500,800,5000,no,target,always,0,,,,,,32,
-1773,Hodremlin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,52,,,,,,
-1773,Hodremlin@RG_STRIPARMOR,attack,217,5,500,0,5000,yes,target,always,0,,,,,,,
-1774,Seeker@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,52,
-1774,Seeker@WZ_JUPITEL,chase,84,4,2000,0,5000,yes,target,always,0,,,,,,,
-1774,Seeker@NPC_MENTALBREAKER,attack,159,3,200,800,10000,no,target,always,0,,,,,,39,
-1774,Seeker@NPC_MENTALBREAKER,chase,159,3,200,800,10000,no,target,always,0,,,,,,39,
-1774,Seeker@NPC_PETRIFYATTACK,attack,180,3,200,500,10000,no,target,always,0,,,,,,,
-1774,Seeker@NPC_PETRIFYATTACK,chase,180,3,200,500,10000,no,target,always,0,,,,,,,
-1774,Seeker@SA_DISPELL,attack,289,1,200,0,100000,yes,target,always,0,,,,,,18,
-1775,Snowier@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,,
-1775,Snowier@NPC_WATERATTACK,attack,184,4,500,500,5000,no,target,always,0,,,,,,,
-1775,Snowier@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
-1775,Snowier@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
-1775,Snowier@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,0,,,,,,,
+1772,Isilla@MG_THUNDERSTORM,attack,21,5,500,1200,10000,no,target,always,,,,,,,,
+1772,Isilla@MG_THUNDERSTORM,chase,21,5,500,1200,10000,no,target,always,,,,,,,,
+1772,Isilla@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,,,,,,,30,
+1772,Isilla@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,,,,,,,30,
+1772,Isilla@NPC_HOLYATTACK,attack,189,2,500,0,5000,yes,target,always,,,,,,,,
+1772,Isilla@PR_LEXDIVINA,attack,76,1,500,0,5000,yes,target,always,,,,,,,36,
+1772,Isilla@PR_LEXDIVINA,chase,76,1,500,0,5000,yes,target,always,,,,,,,36,
+1772,Isilla@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1772,Isilla@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1773,Hodremlin@AS_SONICBLOW,attack,136,5,500,500,5000,no,target,always,,,,,,,,
+1773,Hodremlin@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+1773,Hodremlin@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,,,,,,,,
+1773,Hodremlin@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+1773,Hodremlin@NPC_DARKNESSATTACK,attack,190,3,500,800,5000,no,target,always,,,,,,,32,
+1773,Hodremlin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,52,,,,,,
+1773,Hodremlin@RG_STRIPARMOR,attack,217,5,500,0,5000,yes,target,always,,,,,,,,
+1774,Seeker@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,52,
+1774,Seeker@NPC_MENTALBREAKER,attack,159,3,200,800,10000,no,target,always,,,,,,,39,
+1774,Seeker@NPC_MENTALBREAKER,chase,159,3,200,800,10000,no,target,always,,,,,,,39,
+1774,Seeker@NPC_PETRIFYATTACK,attack,180,3,200,500,10000,no,target,always,,,,,,,,
+1774,Seeker@NPC_PETRIFYATTACK,chase,180,3,200,500,10000,no,target,always,,,,,,,,
+1774,Seeker@SA_DISPELL,attack,289,1,200,0,100000,yes,target,always,,,,,,,18,
+1774,Seeker@WZ_JUPITEL,chase,84,4,2000,0,5000,yes,target,always,,,,,,,,
+1775,Snowier@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+1775,Snowier@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,,,,,,,,
1775,Snowier@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,36,
+1775,Snowier@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,,,,,,,,
+1775,Snowier@NPC_WATERATTACK,attack,184,4,500,500,5000,no,target,always,,,,,,,,
+1775,Snowier@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
1775,Snowier@SM_ENDURE,chase,8,3,5000,0,5000,yes,self,longrangeattacked,,,,,,,,
-1776,Siroma@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,45,,,,,,
-1776,Siroma@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,myhpltmaxrate,1,28,,,,,,
+1776,Siroma@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,45,,,,,,
1776,Siroma@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,myhpltmaxrate,1,28,,,,,,
-1776,Siroma@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,0,,,,,,32,
-1776,Siroma@NPC_SILENCEATTACK,chase,178,2,500,700,5000,no,target,always,0,,,,,,32,
-1776,Siroma@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
-1776,Siroma@NPC_WATERATTACK,attack,184,2,2000,0,5000,no,target,always,0,,,,,,29,
-1776,Siroma@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-1776,Siroma@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-//1777,Ice Titan@KN_BOWLINGBASH,attack,62,7,500,0,5000,yes,target,always,0,,,,,,,
-1777,Ice Titan@MG_FROSTDIVER,chase,15,7,10000,800,5000,no,target,always,0,,,,,,,
-1777,Ice Titan@MG_FROSTDIVER,attack,15,5,2000,800,5000,no,target,always,0,,,,,,,
-1777,Ice Titan@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,0,,,,,,36,
-1777,Ice Titan@NPC_WATERATTACK,attack,184,3,2000,0,5000,no,target,always,0,,,,,,29,
-1778,Gazeti@CR_AUTOGUARD,attack,249,3,2000,0,10000,yes,self,always,0,,,,,,,
-1778,Gazeti@MG_COLDBOLT,chase,14,3,2000,0,5000,no,target,always,0,,,,,,,
-1778,Gazeti@MG_COLDBOLT,attack,14,5,2000,0,5000,no,target,always,0,,,,,,,
-1778,Gazeti@NPC_GUIDEDATTACK,attack,172,2,500,0,20000,no,target,always,0,,,,,,,
-1778,Gazeti@NPC_WATERATTACK,attack,184,2,2000,0,5000,no,target,always,0,,,,,,,
-1779,Ktullanux@NPC_WATERATTACK,attack,184,10,1000,500,5000,no,target,always,0,,,,,,,
-1779,Ktullanux@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,no,target,always,0,,,,,,,
+1776,Siroma@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,myhpltmaxrate,1,28,,,,,,
+1776,Siroma@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,,,,,,,32,
+1776,Siroma@NPC_SILENCEATTACK,chase,178,2,500,700,5000,no,target,always,,,,,,,32,
+1776,Siroma@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
+1776,Siroma@NPC_WATERATTACK,attack,184,2,2000,0,5000,no,target,always,,,,,,,29,
+1776,Siroma@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,18,
+1776,Siroma@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,18,
+1777,Ice Titan@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+1777,Ice Titan@MG_FROSTDIVER,attack,15,5,2000,800,5000,no,target,always,,,,,,,,
+1777,Ice Titan@MG_FROSTDIVER,chase,15,7,10000,800,5000,no,target,always,,,,,,,,
+1777,Ice Titan@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,,,,,,,36,
+1777,Ice Titan@NPC_WATERATTACK,attack,184,3,2000,0,5000,no,target,always,,,,,,,29,
+1778,Gazeti@CR_AUTOGUARD,attack,249,3,2000,0,10000,yes,self,always,,,,,,,,
+1778,Gazeti@MG_COLDBOLT,attack,14,5,2000,0,5000,no,target,always,,,,,,,,
+1778,Gazeti@MG_COLDBOLT,chase,14,3,2000,0,5000,no,target,always,,,,,,,,
+1778,Gazeti@NPC_GUIDEDATTACK,attack,172,2,500,0,20000,no,target,always,,,,,,,,
+1778,Gazeti@NPC_WATERATTACK,attack,184,2,2000,0,5000,no,target,always,,,,,,,,
+1779,Ktullanux@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
1779,Ktullanux@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1779,Ktullanux@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1779,Ktullanux@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1779,Ktullanux@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
+1779,Ktullanux@MG_FROSTDIVER,idle,15,10,5000,1000,7000,no,target,always,,,,,,,,
+1779,Ktullanux@MG_FROSTDIVER,chase,15,10,5000,1000,7000,no,target,always,,,,,,,,
+1779,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+1779,Ktullanux@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1779,Ktullanux@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+1779,Ktullanux@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1779,Ktullanux@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1779,Ktullanux@NPC_CRITICALWOUND,attack,673,3,4000,0,50000,yes,target,always,,,,,,,,
+1779,Ktullanux@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+1779,Ktullanux@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1779,Ktullanux@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,no,target,always,,,,,,,,
1779,Ktullanux@NPC_SUMMONSLAVE,attack,196,4,10000,700,30000,no,self,slavele,3,1788,,,,,,
1779,Ktullanux@NPC_SUMMONSLAVE,idle,196,4,10000,700,30000,no,self,slavele,3,1788,,,,,,
-1779,Ktullanux@NPC_WIDEFREEZE,chase,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1779,Ktullanux@NPC_WATERATTACK,attack,184,10,1000,500,5000,no,target,always,,,,,,,,
1779,Ktullanux@NPC_WIDEFREEZE,attack,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
-1779,Ktullanux@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-1779,Ktullanux@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-1779,Ktullanux@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,29,
-1779,Ktullanux@MG_FROSTDIVER,idle,15,10,5000,1000,7000,no,randomtarget,always,0,,,,,,,
-1779,Ktullanux@MG_FROSTDIVER,chase,15,10,5000,1000,7000,no,target,always,0,,,,,,,
-1779,Ktullanux@WZ_STORMGUST,chase,89,10,5000,1000,20000,no,target,always,0,,,,,,,
-1779,Ktullanux@WZ_STORMGUST,attack,89,10,5000,1000,20000,no,target,always,0,,,,,,,
-1779,Ktullanux@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,0,,,,,,,
-1779,Ktullanux@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,0,,,,,,,
-1779,Ktullanux@WZ_FROSTNOVA,chase,88,10,5000,0,20000,yes,self,always,0,,,,,,,
-1779,Ktullanux@WZ_FROSTNOVA,attack,88,10,5000,0,20000,yes,self,always,0,,,,,,,
-1779,Ktullanux@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-1779,Ktullanux@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1779,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-1779,Ktullanux@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1779,Ktullanux@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
-1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,randomtarget,always,0,,,,,,6,
-1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
+1779,Ktullanux@NPC_WIDEFREEZE,chase,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1779,Ktullanux@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,,,,,,,,
+1779,Ktullanux@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,,,,,,,,
+1779,Ktullanux@WZ_FROSTNOVA,attack,88,10,5000,0,20000,yes,self,always,,,,,,,,
+1779,Ktullanux@WZ_FROSTNOVA,chase,88,10,5000,0,20000,yes,self,always,,,,,,,,
+1779,Ktullanux@WZ_STORMGUST,attack,89,10,5000,1000,20000,no,target,always,,,,,,,,
+1779,Ktullanux@WZ_STORMGUST,chase,89,10,5000,1000,20000,no,target,always,,,,,,,,
+1779,Ktullanux@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,,,,,,,,
+1779,Ktullanux@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,,,,,,,,
1780,Muscipular@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1780,Muscipular@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
-1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
-1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
-1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,no,randomtarget,always,0,,,,,,,
-1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,randomtarget,always,0,,,,,,,
-1781,Drosera@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
-1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,no,randomtarget,always,0,,,,,,6,
-1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,randomtarget,always,0,,,,,,,
-1782,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1782,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,0,,,,,,6,
-1782,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,0x308D,,,,,
-1783,Galion@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
-1783,Galion@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,0,,,,,,6,
-1783,Galion@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,0,
-1783,Galion@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-1783,Galion@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x31B5,,,,,
+1780,Muscipular@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,6,
+1780,Muscipular@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,,,,,,,,
+1780,Muscipular@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,,,,,,,,
+1780,Muscipular@NPC_PETRIFYATTACK,attack,180,5,500,0,5000,yes,target,always,,,,,,,,
+1781,Drosera@KN_PIERCE,attack,56,5,500,700,5000,yes,target,always,,,,,,,,
+1781,Drosera@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,yes,target,always,,,,,,,,
+1781,Drosera@NPC_GROUNDATTACK,attack,185,1,1000,0,5000,yes,target,always,,,,,,,,
+1781,Drosera@NPC_GUIDEDATTACK,attack,172,3,500,1000,20000,yes,target,always,,,,,,,6,
+1781,Drosera@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,,
+1781,Drosera@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,,,,,,,,
+1782,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,,,,,,,6,
+1782,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,0x308D,,,,,
+1782,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
1783,Galion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1783,Galion@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,0,
+1783,Galion@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,,,,,,,6,
+1783,Galion@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1783,Galion@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
1783,Galion@NPC_SUMMONSLAVE,attack,196,3,10000,1000,30000,no,self,slavele,3,1794,,,,,,
1783,Galion@NPC_SUMMONSLAVE,idle,196,3,10000,1000,30000,no,self,slavele,3,1794,,,,,,
+1783,Galion@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
1784,Stapo@NPC_KEEPING,attack,201,1,1000,1000,5000,no,self,myhpltmaxrate,25,,,,,,9,
-1784,Stapo@SM_BASH,attack,5,3,500,0,5000,yes,target,always,0,,,,,,,
-1785,Atroce@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1785,Atroce@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1785,Atroce@NPC_SUMMONSLAVE,attack,196,3,10000,700,30000,no,self,slavele,0,1791,,,,,,
-1785,Atroce@NPC_SUMMONSLAVE,idle,196,3,10000,700,30000,no,self,slavele,0,1791,,,,,,
-1785,Atroce@NPC_DEFENDER,idle,205,1,10000,0,5000,yes,self,longrangeattacked,,,,,,,,
-1785,Atroce@KN_TWOHANDQUICKEN,attack,60,20,2000,0,120000,yes,self,myhpltmaxrate,30,,,,,,36,
-1785,Atroce@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32,
-1785,Atroce@NPC_BLEEDING,attack,660,5,1000,0,5000,yes,target,always,0,,,,,,32,
-1785,Atroce@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
-1785,Atroce@NPC_DARKNESSATTACK,attack,190,3,500,800,5000,no,target,always,0,,,,,,,
-1785,Atroce@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-1785,Atroce@NPC_POWERUP,attack,349,2,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-1785,Atroce@NPC_POWERUP,attack,349,2,2000,0,50000,yes,self,always,0,,,,,,,
+1784,Stapo@SM_BASH,attack,5,3,500,0,5000,yes,target,always,,,,,,,,
1785,Atroce@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1785,Atroce@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1786,Agav@MG_SIGHT,idle,10,1,1000,0,5000,yes,self,always,0,,,,,,,
-1786,Agav@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-1786,Agav@MG_SOULSTRIKE,chase,13,9,1000,500,5000,yes,target,always,0,,,,,,,
-1786,Agav@MG_SOULSTRIKE,attack,13,9,1000,500,5000,yes,target,always,0,,,,,,,
-1786,Agav@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,always,0,,,,,,,
-1786,Agav@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,always,0,,,,,,,
-1786,Agav@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,0,,,,,,,
-1786,Agav@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,0,,,,,,,
-1786,Agav@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1786,Agav@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1786,Agav@AL_DECAGI,chase,30,48,2000,0,10000,yes,target,always,0,,,,,,,
-1786,Agav@PR_LEXDIVINA,attack,76,1,1000,0,5000,yes,target,always,0,,,,,,36,
-1786,Agav@PR_LEXDIVINA,chase,76,1,1000,0,5000,yes,target,always,0,,,,,,36,
-1786,Agav@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
-1786,Agav@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
+1785,Atroce@KN_TWOHANDQUICKEN,attack,60,10,2000,0,120000,yes,self,myhpltmaxrate,30,,,,,,36,
+1785,Atroce@NPC_BLEEDING,attack,660,5,1000,0,5000,yes,target,always,,,,,,,32,
+1785,Atroce@NPC_BLEEDING,attack,660,5,2000,0,60000,yes,target,always,,,,,,,,
+1785,Atroce@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1785,Atroce@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1785,Atroce@NPC_DARKNESSATTACK,attack,190,3,500,800,5000,no,target,always,,,,,,,,
+1785,Atroce@NPC_DEFENDER,idle,205,1,10000,0,5000,yes,self,longrangeattacked,,,,,,,,
+1785,Atroce@NPC_POWERUP,attack,349,2,2000,0,50000,yes,self,always,,,,,,,,
+1785,Atroce@NPC_POWERUP,attack,349,2,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+1785,Atroce@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+1785,Atroce@NPC_SUMMONSLAVE,attack,196,3,10000,700,30000,no,self,slavele,0,1791,,,,,,
+1785,Atroce@NPC_SUMMONSLAVE,idle,196,3,10000,700,30000,no,self,slavele,0,1791,,,,,,
+1785,Atroce@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
+1785,Atroce@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+1786,Agav@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
1786,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1786,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1786,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1786,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1786,Agav@AL_HEAL,chase,28,9,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
+1786,Agav@AL_HEAL,attack,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
+1786,Agav@AL_HEAL,idle,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1786,Agav@AL_HEAL,chase,28,9,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
-1787,Echio@CR_HOLYCROSS,attack,253,5,1000,0,5000,yes,target,always,0,,,,,,,
-1787,Echio@SM_BASH,attack,5,7,1000,0,5000,yes,target,always,0,,,,,,,
-1787,Echio@NPC_SLEEPATTACK,attack,182,4,500,0,5000,yes,target,always,0,,,,,,,
-1787,Echio@AS_SONICBLOW,attack,136,5,1000,800,5000,no,target,always,0,,,,,,,
-1787,Echio@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1787,Echio@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,0,,,,,,,
-1787,Echio@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,0,,,,,,,
-1787,Echio@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,0,,,,,,,
-1787,Echio@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,36,
-1787,Echio@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,36,
-//1788,Ice Titan@KN_BOWLINGBASH,attack,62,7,500,0,5000,yes,target,always,0,,,,,,,
-1788,Ice Titan@MG_FROSTDIVER,chase,15,7,10000,800,5000,no,target,always,0,,,,,,,
-1788,Ice Titan@MG_FROSTDIVER,attack,15,5,2000,800,5000,no,target,always,0,,,,,,,
-1788,Ice Titan@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,0,,,,,,36,
-1788,Ice Titan@NPC_WATERATTACK,attack,184,3,2000,0,5000,no,target,always,0,,,,,,29,
-1791,Galion@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,,
-1791,Galion@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,0,,,,,,6,
-1791,Galion@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,0,
-1791,Galion@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,0,,,,,,,
-1791,Galion@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x31B5,,,,,
+1786,Agav@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,,,,,,,,
+1786,Agav@MG_SIGHT,idle,10,1,1000,0,5000,yes,self,always,,,,,,,,
+1786,Agav@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
+1786,Agav@MG_SOULSTRIKE,attack,13,9,1000,500,5000,yes,target,always,,,,,,,,
+1786,Agav@MG_SOULSTRIKE,chase,13,9,1000,500,5000,yes,target,always,,,,,,,,
+1786,Agav@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,yes,target,always,,,,,,,,
+1786,Agav@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,yes,target,always,,,,,,,,
+1786,Agav@NPC_CURSEATTACK,attack,181,5,500,800,5000,yes,target,always,,,,,,,30,
+1786,Agav@NPC_CURSEATTACK,chase,181,5,500,800,5000,yes,target,always,,,,,,,30,
+1786,Agav@NPC_HOLYATTACK,attack,189,3,1000,0,5000,yes,target,always,,,,,,,,
+1786,Agav@PR_LEXDIVINA,attack,76,1,1000,0,5000,yes,target,always,,,,,,,36,
+1786,Agav@PR_LEXDIVINA,chase,76,1,1000,0,5000,yes,target,always,,,,,,,36,
+1786,Agav@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1786,Agav@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1787,Echio@AS_SONICBLOW,attack,136,5,1000,800,5000,no,target,always,,,,,,,,
+1787,Echio@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,,,,,,,,
+1787,Echio@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,,,,,,,,
+1787,Echio@CR_HOLYCROSS,attack,253,5,1000,0,5000,yes,target,always,,,,,,,,
+1787,Echio@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,36,
+1787,Echio@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,36,
+1787,Echio@NPC_HOLYATTACK,attack,189,3,500,0,5000,yes,target,always,,,,,,,,
+1787,Echio@NPC_SLEEPATTACK,attack,182,4,500,0,5000,yes,target,always,,,,,,,,
+1787,Echio@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,36,
+1787,Echio@SM_BASH,attack,5,7,1000,0,5000,yes,target,always,,,,,,,,
+1788,Ice Titan@MG_FROSTDIVER,attack,15,5,2000,800,5000,no,target,always,,,,,,,,
+1788,Ice Titan@MG_FROSTDIVER,chase,15,7,10000,800,5000,no,target,always,,,,,,,,
+1788,Ice Titan@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,,,,,,,36,
+1788,Ice Titan@NPC_WATERATTACK,attack,184,3,2000,0,5000,no,target,always,,,,,,,29,
1791,Galion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1794,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1794,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,0,,,,,,6,
-1794,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,0x308D,,,,,
-1795,Bloody Knight@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,always,,,,,,,,
-1795,Bloody Knight@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,,,,,,,,
-1795,Bloody Knight@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
-1795,Bloody Knight@KN_BOWLINGBASH,attack,62,10,1000,0,10000,yes,target,always,,,,,,,,
-1795,Bloody Knight@KN_BOWLINGBASH,attack,62,10,2000,0,0,yes,target,always,,,,,,,,
-1795,Bloody Knight@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
-1795,Bloody Knight@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,,,,,,,,
-1795,Bloody Knight@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,,,,,,,,
-1795,Bloody Knight@CR_GRANDCROSS,attack,254,10,2000,1500,5000,no,self,always,,,,,,,,
-1795,Bloody Knight@KN_TWOHANDQUICKEN,attack,60,20,10000,0,90000,yes,self,always,,,,,,,,
-1795,Bloody Knight@WZ_STORMGUST,idle,89,10,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_VERMILION,idle,85,20,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_METEOR,idle,83,11,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_STORMGUST,chase,89,10,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_VERMILION,chase,85,20,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_METEOR,chase,83,11,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_VERMILION,chase,85,20,10000,1000,20000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_METEOR,chase,83,11,10000,1000,10000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_VERMILION,attack,85,20,10000,1000,20000,no,target,always,,,,,,,,
-1795,Bloody Knight@WZ_METEOR,attack,83,11,10000,1000,20000,no,target,always,,,,,,,,
+1791,Galion@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,0,
+1791,Galion@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,,,,,,,6,
+1791,Galion@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1791,Galion@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1791,Galion@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,,
+1794,Roween@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,,,,,,,6,
+1794,Roween@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,0x308D,,,,,
+1794,Roween@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
// Guild Dungeon SE (13.1)
-1796,Aunoe@MG_THUNDERSTORM,attack,21,5,500,1500,10000,no,target,always,0,,,,,,,
-1796,Aunoe@MG_THUNDERSTORM,chase,21,5,500,1500,10000,no,target,always,0,,,,,,,
-1796,Aunoe@NPC_HOLYATTACK,attack,189,2,500,0,5000,yes,target,always,0,,,,,,,
-1796,Aunoe@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1796,Aunoe@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,0,,,,,,30,
-1796,Aunoe@PR_LEXDIVINA,attack,76,1,500,0,5000,yes,target,always,0,,,,,,36,
-1796,Aunoe@PR_LEXDIVINA,chase,76,1,500,0,5000,yes,target,always,0,,,,,,36,
-1796,Aunoe@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
-1796,Aunoe@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,0,,,,,,36,
1796,Aunoe@AL_HEAL,attack,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1796,Aunoe@AL_HEAL,attack,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1796,Aunoe@AL_HEAL,idle,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
-1796,Aunoe@AL_HEAL,idle,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1796,Aunoe@AL_HEAL,chase,28,5,3000,0,5000,yes,friend,friendhpltmaxrate,50,,,,,,3,
+1796,Aunoe@AL_HEAL,attack,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
+1796,Aunoe@AL_HEAL,idle,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
1796,Aunoe@AL_HEAL,chase,28,5,3000,0,5000,yes,self,myhpltmaxrate,50,,,,,,3,
-1797,Fanat@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,0,,,,,,,
-1797,Fanat@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,0,,,,,,,
-1797,Fanat@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
-1797,Fanat@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1797,Fanat@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,36,
-1797,Fanat@BS_MAXIMIZE,attack,114,5,500,500,5000,no,self,always,0,,,,,,,
-1797,Fanat@BS_MAXIMIZE,chase,114,5,500,500,5000,no,self,always,0,,,,,,,
-1812,Delightful Lude@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1812,Delightful Lude@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-1812,Delightful Lude@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1812,Delightful Lude@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1812,Delightful Lude@NPC_METAMORPHOSIS,attack,193,1,1000,0,60000,no,self,myhpltmaxrate,30,1814,,,,,19,
-1812,Delightful Lude@PR_LEXAETERNA,chase,78,1,1000,1000,5000,yes,target,always,0,,,,,,6,
-1812,Delightful Lude@PR_LEXAETERNA,attack,78,1,1000,1000,5000,yes,target,always,0,,,,,,6,
+1796,Aunoe@MG_THUNDERSTORM,attack,21,5,500,1500,10000,no,target,always,,,,,,,,
+1796,Aunoe@MG_THUNDERSTORM,chase,21,5,500,1500,10000,no,target,always,,,,,,,,
+1796,Aunoe@NPC_CURSEATTACK,attack,181,5,500,800,5000,no,target,always,,,,,,,30,
+1796,Aunoe@NPC_CURSEATTACK,chase,181,5,500,800,5000,no,target,always,,,,,,,30,
+1796,Aunoe@NPC_HOLYATTACK,attack,189,2,500,0,5000,yes,target,always,,,,,,,,
+1796,Aunoe@PR_LEXDIVINA,attack,76,1,500,0,5000,yes,target,always,,,,,,,36,
+1796,Aunoe@PR_LEXDIVINA,chase,76,1,500,0,5000,yes,target,always,,,,,,,36,
+1796,Aunoe@PR_LEXDIVINA,attack,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1796,Aunoe@PR_LEXDIVINA,chase,76,1,5000,0,5000,yes,target,casttargeted,,,,,,,36,
+1797,Fanat@AS_SONICBLOW,attack,136,5,500,800,5000,yes,target,always,,,,,,,,
+1797,Fanat@BS_MAXIMIZE,attack,114,5,500,500,5000,yes,self,always,,,,,,,,
+1797,Fanat@BS_MAXIMIZE,chase,114,5,500,500,5000,yes,self,always,,,,,,,,
+1797,Fanat@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,,,,,,,,
+1797,Fanat@NPC_SLEEPATTACK,attack,182,3,500,0,5000,yes,target,always,,,,,,,,
+1797,Fanat@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,36,
+1797,Fanat@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,,,,,,,36,
+1812,Delightful Lude@AL_TELEPORT,attack,26,1,1000,0,5000,yes,self,always,,,,,,,,
+1812,Delightful Lude@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+1813,Hydrolancer@AL_HEAL,attack,28,10,2000,500,5000,yes,self,myhpltmaxrate,50,,,,,,3,
+1813,Hydrolancer@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,3,
1813,Hydrolancer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1813,Hydrolancer@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,3,
-1813,Hydrolancer@AL_HEAL,attack,28,11,2000,500,5000,no,self,myhpltmaxrate,50,,,,,,3,
-1813,Hydrolancer@NPC_DARKTHUNDER,chase,341,5,8000,700,1000,no,target,always,0,,,,,,,
-1813,Hydrolancer@NPC_GRANDDARKNESS,attack,339,10,2000,900,5000,no,self,always,0,,,,,,,
-1813,Hydrolancer@NPC_DARKCROSS,attack,338,10,2000,1500,10000,no,target,always,0,,,,,,,
-1813,Hydrolancer@WZ_VERMILION,attack,85,10,2500,500,2000,no,target,always,0,,,,,,,
-1813,Hydrolancer@NPC_COMBOATTACK,attack,171,6,2500,700,5000,no,target,always,0,,,,,,24,
-1813,Hydrolancer@AS_VENOMDUST,attack,140,10,3500,1500,5000,no,target,always,0,,,,,,,
-1813,Hydrolancer@NPC_LICK,attack,206,5,4000,0,2000,yes,target,always,0,,,,,,39,
-1813,Hydrolancer@KN_TWOHANDQUICKEN,attack,60,20,5000,0,120000,yes,self,myhpltmaxrate,80,,,,,,27,
+1813,Hydrolancer@AS_VENOMDUST,attack,140,10,3500,1500,5000,yes,target,always,,,,,,,,
+1813,Hydrolancer@KN_TWOHANDQUICKEN,attack,60,10,5000,0,120000,yes,self,myhpltmaxrate,80,,,,,,27,
+1813,Hydrolancer@NPC_COMBOATTACK,attack,171,6,2500,700,5000,yes,target,always,,,,,,,24,
+1813,Hydrolancer@NPC_DARKCROSS,attack,338,10,2000,1500,10000,yes,target,always,,,,,,,,
+1813,Hydrolancer@NPC_DARKTHUNDER,chase,341,5,8000,700,1000,yes,target,always,,,,,,,,
+1813,Hydrolancer@NPC_GRANDDARKNESS,attack,339,10,2000,900,5000,yes,self,always,,,,,,,,
+1813,Hydrolancer@NPC_LICK,attack,206,5,4000,0,2000,yes,target,always,,,,,,,39,
1813,Hydrolancer@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,60,,,,,,3,
-1814,Moonlight Flower@AL_HEAL,attack,28,9,10000,0,5000,no,self,myhpltmaxrate,50,,,,,,21,
-1814,Moonlight Flower@AL_HEAL,chase,28,9,10000,0,5000,no,self,myhpltmaxrate,50,,,,,,21,
-1814,Moonlight Flower@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1814,Moonlight Flower@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1814,Moonlight Flower@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1814,Moonlight Flower@MG_FIREBOLT,chase,19,10,3000,0,5000,no,target,always,0,,,,,,0,
-1814,Moonlight Flower@MG_FIREBOLT,attack,19,10,2000,0,5000,no,target,always,0,,,,,,0,
-1814,Moonlight Flower@MG_FIREBOLT,chase,19,10,4000,0,5000,no,target,skillused,18,,,,,,0,
-1814,Moonlight Flower@WZ_WATERBALL,attack,86,5,2000,1000,5000,no,target,always,0,,,,,,,
-1814,Moonlight Flower@WZ_WATERBALL,chase,86,5,2000,1000,5000,no,target,always,0,,,,,,,
-1814,Moonlight Flower@WZ_METEOR,attack,83,5,2000,1500,5000,no,target,always,0,,,,,,,
-1814,Moonlight Flower@WZ_METEOR,chase,83,5,2000,1500,5000,no,target,always,0,,,,,,,
-1814,Moonlight Flower@MC_MAMMONITE,attack,42,20,2000,0,5000,no,target,always,0,,,,,,8,
-1814,Moonlight Flower@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,0,,,,,,,
-1814,Moonlight Flower@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,6,
-1814,Moonlight Flower@MG_FIREWALL,attack,18,10,1000,500,5000,yes,target,always,0,,,,,,,
-1814,Moonlight Flower@MG_FIREWALL,chase,18,10,1000,500,5000,yes,target,always,0,,,,,,,
-1814,Moonlight Flower@SA_DISPELL,attack,289,5,500,500,5000,no,target,always,0,,,,,,6,
-1814,Moonlight Flower@SA_DISPELL,chase,289,5,500,500,5000,no,target,always,0,,,,,,6,
-1817,Detale@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1817,Detale@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
-1817,Detale@NPC_DARKBREATH,attack,202,5,500,800,5000,no,target,always,0,,,,,,36,
-1817,Detale@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,12,,,,,,36,
-1817,Detale@KN_TWOHANDQUICKEN,attack,60,20,10000,0,300000,yes,self,myhpltmaxrate,12,,,,,,36,
-1817,Detale@BS_HAMMERFALL,attack,110,11,10000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-1817,Detale@BS_HAMMERFALL,chase,110,11,5000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
-1817,Detale@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,29,
-1817,Detale@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,0,,,,,,,
-1817,Detale@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-1817,Detale@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-1817,Detale@CR_GRANDCROSS,attack,254,10,5000,100,5000,no,self,always,0,,,,,,6,
-1817,Detale@WZ_STORMGUST,attack,89,10,2000,1000,2000,no,target,always,0,,,,,,,
-1817,Detale@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,,
-1817,Detale@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,,
-1817,Detale@MG_FIREBALL,chase,17,20,5000,500,1000,no,target,always,0,,,,,,,
-1817,Detale@WZ_METEOR,attack,83,11,2000,500,2000,no,target,always,0,,,,,,,
-1817,Detale@WZ_METEOR,chase,83,11,2000,500,2000,no,target,always,0,,,,,,,
-1817,Detale@BS_MAXIMIZE,chase,114,5,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-1817,Detale@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-1817,Detale@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1817,Detale@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1817,Detale@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
-1819,Bathory@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1819,Bathory@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,30,,,,,,
-1819,Bathory@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1819,Bathory@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1819,Bathory@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-1819,Bathory@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-1820,Bigfoot@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1820,Bigfoot@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1820,Bigfoot@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1820,Bigfoot@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
+1813,Hydrolancer@WZ_VERMILION,attack,85,10,2500,500,2000,yes,target,always,,,,,,,,
+1814,Fox Queen@AL_HEAL,attack,28,9,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,21,
+1814,Fox Queen@AL_HEAL,chase,28,9,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,21,
+1814,Fox Queen@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1814,Fox Queen@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1814,Fox Queen@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1814,Fox Queen@MC_MAMMONITE,attack,42,10,2000,0,5000,yes,target,always,,,,,,,8,
+1814,Fox Queen@MG_FIREBOLT,attack,19,10,2000,0,5000,yes,target,always,,,,,,,0,
+1814,Fox Queen@MG_FIREBOLT,chase,19,10,3000,0,5000,yes,target,always,,,,,,,0,
+1814,Fox Queen@MG_FIREBOLT,chase,19,10,4000,0,5000,yes,target,skillused,18,,,,,,0,
+1814,Fox Queen@MG_FIREWALL,attack,18,10,1000,500,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@MG_FIREWALL,chase,18,10,1000,500,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,6,
+1814,Fox Queen@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@SA_DISPELL,attack,289,5,500,500,5000,yes,target,always,,,,,,,6,
+1814,Fox Queen@SA_DISPELL,chase,289,5,500,500,5000,yes,target,always,,,,,,,6,
+1814,Fox Queen@WZ_METEOR,attack,83,5,2000,1500,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@WZ_METEOR,chase,83,5,2000,1500,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@WZ_WATERBALL,attack,86,5,2000,1000,5000,yes,target,always,,,,,,,,
+1814,Fox Queen@WZ_WATERBALL,chase,86,5,2000,1000,5000,yes,target,always,,,,,,,,
+1817,Detardeurus@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1817,Detardeurus@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1817,Detardeurus@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+1817,Detardeurus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1817,Detardeurus@BS_HAMMERFALL,attack,110,10,10000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
+1817,Detardeurus@BS_HAMMERFALL,chase,110,10,5000,0,5000,yes,target,myhpltmaxrate,20,,,,,,,
+1817,Detardeurus@BS_MAXIMIZE,chase,114,5,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+1817,Detardeurus@CR_GRANDCROSS,attack,254,10,5000,100,5000,yes,self,always,,,,,,,6,
+1817,Detardeurus@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+1817,Detardeurus@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+1817,Detardeurus@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,yes,self,myhpltmaxrate,12,,,,,,36,
+1817,Detardeurus@MG_FIREBALL,chase,17,10,5000,500,1000,yes,target,always,,,,,,,,
+1817,Detardeurus@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+1817,Detardeurus@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,,,,,,,,
+1817,Detardeurus@NPC_DARKBREATH,attack,202,5,500,800,5000,yes,target,always,,,,,,,36,
+1817,Detardeurus@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,12,,,,,,36,
+1817,Detardeurus@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,,,,,,,,
+1817,Detardeurus@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+1817,Detardeurus@WZ_METEOR,attack,83,10,2000,500,2000,yes,target,always,,,,,,,,
+1817,Detardeurus@WZ_METEOR,chase,83,10,2000,500,2000,yes,target,always,,,,,,,,
+1817,Detardeurus@WZ_STORMGUST,attack,89,10,2000,1000,2000,yes,target,always,,,,,,,,
+1817,Detardeurus@WZ_VERMILION,attack,85,10,2000,500,2000,yes,target,always,,,,,,,,
+1817,Detardeurus@WZ_VERMILION,chase,85,10,2000,500,2000,yes,target,always,,,,,,,,
+1819,Bathory@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,,
+1819,Bathory@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,30,,,,,,
+1819,Bathory@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1819,Bathory@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1819,Bathory@NPC_SILENCEATTACK,attack,178,3,500,700,5000,yes,target,always,,,,,,,,
+1819,Bathory@NPC_STOP,attack,342,1,500,500,5000,yes,target,always,,,,,,,30,
+1820,Bigfoot@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1820,Bigfoot@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+1820,Bigfoot@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1820,Bigfoot@NPC_STUNATTACK,attack,179,2,500,1500,5000,yes,target,always,,,,,,,,
1820,Bigfoot@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1821,Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,0,,,,,,,
-1821,Desert Wolf@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1821,Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x308D,,,,,
-1821,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,6,
+1821,Desert Wolf@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1821,Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x308D,,,,,
+1821,Desert Wolf@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
+1821,Desert Wolf@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,6,
1822,Deviruchi@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1822,Deviruchi@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,29,
-1822,Deviruchi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
+1822,Deviruchi@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,,,,,,,29,
+1822,Deviruchi@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+1822,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,,,,,,,29,
+1822,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,,,,,,,29,
1822,Deviruchi@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
1822,Deviruchi@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
-1822,Deviruchi@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1822,Deviruchi@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,0,,,,,,29,
-1823,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1823,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1823,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,0,,,,,,,
-1823,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1823,Freezer@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1823,Freezer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1823,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-1824,Garm Baby@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,0,,,,,,6,
-1824,Garm Baby@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,0,,,,,,6,
-1825,Christmas Goblin@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,0,,,,,,,
-1825,Christmas Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,18,,,,,,
-1825,Christmas Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1825,Christmas Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,0x3095,,,,,
-1825,Christmas Goblin@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,0,,,,,,,
-1826,Myst@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1826,Myst@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,,,,,,
-1826,Myst@NPC_MENTALBREAKER,attack,159,2,500,800,5000,no,target,always,0,,,,,,9,
-1826,Myst@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,9,
-1827,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,no,target,always,0,,,,,,6,
-1827,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,6,,,,,,
-1827,Sasquatch@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1827,Sasquatch@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
+1823,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1823,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1823,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,,,,,,,,
+1823,Freezer@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1823,Freezer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1823,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1823,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,,,,,,,6,
+1824,Baby Hatii@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,,,,,,,6,
+1824,Baby Hatii@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,,,,,,,6,
+1825,Santa Goblin@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,,,,,,,,
+1825,Santa Goblin@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1825,Santa Goblin@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3695,,,,,
+1825,Santa Goblin@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,18,,,,,,
+1825,Santa Goblin@NPC_WINDATTACK,attack,187,2,500,500,5000,yes,target,always,,,,,,,,
+1826,Myst@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1826,Myst@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,,,,,,
+1826,Myst@NPC_MENTALBREAKER,attack,159,2,500,800,5000,yes,target,always,,,,,,,9,
+1826,Myst@NPC_POISONATTACK,attack,188,3,500,500,5000,yes,target,always,,,,,,,9,
+1827,Sasquatch@KN_SPEARSTAB,attack,58,10,500,800,5000,yes,target,always,,,,,,,6,
+1827,Sasquatch@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1827,Sasquatch@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3695,,,,,
+1827,Sasquatch@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,6,,,,,,
1827,Sasquatch@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
// Thor Volcano (11.2)
-1829,Sword Guardian@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1829,Sword Guardian@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,0,,,,,,,
-1829,Sword Guardian@KN_SPEARBOOMERANG,chase,59,5,10000,0,5000,yes,target,always,0,,,,,,,
-1829,Sword Guardian@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,,
-1829,Sword Guardian@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
-1829,Sword Guardian@CR_SHIELDCHARGE,attack,250,5,1000,0,5000,yes,target,always,0,,,,,,,
-1829,Sword Guardian@NPC_STUNATTACK,attack,179,5,1500,0,5000,yes,target,always,0,,,,,,,
-1829,Sword Guardian@NPC_COMBOATTACK,attack,171,5,1500,0,5000,yes,target,always,0,,,,,,,
-1829,Sword Guardian@NPC_WIDEBLEEDING,attack,665,4,10000,0,15000,yes,self,myhpltmaxrate,40,,,,,,,
-1830,Bow Guardian@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1830,Bow Guardian@AC_DOUBLE,idle,46,10,5000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_SHOWER,idle,47,5,5000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_CHARGEARROW,idle,148,1,5000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_CHARGEARROW,chase,148,1,500,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_DOUBLE,attack,46,10,2000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_SHOWER,attack,47,5,2000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@NPC_STUNATTACK,attack,179,5,1500,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@NPC_COMBOATTACK,attack,171,5,1500,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@NPC_BLEEDING,attack,660,5,1500,0,5000,yes,target,always,0,,,,,,,
-1830,Bow Guardian@NPC_WIDEBLEEDING,attack,665,4,10000,0,15000,yes,self,myhpltmaxrate,40,,,,,,,
+1829,Sword Master@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1829,Sword Master@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,,,,,,,,
+1829,Sword Master@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,,,,,,,,
+1829,Sword Master@CR_SHIELDCHARGE,attack,250,5,1000,0,5000,yes,target,always,,,,,,,,
+1829,Sword Master@KN_SPEARBOOMERANG,chase,59,5,10000,0,5000,yes,target,always,,,,,,,,
+1829,Sword Master@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
+1829,Sword Master@NPC_COMBOATTACK,attack,171,5,1500,0,5000,yes,target,always,,,,,,,,
+1829,Sword Master@NPC_STUNATTACK,attack,179,5,1500,0,5000,yes,target,always,,,,,,,,
+1829,Sword Master@NPC_WIDEBLEEDING,attack,665,4,10000,0,15000,yes,self,myhpltmaxrate,40,,,,,,,
+1830,Bow Master@AC_CHARGEARROW,attack,148,1,2000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_CHARGEARROW,idle,148,1,5000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_CHARGEARROW,chase,148,1,500,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_DOUBLE,attack,46,10,2000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_DOUBLE,idle,46,10,5000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_SHOWER,attack,47,5,2000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AC_SHOWER,idle,47,5,5000,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1830,Bow Master@NPC_BLEEDING,attack,660,5,1500,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@NPC_COMBOATTACK,attack,171,5,1500,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@NPC_STUNATTACK,attack,179,5,1500,0,5000,yes,target,always,,,,,,,,
+1830,Bow Master@NPC_WIDEBLEEDING,attack,665,4,10000,0,15000,yes,self,myhpltmaxrate,40,,,,,,,
1831,Salamander@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1831,Salamander@MG_FIREBALL,idle,17,5,10000,0,5000,yes,target,always,0,,,,,,,
-1831,Salamander@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,0,,,,,,,
-1831,Salamander@CR_REFLECTSHIELD,idle,252,3,1000,0,200000,no,self,always,0,,,,,,,
-1831,Salamander@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,0,,,,,,,
-1831,Salamander@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,0,,,,,,,
-1831,Salamander@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,0,,,,,,,
-1831,Salamander@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,,
-1831,Salamander@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
-1831,Salamander@KN_TWOHANDQUICKEN,attack,60,20,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
-1831,Salamander@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
+1831,Salamander@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,,
+1831,Salamander@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,,,,,,,,
+1831,Salamander@CR_REFLECTSHIELD,idle,252,3,1000,0,200000,no,self,always,,,,,,,,
+1831,Salamander@KN_TWOHANDQUICKEN,attack,60,10,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
+1831,Salamander@MG_FIREBALL,idle,17,5,10000,0,5000,yes,target,always,,,,,,,,
+1831,Salamander@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,,,,,,,,
+1831,Salamander@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,,,,,,,,
+1831,Salamander@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+1831,Salamander@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,,,,,,,,
1831,Salamander@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,myhpltmaxrate,20,,,,,,,
-1832,Ifrit@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1832,Ifrit@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1832,Ifrit@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+1831,Salamander@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+1832,Ifrit@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
1832,Ifrit@AL_HEAL,idle,28,1,10000,0,10000,yes,self,myhpltmaxrate,99,,,,,,,
+1832,Ifrit@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
+1832,Ifrit@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1832,Ifrit@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,,,,,,,,
+1832,Ifrit@KN_TWOHANDQUICKEN,attack,60,9,10000,0,100000,yes,self,myhpltmaxrate,30,,,,,,,
+1832,Ifrit@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1832,Ifrit@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1832,Ifrit@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+1832,Ifrit@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,,,,,,,,
+1832,Ifrit@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,,,,,,,,
+1832,Ifrit@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
+1832,Ifrit@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
+1832,Ifrit@NPC_FIREBREATH,attack,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
+1832,Ifrit@NPC_FIREBREATH,chase,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
1832,Ifrit@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,20,,,,,,6,
+1832,Ifrit@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
1832,Ifrit@NPC_SUMMONSLAVE,attack,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
1832,Ifrit@NPC_SUMMONSLAVE,idle,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
1832,Ifrit@NPC_SUMMONSLAVE,chase,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
-1832,Ifrit@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1832,Ifrit@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1832,Ifrit@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,,
-1832,Ifrit@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,0,,,,,,,
-1832,Ifrit@NPC_FIREBREATH,chase,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-1832,Ifrit@NPC_FIREBREATH,attack,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-1832,Ifrit@SA_LANDPROTECTOR,attack,288,3,5000,0,5000,yes,target,always,0,,,,,,,
-1832,Ifrit@WZ_METEOR,attack,83,11,2000,500,5000,no,target,myhpltmaxrate,90,,,,,,,
-1832,Ifrit@KN_TWOHANDQUICKEN,attack,60,9,10000,0,100000,yes,self,myhpltmaxrate,30,,,,,,,
-1832,Ifrit@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
-1832,Ifrit@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
-1832,Ifrit@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
-1832,Ifrit@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,0,,,,,,,
-1832,Ifrit@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,0,,,,,,,
-1832,Ifrit@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,0,,,,,,,
+1832,Ifrit@SA_LANDPROTECTOR,attack,288,3,5000,0,5000,yes,target,always,,,,,,,,
+1832,Ifrit@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,,,,,,,,
+1832,Ifrit@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,,,,,,,,
+1832,Ifrit@WZ_METEOR,attack,83,10,2000,500,5000,no,target,myhpltmaxrate,90,,,,,,,
1833,Kasa@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1833,Kasa@CR_REFLECTSHIELD,idle,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1833,Kasa@CR_REFLECTSHIELD,chase,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1833,Kasa@CR_REFLECTSHIELD,attack,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1833,Kasa@WZ_FIREPILLAR,idle,80,5,10000,500,30000,no,around2,always,0,,,,,,,
-1833,Kasa@NPC_FIREBREATH,chase,654,10,2000,1500,15000,no,target,always,0,,,,,,,
-1833,Kasa@NPC_FIREBREATH,attack,654,10,2000,1500,15000,no,target,always,0,,,,,,,
-1833,Kasa@MG_FIREBALL,idle,17,20,10000,500,10000,no,target,always,0,,,,,,,
-1833,Kasa@MG_FIREBALL,chase,17,20,10000,500,10000,no,target,always,0,,,,,,,
-1833,Kasa@MG_FIREBALL,attack,17,20,5000,500,10000,no,target,always,0,,,,,,,
-1833,Kasa@WZ_SIGHTRASHER,attack,81,20,1000,0,20000,yes,self,always,0,,,,,,,
-1833,Kasa@LK_SPIRALPIERCE,attack,397,1,1500,1000,10000,no,target,always,0,,,,,,,
-1833,Kasa@WZ_METEOR,chase,83,1,5000,1000,10000,no,target,always,0,,,,,,,
-1833,Kasa@WZ_METEOR,attack,83,1,5000,1000,10000,no,target,always,0,,,,,,,
-1833,Kasa@HW_GANBANTEIN,attack,483,5,5000,500,5000,no,target,myhpltmaxrate,20,,,,,,,
+1833,Kasa@CR_REFLECTSHIELD,attack,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1833,Kasa@CR_REFLECTSHIELD,idle,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1833,Kasa@CR_REFLECTSHIELD,chase,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1833,Kasa@HW_GANBANTEIN,attack,483,1,5000,500,5000,no,target,myhpltmaxrate,20,,,,,,,
+1833,Kasa@LK_SPIRALPIERCE,attack,397,1,2000,1000,10000,no,target,always,,,,,,,,
+1833,Kasa@MG_FIREBALL,attack,17,10,5000,500,10000,no,target,always,,,,,,,,
+1833,Kasa@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,,,,,,,,
+1833,Kasa@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,always,,,,,,,,
+1833,Kasa@NPC_FIREBREATH,attack,654,10,2000,1500,15000,no,target,always,,,,,,,,
+1833,Kasa@NPC_FIREBREATH,chase,654,10,2000,1500,15000,no,target,always,,,,,,,,
+1833,Kasa@WZ_FIREPILLAR,idle,80,5,10000,500,30000,no,around2,always,,,,,,,,
+1833,Kasa@WZ_METEOR,attack,83,1,5000,1000,10000,no,target,always,,,,,,,,
+1833,Kasa@WZ_METEOR,chase,83,1,5000,1000,10000,no,target,always,,,,,,,,
+1833,Kasa@WZ_SIGHTRASHER,attack,81,10,1000,0,20000,yes,self,always,,,,,,,,
1834,Salamander@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1834,Salamander@MG_FIREBALL,idle,17,5,10000,0,5000,yes,target,always,0,,,,,,,
-1834,Salamander@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,0,,,,,,,
-1834,Salamander@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,0,,,,,,,
-1834,Salamander@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,0,,,,,,,
-1834,Salamander@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,0,,,,,,,
-1834,Salamander@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,,
-1834,Salamander@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
-1834,Salamander@KN_TWOHANDQUICKEN,attack,60,20,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
-1834,Salamander@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
+1834,Salamander@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,,
+1834,Salamander@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,,,,,,,,
+1834,Salamander@KN_TWOHANDQUICKEN,attack,60,10,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
+1834,Salamander@MG_FIREBALL,idle,17,5,10000,0,5000,yes,target,always,,,,,,,,
+1834,Salamander@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,,,,,,,,
+1834,Salamander@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,,,,,,,,
+1834,Salamander@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+1834,Salamander@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,,,,,,,,
1834,Salamander@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,myhpltmaxrate,20,,,,,,,
+1834,Salamander@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
1835,Kasa@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1835,Kasa@CR_REFLECTSHIELD,idle,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1835,Kasa@CR_REFLECTSHIELD,chase,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1835,Kasa@CR_REFLECTSHIELD,attack,252,1,10000,0,300000,yes,self,always,0,,,,,,6,
-1835,Kasa@WZ_FIREPILLAR,idle,80,5,10000,500,30000,no,target,always,0,,,,,,,
-1835,Kasa@NPC_FIREBREATH,chase,654,10,2000,3000,200000,no,target,always,0,,,,,,,
-1835,Kasa@NPC_FIREBREATH,attack,654,10,2000,3000,200000,no,target,always,0,,,,,,,
-1835,Kasa@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,0,,,,,,,
-1835,Kasa@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,always,0,,,,,,,
-1835,Kasa@MG_FIREBALL,attack,17,10,5000,500,10000,no,target,always,0,,,,,,,
-1835,Kasa@WZ_SIGHTRASHER,attack,81,10,1000,0,20000,yes,self,always,0,,,,,,,
-1835,Kasa@LK_SPIRALPIERCE,attack,397,1,1500,1000,10000,no,target,always,0,,,,,,,
-1835,Kasa@WZ_METEOR,chase,83,1,5000,1000,10000,no,target,always,0,,,,,,,
-1835,Kasa@WZ_METEOR,attack,83,1,5000,1000,10000,no,target,always,0,,,,,,,
-1836,Magmaring@NPC_FIREATTACK,attack,186,2,500,1000,5000,no,target,always,0,,,,,,7,
-1836,Magmaring@MG_FIREBOLT,attack,19,2,500,1000,5000,no,target,always,0,,,,,,,
-1836,Magmaring@SM_BASH,attack,5,4,500,0,5000,yes,target,always,0,,,,,,,
-1836,Magmaring@MG_FIREBALL,chase,17,2,500,0,5000,yes,target,always,0,,,,,,,
-1836,Magmaring@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,0,,,,,,6,
-1837,Imp@KN_BRANDISHSPEAR,attack,57,8,1000,1000,5000,no,target,always,0,,,,,,,
-1837,Imp@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-1837,Imp@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-1837,Imp@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-1837,Imp@MG_FIREBALL,attack,17,10,3000,500,10000,no,target,always,0,,,,,,,
-1837,Imp@MG_FIREBALL,chase,17,10,3000,500,10000,no,target,always,0,,,,,,,
-1837,Imp@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,0,,,,,,,
-1837,Imp@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,0,,,,,,,
-1837,Imp@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,0,,,,,,,
-1837,Imp@WZ_SIGHTRASHER,attack,81,20,3000,0,10000,yes,self,always,0,,,,,,,
-1837,Imp@RG_STRIPARMOR,attack,217,1,2000,0,5000,yes,target,always,0,,,,,,29,
-1838,Knocker@HT_LANDMINE,idle,116,2,4000,1000,18000,yes,around2,always,0,,,,,,5,
-1838,Knocker@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,0,,,,,,,
-1838,Knocker@TF_SPRINKLESAND,attack,149,1,1000,0,5000,yes,target,always,0,,,,,,6,
-1838,Knocker@TF_THROWSTONE,chase,152,1,2000,0,10000,yes,target,always,0,,,,,,29,
-1838,Knocker@TF_THROWSTONE,attack,152,1,1000,0,10000,yes,target,always,0,,,,,,29,
-1839,Byorgue@NPC_SUMMONSLAVE,idle,196,2,10000,1000,60000,no,self,slavele,1,1829,1830,,,,,
-1839,Byorgue@NPC_SUMMONSLAVE,chase,196,2,10000,1000,60000,no,self,slavele,1,1829,1830,,,,,
-1839,Byorgue@NPC_SUMMONSLAVE,attack,196,2,10000,1000,60000,no,self,slavele,1,1829,1830,,,,,
-1839,Byorgue@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1839,Byorgue@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
-1839,Byorgue@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1839,Byorgue@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1839,Byorgue@AS_GRIMTOOTH,idle,137,5,10000,0,5000,yes,target,always,0,,,,,,6,
-1839,Byorgue@AS_GRIMTOOTH,chase,137,5,10000,0,5000,yes,target,skillused,18,,,,,,6,
-1839,Byorgue@ASC_BREAKER,chase,379,3,2000,0,5000,yes,target,always,0,,,,,,,
-1839,Byorgue@ASC_METEORASSAULT,attack,406,2,500,0,5000,yes,self,always,0,,,,,,,
-1839,Byorgue@AS_SONICBLOW,attack,136,5,1000,0,5000,yes,target,always,0,,,,,,6,
-1839,Byorgue@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1839,Byorgue@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-1839,Byorgue@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-
-1840,Golden Savage@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,0,,,,,,6,
-1840,Golden Savage@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-1840,Golden Savage@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
+1835,Kasa@CR_REFLECTSHIELD,attack,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1835,Kasa@CR_REFLECTSHIELD,idle,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1835,Kasa@CR_REFLECTSHIELD,chase,252,1,10000,0,300000,yes,self,always,,,,,,,6,
+1835,Kasa@LK_SPIRALPIERCE,attack,397,1,2000,1000,10000,no,target,always,,,,,,,,
+1835,Kasa@MG_FIREBALL,attack,17,10,5000,500,10000,no,target,always,,,,,,,,
+1835,Kasa@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,,,,,,,,
+1835,Kasa@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,always,,,,,,,,
+1835,Kasa@NPC_FIREBREATH,attack,654,10,2000,3000,200000,no,target,always,,,,,,,,
+1835,Kasa@NPC_FIREBREATH,chase,654,10,2000,3000,200000,no,target,always,,,,,,,,
+1835,Kasa@WZ_FIREPILLAR,idle,80,5,10000,500,30000,no,around2,always,,,,,,,,
+1835,Kasa@WZ_METEOR,attack,83,1,5000,1000,10000,no,target,always,,,,,,,,
+1835,Kasa@WZ_METEOR,chase,83,1,5000,1000,10000,no,target,always,,,,,,,,
+1835,Kasa@WZ_SIGHTRASHER,attack,81,10,1000,0,20000,yes,self,always,,,,,,,,
+1836,Magmaring@MG_FIREBALL,chase,17,2,500,0,5000,yes,target,always,,,,,,,,
+1836,Magmaring@MG_FIREBOLT,attack,19,2,500,1000,5000,no,target,always,,,,,,,,
+1836,Magmaring@NPC_FIREATTACK,attack,186,2,500,1000,5000,no,target,always,,,,,,,7,
+1836,Magmaring@SM_BASH,attack,5,4,500,0,5000,yes,target,always,,,,,,,,
+1836,Magmaring@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,,,,,,,6,
+1837,Imp@KN_BRANDISHSPEAR,attack,57,8,1000,1000,5000,no,target,always,,,,,,,,
+1837,Imp@MG_FIREBALL,attack,17,10,3000,500,10000,no,target,always,,,,,,,,
+1837,Imp@MG_FIREBALL,chase,17,10,3000,500,10000,no,target,always,,,,,,,,
+1837,Imp@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,,,,,,,,
+1837,Imp@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,,,,,,,,
+1837,Imp@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,,,,,,,,
+1837,Imp@MG_SIGHT,idle,10,1,500,0,5000,yes,self,always,,,,,,,,
+1837,Imp@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,,,,,,,,
+1837,Imp@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+1837,Imp@RG_STRIPARMOR,attack,217,1,2000,0,5000,yes,target,always,,,,,,,29,
+1837,Imp@WZ_SIGHTRASHER,attack,81,10,3000,0,10000,yes,self,always,,,,,,,,
+1838,Knocker@HT_LANDMINE,idle,116,2,4000,1000,18000,yes,around2,always,,,,,,,5,
+1838,Knocker@NPC_GROUNDATTACK,attack,185,2,2000,0,5000,yes,target,always,,,,,,,,
+1838,Knocker@TF_SPRINKLESAND,attack,149,1,1000,0,5000,yes,target,always,,,,,,,6,
+1838,Knocker@TF_THROWSTONE,attack,152,1,1000,0,10000,yes,target,always,,,,,,,29,
+1838,Knocker@TF_THROWSTONE,chase,152,1,2000,0,10000,yes,target,always,,,,,,,29,
+1839,Byrogue@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1839,Byrogue@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1839,Byrogue@AS_GRIMTOOTH,idle,137,5,10000,0,5000,yes,target,always,,,,,,,6,
+1839,Byrogue@AS_GRIMTOOTH,chase,137,5,10000,0,5000,yes,target,skillused,18,,,,,,6,
+1839,Byrogue@AS_SONICBLOW,attack,136,5,1000,0,5000,yes,target,always,,,,,,,6,
+1839,Byrogue@ASC_BREAKER,chase,379,3,2000,0,5000,yes,target,always,,,,,,,,
+1839,Byrogue@ASC_METEORASSAULT,attack,406,2,500,0,5000,yes,self,always,,,,,,,,
+1839,Byrogue@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1839,Byrogue@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1839,Byrogue@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1839,Byrogue@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+1839,Byrogue@NPC_SUMMONSLAVE,attack,196,2,10000,1000,60000000,no,self,slavele,0,1829,1830,,,,,
+1839,Byrogue@NPC_SUMMONSLAVE,idle,196,2,10000,1000,60000000,no,self,slavele,0,1829,1830,,,,,
+1839,Byrogue@NPC_SUMMONSLAVE,chase,196,2,10000,1000,60000000,no,self,slavele,0,1829,1830,,,,,
+1839,Byrogue@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
+1840,Golden Savage@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,,,,,,,6,
1840,Golden Savage@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1840,Golden Savage@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-1840,Golden Savage@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
-1840,Golden Savage@ST_FULLSTRIP,attack,476,5,100,1500,10000,yes,target,always,0,,,,,,,
1840,Golden Savage@KN_TWOHANDQUICKEN,attack,60,5,500,0,30000,yes,self,myhpltmaxrate,50,,,,,,6,
-1840,Golden Savage@WZ_EARTHSPIKE,attack,90,3,500,1500,5000,no,target,always,0,,,,,,,
-1840,Golden Savage@WZ_HEAVENDRIVE,attack,91,3,500,1500,5000,no,target,always,0,,,,,,,
-1840,Golden Savage@WZ_QUAGMIRE,attack,92,2,500,0,5000,yes,target,always,0,,,,,,,
-1840,Golden Savage@WZ_QUAGMIRE,chase,92,2,2000,0,5000,yes,target,always,0,,,,,,,
-1840,Golden Savage@NPC_PULSESTRIKE,attack,661,1,500,0,10000,yes,self,always,0,,,,,,32,
+1840,Golden Savage@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1840,Golden Savage@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+1840,Golden Savage@NPC_PULSESTRIKE,attack,661,1,500,0,10000,yes,self,always,,,,,,,32,
+1840,Golden Savage@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+1840,Golden Savage@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+1840,Golden Savage@ST_FULLSTRIP,attack,476,5,100,1500,10000,yes,target,always,,,,,,,,
+1840,Golden Savage@WZ_EARTHSPIKE,attack,90,3,500,1500,5000,no,target,always,,,,,,,,
+1840,Golden Savage@WZ_HEAVENDRIVE,attack,91,3,500,1500,5000,no,target,always,,,,,,,,
+1840,Golden Savage@WZ_QUAGMIRE,attack,92,2,500,0,5000,yes,target,always,,,,,,,,
+1840,Golden Savage@WZ_QUAGMIRE,chase,92,2,2000,0,5000,yes,target,always,,,,,,,,
+1851,Mobster@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,29,
+1851,Mobster@KN_SPEARSTAB,attack,58,5,500,800,5000,yes,target,always,,,,,,,6,
+1851,Mobster@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+1851,Mobster@TF_SPRINKLESAND,attack,149,1,2000,0,5000,yes,target,always,,,,,,,29,
// Cursed Abbey (11.3)
-1864,Zombie Slaughter@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1864,Zombie Slaughter@NPC_POISON,attack,176,5,500,800,5000,no,target,always,0,,,,,,,
-1864,Zombie Slaughter@AS_SONICBLOW,attack,136,5,1000,800,5000,no,target,always,0,,,,,,,
-1864,Zombie Slaughter@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-1865,Ragged Zombie@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,0,,,,,,,
-1865,Ragged Zombie@AC_DOUBLE,attack,46,5,500,0,5000,yes,target,always,0,,,,,,,
-1865,Ragged Zombie@NPC_MAGICALATTACK,attack,192,1,500,800,5000,no,target,always,0,,,,,,,
-1865,Ragged Zombie@AC_SHOWER,attack,47,3,500,0,5000,yes,target,always,0,,,,,,,
-1866,Hell Poodle@AL_HEAL,idle,28,1,10000,0,5000,yes,self,always,0,,,,,,,
-1866,Hell Poodle@AS_SONICBLOW,attack,136,3,500,500,5000,no,target,always,0,,,,,,36,
-1866,Hell Poodle@NPC_RUN,attack,354,1,10000,0,0,yes,self,myhpltmaxrate,30,,,,,,26,
-1866,Hell Poodle@NPC_RUN,chase,354,1,10000,0,0,yes,self,myhpltmaxrate,30,,,,,,26,
-1867,Banshee@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,6,
-1867,Banshee@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,,
-1867,Banshee@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1867,Banshee@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1867,Banshee@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1867,Banshee@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,0,,,,,,,
-1867,Banshee@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1867,Banshee@NPC_EVILLAND,attack,670,1,500,0,5000,yes,target,always,0,,,,,,,
-1867,Banshee@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,7,0x81,,,,,
-1867,Banshee@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,0x3095,,,,,
-1868,Banshee@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,6,
-1868,Banshee@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,,
-1868,Banshee@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1868,Banshee@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1868,Banshee@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1868,Banshee@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,0,,,,,,,
-1868,Banshee@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1868,Banshee@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,7,0x81,,,,,
-1868,Banshee@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,0x3095,,,,,
-1869,Flame Skull@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1869,Flame Skull@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,29,,,,,,
-1869,Flame Skull@MG_FIREBALL,chase,17,5,1500,500,5000,no,target,attackpcge,2,,,,,,,
-1869,Flame Skull@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
+1864,Zombie Slaughter@AS_SONICBLOW,attack,136,5,1000,800,5000,no,target,always,,,,,,,,
+1864,Zombie Slaughter@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1864,Zombie Slaughter@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+1864,Zombie Slaughter@NPC_POISON,attack,176,5,500,800,5000,no,target,always,,,,,,,,
+1865,Ragged Zombie@AC_DOUBLE,attack,46,5,500,0,5000,yes,target,always,,,,,,,,
+1865,Ragged Zombie@AC_SHOWER,attack,47,3,500,0,5000,yes,target,always,,,,,,,,
+1865,Ragged Zombie@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+1865,Ragged Zombie@NPC_MAGICALATTACK,attack,192,1,500,800,5000,no,target,always,,,,,,,,
+1866,Hellhound@AL_HEAL,idle,28,1,10000,0,5000,yes,self,always,,,,,,,,
+1866,Hellhound@AS_SONICBLOW,attack,136,3,500,500,5000,no,target,always,,,,,,,36,
+1866,Hellhound@NPC_RUN,attack,354,1,10000,0,0,yes,self,myhpltmaxrate,30,,,,,,26,
+1866,Hellhound@NPC_RUN,chase,354,1,10000,0,0,yes,self,myhpltmaxrate,30,,,,,,26,
+1867,Banshee@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1867,Banshee@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,6,
+1867,Banshee@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,,,,,,,21,
+1867,Banshee@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1867,Banshee@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1867,Banshee@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,7,0x0081,,,,,
+1867,Banshee@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1867,Banshee@NPC_EVILLAND,attack,670,1,500,0,5000,yes,self,always,,,,,,,,
+1867,Banshee@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,,,,,,,,
+1867,Banshee@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+1868,Banshee@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1868,Banshee@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,6,
+1868,Banshee@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,,,,,,,21,
+1868,Banshee@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1868,Banshee@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1868,Banshee@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,7,0x0081,,,,,
+1868,Banshee@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1868,Banshee@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,,,,,,,,
+1868,Banshee@NPC_WIDECURSE,attack,677,1,500,800,5000,yes,self,always,,,,,,,,
+1869,Flame Skull@MG_FIREBALL,chase,17,5,1500,500,5000,yes,target,attackpcge,2,,,,,,,
+1869,Flame Skull@MO_BODYRELOCATION,chase,264,1,2000,500,5000,yes,target,always,,,,,,,,
+1869,Flame Skull@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1869,Flame Skull@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
1870,Necromancer@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1870,Necromancer@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1870,Necromancer@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,6,
-1870,Necromancer@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,6,
-1870,Necromancer@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,6,
-1870,Necromancer@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,0,,,,,,6,
-1870,Necromancer@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,6,
-1870,Necromancer@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,6,
+1870,Necromancer@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,,,,,,,6,
+1870,Necromancer@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,,,,,,,6,
+1870,Necromancer@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,,,,,,,6,
+1870,Necromancer@MG_FIREBALL,chase,17,5,2000,300,5000,no,target,always,,,,,,,,
+1870,Necromancer@MG_THUNDERSTORM,attack,21,5,3000,1000,10000,no,target,always,,,,,,,,
+1870,Necromancer@MG_THUNDERSTORM,chase,21,5,3000,1000,10000,no,target,always,,,,,,,,
+1870,Necromancer@NPC_CALLSLAVE,attack,352,1,10000,0,300000,yes,self,always,,,,,,,,
+1870,Necromancer@NPC_CALLSLAVE,idle,352,1,10000,0,300000,yes,self,always,,,,,,,,
+1870,Necromancer@NPC_CHANGEUNDEAD,attack,348,1,500,500,6000000,no,target,always,,,,,,,9,
+1870,Necromancer@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,,,,,,,,
+1870,Necromancer@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,,,,,,,,
+1870,Necromancer@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+1870,Necromancer@NPC_DARKNESSBREATH,attack,658,1,500,0,5000,yes,target,always,,,,,,,,
+1870,Necromancer@NPC_DARKSTRIKE,attack,340,5,2000,0,5000,yes,target,always,,,,,,,,
+1870,Necromancer@NPC_DARKSTRIKE,chase,340,5,2000,0,5000,yes,target,always,,,,,,,,
+1870,Necromancer@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1870,Necromancer@NPC_SLOWCAST,attack,672,1,2000,800,30000,no,self,always,,,,,,,36,
+1870,Necromancer@NPC_SLOWCAST,chase,672,1,2000,300,30000,no,self,always,,,,,,,36,
+1870,Necromancer@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,,,,,,,6,
+1870,Necromancer@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,,,,,,,6,
+1870,Necromancer@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,,,,,,,6,
+1870,Necromancer@NPC_SUMMONSLAVE,attack,196,2,10000,0,300000,yes,self,slavele,0,1864,,,,,,
1870,Necromancer@NPC_SUMMONSLAVE,idle,196,2,10000,0,300000,yes,self,slavele,0,1864,,,,,,
1870,Necromancer@NPC_SUMMONSLAVE,chase,196,2,10000,0,300000,yes,self,slavele,0,1864,,,,,,
-1870,Necromancer@NPC_SUMMONSLAVE,attack,196,2,10000,0,300000,yes,self,slavele,0,1864,,,,,,
-1870,Necromancer@NPC_CALLSLAVE,attack,352,1,10000,0,300000,yes,self,always,0,,,,,,,
-1870,Necromancer@NPC_CALLSLAVE,idle,352,1,10000,0,300000,yes,self,always,0,,,,,,,
-1870,Necromancer@MG_FIREBALL,chase,17,5,2000,300,5000,no,target,always,0,,,,,,,
-1870,Necromancer@MG_THUNDERSTORM,attack,21,5,3000,1000,10000,no,target,always,0,,,,,,,
-1870,Necromancer@MG_THUNDERSTORM,chase,21,5,3000,1000,10000,no,target,always,0,,,,,,,
-1870,Necromancer@WZ_QUAGMIRE,attack,92,5,500,500,5000,no,target,always,0,,,,,,11,
-1870,Necromancer@WZ_QUAGMIRE,chase,92,5,500,200,5000,no,target,always,0,,,,,,11,
-1870,Necromancer@NPC_WIDECURSE,chase,677,1,500,300,30000,no,self,always,0,,,,,,36,
-1870,Necromancer@NPC_WIDECURSE,attack,677,1,500,800,30000,no,self,always,0,,,,,,36,
-1870,Necromancer@NPC_SLOWCAST,chase,672,1,2000,300,30000,no,self,always,0,,,,,,36,
-1870,Necromancer@NPC_SLOWCAST,attack,672,1,2000,800,30000,no,self,always,0,,,,,,36,
-1870,Necromancer@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1870,Necromancer@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1870,Necromancer@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,0,,,,,,,
-1870,Necromancer@NPC_DARKSTRIKE,chase,340,5,2000,0,5000,yes,target,always,0,,,,,,,
-1870,Necromancer@NPC_DARKSTRIKE,attack,340,5,2000,0,5000,yes,target,always,0,,,,,,,
-1870,Necromancer@NPC_CHANGEUNDEAD,attack,348,1,500,500,6000000,no,target,always,0,,,,,,9,
-1870,Necromancer@NPC_DARKNESSBREATH,attack,658,1,500,0,5000,yes,target,always,0,,,,,,,
-1870,Necromancer@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1870,Necromancer@NPC_WIDECURSE,attack,677,1,500,800,30000,no,self,always,,,,,,,36,
+1870,Necromancer@NPC_WIDECURSE,chase,677,1,500,300,30000,no,self,always,,,,,,,36,
+1870,Necromancer@WZ_METEOR,chase,83,3,1000,500,10000,no,target,always,,,,,,,,
1870,Necromancer@WZ_METEOR,chase,83,3,3000,500,10000,no,target,skillused,18,,,,,,,
-1870,Necromancer@WZ_METEOR,chase,83,3,1000,500,10000,no,target,always,0,,,,,,,
-1871,Fallen Bishop@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1871,Fallen Bishop@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1871,Fallen Bishop@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,no,self,slavele,3,1868,,,,,,
-1871,Fallen Bishop@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,no,self,slavele,3,1868,,,,,,
-1871,Fallen Bishop@NPC_WIDECURSE,attack,677,5,2000,800,5000,no,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_DARKCROSS,attack,338,10,1000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@CR_HOLYCROSS,attack,253,10,1000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_GRANDDARKNESS,chase,339,10,500,1300,5000,no,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_GRANDDARKNESS,attack,339,10,500,1300,5000,no,self,always,0,,,,,,,
-1871,Fallen Bishop@CR_GRANDCROSS,chase,254,10,500,1000,5000,no,self,always,0,,,,,,,
-1871,Fallen Bishop@CR_GRANDCROSS,attack,254,10,500,1000,5000,no,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_VAMPIRE_GIFT,attack,679,2,500,0,5000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_SLOWCAST,chase,672,5,2000,300,30000,no,self,always,0,,,,,,36,
-1871,Fallen Bishop@NPC_SLOWCAST,attack,672,5,2000,800,30000,no,self,always,0,,,,,,36,
-1871,Fallen Bishop@NPC_EVILLAND,attack,670,10,10000,1000,600000,no,target,myhpltmaxrate,44,,,,,,,
-1871,Fallen Bishop@NPC_EVILLAND,attack,670,7,500,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-1871,Fallen Bishop@NPC_MAGICMIRROR,attack,671,1,10000,0,60000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_HELLJUDGEMENT,chase,662,4,10000,800,20000,no,self,always,0,,,,,,36,
-1871,Fallen Bishop@NPC_HELLJUDGEMENT,attack,662,4,10000,800,20000,no,self,always,0,,,,,,36,
-1871,Fallen Bishop@NPC_WIDESILENCE,chase,663,5,5000,0,30000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@NPC_WIDESILENCE,attack,663,5,5000,0,30000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-1871,Fallen Bishop@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1871,Fallen Bishop@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-1871,Fallen Bishop@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,29,
-1871,Fallen Bishop@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,29,
-1871,Fallen Bishop@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_DARKNESSATTACK,attack,190,10,1000,0,5000,yes,target,always,0,,,,,,,
-1871,Fallen Bishop@NPC_DARKNESSBREATH,attack,658,3,2000,0,5000,yes,target,always,0,,,,,,,
-1872,Hell Fly@NPC_CRITICALWOUND,attack,673,5,10,0,5000,yes,target,always,0,,,,,,,
-1872,Hell Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,2,
-1872,Hell Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,6,
-1872,Hell Fly@NPC_WINDATTACK,attack,187,4,2000,0,5000,yes,target,always,0,,,,,,,
-1872,Hell Fly@NPC_MENTALBREAKER,attack,159,1,200,0,5000,no,target,always,0,,,,,,,
+1870,Necromancer@WZ_QUAGMIRE,attack,92,5,500,500,5000,no,target,always,,,,,,,11,
+1870,Necromancer@WZ_QUAGMIRE,chase,92,5,500,200,5000,no,target,always,,,,,,,11,
+1871,Falling Bishop@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+1871,Falling Bishop@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+1871,Falling Bishop@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1871,Falling Bishop@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1871,Falling Bishop@CR_GRANDCROSS,attack,254,10,500,1000,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@CR_GRANDCROSS,chase,254,10,500,1000,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@CR_HOLYCROSS,attack,253,10,1000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_DARKCROSS,attack,338,10,1000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_DARKNESSATTACK,attack,190,10,1000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_DARKNESSBREATH,attack,658,3,2000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,,,,,,,,
+1871,Falling Bishop@NPC_EVILLAND,attack,670,10,10000,1000,600000,yes,self,myhpltmaxrate,44,,,,,,,
+1871,Falling Bishop@NPC_EVILLAND,attack,670,7,500,500,5000,yes,self,myhpltmaxrate,80,,,,,,,
+1871,Falling Bishop@NPC_GRANDDARKNESS,attack,339,10,500,1300,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_GRANDDARKNESS,chase,339,10,500,1300,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_HELLJUDGEMENT,attack,662,4,10000,800,20000,yes,self,always,,,,,,,36,
+1871,Falling Bishop@NPC_HELLJUDGEMENT,chase,662,4,10000,800,20000,yes,self,always,,,,,,,36,
+1871,Falling Bishop@NPC_MAGICMIRROR,attack,671,1,10000,0,60000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_SLOWCAST,attack,672,5,2000,800,30000,yes,self,always,,,,,,,36,
+1871,Falling Bishop@NPC_SLOWCAST,chase,672,5,2000,300,30000,yes,self,always,,,,,,,36,
+1871,Falling Bishop@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,yes,self,slavele,3,1868,,,,,,
+1871,Falling Bishop@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,yes,self,slavele,3,1868,,,,,,
+1871,Falling Bishop@NPC_VAMPIRE_GIFT,attack,679,2,500,0,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_WIDECURSE,attack,677,5,2000,800,5000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_WIDESILENCE,attack,663,5,5000,0,30000,yes,self,always,,,,,,,,
+1871,Falling Bishop@NPC_WIDESILENCE,chase,663,5,5000,0,30000,yes,self,always,,,,,,,,
+1871,Falling Bishop@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,29,
+1871,Falling Bishop@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,,,,,,,29,
+1872,Hell Fly@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+1872,Hell Fly@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,6,
+1872,Hell Fly@NPC_CRITICALWOUND,attack,673,5,10,0,5000,yes,target,always,,,,,,,,
+1872,Hell Fly@NPC_MENTALBREAKER,attack,159,1,200,0,5000,no,target,always,,,,,,,,
+1872,Hell Fly@NPC_WINDATTACK,attack,187,4,2000,0,5000,yes,target,always,,,,,,,,
+1873,Beelzebub@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
1873,Beelzebub@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1873,Beelzebub@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1873,Beelzebub@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
-1873,Beelzebub@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1873,Beelzebub@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1873,Beelzebub@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,0,,,,,,,
+1873,Beelzebub@LK_SPIRALPIERCE,attack,397,5,2000,500,5000,yes,target,always,,,,,,,,
+1873,Beelzebub@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
+1873,Beelzebub@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
+1873,Beelzebub@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1873,Beelzebub@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1873,Beelzebub@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1873,Beelzebub@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+1873,Beelzebub@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,,,,,,,,
+1873,Beelzebub@NPC_HELLJUDGEMENT,attack,662,5,10000,700,15000,no,self,always,,,,,,,,
+1873,Beelzebub@NPC_HELLJUDGEMENT,chase,662,5,10000,700,15000,no,self,always,,,,,,,,
+1873,Beelzebub@NPC_METAMORPHOSIS,attack,193,1,10000,5000,5000,no,self,myhpltmaxrate,50,1874,,,,,,
+1873,Beelzebub@NPC_METAMORPHOSIS,chase,193,1,10000,5000,5000,no,self,myhpltmaxrate,50,1874,,,,,,
+1873,Beelzebub@NPC_PULSESTRIKE,attack,661,5,2000,500,5000,no,self,always,,,,,,,7,
+1873,Beelzebub@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,,,,,,,,
1873,Beelzebub@NPC_SUMMONSLAVE,attack,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
-1873,Beelzebub@NPC_SUMMONSLAVE,chase,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
1873,Beelzebub@NPC_SUMMONSLAVE,idle,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
-1873,Beelzebub@NPC_METAMORPHOSIS,chase,193,1,10000,5000,5000,no,self,myhpltmaxrate,50,1874,,,,,,
-1873,Beelzebub@NPC_METAMORPHOSIS,attack,193,1,10000,5000,5000,no,self,myhpltmaxrate,50,1874,,,,,,
-1873,Beelzebub@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,0,,,,,,,
-1873,Beelzebub@LK_SPIRALPIERCE,attack,397,5,2000,500,5000,yes,target,always,0,,,,,,,
-1873,Beelzebub@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-1873,Beelzebub@NPC_PULSESTRIKE,attack,661,5,2000,500,5000,no,self,always,0,,,,,,7,
-1873,Beelzebub@NPC_WIDESLEEP,attack,668,5,2000,500,5000,no,self,always,0,,,,,,2,
-1873,Beelzebub@NPC_WIDESILENCE,attack,663,5,2000,500,5000,no,self,always,0,,,,,,9,
-1873,Beelzebub@NPC_HELLJUDGEMENT,attack,662,5,10000,700,15000,no,self,always,0,,,,,,,
-1873,Beelzebub@NPC_HELLJUDGEMENT,chase,662,5,10000,700,15000,no,self,always,0,,,,,,,
-1873,Beelzebub@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,0,,,,,,,
+1873,Beelzebub@NPC_SUMMONSLAVE,chase,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
1873,Beelzebub@NPC_VAMPIRE_GIFT,attack,679,10,10000,1000,10000,no,self,myhpltmaxrate,70,,,,,,47,
-1873,Beelzebub@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
-1873,Beelzebub@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
+1873,Beelzebub@NPC_WIDESILENCE,attack,663,5,2000,500,5000,no,self,always,,,,,,,9,
+1873,Beelzebub@NPC_WIDESLEEP,attack,668,5,2000,500,5000,no,self,always,,,,,,,2,
+1874,Beelzebub@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
1874,Beelzebub@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1874,Beelzebub@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1874,Beelzebub@LK_SPIRALPIERCE,attack,397,1,2000,500,5000,no,target,always,,,,,,,,
+1874,Beelzebub@NPC_ACIDBREATH,attack,657,1,2000,1000,5000,no,target,always,,,,,,,,
+1874,Beelzebub@NPC_ACIDBREATH,chase,657,1,2000,1000,5000,no,target,always,,,,,,,,
+1874,Beelzebub@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1874,Beelzebub@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1874,Beelzebub@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1874,Beelzebub@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+1874,Beelzebub@NPC_EVILLAND,attack,670,10,10000,0,15000,yes,self,myhpltmaxrate,50,,,,,,,
+1874,Beelzebub@NPC_EXPULSION,attack,674,1,50,1000,30000,no,target,always,,,,,,,,
+1874,Beelzebub@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,,,,,,,,
+1874,Beelzebub@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,,,,,,,,
+1874,Beelzebub@NPC_MAGICMIRROR,attack,671,1,10000,0,30000,yes,self,always,,,,,,,,
+1874,Beelzebub@NPC_PULSESTRIKE,attack,661,5,10000,500,5000,no,self,always,,,,,,,7,
1874,Beelzebub@NPC_RUN,attack,354,1,10000,0,0,yes,self,myhpltmaxrate,1,,,,,,26,
1874,Beelzebub@NPC_RUN,chase,354,1,10000,0,0,yes,self,myhpltmaxrate,1,,,,,,26,
-1874,Beelzebub@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
-1874,Beelzebub@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1874,Beelzebub@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1874,Beelzebub@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,0,,,,,,,
+1874,Beelzebub@NPC_SHIELDBRAKE,attack,346,10,2000,0,30000,yes,target,always,,,,,,,,
+1874,Beelzebub@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,,,,,,,,
+1874,Beelzebub@NPC_STONESKIN,attack,675,4,10000,1000,30000,no,self,myhpltmaxrate,5,,,,,,,
+1874,Beelzebub@NPC_STONESKIN,chase,675,4,10000,1000,30000,no,self,myhpltmaxrate,5,,,,,,,
1874,Beelzebub@NPC_SUMMONSLAVE,attack,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
-1874,Beelzebub@NPC_SUMMONSLAVE,chase,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
1874,Beelzebub@NPC_SUMMONSLAVE,idle,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
-1874,Beelzebub@NPC_STONESKIN,chase,675,4,10000,1000,30000,no,self,myhpltmaxrate,3,,,,,,,
-1874,Beelzebub@NPC_STONESKIN,attack,675,4,10000,1000,30000,no,self,myhpltmaxrate,3,,,,,,,
-1874,Beelzebub@NPC_EVILLAND,attack,670,10,10000,0,15000,yes,self,myhpltmaxrate,50,,,,,,,
-1874,Beelzebub@SA_LANDPROTECTOR,attack,288,5,10000,0,30000,yes,target,always,0,,,,,,,
-1874,Beelzebub@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-1874,Beelzebub@NPC_SHIELDBRAKE,attack,346,10,2000,0,30000,yes,target,always,0,,,,,,,
-1874,Beelzebub@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-1874,Beelzebub@NPC_MAGICMIRROR,attack,671,1,10000,0,30000,yes,self,always,0,,,,,,,
-1874,Beelzebub@NPC_EXPULSION,attack,674,1,50,1000,30000,no,target,always,0,,,,,,,
-1874,Beelzebub@NPC_WIDESTONE,attack,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
-1874,Beelzebub@NPC_WIDESTONE,chase,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
-1874,Beelzebub@LK_SPIRALPIERCE,attack,397,1,2000,500,5000,no,target,always,0,,,,,,,
-1874,Beelzebub@NPC_PULSESTRIKE,attack,661,5,10000,500,5000,no,self,always,0,,,,,,7,
-1874,Beelzebub@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,0,,,,,,,
-1874,Beelzebub@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,0,,,,,,,
-1874,Beelzebub@NPC_ACIDBREATH,attack,657,1,2000,1000,5000,no,target,always,0,,,,,,,
-1874,Beelzebub@NPC_ACIDBREATH,chase,657,1,2000,1000,5000,no,target,always,0,,,,,,,
+1874,Beelzebub@NPC_SUMMONSLAVE,chase,196,10,10000,0,10000,yes,self,slavele,5,1872,1872,1011,,,,
1874,Beelzebub@NPC_VAMPIRE_GIFT,attack,679,1,1000,500,5000,no,self,myhpltmaxrate,50,,,,,,47,
1874,Beelzebub@NPC_WIDESOULDRAIN,attack,680,7,1000,500,5000,no,self,myhpltmaxrate,50,,,,,,42,
-//1875,Tristan@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,0,,,,,,,
+1874,Beelzebub@NPC_WIDESTONE,attack,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
+1874,Beelzebub@NPC_WIDESTONE,chase,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
+1874,Beelzebub@SA_LANDPROTECTOR,attack,288,5,10000,0,30000,yes,target,always,,,,,,,,
// Moscovia (12.1)
-1880,Wood Goblin@AL_HEAL,idle,28,9,10000,3000,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
-1880,Wood Goblin@AL_HEAL,idle,28,9,5000,500,5000,yes,self,myhpltmaxrate,40,,,,,,19,
-1880,Wood Goblin@NPC_SPLASHATTACK,attack,174,1,3000,0,5000,yes,target,attackpcge,2,,,,,,0,
-1880,Wood Goblin@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1880,Wood Goblin@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-1881,Les@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-1881,Les@NPC_COMBOATTACK,attack,171,2,3000,700,5000,no,target,always,0,,,,,,,
-1881,Les@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,0,,,,,,32,
-1881,Les@NPC_POISON,attack,176,2,1000,0,5000,yes,target,always,0,,,,,,,
-1882,Baba Yaga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1882,Baba Yaga@WZ_WATERBALL,chase,86,1,5000,1000,5000,no,target,always,0,,,,,,,
-1882,Baba Yaga@NPC_COMBOATTACK,attack,171,1,2000,0,5000,yes,target,always,0,,,,,,,
-1882,Baba Yaga@WZ_WATERBALL,attack,86,2,2000,3000,5000,yes,target,always,0,,,,,,19,
-1883,Uzhas@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,,,,,,
-1883,Uzhas@NPC_MAGICALATTACK,chase,192,1,2000,800,5000,no,target,always,0,,,,,,,
-1883,Uzhas@NPC_POISON,attack,176,2,2000,800,5000,yes,target,always,0,,,,,,,
-1883,Uzhas@WZ_WATERBALL,attack,86,3,2000,3000,5000,yes,target,always,0,,,,,,19,
-1883,Uzhas@NPC_CURSEATTACK,attack,181,2,1000,800,5000,no,target,always,0,,,,,,29,
-1884,Mavka@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
+1880,Leshij@AL_HEAL,idle,28,9,10000,3000,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
+1880,Leshij@AL_HEAL,idle,28,9,5000,500,5000,yes,self,myhpltmaxrate,40,,,,,,19,
+1880,Leshij@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1880,Leshij@NPC_SPLASHATTACK,attack,174,1,3000,0,5000,yes,target,attackpcge,2,,,,,,0,
+1880,Leshij@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,,
+1881,Lesavka@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
+1881,Lesavka@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+1881,Lesavka@NPC_COMBOATTACK,attack,171,2,3000,700,5000,no,target,always,,,,,,,,
+1881,Lesavka@NPC_POISON,attack,176,2,1000,0,5000,yes,target,always,,,,,,,,
+1882,Baba-Yaga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1882,Baba-Yaga@NPC_COMBOATTACK,attack,171,1,2000,0,5000,yes,target,always,,,,,,,,
+1882,Baba-Yaga@WZ_WATERBALL,attack,86,2,2000,3000,5000,yes,target,always,,,,,,,19,
+1882,Baba-Yaga@WZ_WATERBALL,chase,86,1,5000,1000,5000,no,target,always,,,,,,,,
+1883,Kikimora@NPC_CURSEATTACK,attack,181,2,1000,800,5000,no,target,always,,,,,,,29,
+1883,Kikimora@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,,,,,,
+1883,Kikimora@NPC_MAGICALATTACK,chase,192,1,2000,800,5000,no,target,always,,,,,,,,
+1883,Kikimora@NPC_POISON,attack,176,2,2000,800,5000,yes,target,always,,,,,,,,
+1883,Kikimora@WZ_WATERBALL,attack,86,3,2000,3000,5000,yes,target,always,,,,,,,19,
1884,Mavka@AL_HEAL,idle,28,5,10000,2000,5000,yes,friend,friendhpltmaxrate,50,,,,,,19,
-1884,Mavka@WZ_EARTHSPIKE,chase,90,2,5000,0,10000,yes,target,always,0,,,,,,,
-1884,Mavka@NPC_GROUNDATTACK,attack,185,2,3000,0,5000,yes,target,always,0,,,,,,,
-1884,Mavka@NPC_SILENCEATTACK,attack,178,2,2000,2000,10000,yes,target,always,0,,,,,,36,
-1885,Gopinich@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1885,Gopinich@NPC_SUMMONSLAVE,attack,196,5,10000,1000,30000,no,self,slavele,1,1886,,,,,,
-1885,Gopinich@NPC_SUMMONSLAVE,chase,196,5,5000,1000,30000,no,self,slavele,0,1886,,,,,,
-1885,Gopinich@NPC_SUMMONSLAVE,idle,196,5,10000,1000,30000,no,self,slavele,0,1886,,,,,,
-1885,Gopinich@WZ_QUAGMIRE,chase,92,5,5000,200,5000,no,target,always,0,,,,,,,
-1885,Gopinich@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1885,Gopinich@NPC_CALLSLAVE,chase,352,1,5000,0,15000,yes,self,always,0,,,,,,,
-1885,Gopinich@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-1885,Gopinich@WZ_METEOR,attack,83,11,5000,1500,5000,no,target,myhpltmaxrate,50,,,,,,6,
-1885,Gopinich@MG_FIREBALL,chase,17,9,10000,0,5000,yes,target,always,0,,,,,,,
-1885,Gopinich@MG_FIREBALL,attack,17,20,5000,0,5000,yes,target,always,0,,,,,,,
-1885,Gopinich@NPC_AGIUP,attack,350,5,3000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-1885,Gopinich@KN_TWOHANDQUICKEN,attack,60,20,5000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-1885,Gopinich@NPC_POWERUP,attack,349,5,6000,0,5000,yes,self,myhpltmaxrate,30,,,,,,6,
-1885,Gopinich@WZ_HEAVENDRIVE,chase,91,5,5000,0,5000,yes,target,always,0,,,,,,,
-1885,Gopinich@SM_MAGNUM,attack,7,20,5000,0,5000,yes,self,always,0,,,,,,,
-1885,Gopinich@NPC_SILENCEATTACK,attack,178,5,1000,700,5000,no,target,always,0,,,,,,,
-1885,Gopinich@NPC_MENTALBREAKER,chase,159,5,500,800,25000,no,target,always,0,,,,,,,
-1885,Gopinich@WZ_HEAVENDRIVE,attack,91,5,5000,500,25000,no,target,always,0,,,,,,,
-1885,Gopinich@NPC_SILENCEATTACK,chase,178,5,5000,700,25000,no,target,always,0,,,,,,,
-1885,Gopinich@WZ_QUAGMIRE,attack,92,5,5000,700,5000,no,target,always,0,,,,,,,
-1886,Mavka@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
+1884,Mavka@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1884,Mavka@NPC_GROUNDATTACK,attack,185,2,3000,0,5000,yes,target,always,,,,,,,,
+1884,Mavka@NPC_SILENCEATTACK,attack,178,2,2000,2000,10000,yes,target,always,,,,,,,36,
+1884,Mavka@WZ_EARTHSPIKE,chase,90,2,5000,0,10000,yes,target,always,,,,,,,,
+1885,Zmey Gorynych@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1885,Zmey Gorynych@KN_TWOHANDQUICKEN,attack,60,10,5000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+1885,Zmey Gorynych@MG_FIREBALL,attack,17,10,5000,0,5000,yes,target,always,,,,,,,,
+1885,Zmey Gorynych@MG_FIREBALL,chase,17,9,10000,0,5000,yes,target,always,,,,,,,,
+1885,Zmey Gorynych@NPC_AGIUP,attack,350,5,3000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+1885,Zmey Gorynych@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1885,Zmey Gorynych@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,,,,,,,,
+1885,Zmey Gorynych@NPC_CALLSLAVE,chase,352,1,5000,0,15000,yes,self,always,,,,,,,,
+1885,Zmey Gorynych@NPC_MENTALBREAKER,chase,159,5,500,800,25000,no,target,always,,,,,,,,
+1885,Zmey Gorynych@NPC_POWERUP,attack,349,5,6000,0,5000,yes,self,myhpltmaxrate,30,,,,,,6,
+1885,Zmey Gorynych@NPC_SILENCEATTACK,attack,178,5,1000,700,5000,no,target,always,,,,,,,,
+1885,Zmey Gorynych@NPC_SILENCEATTACK,chase,178,5,5000,700,25000,no,target,always,,,,,,,,
+1885,Zmey Gorynych@NPC_SUMMONSLAVE,attack,196,5,10000,1000,30000,no,self,slavele,1,1886,,,,,,
+1885,Zmey Gorynych@NPC_SUMMONSLAVE,idle,196,5,10000,1000,30000,no,self,slavele,0,1886,,,,,,
+1885,Zmey Gorynych@NPC_SUMMONSLAVE,chase,196,5,5000,1000,30000,no,self,slavele,0,1886,,,,,,
+1885,Zmey Gorynych@SM_MAGNUM,attack,7,10,5000,0,5000,yes,self,always,,,,,,,,
+1885,Zmey Gorynych@WZ_HEAVENDRIVE,attack,91,5,5000,500,25000,no,target,always,,,,,,,,
+1885,Zmey Gorynych@WZ_HEAVENDRIVE,chase,91,5,5000,0,5000,yes,target,always,,,,,,,,
+1885,Zmey Gorynych@WZ_METEOR,attack,83,10,5000,1500,5000,no,target,myhpltmaxrate,50,,,,,,6,
+1885,Zmey Gorynych@WZ_QUAGMIRE,attack,92,5,5000,700,5000,no,target,always,,,,,,,,
+1885,Zmey Gorynych@WZ_QUAGMIRE,chase,92,5,5000,200,5000,no,target,always,,,,,,,,
1886,Mavka@AL_HEAL,idle,28,9,10000,1000,5000,yes,friend,friendhpltmaxrate,50,,,,,,19,
-1886,Mavka@WZ_EARTHSPIKE,chase,90,4,5000,0,10000,yes,target,always,0,,,,,,,
-1886,Mavka@NPC_GROUNDATTACK,attack,185,4,3000,0,5000,yes,target,always,0,,,,,,,
-1886,Mavka@NPC_SILENCEATTACK,attack,178,4,2000,2000,10000,yes,target,always,0,,,,,,36,
-1887,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1887,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,0,,,,,,,
-1887,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,0,,,,,,,
-1887,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-1887,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-1888,Garm Baby@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,0,,,,,,6,
-1888,Garm Baby@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-1889,Marozka's Guard@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
-1889,Marozka's Guard@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,6,
+1886,Mavka@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+1886,Mavka@NPC_GROUNDATTACK,attack,185,4,3000,0,5000,yes,target,always,,,,,,,,
+1886,Mavka@NPC_SILENCEATTACK,attack,178,4,2000,2000,10000,yes,target,always,,,,,,,36,
+1886,Mavka@WZ_EARTHSPIKE,chase,90,4,5000,0,10000,yes,target,always,,,,,,,,
+1887,Freezer@MG_COLDBOLT,attack,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1887,Freezer@MG_COLDBOLT,chase,14,3,500,1500,5000,yes,target,always,,,,,,,,
+1887,Freezer@MG_FROSTDIVER,attack,15,9,500,1000,5000,yes,target,always,,,,,,,,
+1887,Freezer@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+1887,Freezer@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,,,,,,,6,
+1888,Hatii Baby@MG_FROSTDIVER,chase,15,10,2000,0,5000,yes,target,always,,,,,,,6,
+1888,Hatii Baby@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+1889,Marozka's Guard@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,,
+1889,Marozka's Guard@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,,,,,,,6,
1889,Marozka's Guard@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,skillused,18,,,,,,6,
-1890,The Immortal Koshei@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1890,The Immortal Koshei@WZ_QUAGMIRE,chase,92,1,5000,200,5000,no,target,always,0,,,,,,,
-1890,The Immortal Koshei@MG_FIREBALL,chase,17,9,10000,0,5000,yes,target,always,0,,,,,,,
-1890,The Immortal Koshei@MG_FIREBALL,attack,17,20,5000,0,5000,yes,target,always,0,,,,,,,
-1890,The Immortal Koshei@WZ_HEAVENDRIVE,chase,91,5,5000,0,5000,yes,target,always,0,,,,,,,
-1890,The Immortal Koshei@SM_MAGNUM,attack,7,9,5000,0,5000,yes,self,always,0,,,,,,,
-1890,The Immortal Koshei@NPC_SILENCEATTACK,attack,178,5,1000,700,5000,no,target,always,0,,,,,,,
-1890,The Immortal Koshei@WZ_HEAVENDRIVE,attack,91,5,5000,500,25000,no,target,always,0,,,,,,,
-1890,The Immortal Koshei@NPC_SILENCEATTACK,chase,178,5,5000,700,25000,no,target,always,0,,,,,,,
-1890,The Immortal Koshei@WZ_QUAGMIRE,attack,92,1,5000,700,5000,no,target,always,0,,,,,,,
-1891,Valkyrie@AL_HEAL,idle,28,11,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
-1891,Valkyrie@AL_HEAL,attack,28,11,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1890,Koshei the Immortal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1890,Koshei the Immortal@MG_FIREBALL,attack,17,10,5000,0,5000,yes,target,always,,,,,,,,
+1890,Koshei the Immortal@MG_FIREBALL,chase,17,9,10000,0,5000,yes,target,always,,,,,,,,
+1890,Koshei the Immortal@NPC_SILENCEATTACK,attack,178,5,1000,700,5000,no,target,always,,,,,,,,
+1890,Koshei the Immortal@NPC_SILENCEATTACK,chase,178,5,5000,700,25000,no,target,always,,,,,,,,
+1890,Koshei the Immortal@SM_MAGNUM,attack,7,9,5000,0,5000,yes,self,always,,,,,,,,
+1890,Koshei the Immortal@WZ_HEAVENDRIVE,attack,91,5,5000,500,25000,no,target,always,,,,,,,,
+1890,Koshei the Immortal@WZ_HEAVENDRIVE,chase,91,5,5000,0,5000,yes,target,always,,,,,,,,
+1890,Koshei the Immortal@WZ_QUAGMIRE,attack,92,1,5000,700,5000,no,target,always,,,,,,,,
+1890,Koshei the Immortal@WZ_QUAGMIRE,chase,92,1,5000,200,5000,no,target,always,,,,,,,,
+1891,Valkyrie@AL_HEAL,attack,28,10,10000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+1891,Valkyrie@AL_HEAL,idle,28,10,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
1891,Valkyrie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1891,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-1891,Valkyrie@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,0,,,,,,,
-1891,Valkyrie@KN_BRANDISHSPEAR,attack,57,20,1000,0,5000,yes,target,always,0,,,,,,,
-1891,Valkyrie@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,0,,,,,,,
-1891,Valkyrie@WZ_JUPITEL,attack,84,28,100,2000,5000,yes,target,always,0,,,,,,,
-
+1891,Valkyrie@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+1891,Valkyrie@KN_BRANDISHSPEAR,attack,57,10,1000,0,5000,yes,target,always,,,,,,,,
+1891,Valkyrie@NPC_ARMORBRAKE,attack,344,10,500,0,5000,yes,target,always,,,,,,,,
+1891,Valkyrie@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,,,,,,,,
+1891,Valkyrie@WZ_JUPITEL,attack,84,10,100,2000,5000,yes,target,always,,,,,,,,
1894,Pouring@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1894,Pouring@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
1894,Pouring@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1894,Pouring@WZ_STORMGUST,chase,89,10,2000,0,5000,no,target,always,0,,,,,,,
-1894,Pouring@WZ_STORMGUST,attack,89,10,2000,0,5000,no,target,always,0,,,,,,,
-1894,Pouring@WZ_WATERBALL,attack,86,10,10000,500,5000,no,target,always,0,,,,,,,
-1894,Pouring@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,always,0,,,,,,,
-
-1904,Bomb Poring@NPC_SELFDESTRUCTION,any,173,1,10000,3000,0,no,self,always,0,,,,,,,
+1894,Pouring@WZ_STORMGUST,attack,89,10,2000,0,5000,no,target,always,,,,,,,,
+1894,Pouring@WZ_STORMGUST,chase,89,10,2000,0,5000,no,target,always,,,,,,,,
+1894,Pouring@WZ_WATERBALL,attack,86,10,10000,500,5000,no,target,always,,,,,,,,
+1894,Pouring@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,always,,,,,,,,
+1904,Bombring@NPC_SELFDESTRUCTION,attack,173,1,10000,3000,0,no,self,always,,,,,,,,
+1904,Bombring@NPC_SELFDESTRUCTION,idle,173,1,10000,3000,0,no,self,always,,,,,,,,
+1904,Bombring@NPC_SELFDESTRUCTION,chase,173,1,10000,3000,0,no,self,always,,,,,,,,
// Satan Morroc (12.1)
-//5% HP - Dragon Fear
-1916,Satan Morroc@NPC_DRAGONFEAR,chase,659,10,10000,0,600000,no,self,myhpltmaxrate,5,,,,,,,17
-1916,Satan Morroc@NPC_DRAGONFEAR,attack,659,10,10000,0,600000,no,self,myhpltmaxrate,5,,,,,,,17
-//10% HP - Talk
-1916,Satan Morroc@NPC_TALK,chase,682,10,10000,0,600000,no,self,myhpinrate,6,10,,,,,,16
-1916,Satan Morroc@NPC_TALK,attack,682,10,10000,0,600000,no,self,myhpinrate,6,10,,,,,,16
-//30% HP - Earthquake Combo
-1916,Satan Morroc@NPC_WIDEHELLDIGNITY,chase,684,1,10000,2000,180000,no,self,myhpinrate,11,30,,,,,,6
-1916,Satan Morroc@NPC_WIDEHELLDIGNITY,attack,684,1,10000,2000,180000,no,self,myhpinrate,11,30,,,,,,6
-1916,Satan Morroc@NPC_WIDESTUN,chase,678,5,10000,1300,180000,no,self,afterskill,684,,,,,,,
-1916,Satan Morroc@NPC_WIDESTUN,attack,678,5,10000,1300,180000,no,self,afterskill,684,,,,,,,
-1916,Satan Morroc@NPC_EARTHQUAKE,chase,653,10,10000,2000,180000,no,self,afterskill,678,,,,,,,
-1916,Satan Morroc@NPC_EARTHQUAKE,attack,653,10,10000,2000,180000,no,self,afterskill,678,,,,,,,
-//40% HP - Mixed Combo
-1916,Satan Morroc@NPC_PULSESTRIKE,chase,661,5,10000,800,60000,no,self,myhpinrate,31,40,,,,,,14
-1916,Satan Morroc@NPC_PULSESTRIKE,attack,661,5,10000,800,60000,no,self,myhpinrate,31,40,,,,,,14
-1916,Satan Morroc@NPC_WIDESTONE,chase,666,5,10000,0,60000,no,self,afterskill,661,,,,,,,
-1916,Satan Morroc@NPC_WIDESTONE,attack,666,5,10000,0,60000,no,self,afterskill,661,,,,,,,
-1916,Satan Morroc@WZ_METEOR,chase,83,5,10000,800,60000,no,target,afterskill,666,,,,,,,
-1916,Satan Morroc@WZ_METEOR,attack,83,5,10000,800,60000,no,target,afterskill,666,,,,,,,
-//50% HP - Vampire Combo
-1916,Satan Morroc@NPC_VAMPIRE_GIFT,chase,679,9,10000,1000,50000,no,self,myhpinrate,41,50,,,,,,15
-1916,Satan Morroc@NPC_VAMPIRE_GIFT,attack,679,9,10000,1000,50000,no,self,myhpinrate,41,50,,,,,,15
-1916,Satan Morroc@NPC_WIDESOULDRAIN,chase,680,10,10000,1000,50000,no,self,afterskill,679,,,,,,,
-1916,Satan Morroc@NPC_WIDESOULDRAIN,attack,680,10,10000,1000,50000,no,self,afterskill,679,,,,,,,
-1916,Satan Morroc@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,target,afterskill,680,,,,,,,
-1916,Satan Morroc@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,target,afterskill,680,,,,,,,
-//60% HP - Hell Combo
-1916,Satan Morroc@NPC_WIDESLEEP,chase,668,5,10000,700,35000,no,self,myhpinrate,51,60,,,,,,3
-1916,Satan Morroc@NPC_WIDESLEEP,attack,668,5,10000,700,35000,no,self,myhpinrate,51,60,,,,,,3
-1916,Satan Morroc@NPC_HELLPOWER,chase,683,1,10000,800,35000,no,target,afterskill,668,,,,,,,
-1916,Satan Morroc@NPC_HELLPOWER,attack,683,1,10000,800,35000,no,target,afterskill,668,,,,,,,
-1916,Satan Morroc@NPC_HELLJUDGEMENT,chase,662,5,10000,800,35000,no,self,afterskill,683,,,,,,,
-1916,Satan Morroc@NPC_HELLJUDGEMENT,attack,662,5,10000,800,35000,no,self,afterskill,683,,,,,,,
-//80% HP - Magic Combo
-1916,Satan Morroc@MG_STONECURSE,chase,16,10,10000,1000,20000,no,target,myhpinrate,61,80,,,,,,2
-1916,Satan Morroc@MG_STONECURSE,attack,16,10,10000,1000,20000,no,target,myhpinrate,61,80,,,,,,2
-1916,Satan Morroc@MG_FIREBOLT,chase,19,10,10000,300,20000,no,target,afterskill,16,,,,,,,
-1916,Satan Morroc@MG_FIREBOLT,attack,19,10,10000,300,20000,no,target,afterskill,16,,,,,,,
-1916,Satan Morroc@MG_FROSTDIVER,chase,15,10,10000,1000,20000,no,target,afterskill,19,,,,,,,
-1916,Satan Morroc@MG_FROSTDIVER,attack,15,10,10000,1000,20000,no,target,afterskill,19,,,,,,,
-1916,Satan Morroc@WZ_JUPITEL,chase,84,28,10000,1000,20000,no,target,afterskill,15,,,,,,,
-1916,Satan Morroc@WZ_JUPITEL,attack,84,28,10000,1000,20000,no,target,afterskill,15,,,,,,,
+1916,Satan Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
+1916,Satan Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
1916,Satan Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1916,Satan Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1916,Satan Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1916,Satan Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
-1916,Satan Morroc@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1916,Satan Morroc@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1916,Satan Morroc@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1916,Satan Morroc@NPC_TALK,chase,682,1,10000,0,600000,yes,self,always,0,,,,,,,1
+1916,Satan Morroc@MG_FIREBOLT,attack,19,10,10000,300,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@MG_FIREBOLT,chase,19,10,10000,300,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@MG_FROSTDIVER,attack,15,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@MG_FROSTDIVER,chase,15,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@MG_STONECURSE,attack,16,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,2
+1916,Satan Morroc@MG_STONECURSE,chase,16,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,2
+1916,Satan Morroc@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1916,Satan Morroc@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1916,Satan Morroc@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1916,Satan Morroc@NPC_DRAGONFEAR,attack,659,10,10000,0,600000,yes,self,myhpltmaxrate,5,,,,,,,17
+1916,Satan Morroc@NPC_DRAGONFEAR,chase,659,10,10000,0,600000,yes,self,myhpltmaxrate,5,,,,,,,17
+1916,Satan Morroc@NPC_EARTHQUAKE,attack,653,10,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,
+1916,Satan Morroc@NPC_EARTHQUAKE,chase,653,10,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,
+1916,Satan Morroc@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1916,Satan Morroc@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1916,Satan Morroc@NPC_HELLJUDGEMENT,attack,662,5,10000,800,35000,no,self,myhpltmaxrate,60,,,,,,,
+1916,Satan Morroc@NPC_HELLJUDGEMENT,chase,662,5,10000,800,35000,no,self,myhpltmaxrate,60,,,,,,,
+1916,Satan Morroc@NPC_HELLPOWER,attack,683,1,10000,800,35000,no,target,myhpltmaxrate,60,,,,,,,
+1916,Satan Morroc@NPC_PULSESTRIKE,attack,661,5,10000,800,60000,no,self,myhpltmaxrate,40,,,,,,,14
+1916,Satan Morroc@NPC_PULSESTRIKE,chase,661,5,10000,800,60000,no,self,myhpltmaxrate,40,,,,,,,14
+1916,Satan Morroc@NPC_SHIELDBRAKE,attack,346,10,10000,0,15000,yes,target,always,,,,,,,,
1916,Satan Morroc@NPC_SUMMONSLAVE,attack,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,4
1916,Satan Morroc@NPC_SUMMONSLAVE,chase,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,4
1916,Satan Morroc@NPC_SUMMONSLAVE,idle,196,4,10000,0,30000,yes,self,onspawn,0,1922,1923,1924,1925,,,
-1916,Satan Morroc@NPC_SUMMONSLAVE,idle,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,
-1916,Satan Morroc@SA_LANDPROTECTOR,attack,288,1,10000,0,15000,yes,target,always,0,,,,,,,
-1916,Satan Morroc@NPC_SHIELDBRAKE,attack,346,10,10000,0,15000,yes,target,always,0,,,,,,,
-//5% HP - Dragon Fear
-1917,Wounded Morroc@NPC_DRAGONFEAR,chase,659,10,10000,0,600000,no,self,myhpltmaxrate,5,,,,,,,17
-1917,Wounded Morroc@NPC_DRAGONFEAR,attack,659,10,10000,0,600000,no,self,myhpltmaxrate,5,,,,,,,17
-//10% HP - Talk
-1917,Wounded Morroc@NPC_TALK,chase,682,10,10000,0,600000,no,self,myhpinrate,6,10,,,,,,16
-1917,Wounded Morroc@NPC_TALK,attack,682,10,10000,0,600000,no,self,myhpinrate,6,10,,,,,,16
-//30% HP - Earthquake Combo
-1917,Wounded Morroc@NPC_WIDEHELLDIGNITY,chase,684,1,10000,2000,180000,no,self,myhpinrate,11,30,,,,,,6
-1917,Wounded Morroc@NPC_WIDEHELLDIGNITY,attack,684,1,10000,2000,180000,no,self,myhpinrate,11,30,,,,,,6
-1917,Wounded Morroc@NPC_WIDESTUN,chase,678,5,10000,1300,180000,no,self,afterskill,684,,,,,,,
-1917,Wounded Morroc@NPC_WIDESTUN,attack,678,5,10000,1300,180000,no,self,afterskill,684,,,,,,,
-1917,Wounded Morroc@NPC_EARTHQUAKE,chase,653,10,10000,2000,180000,no,self,afterskill,678,,,,,,,
-1917,Wounded Morroc@NPC_EARTHQUAKE,attack,653,10,10000,2000,180000,no,self,afterskill,678,,,,,,,
-//40% HP - Mixed Combo
-1917,Wounded Morroc@NPC_PULSESTRIKE,chase,661,5,10000,800,60000,no,self,myhpinrate,31,40,,,,,,14
-1917,Wounded Morroc@NPC_PULSESTRIKE,attack,661,5,10000,800,60000,no,self,myhpinrate,31,40,,,,,,14
-1917,Wounded Morroc@NPC_WIDESTONE,chase,666,5,10000,0,60000,no,self,afterskill,661,,,,,,,
-1917,Wounded Morroc@NPC_WIDESTONE,attack,666,5,10000,0,60000,no,self,afterskill,661,,,,,,,
-1917,Wounded Morroc@WZ_METEOR,chase,83,5,10000,800,60000,no,target,afterskill,666,,,,,,,
-1917,Wounded Morroc@WZ_METEOR,attack,83,5,10000,800,60000,no,target,afterskill,666,,,,,,,
-//50% HP - Vampire Combo
-1917,Wounded Morroc@NPC_VAMPIRE_GIFT,chase,679,9,10000,1000,50000,no,self,myhpinrate,41,50,,,,,,15
-1917,Wounded Morroc@NPC_VAMPIRE_GIFT,attack,679,9,10000,1000,50000,no,self,myhpinrate,41,50,,,,,,15
-1917,Wounded Morroc@NPC_WIDESOULDRAIN,chase,680,10,10000,1000,50000,no,self,afterskill,679,,,,,,,
-1917,Wounded Morroc@NPC_WIDESOULDRAIN,attack,680,10,10000,1000,50000,no,self,afterskill,679,,,,,,,
-1917,Wounded Morroc@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,target,afterskill,680,,,,,,,
-1917,Wounded Morroc@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,target,afterskill,680,,,,,,,
-//60% HP - Hell Combo
-1917,Wounded Morroc@NPC_WIDESLEEP,chase,668,5,10000,700,35000,no,self,myhpinrate,51,60,,,,,,3
-1917,Wounded Morroc@NPC_WIDESLEEP,attack,668,5,10000,700,35000,no,self,myhpinrate,51,60,,,,,,3
-1917,Wounded Morroc@NPC_HELLPOWER,chase,683,1,10000,800,35000,no,target,afterskill,668,,,,,,,
-1917,Wounded Morroc@NPC_HELLPOWER,attack,683,1,10000,800,35000,no,target,afterskill,668,,,,,,,
-1917,Wounded Morroc@NPC_HELLJUDGEMENT,chase,662,5,10000,800,35000,no,self,afterskill,683,,,,,,,
-1917,Wounded Morroc@NPC_HELLJUDGEMENT,attack,662,5,10000,800,35000,no,self,afterskill,683,,,,,,,
-//80% HP - Magic Combo
-1917,Wounded Morroc@MG_STONECURSE,chase,16,10,10000,1000,20000,no,target,myhpinrate,61,80,,,,,,2
-1917,Wounded Morroc@MG_STONECURSE,attack,16,10,10000,1000,20000,no,target,myhpinrate,61,80,,,,,,2
-1917,Wounded Morroc@MG_FIREBOLT,chase,19,10,10000,300,20000,no,target,afterskill,16,,,,,,,
-1917,Wounded Morroc@MG_FIREBOLT,attack,19,10,10000,300,20000,no,target,afterskill,16,,,,,,,
-1917,Wounded Morroc@MG_FROSTDIVER,chase,15,10,10000,1000,20000,no,target,afterskill,19,,,,,,,
-1917,Wounded Morroc@MG_FROSTDIVER,attack,15,10,10000,1000,20000,no,target,afterskill,19,,,,,,,
-1917,Wounded Morroc@WZ_JUPITEL,chase,84,28,10000,1000,20000,no,target,afterskill,15,,,,,,,
-1917,Wounded Morroc@WZ_JUPITEL,attack,84,28,10000,1000,20000,no,target,afterskill,15,,,,,,,
+1916,Satan Morroc@NPC_TALK,chase,682,1,10000,0,600000,yes,self,always,,,,,,,,1
+1916,Satan Morroc@NPC_TALK,attack,682,10,10000,0,600000,yes,self,myhpltmaxrate,10,,,,,,,16
+1916,Satan Morroc@NPC_TALK,chase,682,10,10000,0,600000,yes,self,myhpltmaxrate,10,,,,,,,16
+1916,Satan Morroc@NPC_VAMPIRE_GIFT,attack,679,9,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,15
+1916,Satan Morroc@NPC_VAMPIRE_GIFT,chase,679,9,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,15
+1916,Satan Morroc@NPC_WIDEHELLDIGNITY,attack,684,1,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,6
+1916,Satan Morroc@NPC_WIDEHELLDIGNITY,chase,684,1,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,6
+1916,Satan Morroc@NPC_WIDESLEEP,attack,668,5,10000,700,35000,no,self,myhpltmaxrate,60,,,,,,,3
+1916,Satan Morroc@NPC_WIDESLEEP,chase,668,5,10000,700,35000,no,self,myhpltmaxrate,60,,,,,,,3
+1916,Satan Morroc@NPC_WIDESOULDRAIN,attack,680,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1916,Satan Morroc@NPC_WIDESOULDRAIN,chase,680,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1916,Satan Morroc@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+1916,Satan Morroc@NPC_WIDESTONE,chase,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+1916,Satan Morroc@NPC_WIDESTUN,attack,678,5,10000,1300,180000,no,self,myhpltmaxrate,30,,,,,,,
+1916,Satan Morroc@NPC_WIDESTUN,chase,678,5,10000,1300,180000,no,self,myhpltmaxrate,30,,,,,,,
+1916,Satan Morroc@SA_LANDPROTECTOR,attack,288,1,10000,0,15000,yes,target,always,,,,,,,,
+1916,Satan Morroc@WZ_JUPITEL,attack,84,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@WZ_JUPITEL,chase,84,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1916,Satan Morroc@WZ_METEOR,attack,83,5,10000,800,60000,no,target,myhpltmaxrate,40,,,,,,,
+1916,Satan Morroc@WZ_METEOR,chase,83,5,10000,800,60000,no,target,myhpltmaxrate,40,,,,,,,
+1917,Wounded Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
+1917,Wounded Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
1917,Wounded Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1917,Wounded Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1917,Wounded Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1917,Wounded Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
-1917,Wounded Morroc@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1917,Wounded Morroc@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1917,Wounded Morroc@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1917,Wounded Morroc@NPC_TALK,chase,682,1,10000,0,600000,yes,self,always,0,,,,,,,1
+1917,Wounded Morroc@MG_FIREBOLT,attack,19,10,10000,300,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@MG_FIREBOLT,chase,19,10,10000,300,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@MG_FROSTDIVER,attack,15,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@MG_FROSTDIVER,chase,15,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@MG_STONECURSE,attack,16,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,2
+1917,Wounded Morroc@MG_STONECURSE,chase,16,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,2
+1917,Wounded Morroc@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1917,Wounded Morroc@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1917,Wounded Morroc@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1917,Wounded Morroc@NPC_DRAGONFEAR,attack,659,10,10000,0,600000,yes,self,myhpltmaxrate,5,,,,,,,17
+1917,Wounded Morroc@NPC_DRAGONFEAR,chase,659,10,10000,0,600000,yes,self,myhpltmaxrate,5,,,,,,,17
+1917,Wounded Morroc@NPC_EARTHQUAKE,attack,653,10,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,
+1917,Wounded Morroc@NPC_EARTHQUAKE,chase,653,10,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,
+1917,Wounded Morroc@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1917,Wounded Morroc@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1917,Wounded Morroc@NPC_HELLJUDGEMENT,attack,662,5,10000,800,35000,no,self,myhpltmaxrate,60,,,,,,,
+1917,Wounded Morroc@NPC_HELLJUDGEMENT,chase,662,5,10000,800,35000,no,self,myhpltmaxrate,60,,,,,,,
+1917,Wounded Morroc@NPC_HELLPOWER,attack,683,1,10000,800,35000,no,target,myhpltmaxrate,60,,,,,,,
+1917,Wounded Morroc@NPC_HELLPOWER,chase,683,1,10000,800,35000,no,target,myhpltmaxrate,60,,,,,,,
+1917,Wounded Morroc@NPC_HELLPOWER,chase,683,1,10000,800,35000,no,target,myhpltmaxrate,60,,,,,,,
+1917,Wounded Morroc@NPC_PULSESTRIKE,attack,661,5,10000,800,60000,no,self,myhpltmaxrate,40,,,,,,,14
+1917,Wounded Morroc@NPC_PULSESTRIKE,chase,661,5,10000,800,60000,no,self,myhpltmaxrate,40,,,,,,,14
+1917,Wounded Morroc@NPC_SHIELDBRAKE,attack,346,10,10000,0,15000,yes,target,always,,,,,,,,
1917,Wounded Morroc@NPC_SUMMONSLAVE,attack,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,4
1917,Wounded Morroc@NPC_SUMMONSLAVE,chase,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,4
1917,Wounded Morroc@NPC_SUMMONSLAVE,idle,196,4,10000,0,30000,yes,self,onspawn,0,1922,1923,1924,1925,,,
-1917,Wounded Morroc@NPC_SUMMONSLAVE,idle,196,4,10000,0,30000,yes,self,slavele,1,1922,1923,1924,1925,,,
-1917,Wounded Morroc@SA_LANDPROTECTOR,attack,288,1,10000,0,15000,yes,target,always,0,,,,,,,
-1917,Wounded Morroc@NPC_SHIELDBRAKE,attack,346,10,10000,0,15000,yes,target,always,0,,,,,,,
+1917,Wounded Morroc@NPC_TALK,chase,682,1,10000,0,600000,yes,self,always,,,,,,,,1
+1917,Wounded Morroc@NPC_TALK,attack,682,10,10000,0,600000,yes,self,myhpltmaxrate,10,,,,,,,16
+1917,Wounded Morroc@NPC_TALK,chase,682,10,10000,0,600000,yes,self,myhpltmaxrate,10,,,,,,,16
+1917,Wounded Morroc@NPC_VAMPIRE_GIFT,attack,679,9,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,15
+1917,Wounded Morroc@NPC_VAMPIRE_GIFT,chase,679,9,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,15
+1917,Wounded Morroc@NPC_WIDEHELLDIGNITY,attack,684,1,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,6
+1917,Wounded Morroc@NPC_WIDEHELLDIGNITY,chase,684,1,10000,2000,180000,no,self,myhpltmaxrate,30,,,,,,,6
+1917,Wounded Morroc@NPC_WIDESLEEP,attack,668,5,10000,700,35000,no,self,myhpltmaxrate,60,,,,,,,3
+1917,Wounded Morroc@NPC_WIDESLEEP,chase,668,5,10000,700,35000,no,self,myhpltmaxrate,60,,,,,,,3
+1917,Wounded Morroc@NPC_WIDESOULDRAIN,attack,680,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1917,Wounded Morroc@NPC_WIDESOULDRAIN,chase,680,10,10000,1000,50000,no,self,myhpltmaxrate,50,,,,,,,
+1917,Wounded Morroc@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+1917,Wounded Morroc@NPC_WIDESTONE,chase,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+1917,Wounded Morroc@NPC_WIDESTUN,attack,678,5,10000,1300,180000,no,self,myhpltmaxrate,30,,,,,,,
+1917,Wounded Morroc@NPC_WIDESTUN,chase,678,5,10000,1300,180000,no,self,myhpltmaxrate,30,,,,,,,
+1917,Wounded Morroc@SA_LANDPROTECTOR,attack,288,1,10000,0,15000,yes,target,always,,,,,,,,
+1917,Wounded Morroc@WZ_JUPITEL,attack,84,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@WZ_JUPITEL,chase,84,10,10000,1000,20000,no,target,myhpltmaxrate,80,,,,,,,
+1917,Wounded Morroc@WZ_METEOR,attack,83,5,10000,800,60000,no,target,myhpltmaxrate,40,,,,,,,
+1917,Wounded Morroc@WZ_METEOR,chase,83,5,10000,800,60000,no,target,myhpltmaxrate,40,,,,,,,
+1918,Incarnation of Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1918,Incarnation of Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1918,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1918,Incarnation of Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1918,Incarnation of Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1918,Incarnation of Morroc@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-1918,Incarnation of Morroc@NPC_PULSESTRIKE,chase,661,5,2000,0,30000,yes,self,always,0,,,,,,,
-1918,Incarnation of Morroc@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,,
-1918,Incarnation of Morroc@NPC_MAGICMIRROR,chase,671,1,10000,0,30000,yes,self,always,0,,,,,,,
1918,Incarnation of Morroc@NPC_GRANDDARKNESS,attack,339,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
-1918,Incarnation of Morroc@SA_DISPELL,chase,289,5,100,0,30000,yes,target,always,0,,,,,,,
-1918,Incarnation of Morroc@SA_DISPELL,attack,289,5,100,0,30000,yes,target,always,0,,,,,,,
-1918,Incarnation of Morroc@NPC_WIDECURSE,chase,677,5,5000,800,5000,no,self,always,0,,,,,,,
-1918,Incarnation of Morroc@NPC_WIDECURSE,attack,677,5,5000,800,5000,no,self,always,0,,,,,,,
+1918,Incarnation of Morroc@NPC_MAGICMIRROR,chase,671,1,10000,0,30000,yes,self,always,,,,,,,,
+1918,Incarnation of Morroc@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,,
+1918,Incarnation of Morroc@NPC_PULSESTRIKE,chase,661,5,2000,0,30000,yes,self,always,,,,,,,,
+1918,Incarnation of Morroc@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,,,,,,,,
+1918,Incarnation of Morroc@NPC_WIDECURSE,attack,677,5,5000,800,5000,no,self,always,,,,,,,,
+1918,Incarnation of Morroc@NPC_WIDECURSE,chase,677,5,5000,800,5000,no,self,always,,,,,,,,
+1918,Incarnation of Morroc@SA_DISPELL,attack,289,5,100,0,30000,yes,target,always,,,,,,,,
+1918,Incarnation of Morroc@SA_DISPELL,chase,289,5,100,0,30000,yes,target,always,,,,,,,,
+1919,Incarnation of Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1919,Incarnation of Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1919,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1919,Incarnation of Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1919,Incarnation of Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1919,Incarnation of Morroc@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,0,,,,,,,
-1919,Incarnation of Morroc@NPC_WIDEBLEEDING,chase,665,1,10000,500,60000,no,self,always,0,,,,,,,
-1919,Incarnation of Morroc@NPC_WIDEBLEEDING,attack,665,1,10000,500,60000,no,self,always,0,,,,,,,
-1919,Incarnation of Morroc@SM_MAGNUM,attack,7,20,2000,500,5000,no,self,always,0,,,,,,,
+1919,Incarnation of Morroc@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,,,,,,,,
1919,Incarnation of Morroc@NPC_EARTHQUAKE,attack,653,1,5000,5000,100000,no,self,myhpltmaxrate,10,,,,,,,
+1919,Incarnation of Morroc@NPC_WIDEBLEEDING,attack,665,1,10000,500,60000,no,self,always,,,,,,,,
+1919,Incarnation of Morroc@NPC_WIDEBLEEDING,chase,665,1,10000,500,60000,no,self,always,,,,,,,,
+1919,Incarnation of Morroc@SM_MAGNUM,attack,7,10,2000,500,5000,no,self,always,,,,,,,,
+1920,Incarnation of Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1920,Incarnation of Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1920,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1920,Incarnation of Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1920,Incarnation of Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1920,Incarnation of Morroc@NPC_CRITICALWOUND,attack,673,3,10000,0,5000,yes,target,always,0,,,,,,,
-1920,Incarnation of Morroc@NPC_CRITICALWOUND,idle,673,3,5000,0,5000,yes,target,always,0,,,,,,,
-1920,Incarnation of Morroc@NPC_CRITICALWOUND,chase,673,3,5000,0,5000,yes,target,always,0,,,,,,,
-1920,Incarnation of Morroc@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,0,,,,,,,
-1920,Incarnation of Morroc@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,36,
+1920,Incarnation of Morroc@NPC_CRITICALWOUND,attack,673,3,10000,0,5000,yes,target,always,,,,,,,,
+1920,Incarnation of Morroc@NPC_CRITICALWOUND,idle,673,3,5000,0,5000,yes,target,always,,,,,,,,
+1920,Incarnation of Morroc@NPC_CRITICALWOUND,chase,673,3,5000,0,5000,yes,target,always,,,,,,,,
+1920,Incarnation of Morroc@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,,,,,,,,
1920,Incarnation of Morroc@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,36,
+1920,Incarnation of Morroc@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,36,
+1921,Incarnation of Morroc@AL_HEAL,attack,28,10,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1921,Incarnation of Morroc@AL_HEAL,idle,28,10,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1921,Incarnation of Morroc@AL_HEAL,chase,28,10,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1921,Incarnation of Morroc@AL_HEAL,attack,28,10,10000,500,0,yes,self,myhpltmaxrate,70,,,,,,36,
+1921,Incarnation of Morroc@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1921,Incarnation of Morroc@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
-1921,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,45,,,,,,,
1921,Incarnation of Morroc@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1921,Incarnation of Morroc@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1921,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1921,Incarnation of Morroc@AL_HEAL,chase,28,11,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1921,Incarnation of Morroc@AL_HEAL,attack,28,11,10000,500,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1921,Incarnation of Morroc@AL_HEAL,attack,28,11,10000,500,0,yes,self,myhpltmaxrate,70,,,,,,36,
+1921,Incarnation of Morroc@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
1921,Incarnation of Morroc@HP_ASSUMPTIO,idle,361,5,5000,1000,5000,no,friend,friendhpltmaxrate,90,,,,,,,
1921,Incarnation of Morroc@HP_ASSUMPTIO,chase,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
-1921,Incarnation of Morroc@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
-1922,Incarnation of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1922,Incarnation of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1922,Incarnation of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1922,Incarnation of Morroc@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-1922,Incarnation of Morroc@NPC_PULSESTRIKE,chase,661,5,2000,0,30000,yes,self,always,0,,,,,,,
-1922,Incarnation of Morroc@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,,
-1922,Incarnation of Morroc@KN_TWOHANDQUICKEN,chase,60,20,10000,800,60000,no,self,myhpltmaxrate,45,,,,,,,
-1922,Incarnation of Morroc@KN_TWOHANDQUICKEN,attack,60,20,10000,800,60000,no,self,myhpltmaxrate,45,,,,,,,
-1922,Incarnation of Morroc@NPC_MAGICMIRROR,chase,671,1,10000,0,30000,yes,self,always,0,,,,,,,
-1922,Incarnation of Morroc@NPC_GRANDDARKNESS,attack,339,5,500,2000,30000,no,self,always,0,,,,,,6,
-1922,Incarnation of Morroc@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,0,,,,,,,
-1922,Incarnation of Morroc@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,0,,,,,,,
-1922,Incarnation of Morroc@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,0,,,,,,,
-1922,Incarnation of Morroc@WZ_VERMILION,chase,85,5,5000,700,25000,no,target,always,0,,,,,,,
-1922,Incarnation of Morroc@WZ_VERMILION,attack,85,5,2000,700,25000,no,target,always,0,,,,,,,
-1922,Incarnation of Morroc@WZ_JUPITEL,chase,84,5,5000,1000,20000,no,target,always,0,,,,,,,
-1922,Incarnation of Morroc@WZ_JUPITEL,attack,84,5,3000,1000,20000,no,target,always,0,,,,,,,
-1923,Incarnation of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1923,Incarnation of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1923,Incarnation of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1923,Incarnation of Morroc@NPC_SUMMONSLAVE,chase,196,7,10000,1000,10000,no,self,slavele,0,1937,,,,,,
-1923,Incarnation of Morroc@NPC_SUMMONSLAVE,attack,196,7,10000,1000,10000,no,self,slavele,0,1937,,,,,,
-1923,Incarnation of Morroc@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,0,,,,,,,
-1923,Incarnation of Morroc@NPC_WIDEBLEEDING,chase,665,2,10000,500,100000,no,self,always,0,,,,,,,
-1923,Incarnation of Morroc@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,always,0,,,,,,,
-1923,Incarnation of Morroc@NPC_EARTHQUAKE,attack,653,1,2000,700,100000,no,self,myhpltmaxrate,10,,,,,,,
-1923,Incarnation of Morroc@SM_MAGNUM,attack,7,20,2000,500,5000,no,self,always,0,,,,,,,
-1924,Incarnation of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1924,Incarnation of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1924,Incarnation of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1924,Incarnation of Morroc@NPC_CRITICALWOUND,attack,673,4,10000,0,5000,yes,target,always,0,,,,,,,
-1924,Incarnation of Morroc@NPC_CRITICALWOUND,idle,673,4,5000,0,5000,yes,target,always,0,,,,,,,
-1924,Incarnation of Morroc@NPC_CRITICALWOUND,chase,673,4,5000,0,5000,yes,target,always,0,,,,,,,
-1924,Incarnation of Morroc@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,0,,,,,,,
-1924,Incarnation of Morroc@NPC_WIDESILENCE,chase,663,2,10000,1000,20000,no,self,always,0,,,,,,36,
-1924,Incarnation of Morroc@NPC_WIDESILENCE,attack,663,2,10000,1000,20000,no,self,always,0,,,,,,36,
-1925,Incarnation of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1925,Incarnation of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1925,Incarnation of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,0,9,0x38A5,,,,,
-1925,Incarnation of Morroc@HP_ASSUMPTIO,idle,361,5,5000,1000,5000,yes,friend,friendhpltmaxrate,90,,,,,,,
-1925,Incarnation of Morroc@HP_ASSUMPTIO,chase,361,5,5000,1000,10000,yes,friend,friendhpltmaxrate,90,,,,,,,
-1925,Incarnation of Morroc@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,yes,friend,friendhpltmaxrate,90,,,,,,,
-1925,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1925,Incarnation of Morroc@AL_HEAL,chase,28,11,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1925,Incarnation of Morroc@AL_HEAL,attack,28,11,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
-1925,Incarnation of Morroc@AL_HEAL,idle,28,11,10000,300,0,yes,self,myhpltmaxrate,70,,,,,,36,
-1927,Whisper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1927,Whisper@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1927,Whisper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-1927,Whisper@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,28,
+1922,Shadow of Morroc@KN_TWOHANDQUICKEN,attack,60,10,10000,800,60000,no,self,myhpltmaxrate,45,,,,,,,
+1922,Shadow of Morroc@KN_TWOHANDQUICKEN,chase,60,10,10000,800,60000,no,self,myhpltmaxrate,45,,,,,,,
+1922,Shadow of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1922,Shadow of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1922,Shadow of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1922,Shadow of Morroc@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,,,,,,,,
+1922,Shadow of Morroc@NPC_GRANDDARKNESS,attack,339,5,500,2000,30000,no,self,always,,,,,,,6,
+1922,Shadow of Morroc@NPC_MAGICMIRROR,chase,671,1,10000,0,30000,yes,self,always,,,,,,,,
+1922,Shadow of Morroc@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,,
+1922,Shadow of Morroc@NPC_PULSESTRIKE,chase,661,5,2000,0,30000,yes,self,always,,,,,,,,
+1922,Shadow of Morroc@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,,,,,,,,
+1922,Shadow of Morroc@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,,,,,,,,
+1922,Shadow of Morroc@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,,,,,,,,
+1922,Shadow of Morroc@WZ_JUPITEL,attack,84,5,3000,1000,20000,no,target,always,,,,,,,,
+1922,Shadow of Morroc@WZ_JUPITEL,chase,84,5,5000,1000,20000,no,target,always,,,,,,,,
+1922,Shadow of Morroc@WZ_VERMILION,attack,85,5,2000,700,25000,no,target,always,,,,,,,,
+1922,Shadow of Morroc@WZ_VERMILION,chase,85,5,5000,700,25000,no,target,always,,,,,,,,
+1923,Shadow of Morroc@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,,,,,,,,
+1923,Shadow of Morroc@NPC_EARTHQUAKE,attack,653,1,2000,700,100000,no,self,myhpltmaxrate,10,,,,,,,
+1923,Shadow of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1923,Shadow of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1923,Shadow of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1923,Shadow of Morroc@NPC_SUMMONSLAVE,attack,196,7,10000,1000,10000,no,self,slavele,0,1937,,,,,,
+1923,Shadow of Morroc@NPC_SUMMONSLAVE,chase,196,7,10000,1000,10000,no,self,slavele,0,1937,,,,,,
+1923,Shadow of Morroc@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,always,,,,,,,,
+1923,Shadow of Morroc@NPC_WIDEBLEEDING,chase,665,2,10000,500,100000,no,self,always,,,,,,,,
+1923,Shadow of Morroc@SM_MAGNUM,attack,7,10,2000,500,5000,no,self,always,,,,,,,,
+1924,Shadow of Morroc@NPC_CRITICALWOUND,attack,673,4,10000,0,5000,yes,target,always,,,,,,,,
+1924,Shadow of Morroc@NPC_CRITICALWOUND,idle,673,4,5000,0,5000,yes,target,always,,,,,,,,
+1924,Shadow of Morroc@NPC_CRITICALWOUND,chase,673,4,5000,0,5000,yes,target,always,,,,,,,,
+1924,Shadow of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1924,Shadow of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1924,Shadow of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1924,Shadow of Morroc@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,,,,,,,,
+1924,Shadow of Morroc@NPC_WIDESILENCE,attack,663,2,10000,1000,20000,no,self,always,,,,,,,36,
+1924,Shadow of Morroc@NPC_WIDESILENCE,chase,663,2,10000,1000,20000,no,self,always,,,,,,,36,
+1925,Shadow of Morroc@AL_HEAL,attack,28,10,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1925,Shadow of Morroc@AL_HEAL,idle,28,10,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1925,Shadow of Morroc@AL_HEAL,chase,28,10,10000,300,0,yes,friend,friendhpltmaxrate,99,,,,,,36,
+1925,Shadow of Morroc@AL_HEAL,idle,28,10,10000,300,0,yes,self,myhpltmaxrate,70,,,,,,36,
+1925,Shadow of Morroc@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,yes,friend,friendhpltmaxrate,90,,,,,,,
+1925,Shadow of Morroc@HP_ASSUMPTIO,idle,361,5,5000,1000,5000,yes,friend,friendhpltmaxrate,90,,,,,,,
+1925,Shadow of Morroc@HP_ASSUMPTIO,chase,361,5,5000,1000,10000,yes,friend,friendhpltmaxrate,90,,,,,,,
+1925,Shadow of Morroc@NPC_EMOTION,attack,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1925,Shadow of Morroc@NPC_EMOTION,idle,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1925,Shadow of Morroc@NPC_EMOTION,chase,197,1,10000,0,30000,yes,self,always,,9,0x3885,,,,,
+1927,Whisper@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1927,Whisper@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1927,Whisper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+1927,Whisper@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,28,
// Sealed Shrine (12.1)
-1929,Great Demon Baphomet@NPC_TALK,chase,682,1,10000,0,6000000,yes,target,myhpltmaxrate,2,,,,,,,25
-1929,Great Demon Baphomet@NPC_TALK,attack,682,1,10000,0,6000000,yes,target,myhpltmaxrate,2,,,,,,,25
-1929,Great Demon Baphomet@NPC_TALK,chase,682,1,10000,0,6000000,yes,target,always,0,,,,,,,19
-1929,Great Demon Baphomet@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-1929,Great Demon Baphomet@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-1929,Great Demon Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,0,,,,,,,
-1929,Great Demon Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,0,,,,,,,
-1929,Great Demon Baphomet@AS_SONICBLOW,attack,136,5,500,0,20000,no,target,myhpltmaxrate,30,,,,,,,20
-1929,Great Demon Baphomet@NPC_DARKNESSBREATH,attack,658,3,2000,800,5000,no,target,myhpltmaxrate,50,,,,,,29,
-1929,Great Demon Baphomet@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,target,myhpltmaxrate,70,,,,,,,24
-1929,Great Demon Baphomet@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,target,myhpltmaxrate,70,,,,,,,24
-1929,Great Demon Baphomet@NPC_HELLJUDGEMENT,chase,662,3,10000,800,15000,no,self,myhpltmaxrate,50,,,,,,,24
-1929,Great Demon Baphomet@NPC_HELLJUDGEMENT,attack,662,3,10000,800,15000,no,self,myhpltmaxrate,50,,,,,,,22
-1929,Great Demon Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1929,Great Demon Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1929,Great Demon Baphomet@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,2,1431,,,,,,
-1929,Great Demon Baphomet@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,2,1431,,,,,,
-1929,Great Demon Baphomet@NPC_INVINCIBLE,idle,685,1,10000,1000,60000,no,self,always,0,,,,,,,19
-1929,Great Demon Baphomet@NPC_INVINCIBLE,chase,685,1,10000,1000,60000,no,self,always,0,,,,,,,19
-1929,Great Demon Baphomet@NPC_INVINCIBLE,attack,685,1,10000,1000,60000,no,self,always,0,,,,,,,19
-1929,Great Demon Baphomet@NPC_PULSESTRIKE,chase,661,5,10000,2500,30000,no,self,always,0,,,,,,,20
-1929,Great Demon Baphomet@NPC_PULSESTRIKE,attack,661,5,10000,2500,30000,no,self,always,0,,,,,,,21
-1929,Great Demon Baphomet@KN_BRANDISHSPEAR,chase,57,20,10000,1000,20000,no,target,always,0,,,,,,,
-1929,Great Demon Baphomet@KN_BRANDISHSPEAR,attack,57,20,10000,1000,20000,no,target,always,0,,,,,,,
-1929,Great Demon Baphomet@NPC_DARKBREATH,chase,202,1,2000,800,5000,no,target,always,0,,,,,,29,
-1929,Great Demon Baphomet@NPC_DARKBREATH,attack,202,1,2000,800,5000,no,target,always,0,,,,,,29,
-1929,Great Demon Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
-1929,Great Demon Baphomet@WZ_VERMILION,attack,85,10,2000,500,10000,no,target,always,0,,,,,,29,
-1929,Great Demon Baphomet@WZ_VERMILION,chase,85,20,5000,500,10000,no,target,skillused,18,,,,,,29,
-1929,Great Demon Baphomet@WZ_VERMILION,chase,85,20,2000,500,10000,no,target,always,0,,,,,,29,
-1929,Great Demon Baphomet@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,60,,,,,,,23
+1929,Unsealed Baphomet@AS_SONICBLOW,attack,136,5,500,0,20000,no,target,myhpltmaxrate,30,,,,,,,20
+1929,Unsealed Baphomet@KN_BRANDISHSPEAR,attack,57,5,10000,1000,20000,no,target,always,,,,,,,,
+1929,Unsealed Baphomet@KN_BRANDISHSPEAR,chase,57,5,10000,1000,20000,no,target,always,,,,,,,,
+1929,Unsealed Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,,,,,,,,
+1929,Unsealed Baphomet@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,60,,,,,,,23
+1929,Unsealed Baphomet@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
+1929,Unsealed Baphomet@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
+1929,Unsealed Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,,
+1929,Unsealed Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1929,Unsealed Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1929,Unsealed Baphomet@NPC_DARKBREATH,attack,202,1,2000,800,5000,no,target,always,,,,,,,29,
+1929,Unsealed Baphomet@NPC_DARKBREATH,chase,202,1,2000,800,5000,no,target,always,,,,,,,29,
+1929,Unsealed Baphomet@NPC_DARKNESSBREATH,attack,658,3,2000,800,5000,no,target,myhpltmaxrate,50,,,,,,29,
+1929,Unsealed Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,,,,,,,,
+1929,Unsealed Baphomet@NPC_EVILLAND,attack,670,10,10000,1000,50000,no,self,myhpltmaxrate,70,,,,,,,24
+1929,Unsealed Baphomet@NPC_EVILLAND,chase,670,10,10000,1000,50000,no,self,myhpltmaxrate,70,,,,,,,24
+1929,Unsealed Baphomet@NPC_HELLJUDGEMENT,attack,662,3,10000,800,15000,no,self,myhpltmaxrate,50,,,,,,,22
+1929,Unsealed Baphomet@NPC_HELLJUDGEMENT,chase,662,3,10000,800,15000,no,self,myhpltmaxrate,50,,,,,,,24
+1929,Unsealed Baphomet@NPC_INVINCIBLE,attack,685,1,10000,1000,60000,no,self,always,,,,,,,,19
+1929,Unsealed Baphomet@NPC_INVINCIBLE,idle,685,1,10000,1000,60000,no,self,always,,,,,,,,19
+1929,Unsealed Baphomet@NPC_INVINCIBLE,chase,685,1,10000,1000,60000,no,self,always,,,,,,,,19
+1929,Unsealed Baphomet@NPC_PULSESTRIKE,attack,661,5,10000,2500,30000,no,self,always,,,,,,,,21
+1929,Unsealed Baphomet@NPC_PULSESTRIKE,chase,661,5,10000,2500,30000,no,self,always,,,,,,,,20
+1929,Unsealed Baphomet@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,2,1431,,,,,,
+1929,Unsealed Baphomet@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,2,1431,,,,,,
+1929,Unsealed Baphomet@NPC_TALK,chase,682,1,10000,0,6000000,yes,self,always,,,,,,,,19
+1929,Unsealed Baphomet@NPC_TALK,attack,682,1,10000,0,6000000,yes,self,myhpltmaxrate,2,,,,,,,25
+1929,Unsealed Baphomet@NPC_TALK,chase,682,1,10000,0,6000000,yes,self,myhpltmaxrate,2,,,,,,,25
+1929,Unsealed Baphomet@WZ_VERMILION,attack,85,10,2000,500,10000,no,target,always,,,,,,,29,
+1929,Unsealed Baphomet@WZ_VERMILION,chase,85,10,2000,500,10000,no,target,always,,,,,,,29,
+1929,Unsealed Baphomet@WZ_VERMILION,chase,85,10,5000,500,10000,no,target,skillused,18,,,,,,29,
// Fallacious Okolnir (12.1)
-1930,Piamette@WZ_METEOR,idle,83,11,10000,300,0,yes,target,rudeattacked,,,,,,,,
-1930,Piamette@NPC_WIDECURSE,chase,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
-1930,Piamette@NPC_WIDECURSE,attack,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
+1930,Piamette@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1930,Piamette@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1930,Piamette@MG_FROSTDIVER,attack,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1930,Piamette@MG_FROSTDIVER,chase,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
1930,Piamette@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
1930,Piamette@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
-1930,Piamette@NPC_HELLJUDGEMENT,chase,662,5,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
-1930,Piamette@NPC_HELLJUDGEMENT,attack,662,5,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
-1930,Piamette@NPC_DARKNESSBREATH,chase,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
+1930,Piamette@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1930,Piamette@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1930,Piamette@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1930,Piamette@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
+1930,Piamette@NPC_CRITICALWOUND,attack,673,2,2000,0,5000,yes,target,always,,,,,,,,
+1930,Piamette@NPC_CRITICALWOUND,chase,673,2,2000,0,5000,yes,target,always,,,,,,,,
1930,Piamette@NPC_DARKNESSBREATH,attack,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
-1930,Piamette@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
-1930,Piamette@WZ_VERMILION,chase,85,20,2000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
-1930,Piamette@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1930,Piamette@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1930,Piamette@MG_FROSTDIVER,chase,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1930,Piamette@MG_FROSTDIVER,attack,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1930,Piamette@WZ_JUPITEL,chase,84,28,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1930,Piamette@WZ_JUPITEL,attack,84,28,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1930,Piamette@NPC_CRITICALWOUND,attack,673,2,2000,0,5000,yes,target,always,0,,,,,,,
-1930,Piamette@NPC_CRITICALWOUND,chase,673,2,2000,0,5000,yes,target,always,0,,,,,,,
-1930,Piamette@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,
-1930,Piamette@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1930,Piamette@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1930,Piamette@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1930,Piamette@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000000,no,self,myhpltmaxrate,70,1947,,,,,,
-1930,Piamette@NPC_SUMMONSLAVE,chase,196,3,10000,2000,60000000,no,self,myhpltmaxrate,70,1947,,,,,,
-1931,Wish Maiden@WZ_METEOR,idle,83,11,10000,300,0,yes,target,rudeattacked,,,,,,,,
+1930,Piamette@NPC_DARKNESSBREATH,chase,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
+1930,Piamette@NPC_HELLJUDGEMENT,attack,662,5,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
+1930,Piamette@NPC_HELLJUDGEMENT,chase,662,5,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
+1930,Piamette@NPC_SUMMONSLAVE,attack,196,3,10000,2000,60000000,no,self,myhpltmaxrate,70,,,,,,,
+1930,Piamette@NPC_SUMMONSLAVE,chase,196,3,10000,2000,60000000,no,self,myhpltmaxrate,70,,,,,,,
+1930,Piamette@NPC_WIDECURSE,attack,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
+1930,Piamette@NPC_WIDECURSE,chase,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
+1930,Piamette@WZ_JUPITEL,attack,84,10,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1930,Piamette@WZ_JUPITEL,chase,84,10,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1930,Piamette@WZ_METEOR,idle,83,10,10000,300,0,yes,target,rudeattacked,,,,,,,,
+1930,Piamette@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
+1930,Piamette@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
+1931,Wish Maiden@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+1931,Wish Maiden@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+1931,Wish Maiden@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+1931,Wish Maiden@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+1931,Wish Maiden@KN_TWOHANDQUICKEN,chase,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+1931,Wish Maiden@LK_SPIRALPIERCE,attack,397,1,2000,1000,10000,no,target,always,,,,,,,,
+1931,Wish Maiden@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
+1931,Wish Maiden@NPC_AGIUP,attack,350,5,10000,0,100000,yes,self,myhpltmaxrate,50,,,,,,,
+1931,Wish Maiden@NPC_AGIUP,chase,350,5,10000,0,100000,yes,self,myhpltmaxrate,50,,,,,,,
+1931,Wish Maiden@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1931,Wish Maiden@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1931,Wish Maiden@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1931,Wish Maiden@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,,,,,,,,
+1931,Wish Maiden@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
1931,Wish Maiden@NPC_SUMMONSLAVE,attack,196,5,10000,2000,5000,no,self,slavele,1,1933,,,,,,
1931,Wish Maiden@NPC_SUMMONSLAVE,idle,196,5,10000,2000,5000,no,self,slavele,1,1933,,,,,,
1931,Wish Maiden@NPC_SUMMONSLAVE,chase,196,5,10000,2000,5000,no,self,slavele,1,1933,,,,,,
-1931,Wish Maiden@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1931,Wish Maiden@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1931,Wish Maiden@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1931,Wish Maiden@NPC_AGIUP,attack,350,5,10000,0,100000,yes,self,myhpltmaxrate,50,,,,,,,
-1931,Wish Maiden@NPC_AGIUP,chase,350,5,10000,0,100000,yes,self,myhpltmaxrate,50,,,,,,,
-1931,Wish Maiden@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32,
-1931,Wish Maiden@KN_TWOHANDQUICKEN,chase,60,20,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
-1931,Wish Maiden@KN_TWOHANDQUICKEN,attack,60,20,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
-1931,Wish Maiden@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-1931,Wish Maiden@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-1931,Wish Maiden@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-1931,Wish Maiden@LK_SPIRALPIERCE,attack,397,1,2000,1000,10000,no,target,always,0,,,,,,,
-1931,Wish Maiden@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,0,,,,,,,
-1931,Wish Maiden@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-1931,Wish Maiden@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,0,,,,,,,
-1931,Wish Maiden@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
-1931,Wish Maiden@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,always,0,,,,,,,
-1931,Wish Maiden@WZ_VERMILION,chase,85,20,2000,1000,5000,no,target,always,0,,,,,,,
-1932,Garden Keeper@NPC_RUN,chase,354,1,10000,0,0,yes,self,myhpltmaxrate,99,,,,,,26,
+1931,Wish Maiden@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+1931,Wish Maiden@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+1931,Wish Maiden@WZ_METEOR,idle,83,10,10000,300,0,yes,target,rudeattacked,,,,,,,,
+1931,Wish Maiden@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,,
+1931,Wish Maiden@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,always,,,,,,,,
1932,Garden Keeper@NPC_RUN,attack,354,1,10000,0,0,yes,self,myhpltmaxrate,99,,,,,,26,
-1933,Garden Watcher@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1933,Garden Watcher@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,0,,,,,,18,
-1933,Garden Watcher@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,0,,,,,,18,
-1933,Garden Watcher@WZ_JUPITEL,attack,84,4,1000,1000,5000,yes,target,always,0,,,,,,6,
-1933,Garden Watcher@WZ_JUPITEL,chase,84,4,1000,1000,5000,yes,target,always,0,,,,,,6,
-1933,Garden Watcher@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
+1932,Garden Keeper@NPC_RUN,chase,354,1,10000,0,0,yes,self,myhpltmaxrate,99,,,,,,26,
1933,Garden Watcher@AL_HEAL,attack,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
-1933,Garden Watcher@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
+1933,Garden Watcher@AL_HEAL,chase,28,9,10000,500,5000,no,friend,friendhpltmaxrate,50,,,,,,18,
1933,Garden Watcher@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
-1933,Garden Watcher@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-1933,Garden Watcher@NPC_DARKBREATH,chase,202,1,500,800,5000,no,target,always,0,,,,,,29,
-1933,Garden Watcher@NPC_DARKBREATH,attack,202,1,500,800,5000,no,target,always,0,,,,,,29,
-1933,Garden Watcher@NPC_DARKCROSS,attack,338,5,2000,1500,10000,no,target,always,0,,,,,,,
-1933,Garden Watcher@CR_REFLECTSHIELD,attack,252,3,10000,0,400000,yes,self,always,0,,,,,,32,
-1933,Garden Watcher@CR_REFLECTSHIELD,chase,252,3,10000,0,400000,yes,self,always,0,,,,,,32,
-1937,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,1000,0,no,self,always,0,,,,,,,
-1937,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,1000,0,no,self,always,0,,,,,,,
-1947,Piamette@NPC_WIDECURSE,chase,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
-1947,Piamette@NPC_WIDECURSE,attack,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
-1947,Piamette@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
-1947,Piamette@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
-1947,Piamette@NPC_HELLJUDGEMENT,chase,662,2,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
-1947,Piamette@NPC_HELLJUDGEMENT,attack,662,2,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
-1947,Piamette@NPC_DARKNESSBREATH,chase,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
-1947,Piamette@NPC_DARKNESSBREATH,attack,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
-1947,Piamette@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
-1947,Piamette@WZ_VERMILION,chase,85,20,2000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
-1947,Piamette@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1933,Garden Watcher@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,50,,,,,,18,
+1933,Garden Watcher@CR_REFLECTSHIELD,attack,252,3,10000,0,400000,yes,self,always,,,,,,,32,
+1933,Garden Watcher@CR_REFLECTSHIELD,chase,252,3,10000,0,400000,yes,self,always,,,,,,,32,
+1933,Garden Watcher@MG_SAFETYWALL,attack,12,5,1000,1000,5000,no,self,always,,,,,,,18,
+1933,Garden Watcher@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+1933,Garden Watcher@NPC_DARKBREATH,attack,202,1,500,800,5000,no,target,always,,,,,,,29,
+1933,Garden Watcher@NPC_DARKBREATH,chase,202,1,500,800,5000,no,target,always,,,,,,,29,
+1933,Garden Watcher@NPC_DARKCROSS,attack,338,5,2000,1500,10000,no,target,always,,,,,,,,
+1933,Garden Watcher@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,,,,,,,18,
+1933,Garden Watcher@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,,,,,,,18,
+1933,Garden Watcher@WZ_JUPITEL,attack,84,4,1000,1000,5000,yes,target,always,,,,,,,6,
+1933,Garden Watcher@WZ_JUPITEL,chase,84,4,1000,1000,5000,yes,target,always,,,,,,,6,
+1937,Constant@NPC_SELFDESTRUCTION,attack,173,1,10000,1000,0,yes,self,always,,,,,,,,
+1937,Constant@NPC_SELFDESTRUCTION,chase,173,1,2000,1000,0,yes,self,always,,,,,,,,
+1947,Piamette@AL_HEAL,attack,28,10,10000,500,5000,no,friend,friendhpltmaxrate,80,,,,,,18,
+1947,Piamette@AL_HEAL,chase,28,10,10000,500,5000,no,friend,friendhpltmaxrate,80,,,,,,18,
1947,Piamette@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1947,Piamette@MG_FROSTDIVER,chase,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1947,Piamette@MG_FROSTDIVER,attack,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1947,Piamette@WZ_JUPITEL,chase,84,28,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1947,Piamette@WZ_JUPITEL,attack,84,28,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
-1947,Piamette@NPC_DARKBLESSING,attack,203,1,300,0,2000,no,target,myhpltmaxrate,50,,,,,,,
-1947,Piamette@NPC_CRITICALWOUND,attack,673,2,2000,0,5000,yes,target,always,0,,,,,,,
-1947,Piamette@NPC_CRITICALWOUND,chase,673,2,2000,0,5000,yes,target,always,0,,,,,,,
-1947,Piamette@AL_HEAL,chase,28,11,10000,500,5000,no,friend,friendhpltmaxrate,80,,,,,,18,
-1947,Piamette@AL_HEAL,attack,28,11,10000,500,5000,no,friend,friendhpltmaxrate,80,,,,,,18,
+1947,Piamette@AL_HEAL,chase,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+1947,Piamette@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
1947,Piamette@HP_ASSUMPTIO,idle,361,5,5000,1000,5000,no,friend,friendhpltmaxrate,90,,,,,,,
1947,Piamette@HP_ASSUMPTIO,chase,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
-1947,Piamette@HP_ASSUMPTIO,attack,361,5,5000,1000,10000,no,friend,friendhpltmaxrate,90,,,,,,,
-1947,Piamette@NPC_WIDESILENCE,chase,663,5,3000,1000,20000,no,self,always,0,,,,,,36,
-1947,Piamette@NPC_WIDESILENCE,attack,663,5,3000,1000,20000,no,self,always,0,,,,,,36,
+1947,Piamette@MG_FROSTDIVER,attack,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1947,Piamette@MG_FROSTDIVER,chase,15,10,3000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1947,Piamette@MG_THUNDERSTORM,attack,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
+1947,Piamette@MG_THUNDERSTORM,chase,21,9,2000,1500,10000,no,target,myhpltmaxrate,30,,,,,,,
+1947,Piamette@NPC_CRITICALWOUND,attack,673,2,2000,0,5000,yes,target,always,,,,,,,,
+1947,Piamette@NPC_CRITICALWOUND,chase,673,2,2000,0,5000,yes,target,always,,,,,,,,
+1947,Piamette@NPC_DARKBLESSING,attack,203,1,300,0,2000,no,target,myhpltmaxrate,50,,,,,,,
+1947,Piamette@NPC_DARKNESSBREATH,attack,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
+1947,Piamette@NPC_DARKNESSBREATH,chase,658,2,500,800,5000,no,target,myhpltmaxrate,30,,,,,,29,
+1947,Piamette@NPC_HELLJUDGEMENT,attack,662,2,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
+1947,Piamette@NPC_HELLJUDGEMENT,chase,662,2,5000,800,35000,no,self,myhpltmaxrate,30,,,,,,,
+1947,Piamette@NPC_WIDECURSE,attack,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
+1947,Piamette@NPC_WIDECURSE,chase,677,5,10000,700,35000,no,self,myhpltmaxrate,20,,,,,,,
+1947,Piamette@NPC_WIDESILENCE,attack,663,5,3000,1000,20000,no,self,always,,,,,,,36,
+1947,Piamette@NPC_WIDESILENCE,chase,663,5,3000,1000,20000,no,self,always,,,,,,,36,
+1947,Piamette@WZ_JUPITEL,attack,84,10,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1947,Piamette@WZ_JUPITEL,chase,84,10,5000,1000,20000,no,target,myhpltmaxrate,50,,,,,,,
+1947,Piamette@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
+1947,Piamette@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,myhpltmaxrate,30,,,,,,,
-// Endless Tower (12.1)
-1956,Naght Sieger@KN_BRANDISHSPEAR,attack,57,3,2000,500,5000,no,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,always,0,,,,,,9,
-1956,Naght Sieger@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,no,self,myhpltmaxrate,50,,,,,,6,
-1956,Naght Sieger@NPC_HELLJUDGEMENT,chase,662,3,10000,1000,20000,no,self,always,0,,,,,,36,
-1956,Naght Sieger@NPC_HELLJUDGEMENT,attack,662,3,10000,1000,20000,no,self,always,0,,,,,,36,
-1956,Naght Sieger@NPC_WIDEFREEZE,attack,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
-1956,Naght Sieger@NPC_DARKSTRIKE,chase,340,10,5000,0,5000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_HALLUCINATION,chase,207,1,500,0,5000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_SHIELDBRAKE,attack,346,10,200,0,5000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_WATERATTACK,chase,184,1,5000,0,10000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_WATERATTACK,attack,184,1,5000,0,10000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_FIREATTACK,chase,186,1,5000,0,10000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_FIREATTACK,attack,186,1,5000,0,10000,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_STUNATTACK,chase,179,5,2000,0,0,yes,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_STUNATTACK,attack,179,2,2000,0,0,yes,target,always,0,,,,,,,
-1956,Naght Sieger@ASC_BREAKER,chase,379,3,5000,500,10000,no,target,always,0,,,,,,,
-1956,Naght Sieger@ASC_BREAKER,attack,379,3,2000,0,10000,yes,target,always,0,,,,,,32,
-1956,Naght Sieger@WZ_METEOR,attack,83,11,2000,1000,10000,no,target,always,0,,,,,,29,
-1956,Naght Sieger@WZ_METEOR,chase,83,11,2000,1000,10000,no,target,always,0,,,,,,29,
-1956,Naght Sieger@WZ_STORMGUST,attack,89,10,2000,500,5000,no,target,always,0,,,,,,,
-1956,Naght Sieger@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_WIDESILENCE,chase,663,5,3000,1000,20000,no,self,always,0,,,,,,36,
-1956,Naght Sieger@NPC_WIDESILENCE,attack,663,5,3000,1000,20000,no,self,always,0,,,,,,36,
-1956,Naght Sieger@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,0,,,,,,,
-1956,Naght Sieger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1956,Naght Sieger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1956,Naght Sieger@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,no,self,slavele,3,1605,,,,,,
-1956,Naght Sieger@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,no,self,slavele,3,1605,,,,,,
-1956,Naght Sieger@NPC_SUMMONSLAVE,idle,196,4,10000,0,30000,yes,self,onspawn,0,1605,,,,,,
+// Endless Tower (13.1)
+1956,Naght Sieger@ASC_BREAKER,attack,379,3,2000,0,10000,yes,target,always,,,,,,,32,
+1956,Naght Sieger@ASC_BREAKER,chase,379,3,5000,500,10000,no,target,always,,,,,,,,
+1956,Naght Sieger@KN_BRANDISHSPEAR,attack,57,3,2000,500,5000,no,target,always,,,,,,,,
+1956,Naght Sieger@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,no,self,myhpltmaxrate,50,,,,,,6,
+1956,Naght Sieger@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,always,,,,,,,9,
1956,Naght Sieger@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
1956,Naght Sieger@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-1957,Entweihen Crothen@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-1957,Entweihen Crothen@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-1957,Entweihen Crothen@ASC_BREAKER,attack,379,5,500,1000,20000,no,target,myhpltmaxrate,30,,,,,,,
-1957,Entweihen Crothen@NPC_PULSESTRIKE,attack,661,5,10000,2500,30000,no,self,myhpltmaxrate,40,,,,,,,
-1957,Entweihen Crothen@NPC_EVILLAND,attack,670,4,10000,800,50000,no,target,myhpltmaxrate,70,,,,,,,
-1957,Entweihen Crothen@NPC_DARKSTRIKE,attack,340,10,2000,0,1000,no,target,always,0,,,,,,,
-1957,Entweihen Crothen@NPC_DARKNESSATTACK,attack,190,3,2000,500,5000,no,target,always,0,,,,,,29,
-1957,Entweihen Crothen@AC_SHOWER,attack,47,3,500,500,5000,no,target,always,0,,,,,,,
-1957,Entweihen Crothen@WZ_METEOR,attack,83,11,2000,1000,10000,no,target,always,0,,,,,,29,
-1957,Entweihen Crothen@NPC_WIDECURSE,attack,677,5,5000,300,20000,no,self,always,0,,,,,,,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,18,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,89,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,21,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,28,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,79,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,skillused,83,,,,,,9,
-1957,Entweihen Crothen@WZ_METEOR,idle,83,11,10000,0,0,yes,target,casttargeted,0,,,,,,9,
-//1957,Entweihen Crothen@ML_DEFENDER,idle,8219,5,10000,0,180000,no,self,always,0,,,,,,29,
-//1957,Entweihen Crothen@ML_DEFENDER,attack,8219,5,10000,0,180000,no,self,always,0,,,,,,29,
+1956,Naght Sieger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1956,Naght Sieger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1956,Naght Sieger@NPC_DARKSTRIKE,chase,340,10,5000,0,5000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_FIREATTACK,attack,186,1,5000,0,10000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_FIREATTACK,chase,186,1,5000,0,10000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_HALLUCINATION,chase,207,1,500,0,5000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_HELLJUDGEMENT,attack,662,3,10000,1000,20000,no,self,always,,,,,,,36,
+1956,Naght Sieger@NPC_HELLJUDGEMENT,chase,662,3,10000,1000,20000,no,self,always,,,,,,,36,
+1956,Naght Sieger@NPC_SHIELDBRAKE,attack,346,10,200,0,5000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_STUNATTACK,attack,179,2,2000,0,0,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_STUNATTACK,chase,179,5,2000,0,0,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,1605,,,,,,
+1956,Naght Sieger@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,1605,,,,,,
+1956,Naght Sieger@NPC_WATERATTACK,attack,184,1,5000,0,10000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_WATERATTACK,chase,184,1,5000,0,10000,yes,target,always,,,,,,,,
+1956,Naght Sieger@NPC_WIDEBLEEDING,attack,665,3,3000,0,30000,no,self,always,,,,,,,36,
+1956,Naght Sieger@NPC_WIDEFREEZE,attack,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+1956,Naght Sieger@NPC_WIDESILENCE,attack,663,5,3000,1000,20000,no,self,always,,,,,,,36,
+1956,Naght Sieger@NPC_WIDESILENCE,chase,663,5,3000,1000,20000,no,self,always,,,,,,,36,
+1956,Naght Sieger@WZ_METEOR,attack,83,10,2000,1000,10000,no,target,always,,,,,,,29,
+1956,Naght Sieger@WZ_METEOR,chase,83,10,2000,1000,10000,no,target,always,,,,,,,29,
+1956,Naght Sieger@WZ_STORMGUST,attack,89,10,2000,500,5000,no,target,always,,,,,,,,
+1956,Naght Sieger@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,,,,,,,,
+1956,Naght Sieger@WZ_STORMGUST,chase,89,10,2000,500,5000,no,target,always,,,,,,,,
+1957,Entweihen Crothen@AC_SHOWER,attack,47,3,500,500,5000,yes,target,always,,,,,,,,
+1957,Entweihen Crothen@ASC_BREAKER,attack,379,5,500,1000,20000,yes,target,myhpltmaxrate,30,,,,,,,
+1957,Entweihen Crothen@ML_DEFENDER,attack,8219,5,10000,0,180000,yes,target,always,,,,,,,29,
+1957,Entweihen Crothen@ML_DEFENDER,idle,8219,5,10000,0,180000,yes,target,always,,,,,,,29,
1957,Entweihen Crothen@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,60,,,,,,,
-1958,Thorny Skeleton@SN_SHARPSHOOTING,attack,382,3,500,1000,5000,yes,target,always,0,,,,,,,
-1958,Thorny Skeleton@AC_SHOWER,attack,47,3,500,500,5000,yes,target,always,0,,,,,,,
-1958,Thorny Skeleton@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1958,Thorny Skeleton@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1959,Thorn of Recovery@AL_HEAL,idle,28,11,10000,300,4000,no,friend,friendhpltmaxrate,99,,,,,,36,
-1959,Thorn of Recovery@AL_HEAL,attack,28,11,10000,300,2000,no,friend,friendhpltmaxrate,99,,,,,,36,
-1959,Thorn of Recovery@AL_HEAL,idle,28,11,10000,300,4000,no,self,myhpltmaxrate,70,,,,,,36,
-1959,Thorn of Recovery@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1959,Thorn of Recovery@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1960,Thorn of Magic@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,always,0,,,,,,,
-1960,Thorn of Magic@MG_FROSTDIVER,attack,15,9,10000,500,20000,yes,target,always,0,,,,,,2,
-1960,Thorn of Magic@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,0,,,,,,,
-1960,Thorn of Magic@MG_FIREBOLT,attack,19,7,10000,1000,20000,no,target,always,0,,,,,,,
-1960,Thorn of Magic@MG_COLDBOLT,attack,14,7,10000,1000,20000,no,target,always,0,,,,,,,
-1960,Thorn of Magic@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,0,,,,,,,
-1960,Thorn of Magic@WZ_HEAVENDRIVE,attack,91,3,3000,0,1000,yes,target,always,0,,,,,,,
-1960,Thorn of Magic@NPC_DARKTHUNDER,attack,341,5,500,1500,15000,no,target,always,0,,,,,,,
-1960,Thorn of Magic@WZ_STORMGUST,attack,89,5,500,1500,15000,yes,target,always,0,,,,,,,
-1960,Thorn of Magic@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1960,Thorn of Magic@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1961,Thorn of Purification@NPC_SLOWCAST,chase,672,5,10000,500,30000,no,self,always,0,,,,,,,
-1961,Thorn of Purification@NPC_SLOWCAST,attack,672,5,10000,500,30000,no,self,always,0,,,,,,,
-1961,Thorn of Purification@SA_DISPELL,chase,289,5,500,2000,40000,no,target,always,0,,,,,,,
-1961,Thorn of Purification@SA_DISPELL,attack,289,5,500,2000,30000,yes,target,always,0,,,,,,,
-1961,Thorn of Purification@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-1961,Thorn of Purification@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
+1957,Entweihen Crothen@NPC_ALLHEAL,idle,687,1,3000,10000,10000,yes,self,rudeattacked,,,,,,,,
+1957,Entweihen Crothen@NPC_ALLHEAL,walk,687,1,3000,10000,10000,yes,self,rudeattacked,,,,,,,,
+1957,Entweihen Crothen@NPC_DARKNESSATTACK,attack,190,3,2000,500,5000,yes,target,always,,,,,,,29,
+1957,Entweihen Crothen@NPC_DARKSTRIKE,attack,340,10,2000,0,1000,yes,target,always,,,,,,,,
+1957,Entweihen Crothen@NPC_EVILLAND,attack,670,4,10000,800,50000,yes,self,myhpltmaxrate,70,,,,,,,
+1957,Entweihen Crothen@NPC_PULSESTRIKE,attack,661,5,10000,2500,30000,yes,self,myhpltmaxrate,40,,,,,,,
+1957,Entweihen Crothen@NPC_WIDECURSE,attack,677,5,5000,300,20000,yes,self,always,,,,,,,,
+1957,Entweihen Crothen@WZ_METEOR,attack,83,10,2000,1000,10000,yes,target,always,,,,,,,29,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,casttargeted,,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,28,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,18,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,21,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,79,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,83,,,,,,9,
+1957,Entweihen Crothen@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,89,,,,,,9,
+1958,Thorny Skeleton@AC_SHOWER,attack,47,3,500,500,5000,yes,target,always,,,,,,,,
+1958,Thorny Skeleton@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1958,Thorny Skeleton@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1958,Thorny Skeleton@SN_SHARPSHOOTING,attack,382,3,500,1000,5000,yes,target,always,,,,,,,,
+1959,Thorn of Recovery@AL_HEAL,attack,28,10,10000,300,2000,no,friend,friendhpltmaxrate,99,,,,,,36,
+1959,Thorn of Recovery@AL_HEAL,idle,28,10,10000,300,4000,no,friend,friendhpltmaxrate,99,,,,,,36,
+1959,Thorn of Recovery@AL_HEAL,idle,28,10,10000,300,4000,no,self,myhpltmaxrate,70,,,,,,36,
+1959,Thorn of Recovery@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1959,Thorn of Recovery@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1960,Thorn of Magic@MG_COLDBOLT,attack,14,7,10000,1000,20000,no,target,always,,,,,,,,
+1960,Thorn of Magic@MG_FIREBOLT,attack,19,7,10000,1000,20000,no,target,always,,,,,,,,
+1960,Thorn of Magic@MG_FROSTDIVER,attack,15,9,10000,500,20000,yes,target,always,,,,,,,2,
+1960,Thorn of Magic@MG_LIGHTNINGBOLT,attack,20,7,10000,1000,20000,no,target,always,,,,,,,,
+1960,Thorn of Magic@MG_SOULSTRIKE,attack,13,9,5000,0,1000,yes,target,always,,,,,,,,
+1960,Thorn of Magic@MG_THUNDERSTORM,attack,21,5,2000,1500,5000,no,target,always,,,,,,,,
+1960,Thorn of Magic@NPC_DARKTHUNDER,attack,341,5,500,1500,15000,no,target,always,,,,,,,,
+1960,Thorn of Magic@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1960,Thorn of Magic@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1960,Thorn of Magic@WZ_HEAVENDRIVE,attack,91,3,3000,0,1000,yes,target,always,,,,,,,,
+1960,Thorn of Magic@WZ_STORMGUST,attack,89,5,500,1500,15000,yes,target,always,,,,,,,,
+1961,Thorn of Purification@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1961,Thorn of Purification@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,,,,,,,29,
+1961,Thorn of Purification@NPC_SLOWCAST,attack,672,5,10000,500,30000,no,self,always,,,,,,,,
+1961,Thorn of Purification@NPC_SLOWCAST,chase,672,5,10000,500,30000,no,self,always,,,,,,,,
+1961,Thorn of Purification@SA_DISPELL,attack,289,5,500,2000,30000,yes,target,always,,,,,,,,
+1961,Thorn of Purification@SA_DISPELL,chase,289,5,500,2000,40000,no,target,always,,,,,,,,
+1971,Vadon@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+1971,Vadon@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1971,Vadon@NPC_METAMORPHOSIS,attack,193,1,10000,5000,5000,yes,self,myhpltmaxrate,98,2075,,,,,,
+1971,Vadon@NPC_METAMORPHOSIS,idle,193,1,10000,5000,5000,yes,self,myhpltmaxrate,98,2075,,,,,,
+1971,Vadon@NPC_METAMORPHOSIS,chase,193,1,10000,5000,5000,yes,self,myhpltmaxrate,98,2075,,,,,,
+1971,Vadon@NPC_STUNATTACK,attack,179,2,500,1500,5000,yes,target,always,,,,,,,6,
+1971,Vadon@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
// Guild Dungeon SE (13.1)
1974,Banshee Master@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1974,Banshee Master@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,6,
-1974,Banshee Master@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,,
-1974,Banshee Master@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1974,Banshee Master@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1974,Banshee Master@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,0,,,,,,,
-1974,Banshee Master@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,0,,,,,,,
-1974,Banshee Master@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,0,,,,,,21,
-1974,Banshee Master@NPC_EVILLAND,attack,670,1,500,0,5000,yes,target,always,0,,,,,,,
-1974,Banshee Master@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,7,0x81,,,,,
-1974,Banshee Master@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,0x3795,,,,,
-1974,Banshee Master@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1868,,,,,,
+1974,Banshee Master@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1974,Banshee Master@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,6,
+1974,Banshee Master@NPC_DARKNESSATTACK,attack,190,3,1000,0,5000,yes,target,always,,,,,,,21,
+1974,Banshee Master@NPC_DARKSTRIKE,attack,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1974,Banshee Master@NPC_DARKSTRIKE,chase,340,9,2000,0,5000,yes,target,always,,,,,,,,
+1974,Banshee Master@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,7,0x0081,,,,,
+1974,Banshee Master@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,,0x3695,,,,,
+1974,Banshee Master@NPC_EVILLAND,attack,670,1,500,0,5000,yes,self,always,,,,,,,,
+1974,Banshee Master@NPC_VAMPIRE_GIFT,attack,679,1,500,0,5000,yes,self,always,,,,,,,,
+1974,Banshee Master@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
1975,Beholder Master@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1975,Beholder Master@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,52,
-1975,Beholder Master@WZ_JUPITEL,chase,84,4,2000,0,5000,yes,target,always,0,,,,,,,
-1975,Beholder Master@NPC_MENTALBREAKER,attack,159,3,200,800,10000,no,target,always,0,,,,,,39,
-1975,Beholder Master@NPC_MENTALBREAKER,chase,159,3,200,800,10000,no,target,always,0,,,,,,39,
-1975,Beholder Master@NPC_PETRIFYATTACK,attack,180,3,200,500,10000,no,target,always,0,,,,,,,
-1975,Beholder Master@NPC_PETRIFYATTACK,chase,180,3,200,500,10000,no,target,always,0,,,,,,,
+1975,Beholder Master@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,52,
+1975,Beholder Master@NPC_MENTALBREAKER,attack,159,3,200,800,10000,no,target,always,,,,,,,39,
+1975,Beholder Master@NPC_MENTALBREAKER,chase,159,3,200,800,10000,no,target,always,,,,,,,39,
+1975,Beholder Master@NPC_PETRIFYATTACK,attack,180,3,200,500,10000,no,target,always,,,,,,,,
+1975,Beholder Master@NPC_PETRIFYATTACK,chase,180,3,200,500,10000,no,target,always,,,,,,,,
1975,Beholder Master@SA_DISPELL,attack,289,1,100,1000,100000,yes,target,myhpltmaxrate,50,,,,,,18,
-1975,Beholder Master@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1774,,,,,,
+1975,Beholder Master@WZ_JUPITEL,chase,84,4,2000,0,5000,yes,target,always,,,,,,,,
1976,Cobalt Mineral@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1976,Cobalt Mineral@CR_REFLECTSHIELD,attack,252,2,1000,1000,5000,no,self,always,0,,,,,,,
-1976,Cobalt Mineral@NPC_RANDOMATTACK,attack,183,2,500,500,5000,yes,target,always,0,,,,,,,
-1976,Cobalt Mineral@NPC_BARRIER,attack,204,1,500,3000,5000,no,self,myhpltmaxrate,30,,,,,,18,
-1976,Cobalt Mineral@NPC_SPLASHATTACK,attack,174,1,500,0,5000,no,target,attackpcge,2,,,,,,,
-1976,Cobalt Mineral@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,0,,,,,,19,
-1976,Cobalt Mineral@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
+1976,Cobalt Mineral@CR_REFLECTSHIELD,attack,252,2,1000,1000,5000,yes,self,always,,,,,,,,
+1976,Cobalt Mineral@NPC_BARRIER,attack,204,1,500,3000,5000,yes,self,myhpltmaxrate,30,,,,,,18,
+1976,Cobalt Mineral@NPC_RANDOMATTACK,attack,183,2,500,500,5000,yes,target,always,,,,,,,,
+1976,Cobalt Mineral@NPC_SPLASHATTACK,attack,174,1,500,0,5000,yes,target,attackpcge,2,,,,,,,
+1976,Cobalt Mineral@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,,,,,,,19,
+1976,Cobalt Mineral@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,,,,,,,19,
1977,Heavy Metaling@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1977,Heavy Metaling@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,0,,,,,,7,
-1977,Heavy Metaling@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
+1977,Heavy Metaling@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
1977,Heavy Metaling@CR_AUTOGUARD,chase,249,5,500,0,300000,yes,self,longrangeattacked,,,,,,,,
-1977,Heavy Metaling@RG_STRIPWEAPON,attack,215,3,500,0,10000,no,target,always,0,,,,,,18,
-1977,Heavy Metaling@RG_STRIPARMOR,attack,217,3,500,0,10000,no,target,always,0,,,,,,18,
-1977,Heavy Metaling@MC_MAMMONITE,attack,42,5,1000,800,5000,yes,target,always,0,,,,,,8,
-1978,Hell Apocalips@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1978,Hell Apocalips@KN_BRANDISHSPEAR,attack,57,5,1000,1000,5000,no,target,always,0,,,,,,9,
-1978,Hell Apocalips@NPC_DARKTHUNDER,attack,341,4,1000,700,5000,no,target,always,0,,,,,,9,
-1978,Hell Apocalips@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-1978,Hell Apocalips@NPC_SELFDESTRUCTION,attack,173,1,1000,2000,5000,no,self,myhpltmaxrate,10,,,,,,9,
-1978,Hell Apocalips@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-1978,Hell Apocalips@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-1978,Hell Apocalips@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1365,,,,,,
-1979,Zukadam@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1979,Zukadam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,0,,,,,,,
-1979,Zukadam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,0,,,,,,29,
-1979,Zukadam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,0,,,,,,,
-1979,Zukadam@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1979,Zukadam@NPC_RANDOMATTACK,attack,183,5,1000,500,5000,no,target,always,0,,,,,,,
-1979,Zukadam@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1668,,,,,,
+1977,Heavy Metaling@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,,,,,,,7,
+1977,Heavy Metaling@MC_MAMMONITE,attack,42,5,1000,800,5000,yes,target,always,,,,,,,8,
+1977,Heavy Metaling@RG_STRIPARMOR,attack,217,3,500,0,10000,no,target,always,,,,,,,18,
+1977,Heavy Metaling@RG_STRIPWEAPON,attack,215,3,500,0,10000,no,target,always,,,,,,,18,
+1978,Hell Vesper@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1978,Hell Vesper@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+1978,Hell Vesper@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+1978,Hell Vesper@KN_BRANDISHSPEAR,attack,57,5,1000,1000,5000,no,target,always,,,,,,,9,
+1978,Hell Vesper@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+1978,Hell Vesper@NPC_DARKTHUNDER,attack,341,4,1000,700,5000,no,target,always,,,,,,,9,
+1978,Hell Vesper@NPC_SELFDESTRUCTION,attack,173,1,1000,2000,5000,no,self,myhpltmaxrate,10,,,,,,9,
+1979,Zakudam@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1979,Zakudam@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1979,Zakudam@KN_SPEARSTAB,attack,58,5,500,800,5000,no,target,always,,,,,,,,
+1979,Zakudam@NPC_GUIDEDATTACK,attack,172,2,500,1000,20000,no,target,always,,,,,,,29,
+1979,Zakudam@NPC_PIERCINGATT,attack,158,5,1000,0,5000,yes,target,always,,,,,,,,
+1979,Zakudam@NPC_RANDOMATTACK,attack,183,5,1000,500,5000,no,target,always,,,,,,,,
// Memory of Orc Dungeon (13.1)
-1981,Safeguard Chief@SM_BASH,attack,5,10,500,1000,5000,no,target,always,0,,,,,,,
-1981,Safeguard Chief@SM_BASH,chase,5,10,500,1000,5000,no,target,always,0,,,,,,,
-1981,Safeguard Chief@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,0,,,,,,6,
-1981,Safeguard Chief@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,0,,,,,,
-1981,Safeguard Chief@SM_MAGNUM,attack,7,7,500,500,5000,no,self,always,0,,,,,,6,
-1981,Safeguard Chief@CR_AUTOGUARD,chase,249,5,500,0,300000,yes,self,longrangeattacked,,,,,,,,
-1981,Safeguard Chief@NPC_PULSESTRIKE,chase,661,2,2000,0,10000,yes,self,always,0,,,,,,,
-1981,Safeguard Chief@NPC_PULSESTRIKE,attack,661,2,500,0,10000,yes,self,always,0,,,,,,,
-1982,Orc Sniper@NPC_EMOTION,attack,197,1,100,0,60000,yes,self,myhpltmaxrate,60,6,,,,,,
-1982,Orc Sniper@AC_SHOWER,attack,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,6,
-1982,Orc Sniper@AC_DOUBLE,attack,46,1,2000,1000,5000,no,target,always,0,,,,,,,
-1983,Depraved Orc Spirit@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,6,
-1983,Depraved Orc Spirit@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,,
-1983,Depraved Orc Spirit@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-1984,Shaman Cargalache@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,12,
-1984,Shaman Cargalache@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-1984,Shaman Cargalache@NPC_EVILLAND,attack,670,1,500,0,5000,yes,target,always,0,,,,,,,
+1981,Orc Elite Guard@CR_AUTOGUARD,chase,249,5,500,0,300000,yes,self,longrangeattacked,,,,,,,,
+1981,Orc Elite Guard@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+1981,Orc Elite Guard@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,0,,,,,,
+1981,Orc Elite Guard@NPC_PULSESTRIKE,attack,661,2,500,0,10000,yes,self,always,,,,,,,,
+1981,Orc Elite Guard@NPC_PULSESTRIKE,chase,661,2,2000,0,10000,yes,self,always,,,,,,,,
+1981,Orc Elite Guard@SM_BASH,attack,5,10,500,1000,5000,no,target,always,,,,,,,,
+1981,Orc Elite Guard@SM_BASH,chase,5,10,500,1000,5000,no,target,always,,,,,,,,
+1981,Orc Elite Guard@SM_MAGNUM,attack,7,7,500,500,5000,no,self,always,,,,,,,6,
+1982,Orc Bowman@AC_DOUBLE,attack,46,1,2000,1000,5000,no,target,always,,,,,,,,
+1982,Orc Bowman@AC_SHOWER,attack,47,5,2000,1000,5000,no,target,attackpcge,2,,,,,,6,
+1982,Orc Bowman@NPC_EMOTION,attack,197,1,100,0,60000,yes,self,myhpltmaxrate,60,6,0xB695,,,,,
+1983,Orc Undead@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+1983,Orc Undead@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,6,
+1983,Orc Undead@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+1984,Orc Lady@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+1984,Orc Lady@NPC_EVILLAND,attack,670,1,500,0,5000,yes,self,always,,,,,,,,
+1984,Orc Lady@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,12,
-// New World (13.1)
-1985,Dandelion@NPC_CHANGEUNDEAD,attack,348,1,3000,500,600000,no,target,myhpltmaxrate,80,,,,,,,
-1985,Dandelion@NPC_CHANGEUNDEAD,chase,348,1,3000,500,600000,no,target,myhpltmaxrate,80,,,,,,,
-1985,Dandelion@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,
+//The New World Mob Skill (13.1)
+1985,Dandelion Member@NPC_CHANGEUNDEAD2,attack,696,1,3000,500,600000,yes,target,myhpltmaxrate,80,,,,,,,
+1985,Dandelion Member@NPC_CHANGEUNDEAD2,chase,696,1,3000,500,600000,yes,target,myhpltmaxrate,80,,,,,,,
+1985,Dandelion Member@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
1986,Tatacho@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1986,Tatacho@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,0,,,,,,,
-1986,Tatacho@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1986,Tatacho@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1986,Tatacho@NPC_STUNATTACK,attack,179,3,500,1000,5000,yes,target,always,0,,,,,,19,
-1986,Tatacho@HW_GANBANTEIN,attack,483,1,2000,0,7000,no,target,always,0,,,,,,,
-1987,Centipede@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1986,Tatacho@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+1986,Tatacho@HW_GANBANTEIN,attack,483,1,2000,0,7000,no,target,always,,,,,,,,
+1986,Tatacho@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1986,Tatacho@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3095,,,,,
+1986,Tatacho@NPC_STUNATTACK,attack,179,3,500,1000,5000,yes,target,always,,,,,,,19,
1987,Centipede@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1987,Centipede@AS_VENOMDUST,attack,140,1,500,1500,5000,no,around1,always,0,,,,,,,
-1987,Centipede@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1987,Centipede@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1987,Centipede@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,
-1987,Centipede@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,12,
-1987,Centipede@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,0,,,,,,,
-1987,Centipede@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1987,Centipede@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3195,,,,,
-1988,Nepenthes@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1988,Nepenthes@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1988,Nepenthes@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,0,,,,,,30,
-1988,Nepenthes@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-1988,Nepenthes@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1989,Hillsrion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1989,Hillsrion@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1989,Hillsrion@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1989,Hillsrion@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1989,Hillsrion@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1989,Hillsrion@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1989,Hillsrion@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,0,,,,,,36,
-1989,Hillsrion@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,0,,,,,,36,
-1989,Hillsrion@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,0,,,,,,,
+1987,Centipede@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1987,Centipede@AS_VENOMDUST,attack,140,1,500,1500,5000,no,around1,always,,,,,,,,
+1987,Centipede@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,,,,,,,,
+1987,Centipede@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
+1987,Centipede@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1987,Centipede@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+1987,Centipede@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1987,Centipede@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,,,,,,,,
+1987,Centipede@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,12,
+1988,Nepenthes@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1988,Nepenthes@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,always,,,,,,,30,
+1988,Nepenthes@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1988,Nepenthes@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,,,,,,,,
+1988,Nepenthes@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+1989,Hillslion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1989,Hillslion@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1989,Hillslion@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,,,,,,,,
+1989,Hillslion@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,,,,,,,36,
+1989,Hillslion@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,,,,,,,36,
+1989,Hillslion@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,,,,,,,,
+1989,Hillslion@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,,,,,,,,
+1989,Hillslion@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1989,Hillslion@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
1990,Hardrock Mammoth@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1990,Hardrock Mammoth@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1990,Hardrock Mammoth@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,,,,,,,,
+1990,Hardrock Mammoth@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,no,self,myhpltmaxrate,30,,,,,,6,
+1990,Hardrock Mammoth@LK_SPIRALPIERCE,attack,397,1,500,3000,10000,no,target,always,,,,,,,,
+1990,Hardrock Mammoth@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,80,,,,,,,
+1990,Hardrock Mammoth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1990,Hardrock Mammoth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+1990,Hardrock Mammoth@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,,,,,,,,
+1990,Hardrock Mammoth@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,,,,,,,,
+1990,Hardrock Mammoth@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+1990,Hardrock Mammoth@NPC_EARTHQUAKE,attack,653,2,10000,2000,30000,no,self,myhpltmaxrate,30,,,,,,6,
+1990,Hardrock Mammoth@NPC_EARTHQUAKE,chase,653,2,10000,2000,30000,no,self,myhpltmaxrate,30,,,,,,6,
+1990,Hardrock Mammoth@NPC_EMOTION,attack,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+1990,Hardrock Mammoth@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,always,,7,0x3695,,,,,
+1990,Hardrock Mammoth@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,myhpltmaxrate,50,,,,,,6,
1990,Hardrock Mammoth@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,myhpltmaxrate,50,,,,,,6,
1990,Hardrock Mammoth@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,myhpltmaxrate,50,,,,,,6,
-1990,Hardrock Mammoth@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,myhpltmaxrate,50,,,,,,6,
+1990,Hardrock Mammoth@NPC_SUMMONSLAVE,attack,196,3,10000,0,30000,yes,self,slavele,0,1997,1997,1997,,,,
1990,Hardrock Mammoth@NPC_SUMMONSLAVE,idle,196,3,10000,0,30000,yes,self,slavele,0,1997,1997,1997,,,,
1990,Hardrock Mammoth@NPC_SUMMONSLAVE,chase,196,3,10000,0,30000,yes,self,slavele,0,1997,1997,1997,,,,
-1990,Hardrock Mammoth@NPC_SUMMONSLAVE,attack,196,3,10000,0,30000,yes,self,slavele,0,1997,1997,1997,,,,
-1990,Hardrock Mammoth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1990,Hardrock Mammoth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-1990,Hardrock Mammoth@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,always,0,7,0x36B5,,,,,
-1990,Hardrock Mammoth@NPC_EMOTION,attack,197,1,1000,0,5000,yes,self,always,0,19,0xA1,,,,,
-1990,Hardrock Mammoth@WZ_WATERBALL,attack,86,10,2000,0,10000,yes,target,always,0,,,,,,,
-1990,Hardrock Mammoth@LK_SPIRALPIERCE,attack,397,1,500,3000,10000,no,target,always,0,,,,,,,
-1990,Hardrock Mammoth@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,no,self,myhpltmaxrate,30,,,,,,6,
-1990,Hardrock Mammoth@NPC_WIDESTUN,chase,678,1,500,300,30000,no,self,always,0,,,,,,36,
-1990,Hardrock Mammoth@NPC_WIDESTUN,attack,678,1,500,800,30000,no,self,always,0,,,,,,36,
-1990,Hardrock Mammoth@SM_PROVOKE,chase,6,10,500,600,120000,yes,target,myhpltmaxrate,80,,,,,,,
+1990,Hardrock Mammoth@NPC_WIDESTUN,attack,678,1,500,800,30000,no,self,always,,,,,,,36,
+1990,Hardrock Mammoth@NPC_WIDESTUN,chase,678,1,500,300,30000,no,self,always,,,,,,,36,
1990,Hardrock Mammoth@SM_PROVOKE,attack,6,10,500,600,120000,yes,target,myhpltmaxrate,80,,,,,,,
-1990,Hardrock Mammoth@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1990,Hardrock Mammoth@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1990,Hardrock Mammoth@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,0,,,,,,6,
-1990,Hardrock Mammoth@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-1990,Hardrock Mammoth@NPC_EARTHQUAKE,chase,653,2,10000,2000,30000,no,self,myhpltmaxrate,30,,,,,,6,
-1990,Hardrock Mammoth@NPC_EARTHQUAKE,attack,653,2,10000,2000,30000,no,self,myhpltmaxrate,30,,,,,,6,
-1990,Hardrock Mammoth@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,0,,,,,,,
-1990,Hardrock Mammoth@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,80,,,,,,,
-1991,Tendrilion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1991,Tendrilion@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1991,Tendrilion@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1991,Tendrilion@SM_PROVOKE,attack,6,10,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1991,Tendrilion@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,always,0,7,0x36B5,,,,,
-1991,Tendrilion@NPC_EMOTION,attack,197,1,1000,0,10000,yes,self,always,0,19,0x38A5,,,,,
-1991,Tendrilion@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1991,Tendrilion@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1991,Tendrilion@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,0,,,,,,,
-1991,Tendrilion@NPC_WIDESLEEP,chase,668,1,500,300,30000,no,self,always,0,,,,,,36,
-1991,Tendrilion@NPC_WIDESLEEP,attack,668,1,500,800,30000,no,self,always,0,,,,,,36,
-1991,Tendrilion@NPC_WIDEBLEEDING,attack,665,1,10000,500,60000,no,self,always,0,,,,,,,
-1991,Tendrilion@NPC_WIDEBLEEDING,chase,665,1,10000,500,60000,no,self,always,0,,,,,,,
-1991,Tendrilion@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,0,,,,,,,
-1991,Tendrilion@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,0,,,,,,6,
-1991,Tendrilion@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,0,,,,,,36,
-1991,Tendrilion@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,0,,,,,,36,
-1991,Tendrilion@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,0,,,,,,,
-1991,Tendrilion@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,0,,,,,,,
-1991,Tendrilion@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-1991,Tendrilion@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,always,0,,,,,,,
-1991,Tendrilion@NPC_GROUNDATTACK,attack,185,4,1000,0,5000,yes,target,always,0,,,,,,21,
-1991,Tendrilion@PF_SPIDERWEB,attack,405,1,3000,0,10000,yes,target,always,0,,0x38A5,,,,7,
-1991,Tendrilion@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,80,,,,,,,
+1990,Hardrock Mammoth@SM_PROVOKE,chase,6,10,500,600,120000,yes,target,myhpltmaxrate,80,,,,,,,
+1990,Hardrock Mammoth@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,,,,,,,6,
+1990,Hardrock Mammoth@WZ_WATERBALL,attack,86,10,2000,0,10000,yes,target,always,,,,,,,,
+1991,Tendrillion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+1991,Tendrillion@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+1991,Tendrillion@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+1991,Tendrillion@HW_GANBANTEIN,attack,483,1,3000,0,7000,no,target,always,,,,,,,,
+1991,Tendrillion@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,,,,,,,,
+1991,Tendrillion@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,80,,,,,,,
+1991,Tendrillion@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,,,,,,,,
+1991,Tendrillion@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,,,,,,,36,
+1991,Tendrillion@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,,,,,,,36,
+1991,Tendrillion@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,,,,,,,,
+1991,Tendrillion@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,,,,,,,,
+1991,Tendrillion@NPC_DRAGONFEAR,attack,659,2,500,0,10000,yes,self,always,,,,,,,,
+1991,Tendrillion@NPC_EMOTION,attack,197,1,1000,0,10000,yes,self,always,,19,0x3885,,,,,
+1991,Tendrillion@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,always,,7,0x3695,,,,,
+1991,Tendrillion@NPC_GROUNDATTACK,attack,185,4,1000,0,5000,yes,target,always,,,,,,,21,
+1991,Tendrillion@NPC_WIDEBLEEDING,attack,665,1,10000,500,60000,no,self,always,,,,,,,,
+1991,Tendrillion@NPC_WIDEBLEEDING,chase,665,1,10000,500,60000,no,self,always,,,,,,,,
+1991,Tendrillion@NPC_WIDESLEEP,attack,668,1,500,800,30000,no,self,always,,,,,,,36,
+1991,Tendrillion@NPC_WIDESLEEP,chase,668,1,500,300,30000,no,self,always,,,,,,,36,
+1991,Tendrillion@PF_SPIDERWEB,attack,405,1,3000,0,10000,yes,target,always,,,0x3885,,,,7,
+1991,Tendrillion@SM_MAGNUM,attack,7,5,500,500,5000,no,self,always,,,,,,,,
+1991,Tendrillion@SM_PROVOKE,attack,6,10,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1991,Tendrillion@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1991,Tendrillion@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,,,,,,,6,
1992,Cornus@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1992,Cornus@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1992,Cornus@CR_REFLECTSHIELD,idle,252,5,10000,0,300000,yes,self,always,0,,,,,,6,
-1992,Cornus@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,0,,,,,,6,
-1992,Cornus@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,0,,,,,,6,
-1992,Cornus@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1992,Cornus@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,,,,,,,6,
+1992,Cornus@CR_REFLECTSHIELD,idle,252,5,10000,0,300000,yes,self,always,,,,,,,6,
+1992,Cornus@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,,,,,,,6,
+1992,Cornus@NPC_ALLHEAL,attack,687,1,10000,2000,5000,yes,self,myhpltmaxrate,20,,,,,,,
+1992,Cornus@NPC_ALLHEAL,idle,687,1,10000,2000,5000,yes,self,myhpltmaxrate,20,,,,,,,
+1992,Cornus@NPC_ALLHEAL,chase,687,1,10000,2000,5000,yes,self,myhpltmaxrate,20,,,,,,,
+1992,Cornus@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,,,,,,,,
+1992,Cornus@NPC_CRITICALSLASH,attack,170,1,500,800,30000,yes,target,always,,,,,,,36,
+1992,Cornus@NPC_CRITICALSLASH,chase,170,1,500,300,30000,yes,target,always,,,,,,,36,
+1992,Cornus@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,yes,target,always,,,,,,,,
+1992,Cornus@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,yes,target,always,,,,,,,,
+1992,Cornus@NPC_PULSESTRIKE,attack,661,3,1000,0,30000,yes,self,always,,,,,,,32,
1992,Cornus@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1992,Cornus@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1992,Cornus@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1992,Cornus@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,0,,,,,,36,
-1992,Cornus@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,0,,,,,,36,
-1992,Cornus@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,0,,,,,,,
-1992,Cornus@NPC_PULSESTRIKE,attack,661,3,1000,0,30000,yes,self,always,0,,,,,,32,
-1992,Cornus@NPC_ALLHEAL,idle,687,1,10000,1500,5000,no,self,myhpltmaxrate,80,,,,,,,
-1992,Cornus@NPC_ALLHEAL,chase,687,1,10000,1500,5000,no,self,myhpltmaxrate,80,,,,,,,
-1992,Cornus@NPC_ALLHEAL,attack,687,1,10000,1500,5000,no,self,myhpltmaxrate,80,,,,,,,
+1992,Cornus@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
1993,Naga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1993,Naga@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1993,Naga@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,29,
-1993,Naga@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,0,,,,,,,
-1993,Naga@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,0,,,,,,9,
-1993,Naga@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1993,Naga@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,,,,,,,9,
+1993,Naga@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,,,,,,,,
+1993,Naga@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,29,
1993,Naga@SM_PROVOKE,attack,6,3,2000,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1993,Naga@WZ_WATERBALL,attack,86,9,1000,0,20000,yes,target,always,0,,,,,,,
+1993,Naga@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+1993,Naga@WZ_WATERBALL,attack,86,2,1000,0,20000,yes,target,always,,,,,,,,
1994,Luciola Vespa@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
1994,Luciola Vespa@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1994,Luciola Vespa@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,0,,,,,,6,
-1994,Luciola Vespa@NPC_POISONATTACK,attack,188,2,2000,500,5000,no,target,always,0,,,,,,,
-1994,Luciola Vespa@NPC_PULSESTRIKE,attack,661,2,1000,0,30000,yes,self,always,0,,,,,,32,
-1994,Luciola Vespa@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,
+1994,Luciola Vespa@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
+1994,Luciola Vespa@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,6,
+1994,Luciola Vespa@NPC_POISONATTACK,attack,188,2,2000,500,5000,no,target,always,,,,,,,,
+1994,Luciola Vespa@NPC_PULSESTRIKE,attack,661,2,1000,0,30000,yes,self,always,,,,,,,32,
1995,Pinguicula@AL_HEAL,idle,28,9,10000,3000,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
1995,Pinguicula@AL_HEAL,idle,28,9,5000,500,5000,yes,self,myhpltmaxrate,40,,,,,,19,
+1995,Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+1995,Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3885,,,,,
+1995,Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+1995,Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,,,,,,,,
1995,Pinguicula@NPC_SPLASHATTACK,attack,174,1,3000,0,5000,yes,target,attackpcge,2,,,,,,0,
-1995,Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-1995,Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-1995,Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,0,,,,,,,
-1995,Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-1995,Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1995,Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3885,,,,,
-//1996,Bacsojin@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,target,always,0,,,,,,29,
-//1996,Bacsojin@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,target,always,0,,,,,,18,
-//1996,Bacsojin@HP_ASSUMPTIO,idle,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-//1996,Bacsojin@HP_ASSUMPTIO,chase,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-//1996,Bacsojin@HP_ASSUMPTIO,attack,361,5,10000,500,100000,yes,self,always,0,,,,,,,
-//1996,Bacsojin@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,0,,,,,,,
-//1996,Bacsojin@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,0,,,,,,,
-//1996,Bacsojin@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,0,,,,,,6,
-//1996,Bacsojin@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-//1996,Bacsojin@NPC_SUMMONSLAVE,idle,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-//1996,Bacsojin@NPC_SUMMONSLAVE,attack,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-//1996,Bacsojin@NPC_SUMMONSLAVE,chase,196,1,10000,0,5000,yes,self,slavele,1,,,,,,,
-1997,Tatacho@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1997,Tatacho@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,0,,,,,,,
-1997,Tatacho@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-1997,Tatacho@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3095,,,,,
-1997,Tatacho@NPC_STUNATTACK,attack,179,3,500,1000,5000,yes,target,always,0,,,,,,19,
-1997,Tatacho@HW_GANBANTEIN,attack,483,1,2000,0,7000,no,target,always,0,,,,,,,
-1998,Hillsrion@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-1998,Hillsrion@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-1998,Hillsrion@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1998,Hillsrion@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-1998,Hillsrion@NPC_CRITICALWOUND,chase,673,2,2000,500,60000,no,target,always,0,,,,,,,
-1998,Hillsrion@NPC_CRITICALWOUND,attack,673,2,2000,700,60000,no,target,always,0,,,,,,,
-1998,Hillsrion@NPC_CRITICALSLASH,chase,170,1,500,300,30000,no,target,always,0,,,,,,36,
-1998,Hillsrion@NPC_CRITICALSLASH,attack,170,1,500,800,30000,no,target,always,0,,,,,,36,
-1998,Hillsrion@NPC_COMBOATTACK,attack,171,3,3000,0,5000,yes,target,always,0,,,,,,,
-1999,Centipede Larva@AS_VENOMDUST,attack,140,1,500,1500,5000,no,around1,always,0,,,,,,,
-1999,Centipede Larva@NPC_POISON,attack,176,3,500,800,5000,no,target,always,0,,,,,,,
-1999,Centipede Larva@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,0,,,,,,,
-1999,Centipede Larva@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,
-//
-2008,Woomawang@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2008,Woomawang@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2008,Woomawang@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
-2008,Woomawang@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2008,Woomawang@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2008,Woomawang@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2008,Woomawang@NPC_SUMMONSLAVE,attack,196,1,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2008,Woomawang@NPC_SUMMONSLAVE,chase,196,1,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2008,Woomawang@NPC_SUMMONSLAVE,idle,196,6,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2008,Woomawang@NPC_METAMORPHOSIS,chase,193,6,10000,5000,5000,no,self,myhpltmaxrate,50,,,,,,,
-2008,Woomawang@NPC_METAMORPHOSIS,attack,193,6,10000,5000,5000,no,self,myhpltmaxrate,50,,,,,,,
-2008,Woomawang@NPC_SHIELDBRAKE,attack,346,10,2000,0,5000,yes,target,always,0,,,,,,,
-2008,Woomawang@LK_SPIRALPIERCE,attack,397,5,2000,500,5000,yes,target,always,0,,,,,,,
-2008,Woomawang@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-2008,Woomawang@NPC_PULSESTRIKE,attack,661,5,2000,500,5000,no,self,always,0,,,,,,7,
-2008,Woomawang@NPC_WIDESLEEP,attack,668,5,2000,500,5000,no,self,always,0,,,,,,2,
-2008,Woomawang@NPC_WIDESILENCE,attack,663,5,2000,500,5000,no,self,always,0,,,,,,9,
-2008,Woomawang@NPC_HELLJUDGEMENT,attack,662,5,10000,700,15000,no,self,always,0,,,,,,,
-2008,Woomawang@NPC_HELLJUDGEMENT,chase,662,5,10000,700,15000,no,self,always,0,,,,,,,
-2008,Woomawang@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,0,,,,,,,
-2008,Woomawang@NPC_VAMPIRE_GIFT,attack,679,10,10000,1000,10000,no,self,myhpltmaxrate,70,,,,,,47,
-2008,Woomawang@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
-2008,Woomawang@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,60,,,,,,,
-2009,Woomawang@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2009,Woomawang@AL_TELEPORT,chase,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2009,Woomawang@NPC_RUN,attack,354,10,10000,0,0,yes,self,myhpltmaxrate,1,,,,,,26,
-2009,Woomawang@NPC_RUN,chase,354,10,10000,0,0,yes,self,myhpltmaxrate,1,,,,,,26,
-2009,Woomawang@AL_HEAL,idle,28,9,10000,0,2000,yes,self,myhpltmaxrate,99,,,,,,,
-2009,Woomawang@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2009,Woomawang@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2009,Woomawang@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,0,,,,,,,
-2009,Woomawang@NPC_SUMMONSLAVE,attack,196,6,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2009,Woomawang@NPC_SUMMONSLAVE,chase,196,6,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2009,Woomawang@NPC_SUMMONSLAVE,idle,196,6,10000,0,10000,yes,self,slavele,5,2010,,,,,,
-2009,Woomawang@NPC_STONESKIN,chase,675,4,10000,1000,30000,no,self,myhpltmaxrate,3,,,,,,,
-2009,Woomawang@NPC_STONESKIN,attack,675,4,10000,1000,30000,no,self,myhpltmaxrate,3,,,,,,,
-2009,Woomawang@NPC_EVILLAND,attack,670,10,10000,0,15000,yes,target,myhpltmaxrate,50,,,,,,,
-2009,Woomawang@SA_LANDPROTECTOR,attack,288,5,10000,0,30000,yes,target,always,0,,,,,,,
-2009,Woomawang@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-2009,Woomawang@NPC_SHIELDBRAKE,attack,346,10,2000,0,30000,yes,target,always,0,,,,,,,
-2009,Woomawang@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2009,Woomawang@NPC_MAGICMIRROR,attack,671,1,10000,0,30000,yes,self,always,0,,,,,,,
-2009,Woomawang@NPC_EXPULSION,attack,674,1,50,1000,30000,no,target,always,0,,,,,,,
-2009,Woomawang@NPC_WIDESTONE,attack,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
-2009,Woomawang@NPC_WIDESTONE,chase,666,5,10000,500,15000,no,self,myhpltmaxrate,80,,,,,,,
-2009,Woomawang@LK_SPIRALPIERCE,attack,397,1,2000,500,5000,no,target,always,0,,,,,,,
-2009,Woomawang@NPC_PULSESTRIKE,attack,661,5,10000,500,5000,no,self,always,0,,,,,,7,
-2009,Woomawang@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,0,,,,,,,
-2009,Woomawang@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,0,,,,,,,
-2009,Woomawang@NPC_ACIDBREATH,attack,657,1,2000,1000,5000,no,target,always,0,,,,,,,
-2009,Woomawang@NPC_ACIDBREATH,chase,657,1,2000,1000,5000,no,target,always,0,,,,,,,
-2009,Woomawang@NPC_VAMPIRE_GIFT,attack,679,1,1000,500,5000,no,self,myhpltmaxrate,50,,,,,,47,
-2009,Woomawang@NPC_WIDESOULDRAIN,attack,680,7,1000,500,5000,no,self,myhpltmaxrate,50,,,,,,42,
-2010,Majoruros@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2010,Majoruros@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,,
-2010,Majoruros@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-2010,Majoruros@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2010,Majoruros@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x3095,,,,,
-2010,Majoruros@NPC_SUMMONSLAVE,idle,196,1,10000,2000,60000,no,self,slavele,0,,,,,,,
-2010,Majoruros@WZ_HEAVENDRIVE,attack,91,5,500,1200,5000,yes,target,always,0,,,,,,2,
-2010,Majoruros@WZ_HEAVENDRIVE,chase,91,5,500,1200,5000,yes,target,always,0,,,,,,2,
+1995,Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+1995,Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,,
+1999,Centipede Larva@AS_VENOMDUST,attack,140,1,500,1500,5000,no,around1,always,,,,,,,,
+1999,Centipede Larva@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
+1999,Centipede Larva@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+1999,Centipede Larva@NPC_POISONATTACK,attack,188,2,500,500,5000,no,target,always,,,,,,,,
// Into the Unknown (13.2)
-2013,Draco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-2013,Draco@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,0,,,,,,44,
-2013,Draco@TF_THROWSTONE,chase,152,1,2000,0,5000,no,target,always,0,,,,,,,
-2013,Draco@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,0,,,,,,,
-2013,Draco@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-2013,Draco@NPC_PIERCINGATT,attack,158,5,500,0,5000,no,target,always,0,,,,,,,
-2013,Draco@NPC_FIREBREATH,attack,654,3,500,1000,5000,no,target,always,0,,,,,,,
-2014,Draco Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-2014,Draco Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,no,self,always,0,,,,,,,
+2013,Draco@NPC_COMBOATTACK,attack,171,2,500,700,5000,yes,target,always,,,,,,,,
+2013,Draco@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+2013,Draco@NPC_FIREBREATH,attack,654,3,500,1000,5000,yes,target,always,,,,,,,,
+2013,Draco@NPC_GROUNDATTACK,attack,185,5,500,500,5000,yes,target,always,,,,,,,,
+2013,Draco@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,,
+2013,Draco@SM_PROVOKE,chase,6,10,2000,600,5000,yes,target,always,,,,,,,44,
+2013,Draco@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,,
+2014,Draco Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+2014,Draco Egg@NPC_METAMORPHOSIS,idle,193,1,10,2000,5000,yes,self,always,,,,,,,,
2015,Dark Pinguicula@AL_HEAL,idle,28,9,10000,3000,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
2015,Dark Pinguicula@AL_HEAL,idle,28,9,5000,500,5000,yes,self,myhpltmaxrate,40,,,,,,19,
2015,Dark Pinguicula@NPC_BLOODDRAIN,attack,199,1,5000,500,5000,yes,target,myhpltmaxrate,40,,,,,,19,
+2015,Dark Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2015,Dark Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3885,,,,,
+2015,Dark Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+2015,Dark Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,,,,,,,,
2015,Dark Pinguicula@NPC_SPLASHATTACK,attack,174,1,3000,0,5000,yes,target,attackpcge,2,,,,,,0,
-2015,Dark Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-2015,Dark Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-2015,Dark Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,0,,,,,,,
-2015,Dark Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-2015,Dark Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2015,Dark Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3885,,,,,
-2016,Aqua Elemental@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,0,,,,,,,
-2016,Aqua Elemental@WZ_WATERBALL,attack,86,4,2000,500,10000,no,target,always,0,,,,,,,
-2016,Aqua Elemental@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,0,,,,,,,
-2016,Aqua Elemental@MG_COLDBOLT,attack,14,3,1000,1500,5000,no,target,always,0,,,,,,,
-2016,Aqua Elemental@NPC_SLOWCAST,attack,672,2,1000,0,30000,yes,self,always,0,,,,,,,
+2015,Dark Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+2015,Dark Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,,
+2016,Aqua Elemental@MG_COLDBOLT,attack,14,3,1000,1500,5000,no,target,always,,,,,,,,
+2016,Aqua Elemental@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,,,,,,,,
+2016,Aqua Elemental@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,,,,,,,,
+2016,Aqua Elemental@NPC_SLOWCAST,attack,672,2,1000,0,30000,yes,self,always,,,,,,,,
2016,Aqua Elemental@WZ_FROSTNOVA,attack,88,10,10000,1500,20000,no,self,myhpltmaxrate,40,,,,,,6,
-2017,Rata@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,0,,,,,,,
-2017,Rata@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-2017,Rata@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-2017,Rata@TF_THROWSTONE,chase,152,1,5000,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@MO_BODYRELOCATION,chase,264,1,3000,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@NPC_DARKSTRIKE,chase,340,3,2000,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@NPC_DARKSTRIKE,attack,340,3,2000,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-2017,Rata@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
+2016,Aqua Elemental@WZ_WATERBALL,attack,86,4,2000,500,10000,no,target,always,,,,,,,,
+2017,Rata@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,,,,,,,,
+2017,Rata@ASC_METEORASSAULT,attack,406,2,500,0,5000,yes,self,always,,,,,,,,
+2017,Rata@KN_AUTOCOUNTER,attack,61,5,500,0,5000,yes,self,always,,,,,,,,
+2017,Rata@MO_BODYRELOCATION,chase,264,1,3000,0,5000,yes,target,always,,,,,,,,
2017,Rata@NPC_ARMORBRAKE,attack,344,3,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
-2017,Rata@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,0,,,,,,6,
-2017,Rata@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,0,,,,,,,
-2017,Rata@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,,
-2017,Rata@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,,
-2017,Rata@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-2017,Rata@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,24,
-2017,Rata@ASC_METEORASSAULT,attack,406,2,500,0,5000,yes,self,always,0,,,,,,,
-2018,Duneyrr@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@NPC_DARKSTRIKE,chase,340,3,2000,0,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@NPC_DARKSTRIKE,attack,340,3,2000,0,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@PF_SPIDERWEB,chase,405,1,3000,0,10000,yes,target,always,0,,,,,,7,
-2018,Duneyrr@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,no,target,always,0,,,,,,,
-2018,Duneyrr@NPC_UNDEADATTACK,attack,347,3,500,500,5000,no,target,always,0,,,,,,,
-2018,Duneyrr@KN_TWOHANDQUICKEN,attack,60,5,500,0,300000,yes,self,myhpltmaxrate,50,,,,,,6,
-2018,Duneyrr@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,,
-2018,Duneyrr@MG_THUNDERSTORM,attack,21,5,1000,1500,5000,no,target,always,0,,,,,,,
-2018,Duneyrr@MG_THUNDERSTORM,chase,21,5,1000,1500,5000,no,target,skillused,18,,,,,,,
+2017,Rata@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,24,
+2017,Rata@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,,
+2017,Rata@NPC_DARKSTRIKE,attack,340,3,2000,0,5000,yes,target,always,,,,,,,,
+2017,Rata@NPC_DARKSTRIKE,chase,340,3,2000,0,5000,yes,target,always,,,,,,,,
+2017,Rata@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+2017,Rata@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,,
+2017,Rata@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,,
+2017,Rata@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+2017,Rata@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+2017,Rata@SM_MAGNUM,attack,7,10,500,500,5000,no,self,always,,,,,,,,
+2017,Rata@TF_THROWSTONE,chase,152,1,5000,0,5000,yes,target,always,,,,,,,,
+2017,Rata@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,,,,,,,6,
+2017,Rata@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,,
2018,Duneyrr@AL_HEAL,attack,28,5,5000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
2018,Duneyrr@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
2018,Duneyrr@AL_HEAL,chase,28,5,10000,500,5000,yes,self,myhpltmaxrate,20,,,,,,,
-2018,Duneyrr@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
-2019,Ancient Tree@AL_HEAL,idle,28,1,2000,0,5000,yes,self,always,0,,,,,,,
+2018,Duneyrr@AS_SONICBLOW,attack,136,5,500,800,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@KN_TWOHANDQUICKEN,attack,60,5,500,0,300000,yes,self,myhpltmaxrate,50,,,,,,6,
+2018,Duneyrr@MG_THUNDERSTORM,attack,21,5,1000,1500,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@MG_THUNDERSTORM,chase,21,5,1000,1500,5000,yes,target,skillused,18,,,,,,,
+2018,Duneyrr@NPC_BLINDATTACK,chase,177,3,2000,0,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_DARKSTRIKE,attack,340,3,2000,0,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_DARKSTRIKE,chase,340,3,2000,0,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@NPC_UNDEADATTACK,attack,347,3,500,500,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@PF_SPIDERWEB,chase,405,1,3000,0,10000,yes,target,always,,,,,,,7,
+2018,Duneyrr@WZ_JUPITEL,attack,84,3,500,1500,5000,yes,target,always,,,,,,,,
+2018,Duneyrr@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,,
+2019,Ancient Tree@AL_HEAL,idle,28,1,2000,0,5000,yes,self,always,,,,,,,,
+2019,Ancient Tree@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,,,,,,,6,
2019,Ancient Tree@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,9,
-2019,Ancient Tree@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
-2019,Ancient Tree@NPC_PIERCINGATT,attack,158,2,500,0,5000,yes,target,always,0,,,,,,6,
-
-2024,Bradium Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,6,
-2024,Bradium Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,6,
-2024,Bradium Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-2024,Bradium Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,,,,,,
-2024,Bradium Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,0,,,,,,,
-2024,Bradium Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-2020,Rhyncho@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,0,,,,,,,
-2020,Rhyncho@NPC_STUNATTACK,attack,179,5,500,1000,30000,no,target,always,0,,,,,,,
-2020,Rhyncho@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,0,,,,,,,
-2020,Rhyncho@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,9,
-2020,Rhyncho@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,9,
-2021,Phylla@PR_LEXDIVINA,chase,76,3,500,1000,5000,yes,target,always,0,,,,,,2,
-2021,Phylla@MG_COLDBOLT,attack,14,3,3000,1500,5000,no,target,always,0,,,,,,,
-2021,Phylla@NPC_WATERATTACK,attack,184,1,2000,0,5000,no,target,always,0,,,,,,,
-2021,Phylla@WZ_WATERBALL,attack,86,3,2000,100,10000,no,target,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2027,,,,,,
-2022,Nidhoggr's Shadow@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2027,,,,,,
-2022,Nidhoggr's Shadow@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,onspawn,0,2027,,,,,,
-2022,Nidhoggr's Shadow@NPC_MAGICMIRROR,idle,671,3,10000,0,120000,yes,self,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_MAGICMIRROR,chase,671,3,10000,0,120000,yes,self,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_MAGICMIRROR,attack,671,3,10000,0,120000,yes,self,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_STONESKIN,chase,675,3,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
-2022,Nidhoggr's Shadow@NPC_STONESKIN,attack,675,3,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
-2022,Nidhoggr's Shadow@NPC_POWERUP,attack,349,5,6000,0,60000,yes,self,myhpltmaxrate,15,,,,,,6,
-2022,Nidhoggr's Shadow@NPC_EVILLAND,attack,670,4,500,0,25000,yes,target,myhpltmaxrate,15,,,,,,,
-2022,Nidhoggr's Shadow@WZ_QUAGMIRE,chase,92,5,10000,700,5000,no,target,myhpltmaxrate,28,,,,,,12,
-2022,Nidhoggr's Shadow@WZ_QUAGMIRE,attack,92,5,10000,700,120000,no,target,myhpltmaxrate,28,,,,,,12,
-2022,Nidhoggr's Shadow@NPC_EARTHQUAKE,chase,653,2,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
-2022,Nidhoggr's Shadow@NPC_EARTHQUAKE,attack,653,2,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
-2022,Nidhoggr's Shadow@NPC_INVISIBLE,idle,353,1,2000,200,5000,no,target,myhpltmaxrate,40,,,,,,6,
-2022,Nidhoggr's Shadow@NPC_INVISIBLE,chase,353,1,2000,200,5000,no,target,myhpltmaxrate,40,,,,,,6,
-2022,Nidhoggr's Shadow@NPC_WIDESTONE,chase,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
-2022,Nidhoggr's Shadow@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
-2022,Nidhoggr's Shadow@NPC_EVILLAND,idle,670,10,500,0,120000,yes,target,myhpltmaxrate,50,,,,,,,
-2022,Nidhoggr's Shadow@NPC_EVILLAND,chase,670,10,500,0,120000,yes,target,myhpltmaxrate,50,,,,,,,
-2022,Nidhoggr's Shadow@NPC_HELLJUDGEMENT,chase,662,2,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
-2022,Nidhoggr's Shadow@NPC_HELLJUDGEMENT,attack,662,2,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
-2022,Nidhoggr's Shadow@NPC_DARKNESSBREATH,attack,658,10,10000,800,35000,no,target,myhpltmaxrate,50,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_SLOWCAST,attack,672,5,10000,0,60000,yes,self,myhpltmaxrate,70,,,,,,,
-2022,Nidhoggr's Shadow@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,myhpltmaxrate,70,,,,,,,
-2022,Nidhoggr's Shadow@NPC_WIDECURSE,chase,677,5,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_WIDECURSE,attack,677,5,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_FIREBREATH,attack,654,5,10000,800,15000,no,target,myhpltmaxrate,75,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_WIDESLEEP,chase,668,5,10000,3000,20000,no,self,myhpltmaxrate,95,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_WIDESLEEP,attack,668,5,30000,1000,20000,no,self,myhpltmaxrate,95,,,,,,32,
-2022,Nidhoggr's Shadow@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,myhpltmaxrate,95,,,,,,,
-2022,Nidhoggr's Shadow@MG_FIREBALL,chase,17,5,10000,0,30000,no,target,always,0,,,,,,6,
-2022,Nidhoggr's Shadow@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,6,
-2022,Nidhoggr's Shadow@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,always,0,,,,,,32,
-2022,Nidhoggr's Shadow@WZ_METEOR,attack,83,10,2000,1000,10000,no,target,always,0,,,,,,29,
-2022,Nidhoggr's Shadow@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2022,Nidhoggr's Shadow@NPC_PULSESTRIKE,attack,661,5,2000,10000,40000,no,self,always,0,,,,,,,31
-2022,Nidhoggr's Shadow@NPC_ALLHEAL,idle,687,1,10000,120000,30000,yes,self,myhpltmaxrate,60,,,,,,20,
-2023,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,0,,,,,,,
-2023,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-2023,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-2023,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,0,,,,,,,
-
-2026,Dandelion@NPC_BLINDATTACK,attack,177,2,1000,0,6000,yes,target,myhpltmaxrate,80,,,,,,,29
-2026,Dandelion@NPC_POISON,attack,176,3,1000,500,60000,no,target,myhpltmaxrate,30,,,,,,,
-2026,Dandelion@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,0,,,,,,,27
-2026,Dandelion@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,,28
-
-2027,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,0,,,,,,,
-2027,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-2027,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-2027,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,0,,,,,,,
-
-//****
-// NC Mechanic Summons
-2042,Silver Sniper@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2042,Silver Sniper@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2042,Silver Sniper@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2042,Silver Sniper@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,always,0,,,,,,,
-2043,Magic Decoy Fire@MG_FIREBOLT,attack,19,10,10000,800,3500,no,target,always,0,,,,,,,
-2043,Magic Decoy Fire@MG_FIREBOLT,chase,19,10,10000,800,3500,no,target,always,0,,,,,,,
-2043,Magic Decoy Fire@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2043,Magic Decoy Fire@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2043,Magic Decoy Fire@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2044,Magic Decoy Water@MG_COLDBOLT,attack,14,10,10000,800,3500,no,target,always,0,,,,,,,
-2044,Magic Decoy Water@MG_COLDBOLT,chase,14,10,10000,800,3500,no,target,always,0,,,,,,,
-2044,Magic Decoy Water@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2044,Magic Decoy Water@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2044,Magic Decoy Water@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2045,Magic Decoy Earth@WZ_EARTHSPIKE,attack,90,10,10000,800,3500,no,target,always,0,,,,,,,
-2045,Magic Decoy Earth@WZ_EARTHSPIKE,chase,90,10,10000,800,3500,no,target,always,0,,,,,,,
-2045,Magic Decoy Earth@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2045,Magic Decoy Earth@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2045,Magic Decoy Earth@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,attack,20,10,10000,800,3500,no,target,always,0,,,,,,,
-2046,Magic Decoy Wind@MG_LIGHTNINGBOLT,chase,20,10,10000,800,3500,no,target,always,0,,,,,,,
-2046,Magic Decoy Wind@AL_HEAL,chase,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2046,Magic Decoy Wind@AL_HEAL,idle,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-2046,Magic Decoy Wind@AL_HEAL,attack,28,10,10000,0,1000,no,self,myhpltmaxrate,99,,,,,,,
-
-//2053,Dimik@NPC_ATTRICHANGE,idle,161,1,500,2000,50000,no,self,always,0,,,,,,10,
-//2053,Dimik@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,0,20,0x81,,,,,
-//2053,Dimik@NPC_EMOTION,idle,197,1,100,0,60000,yes,self,always,0,6,0x3095,,,,,
-//2053,Dimik@NPC_EMOTION,attack,197,1,10000,0,60000,yes,self,always,0,6,,,,,,
-//2053,Dimik@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,0,22,0xC3,,,,,
+2019,Ancient Tree@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
+2020,Rhyncho@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,,
+2020,Rhyncho@NPC_CRITICALSLASH,attack,170,1,500,0,5000,yes,target,always,,,,,,,,
+2020,Rhyncho@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,9,
+2020,Rhyncho@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,9,
+2020,Rhyncho@NPC_STUNATTACK,attack,179,5,500,1000,30000,no,target,always,,,,,,,,
+2021,Phylla@MG_COLDBOLT,attack,14,3,3000,1500,5000,no,target,always,,,,,,,,
+2021,Phylla@NPC_WATERATTACK,attack,184,1,2000,0,5000,no,target,always,,,,,,,,
+2021,Phylla@PR_LEXDIVINA,chase,76,3,500,1000,5000,yes,target,always,,,,,,,2,
+2021,Phylla@WZ_WATERBALL,attack,86,3,2000,100,10000,no,target,always,,,,,,,,
+2022,Nidhoggur's Shadow@MG_FIREBALL,chase,17,5,10000,0,30000,no,target,always,,,,,,,6,
+2022,Nidhoggur's Shadow@NPC_ALLHEAL,idle,687,1,10000,120000,30000,yes,self,myhpltmaxrate,60,,,,,,20,
+2022,Nidhoggur's Shadow@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,myhpltmaxrate,95,,,,,,,
+2022,Nidhoggur's Shadow@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,myhpltmaxrate,70,,,,,,,
+2022,Nidhoggur's Shadow@NPC_DARKNESSBREATH,attack,658,10,10000,800,35000,no,target,myhpltmaxrate,50,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,always,,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,,,,,,,6,
+2022,Nidhoggur's Shadow@NPC_EARTHQUAKE,attack,653,2,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,33
+2022,Nidhoggur's Shadow@NPC_EARTHQUAKE,chase,653,2,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
+2022,Nidhoggur's Shadow@NPC_EVILLAND,attack,670,4,500,0,25000,yes,self,myhpltmaxrate,15,,,,,,,
+2022,Nidhoggur's Shadow@NPC_EVILLAND,idle,670,10,500,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
+2022,Nidhoggur's Shadow@NPC_EVILLAND,chase,670,10,500,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
+2022,Nidhoggur's Shadow@NPC_FIREBREATH,attack,654,5,10000,800,15000,no,target,myhpltmaxrate,75,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_HELLJUDGEMENT,attack,662,2,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
+2022,Nidhoggur's Shadow@NPC_HELLJUDGEMENT,chase,662,2,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
+2022,Nidhoggur's Shadow@NPC_INVISIBLE,idle,353,1,2000,200,5000,no,self,myhpltmaxrate,40,,,,,,6,
+2022,Nidhoggur's Shadow@NPC_INVISIBLE,chase,353,1,2000,200,5000,no,self,myhpltmaxrate,40,,,,,,6,
+2022,Nidhoggur's Shadow@NPC_MAGICMIRROR,attack,671,3,10000,0,120000,yes,self,always,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_MAGICMIRROR,idle,671,3,10000,0,120000,yes,self,always,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_MAGICMIRROR,chase,671,3,10000,0,120000,yes,self,always,,,,,,,,
+2022,Nidhoggur's Shadow@NPC_POWERUP,attack,349,5,6000,0,60000,yes,self,myhpltmaxrate,15,,,,,,6,
+2022,Nidhoggur's Shadow@NPC_PULSESTRIKE,attack,661,5,2000,10000,40000,no,self,always,,,,,,,,31
+2022,Nidhoggur's Shadow@NPC_SLOWCAST,attack,672,5,10000,0,60000,yes,self,myhpltmaxrate,70,,,,,,,
+2022,Nidhoggur's Shadow@NPC_STONESKIN,attack,675,3,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
+2022,Nidhoggur's Shadow@NPC_STONESKIN,chase,675,3,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
+2022,Nidhoggur's Shadow@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2027,,,,,,
+2022,Nidhoggur's Shadow@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2027,,,,,,
+2022,Nidhoggur's Shadow@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,onspawn,0,2027,,,,,,
+2022,Nidhoggur's Shadow@NPC_WIDEBLEEDING,attack,665,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2022,Nidhoggur's Shadow@NPC_WIDEBLEEDING,chase,665,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2022,Nidhoggur's Shadow@NPC_WIDECURSE,attack,677,5,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_WIDECURSE,chase,677,5,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_WIDESLEEP,attack,668,5,10000,1000,20000,no,self,myhpltmaxrate,95,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_WIDESLEEP,chase,668,5,10000,3000,20000,no,self,myhpltmaxrate,95,,,,,,32,
+2022,Nidhoggur's Shadow@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2022,Nidhoggur's Shadow@NPC_WIDESTONE,chase,666,5,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2022,Nidhoggur's Shadow@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2022,Nidhoggur's Shadow@WZ_METEOR,attack,83,10,2000,1000,10000,no,target,always,,,,,,,29,
+2022,Nidhoggur's Shadow@WZ_QUAGMIRE,attack,92,5,10000,700,120000,no,target,myhpltmaxrate,28,,,,,,12,
+2022,Nidhoggur's Shadow@WZ_QUAGMIRE,chase,92,5,10000,700,5000,no,target,myhpltmaxrate,28,,,,,,12,
+2023,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,yes,target,always,,,,,,,,
+2023,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,,,,,,,,
+2023,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+2023,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,,
+2024,Bradium Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+2024,Bradium Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2024,Bradium Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0091,,,,,
+2024,Bradium Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+2024,Bradium Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,,,,,,,6,
+2024,Bradium Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2026,Runaway Dandelion Member@NPC_BLINDATTACK,attack,177,2,1000,0,6000,yes,target,myhpltmaxrate,80,,,,,,,29
+2026,Runaway Dandelion Member@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,27
+2026,Runaway Dandelion Member@NPC_POISON,attack,176,3,1000,500,60000,yes,target,myhpltmaxrate,30,,,,,,,30
+2026,Runaway Dandelion Member@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,,28
+2027,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,,,,,,,,
+2027,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,,,,,,,,
+2027,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+2027,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+2042,Silver Sniper@NPC_REVENGE,idle,333,1,10000,0,0,yes,self,masterattacked,,,,,,,,
+2043,Magic Decoy@MG_FIREBOLT,idle,19,10,10000,500,5000,yes,target,always,,,,,,,,
+2044,Magic Decoy@MG_COLDBOLT,idle,14,10,10000,500,5000,yes,target,always,,,,,,,,
+2045,Magic Decoy@WZ_EARTHSPIKE,idle,90,10,10000,500,5000,yes,target,always,,,,,,,,
+2046,Magic Decoy@MG_LIGHTNINGBOLT,idle,20,10,10000,500,5000,yes,target,always,,,,,,,,
+2047,Naga@HW_GANBANTEIN,attack,483,1,2000,0,7000,no,target,always,,,,,,,,
+2047,Naga@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,,,,,,,9,
+2047,Naga@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,,,,,,,29,
+2047,Naga@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
+2047,Naga@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
2048,Dark Pinguicula@AL_HEAL,idle,28,9,10000,3000,5000,yes,friend,friendhpltmaxrate,50,,,,,,,
2048,Dark Pinguicula@AL_HEAL,idle,28,9,5000,500,5000,yes,self,myhpltmaxrate,40,,,,,,19,
2048,Dark Pinguicula@NPC_BLOODDRAIN,attack,199,1,5000,500,5000,yes,target,myhpltmaxrate,40,,,,,,19,
+2048,Dark Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2048,Dark Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3885,,,,,
+2048,Dark Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+2048,Dark Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,,,,,,,,
2048,Dark Pinguicula@NPC_SPLASHATTACK,attack,174,1,3000,0,5000,yes,target,attackpcge,2,,,,,,0,
-2048,Dark Pinguicula@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,0,,,,,,,
-2048,Dark Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-2048,Dark Pinguicula@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,0,,,,,,,
-2048,Dark Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-2048,Dark Pinguicula@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2048,Dark Pinguicula@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3885,,,,,
-2050,Aqua Elemental@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,0,,,,,,,
-2050,Aqua Elemental@WZ_WATERBALL,attack,86,4,2000,500,10000,no,target,always,0,,,,,,,
-2050,Aqua Elemental@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,0,,,,,,,
-2050,Aqua Elemental@MG_COLDBOLT,attack,14,3,1000,1500,5000,no,target,always,0,,,,,,,
-2050,Aqua Elemental@NPC_SLOWCAST,attack,672,2,1000,0,30000,yes,self,always,0,,,,,,,
+2048,Dark Pinguicula@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+2048,Dark Pinguicula@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,,,,,,,,
+2049,Bradium Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+2049,Bradium Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2049,Bradium Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0091,,,,,
+2049,Bradium Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+2049,Bradium Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,,,,,,,6,
+2049,Bradium Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2050,Aqua Elemental@MG_COLDBOLT,attack,14,3,1000,1500,5000,no,target,always,,,,,,,,
+2050,Aqua Elemental@MG_FROSTDIVER,chase,15,9,10000,500,5000,yes,target,always,,,,,,,,
+2050,Aqua Elemental@NPC_SLEEPATTACK,attack,182,3,1000,1500,5000,no,target,always,,,,,,,,
+2050,Aqua Elemental@NPC_SLOWCAST,attack,672,2,1000,0,30000,yes,self,always,,,,,,,,
2050,Aqua Elemental@WZ_FROSTNOVA,attack,88,10,10000,1500,20000,no,self,myhpltmaxrate,40,,,,,,6,
-2049,Bradium Golem@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,6,
-2049,Bradium Golem@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,6,
-2049,Bradium Golem@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,0,6,0x3885,,,,,
-2049,Bradium Golem@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,0,9,,,,,,
-2049,Bradium Golem@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,0,,,,,,,
-2049,Bradium Golem@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-2047,Naga@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,29,
-2047,Naga@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,0,,,,,,9,
-2047,Naga@SM_PROVOKE,chase,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-2047,Naga@SM_PROVOKE,attack,6,3,500,600,5000,yes,target,myhpltmaxrate,80,,,,,,,
-2047,Naga@HW_GANBANTEIN,attack,483,1,2000,0,7000,no,target,always,0,,,,,,,
-
-2052,Dark Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2052,Dark Lord@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2052,Dark Lord@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2052,Dark Lord@MG_FIREWALL,chase,18,10,2000,500,5000,no,target,always,0,,,,,,,
-2052,Dark Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2052,Dark Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2052,Dark Lord@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,no,self,always,0,,,,,,36,
-2052,Dark Lord@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,no,self,always,0,,,,,,36,
-2052,Dark Lord@NPC_DARKBLESSING,attack,203,1,500,800,5000,no,target,always,0,,,,,,9,
-2052,Dark Lord@NPC_HELMBRAKE,attack,345,10,2000,500,5000,no,target,always,0,,,,,,,
-2052,Dark Lord@NPC_SUMMONSLAVE,attack,196,2,10000,700,10000,no,self,slavele,3,1605,,,,,,
-2052,Dark Lord@NPC_SUMMONSLAVE,idle,196,2,10000,700,10000,no,self,slavele,3,1605,,,,,,
-2052,Dark Lord@WZ_METEOR,attack,83,11,5000,500,2000,no,target,always,0,,,,,,,
-2052,Dark Lord@WZ_METEOR,chase,83,11,5000,500,2000,no,target,skillused,18,,,,,,,
-2052,Dark Lord@WZ_METEOR,chase,83,11,5000,500,2000,no,target,always,0,,,,,,,
+2050,Aqua Elemental@WZ_WATERBALL,attack,86,4,2000,500,10000,no,target,always,,,,,,,,
+2053,Dimik@NPC_ATTRICHANGE,idle,161,1,500,2000,50000,no,self,always,,,,,,,10,
+2053,Dimik@NPC_EMOTION,idle,197,1,100,0,60000,yes,self,always,,6,0x3695,,,,,
+2053,Dimik@NPC_EMOTION,attack,197,1,10000,0,60000,yes,self,always,,6,,,,,,
+2053,Dimik@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,,20,0x0081,,,,,
+2053,Dimik@NPC_EMOTION_ON,idle,474,1,100,0,60000,yes,self,always,,22,0x0083,,,,,
// Brasilis
-2068,Boitata@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2068,Boitata@MG_FIREBALL,idle,17,5,10000,0,5000,yes,randomtarget,always,0,,,,,,,
-2068,Boitata@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,0,,,,,,,
-2068,Boitata@CR_REFLECTSHIELD,idle,252,3,1000,0,200000,no,self,always,0,,,,,,,
-2068,Boitata@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,0,,,,,,,
-2068,Boitata@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,0,,,,,,,
-2068,Boitata@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,0,,,,,,,
-2068,Boitata@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,0,,,,,,,
-2068,Boitata@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
-2068,Boitata@KN_TWOHANDQUICKEN,attack,60,20,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
-2068,Boitata@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2068,Boitata@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,myhpltmaxrate,20,,,,,,,
+2068,Boitata@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2068,Boitata@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,,
+2068,Boitata@CR_REFLECTSHIELD,attack,252,3,1000,0,200000,no,self,always,,,,,,,,
+2068,Boitata@CR_REFLECTSHIELD,idle,252,3,1000,0,200000,no,self,always,,,,,,,,
+2068,Boitata@KN_TWOHANDQUICKEN,attack,60,10,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
+2068,Boitata@MG_FIREBALL,idle,17,5,10000,0,5000,yes,target,always,,,,,,,,
+2068,Boitata@MG_FIREBALL,chase,17,5,10000,0,5000,yes,target,always,,,,,,,,
+2068,Boitata@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,,,,,,,,
+2068,Boitata@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2068,Boitata@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2068,Boitata@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+2068,Boitata@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,,,,,,,,
2068,Boitata@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,20,,,,,,6,
2068,Boitata@NPC_SUMMONSLAVE,attack,196,5,10000,1000,30000,no,self,slavele,1,2082,,,,,,
2068,Boitata@NPC_SUMMONSLAVE,idle,196,5,10000,1000,30000,no,self,slavele,1,2082,,,,,,
2068,Boitata@NPC_SUMMONSLAVE,chase,196,5,10000,1000,30000,no,self,slavele,1,2082,,,,,,
-2068,Boitata@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2068,Boitata@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2069,Iara@NPC_WATERATTACK,attack,184,3,500,0,5000,no,target,always,0,,,,,,6,
-2069,Iara@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,0,,,,,,2,
-2069,Iara@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,0,,,,,,2,
-2069,Iara@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,3,,,,,,
-2069,Iara@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,0,,,,,,6,
-2069,Iara@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,,
-2069,Iara@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,0,,,,,,,
-2069,Iara@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,0,,,,,,,
-2069,Iara@MG_FROSTDIVER,chase,15,10,500,1000,5000,yes,target,always,0,,,,,,,
-2070,Piranha@NPC_WATERATTACK,attack,184,2,500,0,5000,no,target,always,0,,,,,,6,
-2070,Piranha@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2070,Piranha@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2070,Piranha@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,0,,,,,,,
-2070,Piranha@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,0,,,,,,,
-2070,Piranha@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2070,Piranha@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2070,Piranha@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,0,,,,,,6,
-2070,Piranha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@NPC_CURSEATTACK,attack,181,1,1000,800,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,7,
-2071,Headless Mule@MG_FIREBOLT,attack,19,5,2000,1500,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@MG_FIREBOLT,chase,19,5,2000,1500,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-2071,Headless Mule@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,0,,,,,,,
-2071,Headless Mule@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,,
-2072,Jaguar@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,,
-2072,Jaguar@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,0,,,,,,6,
-2072,Jaguar@AS_SONICBLOW,attack,136,3,500,800,5000,no,target,always,0,,,,,,0,
-2072,Jaguar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,0,,,,,,,
-2072,Jaguar@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-2072,Jaguar@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2073,Toucan@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-2073,Toucan@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2073,Toucan@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,7,0x3095,,,,,
-2073,Toucan@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,0,,,,,,,
-2073,Toucan@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-2073,Toucan@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,30,
-2073,Toucan@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-2074,Curupira@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,0,,,,,,6,
-2074,Curupira@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-2074,Curupira@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-2074,Curupira@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,,
-2074,Curupira@MG_STONECURSE,idle,16,5,10000,0,5000,yes,target,always,0,,,,,,11,
-2074,Curupira@MG_STONECURSE,attack,16,5,10000,0,5000,yes,target,always,0,,,,,,11,
-2074,Curupira@AL_INCAGI,chase,29,1,500,700,60000,no,self,always,0,,,,,,6,
-//2080,Crystal@AL_TELEPORT,attack,26,1,3000,0,10000,yes,self,always,0,,,,,,29,
-//2080,Crystal@AL_TELEPORT,idle,26,1,4000,0,10000,yes,self,always,0,,,,,,29,
-2082,Piranha@NPC_WATERATTACK,attack,184,2,500,0,5000,no,target,always,0,,,,,,6,
-2082,Piranha@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2082,Piranha@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2082,Piranha@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,0,,,,,,,
-2082,Piranha@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,0,,,,,,,
-2082,Piranha@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2082,Piranha@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2082,Piranha@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,0,,,,,,6,
-2082,Piranha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
+2068,Boitata@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,myhpltmaxrate,20,,,,,,,
+2068,Boitata@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+2069,Iara@MG_FROSTDIVER,attack,15,5,500,1000,5000,yes,target,always,,,,,,,,
+2069,Iara@MG_FROSTDIVER,chase,15,10,500,1000,5000,yes,target,always,,,,,,,,
+2069,Iara@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,3,,,,,,
+2069,Iara@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,,,,,,,,
+2069,Iara@NPC_WATERATTACK,attack,184,3,500,0,5000,no,target,always,,,,,,,6,
+2069,Iara@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+2069,Iara@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+2069,Iara@SM_BASH,attack,5,5,500,800,5000,no,target,always,,,,,,,,
+2069,Iara@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,,,,,,,6,
+2070,Piranha@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2070,Piranha@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2070,Piranha@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+2070,Piranha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+2070,Piranha@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,6,
+2070,Piranha@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2070,Piranha@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,,,,,,,,
+2070,Piranha@NPC_WATERATTACK,attack,184,2,500,0,5000,no,target,always,,,,,,,6,
+2070,Piranha@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,,,,,,,6,
+2071,Headless Mule@MG_FIREBOLT,attack,19,5,2000,1500,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@MG_FIREBOLT,chase,19,5,2000,1500,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@MG_FIREWALL,chase,18,5,500,500,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@NPC_CURSEATTACK,attack,181,1,1000,800,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@NPC_CURSEATTACK,chase,181,1,1000,800,5000,yes,target,always,,,,,,,,
+2071,Headless Mule@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,7,
+2071,Headless Mule@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+2071,Headless Mule@SM_BASH,attack,5,5,500,800,5000,no,target,always,,,,,,,,
+2072,Jaguar@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2072,Jaguar@AS_SONICBLOW,attack,136,3,500,800,5000,no,target,always,,,,,,,0,
+2072,Jaguar@NPC_COMBOATTACK,attack,171,1,500,500,5000,no,target,always,,,,,,,6,
+2072,Jaguar@NPC_DARKNESSATTACK,attack,190,1,2000,0,5000,yes,target,always,,,,,,,,
+2072,Jaguar@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+2072,Jaguar@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+2073,Toucan@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2073,Toucan@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+2073,Toucan@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+2073,Toucan@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+2073,Toucan@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,30,
+2073,Toucan@NPC_TELEKINESISATTACK,chase,191,5,500,0,5000,yes,target,always,,,,,,,,
+2073,Toucan@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,,,,,,,6,
+2074,Curupira@AL_INCAGI,chase,29,1,500,700,60000,yes,self,always,,,,,,,6,
+2074,Curupira@MG_STONECURSE,attack,16,5,10000,0,5000,yes,target,always,,,,,,,11,
+2074,Curupira@MG_STONECURSE,idle,16,5,10000,0,5000,yes,target,always,,,,,,,11,
+2074,Curupira@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+2074,Curupira@NPC_GROUNDATTACK,attack,185,2,500,500,5000,yes,target,always,,,,,,,6,
+2074,Curupira@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+2074,Curupira@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+2080,Large Crystal@AL_TELEPORT,attack,26,1,3000,0,10000,yes,self,always,,,,,,,29,
+2080,Large Crystal@AL_TELEPORT,idle,26,1,4000,0,10000,yes,self,always,,,,,,,29,
+2082,Piranha@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2082,Piranha@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2082,Piranha@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+2082,Piranha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+2082,Piranha@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,6,
+2082,Piranha@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2082,Piranha@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,,,,,,,,
+2082,Piranha@NPC_WATERATTACK,attack,184,2,500,0,5000,no,target,always,,,,,,,6,
+2082,Piranha@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,,,,,,,6,
-// El Dicastes (13.3)
-2083,Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,,
-2083,Scaraba@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,0,,,,,,,
-2083,Scaraba@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-2083,Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-2083,Scaraba@NPC_COMBOATTACK,chase,171,2,500,700,5000,no,target,always,0,,,,,,,
-2083,Scaraba@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
-2083,Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,19,0x181,,,,,
-2083,Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,0,6,0x3195,,,,,
-2084,Scaraba@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-2084,Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,29,
-2084,Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-2084,Scaraba@SM_BASH,attack,5,5,500,0,5000,yes,target,always,0,,,,,,,
-2084,Scaraba@NPC_STOP,attack,342,1,500,500,5000,no,target,always,0,,,,,,,
-2084,Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,19,0x181,,,,,
-2084,Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,0,6,0x3195,,,,,
-2085,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2085,Antler Scaraba@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-2085,Antler Scaraba@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,0,,,,,,6,
+// 13.2 (Dicastes)
+2083,Uni Horn Scaraba@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+2083,Uni Horn Scaraba@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2083,Uni Horn Scaraba@NPC_BLEEDING,attack,660,2,500,700,5000,no,target,always,,,,,,,,
+2083,Uni Horn Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+2083,Uni Horn Scaraba@NPC_COMBOATTACK,chase,171,2,500,700,5000,no,target,always,,,,,,,,
+2083,Uni Horn Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2083,Uni Horn Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,,,,,,,,
+2083,Uni Horn Scaraba@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
+2084,Horn Scaraba@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+2084,Horn Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+2084,Horn Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,29,
+2084,Horn Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2084,Horn Scaraba@NPC_STOP,attack,342,1,500,500,5000,no,target,always,,,,,,,,
+2084,Horn Scaraba@SM_BASH,attack,5,5,500,0,5000,yes,target,always,,,,,,,,
+2085,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2085,Antler Scaraba@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,,,,,,,6,
+2085,Antler Scaraba@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,,,,,,,6,
+2085,Antler Scaraba@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+2085,Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,,,,,,,,
2085,Antler Scaraba@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
2085,Antler Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
2085,Antler Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-2085,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-2085,Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,,
-2085,Antler Scaraba@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,0,,,,,,32,
-2085,Antler Scaraba@PF_SPIDERWEB,chase,405,1,300,0,10000,yes,target,always,0,,,,,,7,
-2086,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2086,Rake Scaraba@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,,
-2086,Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-2086,Rake Scaraba@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,8,
+2085,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+2085,Antler Scaraba@PF_SPIDERWEB,chase,405,1,300,0,10000,yes,target,always,,,,,,,7,
+2086,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2086,Rake Scaraba@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+2086,Rake Scaraba@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,8,
+2086,Rake Scaraba@NPC_CRITICALWOUND,attack,673,1,2000,0,30000,yes,target,always,,,,,,,,
+2086,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2086,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3695,,,,,
+2086,Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
2086,Rake Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
2086,Rake Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-2086,Rake Scaraba@PF_SPIDERWEB,chase,405,1,300,0,10000,yes,target,always,0,,,,,,7,
-2086,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,19,0x181,,,,,
-2086,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,0,6,0x3195,,,,,
-2087,Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-2087,Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
-2087,Queen Scaraba@AL_HEAL,chase,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-2087,Queen Scaraba@AL_HEAL,chase,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
-2087,Queen Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2087,Queen Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2087,Queen Scaraba@AL_TELEPORT,walk,26,1,500,0,5000,yes,self,always,0,,,,,,,
+2086,Rake Scaraba@PF_SPIDERWEB,chase,405,1,300,0,10000,yes,target,always,,,,,,,7,
+2087,Queen Scaraba@AL_HEAL,attack,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+2087,Queen Scaraba@AL_HEAL,chase,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+2087,Queen Scaraba@AL_HEAL,attack,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+2087,Queen Scaraba@AL_HEAL,chase,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+2087,Queen Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@AL_TELEPORT,walk,26,1,500,0,5000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2087,Queen Scaraba@CR_AUTOGUARD,attack,249,10,500,0,5000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,,
+2087,Queen Scaraba@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,,,,,,,6,
+2087,Queen Scaraba@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@NPC_CRITICALWOUND,attack,673,1,2000,0,30000,yes,target,always,,,,,,,,
+2087,Queen Scaraba@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,18,
2087,Queen Scaraba@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
2087,Queen Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
2087,Queen Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-2087,Queen Scaraba@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2087,Queen Scaraba@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2087,Queen Scaraba@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
-2087,Queen Scaraba@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2087,Queen Scaraba@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2087,Queen Scaraba@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,6,
-2087,Queen Scaraba@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,18,
-2087,Queen Scaraba@CR_AUTOGUARD,attack,249,10,500,0,5000,yes,self,always,0,,,,,,,
2087,Queen Scaraba@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2145,2144,,,,,
2087,Queen Scaraba@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2145,2144,,,,,
-2087,Queen Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,0,5000,no,target,always,0,,,,,,,
-2087,Queen Scaraba@WZ_HEAVENDRIVE,chase,91,5,2000,0,5000,no,target,always,0,,,,,,,
+2087,Queen Scaraba@NPC_WIDEBLEEDING,attack,665,4,2000,0,30000,yes,self,always,,,,,,,,
+2087,Queen Scaraba@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2087,Queen Scaraba@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2087,Queen Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,0,5000,no,target,always,,,,,,,,
+2087,Queen Scaraba@WZ_HEAVENDRIVE,chase,91,5,2000,0,5000,no,target,always,,,,,,,,
2087,Queen Scaraba@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,,
-2088,Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2083,,,,,,
-2089,Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2084,,,,,,
+2088,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2083,,,,,,
+2089,Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2084,,,,,,
2090,Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2085,,,,,,
2091,Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2086,,,,,,
-2092,Dolomedes@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-2092,Dolomedes@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,randomtarget,always,0,,,,,,,
-2092,Dolomedes@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,0,,,,,,,
-2092,Dolomedes@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-2092,Dolomedes@AS_VENOMDUST,angry,140,1,500,1500,5000,no,target,always,0,,,,,,,
-2092,Dolomedes@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,12,
-2092,Dolomedes@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,0,,,,,,32,
-
-2094,Orc Hero@AL_DECAGI,chase,30,11,2000,0,300000,no,target,always,0,,,,,,6,
-2094,Orc Hero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2094,Orc Hero@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2094,Orc Hero@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2094,Orc Hero@NPC_ARMORBRAKE,attack,344,10,2000,500,300000,no,target,always,0,,,,,,6,
-2094,Orc Hero@NPC_ARMORBRAKE,chase,344,10,2000,500,300000,no,target,always,0,,,,,,6,
+2092,Dolomedes@AS_VENOMDUST,angry,140,1,500,1500,5000,yes,target,always,,,,,,,,
+2092,Dolomedes@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,,,,,,,32,
+2092,Dolomedes@NPC_POISON,attack,176,2,500,800,5000,yes,target,always,,,,,,,,
+2092,Dolomedes@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+2092,Dolomedes@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,,,,,,,,
+2092,Dolomedes@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,target,always,,,,,,,,
+2092,Dolomedes@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,12,
+2094,Orc Hero@AL_DECAGI,chase,30,10,2000,0,300000,yes,target,always,,,,,,,6,
+2094,Orc Hero@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2094,Orc Hero@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2094,Orc Hero@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2094,Orc Hero@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2094,Orc Hero@CR_AUTOGUARD,attack,249,10,2000,0,300000,yes,self,always,,,,,,,,
+2094,Orc Hero@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2094,Orc Hero@LK_SPIRALPIERCE,attack,397,5,1500,1000,10000,yes,target,always,,,,,,,,
+2094,Orc Hero@MG_THUNDERSTORM,attack,21,10,2000,1500,5000,yes,target,always,,,,,,,,
+2094,Orc Hero@MG_THUNDERSTORM,chase,21,10,10000,1500,5000,yes,target,skillused,18,,,,,,,
+2094,Orc Hero@NPC_ARMORBRAKE,attack,344,10,2000,500,300000,yes,target,always,,,,,,,6,
+2094,Orc Hero@NPC_ARMORBRAKE,chase,344,10,2000,500,300000,yes,target,always,,,,,,,6,
+2094,Orc Hero@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2094,Orc Hero@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2094,Orc Hero@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,yes,target,always,,,,,,,,
+2094,Orc Hero@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,5,
2094,Orc Hero@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2094,Orc Hero@LK_SPIRALPIERCE,attack,397,5,1500,1000,10000,no,target,always,0,,,,,,,
-2094,Orc Hero@KN_TWOHANDQUICKEN,attack,60,15,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2094,Orc Hero@MG_THUNDERSTORM,attack,21,15,2000,1500,5000,no,target,always,0,,,,,,,
-2094,Orc Hero@MG_THUNDERSTORM,chase,21,10,10000,1500,5000,no,target,skillused,18,,,,,,,
-2094,Orc Hero@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2094,Orc Hero@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2094,Orc Hero@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,0,,,,,,,
-2094,Orc Hero@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,5,
-2094,Orc Hero@CR_AUTOGUARD,attack,249,10,2000,0,300000,yes,self,always,0,,,,,,,
-2094,Orc Hero@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,no,self,slavele,3,1439,,,,,,
-2094,Orc Hero@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,no,self,slavele,3,1439,,,,,,
-2094,Orc Hero@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-2095,Eddga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2095,Eddga@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2095,Eddga@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
+2094,Orc Hero@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,yes,self,slavele,3,1439,,,,,,
+2094,Orc Hero@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,yes,self,slavele,3,1439,,,,,,
+2095,Eddga@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2095,Eddga@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2095,Eddga@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2095,Eddga@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2095,Eddga@AM_DEMONSTRATION,attack,229,5,2000,0,2000,yes,target,always,,,,,,,6,
+2095,Eddga@AM_DEMONSTRATION,chase,229,5,2000,0,2000,yes,target,always,,,,,,,6,
+2095,Eddga@MG_FIREBALL,chase,17,10,4000,0,0,yes,target,always,,,,,,,,
+2095,Eddga@MG_FIREBALL,chase,17,10,10000,0,0,yes,target,skillused,18,,,,,,,
+2095,Eddga@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,,,,,,,32,
+2095,Eddga@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2095,Eddga@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
2095,Eddga@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2095,Eddga@MG_FIREBALL,chase,17,20,4000,0,0,yes,target,always,0,,,,,,,
-2095,Eddga@MG_FIREBALL,chase,17,20,10000,0,0,yes,target,skillused,18,,,,,,,
-2095,Eddga@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2095,Eddga@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2095,Eddga@NPC_BLEEDING,attack,660,5,2000,0,3000,yes,target,always,0,,,,,,32,
-2095,Eddga@AM_DEMONSTRATION,attack,229,5,2000,0,2000,yes,target,always,0,,,,,,6,
-2095,Eddga@AM_DEMONSTRATION,chase,229,5,2000,0,2000,yes,target,always,0,,,,,,6,
-2095,Eddga@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,no,self,slavele,3,1603,,,,,,
-2095,Eddga@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,no,self,slavele,3,1603,,,,,,
+2095,Eddga@NPC_SUMMONSLAVE,attack,196,8,10000,700,10000,yes,self,slavele,3,1603,,,,,,
+2095,Eddga@NPC_SUMMONSLAVE,idle,196,8,10000,700,10000,yes,self,slavele,3,1603,,,,,,
2095,Eddga@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,1060,,,,,,
-2095,Eddga@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,6,
-2095,Eddga@SM_MAGNUM,attack,7,20,3000,0,2000,no,self,always,0,,,,,,,
-2095,Eddga@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-2096,Osiris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2096,Osiris@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2096,Osiris@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2096,Osiris@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2096,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,no,target,skillused,18,,,,,,,
-2096,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,no,target,always,0,,,,,,,
+2095,Eddga@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2095,Eddga@SM_MAGNUM,attack,7,10,3000,0,2000,yes,self,always,,,,,,,,
+2096,Osiris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2096,Osiris@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2096,Osiris@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2096,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,yes,target,always,,,,,,,,
+2096,Osiris@AS_VENOMDUST,attack,140,5,2000,0,5000,yes,target,skillused,18,,,,,,,
+2096,Osiris@ASC_METEORASSAULT,attack,406,10,10000,500,5000,yes,self,always,,,,,,,32,
+2096,Osiris@MG_STONECURSE,attack,16,10,2000,0,5000,yes,target,always,,,,,,,,
2096,Osiris@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2096,Osiris@MG_STONECURSE,attack,16,10,2000,0,5000,no,target,always,0,,,,,,,
-2096,Osiris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2096,Osiris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2096,Osiris@ASC_METEORASSAULT,attack,406,10,10000,500,5000,no,self,always,0,,,,,,32,
-2096,Osiris@NPC_CURSEATTACK,attack,181,5,2000,0,5000,no,target,always,0,,,,,,9,
-2096,Osiris@NPC_CURSEATTACK,chase,181,5,2000,0,5000,no,target,always,0,,,,,,9,
-2096,Osiris@NPC_DARKBREATH,attack,202,5,500,0,5000,no,target,always,0,,,,,,9,
-2096,Osiris@NPC_DARKBREATH,chase,202,5,500,0,5000,no,target,always,0,,,,,,9,
-2096,Osiris@NPC_POISONATTACK,attack,188,5,2000,0,5000,no,target,always,0,,,,,,9,
-2096,Osiris@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
-2096,Osiris@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1522,,,,,,
-2096,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,0,0,no,self,onspawn,0,1029,,,,,,
+2096,Osiris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2096,Osiris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2096,Osiris@NPC_CURSEATTACK,attack,181,5,2000,0,5000,yes,target,always,,,,,,,9,
+2096,Osiris@NPC_CURSEATTACK,chase,181,5,2000,0,5000,yes,target,always,,,,,,,9,
+2096,Osiris@NPC_DARKBREATH,attack,202,5,500,0,5000,yes,target,always,,,,,,,9,
+2096,Osiris@NPC_DARKBREATH,chase,202,5,500,0,5000,yes,target,always,,,,,,,9,
+2096,Osiris@NPC_DARKTHUNDER,chase,341,10,2000,0,5000,yes,target,always,,,,,,,,
+2096,Osiris@NPC_DARKTHUNDER,chase,341,10,10000,0,5000,yes,target,skillused,18,,,,,,,
+2096,Osiris@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,,,,,,,9,
+2096,Osiris@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2096,Osiris@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1522,,,,,,
+2096,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,700,10000,yes,self,slavele,3,1522,,,,,,
2096,Osiris@NPC_SUMMONSLAVE,idle,196,7,10000,0,0,no,self,onspawn,0,1029,,,,,,
-2096,Osiris@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,0,,,,,,,
-2096,Osiris@NPC_DARKTHUNDER,chase,341,10,2000,0,5000,no,target,always,0,,,,,,,
-2096,Osiris@NPC_DARKTHUNDER,chase,341,10,10000,0,5000,no,target,skillused,18,,,,,,,
-2096,Osiris@WZ_QUAGMIRE,chase,92,5,2000,0,5000,no,target,always,0,,,,,,,
-2097,Dracula@AL_DECAGI,chase,30,11,2000,0,5000,no,target,always,0,,,,,,,
-2097,Dracula@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2097,Dracula@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2097,Dracula@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2097,Dracula@NPC_HELLJUDGEMENT,chase,662,10,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,36,
-2097,Dracula@NPC_HELLJUDGEMENT,attack,662,10,10000,500,20000,no,self,myhpltmaxrate,80,,,,,,36,
-2097,Dracula@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
+2096,Osiris@SM_BASH,attack,5,10,2000,0,5000,yes,target,always,,,,,,,,
+2096,Osiris@WZ_QUAGMIRE,chase,92,5,2000,0,5000,yes,target,always,,,,,,,,
+2097,Dracula@AL_DECAGI,chase,30,10,2000,0,5000,yes,target,always,,,,,,,,
+2097,Dracula@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2097,Dracula@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2097,Dracula@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2097,Dracula@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,,,,,,,,
+2097,Dracula@MO_BODYRELOCATION,chase,264,1,2000,200,5000,yes,target,always,,,,,,,,
2097,Dracula@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2097,Dracula@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,0,,,,,,,
-2097,Dracula@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,0,,,,,,,
-2097,Dracula@MO_BODYRELOCATION,chase,264,1,2000,200,5000,yes,target,always,0,,,,,,,
-2097,Dracula@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2097,Dracula@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2097,Dracula@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,no,target,always,0,,,,,,9,
-2097,Dracula@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-2097,Dracula@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-2097,Dracula@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,0,,,,,,,
-2097,Dracula@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-2097,Dracula@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-2097,Dracula@NPC_SUMMONSLAVE,attack,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
-2097,Dracula@NPC_SUMMONSLAVE,idle,196,16,10000,700,5000,no,self,slavele,5,1419,,,,,,
+2097,Dracula@NPC_BLOODDRAIN,attack,199,1,3000,0,0,yes,target,always,,,,,,,,
+2097,Dracula@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2097,Dracula@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2097,Dracula@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,yes,target,always,,,,,,,9,
+2097,Dracula@NPC_ENERGYDRAIN,chase,200,1,3000,0,0,yes,target,always,,,,,,,,
2097,Dracula@NPC_ENERGYDRAIN,chase,200,1,10000,0,0,yes,target,skillused,18,,,,,,,
-2098,Doppelganger@AL_HEAL,attack,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-2098,Doppelganger@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-2098,Doppelganger@AL_HEAL,chase,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
-2098,Doppelganger@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
-2098,Doppelganger@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2098,Doppelganger@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2098,Doppelganger@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
+2097,Dracula@NPC_HELLJUDGEMENT,attack,662,10,10000,500,20000,yes,self,myhpltmaxrate,80,,,,,,36,
+2097,Dracula@NPC_HELLJUDGEMENT,chase,662,10,10000,500,20000,yes,self,myhpltmaxrate,80,,,,,,36,
+2097,Dracula@NPC_INVISIBLE,attack,353,1,2000,200,5000,yes,self,always,,,,,,,,
+2097,Dracula@NPC_INVISIBLE,idle,353,1,2000,200,5000,yes,self,always,,,,,,,,
+2097,Dracula@NPC_INVISIBLE,chase,353,1,2000,200,5000,yes,self,always,,,,,,,,
+2097,Dracula@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,yes,target,always,,,,,,,,
+2097,Dracula@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,yes,target,always,,,,,,,,
+2097,Dracula@NPC_SUMMONSLAVE,attack,196,16,10000,700,5000,yes,self,slavele,5,1419,,,,,,
+2097,Dracula@NPC_SUMMONSLAVE,idle,196,16,10000,700,5000,yes,self,slavele,5,1419,,,,,,
+2098,Doppelganger@AL_DECAGI,attack,30,10,500,0,20000,yes,target,always,,,,,,,5,
+2098,Doppelganger@AL_DECAGI,chase,30,10,500,0,20000,yes,target,always,,,,,,,5,
+2098,Doppelganger@AL_HEAL,attack,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+2098,Doppelganger@AL_HEAL,chase,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+2098,Doppelganger@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+2098,Doppelganger@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,2,
+2098,Doppelganger@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2098,Doppelganger@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2098,Doppelganger@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2098,Doppelganger@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+2098,Doppelganger@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+2098,Doppelganger@BS_HAMMERFALL,chase,110,10,10000,0,5000,yes,target,skillused,18,,,,,,,
+2098,Doppelganger@CR_AUTOGUARD,attack,249,10,2000,500,300000,yes,self,always,,,,,,,29,
+2098,Doppelganger@CR_AUTOGUARD,chase,249,10,2000,500,300000,yes,self,longrangeattacked,,,,,,,29,
+2098,Doppelganger@KN_TWOHANDQUICKEN,attack,60,10,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2098,Doppelganger@LK_SPIRALPIERCE,attack,397,5,10000,1000,10000,yes,target,myhpltmaxrate,80,,,,,,36,
+2098,Doppelganger@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,,
+2098,Doppelganger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2098,Doppelganger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2098,Doppelganger@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
2098,Doppelganger@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2098,Doppelganger@LK_SPIRALPIERCE,attack,397,5,10000,1000,10000,no,target,myhpltmaxrate,80,,,,,,36,
-2098,Doppelganger@KN_TWOHANDQUICKEN,attack,60,20,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2098,Doppelganger@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-2098,Doppelganger@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-2098,Doppelganger@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,,
-2098,Doppelganger@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2098,Doppelganger@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2098,Doppelganger@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2098,Doppelganger@CR_AUTOGUARD,attack,249,10,2000,500,300000,no,self,always,0,,,,,,29,
-2098,Doppelganger@CR_AUTOGUARD,chase,249,10,2000,500,300000,no,self,longrangeattacked,0,,,,,,29,
-2098,Doppelganger@AL_DECAGI,attack,30,11,500,0,20000,no,target,always,0,,,,,,5,
-2098,Doppelganger@AL_DECAGI,chase,30,11,500,0,20000,no,target,always,0,,,,,,5,
-2098,Doppelganger@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,1427,,,,,,
-2098,Doppelganger@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,1427,,,,,,
-2098,Doppelganger@BS_HAMMERFALL,chase,110,11,10000,0,5000,yes,target,skillused,18,,,,,,,
-2099,Mistress@AL_HEAL,attack,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-2099,Mistress@AL_HEAL,attack,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-2099,Mistress@AL_HEAL,chase,28,11,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
-2099,Mistress@AL_HEAL,chase,28,11,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
-2099,Mistress@AL_PNEUMA,attack,25,1,2000,0,5000,yes,target,longrangeattacked,0,,,,,,18,
-2099,Mistress@AL_PNEUMA,chase,25,1,2000,0,5000,yes,target,longrangeattacked,0,,,,,,18,
-2099,Mistress@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2099,Mistress@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,always,0,,,,,,,
-2099,Mistress@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,0,,,,,,,
+2098,Doppelganger@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,3,1427,,,,,,
+2098,Doppelganger@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,3,1427,,,,,,
+2099,Mistress@AL_HEAL,attack,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+2099,Mistress@AL_HEAL,chase,28,10,10000,0,5000,yes,friend,friendhpltmaxrate,60,,,,,,,
+2099,Mistress@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+2099,Mistress@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,,
+2099,Mistress@AL_PNEUMA,attack,25,1,2000,0,5000,yes,self,longrangeattacked,,,,,,,18,
+2099,Mistress@AL_PNEUMA,chase,25,1,2000,0,5000,yes,self,longrangeattacked,,,,,,,18,
+2099,Mistress@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,always,,,,,,,,
+2099,Mistress@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,,,,,,,,
+2099,Mistress@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2099,Mistress@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2099,Mistress@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2099,Mistress@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2099,Mistress@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2099,Mistress@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2099,Mistress@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,18,
-2099,Mistress@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,no,target,always,0,,,,,,18,
-2099,Mistress@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,no,target,always,0,,,,,,,
-2099,Mistress@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,no,target,always,0,,,,,,,
-2099,Mistress@NPC_SILENCEATTACK,chase,178,5,10000,0,5000,no,target,skillused,18,,,,,,,
-2099,Mistress@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1604,,,,,,
-2099,Mistress@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1604,,,,,,
+2099,Mistress@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2099,Mistress@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2099,Mistress@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,18,
+2099,Mistress@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,18,
+2099,Mistress@NPC_SILENCEATTACK,attack,178,5,2000,0,5000,yes,target,always,,,,,,,,
+2099,Mistress@NPC_SILENCEATTACK,chase,178,5,2000,0,5000,yes,target,always,,,,,,,,
+2099,Mistress@NPC_SILENCEATTACK,chase,178,5,10000,0,5000,yes,target,skillused,18,,,,,,,
+2099,Mistress@NPC_STOP,attack,342,1,2000,0,15000,yes,target,always,,,,,,,6,
+2099,Mistress@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1604,,,,,,
+2099,Mistress@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1604,,,,,,
2099,Mistress@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1156,,,,,,
-2099,Mistress@NPC_STOP,attack,342,1,2000,0,15000,no,target,always,0,,,,,,6,
-2099,Mistress@WZ_JUPITEL,attack,84,28,2000,0,5000,yes,target,always,0,,,,,,,
-2099,Mistress@WZ_JUPITEL,chase,84,28,2000,0,5000,yes,target,always,0,,,,,,,
-2100,Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,0,,,,,,,
-2100,Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,0,,,,,,,
-2100,Baphomet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2100,Baphomet@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2100,Baphomet@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,29,
-2100,Baphomet@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
-2100,Baphomet@NPC_EARTHQUAKE,attack,653,5,10000,2000,30000,no,self,myhpltmaxrate,80,,,,,,6,
+2099,Mistress@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2099,Mistress@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2099,Mistress@WZ_JUPITEL,attack,84,10,2000,0,5000,yes,target,always,,,,,,,,
+2099,Mistress@WZ_JUPITEL,chase,84,10,2000,0,5000,yes,target,always,,,,,,,,
+2100,Baphomet@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+2100,Baphomet@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2100,Baphomet@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2100,Baphomet@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,yes,target,always,,,,,,,29,
+2100,Baphomet@MO_BODYRELOCATION,chase,264,1,2000,200,1000,yes,target,always,,,,,,,,
+2100,Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,,
+2100,Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2100,Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2100,Baphomet@NPC_DARKBREATH,attack,202,5,2000,800,5000,yes,target,always,,,,,,,29,
+2100,Baphomet@NPC_DARKSTRIKE,chase,340,10,2000,0,1000,yes,target,always,,,,,,,,
+2100,Baphomet@NPC_EARTHQUAKE,attack,653,5,10000,2000,30000,yes,self,myhpltmaxrate,80,,,,,,6,
+2100,Baphomet@NPC_EARTHQUAKE,chase,653,5,10000,2000,30000,yes,self,myhpltmaxrate,80,,,,,,6,
+2100,Baphomet@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2100,Baphomet@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,yes,self,always,,,,,,,6,
+2100,Baphomet@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,yes,self,always,,,,,,,6,
2100,Baphomet@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2100,Baphomet@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2100,Baphomet@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2100,Baphomet@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,no,self,always,0,,,,,,6,
-2100,Baphomet@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,no,self,always,0,,,,,,6,
-2100,Baphomet@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,0,,,,,,29,
-2100,Baphomet@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,,
-2100,Baphomet@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,
-2100,Baphomet@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1431,,,,,,
-2100,Baphomet@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1431,,,,,,
+2100,Baphomet@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,yes,self,slavele,3,1431,,,,,,
+2100,Baphomet@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,yes,self,slavele,3,1431,,,,,,
2100,Baphomet@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,1101,,,,,,
-2100,Baphomet@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,29,
-2100,Baphomet@WZ_VERMILION,chase,85,20,5000,500,2000,no,target,skillused,18,,,,,,29,
-2100,Baphomet@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,29,
-2100,Baphomet@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
-2101,Lord of Death@AL_DECAGI,chase,30,11,2000,0,60000,no,target,always,0,,,,,,,
-2101,Lord of Death@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2101,Lord of Death@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2101,Lord of Death@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-2101,Lord of Death@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-2101,Lord of Death@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
-2101,Lord of Death@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-2101,Lord of Death@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,no,target,always,0,,,,,,,
-2101,Lord of Death@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2101,Lord of Death@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2101,Lord of Death@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2101,Lord of Death@NPC_GRANDDARKNESS,attack,339,10,1000,700,5000,no,self,myhpltmaxrate,30,,,,,,,
-2101,Lord of Death@NPC_STUNATTACK,attack,179,5,2000,0,0,no,target,always,0,,,,,,,
-2101,Lord of Death@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
-2101,Lord of Death@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1490,1490,1509,1508,1179,,
-2101,Lord of Death@NPC_DARKSTRIKE,chase,340,10,10000,0,5000,yes,target,skillused,18,,,,,,,
-2103,Ktullanux@NPC_WATERATTACK,attack,184,10,1000,500,5000,no,target,always,0,,,,,,,
-2103,Ktullanux@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,no,target,always,0,,,,,,,
-2103,Ktullanux@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2103,Ktullanux@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2103,Ktullanux@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2103,Ktullanux@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2103,Ktullanux@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,no,self,slavele,3,1788,,,,,,
-2103,Ktullanux@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,no,self,slavele,3,1788,,,,,,
-2103,Ktullanux@NPC_WIDEFREEZE,chase,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
-2103,Ktullanux@NPC_WIDEFREEZE,attack,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
-2103,Ktullanux@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2103,Ktullanux@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2103,Ktullanux@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,0,,,,,,29,
-2103,Ktullanux@MG_FROSTDIVER,idle,15,10,5000,1000,7000,no,target,always,0,,,,,,,
-2103,Ktullanux@MG_FROSTDIVER,chase,15,10,5000,1000,7000,no,target,always,0,,,,,,,
-2103,Ktullanux@WZ_STORMGUST,chase,89,10,5000,1000,20000,no,target,always,0,,,,,,,
-2103,Ktullanux@WZ_STORMGUST,attack,89,11,5000,1000,20000,no,target,always,0,,,,,,,
-2103,Ktullanux@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,0,,,,,,,
-2103,Ktullanux@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,0,,,,,,,
-2103,Ktullanux@WZ_FROSTNOVA,chase,88,10,5000,0,20000,yes,self,always,0,,,,,,,
-2103,Ktullanux@WZ_FROSTNOVA,attack,88,10,5000,0,20000,yes,self,always,0,,,,,,,
-2103,Ktullanux@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2103,Ktullanux@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2103,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
+2100,Baphomet@WZ_VERMILION,attack,85,10,2000,500,2000,yes,target,always,,,,,,,29,
+2100,Baphomet@WZ_VERMILION,chase,85,10,2000,500,2000,yes,target,always,,,,,,,29,
+2100,Baphomet@WZ_VERMILION,chase,85,10,5000,500,2000,yes,target,skillused,18,,,,,,29,
+2101,Lord of the Dead@AL_DECAGI,chase,30,10,2000,0,60000,yes,target,always,,,,,,,,
+2101,Lord of the Dead@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2101,Lord of the Dead@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,yes,target,always,,,,,,,,
+2101,Lord of the Dead@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2101,Lord of the Dead@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2101,Lord of the Dead@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2101,Lord of the Dead@NPC_CHANGEUNDEAD,attack,348,1,2000,0,5000,yes,target,always,,,,,,,,
+2101,Lord of the Dead@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,,,,,,,,
+2101,Lord of the Dead@NPC_DARKSTRIKE,chase,340,10,10000,0,5000,yes,target,skillused,18,,,,,,,
+2101,Lord of the Dead@NPC_GRANDDARKNESS,attack,339,10,1000,700,5000,yes,self,myhpltmaxrate,30,,,,,,,
+2101,Lord of the Dead@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,yes,self,always,,,,,,,36,
+2101,Lord of the Dead@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,yes,self,always,,,,,,,36,
+2101,Lord of the Dead@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2101,Lord of the Dead@NPC_STUNATTACK,attack,179,5,2000,0,0,yes,target,always,,,,,,,,
+2101,Lord of the Dead@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,yes,self,slavele,3,1490,1490,1509,1508,1179,,
+2101,Lord of the Dead@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,yes,self,slavele,3,1490,1490,1509,1508,1179,,
+2102,Dark Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2102,Dark Lord@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2102,Dark Lord@MG_FIREWALL,chase,18,10,2000,500,5000,yes,target,always,,,,,,,,
+2102,Dark Lord@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2102,Dark Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2102,Dark Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2102,Dark Lord@NPC_DARKBLESSING,attack,203,1,500,800,5000,yes,target,always,,,,,,,9,
+2102,Dark Lord@NPC_HELLJUDGEMENT,attack,662,5,10000,800,10000,yes,self,always,,,,,,,36,
+2102,Dark Lord@NPC_HELLJUDGEMENT,chase,662,5,10000,800,10000,yes,self,always,,,,,,,36,
+2102,Dark Lord@NPC_HELMBRAKE,attack,345,10,2000,500,5000,yes,target,always,,,,,,,,
+2102,Dark Lord@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,3,,,,,,,
+2102,Dark Lord@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,3,,,,,,,
+2102,Dark Lord@WZ_METEOR,attack,83,10,5000,500,2000,yes,target,always,,,,,,,,
+2102,Dark Lord@WZ_METEOR,chase,83,10,5000,500,2000,yes,target,always,,,,,,,,
+2102,Dark Lord@WZ_METEOR,chase,83,10,5000,500,2000,yes,target,skillused,18,,,,,,,
+2103,Ktullanux@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2103,Ktullanux@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2103,Ktullanux@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2103,Ktullanux@MG_FROSTDIVER,idle,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2103,Ktullanux@MG_FROSTDIVER,chase,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2103,Ktullanux@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
2103,Ktullanux@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2103,Ktullanux@AL_HEAL,idle,28,11,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
-2104,Dark Snake Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2104,Dark Snake Lord@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
-2104,Dark Snake Lord@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,6,
-2104,Dark Snake Lord@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2104,Dark Snake Lord@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2104,Dark Snake Lord@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
-2104,Dark Snake Lord@MG_FROSTDIVER,attack,15,10,2000,0,5000,yes,target,always,0,,,,,,,
-2104,Dark Snake Lord@MG_FROSTDIVER,chase,15,10,2000,0,0,yes,target,always,0,,,,,,,
-2104,Dark Snake Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,0,yes,target,always,0,,,,,,2,
-2104,Dark Snake Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2104,Dark Snake Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2104,Dark Snake Lord@NPC_DARKBREATH,attack,202,5,2000,800,5000,no,target,always,0,,,,,,29,
-2104,Dark Snake Lord@NPC_STOP,attack,342,1,10000,0,15000,yes,target,always,0,,,,,,2,
-2104,Dark Snake Lord@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,2,1531,1531,1564,,,,
-2104,Dark Snake Lord@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,2,1531,1531,1564,,,,
-2104,Dark Snake Lord@SM_MAGNUM,attack,7,20,2000,0,5000,yes,self,attackpcge,2,,,,,,,
-2104,Dark Snake Lord@MG_FROSTDIVER,chase,15,10,10000,0,0,yes,target,skillused,18,,,,,,,
-2105,Turtle General@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2105,Turtle General@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2105,Turtle General@AS_SONICBLOW,attack,136,10,2000,0,5000,no,target,always,0,,,,,,18,
-2105,Turtle General@BS_MAXIMIZE,attack,114,5,500,0,30000,no,self,always,0,,,,,,,
-2105,Turtle General@BS_MAXIMIZE,chase,114,5,500,0,30000,no,self,always,0,,,,,,,
-2105,Turtle General@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,skillused,18,,,,,,,
+2103,Ktullanux@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+2103,Ktullanux@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2103,Ktullanux@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2103,Ktullanux@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2103,Ktullanux@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2103,Ktullanux@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,yes,target,always,,,,,,,,
+2103,Ktullanux@NPC_SUMMONSLAVE,attack,196,6,10000,700,30000,yes,self,slavele,3,1788,,,,,,
+2103,Ktullanux@NPC_SUMMONSLAVE,idle,196,6,10000,700,30000,yes,self,slavele,3,1788,,,,,,
+2103,Ktullanux@NPC_WATERATTACK,attack,184,10,1000,500,5000,yes,target,always,,,,,,,,
+2103,Ktullanux@NPC_WIDEFREEZE,attack,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2103,Ktullanux@NPC_WIDEFREEZE,chase,664,5,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2103,Ktullanux@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2103,Ktullanux@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2103,Ktullanux@WZ_FROSTNOVA,attack,88,10,5000,0,20000,yes,self,always,,,,,,,,
+2103,Ktullanux@WZ_FROSTNOVA,chase,88,10,5000,0,20000,yes,self,always,,,,,,,,
+2103,Ktullanux@WZ_STORMGUST,attack,89,10,5000,1000,20000,yes,target,always,,,,,,,,
+2103,Ktullanux@WZ_STORMGUST,chase,89,10,5000,1000,20000,yes,target,always,,,,,,,,
+2103,Ktullanux@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2103,Ktullanux@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2104,Evil Snake Lord@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2104,Evil Snake Lord@MG_FROSTDIVER,attack,15,10,2000,0,5000,yes,target,always,,,,,,,,
+2104,Evil Snake Lord@MG_FROSTDIVER,chase,15,10,2000,0,0,yes,target,always,,,,,,,,
+2104,Evil Snake Lord@MG_FROSTDIVER,chase,15,10,10000,0,0,yes,target,skillused,18,,,,,,,
+2104,Evil Snake Lord@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2104,Evil Snake Lord@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2104,Evil Snake Lord@NPC_DARKBREATH,attack,202,5,2000,800,5000,yes,target,always,,,,,,,29,
+2104,Evil Snake Lord@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,yes,self,always,,,,,,,6,
+2104,Evil Snake Lord@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2104,Evil Snake Lord@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2104,Evil Snake Lord@NPC_SHIELDBRAKE,attack,346,10,2000,0,0,yes,target,always,,,,,,,2,
+2104,Evil Snake Lord@NPC_STOP,attack,342,1,10000,0,15000,yes,target,always,,,,,,,2,
+2104,Evil Snake Lord@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,2,1531,1531,1564,,,,
+2104,Evil Snake Lord@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,2,1531,1531,1564,,,,
+2104,Evil Snake Lord@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2104,Evil Snake Lord@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,yes,self,myhpltmaxrate,80,,,,,,32,
+2104,Evil Snake Lord@SM_MAGNUM,attack,7,10,2000,0,5000,yes,self,attackpcge,2,,,,,,,
+2105,Turtle General@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2105,Turtle General@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2105,Turtle General@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,18,
+2105,Turtle General@BS_MAXIMIZE,attack,114,5,500,0,30000,yes,self,always,,,,,,,,
+2105,Turtle General@BS_MAXIMIZE,chase,114,5,500,0,30000,yes,self,always,,,,,,,,
2105,Turtle General@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
-2105,Turtle General@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2105,Turtle General@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2105,Turtle General@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,no,target,always,0,,,,,,6,
-2105,Turtle General@NPC_WEAPONBRAKER,attack,343,10,500,0,20000,no,target,always,0,,,,,,18,
-2105,Turtle General@NPC_STUNATTACK,attack,179,5,2000,0,5000,no,target,always,0,,,,,,6,
-2105,Turtle General@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,no,self,slavele,3,1364,1594,1600,1601,1602,,
-2105,Turtle General@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,no,self,slavele,3,1364,1594,1600,1601,1602,,
-2105,Turtle General@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,6,
-2105,Turtle General@WZ_WATERBALL,attack,86,5,2000,500,20000,no,target,always,0,,,,,,18,
-2106,Vesper@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,15,1669,1675,,,,,
-2106,Vesper@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2106,Vesper@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2106,Vesper@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-2106,Vesper@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,0,,,,,,,
-2106,Vesper@NPC_POWERUP,attack,349,5,5000,0,30000,yes,self,always,0,,,,,,,
-2106,Vesper@NPC_CRITICALSLASH,attack,170,1,5000,0,3000,yes,target,always,0,,,,,,,
-2106,Vesper@WZ_METEOR,attack,83,11,500,10000,20000,yes,target,always,0,,,,,,,
-2106,Vesper@NPC_EMOTION,idle,197,1,1000,0,0,yes,self,always,0,9,,,,,,
-2106,Vesper@NPC_SUMMONSLAVE,idle,196,2,10000,0,0,no,self,onspawn,0,1365,,,,,,
-2107,Fallen Bishop@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2107,Fallen Bishop@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2107,Fallen Bishop@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1868,,,,,,
-2107,Fallen Bishop@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1868,,,,,,
-2107,Fallen Bishop@NPC_WIDECURSE,attack,677,5,2000,800,5000,no,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_DARKCROSS,attack,338,10,1000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@CR_HOLYCROSS,attack,253,10,1000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_GRANDDARKNESS,chase,339,10,500,1300,5000,no,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_GRANDDARKNESS,attack,339,10,500,1300,5000,no,self,always,0,,,,,,,
-2107,Fallen Bishop@CR_GRANDCROSS,chase,254,10,500,1000,5000,no,self,always,0,,,,,,,
-2107,Fallen Bishop@CR_GRANDCROSS,attack,254,10,500,1000,5000,no,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_VAMPIRE_GIFT,attack,679,2,500,0,5000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_SLOWCAST,chase,672,5,2000,300,30000,no,self,always,0,,,,,,36,
-2107,Fallen Bishop@NPC_SLOWCAST,attack,672,5,2000,800,30000,no,self,always,0,,,,,,36,
-2107,Fallen Bishop@NPC_EVILLAND,attack,670,10,10000,1000,600000,no,target,myhpltmaxrate,44,,,,,,,
-2107,Fallen Bishop@NPC_EVILLAND,attack,670,7,500,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-2107,Fallen Bishop@NPC_MAGICMIRROR,attack,671,1,10000,0,60000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_HELLJUDGEMENT,chase,662,4,10000,800,20000,no,self,always,0,,,,,,36,
-2107,Fallen Bishop@NPC_HELLJUDGEMENT,attack,662,4,10000,800,20000,no,self,always,0,,,,,,36,
-2107,Fallen Bishop@NPC_WIDESILENCE,chase,663,5,5000,0,30000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@NPC_WIDESILENCE,attack,663,5,5000,0,30000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,0,,,,,,,
-2107,Fallen Bishop@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,19,
-2107,Fallen Bishop@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,19,
-2107,Fallen Bishop@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,0,,,,,,29,
-2107,Fallen Bishop@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,0,,,,,,29,
-2107,Fallen Bishop@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_DARKNESSATTACK,attack,190,10,1000,0,5000,yes,target,always,0,,,,,,,
-2107,Fallen Bishop@NPC_DARKNESSBREATH,attack,658,3,2000,0,5000,yes,target,always,0,,,,,,,
-2108,Gloom Under Night@NPC_FIREATTACK,attack,186,10,1000,0,5000,no,target,always,0,,,,,,,
-2108,Gloom Under Night@NPC_TELEKINESISATTACK,attack,191,10,1000,0,5000,no,target,always,0,,,,,,,
-2108,Gloom Under Night@WZ_FIREPILLAR,idle,80,11,1000,0,5000,yes,target,always,0,,,,,,,
-2108,Gloom Under Night@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2108,Gloom Under Night@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2108,Gloom Under Night@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,0,,,,,,,
-2108,Gloom Under Night@NPC_POWERUP,attack,349,5,10000,700,25000,no,self,myhpltmaxrate,30,,,,,,,
-2108,Gloom Under Night@NPC_POWERUP,attack,349,5,2000,700,50000,no,self,always,0,,,,,,,
-2108,Gloom Under Night@NPC_FIREBREATH,chase,654,10,2000,500,10000,no,target,myhpltmaxrate,80,,,,,,,
-2108,Gloom Under Night@SM_MAGNUM,attack,7,20,10000,0,5000,yes,self,attackpcge,2,,,,,,,
-2108,Gloom Under Night@WZ_SIGHTRASHER,attack,81,20,2000,0,5000,yes,self,always,0,,,,,,,
-2108,Gloom Under Night@MG_FIREBALL,attack,17,20,1000,500,20000,no,target,always,0,,,,,,,
-2108,Gloom Under Night@MG_FIREBALL,chase,17,20,10000,500,20000,no,target,always,0,,,,,,,
-2108,Gloom Under Night@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2108,Gloom Under Night@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2108,Gloom Under Night@NPC_SUMMONSLAVE,attack,196,4,10000,700,30000,no,self,slavele,3,1787,1787,1786,1786,,,
-2108,Gloom Under Night@NPC_SUMMONSLAVE,idle,196,4,10000,700,30000,no,self,slavele,3,1787,1787,1786,1786,,,
-2108,Gloom Under Night@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2108,Gloom Under Night@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2109,Valkyrie Randgris@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-2109,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-2109,Valkyrie Randgris@NPC_SUMMONSLAVE,chase,196,3,10000,2000,5000,no,self,slavele,1,1891,,,,,,
-2109,Valkyrie Randgris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2109,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1765,,,,,,
-2109,Valkyrie Randgris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2109,Valkyrie Randgris@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2109,Valkyrie Randgris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2109,Valkyrie Randgris@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
-2109,Valkyrie Randgris@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2105,Turtle General@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2105,Turtle General@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2105,Turtle General@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,yes,target,always,,,,,,,6,
+2105,Turtle General@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,6,
+2105,Turtle General@NPC_SUMMONSLAVE,attack,196,6,10000,700,10000,yes,self,slavele,3,1364,1594,1600,1601,1602,,
+2105,Turtle General@NPC_SUMMONSLAVE,idle,196,6,10000,700,10000,yes,self,slavele,3,1364,1594,1600,1601,1602,,
+2105,Turtle General@NPC_WEAPONBRAKER,attack,343,10,500,0,20000,yes,target,always,,,,,,,18,
+2105,Turtle General@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2105,Turtle General@WZ_WATERBALL,attack,86,5,2000,500,20000,yes,target,always,,,,,,,18,
+2105,Turtle General@WZ_WATERBALL,chase,86,10,10000,500,5000,yes,target,skillused,18,,,,,,,
+2106,Vesper@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2106,Vesper@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2106,Vesper@NPC_CALLSLAVE,attack,352,1,10000,0,60000,yes,self,always,,,,,,,,
+2106,Vesper@NPC_CALLSLAVE,idle,352,1,10000,0,60000,yes,self,always,,,,,,,,
+2106,Vesper@NPC_CRITICALSLASH,attack,170,1,5000,0,3000,yes,target,always,,,,,,,,
+2106,Vesper@NPC_EMOTION,idle,197,1,1000,0,0,yes,self,always,,9,,,,,,
+2106,Vesper@NPC_POWERUP,attack,349,5,5000,0,30000,yes,self,always,,,,,,,,
+2106,Vesper@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,yes,self,slavele,15,1669,1675,,,,,
+2106,Vesper@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1365,,,,,,
+2106,Vesper@WZ_METEOR,attack,83,10,500,10000,20000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2107,Fallen Bishop@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2107,Fallen Bishop@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2107,Fallen Bishop@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2107,Fallen Bishop@CR_GRANDCROSS,attack,254,10,500,1000,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@CR_GRANDCROSS,chase,254,10,500,1000,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@CR_HOLYCROSS,attack,253,10,1000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@MG_SAFETYWALL,attack,12,10,1000,0,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_DARKCROSS,attack,338,10,1000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_DARKNESSATTACK,attack,190,10,1000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_DARKNESSBREATH,attack,658,3,2000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_DARKSTRIKE,chase,340,10,2000,0,5000,yes,target,always,,,,,,,,
+2107,Fallen Bishop@NPC_EVILLAND,attack,670,10,10000,1000,600000,yes,self,myhpltmaxrate,44,,,,,,,
+2107,Fallen Bishop@NPC_EVILLAND,attack,670,7,500,500,5000,yes,self,myhpltmaxrate,80,,,,,,,
+2107,Fallen Bishop@NPC_GRANDDARKNESS,attack,339,10,500,1300,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_GRANDDARKNESS,chase,339,10,500,1300,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_HELLJUDGEMENT,attack,662,4,10000,800,20000,yes,self,always,,,,,,,36,
+2107,Fallen Bishop@NPC_HELLJUDGEMENT,chase,662,4,10000,800,20000,yes,self,always,,,,,,,36,
+2107,Fallen Bishop@NPC_MAGICMIRROR,attack,671,1,10000,0,60000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_SLOWCAST,attack,672,5,2000,800,30000,yes,self,always,,,,,,,36,
+2107,Fallen Bishop@NPC_SLOWCAST,chase,672,5,2000,300,30000,yes,self,always,,,,,,,36,
+2107,Fallen Bishop@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1868,,,,,,
+2107,Fallen Bishop@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1868,,,,,,
+2107,Fallen Bishop@NPC_VAMPIRE_GIFT,attack,679,2,500,0,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_WIDECURSE,attack,677,5,2000,800,5000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_WIDESILENCE,attack,663,5,5000,0,30000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@NPC_WIDESILENCE,chase,663,5,5000,0,30000,yes,self,always,,,,,,,,
+2107,Fallen Bishop@PR_LEXAETERNA,attack,78,1,500,0,5000,yes,target,always,,,,,,,29,
+2107,Fallen Bishop@PR_LEXAETERNA,chase,78,1,500,0,5000,yes,target,always,,,,,,,29,
+2108,Gloom Under Night@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2108,Gloom Under Night@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2108,Gloom Under Night@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@KN_PIERCE,attack,56,10,1000,0,5000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@MG_FIREBALL,attack,17,10,1000,500,20000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@MG_FIREBALL,chase,17,10,10000,500,20000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2108,Gloom Under Night@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2108,Gloom Under Night@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@NPC_FIREBREATH,chase,654,10,2000,500,10000,yes,target,myhpltmaxrate,80,,,,,,,
+2108,Gloom Under Night@NPC_POWERUP,attack,349,5,2000,700,50000,yes,self,always,,,,,,,,
+2108,Gloom Under Night@NPC_POWERUP,attack,349,5,10000,700,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2108,Gloom Under Night@NPC_SUMMONSLAVE,attack,196,4,10000,700,30000,yes,self,slavele,3,1787,1787,1786,1786,,,
+2108,Gloom Under Night@NPC_SUMMONSLAVE,idle,196,4,10000,700,30000,yes,self,slavele,3,1787,1787,1786,1786,,,
+2108,Gloom Under Night@NPC_TELEKINESISATTACK,attack,191,10,1000,0,5000,yes,target,always,,,,,,,,
+2108,Gloom Under Night@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+2108,Gloom Under Night@WZ_FIREPILLAR,idle,80,10,1000,0,5000,yes,around2,always,,,,,,,,
+2108,Gloom Under Night@WZ_SIGHTRASHER,attack,81,10,2000,0,5000,yes,self,always,,,,,,,,
+2109,Valkyrie Randgris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2109,Valkyrie Randgris@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+2109,Valkyrie Randgris@HP_ASSUMPTIO,chase,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+2109,Valkyrie Randgris@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+2109,Valkyrie Randgris@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,yes,target,attackpcge,2,,,,,,,
2109,Valkyrie Randgris@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
2109,Valkyrie Randgris@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
-2109,Valkyrie Randgris@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32,
-2109,Valkyrie Randgris@HP_ASSUMPTIO,chase,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
-2109,Valkyrie Randgris@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
-2109,Valkyrie Randgris@HW_GANBANTEIN,attack,483,5,2000,0,5000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@KN_TWOHANDQUICKEN,attack,60,20,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
-2109,Valkyrie Randgris@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,0,,,,,,,
-2109,Valkyrie Randgris@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@KN_BRANDISHSPEAR,attack,57,20,2000,0,5000,yes,target,always,0,,,,,,,
-2109,Valkyrie Randgris@MG_THUNDERSTORM,attack,21,15,10000,1500,5000,no,target,attackpcge,2,,,,,,,
-2109,Valkyrie Randgris@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
-2109,Valkyrie Randgris@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
-2109,Valkyrie Randgris@WZ_VERMILION,attack,85,20,1000,1000,5000,no,target,always,0,,,,,,,
-2109,Valkyrie Randgris@WZ_VERMILION,chase,85,20,2000,1000,5000,no,target,always,0,,,,,,,
-2110,Ifrit@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2110,Ifrit@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,0,,,,,,,
-2110,Ifrit@AL_HEAL,idle,28,11,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+2109,Valkyrie Randgris@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2109,Valkyrie Randgris@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2109,Valkyrie Randgris@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2109,Valkyrie Randgris@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2109,Valkyrie Randgris@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2109,Valkyrie Randgris@NPC_HOLYATTACK,attack,189,10,2000,500,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2109,Valkyrie Randgris@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2109,Valkyrie Randgris@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2109,Valkyrie Randgris@NPC_SUMMONSLAVE,attack,196,3,10000,2000,5000,yes,self,slavele,1,1891,,,,,,
+2109,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,2000,5000,yes,self,slavele,1,1891,,,,,,
+2109,Valkyrie Randgris@NPC_SUMMONSLAVE,chase,196,3,10000,2000,5000,yes,self,slavele,1,1891,,,,,,
+2109,Valkyrie Randgris@NPC_SUMMONSLAVE,idle,196,3,10000,0,0,no,self,onspawn,0,1765,,,,,,
+2109,Valkyrie Randgris@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@WZ_VERMILION,attack,85,10,1000,1000,5000,yes,target,always,,,,,,,,
+2109,Valkyrie Randgris@WZ_VERMILION,chase,85,10,2000,1000,5000,yes,target,always,,,,,,,,
+2110,Ifrit@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
2110,Ifrit@AL_HEAL,idle,28,1,10000,0,10000,yes,self,myhpltmaxrate,99,,,,,,,
-2110,Ifrit@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,20,,,,,,6,
-2110,Ifrit@NPC_SUMMONSLAVE,attack,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
-2110,Ifrit@NPC_SUMMONSLAVE,idle,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
-2110,Ifrit@NPC_SUMMONSLAVE,chase,196,2,10000,1000,30000,no,self,slavele,1,1834,1835,,,,,
-2110,Ifrit@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2110,Ifrit@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2110,Ifrit@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,,
-2110,Ifrit@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,0,,,,,,,
-2110,Ifrit@NPC_FIREBREATH,chase,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-2110,Ifrit@NPC_FIREBREATH,attack,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
-2110,Ifrit@SA_LANDPROTECTOR,attack,288,3,5000,0,5000,yes,target,always,0,,,,,,,
-2110,Ifrit@WZ_METEOR,attack,83,11,2000,500,5000,no,target,myhpltmaxrate,90,,,,,,,
+2110,Ifrit@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
+2110,Ifrit@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2110,Ifrit@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,,,,,,,,
2110,Ifrit@KN_TWOHANDQUICKEN,attack,60,9,10000,0,100000,yes,self,myhpltmaxrate,30,,,,,,,
-2110,Ifrit@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
-2110,Ifrit@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
+2110,Ifrit@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2110,Ifrit@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2110,Ifrit@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,,,,,,,,
+2110,Ifrit@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,,,,,,,,
+2110,Ifrit@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,yes,self,myhpltmaxrate,40,,,,,,,
+2110,Ifrit@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,yes,self,myhpltmaxrate,40,,,,,,,
+2110,Ifrit@NPC_FIREBREATH,attack,654,10,2000,500,5000,yes,target,myhpltmaxrate,80,,,,,,,
+2110,Ifrit@NPC_FIREBREATH,chase,654,10,2000,500,5000,yes,target,myhpltmaxrate,80,,,,,,,
+2110,Ifrit@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,20,,,,,,6,
2110,Ifrit@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
-2110,Ifrit@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,0,,,,,,,
-2110,Ifrit@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,0,,,,,,,
-2110,Ifrit@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2111,Whitesmith Harword@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2111,Whitesmith Harword@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,0,
-2111,Whitesmith Harword@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1641,1643,1644,1645,0,
-2111,Whitesmith Harword@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1641,1643,1644,1645,0,
-2111,Whitesmith Harword@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,0,,,,,,,
-2111,Whitesmith Harword@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,0,,,,,,,
-2111,Whitesmith Harword@MC_MAMMONITE,attack,42,10,2000,0,5000,yes,target,always,0,,,,,,23,
-2111,Whitesmith Harword@MC_MAMMONITE,attack,42,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
-2111,Whitesmith Harword@BS_HAMMERFALL,chase,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@BS_HAMMERFALL,attack,110,11,2000,0,5000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2111,Whitesmith Harword@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
-2111,Whitesmith Harword@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,0,,,,,,19,
-2111,Whitesmith Harword@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,0,,,,,,19,
-2111,Whitesmith Harword@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,0,,,,,,19,
-2111,Whitesmith Harword@ST_FULLSTRIP,attack,476,5,1500,0,1000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,0,,,,,,,
-2111,Whitesmith Harword@NPC_CHANGEGROUND,attack,163,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
-2111,Whitesmith Harword@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
-2111,Whitesmith Harword@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
-2112,Lord Knight Seyren@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2112,Lord Knight Seyren@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2112,Lord Knight Seyren@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,0,
-2112,Lord Knight Seyren@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1641,1642,1643,1644,1645,0,
-2112,Lord Knight Seyren@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1641,1642,1643,1644,1645,0,
-2112,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,randomtarget,always,0,,,,,,6,
+2110,Ifrit@NPC_SUMMONSLAVE,attack,196,2,10000,1000,30000,yes,self,slavele,1,1834,1835,,,,,
+2110,Ifrit@NPC_SUMMONSLAVE,idle,196,2,10000,1000,30000,yes,self,slavele,1,1834,1835,,,,,
+2110,Ifrit@NPC_SUMMONSLAVE,chase,196,2,10000,1000,30000,yes,self,slavele,1,1834,1835,,,,,
+2110,Ifrit@SA_LANDPROTECTOR,attack,288,3,5000,0,5000,yes,target,always,,,,,,,,
+2110,Ifrit@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,,,,,,,,
+2110,Ifrit@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,,,,,,,,
+2110,Ifrit@WZ_METEOR,attack,83,10,2000,500,5000,yes,target,myhpltmaxrate,90,,,,,,,
+2111,MasterSmith Howard@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2111,MasterSmith Howard@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2111,MasterSmith Howard@BS_ADRENALINE,attack,111,10,2000,0,150000,yes,self,always,,,,,,,,
+2111,MasterSmith Howard@BS_HAMMERFALL,attack,110,10,2000,0,5000,yes,target,always,,,,,,,,
+2111,MasterSmith Howard@BS_HAMMERFALL,chase,110,10,2000,0,5000,yes,target,always,,,,,,,,
+2111,MasterSmith Howard@BS_MAXIMIZE,attack,114,1,1000,0,60000,yes,self,always,,,,,,,,
+2111,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,5000,yes,target,always,,,,,,,23,
+2111,MasterSmith Howard@MC_MAMMONITE,attack,42,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,23,
+2111,MasterSmith Howard@NPC_ARMORBRAKE,attack,344,10,1000,0,5000,yes,target,always,,,,,,,19,
+2111,MasterSmith Howard@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2111,MasterSmith Howard@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2111,MasterSmith Howard@NPC_CHANGEGROUND,attack,163,1,10000,500,6000000,yes,self,myhpltmaxrate,70,,,,,,9,
+2111,MasterSmith Howard@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,yes,self,myhpltmaxrate,40,,,,,,9,
+2111,MasterSmith Howard@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,yes,self,myhpltmaxrate,10,,,,,,9,
+2111,MasterSmith Howard@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2111,MasterSmith Howard@NPC_HELMBRAKE,attack,345,10,1000,0,5000,yes,target,always,,,,,,,19,
+2111,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2111,MasterSmith Howard@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2111,MasterSmith Howard@NPC_SHIELDBRAKE,attack,346,10,1000,0,5000,yes,target,always,,,,,,,19,
+2111,MasterSmith Howard@NPC_SPLASHATTACK,attack,174,1,1000,0,0,yes,target,attackpcge,2,,,,,,,
+2111,MasterSmith Howard@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2111,MasterSmith Howard@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1640,1641,1643,1644,1645,,
+2111,MasterSmith Howard@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1640,1641,1643,1644,1645,,
+2111,MasterSmith Howard@NPC_WATERATTACK,attack,184,10,1000,0,5000,yes,target,always,,,,,,,,
+2111,MasterSmith Howard@ST_FULLSTRIP,attack,476,5,1500,0,1000,yes,target,always,,,,,,,,
+2112,Lord Knight Seyren@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2112,Lord Knight Seyren@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2112,Lord Knight Seyren@KN_SPEARBOOMERANG,idle,59,5,10000,0,0,yes,target,always,,,,,,,6,
2112,Lord Knight Seyren@KN_SPEARBOOMERANG,chase,59,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-2112,Lord Knight Seyren@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
+2112,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,yes,self,always,,,,,,,2,
2112,Lord Knight Seyren@LK_SPIRALPIERCE,attack,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
-2112,Lord Knight Seyren@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,yes,self,always,0,,,,,,2,
-2112,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,0,,,,,,,
+2112,Lord Knight Seyren@LK_SPIRALPIERCE,chase,397,5,2000,0,5000,yes,target,myhpltmaxrate,60,,,,,,,
+2112,Lord Knight Seyren@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_CHANGEFIRE,attack,164,1,10000,500,60000000,yes,self,myhpltmaxrate,70,,,,,,9,
+2112,Lord Knight Seyren@NPC_CHANGEHOLY,attack,167,1,10000,500,60000000,yes,self,myhpltmaxrate,40,,,,,,9,
+2112,Lord Knight Seyren@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,60000000,yes,self,myhpltmaxrate,10,,,,,,9,
+2112,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2112,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2112,Lord Knight Seyren@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2112,Lord Knight Seyren@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1641,1642,1643,1644,1645,,
+2112,Lord Knight Seyren@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1641,1642,1643,1644,1645,,
+2112,Lord Knight Seyren@SM_BASH,attack,5,10,1000,0,5000,yes,target,always,,,,,,,,
2112,Lord Knight Seyren@SM_BASH,attack,5,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
+2112,Lord Knight Seyren@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
2112,Lord Knight Seyren@SM_MAGNUM,attack,7,10,1000,0,0,yes,self,attackpcge,2,,,,,,,
-2112,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2112,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,0,,,,,,29,
-2112,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,0,,,,,,29,
-2112,Lord Knight Seyren@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,0,,,,,,6,
-2112,Lord Knight Seyren@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_FIREATTACK,attack,186,10,1000,0,5000,yes,target,always,0,,,,,,,
-2112,Lord Knight Seyren@NPC_CHANGEFIRE,attack,164,1,10000,500,60000000,no,self,myhpltmaxrate,70,,,,,,9,
-2112,Lord Knight Seyren@NPC_CHANGEHOLY,attack,167,1,10000,500,60000000,no,self,myhpltmaxrate,40,,,,,,9,
-2112,Lord Knight Seyren@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,60000000,no,self,myhpltmaxrate,10,,,,,,9,
-2113,Assassin Cross Eremes@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2113,Assassin Cross Eremes@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,0,
-2113,Assassin Cross Eremes@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,1640,1642,1643,1644,1645,0,
-2113,Assassin Cross Eremes@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,1640,1642,1643,1644,1645,0,
-2113,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,target,always,0,,,,,,6,
+2112,Lord Knight Seyren@SM_PROVOKE,attack,6,10,1000,0,300000,yes,target,always,,,,,,,29,
+2112,Lord Knight Seyren@SM_PROVOKE,chase,6,10,1000,0,5000,yes,target,always,,,,,,,29,
+2113,Assassin Cross Eremes@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2113,Assassin Cross Eremes@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2113,Assassin Cross Eremes@AS_GRIMTOOTH,idle,137,5,10000,0,0,yes,target,always,,,,,,,6,
+2113,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,,,,,,,,
2113,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,10000,0,0,yes,target,skillused,18,,,,,,6,
-2113,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2113,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,0,,,,,,6,
+2113,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,6,
2113,Assassin Cross Eremes@AS_SONICBLOW,attack,136,10,3000,0,0,yes,target,myhpltmaxrate,30,,,,,,6,
-2113,Assassin Cross Eremes@AS_GRIMTOOTH,chase,137,5,2000,0,0,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,randomtarget,always,0,,,,,,29,
-2113,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,0,,,,,,29,
-2113,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,0,,,,,,,
-2113,Assassin Cross Eremes@NPC_CHANGEWIND,attack,165,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
-2113,Assassin Cross Eremes@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
-2113,Assassin Cross Eremes@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2113,Assassin Cross Eremes@AS_VENOMDUST,attack,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+2113,Assassin Cross Eremes@AS_VENOMDUST,idle,140,1,2000,0,10000,yes,target,always,,,,,,,29,
+2113,Assassin Cross Eremes@ASC_BREAKER,chase,379,10,2000,0,5000,yes,target,always,,,,,,,,
+2113,Assassin Cross Eremes@ASC_METEORASSAULT,attack,406,10,2000,0,10000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2113,Assassin Cross Eremes@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,yes,self,myhpltmaxrate,40,,,,,,9,
+2113,Assassin Cross Eremes@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,yes,self,myhpltmaxrate,10,,,,,,9,
+2113,Assassin Cross Eremes@NPC_CHANGEWIND,attack,165,1,10000,500,6000000,yes,self,myhpltmaxrate,70,,,,,,9,
+2113,Assassin Cross Eremes@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_GUIDEDATTACK,attack,172,10,2000,0,15000,yes,target,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2113,Assassin Cross Eremes@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2113,Assassin Cross Eremes@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,yes,self,slavele,3,1640,1642,1643,1644,1645,,
+2113,Assassin Cross Eremes@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,yes,self,slavele,3,1640,1642,1643,1644,1645,,
+2113,Assassin Cross Eremes@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,,,,,,,,
-// Bifrost (14.1)
-2131,Lost Dragon@NPC_ALLHEAL,idle,687,1,3000,20000,20000,yes,self,rudeattacked,0,,,,,,,
-2131,Lost Dragon@NPC_ALLHEAL,walk,687,1,3000,20000,20000,yes,self,rudeattacked,0,,,,,,,
-2131,Lost Dragon@NPC_MAGICMIRROR,chase,671,1,10000,0,120000,yes,self,always,0,,,,,,,
-2131,Lost Dragon@NPC_MAGICMIRROR,attack,671,1,10000,0,120000,yes,self,always,0,,,,,,,
-2131,Lost Dragon@NPC_STONESKIN,chase,675,1,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
-2131,Lost Dragon@NPC_STONESKIN,attack,675,1,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
-2131,Lost Dragon@NPC_POWERUP,attack,349,1,6000,0,60000,yes,self,myhpltmaxrate,15,,,,,,6,
-2131,Lost Dragon@NPC_EVILLAND,attack,670,2,500,0,25000,yes,target,myhpltmaxrate,15,,,,,,,
-2131,Lost Dragon@WZ_QUAGMIRE,chase,92,2,10000,700,5000,no,target,myhpltmaxrate,28,,,,,,12,
-2131,Lost Dragon@WZ_QUAGMIRE,attack,92,2,10000,700,120000,no,target,myhpltmaxrate,28,,,,,,12,
-2131,Lost Dragon@NPC_EARTHQUAKE,chase,653,1,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
-2131,Lost Dragon@NPC_EARTHQUAKE,attack,653,1,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
-2131,Lost Dragon@NPC_WIDESTONE,chase,666,1,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
-2131,Lost Dragon@NPC_WIDESTONE,attack,666,1,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
-2131,Lost Dragon@NPC_EVILLAND,idle,670,5,500,0,120000,yes,target,myhpltmaxrate,50,,,,,,,
-2131,Lost Dragon@NPC_EVILLAND,chase,670,5,500,0,120000,yes,target,myhpltmaxrate,50,,,,,,,
-2131,Lost Dragon@NPC_HELLJUDGEMENT,chase,662,1,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
-2131,Lost Dragon@NPC_HELLJUDGEMENT,attack,662,1,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
-2131,Lost Dragon@NPC_DARKNESSBREATH,attack,658,3,10000,800,35000,no,target,myhpltmaxrate,50,,,,,,32,
-2131,Lost Dragon@NPC_SLOWCAST,attack,672,1,10000,0,60000,yes,self,myhpltmaxrate,70,,,,,,,
+// 14.1
+2131,Lost Dragon@MG_FIREBALL,chase,17,1,10000,0,30000,no,target,always,,,,,,,6,
+2131,Lost Dragon@NPC_ALLHEAL,idle,687,1,10000,120000,30000,yes,self,myhpltmaxrate,60,,,,,,20,
+2131,Lost Dragon@NPC_ALLHEAL,idle,687,1,3000,20000,20000,yes,self,rudeattacked,,,,,,,,
+2131,Lost Dragon@NPC_ALLHEAL,walk,687,1,3000,20000,20000,yes,self,rudeattacked,,,,,,,,
+2131,Lost Dragon@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2131,Lost Dragon@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2131,Lost Dragon@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,myhpltmaxrate,95,,,,,,,
2131,Lost Dragon@NPC_CRITICALWOUND,attack,673,1,2000,0,30000,yes,target,myhpltmaxrate,70,,,,,,,
-2131,Lost Dragon@NPC_WIDECURSE,chase,677,1,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
-2131,Lost Dragon@NPC_WIDECURSE,attack,677,1,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2131,Lost Dragon@NPC_DARKNESSBREATH,attack,658,3,10000,800,35000,no,target,myhpltmaxrate,50,,,,,,32,
+2131,Lost Dragon@NPC_DRAGONFEAR,attack,659,1,2000,1000,20000,no,self,always,,,,,,,32,
+2131,Lost Dragon@NPC_DRAGONFEAR,chase,659,1,10000,0,30000,no,self,always,,,,,,,6,
+2131,Lost Dragon@NPC_EARTHQUAKE,attack,653,4,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
+2131,Lost Dragon@NPC_EARTHQUAKE,chase,653,4,10000,10000,180000,no,self,myhpltmaxrate,30,,,,,,,
+2131,Lost Dragon@NPC_EVILLAND,attack,670,2,500,0,25000,yes,self,myhpltmaxrate,15,,,,,,,
+2131,Lost Dragon@NPC_EVILLAND,idle,670,5,500,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
+2131,Lost Dragon@NPC_EVILLAND,chase,670,5,500,0,120000,yes,self,myhpltmaxrate,50,,,,,,,
2131,Lost Dragon@NPC_FIREBREATH,attack,654,1,10000,800,15000,no,target,myhpltmaxrate,75,,,,,,32,
-2131,Lost Dragon@NPC_WIDESLEEP,chase,668,1,10000,3000,20000,no,self,myhpltmaxrate,95,,,,,,32,
-2131,Lost Dragon@NPC_WIDESLEEP,attack,668,1,30000,1000,20000,no,self,myhpltmaxrate,95,,,,,,32,
-2131,Lost Dragon@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,myhpltmaxrate,95,,,,,,,
-2131,Lost Dragon@MG_FIREBALL,chase,17,1,10000,0,30000,no,target,always,0,,,,,,6,
-2131,Lost Dragon@NPC_DRAGONFEAR,chase,659,1,10000,0,30000,no,self,always,0,,,,,,6,
-2131,Lost Dragon@NPC_DRAGONFEAR,attack,659,1,2000,1000,20000,no,self,always,0,,,,,,32,
-2131,Lost Dragon@WZ_METEOR,attack,83,3,2000,1000,10000,no,target,always,0,,,,,,29,
-2131,Lost Dragon@SA_DISPELL,attack,289,1,10000,0,30000,yes,target,always,0,,,,,,,
-2131,Lost Dragon@NPC_PULSESTRIKE,attack,661,1,2000,10000,40000,no,self,always,0,,,,,,,31
-2131,Lost Dragon@NPC_ALLHEAL,idle,687,1,10000,120000,30000,yes,self,myhpltmaxrate,60,,,,,,20,
-2132,Pom Spider@NPC_POISON,attack,176,2,500,800,5000,no,target,always,0,,,,,,,
-2132,Pom Spider@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,randomtarget,always,0,,,,,,,
-2132,Pom Spider@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,0,,,,,,,
-2132,Pom Spider@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,0,,,,,,,
-2132,Pom Spider@AS_VENOMDUST,angry,140,1,500,1500,5000,no,target,always,0,,,,,,,
-2132,Pom Spider@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,0,,,,,,12,
-2132,Pom Spider@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,0,,,,,,32,
-2133,Angra Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-2133,Angra Mantis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2133,Angra Mantis@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,0,,,,,,,
-2133,Angra Mantis@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-2133,Angra Mantis@CR_AUTOGUARD,attack,249,2,700,0,300000,yes,self,always,0,,,,,,,
+2131,Lost Dragon@NPC_HELLJUDGEMENT,attack,662,1,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
+2131,Lost Dragon@NPC_HELLJUDGEMENT,chase,662,1,10000,7000,25000,no,self,myhpltmaxrate,50,,,,,,,32
+2131,Lost Dragon@NPC_MAGICMIRROR,attack,671,1,10000,0,120000,yes,self,always,,,,,,,,
+2131,Lost Dragon@NPC_MAGICMIRROR,chase,671,1,10000,0,120000,yes,self,always,,,,,,,,
+2131,Lost Dragon@NPC_POWERUP,attack,349,1,6000,0,60000,yes,self,myhpltmaxrate,15,,,,,,6,
+2131,Lost Dragon@NPC_PULSESTRIKE,attack,661,1,2000,10000,40000,no,self,always,,,,,,,,31
+2131,Lost Dragon@NPC_SLOWCAST,attack,672,1,10000,0,60000,yes,self,myhpltmaxrate,70,,,,,,,
+2131,Lost Dragon@NPC_STONESKIN,attack,675,1,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
+2131,Lost Dragon@NPC_STONESKIN,chase,675,1,10000,2500,300000,no,self,myhpltmaxrate,3,,,,,,,34
+2131,Lost Dragon@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,1,,,,,,,
+2131,Lost Dragon@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,1,,,,,,,
+2131,Lost Dragon@NPC_WIDEBLEEDING,attack,665,3,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2131,Lost Dragon@NPC_WIDEBLEEDING,chase,665,3,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2131,Lost Dragon@NPC_WIDECURSE,attack,677,2,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2131,Lost Dragon@NPC_WIDECURSE,chase,677,2,10000,1000,25000,no,self,myhpltmaxrate,75,,,,,,32,
+2131,Lost Dragon@NPC_WIDESLEEP,attack,668,3,3000,1000,20000,no,self,myhpltmaxrate,95,,,,,,32,
+2131,Lost Dragon@NPC_WIDESLEEP,chase,668,3,10000,3000,20000,no,self,myhpltmaxrate,95,,,,,,32,
+2131,Lost Dragon@NPC_WIDESTONE,attack,666,1,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2131,Lost Dragon@NPC_WIDESTONE,chase,666,1,10000,0,60000,yes,self,myhpltmaxrate,40,,,,,,,
+2131,Lost Dragon@SA_DISPELL,attack,289,1,10000,0,30000,yes,target,always,,,,,,,,
+2131,Lost Dragon@WZ_METEOR,attack,83,3,2000,1000,10000,no,target,always,,,,,,,29,
+2131,Lost Dragon@WZ_QUAGMIRE,attack,92,2,10000,700,120000,no,target,myhpltmaxrate,28,,,,,,12,
+2131,Lost Dragon@WZ_QUAGMIRE,chase,92,2,10000,700,5000,no,target,myhpltmaxrate,28,,,,,,12,
+2132,Pom Spider@AS_VENOMDUST,angry,140,1,500,1500,5000,no,target,always,,,,,,,,
+2132,Pom Spider@NPC_BLEEDING,attack,660,2,2000,0,3000,yes,target,always,,,,,,,32,
+2132,Pom Spider@NPC_POISON,attack,176,2,500,800,5000,no,target,always,,,,,,,,
+2132,Pom Spider@NPC_POISONATTACK,attack,188,1,2000,0,5000,yes,target,always,,,,,,,,
+2132,Pom Spider@PF_SPIDERWEB,attack,405,1,2000,0,10000,yes,target,always,,,,,,,,
+2132,Pom Spider@PF_SPIDERWEB,idle,405,1,3000,0,10000,yes,target,always,,,,,,,,
+2132,Pom Spider@WZ_QUAGMIRE,chase,92,5,500,700,5000,yes,target,always,,,,,,,12,
+2133,Angra Mantis@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+2133,Angra Mantis@CR_AUTOGUARD,attack,249,2,700,0,300000,yes,self,always,,,,,,,,
+2133,Angra Mantis@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+2133,Angra Mantis@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2133,Angra Mantis@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
2133,Angra Mantis@NPC_SUMMONSLAVE,idle,196,1,10000,2000,60000,no,self,slavele,0,,,,,,,
-2134,Parus@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-2134,Parus@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,0,,,,,,,
-2134,Parus@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,0,,,,,,21,
-2134,Parus@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,0,,,,,,,
-2134,Parus@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,0,,,,,,,
-2134,Parus@WZ_EARTHSPIKE,attack,90,1,500,0,5000,no,target,always,0,,,,,,6,
-2134,Parus@WZ_EARTHSPIKE,attack,90,2,500,0,5000,no,target,always,0,,,,,,6,
-2134,Parus@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,0,,,,,,6,
-2134,Parus@SM_PROVOKE,angry,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-2134,Parus@SM_PROVOKE,follow,6,10,2000,600,30000,no,target,always,0,,,,,,23,
-2134,Parus@WZ_HEAVENDRIVE,attack,91,2,500,500,25000,no,target,always,0,,,,,,,
-2136,Little Fatum@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,0,,,,,,6,
-2136,Little Fatum@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,0,,,,,,21,
-2136,Little Fatum@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,0,,,,,,21,
-2136,Little Fatum@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,0,2,,,,,,
-2136,Little Fatum@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,0,,,,,,,
-2136,Little Fatum@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-2136,Little Fatum@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,0,,,,,,6,
-2136,Little Fatum@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-2136,Little Fatum@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,0,,,,,,18,
-2136,Little Fatum@MG_LIGHTNINGBOLT,chase,20,5,10000,1500,5000,yes,target,always,0,,,,,,12,
-2136,Little Fatum@MG_THUNDERSTORM,attack,21,3,2000,1500,5000,no,target,always,0,,,,,,,
-2137,Miming@NPC_COMBOATTACK,attack,171,2,500,0,5000,no,target,always,0,,,,,,6,
-2137,Miming@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2137,Miming@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,0,,,,,,6,
-2137,Miming@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,0,,,,,,,
-2137,Miming@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,0,,,,,,,
-2137,Miming@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2137,Miming@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,0,,,,,,,
-2137,Miming@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,0,,,,,,6,
-2137,Miming@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,,
-2137,Miming@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,,
-2137,Miming@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-2137,Miming@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,0,,,,,,18,
-2137,Miming@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,0,,,,,,32,
-2137,Miming@NPC_SILENCEATTACK,chase,178,2,500,700,5000,no,target,always,0,,,,,,32,
-2138,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,35
-2138,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,35
-2138,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2139,,,,,,
-2139,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,36
-2139,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,36
-2140,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,37
-2140,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,37
-2140,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2141,,,,,,
-2141,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,38
-2141,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,38
-2142,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,39
-2142,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,39
-2142,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2143,,,,,,
-2143,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,40
-2143,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,40
+2134,Parus@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,,
+2134,Parus@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+2134,Parus@NPC_GROUNDATTACK,attack,185,3,500,0,5000,yes,target,always,,,,,,,,
+2134,Parus@NPC_SILENCEATTACK,attack,178,3,500,700,5000,no,target,always,,,,,,,,
+2134,Parus@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,21,
+2134,Parus@SM_PROVOKE,angry,6,10,2000,600,30000,no,target,always,,,,,,,23,
+2134,Parus@SM_PROVOKE,follow,6,10,2000,600,30000,no,target,always,,,,,,,23,
+2134,Parus@WZ_EARTHSPIKE,attack,90,1,500,0,5000,no,target,always,,,,,,,6,
+2134,Parus@WZ_EARTHSPIKE,attack,90,2,500,0,5000,no,target,always,,,,,,,6,
+2134,Parus@WZ_EARTHSPIKE,attack,90,3,500,0,5000,no,target,always,,,,,,,6,
+2134,Parus@WZ_HEAVENDRIVE,attack,91,2,500,500,25000,no,target,always,,,,,,,,
+2136,Little Fatum@MG_LIGHTNINGBOLT,chase,20,5,10000,1500,5000,yes,target,always,,,,,,,12,
+2136,Little Fatum@MG_THUNDERSTORM,attack,21,3,2000,1500,5000,no,target,always,,,,,,,,
+2136,Little Fatum@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+2136,Little Fatum@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,21,
+2136,Little Fatum@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+2136,Little Fatum@PR_LEXAETERNA,attack,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+2136,Little Fatum@PR_LEXAETERNA,chase,78,1,500,1000,5000,yes,target,always,,,,,,,6,
+2136,Little Fatum@SA_REVERSEORCISH,attack,294,1,50,0,30000,yes,target,always,,,,,,,18,
+2136,Little Fatum@SA_REVERSEORCISH,chase,294,1,50,0,30000,yes,target,always,,,,,,,18,
+2136,Little Fatum@TF_SPRINKLESAND,attack,149,1,500,0,5000,yes,target,always,,,,,,,6,
+2136,Little Fatum@WZ_JUPITEL,chase,84,3,500,1500,5000,yes,target,always,,,,,,,21,
+2137,Miming@MG_COLDBOLT,attack,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2137,Miming@MG_COLDBOLT,chase,14,3,500,1000,5000,yes,target,always,,,,,,,,
+2137,Miming@NPC_BLEEDING,attack,660,3,500,0,5000,yes,target,always,,,,,,,,
+2137,Miming@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+2137,Miming@NPC_COMBOATTACK,attack,171,2,500,0,5000,no,target,always,,,,,,,6,
+2137,Miming@NPC_CRITICALSLASH,angry,170,1,500,500,5000,no,target,always,,,,,,,6,
+2137,Miming@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2137,Miming@NPC_CRITICALWOUND,attack,673,1,50,0,10000,yes,target,always,,,,,,,,
+2137,Miming@NPC_SILENCEATTACK,attack,178,2,500,700,5000,no,target,always,,,,,,,32,
+2137,Miming@NPC_SILENCEATTACK,chase,178,2,500,700,5000,no,target,always,,,,,,,32,
+2137,Miming@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,,
+2137,Miming@SA_REVERSEORCISH,attack,294,1,500,0,30000,yes,target,always,,,,,,,18,
+2137,Miming@SA_REVERSEORCISH,chase,294,1,500,0,30000,yes,target,always,,,,,,,18,
+2137,Miming@WZ_WATERBALL,attack,86,3,500,1000,5000,yes,target,always,,,,,,,6,
+2138,Nydhoggur Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2139,,,,,,
+2138,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,35
+2138,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,35
+2139,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,36
+2139,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,36
+2140,Nydhoggur Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2141,,,,,,
+2140,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,37
+2140,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,37
+2141,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,40
+2141,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,38
+2141,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,38
+2142,Nydhoggur Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2143,,,,,,
+2142,Nydhoggur Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,,,,,,,,39
+2142,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,39
+2143,Nydhoggur Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,,,,,,,,40
// Queen Scaraba Slaves
-2144,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2144,Antler Scaraba@BS_ADRENALINE,attack,111,10,500,1500,300000,no,self,always,0,,,,,,6,
-2144,Antler Scaraba@BS_ADRENALINE,chase,111,10,500,1500,300000,no,self,always,0,,,,,,6,
+2144,Antler Scaraba@BS_ADRENALINE,attack,111,10,500,1500,300000,yes,self,always,,,,,,,6,
+2144,Antler Scaraba@BS_ADRENALINE,chase,111,10,500,1500,300000,yes,self,always,,,,,,,6,
+2144,Antler Scaraba@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+2144,Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,,,,,,,,
2144,Antler Scaraba@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-2144,Antler Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-2144,Antler Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-2144,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,0,,,,,,6,
-2144,Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,,
-2144,Antler Scaraba@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,0,,,,,,32,
-2145,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,,
-2145,Rake Scaraba@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,0,,,,,,,
-2145,Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-2145,Rake Scaraba@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,0,,,,,,8,
+2144,Antler Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,yes,self,myhpltmaxrate,50,,,,,,6,
+2144,Antler Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,yes,self,myhpltmaxrate,50,,,,,,6,
+2144,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,,,,,,,6,
+2145,Rake Scaraba@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+2145,Rake Scaraba@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,8,
+2145,Rake Scaraba@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+2145,Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,6,
2145,Rake Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
2145,Rake Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6,
-
-2146,G_S_NYDHOG@WZ_QUAGMIRE,chase,92,2,1000,700,5000,no,target,always,0,,,,,,12,
-2146,G_S_NYDHOG@WZ_QUAGMIRE,attack,92,2,1000,700,5000,no,target,always,0,,,,,,12,
-2146,G_S_NYDHOG@NPC_WIDESTONE,chase,666,2,1000,0,60000,yes,self,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_EVILLAND,chase,670,2,500,0,120000,yes,target,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_HELLJUDGEMENT,chase,662,2,10000,7000,25000,no,self,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_HELLJUDGEMENT,attack,662,1,500,7000,25000,no,self,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_DARKNESSBREATH,attack,658,1,500,800,35000,no,target,always,0,,,,,,32,
-2146,G_S_NYDHOG@NPC_SLOWCAST,attack,672,1,200,0,60000,yes,self,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_CRITICALWOUND,attack,673,1,2000,0,30000,yes,target,myhpltmaxrate,70,,,,,,,
-2146,G_S_NYDHOG@NPC_FIREBREATH,attack,654,1,1000,800,15000,no,target,always,0,,,,,,32,
-2146,G_S_NYDHOG@NPC_WIDESLEEP,chase,668,1,200,3000,20000,no,self,always,0,,,,,,32,
-2146,G_S_NYDHOG@NPC_WIDESLEEP,attack,668,1,200,1000,20000,no,self,always,0,,,,,,32,
-2146,G_S_NYDHOG@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,,
-2146,G_S_NYDHOG@MG_FIREBALL,chase,17,5,3000,0,30000,no,target,always,0,,,,,,6,
-2146,G_S_NYDHOG@NPC_DRAGONFEAR,chase,659,2,1000,0,30000,no,self,always,0,,,,,,6,
-2146,G_S_NYDHOG@NPC_DRAGONFEAR,attack,659,2,2000,1000,20000,no,self,always,0,,,,,,32,
-2146,G_S_NYDHOG@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,0,,,,,,,
-2146,G_S_NYDHOG@NPC_PULSESTRIKE,attack,661,1,500,10000,40000,no,self,always,0,,,,,,,
-
-// Dewata
-2151,Alnoldi@AL_HEAL,idle,28,5,10000,500,5000,yes,self,myhpltmaxrate,50,,,,,,,
-2151,Alnoldi@AL_HEAL,chase,28,5,10000,500,5000,yes,self,myhpltmaxrate,50,,,,,,,
-2151,Alnoldi@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,50,,,,,,,
-2151,Alnoldi@MG_SOULSTRIKE,chase,13,3,500,0,5000,yes,target,always,0,,,,,,,
-2151,Alnoldi@NPC_POISONATTACK,chase,188,5,2000,0,5000,yes,target,always,0,,,,,,,
-2151,Alnoldi@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,0,,,,,,,
-2151,Alnoldi@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,0,,,,,,6,
-2152,Comodo@AL_HEAL,attack,28,3,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
-2152,Comodo@KN_BOWLINGBASH,attack,62,5,1000,0,10000,yes,target,always,,,,,,,,
-2152,Comodo@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,6,
-2152,Comodo@AS_VENOMDUST,chase,140,1,1000,0,5000,no,target,always,0,,,,,,,
-2152,Comodo@AS_VENOMDUST,attack,140,1,1000,0,5000,no,target,always,0,,,,,,,
-2152,Comodo@NPC_POISON,attack,176,3,1000,800,5000,no,target,always,0,,,,,,,
-2152,Comodo@NPC_POISONATTACK,chase,188,5,2000,0,5000,yes,target,always,0,,,,,,,
-2152,Comodo@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,0,,,,,,,
+2146,Shade of Dragon@MG_FIREBALL,chase,17,5,3000,0,30000,no,target,always,,,,,,,6,
+2146,Shade of Dragon@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2146,Shade of Dragon@NPC_CRITICALWOUND,attack,673,1,2000,0,30000,yes,target,myhpltmaxrate,70,,,,,,,
+2146,Shade of Dragon@NPC_DARKNESSBREATH,attack,658,1,500,800,35000,no,target,always,,,,,,,32,
+2146,Shade of Dragon@NPC_DRAGONFEAR,attack,659,2,2000,1000,20000,no,self,always,,,,,,,32,
+2146,Shade of Dragon@NPC_DRAGONFEAR,chase,659,2,1000,0,30000,no,self,always,,,,,,,6,
+2146,Shade of Dragon@NPC_EVILLAND,chase,670,2,500,0,120000,yes,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_FIREBREATH,attack,654,1,1000,800,15000,no,target,always,,,,,,,32,
+2146,Shade of Dragon@NPC_HELLJUDGEMENT,attack,662,1,500,7000,25000,no,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_HELLJUDGEMENT,chase,662,2,10000,7000,25000,no,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_PULSESTRIKE,attack,661,1,500,10000,40000,no,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_SLOWCAST,attack,672,1,200,0,60000,yes,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_WIDESLEEP,attack,668,1,200,1000,20000,no,self,always,,,,,,,32,
+2146,Shade of Dragon@NPC_WIDESLEEP,chase,668,1,200,3000,20000,no,self,always,,,,,,,32,
+2146,Shade of Dragon@NPC_WIDESTONE,attack,666,5,10000,0,60000,yes,self,always,,,,,,,,
+2146,Shade of Dragon@NPC_WIDESTONE,chase,666,2,1000,0,60000,yes,self,always,,,,,,,,
+2146,Shade of Dragon@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,,,,,,,,
+2146,Shade of Dragon@WZ_QUAGMIRE,attack,92,2,1000,700,5000,no,target,always,,,,,,,12,
+2146,Shade of Dragon@WZ_QUAGMIRE,chase,92,2,1000,700,5000,no,target,always,,,,,,,12,
+2151,Rafflesia Arnoldi@AL_HEAL,attack,28,8,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
+2151,Rafflesia Arnoldi@AL_HEAL,attack,28,8,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+2151,Rafflesia Arnoldi@MG_SOULSTRIKE,attack,13,3,500,500,5000,yes,target,always,,,,,,,12,
+2151,Rafflesia Arnoldi@NPC_GROUNDATTACK,attack,185,3,500,500,5000,no,target,always,,,,,,,,
+2151,Rafflesia Arnoldi@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,,,,,,,,
+2152,Comodo@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,,
+2152,Comodo@KN_SPEARSTAB,attack,58,3,500,800,5000,yes,target,always,,,,,,,6,
+2152,Comodo@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2152,Comodo@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,always,,28,,,,,,
+2152,Comodo@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,always,,28,,,,,,
+2152,Comodo@NPC_GROUNDATTACK,attack,185,5,500,500,5000,yes,target,always,,,,,,,,
+2152,Comodo@NPC_POISON,attack,176,5,2000,0,5000,yes,target,always,,,,,,,,
+2152,Comodo@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,,,,,,,,
+2153,Cendrawasih@AL_INCAGI,chase,29,5,500,700,5000,no,self,always,,,,,,,30,
+2153,Cendrawasih@AL_PNEUMA,attack,25,1,500,0,5000,yes,self,longrangeattacked,,,,,,,18,
2153,Cendrawasih@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2153,Cendrawasih@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2153,Cendrawasih@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2153,Cendrawasih@NPC_AGIUP,chase,350,5,2000,0,120000,yes,self,myhpltmaxrate,40,,,,,,6,
-2153,Cendrawasih@NPC_AGIUP,attack,350,5,2000,0,120000,yes,self,myhpltmaxrate,40,,,,,,6,
-2153,Cendrawasih@NPC_ALLHEAL,idle,687,1,10000,10000,5000,yes,self,myhpltmaxrate,80,,,,,,,
-2153,Cendrawasih@NPC_ALLHEAL,chase,687,1,10000,10000,5000,yes,self,myhpltmaxrate,80,,,,,,,
-2153,Cendrawasih@NPC_ALLHEAL,attack,687,1,10000,10000,5000,yes,self,myhpltmaxrate,80,,,,,,,
-2153,Cendrawasih@NPC_HELLJUDGEMENT,chase,662,3,10000,800,5000,no,self,always,0,,,,,,,
-2153,Cendrawasih@NPC_HELLJUDGEMENT,attack,662,3,10000,800,5000,no,self,always,0,,,,,,,
-2153,Cendrawasih@SA_LANDPROTECTOR,attack,288,1,10000,500,15000,no,target,always,0,,,,,,,
-2153,Cendrawasih@AL_PNEUMA,chase,25,1,1000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2153,Cendrawasih@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,0,,,,,,6,
-2153,Cendrawasih@LK_SPIRALPIERCE,chase,397,5,2000,800,5000,no,target,always,0,,,,,,,
-2153,Cendrawasih@LK_SPIRALPIERCE,attack,397,5,2000,800,5000,no,target,always,0,,,,,,,
-2153,Cendrawasih@NPC_PULSESTRIKE,attack,661,5,2000,0,5000,no,self,always,0,,,,,,7,
-2153,Cendrawasih@NPC_SHIELDBRAKE,attack,346,5,1000,0,15000,yes,target,always,0,,,,,,,
-2153,Cendrawasih@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-2154,Banaspaty@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-2154,Banaspaty@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-2154,Banaspaty@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,0,,,,,,,
-2154,Banaspaty@WZ_SIGHTRASHER,attack,81,7,1000,500,5000,no,target,always,0,,,,,,,
-2154,Banaspaty@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-2155,Butoijo@WZ_FIREPILLAR,idle,80,5,10000,0,30000,yes,around2,always,0,,,,,,,
-2155,Butoijo@NPC_SLEEPATTACK,chase,182,5,2000,0,5000,yes,target,always,0,,,,,,29,
-2155,Butoijo@NPC_SLEEPATTACK,attack,182,5,2000,0,5000,yes,target,always,0,,,,,,29,
-2155,Butoijo@NPC_SILENCEATTACK,chase,178,5,1000,0,5000,yes,target,always,0,,,,,,,
-2155,Butoijo@NPC_SILENCEATTACK,attack,178,5,1000,0,5000,yes,target,always,0,,,,,,,
-2155,Butoijo@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
+2153,Cendrawasih@LK_SPIRALPIERCE,attack,397,5,500,1000,10000,no,target,myhpltmaxrate,80,,,,,,36,
+2153,Cendrawasih@NPC_ALLHEAL,idle,687,1,10000,10000,30000,yes,self,myhpltmaxrate,60,,,,,,,
+2153,Cendrawasih@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2153,Cendrawasih@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,,,,,,,,
+2153,Cendrawasih@NPC_HELLJUDGEMENT,attack,662,5,10000,700,15000,no,self,always,,,,,,,,
+2153,Cendrawasih@NPC_HELLJUDGEMENT,chase,662,5,10000,700,15000,no,self,always,,,,,,,,
+2153,Cendrawasih@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2153,Cendrawasih@NPC_SHIELDBRAKE,attack,346,10,500,0,5000,yes,target,always,,,,,,,6,
+2153,Cendrawasih@NPC_SUMMONSLAVE,idle,196,1,500,2000,60000,no,self,slavele,0,,,,,,,
+2153,Cendrawasih@SA_LANDPROTECTOR,attack,288,1,10000,500,10000,no,target,myhpltmaxrate,80,,,,,,32,
+2154,Banaspaty@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,no,target,always,,,,,,,6,
+2154,Banaspaty@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+2154,Banaspaty@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,18,
+2154,Banaspaty@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,18,
+2154,Banaspaty@RG_STRIPWEAPON,attack,215,5,500,0,30000,yes,target,always,,,,,,,,
+2154,Banaspaty@WZ_SIGHTRASHER,attack,81,7,1000,1000,5000,no,self,always,,,,,,,,
+2155,Butoijo@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0081,,,,,
+2155,Butoijo@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+2155,Butoijo@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+2155,Butoijo@NPC_SILENCEATTACK,attack,178,5,500,700,5000,no,target,always,,,,,,,9,
+2155,Butoijo@NPC_SILENCEATTACK,chase,178,5,500,700,5000,no,target,always,,,,,,,9,
+2155,Butoijo@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,9,
+2155,Butoijo@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,,,,,,,9,
+2155,Butoijo@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,,,,,,,,
+2155,Butoijo@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,,,,,,,9,
+2156,Leak@AL_HEAL,attack,28,9,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,18,
+2156,Leak@AL_PNEUMA,attack,25,1,500,0,5000,yes,self,longrangeattacked,,,,,,,18,
2156,Leak@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2156,Leak@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
2156,Leak@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2156,Leak@AL_HEAL,idle,28,11,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
-2156,Leak@AL_HEAL,chase,28,11,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
-2156,Leak@AL_HEAL,attack,28,11,10000,500,5000,no,self,myhpltmaxrate,30,,,,,,,
-2156,Leak@RG_STRIPWEAPON,attack,215,5,2000,0,5000,no,target,always,0,,,,,,18,
-2156,Leak@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-2156,Leak@NPC_SLOWCAST,attack,672,5,2000,0,30000,yes,self,always,0,,,,,,,
-2156,Leak@NPC_PULSESTRIKE,attack,661,5,10000,0,30000,yes,self,always,0,,,,,,32,
-2156,Leak@SA_LANDPROTECTOR,attack,288,1,10000,0,30000,yes,target,always,0,,,,,,,
-2156,Leak@NPC_HELLJUDGEMENT,chase,662,5,10000,0,30000,no,self,always,0,,,,,,6,
-2156,Leak@NPC_HELLJUDGEMENT,attack,662,5,10000,0,30000,no,self,always,0,,,,,,6,
-2156,Leak@NPC_DRAGONFEAR,chase,659,5,10000,0,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_DRAGONFEAR,attack,659,5,10000,0,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDECURSE,chase,677,5,10000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDECURSE,attack,677,5,10000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDESILENCE,chase,663,5,10000,500,20000,no,self,always,0,,,,,,32,
-2156,Leak@NPC_WIDESILENCE,attack,663,5,10000,500,20000,no,self,always,0,,,,,,32,
-2156,Leak@NPC_WIDEBLEEDING,chase,665,5,5000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDEBLEEDING,attack,665,5,5000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDESTUN,chase,678,5,2000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDESTUN,attack,678,5,2000,500,20000,no,self,always,0,,,,,,,
-2156,Leak@NPC_WIDESLEEP,chase,668,5,2000,500,20000,no,self,always,0,,,,,,36,
-2156,Leak@NPC_WIDESLEEP,attack,668,5,2000,500,20000,no,self,always,0,,,,,,36,
-2156,Leak@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2156,Leak@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2156,Leak@NPC_SUMMONSLAVE,chase,196,5,10000,700,10000,no,self,slavele,3,2157,,,,,,
-2156,Leak@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2157,,,,,,
-2156,Leak@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2157,,,,,,
-2156,Leak@NPC_SUMMONSLAVE,idle,196,5,10000,0,0,no,self,onspawn,0,2154,,,,,,
-2157,Banaspaty@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-2157,Banaspaty@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,0,,,,,,6,
-2157,Banaspaty@MG_FIREBALL,chase,17,9,500,0,5000,yes,target,always,0,,,,,,,
-2157,Banaspaty@WZ_SIGHTRASHER,attack,81,7,1000,500,5000,no,target,always,0,,,,,,,
-2157,Banaspaty@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-
-// Scaraba Hole Nightmare Mode
-2161,Gold One-Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2161,Gold One-Horn Scaraba@RG_STRIPHELM,attack,218,5,10000,0,15000,yes,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_HELMBRAKE,attack,345,10,500,0,15000,yes,target,always,0,,,,,,19,
-2161,Gold One-Horn Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_BLEEDING,attack,660,2,500,500,3000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,6,
-2161,Gold One-Horn Scaraba@NPC_COMBOATTACK,attack,171,2,1000,700,5000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2161,Gold One-Horn Scaraba@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,20,1000,0,300000,yes,self,always,0,,,,,,2,
-2161,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,chase,91,20,1000,1000,5000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,attack,91,20,1000,1000,5000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,chase,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2161,Gold One-Horn Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2162,Gold Two-Horn Scaraba@RG_STRIPSHIELD,attack,216,5,10000,0,15000,yes,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_SHIELDBRAKE,attack,346,10,500,0,15000,yes,target,always,0,,,,,,19,
-2162,Gold Two-Horn Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_BLEEDING,attack,660,2,500,500,3000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@SM_BASH,attack,5,20,1000,0,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_COMBOATTACK,attack,171,2,1000,700,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,20,1000,0,300000,yes,self,always,0,,,,,,2,
-2162,Gold Two-Horn Scaraba@MG_THUNDERSTORM,chase,21,20,1000,1000,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@MG_THUNDERSTORM,attack,21,20,1000,1000,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@MG_THUNDERSTORM,chase,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@MG_THUNDERSTORM,attack,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2162,Gold Two-Horn Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2163,Gold Antler Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@RG_STRIPARMOR,attack,217,5,10000,0,15000,yes,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_ARMORBRAKE,attack,344,10,500,0,15000,yes,target,always,0,,,,,,19,
-2163,Gold Antler Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@BS_ADRENALINE,chase,111,10,1000,1500,300000,no,self,always,0,,,,,,6,
-2163,Gold Antler Scaraba@BS_ADRENALINE,attack,111,10,1000,1500,300000,no,self,always,0,,,,,,6,
-2163,Gold Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,6,
-2163,Gold Antler Scaraba@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-2163,Gold Antler Scaraba@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_BLEEDING,attack,660,3,1000,0,3000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_HEAVENDRIVE,chase,91,20,5000,1000,5000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_HEAVENDRIVE,attack,91,20,5000,1000,5000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_HEAVENDRIVE,chase,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2163,Gold Antler Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2164,Gold Rake Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@RG_STRIPWEAPON,attack,215,5,10000,0,15000,yes,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_WEAPONBRAKER,attack,343,10,500,0,15000,yes,target,always,0,,,,,,19,
-2164,Gold Rake Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@MC_MAMMONITE,attack,42,20,1000,800,5000,no,target,always,0,,,,,,8,
-2164,Gold Rake Scaraba@BS_HAMMERFALL,attack,110,5,1000,1500,5000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,1000,500,5000,yes,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_BLEEDING,attack,660,3,1000,0,3000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@MG_THUNDERSTORM,chase,21,20,5000,1000,5000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@MG_THUNDERSTORM,attack,21,20,5000,1000,5000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@MG_THUNDERSTORM,chase,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@MG_THUNDERSTORM,attack,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2164,Gold Rake Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-2165,Gold Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
-2165,Gold Queen Scaraba@AL_HEAL,chase,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
-2165,Gold Queen Scaraba@AL_HEAL,chase,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
-2165,Gold Queen Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2165,Gold Queen Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@AL_TELEPORT,walk,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@NPC_POWERUP,attack,349,5,10000,0,120000,no,self,myhpltmaxrate,30,,,,,,6,
-2165,Gold Queen Scaraba@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,60,,,,,,32,
-2165,Gold Queen Scaraba@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,60,,,,,,32,
-2165,Gold Queen Scaraba@KN_BRANDISHSPEAR,attack,57,20,2000,500,5000,no,target,always,0,,,,,,,
-2165,Gold Queen Scaraba@WZ_HEAVENDRIVE,chase,91,20,10000,0,5000,no,target,always,0,,,,,,,
-2165,Gold Queen Scaraba@WZ_HEAVENDRIVE,attack,91,20,10000,0,5000,no,target,always,0,,,,,,,
-2165,Gold Queen Scaraba@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,no,target,always,0,,,,,,6,
-2165,Gold Queen Scaraba@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,18,
-2165,Gold Queen Scaraba@CR_AUTOGUARD,attack,249,10,500,500,5000,no,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@NPC_STONESKIN,idle,675,3,10000,1000,30000,no,self,always,0,,,,,,6,
-2165,Gold Queen Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,always,0,,,,,,6,
-2165,Gold Queen Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,always,0,,,,,,6,
-2165,Gold Queen Scaraba@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2165,Gold Queen Scaraba@NPC_SUMMONSLAVE,chase,196,4,10000,700,10000,no,self,slavele,3,2170,2171,2172,2173,,,
-2165,Gold Queen Scaraba@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,no,self,slavele,3,2170,2171,2172,2173,,,
-2165,Gold Queen Scaraba@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,no,self,slavele,3,2170,2171,2172,2173,,,
-2165,Gold Queen Scaraba@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,2161,2162,2163,2164,,,
-2166,Gold One-Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2161,,,,,,
-2167,Gold Two-Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2162,,,,,,
-2168,Gold Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2163,,,,,,
-2169,Gold Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2164,,,,,,
-2170,Gold Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2170,Gold Antler Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@RG_STRIPARMOR,attack,217,5,10000,0,15000,yes,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_ARMORBRAKE,attack,344,10,500,0,15000,yes,target,always,0,,,,,,19,
-2170,Gold Antler Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@BS_ADRENALINE,chase,111,10,1000,1500,300000,no,self,always,0,,,,,,6,
-2170,Gold Antler Scaraba@BS_ADRENALINE,attack,111,10,1000,1500,300000,no,self,always,0,,,,,,6,
-2170,Gold Antler Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,6,
-2170,Gold Antler Scaraba@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
-2170,Gold Antler Scaraba@NPC_STUNATTACK,attack,179,3,1000,1500,5000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_BLEEDING,attack,660,3,1000,0,3000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_HEAVENDRIVE,chase,91,20,5000,1000,5000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_HEAVENDRIVE,attack,91,20,5000,1000,5000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_HEAVENDRIVE,chase,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2170,Gold Antler Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2171,Gold Rake Scaraba@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@RG_STRIPWEAPON,attack,215,5,10000,0,15000,yes,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_WEAPONBRAKER,attack,343,10,500,0,15000,yes,target,always,0,,,,,,19,
-2171,Gold Rake Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@MC_MAMMONITE,attack,42,20,1000,800,5000,no,target,always,0,,,,,,8,
-2171,Gold Rake Scaraba@BS_HAMMERFALL,attack,110,5,1000,1500,5000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_GROUNDATTACK,attack,185,3,1000,500,5000,yes,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_BLEEDING,attack,660,3,1000,0,3000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@MG_THUNDERSTORM,chase,21,20,5000,1000,5000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@MG_THUNDERSTORM,attack,21,20,5000,1000,5000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@MG_THUNDERSTORM,chase,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@MG_THUNDERSTORM,attack,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2171,Gold Rake Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2172,Gold One-Horn Scaraba@RG_STRIPHELM,attack,218,5,10000,0,15000,yes,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_HELMBRAKE,attack,345,10,500,0,15000,yes,target,always,0,,,,,,19,
-2172,Gold One-Horn Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_BLEEDING,attack,660,2,500,500,3000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,0,,,,,,6,
-2172,Gold One-Horn Scaraba@NPC_COMBOATTACK,attack,171,2,1000,700,5000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2172,Gold One-Horn Scaraba@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,20,1000,0,300000,yes,self,always,0,,,,,,2,
-2172,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,chase,91,20,1000,1000,5000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,attack,91,20,1000,1000,5000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,chase,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,500,5000,no,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2172,Gold One-Horn Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2173,Gold Two-Horn Scaraba@RG_STRIPSHIELD,attack,216,5,10000,0,15000,yes,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_SHIELDBRAKE,attack,346,10,500,0,15000,yes,target,always,0,,,,,,19,
-2173,Gold Two-Horn Scaraba@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_BLEEDING,attack,660,2,500,500,3000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@SM_BASH,attack,5,20,1000,0,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_COMBOATTACK,attack,171,2,1000,700,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,20,1000,0,300000,yes,self,always,0,,,,,,2,
-2173,Gold Two-Horn Scaraba@MG_THUNDERSTORM,chase,21,20,1000,1000,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@MG_THUNDERSTORM,attack,21,20,1000,1000,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@MG_THUNDERSTORM,chase,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@MG_THUNDERSTORM,attack,21,5,5000,500,5000,no,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,10000,0,5000,yes,target,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,idle,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,chase,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_WIDECONFUSE,attack,667,3,10000,0,10000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_STONESKIN,idle,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_STONESKIN,chase,675,3,10000,0,30000,yes,self,always,0,,,,,,,
-2173,Gold Two-Horn Scaraba@NPC_STONESKIN,attack,675,3,10000,0,30000,yes,self,always,0,,,,,,,
+2156,Leak@LK_SPIRALPIERCE,attack,397,5,500,1000,10000,no,target,myhpltmaxrate,80,,,,,,36,
+2156,Leak@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2156,Leak@NPC_CALLSLAVE,attack,352,1,10000,0,15000,yes,self,always,,,,,,,,
+2156,Leak@NPC_CALLSLAVE,idle,352,1,10000,0,15000,yes,self,always,,,,,,,,
+2156,Leak@NPC_CALLSLAVE,chase,352,1,10000,0,15000,yes,self,always,,,,,,,,
+2156,Leak@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2156,Leak@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+2156,Leak@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,,,,,,,6,
+2156,Leak@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2156,Leak@NPC_EXPULSION,attack,674,1,100,1000,30000,no,target,always,,,,,,,,
+2156,Leak@NPC_HELLJUDGEMENT,attack,662,5,10000,700,15000,no,self,always,,,,,,,,
+2156,Leak@NPC_HELLJUDGEMENT,chase,662,5,10000,700,15000,no,self,always,,,,,,,,
+2156,Leak@NPC_PULSESTRIKE,attack,661,5,2000,500,5000,no,self,always,,,,,,,7,
+2156,Leak@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2156,Leak@NPC_SHIELDBRAKE,attack,346,10,500,0,5000,yes,target,always,,,,,,,6,
+2156,Leak@NPC_SUMMONSLAVE,attack,196,5,10000,0,10000,yes,self,slavele,3,2157,,,,,,
+2156,Leak@NPC_SUMMONSLAVE,idle,196,5,10000,0,10000,yes,self,slavele,3,2157,,,,,,
+2156,Leak@NPC_SUMMONSLAVE,chase,196,5,10000,0,10000,yes,self,slavele,3,2157,,,,,,
+2156,Leak@NPC_WIDESILENCE,attack,663,5,2000,500,5000,no,self,always,,,,,,,,
+2156,Leak@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2156,Leak@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2156,Leak@NPC_WIDESLEEP,attack,668,5,2000,500,5000,no,self,always,,,,,,,2,
+2156,Leak@SA_LANDPROTECTOR,attack,288,1,10000,500,10000,no,target,myhpltmaxrate,80,,,,,,32,
+2157,Banaspaty@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,,,,,,,6,
+2157,Banaspaty@NPC_FIREATTACK,attack,186,3,500,500,5000,yes,target,always,,,,,,,,
+2157,Banaspaty@NPC_HALLUCINATION,attack,207,1,500,500,5000,yes,target,always,,,,,,,18,
+2157,Banaspaty@NPC_HALLUCINATION,chase,207,1,500,500,5000,yes,target,always,,,,,,,18,
+2157,Banaspaty@RG_STRIPWEAPON,attack,215,5,500,0,30000,yes,target,always,,,,,,,,
+2157,Banaspaty@WZ_SIGHTRASHER,attack,81,7,1000,1000,5000,yes,self,always,,,,,,,,
+2158,Hornet@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,6,
+2158,Hornet@NPC_POISONATTACK,attack,188,1,2000,500,5000,no,target,always,,,,,,,,
+2158,Hornet@NPC_WINDATTACK,attack,187,1,2000,0,5000,yes,target,always,,,,,,,,
+2159,Giant Hornet@NPC_BLEEDING,attack,660,2,200,0,3000,yes,target,always,,,,,,,32,
+2159,Giant Hornet@NPC_PIERCINGATT,attack,158,4,500,0,5000,yes,target,always,,,,,,,6,
+2159,Giant Hornet@NPC_POISONATTACK,attack,188,2,2000,500,5000,no,target,always,,,,,,,,
+2159,Giant Hornet@NPC_SILENCEATTACK,chase,178,3,500,700,5000,no,target,always,,,,,,,,
+2159,Giant Hornet@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,always,,,,,,,6,
+2159,Giant Hornet@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,6,
+2160,Luciola Vespa@NPC_BLEEDING,attack,660,3,200,0,3000,yes,target,always,,,,,,,32,
+2160,Luciola Vespa@NPC_COMBOATTACK,attack,171,1,3000,0,5000,yes,target,always,,,,,,,,
+2160,Luciola Vespa@NPC_PIERCINGATT,attack,158,5,500,0,5000,yes,target,always,,,,,,,6,
+2160,Luciola Vespa@NPC_POISONATTACK,attack,188,3,2000,500,5000,no,target,always,,,,,,,,
+2160,Luciola Vespa@NPC_PULSESTRIKE,attack,661,1,1000,0,30000,yes,self,always,,,,,,,32,
+2161,Uni Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2161,Uni Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2161,Uni Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2161,Uni Horn Scaraba@MG_STONECURSE,attack,16,5,200,500,15000,no,target,myhpltmaxrate,60,,,,,,6,
+2161,Uni Horn Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,myhpltmaxrate,99,,,,,,,
+2161,Uni Horn Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,29,
+2161,Uni Horn Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2161,Uni Horn Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2161,Uni Horn Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2161,Uni Horn Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2161,Uni Horn Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2161,Uni Horn Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3295,,,,,
+2161,Uni Horn Scaraba@NPC_HELMBRAKE,attack,345,10,10000,0,25000,no,target,always,,,,,,,,
+2161,Uni Horn Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,no,target,myhpltmaxrate,99,,,,,,,
+2161,Uni Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2161,Uni Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2161,Uni Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2161,Uni Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2161,Uni Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2161,Uni Horn Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2161,Uni Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2161,Uni Horn Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2161,Uni Horn Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2161,Uni Horn Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2161,Uni Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2161,Uni Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2161,Uni Horn Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2162,Horn Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2162,Horn Scaraba@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2162,Horn Scaraba@MG_STONECURSE,attack,16,5,200,500,15000,no,target,myhpltmaxrate,60,,,,,,6,
+2162,Horn Scaraba@MG_THUNDERSTORM,chase,21,10,500,1000,5000,no,target,always,,,,,,,,
+2162,Horn Scaraba@MG_THUNDERSTORM,chase,21,4,4000,500,5000,no,target,always,,,,,,,,
+2162,Horn Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,myhpltmaxrate,99,,,,,,29,
+2162,Horn Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2162,Horn Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2162,Horn Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2162,Horn Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2162,Horn Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2162,Horn Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3295,,,,,
+2162,Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2162,Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2162,Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2162,Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2162,Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2162,Horn Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2162,Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2162,Horn Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2162,Horn Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2162,Horn Scaraba@RG_STRIPSHIELD,attack,216,5,10000,0,25000,no,target,always,,,,,,,,
+2162,Horn Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2162,Horn Scaraba@SM_BASH,attack,5,5,500,0,5000,no,target,myhpltmaxrate,99,,,,,,,
+2162,Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2162,Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2162,Horn Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2163,Antler Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2163,Antler Scaraba@BS_MAXIMIZE,attack,114,10,500,1500,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2163,Antler Scaraba@MG_THUNDERSTORM,chase,21,10,1000,1000,5000,no,target,always,,,,,,,,
+2163,Antler Scaraba@MG_THUNDERSTORM,chase,21,4,4000,500,5000,no,target,always,,,,,,,,
+2163,Antler Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2163,Antler Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2163,Antler Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2163,Antler Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2163,Antler Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2163,Antler Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3295,,,,,
+2163,Antler Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2163,Antler Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2163,Antler Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2163,Antler Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2163,Antler Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2163,Antler Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2163,Antler Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2163,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,myhpltmaxrate,99,,,,,,6,
+2163,Antler Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2163,Antler Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2163,Antler Scaraba@RG_STRIPARMOR,attack,217,1,10000,0,25000,no,target,always,,,,,,,,
+2163,Antler Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2163,Antler Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2163,Antler Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2163,Antler Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,429,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,430,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,attack,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,idle,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,walk,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2164,Rake Scaraba@AL_TELEPORT,chase,26,1,10000,0,5000,no,self,skillused,428,,,,,,,
+2164,Rake Scaraba@BS_HAMMERFALL,attack,110,5,5000,500,5000,no,target,myhpltmaxrate,99,,,,,,,
+2164,Rake Scaraba@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2164,Rake Scaraba@MC_MAMMONITE,attack,42,10,500,0,5000,no,target,myhpltmaxrate,99,,,,,,8,
+2164,Rake Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,29,
+2164,Rake Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2164,Rake Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2164,Rake Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2164,Rake Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2164,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2164,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3295,,,,,
+2164,Rake Scaraba@NPC_PULSESTRIKE,attack,661,2,2000,0,30000,yes,self,myhpltmaxrate,60,,,,,,32,
+2164,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2164,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2164,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2164,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2164,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2164,Rake Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2164,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2164,Rake Scaraba@NPC_WEAPONBRAKER,attack,343,10,10000,0,25000,no,target,always,,,,,,,,
+2164,Rake Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2164,Rake Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2164,Rake Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2164,Rake Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2164,Rake Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2164,Rake Scaraba@WZ_HEAVENDRIVE,attack,91,5,2000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2165,Queen Scaraba@AL_HEAL,attack,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+2165,Queen Scaraba@AL_HEAL,chase,28,10,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3,
+2165,Queen Scaraba@AL_HEAL,attack,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+2165,Queen Scaraba@AL_HEAL,chase,28,10,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3,
+2165,Queen Scaraba@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,always,,,,,,,,
+2165,Queen Scaraba@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,always,,,,,,,,
+2165,Queen Scaraba@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2165,Queen Scaraba@HW_GANBANTEIN,attack,483,5,10000,0,5000,no,target,always,,,,,,,,
+2165,Queen Scaraba@KN_BRANDISHSPEAR,attack,57,10,2000,500,5000,no,target,always,,,,,,,,
+2165,Queen Scaraba@NPC_ARMORBRAKE,attack,344,10,10000,0,5000,no,target,myhpltmaxrate,80,,,,,,6,
+2165,Queen Scaraba@NPC_CALLSLAVE,attack,352,1,10000,0,30000,no,self,always,,,,,,,,
+2165,Queen Scaraba@NPC_CALLSLAVE,idle,352,1,10000,0,30000,no,self,always,,,,,,,,
+2165,Queen Scaraba@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,,,,,,,6,
+2165,Queen Scaraba@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,,,,,,,18,
+2165,Queen Scaraba@NPC_POWERUP,attack,349,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2165,Queen Scaraba@NPC_PULSESTRIKE,attack,661,2,2000,0,30000,yes,self,myhpltmaxrate,60,,,,,,32,
+2165,Queen Scaraba@NPC_STONESKIN,attack,675,5,500,0,10000,no,self,myhpltmaxrate,50,,,,,,6,
+2165,Queen Scaraba@NPC_STONESKIN,chase,675,5,500,0,10000,no,self,myhpltmaxrate,50,,,,,,6,
+2165,Queen Scaraba@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,no,self,slavele,3,2145,2171,2170,2172,2173,,
+2165,Queen Scaraba@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,no,self,slavele,3,2145,2171,2170,2172,2173,,
+2165,Queen Scaraba@NPC_WIDESILENCE,attack,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2165,Queen Scaraba@NPC_WIDESILENCE,chase,663,5,10000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2165,Queen Scaraba@NPC_WIDESOULDRAIN,attack,680,10,10000,2000,15000,no,self,myhpltmaxrate,50,,,,,,42,
+2165,Queen Scaraba@NPC_WIDESTONE,attack,666,3,10000,2000,25000,no,self,myhpltmaxrate,30,,,,,,42,
+2165,Queen Scaraba@SA_LANDPROTECTOR,attack,288,5,10000,0,5000,no,target,always,,,,,,,,
+2165,Queen Scaraba@ST_FULLSTRIP,attack,476,5,10000,0,1000,no,target,always,,,,,,,8,
+2165,Queen Scaraba@WZ_HEAVENDRIVE,attack,91,5,10000,0,5000,no,target,always,,,,,,,,
+2165,Queen Scaraba@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,always,,,,,,,,
+2165,Queen Scaraba@WZ_HEAVENDRIVE,chase,91,5,10000,0,5000,no,target,skillused,18,,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,2000,2000,5000,no,self,myhpltmaxrate,99,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,429,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,429,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,429,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,429,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,430,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,430,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,430,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,430,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,428,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,428,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,428,2161,,,,,,
+2166,Uni Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,428,2161,,,,,,
+2167,Horn Scaraba Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,2000,2000,5000,no,self,myhpltmaxrate,99,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,429,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,429,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,429,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,429,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,430,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,430,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,430,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,430,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,428,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,428,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,428,2162,,,,,,
+2167,Horn Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,428,2162,,,,,,
+2168,Antler Scaraba Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,2000,2000,5000,no,self,myhpltmaxrate,99,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,429,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,429,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,429,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,429,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,430,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,430,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,430,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,430,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,428,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,428,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,428,2163,,,,,,
+2168,Antler Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,428,2163,,,,,,
+2169,Rake Scaraba Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,19,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,2000,2000,5000,no,self,myhpltmaxrate,99,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,100,2000,5000,no,self,myhpltmaxrate,99,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,429,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,429,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,429,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,429,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,430,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,430,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,430,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,430,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,attack,193,1,10000,400,5000,no,self,skillused,428,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,idle,193,1,10000,400,5000,no,self,skillused,428,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,walk,193,1,10000,400,5000,no,self,skillused,428,2164,,,,,,
+2169,Rake Scaraba Egg@NPC_METAMORPHOSIS,chase,193,1,10000,400,5000,no,self,skillused,428,2164,,,,,,
+2170,Antler Scaraba@BS_MAXIMIZE,attack,114,10,500,1500,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2170,Antler Scaraba@MG_THUNDERSTORM,chase,21,10,1000,1000,5000,no,target,always,,,,,,,,
+2170,Antler Scaraba@MG_THUNDERSTORM,chase,21,4,4000,500,5000,no,target,always,,,,,,,,
+2170,Antler Scaraba@NPC_PULSESTRIKE,attack,661,2,2000,0,30000,yes,self,myhpltmaxrate,60,,,,,,32,
+2170,Antler Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2170,Antler Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2170,Antler Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2170,Antler Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2170,Antler Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2170,Antler Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2170,Antler Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2170,Antler Scaraba@NPC_STUNATTACK,attack,179,3,500,1500,5000,no,target,myhpltmaxrate,99,,,,,,6,
+2170,Antler Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2170,Antler Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2170,Antler Scaraba@NPC_WIDEFREEZE,attack,664,5,100,0,15000,no,self,always,,,,,,,6,
+2170,Antler Scaraba@RG_STRIPARMOR,attack,217,5,10000,0,1000,no,target,always,,,,,,,,
+2170,Antler Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2170,Antler Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2170,Antler Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2170,Antler Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2171,Rake Scaraba@BS_HAMMERFALL,attack,110,5,5000,500,5000,no,target,myhpltmaxrate,99,,,,,,,
+2171,Rake Scaraba@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2171,Rake Scaraba@MC_MAMMONITE,attack,42,10,500,0,5000,no,target,myhpltmaxrate,99,,,,,,8,
+2171,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,,19,0x0081,,,,,
+2171,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,6,0x3295,,,,,
+2171,Rake Scaraba@NPC_PULSESTRIKE,attack,661,2,2000,0,30000,yes,self,myhpltmaxrate,60,,,,,,32,
+2171,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2171,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2171,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2171,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2171,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2171,Rake Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2171,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2171,Rake Scaraba@NPC_WEAPONBRAKER,attack,343,10,10000,0,1000,no,target,always,,,,,,,,
+2171,Rake Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2171,Rake Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2171,Rake Scaraba@NPC_WIDEFREEZE,attack,664,5,100,0,15000,no,self,always,,,,,,,6,
+2171,Rake Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2171,Rake Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2171,Rake Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2171,Rake Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2172,Rake Scaraba@KN_TWOHANDQUICKEN,attack,60,10,10000,0,300000,no,self,myhpltmaxrate,99,,,,,,6,
+2172,Rake Scaraba@MG_STONECURSE,attack,16,5,200,500,15000,no,target,myhpltmaxrate,60,,,,,,6,
+2172,Rake Scaraba@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,myhpltmaxrate,99,,,,,,,
+2172,Rake Scaraba@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,myhpltmaxrate,99,,,,,,29,
+2172,Rake Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2172,Rake Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2172,Rake Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2172,Rake Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2172,Rake Scaraba@NPC_HELMBRAKE,attack,345,10,10000,0,1000,no,target,always,,,,,,,,
+2172,Rake Scaraba@NPC_PIERCINGATT,attack,158,3,1000,0,5000,no,target,myhpltmaxrate,99,,,,,,,
+2172,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2172,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2172,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2172,Rake Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2172,Rake Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2172,Rake Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2172,Rake Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2172,Rake Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2172,Rake Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2172,Rake Scaraba@NPC_WIDEFREEZE,attack,664,5,100,0,15000,no,self,always,,,,,,,6,
+2172,Rake Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2172,Rake Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2172,Rake Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
+2173,Horn Scaraba@MG_STONECURSE,attack,16,5,200,500,15000,no,target,myhpltmaxrate,60,,,,,,6,
+2173,Horn Scaraba@MG_THUNDERSTORM,chase,21,10,1000,1000,5000,no,target,always,,,,,,,,
+2173,Horn Scaraba@MG_THUNDERSTORM,chase,21,4,4000,500,5000,no,target,always,,,,,,,,
+2173,Horn Scaraba@NPC_DEFENDER,attack,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2173,Horn Scaraba@NPC_DEFENDER,idle,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2173,Horn Scaraba@NPC_DEFENDER,walk,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2173,Horn Scaraba@NPC_DEFENDER,chase,205,10,10000,0,5000,no,self,skillused,2008,,,,,,,
+2173,Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2173,Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2173,Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,30000,no,self,always,,,,,,,6,
+2173,Horn Scaraba@NPC_STONESKIN,attack,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2173,Horn Scaraba@NPC_STONESKIN,idle,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2173,Horn Scaraba@NPC_STONESKIN,walk,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2173,Horn Scaraba@NPC_STONESKIN,chase,675,4,10000,0,1000,no,self,casttargeted,,,,,,,,
+2173,Horn Scaraba@NPC_WIDECONFUSE,attack,667,5,1000,0,5000,no,self,always,,,,,,,6,
+2173,Horn Scaraba@NPC_WIDECONFUSE,idle,667,5,10000,0,10000,no,self,always,,,,,,,,
+2173,Horn Scaraba@NPC_WIDEFREEZE,attack,664,5,100,0,15000,no,self,always,,,,,,,6,
+2173,Horn Scaraba@RG_STRIPSHIELD,attack,216,5,10000,0,1000,no,target,always,,,,,,,,
+2173,Horn Scaraba@SA_DISPELL,attack,289,5,3000,0,15000,no,target,myhpltmaxrate,99,,,,,,,
+2173,Horn Scaraba@SM_BASH,attack,5,5,500,0,5000,no,target,myhpltmaxrate,99,,,,,,,
+2173,Horn Scaraba@WZ_EARTHSPIKE,attack,90,5,6000,0,5000,no,target,always,,,,,,,,
+2173,Horn Scaraba@WZ_EARTHSPIKE,chase,90,5,6000,0,5000,no,target,always,,,,,,,,
+2173,Horn Scaraba@WZ_HEAVENDRIVE,attack,91,5,5000,1000,5000,no,target,myhpltmaxrate,99,,,,,,,
// Malangdo Island
-2174,Vadon@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,0,,,,,,6,
-2174,Vadon@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2174,Vadon@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2174,Vadon@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-2174,Vadon@MG_FROSTDIVER,chase,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2174,Vadon@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2175,Marse@NPC_BLINDATTACK,attack,177,5,2000,0,5000,yes,target,always,0,,,,,,6,
-2175,Marse@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,1,,,,,,
-2175,Marse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x91,,,,,
-2175,Marse@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,6,
-2175,Marse@MG_FROSTDIVER,chase,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2175,Marse@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2176,Crab@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2176,Crab@MG_FROSTDIVER,chase,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2176,Crab@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,0,,,,,,,
-2177,Cornutus@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
-2177,Cornutus@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,0,,,,,,6,
-2177,Cornutus@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2177,Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
-2177,Cornutus@MG_THUNDERSTORM,chase,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2177,Cornutus@MG_THUNDERSTORM,attack,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2178,Shellfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2178,Shellfish@MG_THUNDERSTORM,chase,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2178,Shellfish@MG_THUNDERSTORM,attack,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2179,Kukre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,0,,,,,,
-2179,Kukre@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2179,Kukre@MG_THUNDERSTORM,chase,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2179,Kukre@MG_THUNDERSTORM,attack,21,9,2000,500,5000,no,target,always,0,,,,,,,
-2193,Octupus Leg@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,0,,,,,,,
-2193,Octupus Leg@NPC_WIDEBLEEDING,idle,665,5,5000,500,30000,no,self,always,0,,,,,,,
-2193,Octupus Leg@NPC_WIDEBLEEDING,chase,665,5,5000,500,30000,no,self,always,0,,,,,,,
-2193,Octupus Leg@NPC_WIDEBLEEDING,attack,665,5,5000,500,30000,no,self,always,0,,,,,,,
-2193,Octupus Leg@NPC_WIDEFREEZE,idle,664,5,10000,1000,30000,no,self,always,0,,,,,,32,
-2193,Octupus Leg@NPC_WIDEFREEZE,chase,664,5,10000,1000,30000,no,self,always,0,,,,,,32,
-2193,Octupus Leg@NPC_WIDEFREEZE,attack,664,5,10000,1000,30000,no,self,always,0,,,,,,32,
-2193,Octupus Leg@WZ_STORMGUST,chase,89,3,10000,1000,30000,no,target,always,0,,,,,,,
-2193,Octupus Leg@WZ_STORMGUST,attack,89,3,10000,1000,30000,no,target,always,0,,,,,,,
-2193,Octupus Leg@WZ_WATERBALL,chase,86,3,10000,500,5000,no,target,always,0,,,,,,,
-2193,Octupus Leg@WZ_WATERBALL,attack,86,3,10000,500,5000,no,target,always,0,,,,,,,
-2194,Giant Octupus@NPC_DRAGONFEAR,chase,659,5,10000,0,20000,no,self,myhpltmaxrate,50,,,,,,,
-2194,Giant Octupus@NPC_DRAGONFEAR,attack,659,5,10000,0,20000,no,self,myhpltmaxrate,50,,,,,,,
-2194,Giant Octupus@NPC_WIDEBLEEDING,idle,665,5,5000,500,20000,no,self,always,0,,,,,,,
-2194,Giant Octupus@NPC_WIDEBLEEDING,chase,665,5,5000,500,20000,no,self,always,0,,,,,,,
-2194,Giant Octupus@NPC_WIDEBLEEDING,attack,665,5,5000,500,20000,no,self,always,0,,,,,,,
-2194,Giant Octupus@NPC_WIDEFREEZE,idle,664,5,10000,1000,20000,no,self,always,0,,,,,,32,
-2194,Giant Octupus@NPC_WIDEFREEZE,chase,664,5,10000,1000,20000,no,self,always,0,,,,,,32,
-2194,Giant Octupus@NPC_WIDEFREEZE,attack,664,5,10000,1000,20000,no,self,always,0,,,,,,32,
-2194,Giant Octupus@WZ_STORMGUST,chase,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-2194,Giant Octupus@WZ_STORMGUST,attack,89,10,10000,1000,20000,no,target,always,0,,,,,,,
-2194,Giant Octupus@WZ_WATERBALL,chase,86,10,10000,500,5000,no,target,always,0,,,,,,,
-2194,Giant Octupus@WZ_WATERBALL,attack,86,10,10000,500,5000,no,target,always,0,,,,,,,
-2197,Red Eruma@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2198,King Dramoh@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2198,King Dramoh@NPC_BLEEDING,chase,660,1,500,0,10000,no,target,always,0,,,,,,,
-2198,King Dramoh@NPC_BLEEDING,attack,660,1,500,0,10000,no,target,always,0,,,,,,,
-2198,King Dramoh@NPC_STOP,attack,342,1,2000,500,15000,no,target,always,0,,,,,,2,
-2198,King Dramoh@NPC_STUNATTACK,chase,179,3,2000,1500,5000,no,target,always,0,,,,,,,
-2198,King Dramoh@NPC_STUNATTACK,attack,179,3,2000,1500,5000,no,target,always,0,,,,,,,
-2199,Siorava@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
+2174,Ancient Crustacea@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2174,Ancient Crustacea@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2174,Ancient Crustacea@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
+2174,Ancient Crustacea@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2174,Ancient Crustacea@ST_FULLSTRIP,attack,476,5,1000,0,5000,yes,target,always,,,,,,,6,
+2175,Deepsea Marse@AL_HEAL,attack,28,5,10000,500,5000,yes,friend,friendhpltmaxrate,70,,,,,,0,
+2175,Deepsea Marse@AL_HEAL,attack,28,5,10000,500,5000,yes,self,myhpltmaxrate,60,,,,,,0,
+2175,Deepsea Marse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0091,,,,,
+2175,Deepsea Marse@NPC_STOP,attack,342,1,200,0,600000,yes,target,always,,,,,,,3,
+2175,Deepsea Marse@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+2175,Deepsea Marse@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2177,Deepsea Cornutus@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2177,Deepsea Cornutus@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2177,Deepsea Cornutus@NPC_KEEPING,attack,201,1,2000,0,5000,yes,self,myhpltmaxrate,30,,,,,,9,
+2177,Deepsea Cornutus@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,,,,,,,6,
+2178,Deepsea Shellfish@MG_FROSTDIVER,chase,15,9,3000,500,5000,yes,target,always,,,,,,,,
+2178,Deepsea Shellfish@MG_LIGHTNINGBOLT,chase,20,5,200,1500,5000,yes,target,always,,,,,,,12,
+2178,Deepsea Shellfish@NPC_STUNATTACK,attack,179,3,500,1000,5000,no,target,always,,,,,,,6,
+2178,Deepsea Shellfish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2178,Deepsea Shellfish@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2179,Ancient Kukre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,0,,,,,,
+2179,Ancient Kukre@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2179,Ancient Kukre@ST_FULLSTRIP,attack,476,5,1000,0,5000,yes,target,always,,,,,,,6,
+2179,Ancient Kukre@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@AL_HEAL,attack,28,7,10000,500,5000,yes,friend,friendhpltmaxrate,70,,,,,,0,
+2180,Ancient Sea Lord@AL_HEAL,attack,28,7,10000,500,5000,yes,self,myhpltmaxrate,60,,,,,,0,
+2180,Ancient Sea Lord@MG_FROSTDIVER,angry,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_FROSTDIVER,attack,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_FROSTDIVER,follow,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_LIGHTNINGBOLT,angry,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_LIGHTNINGBOLT,attack,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_LIGHTNINGBOLT,follow,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+2180,Ancient Sea Lord@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+2180,Ancient Sea Lord@NPC_STOP,attack,342,1,200,0,600000,yes,target,always,,,,,,,3,
+2180,Ancient Sea Lord@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2180,Ancient Sea Lord@WZ_FROSTNOVA,chase,88,7,3000,1000,10000,no,self,always,,,,,,,,
+2180,Ancient Sea Lord@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+2181,Ancient Sword Fish@NPC_CRITICALWOUND,attack,673,5,200,0,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,7,
+2181,Ancient Sword Fish@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@WZ_WATERBALL,angry,86,3,500,1500,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,,,,,,,,
+2181,Ancient Sword Fish@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,,
+2182,Ancient Seahorse@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+2182,Ancient Seahorse@NPC_CRITICALWOUND,attack,673,5,200,0,5000,yes,target,always,,,,,,,,
+2182,Ancient Seahorse@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2182,Ancient Seahorse@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2182,Ancient Seahorse@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+2182,Ancient Seahorse@NPC_EVILLAND,attack,670,10,10000,0,15000,yes,self,myhpltmaxrate,50,,,,,,,
+2182,Ancient Seahorse@NPC_STUNATTACK,angry,179,2,500,1500,5000,no,target,always,,,,,,,6,
+2182,Ancient Seahorse@NPC_STUNATTACK,attack,179,2,500,1500,5000,no,target,always,,,,,,,6,
+2182,Ancient Seahorse@NPC_WATERATTACK,angry,184,2,500,500,5000,no,target,always,,,,,,,6,
+2182,Ancient Seahorse@NPC_WATERATTACK,attack,184,2,500,500,5000,no,target,always,,,,,,,6,
+2182,Ancient Seahorse@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2183,Mutant Anolian@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+2183,Mutant Anolian@NPC_CRITICALWOUND,attack,673,2,200,0,5000,yes,target,always,,,,,,,,
+2183,Mutant Anolian@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2183,Mutant Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3695,,,,,
+2183,Mutant Anolian@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+2183,Mutant Anolian@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2183,Mutant Anolian@SM_BASH,attack,5,5,500,800,5000,no,target,always,,,,,,,2,
+2184,Deepsea Mermaid@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2184,Deepsea Mermaid@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,2,0x3095,,,,,
+2184,Deepsea Mermaid@NPC_STOP,attack,342,1,100,0,600000,yes,target,always,,,,,,,3,
+2184,Deepsea Mermaid@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,6,
+2184,Deepsea Mermaid@PR_LEXDIVINA,attack,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+2184,Deepsea Mermaid@PR_LEXDIVINA,chase,76,5,500,1000,5000,yes,target,always,,,,,,,2,
+2184,Deepsea Mermaid@ST_FULLSTRIP,attack,476,5,1000,0,5000,yes,target,always,,,,,,,6,
+2184,Deepsea Mermaid@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2185,Transform Kapha@MC_MAMMONITE,attack,42,5,500,800,5000,no,target,always,,,,,,,8,
+2185,Transform Kapha@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2185,Transform Kapha@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2185,Transform Kapha@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+2185,Transform Kapha@NPC_PIERCINGATT,attack,158,3,1000,0,5000,yes,target,always,,,,,,,,
+2185,Transform Kapha@NPC_WATERATTACK,angry,184,3,500,500,5000,yes,target,always,,,,,,,6,
+2185,Transform Kapha@NPC_WATERATTACK,attack,184,3,500,500,5000,yes,target,always,,,,,,,6,
+2185,Transform Kapha@ST_FULLSTRIP,attack,476,5,1000,0,5000,yes,target,always,,,,,,,6,
+2185,Transform Kapha@WZ_WATERBALL,follow,86,3,500,1500,5000,yes,target,always,,,,,,,16,
+2185,Transform Kapha@WZ_WATERBALL,chase,86,3,500,1500,5000,yes,target,always,,,,,,,16,
+2186,Coelacanth@AL_DECAGI,chase,30,10,2000,0,60000,yes,target,always,,,,,,,29,
+2186,Coelacanth@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+2186,Coelacanth@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
+2186,Coelacanth@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2186,Coelacanth@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2186,Coelacanth@NPC_AGIUP,attack,350,10,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2186,Coelacanth@NPC_ARMORBRAKE,attack,344,10,2000,0,60000,yes,target,always,,,,,,,,
+2186,Coelacanth@NPC_CRITICALWOUND,attack,673,1,200,0,5000,yes,target,always,,,,,,,,
+2186,Coelacanth@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2186,Coelacanth@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+2186,Coelacanth@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2186,Coelacanth@NPC_WATERATTACK,chase,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2186,Coelacanth@NPC_WIDEBLEEDING,attack,665,1,10000,500,100000,yes,self,always,,,,,,,,
+2186,Coelacanth@NPC_WIDEBLEEDING,chase,665,1,10000,500,100000,yes,self,always,,,,,,,,
+2186,Coelacanth@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2186,Coelacanth@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2186,Coelacanth@WZ_WATERBALL,attack,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2186,Coelacanth@WZ_WATERBALL,chase,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2187,Dark Coelacanth@AL_DECAGI,chase,30,10,2000,0,60000,yes,target,always,,,,,,,29,
+2187,Dark Coelacanth@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@HW_GANBANTEIN,attack,483,1,10000,500,7000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@NPC_AGIUP,attack,350,10,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2187,Dark Coelacanth@NPC_ARMORBRAKE,attack,344,10,2000,0,60000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@NPC_CRITICALWOUND,attack,673,3,200,0,5000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,3,2195,,,,,,
+2187,Dark Coelacanth@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,3,2195,,,,,,
+2187,Dark Coelacanth@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2187,Dark Coelacanth@NPC_WATERATTACK,chase,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2187,Dark Coelacanth@NPC_WIDEBLEEDING,attack,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@NPC_WIDEBLEEDING,chase,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2187,Dark Coelacanth@WZ_JUPITEL,attack,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@WZ_JUPITEL,chase,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2187,Dark Coelacanth@WZ_WATERBALL,attack,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2187,Dark Coelacanth@WZ_WATERBALL,chase,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2188,Grotesque Coelacanth@AL_DECAGI,chase,30,10,2000,0,60000,yes,target,always,,,,,,,29,
+2188,Grotesque Coelacanth@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@HW_GANBANTEIN,attack,483,1,10000,500,7000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_AGIUP,attack,350,10,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,6,
+2188,Grotesque Coelacanth@NPC_ARMORBRAKE,attack,344,10,2000,0,60000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_CRITICALWOUND,attack,673,3,200,0,5000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,3,2195,,,,,,
+2188,Grotesque Coelacanth@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,3,2195,,,,,,
+2188,Grotesque Coelacanth@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2188,Grotesque Coelacanth@NPC_WATERATTACK,chase,184,5,2000,0,5000,yes,target,always,,,,,,,29,
+2188,Grotesque Coelacanth@NPC_WIDEBLEEDING,attack,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@NPC_WIDEBLEEDING,chase,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2188,Grotesque Coelacanth@WZ_JUPITEL,attack,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@WZ_JUPITEL,chase,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2188,Grotesque Coelacanth@WZ_WATERBALL,attack,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2188,Grotesque Coelacanth@WZ_WATERBALL,chase,86,10,2000,500,5000,yes,target,always,,,,,,,0,
+2189,Mutant Coelacanth@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2189,Mutant Coelacanth@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@HW_GANBANTEIN,attack,483,1,10000,500,7000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@MG_FROSTDIVER,idle,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@MG_FROSTDIVER,chase,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2189,Mutant Coelacanth@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+2189,Mutant Coelacanth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_CRITICALWOUND,attack,673,4,200,0,5000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,20,,,,,,,
+2189,Mutant Coelacanth@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_SUMMONSLAVE,attack,196,1,10000,700,30000,yes,self,slavele,3,2196,,,,,,
+2189,Mutant Coelacanth@NPC_SUMMONSLAVE,idle,196,1,10000,700,30000,yes,self,slavele,3,2196,,,,,,
+2189,Mutant Coelacanth@NPC_WATERATTACK,attack,184,10,1000,500,5000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_WIDEBLEEDING,attack,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_WIDEBLEEDING,chase,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@NPC_WIDEFREEZE,attack,664,5,10000,0,30000,yes,self,myhpltmaxrate,80,,,,,,32,
+2189,Mutant Coelacanth@NPC_WIDEFREEZE,chase,664,5,10000,0,30000,yes,self,myhpltmaxrate,80,,,,,,32,
+2189,Mutant Coelacanth@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_JUPITEL,attack,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_JUPITEL,chase,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2189,Mutant Coelacanth@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2190,Ferocious Coelacanth@BS_MAXIMIZE,attack,114,1,500,0,5000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@BS_MAXIMIZE,chase,114,1,500,0,5000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@HW_GANBANTEIN,attack,483,1,10000,500,7000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@MG_FROSTDIVER,idle,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@MG_FROSTDIVER,chase,15,10,5000,1000,7000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_AGIUP,attack,350,5,10000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2190,Ferocious Coelacanth@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+2190,Ferocious Coelacanth@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_CRITICALWOUND,attack,673,4,200,0,5000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_GUIDEDATTACK,chase,172,5,500,0,20000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_POWERUP,attack,349,5,10000,0,25000,yes,self,myhpltmaxrate,20,,,,,,,
+2190,Ferocious Coelacanth@NPC_RANDOMATTACK,attack,183,8,1000,500,5000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_SUMMONSLAVE,attack,196,1,10000,700,30000,yes,self,slavele,3,2196,,,,,,
+2190,Ferocious Coelacanth@NPC_SUMMONSLAVE,idle,196,1,10000,700,30000,yes,self,slavele,3,2196,,,,,,
+2190,Ferocious Coelacanth@NPC_WATERATTACK,attack,184,10,1000,500,5000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_WIDEBLEEDING,attack,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_WIDEBLEEDING,chase,665,3,10000,500,100000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@NPC_WIDEFREEZE,attack,664,5,10000,0,30000,yes,self,myhpltmaxrate,80,,,,,,32,
+2190,Ferocious Coelacanth@NPC_WIDEFREEZE,chase,664,5,10000,0,30000,yes,self,myhpltmaxrate,80,,,,,,32,
+2190,Ferocious Coelacanth@SA_DISPELL,attack,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@SA_DISPELL,chase,289,5,10000,0,15000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,yes,self,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_JUPITEL,attack,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_JUPITEL,chase,84,10,3000,1000,10000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_WATERBALL,attack,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2190,Ferocious Coelacanth@WZ_WATERBALL,chase,86,10,5000,0,20000,yes,target,always,,,,,,,,
+2191,Seaweed@AL_HEAL,attack,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,3,
+2191,Seaweed@NPC_INVINCIBLE,idle,685,1,10000,0,60000,no,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDEBLEEDING,attack,665,1,10000,500,100000,no,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDEBLEEDING,chase,665,1,10000,500,100000,no,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDEFREEZE,attack,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2193,Octopus Leg@NPC_WIDEFREEZE,chase,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2193,Octopus Leg@NPC_WIDESILENCE,attack,663,1,10000,700,25000,yes,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDESILENCE,chase,663,1,10000,1000,20000,no,self,always,,,,,,,32,
+2193,Octopus Leg@NPC_WIDESLEEP,attack,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDESLEEP,chase,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2193,Octopus Leg@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2193,Octopus Leg@NPC_WIDESTUN,attack,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2193,Octopus Leg@NPC_WIDESTUN,chase,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2194,Giant Octopus@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2194,Giant Octopus@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2194,Giant Octopus@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2194,Giant Octopus@NPC_DRAGONFEAR,attack,659,5,10000,0,30000,yes,self,myhpltmaxrate,70,,,,,,,
+2194,Giant Octopus@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,20,,,,,,,
+2194,Giant Octopus@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2194,Giant Octopus@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2194,Giant Octopus@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2194,Giant Octopus@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2194,Giant Octopus@NPC_WIDEBLEEDING,attack,665,1,10000,500,100000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDEBLEEDING,chase,665,1,10000,500,100000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDEFREEZE,attack,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2194,Giant Octopus@NPC_WIDEFREEZE,chase,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2194,Giant Octopus@NPC_WIDESILENCE,attack,663,1,10000,700,25000,yes,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDESILENCE,chase,663,1,10000,1000,20000,no,self,always,,,,,,,32,
+2194,Giant Octopus@NPC_WIDESLEEP,attack,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDESLEEP,chase,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2194,Giant Octopus@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2194,Giant Octopus@NPC_WIDESTUN,attack,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2194,Giant Octopus@NPC_WIDESTUN,chase,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2194,Giant Octopus@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,,,,,,,,
+2194,Giant Octopus@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,,,,,,,,
+2194,Giant Octopus@WZ_WATERBALL,attack,86,10,10000,500,25000,no,target,always,,,,,,,0,
+2194,Giant Octopus@WZ_WATERBALL,chase,86,10,10000,500,25000,no,target,always,,,,,,,0,
+2195,Ancient Kukre@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,0,,,,,,
+2195,Ancient Kukre@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2195,Ancient Kukre@ST_FULLSTRIP,attack,476,5,1000,0,5000,yes,target,always,,,,,,,6,
+2195,Ancient Kukre@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@AL_HEAL,attack,28,7,10000,500,5000,yes,friend,friendhpltmaxrate,70,,,,,,0,
+2196,Ancient Sea Lord@AL_HEAL,attack,28,7,10000,500,5000,yes,self,myhpltmaxrate,60,,,,,,0,
+2196,Ancient Sea Lord@MG_FROSTDIVER,angry,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@MG_FROSTDIVER,attack,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@MG_FROSTDIVER,follow,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@MG_LIGHTNINGBOLT,attack,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@NPC_BLEEDING,attack,660,3,2000,0,3000,yes,target,always,,,,,,,32,
+2196,Ancient Sea Lord@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+2196,Ancient Sea Lord@NPC_STOP,attack,342,1,200,0,600000,yes,target,always,,,,,,,3,
+2196,Ancient Sea Lord@NPC_WATERATTACK,angry,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2196,Ancient Sea Lord@WZ_FROSTNOVA,chase,88,7,3000,1000,10000,no,self,always,,,,,,,,
+2196,Ancient Sea Lord@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,,,,,,,6,
+2197,Red Eruma@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+2197,Red Eruma@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,,,,,,
+2197,Red Eruma@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,29,
+2198,King Kray@NPC_DEFENDER,attack,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,36,
+2198,King Kray@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,,,,,,,38,
+2198,King Kray@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,,,,,,,,
+2198,King Kray@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2199,Siorava@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2199,Siorava@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+2199,Siorava@TF_THROWSTONE,chase,152,1,2000,0,5000,yes,target,always,,,,,,,6,
// Izlude Dungeon F6
-2201,Sropho@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2201,Sropho@MG_FROSTDIVER,chase,15,9,2000,800,5000,yes,target,always,0,,,,,,,
-2201,Sropho@MG_FROSTDIVER,attack,15,9,2000,800,5000,yes,target,always,0,,,,,,,
-2201,Sropho@WZ_JUPITEL,chase,84,4,500,1000,5000,yes,target,always,0,,,,,,,
-2201,Sropho@WZ_JUPITEL,attack,84,4,500,1000,5000,yes,target,always,0,,,,,,,
+2201,Squidgitte@AL_RUWACH,idle,24,1,2000,0,10000,yes,target,always,,,,,,,,
+2201,Squidgitte@NPC_COMBOATTACK,attack,171,1,1000,700,5000,no,target,always,,,,,,,,
+2201,Squidgitte@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,,5,,,,,,
+2201,Squidgitte@NPC_WATERATTACK,attack,184,3,2000,0,5000,no,target,always,,,,,,,29,
+2201,Squidgitte@WZ_JUPITEL,chase,84,4,2000,0,5000,yes,target,always,,,,,,,,
2202,Kraken@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2202,Kraken@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2202,Kraken@NPC_EARTHQUAKE,chase,653,2,10000,1000,60000,no,self,myhpltmaxrate,30,,,,,,,
-2202,Kraken@NPC_EARTHQUAKE,attack,653,2,10000,1000,60000,no,self,myhpltmaxrate,30,,,,,,,
-2202,Kraken@NPC_AGIUP,attack,350,5,10000,0,60000,yes,self,myhpltmaxrate,30,,,,,,,
-2202,Kraken@NPC_AGIUP,chase,350,5,10000,0,60000,yes,self,myhpltmaxrate,30,,,,,,,
-2202,Kraken@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,myhpltmaxrate,60,,,,,,,
-2202,Kraken@NPC_DRAGONFEAR,attack,659,5,10000,0,30000,no,self,myhpltmaxrate,60,,,,,,,
-2202,Kraken@NPC_WIDECONFUSE,chase,667,2,10000,0,10000,yes,self,myhpltmaxrate,60,,,,,,,
-2202,Kraken@NPC_WIDECONFUSE,attack,667,2,10000,0,10000,yes,self,myhpltmaxrate,60,,,,,,,
-2202,Kraken@SM_BASH,attack,5,10,2000,800,5000,yes,target,always,0,,,,,,,
-2202,Kraken@NPC_COMBOATTACK,attack,171,2,2000,700,5000,yes,target,always,0,,,,,,,
-2202,Kraken@NPC_PULSESTRIKE,attack,661,5,2000,0,15000,yes,self,always,0,,,,,,32,
-2202,Kraken@MG_FROSTDIVER,chase,15,10,2000,800,5000,no,target,always,0,,,,,,,
-2202,Kraken@MG_FROSTDIVER,attack,15,10,2000,800,5000,no,target,always,0,,,,,,,
-2202,Kraken@WZ_STORMGUST,chase,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-2202,Kraken@WZ_STORMGUST,attack,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-2202,Kraken@CR_REFLECTSHIELD,idle,252,1,1000,0,200000,yes,self,always,0,,,,,,6,
-2202,Kraken@CR_REFLECTSHIELD,chase,252,1,1000,0,200000,yes,self,always,0,,,,,,6,
-2202,Kraken@CR_REFLECTSHIELD,attack,252,1,1000,0,200000,yes,self,always,0,,,,,,6,
-2202,Kraken@NPC_HELLJUDGEMENT,chase,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-2202,Kraken@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
-2202,Kraken@NPC_WIDEFREEZE,idle,664,5,10000,1000,20000,no,self,always,0,,,,,,32,
-2202,Kraken@NPC_WIDEFREEZE,chase,664,5,10000,1000,20000,yes,self,always,0,,,,,,32,
-2202,Kraken@NPC_WIDEFREEZE,attack,664,5,10000,1000,20000,yes,self,always,0,,,,,,32,
-2202,Kraken@NPC_WIDESLEEP,idle,668,5,10000,700,25000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDESLEEP,chase,668,5,10000,700,25000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDESLEEP,attack,668,5,10000,700,25000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDESILENCE,idle,663,5,10000,1000,30000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDESILENCE,chase,663,5,10000,1000,30000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDESILENCE,attack,663,5,10000,1000,30000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDECURSE,idle,677,5,10000,800,30000,yes,self,always,0,,,,,,36,
-2202,Kraken@NPC_WIDECURSE,chase,677,5,10000,800,30000,yes,self,always,0,,,,,,36,
-2202,Kraken@NPC_WIDECURSE,attack,677,5,10000,800,30000,yes,self,always,0,,,,,,36,
-2202,Kraken@NPC_WIDEBLEEDING,chase,665,2,10000,500,60000,no,self,always,0,,,,,,,
-2202,Kraken@NPC_WIDEBLEEDING,attack,665,2,10000,500,60000,no,self,always,0,,,,,,,
-2202,Kraken@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,0,,,,,,,
-2202,Kraken@NPC_SUMMONSLAVE,chase,196,4,10000,700,10000,no,self,slavele,3,2206,,,,,,
+2202,Kraken@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2202,Kraken@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2202,Kraken@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2202,Kraken@NPC_DRAGONFEAR,attack,659,5,10000,0,30000,yes,self,myhpltmaxrate,70,,,,,,,
+2202,Kraken@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,20,,,,,,,
+2202,Kraken@NPC_HELLJUDGEMENT,attack,662,2,2000,500,5000,no,self,always,,,,,,,,
+2202,Kraken@NPC_HELLJUDGEMENT,chase,662,2,2000,500,5000,no,self,always,,,,,,,,
+2202,Kraken@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
2202,Kraken@NPC_SUMMONSLAVE,attack,196,4,10000,700,10000,no,self,slavele,3,2206,,,,,,
2202,Kraken@NPC_SUMMONSLAVE,idle,196,4,10000,700,10000,no,self,slavele,3,2206,,,,,,
2202,Kraken@NPC_SUMMONSLAVE,idle,196,4,10000,0,0,no,self,onspawn,0,2206,,,,,,
-2203,Pot Dofle@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2203,Pot Dofle@AL_HEAL,chase,28,1,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-2203,Pot Dofle@AL_HEAL,attack,28,1,10000,500,5000,no,friend,friendhpltmaxrate,60,,,,,,18,
-2203,Pot Dofle@KN_SPEARBOOMERANG,chase,59,5,500,0,5000,yes,target,always,0,,,,,,,
-2203,Pot Dofle@NPC_STONESKIN,chase,675,3,1000,500,30000,no,self,myhpltmaxrate,30,,,,,,6,
-2203,Pot Dofle@NPC_STONESKIN,attack,675,3,1000,500,30000,no,self,myhpltmaxrate,30,,,,,,6,
-2204,Sedora@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,,
-2204,Sedora@AS_SONICBLOW,attack,136,5,500,800,5000,no,target,always,0,,,,,,,
-2204,Sedora@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,0,,,,,,,
-2206,Kraken Leg@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,0,,,,,,6,
-2206,Kraken Leg@NPC_WIDEFREEZE,idle,664,5,2000,1000,20000,no,self,always,0,,,,,,32,
-2206,Kraken Leg@NPC_WIDEFREEZE,chase,664,5,2000,1000,20000,yes,self,always,0,,,,,,32,
-2206,Kraken Leg@NPC_WIDEFREEZE,attack,664,5,2000,1000,20000,yes,self,always,0,,,,,,32,
-2206,Kraken Leg@NPC_WIDECURSE,idle,677,5,2000,800,30000,yes,self,always,0,,,,,,36,
-2206,Kraken Leg@NPC_WIDECURSE,chase,677,5,2000,800,30000,yes,self,always,0,,,,,,36,
-2206,Kraken Leg@NPC_WIDECURSE,attack,677,5,2000,800,30000,yes,self,always,0,,,,,,36,
-2206,Kraken Leg@MG_FROSTDIVER,chase,15,10,2000,800,5000,no,target,always,0,,,,,,,
-2206,Kraken Leg@MG_FROSTDIVER,attack,15,10,2000,800,5000,no,target,always,0,,,,,,,
-2206,Kraken Leg@WZ_STORMGUST,chase,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-2206,Kraken Leg@WZ_STORMGUST,attack,89,10,2000,1000,20000,no,target,always,0,,,,,,,
-2208,Wild Rider@NPC_WATERATTACK,attack,184,10,1000,500,5000,no,target,always,0,,,,,,,
-2208,Wild Rider@NPC_STUNATTACK,attack,179,3,2000,500,5000,no,target,always,0,,,,,,,
-2208,Wild Rider@WZ_WATERBALL,chase,86,7,2000,1000,5000,yes,target,always,0,,,,,,,
-2208,Wild Rider@WZ_WATERBALL,attack,86,7,2000,1000,5000,yes,target,always,0,,,,,,,
+2202,Kraken@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2202,Kraken@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2202,Kraken@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,,,,,,,29,
+2202,Kraken@NPC_WIDEBLEEDING,attack,665,1,10000,500,100000,no,self,always,,,,,,,,
+2202,Kraken@NPC_WIDEBLEEDING,chase,665,1,10000,500,100000,no,self,always,,,,,,,,
+2202,Kraken@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+2202,Kraken@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,,,,,,,,
+2202,Kraken@NPC_WIDEFREEZE,attack,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2202,Kraken@NPC_WIDEFREEZE,chase,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2202,Kraken@NPC_WIDESILENCE,attack,663,1,10000,700,25000,yes,self,always,,,,,,,,
+2202,Kraken@NPC_WIDESILENCE,chase,663,1,10000,1000,20000,no,self,always,,,,,,,32,
+2202,Kraken@NPC_WIDESLEEP,attack,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2202,Kraken@NPC_WIDESLEEP,chase,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2202,Kraken@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2202,Kraken@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2202,Kraken@NPC_WIDESTUN,attack,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2202,Kraken@NPC_WIDESTUN,chase,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2202,Kraken@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,,,,,,,,
+2202,Kraken@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,,,,,,,,
+2202,Kraken@WZ_WATERBALL,attack,86,10,10000,500,25000,no,target,always,,,,,,,0,
+2202,Kraken@WZ_WATERBALL,chase,86,10,10000,500,25000,no,target,always,,,,,,,0,
+2203,Octo Pot@AL_HEAL,attack,28,3,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,2,
+2203,Octo Pot@NPC_DEFENDER,chase,205,1,500,0,5000,yes,self,longrangeattacked,,,,,,,36,
+2203,Octo Pot@NPC_GROUNDATTACK,attack,185,2,500,500,5000,no,target,always,,,,,,,6,
+2203,Octo Pot@NPC_KEEPING,attack,201,1,1000,0,5000,yes,self,myhpltmaxrate,40,,,,,,9,
+2203,Octo Pot@NPC_RANGEATTACK,chase,160,1,500,0,5000,yes,target,always,,,,,,,,
+2204,Lamp Rey@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2204,Lamp Rey@AS_SONICBLOW,attack,136,10,500,800,5000,no,target,always,,,,,,,,
+2204,Lamp Rey@NPC_BLEEDING,attack,660,1,2000,0,3000,yes,target,always,,,,,,,0,
+2204,Lamp Rey@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,18,,,,,,
+2204,Lamp Rey@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,attackpcge,2,,,,,,,
+2204,Lamp Rey@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDEBLEEDING,attack,665,1,10000,500,100000,no,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDEBLEEDING,chase,665,1,10000,500,100000,no,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDEFREEZE,attack,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2206,Kraken Tentacle@NPC_WIDEFREEZE,chase,664,1,10000,1000,20000,yes,self,always,,,,,,,36,
+2206,Kraken Tentacle@NPC_WIDESILENCE,attack,663,1,10000,700,25000,yes,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDESILENCE,chase,663,1,10000,1000,20000,no,self,always,,,,,,,32,
+2206,Kraken Tentacle@NPC_WIDESLEEP,attack,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDESLEEP,chase,668,1,10000,700,25000,yes,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2206,Kraken Tentacle@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,,,,,,,42,
+2206,Kraken Tentacle@NPC_WIDESTUN,attack,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2206,Kraken Tentacle@NPC_WIDESTUN,chase,678,1,10000,1300,180000,yes,self,always,,,,,,,,
+2208,Wild Rider@NPC_AGIUP,chase,350,1,10000,0,30000,yes,self,always,,,,,,,29,
+2208,Wild Rider@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,27,,,,,,
+2208,Wild Rider@WZ_WATERBALL,attack,86,4,500,1500,5000,yes,target,always,,,,,,,,
+2220,Messenger of Devil@AL_TELEPORT,attack,26,1,1000,0,5000,yes,self,always,,,,,,,,
+2220,Messenger of Devil@NPC_EMOTION,idle,197,1,2000,0,,yes,self,always,,29,,,,,,
// Bio 4
+2221,Randel@AL_HEAL,attack,28,4,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,5,
+2221,Randel@AL_HEAL,idle,28,4,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,5,
+2221,Randel@AL_HEAL,chase,28,4,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,5,
+2221,Randel@AL_HEAL,attack,28,4,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,5,
+2221,Randel@AL_HEAL,idle,28,4,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,5,
+2221,Randel@AL_HEAL,chase,28,4,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,5,
2221,Randel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2221,Randel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2221,Randel@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,0,,,,,,,
-2221,Randel@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2221,Randel@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2221,Randel@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,,
-2221,Randel@NPC_DEFENDER,chase,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2221,Randel@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2221,Randel@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2221,Randel@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2221,Randel@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
-2221,Randel@SM_MAGNUM,attack,7,9,1000,0,0,yes,self,attackpcge,2,,,,,,,
-2221,Randel@PA_PRESSURE,chase,367,5,10000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@CR_SHIELDBOOMERANG,chase,251,5,10000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@CR_GRANDCROSS,chase,254,10,5000,100,5000,no,self,always,,,,,,,,
-2221,Randel@CR_GRANDCROSS,attack,254,10,5000,100,5000,no,self,always,,,,,,,,
-2221,Randel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2221,Randel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2221,Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,0,,,,,,9,
+2221,Randel@CR_AUTOGUARD,attack,249,5,2000,0,300000,yes,self,always,,,,,,,,
+2221,Randel@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2221,Randel@CR_GRANDCROSS,attack,254,1,500,1500,5000,no,self,attackpcge,2,,,,,,,
+2221,Randel@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,,,,,,,,
+2221,Randel@CR_REFLECTSHIELD,attack,252,5,100,0,200000,yes,self,always,,,,,,,32,
+2221,Randel@CR_REFLECTSHIELD,attack,252,5,10000,0,200000,yes,self,casttargeted,,,,,,,32,
+2221,Randel@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,,,,,,,9,
+2221,Randel@NPC_DEFENDER,attack,205,1,1000,0,5000,yes,self,longrangeattacked,,,,,,,29,
+2221,Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,,,,,,,9,
+2221,Randel@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+2221,Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,,
+2221,Randel@PA_PRESSURE,attack,367,1,1000,0,5000,no,target,always,,,,,,,,
2222,Flamel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2222,Flamel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2222,Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2222,Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2222,Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2222,Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2222,Flamel@CR_ACIDDEMONSTRATION,chase,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2222,Flamel@CR_ACIDDEMONSTRATION,attack,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2222,Flamel@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2222,Flamel@AM_ACIDTERROR,attack,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2222,Flamel@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2222,Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2222,Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2222,Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2222,Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2222,Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2222,Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2222,Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2222,Flamel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2222,Flamel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2222,Flamel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2222,Flamel@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,0,,,,,,,
+2222,Flamel@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,,,,,,,29,
+2222,Flamel@AM_DEMONSTRATION,angry,229,1,100,500,5000,yes,target,always,,,,,,,,
+2222,Flamel@AM_DEMONSTRATION,attack,229,1,100,500,5000,yes,target,always,,,,,,,,
+2222,Flamel@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2222,Flamel@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2222,Flamel@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2222,Flamel@AM_POTIONPITCHER,attack,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2222,Flamel@AM_POTIONPITCHER,idle,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2222,Flamel@AM_POTIONPITCHER,chase,231,4,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2222,Flamel@CR_ACIDDEMONSTRATION,attack,490,1,1000,3000,300000,yes,target,always,,,,,,,,
+2222,Flamel@NPC_AGIUP,attack,350,1,2000,0,100000,yes,self,always,,,,,,,,
+2222,Flamel@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2222,Flamel@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,,,,,,,,
+2222,Flamel@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
2223,Celia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2223,Celia@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2223,Celia@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,0,,,,,,,
+2223,Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREBALL,attack,17,10,3000,500,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREBALL,chase,17,10,3000,500,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,skillused,18,,,,,,,
+2223,Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_FROSTDIVER,chase,15,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+2223,Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_SAFETYWALL,attack,12,10,3000,0,10000,yes,self,always,,,,,,,,
+2223,Celia@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,,,,,,,,
2223,Celia@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-2223,Celia@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,0,,,,,,,
-2223,Celia@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2223,Celia@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,83,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,85,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,89,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2213,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2216,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2446,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2447,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2449,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2450,,,,,,,
-2223,Celia@SA_LANDPROTECTOR,attack,288,1,5000,0,30000,no,target,always,0,,,,,,,
-2223,Celia@PF_SPIDERWEB,attack,405,1,3000,0,10000,yes,target,always,0,,,,,,7,
-2223,Celia@PF_SOULBURN,attack,375,5,5000,0,10000,yes,target,always,0,,,,,,,
-2223,Celia@PF_MINDBREAKER,attack,402,5,5000,0,10000,yes,target,always,0,,,,,,,
-2223,Celia@MG_SOULSTRIKE,chase,13,20,5000,500,5000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-2223,Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_THUNDERSTORM,chase,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_THUNDERSTORM,attack,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREBALL,idle,17,20,10000,500,10000,no,randomtarget,always,0,,,,,,,
-2223,Celia@MG_FIREBALL,chase,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2223,Celia@MG_FIREBALL,attack,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2223,Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2223,Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2223,Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2223,Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2224,Chen@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2224,Chen@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2224,Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-2224,Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2224,Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2224,Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,self,myhpltmaxrate,99,,,,,,,
-2224,Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,self,myhpltmaxrate,100,,,,,,,
-2224,Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2224,Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2224,Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,0,,,,,,,
-2224,Chen@MO_BODYRELOCATION,chase,264,1,3000,0,5000,yes,target,always,0,,,,,,,
-2224,Chen@MO_EXTREMITYFIST,attack,271,5,10000,500,10000,no,target,always,0,,,,,,6,
-2224,Chen@NPC_COMBOATTACK,chase,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
-2224,Chen@NPC_COMBOATTACK,attack,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
+2223,Celia@MG_THUNDERSTORM,attack,21,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@MG_THUNDERSTORM,chase,21,10,3000,1000,10000,no,target,always,,,,,,,,
+2223,Celia@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,,
+2223,Celia@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,,,,,,,,
+2223,Celia@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,,,,,,,,
+2223,Celia@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,,,,,,,,
+2223,Celia@SA_LANDPROTECTOR,attack,288,1,1000,1500,30000,no,target,myhpltmaxrate,80,,,,,,33,
+2223,Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2223,Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2223,Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2223,Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2224,Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+2224,Chen@AL_HEAL,attack,28,3,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
2224,Chen@AL_HEAL,idle,28,3,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2224,Chen@AL_HEAL,idle,28,3,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
2224,Chen@AL_HEAL,chase,28,3,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2224,Chen@AL_HEAL,chase,28,3,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
-2224,Chen@AL_HEAL,attack,28,3,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
2224,Chen@AL_HEAL,attack,28,3,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
-2224,Chen@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2224,Chen@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2224,Chen@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,0,,,,,,,
+2224,Chen@AL_HEAL,idle,28,3,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2224,Chen@AL_HEAL,chase,28,3,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2224,Chen@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2224,Chen@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2224,Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2224,Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
+2224,Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2224,Chen@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2224,Chen@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2224,Chen@MO_BALKYOUNG,attack,1016,5,100,0,5000,no,target,always,,,,,,,19,
+2224,Chen@MO_BODYRELOCATION,chase,264,1,2000,500,5000,yes,target,always,,,,,,,28,
+2224,Chen@MO_EXTREMITYFIST,attack,271,1,1000,3000,300000,no,target,always,,,,,,,,
+2224,Chen@NPC_AGIUP,attack,350,1,2000,0,100000,yes,self,always,,,,,,,,
+2224,Chen@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2224,Chen@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+2224,Chen@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+2224,Chen@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
2225,Gertie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2225,Gertie@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2225,Gertie@ST_REJECTSWORD,idle,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2225,Gertie@ST_REJECTSWORD,chase,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2225,Gertie@ST_REJECTSWORD,attack,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2225,Gertie@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-2225,Gertie@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-2225,Gertie@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,0,,,,,,,
-2225,Gertie@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2225,Gertie@TF_HIDING,attack,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2225,Gertie@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
-2225,Gertie@RG_STRIPSHIELD,attack,216,5,10000,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@RG_STRIPARMOR,attack,217,5,10000,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@RG_BACKSTAP,attack,212,10,10000,0,10000,no,target,always,0,,,,,,18,
-2225,Gertie@RG_RAID,attack,214,5,10000,0,10000,no,target,always,0,,,,,,18,
-2225,Gertie@TF_POISON,attack,52,10,10000,0,10000,yes,target,always,0,,,,,,,
-2225,Gertie@SM_BASH,chase,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2225,Gertie@SM_BASH,attack,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2225,Gertie@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-2225,Gertie@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2225,Gertie@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2225,Gertie@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,0,,,,,,,
+2225,Gertie@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2225,Gertie@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2225,Gertie@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2225,Gertie@NPC_AGIUP,attack,350,1,2000,0,100000,yes,self,always,,,,,,,,
+2225,Gertie@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2225,Gertie@NPC_POISONATTACK,attack,188,5,1000,0,5000,yes,target,always,,,,,,,,
+2225,Gertie@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2225,Gertie@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,,,,,,,,
+2225,Gertie@RG_INTIMIDATE,attack,219,1,100,0,30000,yes,target,always,,,,,,,,
+2225,Gertie@RG_STRIPARMOR,attack,217,1,500,0,60000,yes,target,myhpltmaxrate,50,,,,,,,
+2225,Gertie@RG_STRIPHELM,attack,218,1,500,0,60000,yes,target,myhpltmaxrate,90,,,,,,,
+2225,Gertie@RG_STRIPSHIELD,attack,216,1,500,0,60000,yes,target,myhpltmaxrate,70,,,,,,,
+2225,Gertie@RG_STRIPWEAPON,attack,215,1,500,0,60000,yes,target,myhpltmaxrate,30,,,,,,,
+2225,Gertie@ST_FULLSTRIP,attack,476,1,100,0,60000,no,target,myhpltmaxrate,10,,,,,,43,
+2225,Gertie@TF_POISON,attack,52,10,1000,0,10000,yes,target,always,,,,,,,,
2226,Alphoccio@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2226,Alphoccio@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2226,Alphoccio@NPC_PULSESTRIKE,attack,661,5,2000,0,5000,no,self,always,0,,,,,,7,
-2226,Alphoccio@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2226,Alphoccio@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2226,Alphoccio@CG_TAROTCARD,chase,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2226,Alphoccio@CG_TAROTCARD,attack,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2226,Alphoccio@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2226,Alphoccio@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2226,Alphoccio@WZ_FROSTNOVA,chase,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2226,Alphoccio@WZ_FROSTNOVA,attack,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2226,Alphoccio@BA_MUSICALSTRIKE,chase,316,5,10000,0,10000,no,target,always,0,,,,,,,
-2226,Alphoccio@BA_MUSICALSTRIKE,attack,316,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2226,Alphoccio@BA_DISSONANCE,chase,317,5,500,0,30000,no,self,always,0,,,,,,,
-// 2226,Alphoccio@BA_DISSONANCE,attack,317,5,500,0,30000,no,self,always,0,,,,,,,
-2226,Alphoccio@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2226,Alphoccio@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2226,Alphoccio@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2226,Alphoccio@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,always,0,,,,,,,
-2226,Alphoccio@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2226,Alphoccio@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2226,Alphoccio@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2226,Alphoccio@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
+2226,Alphoccio@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2226,Alphoccio@NPC_DISSONANCE,attack,2540,3,1000,1000,100000,no,target,always,,,,,,,,
+2226,Alphoccio@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+2226,Alphoccio@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+2226,Alphoccio@NPC_SLOWCAST,attack,672,1,2000,800,30000,no,self,always,,,,,,,36,
+2226,Alphoccio@NPC_SLOWCAST,chase,672,1,2000,300,30000,no,self,always,,,,,,,36,
+2226,Alphoccio@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2226,Alphoccio@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
2227,Trentini@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
2227,Trentini@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2227,Trentini@NPC_PULSESTRIKE,attack,661,5,2000,0,5000,no,self,always,0,,,,,,7,
-2227,Trentini@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2227,Trentini@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2227,Trentini@CG_TAROTCARD,chase,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2227,Trentini@CG_TAROTCARD,attack,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2227,Trentini@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2227,Trentini@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2227,Trentini@NPC_WIDESTUN,chase,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2227,Trentini@NPC_WIDESTUN,attack,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2227,Trentini@DC_THROWARROW,chase,324,5,10000,0,10000,no,target,always,0,,,,,,,
-2227,Trentini@DC_THROWARROW,attack,324,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2227,Trentini@DC_UGLYDANCE,chase,325,5,500,0,30000,no,self,always,0,,,,,,,
-// 2227,Trentini@DC_UGLYDANCE,attack,325,5,500,0,30000,no,self,always,0,,,,,,,
-2227,Trentini@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2227,Trentini@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2227,Trentini@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2227,Trentini@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,always,0,,,,,,,
-2227,Trentini@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2227,Trentini@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2227,Trentini@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2227,Trentini@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2228,Paladin Randel@WZ_STORMGUST,idle,89,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2228,Paladin Randel@WZ_STORMGUST,walk,89,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2228,Paladin Randel@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,0,,,,,,,
-2228,Paladin Randel@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2228,Paladin Randel@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2228,Paladin Randel@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,,
-2228,Paladin Randel@NPC_DEFENDER,chase,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2228,Paladin Randel@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2228,Paladin Randel@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2228,Paladin Randel@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2228,Paladin Randel@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
-2228,Paladin Randel@SM_MAGNUM,attack,7,9,1000,0,0,yes,self,attackpcge,2,,,,,,,
-2228,Paladin Randel@KN_TWOHANDQUICKEN,attack,60,20,10000,0,300000,yes,self,myhpltmaxrate,30,,,,,,2,
-2228,Paladin Randel@PA_PRESSURE,chase,367,5,10000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@CR_SHIELDBOOMERANG,chase,251,5,10000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@CR_HOLYCROSS,attack,253,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2228,Paladin Randel@CR_GRANDCROSS,chase,254,10,5000,100,5000,no,self,always,,,,,,,,
-2228,Paladin Randel@CR_GRANDCROSS,attack,254,10,5000,100,5000,no,self,always,,,,,,,,
-2228,Paladin Randel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2228,Paladin Randel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2228,Paladin Randel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2228,Paladin Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,0,,,,,,9,
-2229,Creator Flamel@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2229,Creator Flamel@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2229,Creator Flamel@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2229,Creator Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2229,Creator Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2229,Creator Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2229,Creator Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2229,Creator Flamel@CR_ACIDDEMONSTRATION,chase,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2229,Creator Flamel@CR_ACIDDEMONSTRATION,attack,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2229,Creator Flamel@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2229,Creator Flamel@AM_ACIDTERROR,attack,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2229,Creator Flamel@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2229,Creator Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2229,Creator Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2229,Creator Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2229,Creator Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2229,Creator Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2229,Creator Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2229,Creator Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2229,Creator Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2229,Creator Flamel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2229,Creator Flamel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2229,Creator Flamel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2229,Creator Flamel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2229,Creator Flamel@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,0,,,,,,,
-2230,Professor Celia@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2230,Professor Celia@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2230,Professor Celia@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2230,Professor Celia@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,0,,,,,,,
-2230,Professor Celia@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-2230,Professor Celia@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,0,,,,,,,
-2230,Professor Celia@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2230,Professor Celia@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,83,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,85,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,89,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2213,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2216,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2446,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2447,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2449,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2450,,,,,,,
-2230,Professor Celia@SA_LANDPROTECTOR,attack,288,1,5000,0,30000,no,target,always,0,,,,,,,
-2230,Professor Celia@PF_SPIDERWEB,attack,405,1,3000,0,10000,yes,target,always,0,,,,,,7,
-2230,Professor Celia@PF_SOULBURN,attack,375,5,5000,0,10000,yes,target,always,0,,,,,,,
-2230,Professor Celia@PF_MINDBREAKER,attack,402,5,5000,0,10000,yes,target,always,0,,,,,,,
-2230,Professor Celia@MG_SOULSTRIKE,chase,13,20,5000,500,5000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-2230,Professor Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_THUNDERSTORM,chase,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_THUNDERSTORM,attack,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREBOLT,attack,19,10,2000,0,0,no,target,myhpltmaxrate,30,,,,,,,
-2230,Professor Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_COLDBOLT,attack,14,10,2000,0,0,no,target,myhpltmaxrate,30,,,,,,,
-2230,Professor Celia@MG_FIREBALL,idle,17,20,10000,500,10000,no,randomtarget,always,0,,,,,,,
-2230,Professor Celia@MG_FIREBALL,chase,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@MG_FIREBALL,attack,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2230,Professor Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2230,Professor Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2230,Professor Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2230,Professor Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2231,Champion Chen@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2231,Champion Chen@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2231,Champion Chen@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2231,Champion Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-2231,Champion Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2231,Champion Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2231,Champion Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,self,myhpltmaxrate,99,,,,,,,
-2231,Champion Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,self,myhpltmaxrate,100,,,,,,,
-2231,Champion Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2231,Champion Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2231,Champion Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,0,,,,,,,
-2231,Champion Chen@MO_BODYRELOCATION,chase,264,1,3000,0,5000,yes,target,always,0,,,,,,,
-2231,Champion Chen@MO_EXTREMITYFIST,attack,271,5,10000,500,10000,no,target,always,0,,,,,,6,
-2231,Champion Chen@NPC_COMBOATTACK,chase,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
-2231,Champion Chen@NPC_COMBOATTACK,attack,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
-2231,Champion Chen@NPC_COMBOATTACK,attack,171,5,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,7,
-2231,Champion Chen@AL_HEAL,idle,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@AL_HEAL,idle,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@AL_HEAL,chase,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@AL_HEAL,chase,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@AL_HEAL,attack,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@AL_HEAL,attack,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2231,Champion Chen@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2231,Champion Chen@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2231,Champion Chen@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2232,Stalker Gertie@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2232,Stalker Gertie@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2232,Stalker Gertie@ST_REJECTSWORD,idle,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@ST_REJECTSWORD,chase,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@ST_REJECTSWORD,attack,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@NPC_INVISIBLE,chase,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2232,Stalker Gertie@TF_HIDING,attack,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2232,Stalker Gertie@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@RG_STRIPSHIELD,attack,216,5,10000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@RG_STRIPARMOR,attack,217,5,10000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@RG_BACKSTAP,attack,212,10,10000,0,10000,no,target,always,0,,,,,,18,
-2232,Stalker Gertie@RG_RAID,attack,214,5,10000,0,10000,no,target,always,0,,,,,,18,
-2232,Stalker Gertie@TF_POISON,attack,52,10,10000,0,10000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@SM_BASH,chase,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2232,Stalker Gertie@SM_BASH,attack,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2232,Stalker Gertie@NPC_GUIDEDATTACK,attack,172,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2232,Stalker Gertie@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2232,Stalker Gertie@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2232,Stalker Gertie@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2232,Stalker Gertie@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2232,Stalker Gertie@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2233,Clown Alphoccio@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2233,Clown Alphoccio@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2233,Clown Alphoccio@NPC_PULSESTRIKE,attack,661,5,2000,0,5000,no,self,always,0,,,,,,7,
-2233,Clown Alphoccio@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@CG_TAROTCARD,chase,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2233,Clown Alphoccio@CG_TAROTCARD,attack,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2233,Clown Alphoccio@CG_TAROTCARD,attack,489,5,2000,0,0,no,target,myhpltmaxrate,30,,,,,,18,
-2233,Clown Alphoccio@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2233,Clown Alphoccio@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2233,Clown Alphoccio@WZ_FROSTNOVA,chase,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@WZ_FROSTNOVA,attack,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@BA_MUSICALSTRIKE,chase,316,5,10000,0,10000,no,target,always,0,,,,,,,
-2233,Clown Alphoccio@BA_MUSICALSTRIKE,attack,316,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2233,Clown Alphoccio@BA_DISSONANCE,chase,317,5,500,0,30000,no,self,always,0,,,,,,,
-// 2233,Clown Alphoccio@BA_DISSONANCE,attack,317,5,500,0,30000,no,self,always,0,,,,,,,
-2233,Clown Alphoccio@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2233,Clown Alphoccio@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2233,Clown Alphoccio@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2233,Clown Alphoccio@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2233,Clown Alphoccio@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2233,Clown Alphoccio@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
-2234,Gypsy Trentini@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
-2234,Gypsy Trentini@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
-2234,Gypsy Trentini@NPC_PULSESTRIKE,attack,661,5,10000,0,5000,no,self,always,0,,,,,,7,
-2234,Gypsy Trentini@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2234,Gypsy Trentini@CG_TAROTCARD,chase,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2234,Gypsy Trentini@CG_TAROTCARD,attack,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2234,Gypsy Trentini@CG_TAROTCARD,attack,489,5,2000,0,0,no,target,myhpltmaxrate,30,,,,,,18,
-2234,Gypsy Trentini@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2234,Gypsy Trentini@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_WIDESTUN,chase,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_WIDESTUN,attack,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2234,Gypsy Trentini@DC_THROWARROW,chase,324,5,10000,0,10000,no,target,always,0,,,,,,,
-2234,Gypsy Trentini@DC_THROWARROW,attack,324,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2234,Gypsy Trentini@DC_UGLYDANCE,chase,325,5,500,0,30000,no,self,always,0,,,,,,,
-// 2234,Gypsy Trentini@DC_UGLYDANCE,attack,325,5,500,0,30000,no,self,always,0,,,,,,,
-2234,Gypsy Trentini@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2234,Gypsy Trentini@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2234,Gypsy Trentini@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2234,Gypsy Trentini@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2234,Gypsy Trentini@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2234,Gypsy Trentini@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2235,Paladin Randel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2235,Paladin Randel@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2235,Paladin Randel@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2235,Paladin Randel@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2229,2230,2231,2232,2234,0,
-2235,Paladin Randel@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2229,2230,2231,2232,2234,0,
-2235,Paladin Randel@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2229,2230,2231,2232,2234,0,
-2235,Paladin Randel@CR_REFLECTSHIELD,idle,252,10,10000,0,300000,yes,self,always,0,,,,,,,
-2235,Paladin Randel@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2235,Paladin Randel@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,32,
-2235,Paladin Randel@NPC_DEFENDER,idle,205,5,10000,0,180000,no,self,always,0,,,,,,,
-2235,Paladin Randel@NPC_DEFENDER,chase,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2235,Paladin Randel@NPC_DEFENDER,attack,205,5,10000,0,180000,no,self,always,0,,,,,,29,
-2235,Paladin Randel@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2235,Paladin Randel@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2235,Paladin Randel@SM_ENDURE,chase,8,10,2000,0,30000,yes,self,longrangeattacked,,,,,,,6,
-2235,Paladin Randel@SM_MAGNUM,attack,7,9,1000,0,0,yes,self,attackpcge,2,,,,,,,
-2235,Paladin Randel@KN_TWOHANDQUICKEN,attack,60,20,10000,0,300000,yes,self,myhpltmaxrate,30,,,,,,2,
-2235,Paladin Randel@PA_PRESSURE,chase,367,5,10000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@CR_SHIELDBOOMERANG,chase,251,5,10000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@CR_HOLYCROSS,attack,253,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2235,Paladin Randel@CR_GRANDCROSS,chase,254,10,5000,100,5000,no,self,always,,,,,,,,
-2235,Paladin Randel@CR_GRANDCROSS,attack,254,10,5000,100,5000,no,self,always,,,,,,,,
-2235,Paladin Randel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2235,Paladin Randel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2235,Paladin Randel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2235,Paladin Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,0,,,,,,9,
-2236,Creator Flamel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2236,Creator Flamel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2236,Creator Flamel@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2236,Creator Flamel@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2236,Creator Flamel@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2230,2231,2232,2234,0,
-2236,Creator Flamel@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2230,2231,2232,2234,0,
-2236,Creator Flamel@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2230,2231,2232,2234,0,
-2236,Creator Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2236,Creator Flamel@AM_CANNIBALIZE,idle,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2236,Creator Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,longrangeattacked,0,,,,,,9,
-2236,Creator Flamel@AM_CANNIBALIZE,chase,232,5,5000,0,10000,no,around2,casttargeted,0,,,,,,9,
-2236,Creator Flamel@CR_ACIDDEMONSTRATION,chase,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2236,Creator Flamel@CR_ACIDDEMONSTRATION,attack,490,10,10000,500,10000,no,target,always,0,,,,,,,
-2236,Creator Flamel@AM_ACIDTERROR,chase,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2236,Creator Flamel@AM_ACIDTERROR,attack,230,5,500,0,5000,yes,target,always,0,,,,,,29,
-2236,Creator Flamel@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2236,Creator Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,0,,,,,,,
-2236,Creator Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2236,Creator Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2236,Creator Flamel@AM_POTIONPITCHER,idle,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2236,Creator Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2236,Creator Flamel@AM_POTIONPITCHER,chase,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2236,Creator Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,friend,friendhpltmaxrate,60,,,,,,5,
-2236,Creator Flamel@AM_POTIONPITCHER,attack,231,4,2000,0,0,yes,self,myhpltmaxrate,30,,,,,,5,
-2236,Creator Flamel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2236,Creator Flamel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2236,Creator Flamel@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2236,Creator Flamel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2236,Creator Flamel@NPC_FIREATTACK,attack,186,5,2000,0,5000,yes,target,always,0,,,,,,,
-2237,Professor Celia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2237,Professor Celia@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2237,Professor Celia@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2237,Professor Celia@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2237,Professor Celia@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2231,2232,2233,0,
-2237,Professor Celia@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2231,2232,2233,0,
-2237,Professor Celia@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2229,2231,2232,2233,0,
-2237,Professor Celia@MG_SIGHT,idle,10,1,2000,0,5000,yes,self,always,0,,,,,,,
-2237,Professor Celia@MG_SIGHT,idle,10,1,10000,0,5000,yes,self,skillused,137,,,,,,,
-2237,Professor Celia@MG_SAFETYWALL,attack,12,10,2000,0,5000,yes,self,always,0,,,,,,,
-2237,Professor Celia@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2237,Professor Celia@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,83,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,85,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,89,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2213,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2216,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2446,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2447,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2449,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,chase,288,1,10000,0,5000,no,target,skillused,2450,,,,,,,
-2237,Professor Celia@SA_LANDPROTECTOR,attack,288,1,5000,0,30000,no,target,always,0,,,,,,,
-2237,Professor Celia@PF_SPIDERWEB,attack,405,1,3000,0,10000,yes,target,always,0,,,,,,7,
-2237,Professor Celia@PF_SOULBURN,attack,375,5,5000,0,10000,yes,target,always,0,,,,,,,
-2237,Professor Celia@PF_MINDBREAKER,attack,402,5,5000,0,10000,yes,target,always,0,,,,,,,
-2237,Professor Celia@MG_SOULSTRIKE,chase,13,20,5000,500,5000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,randomtarget,always,0,,,,,,,
-2237,Professor Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_THUNDERSTORM,chase,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_THUNDERSTORM,attack,21,15,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREBOLT,attack,19,10,2000,0,0,no,target,myhpltmaxrate,30,,,,,,,
-2237,Professor Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_COLDBOLT,attack,14,10,2000,0,0,no,target,myhpltmaxrate,30,,,,,,,
-2237,Professor Celia@MG_FIREBALL,idle,17,20,10000,500,10000,no,randomtarget,always,0,,,,,,,
-2237,Professor Celia@MG_FIREBALL,chase,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@MG_FIREBALL,attack,17,20,3000,500,10000,no,target,always,0,,,,,,,
-2237,Professor Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2237,Professor Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,0,,,,,,,
-2237,Professor Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2237,Professor Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,0,,,,,,,
-2238,Champion Chen@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2238,Champion Chen@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2238,Champion Chen@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2238,Champion Chen@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2238,Champion Chen@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2232,2234,0,
-2238,Champion Chen@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2232,2234,0,
-2238,Champion Chen@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2229,2230,2232,2234,0,
-2238,Champion Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
-2238,Champion Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2238,Champion Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
-2238,Champion Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,self,myhpltmaxrate,99,,,,,,,
-2238,Champion Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,self,myhpltmaxrate,100,,,,,,,
-2238,Champion Chen@AL_INCAGI,idle,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2238,Champion Chen@AL_INCAGI,chase,29,10,10000,1000,240000,no,friend,friendhpltmaxrate,100,,,,,,,
-2238,Champion Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,0,,,,,,,
-2238,Champion Chen@MO_BODYRELOCATION,chase,264,1,3000,0,5000,yes,target,always,0,,,,,,,
-2238,Champion Chen@MO_EXTREMITYFIST,attack,271,5,10000,500,10000,no,target,always,0,,,,,,6,
-2238,Champion Chen@NPC_COMBOATTACK,chase,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
-2238,Champion Chen@NPC_COMBOATTACK,attack,171,5,2000,0,5000,yes,target,always,0,,,,,,7,
-2238,Champion Chen@NPC_COMBOATTACK,attack,171,5,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,7,
-2238,Champion Chen@AL_HEAL,idle,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@AL_HEAL,idle,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@AL_HEAL,chase,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@AL_HEAL,chase,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@AL_HEAL,attack,28,11,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@AL_HEAL,attack,28,11,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-2238,Champion Chen@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2238,Champion Chen@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2238,Champion Chen@NPC_WATERATTACK,attack,184,5,2000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2239,Stalker Gertie@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2239,Stalker Gertie@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2233,0,
-2239,Stalker Gertie@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2233,0,
-2239,Stalker Gertie@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2229,2230,2231,2233,0,
-2239,Stalker Gertie@ST_REJECTSWORD,idle,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@ST_REJECTSWORD,chase,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@ST_REJECTSWORD,attack,390,5,10000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_INVISIBLE,idle,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_INVISIBLE,chase,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_INVISIBLE,attack,353,1,2000,0,30000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2239,Stalker Gertie@TF_HIDING,attack,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2239,Stalker Gertie@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@RG_INTIMIDATE,attack,219,1,500,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@RG_STRIPSHIELD,attack,216,5,10000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@RG_STRIPARMOR,attack,217,5,10000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@RG_BACKSTAP,attack,212,10,10000,0,10000,no,target,always,0,,,,,,18,
-2239,Stalker Gertie@RG_RAID,attack,214,5,10000,0,10000,no,target,always,0,,,,,,18,
-2239,Stalker Gertie@TF_POISON,attack,52,10,10000,0,10000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@SM_BASH,chase,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2239,Stalker Gertie@SM_BASH,attack,5,10,5000,0,5000,no,target,always,0,,,,,,,
-2239,Stalker Gertie@NPC_GUIDEDATTACK,attack,172,10,2000,0,0,yes,target,myhpltmaxrate,30,,,,,,,
-2239,Stalker Gertie@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2239,Stalker Gertie@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2239,Stalker Gertie@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2239,Stalker Gertie@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2239,Stalker Gertie@NPC_POISONATTACK,attack,188,5,2000,0,5000,yes,target,always,0,,,,,,,
-2240,Clown Alphoccio@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2240,Clown Alphoccio@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2240,Clown Alphoccio@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,0,
-2240,Clown Alphoccio@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,0,
-2240,Clown Alphoccio@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2229,2230,2231,2232,0,
-2240,Clown Alphoccio@NPC_PULSESTRIKE,attack,661,5,2000,0,5000,no,self,always,0,,,,,,7,
-2240,Clown Alphoccio@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@CG_TAROTCARD,chase,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2240,Clown Alphoccio@CG_TAROTCARD,attack,489,5,10000,0,5000,no,target,always,0,,,,,,18,
-2240,Clown Alphoccio@CG_TAROTCARD,attack,489,5,2000,0,0,no,target,myhpltmaxrate,30,,,,,,18,
-2240,Clown Alphoccio@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2240,Clown Alphoccio@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2240,Clown Alphoccio@WZ_FROSTNOVA,chase,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@WZ_FROSTNOVA,attack,88,10,5000,0,10000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@BA_MUSICALSTRIKE,chase,316,5,10000,0,10000,no,target,always,0,,,,,,,
-2240,Clown Alphoccio@BA_MUSICALSTRIKE,attack,316,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2240,Clown Alphoccio@BA_DISSONANCE,chase,317,5,500,0,30000,no,self,always,0,,,,,,,
-// 2240,Clown Alphoccio@BA_DISSONANCE,attack,317,5,500,0,30000,no,self,always,0,,,,,,,
-2240,Clown Alphoccio@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2240,Clown Alphoccio@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2240,Clown Alphoccio@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2240,Clown Alphoccio@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2240,Clown Alphoccio@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2240,Clown Alphoccio@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
-2241,Gypsy Trentini@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2241,Gypsy Trentini@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2241,Gypsy Trentini@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,0,
-2241,Gypsy Trentini@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,0,
-2241,Gypsy Trentini@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,2228,2229,2230,2231,2232,0,
-2241,Gypsy Trentini@NPC_PULSESTRIKE,attack,661,5,10000,0,5000,no,self,always,0,,,,,,7,
-2241,Gypsy Trentini@NPC_SLOWCAST,chase,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_SLOWCAST,attack,672,5,10000,0,30000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@CG_TAROTCARD,chase,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2241,Gypsy Trentini@CG_TAROTCARD,attack,489,5,10000,0,10000,no,target,always,0,,,,,,18,
-2241,Gypsy Trentini@CG_TAROTCARD,attack,489,5,2000,0,0,no,target,myhpltmaxrate,30,,,,,,18,
-2241,Gypsy Trentini@CG_ARROWVULCAN,chase,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2241,Gypsy Trentini@CG_ARROWVULCAN,attack,394,10,10000,500,10000,no,target,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_WIDESTUN,chase,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_WIDESTUN,attack,678,5,5000,0,10000,no,self,always,0,,,,,,,
-2241,Gypsy Trentini@DC_THROWARROW,chase,324,5,10000,0,10000,no,target,always,0,,,,,,,
-2241,Gypsy Trentini@DC_THROWARROW,attack,324,5,10000,0,10000,no,target,always,0,,,,,,,
-// currently not working properly
-// 2241,Gypsy Trentini@DC_UGLYDANCE,chase,325,5,500,0,30000,no,self,always,0,,,,,,,
-// 2241,Gypsy Trentini@DC_UGLYDANCE,attack,325,5,500,0,30000,no,self,always,0,,,,,,,
-2241,Gypsy Trentini@AC_DOUBLE,attack,46,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2241,Gypsy Trentini@AC_SHOWER,attack,47,10,2000,0,3000,yes,target,always,0,,,,,,6,
-2241,Gypsy Trentini@NPC_AGIUP,idle,350,5,10000,0,35000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2241,Gypsy Trentini@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-2241,Gypsy Trentini@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,0,,,,,,,
-2241,Gypsy Trentini@NPC_WINDATTACK,attack,187,5,2000,0,5000,yes,target,always,0,,,,,,,
+2227,Trentini@NPC_AGIUP,attack,350,1,2000,0,100000,yes,self,always,,,,,,,,
+2227,Trentini@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2227,Trentini@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+2227,Trentini@NPC_SLOWCAST,attack,672,1,1000,800,30000,no,self,always,,,,,,,36,
+2227,Trentini@NPC_SLOWCAST,chase,672,1,1000,300,30000,no,self,always,,,,,,,36,
+2227,Trentini@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2227,Trentini@NPC_UGLYDANCE,attack,2541,3,1000,1000,100000,no,target,always,,,,,,,,
+2227,Trentini@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+2228,Randel@AL_HEAL,attack,28,4,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,5,
+2228,Randel@AL_HEAL,attack,28,4,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,5,
+2228,Randel@CR_AUTOGUARD,attack,249,5,2000,0,300000,yes,self,always,,,,,,,,
+2228,Randel@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2228,Randel@CR_GRANDCROSS,attack,254,1,500,1500,5000,no,self,attackpcge,2,,,,,,,
+2228,Randel@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,,,,,,,,
+2228,Randel@CR_REFLECTSHIELD,attack,252,5,100,0,200000,yes,self,always,,,,,,,32,
+2228,Randel@CR_REFLECTSHIELD,attack,252,5,10000,0,200000,yes,self,casttargeted,,,,,,,32,
+2228,Randel@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,,,,,,,9,
+2228,Randel@NPC_DEFENDER,attack,205,1,1000,0,5000,yes,self,longrangeattacked,,,,,,,29,
+2228,Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,,,,,,,9,
+2228,Randel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2228,Randel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2228,Randel@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+2228,Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,,
+2228,Randel@PA_PRESSURE,attack,367,2,1000,0,5000,no,target,always,,,,,,,,
+2228,Randel@WZ_STORMGUST,idle,89,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2228,Randel@WZ_STORMGUST,walk,89,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2229,Flamel@AM_ACIDTERROR,chase,230,5,1500,0,5000,yes,target,always,,,,,,,29,
+2229,Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2229,Flamel@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2229,Flamel@AM_POTIONPITCHER,attack,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2229,Flamel@AM_POTIONPITCHER,idle,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2229,Flamel@AM_POTIONPITCHER,chase,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2229,Flamel@AM_POTIONPITCHER,attack,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2229,Flamel@AM_POTIONPITCHER,idle,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2229,Flamel@AM_POTIONPITCHER,chase,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2229,Flamel@CR_ACIDDEMONSTRATION,attack,490,1,1000,3000,300000,no,target,always,,,,,,,,
+2229,Flamel@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2229,Flamel@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2229,Flamel@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2229,Flamel@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,,,,,,,,
+2229,Flamel@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+2229,Flamel@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2229,Flamel@WZ_STORMGUST,idle,89,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2229,Flamel@WZ_STORMGUST,walk,89,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2230,Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREBALL,attack,17,10,3000,500,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREBALL,idle,17,10,10000,500,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREBALL,chase,17,10,3000,500,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREBALL,chase,17,10,10000,500,10000,yes,target,skillused,18,,,,,,,
+2230,Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_FROSTDIVER,chase,15,10,10000,1000,10000,yes,target,skillused,18,,,,,,,
+2230,Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_SAFETYWALL,attack,12,10,3000,0,10000,yes,self,always,,,,,,,,
+2230,Celia@MG_THUNDERSTORM,attack,21,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@MG_THUNDERSTORM,chase,21,10,3000,1000,10000,yes,target,always,,,,,,,,
+2230,Celia@NPC_ATTRICHANGE,attack,161,1,10000,500,6000000,yes,self,myhpltmaxrate,70,,,,,,9,
+2230,Celia@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,yes,self,myhpltmaxrate,40,,,,,,9,
+2230,Celia@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,yes,self,myhpltmaxrate,10,,,,,,9,
+2230,Celia@NPC_MENTALBREAKER,angry,159,1,500,800,5000,yes,target,always,,,,,,,,
+2230,Celia@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,yes,self,myhpltmaxrate,3,,,,,,,
+2230,Celia@SA_DISPELL,attack,289,5,500,0,30000,yes,target,always,,,,,,,,
+2230,Celia@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,,,,,,,,
+2230,Celia@SA_LANDPROTECTOR,attack,288,1,1000,1500,30000,yes,target,myhpltmaxrate,40,,,,,,33,
+2230,Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2230,Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2230,Celia@WZ_HEAVENDRIVE,attack,91,5,2000,0,20000,yes,target,always,,,,,,,,
+2230,Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2230,Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2230,Celia@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2230,Celia@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2231,Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+2231,Chen@AL_HEAL,attack,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_HEAL,idle,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_HEAL,chase,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_HEAL,attack,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_HEAL,idle,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_HEAL,chase,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2231,Chen@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2231,Chen@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2231,Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2231,Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
+2231,Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2231,Chen@MO_BALKYOUNG,attack,1016,5,100,0,5000,no,target,always,,,,,,,19,
+2231,Chen@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,28,
+2231,Chen@MO_EXTREMITYFIST,attack,271,1,1000,2000,300000,no,target,always,,,,,,,,
+2231,Chen@MO_EXTREMITYFIST,attack,271,1,1000,3000,10000,no,target,always,,,,,,,,
+2231,Chen@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2231,Chen@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2231,Chen@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+2231,Chen@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2231,Chen@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+2231,Chen@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2231,Chen@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+2231,Chen@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+2231,Chen@NPC_POWERUP,attack,349,1,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2231,Chen@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,yes,self,myhpltmaxrate,3,,,,,,,
+2231,Chen@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2231,Chen@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2231,Chen@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2232,Gertie@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2232,Gertie@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2232,Gertie@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2232,Gertie@NPC_POISON,attack,176,5,1000,0,10000,yes,target,always,,,,,,,,
+2232,Gertie@NPC_POISONATTACK,attack,188,5,1000,0,5000,yes,target,always,,,,,,,,
+2232,Gertie@NPC_SELFDESTRUCTION,attack,173,1,2000,2000,0,no,self,myhpltmaxrate,3,,,,,,,
+2232,Gertie@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2232,Gertie@RG_CLOSECONFINE,attack,1005,1,1000,0,30000,yes,target,always,,,,,,,,
+2232,Gertie@RG_STRIPARMOR,attack,217,1,500,0,60000,yes,target,myhpltmaxrate,50,,,,,,,
+2232,Gertie@RG_STRIPHELM,attack,218,1,500,0,60000,yes,target,myhpltmaxrate,90,,,,,,,
+2232,Gertie@RG_STRIPSHIELD,attack,216,1,500,0,60000,yes,target,myhpltmaxrate,70,,,,,,,
+2232,Gertie@RG_STRIPWEAPON,attack,215,1,500,0,60000,yes,target,myhpltmaxrate,30,,,,,,,
+2232,Gertie@ST_FULLSTRIP,attack,476,1,100,0,60000,no,target,myhpltmaxrate,30,,,,,,34,
+2232,Gertie@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2232,Gertie@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2233,Alphoccio@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2233,Alphoccio@NPC_DISSONANCE,attack,2540,3,1000,1000,120000,yes,target,always,,,,,,,,
+2233,Alphoccio@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,yes,self,always,,,,,,,,
+2233,Alphoccio@NPC_SLOWCAST,attack,672,1,2000,800,30000,yes,self,always,,,,,,,36,
+2233,Alphoccio@NPC_SLOWCAST,chase,672,1,2000,300,30000,yes,self,always,,,,,,,36,
+2233,Alphoccio@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2233,Alphoccio@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+2233,Alphoccio@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2233,Alphoccio@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2234,Trentini@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2234,Trentini@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2234,Trentini@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2234,Trentini@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+2234,Trentini@NPC_SLOWCAST,attack,672,1,1000,800,30000,no,self,always,,,,,,,36,
+2234,Trentini@NPC_SLOWCAST,chase,672,1,1000,300,30000,no,self,always,,,,,,,36,
+2234,Trentini@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2234,Trentini@NPC_UGLYDANCE,attack,2541,3,1000,1000,120000,no,target,always,,,,,,,,
+2234,Trentini@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+2234,Trentini@WZ_METEOR,idle,83,1,10000,0,0,yes,target,rudeattacked,,,,,,,,
+2234,Trentini@WZ_METEOR,walk,83,1,5000,0,5000,yes,target,rudeattacked,,,,,,,,
+2235,Randel@AL_HEAL,attack,28,7,10000,0,1000,yes,friend,friendhpltmaxrate,5,,,,,,5,
+2235,Randel@AL_HEAL,idle,28,7,3000,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,5,
+2235,Randel@AL_HEAL,attack,28,7,10000,0,1000,yes,self,myhpltmaxrate,10,,,,,,5,
+2235,Randel@AL_HEAL,idle,28,7,3000,0,1500,yes,self,myhpltmaxrate,99,,,,,,5,
+2235,Randel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2235,Randel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2235,Randel@CR_AUTOGUARD,attack,249,5,2000,0,300000,yes,self,always,,,,,,,,
+2235,Randel@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2235,Randel@CR_GRANDCROSS,attack,254,1,500,1500,5000,no,self,attackpcge,2,,,,,,,
+2235,Randel@CR_HOLYCROSS,attack,253,3,500,0,5000,yes,target,always,,,,,,,,
+2235,Randel@CR_REFLECTSHIELD,attack,252,5,100,0,200000,yes,self,always,,,,,,,32,
+2235,Randel@CR_REFLECTSHIELD,attack,252,5,10000,0,200000,yes,self,casttargeted,,,,,,,32,
+2235,Randel@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,,,,,,,9,
+2235,Randel@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2235,Randel@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2235,Randel@NPC_CHANGEFIRE,attack,164,1,10000,500,60000000,no,self,myhpltmaxrate,70,,,,,,9,
+2235,Randel@NPC_CHANGEHOLY,attack,167,1,10000,500,60000000,no,self,myhpltmaxrate,40,,,,,,9,
+2235,Randel@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,60000000,no,self,myhpltmaxrate,10,,,,,,9,
+2235,Randel@NPC_DEFENDER,attack,205,1,1000,0,5000,yes,self,longrangeattacked,,,,,,,29,
+2235,Randel@NPC_HOLYATTACK,attack,189,5,2000,0,5000,yes,target,always,,,,,,,9,
+2235,Randel@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2235,Randel@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2235,Randel@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,,
+2235,Randel@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2235,Randel@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2229,2230,2231,2232,2233,,
+2235,Randel@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2229,2230,2231,2232,2233,,
+2235,Randel@PA_PRESSURE,attack,367,5,500,0,5000,no,target,always,,,,,,,,
+2236,Flamel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2236,Flamel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2236,Flamel@AM_ACIDTERROR,chase,230,5,1500,0,5000,yes,target,always,,,,,,,29,
+2236,Flamel@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2236,Flamel@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2236,Flamel@AM_POTIONPITCHER,attack,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2236,Flamel@AM_POTIONPITCHER,idle,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2236,Flamel@AM_POTIONPITCHER,chase,231,5,10000,500,5000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+2236,Flamel@AM_POTIONPITCHER,attack,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2236,Flamel@AM_POTIONPITCHER,idle,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2236,Flamel@AM_POTIONPITCHER,chase,231,5,10000,500,5000,yes,self,myhpltmaxrate,30,,,,,,5,
+2236,Flamel@CR_ACIDDEMONSTRATION,attack,490,1,1000,2000,12000,no,target,always,,,,,,,,
+2236,Flamel@CR_ACIDDEMONSTRATION,attack,490,3,1000,2500,60000,no,target,myhpltmaxrate,10,,,,,,,
+2236,Flamel@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2236,Flamel@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2236,Flamel@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2236,Flamel@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2236,Flamel@NPC_CHANGEFIRE,attack,164,1,10000,500,60000000,no,self,myhpltmaxrate,70,,,,,,9,
+2236,Flamel@NPC_CHANGEHOLY,attack,167,1,10000,500,60000000,no,self,myhpltmaxrate,40,,,,,,9,
+2236,Flamel@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,60000000,no,self,myhpltmaxrate,10,,,,,,9,
+2236,Flamel@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2236,Flamel@NPC_FIREATTACK,attack,186,5,1000,0,5000,yes,target,always,,,,,,,,
+2236,Flamel@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2236,Flamel@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2236,Flamel@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2230,2231,2232,2233,,
+2236,Flamel@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2230,2231,2232,2233,,
+2237,Celia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2237,Celia@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2237,Celia@MG_COLDBOLT,attack,14,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_COLDBOLT,chase,14,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREBALL,attack,17,10,3000,500,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREBALL,idle,17,10,10000,500,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREBALL,chase,17,10,3000,500,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREBALL,chase,17,10,10000,500,10000,no,target,skillused,18,,,,,,,
+2237,Celia@MG_FIREBOLT,attack,19,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREBOLT,chase,19,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREWALL,attack,18,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FIREWALL,chase,18,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FROSTDIVER,attack,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FROSTDIVER,idle,15,10,10000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FROSTDIVER,chase,15,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_FROSTDIVER,chase,15,10,10000,1000,10000,no,target,skillused,18,,,,,,,
+2237,Celia@MG_LIGHTNINGBOLT,attack,20,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_LIGHTNINGBOLT,chase,20,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_SAFETYWALL,attack,12,10,3000,0,10000,yes,self,always,,,,,,,,
+2237,Celia@MG_THUNDERSTORM,attack,21,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@MG_THUNDERSTORM,chase,21,10,3000,1000,10000,no,target,always,,,,,,,,
+2237,Celia@NPC_ATTRICHANGE,attack,161,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+2237,Celia@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2237,Celia@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2237,Celia@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+2237,Celia@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2237,Celia@NPC_MENTALBREAKER,attack,159,5,2000,0,5000,yes,target,always,,,,,,,7,
+2237,Celia@NPC_MENTALBREAKER,chase,159,5,2000,0,5000,yes,target,always,,,,,,,7,
+2237,Celia@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2237,Celia@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2231,2232,2233,,
+2237,Celia@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2231,2232,2233,,
+2237,Celia@NPC_WIDESOULDRAIN,attack,680,5,1000,500,5000,no,self,always,,,,,,,42,
+2237,Celia@NPC_WIDESOULDRAIN,chase,680,5,1000,500,5000,no,self,always,,,,,,,42,
+2237,Celia@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2237,Celia@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2237,Celia@SA_LANDPROTECTOR,attack,288,5,1000,0,30000,yes,target,always,,,,,,,,
+2237,Celia@WZ_EARTHSPIKE,attack,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2237,Celia@WZ_EARTHSPIKE,chase,90,5,3000,0,10000,yes,target,always,,,,,,,,
+2237,Celia@WZ_HEAVENDRIVE,attack,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2237,Celia@WZ_HEAVENDRIVE,chase,91,5,3000,0,10000,yes,target,always,,,,,,,,
+2238,Chen@AL_DECAGI,chase,30,10,2000,0,10000,yes,target,always,,,,,,,,
+2238,Chen@AL_HEAL,attack,28,6,10000,0,1000,yes,friend,friendhpltmaxrate,5,,,,,,3,
+2238,Chen@AL_HEAL,attack,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_HEAL,idle,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_HEAL,chase,28,6,3000,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_HEAL,attack,28,6,10000,0,1000,yes,self,myhpltmaxrate,10,,,,,,3,
+2238,Chen@AL_HEAL,attack,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_HEAL,idle,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_HEAL,chase,28,6,3000,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+2238,Chen@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2238,Chen@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,,,,,,,2,
+2238,Chen@AL_PNEUMA,attack,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2238,Chen@AL_PNEUMA,idle,25,1,10000,0,0,yes,self,longrangeattacked,,,,,,,,
+2238,Chen@AL_PNEUMA,chase,25,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,19,
+2238,Chen@MO_BODYRELOCATION,chase,264,1,2000,500,5000,no,target,always,,,,,,,28,
+2238,Chen@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2238,Chen@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2238,Chen@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2238,Chen@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2238,Chen@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+2238,Chen@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2238,Chen@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+2238,Chen@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2238,Chen@NPC_HOLYATTACK,attack,189,10,1000,0,5000,yes,target,always,,,,,,,,
+2238,Chen@NPC_POWERUP,attack,349,1,2000,0,100000,yes,self,always,,,,,,,,
+2238,Chen@NPC_POWERUP,attack,349,1,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2238,Chen@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2238,Chen@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2238,Chen@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2232,2233,,
+2238,Chen@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2232,2233,,
+2239,Gertie@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2239,Gertie@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2239,Gertie@AS_CLOAKING,attack,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2239,Gertie@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2239,Gertie@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,,,,,,,,
+2239,Gertie@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2239,Gertie@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2239,Gertie@NPC_ARMORBRAKE,attack,344,1,500,0,20000,yes,target,myhpltmaxrate,50,,,,,,,
+2239,Gertie@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2239,Gertie@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2239,Gertie@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+2239,Gertie@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2239,Gertie@NPC_CHANGEWIND,attack,165,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+2239,Gertie@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2239,Gertie@NPC_HELMBRAKE,attack,345,1,500,0,2000,yes,target,myhpltmaxrate,90,,,,,,,
+2239,Gertie@NPC_POISON,attack,176,5,1000,0,10000,yes,target,always,,,,,,,,
+2239,Gertie@NPC_POISONATTACK,attack,188,10,1000,0,5000,yes,target,always,,,,,,,,
+2239,Gertie@NPC_SHIELDBRAKE,attack,346,5,500,0,20000,yes,target,myhpltmaxrate,70,,,,,,,
+2239,Gertie@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2239,Gertie@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2239,Gertie@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2233,,
+2239,Gertie@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2233,,
+2239,Gertie@NPC_WEAPONBRAKER,attack,343,1,500,0,30000,yes,target,myhpltmaxrate,30,,,,,,,
+2239,Gertie@RG_STRIPARMOR,attack,217,5,500,0,20000,yes,target,myhpltmaxrate,50,,,,,,,
+2239,Gertie@RG_STRIPHELM,attack,218,5,500,0,20000,yes,target,myhpltmaxrate,90,,,,,,,
+2239,Gertie@RG_STRIPSHIELD,attack,216,5,500,0,20000,yes,target,myhpltmaxrate,70,,,,,,,
+2239,Gertie@RG_STRIPWEAPON,attack,215,5,500,0,20000,yes,target,myhpltmaxrate,30,,,,,,,
+2239,Gertie@ST_FULLSTRIP,attack,476,5,100,1000,30000,no,target,myhpltmaxrate,80,,,,,,37,
+2240,Alphoccio@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2240,Alphoccio@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2240,Alphoccio@NPC_ASSASSINCROSS,attack,2539,10,1000,1000,150000,no,target,always,,,,,,,,
+2240,Alphoccio@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2240,Alphoccio@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2240,Alphoccio@NPC_CHANGEHOLY,attack,167,1,10000,500,6000000,no,self,myhpltmaxrate,40,,,,,,9,
+2240,Alphoccio@NPC_CHANGETELEKINESIS,attack,169,1,10000,500,6000000,no,self,myhpltmaxrate,10,,,,,,9,
+2240,Alphoccio@NPC_CHANGEWATER,attack,162,1,10000,500,6000000,no,self,myhpltmaxrate,70,,,,,,9,
+2240,Alphoccio@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2240,Alphoccio@NPC_POWERUP,attack,349,5,2000,0,100000,yes,self,always,,,,,,,,
+2240,Alphoccio@NPC_POWERUP,attack,349,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2240,Alphoccio@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+2240,Alphoccio@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
+2240,Alphoccio@NPC_SLOWCAST,attack,672,1,2000,800,30000,no,self,always,,,,,,,36,
+2240,Alphoccio@NPC_SLOWCAST,chase,672,1,2000,300,30000,no,self,always,,,,,,,36,
+2240,Alphoccio@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2240,Alphoccio@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2240,Alphoccio@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,,
+2240,Alphoccio@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,,
+2240,Alphoccio@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+2241,Trentini@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2241,Trentini@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2241,Trentini@NPC_AGIUP,attack,350,5,2000,0,100000,yes,self,always,,,,,,,,
+2241,Trentini@NPC_AGIUP,attack,350,5,2000,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+2241,Trentini@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2241,Trentini@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,,,,,,,,
+2241,Trentini@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2241,Trentini@NPC_PULSESTRIKE,attack,661,3,1000,1000,5000,no,self,always,,,,,,,,
+2241,Trentini@NPC_SLOWCAST,attack,672,1,2000,800,30000,no,self,always,,,,,,,36,
+2241,Trentini@NPC_SLOWCAST,chase,672,1,2000,300,30000,no,self,always,,,,,,,36,
+2241,Trentini@NPC_STUNATTACK,attack,179,5,1000,0,5000,yes,target,always,,,,,,,,
+2241,Trentini@NPC_SUMMONMONSTER,attack,209,5,10000,700,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+2241,Trentini@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,,
+2241,Trentini@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2228,2229,2230,2231,2232,,
+2241,Trentini@NPC_UGLYDANCE,attack,2541,5,1000,1000,70000,no,target,always,,,,,,,,
+2241,Trentini@NPC_VAMPIRE_GIFT,attack,679,10,10000,1000,10000,no,self,myhpltmaxrate,70,,,,,,47,
+2241,Trentini@NPC_WINDATTACK,attack,187,5,1000,0,5000,yes,target,always,,,,,,,,
+2242,Desert Wolf@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2242,Desert Wolf@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2242,Desert Wolf@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2242,Desert Wolf@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2242,Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+2243,Baby Desert Wolf@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2243,Baby Desert Wolf@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2243,Baby Desert Wolf@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2243,Baby Desert Wolf@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2243,Baby Desert Wolf@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
// Guild Dungeon F2
-// currently not enough info about the new guild dungeon mob's skills to finish
-2249,Pyuriel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2249,Pyuriel@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2249,Pyuriel@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2249,Pyuriel@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2249,Pyuriel@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2250,,,,,,
-2249,Pyuriel@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2250,,,,,,
+2249,Angry Student Pyuriel@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2249,Angry Student Pyuriel@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+2249,Angry Student Pyuriel@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
+2249,Angry Student Pyuriel@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2249,Angry Student Pyuriel@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2249,Angry Student Pyuriel@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2249,Angry Student Pyuriel@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2249,Angry Student Pyuriel@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2249,Angry Student Pyuriel@NPC_CRITICALWOUND,attack,673,4,2000,0,5000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2249,Angry Student Pyuriel@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2249,Angry Student Pyuriel@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2249,Angry Student Pyuriel@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,no,self,slavele,1,2277,,,,,,
+2249,Angry Student Pyuriel@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,no,self,slavele,1,2277,,,,,,
+2249,Angry Student Pyuriel@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,no,self,slavele,1,2277,,,,,,
+2249,Angry Student Pyuriel@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2249,Angry Student Pyuriel@WZ_METEOR,attack,83,10,2000,500,5000,no,target,myhpltmaxrate,90,,,,,,,
+2249,Angry Student Pyuriel@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,,
+2249,Angry Student Pyuriel@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,always,,,,,,,,
+2250,Warrior Laura@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2250,Warrior Laura@NPC_BLEEDING,attack,660,3,10,0,5000,yes,target,always,,,,,,,,
+2250,Warrior Laura@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2250,Warrior Laura@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2250,Warrior Laura@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2250,Warrior Laura@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2250,Warrior Laura@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2250,Warrior Laura@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2250,Warrior Laura@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,,,,,,,,
+2250,Warrior Laura@SM_BASH,attack,5,9,1000,800,5000,no,target,always,,,,,,,32,
+2250,Warrior Laura@SM_BASH,attack,5,9,10000,800,1000,no,target,skillused,5,,,,,,32,
+2250,Warrior Laura@SM_MAGNUM,attack,7,9,5000,500,5000,no,self,attackpcge,2,,,,,,,
+2250,Warrior Laura@SM_PROVOKE,chase,6,9,500,600,5000,no,target,always,,,,,,,6,
+2251,Gioia@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,50,,,,,,,
+2251,Gioia@AL_HEAL,idle,28,1,10000,0,10000,yes,self,myhpltmaxrate,99,,,,,,,
+2251,Gioia@AL_PNEUMA,idle,25,1,10000,0,1000,yes,self,longrangeattacked,,,,,,,,
2251,Gioia@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2251,Gioia@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2251,Gioia@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2251,Gioia@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2251,Gioia@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2252,,,,,,
-2251,Gioia@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2252,,,,,,
-2253,Daehyon@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2253,Daehyon@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2253,Daehyon@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2253,Daehyon@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2253,Daehyon@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2254,,,,,,
-2253,Daehyon@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2254,,,,,,
-2255,Kades@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2255,Kades@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2255,Kades@NPC_CALLSLAVE,attack,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2255,Kades@NPC_CALLSLAVE,idle,352,1,10000,0,10000,yes,self,always,0,,,,,,,
-2255,Kades@NPC_SUMMONSLAVE,attack,196,5,10000,700,10000,no,self,slavele,3,2256,,,,,,
-2255,Kades@NPC_SUMMONSLAVE,idle,196,5,10000,700,10000,no,self,slavele,3,2256,,,,,,
-//
-2281,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,0,,,,,,,
-2281,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,,,,,,
-2281,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,,
-2281,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,0,,,,,,,
-2282,Dark Frame@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,0,,,,,,1,
-2282,Dark Frame@NPC_BLINDATTACK,chase,177,3,500,0,5000,yes,target,always,0,,,,,,1,
-2282,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,0,,,,,,26,
-2282,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2282,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2282,Dark Frame@CR_REFLECTSHIELD,attack,252,2,500,0,300000,no,self,always,0,,,,,,7,
-2282,Dark Frame@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,0,,,,,,2,
-2282,Dark Frame@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,0,,,,,,2,
-2283,Dark Priest@NPC_DARKCROSS,attack,338,10,5000,0,10000,yes,target,always,0,,,,,,9,
-2283,Dark Priest@NPC_CHANGEUNDEAD,attack,348,5,1000,1000,30000,no,target,always,0,,,,,,9,
+2251,Gioia@KN_TWOHANDQUICKEN,attack,60,9,10000,0,100000,yes,self,myhpltmaxrate,30,,,,,,,
+2251,Gioia@MG_SAFETYWALL,attack,12,10,1000,1000,10000,no,self,always,,,,,,,18,
+2251,Gioia@MG_THUNDERSTORM,attack,21,10,10000,0,30000,yes,target,always,,,,,,,,
+2251,Gioia@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2251,Gioia@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2251,Gioia@NPC_CRITICALWOUND,attack,673,3,2000,0,30000,yes,target,always,,,,,,,,
+2251,Gioia@NPC_DRAGONFEAR,attack,659,5,10000,0,10000,yes,self,always,,,,,,,,
+2251,Gioia@NPC_DRAGONFEAR,chase,659,5,10000,0,10000,yes,self,always,,,,,,,,
+2251,Gioia@NPC_EARTHQUAKE,attack,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
+2251,Gioia@NPC_EARTHQUAKE,chase,653,5,10000,500,20000,no,self,myhpltmaxrate,40,,,,,,,
+2251,Gioia@NPC_FIREBREATH,attack,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
+2251,Gioia@NPC_FIREBREATH,chase,654,10,2000,500,5000,no,target,myhpltmaxrate,80,,,,,,,
+2251,Gioia@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,20,,,,,,6,
+2251,Gioia@NPC_PULSESTRIKE,attack,661,5,10000,0,15000,yes,self,myhpltmaxrate,60,,,,,,,
+2251,Gioia@NPC_SUMMONSLAVE,attack,196,1,10000,1000,30000,no,self,slavele,1,2278,,,,,,
+2251,Gioia@NPC_SUMMONSLAVE,idle,196,1,10000,1000,30000,no,self,slavele,1,2278,,,,,,
+2251,Gioia@NPC_SUMMONSLAVE,chase,196,1,10000,1000,30000,no,self,slavele,1,2278,,,,,,
+2251,Gioia@SA_LANDPROTECTOR,attack,288,3,5000,0,5000,yes,target,always,,,,,,,,
+2251,Gioia@ST_FULLSTRIP,attack,476,5,2000,0,5000,yes,target,always,,,,,,,,
+2251,Gioia@WZ_METEOR,idle,83,9,10000,0,5000,yes,target,always,,,,,,,,
+2252,Elvira@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2252,Elvira@KN_TWOHANDQUICKEN,attack,60,10,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
+2252,Elvira@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+2252,Elvira@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,yes,self,myhpltmaxrate,20,,,,,,,
+2252,Elvira@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+2252,Elvira@WZ_JUPITEL,attack,84,1,2000,0,5000,yes,target,always,,,,,,,,
+2252,Elvira@WZ_JUPITEL,attack,84,5,2000,0,5000,yes,target,always,,,,,,,,
+2252,Elvira@WZ_JUPITEL,chase,84,1,2000,0,5000,yes,target,always,,,,,,,,
+2252,Elvira@WZ_JUPITEL,chase,84,5,1000,0,5000,yes,target,always,,,,,,,,
+2253,General Daehyon@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2253,General Daehyon@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2253,General Daehyon@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,18,
+2253,General Daehyon@BS_MAXIMIZE,attack,114,5,500,0,30000,yes,self,always,,,,,,,,
+2253,General Daehyon@BS_MAXIMIZE,chase,114,5,500,0,30000,yes,self,always,,,,,,,,
+2253,General Daehyon@NPC_AGIUP,attack,350,5,10000,0,120000,yes,self,myhpltmaxrate,30,,,,,,6,
+2253,General Daehyon@NPC_BLEEDING,attack,660,2,500,0,5000,yes,target,always,,,,,,,,
+2253,General Daehyon@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2253,General Daehyon@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2253,General Daehyon@NPC_GROUNDATTACK,attack,185,5,2000,0,5000,yes,target,always,,,,,,,6,
+2253,General Daehyon@NPC_STUNATTACK,attack,179,5,2000,0,5000,yes,target,always,,,,,,,6,
+2253,General Daehyon@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,yes,self,slavele,1,2279,,,,,,
+2253,General Daehyon@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,yes,self,slavele,1,2279,,,,,,
+2253,General Daehyon@NPC_WEAPONBRAKER,attack,343,10,500,0,20000,yes,target,always,,,,,,,18,
+2253,General Daehyon@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,6,
+2253,General Daehyon@WZ_WATERBALL,attack,86,5,2000,500,20000,yes,target,always,,,,,,,18,
+2253,General Daehyon@WZ_WATERBALL,chase,86,10,10000,500,5000,yes,target,skillused,18,,,,,,,
+2254,Samurai Soheon@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,,,,,,,,
+2254,Samurai Soheon@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,,,,,,,,
+2254,Samurai Soheon@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+2254,Samurai Soheon@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29,
+2254,Samurai Soheon@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6,
+2254,Samurai Soheon@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18,
+2254,Samurai Soheon@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,,
+2254,Samurai Soheon@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,,
+2255,Dark Guardian Kades@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2255,Dark Guardian Kades@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2255,Dark Guardian Kades@AM_DEMONSTRATION,attack,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2255,Dark Guardian Kades@AM_DEMONSTRATION,chase,229,5,2000,0,5000,yes,target,always,,,,,,,,
+2255,Dark Guardian Kades@KN_PIERCE,attack,56,10,1000,0,5000,no,target,always,,,,,,,,
+2255,Dark Guardian Kades@MG_FIREBALL,attack,17,10,1000,500,20000,no,target,always,,,,,,,,
+2255,Dark Guardian Kades@MG_FIREBALL,chase,17,10,10000,500,20000,no,target,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_BLEEDING,attack,660,3,2000,0,50000,yes,target,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_FIREATTACK,attack,186,10,1000,0,5000,no,target,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_FIREBREATH,chase,654,10,2000,500,10000,no,target,myhpltmaxrate,80,,,,,,,
+2255,Dark Guardian Kades@NPC_POWERUP,attack,349,5,2000,700,50000,no,self,always,,,,,,,,
+2255,Dark Guardian Kades@NPC_POWERUP,attack,349,5,10000,700,25000,no,self,myhpltmaxrate,30,,,,,,,
+2255,Dark Guardian Kades@NPC_SUMMONSLAVE,attack,196,1,10000,700,30000,no,self,slavele,1,2280,,,,,,
+2255,Dark Guardian Kades@NPC_SUMMONSLAVE,idle,196,1,10000,700,30000,no,self,slavele,1,2280,,,,,,
+2255,Dark Guardian Kades@NPC_TELEKINESISATTACK,attack,191,10,1000,0,5000,no,target,always,,,,,,,,
+2255,Dark Guardian Kades@SM_MAGNUM,attack,7,10,10000,0,5000,yes,self,attackpcge,2,,,,,,,
+2255,Dark Guardian Kades@WZ_FIREPILLAR,idle,80,10,1000,0,5000,yes,around2,always,,,,,,,,
+2255,Dark Guardian Kades@WZ_SIGHTRASHER,attack,81,10,2000,0,5000,yes,self,always,,,,,,,,
+2256,Rudo@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2256,Rudo@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,,
+2256,Rudo@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,,,,,,,,
+2256,Rudo@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,,,,,,,,
+2256,Rudo@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,,,,,,,,
+2256,Rudo@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,,,,,,,,
+2256,Rudo@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,,,,,,,18,
+2256,Rudo@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,,,,,,,18,
+2277,Warrior Laura@NPC_BLEEDING,attack,660,3,10,0,5000,yes,target,always,,,,,,,,
+2277,Warrior Laura@NPC_CRITICALSLASH,attack,170,1,1000,0,5000,yes,target,always,,,,,,,,
+2277,Warrior Laura@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2277,Warrior Laura@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2277,Warrior Laura@NPC_EMOTION,attack,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2277,Warrior Laura@NPC_EMOTION,idle,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2277,Warrior Laura@NPC_EMOTION,chase,197,1,10000,0,5000,yes,self,skillused,28,15,,,,,,
+2277,Warrior Laura@NPC_FIREATTACK,attack,186,3,500,0,5000,yes,target,always,,,,,,,,
+2277,Warrior Laura@SM_BASH,attack,5,9,1000,800,5000,no,target,always,,,,,,,32,
+2277,Warrior Laura@SM_BASH,attack,5,9,10000,800,1000,no,target,skillused,5,,,,,,32,
+2277,Warrior Laura@SM_MAGNUM,attack,7,9,5000,500,5000,no,self,attackpcge,2,,,,,,,
+2277,Warrior Laura@SM_PROVOKE,chase,6,9,500,600,5000,no,target,always,,,,,,,6,
+2278,Elvira@KN_TWOHANDQUICKEN,attack,60,10,2000,0,300000,yes,self,myhpltmaxrate,40,,,,,,,
+2278,Elvira@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,,,,,,,,
+2278,Elvira@NPC_WIDEBLEEDING,attack,665,2,10000,500,100000,no,self,myhpltmaxrate,20,,,,,,,
+2278,Elvira@SM_MAGNUM,attack,7,7,1000,0,10000,yes,self,attackpcge,2,,,,,,,
+2278,Elvira@WZ_JUPITEL,attack,84,1,2000,0,5000,yes,target,always,,,,,,,,
+2278,Elvira@WZ_JUPITEL,attack,84,10,1000,0,5000,yes,target,always,,,,,,,,
+2278,Elvira@WZ_JUPITEL,chase,84,1,2000,0,5000,yes,target,always,,,,,,,,
+2278,Elvira@WZ_JUPITEL,chase,84,10,1000,0,5000,yes,target,always,,,,,,,,
+2279,Soheon@AS_SONICBLOW,attack,136,1,2000,0,5000,yes,target,always,,,,,,,,
+2279,Soheon@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,,
+2279,Soheon@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29,
+2279,Soheon@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6,
+2279,Soheon@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18,
+2279,Soheon@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,,
+2279,Soheon@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,,
+2280,Rudo@AS_SONICBLOW,attack,136,10,1000,0,10000,yes,target,always,,,,,,,,
+2280,Rudo@MG_NAPALMBEAT,attack,11,5,1000,0,5000,yes,target,always,,,,,,,,
+2280,Rudo@MG_NAPALMBEAT,chase,11,5,1000,0,1000,yes,target,always,,,,,,,,
+2280,Rudo@NPC_BLEEDING,attack,660,3,500,500,10000,no,target,always,,,,,,,,
+2280,Rudo@NPC_FIREATTACK,attack,186,5,2000,1000,200000,no,target,always,,,,,,,,
+2280,Rudo@NPC_HOLYATTACK,attack,189,2,500,0,5000,no,target,always,,,,,,,18,
+2280,Rudo@NPC_HOLYATTACK,chase,189,2,500,0,5000,no,target,always,,,,,,,18,
+2281,Dark Shadow@NPC_DARKNESSBREATH,attack,658,1,500,1000,5000,no,target,always,,,,,,,,
+2281,Dark Shadow@NPC_DARKSTRIKE,chase,340,2,2000,0,5000,yes,target,always,,,,,,,,
+2281,Dark Shadow@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,,,,,,
+2281,Dark Shadow@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,,
+2282,Dark Frame@CR_REFLECTSHIELD,attack,252,2,500,0,300000,no,self,always,,,,,,,7,
+2282,Dark Frame@NPC_BLINDATTACK,attack,177,3,1500,0,5000,yes,target,always,,,,,,,1,
+2282,Dark Frame@NPC_BLINDATTACK,chase,177,3,1500,0,5000,yes,target,always,,,,,,,1,
+2282,Dark Frame@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,26,
+2282,Dark Frame@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,0,
+2282,Dark Frame@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,,,,,,,0,
+2282,Dark Frame@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,2,
+2282,Dark Frame@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,no,target,always,,,,,,,2,
2283,Dark Priest@MO_BODYRELOCATION,chase,264,1,10000,0,5000,yes,target,skillused,18,,,,,,,
-2283,Dark Priest@NPC_DARKBREATH,chase,202,5,500,800,30000,no,target,always,0,,,,,,9,
-2283,Dark Priest@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,0,,,,,,,
-2284,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-2284,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2284,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-2284,Kobold@NPC_WINDATTACK,attack,187,3,500,500,5000,no,target,always,0,,,,,,6,
-2285,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-2285,Kobold@NPC_POISONATTACK,attack,188,3,500,500,5000,no,target,always,0,,,,,,6,
-2285,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2285,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-2286,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,22,,,,,,
-2286,Kobold@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,0,,,,,,6,
-2286,Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,,
-2286,Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,9,0x308D,,,,,
-2287,Kobold Archer@AC_DOUBLE,attack,46,1,500,1000,5000,no,target,always,0,,,,,,6,
-2287,Kobold Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,20,,,,,,
-2287,Kobold Archer@NPC_FIREATTACK,attack,186,2,500,500,5000,no,target,always,0,,,,,,6,
+2283,Dark Priest@NPC_BLEEDING,attack,660,3,10,0,5000,yes,target,always,,,,,,,,
+2283,Dark Priest@NPC_CHANGEUNDEAD,attack,348,1,300,1000,30000,no,target,always,,,,,,,9,
+2283,Dark Priest@NPC_DARKBREATH,chase,202,2,500,800,30000,no,target,always,,,,,,,9,
+2283,Dark Priest@NPC_DARKCROSS,attack,338,3,5000,0,10000,yes,target,always,,,,,,,9,
+2283,Dark Priest@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,yes,target,always,,,,,,,,
+2284,Dark Axe Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2284,Dark Axe Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+2284,Dark Axe Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+2284,Dark Axe Kobold@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,,,,,,,6,
+2285,Dark Hammer Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2285,Dark Hammer Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+2285,Dark Hammer Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+2285,Dark Hammer Kobold@NPC_POISONATTACK,attack,188,5,500,500,5000,no,target,always,,,,,,,6,
+2286,Dark Mace Kobold@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2286,Dark Mace Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x308D,,,,,
+2286,Dark Mace Kobold@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,,,,,,
+2286,Dark Mace Kobold@NPC_FIREATTACK,attack,186,5,500,500,5000,no,target,always,,,,,,,6,
+2287,Dark Kobold Archer@AC_DOUBLE,attack,46,3,500,1000,5000,no,target,always,,,,,,,6,
+2287,Dark Kobold Archer@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,20,,,,,,
+2287,Dark Kobold Archer@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
// Malaya Port
-2309,Bungisngis@BS_HAMMERFALL,attack,110,5,1000,1500,5000,no,target,always,0,,,,,,,
-2309,Bungisngis@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2309,Bungisngis@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
-2309,Bungisngis@AS_VENOMDUST,chase,140,1,1000,0,5000,no,target,always,0,,,,,,,
-2309,Bungisngis@AS_VENOMDUST,attack,140,1,1000,0,5000,no,target,always,0,,,,,,,
-2309,Bungisngis@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2309,Bungisngis@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2310,Engkanto@AL_DECAGI,chase,30,5,2000,1000,5000,no,target,always,0,,,,,,29,
-2310,Engkanto@SM_PROVOKE,chase,6,5,1000,600,10000,no,target,always,0,,,,,,,
-2310,Engkanto@SM_PROVOKE,attack,6,5,1000,600,10000,no,target,always,0,,,,,,,
-2310,Engkanto@NPC_BLINDATTACK,chase,177,5,1000,700,5000,no,target,always,0,,,,,,,
-2310,Engkanto@NPC_BLINDATTACK,attack,177,5,1000,700,5000,no,target,always,0,,,,,,,
-2311,Manananggal@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2311,Manananggal@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2311,Manananggal@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,,
-2311,Manananggal@AL_TELEPORT,attack,26,1,100,0,30000,yes,self,always,0,,,,,,,
-2311,Manananggal@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2311,Manananggal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2311,Manananggal@NPC_COMBOATTACK,chase,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
-2311,Manananggal@NPC_COMBOATTACK,attack,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
-2312,Mangkukulam@AL_TELEPORT,idle,26,1,500,0,30000,yes,self,always,0,,,,,,,
-2312,Mangkukulam@AL_TELEPORT,attack,26,1,50,0,30000,yes,self,always,0,,,,,,,
-2312,Mangkukulam@NPC_DARKTHUNDER,chase,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2312,Mangkukulam@NPC_DARKTHUNDER,attack,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2312,Mangkukulam@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-2312,Mangkukulam@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-2313,Tikbalang@AL_DECAGI,chase,30,10,5000,1000,5000,no,target,always,0,,,,,,29,
-2313,Tikbalang@AL_INCAGI,chase,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-2313,Tikbalang@AL_INCAGI,attack,29,10,2000,0,240000,yes,self,always,0,,,,,,2,
-2313,Tikbalang@TF_HIDING,idle,51,1,1000,500,5000,yes,self,always,0,,,,,,19,
-2313,Tikbalang@TF_HIDING,attack,51,1,1000,500,50000,yes,self,always,0,,,,,,19,
-2313,Tikbalang@BS_MAXIMIZE,chase,114,10,1000,500,5000,no,self,always,0,,,,,,,
-2313,Tikbalang@BS_MAXIMIZE,attack,114,10,1000,500,5000,no,self,always,0,,,,,,,
-2313,Tikbalang@NPC_LICK,attack,206,3,2000,0,5000,yes,target,always,0,,,,,,,
-2313,Tikbalang@SM_BASH,attack,5,5,500,800,5000,no,target,always,0,,,,,,,
-2314,Tiyanak@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
-2314,Tiyanak@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
-2314,Tiyanak@NPC_CRITICALSLASH,attack,170,1,2000,0,5000,yes,target,always,0,,,,,,,
-2314,Tiyanak@TF_HIDING,idle,51,1,500,500,5000,yes,self,always,0,,,,,,19,
-2314,Tiyanak@TF_HIDING,attack,51,1,500,500,50000,yes,self,always,0,,,,,,19,
-2314,Tiyanak@NPC_REBIRTH,dead,208,3,5000,0,10000,yes,self,always,0,,,,,,,
+2309,Bungisngis@BS_HAMMERFALL,attack,110,5,500,1500,5000,no,target,always,,,,,,,,
+2309,Bungisngis@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,,,,,,,,
+2309,Bungisngis@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2309,Bungisngis@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,,,,,,,7,
+2309,Bungisngis@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,,,,,,,20,
+2310,Engkanto@AL_DECAGI,chase,30,3,2000,1000,5000,yes,target,always,,,,,,,28,
+2310,Engkanto@NPC_CURSEATTACK,attack,181,5,500,800,5000,yes,target,always,,,,,,,29,
+2310,Engkanto@NPC_POISON,attack,176,4,500,800,5000,yes,target,always,,,,,,,4,
+2310,Engkanto@SM_PROVOKE,chase,6,10,500,600,5000,yes,target,always,,,,,,,4,
+2311,Manananggal@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2311,Manananggal@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,3,
+2311,Manananggal@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,no,target,always,,,,,,,3,
+2311,Manananggal@NPC_COMBOATTACK,angry,171,5,500,700,5000,no,target,always,,,,,,,1,
+2311,Manananggal@NPC_COMBOATTACK,attack,171,5,500,700,5000,no,target,always,,,,,,,1,
+2311,Manananggal@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,,,,,,
+2311,Manananggal@NPC_WINDATTACK,angry,187,2,2000,0,5000,yes,target,always,,,,,,,,
+2311,Manananggal@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+2312,Mangkukulam@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2312,Mangkukulam@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+2312,Mangkukulam@NPC_DARKSTRIKE,attack,340,9,500,700,5000,no,target,always,,,,,,,29,
+2312,Mangkukulam@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,,,,,,,29,
+2312,Mangkukulam@NPC_DARKTHUNDER,attack,341,2,500,500,5000,no,target,always,,,,,,,,
+2312,Mangkukulam@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,14,
+2312,Mangkukulam@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,,,,,,,14,
+2313,Tikbalang@AL_DECAGI,chase,30,10,2000,0,60000,no,target,always,,,,,,,29,
+2313,Tikbalang@BS_MAXIMIZE,attack,114,1,500,0,5000,no,self,always,,,,,,,,
+2313,Tikbalang@NPC_AGIUP,attack,350,10,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,16,
+2313,Tikbalang@NPC_LICK,attack,206,3,500,0,5000,yes,target,always,,,,,,,37,
+2313,Tikbalang@NPC_WINDATTACK,attack,187,5,500,500,5000,no,target,always,,,,,,,6,
+2313,Tikbalang@TF_HIDING,idle,51,1,500,500,25000,no,self,always,,,,,,,,
+2313,Tikbalang@TF_HIDING,attack,51,1,2000,500,5000,no,self,myhpltmaxrate,30,,,,,,29,
+2314,Tiyanak@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2314,Tiyanak@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2314,Tiyanak@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2314,Tiyanak@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2314,Tiyanak@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+2314,Tiyanak@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,,,,,,,,
2315,Wakwak@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
-2315,Wakwak@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
-2315,Wakwak@AL_TELEPORT,idle,26,1,500,0,30000,yes,self,always,0,,,,,,,
-2315,Wakwak@AL_TELEPORT,attack,26,1,50,0,30000,yes,self,always,0,,,,,,,
-2315,Wakwak@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2315,Wakwak@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2315,Wakwak@NPC_DARKTHUNDER,chase,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2315,Wakwak@NPC_DARKTHUNDER,attack,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2315,Wakwak@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2315,Wakwak@NPC_CURSEATTACK,chase,181,3,500,800,5000,no,target,always,0,,,,,,0,
-2316,Jejeling@WZ_WATERBALL,chase,86,7,500,1000,5000,yes,target,always,0,,,,,,,
-2316,Jejeling@WZ_WATERBALL,attack,86,7,500,1000,5000,yes,target,always,0,,,,,,,
-// currently not enough info about the 3 mvp's skills to finish
-2317,Bangungot@NPC_ALLHEAL,idle,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-2317,Bangungot@NPC_ALLHEAL,walk,687,1,3000,10000,10000,no,self,rudeattacked,,,,,,,,
-2317,Bangungot@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2317,Bangungot@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,0,,,,,,,
-2317,Bangungot@AS_SONICBLOW,attack,136,10,2000,0,10000,no,target,always,0,,,,,,,
-2317,Bangungot@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,0,,,,,,,
-2317,Bangungot@NPC_PULSESTRIKE,attack,661,5,10000,0,5000,no,self,always,0,,,,,,7,
-2317,Bangungot@BS_HAMMERFALL,chase,110,11,5000,0,5000,yes,target,always,0,,,,,,,
-2317,Bangungot@BS_HAMMERFALL,attack,110,11,10000,0,5000,yes,target,always,0,,,,,,,
-2317,Bangungot@WZ_VERMILION,chase,85,20,5000,500,20000,no,target,always,0,,,,,,,
-2317,Bangungot@WZ_VERMILION,attack,85,20,2000,500,20000,no,target,always,0,,,,,,,
-2317,Bangungot@WZ_METEOR,chase,83,11,5000,500,20000,no,target,always,0,,,,,,,
-2317,Bangungot@WZ_METEOR,attack,83,11,2000,500,20000,no,target,always,0,,,,,,,
-2317,Bangungot@NPC_ALLHEAL,idle,687,1,10000,30000,30000,yes,self,myhpltmaxrate,60,,,,,,,
-2318,Bangungot@NPC_ALLHEAL,idle,687,1,10000,2000,10000,no,self,always,0,,,,,,,
-2319,Buwaya@CR_REFLECTSHIELD,idle,252,5,10000,0,300000,yes,self,always,0,,,,,,,
-2319,Buwaya@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-2319,Buwaya@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-2319,Buwaya@WZ_METEOR,attack,83,11,2000,500,2000,no,target,always,0,,,,,,,
-2319,Buwaya@WZ_METEOR,chase,83,11,2000,500,2000,no,target,always,0,,,,,,,
-2319,Buwaya@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,,
-2319,Buwaya@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,,
-2319,Buwaya@WZ_STORMGUST,chase,89,10,2000,500,2000,no,target,always,0,,,,,,,
-2319,Buwaya@WZ_STORMGUST,attack,89,10,2000,500,2000,no,target,always,0,,,,,,,
-2320,Bakonawa@WZ_STORMGUST,attack,89,10,10000,500,10000,no,target,always,0,,,,,,,
-2320,Bakonawa@WZ_VERMILION,attack,85,20,10000,500,10000,no,target,always,0,,,,,,,
-2320,Bakonawa@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,longrangeattacked,,,,,,,9,
-2320,Bakonawa@WZ_METEOR,idle,83,11,10000,0,0,yes,randomtarget,casttargeted,,,,,,,9,
-2320,Bakonawa@WZ_METEOR,attack,83,11,10000,0,1000,yes,target,always,0,,,,,,,
-//
-2329,Buwaya Egg@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,19,,,,,,
-2329,Buwaya Egg@NPC_METAMORPHOSIS,idle,193,1,1000,2000,5000,no,self,always,0,2330,,,,,,
-2330,Buwaya Slave@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,32,,,,,,
-2330,Buwaya Slave@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,0,,,,,,44,
-2330,Buwaya Slave@TF_THROWSTONE,chase,152,1,2000,0,5000,no,target,always,0,,,,,,,
-2330,Buwaya Slave@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,0,,,,,,,
-2330,Buwaya Slave@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,0,,,,,,,
-2330,Buwaya Slave@NPC_PIERCINGATT,attack,158,5,500,0,5000,no,target,always,0,,,,,,,
-2330,Buwaya Slave@NPC_FIREBREATH,attack,654,3,500,1000,5000,no,target,always,0,,,,,,,
-2331,Seaweed@AL_DECAGI,chase,30,10,10000,500,5000,no,target,always,0,,,,,,29,
-2331,Seaweed@AL_HEAL,idle,28,5,10000,500,5000,no,friend,always,0,,,,,,,
-2331,Seaweed@AL_HEAL,chase,28,5,10000,500,5000,no,friend,always,0,,,,,,,
-2331,Seaweed@AL_HEAL,attack,28,5,10000,500,5000,no,friend,always,0,,,,,,,
-2332,Fake Buwaya@CR_REFLECTSHIELD,idle,252,5,10000,0,300000,yes,self,always,0,,,,,,,
-2332,Fake Buwaya@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-2332,Fake Buwaya@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,0,,,,,,32,
-2332,Fake Buwaya@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,,
-2332,Fake Buwaya@NPC_DRAGONFEAR,attack,659,5,10000,0,30000,no,self,always,0,,,,,,,
-2332,Fake Buwaya@WZ_METEOR,attack,83,11,2000,500,2000,no,target,always,0,,,,,,,
-2332,Fake Buwaya@WZ_METEOR,chase,83,11,2000,500,2000,no,target,always,0,,,,,,,
-2332,Fake Buwaya@WZ_VERMILION,chase,85,20,2000,500,2000,no,target,always,0,,,,,,,
-2332,Fake Buwaya@WZ_VERMILION,attack,85,20,2000,500,2000,no,target,always,0,,,,,,,
-2332,Fake Buwaya@WZ_STORMGUST,chase,89,10,2000,500,2000,no,target,always,0,,,,,,,
-2332,Fake Buwaya@WZ_STORMGUST,attack,89,10,2000,500,2000,no,target,always,0,,,,,,,
-2338,Bangungot Manananggal@NPC_BLOODDRAIN,chase,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2338,Bangungot Manananggal@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,randomtarget,myhpltmaxrate,50,,,,,,3,
-2338,Bangungot Manananggal@NPC_COMBOATTACK,chase,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
-2338,Bangungot Manananggal@NPC_COMBOATTACK,attack,171,5,1000,0,5000,yes,target,always,0,,,,,,7,
-2339,Bangungot Mangkukulam@NPC_DARKTHUNDER,chase,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2339,Bangungot Mangkukulam@NPC_DARKTHUNDER,attack,341,3,1000,500,5000,yes,target,always,0,,,,,,29,
-2339,Bangungot Mangkukulam@NPC_DARKSTRIKE,chase,340,9,1000,500,5000,yes,target,always,0,,,,,,,
-2339,Bangungot Mangkukulam@NPC_DARKSTRIKE,attack,340,9,1000,500,5000,yes,target,always,0,,,,,,,
+2315,Wakwak@NPC_CURSEATTACK,attack,181,3,500,800,5000,no,target,always,,,,,,,29,
+2315,Wakwak@NPC_DARKNESSATTACK,attack,190,3,2000,0,5000,yes,target,always,,,,,,,,
+2315,Wakwak@NPC_DARKTHUNDER,attack,341,3,500,1500,5000,yes,target,always,,,,,,,29,
+2315,Wakwak@NPC_DARKTHUNDER,chase,341,3,500,1500,5000,yes,target,always,,,,,,,29,
+2315,Wakwak@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
+2315,Wakwak@NPC_ENERGYDRAIN,chase,200,1,500,0,5000,yes,target,myhpltmaxrate,30,,,,,,19,
+2316,Jejeling@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+2316,Jejeling@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
+2316,Jejeling@WZ_WATERBALL,attack,86,4,500,1000,5000,yes,target,always,,,,,,,,
+2317,Bangungot@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+2317,Bangungot@BS_HAMMERFALL,attack,110,10,1000,1500,5000,no,target,always,,,,,,,,
+2317,Bangungot@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+2317,Bangungot@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2317,Bangungot@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+2317,Bangungot@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+2317,Bangungot@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
+2317,Bangungot@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2317,Bangungot@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2317,Bangungot@NPC_CRITICALWOUND,attack,673,4,2000,0,5000,yes,target,always,,,,,,,,
+2317,Bangungot@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2317,Bangungot@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2317,Bangungot@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2317,Bangungot@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2317,Bangungot@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2317,Bangungot@WZ_METEOR,attack,83,10,2000,500,5000,no,target,myhpltmaxrate,90,,,,,,,
+2317,Bangungot@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,,
+2317,Bangungot@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,always,,,,,,,,
+2318,Bangungot@NPC_ALLHEAL,attack,687,1,3000,2000,5000,no,self,always,,,,,,,,
+2318,Bangungot@NPC_ALLHEAL,idle,687,1,3000,2000,5000,no,self,always,,,,,,,,
+2319,Buwaya@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2319,Buwaya@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2319,Buwaya@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2319,Buwaya@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+2319,Buwaya@CR_REFLECTSHIELD,chase,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+2319,Buwaya@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+2319,Buwaya@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+2319,Buwaya@NPC_CRITICALWOUND,attack,673,3,2000,0,60000,yes,target,always,,,,,,,,
+2319,Buwaya@NPC_DARKBREATH,attack,202,5,500,800,5000,no,target,always,,,,,,,36,
+2319,Buwaya@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,,,,,,,6,
+2319,Buwaya@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2319,Buwaya@NPC_ICEBREATH,attack,655,5,500,800,5000,no,target,always,,,,,,,32,
+2319,Buwaya@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+2319,Buwaya@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,,,,,,,,
+2319,Buwaya@SM_PROVOKE,attack,6,10,10000,0,30000,yes,target,always,,,,,,,6,
+2319,Buwaya@WZ_JUPITEL,attack,84,10,10000,0,5000,yes,target,attackpcge,2,,,,,,,
+2319,Buwaya@WZ_STORMGUST,attack,89,10,2000,500,2000,no,target,always,,,,,,,,
+2319,Buwaya@WZ_STORMGUST,chase,89,10,2000,500,2000,no,target,always,,,,,,,,
+2319,Buwaya@WZ_VERMILION,attack,85,10,2000,500,2000,no,target,always,,,,,,,,
+2319,Buwaya@WZ_VERMILION,chase,85,10,2000,500,2000,no,target,always,,,,,,,,
+2319,Buwaya@WZ_WATERBALL,chase,86,10,5000,500,1000,no,target,always,,,,,,,,
+2320,Bakonawa@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2320,Bakonawa@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2320,Bakonawa@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2320,Bakonawa@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,,,,,,,,
+2320,Bakonawa@NPC_BLEEDING,attack,660,2,2000,0,30000,yes,target,always,,,,,,,32,
+2320,Bakonawa@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+2320,Bakonawa@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+2320,Bakonawa@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,,,,,,,,
+2320,Bakonawa@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,32,
+2320,Bakonawa@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+2320,Bakonawa@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,,,,,,,6,
+2320,Bakonawa@WZ_METEOR,attack,83,10,2000,1000,30000,no,target,always,,,,,,,,
+2322,Bakonawa@AL_HEAL,attack,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2322,Bakonawa@AL_HEAL,idle,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2322,Bakonawa@AL_HEAL,chase,28,10,10000,0,5000,yes,self,myhpltmaxrate,30,,,,,,47,
+2322,Bakonawa@AS_SONICBLOW,attack,136,10,2000,800,5000,no,target,always,,,,,,,,
+2322,Bakonawa@CR_REFLECTSHIELD,attack,252,5,10000,0,300000,yes,self,always,,,,,,,32,
+2322,Bakonawa@NPC_ARMORBRAKE,attack,344,10,2000,0,5000,yes,target,always,,,,,,,29,
+2322,Bakonawa@NPC_BLEEDING,attack,660,2,2000,0,30000,yes,target,always,,,,,,,32,
+2322,Bakonawa@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+2322,Bakonawa@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+2322,Bakonawa@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,,
+2322,Bakonawa@NPC_CRITICALWOUND,attack,673,3,500,0,5000,yes,target,always,,,,,,,,
+2322,Bakonawa@NPC_DARKBREATH,attack,202,5,500,800,5000,no,target,always,,,,,,,36,
+2322,Bakonawa@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,32,
+2322,Bakonawa@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,,,,,,,6,
+2322,Bakonawa@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2322,Bakonawa@NPC_ICEBREATH,attack,655,5,500,800,5000,no,target,always,,,,,,,32,
+2322,Bakonawa@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+2322,Bakonawa@NPC_POWERUP,attack,349,3,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,36,
+2322,Bakonawa@NPC_RANDOMATTACK,attack,183,5,500,500,5000,no,target,always,,,,,,,6,
+2322,Bakonawa@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,,,,,,,,
+2322,Bakonawa@WZ_METEOR,attack,83,10,2000,1000,30000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_STORMGUST,attack,89,10,2000,500,2000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_STORMGUST,chase,89,10,2000,500,2000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_VERMILION,attack,85,10,2000,500,2000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_VERMILION,chase,85,10,2000,500,2000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_WATERBALL,chase,86,10,5000,500,1000,no,target,always,,,,,,,,
+2322,Bakonawa@WZ_WATERBALL,chase,86,10,5000,500,1000,no,target,always,,,,,,,,
+2329,Buwaya's Egg@NPC_METAMORPHOSIS,idle,193,1,2000,2000,5000,no,self,always,,2330,,,,,,
+2330,Slave@NPC_COMBOATTACK,attack,171,2,500,700,5000,no,target,always,,,,,,,,
+2330,Slave@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,,32,,,,,,
+2330,Slave@NPC_FIREBREATH,attack,654,3,500,1000,5000,no,target,always,,,,,,,,
+2330,Slave@NPC_GROUNDATTACK,attack,185,5,500,500,5000,no,target,always,,,,,,,,
+2330,Slave@NPC_PIERCINGATT,attack,158,5,500,0,5000,no,target,always,,,,,,,,
+2330,Slave@SM_PROVOKE,chase,6,10,2000,600,5000,no,target,always,,,,,,,44,
+2330,Slave@TF_THROWSTONE,chase,152,1,2000,0,5000,no,target,always,,,,,,,,
+2331,Seaweed@AL_DECAGI,idle,30,1,10000,1000,5000,no,target,always,,,,,,,29,
+2331,Seaweed@AL_HEAL,idle,28,9,10000,500,5000,yes,friend,friendhpltmaxrate,100,,,,,,3,
+2337,Monster@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,,,,,,,,
+2337,Monster@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,,,,,,,,
+2337,Monster@WZ_METEOR,attack,83,5,10000,0,1000,yes,target,always,,,,,,,,
+2338,Manananggal@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2338,Manananggal@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,3,
+2338,Manananggal@NPC_BLOODDRAIN,attack,199,1,1000,0,5000,no,target,always,,,,,,,3,
+2338,Manananggal@NPC_COMBOATTACK,angry,171,5,500,700,5000,no,target,always,,,,,,,1,
+2338,Manananggal@NPC_COMBOATTACK,attack,171,5,500,700,5000,no,target,always,,,,,,,1,
+2338,Manananggal@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,,,,,,
+2338,Manananggal@NPC_WINDATTACK,angry,187,2,2000,0,5000,yes,target,always,,,,,,,,
+2338,Manananggal@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+2339,Mangkukulam@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2339,Mangkukulam@NPC_BLINDATTACK,attack,177,5,500,0,5000,yes,target,always,,,,,,,,
+2339,Mangkukulam@NPC_DARKSTRIKE,attack,340,9,500,700,5000,no,target,always,,,,,,,29,
+2339,Mangkukulam@NPC_DARKSTRIKE,chase,340,9,500,700,5000,no,target,always,,,,,,,29,
+2339,Mangkukulam@NPC_DARKTHUNDER,attack,341,2,500,500,5000,no,target,always,,,,,,,,
+2339,Mangkukulam@NPC_MENTALBREAKER,attack,159,3,500,800,5000,no,target,always,,,,,,,14,
+2339,Mangkukulam@NPC_MENTALBREAKER,chase,159,3,500,800,5000,no,target,always,,,,,,,14,
+2340,Tiyanak@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2340,Tiyanak@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2340,Tiyanak@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2340,Tiyanak@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2340,Tiyanak@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+2340,Tiyanak@NPC_REBIRTH,dead,208,3,2000,0,10000,yes,self,always,,,,,,,,
+2341,2011 RWC Boss@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2341,2011 RWC Boss@AS_SONICBLOW,attack,136,10,2000,0,5000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@CR_HOLYCROSS,attack,253,10,2000,0,5000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+2341,2011 RWC Boss@HP_ASSUMPTIO,chase,361,5,10000,0,100000,yes,self,myhpltmaxrate,60,,,,,,,
+2341,2011 RWC Boss@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@KN_BRANDISHSPEAR,attack,57,10,2000,0,5000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@KN_TWOHANDQUICKEN,attack,60,10,10000,0,90000,yes,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@MG_THUNDERSTORM,attack,21,10,10000,1500,5000,no,target,attackpcge,2,,,,,,,
+2341,2011 RWC Boss@NPC_AGIUP,attack,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_AGIUP,chase,350,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_CALLSLAVE,attack,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2341,2011 RWC Boss@NPC_CALLSLAVE,idle,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2341,2011 RWC Boss@NPC_CALLSLAVE,chase,352,1,10000,0,30000,yes,self,always,,,,,,,,
+2341,2011 RWC Boss@NPC_CRITICALWOUND,attack,673,4,2000,0,5000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@NPC_EARTHQUAKE,attack,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_EARTHQUAKE,chase,653,5,10000,1000,25000,no,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_HOLYATTACK,attack,189,10,2000,500,5000,no,target,always,,,,,,,,
+2341,2011 RWC Boss@NPC_POWERUP,attack,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_POWERUP,chase,349,5,10000,0,30000,yes,self,myhpltmaxrate,30,,,,,,,
+2341,2011 RWC Boss@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,,,,,,,32,
+2341,2011 RWC Boss@NPC_SUMMONSLAVE,attack,196,1,10000,2000,5000,no,self,slavele,1,,,,,,,
+2341,2011 RWC Boss@NPC_SUMMONSLAVE,idle,196,1,10000,2000,5000,no,self,slavele,1,,,,,,,
+2341,2011 RWC Boss@NPC_SUMMONSLAVE,chase,196,1,10000,2000,5000,no,self,slavele,1,,,,,,,
+2341,2011 RWC Boss@SA_DISPELL,attack,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@SA_DISPELL,chase,289,5,10000,0,30000,yes,target,always,,,,,,,,
+2341,2011 RWC Boss@WZ_VERMILION,attack,85,10,1000,1000,5000,no,target,always,,,,,,,,
+2341,2011 RWC Boss@WZ_VERMILION,chase,85,10,2000,1000,5000,no,target,always,,,,,,,,
+2343,Monster@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,,,,,,,,
+2343,Monster@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,,,,,,,,
+2343,Monster@WZ_STORMGUST,attack,89,5,10000,0,1000,yes,target,always,,,,,,,,
+
+// Nightmare Pyramids
+2353,Minorous (Nightmare)@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2353,Minorous (Nightmare)@BS_HAMMERFALL,attack,110,3,500,1500,5000,no,target,always,,,,,,,,
+2353,Minorous (Nightmare)@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2353,Minorous (Nightmare)@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,6,0x3095,,,,,
+2353,Minorous (Nightmare)@NPC_FIREATTACK,attack,186,3,500,500,5000,no,target,always,,,,,,,6,
+2353,Minorous (Nightmare)@WZ_HEAVENDRIVE,attack,91,3,500,1200,5000,yes,target,always,,,,,,,19,
+2354,Mummy (Nightmare)@NPC_COMBOATTACK,angry,171,1,500,700,5000,no,target,always,,,,,,,9,
+2354,Mummy (Nightmare)@NPC_COMBOATTACK,attack,171,1,500,700,5000,no,target,always,,,,,,,9,
+2354,Mummy (Nightmare)@NPC_EMOTION,follow,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2354,Mummy (Nightmare)@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2354,Mummy (Nightmare)@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,9,0x3885,,,,,
+2354,Mummy (Nightmare)@NPC_UNDEADATTACK,attack,347,3,2000,0,5000,yes,target,always,,,,,,,,
+2355,Verit (Nightmare)@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
+2355,Verit (Nightmare)@NPC_POISON,attack,176,3,500,800,5000,no,target,always,,,,,,,,
+2355,Verit (Nightmare)@NPC_PROVOCATION,chase,194,1,200,0,5000,yes,target,always,,,,,,,19,
+2356,Mimic (Nightmare)@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,,,,,,,,
+2356,Mimic (Nightmare)@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2356,Mimic (Nightmare)@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2356,Mimic (Nightmare)@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,,,,,,,6,
+2356,Mimic (Nightmare)@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,29,,,,,,
+2357,Mimic (Nightmare)@NPC_BLOODDRAIN,angry,199,1,500,0,5000,yes,target,always,,,,,,,,
+2357,Mimic (Nightmare)@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,,
+2358,Arclouze (Nightmare)@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2358,Arclouze (Nightmare)@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2358,Arclouze (Nightmare)@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+2358,Arclouze (Nightmare)@NPC_GROUNDATTACK,attack,185,3,2000,0,5000,yes,target,always,,,,,,,,
+2359,Arclouze (Nightmare)@NPC_GROUNDATTACK,angry,185,1,2000,0,5000,yes,target,always,,,,,,,,
+2359,Arclouze (Nightmare)@NPC_GROUNDATTACK,attack,185,1,2000,0,5000,yes,target,always,,,,,,,,
+2360,Ancient Mummy@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2360,Ancient Mummy@NPC_DARKBREATH,attack,202,4,500,800,5000,no,target,always,,,,,,,7,
+2360,Ancient Mummy@NPC_UNDEADATTACK,attack,347,4,500,500,5000,no,target,always,,,,,,,,
+2362,Amon Ra (Nightmare)@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2362,Amon Ra (Nightmare)@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
+2362,Amon Ra (Nightmare)@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,
+2362,Amon Ra (Nightmare)@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+2362,Amon Ra (Nightmare)@NPC_BLOODDRAIN,attack,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+2362,Amon Ra (Nightmare)@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+2362,Amon Ra (Nightmare)@NPC_BLOODDRAIN,idle,199,1,2000,0,5000,yes,target,always,,,,,,,29,
+2362,Amon Ra (Nightmare)@NPC_CRITICALWOUND,attack,673,2,500,0,5000,yes,target,always,,,,,,,,
+2362,Amon Ra (Nightmare)@NPC_DARKBLESSING,attack,203,1,5000,0,2000,no,target,always,,,,,,,,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,yes,self,casttargeted,,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,casttargeted,,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,attack,209,5,5000,0,10000,yes,self,longrangeattacked,,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,longrangeattacked,,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,28,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,18,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,21,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,79,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,83,,,,,,9,
+2362,Amon Ra (Nightmare)@NPC_SUMMONMONSTER,idle,209,5,5000,0,10000,yes,self,skillused,89,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_FIREPILLAR,attack,80,10,5000,0,2000,yes,around2,always,,,,,,,,
+2362,Amon Ra (Nightmare)@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,,,,,,,,
+2362,Amon Ra (Nightmare)@WZ_FIREPILLAR,idle,80,10,10000,0,2000,yes,around2,always,,,,,,,,
+2362,Amon Ra (Nightmare)@WZ_METEOR,attack,83,10,5000,0,3000,yes,target,always,,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,5000,yes,target,always,,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,casttargeted,,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,longrangeattacked,,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,28,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,18,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,21,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,79,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,83,,,,,,9,
+2362,Amon Ra (Nightmare)@WZ_METEOR,idle,83,10,10000,0,0,yes,target,skillused,89,,,,,,9,
+
+// Eclage
+2363,Menblatt@KN_PIERCE,attack,56,10,500,700,5000,no,target,always,,,,,,,6,
+2363,Menblatt@NPC_DARKSTRIKE,chase,340,5,2000,700,5000,no,target,always,,,,,,,6,
+2363,Menblatt@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,7,
+2363,Menblatt@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,,,,,,,7,
+2364,Petal@NPC_COMBOATTACK,attack,171,4,500,500,5000,no,target,always,,,,,,,6,
+2364,Petal@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,22,0x308D,,,,,
+2364,Petal@NPC_WINDATTACK,attack,187,2,500,500,5000,no,target,always,,,,,,,,
+2365,Cenere@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+2365,Cenere@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,,19,0x0081,,,,,
+2365,Cenere@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,,7,0x3095,,,,,
+2365,Cenere@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,no,target,always,,,,,,,7,
+2365,Cenere@NPC_WINDATTACK,attack,187,2,2000,0,5000,yes,target,always,,,,,,,,
+2366,Antique Book@NPC_BLINDATTACK,attack,177,3,500,0,5000,yes,target,always,,,,,,,,
+2366,Antique Book@NPC_BLOODDRAIN,attack,199,1,500,0,5000,yes,target,always,,,,,,,2,
+2366,Antique Book@NPC_PIERCINGATT,attack,158,3,500,0,5000,yes,target,always,,,,,,,2,
+2367,Lichtern@MG_COLDBOLT,attack,14,6,3000,1000,5000,no,target,always,,,,,,,6,
+2367,Lichtern@MG_COLDBOLT,chase,14,6,3000,1000,5000,no,target,always,,,,,,,6,
+2367,Lichtern@MG_FROSTDIVER,attack,15,9,2000,500,5000,no,target,always,,,,,,,,
+2367,Lichtern@MG_FROSTDIVER,chase,15,9,2000,500,5000,yes,target,always,,,,,,,,
+2367,Lichtern@NPC_WATERATTACK,attack,184,3,1000,0,5000,yes,target,always,,,,,,,21,
+2367,Lichtern@WZ_WATERBALL,attack,86,3,500,1500,5000,no,target,always,,,,,,,,
+2368,Lichtern@MG_NAPALMBEAT,attack,11,7,2000,0,5000,yes,target,always,,,,,,,,
+2368,Lichtern@MG_NAPALMBEAT,attack,11,7,4000,0,5000,yes,target,attackpcge,2,,,,,,,
+2368,Lichtern@MG_SOULSTRIKE,attack,13,9,3000,500,5000,no,target,always,,,,,,,,
+2368,Lichtern@MG_SOULSTRIKE,chase,13,9,3000,500,5000,no,target,always,,,,,,,,
+2368,Lichtern@NPC_STUNATTACK,attack,179,3,1000,0,5000,yes,target,always,,,,,,,39,
+2368,Lichtern@NPC_STUNATTACK,chase,179,3,1000,0,5000,yes,target,always,,,,,,,39,
+2368,Lichtern@NPC_TELEKINESISATTACK,attack,191,5,1000,0,5000,yes,target,always,,,,,,,21,
+2369,Lichtern@MG_FIREBALL,attack,17,7,2000,500,5000,no,target,attackpcge,2,,,,,,,
+2369,Lichtern@MG_FIREBALL,chase,17,5,3000,500,5000,no,target,attackpcge,2,,,,,,,
+2369,Lichtern@MG_FIREBOLT,attack,19,7,3000,1000,5000,no,target,always,,,,,,,6,
+2369,Lichtern@MG_FIREBOLT,chase,19,7,3000,1000,5000,no,target,always,,,,,,,6,
+2369,Lichtern@NPC_FIREATTACK,attack,186,3,1000,0,5000,yes,target,always,,,,,,,21,
+2369,Lichtern@NPC_SLEEPATTACK,attack,182,5,1000,500,5000,no,target,always,,,,,,,29,
+2369,Lichtern@NPC_SLEEPATTACK,chase,182,5,1000,300,5000,yes,target,always,,,,,,,29,
+2370,Lichtern@MG_STONECURSE,attack,16,8,2000,500,5000,no,target,always,,,,,,,29,
+2370,Lichtern@MG_STONECURSE,chase,16,8,2000,500,5000,yes,target,always,,,,,,,29,
+2370,Lichtern@NPC_GROUNDATTACK,attack,185,3,1000,0,5000,yes,target,always,,,,,,,21,
+2370,Lichtern@WZ_EARTHSPIKE,attack,90,5,3000,1000,5000,no,target,always,,,,,,,6,
+2370,Lichtern@WZ_EARTHSPIKE,chase,90,5,3000,1000,5000,no,target,always,,,,,,,6,
+2370,Lichtern@WZ_QUAGMIRE,attack,92,5,500,700,5000,no,target,always,,,,,,,11,
+2370,Lichtern@WZ_QUAGMIRE,chase,92,5,500,700,5000,no,target,always,,,,,,,11,
+2371,Faithful Manager@AL_TELEPORT,idle,26,1,500,0,5000,yes,self,always,,,,,,,,
+2371,Faithful Manager@NPC_EMOTION,idle,197,1,200,0,30000,yes,self,always,,9,0x0081,,,,,
+2371,Faithful Manager@NPC_EMOTION_ON,attack,474,1,10000,0,30000,yes,self,always,,6,0x3885,,,,,
+2371,Faithful Manager@NPC_SILENCEATTACK,attack,178,5,500,700,5000,yes,target,always,,,,,,,9,
+2371,Faithful Manager@NPC_SILENCEATTACK,chase,178,5,500,700,5000,yes,target,always,,,,,,,9,
+2371,Faithful Manager@NPC_SLEEPATTACK,attack,182,5,500,0,5000,yes,target,always,,,,,,,9,
+2371,Faithful Manager@NPC_SLEEPATTACK,chase,182,5,500,0,5000,yes,target,always,,,,,,,9,
+2371,Faithful Manager@SA_DISPELL,attack,289,1,500,0,30000,yes,target,always,,,,,,,,
+2371,Faithful Manager@WZ_FIREPILLAR,idle,80,5,500,0,5000,yes,around2,always,,,,,,,9,
+2408,Lv 10@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2409,Lv 50@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2410,Lv 100@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+2411,Lv 150@AL_HEAL,idle,28,10,10000,0,10000,yes,self,myhpltmaxrate,50,,,,,,,
+
+// Old Glast Heim
+2464,Zombie@AL_HEAL,idle,28,10,10000,0,5000,yes,self,always,0,,,,,,,26
+2464,Zombie@NPC_UNDEADATTACK,chase,347,10,8000,1000,5000,yes,target,always,0,,,,,,,
+2465,Wraith@NPC_ENERGYDRAIN,attack,200,1,500,0,5000,yes,target,always,0,,,,,,,
+2466,Ghoul@NPC_UNDEADATTACK,chase,347,10,8000,1000,5000,yes,target,always,0,,,,,,,
+2467,Arclouze@NPC_GROUNDATTACK,attack,185,10,2000,0,5000,yes,target,always,0,,,,,,,
+2468,Raydric@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,0,,,,,,,
+2468,Raydric@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,0,,,,,,,
+2468,Raydric@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
+2468,Raydric@CR_AUTOGUARD,chase,249,2,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2468,Raydric@NPC_EMOTION,chase,197,1,2000,0,5000,yes,self,always,0,0,,,,,,
+2468,Raydric@SM_MAGNUM,attack,7,9,500,500,5000,no,self,always,0,,,,,,6,
+2469,Raydric Archer@AC_CHARGEARROW,attack,148,1,500,0,5000,yes,target,always,0,,,,,,9,
+2469,Raydric Archer@CR_AUTOGUARD,attack,249,2,500,0,300000,yes,self,always,0,,,,,,,
+2469,Raydric Archer@NPC_DARKNESSATTACK,attack,190,10,500,500,5000,no,target,always,0,,,,,,9,
+2470,Abysmal Knight@AC_CHARGEARROW,chase,148,1,500,0,5000,yes,target,always,0,,,,,,,
+2470,Abysmal Knight@CR_AUTOGUARD,attack,249,10,500,0,300000,yes,self,always,0,,,,,,,
+2470,Abysmal Knight@CR_AUTOGUARD,chase,249,10,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
+2470,Abysmal Knight@KN_BRANDISHSPEAR,attack,57,20,500,1000,5000,no,target,always,0,,,,,,9,
+2470,Abysmal Knight@NPC_DARKNESSATTACK,attack,190,5,500,500,5000,no,target,always,0,,,,,,9,
+2472,Bloody Knight@CR_SHIELDCHARGE,attack,250,5,500,0,5000,yes,target,always,0,,,,,,9,
+2472,Bloody Knight@KN_BRANDISHSPEAR,attack,57,5,500,1000,5000,no,target,always,0,,,,,,9,
+2472,Bloody Knight@NPC_CHANGEFIRE,attack,164,1,10000,2000,600000,no,self,myhpltmaxrate,20,,,,,,,
+2472,Bloody Knight@NPC_DARKNESSATTACK,attack,190,2,500,500,5000,no,target,always,0,,,,,,9,
+2472,Bloody Knight@NPC_WEAPONBRAKER,attack,343,5,500,0,30000,yes,target,always,0,,,,,,,
+2472,Bloody Knight@WZ_METEOR,attack,83,5,2000,0,5000,no,target,myhpltmaxrate,20,,,,,,,
+2472,Bloody Knight@WZ_METEOR,chase,83,5,2000,0,5000,no,target,myhpltmaxrate,20,,,,,,,
+2475,Root of Corruption@NPC_DARKSTRIKE,attack,340,10,2000,0,5000,yes,target,always,0,,,,,,,
+2475,Root of Corruption@NPC_HELLJUDGEMENT,idle,662,10,10000,4000,100,no,self,always,0,,,,,,36,
+2475,Root of Corruption@NPC_HELLJUDGEMENT,attack,662,10,10000,1000,10000,no,self,always,0,,,,,,36,
+2475,Root of Corruption@NPC_PETRIFYATTACK,attack,180,5,500,500,5000,no,target,always,0,,,,,,3,
+2475,Root of Corruption@NPC_SILENCEATTACK,attack,178,10,2000,0,5000,no,target,always,0,,,,,,,
+2476,Amdarias@MG_FIREBALL,chase,17,20,5000,500,1000,no,target,always,0,,,,,,,
+2476,Amdarias@NPC_CRITICALSLASH,attack,170,1,500,500,5000,no,target,always,0,,,,,,,
+2476,Amdarias@NPC_DARKBREATH,attack,202,5,500,800,5000,no,target,always,0,,,,,,36,
+2476,Amdarias@NPC_DRAGONFEAR,chase,659,5,10000,0,30000,no,self,always,0,,,,,,6,
+2476,Amdarias@NPC_DRAGONFEAR,attack,659,5,2000,1000,20000,no,self,myhpltmaxrate,80,,,,,,32,
+2476,Amdarias@NPC_FIREBREATH,attack,654,5,500,800,5000,no,target,always,0,,,,,,32,
+2476,Amdarias@NPC_WEAPONBRAKER,attack,343,10,500,0,30000,yes,target,always,0,,,,,,,
diff --git a/db/re/size_fix.txt b/db/re/size_fix.txt
new file mode 100644
index 000000000..f83560a87
--- /dev/null
+++ b/db/re/size_fix.txt
@@ -0,0 +1,7 @@
+// Database for size fix for weapon damage.
+
+//Columns: Weapon type, Rows: Target size.
+//Unarmed, Knife, 1H Sword, 2H Sword, 1H Spear, 2H Spears, 1H Axe, 2H Axe, Mace, 2H Mace, Staff, Bow, Knuckle, Musical Instrument, Whip, Book, Katar, Revolver, Rifle, Shotgun, Gatling Gun, Grenade Launcher, Fuuma Shuriken, 2H Staff
+100,100, 75, 75, 75, 75, 50, 50, 75, 75,100,100,100, 75, 75,100, 75,100,100,100,100,100, 75,100 // Size: Small
+100, 75,100, 75, 75, 75, 75, 75,100,100,100,100, 75,100,100,100,100,100,100,100,100,100, 75,100 // Size: Medium
+100, 50, 75,100,100,100,100,100,100,100,100, 75, 50, 75, 50, 50, 75,100,100,100,100,100,100,100 // Size: Large
diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt
index 74a78e259..91bd7bac4 100644
--- a/db/re/skill_cast_db.txt
+++ b/db/re/skill_cast_db.txt
@@ -568,7 +568,7 @@
//===== Champion ===========================
//-- CH_PALMSTRIKE
-370,300,0,0,0,0,0,
+370,0,300,0,0,0,0,
//-- CH_TIGERFIST
371,0,0,0,0,2000:4000:6000:8000:10000,0,
//==========================================
@@ -1682,7 +1682,7 @@
//-- KO_MUCHANAGE
3008,1000,0,0,100,0,10000,0
//-- KO_HUUMARANKA
-3009,1000:1200:1400:1600:1800,1000,0,500,0,3000,-1
+3009,1000:1200:1400:1600:1800,1000,0,100,0,3000,-1
//-- KO_MAKIBISHI
3010,0,0,0,12000:14000:16000:18000:20000,10000,10000,-1
//-- KO_MEIKYOUSISUI
@@ -1690,7 +1690,7 @@
//-- KO_ZANZOU
3012,0,1000,0,30000:27000:24000:21000:18000,0,0,-1
//-- KO_KYOUGAKU
-3013,3000:2500:2000:1500:1000,1000,0,12000:14000:16000:18000:20000,0,0,-1
+3013,3000:2500:2000:1500:1000,1000,0,12000:14000:16000:18000:20000,0,10000,-1
//-- KO_JYUSATSU
3014,3000:2500:2000:1500:1000,1000,0,8000:10000:12000:14000:16000,0,10000,-1
//-- KO_KAHU_ENTEN
diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt
index b94ae42d0..e4712aad4 100644
--- a/db/re/skill_db.txt
+++ b/db/re/skill_db.txt
@@ -124,7 +124,7 @@
77,5,6,1,6,0x28,0,10,1,yes,0,0,0,magic,0, PR_TURNUNDEAD,Turn Undead
78,9,6,1,0,0x1,0,1,0,yes,0,0,0,magic,0, PR_LEXAETERNA,Lex Aeterna
79,9,8,2,6,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, PR_MAGNUS,Magnus Exorcismus
-80,9,8,2,3,0x20,1:1:1:1:1:2:2:2:2:2:2,10,3:4:5:6:7:8:9:10:11:12:12,yes,0,0x80,5,magic,0, WZ_FIREPILLAR,Fire Pillar
+80,9,8,2,3,0x20,1:1:1:1:1:2:2:2:2:2:2,10,-3:-4:-5:-6:-7:-8:-9:-10:-11:-12:-12,yes,0,0,5,magic,0, WZ_FIREPILLAR,Fire Pillar
81,0,6,4,3,0,3,10,1,yes,0,0,0,magic,5, WZ_SIGHTRASHER,Sightrasher
83,9,8,2,3,0,3:3:3:3:3:3:3:3:3:3:14,10,1:1:2:2:3:3:4:4:5:5:15,yes,0,0,0,magic,0, WZ_METEOR,Meteor Storm
84,9,8,1,4,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,2:3:3:4:4:5:5:6:6:7, WZ_JUPITEL,Jupitel Thunder
@@ -567,7 +567,7 @@
521,-9,6,2,-1,0x40,1,10,1,no,0,0,0,weapon,3, GS_GROUNDDRIFT,Ground Drift
522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0, NJ_TOBIDOUGU,Shuriken Training
523,9,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0, NJ_SYURIKEN,Throw Shuriken
-524,9,8,1,-1,0x40,0,5,-3,no,0,0,0,weapon,0, NJ_KUNAI,Throw Kunai
+524,9,8,1,-1,0x40,0,5,3,no,0,0,0,weapon,0, NJ_KUNAI,Throw Kunai
525,9,8,2,-1,0x2,0,5,-3:-3:-4:-4:-5,no,0,0,0,weapon,0, NJ_HUUMA,Throw Huuma Shuriken
526,9,6,1,0,0x50,0,10,1,no,0,0,0,misc,0, NJ_ZENYNAGE,Throw Zeny
527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,4, NJ_TATAMIGAESHI,Improvised Defense
@@ -578,7 +578,7 @@
532,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0, NJ_BUNSINJYUTSU,Mirror Image
533,0,0,0,0,0,0,10,0,no,0,0,0,none,0, NJ_NINPOU,Spirit of the Blade
534,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, NJ_KOUENKA,Crimson Fire Petal
-535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1, NJ_KAENSIN,Crimson Fire Formation
+535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,0, NJ_KAENSIN,Crimson Fire Formation
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0, NJ_BAKUENRYU,Raging Fire Dragon
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0, NJ_HYOUSENSOU,Spear of Ice
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0, NJ_SUITON,Hidden Water
@@ -749,7 +749,7 @@
2049,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AB_EUCHARISTICA,Eucharistica
2050,11,6,16,6,0x1,0,1,1,yes,0,0,0,magic,0, AB_RENOVATIO,Renovatio
2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0, AB_HIGHNESSHEAL,Highness Heal //CHECK Info shows this has magic attack.
-2052,11,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_CLEARANCE,Clearance //CHECK Also shows this as a magic attack. Why?
+2052,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_CLEARANCE,Clearance
2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_EXPIATIO,Expiatio //CHECK Does this also give the buff to party members?
2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0, AB_DUPLELIGHT,Duple Light //CHECK Had issues adding a skill level check to make the % go higher with the skills level. Will do later.
2055,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0, AB_DUPLELIGHT_MELEE,Duple Light Melee
@@ -1001,8 +1001,8 @@
2480,11,6,1,0,0x1,0,5,1,yes,0,0,3,misc,0, GN_BLOOD_SUCKER,Blood Sucker //CHECK Data says its a magic attack. Hmmmm....
2481,11,6,1,-1,0x2,1:2:3:4:5,5,1,yes,0,0,0,weapon,0, GN_SPORE_EXPLOSION,Spore Explosion //CHECK Data says its element is set to neutral. Need to confirm.
2482,11,6,16,0,0x1,0,5,-1,yes,0,0,1,weapon,2, GN_WALLOFTHORN,Wall of Thorns
-2483,11,6,2,0,0x3,4,10,1,yes,0,0x2000,0,weapon,0, GN_CRAZYWEED,Crazy Weed
-2484,0,6,2,2,0x2,3,10,1,no,0,0x2000,0,weapon,0, GN_CRAZYWEED_ATK,Crazy Weed Attack
+2483,11,6,2,0,0x3,4,10,1,yes,0,0,0,none,0, GN_CRAZYWEED,Crazy Weed
+2484,0,6,2,2,0,0,10,1,no,0,0,0,weapon,0, GN_CRAZYWEED_ATK,Crazy Weed Attack
2485,9,6,2,3,0,0,5,1,yes,0,0,0,magic,0, GN_DEMONIC_FIRE,Demonic Fire
2486,9,6,2,0,0,0,5,1,yes,0,0,0,none,0, GN_FIRE_EXPANSION,Fire Expansion //CHECK FIX ME!!!! Level 1 is reducing the damage. Should increase it by 50%
2487,9,6,2,0,0,0,1,1,no,0,0,0,none,0, GN_FIRE_EXPANSION_SMOKE_POWDER,Fire Expansion Smoke Powder
@@ -1076,7 +1076,7 @@
3006,7:8:9:10:11,6,2,0,0x2,2,5,0,no,0,0,0,weapon,0, KO_BAKURETSU,Bakuretsu Kunai
3007,0,6,4,-1,0x42,4:4:4:4:5,5,0,no,0,0,0,misc,0, KO_HAPPOKUNAI,Happo Kunai
3008,9,8,2,0,0x12,2,10,-10,no,0,0,0,misc,0, KO_MUCHANAGE,Mucha Nage
-3009,9:10:11:12:13,8,2,-1,0x2,3,5,2,no,0,0,0,weapon,0, KO_HUUMARANKA,Huuma Shuriken Ranka
+3009,9:10:11:12:13,8,2,-1,0x2,3,5,-5,no,0,0,0,weapon,0, KO_HUUMARANKA,Huuma Shuriken Ranka
3010,3,6,4,0,0x42,0,5,1,no,0,0x80,0,weapon,0, KO_MAKIBISHI,Makibishi
3011,0,6,4,0,0x1,0,5,0,yes,0,0,0,none,0, KO_MEIKYOUSISUI,Meikyo Shisui
3012,0,6,4,0,0x1,0,5,0,no,0,0,1,none,3:4:5:6:7, KO_ZANZOU,Zanzou
diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt
index 8b477c8b6..c75683333 100644
--- a/db/re/skill_unit_db.txt
+++ b/db/re/skill_unit_db.txt
@@ -4,7 +4,7 @@
// target = friend (party +guildmates +neutral players) / party / guild
// ally (party +guildmates) / all / sameguild (guild but no allies) / enemy
// flag 0x001(UF_DEFNOTENEMY) If 'defunit_not_enemy' is set, the target is changed to 'friend'
-// 0x002(UF_NOREITERRATION) Spell cannot be stacked
+// 0x002(UF_NOREITERATION) Spell cannot be stacked
// 0x004(UF_NOFOOTSET) Spell cannot be cast near/on targets
// 0x008(UF_NOOVERLAP) Spell effects do not overlap
// 0x010(UF_PATHCHECK) Only cells with a shootable path will be placed
@@ -35,10 +35,10 @@
79,0x84, , -1, 1,3000,enemy, 0x018 //PR_MAGNUS
80,0x87,0x88, 0, 1,2000,enemy, 0x006 //WZ_FIREPILLAR
83,0x86, , 0, 3,1000,enemy, 0x010 //WZ_METEOR
- 85,0x86, , 0, 6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x018 //WZ_VERMILION
+ 85,0x86, , 5, 1:1:1:1:1:1:1:1:1:1:3,1250,enemy,0x018 //WZ_VERMILION
87,0x8d, , -1, 0, -1,all, 0x010 //WZ_ICEWALL
- 89,0x86, , 0, 5, 450,enemy, 0x018 //WZ_STORMGUST
- 91,0x86, , 0, 2,1000,enemy, 0x010 //WZ_HEAVENDRIVE
+ 89,0x86, , 4, 1, 450,enemy, 0x018 //WZ_STORMGUST
+ 91,0x86, , 2, 0,1000,enemy, 0x010 //WZ_HEAVENDRIVE
92,0x8e, , 2, 0, -1,enemy, 0x010 //WZ_QUAGMIRE
115,0x90, , 0, 1,1000,enemy, 0x006 //HT_SKIDTRAP
116,0x93, , 0, 1,1000,enemy, 0x006 //HT_LANDMINE
@@ -50,9 +50,9 @@
122,0x8f, , 0, 1,1000,enemy, 0x006 //HT_BLASTMINE
123,0x98, , 0, 1,1000,enemy, 0x006 //HT_CLAYMORETRAP
125,0x99, , 0, 1,1000,all, 0x000 //HT_TALKIEBOX
-140,0x92, , -1, 0,1000,enemy, 0x000 //AS_VENOMDUST
+140,0x92, , -1, 1,1000,enemy, 0x000 //AS_VENOMDUST
220,0xb0, , 0, 0, -1,all, 0x002 //RG_GRAFFITI
-229,0xb1, , 0, 1,1000,enemy, 0x006 //AM_DEMONSTRATION
+229,0xb1, , 0, 1, 500,enemy, 0x006 //AM_DEMONSTRATION
254,0x86, , -1, 0, 300,enemy, 0x010 //CR_GRANDCROSS
285,0x9a, , 3, 0, -1,all, 0x010 //SA_VOLCANO
286,0x9b, , 3, 0, -1,all, 0x010 //SA_DELUGE
@@ -67,15 +67,15 @@
312,0xa4, , 4, 0, -1,party, 0x240 //BD_INTOABYSS
313,0xa5, , 4, 0, -1,party, 0x200 //BD_SIEGFRIED
317,0xa6, , 3, 0,3000,enemy, 0x400 //BA_DISSONANCE
-319,0xa7, , 3, 0, -1,all, 0x440 //BA_WHISTLE
-320,0xa8, , 3, 0, -1,all, 0x440 //BA_ASSASSINCROSS
-321,0xa9, , 3, 0, -1,all, 0x440 //BA_POEMBRAGI
+319,0xa7, , 3, 0,3000,all, 0xC40 //BA_WHISTLE
+320,0xa8, , 3, 0,3000,all, 0xC40 //BA_ASSASSINCROSS
+321,0xa9, , 3, 0,3000,all, 0xC40 //BA_POEMBRAGI
322,0xaa, , 3, 0,6000,all, 0xC40 //BA_APPLEIDUN
325,0xab, , 3, 0,3000,enemy, 0x100 //DC_UGLYDANCE
-327,0xac, , 3, 0, -1,all, 0x140 //DC_HUMMING
-328,0xad, , 3, 0, -1,enemy, 0x100 //DC_DONTFORGETME
-329,0xae, , 3, 0, -1,all, 0x140 //DC_FORTUNEKISS
-330,0xaf, , 3, 0, -1,all, 0x140 //DC_SERVICEFORYOU
+327,0xac, , 3, 0,3000,all, 0x940 //DC_HUMMING
+328,0xad, , 3, 0,3000,enemy, 0x900 //DC_DONTFORGETME
+329,0xae, , 3, 0,3000,all, 0x940 //DC_FORTUNEKISS
+330,0xaf, , 3, 0,3000,all, 0x940 //DC_SERVICEFORYOU
336,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLPARTNER
339,0x86, , -1, 0, 300,enemy, 0x000 //NPC_DARKGRANDCROSS
362,0xb4, , 0, 2, 300,all, 0x000 //HP_BASILICA
@@ -148,6 +148,7 @@
2479,0xe5, , 0, 1,1000,enemy, 0x006 //GN_THORNS_TRAP
2482,0xe6,0x7f, -1, 2, -1,all, 0x000 //GN_WALLOFTHORN
+2484,0x86, , 0, 2, 100,enemy, 0x080 //GN_CRAZYWEED_ATK
2485,0xe7, , 0, 3,2000,enemy, 0x098 //GN_DEMONIC_FIRE
2487,0xe8, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_SMOKE_POWDER
2488,0xe9, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_TEAR_GAS
@@ -157,7 +158,7 @@
3006,0x86, , 0, 2, 100,enemy, 0x018 //KO_BAKURETSU
3008,0x86, , 0, 2, 100,enemy, 0x018 //KO_MUCHANAGE
-3009,0x86, , 0, 3, 500,enemy, 0x018 //KO_HUUMARANKA
+3009,0x86, , 0, 3, 100,enemy, 0x018 //KO_HUUMARANKA
3020,0xf8, , 0, 3, 100,all, 0x018 //KO_ZENKAI
3010,0xfc, , 0, 0,5000,enemy, 0x018 //KO_MAKIBISHI
diff --git a/db/roulette_db.conf b/db/roulette_db.conf
new file mode 100644
index 000000000..831ee9023
--- /dev/null
+++ b/db/roulette_db.conf
@@ -0,0 +1,77 @@
+//====================================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//=
+//= http://hercules.ws/board/
+//================= More Information =================
+//= http://hercules.ws/board/ ???
+//====================================================
+// This file handles the Roulette, the format is <item>:<amount>
+// The first entry is the one that loses the game.
+//====================================================
+
+roulette: (
+{
+ level_1: {
+ Silver_Coin:1 // Lose
+ Gold_Coin:1
+ Poison_Bottle:1
+ Branch_Of_Dead_Tree:1
+ Fruit_Of_Mastela:1
+ Old_Ore_Box:1
+ E_Inc_Agi_10_Scroll:1
+ Elunium:1
+ Oridecon:1
+ }
+ level_2: {
+ Silver_Coin:1 // Lose
+ Gold_Coin:1
+ Old_Blue_Box:1
+ Seed_Of_Yggdrasil:1
+ Yggdrasilberry:1
+ E_Blessing_10_Scroll:1
+ Carnium:1
+ Bradium:1
+ }
+ level_3: {
+ Silver_Coin:1 // Lose
+ Gold_Coin:1
+ Bundle_Of_Magic_Scroll:1
+ Old_Violet_Box:1
+ E_Abrasive:1
+ Treasure_Box:1
+ Gold:1
+ }
+ level_4: {
+ Silver_Coin:1 // Lose
+ Gold_Coin:1
+ Old_Card_Album:1
+ E_Small_Life_Potion:1
+ Buff_Gift_Set:1
+ Guarantee_Weapon_6Up:1
+ }
+ level_5: {
+ Gold_Coin:1 // Lose
+ Magic_Card_Album:1
+ Comp_Battle_Manual:1
+ Potion_Box:1
+ Guarantee_Armor_6Up:1
+ }
+ level_6: {
+ Gold_Coin:1 // Lose
+ Reward_Job_BM25:1
+ Guarantee_Armor_7Up:1
+ Guarantee_Armor_8Up:1
+ }
+ level_7: {
+ Gold_Coin:1 // Lose
+ Guarantee_Armor_8Up:1
+ Guarantee_Armor_8Up:1
+ }
+}
+)
+
diff --git a/doc/item_db.txt b/doc/item_db.txt
index ce2a248ca..6b34b8daf 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -36,6 +36,7 @@ item_db: (
BindOnEquip: true/false (boolean, defaults to false)
BuyingStore: true/false (boolean, defaults to false)
Delay: Delay to use item (int, defaults to 0)
+ KeepAfterUse: true/false (boolean, defaults to false)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
diff --git a/doc/mob_db_mode_list.txt b/doc/mob_db_mode_list.txt
index 17f25d9bc..08abf800d 100644
--- a/doc/mob_db_mode_list.txt
+++ b/doc/mob_db_mode_list.txt
@@ -26,7 +26,7 @@ MD_ANGRY | 0x0800 | 2048
MD_CHANGETARGET_MELEE | 0x1000 | 4096
MD_CHANGETARGET_CHASE | 0x2000 | 8192
MD_TARGETWEAK | 0x4000 | 16384
-MD_RANDOMTARGET | 0x8000 | 32768
+MD_RANDOMTARGET | 0x8000 | 32768 (not implemented)
Explanation for modes:
-------------------------------------------------------------------------------
@@ -75,7 +75,7 @@ Target Weak: Allows aggressive monsters to only be aggressive against
For example, a monster of level 104 will not pick fights with a level 99.
Random Target: Picks a new random target in range on each attack / skill.
-
+ (not implemented)
Aegis Mob Types:
-------------------------------------------------------------------------------
diff --git a/doc/permissions.txt b/doc/permissions.txt
index 7280395dc..a656f8bcf 100644
--- a/doc/permissions.txt
+++ b/doc/permissions.txt
@@ -33,3 +33,7 @@ disable_pvp : Ability to disable Player vs. Player.
disable_commands_when_dead : Ability to disable @command usage when dead.
can_trade_bound: Ability to trade or otherwise distribute bound items (drop, storage, vending etc...).
hchsys_admin : Hercules Chat System Admin (Ability to modify channel settings regardless of ownership and join password-protected channels without requiring a password.)
+disable_pickup: Ability to disable the player from picking up any item from ground, they can still receive items picked up by others means like party share píck.
+disable_exp: Ability to disable the player from gaining any experience point.
+disable_store: Ability to disable the player from using/openning npc and player stores.
+disable_skill_usage: Ability to disable the player from using any skill.
diff --git a/doc/sample/npc_test_quest.txt b/doc/sample/npc_test_quest.txt
index fcf6b2a80..90659aa10 100644
--- a/doc/sample/npc_test_quest.txt
+++ b/doc/sample/npc_test_quest.txt
@@ -13,7 +13,7 @@
// 70000,0,1002,3,0,0,0,0,"3 Splats Please!"
prontera,90,95,1 script Jelly 2_F_MAGICMASTER,{
- if(checkquest(70000) == -1) {
+ if (!questprogress(70000)) {
// Quest not yet started.
mes "[Jelly]";
mes "Hey there! Would you help me?";
@@ -30,7 +30,7 @@ prontera,90,95,1 script Jelly 2_F_MAGICMASTER,{
setquest 70000; // Adds the quest to your Quest Window.
close;
}
- } else if(checkquest(70000,HUNTING) == 2) {
+ } else if (questprogress(70000,HUNTING) == 2) {
// All monsters killed.
mes "[Jelly]";
mes "Awesome! Thank you!";
@@ -38,12 +38,12 @@ prontera,90,95,1 script Jelly 2_F_MAGICMASTER,{
dispbottom "You have been rewarded with 10,000 Base Exp.";
completequest 70000; // Sets quest status to "complete".
close;
- } else if(checkquest(70000) == 1) {
+ } else if (questprogress(70000) == 1) {
// Quest is active.
mes "[Jelly]";
mes "Keep going, almost there!";
close;
- } else if(checkquest(70000) == 2) {
+ } else if (questprogress(70000) == 2) {
// Quest finished.
mes "[Jelly]";
mes "Thanks again for doing that for me!";
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index d2a3d80eb..13ddb868f 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -259,7 +259,8 @@ direction across Y. Walking into that area will trigger the NPC. If no
'OnTouch:' special label is present in the NPC code, the execution will
start from the beginning of the script, otherwise, it will start from the
'OnTouch:' label. Monsters can also trigger the NPC, though the label
-'OnTouchNPC:' is used in this case.
+'OnTouchNPC:' is used in this case. If player left area npc will called
+if present label 'OnUnTouch'.
The code part is the script code that will execute whenever the NPC is
triggered. It may contain commands and function calls, descriptions of
@@ -702,6 +703,7 @@ MAX_INVENTORY - Maximum inventory items
MAX_ZENY - Maximum Zeny
MAX_BG_MEMBERS - Maximum BattleGround members
MAX_CHAT_USERS - Maximum Chat users
+MAX_REFINE - Maximum Refine level
Send targets and status options are also hard-coded and can be found
in src/map/script.c::script_hardcoded_constants or in functions that
@@ -973,14 +975,14 @@ Within executable script code, some lines can be labels:
<label name>:
Labels are points of reference in your script, which can be used to route
-execution with 'goto', 'menu' and 'jump_zero' commands, invoked with
-'doevent' and 'donpcevent' commands and are otherwise essential. A label's
-name may not be longer than 22 characters. (23rd is the ':'.) There is
-some confusion in the source about whether it's 22, 23 or 24 all over the
-place, so keeping labels under 22 characters could be wise. It may only
-contain alphanumeric characters and underscore. In addition to labels you
-name yourself, there are also some special labels which the script engine
-will start execution from if a special event happens:
+execution with 'goto' and 'menu' commands, invoked with 'doevent', 'donpcevent'
+and 'callsub' commands and are otherwise essential. A label's name may not be
+longer than 22 characters. (23rd is the ':'.) There is some confusion in the
+source about whether it's 22, 23 or 24 all over the place, so keeping labels
+under 22 characters could be wise. It may only contain alphanumeric characters
+and underscore. In addition to labels you name yourself, there are also some
+special labels which the script engine will start execution from if a special
+event happens:
OnClock<hour><minute>:
OnMinute<minute>:
@@ -1039,6 +1041,12 @@ OnTouch_:
Similar to OnTouch, but will only run one instance. Another character is
chosen once the triggering character leaves the area.
+OnUnTouch:
+
+This label will be executed if plater leave trigger area is defined for the NPC
+object it's in. If it isn't present, nothing will happend.
+The RID of the triggering character object will be attached.
+
OnPCLoginEvent:
OnPCLogoutEvent:
OnPCBaseLvUpEvent:
@@ -2055,20 +2063,6 @@ else if (<condition 2>) {
---------------------------------------
-*jump_zero (<condition>),<label>;
-
-This command works like an 'if'+'goto' combination in one go. (See 'if').
-If the condition is false (equal to zero) this command will immediately
-jump to the specified label like in 'goto'.
-
-This command should not be used in scripts directly.
-
-The main reason for this command is that other control statements, like
-'switch', 'for' or 'while', are disassembled into simple expressions
-together with this command when a script is parsed.
-
----------------------------------------
-
*while (<condition>) <statement>;
This is probably the simplest and most frequently used loop structure. The
@@ -2787,6 +2781,13 @@ such item is found.
---------------------------------------
+*getbrokencount()
+
+This function will return the total amount of broken equipment on the
+invoking character.
+
+---------------------------------------
+
*getequipisequiped(<equipment slot>)
This functions will return 1 if there is an equipment placed on the
@@ -2928,7 +2929,7 @@ recreate these items perfectly if they are destroyed. Here's what you get:
@inventorylist_id[] - array of item ids.
@inventorylist_amount[] - their corresponding item amounts.
-@inventorylist_equip[] - whether the item is equipped or not.
+@inventorylist_equip[] - will return the slot the item is equipped on, if at all.
@inventorylist_refine[] - for how much it is refined.
@inventorylist_identify[] - whether it is identified.
@inventorylist_attribute[] - whether it is broken.
@@ -2939,8 +2940,8 @@ recreate these items perfectly if they are destroyed. Here's what you get:
made by a specific craftsman.
@inventorylist_expire[] - expire time (Unix time stamp). 0 means never
expires.
-@inventorylist_count - the number of items in these lists.
@inventorylist_bound - whether it is an account bounded item or not.
+@inventorylist_count - the number of items in these lists.
This could be handy to save/restore a character's inventory, since no
other command returns such a complete set of data, and could also be the
@@ -2957,6 +2958,42 @@ runs of 'getinventorylist'.
---------------------------------------
+*getcartinventorylist;
+
+This command sets a bunch of arrays with a complete list of whatever the
+invoking character has in its cart_inventory, including all the data needed to
+recreate these items perfectly if they are destroyed. Here's what you get:
+
+@cartinventorylist_id[] - array of item ids.
+@cartinventorylist_amount[] - their corresponding item amounts.
+@cartinventorylist_refine[] - for how much it is refined.
+@cartinventorylist_identify[] - whether it is identified.
+@cartinventorylist_attribute[] - whether it is broken.
+@cartinventorylist_card1[] - These four arrays contain card data for the
+@cartinventorylist_card2[] items. These data slots are also used to store
+@cartinventorylist_card3[] names inscribed on the items, so you can
+@cartinventorylist_card4[] explicitly check if the character owns an item
+ made by a specific craftsman.
+@cartinventorylist_expire[] - expire time (Unix time stamp). 0 means never
+ expires.
+@cartinventorylist_bound - whether it is an account bounded item or not.
+@cartinventorylist_count - the number of items in these lists.
+
+This could be handy to save/restore a character's cart_inventory, since no
+other command returns such a complete set of data, and could also be the
+only way to correctly handle an NPC trader for carded and named items who
+could resell them - since NPC objects cannot own items, so they have to
+store item data in variables and recreate the items.
+
+Notice that the variables this command generates are all temporary,
+attached to the character, and integer.
+
+Be sure to use @cartinventorylist_count to go through these arrays, and not
+'getarraysize', because the arrays are not automatically cleared between
+runs of 'getcartinventorylist'.
+
+---------------------------------------
+
*cardscnt()
This function will return the number of cards inserted into the weapon
@@ -3196,15 +3233,22 @@ let you enter.
---------------------------------------
-*getareausers("<map name>",<x1>,<y1>,<x2>,<y2>)
+*getareausers({"<map name>",}{<x1>,<y1>,<x2>,<y2>})
+*getareausers({"<map name>",}{<radius>})
This function will return the count of connected characters which are
-located within the specified area - an x1/y1-x2/y2 square - on the
-specified map.
+located within the specified area. Area can be x1/y1-x2/y2 square,
+or radius from npc position. If map name missing, used attached player map.
This is useful for maps that are split into many buildings, such as all
the "*_in" maps, due to all the shops and houses.
+Examples:
+ // return players in area npc area on current map.
+ .@num = getareausers();
+ // return players in square (1, 1) - (10, 10)
+ .@num = "players: " + getareausers(1, 1, 10, 10);
+
---------------------------------------
*getusersname;
@@ -3353,6 +3397,38 @@ Example:
mes "You have "+getmapguildusers("prontera",getcharid(2))+" guild members in Prontera.";
---------------------------------------
+
+*getguildmember <guild id>{,<type>};
+
+This command will find all members of a specified guild and returns their names
+(or character id or account id depending on the value of "type") into an array
+of temporary global variables.
+
+Upon executing this,
+
+$@guildmembername$[] is a global temporary string array which contains all the
+ names of these guild members.
+ (only set when type is 0 or not specified)
+
+$@guildmembercid[] is a global temporary number array which contains the
+ character id of these guild members.
+ (only set when type is 1)
+
+$@guildmemberaid[] is a global temporary number array which contains the
+ account id of these guild members.
+ (only set when type is 2)
+
+$@guildmembercount is the number of guild members that were found.
+
+The guild members will be found regardless of whether they are online or offline.
+Note that the names come in no particular order.
+
+Be sure to use $@guildmembercount to go through this array, and not
+'getarraysize', because it is not cleared between runs of 'getguildmember'.
+
+For usage examples, see 'getpartymember'.
+
+---------------------------------------
//=====================================
2.2 - End of Guild-Related Commands
//=====================================
@@ -3779,59 +3855,59 @@ falcon and 0 if they don't.
---------------------------------------
-*setriding {<flag>};
-*checkriding()
+*setmount {<flag>};
+*checkmount()
-If <flag> is 0 this command will remove the mount from the character.
-Otherwise it gives the invoking character a PecoPeco (if they are a Knight
-series class), a GrandPeco (if they are a Crusader series class), or
-a Gryphon (if they are a Royal Guard). Unlike 'setfalcon' and 'setcart'
-this will not work at all if they aren't of a class which can ride.
-Note: the character needs to have the skill KN_RIDING to gain a mount.
+If <flag> is MOUNT_NONE (or 0) this command will remove the mount from the
+character.
-The accompanying function will return 1 if the invoking character is
-riding a bird and 0 if they aren't.
+Otherwise it gives the invoking character the desired combat mount, where
+allowed by their class and skills.
- if (checkriding()) mes "PLEASE leave your bird outside! No riding birds on the floor here!";
+If no flag is specified, the mount is automatically chosen according to the
+character's class and skills.
----------------------------------------
+The following flag values are accepted:
-*setdragon {<color>};
-*checkdragon()
+ MOUNT_NONE:
+ - Dismount
+ MOUNT_PECO:
+ - PecoPeco (Knight series class)
+ - GrandPeco (Crusader series class)
+ - Gryphon (Royal Guard)
+ MOUNT_WUG:
+ - Warg (Ranger)
+ MOUNT_MADO:
+ - Mado Gear (Mechanic)
+ MOUNT_DRAGON:
+ MOUNT_DRAGON_GREEN:
+ MOUNT_DRAGON_BROWN:
+ MOUNT_DRAGON_GRAY:
+ MOUNT_DRAGON_BLUE:
+ MOUNT_DRAGON_RED:
+ - Dragon (Rune Knight)
+ if MOUNT_DRAGON is specified, a the default (green) dragon will be used.
-The 'setdragon' function toggles mounting a dragon for the invoking
-character. It will return 1 if successful, 0 otherwise.
+Unlike 'setfalcon' and 'setcart' this will not work at all if they aren't of a
+class which can ride a mount.
-If the character can mount a dragon, the <color> options are:
- 1 - Green Dragon (default when omitted)
- 2 - Brown Dragon
- 3 - Gray Dragon
- 4 - Blue Dragon
- 5 - Red Dragon
+The accompanying function will return 0 if the invoking character is not on a
+mount, and a non-zero value (according to the above constants) if they are.
+Note: in case of dragons, the returned value will always be MOUNT_DRAGON,
+regardless of color.
-Note: the character must be a Rune Knight and have the skill
- RK_DRAGONTRAINING to gain a mount.
+ if (checkmount())
+ mes "Leave your mount outside! No riding mounts on the floor here!";
-The accompanying function will return 1 if the invoking character is
-riding a dragon and 0 if they aren't.
+ if (checkmount() == MOUNT_DRAGON)
+ mes "Wow, your dragon is cool! Can I pet it?";
---------------------------------------
-*setmadogear {<flag>};
-*checkmadogear()
-
-If <flag> is 0 this command will remove the mount from the character.
-Otherwise it gives the invoking character a Mado (if they are a Mechanic).
-
-The accompanying function will return 1 if the invoking character has a
-Mado and 0 if they don't.
-
----------------------------------------
+*setcashmount;
+*hascashmount()
-*setmounting;
-*ismounting()
-
-The 'setmounting' function toggles cash mount for the invoking character.
+The 'setcashmount' function toggles cash mount for the invoking character.
It will return 1 if successful, 0 otherwise.
Note: Character must not be mounting a non-cash mount (eg. dragon, peco,
@@ -4154,7 +4230,6 @@ character is not married, or if there's no invoking character (no RID).
---------------------------------------
*savepoint "<map name>",<x>,<y>;
-*save "<map name>",<x>,<y>;
This command saves where the invoking character will return to upon
'return to save point', if dead or in some other cases. The two versions
@@ -4164,6 +4239,16 @@ character respawn where no teleportation is otherwise possible.
savepoint "place",350,75;
+*save "<map name>",<x>,<y>;
+
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+This command is deprecated and it should not be used in new scripts, as it
+is scheduled to be removed on or after December 2nd, 2014. Please consider
+using savepoint() instead.
+
---------------------------------------
*heal <hp>,<sp>;
@@ -4679,6 +4764,68 @@ Example:
---------------------------------------
+*checkbound(<item_id>{,<bound_type>{,<refine>{,<attribute>{,<card_1>{,<card_2>{,<card_3>{,<card_4>}}}}}}});
+
+This command allows you to check whether or not the attached player has the specified bound item in their inventory.
+If a bound type is not specified or a bound type of 0 is used, it will search the player's inventory for a bound item
+of any type, so long as the other parameters match. In all cases, this command will return the bound type of the
+item found, or 0 if the specified item was not found.
+
+Valid bound types are:
+ 0 - All Bound types.
+ 1 - Account Bound
+ 2 - Guild Bound
+ 3 - Party Bound
+ 4 - Character Bound
+
+Optional Parameters:
+ bound_type - checks to see if the item has the specified bound type.
+ refine - checks to see if the item is refined to the given number.
+ attribute - whether the item is broken (1) or not (0).
+ card 1,2,3,4 - checks to see if the specified cards are compounded on the item as well.
+
+Example:
+ // This will check if you have a bound (any type) 1205 (Cutter).
+ if (checkbound(1205)) {
+ mes "You have a bound Cutter";
+ } else {
+ mes "You do not have a bound Cutter";
+ }
+ close;
+
+ // This will also check if you have a bound (any type) 1205 (Cutter).
+ if (checkbound(1205,0)) {
+ mes "You have a bound Cutter";
+ } else {
+ mes "You do not have a bound Cutter";
+ }
+ close;
+
+ // This will check if the player doesn't have a bound 1205 (Cutter).
+ if (!checkbound(1205)) {
+ mes "You do not have a bound Cutter";
+ } else {
+ mes "You do have a bound Cutter";
+ }
+ close;
+
+ // This will check if the item found, has a bound type of 2 (guild_bound)
+ if (checkbound(1205) == 2) {
+ mes "You have a guild_bound Cutter";
+ } else {
+ mes "You do not have a guild_bound Cutter.";
+ }
+ close;
+
+ // This will check if you have a 'guild_bound' +7 1205 (Cutter).
+ if (checkbound(1205, 2, 7)) {
+ mes "You have a +7 guild_bound Cutter.";
+ } else {
+ mes "You don't have the required item.";
+ }
+ close;
+---------------------------------------
+
*getnameditem <item id>,<character name|character ID>;
*getnameditem "<item name>",<character name|character ID>;
@@ -5078,6 +5225,7 @@ like storage or cart.
---------------------------------------
*equip <item id>;
+*equip2 <item id>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>;
*autoequip <item id>,<option>;
These commands are to equip a equipment on the attached character.
@@ -5091,7 +5239,11 @@ Examples:
//This will equip a 1104 (falchion) on the character if this is in the
//inventory.
equip 1104;
-
+
+//This will equip a +10 1104 (falchion) on the character if this is in the
+//inventory.
+ equip2 1104,10,0,0,0,0,0;
+
//The invoked character will now automatically equip a falchion when it's
//looted.
autoequip 1104,1;
@@ -5301,53 +5453,62 @@ Used in reset NPC's (duh!).
---------------------------------------
-*sc_start <effect type>,<ticks>,<extra argument>{,<GID>};
-*sc_start2 <effect type>,<ticks>,<extra argument>,<percent chance>{,<GID>};
-*sc_start4 <effect type>,<ticks>,<value 1>,<value 2>,<value 3>,<value 4>{,<GID>};
+*sc_start <effect type>,<ticks>,<value 1>{,<rate>,<flag>{,<GID>}};
+*sc_start2 <effect type>,<ticks>,<value 1>,<value 2>{,<rate>,<flag>{,<GID>}};
+*sc_start4 <effect type>,<ticks>,<value 1>,<value 2>,<value 3>,<value 4>{,<rate>,<flag>{,<GID>}};
*sc_end <effect type>{,<GID>};
-These command bestow a status effect on the invoking character. This
-command is used a lot in the item scripts.
+These commands will bestow a status effect on a character.
+
+The <effect type> determines which status is invoked. This can be either a number
+or constant, with the common statuses (mostly negative) found in 'db/const.txt'
+with the 'SC_' prefix. A full list is located in 'src/map/status.h', though
+they are not currently documented.
+
+The duration of the status is given in <ticks>, or milleseconds.
+
+Certain status changes take an additional parameter <value 1>, which typically
+modifies player stats by the given number or percentage. This differs for each
+status, and is sometimes zero.
- // This would poison them for 10 min
- sc_start SC_Poison,600000,0;
+Optional value <rate> is the chance that the status will be invoked (10000 = 1%).
+This is used primarily in item scripts. When used in an NPC script, a flag MUST
+be defined for the rate to work.
-Effect type is a number of effect, 'db/const.txt' lists the common (mostly
-negative) status effect types as constants, starting with 'SC_'. You can
-also use this to give someone an effect of a player-cast spell:
+Optional value <flag> is how the status change start will be handled (a bitmask).
+ SCFLAG_NONE = 0x00: No special behavior.
+ SCFLAG_NOAVOID = 0x01: Status change cannot be avoided.
+ SCFLAG_FIXEDTICK = 0x02: Tick cannot be reduced by stats (default).
+ SCFLAG_LOADED = 0x04: sc_data was loaded, no value will be altered.
+ SCFLAG_FIXEDRATE = 0x08: Rate cannot be reduced.
+ SCFLAG_NOICON = 0x10: Status icon (SI) won't be shown.
- // This will bless someone as if with Bless 10:
+If a <GID> is given, the status change will be invoked on the specified character
+instead of the one attached to the script. This can only be defined after setting
+a rate and flag.
+
+'sc_start2' and 'sc_start4' allow extra parameters to be passed, and are used only
+for effects that require them. The meaning of the extra values vary depending on the
+effect type.
+
+'sc_end' will remove a specified status effect. If SC_ALL (-1) is given, it will
+perform a complete removal of all statuses (although permanent ones will re-apply).
+
+Examples:
+ // This will poison the invoking character for 10 minutes at 50% chance.
+ sc_start SC_POISON,600000,0,5000;
+
+ // This will bestow the effect of Level 10 Blessing.
sc_start 10,240000,10;
-Extra argument's meaning differs depending on the effect type, for most
-effects caused by a player skill the extra argument means the level of the
-skill that would have been used to create that effect, for others it might
-have no meaning whatsoever. You can actually bless someone with a 0 bless
-spell level this way, which is fun, but weird.
-
-The GID, if given, will cause the status effect to appear on a specified
-character, instead of the one attached to the running script. This has not
-been properly tested.
-
-'sc_start2' is perfectly equivalent, but unlike 'sc_start', a status
-change effect will only occur with a specified percentage chance. 10000
-given as the chance is equivalent to a 100% chance, 0 is a zero.
-
-'sc_start4' is just like sc_start, however it takes four parameters for
-the status change instead of one. What these values are depends on the
-status change in question. For example, elemental armor defense takes the
-following four values:
-- val1 is the first element, val2 is the resistance to the element val1.
-- val3 is the second element, val4 is the resistance to said element.
-eg: sc_start4 SC_ARMOR_RESIST,300000,20,20,20,20;
-
-'sc_end' will remove a specified status effect. If SC_All is used (-1), it
-will do a complete removal of all statuses (although permanent ones will
-re-apply).
-
-You can see the full list of status effects caused by skills in
-'src/map/status.h' - they are currently not fully documented, but most of
-that should be rather obvious.
+ // Elemental armor defense takes the following four values:
+ // val1 is the first element, val2 is the resistance to the element val1.
+ // val3 is the second element, val4 is the resistance to the element val3.
+ sc_start4 SC_DefEle,60000,Ele_Fire,20,Ele_Water,-15;
+
+ // This will end the Freezing status for the invoking character.
+ sc_end SC_FREEZE;
+
Note: to use SC_NOCHAT you should alter Manner
Manner = -5; // Will mute a user for 5 minutes
Manner = 0; // Will unmute a user
@@ -6137,6 +6298,14 @@ A debug message also shows on the console when no events are triggered.
*cmdothernpc "<npc name>","<command>";
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+This command is deprecated and it should not be used in new scripts, as it
+is scheduled to be removed on or after December 2nd, 2014. Please consider
+using donpcevent() instead.
+
This is simply "donpcevent <npc name>::OnCommand<command>".
It is an approximation of official server script language's 'cmdothernpc'.
@@ -6612,8 +6781,6 @@ It's not clear what happens to a waiting room if the NPC is disabled with
*enablewaitingroomevent {"<NPC object name>"};
*disablewaitingroomevent {"<NPC object name>"};
-*enablearena;
-*disablearena;
This will enable and disable triggering the waiting room event (see
'waitingroom') respectively. Optionally giving an NPC object name will do
@@ -6627,6 +6794,17 @@ Normally, whenever a waiting room was created to make sure that only one
character is, for example, trying to pass a job quest trial, and no other
characters are present in the room to mess up the script.
+*enablearena;
+*disablearena;
+
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+This command is deprecated and it should not be used in new scripts, as it
+is scheduled to be removed on or after December 2nd, 2014. Please consider
+using enablewaitingroomevent and disablewaitingroomevent instead.
+
The 'enablearena'/'disablearena' commands are just aliases with no
parameter. These are supposedly left here for compatibility with official
server scripts, but no Hercules script uses these at the moment.
@@ -7208,12 +7386,16 @@ when not provided, "group level char" defaults to 99.
(1 = log, 0 = no log), default is to not log.
The following variables are set upon execution:
- .@atcmd_command$ = The name of the @command used.
- .@atcmd_parameters$[] = Array containing the given parameters,
- starting from an index of 0.
- .@atcmd_numparameters = The number of parameters defined.
+ .@atcmd_command$ = The name of the @command used.
+ .@atcmd_parameters$[] = Array containing the given parameters,
+ starting from an index of 0.
+ .@atcmd_numparameters = The number of parameters defined.
-Example:
+Parameters are split on spaces. Multiple spaces aren't grouped together, and
+will create multiple (empty) arguments.
+Any leading spaces before the first parameter will be omitted.
+
+Usage example:
When a user types the command "@test", an angel effect will be shown.
@@ -7226,6 +7408,50 @@ OnAtcommand:
end;
}
+Parameter splitting example:
+ @mycommand
+ .@atcmd_numparameters -> 0
+ .@atcmd_parameters$ -> { }
+ @mycommand<space><space>
+ .@atcmd_numparameters -> 0
+ .@atcmd_parameters$ -> { }
+ @mycommand<space>foo
+ .@atcmd_numparameters -> 1
+ .@atcmd_parameters$ -> { "foo" }
+ @mycommand<space><space>foo
+ .@atcmd_numparameters -> 1
+ .@atcmd_parameters$ -> { "foo" }
+ @mycommand<space>foo<space>bar
+ .@atcmd_numparameters -> 2
+ .@atcmd_parameters$ -> { "foo", "bar" }
+ @mycommand<space>foo<space><space>bar
+ .@atcmd_numparameters -> 3
+ .@atcmd_parameters$ -> { "foo", "", "bar" }
+ @mycommand<space>foo<space>
+ .@atcmd_numparameters -> 2
+ .@atcmd_parameters$ -> { "foo", "" }
+ @mycommand<space>foo<space><space>
+ .@atcmd_numparameters -> 3
+ .@atcmd_parameters$ -> { "foo", "", "" }
+
+The called event label needs to take care of joining arguments together, in
+case it expects spaces. For example:
+
+- script atcmd_example -1,{
+OnInit:
+ bindatcmd "test",strnpcinfo(3)+"::OnAtcommand";
+ end;
+OnAtcommand:
+ // This command expects a character name (that may contain spaces) as
+ // the only parameter.
+ .@name$ = "";
+ for (.@i = 0; .@i < .@atcmd_numparameters; ++.@i) {
+ .@name$ += (.@i > 0 ? " " : "") + .@atcmd_parameters$[.@i];
+ }
+ dispbottom("The specified name is: '" + .@name$ + "'");
+ end;
+}
+
---------------------------------------
*unbindatcmd "command";
@@ -7273,6 +7499,46 @@ config, and will not work properly if the NPC has a mob sprite.
---------------------------------------
+*setnpcdistance <distance>
+
+This command can reduce distance from where npc can be clicked.
+Usefull to use from OnInit event.
+
+ // Set distance to one tile on server load
+ OnInit:
+ setnpcdistance 1;
+
+---------------------------------------
+
+*getnpcdir {<name>};
+
+Return current npc direction for parameter "name" or for attached npc
+if it missing. If name missing and not attached npc, return -1.
+
+Example:
+ .@dir = getnpcdir();
+
+---------------------------------------
+
+*setnpcdir {<name>,} <direction>;
+
+Set npc direction. If npc name missing, will be used attached npc.
+
+Example:
+ setnpcdir 2;
+
+---------------------------------------
+
+*getnpcclass {<name>};
+
+Return npc class/sprite id for npc with given name or for attached npc.
+If name missing and no attached npc, return -1.
+
+Example:
+ .@class = getnpcclass();
+
+---------------------------------------
+
*day;
*night;
@@ -7408,6 +7674,18 @@ Example:
---------------------------------------
+*min(<number>{,<number>...<number>})
+*max(<number>{,<number>...<number>})
+
+Returns the smallest (or biggest) from the set of given numbers.
+
+Example:
+ .@minimum = min(1, -6, -2, 8, 2); // .@minimum will be equal to -6
+ .@maximum = max(0, 5, 10, 4); // .@maximum will be equal to 10
+ .@level = min(BaseLevel, 70); // .@level will be the character's base level, capped to 70
+
+---------------------------------------
+
*md5("<string>")
Returns the md5 checksum of a number or string.
@@ -7787,8 +8065,7 @@ decision-making for the current pet of the invoking character, and will
NOT have any independent effect by themselves, which is why only one of
them each may be in effect at any time for a specific pet. A pet may
have 'petloot', 'petskillbonus', 'petskillattack' OR 'petpetskillattack2'
-and 'petskillsupport' OR 'petheal' at the same time. 'petheal' is
-deprecated and is no longer used in the default pet scripts.
+and 'petskillsupport' at the same time.
*petskillbonus <bonus type>,<value>,<duration>,<delay>;
@@ -7811,14 +8088,11 @@ reached or when pet performance is activated.
*petskillsupport <skill id>,<skill level>,<delay>,<percent hp>,<percent sp>;
*petskillsupport "<skill name>",<skill level>,<delay>,<percent hp>,<percent sp>;
-*petheal <level>,<delay>,<percent hp>,<percent sp>;
This will make the pet use a specified support skill on the owner whenever
the HP and SP are below the given percent values, with a specified delay
time between activations. The skill numbers are as per
'db/(pre-)re/skill_db.txt'.
-'petheal' works the same as 'petskillsupport' but has the skill ID
-hard-coded to 28 (Heal). This command is deprecated.
It's not quite certain who's stats will be used for the skills cast, the
character's or the pets. Probably, Skotlex can answer that question.
@@ -8150,11 +8424,32 @@ if (instance_check_party(getcharid(1),2,2,149)) {
mes "All online members are between levels 1-150 and at least two are online.";
close;
} else {
- mes "Sorry, your party does not meet requirements.";
+ mes "Sorry, your party does not meet the requirements.";
close;
}
---------------------------------------
+
+*instance_check_guild(<guild_id>{,<amount>{,<min>{,<max>}}});
+
+This function checks if a guild meets certain requirements, returning 1 if
+all conditions are met and 0 otherwise. it will only check online characters.
+
+amount - number of online guild members (default is 1).
+min - minimum level of all characters in the guild (default is 1).
+max - maximum level of all characters in the guild (default is max level in conf).
+
+Example:
+ if (instance_check_guild(getcharid(2), 2, 1, 150)) {
+ mes "Your guild meets the Memorial Dungeon requirements.",
+ mes "All online members are between levels 1-150 and at least two are online.";
+ close;
+ } else {
+ mes "Sorry, your guild does not meet the requirements.";
+ close;
+ }
+
+---------------------------------------
*instance_set_respawn(<map_name>,<x>,<y>{,<instance_id>});
Updates the 'reload spawn' position of a instance,
@@ -8192,7 +8487,7 @@ that fails, the command returns an empty string instead.
*questinfo <Quest ID>, <Icon> {, <Map Mark Color>{, <Job Class>}};
-This is esentially a combination of checkquest and showevent. Use this only
+This is esentially a combination of questprogress and showevent. Use this only
in an OnInit label. For the Quest ID, specify the quest ID that you want
checked if it has been started yet.
@@ -8242,17 +8537,23 @@ If *questinfo is set, and the same ID is specified here, the icon will be cleare
---------------------------------------
-*completequest <ID>;
+*completequest <ID>{,<ID2>};
Change the state for the given quest <ID> to "complete" and remove from
the users quest log.
+If a second quest id of greater value is specified, all quests between the two
+will be completed.
+
---------------------------------------
-*erasequest <ID>;
+*erasequest <ID>{,<ID2>};
Remove the quest of the given <ID> from the user's quest log.
+If a second quest id of greater value is specified, all quests between the two
+will be erased.
+
---------------------------------------
*changequest <ID>,<ID2>;
@@ -8262,28 +8563,31 @@ Add quest of the <ID2> to the the quest log, and the state is "active".
---------------------------------------
-*checkquest(<ID>{,PLAYTIME|HUNTING})
+*questprogress(<ID>{,PLAYTIME|HUNTING})
+
+If no additional argument supplied, return the state of the quest:
+ 0 = Quest not started (not in quest log)
+ 1 = Quest has been given
+ 2 = Quest completed
+
+If parameter 'PLAYTIME' is supplied:
+ 0 = Quest not started (not in quest log)
+ 1 = The time limit has not yet been reached
+ 2 = The time limit has been reached
+
+If parameter 'HUNTING' is supplied:
+ 0 = Quest not started (not in quest log)
+ 1 = Player hasn't killed all of the target monsters
+ 2 = Player has killed all of the target monsters
+
+---------------------------------------
-If no additional argument supplied, return the state of the quest:
- -1 = Quest not started (not in quest log)
- 0 = Quest has been given, but the state is "inactive"
- 1 = Quest has been given, and the state is "active"
- 2 = Quest completed
+*questactive(<ID>)
-If parameter "PLAYTIME" is supplied:
- -1 = Quest not started (not in quest log)
- 0 = the time limit has not yet been reached
- 1 = the time limit has not been reached but the quest is marked as
- complete
- 2 = the time limit has been reached
+Check whether the given quest is in its active state.
-If parameter "HUNTING" is supplied:
- -1 = Quest not started (not in quest log)
- 0 = you haven't killed all of the target monsters and the time limit
- has not been reached.
- 1 = you haven't killed all of the target monsters but the time limit
- has been reached.
- 2 = you've killed all of the target monsters
+Returns true if the quest is active, false otherwise (quest not started,
+inactive or completed)
---------------------------------------
diff --git a/npc/airports/airships.txt b/npc/airports/airships.txt
index 389e3c1ac..3eb84f867 100644
--- a/npc/airports/airships.txt
+++ b/npc/airports/airships.txt
@@ -51,7 +51,7 @@ OnTimer50000:
mapannounce "airplane","We will arrive in Einbroch shortly.",bc_map,"0x00ff00";
end;
OnTimer60000:
- set $@airplanelocation,1;
+ $@airplanelocation = 1;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Einbroch. Have a safe trip.",bc_map,"0x00ff00";
@@ -71,7 +71,7 @@ OnTimer130000:
mapannounce "airplane","We will arrive in Lighthalzen shortly.",bc_map,"0x70dbdb";
end;
OnTimer140000:
- set $@airplanelocation,2;
+ $@airplanelocation = 2;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Lighthalzen. Have a safe trip.",bc_map,"0x70dbdb";
@@ -91,7 +91,7 @@ OnTimer210000:
mapannounce "airplane","We will arrive in Einbroch shortly.",bc_map,"0x00FF00";
end;
OnTimer220000:
- set $@airplanelocation,1;
+ $@airplanelocation = 1;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Einbroch. Have a safe trip.",bc_map,"0x00ff00";
@@ -111,7 +111,7 @@ OnTimer290000:
mapannounce "airplane","We will arrive in Juno shortly.",bc_map,"0xff8200";
end;
OnTimer300000:
- set $@airplanelocation,0;
+ $@airplanelocation = 0;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Juno. Have a safe trip.",bc_map,"0xff8200";
@@ -131,7 +131,7 @@ OnTimer370000:
mapannounce "airplane","We will arrive in Hugel shortly.",bc_map,"0xca4bf3";
end;
OnTimer380000:
- set $@airplanelocation,3;
+ $@airplanelocation = 3;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Hugel. Have a safe trip.",bc_map,"0xca4bf3";
@@ -151,7 +151,7 @@ OnTimer450000:
mapannounce "airplane","We will arrive in Juno shortly.",bc_map,"0xff8200";
end;
OnTimer460000:
- set $@airplanelocation,0;
+ $@airplanelocation = 0;
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane","Welcome to Juno. Have a safe trip.",bc_map,"0xff8200";
@@ -476,7 +476,7 @@ airplane,50,66,5 script Apple Merchant#airplane 4_M_04,{
next;
while (1) {
input .@input;
- set .@pay, .@input * 15;
+ .@pay = .@input * 15;
if (.@input == 0) {
mes "[Fruitz]";
mes "Thanks for stopping";
@@ -690,7 +690,7 @@ OnTimer50000:
mapannounce "airplane_01","We will arrive in Izlude shortly.",bc_map,"0x00ff00";
end;
OnTimer60000:
- set $@airplanelocation2,1;
+ $@airplanelocation2 = 1;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Izlude. Have a safe trip.",bc_map,"0x00ff00";
@@ -710,7 +710,7 @@ OnTimer130000:
mapannounce "airplane_01","We will arrive in Juno shortly.",bc_map,"0x70dbdb";
end;
OnTimer140000:
- set $@airplanelocation2,2;
+ $@airplanelocation2 = 2;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Juno. Have a safe trip.",bc_map,"0x70dbdb";
@@ -730,7 +730,7 @@ OnTimer210000:
mapannounce "airplane_01","We will arrive in Rachel shortly.",bc_map,"0xFF8200";
end;
OnTimer220000:
- set $@airplanelocation2,0;
+ $@airplanelocation2 = 0;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Rachel. Have a safe trip.",bc_map,"0xFF8200";
@@ -743,13 +743,13 @@ OnTimer240000:
donpcevent "#AirshipWarp-4::OnHide";
mapannounce "airplane_01","The Airship is now taking off. Our next destination is Izlude.",bc_map,"0x00ff00";
stopnpctimer;
- set .moninv, .moninv + 1;
+ ++.moninv;
if (.moninv == 7) {
if (rand(1,3) == 3) {
donpcevent "Airship#airplane02::OnEnable";
end;
}
- set .moninv, 0;
+ .moninv = 0;
}
initnpctimer;
end;
@@ -840,7 +840,7 @@ airplane_01,50,66,5 script Apple Merchant#air01 4_M_04,{
next;
while (1) {
input .@input;
- set .@pay, .@input * 15;
+ .@pay = .@input * 15;
if (.@input == 0) {
mes "[Meltz]";
mes "Thanks for stopping";
@@ -1129,26 +1129,26 @@ airplane_01,32,61,4 script Nils#ein 1_M_03,1,1,{
1740,
1440,
1450;
- set .@wordtest, rand(7);
+ .@wordtest = rand(7);
next;
mes "[Nils]";
mes .@line1_1$[.@wordtest];
mes .@line1_2$[.@wordtest];
mes .@line1_3$[.@wordtest];
- set .@start_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
+ .@start_time = gettime(3)*60*60 + gettime(2)*60 + gettime(1);
next;
input .@save1$;
- set .@end_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
- set .@total_time, .@end_time - .@start_time;
+ .@end_time = gettime(3)*60*60 + gettime(2)*60 + gettime(1);
+ .@total_time = .@end_time - .@start_time;
mes "[Nils]";
mes .@line2_1$[.@wordtest];
mes .@line2_2$[.@wordtest];
- set .@start_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
+ .@start_time = gettime(3)*60*60 + gettime(2)*60 + gettime(1);
next;
input .@save2$;
- set .@end_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
- set .@total_time, .@total_time + (.@start_time - .@end_time);
- set .@tasoo, (.@letters[.@wordtest] / .@total_time) * 6;
+ .@end_time = gettime(3)*60*60 + gettime(2)*60 + gettime(1);
+ .@total_time = .@total_time + (.@start_time - .@end_time);
+ .@tasoo = (.@letters[.@wordtest] / .@total_time) * 6;
if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) {
mes "[Nils]";
mes "Your record is ^ff0000" + .@total_time + " seconds^000000 and";
@@ -1171,8 +1171,8 @@ airplane_01,32,61,4 script Nils#ein 1_M_03,1,1,{
mes "However, ^ff0000" + strcharinfo(0) + "^000000,";
mes "you made the new top record";
mes "this time. Congratulations!";
- set $050320_minus1_typing$, strcharinfo(0);
- set $050320_ein_typing, .@tasoo;
+ $050320_minus1_typing$ = strcharinfo(0);
+ $050320_ein_typing = .@tasoo;
close;
}
else {
@@ -1363,11 +1363,11 @@ function script applegamble {
}
mes "^3355FF*Rolling and rumbling*^000000";
next;
- set .@giveapple, .@amount*2;
- set .@table1, rand(1,6);
- set .@table2, rand(1,6);
- set .@tablesub, .@table1 + .@table2;
- set .@tabletotal, .@tablesub;
+ .@giveapple = .@amount*2;
+ .@table1 = rand(1,6);
+ .@table2 = rand(1,6);
+ .@tablesub = .@table1 + .@table2;
+ .@tabletotal = .@tablesub;
mes "["+getarg(0)+"]";
mes "I got a ^0000FF" + .@table1 + "^000000 and a ^0000FF" + .@table2 + "^000000.";
mes "That's a total of ^0000FF" + .@tablesub + "^000000.";
@@ -1375,15 +1375,15 @@ function script applegamble {
next;
select("Cast Dice.");
mes "^3355FF*Rolling and rumbling*^000000";
- set .@player1, rand(1,6);
- set .@player2, rand(1,6);
- set .@playersub, .@player1 + .@player2;
+ .@player1 = rand(1,6);
+ .@player2 = rand(1,6);
+ .@playersub = .@player1 + .@player2;
if (.@playersub > 9 && .@amount > 39) {
- set .@player1, rand(1,6);
- set .@player2, rand(1,6);
- set .@playersub, .@player1 + .@player2;
+ .@player1 = rand(1,6);
+ .@player2 = rand(1,6);
+ .@playersub = .@player1 + .@player2;
}
- set .@playertotal, .@playersub;
+ .@playertotal = .@playersub;
next;
mes "["+getarg(0)+"]";
mes "^FF0000" + strcharinfo(0) + "^000000, you have ^FF0000" + .@player1 + "^000000 and ^FF0000" + .@player2 + "^000000. The total is ^FF0000" + .@playersub + "^000000 .";
@@ -1400,8 +1400,8 @@ function script applegamble {
switch (select("Cast dice.:Cancel.")) {
case 1:
mes "^3355FF*Rolling and rumbling*^000000";
- set .@player3, rand(1,6);
- set .@playertotal, .@playertotal + .@player3;
+ .@player3 = rand(1,6);
+ .@playertotal += .@player3;
next;
mes "["+getarg(0)+"]";
if (.@playertotal > 12) {
@@ -1450,8 +1450,8 @@ function script applegamble {
}
next;
mes "^3355FF*Rolling and rumbling*^000000";
- set .@table3, rand(1,6);
- set .@tabletotal, .@tabletotal + .@table3;
+ .@table3 = rand(1,6);
+ .@tabletotal += .@table3;
next;
mes "["+getarg(0)+"]";
if (.@tabletotal > 12) {
diff --git a/npc/battleground/bg_common.txt b/npc/battleground/bg_common.txt
index 81d41513e..abed7c5a0 100644
--- a/npc/battleground/bg_common.txt
+++ b/npc/battleground/bg_common.txt
@@ -245,21 +245,21 @@ bat_room,148,150,5 script Teleporter#Battlefield 4_F_TELEPORTER,{
close2;
getmapxy(.@mapname$,.@x,.@y,1);
if (.@mapname$ == "prontera")
- set bat_return,1;
+ bat_return = 1;
else if (.@mapname$ == "moc_ruins")
- set bat_return,2;
+ bat_return = 2;
else if (.@mapname$ == "aldebaran")
- set bat_return,3;
+ bat_return = 3;
else if (.@mapname$ == "geffen")
- set bat_return,4;
+ bat_return = 4;
else if (.@mapname$ == "payon")
- set bat_return,5;
+ bat_return = 5;
else if (.@mapname$ == "lighthalzen")
- set bat_return,6;
+ bat_return = 6;
else if (.@mapname$ == "rachel")
- set bat_return,7;
+ bat_return = 7;
else
- set bat_return,1;
+ bat_return = 1;
warp "bat_room",154,150;
break;
case 2:
@@ -324,7 +324,7 @@ bat_room,138,144,4 script Repairman#bg 4_M_04,{
// GM Management NPC
//============================================================
bat_room,1,151,3 script Switch#batgnd 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "The command has been cancelled.";
close;
@@ -432,11 +432,11 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{
setarray .@Weapons[0],13108,7828,13171,7829,13172,7828,13173,7829,13174,7829;
break;
}
- set .@menu$,"";
- for(set .@i,0; .@i<getarraysize(.@Weapons); set .@i,.@i+2)
- set .@menu$, .@menu$+getitemname(.@Weapons[.@i])+((.@Weapons[.@i+1]==7828)?"(BB)":"(VB)")+":";
- set .@i, (select(.@menu$)-1)*2;
- set .@type$, ((.@Weapons[.@i+1]==7828)?"(BB)":"(VB)");
+ .@menu$ = "";
+ for (.@i = 0; .@i < getarraysize(.@Weapons); .@i += 2)
+ .@menu$ += getitemname(.@Weapons[.@i])+((.@Weapons[.@i+1]==7828)?"(BB)":"(VB)")+":";
+ .@i = (select(.@menu$)-1)*2;
+ .@type$ = ((.@Weapons[.@i+1]==7828)?"(BB)":"(VB)");
mes "[Erundek]";
mes "You chose ^3131FF"+getitemname(.@Weapons[.@i])+.@type$+"^000000.";
mes "You can exchange for this item with ^FF0000100 "+getitemname(.@Weapons[.@i+1])+"^000000.";
@@ -490,7 +490,7 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{
mes "You can exchange the Medal of Honors with your Badges according to the job classes, as follows:";
next;
setarray .@items[0],2733,500,2720,500,2721,500,2722,500,2723,500,2724,500,2725,500;
- set .@menu1$,"Gunslinger:Swordman/Taekwon Master:Thief:Acolyte:Magician:Archer:Merchant";
+ .@menu1$ = "Gunslinger:Swordman/Taekwon Master:Thief:Acolyte:Magician:Archer:Merchant";
break;
case 4:
mes "[Erundek]";
@@ -508,11 +508,11 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{
readbook 11010,1;
end;
}
- set .@menu$,"";
- if (.@menu1$ != "") set .@menu$, .@menu1$;
- else for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+2)
- set .@menu$, .@menu$+getitemname(.@items[.@i])+":";
- set .@i, (select(.@menu$)-1)*2;
+ .@menu$ = "";
+ if (.@menu1$ != "") .@menu$ = .@menu1$;
+ else for (.@i = 0; .@i < getarraysize(.@items); .@i += 2)
+ .@menu$ += getitemname(.@items[.@i])+":";
+ .@i = (select(.@menu$)-1)*2;
mes "[Erundek]";
mes "You chose ^3131FF"+getitemname(.@items[.@i])+"^000000.";
switch(.@items[.@i]) {
@@ -543,13 +543,13 @@ bat_room,160,150,3 script Erundek 4_M_MANAGER,{
mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000. Are you sure you want this item?";
next;
}
- set .@j, select("Bravery Badge:Valor Badge:Cancel");
+ .@j = select("Bravery Badge:Valor Badge:Cancel");
mes "[Erundek]";
if (.@j == 3) {
mes "You cancelled the exchange.";
break;
}
- set .@cost, ((.@j==1)?7828:7829);
+ .@cost = ((.@j==1)?7828:7829);
if (countitem(.@cost) >= .@items[.@i+1]) {
mes "Thank you for exchanging.";
delitem .@cost, .@items[.@i+1];
diff --git a/npc/battleground/flavius/flavius01.txt b/npc/battleground/flavius/flavius01.txt
index 18f153d87..5fc1de8f5 100644
--- a/npc/battleground/flavius/flavius01.txt
+++ b/npc/battleground/flavius/flavius01.txt
@@ -26,7 +26,7 @@ OnInit:
waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80;
end;
OnEnterBG:
- set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit","");
+ $@FlaviusBG1_id1 = waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit","");
end;
}
@@ -36,7 +36,7 @@ OnInit:
waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80;
end;
OnEnterBG:
- set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit","");
+ $@FlaviusBG1_id2 = waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit","");
end;
}
@@ -58,11 +58,11 @@ OnStop:
OnTimer1000:
stopnpctimer;
initnpctimer;
- set .@chk_bat_a01,getmapusers("bat_b01");
+ .@chk_bat_a01 = getmapusers("bat_b01");
if (.@chk_bat_a01 < 1) {
- set $@FlaviusBG1, 0;
- if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; }
- if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; }
+ $@FlaviusBG1 = 0;
+ if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; $@FlaviusBG1_id1 = 0; }
+ if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; $@FlaviusBG1_id2 = 0; }
donpcevent "start#bat_b01::OnReadyCheck";
}
end;
@@ -79,18 +79,18 @@ OnInit:
OnReadyCheck:
if( $@FlaviusBG1 )
end;
- set .@Guillaume, getwaitingroomstate(0,"Lieutenant Ator");
- set .@Croix, getwaitingroomstate(0,"Lieutenant Thelokus");
+ .@Guillaume = getwaitingroomstate(0,"Lieutenant Ator");
+ .@Croix = getwaitingroomstate(0,"Lieutenant Thelokus");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_b01_timer::OnStop";
end;
}
if( .@Guillaume < 10 || .@Croix < 10 )
end;
- set $@FlaviusBG1, 1;
- set $@FlaviusBG1_Victory, 0;
- set $@Croix_ScoreBG1, 0;
- set $@Guill_ScoreBG1, 0;
+ $@FlaviusBG1 = 1;
+ $@FlaviusBG1_Victory = 0;
+ $@Croix_ScoreBG1 = 0;
+ $@Guill_ScoreBG1 = 0;
bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
donpcevent "Lieutenant Ator::OnEnterBG";
@@ -160,14 +160,14 @@ OnMyMobDead:
if (mobcount("bat_b01","OBJ#bat_b01_a::OnMyMobDead") < 1) {
mapannounce "bat_b01", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Croix_ScoreBG1 > 0) {
- set $@FlaviusBG1_Victory,2;
- set $@Croix_ScoreBG1,$@Croix_ScoreBG1+1;
+ $@FlaviusBG1_Victory = 2;
+ ++$@Croix_ScoreBG1;
enablenpc "Guillaume Vintenar#b01_a";
enablenpc "Croix Vintenar#b01_b";
donpcevent "time#bat_b01::OnStop";
}
else {
- set $@Croix_ScoreBG1,1;
+ $@Croix_ScoreBG1 = 1;
donpcevent "time#bat_b01::OnEnable";
donpcevent "start#bat_b01::OnReset";
}
@@ -193,14 +193,14 @@ OnMyMobDead:
if (mobcount("bat_b01","OBJ#bat_b01_b::OnMyMobDead") < 1) {
mapannounce "bat_b01", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Guill_ScoreBG1 > 0) {
- set $@FlaviusBG1_Victory,1;
- set $@Guill_ScoreBG1,$@Guill_ScoreBG1+1;
+ $@FlaviusBG1_Victory = 1;
+ ++$@Guill_ScoreBG1;
enablenpc "Guillaume Vintenar#b01_a";
enablenpc "Croix Vintenar#b01_b";
donpcevent "time#bat_b01::OnStop";
}
else {
- set $@Guill_ScoreBG1,1;
+ $@Guill_ScoreBG1 = 1;
donpcevent "time#bat_b01::OnEnable";
donpcevent "start#bat_b01::OnReset";
}
@@ -377,14 +377,14 @@ OnTouch:
bat_b01,87,76,0 script A_CODE#bat_b01 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
+ if (!questprogress(2070))
setquest 2070;
end;
}
bat_b01,312,224,0 script B_CODE#bat_b01 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
+ if (!questprogress(2070))
setquest 2070;
end;
}
@@ -392,8 +392,8 @@ OnTouch:
bat_b01,10,294,3 script Guillaume Vintenar#b01_a 4_M_RASWORD,{
if ($@FlaviusBG1_id1 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 1) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -412,8 +412,8 @@ bat_b01,10,294,3 script Guillaume Vintenar#b01_a 4_M_RASWORD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -444,8 +444,8 @@ OnInit:
bat_b01,389,14,3 script Croix Vintenar#b01_b 4_M_RASWORD,{
if ($@FlaviusBG1_id2 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 2) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -464,8 +464,8 @@ bat_b01,389,14,3 script Croix Vintenar#b01_b 4_M_RASWORD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -574,11 +574,11 @@ bat_b01,336,139,3 script Croix Camp#flag30 1_FLAG_EAGLE,{ end; }
bat_b01,389,16,3 script Croix Camp#flag31 1_FLAG_EAGLE,{ end; }
bat_b01,10,294,3 script Vintenar#bat_b01_aover 4_M_KY_HEAD,{
- set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
+ .@A_B_gap = $@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -597,8 +597,8 @@ bat_b01,10,294,3 script Vintenar#bat_b01_aover 4_M_KY_HEAD,{
}
}
else if (.@A_B_gap == 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -617,8 +617,8 @@ bat_b01,10,294,3 script Vintenar#bat_b01_aover 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -652,11 +652,11 @@ OnInit:
}
bat_b01,389,14,3 script Vintenar#bat_b01_bover 4_M_CRU_HEAD,{
- set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
+ .@A_B_gap = $@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -675,8 +675,8 @@ bat_b01,389,14,3 script Vintenar#bat_b01_bover 4_M_CRU_HEAD,{
}
}
else if (.@A_B_gap == 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -695,8 +695,8 @@ bat_b01,389,14,3 script Vintenar#bat_b01_bover 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -730,7 +730,7 @@ OnInit:
}
bat_b01,1,10,3 script Release all#b01 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "Cancelled.";
close;
diff --git a/npc/battleground/flavius/flavius02.txt b/npc/battleground/flavius/flavius02.txt
index 0a88b9919..42a0abc42 100644
--- a/npc/battleground/flavius/flavius02.txt
+++ b/npc/battleground/flavius/flavius02.txt
@@ -27,7 +27,7 @@ OnInit:
waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80;
end;
OnEnterBG:
- set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",10,290,"start#bat_b02::OnGuillaumeQuit","");
+ $@FlaviusBG2_id1 = waitingroom2bg("bat_b02",10,290,"start#bat_b02::OnGuillaumeQuit","");
end;
}
@@ -37,7 +37,7 @@ OnInit:
waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80;
end;
OnEnterBG:
- set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",390,10,"start#bat_b02::OnCroixQuit","");
+ $@FlaviusBG2_id2 = waitingroom2bg("bat_b02",390,10,"start#bat_b02::OnCroixQuit","");
end;
}
@@ -59,11 +59,11 @@ OnStop:
OnTimer1000:
stopnpctimer;
initnpctimer;
- set .@chk_bat_a01,getmapusers("bat_b02");
+ .@chk_bat_a01 = getmapusers("bat_b02");
if (.@chk_bat_a01 < 1) {
- set $@FlaviusBG2, 0;
- if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; }
- if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; }
+ $@FlaviusBG2 = 0;
+ if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; $@FlaviusBG2_id1 = 0; }
+ if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; $@FlaviusBG2_id2 = 0; }
donpcevent "start#bat_b02::OnReadyCheck";
}
end;
@@ -80,18 +80,18 @@ OnInit:
OnReadyCheck:
if( $@FlaviusBG2 )
end;
- set .@Guillaume, getwaitingroomstate(0,"Lieutenant Huvas");
- set .@Croix, getwaitingroomstate(0,"Lieutenant Yukon");
+ .@Guillaume = getwaitingroomstate(0,"Lieutenant Huvas");
+ .@Croix = getwaitingroomstate(0,"Lieutenant Yukon");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_b02_timer::OnStop";
end;
}
if( .@Guillaume < 10 || .@Croix < 10 )
end;
- set $@FlaviusBG2, 1;
- set $@FlaviusBG2_Victory, 0;
- set $@Croix_ScoreBG2, 0;
- set $@Guill_ScoreBG2, 0;
+ $@FlaviusBG2 = 1;
+ $@FlaviusBG2_Victory = 0;
+ $@Croix_ScoreBG2 = 0;
+ $@Guill_ScoreBG2 = 0;
bg_updatescore "bat_b02",$@Guill_ScoreBG2,$@Croix_ScoreBG2;
donpcevent "Lieutenant Huvas::OnEnterBG";
@@ -161,14 +161,14 @@ OnMyMobDead:
if (mobcount("bat_b02","OBJ#bat_b02_a::OnMyMobDead") < 1) {
mapannounce "bat_b02", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Croix_ScoreBG2 > 0) {
- set $@FlaviusBG2_Victory,2;
- set $@Croix_ScoreBG2,$@Croix_ScoreBG2+1;
+ $@FlaviusBG2_Victory = 2;
+ $@Croix_ScoreBG2 = $@Croix_ScoreBG2+1;
enablenpc "Guillaume Vintenar#b02_a";
enablenpc "Croix Vintenar#b02_b";
donpcevent "time#bat_b02::OnStop";
}
else {
- set $@Croix_ScoreBG2,1;
+ $@Croix_ScoreBG2 = 1;
donpcevent "time#bat_b02::OnEnable";
donpcevent "start#bat_b02::OnReset";
}
@@ -194,14 +194,14 @@ OnMyMobDead:
if (mobcount("bat_b02","OBJ#bat_b02_b::OnMyMobDead") < 1) {
mapannounce "bat_b02", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Guill_ScoreBG2 > 0) {
- set $@FlaviusBG2_Victory,1;
- set $@Guill_ScoreBG2,$@Guill_ScoreBG2+1;
+ $@FlaviusBG2_Victory = 1;
+ ++$@Guill_ScoreBG2;
enablenpc "Guillaume Vintenar#b02_a";
enablenpc "Croix Vintenar#b02_b";
donpcevent "time#bat_b02::OnStop";
}
else {
- set $@Guill_ScoreBG2,1;
+ $@Guill_ScoreBG2 = 1;
donpcevent "time#bat_b02::OnEnable";
donpcevent "start#bat_b02::OnReset";
}
@@ -378,23 +378,23 @@ OnTouch:
bat_b02,87,76,0 script A_CODE#bat_b02 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
- //setquest 2070;
+ //if (!questprogress(2070))
+ // setquest 2070;
end;
}
bat_b02,312,224,0 script B_CODE#bat_b02 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
- //setquest 2070;
+ //if (!questprogress(2070))
+ // setquest 2070;
end;
}
bat_b02,10,294,3 script Guillaume Vintenar#b02_a 4_M_RASWORD,{
if ($@FlaviusBG2_id1 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 1) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -413,8 +413,8 @@ bat_b02,10,294,3 script Guillaume Vintenar#b02_a 4_M_RASWORD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -445,8 +445,8 @@ OnInit:
bat_b02,389,14,3 script Croix Vintenar#b02_b 4_M_RASWORD,{
if ($@FlaviusBG2_id2 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 2) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -465,8 +465,8 @@ bat_b02,389,14,3 script Croix Vintenar#b02_b 4_M_RASWORD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -575,11 +575,11 @@ bat_b02,336,139,3 script Croix Camp#flag41 1_FLAG_EAGLE,{ end; }
bat_b02,389,16,3 script Croix Camp#flag42 1_FLAG_EAGLE,{ end; }
bat_b02,10,294,3 script Vintenar#bat_b02_aover 4_M_KY_HEAD,{
- set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
+ .@A_B_gap = $@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -598,8 +598,8 @@ bat_b02,10,294,3 script Vintenar#bat_b02_aover 4_M_KY_HEAD,{
}
}
else if (.@A_B_gap == 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -618,8 +618,8 @@ bat_b02,10,294,3 script Vintenar#bat_b02_aover 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -653,11 +653,11 @@ OnInit:
}
bat_b02,389,14,3 script Vintenar#bat_b02_bover 4_M_CRU_HEAD,{
- set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
+ .@A_B_gap = $@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -676,8 +676,8 @@ bat_b02,389,14,3 script Vintenar#bat_b02_bover 4_M_CRU_HEAD,{
}
}
else if (.@A_B_gap == 0) {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
@@ -696,8 +696,8 @@ bat_b02,389,14,3 script Vintenar#bat_b02_bover 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7829);
- set .@medal_gap,500 - .@your_medal;
+ .@your_medal = countitem(7829);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -731,7 +731,7 @@ OnInit:
}
bat_b02,1,10,3 script Release all#b02 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "Cancelled.";
close;
diff --git a/npc/battleground/flavius/flavius_enter.txt b/npc/battleground/flavius/flavius_enter.txt
index d63130007..315eff2cb 100644
--- a/npc/battleground/flavius/flavius_enter.txt
+++ b/npc/battleground/flavius/flavius_enter.txt
@@ -30,48 +30,41 @@ bat_room,133,178,5 script Flavius Officer#01a 4_M_KY_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Guillaume Army Officer]";
mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Guillaume Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2070,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Guillaume Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2070;
- set .@mapcount2,getmapusers("bat_b01");
- if (.@mapcount2 > 0) {
- mes "[Guillaume Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@FlaviusBG1 > 0) {
- mes "[Guillaume Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Guillaume Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Croixs what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",85,223;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Guillaume Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2070, PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Guillaume Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2070;
+ if (getmapusers("bat_b01") > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@FlaviusBG1 > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Guillaume Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Croixs what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",85,223;
+ end;
case 2:
mes "[Guillaume Army Officer]";
mes "Today, we shall be victorious!";
@@ -97,48 +90,41 @@ bat_room,133,121,1 script Flavius Officer#01b 4_M_CRU_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Croix Army Officer]";
mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Croix Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2070,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Croix Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2070;
- set .@mapcount2,getmapusers("bat_b01");
- if (.@mapcount2 > 0) {
- mes "[Croix Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@FlaviusBG1 > 0) {
- mes "[Croix Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Croix Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Guillaumes what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",85,207;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Croix Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2070,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Croix Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2070;
+ if (getmapusers("bat_b01") > 0) {
+ mes "[Croix Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@FlaviusBG1 > 0) {
+ mes "[Croix Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Croix Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Guillaumes what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",85,207;
+ end;
case 2:
mes "[Croix Army Officer]";
mes "Today, we shall be victorious!";
@@ -254,48 +240,41 @@ bat_room,148,178,5 script Flavius Officer#02a 4_M_KY_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Guillaume Army Officer]";
mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Guillaume Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2070,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Guillaume Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2070;
- set .@mapcount2,getmapusers("bat_b02");
- if (.@mapcount2 > 0) {
- mes "[Guillaume Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@FlaviusBG2 > 0) {
- mes "[Guillaume Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Guillaume Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Croixs what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",141,224;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Guillaume Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2070, PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Guillaume Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2070;
+ if (getmapusers("bat_b02") > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@FlaviusBG2 > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Guillaume Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Croixs what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",141,224;
+ end;
case 2:
mes "[Guillaume Army Officer]";
mes "Today, we shall be victorious!";
@@ -321,48 +300,41 @@ bat_room,148,121,1 script Flavius Officer#02b 4_M_CRU_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Croix Army Officer]";
mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Croix Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2070,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Croix Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2070;
- set .@mapcount2,getmapusers("bat_b02");
- if (.@mapcount2 > 0) {
- mes "[Croix Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@FlaviusBG2 > 0) {
- mes "[Croix Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Croix Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Guillaumes what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",141,207;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Croix Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2070,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Croix Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2070;
+ if (getmapusers("bat_b02") > 0) {
+ mes "[Croix Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@FlaviusBG2 > 0) {
+ mes "[Croix Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Croix Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Guillaumes what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",141,207;
+ end;
case 2:
mes "[Croix Army Officer]";
mes "Today, we shall be victorious!";
diff --git a/npc/battleground/kvm/kvm01.txt b/npc/battleground/kvm/kvm01.txt
index b4888be88..d5ecdfa31 100644
--- a/npc/battleground/kvm/kvm01.txt
+++ b/npc/battleground/kvm/kvm01.txt
@@ -27,7 +27,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM01BG_id1, waitingroom2bg("bat_c01",52,129,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie");
+ $@KvM01BG_id1 = waitingroom2bg("bat_c01",52,129,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie");
end;
}
@@ -41,7 +41,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM01BG_id2, waitingroom2bg("bat_c01",147,55,"KvM01_BG::OnCroixQuit","KvM01_BG::OnCroixDie");
+ $@KvM01BG_id2 = waitingroom2bg("bat_c01",147,55,"KvM01_BG::OnCroixQuit","KvM01_BG::OnCroixDie");
end;
}
@@ -93,7 +93,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,1;
+ Bat_Team = 1;
setquest 6025;
end;
}
@@ -114,7 +114,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,2;
+ Bat_Team = 2;
setquest 6025;
end;
}
@@ -139,11 +139,10 @@ OnCroixJoin:
end;
OnGuillaumeQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnGuillaumeDie:
- if( $@KvM01BG == 2 )
- {
- set .Guillaume_Count, .Guillaume_Count - 1;
+ if ($@KvM01BG == 2) {
+ --.Guillaume_Count;
bg_updatescore "bat_c01",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin";
else {
@@ -154,11 +153,10 @@ OnGuillaumeDie:
end;
OnCroixQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnCroixDie:
- if( $@KvM01BG == 2 )
- {
- set .Croix_Count, .Croix_Count - 1;
+ if ($@KvM01BG == 2) {
+ --.Croix_Count;
bg_updatescore "bat_c01",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin";
else {
@@ -171,13 +169,13 @@ OnCroixDie:
OnReadyCheck:
if( $@KvM01BG )
end;
- set .@Guillaume, getwaitingroomstate(0,"KvM01R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"KvM01R_Croix");
+ .@Guillaume = getwaitingroomstate(0,"KvM01R_Guillaume");
+ .@Croix = getwaitingroomstate(0,"KvM01R_Croix");
if( .@Guillaume < 5 || .@Croix < 5 )
end;
- set $@KvM01BG, 1; // Starting
+ $@KvM01BG = 1; // Starting
donpcevent "KvM01R_Croix::OnEnterBG";
donpcevent "KvM01R_Guillaume::OnEnterBG";
donpcevent "KvM01_BG::OnStart";
@@ -186,7 +184,7 @@ OnReadyCheck:
OnStart:
disablenpc "KVM Officer#KVM01A";
disablenpc "KVM Officer#KVM01B";
- set $@KvM01BG_Victory, 0;
+ $@KvM01BG_Victory = 0;
// Warp Teams
bg_warp $@KvM01BG_id1,"bat_c01",53,128;
bg_warp $@KvM01BG_id2,"bat_c01",146,55;
@@ -239,18 +237,18 @@ OnTimer59000:
OnTimer61000:
// Team Members
- set .Guillaume_Count, bg_get_data($@KvM01BG_id1, 0);
- set .Croix_Count, bg_get_data($@KvM01BG_id2, 0);
+ .Guillaume_Count = bg_get_data($@KvM01BG_id1, 0);
+ .Croix_Count = bg_get_data($@KvM01BG_id2, 0);
if( .Guillaume_Count < 5 || .Croix_Count < 5 )
{
- set $@KvM01BG_Victory, 3;
- set $@KvM01BG, 3;
+ $@KvM01BG_Victory = 3;
+ $@KvM01BG = 3;
mapannounce "bat_c01","There are not enough players to start the battle",1,0x696969;
stopnpctimer;
donpcevent "KvM01_BG::OnStop";
end;
}
- set $@KvM01BG, 2; // Playing
+ $@KvM01BG = 2; // Playing
bg_warp $@KvM01BG_id1,"bat_c01",61,120;
bg_warp $@KvM01BG_id2,"bat_c01",138,63;
end;
@@ -283,8 +281,8 @@ OnTimer360000:
donpcevent "KvM01_BG::OnGuillaumeWin";
else
{ // Draw Game
- set $@KvM01BG, 3;
- set $@KvM01BG_Victory, 3;
+ $@KvM01BG = 3;
+ $@KvM01BG_Victory = 3;
mapannounce "bat_c01", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "This battle has ended in a draw.",bc_map,"0x00ff00";
@@ -293,8 +291,8 @@ OnTimer360000:
end;
OnGuillaumeWin:
- set $@KvM01BG, 3;
- set $@KvM01BG_Victory, 1;
+ $@KvM01BG = 3;
+ $@KvM01BG_Victory = 1;
mapannounce "bat_c01", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -302,8 +300,8 @@ OnGuillaumeWin:
end;
OnCroixWin:
- set $@KvM01BG, 3;
- set $@KvM01BG_Victory, 2;
+ $@KvM01BG = 3;
+ $@KvM01BG_Victory = 2;
mapannounce "bat_c01", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c01", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c01", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -321,17 +319,17 @@ OnStop:
end;
OnReset:
- set .Croix_Count, 0;
- set .Guillaume_Count, 0;
- set $@KvM01BG_Victory, 0;
- if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; set $@KvM01BG_id1, 0; }
- if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; set $@KvM01BG_id2, 0; }
+ .Croix_Count = 0;
+ .Guillaume_Count = 0;
+ $@KvM01BG_Victory = 0;
+ if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; $@KvM01BG_id1 = 0; }
+ if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; $@KvM01BG_id2 = 0; }
disablenpc "KVM Officer#KVM01A";
disablenpc "KVM Officer#KVM01B";
mapwarp "bat_c01","bat_room",154,150;
maprespawnguildid "bat_c01",0,3; // Just in case someone else
bg_updatescore "bat_c01",5,5;
- set $@KvM01BG, 0;
+ $@KvM01BG = 0;
donpcevent "KvM01_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
}
@@ -374,14 +372,14 @@ bat_c01,51,130,5 script KVM Officer#KVM01A 4_M_KY_HEAD,{
{
if( $@KvM01BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 5;
+ kvm_point += 5;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
} else {
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
@@ -389,7 +387,7 @@ bat_c01,51,130,5 script KVM Officer#KVM01A 4_M_KY_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
@@ -401,14 +399,14 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 4_M_CRU_HEAD,{
{
if( $@KvM01BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 5;
+ kvm_point += 5;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 5";
close2;
} else {
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
@@ -416,7 +414,7 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 4_M_CRU_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
diff --git a/npc/battleground/kvm/kvm02.txt b/npc/battleground/kvm/kvm02.txt
index 06f3a2dcf..bf41528cc 100644
--- a/npc/battleground/kvm/kvm02.txt
+++ b/npc/battleground/kvm/kvm02.txt
@@ -29,7 +29,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM02BG_id1, waitingroom2bg("bat_c02",52,129,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie");
+ $@KvM02BG_id1 = waitingroom2bg("bat_c02",52,129,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie");
end;
}
@@ -43,7 +43,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM02BG_id2, waitingroom2bg("bat_c02",147,55,"KvM02_BG::OnCroixQuit","KvM02_BG::OnCroixDie");
+ $@KvM02BG_id2 = waitingroom2bg("bat_c02",147,55,"KvM02_BG::OnCroixQuit","KvM02_BG::OnCroixDie");
end;
}
@@ -95,7 +95,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,1;
+ Bat_Team = 1;
setquest 6025;
end;
}
@@ -116,7 +116,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,2;
+ Bat_Team = 2;
setquest 6025;
end;
}
@@ -141,11 +141,10 @@ OnCroixJoin:
end;
OnGuillaumeQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnGuillaumeDie:
- if( $@KvM02BG == 2 )
- {
- set .Guillaume_Count, .Guillaume_Count - 1;
+ if ($@KvM02BG == 2) {
+ --.Guillaume_Count;
bg_updatescore "bat_c02",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin";
else {
@@ -156,11 +155,10 @@ OnGuillaumeDie:
end;
OnCroixQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnCroixDie:
- if( $@KvM02BG == 2 )
- {
- set .Croix_Count, .Croix_Count - 1;
+ if ($@KvM02BG == 2) {
+ --.Croix_Count;
bg_updatescore "bat_c02",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin";
else {
@@ -173,13 +171,13 @@ OnCroixDie:
OnReadyCheck:
if( $@KvM02BG )
end;
- set .@Guillaume, getwaitingroomstate(0,"KvM02R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"KvM02R_Croix");
+ .@Guillaume = getwaitingroomstate(0,"KvM02R_Guillaume");
+ .@Croix = getwaitingroomstate(0,"KvM02R_Croix");
if( .@Guillaume < 5 || .@Croix < 5 )
end;
- set $@KvM02BG, 1; // Starting
+ $@KvM02BG = 1; // Starting
donpcevent "KvM02R_Croix::OnEnterBG";
donpcevent "KvM02R_Guillaume::OnEnterBG";
donpcevent "KvM02_BG::OnStart";
@@ -188,7 +186,7 @@ OnReadyCheck:
OnStart:
disablenpc "KVM Officer#KVM02A";
disablenpc "KVM Officer#KVM02B";
- set $@KvM02BG_Victory, 0;
+ $@KvM02BG_Victory = 0;
// Warp Teams
bg_warp $@KvM02BG_id1,"bat_c02",53,128;
bg_warp $@KvM02BG_id2,"bat_c02",146,55;
@@ -241,18 +239,18 @@ OnTimer59000:
OnTimer61000:
// Team Members
- set .Guillaume_Count, bg_get_data($@KvM02BG_id1, 0);
- set .Croix_Count, bg_get_data($@KvM02BG_id2, 0);
+ .Guillaume_Count = bg_get_data($@KvM02BG_id1, 0);
+ .Croix_Count = bg_get_data($@KvM02BG_id2, 0);
if( .Guillaume_Count < 5 || .Croix_Count < 5 )
{
- set $@KvM02BG_Victory, 3;
- set $@KvM02BG, 3;
+ $@KvM02BG_Victory = 3;
+ $@KvM02BG = 3;
mapannounce "bat_c02","There are not enough players to start the battle",1,0x808080;
stopnpctimer;
donpcevent "KvM02_BG::OnStop";
end;
}
- set $@KvM02BG, 2; // Playing
+ $@KvM02BG = 2; // Playing
bg_warp $@KvM02BG_id1,"bat_c02",62,119;
bg_warp $@KvM02BG_id2,"bat_c02",137,64;
end;
@@ -285,8 +283,8 @@ OnTimer360000:
donpcevent "KvM02_BG::OnGuillaumeWin";
else
{ // Draw Game
- set $@KvM02BG, 3;
- set $@KvM02BG_Victory, 3;
+ $@KvM02BG = 3;
+ $@KvM02BG_Victory = 3;
mapannounce "bat_c02", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "This battle has ended in a draw.",bc_map,"0x00ff00";
@@ -295,8 +293,8 @@ OnTimer360000:
end;
OnGuillaumeWin:
- set $@KvM02BG, 3;
- set $@KvM02BG_Victory, 1;
+ $@KvM02BG = 3;
+ $@KvM02BG_Victory = 1;
mapannounce "bat_c02", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -304,8 +302,8 @@ OnGuillaumeWin:
end;
OnCroixWin:
- set $@KvM02BG, 3;
- set $@KvM02BG_Victory, 2;
+ $@KvM02BG = 3;
+ $@KvM02BG_Victory = 2;
mapannounce "bat_c02", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c02", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c02", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -323,17 +321,17 @@ OnStop:
end;
OnReset:
- set .Croix_Count, 0;
- set .Guillaume_Count, 0;
- set $@KvM02BG_Victory, 0;
- if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; set $@KvM02BG_id1, 0; }
- if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; set $@KvM02BG_id2, 0; }
+ .Croix_Count = 0;
+ .Guillaume_Count = 0;
+ $@KvM02BG_Victory = 0;
+ if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; $@KvM02BG_id1 = 0; }
+ if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; $@KvM02BG_id2 = 0; }
disablenpc "KVM Officer#KVM02A";
disablenpc "KVM Officer#KVM02B";
mapwarp "bat_c02","bat_room",154,150;
maprespawnguildid "bat_c02",0,3; // Just in case someone else
bg_updatescore "bat_c02",5,5;
- set $@KvM02BG, 0;
+ $@KvM02BG = 0;
donpcevent "KvM02_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
}
@@ -376,7 +374,7 @@ bat_c02,51,130,5 script KVM Officer#KVM02A 4_M_KY_HEAD,{
{
if( $@KvM02BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
@@ -390,7 +388,7 @@ bat_c02,51,130,5 script KVM Officer#KVM02A 4_M_KY_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
@@ -402,7 +400,7 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 4_M_CRU_HEAD,{
{
if( $@KvM02BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
@@ -416,7 +414,7 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 4_M_CRU_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
diff --git a/npc/battleground/kvm/kvm03.txt b/npc/battleground/kvm/kvm03.txt
index ea7dc3d47..f4bd49d4f 100644
--- a/npc/battleground/kvm/kvm03.txt
+++ b/npc/battleground/kvm/kvm03.txt
@@ -28,7 +28,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM03BG_id1, waitingroom2bg("bat_c03",52,129,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie");
+ $@KvM03BG_id1 = waitingroom2bg("bat_c03",52,129,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie");
end;
}
@@ -42,7 +42,7 @@ OnInit:
end;
OnEnterBG:
- set $@KvM03BG_id2, waitingroom2bg("bat_c03",147,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie");
+ $@KvM03BG_id2 = waitingroom2bg("bat_c03",147,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie");
end;
}
@@ -94,7 +94,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,1;
+ Bat_Team = 1;
setquest 6025;
end;
}
@@ -115,7 +115,7 @@ OnDisable:
end;
OnTouch:
- set Bat_Team,2;
+ Bat_Team = 2;
setquest 6025;
end;
}
@@ -140,11 +140,10 @@ OnCroixJoin:
end;
OnGuillaumeQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnGuillaumeDie:
- if( $@KvM03BG == 2 )
- {
- set .Guillaume_Count, .Guillaume_Count - 1;
+ if ($@KvM03BG == 2) {
+ --.Guillaume_Count;
bg_updatescore "bat_c03",.Guillaume_Count,.Croix_Count;
if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin";
else {
@@ -155,11 +154,10 @@ OnGuillaumeDie:
end;
OnCroixQuit:
- //set BG_Delay_Tick, gettimetick(2) + 1200;
+ //BG_Delay_Tick = gettimetick(2) + 1200;
OnCroixDie:
- if( $@KvM03BG == 2 )
- {
- set .Croix_Count, .Croix_Count - 1;
+ if ($@KvM03BG == 2) {
+ --.Croix_Count;
bg_updatescore "bat_c03",.Guillaume_Count,.Croix_Count;
if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin";
else {
@@ -172,13 +170,13 @@ OnCroixDie:
OnReadyCheck:
if( $@KvM03BG )
end;
- set .@Guillaume, getwaitingroomstate(0,"KvM03R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"KvM03R_Croix");
+ .@Guillaume = getwaitingroomstate(0,"KvM03R_Guillaume");
+ .@Croix = getwaitingroomstate(0,"KvM03R_Croix");
if( .@Guillaume < 5 || .@Croix < 5 )
end;
- set $@KvM03BG, 1; // Starting
+ $@KvM03BG = 1; // Starting
donpcevent "KvM03R_Croix::OnEnterBG";
donpcevent "KvM03R_Guillaume::OnEnterBG";
donpcevent "KvM03_BG::OnStart";
@@ -187,7 +185,7 @@ OnReadyCheck:
OnStart:
disablenpc "KVM Officer#KVM03A";
disablenpc "KVM Officer#KVM03B";
- set $@KvM01BG_Victory, 0;
+ $@KvM01BG_Victory = 0;
// Warp Teams
bg_warp $@KvM03BG_id1,"bat_c03",53,128;
bg_warp $@KvM03BG_id2,"bat_c03",146,55;
@@ -240,18 +238,18 @@ OnTimer59000:
OnTimer61000:
// Team Members
- set .Guillaume_Count, bg_get_data($@KvM03BG_id1, 0);
- set .Croix_Count, bg_get_data($@KvM03BG_id2, 0);
+ .Guillaume_Count = bg_get_data($@KvM03BG_id1, 0);
+ .Croix_Count = bg_get_data($@KvM03BG_id2, 0);
if( .Guillaume_Count < 5 || .Croix_Count < 5 )
{
- set $@KvM03BG_Victory, 3;
- set $@KvM03BG, 3;
+ $@KvM03BG_Victory = 3;
+ $@KvM03BG = 3;
mapannounce "bat_c03","There are not enough players to start the battle",1,0xC0C0C0;
stopnpctimer;
donpcevent "KvM03_BG::OnStop";
end;
}
- set $@KvM03BG, 2; // Playing
+ $@KvM03BG = 2; // Playing
bg_warp $@KvM03BG_id1,"bat_c03",62,119;
bg_warp $@KvM03BG_id2,"bat_c03",137,64;
end;
@@ -284,8 +282,8 @@ OnTimer360000:
donpcevent "KvM03_BG::OnGuillaumeWin";
else
{ // Draw Game
- set $@KvM03BG, 3;
- set $@KvM03BG_Victory, 3;
+ $@KvM03BG = 3;
+ $@KvM03BG_Victory = 3;
mapannounce "bat_c03", "The number of Guillaumes is "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "The number of Croixes is "+.Croix_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "This battle has ended in a draw.",bc_map,"0x00ff00";
@@ -294,8 +292,8 @@ OnTimer360000:
end;
OnGuillaumeWin:
- set $@KvM03BG, 3;
- set $@KvM03BG_Victory, 1;
+ $@KvM03BG = 3;
+ $@KvM03BG_Victory = 1;
mapannounce "bat_c03", "Guillaume wins!",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to Guillaume members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -303,8 +301,8 @@ OnGuillaumeWin:
end;
OnCroixWin:
- set $@KvM03BG, 3;
- set $@KvM03BG_Victory, 2;
+ $@KvM03BG = 3;
+ $@KvM03BG_Victory = 2;
mapannounce "bat_c03", "Croix wins!",bc_map,"0x00ff00";
mapannounce "bat_c03", "Congratulations to Croix members.",bc_map,"0x00ff00";
mapannounce "bat_c03", "Everyone will be moved to the start point.",bc_map,"0x00ff00";
@@ -322,17 +320,17 @@ OnStop:
end;
OnReset:
- set .Croix_Count, 0;
- set .Guillaume_Count, 0;
- set $@KvM03BG_Victory, 0;
- if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; }
- if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; }
+ .Croix_Count = 0;
+ .Guillaume_Count = 0;
+ $@KvM03BG_Victory = 0;
+ if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; $@KvM03BG_id1 = 0; }
+ if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; $@KvM03BG_id2 = 0; }
disablenpc "KVM Officer#KVM03A";
disablenpc "KVM Officer#KVM03B";
mapwarp "bat_c03","bat_room",154,150;
maprespawnguildid "bat_c03",0,3; // Just in case someone else
bg_updatescore "bat_c03",5,5;
- set $@KvM03BG, 0;
+ $@KvM03BG = 0;
donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start
end;
}
@@ -375,14 +373,14 @@ bat_c03,51,130,5 script KVM Officer#KVM03A 4_M_KY_HEAD,{
{
if( $@KvM03BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 2;
+ kvm_point += 2;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
} else {
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
@@ -390,7 +388,7 @@ bat_c03,51,130,5 script KVM Officer#KVM03A 4_M_KY_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
@@ -402,14 +400,14 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 4_M_CRU_HEAD,{
{
if( $@KvM03BG_Victory == Bat_Team )
{ // Victory
- set kvm_point,kvm_point + 2;
+ kvm_point +=2;
mes "[KVM Officer]";
mes "Good Game.";
mes "May the glory of KVM be with you.";
mes "You aquire the winning points: 2";
close2;
} else {
- set kvm_point,kvm_point + 1;
+ ++kvm_point;
mes "[KVM Officer]";
mes "I am so sorry.";
mes "I wish you better luck next time.";
@@ -417,7 +415,7 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 4_M_CRU_HEAD,{
close2;
}
bg_leave;
- set Bat_Team,0;
+ Bat_Team = 0;
warp "bat_room",154,150;
end;
}
diff --git a/npc/battleground/kvm/kvm_enter.txt b/npc/battleground/kvm/kvm_enter.txt
index 1b5e9062c..8f9f40e2b 100644
--- a/npc/battleground/kvm/kvm_enter.txt
+++ b/npc/battleground/kvm/kvm_enter.txt
@@ -19,16 +19,16 @@
//============================================================
bat_room,164,178,5 script KVM Mercenary Officer#1 4_M_KY_KNT,{
/*
- set .@kvm,checkquest(6026,PLAYTIME);
- if ((.@kvm == 0) || (.@kvm == 1)) {
+ .@kvm = questprogress(6026,PLAYTIME);
+ if (.@kvm == 1) {
mes "[Croix Mercenary Officer]";
mes "I know that you've already signed with the Croix. Go back and join their team. We will not accept traitors to fight for us.";
close;
}
else if (.@kvm == 2) erasequest 6026;
*/
- set .@permit,checkquest(6025,PLAYTIME);
- if ((.@permit == 0) || (.@permit == 1)) {
+ .@permit = questprogress(6025,PLAYTIME);
+ if (.@permit == 1) {
mes "[Guillaume Mercenary Officer]";
mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
@@ -119,16 +119,16 @@ bat_room,167,178,5 script Guillaume Knight#kvm 4_M_KY_SOLD,{
//============================================================
bat_room,164,121,1 script KVM Mercenary Officer#2 4_M_CRU_KNT,{
/*
- set .@kvm,checkquest(6025,PLAYTIME);
- if ((.@kvm == 0) || (.@kvm == 1)) {
+ .@kvm = questprogress(6025,PLAYTIME);
+ if (.@kvm == 1) {
mes "[Croix Mercenary Officer]";
mes "I know that you've already signed with the Guillaume. Go back and join their team. We will not accept traitors to fight for us.";
close;
}
else if (.@kvm == 2) erasequest 6025;
*/
- set .@permit,checkquest(6025,PLAYTIME);
- if ((.@permit == 0) || (.@permit == 1)) {
+ .@permit = questprogress(6025,PLAYTIME);
+ if (.@permit == 1) {
mes "[Croix Mercenary Officer]";
mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
diff --git a/npc/battleground/kvm/kvm_item_pay.txt b/npc/battleground/kvm/kvm_item_pay.txt
index fa14455d6..ed6190690 100644
--- a/npc/battleground/kvm/kvm_item_pay.txt
+++ b/npc/battleground/kvm/kvm_item_pay.txt
@@ -18,9 +18,9 @@
bat_room,151,144,3 script KVM Logistic Officer#a 4_M_JOB_KNIGHT2,{
if (countitem(7773)) {
- set .@pointstoadd,countitem(7773);
+ .@pointstoadd = countitem(7773);
delitem 7773,.@pointstoadd;
- set kvm_point,kvm_point+.@pointstoadd;
+ kvm_point += .@pointstoadd;
mes "[Logistics]";
mes "Are those "+getitemname(7773)+"s I see?";
mes "We no longer accept that currency,";
@@ -45,7 +45,7 @@ bat_room,151,144,3 script KVM Logistic Officer#a 4_M_JOB_KNIGHT2,{
mes "be reversed. Please be carefull.";
mes "Select the next step please.";
next;
- set .@name$,strcharinfo(0);
+ .@name$ = strcharinfo(0);
switch(select("Read the KVM Catalogue.:Purchase KVM Items.:Confirm KVM Points.:Explanation of KVM Rewards.:Explanation of KVM Points.")) {
case 1:
mes "[Logistics]";
@@ -283,7 +283,7 @@ PurchaseItem:
break;
case 2:
if (kvm_point >= .@prices[getarg(1)]) {
- set kvm_point,kvm_point-.@prices[getarg(1)];
+ kvm_point -= .@prices[getarg(1)];
getitem getarg(0),1;
mes "[Logistics]";
mes "You have purchased a "+getitemname(getarg(0))+".";
diff --git a/npc/battleground/tierra/tierra01.txt b/npc/battleground/tierra/tierra01.txt
index 10e2bfc85..20f0fe096 100644
--- a/npc/battleground/tierra/tierra01.txt
+++ b/npc/battleground/tierra/tierra01.txt
@@ -28,7 +28,7 @@ OnInit:
end;
OnEnterBG:
- set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"start#bat_a01::OnGuillaumeQuit","");
+ $@TierraBG1_id1 = waitingroom2bg("bat_a01",50,374,"start#bat_a01::OnGuillaumeQuit","");
end;
}
@@ -40,7 +40,7 @@ OnInit:
end;
OnEnterBG:
- set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"start#bat_a01::OnCroixQuit","");
+ $@TierraBG1_id2 = waitingroom2bg("bat_a01",42,16,"start#bat_a01::OnCroixQuit","");
end;
}
@@ -59,11 +59,11 @@ OnStop:
OnTimer1000:
stopnpctimer;
initnpctimer;
- set .@chk_bat_a01,getmapusers("bat_a01");
+ .@chk_bat_a01 = getmapusers("bat_a01");
if (.@chk_bat_a01 < 1) {
- set $@TierraBG1,0; set $@TierraBG1_Victory, 0;
- if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; }
- if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; }
+ $@TierraBG1 = 0; $@TierraBG1_Victory = 0;
+ if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; $@TierraBG1_id1 = 0; }
+ if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; $@TierraBG1_id2 = 0; }
donpcevent "start#bat_a01::OnReadyCheck";
}
end;
@@ -73,7 +73,7 @@ bat_a01,352,342,0 script #bat_a01_quest_a -1,5,5,{
end;
OnTouch:
- if (checkquest(2069) < 0)
+ if (!questprogress(2069))
setquest 2069;
end;
}
@@ -82,7 +82,7 @@ bat_a01,353,52,0 script #bat_a01_quest_b -1,5,5,{
end;
OnTouch:
- if (checkquest(2069) < 0)
+ if (!questprogress(2069))
setquest 2069;
end;
}
@@ -127,15 +127,15 @@ OnCroixQuit:
OnReadyCheck:
if( $@TierraBG1 )
end;
- set .@Guillaume, getwaitingroomstate(0,"Lieutenant Kalos");
- set .@Croix, getwaitingroomstate(0,"Lieutenant Eyor");
+ .@Guillaume = getwaitingroomstate(0,"Lieutenant Kalos");
+ .@Croix = getwaitingroomstate(0,"Lieutenant Eyor");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_a01_timer::OnStop";
end;
}
else if( .@Guillaume < 10 || .@Croix < 10 )
end;
- set $@TierraBG1,1;
+ $@TierraBG1 = 1;
donpcevent "Lieutenant Kalos::OnEnterBG";
donpcevent "Lieutenant Eyor::OnEnterBG";
donpcevent "start#bat_a01::OnEnable";
@@ -163,7 +163,7 @@ OnMyMobDead:
if (mobcount("bat_a01","OBJ#bat_a01_a::OnMyMobDead") < 1) {
donpcevent "Battle Therapist#a01_a::OnStop";
donpcevent "Battle Therapist#a01_b::OnStop";
- set $@TierraBG1_Victory, 2;
+ $@TierraBG1_Victory = 2;
enablenpc "Guillaume Vintenar#a01_a";
enablenpc "Croix Vintenar#a01_b";
mapannounce "bat_a01", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
@@ -186,7 +186,7 @@ OnMyMobDead:
if (mobcount("bat_a01","OBJ#bat_a01_b::OnMyMobDead") < 1) {
donpcevent "Battle Therapist#a01_a::OnStop";
donpcevent "Battle Therapist#a01_b::OnStop";
- set $@TierraBG1_Victory, 1;
+ $@TierraBG1_Victory = 1;
enablenpc "Guillaume Vintenar#a01_a";
enablenpc "Croix Vintenar#a01_b";
mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
@@ -198,7 +198,7 @@ OnMyMobDead:
bat_a01,15,18,3 script barricade#bat_a01_a CLEAR_NPC,{
OnEnable:
- for( set .@i,185; .@i < 202; set .@i,.@i+1 )
+ for (.@i = 185; .@i < 202; ++.@i)
bg_monster $@TierraBG1_id1,"bat_a01",.@i,266,"Barricade",1906,"barricade#bat_a01_a::OnMyMobDead";
setwall "bat_a01",186,266,16,6,1,"bat_a01_c1";
end;
@@ -220,7 +220,7 @@ OnMyMobDead:
bat_a01,15,19,3 script barricade#bat_a01_b CLEAR_NPC,{
OnEnable:
- for( set .@i,169; .@i < 186; set .@i,.@i+1 )
+ for (.@i = 169; .@i < 186; ++.@i)
bg_monster $@TierraBG1_id2,"bat_a01",.@i,129,"Barricade",1906,"barricade#bat_a01_b::OnMyMobDead";
setwall "bat_a01",170,129,16,6,1,"bat_a01_g1";
end;
@@ -634,16 +634,14 @@ OnTouch:
bat_a01,352,342,0 script A_CODE#bat_a01 -1,5,5,{
OnTouch:
- set .@chk_bfquest,checkquest(2069);
- if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+ if (questprogress(2069) == 1)
setquest 2069;
end;
}
bat_a01,353,52,0 script B_CODE#bat_a01 -1,5,5,{
OnTouch:
- set .@chk_bfquest,checkquest(2069);
- if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+ if (questprogress(2069) == 1)
setquest 2069;
end;
}
@@ -683,8 +681,8 @@ bat_a01,348,74,3 script Croix Camp#flag9 1_FLAG_EAGLE,{ end; }
bat_a01,53,377,3 script Guillaume Vintenar#a01_a 4_M_KY_HEAD,{
if (getcharid(4) == $@TierraBG1_id1) {
if ($@TierraBG1_Victory == 1) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -703,8 +701,8 @@ bat_a01,53,377,3 script Guillaume Vintenar#a01_a 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -725,8 +723,8 @@ bat_a01,53,377,3 script Guillaume Vintenar#a01_a 4_M_KY_HEAD,{
}
else {
if ($@TierraBG1_Victory == 2) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -745,8 +743,8 @@ bat_a01,53,377,3 script Guillaume Vintenar#a01_a 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -777,8 +775,8 @@ OnInit:
bat_a01,45,19,3 script Croix Vintenar#a01_b 4_M_CRU_HEAD,{
if (getcharid(4) == $@TierraBG1_id2) {
if ($@TierraBG1_Victory == 2) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -797,8 +795,8 @@ bat_a01,45,19,3 script Croix Vintenar#a01_b 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
@@ -819,8 +817,8 @@ bat_a01,45,19,3 script Croix Vintenar#a01_b 4_M_CRU_HEAD,{
}
else {
if ($@TierraBG1_Victory == 1) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
@@ -839,8 +837,8 @@ bat_a01,45,19,3 script Croix Vintenar#a01_b 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -924,7 +922,7 @@ bat_a01,356,326,3 script Guillaume Camp Soldier#bat_a01_guide 4_M_RASWORD,{
*/
bat_a01,1,1,3 script Release all#a01 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "Cancelled.";
close;
diff --git a/npc/battleground/tierra/tierra02.txt b/npc/battleground/tierra/tierra02.txt
index 0e7cc773d..c79b20845 100644
--- a/npc/battleground/tierra/tierra02.txt
+++ b/npc/battleground/tierra/tierra02.txt
@@ -27,7 +27,7 @@ OnInit:
end;
OnEnterBG:
- set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"start#bat_a02::OnGuillaumeQuit","");
+ $@TierraBG2_id1 = waitingroom2bg("bat_a02",50,374,"start#bat_a02::OnGuillaumeQuit","");
end;
}
@@ -39,7 +39,7 @@ OnInit:
end;
OnEnterBG:
- set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"start#bat_a02::OnCroixQuit","");
+ $@TierraBG2_id2 = waitingroom2bg("bat_a02",42,16,"start#bat_a02::OnCroixQuit","");
end;
}
@@ -58,11 +58,11 @@ OnStop:
OnTimer1000:
stopnpctimer;
initnpctimer;
- set .@chk_bat_a02,getmapusers("bat_a02");
+ .@chk_bat_a02 = getmapusers("bat_a02");
if (.@chk_bat_a02 < 1) {
- set $@TierraBG2,0; set $@TierraBG2_Victory, 0;
- if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; }
- if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; }
+ $@TierraBG2 = 0; $@TierraBG2_Victory = 0;
+ if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; $@TierraBG2_id1 = 0; }
+ if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; $@TierraBG2_id2 = 0; }
donpcevent "start#bat_a02::OnReadyCheck";
}
end;
@@ -72,7 +72,7 @@ bat_a02,352,342,0 script #bat_a02_quest_a -1,5,5,{
end;
OnTouch:
- if (checkquest(2069) < 0)
+ if (!questprogress(2069))
setquest 2069;
end;
}
@@ -81,7 +81,7 @@ bat_a02,353,52,0 script #bat_a02_quest_b -1,5,5,{
end;
OnTouch:
- if (checkquest(2069) < 0)
+ if (!questprogress(2069))
setquest 2069;
end;
}
@@ -126,15 +126,15 @@ OnCroixQuit:
OnReadyCheck:
if( $@TierraBG2 )
end;
- set .@Guillaume, getwaitingroomstate(0,"Lieutenant Rundel");
- set .@Croix, getwaitingroomstate(0,"Lieutenant Guerrit");
+ .@Guillaume = getwaitingroomstate(0,"Lieutenant Rundel");
+ .@Croix = getwaitingroomstate(0,"Lieutenant Guerrit");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_a02_timer::OnStop";
end;
}
else if( .@Guillaume < 10 || .@Croix < 10 )
end;
- set $@TierraBG2,1;
+ $@TierraBG2 = 1;
donpcevent "Lieutenant Rundel::OnEnterBG";
donpcevent "Lieutenant Guerrit::OnEnterBG";
donpcevent "start#bat_a02::OnEnable";
@@ -162,7 +162,7 @@ OnMyMobDead:
if (mobcount("bat_a02","OBJ#bat_a02_a::OnMyMobDead") < 1) {
donpcevent "Battle Therapist#a02_a::OnStop";
donpcevent "Battle Therapist#a02_b::OnStop";
- set $@TierraBG2_Victory, 2;
+ $@TierraBG2_Victory = 2;
enablenpc "Guillaume Vintenar#a02_a";
enablenpc "Croix Vintenar#a02_b";
mapannounce "bat_a02", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
@@ -185,7 +185,7 @@ OnMyMobDead:
if (mobcount("bat_a02","OBJ#bat_a02_b::OnMyMobDead") < 1) {
donpcevent "Battle Therapist#a02_a::OnStop";
donpcevent "Battle Therapist#a02_b::OnStop";
- set $@TierraBG2_Victory, 1;
+ $@TierraBG2_Victory = 1;
enablenpc "Guillaume Vintenar#a02_a";
enablenpc "Croix Vintenar#a02_b";
mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
@@ -197,7 +197,7 @@ OnMyMobDead:
bat_a02,15,18,3 script barricade#bat_a02_a CLEAR_NPC,{
OnEnable:
- for( set .@i,185; .@i < 202; set .@i,.@i+1 )
+ for (.@i = 185; .@i < 202; ++.@i)
bg_monster $@TierraBG2_id1,"bat_a02",.@i,266,"Barricade",1906,"barricade#bat_a02_a::OnMyMobDead";
setwall "bat_a02",186,266,16,6,1,"bat_a02_c1";
end;
@@ -219,7 +219,7 @@ OnMyMobDead:
bat_a02,15,19,3 script barricade#bat_a02_b CLEAR_NPC,{
OnEnable:
- for( set .@i,169; .@i < 186; set .@i,.@i+1 )
+ for (.@i = 169; .@i < 186; ++.@i)
bg_monster $@TierraBG2_id2,"bat_a02",.@i,129,"Barricade",1906,"barricade#bat_a02_b::OnMyMobDead";
setwall "bat_a02",170,129,16,6,1,"bat_a02_g1";
end;
@@ -633,16 +633,14 @@ OnTouch:
bat_a02,352,342,0 script A_CODE#bat_a02 -1,5,5,{
OnTouch:
- set .@chk_bfquest,checkquest(2069);
- if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+ if (questprogress(2069) == 1)
setquest 2069;
end;
}
bat_a02,353,52,0 script B_CODE#bat_a02 -1,5,5,{
OnTouch:
- set .@chk_bfquest,checkquest(2069);
- if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+ if (questprogress(2069) == 1)
setquest 2069;
end;
}
@@ -682,8 +680,8 @@ bat_a02,348,74,3 script Croix Camp#flag19 1_FLAG_EAGLE,{ end; }
bat_a02,53,377,3 script Guillaume Vintenar#a02_a 4_M_KY_HEAD,{
if (getcharid(4) == $@TierraBG2_id1) {
if ($@TierraBG2_Victory == 1) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -702,8 +700,8 @@ bat_a02,53,377,3 script Guillaume Vintenar#a02_a 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -724,8 +722,8 @@ bat_a02,53,377,3 script Guillaume Vintenar#a02_a 4_M_KY_HEAD,{
}
else {
if ($@TierraBG2_Victory == 2) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
@@ -744,8 +742,8 @@ bat_a02,53,377,3 script Guillaume Vintenar#a02_a 4_M_KY_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
@@ -776,8 +774,8 @@ OnInit:
bat_a02,45,19,3 script Croix Vintenar#a02_b 4_M_CRU_HEAD,{
if (getcharid(4) == $@TierraBG2_id2) {
if ($@TierraBG2_Victory == 2) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -796,8 +794,8 @@ bat_a02,45,19,3 script Croix Vintenar#a02_b 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
@@ -818,8 +816,8 @@ bat_a02,45,19,3 script Croix Vintenar#a02_b 4_M_CRU_HEAD,{
}
else {
if ($@TierraBG2_Victory == 1) {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 0) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+" Don't be sad.";
@@ -838,8 +836,8 @@ bat_a02,45,19,3 script Croix Vintenar#a02_b 4_M_CRU_HEAD,{
}
}
else {
- set .@your_medal,countitem(7828);
- set .@medal_gap, 500 - .@your_medal;
+ .@your_medal = countitem(7828);
+ .@medal_gap = 500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Blessed Croix!";
@@ -923,7 +921,7 @@ bat_a02,356,326,3 script Guillaume Camp Soldier#bat_a02_guide 4_M_RASWORD,{
*/
bat_a02,1,1,3 script Release all#a02 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "Cancelled.";
close;
diff --git a/npc/battleground/tierra/tierra_enter.txt b/npc/battleground/tierra/tierra_enter.txt
index e68058247..19ceb732e 100644
--- a/npc/battleground/tierra/tierra_enter.txt
+++ b/npc/battleground/tierra/tierra_enter.txt
@@ -31,48 +31,41 @@ bat_room,124,178,5 script Tierra Gorge Officer#01a 4_M_KY_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Guillaume Army Officer]";
mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Guillaume Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2069,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Guillaume Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2069;
- set .@mapcount,getmapusers("bat_a01");
- if (.@mapcount > 0) {
- mes "[Guillaume Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@TierraBG1) {
- mes "[Guillaume Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Guillaume Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Croixs what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",57,223;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Guillaume Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2069,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Guillaume Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2069;
+ if (getmapusers("bat_a01") > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@TierraBG1) {
+ mes "[Guillaume Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Guillaume Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Croixs what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",57,223;
+ end;
case 2:
mes "[Guillaume Army Officer]";
mes "Today, we shall be victorious!";
@@ -98,48 +91,41 @@ bat_room,140,178,5 script Tierra Gorge Officer#02a 4_M_KY_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Guillaume Army Officer]";
mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Guillaume Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2069,PLAYTIME);
- if (.@chk_urtime == 1) {
- mes "[Guillaume Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2069;
- set .@mapcount,getmapusers("bat_a02");
- if (.@mapcount > 0) {
- mes "[Guillaume Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@TierraBG2) {
- mes "[Guillaume Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Guillaume Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Croixs what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",114,223;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Guillaume Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2069,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Guillaume Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2069;
+ if (getmapusers("bat_a02") > 0) {
+ mes "[Guillaume Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@TierraBG2) {
+ mes "[Guillaume Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Guillaume Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Croixs what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",114,223;
+ end;
case 2:
mes "[Guillaume Army Officer]";
mes "Today, we shall be victorious!";
@@ -263,48 +249,41 @@ bat_room,125,121,1 script Tierra Gorge Officer#01b 4_M_CRU_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Croix Army Officer]";
mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Croix Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2069,PLAYTIME);
- if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
- mes "[Croix Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2069;
- set .@mapcount,getmapusers("bat_a02");
- if (.@mapcount > 0) {
- mes "[Croix Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@TierraBG1) {
- mes "[Croix Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Croix Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Guillaumes what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",57,207;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Croix Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2069,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Croix Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2069;
+ if (getmapusers("bat_a02") > 0) {
+ mes "[Croix Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@TierraBG1) {
+ mes "[Croix Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Croix Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Guillaumes what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",57,207;
+ end;
case 2:
mes "[Croix Army Officer]";
mes "Today, we shall be victorious!";
@@ -330,48 +309,41 @@ bat_room,140,121,1 script Tierra Gorge Officer#02b 4_M_CRU_KNT,{
if ((Class == Job_Novice) || (BaseClass == Job_SuperNovice)) {
mes "[Croix Army Officer]";
mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- else {
- if (BaseLevel < 80) {
- mes "[Croix Army Officer]";
- mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
- }
- else {
- set .@chk_urtime,checkquest(2069,PLAYTIME);
- if (.@chk_urtime == 1) {
- mes "[Croix Army Officer]";
- mes "You seem to have just returned from the battlefield.";
- mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
- }
- else {
- if (.@chk_urtime == 2)
- erasequest 2069;
- set .@mapcount,getmapusers("bat_a02");
- if (.@mapcount > 0) {
- mes "[Croix Army Officer]";
- mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- if ($@TierraBG2) {
- mes "[Croix Army Officer]";
- mes "An elite corps is already standing by to be dispatched to the battlefield.";
- mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
- }
- else {
- mes "[Croix Army Officer]";
- mes "You definitely seem to be ready for battle!";
- mes "Go show the Guillaumes what fear truly means!";
- mes "Today, our cry of victory shall echo all over the battlefield!";
- close2;
- warp "bat_room",114,207;
- end;
- }
- }
- }
- }
+ if (BaseLevel < 80) {
+ mes "[Croix Army Officer]";
+ mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+ break;
}
- break;
+ .@chk_urtime = questprogress(2069,PLAYTIME);
+ if (.@chk_urtime == 1) {
+ mes "[Croix Army Officer]";
+ mes "You seem to have just returned from the battlefield.";
+ mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+ break;
+ }
+ if (.@chk_urtime == 2)
+ erasequest 2069;
+ if (getmapusers("bat_a02") > 0) {
+ mes "[Croix Army Officer]";
+ mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ if ($@TierraBG2) {
+ mes "[Croix Army Officer]";
+ mes "An elite corps is already standing by to be dispatched to the battlefield.";
+ mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+ break;
+ }
+ mes "[Croix Army Officer]";
+ mes "You definitely seem to be ready for battle!";
+ mes "Go show the Guillaumes what fear truly means!";
+ mes "Today, our cry of victory shall echo all over the battlefield!";
+ close2;
+ warp "bat_room",114,207;
+ end;
case 2:
mes "[Croix Army Officer]";
mes "Today, we shall be victorious!";
diff --git a/npc/cities/alberta.txt b/npc/cities/alberta.txt
index 232fb5da3..92e249135 100644
--- a/npc/cities/alberta.txt
+++ b/npc/cities/alberta.txt
@@ -277,7 +277,7 @@ alberta,195,151,2 script Paul 4_M_04,{
}
alberta,190,173,4 script Phelix 4_M_03,{
- set .@weight,MaxWeight-Weight;
+ .@weight = MaxWeight-Weight;
mes "[Phelix]";
if ((.@weight) < 10000) {
mes "Wait a moment!!";
@@ -297,7 +297,7 @@ alberta,190,173,4 script Phelix 4_M_03,{
next;
mes "[Phelix]";
mes "If you're interested in my offer, get me the stuff I mentioned.";
- set @event_zelopy,1;
+ @event_zelopy = 1;
close;
} else {
mes "Hmm.. you want to exchange jellopies for Red Potions or some Carrots eh? Well.. which one?";
@@ -314,7 +314,7 @@ alberta,190,173,4 script Phelix 4_M_03,{
mes "Hey! Weren't you listening?. I said 10 jellopies for 1 Red Potion.. are ya deaf?";
close;
} else {
- set .@max,countitem(909)/10;
+ .@max = countitem(909)/10;
mes "Hmm, not bad...";
mes "How many potions";
mes "do you want to get?";
@@ -365,7 +365,7 @@ alberta,190,173,4 script Phelix 4_M_03,{
mes "Hmm, look pansy ass, I said 3 jellopies for 1 Carrot.. got it?";
close;
} else {
- set .@max,countitem(909)/3;
+ .@max = countitem(909)/3;
mes "Not too bad pansy...";
mes "How many do you want?";
next;
diff --git a/npc/cities/aldebaran.txt b/npc/cities/aldebaran.txt
index 33acb60c2..494247912 100644
--- a/npc/cities/aldebaran.txt
+++ b/npc/cities/aldebaran.txt
@@ -779,7 +779,7 @@ aldeba_in,84,166,4 script Kafra Service#alde 4_F_KAFRA1,{
end;
}
else {
- set .@kafrapassmoney,countitem(1084)*2000;
+ .@kafrapassmoney = countitem(1084)*2000;
mes "[Kafra Pavianne]";
mes "Let's see...";
if (countitem(1084) == 1) {
@@ -1058,180 +1058,77 @@ aldeba_in,79,161,6 script Kafra#04 4_F_KAFRA3,{
next;
mes "[Kafra]";
mes "The amount of special reserve points that you have is: ^FF0000"+RESRVPTS+"^000000 pts. Please make a choice based on your point total.";
-M_Menu:
- next;
- menu "100- Potato 7 ea",M_1a, "200- Potato 15 ea",M_1b, "300- Potato 25 ea",M_1c, "400- Potato 35 ea",M_1d,
- "500- Potato 50 ea",M_1e, "600- Potato 60 ea",M_1f, "700- Potato 75 ea",M_1g, "800- Potato 85 ea",M_1h,
- "900- Potato 100 ea",M_1i, "1000- 1st Lottery Chance!",M_1j, "Next items",M_2, "Cancel",M_End;
-
- M_1a:
- if(RESRVPTS < 100) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 7;
- set RESRVPTS, RESRVPTS - 100;
- close;
- M_1b:
- if(RESRVPTS < 200) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 15;
- set RESRVPTS, RESRVPTS - 200;
- close;
- M_1c:
- if(RESRVPTS < 300) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 25;
- set RESRVPTS, RESRVPTS - 300;
- close;
- M_1d:
- if(RESRVPTS < 400) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 35;
- set RESRVPTS, RESRVPTS - 400;
- close;
- M_1e:
- if(RESRVPTS < 500) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 50;
- set RESRVPTS, RESRVPTS - 500;
- close;
- M_1f:
- if(RESRVPTS < 600) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 60;
- set RESRVPTS, RESRVPTS - 600;
- close;
- M_1g:
- if(RESRVPTS < 700) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 75;
- set RESRVPTS, RESRVPTS - 700;
- close;
- M_1h:
- if(RESRVPTS < 800) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 85;
- set RESRVPTS, RESRVPTS - 800;
- close;
- M_1i:
- if(RESRVPTS < 900) goto sL_LowPts1;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 516, 100;
- set RESRVPTS, RESRVPTS - 900;
- close;
- M_1j:
- if(RESRVPTS < 1000) goto sL_LowPts1;
- set RESRVPTS, RESRVPTS - 1000;
- mes "[Kafra]";
- mes "^0000FF1st Lottery Opportunity!!^000000";
- set @Lotto, 1;
+ .@page = 1;
+ while (true) {
+ if (.@page == 1) {
+ // Points, Item ID, amount
+ setarray .@choices, 100, Sweet_Potato, 7,
+ 200, Sweet_Potato, 15,
+ 300, Sweet_Potato, 25,
+ 400, Sweet_Potato, 35,
+ 500, Sweet_Potato, 50,
+ 600, Sweet_Potato, 60,
+ 700, Sweet_Potato, 75,
+ 800, Sweet_Potato, 85,
+ 900, Sweet_Potato, 100,
+ 1000, null, 0;
+ .@ordinal$ = "1st";
+ .@changepage$ = "Next items";
+ } else { // .@page == 2
+ setarray .@choices, 1100, Sweet_Potato, 7,
+ 1300, Sweet_Potato, 15,
+ 1500, Sweet_Potato, 25,
+ 1700, Sweet_Potato, 35,
+ 1900, Sweet_Potato, 50,
+ 2100, Sweet_Potato, 60,
+ 2300, Sweet_Potato, 75,
+ 2500, Sweet_Potato, 85,
+ 2800, Sweet_Potato, 100,
+ 3000, null, 0;
+ .@ordinal$ = "2nd";
+ .@changepage$ = "Previous List";
+ }
+ .@list$ = "";
+ .@numitemchoices = 0;
+ for (.@i = 0; .@i < getarraysize(.@choices) - 3; .@i += 3) { // Skip the last entry as it's handled separately
+ .@list$ += .@choices[i] + "- " + getitemname(.@choices[.@i+1]) + " " + .@choices[.@i+2] + " ea:";
+ ++.@numitemchoices;
+ }
+ .@list$ += .@choices[.@i] + "- " + .@ordinal$ + " Lottery Chance!:" + .@changepage$ +":Cancel";
next;
- callfunc "F_Lottery";
- goto M_End;
-
- sL_LowPts1:
- mes "[Kafra]";
- mes "I'm sorry but you do not have enough reserve points for that selection.";
- goto M_Menu;
-
- M_2:
- menu "1100- Red Potion 7 ea",M_2a, "1300- Red Potion 15 ea",M_2b, "1500- Red Potion 25 ea",M_2c,
- "1700- Red Potion 35 ea",M_2d, "1900- Red Potion 50 ea",M_2e, "2100- Red Potion 60 ea",M_2f,
- "2300- Red Potion 75 ea",M_2g, "2500- Red Potion 85 ea",M_2h, "2800- Red Potion 100 ea",M_2i,
- "3000- 2nd Lotery Chance!",M_2j, "Previous List",M_Menu, "Cancel",M_End;
-
- M_2a:
- if(RESRVPTS < 1100) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 7;
- set RESRVPTS, RESRVPTS - 1100;
- close;
- M_2b:
- if(RESRVPTS < 1300) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 15;
- set RESRVPTS, RESRVPTS - 1300;
- close;
- M_2c:
- if(RESRVPTS < 1500) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 25;
- set RESRVPTS, RESRVPTS - 1500;
- close;
- M_2d:
- if(RESRVPTS < 1700) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 35;
- set RESRVPTS, RESRVPTS - 1700;
- close;
- M_2e:
- if(RESRVPTS < 1900) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 50;
- set RESRVPTS, RESRVPTS - 1900;
- close;
- M_2f:
- if(RESRVPTS < 2100) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 60;
- set RESRVPTS, RESRVPTS - 2100;
- close;
- M_2g:
- if(RESRVPTS < 2300) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 75;
- set RESRVPTS, RESRVPTS - 2300;
- close;
- M_2h:
- if(RESRVPTS < 2500) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 85;
- set RESRVPTS, RESRVPTS - 2500;
- close;
- M_2i:
- if(RESRVPTS < 2800) goto sL_LowPts2;
- mes "[Kafra]";
- mes "Here you are.";
- getitem 501, 100;
- set RESRVPTS, RESRVPTS - 2800;
- close;
- M_2j:
- if(RESRVPTS < 3000) goto sL_LowPts2;
- set RESRVPTS, RESRVPTS - 3000;
- mes "[Kafra]";
- mes "^0000FF2nd Lottery Opportunity!!^000000";
- set @Lotto, 2;
+ .@chosen = select(.@list$) - 1;
+ if (.@chosen <= .@numitemchoices) {
+ if (RESRVPTS < .@choices[.@chosen*3]) {
+ mes "[Kafra]";
+ mes "I'm sorry but you do not have enough reserve points for that selection.";
+ continue;
+ }
+ RESRVPTS -= .@choices[.@chosen * 3];
+ if (.@chosen < .@numitemchances) {
+ // Item
+ mes "[Kafra]";
+ mes "Here you are.";
+ getitem .@choices[.@chosen*3 + 1], .@choices[.@chosen*3 + 2];
+ close;
+ }
+ // Lottery chance
+ mes "^0000FF"+ .@ordinal$ + " Lottery Opportunity!!^000000";
+ @Lotto = .@page;
next;
callfunc "F_Lottery";
- goto M_End;
-
- sL_LowPts2:
- mes "[Kafra]";
- mes "I'm sorry but you do not have enough reserve points for that selection.";
- next;
- goto M_2;
+ break;
+ } else if (.@chosen == .@numitemchoices + 1) { // next/previous items
+ .@page = (.@page == 1 ? 2 : 1);
+ continue;
+ } else { // Cancel
+ break;
+ }
+ }
- M_End:
- mes "[Kafra]";
- mes "Please come back anytime when you have more reserve points.";
- cutin "",255;
- close;
+ mes "[Kafra]";
+ mes "Please come back anytime when you have more reserve points.";
+ cutin "",255;
+ close;
}
// Special Reserve 2 ----------------------------------------------
@@ -1244,44 +1141,45 @@ aldeba_in,88,161,3 script Kafra#05 4_F_KAFRA3,{
mes "[Kafra]";
mes "Would you like to use your points?";
next;
- menu "Yes I would.",-, "Maybe next time.",M_End;
-
+ if (select("Yes I would.","Maybe next time.") == 1) {
mes "[Kafra]";
mes "You have the following amount of special reserve points: ^5544FF"+RESRVPTS+"^000000.";
mes "Make a choice and test your luck!";
next;
- menu "5000pts = 1st Lottery Chance!",sM_1st, "7000pts = 2nd Lottery Chance!",sM_2nd, "10000pts = 3rd Lottery Chance!",sM_3rd, "Cancel",M_End;
-
- sM_1st:
- if(RESRVPTS < 5000) goto sL_NotEnuf;
- set RESRVPTS, RESRVPTS - 5000;
- set @Lotto, 3;
- callfunc "F_Lottery";
- goto M_End;
- sM_2nd:
- if(RESRVPTS < 7000) goto sL_NotEnuf;
- set RESRVPTS, RESRVPTS - 7000;
- set @Lotto, 4;
- callfunc "F_Lottery";
- goto M_End;
- sM_3rd:
- if(RESRVPTS < 10000) goto sL_NotEnuf;
- set RESRVPTS, RESRVPTS - 10000;
- set @Lotto, 5;
- callfunc "F_Lottery";
- goto M_End;
+ switch (select("5000pts = 1st Lottery Chance!","7000pts = 2nd Lottery Chance!","10000pts = 3rd Lottery Chance!","Cancel")) {
+ case 1: // 5000
+ .@points = 5000;
+ @Lotto = 3;
+ break;
+ case 2: // 7000
+ .@points = 7000;
+ @Lotto = 4;
+ break;
+ case 3: // 10000
+ .@points = 10000;
+ @Lotto = 5;
+ break;
+ case 4: // Cancel
+ .@points = 0;
+ break;
+ }
- sL_NotEnuf:
+ if (.@points) {
+ if (RESRVPTS < .@points) {
mes "[Kafra]";
mes "I'm sorry dear but you do not have enough points for this selection.";
cutin "",255;
close;
- M_End:
- mes "[Kafra]";
- mes "No problem. Collect more and more special reserve points by using the Kafra Services found throughout Rune Midgard.";
- mes "Thank you for using Kafra Corp. services.";
- cutin "",255;
- close;
+ }
+ RESRVPTS -= .@points;
+ callfunc "F_Lottery";
+ }
+ }
+ mes "[Kafra]";
+ mes "No problem. Collect more and more special reserve points by using the Kafra Services found throughout Rune Midgard.";
+ mes "Thank you for using Kafra Corp. services.";
+ cutin "",255;
+ close;
}
// Function F_Lottery ------------------------------------------------------------------------------------------
@@ -1296,7 +1194,7 @@ function script F_Lottery {
mes "How many times do you want the Lottery Machine to spin? You can choose up to 5 times.";
next;
input @input;
- if(@input < 1 || @input > 5) set @input, rand(1,5); //Lupus's fix
+ if(@input < 1 || @input > 5) @input = rand(1,5); //Lupus's fix
callsub sF_Spin;
mes "[Kafra]";
mes "Ok~ Let me check the results~ guess what it is?";
@@ -1369,8 +1267,8 @@ sF_Spin:
mes "[Lottery Machine]";
mes "(rumble~rumble~rumble~)...";
next;
- set @temp, rand(10);
- set @input, @input -1;
+ @temp = rand(10);
+ --@input;
if(@input <= 0) return;
goto sF_Spin;
}
diff --git a/npc/cities/amatsu.txt b/npc/cities/amatsu.txt
index 18ae79bdc..a79c30993 100644
--- a/npc/cities/amatsu.txt
+++ b/npc/cities/amatsu.txt
@@ -339,7 +339,7 @@ amatsu,287,266,3 script Jyaburo#ama 4_M_JPNOJI,{
// Legendary Tree
//============================================================
amatsu,269,221,1 script Propose Girl#ama 4_F_JPN,{
- set jap_tree,1;
+ jap_tree = 1;
mes "[Hutari Shioko]";
mes "It is a pleasure to meet you.";
mes "My name is Hutari Shioko.";
@@ -374,7 +374,7 @@ amatsu,269,221,1 script Propose Girl#ama 4_F_JPN,{
}
amatsu,243,202,3 script Drama Teacher#ama 4_F_JPNOBA2,{
- set jap_tree,2;
+ jap_tree = 2;
mes "[Garakame sensei]";
mes "This is a beautiful place";
mes "with everlasting cherry blossoms.";
@@ -423,7 +423,7 @@ amatsu,283,203,1 script Bonubonu#ama1 SEE_OTTER,{
}
amatsu,283,203,1 script Bonubonu#ama2 HIDDEN_NPC,{
- set jap_tree,3;
+ jap_tree = 3;
emotion e_swt2;
mes "[Bonubonu]";
mes "That tree on the hill is";
@@ -453,7 +453,7 @@ amatsu,283,203,1 script Bonubonu#ama2 HIDDEN_NPC,{
}
amatsu,274,178,7 script Veterinarian#ama 4_M_JOB_WIZARD,{
- set jap_tree,4;
+ jap_tree = 4;
mes "[Sakura Seiichi]";
mes "Ah... I'm not a weirdo so";
mes "don't panic. I'm just an ordinary";
diff --git a/npc/cities/ayothaya.txt b/npc/cities/ayothaya.txt
index a4e214582..a8a114d2d 100644
--- a/npc/cities/ayothaya.txt
+++ b/npc/cities/ayothaya.txt
@@ -122,7 +122,7 @@ ayothaya,189,120,3 script Young Man#Thang 4_M_THAIONGBAK,{
}
ayothaya,171,152,5 script Girl#Lalitha 4_F_THAIAYO,{
- set .@sit,rand(1,5);
+ .@sit = rand(1,5);
if (.@sit > 0 && .@sit < 3) {
mes "[Lalitha]";
mes "Hello!";
diff --git a/npc/cities/comodo.txt b/npc/cities/comodo.txt
index f8a3f967f..248af4e50 100644
--- a/npc/cities/comodo.txt
+++ b/npc/cities/comodo.txt
@@ -198,7 +198,7 @@ cmd_in02,174,126,4 script Loyar#cmd 4_M_01,{
}
cmd_in02,57,62,4 script Moo#cmd 4_M_MANAGER,{
- set mooz,rand(1,10);
+ mooz = rand(1,10);
if (mooz == 1) {
mes "[Moo]";
mes "Those cheating punks!";
@@ -338,7 +338,7 @@ cmd_fild07,52,280,4 script Hallosu#cmd 4W_SAILOR,{
}
cmd_fild07,299,83,4 script Zain#cmd 4W_SAILOR,{
- set .@n$,"["+strnpcinfo(1)+"]";
+ .@n$ = "["+strnpcinfo(1)+"]";
mes .@n$;
mes "Would you like to";
mes "board a ship on the";
diff --git a/npc/cities/geffen.txt b/npc/cities/geffen.txt
index 16702126f..a5d3e8354 100644
--- a/npc/cities/geffen.txt
+++ b/npc/cities/geffen.txt
@@ -274,7 +274,7 @@ OnTouch:
else
break;
}
- set .@Red_potion_hap,.@input * 500;
+ .@Red_potion_hap = .@input * 500;
if (Zeny < .@Red_potion_hap) {
mes "[Suspicious Guy]";
mes "Oh maaan~";
@@ -344,7 +344,7 @@ OnTouch:
else
break;
}
- set .@Main_gauche_hap,.@input * 9400;
+ .@Main_gauche_hap = .@input * 9400;
if (Zeny < .@Main_gauche_hap) {
mes "[Suspicious Guy]";
mes "Short on zeny?";
@@ -396,7 +396,7 @@ OnTouch:
else
break;
}
- set .@Hood__hap,.@input * 930;
+ .@Hood__hap = .@input * 930;
if (Zeny < .@Hood__hap) {
mes "[Suspicious Guy]";
mes "Oh nuts...";
diff --git a/npc/cities/gonryun.txt b/npc/cities/gonryun.txt
index 9c51dcd48..919d23e20 100644
--- a/npc/cities/gonryun.txt
+++ b/npc/cities/gonryun.txt
@@ -289,7 +289,7 @@ gon_in,73,82,5 script Ji Chung Zhe#gon 4_M_TWTEAMAN,{
close;
}
if (nakha == 3) {
- set cha,1;
+ cha = 1;
mes "[Ji Chung Zhe]";
mes "I am Ji Chung Zhe, a renown brewer";
mes "of teas. Everyday, I put all my";
diff --git a/npc/cities/jawaii.txt b/npc/cities/jawaii.txt
index 1069cf01c..1cbd51fd5 100644
--- a/npc/cities/jawaii.txt
+++ b/npc/cities/jawaii.txt
@@ -837,7 +837,7 @@ jawaii_in,28,124,0 script Bartender#jaw 1_ETC_01,{
mes "like to drink?";
next;
if (Zeny < 99) {
- set .@r_jaw,rand(1,100);
+ .@r_jaw = rand(1,100);
mes "[Bartender]";
if (.@r_jaw > 29) {
mes "Hm, I'm sorry";
@@ -867,7 +867,7 @@ jawaii_in,28,124,0 script Bartender#jaw 1_ETC_01,{
while (1) {
switch(select("Follow Bartender's Recommendation.:I want a Gunslinger.:I want a Cobo.:I want a Bomb.:I want a Boogieman.")) {
case 1:
- set .@roof_jaw,.@roof_jaw+3;
+ .@roof_jaw += 3;
if (.@roof_jaw > 9) {
mes "[Bartender]";
mes "Hmmm...";
@@ -1106,7 +1106,7 @@ S_KillChar:
end;
}
if (Zeny > 99) Zeny -= 100;
- set .@roof_jaw,.@roof_jaw+getarg(0);
+ .@roof_jaw += getarg(0);
mes "[Bartender]";
mes "There you go.";
next;
@@ -1254,7 +1254,7 @@ prt_in,173,13,4 script Customer#SoloHan 4_M_04,{
mes "^3355FF* Gulp Gulp Gulp *^000000";
percentheal -10,0;
next;
- set .@jaw_roof,1;
+ .@jaw_roof = 1;
mes "[SoloHan]";
mes "So, what do you say?";
mes "Let's go somewhere";
@@ -1280,7 +1280,7 @@ prt_in,173,13,4 script Customer#SoloHan 4_M_04,{
mes "^3355FF* Gulp Gulp Gulp *^000000";
percentheal -10,0;
next;
- set .@jaw_roof,.@jaw_roof+2;
+ .@jaw_roof += 2;
mes "[SoloHan]";
if (.@jaw_roof > 8) {
mes "Whoa...";
@@ -1330,7 +1330,7 @@ prt_in,173,13,4 script Customer#SoloHan 4_M_04,{
close2;
end;
}
- set .@jaw_roof,.@jaw_roof+3;
+ .@jaw_roof += 3;
mes "[SoloHan]";
mes "Drink, drink!";
mes "That's not enough!";
diff --git a/npc/cities/lighthalzen.txt b/npc/cities/lighthalzen.txt
index 6768da33c..01a5c7404 100644
--- a/npc/cities/lighthalzen.txt
+++ b/npc/cities/lighthalzen.txt
@@ -564,7 +564,7 @@ lighthalzen,182,102,3 script Lucius#zen5 4_M_LGTGRAND,{
close;
}
Zeny -= .@input;
- set $donatedzeny,$donatedzeny + .@input;
+ $donatedzeny += .@input;
mes "[Lucius]";
mes "So far, I've received";
mes "a total of " + $donatedzeny + " zeny in";
@@ -580,7 +580,7 @@ lighthalzen,182,102,3 script Lucius#zen5 4_M_LGTGRAND,{
mes "this small gift as a token of";
mes "my gratitude, adventurer. Bless";
mes "you, youngster and take care.";
- set $donatedzeny,0;
+ $donatedzeny = 0;
getitem 603,1; //Old_Blue_Box
getitem 12016,1; //Speed_Up_Potion
}
diff --git a/npc/cities/lutie.txt b/npc/cities/lutie.txt
index def5e03ab..c7ad3a40c 100644
--- a/npc/cities/lutie.txt
+++ b/npc/cities/lutie.txt
@@ -115,7 +115,7 @@ xmas_in,167,173,4 script Duffle 4_F_05,{
mes "[Duffle]";
mes "Well then...";
mes "Merry Christmas!!";
- set xmas_npc,2;
+ xmas_npc = 2;
close;
}
else if (xmas_npc > 1) {
@@ -182,7 +182,7 @@ xmas_in,27,103,4 script Lenient Aunt 4_F_GODEMOM,{
mes "Now be a dear";
mes "and hurry up.";
mes "Come back quickly~";
- set xmas_npc,6;
+ xmas_npc = 6;
close;
case 6:
mes "[Thachentze]";
@@ -213,7 +213,7 @@ xmas_in,27,103,4 script Lenient Aunt 4_F_GODEMOM,{
mes "Let's see, let's see...";
mes "Thank you dear,Thank you.";
next;
- set xmas_npc,8;
+ xmas_npc = 8;
mes "^3355FFYou gave her the";
mes "roughest salt in the world.^000000";
next;
@@ -296,7 +296,7 @@ xmas,117,304,4 script Poze 4_M_06,{
next;
mes "[Poze]";
mes "But that's pretty much all I know. For the actual details, you should ask ^3355FFUncle Hairy Cantata^000000.";
- set xmas_npc,4;
+ xmas_npc = 4;
close;
} else {
mes "[Poze]";
@@ -381,7 +381,7 @@ xmas,176,236,4 script Uncle Hairy 4_M_05,{
next;
mes "[Cantata]";
mes "^3355FFThachentze^000000, that lovely pickle maker, knows more about it. So if you're curious, you should go talk to her. Alrighty then, Merry Christmas!";
- set xmas_npc,5;
+ xmas_npc = 5;
close;
} else {
mes "[Cantata]";
@@ -538,7 +538,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
next;
mes "^3355FFSnowysnow is immersed in his deep thoughts, and seems^000000";
mes "^3355FFfixated on Poze's memento.^000000";
- set xmas_npc,3;
+ xmas_npc = 3;
close2;
cutin "",255;
end;
@@ -600,7 +600,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "[Snowysnow]";
mes "Yeah, she's a pickle expert, alright. Oh right, would you give this to her? I've been keeping the roughest salt in the world for her as a bit of a favor.";
next;
- set xmas_npc,7;
+ xmas_npc = 7;
mes "^3355FFSnowysnow gave you the roughest salt in the world^000000.";
next;
mes "[Snowysnow]";
@@ -655,11 +655,11 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FFYou gingerly stir";
mes "your hand around in";
mes "Snowysnow's magical gift bag^000000.";
- set .@snownow,rand(1,8);
+ .@snownow = rand(1,8);
next;
switch(.@snownow) {
case 1:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 529,5; // Candy
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -668,7 +668,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "Congratulations!";
break;
case 2:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 529,10; // Candy
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -676,7 +676,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF10 Candy^000000!";
break;
case 3:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 530,5; // Candy_Striper
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -684,7 +684,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF5 Candy Cane^000000!";
break;
case 4:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 530,10; // Candy_Striper
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -692,7 +692,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF10 Candy Cane^000000!";
break;
case 5:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 539,1; // Piece_Of_Cake
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -700,7 +700,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF1 Piece Of Cake^000000!";
break;
case 6:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 539,2; // Piece_Of_Cake
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -708,7 +708,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF2 Piece Of Cake^000000!";
break;
case 7:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 538,5; // Well_Baked_Cookie
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -716,7 +716,7 @@ xmas,134,112,4 script Snowman 4_M_SNOWMAN,{
mes "^3355FF5 Cookie^000000!";
break;
case 8:
- set xmas_npc,11;
+ xmas_npc = 11;
getitem 538,10; // Well_Baked_Cookie
cutin "rutie_snownow02.bmp",2;
mes "[Snowysnow]";
@@ -811,7 +811,7 @@ xmas,146,136,4 script Hashokii 4_M_PIERROT,{
next;
mes "[Hashokii]";
mes "Why don't you go meet those 2 children? They might tell you the story we've never got the chance to hear. Okay then, good luck~! Bye bye!";
- set xmas_npc,9;
+ xmas_npc = 9;
close;
} else {
mes "[Hashokii]";
@@ -917,7 +917,7 @@ xmas,208,168,4 script Little Girl 4_F_KID2,{
mes "[Marcell]";
mes "Oh, now I see . . . . .";
mes "You wanna learn all about Snowysnow because you want to become his friend! He'll be so happy to know that! Ooh! Maybe he'll give you a present! Good luck!";
- set xmas_npc,10;
+ xmas_npc = 10;
close;
case 10:
mes "[Marcell]";
diff --git a/npc/cities/manuk.txt b/npc/cities/manuk.txt
index 77c5306ed..b49be1920 100644
--- a/npc/cities/manuk.txt
+++ b/npc/cities/manuk.txt
@@ -219,7 +219,7 @@ manuk,286,147,3 script Piom#ep13_2_2 4_MAN_PIOM,{
}
manuk,183,185,5 script Piom#ep13_2_3 4_MAN_PIOM,{
- set tongyeok,Ring_Of_Wise_King;
+ tongyeok = Ring_Of_Wise_King;
if ((isequipped(2782) == 1) && (ep13_2_rhea == 100)) {
mes "[Piom]";
mes "Our lives exist for Saphas.";
diff --git a/npc/cities/morocc.txt b/npc/cities/morocc.txt
index cb5b608e9..e2ca328df 100644
--- a/npc/cities/morocc.txt
+++ b/npc/cities/morocc.txt
@@ -762,7 +762,7 @@ moc_fild16,195,281,4 script Assassin Guardian#1::SinGuard 4_M_MOC_SOLDIER,{
mes "Welcome.";
close;
}
- set .@temp, rand(1,4);
+ .@temp = rand(1,4);
if(.@temp == 1) mes "........";
if(.@temp == 2) mes "Hmmm..........";
if(.@temp == 3) mes "Hmmm... you shouldn't be here.....";
diff --git a/npc/cities/niflheim.txt b/npc/cities/niflheim.txt
index 4e6ba1f97..0bfa9a088 100644
--- a/npc/cities/niflheim.txt
+++ b/npc/cities/niflheim.txt
@@ -232,17 +232,20 @@ niflheim,350,258,1 script Cursed Spirit#nif 4_NFWISP,{
mes "lost to the ages~!";
emotion e_gg;
next;
- if (select("Clover:Klaatu:Klaytos") == 2)
- set .@spell,.@spell+1;
- if (select("Verit:Veritas:Verata") == 3)
- set .@spell,.@spell+1;
- if (select("Necktie:Necklace:Nero:^FFFFFFNictu!!!^000000") == 4)
- set .@spell,.@spell+1;
+ if (select("Clover:Klaatu:Klaytos") == 2) {
+ ++.@spell;
+ }
+ if (select("Verit:Veritas:Verata") == 3) {
+ ++.@spell;
+ }
+ if (select("Necktie:Necklace:Nero:^FFFFFFNictu!!!^000000") == 4) {
+ ++.@spell;
+ }
if (.@spell == 3) {
switch(rand(1,5)) {
case 1:
if (morison_meat < 15) {
- set morrison_meat,15;
+ morrison_meat = 15;
mes "[Ashe Bruce]";
mes "You... You broke the curse!";
mes "How did you know that spell?!";
@@ -262,7 +265,7 @@ niflheim,350,258,1 script Cursed Spirit#nif 4_NFWISP,{
close;
case 2:
if (thai_head == 1) {
- set thai_head,2;
+ thai_head = 2;
mes "[Ashe Bruce]";
mes "What's...";
mes "this feeling?";
@@ -285,7 +288,7 @@ niflheim,350,258,1 script Cursed Spirit#nif 4_NFWISP,{
close;
case 3:
if (thai_head == 8) {
- set thai_head,7;
+ thai_head = 7;
mes "[Ashe Bruce]";
mes "You... You broke the curse!";
mes "Who taught you that spell?!";
diff --git a/npc/cities/payon.txt b/npc/cities/payon.txt
index 3bbe52908..a5607b412 100644
--- a/npc/cities/payon.txt
+++ b/npc/cities/payon.txt
@@ -840,7 +840,7 @@ OnTouch:
close;
}
if (BaseLevel > 30) {
- set .@oldman_random,rand(1,2);
+ .@oldman_random = rand(1,2);
if (.@oldman_random == 1) {
mes "[Guard]";
mes "Hey...";
diff --git a/npc/cities/prontera.txt b/npc/cities/prontera.txt
index 792ddc972..43389ff67 100644
--- a/npc/cities/prontera.txt
+++ b/npc/cities/prontera.txt
@@ -135,7 +135,7 @@ prontera,216,70,2 script Strife#pront 1_M_02,{
mes "MAGNUM BREAK!";
next;
if (select("I wanna be strong too!:Um... Do you best.") == 1) {
- set event_prt_nov_dreamtalk,1;
+ event_prt_nov_dreamtalk = 1;
mes "[Strife]";
mes "Wow...!";
mes "That's so awesome!";
@@ -172,7 +172,7 @@ prontera,216,70,2 script Strife#pront 1_M_02,{
mes "that now, I gotta";
mes "train even harder!";
next;
- set event_prt_nov_dreamtalk,2;
+ event_prt_nov_dreamtalk = 2;
getitem 2501,1; //Hood
mes "[Strife]";
mes "This is, well, for you to help you get even stronger. I guess I want to thank you for being such a good example.";
@@ -305,7 +305,7 @@ prt_in,180,20,2 script Bartender#pront 1_M_PUBMASTER,{
mes "[Bartender]";
mes "I can't keep my business busy without my special menu 'Crunch Crunch Sour' and 'Savory Yum Yum'...*Sigh*";
next;
- set .@drink,1;
+ .@drink = 1;
while(.@drink) {
switch(select("'Cunch Crunch Sour'?:'Savory Yum Yum'?:Cancel.")) {
case 1:
@@ -330,7 +330,7 @@ prt_in,180,20,2 script Bartender#pront 1_M_PUBMASTER,{
mes "[Bartender]";
mes "Take care of yourself~.";
close2;
- set .@drink,0;
+ .@drink = 0;
break;
}
@@ -551,7 +551,7 @@ prt_church,103,76,0 script Garnet#pront 1_F_02,{
mes "[Garnet]";
mes "Go and ahead and ask if you have any questions about skills for Acolytes and Priests.";
next;
- set .@SkillChat,1;
+ .@SkillChat = 1;
while(.@SkillChat) {
switch(select("About Heal:About Cure:About Increase AGI:About Angelus:About Blessing:About Warp Portal:End Conversation")) {
case 1:
@@ -631,7 +631,7 @@ prt_church,103,76,0 script Garnet#pront 1_F_02,{
mes "Alright, I've";
mes "heard enough.";
close2;
- set .@SkillChat,0;
+ .@SkillChat = 0;
break;
}
}
@@ -648,7 +648,7 @@ prt_church,103,71,0 script Henson#pront 2_M_PHARMACIST,{
mes "[Henson]";
mes "Did you have any questions about Acolyte and Priest skills?";
next;
- set .@SkillChat,1;
+ .@SkillChat = 1;
while(.@SkillChat) {
switch(select("About Divine Protection:About Demon Bane:About Decrease AGI:About Signum Crusis :About Pneuma:About Ruwach:About Teleport:End conversation.")) {
case 1:
@@ -729,7 +729,7 @@ prt_church,103,71,0 script Henson#pront 2_M_PHARMACIST,{
mes "[Henson]";
mes "If you wish to understand more about an Acolyte or Priest skill, you are welcome to visit me at any time.";
close2;
- set .@SkillChat,0;
+ .@SkillChat = 0;
break;
}
}
diff --git a/npc/cities/rachel.txt b/npc/cities/rachel.txt
index b4beb95af..3538a439d 100644
--- a/npc/cities/rachel.txt
+++ b/npc/cities/rachel.txt
@@ -306,7 +306,7 @@ rachel,206,30,3 script Freya's Priest#play 4_F_TRAINEE,{
mes "item of yours can do...";
mes "Oh? Oh! That's wonderful!";
close2;
- set .@play,rand(1,10);
+ .@play = rand(1,10);
if (.@play < 3)
consumeitem 601; //Wing_Of_Fly
else if (.@play < 5)
diff --git a/npc/custom/battleground/bg_common.txt b/npc/custom/battleground/bg_common.txt
index 895191961..8b99deb39 100644
--- a/npc/custom/battleground/bg_common.txt
+++ b/npc/custom/battleground/bg_common.txt
@@ -217,9 +217,9 @@ bat_room,156,178,5 script Tierra Valley Officer#1 4_M_KY_KNT,{
close;
}
- if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
- if( checkquest(2069,PLAYTIME) != -1 )
- {
+ if (questprogress(2069,PLAYTIME) == 2)
+ erasequest 2069;
+ if (questprogress(2069,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Tierra Officer]";
@@ -287,9 +287,9 @@ bat_room,156,121,1 script Tierra Valley Officer#2 4_M_CRU_KNT,{
close;
}
- if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
- if( checkquest(2069,PLAYTIME) != -1 )
- {
+ if (questprogress(2069,PLAYTIME) == 2)
+ erasequest 2069;
+ if (questprogress(2069,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Tierra Officer]";
@@ -357,9 +357,9 @@ bat_room,164,178,5 script Tierra Valley Officer#3 4_M_KY_KNT,{
close;
}
- if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
- if( checkquest(2069,PLAYTIME) != -1 )
- {
+ if (questprogress(2069,PLAYTIME) == 2)
+ erasequest 2069;
+ if (questprogress(2069,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Tierra Officer]";
@@ -427,9 +427,9 @@ bat_room,164,121,1 script Tierra Valley Officer#4 4_M_CRU_KNT,{
close;
}
- if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
- if( checkquest(2069,PLAYTIME) != -1 )
- {
+ if (questprogress(2069,PLAYTIME) == 2)
+ erasequest 2069;
+ if (questprogress(2069,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Tierra Officer]";
@@ -498,9 +498,9 @@ bat_room,172,178,5 script Flavius Officer#1 4_M_KY_KNT,{
close;
}
- if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
- if( checkquest(2070,PLAYTIME) != -1 )
- {
+ if (questprogress(2070,PLAYTIME) == 2)
+ erasequest 2070;
+ if (questprogress(2070,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Flavius Officer]";
@@ -569,9 +569,9 @@ bat_room,172,121,1 script Flavius Officer#2 4_M_CRU_KNT,{
close;
}
- if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
- if( checkquest(2070,PLAYTIME) != -1 )
- {
+ if (questprogress(2070,PLAYTIME) == 2)
+ erasequest 2070;
+ if (questprogress(2070,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Flavius Officer]";
@@ -640,9 +640,9 @@ bat_room,148,178,5 script Flavius Officer#3 4_M_KY_KNT,{
close;
}
- if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
- if( checkquest(2070,PLAYTIME) != -1 )
- {
+ if (questprogress(2070,PLAYTIME) == 2)
+ erasequest 2070;
+ if (questprogress(2070,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Flavius Officer]";
@@ -711,9 +711,9 @@ bat_room,148,121,1 script Flavius Officer#4 4_M_CRU_KNT,{
close;
}
- if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
- if( checkquest(2070,PLAYTIME) != -1 )
- {
+ if (questprogress(2070,PLAYTIME) == 2)
+ erasequest 2070;
+ if (questprogress(2070,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[Flavius Officer]";
@@ -779,9 +779,9 @@ bat_room,140,178,5 script KVM [80-99] Officer#1 4_M_KY_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
@@ -847,9 +847,9 @@ bat_room,140,121,1 script KVM [80-99] Officer#2 4_M_CRU_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
@@ -915,9 +915,9 @@ bat_room,132,178,5 script KVM [60-79] Officer#1 4_M_KY_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
@@ -983,9 +983,9 @@ bat_room,132,121,1 script KVM [60-79] Officer#2 4_M_CRU_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
@@ -1051,9 +1051,9 @@ bat_room,124,178,5 script KVM [1-59] Officer#1 4_M_KY_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
@@ -1119,9 +1119,9 @@ bat_room,124,121,1 script KVM [1-59] Officer#2 4_M_CRU_KNT,{
close;
}
- if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
- if( checkquest(6025,PLAYTIME) != -1 )
- {
+ if (questprogress(6025,PLAYTIME) == 2)
+ erasequest 6025;
+ if (questprogress(6025,PLAYTIME)) {
mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
next;
mes "[KVM Officer]";
diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt
index 36e02e86d..8112be12e 100644
--- a/npc/custom/bgqueue/flavius.txt
+++ b/npc/custom/bgqueue/flavius.txt
@@ -426,14 +426,14 @@ OnTouch:
bat_b01,87,76,0 script A_CODE#bat_b01 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
+ if (!questprogress(2070))
setquest 2070;
end;
}
bat_b01,312,224,0 script B_CODE#bat_b01 -1,5,5,{
OnTouch:
- if (checkquest(2070) < 0)
+ if (!questprogress(2070))
setquest 2070;
end;
}
diff --git a/npc/custom/breeder.txt b/npc/custom/breeder.txt
index 0222f5b3a..db57510f7 100644
--- a/npc/custom/breeder.txt
+++ b/npc/custom/breeder.txt
@@ -11,36 +11,43 @@
//============================================================
prontera,124,201,1 script Universal Rental NPC 4_F_JOB_BLACKSMITH,{
- if (ismounting()) {
+ /* TODO: This can be optimized with just setmount(), as it can
+ auto-detect the proper mount for the class/skills. */
+ if (hascashmount()) {
message strcharinfo(0),"You must first remove your mount.";
end;
- }
- else if ((eaclass()&EAJ_THIRDMASK) == EAJ_RANGER && !countitem(6124)) {
- if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) {
- if(select(" ~ Falcon: ~ Warg")==1) setfalcon;
- else getitem 6124,1;
+ } else if ((eaclass()&EAJ_THIRDMASK) == EAJ_RANGER && !countitem(Wolf's_Flute)) {
+ if (!checkfalcon() && getskilllv(HT_FALCON) && !checkwug()) {
+ if (select(" ~ Falcon: ~ Warg") == 1)
+ setfalcon;
+ else
+ getitem Wolf's_Flute, 1;
specialeffect2 EF_TEIHIT3;
close;
+ } else {
+ getitem Wolf's_Flute,1;
}
- else getitem 6124,1;
- }
- else if ((eaclass()&EAJ_THIRDMASK) == EAJ_MECHANIC && !checkcart() && getskilllv("MC_PUSHCART")) {
- if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) {
- if(select(" ~ Cart: ~ Mado")==1) setcart;
- else setmadogear;
+ } else if ((eaclass()&EAJ_THIRDMASK) == EAJ_MECHANIC && !checkcart() && getskilllv(MC_PUSHCART)) {
+ if (!checkmount() != MOUNT_MADO && getskilllv(NC_MADOLICENCE)) {
+ if (select(" ~ Cart: ~ Mado") == 1) {
+ setcart;
+ } else {
+ setmount(MOUNT_MADO);
+ }
specialeffect2 EF_TEIHIT3;
close;
+ } else {
+ setcart;
}
- else setcart;
- }
- else if (!checkcart() && getskilllv("MC_PUSHCART")) setcart;
- else if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon;
- else if (!checkriding() && getskilllv("KN_RIDING")) {
- if ((eaclass()&EAJ_THIRDMASK) == EAJ_RUNE_KNIGHT) setdragon;
- else setriding;
- }
- else if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) setmadogear;
- else {
+ } else if (!checkcart() && getskilllv(MC_PUSHCART)) {
+ setcart;
+ } else if (!checkfalcon() && getskilllv(HT_FALCON) && !checkwug()) {
+ setfalcon;
+ } else if (checkmount() != MOUNT_PECO && getskilllv(KN_RIDING)) {
+ setmount; // Peco or Dragon
+ } else if (checkmount() != MOUNT_MADO && getskilllv(NC_MADOLICENCE)) {
+ setmount(MOUNT_MADO);
+ } else {
message strcharinfo(0),"You do not meet requirements to rent.";
end;
}
diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt
index ee1e7904b..5baba717e 100644
--- a/npc/custom/etc/blackjack.txt
+++ b/npc/custom/etc/blackjack.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
-//= 1.0
+//= 1.1
//===== Description: =========================================
//= Black Jack card game. Gameplay based off standard casino
//= black jack rules. Dealer must have at least 17 to stay and will
@@ -12,7 +12,8 @@
//= Currently does not allow for "insurance", or "splitting"
//= of pairs.
//===== Additional Comments: =================================
-//=
+// 1.0 Release
+// 1.1 Prevent player logout from zeny deletion (AnnieRuru)
//============================================================
cmd_in02,188,89,1 script Black Jack Dealer 1_M_LIBRARYMASTER,{
@@ -71,7 +72,7 @@ sM_0b:
mes "3.) If you have a point total of 21 with the first 2 cards, you";
mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000";
mes "and happens when you get an 'Ace' and a '10 valued' card. If the";
- mes "dealer gets a Black Jack he/she will automatically win the round.";
+ mes "dealer gets a Black Jack the player will automatically lose the round.";
next;
mes "[Dealer]";
mes "4.) Besides winning and loosing, you can tie with the dealer. If";
@@ -133,18 +134,22 @@ L_Play:
M_1a:
if(Zeny < 2) goto sL_NotEnuf;
set @bet, 2;
+ Zeny -= @bet;
goto L_Cont0;
M_1b:
if(Zeny < 10) goto sL_NotEnuf;
set @bet, 10;
+ Zeny -= @bet;
goto L_Cont0;
M_1c:
if(Zeny < 20) goto sL_NotEnuf;
set @bet, 20;
+ Zeny -= @bet;
goto L_Cont0;
M_1d:
if(Zeny < 100) goto sL_NotEnuf;
set @bet, 100;
+ Zeny -= @bet;
goto L_Cont0;
sL_NotEnuf:
@@ -157,6 +162,7 @@ L_Cont0:
next;
deletearray $@card[0],13;
set @dealerTurn, 0;
+ set @doubledown, 0;
set @numP, 0;
set @numD, 0;
set @pAce, 0;
@@ -219,7 +225,7 @@ M_Double:
mes "doubled, and you will only be able to pull 1 extra card.";
next;
set @dealerTurn, 1;
- set @bet, @bet*2;
+ set @doubledown, 1;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start;
@@ -232,18 +238,21 @@ L_Check:
sL_Win:
mes "[Dealer]";
mes "Congratulations, you've won!";
+ if ( @doubledown )
+ Zeny += @bet *3;
+ else
+ Zeny += @bet *2;
next;
- Zeny += @bet;
goto L_Play;
sL_Lose:
mes "[Dealer]";
mes "I'm sorry but you've lost.";
- Zeny -= @bet;
next;
goto L_Play;
sL_Push:
mes "[Dealer]";
mes "Its a push. You tied with the Dealer.";
+ Zeny += @bet;
next;
goto L_Play;
diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt
index e78833b66..b83bf3f83 100644
--- a/npc/custom/etc/penal_servitude.txt
+++ b/npc/custom/etc/penal_servitude.txt
@@ -84,9 +84,9 @@ M_Q1:
menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS;
mes "[Saddeus]";
- if(checkcart() || checkfalcon() || checkriding()){
+ if(checkcart() || checkfalcon() || checkmount()){
emotion e_hmm;
- mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!";
+ mes "I'm sorry, you should release your Cart, Mount or Falcon!";
close;
}
mes "Talk to our overseer, Oliver.";
diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt
index b9bfcf74f..3526cde5c 100644
--- a/npc/custom/etc/quest_warper.txt
+++ b/npc/custom/etc/quest_warper.txt
@@ -55,7 +55,7 @@
// - when all towns and dungeons are collected a new option on the main menu will show
// - it will only show when you setup the mapname of the warp !
//= 2.0a - Dungeon Level Limit & Split dungeon fees
-// - Limits dungeon based on Depth, access special setup menu thru GM-Menu
+// - Limits dungeon based on Depth, access to special setup menu through the GM-Menu
// - Dungeon fees split up based on Basic , Advanced & Overseas
// - Old Dungeon fee system removed, all dungeon fees now set to 0
//= 2.0b - Special warpname menu option name bug fixed
diff --git a/npc/custom/events/disguise.txt b/npc/custom/events/disguise.txt
index 5e03f5802..b3215ccb7 100644
--- a/npc/custom/events/disguise.txt
+++ b/npc/custom/events/disguise.txt
@@ -132,7 +132,10 @@ OnInit:
DARK_SNAKE_LORD, INCANTATION_SAMURAI, PORING_V, AMON_RA, TAO_GUNKA, RSX_0806, BACSOJIN_, B_SEYREN, B_EREMES, B_HARWORD,
B_MAGALETA, B_SHECIL, B_KATRINN, B_YGNIZEM, APOCALIPS_H, LADY_TANEE, THANATOS, DETALE, KIEL_, RANDGRIS,
GLOOMUNDERNIGHT, KTULLANUX, ATROCE, G_MAGALETA_, IFRIT, FALLINGBISHOP, BEELZEBUB_, GOPINICH, MOROCC_, KUBLIN,
- S_NYDHOG, BOITATA, QUEEN_SCARABA, LOST_DRAGON, LEAK, I_QUEEN_SCARABA;
+ S_NYDHOG, BOITATA;
+ if(checkre(0)){
+ setarray .MVP[getarraysize(.MVP)], QUEEN_SCARABA, LOST_DRAGON, LEAK, I_QUEEN_SCARABA;
+ }
set .Blacklist$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," +
"1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," +
"1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," +
diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt
index 88a1897da..ca102ed76 100644
--- a/npc/custom/jobmaster.txt
+++ b/npc/custom/jobmaster.txt
@@ -24,8 +24,8 @@ prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{
mes "No more jobs are available.";
close;
}
- if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
- mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")
+ if (checkfalcon() || checkcart() || checkmount() || hascashmount()) {
+ mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkmount() || hascashmount())?"mount":"")
+" before proceeding.";
close;
}
diff --git a/npc/custom/quests/hunting_missions.txt b/npc/custom/quests/hunting_missions.txt
index c4e8187de..d4999648f 100644
--- a/npc/custom/quests/hunting_missions.txt
+++ b/npc/custom/quests/hunting_missions.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.4a
+//= 1.4b
//===== Description: =========================================
//= Random hunting missions.
//= Rewards are based on quest difficulty.
@@ -17,6 +17,8 @@
//= 1.4 Fix ranking table using new SQL database [ossi0110]
//= 1.4a Fix a bug when a character has deleted, that account
//= can't do mission. [AnnieRuru]
+//= 1.4b Update to follow author's method on fixing
+//= character deletion bug [AnnieRuru]
//============================================================
prontera,152,187,6 script Hunting Missions 4_F_EDEN_MASTER,{
@@ -44,9 +46,21 @@ function Chk; function Cm;
switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000")) {
case 1:
mes "[Hunting Missions]";
- if ( query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) && #Mission_Count ) {
+ if ( #Mission_Count ) {
mes "You've started a mission";
mes "on another character.";
+ if ( !@hm_char_del_check ) {
+ if ( !query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) ) {
+ next;
+ mes "[Hunting Missions]";
+ mes "I can't seem to find any records";
+ mes "for that character, though...";
+ mes "One moment, please.";
+ emotion e_hmm;
+ set #Mission_Count, 0;
+ }
+ set @hm_char_del_check, 1;
+ }
close;
}
if (#Mission_Delay > gettimetick(2) && .Delay) {
diff --git a/npc/dev/test.txt b/npc/dev/test.txt
index f9e4fc410..7b498e922 100644
--- a/npc/dev/test.txt
+++ b/npc/dev/test.txt
@@ -565,6 +565,10 @@ function script HerculesSelfTestHelper {
callsub(OnCheck, "array shrink", .@x[1], 0);
callsub(OnCheck, "array shrink and getarraysize", getarraysize(.@x), 0);
+ // min and max
+ callsub(OnCheck, "min()", min(5, -10, 8, 3, -2, 1000), -10);
+ callsub(OnCheck, "max()", max(5, -10, 8, 3, -2, 1000), 1000);
+
// Constants
callsub(OnCheck, "'true' constant", true, 1);
diff --git a/npc/events/MemorialDay_2008.txt b/npc/events/MemorialDay_2008.txt
index 2c64c5b75..a6c09fe80 100644
--- a/npc/events/MemorialDay_2008.txt
+++ b/npc/events/MemorialDay_2008.txt
@@ -63,7 +63,7 @@ prontera,182,214,4 script Lauds#Memorial 1_M_MERCHANT,{
mes "[Mad Sago Lauds]";
mes "Listen closely.";
mes "Bring me ^FF000030 Fabric and 20 Fluffs^000000.";
- set Memorial08,1;
+ Memorial08 = 1;
close;
}
@@ -91,7 +91,7 @@ prontera,182,214,4 script Lauds#Memorial 1_M_MERCHANT,{
delitem 914,20;
getitem 6025,1;
getnameditem 6025," + strcharinfo(0) + ";
- set Memorial08,2;
+ Memorial08 = 2;
close;
}
}
@@ -114,7 +114,7 @@ prontera,182,214,4 script Lauds#Memorial 1_M_MERCHANT,{
mes "[Mad Sago Lauds]";
mes "It seems you're just carrying it without understanding its meaning.";
mes "What a shame! You should go speak to ^FF0000Grast in Prontera^000000.";
- set Memorial08,3;
+ Memorial08 = 3;
close;
}
@@ -149,7 +149,7 @@ prontera,182,214,4 script Lauds#Memorial 1_M_MERCHANT,{
mes "What? Why are you giving me your garbage!";
mes "Those items are not useful to me at all.";
mes "You should be going to the plaque!";
- set Memorial08,8;
+ Memorial08 = 8;
close;
}
@@ -161,7 +161,7 @@ prontera,182,214,4 script Lauds#Memorial 1_M_MERCHANT,{
}
else if (Memorial08 >= 9) {
- set .@RandomMsg, rand(1,5);
+ .@RandomMsg = rand(1,5);
if (.@RandomMsg == 1) {
mes "[Mad Sago Lauds]";
mes "Don't panic!";
@@ -207,7 +207,7 @@ prontera,153,286,4 script Memorial Plaque#Memorial 4_BOARD3,{
mes "'This must be what Lauds was talking about.'";
mes "'Let's dust it off with the towel.'";
next;
- set Memorial08,9;
+ Memorial08 = 9;
getexp 93750,43750;
goto L_CleanPlaque;
}
@@ -244,7 +244,7 @@ prontera,153,286,4 script Memorial Plaque#Memorial 4_BOARD3,{
mes "- Arthur Ashe -";
if (Memorial08 == 9) {
getexp 93750,43750;
- set Memorial08,10;
+ Memorial08 = 10;
}
close;
}
@@ -273,7 +273,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "[Grast]";
mes "Please bring me ^FF0000one of each Red Potion, Green Potion, Awakening Potion, and Butterfly Wing^000000.";
mes "I'll be waiting for your return.";
- set Memorial08,4;
+ Memorial08 = 4;
close;
}
@@ -303,7 +303,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "[Grast]";
mes "Please bring me ^FF0000one of each Trap, Yggdrasil Leaf, Blue Gemstone, Crystal Mirror, Meat, and Carrot.^000000";
mes "I'll be waiting for your return.";
- set Memorial08,5;
+ Memorial08 = 5;
close;
}
}
@@ -330,7 +330,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
next;
mes "[Grast]";
mes "Please bring me ^FF0000one of each Pet Incubator, Firecracker, Poring Doll, and Bouquet^000000.";
- set Memorial08,6;
+ Memorial08 = 6;
close;
}
}
@@ -376,7 +376,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "You've selected my right hand.";
mes "Here's the gift for you.";
mes "Now, please bring all these materials to Lauds.";
- set Memorial08, 7;
+ Memorial08 = 7;
getitem 617,1;
close;
}
@@ -384,7 +384,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "You've selected my left hand.";
mes "Here's the gift for you.";
mes "Now, please bring all these materials to Lauds.";
- set Memorial08, 7;
+ Memorial08 = 7;
getitem 12109,1;
close;
}
@@ -413,7 +413,7 @@ prontera,150,270,4 script Grast#Memorial 4_M_HUMERCHANT,{
mes "I crushed all the items together into a more compact form for you.";
mes "You can thank me later for that extra service.";
mes "Please bring them to Lauds.";
- set Memorial08,7;
+ Memorial08 = 7;
getitem 7126,1;
next;
mes "[Grast]";
diff --git a/npc/events/RWC_2011.txt b/npc/events/RWC_2011.txt
index 992bd7bd3..f7534af84 100644
--- a/npc/events/RWC_2011.txt
+++ b/npc/events/RWC_2011.txt
@@ -26,7 +26,7 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
mes "[New Agent]";
mes "It's RWC time!";
next;
- set .@loop,1;
+ .@loop = 1;
while(.@loop) {
switch(select("What is RWC?:Are you a New Agent?:I don't care.")) {
case 1:
@@ -73,7 +73,7 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
mes "- His brimming small eyes seem to tell you something. ^FF0000Please talk to me again...^000000 -";
close;
}
- set .@loop,0;
+ .@loop = 0;
break;
case 3:
mes "[New Agent]";
@@ -148,7 +148,7 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
next;
mes "[New Agent]";
mes "Please help me out!! My life is in your hands!";
- set oversea_event,1;
+ oversea_event = 1;
setquest 13000;
close;
} else if (oversea_event == 1) {
@@ -169,35 +169,35 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
delitem 7470,1; //BlueCard_W
delitem 6012,1; //Blue_Card_C
//SavePPL BlueCard_2
- set oversea_event,2;
+ oversea_event = 2;
erasequest 13000;
setquest 13001;
- set .@i, rand(1,100);
- if (.@i == 1) getitem 12690,1; //Old_C_Album_Helm
- else if (.@i == 2) getitem 12691,1; //Old_C_Album_Armor
- else if (.@i == 3) getitem 12693,1; //Old_C_Album_Garment
- else if (.@i == 4) getitem 12694,1; //Old_C_Album_Shoes
- else if (.@i == 5) getitem 12698,1; //Old_C_Album_Weapon
- else if (.@i == 6) getitem 12695,1; //Old_C_Album_Acc
- else if (.@i == 7) getitem 12692,1; //Old_C_Album_Shield
- else if (.@i < 28) getitem 547,10; //White_Slim_Potion
- else if (.@i < 38) getitem 607,1; //Yggdrasilberry
- else if (.@i < 51) getitem 608,1; //Seed_Of_Yggdrasil
- else {
+ .@i = rand(1,100);
+ if (.@i == 1) getitem 12690,1; //Old_C_Album_Helm
+ else if (.@i == 2) getitem 12691,1; //Old_C_Album_Armor
+ else if (.@i == 3) getitem 12693,1; //Old_C_Album_Garment
+ else if (.@i == 4) getitem 12694,1; //Old_C_Album_Shoes
+ else if (.@i == 5) getitem 12698,1; //Old_C_Album_Weapon
+ else if (.@i == 6) getitem 12695,1; //Old_C_Album_Acc
+ else if (.@i == 7) getitem 12692,1; //Old_C_Album_Shield
+ else if (.@i < 28) getitem 547,10; //White_Slim_Potion
+ else if (.@i < 38) getitem 607,1; //Yggdrasilberry
+ else if (.@i < 51) getitem 608,1; //Seed_Of_Yggdrasil
+ else {
getitem 12696,5; //RWC_Cele_Fire
getitem 12697,5; //RWC_Cele_Fire2
- }
- mes "[RWC2011 Agent]";
- mes "It's not much but please keep it! Haha, we still have lots of cards to be found. I hope you can help me tomorrow as well.";
- next;
- mes "[RWC2011 Agent]";
- mes "Thank you!! I can continue working now. Nothing is impossible when we have great adventurers like you in this world!";
- next;
- mes "[RWC2011 Agent]";
- mes "ADIOS!";
- next;
- mes "- Agent muttered something to himself. -";
- close;
+ }
+ mes "[RWC2011 Agent]";
+ mes "It's not much but please keep it! Haha, we still have lots of cards to be found. I hope you can help me tomorrow as well.";
+ next;
+ mes "[RWC2011 Agent]";
+ mes "Thank you!! I can continue working now. Nothing is impossible when we have great adventurers like you in this world!";
+ next;
+ mes "[RWC2011 Agent]";
+ mes "ADIOS!";
+ next;
+ mes "- Agent muttered something to himself. -";
+ close;
} else {
mes "[RWC2011 Agent]";
mes "Mmmm~ not yet? We're short-handed... Please help me.";
@@ -207,8 +207,8 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
close;
}
} else if (oversea_event == 2) {
- set .@playtime, checkquest(13001,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(13001,PLAYTIME);
+ if (.@playtime == 1) {
mes "[RWC2011 Agent]";
mes "First, I will start attaching cards you found... I'll take the rest of cards tomorrow.";
mes "Please come back tomorrow.";
@@ -218,7 +218,7 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
mes "[RWC2011 Agent]";
mes "Thanks for the last time.";
mes "I must keep on promoting the event so I want to ask you again~!";
- set oversea_event,3;
+ oversea_event = 3;
close;
} else if (oversea_event == 3) {
mes "[RWC2011 Agent]";
@@ -231,7 +231,7 @@ prontera,114,81,5 script RWC2011 Agent#2 4_M_ATEIL,{
mes "It's the same mission as before.";
mes "Try to gather blue cards and make the word, ^FF0000R W C 2 0 1 1 ^000000.";
mes "Good Luck!";
- set oversea_event,1;
+ oversea_event = 1;
setquest 13000;
close;
case 2:
diff --git a/npc/events/RWC_2012.txt b/npc/events/RWC_2012.txt
index 33e3cec84..43b884a0d 100644
--- a/npc/events/RWC_2012.txt
+++ b/npc/events/RWC_2012.txt
@@ -21,7 +21,7 @@ prontera,147,61,3 script Driller#pron 4_M_BARBER,{
mes "You cannot proceed because you're overweight.";
close;
}
- set .@part, EQI_ACC_L;
+ .@part = EQI_ACC_L;
if (!getequipisequiped(.@part)) {
mes "[Driller]";
mes "My job is to drill a card slot into RWC Memorial accessories.";
@@ -33,7 +33,7 @@ prontera,147,61,3 script Driller#pron 4_M_BARBER,{
mes "[Driller]";
mes "My job is to drill a card slot into RWC Memorial accessories. Moreover, I only treat ^ff0000pure items^000000, or those which have not been enchanted.";
next;
- set .@equip_id, getequipid(.@part);
+ .@equip_id = getequipid(.@part);
if (.@equip_id != 2966 && .@equip_id != 2968) {
mes "[Driller]";
mes "However, I can see that the accessory you are wearing on the right side cannot be treated. Please equip a RWC Memorial accessory.";
@@ -48,13 +48,13 @@ prontera,147,61,3 script Driller#pron 4_M_BARBER,{
close;
}
if (.@equip_id == 2966) {
- set .@slotted, 2967; //RWC_2012_Ring_
- set .@name$,"RWC 2012 Memorial Ring";
- set .@str$,"ring";
+ .@slotted = 2967; //RWC_2012_Ring_
+ .@name$ = "RWC 2012 Memorial Ring";
+ .@str$ = "ring";
} else if (.@equip_id == 2968) {
- set .@slotted, 2969; //RWC_2012_Pendant_
- set .@name$,"RWC 2012 Memorial Pendant";
- set .@str$,"pendant";
+ .@slotted = 2969; //RWC_2012_Pendant_
+ .@name$ = "RWC 2012 Memorial Pendant";
+ .@str$ = "pendant";
} else {
mes "[Driller]";
mes "I can't identify the accessory item you're wearing on your right hand. I can't work on it.";
@@ -93,25 +93,25 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
mes "[Goldberg]";
mes "Hello! I am in charge of enchanting RWC Memorial accessories with some mystic powers.";
next;
- set .@part, EQI_ACC_L;
+ .@part = EQI_ACC_L;
if (!getequipisequiped(.@part)) {
mes "[Goldberg]";
mes "I'm sorry but you don't have any item equipped on your right accessory position.";
close;
}
- set .@equip_id, getequipid(.@part);
+ .@equip_id = getequipid(.@part);
if (.@equip_id < 2966 || .@equip_id > 2969) {
mes "[Goldberg]";
mes "However, I can see that the accessory you are wearing is not something I can work on. Please equip a RWC Memorial accessory.";
close;
}
- set .@select, select("Sorry, not interested.:Please, empower my accessory.:Remove the Enchant.")-1;
+ .@select = select("Sorry, not interested.:Please, empower my accessory.:Remove the Enchant.")-1;
if (.@select == 0) {
mes "[Goldberg]";
mes "Alright, then, see you next time...";
close;
}
- set .@equip_refine, getequiprefinerycnt(.@part);
+ .@equip_refine = getequiprefinerycnt(.@part);
setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
if (.@select == 1) {
switch(getequipid(.@part)) {
@@ -133,10 +133,10 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
mes "If you have equipped your RWC Memorial accessory on the left side, try to swap it to the right side.";
close;
}
- for(set .@i,3; .@i>=0; set .@i,.@i-1) {
+ for(.@i = 3; .@i >= 0; --.@i) {
if (.@equip_card[.@i] == 0) {
- set .@slot, .@i;
- set .@op_type, .@option[.@i];
+ .@slot = .@i;
+ .@op_type = .@option[.@i];
break;
}
}
@@ -146,25 +146,25 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
mes "Which enchantment would you like to infuse?";
next;
setarray .@enchant_select[0],1,2,3,4;
- set .@i, select("Cancel:Fighting Spirit:ATK (%):Max HP:HP")-2;
+ .@i = select("Cancel:Fighting Spirit:ATK (%):Max HP:HP")-2;
break;
case 3:
setarray .@enchant_select[0],5,6,7;
- set .@i, select("Cancel:Spell:MATK (%):SP")-2;
+ .@i = select("Cancel:Spell:MATK (%):SP")-2;
break;
case 2:
mes "[Goldberg]";
mes "^ff0000Be careful! There is about a 25% chance that the enchantment will fail. If this happens, the item will be destroyed.^000000 Which enchantment would you like to infuse?";
next;
setarray .@enchant_select[0],8,9,10,11,12,13,14;
- set .@i, select("Cancel:STR:AGI:VIT:INT:DEX:LUK:SP")-2;
+ .@i = select("Cancel:STR:AGI:VIT:INT:DEX:LUK:SP")-2;
break;
case 1:
mes "[Goldberg]";
mes "^ff0000There is about a 25% chance that the enchantment will fail. If this happens, the item will be destroyed.^000000 Which enchantment would you like to infuse?";
next;
setarray .@enchant_select[0],8,9,10,11,12,13,15,16;
- set .@i, select("Cancel:STR:AGI:VIT:INT:DEX:LUK:MHP:HP")-2;
+ .@i = select("Cancel:STR:AGI:VIT:INT:DEX:LUK:MHP:HP")-2;
break;
case 0:
mes "[Goldberg]";
@@ -184,7 +184,7 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
mes "Alright, then, see you next time...";
close;
}
- set .@enchant_type, .@enchant_select[.@i];
+ .@enchant_type = .@enchant_select[.@i];
if (!getequipisequiped(.@part)) {
mes "[Goldberg]";
mes "Do not take off your equipment while I'm working, okay?";
@@ -246,25 +246,25 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
}
if (.@enchant_type < 8)
- set .@i, rand(1,300); // 0% break chance.
+ .@i = rand(1,300); // 0% break chance.
else
- set .@i, rand(1,400); // 25% break chance.
+ .@i = rand(1,400); // 25% break chance.
- if (.@i < 151) set .@enchant, .@enc[0];
- else if (.@i < 251) set .@enchant, .@enc[1];
- else if (.@i < 301) set .@enchant, .@enc[2];
- else set .@enchant,9;
+ if (.@i < 151) .@enchant = .@enc[0];
+ else if (.@i < 251) .@enchant = .@enc[1];
+ else if (.@i < 301) .@enchant = .@enc[2];
+ else .@enchant = 9;
- set .@equip_card[.@slot], .@enchant;
+ .@equip_card[.@slot] = .@enchant;
if (.@slot == 2 && .@enchant == 0) {
- set .@equip_card[3],0;
+ .@equip_card[3] = 0;
} else if (.@slot == 1 && .@enchant == 0) {
- set .@equip_card[2],0;
- set .@equip_card[3],0;
+ .@equip_card[2] = 0;
+ .@equip_card[3] = 0;
} else if (.@slot == 0 && .@enchant == 0) {
- set .@equip_card[1],0;
- set .@equip_card[2],0;
- set .@equip_card[3],0;
+ .@equip_card[1] = 0;
+ .@equip_card[2] = 0;
+ .@equip_card[3] = 0;
}
delequip .@part;
@@ -315,9 +315,9 @@ prontera,147,59,3 script Goldberg#pron 4_M_OILMAN,{
delequip .@part;
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i < 4; ++.@i) {
if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
+ .@equip_card[.@i] = 0;
}
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
diff --git a/npc/events/StPatrick_2008.txt b/npc/events/StPatrick_2008.txt
index c1816374f..a0b5fda61 100644
--- a/npc/events/StPatrick_2008.txt
+++ b/npc/events/StPatrick_2008.txt
@@ -99,7 +99,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "[O'Riley the Leprechaun]";
mes "Ye might try some Firecrackers.";
mes "Course, Ye would need a great number of them, Ye would need at least ^FF0000200 Firecreackers^000000";
- set StPatrick2008,1;
+ StPatrick2008 = 1;
close;
}
else if (StPatrick2008 == 1) {
@@ -136,7 +136,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "[O'Riley the Leprechaun]";
mes "When ye have had a moment to rest ye legs, come talk to me again and we may speak again";
close2;
- set StPatrick2008,3;
+ StPatrick2008 = 3;
getexp 200000,70000;
delitem 7721,1;
end;
@@ -153,7 +153,7 @@ prt_fild05,170,286,4 script Anxious Leprechaun#8pday 4_M_PATRICK,{
mes "I would be so generous to give you some of my famous brew if you would bring me the ill-gotten gains carried by those vile snakes";
next;
mes "And if you find one of the treasures of my kin please bring me those coins so that the snakes don't get them.";
- set StPatrick2008,4;
+ StPatrick2008 = 4;
close;
}
else if (StPatrick2008 == 4) {
@@ -229,7 +229,7 @@ OnTouch:
mes "This box must contain O'Riley's valuables.";
mes "Let's bring the box to O'Riley.";
close2;
- set StPatrick2008,2;
+ StPatrick2008 = 2;
delitem 12018,200;
getitem 7721,1;
}
diff --git a/npc/events/bossnia.txt b/npc/events/bossnia.txt
index 8bb48661c..432c8e391 100644
--- a/npc/events/bossnia.txt
+++ b/npc/events/bossnia.txt
@@ -67,7 +67,7 @@ prontera,132,125,4 script Bossnia Staff#1 4_M_PHILMAN,{
mes "Would you really like to take the challenge?";
mes "Ok, just choose the course.";
next;
- set .@i, select("First","Second","Third","Fourth");
+ .@i = select("First","Second","Third","Fourth");
mes "[Riss]";
mes "Take care, boy~";
mes "Don't hold a grudge against me.";
diff --git a/npc/events/children_week.txt b/npc/events/children_week.txt
index 48e9231d6..3ba99ebd2 100644
--- a/npc/events/children_week.txt
+++ b/npc/events/children_week.txt
@@ -40,7 +40,7 @@ prontera,146,91,5 script Pandit chacha#child07 1_M_PUBMASTER,{
mes "Whenever come back again if you want it...";
close;
}
- set oversea_event9,1;
+ oversea_event9 = 1;
getitem 11705,10; //Special_White_Potion
mes "[Pandit chacha]";
mes "Look. This is a child Potion.";
@@ -68,7 +68,7 @@ prontera,146,91,5 script Pandit chacha#child07 1_M_PUBMASTER,{
close2;
delitem 745,1; //Wedding_Bouquet
delitem 748,1; //Witherless_Rose
- set oversea_event9,2;
+ oversea_event9 = 2;
getitem 11705,50; //Special_White_Potion
end;
}
diff --git a/npc/events/christmas_2005.txt b/npc/events/christmas_2005.txt
index 5236e5a54..c782e3b9d 100644
--- a/npc/events/christmas_2005.txt
+++ b/npc/events/christmas_2005.txt
@@ -261,7 +261,7 @@ prontera,155,285,3 script Enjoy#enjoy 4_M_MONK,{
next;
mes "["+ strcharinfo(0) +"]";
mes "Let's punish!!!!!!!!!!!!!!!!!!!!!!!!!!!";
- set christ_solo05,1;
+ christ_solo05 = 1;
close;
case 2:
mes "[Enjoy]";
@@ -287,8 +287,8 @@ prontera,155,285,3 script Enjoy#enjoy 4_M_MONK,{
mes "Get lost,you devil!!!!!!";
specialeffect EF_BEGINASURA;
specialeffect2 EF_HIT2;
- set Hp,Hp/2;
- set Hp,Hp/2;
+ Hp /= 2;
+ Hp /= 2;
close2;
warp "prontera",155,230;
end;
@@ -397,7 +397,7 @@ prontera,155,285,3 script Enjoy#enjoy 4_M_MONK,{
donpcevent "Event#event02::OnCommandEmotion";
misceffect EF_HITLINE2;
delitem 604,5; //Branch_of_Dead_Tree
- set christ_solo05,6;
+ christ_solo05 = 6;
donpcevent "Happymerry#happymerry02::OnCommandOff";
donpcevent "Christ#christ02::OnCommandOff";
donpcevent "Mas#mas02::OnCommandOff";
@@ -458,7 +458,7 @@ prontera,155,285,3 script Enjoy#enjoy 4_M_MONK,{
mes "Cheer up everybody!!!";
mes "Let's rock till you get happy~!";
mes "";
- set christ_solo05,0;
+ christ_solo05 = 0;
close;
}
@@ -636,7 +636,7 @@ prontera,188,177,4 script Happymerry#happymerry 4_M_LGTMAN,{
mes "Call him for me!";
mes "I'll go ahead with my bags packed up.";
mes "See ya!";
- set christ_solo05,2;
+ christ_solo05 = 2;
close;
}
else if (christ_solo05 > 1) {
@@ -716,7 +716,7 @@ prontera,62,339,3 script Christ#christ 4_M_PECOKNIGHT,{
mes "Go tell ^0000FFMas^000000";
mes "about this!!!";
mes "See ya~~!";
- set christ_solo05,3;
+ christ_solo05 = 3;
close;
}
else if (christ_solo05 > 2) {
@@ -807,7 +807,7 @@ prontera,163,66,7 script Mas#mas 4_M_ALCHE_A,{
mes "Well,bye~.";
mes "I'll meet you there!!...";
mes "Herbs~?! Couples?! Whatever~~";
- set christ_solo05,4;
+ christ_solo05 = 4;
close;
}
else if (christ_solo05 > 3) {
@@ -888,7 +888,7 @@ prontera,35,209,5 script Event#event 4_M_SITDOWN,{
mes "Now I should get my ^0000FFBranch of Dead Tree^000000s packed up";
mes "and go punish singles!!!";
mes "Hahahaha..";
- set christ_solo05,5;
+ christ_solo05 = 5;
close;
}
else if (christ_solo05 > 4) {
@@ -1026,7 +1026,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "I feel so sad for disappointed";
mes "kids who didn't hear the carols.";
next;
- menu "...can I help you?",-;
+ select("...can I help you?");
mes "[Oholy]";
mes "Good gracious! Are you for real?";
mes "Oh? Shee... Can you hear it?";
@@ -1052,7 +1052,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Well then, hope you a good luck!!!";
mes " ";
emotion e_no1;
- set christ_carol05,1;
+ christ_carol05 = 1;
close;
case 4:
mes "[Oholy]";
@@ -1186,7 +1186,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 12130,7;//Cookie_Bag
close;
case 2:
@@ -1198,7 +1198,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 529,20;//Candy
close;
case 3:
@@ -1210,7 +1210,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 530,15;//Candy_Striper
close;
case 4:
@@ -1222,7 +1222,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 539,5;//Piece_of_Cake
close;
case 5:
@@ -1234,7 +1234,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 538,10;//Well_baked_Cookie
close;
case 6:
@@ -1246,7 +1246,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 743,1;//Spore_Doll
close;
case 7:
@@ -1258,7 +1258,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 750,1;//Baphomet_Doll
close;
case 8:
@@ -1270,7 +1270,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 751,1;//Osiris_Doll
close;
case 9:
@@ -1282,7 +1282,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 752,1;//Grasshopper_Doll
close;
@@ -1295,7 +1295,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 753,1;//Monkey_Doll
close;
case 11:
@@ -1307,7 +1307,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 754,1;//Raccoondog_Doll
close;
case 12:
@@ -1320,7 +1320,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 7206,1;//Black_Kitty_Doll
close;
case 13:
@@ -1331,7 +1331,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 7212,1;//Hanging_Doll
close;
case 14:
@@ -1344,7 +1344,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 7277,1;//Munak_Doll
close;
case 15:
@@ -1356,7 +1356,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "Merry Christmas!";
emotion e_heh;
delitem 1097,1;//Worn_Out_Page
- set christ_carol05,3;
+ christ_carol05 = 3;
getitem 2236,1;//Santa's_Hat
close;
}
@@ -1381,7 +1381,7 @@ prontera,156,242,0 script Oholy#pron::OholyDup 1_F_PRIEST,{
mes "[Oholy]";
mes "Let's think about the neighbors";
mes "and do a good deed during Christmas!";
- set christ_carol05,0;
+ christ_carol05 = 0;
close;
}
}
@@ -1423,7 +1423,7 @@ function script F_carol_devi {
mes "Sledge... Reindeer...";
mes "Hmm, I think I got what I need.";
mes "Let's go back to Ms.Oholy.";
- set christ_carol05,2;
+ christ_carol05 = 2;
getitem 1097,1; //Worn_Out_Page
close;
case 2:
diff --git a/npc/events/christmas_2008.txt b/npc/events/christmas_2008.txt
index 192bf25ec..2b6d67eca 100644
--- a/npc/events/christmas_2008.txt
+++ b/npc/events/christmas_2008.txt
@@ -236,7 +236,7 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
mes "[Caroller]";
mes "They're definitely as harsh as their name.";
mes "Go on please!";
- set iROxmas08carol,1;
+ iROxmas08carol = 1;
close;
case 4:
@@ -338,7 +338,7 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
next;
delitem 6092,6;
emotion e_ok;
- set iROxmas08carol,2;
+ iROxmas08carol = 2;
mes "[Caroller]";
mes "Those are all needed.";
mes "Isn't that easy?";
@@ -424,7 +424,7 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
delitem 7312,1;
delitem 938,10;
delitem 732,1;
- set iROxmas08carol,3;
+ iROxmas08carol = 3;
mes "[Caroller]";
mes "Thanks a lot.";
mes "Merry Christmas!";
@@ -510,8 +510,8 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
mes "Please visit me after the one hour has passed.";
close;
}
- set .@SantaCardTurn,0;
- set .@SantaCardWins,0;
+ .@SantaCardTurn = 0;
+ .@SantaCardWins = 0;
mes "[Santa Claus]";
mes "Wow! You're so cool!";
next;
@@ -557,27 +557,27 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
case 1:
mes "["+strcharinfo(0)+"]";
mes "Um...I choose Poring!";
- set .@SantaCardP,1;
+ .@SantaCardP = 1;
next;
break;
case 2:
mes "["+strcharinfo(0)+"]";
mes "Um...I choose Angeling!";
- set .@SantaCardP,2;
+ .@SantaCardP = 2;
next;
break;
case 3:
mes "["+strcharinfo(0)+"]";
mes "Um...I choose Ghostring!";
- set .@SantaCardP,3;
+ .@SantaCardP = 3;
next;
}
mes "[Santa Claus]";
mes "Let's see!!";
mes "One! Two! Three!";
- set .@SantaCardNpc, rand(1,3);
+ .@SantaCardNpc = rand(1,3);
next;
mes "[Santa Claus]";
mes "Let's see!!";
@@ -592,9 +592,9 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
}
next;
- set .@SantaCardTurn,.@SantaCardTurn+1;
+ ++.@SantaCardTurn;
if (.@SantaCardP == .@SantaCardNpc) {
- set .@SantaCardWins,.@SantaCardWins+1;
+ ++.@SantaCardWins;
emotion e_gasp;
emotion e_ic,1;
cutin "",255;
@@ -626,7 +626,7 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
mes "[Santa Claus]";
mes "Now this gift is for you.";
mes "Put your hand into the bag and pick only one.";
- set .@SantaCardPrize, rand(1,12);
+ .@SantaCardPrize = rand(1,12);
next;
if (.@SantaCardPrize == 1) {
getitem 12354,2;
@@ -664,7 +664,7 @@ prontera,226,306,4 script Caroller#iROxmas08 1_F_PRIEST,{
else if (.@SantaCardPrize == 12) {
getitem 594,3;
}
- set SantaCardTime,gettimetick(2)+3600;
+ SantaCardTime = gettimetick(2)+3600;
mes "[Santa Claus]";
mes "Good job! Thanks for playing the card game with me!";
mes "Merry Christmas!";
diff --git a/npc/events/dumplingfestival.txt b/npc/events/dumplingfestival.txt
index 6c5a3b6b5..23a085eb8 100644
--- a/npc/events/dumplingfestival.txt
+++ b/npc/events/dumplingfestival.txt
@@ -21,60 +21,48 @@ payon,93,81,4 script Exorcist Master Fahae 4_M_BUDDHIST,{
mes "I feel it is time I let another warrior try to complete";
mes "my quest. I have some items to assist you in my quest.";
next;
- menu "I wish to buy",-, "No thanks",M_FIN;
-
+ if (select("I wish to buy","No thanks") != 1) {
+ mes "[Exorcist Master Fahae]";
+ mes "The path of fully venquishing evil is far, help me in the way of God.";
+ close;
+ }
mes "[Exorcist Master Fahae]";
mes "I have 2 items which might become useful to you.";
next;
- menu "Realgar Wine",-, "Exorcize Herb",M_HERB;
-
+ switch (select("Realgar Wine","Exorcize Herb")) {
+ case 1:
+ .@itemid = Realgar_Wine; // 682
+ .@price = 20000;
+ break;
+ case 2:
+ .@itemid = Exorcize_Herb; // 683
+ .@price = 10000;
+ break;
+ }
mes "[Exorcist Master Fahae]";
mes "How many do you require?";
mes "You may only buy 5 at one time.";
- mes "Each costs 20000z.";
+ mes "Each costs "+ .@price +"z.";
mes "(Type in 0 to cancel)";
next;
input @input;
- if(@input==0) close;
- if(@input>5) goto L_SORRY;
- if(Zeny< @input*20000) goto L_NoZeny;
- Zeny -= 20000*@input;
- getitem 682,@input;
+ if (@input == 0)
+ close;
+ if (@input > 5) {
+ mes "[Exorcist Master Fahae]";
+ mes "You must not be stingy, it is the path of God to be honest.";
+ close;
+ }
+ if (Zeny < @input * .@price) {
+ mes "[Exorcist Master Fahae]";
+ mes "Money doesn't bring joy to everyone, but we need it to support the temple and myself. Please, try to kill some monsters and take their drops.";
+ close;
+ }
+ Zeny -= @input * .@price;
+ getitem .@itemid, @input;
mes "[Exorcist Master Fahae]";
mes "Here you go, I hope you may succeed in my quest.";
close;
-
-L_SORRY:
- mes "[Exorcist Master Fahae]";
- mes "You must not be stingy, it is the path of God to be honest.";
- close;
-
-M_FIN:
- mes "[Exorcist Master Fahae]";
- mes "The path of fully venquishing evil is far, help me in the way of God.";
- close;
-
-M_HERB:
- mes "[Exorcist Master Fahae]";
- mes "How many do you require?";
- mes "You may only buy 5 at one time.";
- mes "Each costs 10000z.";
- mes "(Type in 0 to cancel)";
- next;
- input @input;
- if(@input==0) close;
- if(@input>5) goto L_SORRY;
- if(Zeny< @input*10000) goto L_NoZeny;
- Zeny -= 10000*@input;
- getitem 683,@input;
- mes "[Exorcist Master Fahae]";
- mes "Here you go, I hope you may succeed in my quest.";
- close;
-
-L_NoZeny:
- mes "[Exorcist Master Fahae]";
- mes "Money doesn't bring joy to everyone, but we need it to support the temple and myself. Please, try to kill some monsters and take their drops.";
- close;
}
// Monsters
diff --git a/npc/events/easter_2008.txt b/npc/events/easter_2008.txt
index 79dfc4cce..5b53831a4 100644
--- a/npc/events/easter_2008.txt
+++ b/npc/events/easter_2008.txt
@@ -90,7 +90,7 @@ prontera,111,99,5 script Egg Salesman#prt::EggVendor 4W_M_02,{
next;
}
else {
- set .@egg_zeny,.@input*500;
+ .@egg_zeny = .@input*500;
if (Zeny < .@egg_zeny) {
mes "[Egg Salesman]";
mes "You don't have enough Zeny.";
@@ -173,7 +173,7 @@ prontera,108,96,5 script Cantankerous Geezer#prt::EggGeezer 4_M_SEAMAN,{
mes "giving to them in return?";
close2;
if (easter2008 < 1) {
- set easter2008,1;
+ easter2008 = 1;
}
end;
}
@@ -341,7 +341,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "more, then why don't you";
mes "bring me 10 Holy Eggs?";
mes "That is my condition.";
- set easter2008,2;
+ easter2008 = 2;
close;
case 2:
mes "[Corps Member]";
@@ -388,7 +388,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "for joining us. Now, I can";
mes "tell you about what we do.";
delitem 12019,10; //Holy_Egg
- set easter2008,3;
+ easter2008 = 3;
getitem 644,2; //Gift_Box
next;
mes "[Corps Member]";
@@ -441,7 +441,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "Go and bring me";
mes "33 Holy Eggs! I shall be";
mes "waiting here for your return...";
- set easter2008,4;
+ easter2008 = 4;
close;
}
else if (easter2008 == 4) {
@@ -468,7 +468,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "Sacrifice the Holy Eggs there,";
mes "and then return to me. Now...";
mes "Go, and bring him back to life!";
- set easter2008,5;
+ easter2008 = 5;
close;
}
else if ((BaseLevel > 40) && (BaseLevel < 61)) {
@@ -479,7 +479,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "at the entrance to the 4th";
mes "level. Sacrifice the Holy Eggs";
mes "there, and return him to life!";
- set easter2008,6;
+ easter2008 = 6;
close;
}
else if ((BaseLevel > 60) && (BaseLevel < 81)) {
@@ -490,7 +490,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "Sacrifice the Holy Eggs as soon";
mes "as you get to the 3rd floor.";
mes "Go, and bring him back to life!";
- set easter2008,7;
+ easter2008 = 7;
close;
}
else {
@@ -501,7 +501,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "2nd floor. A hero perished";
mes "there, but you shall bring";
mes "him back to the living!";
- set easter2008,8;
+ easter2008 = 8;
close;
}
}
@@ -593,7 +593,7 @@ morocc,131,26,5 script Secret Corps#egg 4_M_MASKMAN,{
mes "and then try again next year.";
mes "Farewell, my friend, and I hope";
mes "that you'll assist us again.";
- set easter2008,10;
+ easter2008 = 10;
if (BaseLevel < 41) {
getexp 5000,0;
getexp 5000,0;
@@ -658,7 +658,7 @@ pay_dun00,22,127,0 script Trace#egg1 CLEAR_NPC,{
mes "him know that it didn't work.";
close2;
delitem 12019,33; //Holy_Egg
- set easter2008,9;
+ easter2008 = 9;
end;
}
else {
@@ -710,7 +710,7 @@ iz_dun02,340,346,0 script Trace#egg CLEAR_NPC,{
mes "him know that it didn't work.";
close2;
delitem 12019,33; //Holy_Egg
- set easter2008,9;
+ easter2008 = 9;
end;
}
else {
@@ -762,7 +762,7 @@ mjo_dun03,308,256,0 script Trace#egg2 CLEAR_NPC,{
mes "him know that it didn't work.";
close2;
delitem 12019,33; //Holy_Egg
- set easter2008,9;
+ easter2008 = 9;
end;
}
else {
@@ -814,7 +814,7 @@ gl_prison,157,176,0 script Trace#egg3 CLEAR_NPC,{
mes "him know that it didn't work.";
close2;
delitem 12019,33; //Holy_Egg
- set easter2008,9;
+ easter2008 = 9;
end;
}
else {
diff --git a/npc/events/easter_2010.txt b/npc/events/easter_2010.txt
index 292b91948..70ebbe4fa 100644
--- a/npc/events/easter_2010.txt
+++ b/npc/events/easter_2010.txt
@@ -36,8 +36,8 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
mes "Take care~!";
close;
}
- set .@quest1, checkquest(9117);
- if (.@quest1 == -1) {
+ .@quest1 = questprogress(9117);
+ if (!.@quest1) {
playbgm "30.mp3"; // One Step Closer
mes "[Rina]";
mes "Hi~!";
@@ -96,7 +96,7 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
mes "Let me know when you are ready.";
setquest 9117;
close;
- } else if (.@quest1 == 0 || .@quest1 == 1) {
+ } else if (.@quest1 == 1) {
L_HuntingInfo:
mes "[Rina]";
mes "What you need to do is";
@@ -123,8 +123,8 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
npcskill "AL_BLESSING",1,0,0;
end;
} else if (.@quest1 == 2) {
- if (checkquest(9118) < 2 || checkquest(9119) < 2 || checkquest(9120) < 2 || checkquest(9121) < 2) {
- if (checkquest(9118,HUNTING) == 2 || checkquest(9119,HUNTING) == 2 || checkquest(9120,HUNTING) == 2 || checkquest(9121,HUNTING) == 2) {
+ if (questprogress(9118) != 2 || questprogress(9119) != 2 || questprogress(9120) != 2 || questprogress(9121) != 2) {
+ if (questprogress(9118,HUNTING) == 2 || questprogress(9119,HUNTING) == 2 || questprogress(9120,HUNTING) == 2 || questprogress(9121,HUNTING) == 2) {
mes "[Rina]";
mes "You did it.";
mes "I can feel that my body is recovering.";
@@ -144,8 +144,7 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
end;
}
}
- set .@quest2, checkquest(9122);
- if (.@quest2 == 0 || .@quest2 == 1) {
+ if (questprogress(9122) == 1) {
mes "[Rina]";
mes "I will check one thing.";
mes "For this task,";
@@ -185,10 +184,10 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
else if (oversea_event9 == 197) playbgm "94.mp3"; // Theme of Rachel
else {
switch(rand(1,4)) {
- case 1: playbgm "13.mp3"; set oversea_event2,520; break;
- case 2: playbgm "59.mp3"; set oversea_event3,270; break;
- case 3: playbgm "70.mp3"; set oversea_event6,245; break;
- case 4: playbgm "94.mp3"; set oversea_event9,197; break;
+ case 1: playbgm "13.mp3"; oversea_event2 = 520; break;
+ case 2: playbgm "59.mp3"; oversea_event3 = 270; break;
+ case 3: playbgm "70.mp3"; oversea_event6 = 245; break;
+ case 4: playbgm "94.mp3"; oversea_event9 = 197; break;
}
}
}
@@ -215,87 +214,84 @@ prontera,202,297,3 script Rina#Easter 4_F_JOB_HUNTER,{
close2;
emotion e_sigh;
end;
- } else {
- set .@quest3, checkquest(9123);
- if (.@quest3 == 0 || .@quest3 == 1) {
- emotion e_kis;
+ }
+ if (questprogress(9123) == 1) {
+ emotion e_kis;
+ mes "[Rina]";
+ mes "You're back~!";
+ mes "My curse has been released.";
+ mes "Thank you so much.";
+ next;
+ if (checkweight(5852,1) == 0) {
mes "[Rina]";
- mes "You're back~!";
- mes "My curse has been released.";
- mes "Thank you so much.";
- next;
- if (checkweight(5852,1) == 0) {
- mes "[Rina]";
- mes "Your bag is too full.";
- mes "I have a present for you";
- mes "so make your bag lighter.";
- mes "I'll wait for you.";
- close;
- }
- completequest 9123;
- getitem 5852,1; //Easter_Egg_Shell
- set .@BaseExp, (BaseLevel * (BaseLevel / 4)) * ((BaseLevel / 29) + (BaseLevel / 6)) + (5 * BaseLevel / 2);
- if (ADVJOB == 0) {
- if (BaseLevel < 40) set .@nBaseExp, .@BaseExp;
- else if (BaseLevel < 50) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel);
- else if (BaseLevel < 60) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 20));
- else if (BaseLevel < 70) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
- else if (BaseLevel < 80) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
- else if (BaseLevel < 90) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
- else if (BaseLevel < 99) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
- else set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2) * 2);
-
- set .@nJobExp, (JobLevel * (JobLevel - 3) * (JobLevel / 25 + 1) + (16 - (JobLevel * 2))) * 2;
- } else {
- if (BaseLevel < 30) set .@nBaseExp, .@BaseExp;
- else if (BaseLevel < 40) set .@nBaseExp, .@BaseExp + (BaseLevel * 10);
- else if (BaseLevel < 50) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * 2);
- else if (BaseLevel < 60) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
- else if (BaseLevel < 70) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
- else if (BaseLevel < 80) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
- else if (BaseLevel < 90) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
- else if (BaseLevel < 98) set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * BaseLevel);
- else set .@nBaseExp, .@BaseExp + (BaseLevel * BaseLevel * BaseLevel * 2);
+ mes "Your bag is too full.";
+ mes "I have a present for you";
+ mes "so make your bag lighter.";
+ mes "I'll wait for you.";
+ close;
+ }
+ completequest 9123;
+ getitem 5852,1; //Easter_Egg_Shell
+ .@BaseExp = (BaseLevel * (BaseLevel / 4)) * ((BaseLevel / 29) + (BaseLevel / 6)) + (5 * BaseLevel / 2);
+ if (ADVJOB == 0) {
+ if (BaseLevel < 40) .@nBaseExp = .@BaseExp;
+ else if (BaseLevel < 50) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel);
+ else if (BaseLevel < 60) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 20));
+ else if (BaseLevel < 70) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
+ else if (BaseLevel < 80) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
+ else if (BaseLevel < 90) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
+ else if (BaseLevel < 99) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
+ else .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2) * 2);
- set .@nJobExp, (JobLevel * JobLevel * (JobLevel / 5 + 2) + (20 - JobLevel)) * 3;
- }
- getexp .@nBaseExp,.@nJobExp;
- mes "[Rina]";
- mes "This is the present for you.";
- mes "It's not a big one";
- mes "but please take it";
- mes "as a token of my gratitude.";
- next;
- mes "[Rina]";
- mes "I'll take a rest for a few days";
- mes "and then I'll go on an adventure.";
- mes "See you again.";
- close2;
- consumeitem 607; //Yggdrasilberry
- consumeitem 12068; //Luk_Dish03
- consumeitem 12063; //Dex_Dish03
- consumeitem 12053; //Vit_Dish03
- npcskill "AL_INCAGI",1,0,0;
- npcskill "AL_BLESSING",1,0,0;
- end;
+ .@nJobExp = (JobLevel * (JobLevel - 3) * (JobLevel / 25 + 1) + (16 - (JobLevel * 2))) * 2;
} else {
- mes "[Rina]";
- mes "Thank you for releasing my curse.";
- mes "I'll take a rest for a few days";
- mes "and then go on an adventure again.";
- mes "Have a happy day~!";
- close2;
- consumeitem 607; //Yggdrasilberry
- npcskill "AL_INCAGI",1,0,0;
- npcskill "AL_BLESSING",1,0,0;
- end;
+ if (BaseLevel < 30) .@nBaseExp = .@BaseExp;
+ else if (BaseLevel < 40) .@nBaseExp = .@BaseExp + (BaseLevel * 10);
+ else if (BaseLevel < 50) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * 2);
+ else if (BaseLevel < 60) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
+ else if (BaseLevel < 70) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
+ else if (BaseLevel < 80) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
+ else if (BaseLevel < 90) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
+ else if (BaseLevel < 98) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * BaseLevel);
+ else .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * BaseLevel * 2);
+
+ .@nJobExp = (JobLevel * JobLevel * (JobLevel / 5 + 2) + (20 - JobLevel)) * 3;
}
+ getexp .@nBaseExp,.@nJobExp;
+ mes "[Rina]";
+ mes "This is the present for you.";
+ mes "It's not a big one";
+ mes "but please take it";
+ mes "as a token of my gratitude.";
+ next;
+ mes "[Rina]";
+ mes "I'll take a rest for a few days";
+ mes "and then I'll go on an adventure.";
+ mes "See you again.";
+ close2;
+ consumeitem 607; //Yggdrasilberry
+ consumeitem 12068; //Luk_Dish03
+ consumeitem 12063; //Dex_Dish03
+ consumeitem 12053; //Vit_Dish03
+ npcskill "AL_INCAGI",1,0,0;
+ npcskill "AL_BLESSING",1,0,0;
+ end;
}
+ mes "[Rina]";
+ mes "Thank you for releasing my curse.";
+ mes "I'll take a rest for a few days";
+ mes "and then go on an adventure again.";
+ mes "Have a happy day~!";
+ close2;
+ consumeitem 607; //Yggdrasilberry
+ npcskill "AL_INCAGI",1,0,0;
+ npcskill "AL_BLESSING",1,0,0;
+ end;
}
geffen,207,114,4 script #Hiddne01Easter CLEAR_NPC,{
if (oversea_event2 > 519) {
- OnRelease:
+OnRelease:
specialeffect EF_PATTACK;
mes "- I found ^0000FFthe strange mark^000000. -";
next;
@@ -304,7 +300,7 @@ geffen,207,114,4 script #Hiddne01Easter CLEAR_NPC,{
mes "- ^0000FFRina^000000 has been released";
mes "- from the curse.";
mes "- ^006400Let's go back to Rina!^000000";
- if (checkquest(9122) < 2) {
+ if (questprogress(9122) != 2) {
completequest 9122;
setquest 9123;
}
@@ -333,7 +329,7 @@ rachel,36,132,4 script #Hiddne04Easter CLEAR_NPC,{
prontera,204,297,3 script Rina's Little Friend 4_DRAGON_EGG,{
disable_items;
- if (checkquest(9117) == -1) {
+ if (!questprogress(9117)) {
emotion e_swt2;
mes "[Rina's Little Friend]";
mes ".......";
@@ -341,7 +337,7 @@ prontera,204,297,3 script Rina's Little Friend 4_DRAGON_EGG,{
mes "^787878( No response. )^000000";
close;
}
- if (checkquest(9123) == 2) {
+ if (questprogress(9123) == 2) {
emotion e_meh;
mes "[Rina's Little Friend]";
mes "Hi.";
@@ -352,13 +348,13 @@ prontera,204,297,3 script Rina's Little Friend 4_DRAGON_EGG,{
case 1:
if (ADVJOB == 0) {
if (BaseLevel < 70)
- set .@nCharge,400000;
+ .@nCharge = 400000;
else if (BaseLevel < 90)
- set .@nCharge,450000;
+ .@nCharge = 450000;
else
- set .@nCharge,480000;
+ .@nCharge = 480000;
} else
- set .@nCharge,500000;
+ .@nCharge = 500000;
if (countitem(574) < 1 || countitem(1001) < 20 || Zeny < .@nCharge) {
mes "[Rina's Little Friend]";
mes "Hmm.";
@@ -385,7 +381,7 @@ prontera,204,297,3 script Rina's Little Friend 4_DRAGON_EGG,{
delitem 574,1; //Egg
delitem 1001,20; //Sparkling_Dust
Zeny -= .@nCharge;
- set .@nPercentage, rand(1,100);
+ .@nPercentage = rand(1,100);
if (.@nPercentage <= 41) {
mes "[Rina's Little Friend]";
mes "Life is given to the egg.";
diff --git a/npc/events/event_skill_reset.txt b/npc/events/event_skill_reset.txt
index 718fe2e0e..4b0d2b2a7 100644
--- a/npc/events/event_skill_reset.txt
+++ b/npc/events/event_skill_reset.txt
@@ -14,7 +14,7 @@
//= Each 1 BaseLv need 20.000 Zeny, so be careful to use skill.
//============================================================
yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{
- set @npcname$,"[^D5A500Hypnotist^000000]";
+ @npcname$ = "[^D5A500Hypnotist^000000]";
mes @npcname$;
if(MISC_QUEST & 1024){
@@ -30,7 +30,7 @@ yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{
mes "Please come again soon!";
close;
}
- if(Weight || checkfalcon() || checkcart() || checkriding()) {
+ if(Weight || checkfalcon() || checkcart() || checkmount()) {
mes "Would you like to reset skills?";
mes "I'm sorry, but...";
next;
@@ -43,8 +43,8 @@ yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{
mes "Please, drop your cart and we'll continue.";
else if(checkfalcon())
mes "Please, free your Falcon and we'll continue.";
- else if(checkriding())
- mes "Please, free your PecoPeco and we'll continue.";
+ else if(checkmount())
+ mes "Please, free your mount and we'll continue.";
next;
mes @npcname$;
mes "Come back soon!";
@@ -54,54 +54,53 @@ yuno,138,187,4 script Hypnotist Teacher 4_F_TELEPORTER,{
mes "Your name is ^0080FF"+strcharinfo(0)+"^000000.";
mes "How can I help you?";
next;
- menu "^009500Information about Reset skills.^000000",L_Info,"^00B6FFReset skills.^000000",L_Reset,"^000088Nevermind^000000",-;
-
- mes @npcname$;
- mes "You know where to find me,";
- mes "if you ever want a reset!!";
- close;
-
-L_Info:
- mes @npcname$;
- mes "This skill reset is not FREE OF CHARGE!!";
- mes "Expense for the reset of skill is ^D5A50020000 Zeny x BaseLv^000000.";
- mes "Yeah ...each One BaseLv costs 20000 Zeny to reset skill.";
- next;
- mes @npcname$;
- mes "Oh yeah, one more thing!";
- mes "Any carts, falcons or pecos you have equiped";
- mes "will be removed if you reset your skills.";
- next;
- mes @npcname$;
- mes "Just one time does again to shake the skill point";
- mes "Careful with your skills from here on.";
- close;
-
-L_Reset:
- mes @npcname$;
- mes "Before skill reset in starting.";
- mes "You shall have to first tell me your Base Level.";
- next;
- mes "^D5A500[" + strcharinfo(0) + "]^000000";
- mes "My Base level is ^AA00AALevel " + BaseLevel + "BaseLv.^000000";
- next;
- set @zeny,BaseLevel*20000;
- mes @npcname$;
- mes "Total zeny to the reset of skill amount ^529DFF" + @zeny + "Zeny^000000 for the skill reset service.";
- next;
- if(Zeny < @zeny) {
+ switch (select("^009500Information about Reset skills.^000000","^00B6FFReset skills.^000000","^000088Nevermind^000000")) {
+ case 1: // Information
mes @npcname$;
- mes "It seems that you don't have enough money.";
- mes "In addition we wait for the opportunity.";
- emotion e_hmm;
+ mes "This skill reset is not FREE OF CHARGE!!";
+ mes "Expense for the reset of skill is ^D5A50020000 Zeny x BaseLv^000000.";
+ mes "Yeah ...each One BaseLv costs 20000 Zeny to reset skill.";
+ next;
+ mes @npcname$;
+ mes "Oh yeah, one more thing!";
+ mes "Any carts, falcons or pecos you have equiped";
+ mes "will be removed if you reset your skills.";
+ next;
+ mes @npcname$;
+ mes "Just one time does again to shake the skill point";
+ mes "Careful with your skills from here on.";
+ close;
+ case 2: // Reset
+ mes @npcname$;
+ mes "Before skill reset in starting.";
+ mes "You shall have to first tell me your Base Level.";
+ next;
+ mes "^D5A500[" + strcharinfo(0) + "]^000000";
+ mes "My Base level is ^AA00AALevel " + BaseLevel + "BaseLv.^000000";
+ next;
+ @zeny = BaseLevel*20000;
+ mes @npcname$;
+ mes "Total zeny to the reset of skill amount ^529DFF" + @zeny + "Zeny^000000 for the skill reset service.";
+ next;
+ if (Zeny < @zeny) {
+ mes @npcname$;
+ mes "It seems that you don't have enough money.";
+ mes "In addition we wait for the opportunity.";
+ emotion e_hmm;
+ close;
+ }
+ Zeny -= @zeny;
+ MISC_QUEST |= 1024;
+ resetskill;
+ mes @npcname$;
+ mes "Thank you.";
+ emotion e_thx;
+ logmes "SKILL RESET EVENT";
+ close;
+ case 3: // Nevermind
+ mes @npcname$;
+ mes "You know where to find me,";
+ mes "if you ever want a reset!!";
close;
}
- Zeny -= @zeny;
- set MISC_QUEST,MISC_QUEST | 1024;
- resetskill;
- mes @npcname$;
- mes "Thank you.";
- emotion e_thx;
- logmes "SKILL RESET EVENT";
- close;
}
diff --git a/npc/events/gdevent_aru.txt b/npc/events/gdevent_aru.txt
index 22d30e12c..7b68eb980 100644
--- a/npc/events/gdevent_aru.txt
+++ b/npc/events/gdevent_aru.txt
@@ -29,7 +29,7 @@ OnTimer3600000:
arug_dun01,1,2,1 script Monster Controler1#aru 4_DOG01,{
OnEnable:
- set .@callwhere,rand(1,4);
+ .@callwhere = rand(1,4);
if (.@callwhere == 1) {
monster "arug_dun01",150,340,"Kublin",1980,1,"Monster Controler1#aru::OnMyMobDead";
}
@@ -63,12 +63,12 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
mes "Hey did you see an ugly Goblin come by? He stole something from me!";
close;
}
- set .@chk_urquest,checkquest(2143,PLAYTIME);
- set .@chk_yourgdname$,getguildname(getcharid(2));
+ .@chk_urquest = questprogress(2143,PLAYTIME);
+ .@chk_yourgdname$ = getguildname(getcharid(2));
if ($@gdeventv_a1 == 0) {
if ($@gdevents_a$ == "") {
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -141,8 +141,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather your friends.";
close;
@@ -152,8 +152,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "arug_que01",103,133;
@@ -161,16 +161,16 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ahhh...";
@@ -178,8 +178,7 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else if ($@gdevents_a$ == .@chk_yourgdname$) {
- set .@chk_urquest1,checkquest(2144);
- if ((.@chk_urquest1 == 0) || (.@chk_urquest1 == 1)) {
+ if (questprogress(2144) == 1) {
mes "[Morestone]";
mes "I, Morestone, have made an alliance with the "+$@gdevents_a$+" guild.";
mes "Oh, you are a member.";
@@ -200,8 +199,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -274,8 +273,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather your friends.";
close;
@@ -285,8 +284,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "arug_que01",103,133;
@@ -294,16 +293,16 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ah....";
@@ -321,8 +320,7 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
else {
if ($@gdevents_a$ == .@chk_yourgdname$) {
- set .@chk_urquest1,checkquest(2144);
- if ((.@chk_urquest1 == 0) || (.@chk_urquest1 == 1)) {
+ if (questprogress(2144) == 1) {
mes "[Morestone]";
mes "[Morestone]";
mes "I, Morestone, have made an alliance with the "+$@gdevents_a$+" guild.";
@@ -344,8 +342,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -418,8 +416,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather you friends.";
close;
@@ -429,8 +427,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_a1,1;
- set $@gdevents_a$,.@chk_yourgdname$;
+ $@gdeventv_a1 = 1;
+ $@gdevents_a$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "arug_que01",103,133;
@@ -438,16 +436,16 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ah....";
@@ -467,8 +465,8 @@ arug_dun01,199,195,5 script Dwarf#aru_gd 4_M_DWARF,{
OnInit:
disablenpc "Dwarf#aru_gd";
- set $@gdeventv_a1,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdevents_a$ = "";
end;
OnEnable:
@@ -478,7 +476,7 @@ OnEnable:
arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
specialeffect EF_POISONHIT;
- set .@sprchg_gd,rand(1,5);
+ .@sprchg_gd = rand(1,5);
if (.@sprchg_gd == 1) {
setnpcdisplay "Pierrot Pier#aru_gd", 4_GHOSTRING;
}
@@ -504,8 +502,8 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
}
if (strcharinfo(0) == getguildmaster(getcharid(2))) {
if ($@gdeventv_a2 == 0) {
- set .@que_2143,checkquest(2143,PLAYTIME);
- if (.@que_2143 == -1) {
+ .@que_2143 = questprogress(2143,PLAYTIME);
+ if (!.@que_2143) {
setnpcdisplay "Pierrot Pier#aru_gd", 4_M_PIERROT;
mes "A lonely clown is juggling.";
next;
@@ -589,7 +587,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
donpcevent "Gergath#aru_gd::OnEnable";
close;
}
- else if ((.@que_2143 == 0) || (.@que_2143 == 1)) {
+ else if (.@que_2143 == 1) {
mes "[Pierrot Pier]";
mes "Let's talk after I finished reading my master's message. Beep beep.";
close;
@@ -659,7 +657,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
mes "[Pierrot Pier]";
mes "Let the game.. Begin!";
mapannounce "arug_que01", "Pierrot Pier: Let the game.. Begin!",bc_map,"0x99CC00";
- set $@gdeventv_a2,1;
+ $@gdeventv_a2 = 1;
donpcevent "Controller#gdevent_a::OnGame_start";
erasequest 2143;
close;
@@ -676,7 +674,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_a::OnStop";
- set $@gdeventv_a2,3;
+ $@gdeventv_a2 = 3;
donpcevent "eff_mvp#aru_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -761,14 +759,13 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
mes "[Pierrot Pier]";
mes "Let the game.. Begin!";
mapannounce "arug_que01", "Pierrot Pier: Let the game.. Begin!",bc_map,"0x99CC00";
- set $@gdeventv_a2,10;
+ $@gdeventv_a2 = 10;
donpcevent "Controller#gdevent_a::OnGame_start";
close;
}
}
else if ($@gdeventv_a2 == 3) {
- set .@que_2143,checkquest(2143);
- if (.@que_2143 == 3) {
+ if (questprogress(2143) == 2) {
erasequest 2143;
}
mes "[Pierrot Pier]";
@@ -785,7 +782,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
mapannounce "arug_que01", "Pierrot Pier: You've completeled an unbelievable task, I will give you the wonderful gift my master has prepared!! Ha!",bc_map,"0x99CC00";
mapannounce "arug_que01", "Pierrot Pier: Here, take Pierre's Treasure Boxes.",bc_map,"0x99CC00";
donpcevent "eff_mvp#aru_gd::OnMVP";
- set $@gdeventv_a2,5;
+ $@gdeventv_a2 = 5;
getitem 14596,10; //Pierre_Treasurebox
close;
}
@@ -818,7 +815,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_a::OnStop";
- set $@gdeventv_a2,3;
+ $@gdeventv_a2 = 3;
donpcevent "eff_mvp#aru_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -928,7 +925,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_a::OnStop";
- set $@gdeventv_a2,3;
+ $@gdeventv_a2 = 3;
donpcevent "eff_mvp#aru_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -992,7 +989,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_a::OnStop";
- set $@gdeventv_a2,3;
+ $@gdeventv_a2 = 3;
donpcevent "eff_mvp#aru_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -1021,7 +1018,7 @@ arug_que01,100,81,3 script Pierrot Pier#aru_gd 4_M_PIERROT,{
arug_que01,10,10,3 script Controller#gdevent_a 4_DOG01,{
OnInit:
- set $@gdeventv_a2,0;
+ $@gdeventv_a2 = 0;
end;
OnWin:
@@ -1039,7 +1036,7 @@ OnGame_start:
donpcevent "paper_sp_7_a::OnEnable";
donpcevent "paper_sp_8_a::OnEnable";
donpcevent "paper_sp_9_a::OnEnable";
- set .@roulette_where,rand(1,9);
+ .@roulette_where = rand(1,9);
if (.@roulette_where == 1) {
donpcevent "paper_sp_1_a::OnBingo";
}
@@ -1081,7 +1078,7 @@ OnTimer60000:
mapannounce "arug_que01", "Pierrot Pier: Time is up!",bc_map,"0x99CC00";
mapwarp "arug_que01","arug_que01",100,79;
enablenpc "removepp_aru_gd";
- set $@gdeventv_a2,2;
+ $@gdeventv_a2 = 2;
end;
OnTimer63000:
@@ -1093,23 +1090,22 @@ arug_que01,87,93,0 script paper_sp_1_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while1,0;
+ .@paper_while1 = 0;
while(1) {
if (.@paper_while1 == 100) {
break;
- }
- else {
- set .@paper_while1,.@paper_while1+1;
- set .@paper_x1,rand(81,95);
- set .@paper_y1,rand(87,100);
+ } else {
+ ++.@paper_while1;
+ .@paper_x1 = rand(81,95);
+ .@paper_y1 = rand(87,100);
makeitem 6030,1,"arug_que01",.@paper_x1,.@paper_y1; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x1,rand(81,95);
- set .@paper_y1,rand(87,100);
+ .@paper_x1 = rand(81,95);
+ .@paper_y1 = rand(87,100);
makeitem 6031,1,"arug_que01",.@paper_x1,.@paper_y1; //Glitering_PaperB
end;
}
@@ -1118,23 +1114,22 @@ arug_que01,102,93,0 script paper_sp_2_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while2,0;
+ .@paper_while2 = 0;
while(1) {
if (.@paper_while2 == 100) {
break;
- }
- else {
- set .@paper_while2,.@paper_while2+1;
- set .@paper_x2,rand(96,110);
- set .@paper_y2,rand(87,100);
+ } else {
+ ++.@paper_while2;
+ .@paper_x2 = rand(96,110);
+ .@paper_y2 = rand(87,100);
makeitem 6030,1,"arug_que01",.@paper_x2,.@paper_y2; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x2,rand(96,110);
- set .@paper_y2,rand(87,100);
+ .@paper_x2 = rand(96,110);
+ .@paper_y2 = rand(87,100);
makeitem 6031,1,"arug_que01",.@paper_x2,.@paper_y2; //Glitering_PaperB
end;
}
@@ -1143,23 +1138,22 @@ arug_que01,117,93,0 script paper_sp_3_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while3,0;
+ .@paper_while3 = 0;
while(1) {
if (.@paper_while3 == 100) {
break;
- }
- else {
- set .@paper_while3,.@paper_while3+1;
- set .@paper_x3,rand(111,124);
- set .@paper_y3,rand(87,100);
+ } else {
+ ++.@paper_while3;
+ .@paper_x3 = rand(111,124);
+ .@paper_y3 = rand(87,100);
makeitem 6030,1,"arug_que01",.@paper_x3,.@paper_y3; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x3,rand(111,124);
- set .@paper_y3,rand(87,100);
+ .@paper_x3 = rand(111,124);
+ .@paper_y3 = rand(87,100);
makeitem 6031,1,"arug_que01",.@paper_x3,.@paper_y3; //Glitering_PaperB
end;
}
@@ -1168,23 +1162,23 @@ arug_que01,87,80,0 script paper_sp_4_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while4,0;
+ .@paper_while4 = 0;
while(1) {
if (.@paper_while4 == 100) {
break;
}
else {
- set .@paper_while4,.@paper_while4+1;
- set .@paper_x4,rand(81,95);
- set .@paper_y4,rand(73,86);
+ ++.@paper_while4;
+ .@paper_x4 = rand(81,95);
+ .@paper_y4 = rand(73,86);
makeitem 6030,1,"arug_que01",.@paper_x4,.@paper_y4; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x4,rand(81,95);
- set .@paper_y4,rand(73,86);
+ .@paper_x4 = rand(81,95);
+ .@paper_y4 = rand(73,86);
makeitem 6031,1,"arug_que01",.@paper_x4,.@paper_y4; //Glitering_PaperB
end;
}
@@ -1193,23 +1187,22 @@ arug_que01,102,80,0 script paper_sp_5_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while5,0;
+ .@paper_while5 = 0;
while(1) {
if (.@paper_while5 == 100) {
break;
- }
- else {
- set .@paper_while5,.@paper_while5+1;
- set .@paper_x5,rand(96,110);
- set .@paper_y5,rand(73,86);
+ } else {
+ ++.@paper_while5;
+ .@paper_x5 = rand(96,110);
+ .@paper_y5 = rand(73,86);
makeitem 6030,1,"arug_que01",.@paper_x5,.@paper_y5; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x5,rand(96,110);
- set .@paper_y5,rand(73,86);
+ .@paper_x5 = rand(96,110);
+ .@paper_y5 = rand(73,86);
makeitem 6031,1,"arug_que01",.@paper_x5,.@paper_y5; //Glitering_PaperB
end;
}
@@ -1218,23 +1211,22 @@ arug_que01,117,80,0 script paper_sp_6_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while6,0;
+ .@paper_while6 = 0;
while(1) {
if (.@paper_while6 == 100) {
break;
- }
- else {
- set .@paper_while6,.@paper_while6+1;
- set .@paper_x6,rand(111,124);
- set .@paper_y6,rand(73,86);
+ } else {
+ ++.@paper_while6;
+ .@paper_x6 = rand(111,124);
+ .@paper_y6 = rand(73,86);
makeitem 6030,1,"arug_que01",.@paper_x6,.@paper_y6; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x6,rand(111,124);
- set .@paper_y6,rand(73,86);
+ .@paper_x6 = rand(111,124);
+ .@paper_y6 = rand(73,86);
makeitem 6031,1,"arug_que01",.@paper_x6,.@paper_y6; //Glitering_PaperB
end;
}
@@ -1243,23 +1235,22 @@ arug_que01,87,65,0 script paper_sp_7_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while7,0;
+ .@paper_while7 = 0;
while(1) {
if (.@paper_while7 == 100) {
break;
- }
- else {
- set .@paper_while7,.@paper_while7+1;
- set .@paper_x7,rand(81,95);
- set .@paper_y7,rand(59,72);
+ } else {
+ ++.@paper_while7;
+ .@paper_x7 = rand(81,95);
+ .@paper_y7 = rand(59,72);
makeitem 6030,1,"arug_que01",.@paper_x7,.@paper_y7; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x7,rand(81,95);
- set .@paper_y7,rand(59,72);
+ .@paper_x7 = rand(81,95);
+ .@paper_y7 = rand(59,72);
makeitem 6031,1,"arug_que01",.@paper_x7,.@paper_y7; //Glitering_PaperB
end;
}
@@ -1268,23 +1259,23 @@ arug_que01,102,65,0 script paper_sp_8_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while8,0;
+ .@paper_while8 = 0;
while(1) {
if (.@paper_while8 == 100) {
break;
}
else {
- set .@paper_while8,.@paper_while8+1;
- set .@paper_x8,rand(96,110);
- set .@paper_y8,rand(59,72);
+ ++.@paper_while8;
+ .@paper_x8 = rand(96,110);
+ .@paper_y8 = rand(59,72);
makeitem 6030,1,"arug_que01",.@paper_x8,.@paper_y8; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x8,rand(96,110);
- set .@paper_y8,rand(59,72);
+ .@paper_x8 = rand(96,110);
+ .@paper_y8 = rand(59,72);
makeitem 6031,1,"arug_que01",.@paper_x8,.@paper_y8; //Glitering_PaperB
end;
}
@@ -1293,23 +1284,23 @@ arug_que01,117,65,0 script paper_sp_9_a HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while9,0;
+ .@paper_while9 = 0;
while(1) {
if (.@paper_while9 == 100) {
break;
}
else {
- set .@paper_while9,.@paper_while9+1;
- set .@paper_x9,rand(111,124);
- set .@paper_y9,rand(59,72);
+ ++.@paper_while9;
+ .@paper_x9 = rand(111,124);
+ .@paper_y9 = rand(59,72);
makeitem 6030,1,"arug_que01",.@paper_x9,.@paper_y9; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x9,rand(111,124);
- set .@paper_y9,rand(59,72);
+ .@paper_x9 = rand(111,124);
+ .@paper_y9 = rand(59,72);
makeitem 6031,1,"arug_que01",.@paper_x9,.@paper_y9; //Glitering_PaperB
end;
}
@@ -1322,8 +1313,8 @@ OnInit:
end;
OnTouch2:
- set .@paper_aru_gd,countitem(6030);
- set .@spaper_aru_gd,countitem(6031);
+ .@paper_aru_gd = countitem(6030);
+ .@spaper_aru_gd = countitem(6031);
if ((.@paper_aru_gd > 0) || (.@spaper_aru_gd > 0)) {
delitem 6030,.@paper_aru_gd; //Glitering_PaperA
delitem 6031,.@spaper_aru_gd; //Glitering_PaperB
@@ -1447,7 +1438,7 @@ OnEnable:
OnMyMobDead:
if (mobcount("arug_que01","treg#aru_gd::OnMyMobDead") == 0) {
mapannounce "arug_que01", "Pierrot Pier: Beep! Oh, you already opened the gift? You sure are fast now, beep!",bc_map,"0x99CC00";
- set $@gdeventv_a2,5;
+ $@gdeventv_a2 = 5;
}
end;
}
@@ -1525,9 +1516,9 @@ arug_dun01,5,5,1 script Event controller#aru_gd 4_DOG01,{
donpcevent "Monster Controler1#aru::OnControler1#aru_gd";
donpcevent "Monster Controler1#aru::OnControler1#aru_gd";
disablenpc "Dwarf#aru_gd";
- set $@gdeventv_a1,0;
- set $@gdeventv_a2,0;
- set $@gdevents_a$,"";
+ $@gdeventv_a1 = 0;
+ $@gdeventv_a2 = 0;
+ $@gdevents_a$ = "";
close;
case 2:
mes "Good bye~";
diff --git a/npc/events/gdevent_sch.txt b/npc/events/gdevent_sch.txt
index 31537763e..22b70836e 100644
--- a/npc/events/gdevent_sch.txt
+++ b/npc/events/gdevent_sch.txt
@@ -29,7 +29,7 @@ OnTimer3600000:
schg_dun01,1,2,1 script Monster Controler1#sch 4_DOG01,{
OnEnable:
- set .@callwhere,rand(1,4);
+ .@callwhere = rand(1,4);
if (.@callwhere == 1) {
monster "schg_dun01",164,236,"Kublin",1980,1,"Monster Controler1#sch::OnMyMobDead";
}
@@ -63,12 +63,12 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
mes "Hey did you see an ugly Goblin come by? He stole something from me!";
close;
}
- set .@chk_urquest,checkquest(2143,PLAYTIME);
- set .@chk_yourgdname$,getguildname(getcharid(2));
+ .@chk_urquest = questprogress(2143,PLAYTIME);
+ .@chk_yourgdname$ = getguildname(getcharid(2));
if ($@gdeventv_s1 == 0) {
if ($@gdevents_s$ == "") {
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -141,8 +141,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather your friends.";
close;
@@ -152,8 +152,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "schg_que01",103,133;
@@ -161,16 +161,16 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ahhh...";
@@ -178,8 +178,7 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else if ($@gdevents_s$ == .@chk_yourgdname$) {
- set .@chk_urquest1,checkquest(2144);
- if ((.@chk_urquest1 == 0) || (.@chk_urquest1 == 1)) {
+ if (questprogress(2144) == 1) {
mes "[Morestone]";
mes "I, Morestone, have made an alliance with the "+$@gdevents_s$+" guild.";
mes "Oh, you are a member.";
@@ -200,8 +199,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -274,8 +273,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather your friends.";
close;
@@ -285,8 +284,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "schg_que01",103,133;
@@ -294,16 +293,16 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ah....";
@@ -321,8 +320,7 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
else {
if ($@gdevents_s$ == .@chk_yourgdname$) {
- set .@chk_urquest1,checkquest(2144);
- if ((.@chk_urquest1 == 0) || (.@chk_urquest1 == 1)) {
+ if (questprogress(2144) == 1) {
mes "[Morestone]";
mes "I, Morestone, have made an alliance with the "+$@gdevents_s$+" guild.";
mes "Oh, you are a member.";
@@ -343,8 +341,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
mes "[Dwarf]";
mes "Help me!";
mes "Please, help me!";
@@ -417,8 +415,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
next;
switch(select("Wait! I'm not ready yet.:Let's go!")) {
case 1:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "Take your time, and find a place to gather you friends.";
close;
@@ -428,8 +426,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
mes "If your friends visit me again later, I will guide them to that area again.";
mes "Don't forget, dwarves are grateful beings! Hahaha!";
delitem 6010,1; //Pickaxe
- set $@gdeventv_s1,1;
- set $@gdevents_s$,.@chk_yourgdname$;
+ $@gdeventv_s1 = 1;
+ $@gdevents_s$ = .@chk_yourgdname$;
close2;
setquest 2144;
warp "schg_que01",103,133;
@@ -437,16 +435,16 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
}
}
else {
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
mes "[Morestone]";
mes "I will tell you how to find him.";
mes "Kublin wears a ridiculous golden hat, It should be easy to recognise him by that.";
close;
}
case 2:
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
emotion e_sob;
mes "[Dwarf]";
mes "Ah....";
@@ -466,8 +464,8 @@ schg_dun01,194,148,5 script Dwarf#sch_gd 4_M_DWARF,{
OnInit:
disablenpc "Dwarf#sch_gd";
- set $@gdeventv_s1,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdevents_s$ = "";
end;
OnEnable:
@@ -477,7 +475,7 @@ OnEnable:
schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
specialeffect EF_POISONHIT;
- set .@sprchg_gd,rand(1,5);
+ .@sprchg_gd = rand(1,5);
if (.@sprchg_gd == 1) {
setnpcdisplay "Pierrot Pier#sch_gd", 4_GHOSTRING;
}
@@ -503,8 +501,8 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
}
if (strcharinfo(0) == getguildmaster(getcharid(2))) {
if ($@gdeventv_s2 == 0) {
- set .@que_2143,checkquest(2143,PLAYTIME);
- if (.@que_2143 == -1) {
+ .@que_2143 = questprogress(2143,PLAYTIME);
+ if (!.@que_2143) {
setnpcdisplay "Pierrot Pier#sch_gd", 4_M_PIERROT;
mes "A lonely clown is juggling.";
next;
@@ -588,7 +586,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
donpcevent "Gergath#sch_gd::OnEnable";
close;
}
- else if ((.@que_2143 == 0) || (.@que_2143 == 1)) {
+ else if (.@que_2143 == 1) {
mes "[Pierrot Pier]";
mes "Let's talk after I finished reading my master's message. Beep beep.";
close;
@@ -658,7 +656,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
mes "[Pierrot Pier]";
mes "Let the game.. Begin!";
mapannounce "schg_que01", "Pierrot Pier: Let the game.. Begin!",bc_map,"0x99CC00";
- set $@gdeventv_s2,1;
+ $@gdeventv_s2 = 1;
donpcevent "Controller#gdevent_s::OnGame_start";
erasequest 2143;
close;
@@ -675,7 +673,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_s::OnStop";
- set $@gdeventv_s2,3;
+ $@gdeventv_s2 = 3;
donpcevent "eff_mvp#sch_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -760,14 +758,13 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
mes "[Pierrot Pier]";
mes "Let the game.. Begin!";
mapannounce "schg_que01", "Pierrot Pier: Let the game.. Begin!",bc_map,"0x99CC00";
- set $@gdeventv_s2,10;
+ $@gdeventv_s2 = 10;
donpcevent "Controller#gdevent_s::OnGame_start";
close;
}
}
else if ($@gdeventv_s2 == 3) {
- set .@que_2143,checkquest(2143);
- if (.@que_2143 == 3) {
+ if (questprogress(2143) == 2) {
erasequest 2143;
}
mes "[Pierrot Pier]";
@@ -784,7 +781,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
mapannounce "schg_que01", "Pierrot Pier: You've completeled an unbelievable task, I will give you the wonderful gift my master has prepared!! Ha!",bc_map,"0x99CC00";
mapannounce "schg_que01", "Pierrot Pier: Here, take Pierre's Treasure Boxes.",bc_map,"0x99CC00";
donpcevent "eff_mvp#sch_gd::OnMVP";
- set $@gdeventv_s2,5;
+ $@gdeventv_s2 = 5;
getitem 14596,10; //Pierre_Treasurebox
close;
}
@@ -817,7 +814,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_s::OnStop";
- set $@gdeventv_s2,3;
+ $@gdeventv_s2 = 3;
donpcevent "eff_mvp#sch_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -927,7 +924,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_s::OnStop";
- set $@gdeventv_s2,3;
+ $@gdeventv_s2 = 3;
donpcevent "eff_mvp#sch_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -991,7 +988,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
next;
if (countitem(6031) > 0) {
donpcevent "Controller#gdevent_s::OnStop";
- set $@gdeventv_s2,3;
+ $@gdeventv_s2 = 3;
donpcevent "eff_mvp#sch_gd::OnMVP";
mes "[Pierrot Pier]";
mes "Wow~~!!";
@@ -1020,7 +1017,7 @@ schg_que01,100,81,3 script Pierrot Pier#sch_gd 4_M_PIERROT,{
schg_que01,10,10,3 script Controller#gdevent_s 4_DOG01,{
OnInit:
- set $@gdeventv_s2,0;
+ $@gdeventv_s2 = 0;
end;
OnWin:
@@ -1038,7 +1035,7 @@ OnGame_start:
donpcevent "paper_sp_7_s::OnEnable";
donpcevent "paper_sp_8_s::OnEnable";
donpcevent "paper_sp_9_s::OnEnable";
- set .@roulette_where,rand(1,9);
+ .@roulette_where = rand(1,9);
if (.@roulette_where == 1) {
donpcevent "paper_sp_1_s::OnBingo";
}
@@ -1080,7 +1077,7 @@ OnTimer60000:
mapannounce "schg_que01", "Pierrot Pier: Time is up!",bc_map,"0x99CC00";
mapwarp "schg_que01","schg_que01",100,79;
enablenpc "removepp_sch_gd";
- set $@gdeventv_s2,2;
+ $@gdeventv_s2 = 2;
end;
OnTimer63000:
@@ -1092,23 +1089,22 @@ schg_que01,87,93,0 script paper_sp_1_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while1,0;
+ .@paper_while1 = 0;
while(1) {
if (.@paper_while1 == 100) {
break;
- }
- else {
- set .@paper_while1,.@paper_while1+1;
- set .@paper_x1,rand(81,95);
- set .@paper_y1,rand(87,100);
+ } else {
+ ++.@paper_while1;
+ .@paper_x1 = rand(81,95);
+ .@paper_y1 = rand(87,100);
makeitem 6030,1,"schg_que01",.@paper_x1,.@paper_y1; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x1,rand(81,95);
- set .@paper_y1,rand(87,100);
+ .@paper_x1 = rand(81,95);
+ .@paper_y1 = rand(87,100);
makeitem 6031,1,"schg_que01",.@paper_x1,.@paper_y1; //Glitering_PaperB
end;
}
@@ -1117,23 +1113,22 @@ schg_que01,102,93,0 script paper_sp_2_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while2,0;
+ .@paper_while2 = 0;
while(1) {
if (.@paper_while2 == 100) {
break;
- }
- else {
- set .@paper_while2,.@paper_while2+1;
- set .@paper_x2,rand(96,110);
- set .@paper_y2,rand(87,100);
+ } else {
+ ++.@paper_while2;
+ .@paper_x2 = rand(96,110);
+ .@paper_y2 = rand(87,100);
makeitem 6030,1,"schg_que01",.@paper_x2,.@paper_y2; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x2,rand(96,110);
- set .@paper_y2,rand(87,100);
+ .@paper_x2 = rand(96,110);
+ .@paper_y2 = rand(87,100);
makeitem 6031,1,"schg_que01",.@paper_x2,.@paper_y2; //Glitering_PaperB
end;
}
@@ -1142,23 +1137,22 @@ schg_que01,117,93,0 script paper_sp_3_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while3,0;
+ .@paper_while3 = 0;
while(1) {
if (.@paper_while3 == 100) {
break;
- }
- else {
- set .@paper_while3,.@paper_while3+1;
- set .@paper_x3,rand(111,124);
- set .@paper_y3,rand(87,100);
+ } else {
+ ++.@paper_while3;
+ .@paper_x3 = rand(111,124);
+ .@paper_y3 = rand(87,100);
makeitem 6030,1,"schg_que01",.@paper_x3,.@paper_y3; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x3,rand(111,124);
- set .@paper_y3,rand(87,100);
+ .@paper_x3 = rand(111,124);
+ .@paper_y3 = rand(87,100);
makeitem 6031,1,"schg_que01",.@paper_x3,.@paper_y3; //Glitering_PaperB
end;
}
@@ -1167,23 +1161,22 @@ schg_que01,87,80,0 script paper_sp_4_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while4,0;
+ .@paper_while4 = 0;
while(1) {
if (.@paper_while4 == 100) {
break;
- }
- else {
- set .@paper_while4,.@paper_while4+1;
- set .@paper_x4,rand(81,95);
- set .@paper_y4,rand(73,86);
+ } else {
+ ++.@paper_while4;
+ .@paper_x4 = rand(81,95);
+ .@paper_y4 = rand(73,86);
makeitem 6030,1,"schg_que01",.@paper_x4,.@paper_y4; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x4,rand(81,95);
- set .@paper_y4,rand(73,86);
+ .@paper_x4 = rand(81,95);
+ .@paper_y4 = rand(73,86);
makeitem 6031,1,"schg_que01",.@paper_x4,.@paper_y4; //Glitering_PaperB
end;
}
@@ -1192,23 +1185,23 @@ schg_que01,102,80,0 script paper_sp_5_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while5,0;
+ .@paper_while5 = 0;
while(1) {
if (.@paper_while5 == 100) {
break;
}
else {
- set .@paper_while5,.@paper_while5+1;
- set .@paper_x5,rand(96,110);
- set .@paper_y5,rand(73,86);
+ ++.@paper_while5;
+ .@paper_x5 = rand(96,110);
+ .@paper_y5 = rand(73,86);
makeitem 6030,1,"schg_que01",.@paper_x5,.@paper_y5; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x5,rand(96,110);
- set .@paper_y5,rand(73,86);
+ .@paper_x5 = rand(96,110);
+ .@paper_y5 = rand(73,86);
makeitem 6031,1,"schg_que01",.@paper_x5,.@paper_y5; //Glitering_PaperB
end;
}
@@ -1217,23 +1210,22 @@ schg_que01,117,80,0 script paper_sp_6_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while6,0;
+ .@paper_while6 = 0;
while(1) {
if (.@paper_while6 == 100) {
break;
- }
- else {
- set .@paper_while6,.@paper_while6+1;
- set .@paper_x6,rand(111,124);
- set .@paper_y6,rand(73,86);
+ } else {
+ ++.@paper_while6;
+ .@paper_x6 = rand(111,124);
+ .@paper_y6 = rand(73,86);
makeitem 6030,1,"schg_que01",.@paper_x6,.@paper_y6; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x6,rand(111,124);
- set .@paper_y6,rand(73,86);
+ .@paper_x6 = rand(111,124);
+ .@paper_y6 = rand(73,86);
makeitem 6031,1,"schg_que01",.@paper_x6,.@paper_y6; //Glitering_PaperB
end;
}
@@ -1242,23 +1234,22 @@ schg_que01,87,65,0 script paper_sp_7_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while7,0;
+ .@paper_while7 = 0;
while(1) {
if (.@paper_while7 == 100) {
break;
- }
- else {
- set .@paper_while7,.@paper_while7+1;
- set .@paper_x7,rand(81,95);
- set .@paper_y7,rand(59,72);
+ } else {
+ ++.@paper_while7;
+ .@paper_x7 = rand(81,95);
+ .@paper_y7 = rand(59,72);
makeitem 6030,1,"schg_que01",.@paper_x7,.@paper_y7; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x7,rand(81,95);
- set .@paper_y7,rand(59,72);
+ .@paper_x7 = rand(81,95);
+ .@paper_y7 = rand(59,72);
makeitem 6031,1,"schg_que01",.@paper_x7,.@paper_y7; //Glitering_PaperB
end;
}
@@ -1267,23 +1258,22 @@ schg_que01,102,65,0 script paper_sp_8_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while8,0;
+ .@paper_while8 = 0;
while(1) {
if (.@paper_while8 == 100) {
break;
- }
- else {
- set .@paper_while8,.@paper_while8+1;
- set .@paper_x8,rand(96,110);
- set .@paper_y8,rand(59,72);
+ } else {
+ ++.@paper_while8;
+ .@paper_x8 = rand(96,110);
+ .@paper_y8 = rand(59,72);
makeitem 6030,1,"schg_que01",.@paper_x8,.@paper_y8; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x8,rand(96,110);
- set .@paper_y8,rand(59,72);
+ .@paper_x8 = rand(96,110);
+ .@paper_y8 = rand(59,72);
makeitem 6031,1,"schg_que01",.@paper_x8,.@paper_y8; //Glitering_PaperB
end;
}
@@ -1292,23 +1282,22 @@ schg_que01,117,65,0 script paper_sp_9_s HIDDEN_WARP_NPC,{
end;
OnEnable:
- set .@paper_while9,0;
+ .@paper_while9 = 0;
while(1) {
if (.@paper_while9 == 100) {
break;
- }
- else {
- set .@paper_while9,.@paper_while9+1;
- set .@paper_x9,rand(111,124);
- set .@paper_y9,rand(59,72);
+ } else {
+ ++.@paper_while9;
+ .@paper_x9 = rand(111,124);
+ .@paper_y9 = rand(59,72);
makeitem 6030,1,"schg_que01",.@paper_x9,.@paper_y9; //Glitering_PaperA
}
}
end;
OnBingo:
- set .@paper_x9,rand(111,124);
- set .@paper_y9,rand(59,72);
+ .@paper_x9 = rand(111,124);
+ .@paper_y9 = rand(59,72);
makeitem 6031,1,"schg_que01",.@paper_x9,.@paper_y9; //Glitering_PaperB
end;
}
@@ -1321,8 +1310,8 @@ OnInit:
end;
OnTouch2:
- set .@paper_sch_gd,countitem(6030);
- set .@spaper_sch_gd,countitem(6031);
+ .@paper_sch_gd = countitem(6030);
+ .@spaper_sch_gd = countitem(6031);
if ((.@paper_sch_gd > 0) || (.@spaper_sch_gd > 0)) {
delitem 6030,.@paper_sch_gd; //Glitering_PaperA
delitem 6031,.@spaper_sch_gd; //Glitering_PaperB
@@ -1446,7 +1435,7 @@ OnEnable:
OnMyMobDead:
if (mobcount("schg_que01","treg#sch_gd::OnMyMobDead") == 0) {
mapannounce "schg_que01", "Pierrot Pier: Beep! Oh, you already opened the gift? You sure are fast now, beep!",bc_map,"0x99CC00";
- set $@gdeventv_s2,5;
+ $@gdeventv_s2 = 5;
}
end;
}
@@ -1524,9 +1513,9 @@ schg_dun01,5,5,1 script Event controller#sch_gd 4_DOG01,{
donpcevent "Monster Controler1#sch::OnControler1#sch_gd";
donpcevent "Monster Controler1#sch::OnControler1#sch_gd";
disablenpc "Dwarf#sch_gd";
- set $@gdeventv_s1,0;
- set $@gdeventv_s2,0;
- set $@gdevents_s$,"";
+ $@gdeventv_s1 = 0;
+ $@gdeventv_s2 = 0;
+ $@gdevents_s$ = "";
close;
case 2:
mes "Good bye~";
diff --git a/npc/events/god_se_festival.txt b/npc/events/god_se_festival.txt
index 54bf2b6d3..3b7dd50e8 100644
--- a/npc/events/god_se_festival.txt
+++ b/npc/events/god_se_festival.txt
@@ -45,7 +45,7 @@ yuno,1,1,0 script Festival Manager#gq_fes0 4_F_HUGIRL,{
}
yuno,118,192,5 script Rmimi Ravies#gq_fes01 4_F_HUGIRL,{
- set .@GID, getcharid(2);
+ .@GID = getcharid(2);
if (countitem(7840) > 0) {
mes "[Rmimi Ravies]";
mes "This is the flower.";
@@ -166,7 +166,7 @@ OnDisable:
OnStart:
initnpctimer;
- set $@gqse_festival,1;
+ $@gqse_festival = 1;
end;
OnCall:
@@ -197,7 +197,7 @@ OnCall:
OnOver:
killmonster "yuno","Rmimi Ravies#gq_fes01::OnMyMobDead";
- set $@gqse_festival,0;
+ $@gqse_festival = 0;
stopnpctimer;
end;
@@ -423,7 +423,7 @@ rachel,1,1,0 script Festival Manager#gq_fes2 4_F_HUGIRL,{
}
rachel,132,117,3 script Rhehe Ravies#gq_fes03 4_F_HUGIRL,{
- set .@GID, getcharid(2);
+ .@GID = getcharid(2);
if (countitem(7840) > 0) {
mes "[Rhehe Ravies]";
mes "A flower!!";
@@ -548,7 +548,7 @@ OnDisable:
OnStart:
initnpctimer;
- set $@gqse_festival,1;
+ $@gqse_festival = 1;
end;
OnCall:
@@ -579,7 +579,7 @@ OnCall:
OnOver:
killmonster "rachel","Rhehe Ravies#gq_fes03::OnMyMobDead";
- set $@gqse_festival,0;
+ $@gqse_festival = 0;
stopnpctimer;
end;
diff --git a/npc/events/halloween_2006.txt b/npc/events/halloween_2006.txt
index 06c101529..426bff65b 100644
--- a/npc/events/halloween_2006.txt
+++ b/npc/events/halloween_2006.txt
@@ -296,7 +296,7 @@ geffen,145,132,3 script Hoirin#06_hw 4_F_NOVICE,{
mes "[Hoirin]";
mes "Just Bring Pumpkin Mojo, Pumpkin, and a Egg.";
mes "Leave the rest for me..You'll get to try the best pumkin pie!";
- set halloween, 100;
+ halloween = 100;
close;
}
mes "[Hoirin]";
@@ -355,7 +355,7 @@ geffen,145,132,3 script Hoirin#06_hw 4_F_NOVICE,{
if (select("Send me.:It's ok.") == 1) {
mes "[Hoirin]";
mes "Ok, go get the eggs.";
- set halloween, 101;
+ halloween = 101;
close2;
warp "nif_fild01", 162, 113;
end;
@@ -434,7 +434,7 @@ nif_in,19,32,3 script Deviruchi#06_hw 4_DEVIRUCHI,{
mes "Hmm...This would be good.";
mes "Here take this, and thanks again~";
delitem 12192, 1;//Pumpkin_Pie
- set @hw_temp,rand(1,3);
+ @hw_temp = rand(1,3);
if (@hw_temp == 2) getitem 12130,1; //Cookie_Bag
else getitem 7460,3; //Nifl_Express_Ticket
close;
@@ -518,7 +518,7 @@ nif_fild01,165,115,3 script Chicken Masta#06_hw 4_M_NFDEADMAN2,{
mes "Thanks.";
mes "Here are the eggs.";
Zeny -= 2000;
- set halloween, 102;
+ halloween = 102;
getitem 574,2; //Egg
close;
}
@@ -534,7 +534,7 @@ nif_fild01,165,115,3 script Chicken Masta#06_hw 4_M_NFDEADMAN2,{
mes "Thanks.";
mes "Here are the eggs.";
Zeny -= 1000;
- set halloween, 102;
+ halloween = 102;
getitem 574,1; //Egg
close;
}
@@ -614,7 +614,7 @@ nif_fild01,165,115,3 script Chicken Masta#06_hw 4_M_NFDEADMAN2,{
else
break;
}
- set .@hw_egg, .@input * 1000;
+ .@hw_egg = .@input * 1000;
if (Zeny < @hw_egg) {
mes "[Chicken Masta]";
mes "You don't seem to have enough zeny.";
@@ -626,7 +626,7 @@ nif_fild01,165,115,3 script Chicken Masta#06_hw 4_M_NFDEADMAN2,{
mes "If you want more eggs, find me more chickens.";
Zeny -= @hw_egg;
getitem 574, @input;//Egg
- set halloween, 102;
+ halloween = 102;
close;
}
else {
@@ -656,7 +656,7 @@ nif_fild01,167,113,3 script Masta's chicken#06_hw01 4_NFCOCK,{
emotion e_omg;
specialeffect EF_TELEPORTATION;
mes "The magic spell has been casted.";
- set halloween, 103;
+ halloween = 103;
disablenpc "Masta's chicken#"+strnpcinfo(1);
close2;
sleep 180000;
@@ -676,7 +676,7 @@ nif_fild01,167,113,3 script Masta's chicken#06_hw01 4_NFCOCK,{
}
- script HwChicken2::HwChicken2 -1,{
- set @egg_temp,rand(1,4);
+ @egg_temp = rand(1,4);
if( @egg_temp == 3) {
mes "As soon as you got close to the chicken and touched it, it disappeared completely.";
mes "You got an 'egg' in the place where the chicken disappeared.";
@@ -692,7 +692,7 @@ nif_fild01,167,113,3 script Masta's chicken#06_hw01 4_NFCOCK,{
}
- script HwChicken3::HwChicken3 -1,{
- set @egg_temp,rand(1,4);
+ @egg_temp = rand(1,4);
if( @egg_temp == 3) {
mes "As soon as you got close to the chicken and touched it, it disappeared completely.";
mes "You got an 'egg' in the place where the chicken disappeared.";
diff --git a/npc/events/halloween_2008.txt b/npc/events/halloween_2008.txt
index 6aad72358..9b80eb798 100644
--- a/npc/events/halloween_2008.txt
+++ b/npc/events/halloween_2008.txt
@@ -27,7 +27,8 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{
mes "If you collect enough tickets you can get good prizes!";
mes "So what do you say?";
next;
- goto MainMenu;
+ callsub(S_MainMenu);
+ end;
}
if (Hallow08Kill == 1) {
mes "[Halloween Magician]";
@@ -35,11 +36,13 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{
mes "You know you want to try again...";
mes "Do you know the rules?";
next;
- set Hallow08Kill,0;
+ Hallow08Kill = 0;
if(select("Yes, I know.:No, I don't know.") == 2) {
- goto Rules;
+ callsub(S_Rules);
+ callsub(S_MainMenu);
+ end;
}
- goto Participate;
+ callsub(S_Participate);
}
if (Hallow08Kill == 2) {
mes "[Halloween Magician]";
@@ -49,8 +52,8 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{
mes "Ha!";
mes "Kkkkkkk.";
next;
- getitem 7941,1;
- set Hallow08Kill,0;
+ getitem Halloween_Ticket, 1;
+ Hallow08Kill = 0;
mes "[Halloween Magician]";
mes "As I promised";
mes "You can get Halloween tickets for cool items.";
@@ -60,182 +63,183 @@ payon,162,176,4 script Halloween Magician#iRO08 4_M_BIBI,{
mes "[Halloween Magician]";
mes "Well, do you want to hear the rules again or, just get back to it...";
next;
- goto MainMenu2;
- }
-
- Rules:
- mes "[Halloween Magician]";
- mes "This village is like a virtual Payon.";
- mes "There are zombies and ghouls roaming around and three southern exits, but only one works.";
- mes "That's up to you to find out.";
- next;
- mes "[Halloween Magician]";
- mes "You can't use any skills to kill the ghouls or zombies.";
- mes "And one more thing...";
- mes "you shouldn't forget...";
- next;
- mes "[Halloween Magician]";
- mes "All participants should be wearing nothing.";
- mes "Put all belongings in your storage and come back here when your weight is '0'.";
- next;
- mes "[Halloween Magician]";
- mes "Oh and one more thing!";
- mes "You can't be riding a PecoPeco or have a Cart.";
- mes "If you are, then I will remove them before you enter.";
- mes "Got it?";
- next;
- mes "[Halloween Magician]";
- mes "Remember, there are three exits but only one works randomly, the zombies and ghouls roaming around there can't be killed and you can't be wearing anything.";
- next;
- if (Hallow08 > 0) {
- mes "[Halloween Magician]";
- mes "Hey...";
- mes "Come back once you're ready.";
- close;
- } else {
- goto MainMenu;
- }
-
- Participate:
- mes "[Halloween Magician]";
- mes "Ok, you are ready.";
- mes "Let me check your weight.";
- next;
- if (Weight > 0) {
- mes "[Halloween Magician]";
- mes "Gosh!";
- mes "There's always a black sheep anywhere.";
- next;
- mes "[Halloween Magician]";
- mes "You think I wouldn't notice that your weight is above '0'?";
- mes "You're overweight...";
- close;
- } else {
- mes "[Halloween Magician]";
- mes "You seem good to go, and your weight is just right.";
- next;
- mes "[Halloween Magician]";
- mes "I was quite swamped with my work, so I'm exhausted.";
- next;
- mes "[Halloween Magician]";
- mes "I sometimes forget to send you there...";
- next;
- mes "[Halloween Magician]";
- mes "I hope you come back well.";
- close2;
- if (Hallow08 < 1) {
- set Hallow08,1;
- }
- set Hallow08Kill,1;
- set @Hallow08Warp, rand(1,3);
- percentheal -98,0;
- setriding 0;
- setcart 0;
- warp "evt_zombie",155,246;
+ while (true) {
+ switch (select("Get me back there now!","Please, tell me the rules","I want to exchange tickets for prizes.","I'll come back next time.")) {
+ case 1: // Participate
+ callsub(S_Participate);
+ case 2: // Rules
+ callsub(S_Rules);
+ continue;
+ case 3: // TicketExchange
+ callsub(S_TicketExchange);
+ continue;
+ default: // NextTime
+ callsub(S_NextTime);
end;
}
+ }
+ }
- TicketExchange:
- mes "[Halloween Magician]";
- mes "You want to exchange tickets for prizes?";
- mes "Good job! Kkkkkk!";
- next;
- mes "[Halloween Magician]";
- mes "Lemme tell you what items you can exchange for.";
- next;
- mes "[Halloween Magician]";
- mes "5 tickets for Pumpkin Pie.";
- mes "20 tickets for Pumpkin-Head.";
- mes "50 tickets for Old Blue Box.";
- mes "70 tickets for Old Purple Box.";
- mes "200 tickets for Old Card Album.";
- next;
- mes "[Halloween Magician]";
- mes "What would you like to exchange for?";
- next;
- switch(select("Pumpkin Pie:Pumpkin-Head:Old Blue Box:Old Purple Box:Old Card Album")) {
- case 1:
- if (countitem(7941) < 5) {
- goto NotEnough;
- } else {
- delitem 7941,5;
- getitem 12192,1;
- goto Enough;
- }
- break;
- case 2:
- if (countitem(7941) < 20) {
- goto NotEnough;
- } else {
- delitem 7941,20;
- getitem 5134,1;
- goto Enough;
- }
- break;
- case 3:
- if (countitem(7941) < 50) {
- goto NotEnough;
- } else {
- delitem 7941,50;
- getitem 603,1;
- goto Enough;
- }
- break;
- case 4:
- if (countitem(7941) < 70) {
- goto NotEnough;
- } else {
- delitem 7941,70;
- getitem 617,1;
- goto Enough;
- }
- break;
- case 5:
- if (countitem(7941) < 200) {
- goto NotEnough;
- } else {
- delitem 7941,200;
- getitem 616,1;
- goto Enough;
- }
- }
+ callsub(S_Rules);
+ callsub(S_MainMenu);
+ end;
- NextTime:
- mes "[Halloween Magician]";
- mes "Ok, see you then.";
- mes "Kkkkkkkk.";
- close;
+S_MainMenu:
+ while (true) {
+ switch (select("Explain it to me.","I want to participate.","I want to exchange tickets for prizes.","I'll come back next time.")) {
+ case 1: // Rules
+ callsub(S_Rules);
+ continue;
+ case 2: // Participate
+ callsub(S_Participate);
+ case 3: // TicketExchange
+ callsub(S_TicketExchange);
+ continue;
+ default: // NextTime
+ callsub(S_NextTime);
+ end;
+ }
+ }
- MainMenu:
- menu "Explain it to me.",Rules,"I want to participate.",Participate,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime;
+S_Participate:
+ mes "[Halloween Magician]";
+ mes "Ok, you are ready.";
+ mes "Let me check your weight.";
+ next;
+ if (Weight > 0) {
+ mes "[Halloween Magician]";
+ mes "Gosh!";
+ mes "There's always a black sheep anywhere.";
+ next;
+ mes "[Halloween Magician]";
+ mes "You think I wouldn't notice that your weight is above '0'?";
+ mes "You're overweight...";
+ close;
+ }
+ mes "[Halloween Magician]";
+ mes "You seem good to go, and your weight is just right.";
+ next;
+ mes "[Halloween Magician]";
+ mes "I was quite swamped with my work, so I'm exhausted.";
+ next;
+ mes "[Halloween Magician]";
+ mes "I sometimes forget to send you there...";
+ next;
+ mes "[Halloween Magician]";
+ mes "I hope you come back well.";
+ close2;
+ if (Hallow08 < 1) {
+ Hallow08 = 1;
+ }
+ Hallow08Kill = 1;
+ @Hallow08Warp = rand(1,3);
+ percentheal -98,0;
+ setmount(MOUNT_NONE);
+ setcart 0;
+ warp "evt_zombie",155,246;
+ end;
+
+S_Rules:
+ mes "[Halloween Magician]";
+ mes "This village is like a virtual Payon.";
+ mes "There are zombies and ghouls roaming around and three southern exits, but only one works.";
+ mes "That's up to you to find out.";
+ next;
+ mes "[Halloween Magician]";
+ mes "You can't use any skills to kill the ghouls or zombies.";
+ mes "And one more thing...";
+ mes "you shouldn't forget...";
+ next;
+ mes "[Halloween Magician]";
+ mes "All participants should be wearing nothing.";
+ mes "Put all belongings in your storage and come back here when your weight is '0'.";
+ next;
+ mes "[Halloween Magician]";
+ mes "Oh and one more thing!";
+ mes "You can't be riding a PecoPeco or have a Cart.";
+ mes "If you are, then I will remove them before you enter.";
+ mes "Got it?";
+ next;
+ mes "[Halloween Magician]";
+ mes "Remember, there are three exits but only one works randomly, the zombies and ghouls roaming around there can't be killed and you can't be wearing anything.";
+ next;
+ if (Hallow08 > 0) {
+ mes "[Halloween Magician]";
+ mes "Hey...";
+ mes "Come back once you're ready.";
+ close;
+ }
+ return;
- MainMenu2:
- menu "Get me back there now!",Participate,"Please, tell me the rules",Rules,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime;
+S_NextTime:
+ mes "[Halloween Magician]";
+ mes "Ok, see you then.";
+ mes "Kkkkkkkk.";
+ close;
- NotEnough:
+S_TicketExchange:
+ mes "[Halloween Magician]";
+ mes "You want to exchange tickets for prizes?";
+ mes "Good job! Kkkkkk!";
+ next;
+ mes "[Halloween Magician]";
+ mes "Lemme tell you what items you can exchange for.";
+ next;
+ mes "[Halloween Magician]";
+ mes "5 tickets for Pumpkin Pie.";
+ mes "20 tickets for Pumpkin-Head.";
+ mes "50 tickets for Old Blue Box.";
+ mes "70 tickets for Old Purple Box.";
+ mes "200 tickets for Old Card Album.";
+ next;
+ mes "[Halloween Magician]";
+ mes "What would you like to exchange for?";
+ next;
+ .@item_id = null;
+ .@amount = 0;
+ switch(select("Pumpkin Pie:Pumpkin-Head:Old Blue Box:Old Purple Box:Old Card Album")) {
+ case 1:
+ .@amount = 5;
+ .@item_id = Pumpkin_Pie;
+ break;
+ case 2:
+ .@amount = 20;
+ .@item_id = Pumpkin_Hat;
+ break;
+ case 3:
+ .@amount = 50;
+ .@item_id = Old_Blue_Box;
+ break;
+ case 4:
+ .@amount = 70;
+ .@item_id = Old_Violet_Box;
+ break;
+ case 5:
+ .@amount = 200;
+ .@amount = Old_Card_Album;
+ break;
+ }
+ if (countitem(Halloween_Ticket) < .@amount) {
mes "[Halloween Magician]";
mes "You don't have enough tickets!";
mes "Can't you even count?";
mes "Please come here with the right number of tickets.";
close;
-
- Enough:
- mes "[Halloween Magician]";
- mes "Here it is.";
- mes "Do you need...";
- mes "anything else?";
- next;
- if (Hallow08 == 1) {
- goto MainMenu2;
- } else {
- goto MainMenu;
- }
+ }
+ delitem Halloween_Ticket, .@amount;
+ getitem .@item_id, 1;
+ mes "[Halloween Magician]";
+ mes "Here it is.";
+ mes "Do you need...";
+ mes "anything else?";
+ next;
+ return;
}
evt_zombie,16,142,1 script zombiewarp001 WARPNPC,2,2,{
OnTouch:
if (@Hallow08Warp == 1) {
- set Hallow08Kill,2;
+ Hallow08Kill = 2;
specialeffect EF_BASH;
warp "payon",28,142;
}
@@ -245,7 +249,7 @@ OnTouch:
evt_zombie,122,27,1 script zombiewarp002 WARPNPC,2,2,{
OnTouch:
if (@Hallow08Warp == 2) {
- set Hallow08Kill,2;
+ Hallow08Kill = 2;
specialeffect EF_BASH;
warp "payon",121,40;
}
@@ -255,7 +259,7 @@ OnTouch:
evt_zombie,267,89,1 script zombiewarp003 WARPNPC,2,2,{
OnTouch:
if (@Hallow08Warp == 3) {
- set Hallow08Kill,2;
+ Hallow08Kill = 2;
specialeffect EF_BASH;
warp "payon",253,95;
}
diff --git a/npc/events/halloween_2009.txt b/npc/events/halloween_2009.txt
index 95b3e2a11..f67841c15 100644
--- a/npc/events/halloween_2009.txt
+++ b/npc/events/halloween_2009.txt
@@ -246,80 +246,80 @@ prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 4_M_KID1,2,2
if (.@mapname$ == "prontera") {
switch(select("Geffen:Payon:Alberta:Aldebaran")) {
case 1:
- set .@HallowTown,3;
+ .@HallowTown = 3;
break;
case 2:
- set .@HallowTown,2;
+ .@HallowTown = 2;
break;
case 3:
- set .@HallowTown,4;
+ .@HallowTown = 4;
break;
case 4:
- set .@HallowTown,5;
+ .@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "payon") {
switch(select("Prontera:Geffen:Alberta:Aldebaran")) {
case 1:
- set .@HallowTown,1;
+ .@HallowTown = 1;
break;
case 2:
- set .@HallowTown,3;
+ .@HallowTown = 3;
break;
case 3:
- set .@HallowTown,4;
+ .@HallowTown = 4;
break;
case 4:
- set .@HallowTown,5;
+ .@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "geffen") {
switch(select("Prontera:Payon:Alberta:Aldebaran")) {
case 1:
- set .@HallowTown,1;
+ .@HallowTown = 1;
break;
case 2:
- set .@HallowTown,2;
+ .@HallowTown = 2;
break;
case 3:
- set .@HallowTown,4;
+ .@HallowTown = 4;
break;
case 4:
- set .@HallowTown,5;
+ .@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "alberta") {
switch(select("Prontera:Geffen:Payon:Aldebaran")) {
case 1:
- set .@HallowTown,1;
+ .@HallowTown = 1;
break;
case 2:
- set .@HallowTown,3;
+ .@HallowTown = 3;
break;
case 3:
- set .@HallowTown,2;
+ .@HallowTown = 2;
break;
case 4:
- set .@HallowTown,5;
+ .@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "aldebaran") {
switch(select("Prontera:Geffen:Payon:Alberta")) {
case 1:
- set .@HallowTown,1;
+ .@HallowTown = 1;
break;
case 2:
- set .@HallowTown,3;
+ .@HallowTown = 3;
break;
case 3:
- set .@HallowTown,2;
+ .@HallowTown = 2;
break;
case 4:
- set .@HallowTown,4;
+ .@HallowTown = 4;
break;
}
}
@@ -347,14 +347,14 @@ prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 4_M_KID1,2,2
break;
}
else {
- set .@fabric,countitem(1059);
- set .@jack,countitem(1062);
- set .@worn,countitem(6299);
- set .@crushed,countitem(6298);
- set .@whispers,0;
- set .@darklords,0;
+ .@fabric = countitem(1059);
+ .@jack = countitem(1062);
+ .@worn = countitem(6299);
+ .@crushed = countitem(6298);
+ .@whispers = 0;
+ .@darklords = 0;
- set .@total,.@fabric + .@jack + .@worn + .@crushed;
+ .@total = .@fabric + .@jack + .@worn + .@crushed;
if(.@total < .@input) {
mes "[Halloween Wizard]";
@@ -367,49 +367,49 @@ prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 4_M_KID1,2,2
if(.@fabric > 0) {
if(.@fabric >= .@input) {
delitem 1059,.@input;
- set .@whispers,.@whispers+.@input;
- set .@input,0;
+ .@whispers += .@input;
+ .@input = 0;
}
else{
delitem 1059,.@fabric;
- set .@input,.@input - .@fabric;
- set .@whispers,.@whispers+.@fabric;
+ .@input -= .@fabric;
+ .@whispers += .@fabric;
}
}
if(.@worn > 0 && .@input != 0) {
if(.@worn >= .@input) {
delitem 6299,.@input;
- set .@whispers,.@whispers+.@input;
- set .@input,0;
+ .@whispers += .@input;
+ .@input = 0;
}
else{
delitem 6299,.@worn;
- set .@input,.@input - .@worn;
- set .@whispers,.@whispers+.@worn;
+ .@input -= .@worn;
+ .@whispers += .@worn;
}
}
if(.@jack > 0 && .@input != 0) {
if(.@jack >= .@input) {
delitem 1062,.@input;
- set .@darklords,.@darklords+.@input;
- set .@input,0;
+ .@darklords += .@input;
+ .@input = 0;
}
else{
delitem 1062,.@jack;
- set .@input,.@input - .@jack;
- set .@darklords,.@darklords+.@jack;
+ .@input -= .@jack;
+ .@darklords += .@jack;
}
}
if(.@crushed > 0 && .@input != 0) {
if(.@crushed >= .@input) {
delitem 6298,.@input;
- set .@darklords,.@darklords+.@input;
- set .@input,0;
+ .@darklords += .@input;
+ .@input = 0;
}
else{
delitem 6298,.@crushed;
- set .@input,.@input - .@crushed;
- set .@darklords,.@darklords+.@crushed;
+ .@input -= .@crushed;
+ .@darklords += .@crushed;
}
}
if (.@input > 0) {
diff --git a/npc/events/lunar_2008.txt b/npc/events/lunar_2008.txt
index 6c81d0d38..0b51f468b 100644
--- a/npc/events/lunar_2008.txt
+++ b/npc/events/lunar_2008.txt
@@ -50,7 +50,7 @@ payon_in01,193,30,4 script Rice Mill Grandma#rat 1_F_ORIENT_04,{
mes "think you can help me?";
next;
if (select("Of course.:I don't even know you.") == 1) {
- set lunar_rat,1;
+ lunar_rat = 1;
mes "[" + strcharinfo(0)+"]";
mes "Of course.";
mes "What can I do?";
@@ -93,7 +93,7 @@ payon_in01,193,30,4 script Rice Mill Grandma#rat 1_F_ORIENT_04,{
mes "Please wait here a moment,";
mes "and I'll make you some pastry~";
delitem 7770,1; //Sweet_rice
- set lunar_rat,3;
+ lunar_rat = 3;
close;
}
else if (lunar_rat == 4) {
@@ -104,7 +104,7 @@ payon_in01,193,30,4 script Rice Mill Grandma#rat 1_F_ORIENT_04,{
mes "Please wait here a moment,";
mes "and I'll make you some pastry~";
delitem 7770,1; //Sweet_rice
- set lunar_rat,5;
+ lunar_rat = 5;
close;
}
mes "Oh, where are all the";
@@ -127,15 +127,15 @@ payon_in01,193,30,4 script Rice Mill Grandma#rat 1_F_ORIENT_04,{
mes "Would you mind being";
mes "a dear, and delivering";
mes "that to my son for me?";
- set lunar_rat,2;
+ lunar_rat = 2;
close;
}
else if (lunar_rat == 3 || lunar_rat == 5) {
- set .@reward,rand(1,100);
+ .@reward = rand(1,100);
if (.@reward <= 5) {
if (lunar_rat == 3) {
getitem 9038,1; // New_Year_Doll_Egg
- set lunar_rat,4;
+ lunar_rat = 4;
}
else if (lunar_rat == 5) {
getitem 668,1; // Red_Envelope
@@ -152,8 +152,8 @@ payon_in01,193,30,4 script Rice Mill Grandma#rat 1_F_ORIENT_04,{
// After getting the egg there is a chance to get an envelope with each turn in
if (rand(1,20) <= 5 && lunar_rat == 4) getitem 668,1; // Red_Envelope
// Set the quest accordingly for repeat turn-ins.
- if (lunar_rat == 3) set lunar_rat,2;
- else if (lunar_rat == 5) set lunar_rat,4;
+ if (lunar_rat == 3) lunar_rat = 2;
+ else if (lunar_rat == 5) lunar_rat = 4;
mes "It's not nearly enough";
mes "to repay you for what you've";
mes "done for me, but I'd like";
diff --git a/npc/events/nguild/nguild_dunsw.txt b/npc/events/nguild/nguild_dunsw.txt
index 9b24c50b6..f768405d7 100644
--- a/npc/events/nguild/nguild_dunsw.txt
+++ b/npc/events/nguild/nguild_dunsw.txt
@@ -14,7 +14,7 @@
//==================================================
function script F_GldDunSw {
- set .@GID, getcastledata(getarg(0),1);
+ .@GID = getcastledata(getarg(0),1);
if (.@GID == 0) {
mes "[ Echoing Voice ]";
mes " ' The one who can overcome an ordeal and show true bravery... will find the way... ' ";
diff --git a/npc/events/nguild/nguild_ev_agit.txt b/npc/events/nguild/nguild_ev_agit.txt
index 097abb53c..5461bb975 100644
--- a/npc/events/nguild/nguild_ev_agit.txt
+++ b/npc/events/nguild/nguild_ev_agit.txt
@@ -16,10 +16,10 @@
// Function for OnAgitStart =========================================
function script F_AgitStart {
- set .@map$, getarg(0);
- set .@castle$, getarg(1);
- set .@empx, getarg(2);
- set .@empy, getarg(3);
+ .@map$ = getarg(0);
+ .@castle$ = getarg(1);
+ .@empx = getarg(2);
+ .@empy = getarg(3);
maprespawnguildid .@map$,getcastledata(.@map$,1),2;
monster .@map$,.@empx,.@empy,"Emperium",1288,1,"Agit_"+.@castle$+"::OnAgitBreak";
@@ -30,8 +30,8 @@ function script F_AgitStart {
// Function for OnGuildBreak ======================================
function script F_GuildBreak {
- set .@map$, getarg(0);
- set .@castle$, getarg(1);
+ .@map$ = getarg(0);
+ .@castle$ = getarg(1);
killmonsterall .@map$;
@@ -44,18 +44,18 @@ function script F_GuildBreak {
// Function for OnAgitBreak ======================================
function script F_AgitBreak {
- set .@map$, getarg(0);
- set .@castle$, getarg(1);
+ .@map$ = getarg(0);
+ .@castle$ = getarg(1);
- set .@GID,getcharid(2);
+ .@GID = getcharid(2);
if (.@GID <= 0) return;
- set .@Economy,getcastledata(.@map$,2) - 5;
- if (.@Economy < 0) set .@Economy, 0;
+ .@Economy = getcastledata(.@map$,2) - 5;
+ if (.@Economy < 0) .@Economy = 0;
setcastledata .@map$, 2, .@Economy;
- set .@defence,getcastledata(.@map$,3) - 5;
- if (.@defence < 0) set .@defence, 0;
+ .@defence = getcastledata(.@map$,3) - 5;
+ if (.@defence < 0) .@defence = 0;
setcastledata .@map$, 3, .@defence;
setcastledata .@map$,1, .@GID;
@@ -66,12 +66,12 @@ function script F_AgitBreak {
disablenpc "Kafra Staff#"+.@castle$;
// remove investment data and kafra
- for( set .@i, 4; .@i <= 9; set .@i, .@i+1 )
+ for (.@i = 4; .@i <= 9; ++.@i)
setcastledata .@map$, .@i, 0;
// if the new guild doesn't have Guardian Research, erase guardians
if( getgdskilllv(.@GID,10002) == 0 )
- for( set .@i, 10; .@i <= 17; set .@i, .@i+1 )
+ for (.@i = 10; .@i <= 17; ++.@i)
setcastledata .@map$, .@i, 0;
return;
@@ -80,8 +80,8 @@ function script F_AgitBreak {
// Function for OnAgitEnd ======================================
function script F_AgitEnd {
- set .@map$, getarg(0);
- set .@castle$, getarg(1);
+ .@map$ = getarg(0);
+ .@castle$ = getarg(1);
gvgoff .@map$;
// Disable the following if statment to keep empty
diff --git a/npc/events/nguild/nguild_flags.txt b/npc/events/nguild/nguild_flags.txt
index 8c629adf9..dcd3dbc14 100644
--- a/npc/events/nguild/nguild_flags.txt
+++ b/npc/events/nguild/nguild_flags.txt
@@ -16,7 +16,7 @@
/// Flag Function
//============================================================
function script F_Flags {
- set .@GID, getcastledata(getarg(1),1);
+ .@GID = getcastledata(getarg(1),1);
if (getarg(5) == 0) return;
if (.@GID == 0) {
mes " [ Edict of the Divine Rune Midgard Kingdom ]";
diff --git a/npc/events/nguild/nguild_kafras.txt b/npc/events/nguild/nguild_kafras.txt
index 100751f7a..89570fe6d 100644
--- a/npc/events/nguild/nguild_kafras.txt
+++ b/npc/events/nguild/nguild_kafras.txt
@@ -16,7 +16,7 @@
function script F_GKafra {
cutin "kafra_01",2;
- set @GID, getcastledata(getarg(0),1);
+ @GID = getcastledata(getarg(0),1);
if (getcharid(2) == @GID && getgdskilllv(@GID,10001)) goto L_StartG;
mes "[Kafra Service]";
@@ -24,8 +24,8 @@ function script F_GKafra {
cutin "",255;
close;
L_StartG:
- set @wrpP[0], 200;
- set @wrpD$[0], getarg(1);
+ @wrpP[0] = 200;
+ @wrpD$[0] = getarg(1);
setarray @wrpC$[0], @wrpD$[0]+" ^880000"+@wrpP[0]+"^000000 z", "Cancel", "", "", "","";
callfunc "F_Kafra",2,0,0,0,800;
end;
diff --git a/npc/events/nguild/nguild_managers.txt b/npc/events/nguild/nguild_managers.txt
index d6ecfbf2f..015ef20fd 100644
--- a/npc/events/nguild/nguild_managers.txt
+++ b/npc/events/nguild/nguild_managers.txt
@@ -23,7 +23,7 @@
//==============================================
function script F_GldManager {
- set @GID, getcastledata(getarg(1),1);
+ @GID = getcastledata(getarg(1),1);
mes "[ "+getarg(0)+" ]";
if (@GID == 0){
mes "I am waiting for my master. Brave adventurer, follow your destiny!";
@@ -42,11 +42,8 @@ function script F_GldManager {
mes "Welcome Master ^5533FF" + getguildmaster(@GID) + "^000000 ! I will assist you in any way I can!";
next;
- menu "Kafra Staff Employment / Dismissal",M_Kaf, "Enter Treasure Room",M_Treas, "Cancel",M_End;
-
- //===========================
- M_Kaf:
- //======
+ switch (select("Kafra Staff Employment / Dismissal","Enter Treasure Room","Cancel")) {
+ case 1: // Employment / Dismissal
mes "[ "+getarg(0)+" ]";
if (getcastledata(getarg(1),9) == 1) goto L_Dismiss;
if (getgdskilllv(@GID,10001) == 0){
@@ -58,90 +55,78 @@ function script F_GldManager {
L_Hire:
mes "Would you like to employ the services of a Kafra? You will need ^5533FF10,000 Zeny^000000 to do so... ";
next;
- menu "Employ Kafra.",-,"Cancel",sM_KafEnd;
-
- mes "[ "+getarg(0)+" ]";
- if (Zeny < 10000){
- mes "Master, you do not have enough money to employ a Kafra. Employment has been cancelled.";
- return;
- }
- Zeny -= 10000;
- enablenpc "Kafra Staff#"+getarg(4);
- setcastledata getarg(1),9,1;
- mes "You have created a contract with the Kafra Staff Company.";
- next;
- cutin "kafra_01",2;
- mes "[ Kafra Staff ]";
- mes "How do you do? I'm here to provide you with helpful service! I'll do the best I can to serve you.";
- next;
- cutin "kafra_01",255;
- mes "[ "+getarg(0)+" ]";
- //mes "Your employment contract lasts ^5533FF1 month^000000. After this term is over you will have to create a new contract.";
- mes "I think the Kafra Staff will benefit our guild members.";
- return;
-
- sM_KafEnd:
+ if (select("Employ Kafra.","Cancel") != 1) {
mes "[ "+getarg(0)+" ]";
mes "As you wish Master. But I suggest we get a Kafra as soon as possible!";
return;
-
+ }
+ mes "[ "+getarg(0)+" ]";
+ if (Zeny < 10000) {
+ mes "Master, you do not have enough money to employ a Kafra. Employment has been cancelled.";
+ return;
+ }
+ Zeny -= 10000;
+ enablenpc "Kafra Staff#"+getarg(4);
+ setcastledata getarg(1),9,1;
+ mes "You have created a contract with the Kafra Staff Company.";
+ next;
+ cutin "kafra_01",2;
+ mes "[ Kafra Staff ]";
+ mes "How do you do? I'm here to provide you with helpful service! I'll do the best I can to serve you.";
+ next;
+ cutin "kafra_01",255;
+ mes "[ "+getarg(0)+" ]";
+ //mes "Your employment contract lasts ^5533FF1 month^000000. After this term is over you will have to create a new contract.";
+ mes "I think the Kafra Staff will benefit our guild members.";
+ return;
L_Dismiss:
mes "Would you like to dismiss the current Kafra?";
next;
- menu "Dismissal",-,"Cancel",sM_KafEnd2;
-
- cutin "kafra_01",2;
- mes "[ Kafra Staff ]";
- mes "Have I done anything wrong? If I did, will you please forgive me?";
- next;
- menu "Dismiss",-,"Cancel",ssM_KafEnd2;
-
- mes "[ Kafra Staff ]";
- mes "It's unfortunate that I won't be able to serve your guild anymore....";
- next;
- disablenpc "Kafra Staff#"+getarg(4);
- setcastledata getarg(1),9,0;
- cutin "kafra_01",255;
- mes "[ "+getarg(0)+" ]";
- mes "The Kafra has been dismissed. But... we should really get a Kafra as soon as possible!";
- return;
- ssM_KafEnd2:
- mes "[ Kafra Staff ]";
- mes "Thank you master, I'll do my best! ^^.";
- cutin "kafra_01",255;
- return;
- sM_KafEnd2:
+ if (select("Dismissal","Cancel") != 1) {
mes "[ "+getarg(0)+" ]";
mes "Master, I think you should keep the current Kafra Staff because she is already trying her best to serve us";
return;
-
- //=========================
- M_Treas:
- //========
+ }
+ cutin "kafra_01",2;
+ mes "[ Kafra Staff ]";
+ mes "Have I done anything wrong? If I did, will you please forgive me?";
+ next;
+ if (select("Dismiss","Cancel") != 1) {
+ mes "[ Kafra Staff ]";
+ mes "Thank you master, I'll do my best! ^^.";
+ cutin "kafra_01",255;
+ return;
+ }
+ mes "[ Kafra Staff ]";
+ mes "It's unfortunate that I won't be able to serve your guild anymore....";
+ next;
+ disablenpc "Kafra Staff#"+getarg(4);
+ setcastledata getarg(1),9,0;
+ cutin "kafra_01",255;
+ mes "[ "+getarg(0)+" ]";
+ mes "The Kafra has been dismissed. But... we should really get a Kafra as soon as possible!";
+ return;
+ case 2: // Enter Treasure Room
mes "[ "+getarg(0)+" ]";
mes "Would you to go to our Treasure Room? Only you, the Guild Master, are allowed to enter this room.";
next;
- menu "Enter Treasure room.",-,"Cancel",sM_TresEnd;
-
+ if (select("Enter Treasure room.","Cancel") == 1) {
mes "[ "+getarg(0)+" ]";
mes "Please follow me through the secret passage way.";
mes "You must pull down on the secret switch in order to get out.";
next;
warp getarg(1),getarg(2),getarg(3);
return;
- sM_TresEnd:
- mes "[ "+getarg(0)+" ]";
- mes "The goods are produced everyday.";
- mes "You should get them whenever you can because they might dissapear if you take them at the wrong time.";
- return;
-
-
- //==========================
- M_End:
- //=======
+ }
+ mes "[ "+getarg(0)+" ]";
+ mes "The goods are produced everyday.";
+ mes "You should get them whenever you can because they might dissapear if you take them at the wrong time.";
+ return;
+ default: // Cancel
mes "[ "+getarg(0)+" ]";
mes "As you wish, master.";
return;
+ }
}
// Castle 1 ==================================================================================
diff --git a/npc/events/nguild/nguild_treas.txt b/npc/events/nguild/nguild_treas.txt
index 750eab88a..7a7cd64c8 100644
--- a/npc/events/nguild/nguild_treas.txt
+++ b/npc/events/nguild/nguild_treas.txt
@@ -39,7 +39,7 @@ function script F_GldTreas {
//sets the counter variable = to the box number amount
set getarg(3), getarg(2);
}
- for (set .@i,1; .@i <= getarg(3) ; set .@i,.@i+1) {
+ for (.@i = 1; .@i <= getarg(3); ++.@i) {
// set treasure box ID
set getarg(4), getarg(5) + (.@i+1) % 2;
areamonster getarg(0),getarg(6),getarg(7),getarg(8),getarg(9),"Treasure Chest",getarg(4),1,"Treasure_"+getarg(1)+"::OnDied";
@@ -71,13 +71,13 @@ OnRecvCastleN01:
end;
OnInit:
if($boxNumN01 == 0) end;
- set $@bxN01, $boxNumN01;
+ $@bxN01 = $boxNumN01;
callfunc "F_GldTreas","nguild_alde","N01",$boxNumN01,$@bxN01,$@boxIdN01,1324+rand(10),114,218,123,227,1;
end;
OnDied:
mapannounce "nguild_alde","Treasure Chest Broken Open",17;
- set $boxNumN01, $boxNumN01 -1;
+ --$boxNumN01;
if($boxNumN01 == 0) mapannounce "nguild_alde", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
end;
}
@@ -97,13 +97,13 @@ OnRecvCastleN02:
end;
OnInit:
if($boxNumN02 == 0) end;
- set $@bxN02, $boxNumN02;
+ $@bxN02 = $boxNumN02;
callfunc "F_GldTreas","nguild_gef","N02",$boxNumN02,$@bxN02,$@boxIdN02,1334+rand(10),150,108,158,114,1;
end;
OnDied:
mapannounce "nguild_gef","Treasure Chest Broken Open",17;
- set $boxNumN02, $boxNumN02 -1;
+ --$boxNumN02;
if($boxNumN02 == 0) mapannounce "nguild_gef", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
end;
}
@@ -122,13 +122,13 @@ OnRecvCastleN03:
end;
OnInit:
if($boxNumN03 == 0) end;
- set $@bxN03, $boxNumN03;
+ $@bxN03 = $boxNumN03;
callfunc "F_GldTreas","nguild_pay","N03",$boxNumN03,$@bxN03,$@boxIdN03,1344+rand(10),286,4,295,13,1;
end;
OnDied:
mapannounce "nguild_pay","Treasure Chest Broken Open",17;
- set $boxNumN03, $boxNumN03 -1;
+ --$boxNumN03;
if($boxNumN03 == 0) mapannounce "nguild_pay", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
end;
}
@@ -147,13 +147,13 @@ OnRecvCastleN04:
end;
OnInit:
if($boxNumN04 == 0) end;
- set $@bxN04, $boxNumN04;
+ $@bxN04 = $boxNumN04;
callfunc "F_GldTreas","nguild_prt","N04",$boxNumN04,$@bxN04,$@boxIdN04,1354+rand(10),6,204,15,213,1;
end;
OnDied:
mapannounce "nguild_prt","Treasure Chest Broken Open",17;
- set $boxNumN04, $boxNumN04 -1;
+ --$boxNumN04;
if($boxNumN04 == 0) mapannounce "nguild_prt", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
end;
}
diff --git a/npc/events/twintowers.txt b/npc/events/twintowers.txt
index 524351661..8013b85b7 100644
--- a/npc/events/twintowers.txt
+++ b/npc/events/twintowers.txt
@@ -29,24 +29,22 @@ prontera,146,92,4 script Twin Towers#tt1::Twin-Towers TW_TOWER,{
mes "For this reason, we are here at your service with our special magic.";
mes "Kindly let us know.";
next;
- menu "I shall accept your offer.",YES,"I'll ask for your service next time.",NO;
-
- NO:
- mes "[Twin Towers]";
- mes "Er, what a pity. Traveling by yourself is still the best evidence of adventure.";
- mes "Isn't this proving that you are still young?";
- mes "We respect brave hearts like this";
- next;
- mes "[Twin Towers]";
- mes "There are good and bad times in life, moreover, adventure isn't an easy task in the first place.";
- mes "Isn't this true?";
- mes "Feel free to come to us when you have time, we will always be there to serve you.";
- next;
- mes "[Twin Towers]";
- mes "Forget all your troubles, and create a splendid legend in this wonderful world.";
- mes "This is such a wonderful world, and you'll always be a great adventurer!";
- close;
- YES:
+ if (select("I shall accept your offer.","I'll ask for your service next time.") != 1) {
+ mes "[Twin Towers]";
+ mes "Er, what a pity. Traveling by yourself is still the best evidence of adventure.";
+ mes "Isn't this proving that you are still young?";
+ mes "We respect brave hearts like this";
+ next;
+ mes "[Twin Towers]";
+ mes "There are good and bad times in life, moreover, adventure isn't an easy task in the first place.";
+ mes "Isn't this true?";
+ mes "Feel free to come to us when you have time, we will always be there to serve you.";
+ next;
+ mes "[Twin Towers]";
+ mes "Forget all your troubles, and create a splendid legend in this wonderful world.";
+ mes "This is such a wonderful world, and you'll always be a great adventurer!";
+ close;
+ }
mes "[Twin Towers]";
mes "The flaming passion of an adventurer,";
mes "The desire to explore the unknown realms,";
@@ -60,28 +58,29 @@ prontera,146,92,4 script Twin Towers#tt1::Twin-Towers TW_TOWER,{
mes "[Twin Towers]";
mes "Come on! Where do you wish to go?";
mes "Just let us know you desired destination and we will send your there!";
- menu "Hidden Temple", HiddenTemple,"Orc Dungeon",OrcDungeon,"Ant Hell",AntHell,"Mjolnir Waste Pit",MjolnirWastePit,"Sphinx",Sphinx,"Glast Heim",GlastHeim,"Comodo",Comodo;
- HiddenTemple:
- warp "prt_fild01",136,368;
- close;
- OrcDungeon:
- warp "gef_fild10",67,334;
- close;
- AntHell:
- warp "moc_fild04",210,329;
- close;
- MjolnirWastePit:
- warp "mjolnir_02",79,361;
- close;
- Sphinx:
- warp "moc_fild19",105,99;
- close;
- GlastHeim:
- warp "gef_fild06",45,304;
- close;
- Comodo:
- warp "cmd_fild01",30,317;
- close;
+ switch (select("Hidden Temple","Orc Dungeon","Ant Hell","Mjolnir Waste Pit","Sphinx","Glast Heim","Comodo")) {
+ case 1: // HiddenTemple
+ warp "prt_fild01",136,368;
+ close;
+ case 2: // OrcDungeon
+ warp "gef_fild10",67,334;
+ close;
+ case 3: // AntHell
+ warp "moc_fild04",210,329;
+ close;
+ case 4: // MjolnirWastePit
+ warp "mjolnir_02",79,361;
+ close;
+ case 5: // Sphinx
+ warp "moc_fild19",105,99;
+ close;
+ case 6: // GlastHeim
+ warp "gef_fild06",45,304;
+ close;
+ case 7: // Comodo
+ warp "cmd_fild01",30,317;
+ close;
+ }
}
morocc,160,97,4 duplicate(Twin-Towers) Twin Towers#tt2 TW_TOWER
diff --git a/npc/events/valentinesday_2009.txt b/npc/events/valentinesday_2009.txt
index edb151c6e..56195d06a 100644
--- a/npc/events/valentinesday_2009.txt
+++ b/npc/events/valentinesday_2009.txt
@@ -75,7 +75,7 @@ prontera,164,174,4 script Trader#Val09 1_M_MERCHANT,{
mes "Please use the Kafra Services.";
close;
}
- set .@price, .@input * 5000;
+ .@price = .@input * 5000;
if (Zeny < .@price) {
mes "[Marco Bassinio]";
mes "Looks like you don't have enough zeny with ya.";
@@ -195,7 +195,7 @@ prontera,147,171,5 script Packs Trader#Val09 1_M_MERCHANT,{
mes "Please use the Kafra Services.";
close;
}
- set .@price, .@input * 200;
+ .@price = .@input * 200;
if (Zeny < .@price) {
mes "[Packs Trader]";
mes "You don't have enough money.";
@@ -236,7 +236,7 @@ prontera,147,171,5 script Packs Trader#Val09 1_M_MERCHANT,{
mes "Please use the Kafra Services.";
close;
}
- set .@price, .@input * 200;
+ .@price = .@input * 200;
if (Zeny < .@price) {
mes "[Packs Trader]";
mes "You don't have enough money.";
@@ -277,7 +277,7 @@ prontera,147,171,5 script Packs Trader#Val09 1_M_MERCHANT,{
mes "Please use the Kafra Services.";
close;
}
- set .@price, .@input * 600;
+ .@price = .@input * 600;
if (Zeny < .@price) {
mes "[Packs Trader]";
mes "You don't have enough money.";
@@ -377,7 +377,7 @@ prontera,154,185,5 script Event Ring Maker#Val09 4_F_KAFRA7,{
delitem 7174,1;
delitem 7948,1;
Zeny -= 1000;
- set iROval09ring,1;
+ iROval09ring = 1;
if (Sex) {
getnameditem 12742,strcharinfo(0);
} else {
@@ -457,10 +457,10 @@ prontera,157,185,4 script Valentine Vote Manager#v 4_F_KAFRA5,{
mes "I'll take those silver rings, and count the votes for you.";
mes "Thank you for participating.";
delitem 7947,.@input;
- set Val09Rings,Val09Rings+.@input;
+ Val09Rings += .@input;
if (Val09Rings > $Val09votes_M) {
- set $Val09votes_M,Val09Rings;
- set $Val09name_M$,strcharinfo(0);
+ $Val09votes_M = Val09Rings;
+ $Val09name_M$ = strcharinfo(0);
}
next;
break;
@@ -485,10 +485,10 @@ prontera,157,185,4 script Valentine Vote Manager#v 4_F_KAFRA5,{
mes "I'll take those gold rings, and count the votes for you.";
mes "Thank you for participating.";
delitem 7946,.@input;
- set Val09Rings,Val09Rings+.@input;
+ Val09Rings += .@input;
if (Val09Rings > $Val09votes_F) {
- set $Val09votes_F,Val09Rings;
- set $Val09name_F$,strcharinfo(0);
+ $Val09votes_F = Val09Rings;
+ $Val09name_F$ = strcharinfo(0);
}
next;
break;
diff --git a/npc/events/valentinesday_2012.txt b/npc/events/valentinesday_2012.txt
index 2d74cb1a5..d113bd480 100644
--- a/npc/events/valentinesday_2012.txt
+++ b/npc/events/valentinesday_2012.txt
@@ -13,9 +13,9 @@
//============================================================
mosk_in,21,246,5 script Pinkamenia 1_F_LIBRARYGIRL,{
- set .@n$,"^0000FF[Pinkamenia]^000000";
+ .@n$ = "^0000FF[Pinkamenia]^000000";
if (#V_QUE12==3) {
- set .@LFlowerID,7864;
+ .@LFlowerID = 7864;
setarray .@SweetsID[0],538,558,539,573,559,560,12062,596,597,12414,12319;
setarray .@SweetsCost[0],1,2,5,10,10,10,15,15,15,20,20;
mes .@n$;
@@ -29,10 +29,10 @@ mosk_in,21,246,5 script Pinkamenia 1_F_LIBRARYGIRL,{
mes .@n$;
mes "Select an item.";
mes "The amount of Love Flowers you'll need is in brackets.";
- for(set .@i,0; .@i < getarraysize(.@SweetsID); set .@i,.@i+1)
- set .@menu$, .@menu$+"^00AA00["+.@SweetsCost[.@i]+"]^000000 "+getitemname(.@SweetsID[.@i])+":";
+ for(.@i = 0; .@i < getarraysize(.@SweetsID); ++.@i)
+ .@menu$ += "^00AA00["+.@SweetsCost[.@i]+"]^000000 "+getitemname(.@SweetsID[.@i])+":";
next;
- set .@choice, select(.@menu$)-1;
+ .@choice = select(.@menu$)-1;
mes .@n$;
if (countitem(.@LFlowerID) < .@SweetsCost[.@choice]) {
mes "You'll need more Love Flowers if you want that!";
@@ -40,8 +40,8 @@ mosk_in,21,246,5 script Pinkamenia 1_F_LIBRARYGIRL,{
}
mes "Are you sure you want to trade ^00aa00"+.@SweetsCost[.@choice]+"x Love Flower ^000000 for ^0055FF"+getitemname(.@SweetsID[.@choice])+"^000000?";
if(select("No, I've changed my mind.:Yes, trade!") == 1) close;
- set .@new, .@LFlowerID - .@SweetsCost[.@choice];
- if (.@new < 0) set .@new, 0;
+ .@new = .@LFlowerID - .@SweetsCost[.@choice];
+ if (.@new < 0) .@new = 0;
delitem .@LFlowerID, .@SweetsCost[.@choice];
getitem .@SweetsID[.@choice],1;
mes "Have fun with your item!";
@@ -68,7 +68,7 @@ mosk_in,21,246,5 script Pinkamenia 1_F_LIBRARYGIRL,{
mes "Flowers, you can exchange";
mes "them for some sweets here.";
mes "See you soon!";
- set #V_QUE12,3;
+ #V_QUE12 = 3;
close;
} else if (#V_QUE12==1) {
mes .@n$;
@@ -91,7 +91,7 @@ mosk_in,21,246,5 script Pinkamenia 1_F_LIBRARYGIRL,{
mes "to bring a +8 Cake Hat";
mes "to the Baker Extraordinaire, who";
mes "is standing right next to me!";
- set #V_QUE12,1;
+ #V_QUE12 = 1;
close;
}
mes .@n$;
@@ -105,7 +105,7 @@ OnInit:
}
mosk_in,21,244,3 script Baker Extraordinaire 4_M_NOVELIST,{
- set .@n$,"^0000FF[Baker Extraordinaire]^000000";
+ .@n$ = "^0000FF[Baker Extraordinaire]^000000";
if(#V_QUE12==3) {
mes .@n$;
mes "Exchange your Love Flowers with Pinkamenia!";
@@ -139,7 +139,7 @@ mosk_in,21,244,3 script Baker Extraordinaire 4_M_NOVELIST,{
mes "our chocolates. Now get";
mes "15 Love Flowers and bring";
mes "them to Pinkamenia!";
- set #V_QUE12,2;
+ #V_QUE12 = 2;
close;
} else {
mes "Sorry, but where is your";
diff --git a/npc/events/whiteday.txt b/npc/events/whiteday.txt
index ac76c52a5..d90f7c491 100644
--- a/npc/events/whiteday.txt
+++ b/npc/events/whiteday.txt
@@ -12,10 +12,6 @@
//============================================================
alberta,188,64,4 script Sugar 4_F_02,{
- set @maplenum,0;
- set @mapleItemID,0;
- set @maplePrice,0;
- set @maplePriceT,0;
mes "[Sugar]";
mes "Welcome!";
mes "How delicious are sweets?";
@@ -29,51 +25,102 @@ alberta,188,64,4 script Sugar 4_F_02,{
mes "heartfelt like";
mes "the sweetness of the present some how.";
next;
- menu "Please give me!",-,"I don't need it.",M_End,"The teacher.",M_L1;
-
- mes "[Sugar]";
- mes "Yes!";
- mes "Select from menu here.";
- mes "Since there is a limitation in numbers";
- mes "Not more than ^ff0000 5 pieces^000000.";
- mes "are allowed to carry out?";
- next;
- menu "Candy",-,"Candy Cane",L0_2,"Well baked cookie",L0_3;
-
- set @maplePrice,3000;
- set @mapleItemID,529;
- mes "[Sugar]";
- mes "It is a candy, and the price is";
- mes "3000 Zeny each.";
- mes "How many do you like to purchase?";
- next;
- goto L_INPUT;
-L0_2:
- set @maplePrice,4000;
- set @mapleItemID,530;
- mes "[Sugar]";
- mes "It is a candy cane, and the price is";
- mes "4000 Zeny each.";
- mes "How many do you like to purchase?";
- next;
- goto L_INPUT;
-L0_3:
- set @maplePrice,2000;
- set @mapleItemID,538;
+ switch (select("Please give me!","I don't need it.","The teacher.")) {
+ case 1: // Please give me
+ mes "[Sugar]";
+ mes "Yes!";
+ mes "Select from menu here.";
+ mes "Since there is a limitation in numbers";
+ mes "Not more than ^ff0000 5 pieces^000000.";
+ mes "are allowed to carry out?";
+ next;
+ switch (select("Candy","Candy Cane","Well baked cookie")) {
+ case 1: // Candy
+ mes "[Sugar]";
+ mes "It is a candy, and the price is";
+ mes "3000 Zeny each.";
+ mes "How many do you like to purchase?";
+ next;
+ callsub(S_Purchase, 3000, Candy);
+ break;
+ case 2: // Candy Cane
+ mes "[Sugar]";
+ mes "It is a candy cane, and the price is";
+ mes "4000 Zeny each.";
+ mes "How many do you like to purchase?";
+ next;
+ callsub(S_Purchase, 4000, Candy_Striper);
+ break;
+ case 3: // Well baked cookie
+ mes "[Sugar]";
+ mes "It is a well baked cookie, and the price is";
+ mes "2000 Zeny each.";
+ mes "How many do you like to purchase?";
+ next;
+ callsub(S_Purchase, 2000, Well_Baked_Cookie);
+ break;
+ }
+ break;
+ case 3: // The teacher
+ mes "[Sugar]";
+ mes "Yes";
+ mes "The teacher of mine";
+ mes "is Mr. Kuberu, a sweets craftsman.";
+ mes "Making sweets under two persons.";
+ mes "which is allowed to self-train.";
+ next;
+ mes "[Sugar]";
+ mes "Although selling is seemingly to carried out ....";
+ mes "Where he is now?";
+ mes "Which I don't know.";
+ close;
+ case 2: // I don't need it
+ break;
+ }
mes "[Sugar]";
- mes "It is a well baked cookie, and the price is";
- mes "2000 Zeny each.";
- mes "How many do you like to purchase?";
- next;
+ mes "Really .... You might regret it..";
+ mes "If you change your mind.";
+ mes "I am just here ok.";
+ mes "Have a nice day!";
+ close;
-L_INPUT:
- input @maplenum;
- if (@maplenum > 5) goto L_ERROR;
- if (@maplenum == 0) goto M_End;
- set @maplePriceT,@maplePrice*@maplenum;
- if (Zeny < @maplePriceT) goto L_ERROR2;
- Zeny -= @maplePriceT;
- getitem @mapleItemID,@maplenum;
+/**
+ * Attempts to purchase an item, after asking the desired quantity.
+ *
+ * Arguments:
+ * 0 : price
+ * 1 : item ID
+ *
+ * Returns on user cancel. Closes on successful purchase or error.
+ */
+S_Purchase:
+ .@price = getarg(0);
+ .@item_id = getarg(1);
+ while (true) {
+ input .@amount;
+ if (.@amount <= 5)
+ break;
+ mes "[Sugar]";
+ mes "???";
+ mes "You seem to have a failure on hearing.";
+ mes "I will tell you once again?";
+ mes "You can only purchase";
+ mes "^ff0000 5 pieces^000000 at once.";
+ next;
+ }
+ if (.@amount == 0) // Cancel
+ return;
+ .@totalPrice = .@price * .@amount;
+ if (Zeny < .@totalPrice) {
+ mes "[Sugar]";
+ mes "???";
+ mes "Hmmm it seems you don't have enough money";
+ mes "to make that purchase.";
+ mes "I will ask you to check your money first.";
+ close;
+ }
+ Zeny -= .@totalPrice;
+ getitem .@item_id, .@amount;
mes "[Sugar]";
mes "Thank you!!!";
mes "These sweets are really delicious.";
@@ -82,44 +129,4 @@ L_INPUT:
mes "don't eat so much or you'll grow fat.";
mes "Please take care!!!";
close;
-
-M_L1:
- mes "[Sugar]";
- mes "Yes";
- mes "The teacher of mine";
- mes "is Mr. Kuberu, a sweets craftsman.";
- mes "Making sweets under two persons.";
- mes "which is allowed to self-train.";
- next;
- mes "[Sugar]";
- mes "Although selling is seemingly to carried out ....";
- mes "Where he is now?";
- mes "Which I don't know.";
- close;
-
-L_ERROR:
- mes "[Sugar]";
- mes "???";
- mes "You seem to have a failure on hearing.";
- mes "I will tell you once again?";
- mes "You can only purchase";
- mes "^ff0000 5 pieces^000000 at once.";
- next;
- goto L_INPUT;
-
-L_ERROR2:
- mes "[Sugar]";
- mes "???";
- mes "Hmmm it seems you don't have enough money";
- mes "to make that purchase.";
- mes "I will ask you to check your money first.";
- close;
-
-M_End:
- mes "[Sugar]";
- mes "Really .... You might regret it..";
- mes "If you change your mind.";
- mes "I am just here ok.";
- mes "Have a nice day!";
- close;
}
diff --git a/npc/events/xmas.txt b/npc/events/xmas.txt
index d8423dda7..e420f9e6d 100644
--- a/npc/events/xmas.txt
+++ b/npc/events/xmas.txt
@@ -22,22 +22,21 @@
xmas_in,100,96,4 script Santa Claus::Santa2 4_M_SANTA,{
mes "[Santa Claus]";
- if(xmas_npc==0) set xmas_npc, 1; // For Lutie & Bard quest
+ if(xmas_npc==0) xmas_npc = 1; // For Lutie & Bard quest
if(#event_xmas > 0 && #event_xmas < 30 ) goto L_Start;
mes "Merry Christmas!";
if(Class==0 || #event_xmas>=30 ) close; //anti exploit protection
mes "I have a gift for you! Ho Ho Ho!";
getitem rand(664,667),1; //gives one of 4 gift boxes
- set #event_xmas,#event_xmas+1;
+ ++#event_xmas;
close;
L_Start:
mes "I'm having a bit of a problem...";
mes "Do you care to listen?";
next;
- menu "Listen to Santa Claus.",M_0, "Give Santa Claus proof.",M_1, "Cancel.",M_End;
-
- M_0:
+ switch (select("Listen to Santa Claus.","Give Santa Claus proof.","Cancel.")) {
+ case 1: // Listen
mes "[Santa Claus]";
mes "My problem is this.";
mes "There seems to be a man out there";
@@ -76,7 +75,7 @@ L_Start:
mes "lab. It spits out random presents";
mes "and saves me a ton of work.";
close;
- M_1:
+ case 2: // Give proof
mes "[Santa Claus]";
if(countitem(7034) < 3) goto L_NotEnuf;
delitem 7034,3;
@@ -85,7 +84,7 @@ L_Start:
mes "fake Santas. Keep it up!";
next;
getitem 644,1; //Gift Box Prototype
- set #event_xmas,#event_xmas+1;
+ ++#event_xmas;
mes "[Santa Claus]";
mes "There's your reward.";
mes "If you get 3 more, I'll give you another.";
@@ -97,11 +96,12 @@ L_Start:
mes "Go take down those evil Santas";
mes "and get more for me and I'll reward you.";
close;
- M_End:
+ default: // Cancel
mes "[Santa Claus]";
mes "I see. Well, at the very least";
mes "we shall meet again on Christmas morning.";
close;
+ }
OnInit:
disablenpc "Santa Claus";
diff --git a/npc/guild/agit_controller.txt b/npc/guild/agit_controller.txt
index de55029fc..8d038c322 100644
--- a/npc/guild/agit_controller.txt
+++ b/npc/guild/agit_controller.txt
@@ -71,7 +71,7 @@ S_DisplayOwners:
setarray .@maps$[5],"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05";
setarray .@maps$[10],"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05";
setarray .@maps$[15],"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05";
- for( set .@i, 0; .@i <= 19; set .@i, .@i+1 ) {
+ for (.@i = 0; .@i <= 19; ++.@i) {
if (getcastledata(.@maps$[.@i],1))
announce "The [" + getcastlename(.@maps$[.@i]) + "] castle has been conquered by the [" + getguildname(getcastledata(.@maps$[.@i],1)) + "] guild.",bc_all|bc_woe;
else
diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt
index dc799a21f..527bebce4 100644
--- a/npc/guild/agit_main.txt
+++ b/npc/guild/agit_main.txt
@@ -98,21 +98,21 @@ OnStartArena:
// The Emperium has been broken.
OnAgitBreak:
- set .@GID,getcharid(2);
+ .@GID = getcharid(2);
// Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen)
if (.@GID <= 0) {
- set .@notice$,"Character "+strcharinfo(0)+" ("+getcharid(0)+") broke the Emperium in Castle: "+strnpcinfo(2)+" while guildless. No data will be saved and Emperium respawned.";
+ .@notice$ = "Character "+strcharinfo(0)+" ("+getcharid(0)+") broke the Emperium in Castle: "+strnpcinfo(2)+" while guildless. No data will be saved and Emperium respawned.";
logmes .@notice$; debugmes .@notice$;
donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
end;
}
// Adjust Economy Invest Level for Castle
- set .@Economy,getcastledata(strnpcinfo(2),2) - 5;
- if (.@Economy < 0) set .@Economy, 0;
+ .@Economy = getcastledata(strnpcinfo(2),2) - 5;
+ if (.@Economy < 0) .@Economy = 0;
setcastledata strnpcinfo(2), 2, .@Economy;
// Adjust Defense Invest Level for Castle
- set .@defence,getcastledata(strnpcinfo(2),3) - 5;
- if (.@defence < 0) set .@defence, 0;
+ .@defence = getcastledata(strnpcinfo(2),3) - 5;
+ if (.@defence < 0) .@defence = 0;
setcastledata strnpcinfo(2), 3, .@defence;
// Set new Castle Occupant
@@ -125,12 +125,12 @@ OnAgitBreak:
// Refresh castle data, disable Kafra and reset Invest information.
donpcevent strnpcinfo(0)+"::OnRecvCastle";
disablenpc "Kafra Staff#"+strnpcinfo(2);
- for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) {
+ for (.@i = 4; .@i <= 9; ++.@i) {
setcastledata strnpcinfo(2), .@i, 0;
}
// Erase Guardian Database information if the new owners do not have Guardian Research.
if( getgdskilllv(.@GID,10002) == 0 ) {
- for( set .@i, 10; .@i <= 17; set .@i, .@i+1 ) {
+ for (.@i = 10; .@i <= 17; ++.@i) {
setcastledata strnpcinfo(2), .@i, 0;
}
}
@@ -169,7 +169,7 @@ OnAgitInit:
OnRecvCastle:
if (strnpcinfo(0) == "Gld_Agit_Manager") end;
// Spawn Monsters if the castle is empty.
- set .@GID, getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
if (.@GID == 0) {
killmonsterall strnpcinfo(2);
if (compare(strnpcinfo(2),"aldeg")) {
@@ -316,7 +316,7 @@ OnRecvCastle:
//============================================================
- script Kafra Staff#woe::guildkafra -1,{
- set .@GID,getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
if (compare(strnpcinfo(2),"aldeg")) {
setarray .@destination$[0],"Al De Baran","aldebaran";
@@ -384,7 +384,7 @@ OnRecvCastle:
end;
}
Zeny -= 200;
- set RESRVPTS,RESRVPTS+2;
+ RESRVPTS += 2;
close2;
warp .@destination$[1],.@coordinates[0],.@coordinates[1];
end;
@@ -434,7 +434,7 @@ OnRecvCastle:
cutin "",255;
end;
}
- set RESRVPTS,RESRVPTS+8;
+ RESRVPTS += 8;
Zeny -= 800;
setcart;
close2;
@@ -465,7 +465,7 @@ OnRecvCastle:
//============================================================
- script Castle Manager#cm::cm -1,{
- set .@GID,getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
// .@guardiantype = Defines the types of guardians per castle basis.
// 1 - Soldier Guardian, 2 - Archer Guardian, 3 - Knight Guardian
@@ -634,30 +634,30 @@ OnRecvCastle:
mes "That's all I have to report, Master.";
close;
case 2:
- set .@Economy,getcastledata(strnpcinfo(2),2);
- if (.@Economy < 6) { set .@eco_invest,5000; }
- else if ((.@Economy >= 6) && (.@Economy <= 10)) { set .@eco_invest,10000; }
- else if ((.@Economy >= 11) && (.@Economy <= 15)) { set .@eco_invest,20000; }
- else if ((.@Economy >= 16) && (.@Economy <= 20)) { set .@eco_invest,35000; }
- else if ((.@Economy >= 21) && (.@Economy <= 25)) { set .@eco_invest,55000; }
- else if ((.@Economy >= 26) && (.@Economy <= 30)) { set .@eco_invest,80000; }
- else if ((.@Economy >= 31) && (.@Economy <= 35)) { set .@eco_invest,110000; }
- else if ((.@Economy >= 36) && (.@Economy <= 40)) { set .@eco_invest,145000; }
- else if ((.@Economy >= 41) && (.@Economy <= 45)) { set .@eco_invest,185000; }
- else if ((.@Economy >= 46) && (.@Economy <= 50)) { set .@eco_invest,230000; }
- else if ((.@Economy >= 51) && (.@Economy <= 55)) { set .@eco_invest,280000; }
- else if ((.@Economy >= 56) && (.@Economy <= 60)) { set .@eco_invest,335000; }
- else if ((.@Economy >= 61) && (.@Economy <= 65)) { set .@eco_invest,395000; }
- else if ((.@Economy >= 66) && (.@Economy <= 70)) { set .@eco_invest,460000; }
- else if ((.@Economy >= 71) && (.@Economy <= 75)) { set .@eco_invest,530000; }
- else if ((.@Economy >= 76) && (.@Economy <= 80)) { set .@eco_invest,605000; }
- else if ((.@Economy >= 81) && (.@Economy <= 85)) { set .@eco_invest,685000; }
- else if ((.@Economy >= 86) && (.@Economy <= 90)) { set .@eco_invest,770000; }
- else if ((.@Economy >= 91) && (.@Economy <= 95)) { set .@eco_invest,860000; }
- else if ((.@Economy >= 96) && (.@Economy <= 100)) { set .@eco_invest,955000; }
+ .@Economy = getcastledata(strnpcinfo(2),2);
+ if (.@Economy < 6) { .@eco_invest = 5000; }
+ else if ((.@Economy >= 6) && (.@Economy <= 10)) { .@eco_invest = 10000; }
+ else if ((.@Economy >= 11) && (.@Economy <= 15)) { .@eco_invest = 20000; }
+ else if ((.@Economy >= 16) && (.@Economy <= 20)) { .@eco_invest = 35000; }
+ else if ((.@Economy >= 21) && (.@Economy <= 25)) { .@eco_invest = 55000; }
+ else if ((.@Economy >= 26) && (.@Economy <= 30)) { .@eco_invest = 80000; }
+ else if ((.@Economy >= 31) && (.@Economy <= 35)) { .@eco_invest = 110000; }
+ else if ((.@Economy >= 36) && (.@Economy <= 40)) { .@eco_invest = 145000; }
+ else if ((.@Economy >= 41) && (.@Economy <= 45)) { .@eco_invest = 185000; }
+ else if ((.@Economy >= 46) && (.@Economy <= 50)) { .@eco_invest = 230000; }
+ else if ((.@Economy >= 51) && (.@Economy <= 55)) { .@eco_invest = 280000; }
+ else if ((.@Economy >= 56) && (.@Economy <= 60)) { .@eco_invest = 335000; }
+ else if ((.@Economy >= 61) && (.@Economy <= 65)) { .@eco_invest = 395000; }
+ else if ((.@Economy >= 66) && (.@Economy <= 70)) { .@eco_invest = 460000; }
+ else if ((.@Economy >= 71) && (.@Economy <= 75)) { .@eco_invest = 530000; }
+ else if ((.@Economy >= 76) && (.@Economy <= 80)) { .@eco_invest = 605000; }
+ else if ((.@Economy >= 81) && (.@Economy <= 85)) { .@eco_invest = 685000; }
+ else if ((.@Economy >= 86) && (.@Economy <= 90)) { .@eco_invest = 770000; }
+ else if ((.@Economy >= 91) && (.@Economy <= 95)) { .@eco_invest = 860000; }
+ else if ((.@Economy >= 96) && (.@Economy <= 100)) { .@eco_invest = 955000; }
//Quadruple the cost of investing if you've already invested once.
if (getcastledata(strnpcinfo(2),4)) {
- set .@eco_invest,.@eco_invest*4;
+ .@eco_invest *= 4;
}
mes "["+strnpcinfo(1)+"]";
mes "If you invest in commercial growth, the quantity of goods made by the guild will increase. Therfore, if you consider our future, investments will be a necessity.";
@@ -700,30 +700,30 @@ OnRecvCastle:
close;
}
case 3:
- set .@defence,getcastledata(strnpcinfo(2),3);
- if (.@defence < 6) { set .@def_invest,10000; }
- else if ((.@defence >= 6) && (.@defence <= 10)) { set .@def_invest,20000; }
- else if ((.@defence >= 11) && (.@defence <= 15)) { set .@def_invest,40000; }
- else if ((.@defence >= 16) && (.@defence <= 20)) { set .@def_invest,70000; }
- else if ((.@defence >= 21) && (.@defence <= 25)) { set .@def_invest,110000; }
- else if ((.@defence >= 26) && (.@defence <= 30)) { set .@def_invest,160000; }
- else if ((.@defence >= 31) && (.@defence <= 35)) { set .@def_invest,220000; }
- else if ((.@defence >= 36) && (.@defence <= 40)) { set .@def_invest,290000; }
- else if ((.@defence >= 41) && (.@defence <= 45)) { set .@def_invest,370000; }
- else if ((.@defence >= 46) && (.@defence <= 50)) { set .@def_invest,460000; }
- else if ((.@defence >= 51) && (.@defence <= 55)) { set .@def_invest,560000; }
- else if ((.@defence >= 56) && (.@defence <= 60)) { set .@def_invest,670000; }
- else if ((.@defence >= 61) && (.@defence <= 65)) { set .@def_invest,790000; }
- else if ((.@defence >= 66) && (.@defence <= 70)) { set .@def_invest,920000; }
- else if ((.@defence >= 71) && (.@defence <= 75)) { set .@def_invest,1060000; }
- else if ((.@defence >= 76) && (.@defence <= 80)) { set .@def_invest,1210000; }
- else if ((.@defence >= 81) && (.@defence <= 85)) { set .@def_invest,1370000; }
- else if ((.@defence >= 86) && (.@defence <= 90)) { set .@def_invest,1540000; }
- else if ((.@defence >= 91) && (.@defence <= 95)) { set .@def_invest,1720000; }
- else if ((.@defence >= 96) && (.@defence <= 100)) { set .@def_invest,1910000; }
+ .@defence = getcastledata(strnpcinfo(2),3);
+ if (.@defence < 6) { .@def_invest = 10000; }
+ else if ((.@defence >= 6) && (.@defence <= 10)) { .@def_invest = 20000; }
+ else if ((.@defence >= 11) && (.@defence <= 15)) { .@def_invest = 40000; }
+ else if ((.@defence >= 16) && (.@defence <= 20)) { .@def_invest = 70000; }
+ else if ((.@defence >= 21) && (.@defence <= 25)) { .@def_invest = 110000; }
+ else if ((.@defence >= 26) && (.@defence <= 30)) { .@def_invest = 160000; }
+ else if ((.@defence >= 31) && (.@defence <= 35)) { .@def_invest = 220000; }
+ else if ((.@defence >= 36) && (.@defence <= 40)) { .@def_invest = 290000; }
+ else if ((.@defence >= 41) && (.@defence <= 45)) { .@def_invest = 370000; }
+ else if ((.@defence >= 46) && (.@defence <= 50)) { .@def_invest = 460000; }
+ else if ((.@defence >= 51) && (.@defence <= 55)) { .@def_invest = 560000; }
+ else if ((.@defence >= 56) && (.@defence <= 60)) { .@def_invest = 670000; }
+ else if ((.@defence >= 61) && (.@defence <= 65)) { .@def_invest = 790000; }
+ else if ((.@defence >= 66) && (.@defence <= 70)) { .@def_invest = 920000; }
+ else if ((.@defence >= 71) && (.@defence <= 75)) { .@def_invest = 1060000; }
+ else if ((.@defence >= 76) && (.@defence <= 80)) { .@def_invest = 1210000; }
+ else if ((.@defence >= 81) && (.@defence <= 85)) { .@def_invest = 1370000; }
+ else if ((.@defence >= 86) && (.@defence <= 90)) { .@def_invest = 1540000; }
+ else if ((.@defence >= 91) && (.@defence <= 95)) { .@def_invest = 1720000; }
+ else if ((.@defence >= 96) && (.@defence <= 100)) { .@def_invest = 1910000; }
//Quadruple the cost of investing if you've already invested once.
if (getcastledata(strnpcinfo(2),5)) {
- set .@def_invest,.@def_invest*4;
+ .@def_invest *= 4;
}
mes "["+strnpcinfo(1)+"]";
mes "If you raise Castle Defenses, the durability of Guardians and the Emperium will increase. Therefore, if you consider our coming battles, some investment in this area will be required.";
@@ -770,10 +770,10 @@ OnRecvCastle:
mes "Will you summon a Guardian? It'll be a protector to defend us loyally.";
mes "Please select a guardian to defend us.";
next;
- for( set .@i, 0; .@i <= 7 ; set .@i, .@i+1 ) {
- if (.@guardiantype[.@i] == 1) { set .@type$,"Guardian Soldier"; }
- else if (.@guardiantype[.@i] == 2) { set .@type$,"Guardian Archer"; }
- else { set .@type$,"Guardian Knight"; }
+ for (.@i = 0; .@i <= 7; ++.@i) {
+ if (.@guardiantype[.@i] == 1) { .@type$ = "Guardian Soldier"; }
+ else if (.@guardiantype[.@i] == 2) { .@type$ = "Guardian Archer"; }
+ else { .@type$ = "Guardian Knight"; }
if (guardianinfo(strnpcinfo(2),.@i,0)) {
setarray .@gname$[.@i], .@type$ + " - Implemented (" + guardianinfo(strnpcinfo(2),.@i,2) + "/" + guardianinfo(strnpcinfo(2),.@i,1) + ")";
}
@@ -781,8 +781,8 @@ OnRecvCastle:
setarray .@gname$[.@i], .@type$ + " - Not Implemented";
}
}
- set .@menu$,.@gname$[0]+":"+.@gname$[1]+":"+.@gname$[2]+":"+.@gname$[3]+":"+.@gname$[4]+":"+.@gname$[5]+":"+.@gname$[6]+":"+.@gname$[7];
- set .@GDnum,select(.@menu$)+9;
+ .@menu$ = .@gname$[0]+":"+.@gname$[1]+":"+.@gname$[2]+":"+.@gname$[3]+":"+.@gname$[4]+":"+.@gname$[5]+":"+.@gname$[6]+":"+.@gname$[7];
+ .@GDnum = select(.@menu$)+9;
mes "["+strnpcinfo(1)+"]";
mes "Will you summon the chosen guardian? 10,000 zeny are required to summon a Guardian.";
next;
@@ -805,10 +805,10 @@ OnRecvCastle:
}
Zeny -= 10000;
setcastledata strnpcinfo(2),.@GDnum,1; // mark as 'installed'
- set .@UseGID,.@GDnum - 10;
- if (.@guardiantype[.@UseGID] == 1) { set .@type,1287; }
- else if (.@guardiantype[.@UseGID] == 2) { set .@type,1285; }
- else { set .@type,1286; }
+ .@UseGID = .@GDnum - 10;
+ if (.@guardiantype[.@UseGID] == 1) { .@type = 1287; }
+ else if (.@guardiantype[.@UseGID] == 2) { .@type = 1285; }
+ else { .@type = 1286; }
guardian strnpcinfo(2),.@guardianposx[.@UseGID],.@guardianposy[.@UseGID],strmobinfo(2,.@type),.@type,"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",.@UseGID;
mes "["+strnpcinfo(1)+"]";
mes "We completed the summoning of the Guardian. Our defenses are now increased with it in place.";
@@ -917,7 +917,7 @@ OnRecvCastle:
//============================================================
- script Lever#gd::gdlever -1,{
- set .@GID,getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
if (.@GID == 0) {
mes "[Ringing Voice]";
@@ -926,7 +926,7 @@ OnRecvCastle:
}
if (compare(strnpcinfo(2),"aldeg")) {
- set .@destination$,"gld_dun02";
+ .@destination$ = "gld_dun02";
if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],32,122;
else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],79,30;
else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],165,38;
@@ -934,7 +934,7 @@ OnRecvCastle:
else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],103,169;
}
else if (compare(strnpcinfo(2),"gefg")) {
- set .@destination$,"gld_dun04";
+ .@destination$ = "gld_dun04";
if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],39,258;
else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],125,270;
else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],268,251;
@@ -942,7 +942,7 @@ OnRecvCastle:
else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],230,35;
}
else if (compare(strnpcinfo(2),"payg")) {
- set .@destination$,"gld_dun01";
+ .@destination$ = "gld_dun01";
if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],186,165;
else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],54,165;
else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],54,39;
@@ -950,7 +950,7 @@ OnRecvCastle:
else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],223,202;
}
else if (compare(strnpcinfo(2),"prtg")) {
- set .@destination$,"gld_dun03";
+ .@destination$ = "gld_dun03";
if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],28,251;
else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],164,268;
else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],164,179;
@@ -1107,11 +1107,11 @@ OnSpawnGuardians:
// This should prevent duplicating Guardians when char Server disconnects.
killmonster strnpcinfo(2),strnpcinfo(0)+"::OnGuardianDied";
- for( set .@i, 0; .@i <= 7 ; set .@i, .@i+1 ) {
- set .@UseGID,.@i + 10;
- if (.@guardiantype[.@i] == 1) { set .@type,1287; }
- else if (.@guardiantype[.@i] == 2) { set .@type,1285; }
- else { set .@type,1286; }
+ for (.@i = 0; .@i <= 7; ++.@i) {
+ .@UseGID = .@i + 10;
+ if (.@guardiantype[.@i] == 1) { .@type = 1287; }
+ else if (.@guardiantype[.@i] == 2) { .@type = 1285; }
+ else { .@type = 1286; }
if (getcastledata(strnpcinfo(2),.@UseGID)) {
guardian strnpcinfo(2),.@guardianposx[.@i],.@guardianposy[.@i],strmobinfo(2,.@type),.@type,"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",.@i;
}
@@ -1131,112 +1131,112 @@ OnClock0001:
// Do nothing if this script is the template.
if (strnpcinfo(1) == "Gld_Trea_Spawn") end;
- set .@GID, getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
// If there is no owner, do nothing.
if (!.@GID) end;
// Is there Economy in this castle?
- set .@Treasure,getcastledata(strnpcinfo(2),2)/5+4;
+ .@Treasure = getcastledata(strnpcinfo(2),2)/5+4;
// Set information
if (strnpcinfo(2) == "aldeg_cas01") {
- set .@treasurebox,1324;
+ .@treasurebox = 1324;
setarray .@treasurex[0],115,122,115,122,116,117,118,119,120,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116;
setarray .@treasurey[0],226,226,219,219,225,225,225,225,225,225,224,223,222,221,220,220,220,220,220,220,221,222,223,224;
}
else if (strnpcinfo(2) == "aldeg_cas02") {
- set .@treasurebox,1326;
+ .@treasurebox = 1326;
setarray .@treasurex[0],134,135,135,134,132,133,134,135,136,137,137,137,137,137,137,136,135,134,133,132,132,132,132,132;
setarray .@treasurey[0],231,231,230,230,233,233,233,233,233,233,232,231,230,229,228,228,228,228,228,228,229,230,231,232;
}
else if (strnpcinfo(2) == "aldeg_cas03") {
- set .@treasurebox,1328;
+ .@treasurebox = 1328;
setarray .@treasurex[0],224,225,225,224,222,223,224,225,226,227,227,227,227,227,227,226,225,224,223,222,222,222,222,222;
setarray .@treasurey[0],269,269,268,268,271,271,271,271,271,271,270,269,268,267,266,266,266,266,266,266,267,268,269,270;
}
else if (strnpcinfo(2) == "aldeg_cas04") {
- set .@treasurebox,1330;
+ .@treasurebox = 1330;
setarray .@treasurex[0],84,85,85,84,82,83,84,85,86,87,87,87,87,87,87,86,85,84,83,82,82,82,82,82;
setarray .@treasurey[0],13,13,12,12,15,15,15,15,15,15,14,13,12,11,10,10,10,10,10,10,11,12,13,14;
}
else if (strnpcinfo(2) == "aldeg_cas05") {
- set .@treasurebox,1332;
+ .@treasurebox = 1332;
setarray .@treasurex[0],61,62,62,61,59,60,61,62,63,64,64,64,64,64,64,63,62,61,60,59,59,59,59,59;
setarray .@treasurey[0],12,12,11,11,14,14,14,14,14,14,13,12,11,10,9,9,9,9,9,9,10,11,12,13;
}
else if (strnpcinfo(2) == "gefg_cas01") {
- set .@treasurebox,1334;
+ .@treasurebox = 1334;
setarray .@treasurex[0],153,154,154,153,151,152,153,154,155,156,156,156,156,156,156,155,154,153,152,151,151,151,151,151;
setarray .@treasurey[0],113,113,112,112,115,115,115,115,115,115,114,113,112,111,110,110,110,110,110,110,111,112,113,114;
}
else if (strnpcinfo(2) == "gefg_cas02") {
- set .@treasurebox,1336;
+ .@treasurebox = 1336;
setarray .@treasurex[0],139,140,140,139,137,138,139,140,141,142,142,142,142,142,142,141,140,139,138,137,137,137,137,137;
setarray .@treasurey[0],115,115,114,114,117,117,117,117,117,117,116,115,114,113,112,112,112,112,112,112,113,114,115,116;
}
else if (strnpcinfo(2) == "gefg_cas03") {
- set .@treasurebox,1338;
+ .@treasurebox = 1338;
setarray .@treasurex[0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267;
setarray .@treasurey[0],291,291,290,290,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288,288,289,290,291,292;
}
else if (strnpcinfo(2) == "gefg_cas04") {
- set .@treasurebox,1340;
+ .@treasurebox = 1340;
setarray .@treasurex[0],115,116,116,115,113,114,115,116,117,118,118,118,118,118,118,117,116,115,114,113,113,113,113,113;
setarray .@treasurey[0],119,119,118,118,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116,116,117,118,119,120;
}
else if (strnpcinfo(2) == "gefg_cas05") {
- set .@treasurebox,1342;
+ .@treasurebox = 1342;
setarray .@treasurex[0],143,144,144,143,141,142,143,144,145,146,146,146,146,146,146,145,144,143,142,141,141,141,141,141;
setarray .@treasurey[0],110,110,109,109,112,112,112,112,112,112,111,110,109,108,107,107,107,107,107,107,108,109,110,111;
}
else if (strnpcinfo(2) == "payg_cas01") {
- set .@treasurebox,1344;
+ .@treasurebox = 1344;
setarray .@treasurex[0],289,292,292,289,288,289,290,291,292,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288;
setarray .@treasurey[0],10,10,7,7,11,11,11,11,11,11,10,9,8,7,6,6,6,6,6,6,7,8,9,10;
}
else if (strnpcinfo(2) == "payg_cas02") {
- set .@treasurebox,1346;
+ .@treasurebox = 1346;
setarray .@treasurex[0],143,146,146,143,142,143,144,145,146,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142;
setarray .@treasurey[0],146,146,143,143,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142,142,143,144,145,146;
}
else if (strnpcinfo(2) == "payg_cas03") {
- set .@treasurebox,1348;
+ .@treasurebox = 1348;
setarray .@treasurex[0],158,159,159,158,156,157,158,159,160,161,161,161,161,161,161,160,159,158,157,156,156,156,156,156;
setarray .@treasurey[0],169,169,168,168,171,171,171,171,171,171,170,169,168,167,166,166,166,166,166,166,167,168,169,170;
}
else if (strnpcinfo(2) == "payg_cas04") {
- set .@treasurebox,1350;
+ .@treasurebox = 1350;
setarray .@treasurex[0],146,147,147,146,144,145,146,147,148,149,149,149,149,149,149,148,147,146,145,144,144,144,144,144;
setarray .@treasurey[0],48,48,47,47,50,50,50,50,50,50,49,48,47,46,45,45,45,45,45,45,46,47,48,49;
}
else if (strnpcinfo(2) == "payg_cas05") {
- set .@treasurebox,1352;
+ .@treasurebox = 1352;
setarray .@treasurex[0],155,158,158,155,154,155,156,157,158,159,159,159,159,159,159,158,157,156,155,154,154,154,154,154;
setarray .@treasurey[0],134,134,131,131,135,135,135,135,135,135,134,133,132,131,130,130,130,130,130,130,131,132,133,134;
}
else if (strnpcinfo(2) == "prtg_cas01") {
- set .@treasurebox,1354;
+ .@treasurebox = 1354;
setarray .@treasurex[0],10,11,11,10,8,9,10,11,12,13,13,13,13,13,13,12,11,10,9,8,8,8,8,8;
setarray .@treasurey[0],209,209,208,208,211,211,211,211,211,211,210,209,208,207,206,206,206,206,206,206,207,208,209,210;
}
else if (strnpcinfo(2) == "prtg_cas02") {
- set .@treasurebox,1356;
+ .@treasurebox = 1356;
setarray .@treasurex[0],201,202,202,201,199,200,201,202,203,204,204,204,204,204,204,203,202,201,200,199,199,199,199,199;
setarray .@treasurey[0],228,228,227,227,230,230,230,230,230,230,229,228,227,226,225,225,225,225,225,225,226,227,228,229;
}
else if (strnpcinfo(2) == "prtg_cas03") {
- set .@treasurebox,1358;
+ .@treasurebox = 1358;
setarray .@treasurex[0],187,188,188,187,185,186,187,188,189,190,190,190,190,190,190,189,188,187,186,185,185,185,185,185;
setarray .@treasurey[0],132,132,131,131,134,134,134,134,134,134,133,132,131,130,129,129,129,129,129,129,130,131,132,133;
}
else if (strnpcinfo(2) == "prtg_cas04") {
- set .@treasurebox,1360;
+ .@treasurebox = 1360;
setarray .@treasurex[0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267;
setarray .@treasurey[0],162,162,161,161,164,164,164,164,164,164,163,162,161,160,159,159,159,159,159,159,160,161,162,163;
}
else if (strnpcinfo(2) == "prtg_cas05") {
- set .@treasurebox,1362;
+ .@treasurebox = 1362;
setarray .@treasurex[0],275,276,276,275,273,274,275,276,277,278,278,278,278,278,278,277,276,275,274,273,273,273,273,273;
setarray .@treasurey[0],178,178,177,177,180,180,180,180,180,180,179,178,177,176,175,175,175,175,175,175,176,177,178,179;
}
@@ -1248,12 +1248,12 @@ OnClock0001:
// Apply investment to Eco. and Def. Only happens if there were investments made.
// Permanent Development can only happen once per day.
if (getcastledata(strnpcinfo(2),4)) {
- set .@Economy,getcastledata(strnpcinfo(2),2);
+ .@Economy = getcastledata(strnpcinfo(2),2);
setcastledata strnpcinfo(2),2,.@Economy + getcastledata(strnpcinfo(2),4) + (rand(2) && getgdskilllv(.@GID,10014));
if (getcastledata(strnpcinfo(2),2) > 100) setcastledata strnpcinfo(2),2,100;
}
if (getcastledata(strnpcinfo(2),5)) {
- set .@defence,getcastledata(strnpcinfo(2),3);
+ .@defence = getcastledata(strnpcinfo(2),3);
setcastledata strnpcinfo(2),3,.@defence + getcastledata(strnpcinfo(2),5);
if (getcastledata(strnpcinfo(2),3) > 100) setcastledata strnpcinfo(2),3,100;
}
@@ -1262,10 +1262,10 @@ OnClock0001:
setcastledata strnpcinfo(2),5,0;
// Spawn boxes in proper order.
- for (set .@i,0; .@i < .@Treasure ; set .@i,.@i+1) {
+ for (.@i = 0; .@i < .@Treasure ; ++.@i) {
// set treasure box ID
- set .@boxid, .@treasurebox + (.@i+2) % 2;
- set .@box,1 << .@i;
+ .@boxid = .@treasurebox + (.@i+2) % 2;
+ .@box = 1 << .@i;
// Spawn or do not spawn chests if one already exists.
if ((getd("$@"+strnpcinfo(2)+"_treasure") & .@box) == 0) {
monster strnpcinfo(2),.@treasurex[.@i],.@treasurey[.@i],"Treasure Chest",.@boxid,1,"Treasure#"+strnpcinfo(2)+"::OnTreasureDied"+.@i;
diff --git a/npc/guild/aldeg_cas01.txt b/npc/guild/aldeg_cas01.txt
index 82b09d608..e72b121c5 100644
--- a/npc/guild/aldeg_cas01.txt
+++ b/npc/guild/aldeg_cas01.txt
@@ -16,7 +16,7 @@
//============================================================
- script Neuschwanstein#1::OutsideFlagsA1 GUILD_FLAG,{
- set .@GID, getcastledata("aldeg_cas01",1);
+ .@GID = getcastledata("aldeg_cas01",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/aldeg_cas02.txt b/npc/guild/aldeg_cas02.txt
index fe98f22a8..938e511da 100644
--- a/npc/guild/aldeg_cas02.txt
+++ b/npc/guild/aldeg_cas02.txt
@@ -16,7 +16,7 @@
//============================================================
- script Hohenschwangau#1::OutsideFlagsA2 GUILD_FLAG,{
- set .@GID, getcastledata("aldeg_cas02",1);
+ .@GID = getcastledata("aldeg_cas02",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/aldeg_cas03.txt b/npc/guild/aldeg_cas03.txt
index d5aa3535c..c595a8681 100644
--- a/npc/guild/aldeg_cas03.txt
+++ b/npc/guild/aldeg_cas03.txt
@@ -16,7 +16,7 @@
//============================================================
- script Nuernberg#1::OutsideFlagsA3 GUILD_FLAG,{
- set .@GID, getcastledata("aldeg_cas03",1);
+ .@GID = getcastledata("aldeg_cas03",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/aldeg_cas04.txt b/npc/guild/aldeg_cas04.txt
index 4f6bb1265..6a6b9d7ec 100644
--- a/npc/guild/aldeg_cas04.txt
+++ b/npc/guild/aldeg_cas04.txt
@@ -16,7 +16,7 @@
//============================================================
- script Wuerzburg#1::OutsideFlagsA4 GUILD_FLAG,{
- set .@GID, getcastledata("aldeg_cas04",1);
+ .@GID = getcastledata("aldeg_cas04",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/aldeg_cas05.txt b/npc/guild/aldeg_cas05.txt
index 8712d314a..93a78d7fb 100644
--- a/npc/guild/aldeg_cas05.txt
+++ b/npc/guild/aldeg_cas05.txt
@@ -16,7 +16,7 @@
//============================================================
- script Rothenburg#1::OutsideFlagsA5 GUILD_FLAG,{
- set .@GID, getcastledata("aldeg_cas05",1);
+ .@GID = getcastledata("aldeg_cas05",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/gefg_cas01.txt b/npc/guild/gefg_cas01.txt
index 71a227173..6127e62f9 100644
--- a/npc/guild/gefg_cas01.txt
+++ b/npc/guild/gefg_cas01.txt
@@ -16,7 +16,7 @@
//============================================================
- script Repherion#1::OutsideFlagsG1 GUILD_FLAG,{
- set .@GID, getcastledata("gefg_cas01",1);
+ .@GID = getcastledata("gefg_cas01",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/gefg_cas02.txt b/npc/guild/gefg_cas02.txt
index 8aa183045..45530849a 100644
--- a/npc/guild/gefg_cas02.txt
+++ b/npc/guild/gefg_cas02.txt
@@ -16,7 +16,7 @@
//============================================================
- script Eeyorbriggar#1::OutsideFlagsG2 GUILD_FLAG,{
- set .@GID, getcastledata("gefg_cas02",1);
+ .@GID = getcastledata("gefg_cas02",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/gefg_cas03.txt b/npc/guild/gefg_cas03.txt
index 50ba0005b..a206c8bac 100644
--- a/npc/guild/gefg_cas03.txt
+++ b/npc/guild/gefg_cas03.txt
@@ -16,7 +16,7 @@
//============================================================
- script Yesnelph#1::OutsideFlagsG3 GUILD_FLAG,{
- set .@GID, getcastledata("gefg_cas03",1);
+ .@GID = getcastledata("gefg_cas03",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/gefg_cas04.txt b/npc/guild/gefg_cas04.txt
index 67c490baf..06d37361a 100644
--- a/npc/guild/gefg_cas04.txt
+++ b/npc/guild/gefg_cas04.txt
@@ -16,7 +16,7 @@
//============================================================
- script Bergel#1::OutsideFlagsG4 GUILD_FLAG,{
- set .@GID, getcastledata("gefg_cas04",1);
+ .@GID = getcastledata("gefg_cas04",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/gefg_cas05.txt b/npc/guild/gefg_cas05.txt
index aa802ea15..81ebd3905 100644
--- a/npc/guild/gefg_cas05.txt
+++ b/npc/guild/gefg_cas05.txt
@@ -16,7 +16,7 @@
//============================================================
- script Mersetzdeitz#1::OutsideFlagsG5 GUILD_FLAG,{
- set .@GID, getcastledata("gefg_cas05",1);
+ .@GID = getcastledata("gefg_cas05",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/payg_cas01.txt b/npc/guild/payg_cas01.txt
index 2b172929b..1deee9a4f 100644
--- a/npc/guild/payg_cas01.txt
+++ b/npc/guild/payg_cas01.txt
@@ -18,7 +18,7 @@
//============================================================
- script Bright Arbor#1::OutsideFlagsPA1 GUILD_FLAG,{
- set .@GID, getcastledata("payg_cas01",1);
+ .@GID = getcastledata("payg_cas01",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/payg_cas02.txt b/npc/guild/payg_cas02.txt
index cb7403c6a..92db92c09 100644
--- a/npc/guild/payg_cas02.txt
+++ b/npc/guild/payg_cas02.txt
@@ -19,7 +19,7 @@
//============================================================
- script Scarlet Palace#1::OutsideFlagsPA2 GUILD_FLAG,{
- set .@GID, getcastledata("payg_cas02",1);
+ .@GID = getcastledata("payg_cas02",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/payg_cas03.txt b/npc/guild/payg_cas03.txt
index 54c69087e..e0e649308 100644
--- a/npc/guild/payg_cas03.txt
+++ b/npc/guild/payg_cas03.txt
@@ -18,7 +18,7 @@
//============================================================
- script Holy Shadow#1::OutsideFlagsPA3 GUILD_FLAG,{
- set .@GID, getcastledata("payg_cas03",1);
+ .@GID = getcastledata("payg_cas03",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/payg_cas04.txt b/npc/guild/payg_cas04.txt
index 265ace62f..498bc1aed 100644
--- a/npc/guild/payg_cas04.txt
+++ b/npc/guild/payg_cas04.txt
@@ -19,7 +19,7 @@
//============================================================
- script Sacred Altar#1::OutsideFlagsPA4 GUILD_FLAG,{
- set .@GID, getcastledata("payg_cas04",1);
+ .@GID = getcastledata("payg_cas04",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/payg_cas05.txt b/npc/guild/payg_cas05.txt
index ec616656e..7b667c4ca 100644
--- a/npc/guild/payg_cas05.txt
+++ b/npc/guild/payg_cas05.txt
@@ -18,7 +18,7 @@
//============================================================
- script Bamboo Grove Hill#1::OutsideFlagsPA5 GUILD_FLAG,{
- set .@GID, getcastledata("payg_cas05",1);
+ .@GID = getcastledata("payg_cas05",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/prtg_cas01.txt b/npc/guild/prtg_cas01.txt
index a99f37ac9..961453ccd 100644
--- a/npc/guild/prtg_cas01.txt
+++ b/npc/guild/prtg_cas01.txt
@@ -18,7 +18,7 @@
//============================================================
- script Kriemhild#1::OutsideFlagsPR1 GUILD_FLAG,{
- set .@GID, getcastledata("prtg_cas01",1);
+ .@GID = getcastledata("prtg_cas01",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/prtg_cas02.txt b/npc/guild/prtg_cas02.txt
index ceaae4821..315478ba1 100644
--- a/npc/guild/prtg_cas02.txt
+++ b/npc/guild/prtg_cas02.txt
@@ -18,7 +18,7 @@
//============================================================
- script Swanhild#1::OutsideFlagsPR2 GUILD_FLAG,{
- set .@GID, getcastledata("prtg_cas02",1);
+ .@GID = getcastledata("prtg_cas02",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/prtg_cas03.txt b/npc/guild/prtg_cas03.txt
index b0e0515ec..4b52dbb7f 100644
--- a/npc/guild/prtg_cas03.txt
+++ b/npc/guild/prtg_cas03.txt
@@ -18,7 +18,7 @@
//============================================================
- script Fadhgridh#1::OutsideFlagsPR3 GUILD_FLAG,{
- set .@GID, getcastledata("prtg_cas03",1);
+ .@GID = getcastledata("prtg_cas03",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/prtg_cas04.txt b/npc/guild/prtg_cas04.txt
index 08f1522db..8936b8451 100644
--- a/npc/guild/prtg_cas04.txt
+++ b/npc/guild/prtg_cas04.txt
@@ -18,7 +18,7 @@
//============================================================
- script Skoegul#1::OutsideFlagsPR4 GUILD_FLAG,{
- set .@GID, getcastledata("prtg_cas04",1);
+ .@GID = getcastledata("prtg_cas04",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/prtg_cas05.txt b/npc/guild/prtg_cas05.txt
index 69ac3eb32..3b9652783 100644
--- a/npc/guild/prtg_cas05.txt
+++ b/npc/guild/prtg_cas05.txt
@@ -18,7 +18,7 @@
//============================================================
- script Gondul#1::OutsideFlagsPR5 GUILD_FLAG,{
- set .@GID, getcastledata("prtg_cas05",1);
+ .@GID = getcastledata("prtg_cas05",1);
if (.@GID == 0) {
mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
diff --git a/npc/guild/trs_rp.txt b/npc/guild/trs_rp.txt
index 260aa6162..d96bd694e 100644
--- a/npc/guild/trs_rp.txt
+++ b/npc/guild/trs_rp.txt
@@ -16,7 +16,7 @@
OnTouch:
// Store the Guild ID of castle occupant.
- set .@GID, getcastledata(strnpcinfo(2),1);
+ .@GID = getcastledata(strnpcinfo(2),1);
if (strcharinfo(0) != getguildmaster(.@GID)) {
if (compare(strnpcinfo(2),"aldeg"))
warp "aldebaran",143,112;
diff --git a/npc/guild2/agit_main_se.txt b/npc/guild2/agit_main_se.txt
index 77e8cdd7c..bad6b27f7 100644
--- a/npc/guild2/agit_main_se.txt
+++ b/npc/guild2/agit_main_se.txt
@@ -51,7 +51,7 @@ OnAgitStart2:
gvgon strnpcinfo(2);
donpcevent strnpcinfo(0)+"::OnStart";
}
- else for(set .@i,0; .@i<4; set .@i,.@i+1)
+ else for(.@i = 0; .@i<4; ++.@i)
donpcevent "RL"+.@i+"#"+strnpcinfo(2)+"::OnDisable";
end;
@@ -59,7 +59,7 @@ OnAgitEnd2:
if (strnpcinfo(2) == "template") end;
gvgoff strnpcinfo(2);
if (getcastledata(strnpcinfo(2),1)) {
- set .@str$,substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@str$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
killmonster strnpcinfo(2),"Steward#"+.@str$+"::OnStartArena";
donpcevent strnpcinfo(0)+"::OnReset";
donpcevent "Steward#"+.@str$+"::OnStop";
@@ -86,12 +86,12 @@ OnStart:
setarray getd("$agit_"+substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9)+"[0]"),0,0,0,0,0,0;
donpcevent "df1#"+strnpcinfo(2)+"::OnEnable";
donpcevent "df2#"+strnpcinfo(2)+"::OnEnable";
- for(set .@i,0; .@i<4; set .@i,.@i+1)
+ for (.@i = 0; .@i<4; ++.@i)
donpcevent "RL"+.@i+"#"+strnpcinfo(2)+"::OnEnable";
}
OnEmpSpawn:
- set .@str$, substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@str$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
if (mobcount(strnpcinfo(2),"Steward#"+.@str$+"::OnStartArena")) end;
if (compare(strnpcinfo(2),"arug")) {
if (strnpcinfo(2) == "arug_cas01") setarray .@i[0],87,219;
@@ -107,23 +107,23 @@ OnEmpSpawn:
end;
OnReset:
- set .@str$, substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@str$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
donpcevent "df1#"+strnpcinfo(2)+"::OnDisable";
donpcevent "df2#"+strnpcinfo(2)+"::OnDisable";
donpcevent "gard1#"+strnpcinfo(2)+"::OnReset";
donpcevent "gard2#"+strnpcinfo(2)+"::OnReset";
donpcevent "1st Guardian Stone#"+.@str$+"::OnDisable";
donpcevent "2nd Guardian Stone#"+.@str$+"::OnDisable";
- for(set .@i,1; .@i<4; set .@i,.@i+1)
+ for(.@i = 1; .@i<4; ++.@i)
donpcevent "Control Device0"+.@i+"#"+.@str$+"::OnDisable";
- for(set .@i,0; .@i<4; set .@i,.@i+1)
+ for(.@i = 0; .@i<4; ++.@i)
donpcevent "RL"+.@i+"#"+strnpcinfo(2)+"::OnDisable";
if (agitcheck2())
setarray getd("$agit_"+substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9)+"[0]"),0,0,1,1,1,0;
end;
OnChange:
- set .@str$, substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@str$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
setarray getd("$agit_"+.@str$+"[0]"),2,2,1,1,2,0;
donpcevent strnpcinfo(0)+"::OnEmpSpawn";
donpcevent "Control Device03#"+.@str$+"::OnEnable";
@@ -137,59 +137,59 @@ OnClock0001:
if (!getcastledata(strnpcinfo(2),1)) end;
killmonster strnpcinfo(2),strnpcinfo(0)+"::OnTreasureDied";
if (getcastledata(strnpcinfo(2),4)) {
- set .@Economy,getcastledata(strnpcinfo(2),2);
+ .@Economy = getcastledata(strnpcinfo(2),2);
setcastledata strnpcinfo(2),2,.@Economy+getcastledata(strnpcinfo(2),4)+(rand(2) && getgdskilllv(getcastledata(strnpcinfo(2),1),10014));
if (getcastledata(strnpcinfo(2),2) > 100) setcastledata strnpcinfo(2),2,100;
setcastledata strnpcinfo(2),4,0;
}
if (getcastledata(strnpcinfo(2),5)) {
- set .@defence,getcastledata(strnpcinfo(2),3);
+ .@defence = getcastledata(strnpcinfo(2),3);
setcastledata strnpcinfo(2),3,.@defence+getcastledata(strnpcinfo(2),5);
if (getcastledata(strnpcinfo(2),3) > 100) setcastledata strnpcinfo(2),3,100;
setcastledata strnpcinfo(2),5,0;
}
- set .@Treasure,getcastledata(strnpcinfo(2),2)/5+4;
+ .@Treasure = getcastledata(strnpcinfo(2),2)/5+4;
if (!.@Treasure) end;
freeloop(1);
if (compare(strnpcinfo(2),"arug")) {
if (strnpcinfo(2) == "arug_cas01") {
- set .@treasurebox,1943;
+ .@treasurebox = 1943;
setarray .@treasurex[0],251,252,253,254,255,256,257,258,251,252,253,254,255,256,257,258,251,252,253,254,255,256,257,258;
setarray .@treasurey[0],369,369,369,369,368,368,368,368,367,367,367,367,366,366,366,366,365,365,365,365,364,364,364,364;
}
else if (strnpcinfo(2) == "arug_cas02") {
- set .@treasurebox,1944;
+ .@treasurebox = 1944;
setarray .@treasurex[0],382,383,384,385,386,387,384,385,386,387,388,389,382,383,384,385,386,387,384,385,386,387,388,389;
setarray .@treasurey[0],231,231,231,231,231,231,230,230,230,230,230,230,225,225,225,225,225,225,224,224,224,224,224,224;
}
else { // Castles 3,4,5 are identical, except 4's treasure.
- set .@treasurebox,(strnpcinfo(2) == "arug_cas04")?1946:1945;
+ .@treasurebox = (strnpcinfo(2) == "arug_cas04")?1946:1945;
setarray .@treasurex[0],291,292,293,294,295,296,293,294,295,296,297,298,291,292,293,294,295,296,293,294,295,296,297,298;
setarray .@treasurey[0],276,276,276,276,276,276,274,274,274,274,274,274,272,272,272,272,272,272,269,269,269,269,269,269;
}
}
else {
if (strnpcinfo(2) == "schg_cas02") {
- set .@treasurebox,1939;
+ .@treasurebox = 1939;
setarray .@treasurex[0],249,250,251,252,253,246,247,248,249,250,250,251,252,253,246,247,248,249,250,249,250,251,252,253;
setarray .@treasurey[0],378,378,378,378,378,376,376,376,376,376,374,374,374,374,372,372,372,372,372,370,370,370,370,370;
}
else if (strnpcinfo(2) == "schg_cas03") {
- set .@treasurebox,1940;
+ .@treasurebox = 1940;
setarray .@treasurex[0],189,190,191,192,193,194,189,190,191,192,193,194,189,190,191,192,193,194,189,190,191,192,193,194;
setarray .@treasurey[0], 21, 21, 21, 21, 21, 21, 19, 19, 19, 19, 19, 19, 17, 17, 17, 17, 17, 17, 15, 15, 15, 15, 15, 15;
}
else { // Castles 1,4,5 are identical, except treasures.
- if (strnpcinfo(2) == "schg_cas01") set .@treasurebox,1938;
- else if (strnpcinfo(2) == "schg_cas04") set .@treasurebox,1941;
- else set .@treasurebox,1942;
+ if (strnpcinfo(2) == "schg_cas01") .@treasurebox = 1938;
+ else if (strnpcinfo(2) == "schg_cas04") .@treasurebox = 1941;
+ else .@treasurebox = 1942;
setarray .@treasurex[0],388,388,388,387,386,385,384,384,384,384,384,384,385,386,387,388,389,390,390,390,389,388,387,386;
setarray .@treasurey[0],388,389,390,390,390,390,389,388,387,386,385,384,384,384,384,384,384,384,385,386,386,386,386,386;
}
}
- for(set .@i,0; .@i<4; set .@i,.@i+1)
+ for(.@i = 0; .@i<4; ++.@i)
monster strnpcinfo(2),.@treasurex[.@i],.@treasurey[.@i],"Treasure Chest",(.@i%2)?.@treasurebox:1324,1,strnpcinfo(0)+"::OnTreasureDied";
- for(set .@i,4; .@i<24; set .@i,.@i+1) {
+ for(.@i = 4; .@i<24; ++.@i) {
if (.@Treasure < .@i+1) break;
monster strnpcinfo(2),.@treasurex[.@i],.@treasurey[.@i],"Treasure Chest",(.@i%2)?.@treasurebox:1324,1,strnpcinfo(0)+"::OnTreasureDied";
}
@@ -203,7 +203,7 @@ OnTreasureDied:
// Guild Manager
//============================================================
- script Steward#template -1,{
- set .@GID, getcastledata(strnpcinfo(4),1);
+ .@GID = getcastledata(strnpcinfo(4),1);
if (!.@GID) {
mes "[ Steward ]";
mes "I await for the master";
@@ -251,18 +251,19 @@ OnTreasureDied:
mes "That is all, master.";
close;
case 2:
- set .@Economy,getcastledata(strnpcinfo(4),2);
+ .@Economy = getcastledata(strnpcinfo(4),2);
setarray .@cost[0],5000,10000,20000,35000,55000,80000,110000,145000,185000,230000,280000,335000,395000,460000,530000,605000,685000,770000,860000,955000;
- set .@j,0;
- for(set .@i,6; .@i<101; set .@i,.@i+5) {
+ .@j = 0;
+ for(.@i = 6; .@i<101; .@i += 5) {
if (.@Economy < .@i) {
- set .@eco_invest,.@cost[.@j];
+ .@eco_invest = .@cost[.@j];
break;
}
- set .@j, .@j+1;
+ ++.@j;
}
// Quadruple the cost of investing if you've already invested once.
- if (getcastledata(strnpcinfo(4),4)) set .@eco_invest,.@eco_invest*4;
+ if (getcastledata(strnpcinfo(4),4))
+ .@eco_invest *= 4;
mes "[ Steward ]";
mes "Raising the stronghold's";
mes "commercial growth will";
@@ -344,18 +345,19 @@ OnTreasureDied:
close;
}
case 3:
- set .@defence,getcastledata(strnpcinfo(4),3);
+ .@defence = getcastledata(strnpcinfo(4),3);
setarray .@cost[0],10000,20000,40000,70000,110000,160000,220000,290000,370000,460000,560000,670000,790000,920000,1060000,1210000,1370000,1540000,1720000,1910000;
- set .@j,0;
- for(set .@i,6; .@i<101; set .@i,.@i+5) {
+ .@j = 0;
+ for(.@i = 6; .@i<101; .@i += 5) {
if (.@defence < .@i) {
- set .@def_invest,.@cost[.@j];
+ .@def_invest = .@cost[.@j];
break;
}
- set .@j, .@j+1;
+ ++.@j;
}
// Quadruple the cost of investing if you've already invested once.
- if (getcastledata(strnpcinfo(4),5)) set .@def_invest,.@def_invest*4;
+ if (getcastledata(strnpcinfo(4),5))
+ .@def_invest *= 4;
mes "[ Steward ]";
mes "Investing in our stronghold's";
mes "defense will enhance the";
@@ -600,20 +602,20 @@ OnStop:
end;
OnStartArena:
- set .@GID,getcharid(2);
- set .@region$, (compare(strnpcinfo(4),"arug"))?"Valfreyja":"Nithafjoll";
+ .@GID = getcharid(2);
+ .@region$ = (compare(strnpcinfo(4),"arug"))?"Valfreyja":"Nithafjoll";
// Lower castle Economy
- set .@Economy,getcastledata(strnpcinfo(4),2)-5;
- if (.@Economy < 0) set .@Economy, 0;
+ .@Economy = getcastledata(strnpcinfo(4),2)-5;
+ if (.@Economy < 0) .@Economy = 0;
setcastledata strnpcinfo(4),2,.@Economy;
// Lower Castle Defence
- set .@defence,getcastledata(strnpcinfo(4),3)-5;
- if (.@defence < 0) set .@defence, 0;
+ .@defence = getcastledata(strnpcinfo(4),3)-5;
+ if (.@defence < 0) .@defence = 0;
setcastledata strnpcinfo(4),3,.@defence;
// Set new owner
setcastledata strnpcinfo(4),1,.@GID;
// Clear castle's data.
- for(set .@i,4; .@i<10; set .@i,.@i+1)
+ for(.@i = 4; .@i<10; ++.@i)
setcastledata strnpcinfo(4),.@i,0;
// Disable Kafra
disablenpc "Kafra Employee#"+strnpcinfo(2);
@@ -635,8 +637,8 @@ OnStartArena:
// Castle Guardians
//============================================================
- script Guardian#template -1,{
- set .@GID, getcastledata(strnpcinfo(4),1);
- set .@n$, "["+strnpcinfo(1)+"]";
+ .@GID = getcastledata(strnpcinfo(4),1);
+ .@n$ = "["+strnpcinfo(1)+"]";
if (!.@GID) {
mes .@n$;
mes "Great job. Now, all you";
@@ -836,7 +838,7 @@ OnInit:
//============================================================
- script Kafra#template -1,{
cutin "kafra_01",2;
- set .@GID, getcastledata(strnpcinfo(4),1);
+ .@GID = getcastledata(strnpcinfo(4),1);
if (getcharid(2) == .@GID && getgdskilllv(.@GID,10001)) {
mes "[Kafra Employee]";
mes "Welcome, proud member";
@@ -948,9 +950,9 @@ OnInit:
// Guardian Stones (2)
//============================================================
- script Guardian Stone#template -1,{
- set .@GID, getcastledata(strnpcinfo(4),1);
- set .@num, atoi(charat(strnpcinfo(1),0));
- set .@var$,"$agit_"+strnpcinfo(2);
+ .@GID = getcastledata(strnpcinfo(4),1);
+ .@num = atoi(charat(strnpcinfo(1),0));
+ .@var$ = "$agit_"+strnpcinfo(2);
if (getcharid(2) == .@GID) {
mes "^3355FFYou will need the";
mes "following materials to";
@@ -978,19 +980,19 @@ OnInit:
mes "rebuild the Guardian Stone.^000000";
next;
setarray .@stone$[0],"Elunium","Oridecon","Stones";
- set .@i, select("Elunium:Oridecon:Stone")-1;
- if (.@i == 2) set .@nice,.@nice+10;
+ .@i = select("Elunium:Oridecon:Stone")-1;
+ if (.@i == 2) .@nice += 10;
mes "^3355FF"+.@stone$[.@i]+" has been";
mes "placed in the center.^000000";
next;
- set .@i, select("Elunium:Oridecon:Stone")-1;
- if (.@i == 0) set .@nice,.@nice+10;
+ .@i = select("Elunium:Oridecon:Stone")-1;
+ if (.@i == 0) .@nice += 10;
mes "^3355FFYou have lined the";
mes "outside of the center";
mes "with some "+.@stone$[.@i]+".^000000";
next;
- set .@i, select("Elunium:Oridecon:Stone")-1;
- if (.@i == 1) set .@nice,.@nice+10;
+ .@i = select("Elunium:Oridecon:Stone")-1;
+ if (.@i == 1) .@nice += 10;
mes "^3355FFYou covered the";
mes "rest of the materials";
mes "with some "+.@stone$[.@i]+".^000000";
@@ -1005,14 +1007,14 @@ OnInit:
setarray .@color$[0],"Red","Yellow","Blue";
while(1) {
if (.@roof0 > 7) break;
- set .@i, rand(3);
+ .@i = rand(3);
specialeffect .@effect[.@i];
mes "^3355FFThe Gemstones must";
mes "be arranged in the correct";
mes "order according to their";
mes "magic properties and power.^000000";
next;
- set .@j, select("Red Gemstone:Yellow Gemstone:Blue Gemstone")-1;
+ .@j = select("Red Gemstone:Yellow Gemstone:Blue Gemstone")-1;
mes "^3355FFYou placed the "+.@color$[.@j]+" Gemstone.^000000";
if (.@i == .@j) {
mes "^3355FFHowever, the Guardian Stone";
@@ -1020,8 +1022,8 @@ OnInit:
mes "of a magic power conflict.^000000";
close;
}
- set .@nice,.@nice+10;
- set .@roof0,.@roof0+1;
+ .@nice += 10;
+ ++.@roof0;
specialeffect EF_STEAL;
next;
}
@@ -1055,7 +1057,7 @@ OnInit:
specialeffect EF_ICECRASH;
disablenpc strnpcinfo(0);
setd .@var$+"["+(.@num-1)+"]",0;
- set .@df_all,getd(.@var$+"[0]")+getd(.@var$+"[1]");
+ .@df_all = getd(.@var$+"[0]")+getd(.@var$+"[1]");
if (!.@df_all) {
mapannounce strnpcinfo(4),"Both Guardian Stones have been erected, bolstering this stronghold's defenses!",bc_map,"0x00ff00";
donpcevent "RL0#"+strnpcinfo(4)+"::OnEnable";
@@ -1102,9 +1104,9 @@ OnEnable:
// Control Devices (3)
//============================================================
- script Control#template -1,{
- set .@GID, getcastledata(strnpcinfo(4),1);
- set .@num, atoi(charat(strnpcinfo(1),15));
- set .@var$,"$agit_"+strnpcinfo(2);
+ .@GID = getcastledata(strnpcinfo(4),1);
+ .@num = atoi(charat(strnpcinfo(1),15));
+ .@var$ = "$agit_"+strnpcinfo(2);
if (getcharid(2) == .@GID) {
if (strcharinfo(0) == getguildmaster(.@GID)) {
if (getd(.@var$+"["+(.@num+1)+"]") == 2) {
@@ -1127,7 +1129,7 @@ OnEnable:
mes "Emveretarcon to basically";
mes "hold everything together.^000000";
next;
- set .@ro_of01,rand(10,15);
+ .@ro_of01 = rand(10,15);
while(1) {
if (.@ro_of02 == .@ro_of01) break;
else {
@@ -1142,8 +1144,8 @@ OnEnable:
case 1:
mes "^3355FFThe frame has been";
mes "reinforced with wood.^000000";
- set .@rp_temp,.@rp_temp+1;
- set .@ro_of02,.@ro_of02+1;
+ ++.@rp_temp;
+ ++.@ro_of02;
specialeffect2 EF_REPAIRWEAPON;
next;
break;
@@ -1176,7 +1178,7 @@ OnEnable:
case 1:
mes "^3355FFYou tried using wood";
mes "to reinforce the gate.^000000";
- set .@ro_of02,.@ro_of02+1;
+ ++.@ro_of02;
next;
break;
case 2:
@@ -1195,8 +1197,8 @@ OnEnable:
mes "^3355FFYou hammered the";
mes "oridecon: it looks";
mes "like this will work.^000000";
- set .@rp_temp,.@rp_temp+1;
- set .@ro_of02,.@ro_of02+1;
+ ++.@rp_temp;
+ ++.@ro_of02;
specialeffect2 EF_REPAIRWEAPON;
next;
break;
@@ -1219,8 +1221,8 @@ OnEnable:
mes "^3355FFYou used steel to weld";
mes "all the cracks: the gate is";
mes "is starting to look more solid.^000000";
- set .@rp_temp,.@rp_temp+1;
- set .@ro_of02,.@ro_of02+1;
+ ++.@rp_temp;
+ ++.@ro_of02;
specialeffect2 EF_REPAIRWEAPON;
next;
break;
@@ -1260,8 +1262,8 @@ OnEnable:
mes "^3355FFYou successfully used";
mes "the emveretarcon to repair";
mes "much of the gate's damage.^000000";
- set .@rp_temp,.@rp_temp+1;
- set .@ro_of02,.@ro_of02+1;
+ ++.@rp_temp;
+ ++.@ro_of02;
specialeffect2 EF_REPAIRWEAPON;
next;
break;
@@ -1296,9 +1298,9 @@ OnEnable:
close2;
donpcevent "RL"+.@num+"#"+strnpcinfo(4)+"::OnEnable";
disablenpc strnpcinfo(0);
- if (.@num == 1) set .@str$,"1st";
- else if (.@num == 2) set .@str$,"2nd";
- else if (.@num == 3) set .@str$,"3rd";
+ if (.@num == 1) .@str$ = "1st";
+ else if (.@num == 2) .@str$ = "2nd";
+ else if (.@num == 3) .@str$ = "3rd";
mapannounce strnpcinfo(4),"The "+.@str$+" Fortress Gate has been reconstructed!",bc_map,"0x00ff00";
if (.@num == 1) setd .@var$+"[2]",0;
else {
@@ -1382,9 +1384,10 @@ OnEnable:
setarray .y[0], 18, 44,22, 40,20,40,43, 48, 18, 32, 37, 22, 47, 18, 15, 42, 43, 15, 42, 22, 28, 18;
}
}
- if (charat(strnpcinfo(1),4) == "2") set .@z,11;
+ if (charat(strnpcinfo(1),4) == "2")
+ .@z = 11;
freeloop(1);
- set .@defence,getcastledata(strnpcinfo(2),3);
+ .@defence = getcastledata(strnpcinfo(2),3);
callsub OnSummon,.@z;
if (.@defence > 70) set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),5;
else if (.@defence > 50) set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),4;
@@ -1394,10 +1397,10 @@ OnEnable:
guardian strnpcinfo(2),.@w[4],.@w[5],"Guardian Soldier",1899,strnpcinfo(0)+"::OnGuardianDied";
else if (.@defence < 11) {
set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),2;
- set .@i,(.@z)?2:0;
+ .@i = (.@z)?2:0;
guardian strnpcinfo(2),.@w[.@i],.@w[.@i+1],"Guardian Soldier",1899,strnpcinfo(0)+"::OnGuardianDied";
}
- else for(set .@i,1; .@i<getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)); set .@i,.@i+1)
+ else for(.@i = 1; .@i<getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)); ++.@i)
callsub OnSummon,.@i+.@z;
freeloop(0);
copyarray getd(".x_"+strnpcinfo(2)+"[0]"),.@x[0],22;
@@ -1413,7 +1416,7 @@ OnTimer1800000:
OnTimer2700000:
OnTimer3600000:
if (charat(strnpcinfo(1),4) == "2") end;
- set .@var$,".timer_"+charat(strnpcinfo(1),4)+strnpcinfo(2);
+ .@var$ = ".timer_"+charat(strnpcinfo(1),4)+strnpcinfo(2);
setd .@var$, getd(.@var$)+1;
set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2))+1;
callsub OnSummon,getd(.@var$);
@@ -1431,7 +1434,7 @@ OnTimer2100000:
OnTimer3000000:
OnTimer3900000:
if (!(charat(strnpcinfo(1),4) == "2")) end;
- set .@var$,".timer_"+charat(strnpcinfo(1),4)+strnpcinfo(2);
+ .@var$ = ".timer_"+charat(strnpcinfo(1),4)+strnpcinfo(2);
setd .@var$, getd(.@var$)+1;
set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2))+1;
callsub OnSummon,getd(.@var$);
@@ -1446,7 +1449,8 @@ OnSummon:
return;
OnGuardianDied:
- if (charat(strnpcinfo(1),4) == "2") set .@z,11;
+ if (charat(strnpcinfo(1),4) == "2")
+ .@z = 11;
set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2))-1;
if (getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)) < 2) {
set getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2)),getd(".MyMobCount_"+charat(strnpcinfo(1),4)+strnpcinfo(2))+1;
@@ -1476,8 +1480,8 @@ OnEnable:
else if (strnpcinfo(2) == "schg_cas03") setarray .@i[0],242,309,376,251;
else setarray .@i[0],27,35,207,75; // Castles 1,4,5 are identical.
}
- set .@num, atoi(charat(strnpcinfo(1),2));
- set .@j,(.@num == 1)?0:2;
+ .@num = atoi(charat(strnpcinfo(1),2));
+ .@j = (.@num == 1)?0:2;
guardian strnpcinfo(2),.@i[.@j],.@i[.@j+1],((.@num == 1)?"1st":"2nd")+" Guardian Stone",1906+.@num,strnpcinfo(0)+"::OnGuardianStoneDied";
end;
@@ -1488,11 +1492,15 @@ OnDisable:
end;
OnGuardianStoneDied:
- set .@num, atoi(charat(strnpcinfo(1),2));
- set .@var$,"$agit_"+substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@num = atoi(charat(strnpcinfo(1),2));
+ .@var$ = "$agit_"+substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
setd .@var$+"["+(.@num-1)+"]",1;
- if (getd(.@var$+"[0]") == 1 || getd(.@var$+"[0]") == 2) set .@destroyed, .@destroyed+1;
- if (getd(.@var$+"[1]") == 1 || getd(.@var$+"[1]") == 2) set .@destroyed, .@destroyed+1;
+ if (getd(.@var$+"[0]") == 1 || getd(.@var$+"[0]") == 2) {
+ ++.@destroyed;
+ }
+ if (getd(.@var$+"[1]") == 1 || getd(.@var$+"[1]") == 2) {
+ ++.@destroyed;
+ }
if (.@destroyed == 2) {
mapannounce strnpcinfo(2),"All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00";
donpcevent "RL0#"+strnpcinfo(2)+"::OnDisable";
@@ -1503,8 +1511,8 @@ OnGuardianStoneDied:
end;
OnTimer300000:
- set .@num, atoi(charat(strnpcinfo(1),2));
- set .@str$,substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@num = atoi(charat(strnpcinfo(1),2));
+ .@str$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
donpcevent ((.@num == 1)?"1st":"2nd")+" Guardian Stone#"+.@str$+"::OnEnable";
setd "$agit_"+.@str$+"["+(atoi(charat(strnpcinfo(1),2))-1)+"]",2;
stopnpctimer;
@@ -1515,7 +1523,7 @@ OnTimer300000:
//============================================================
- script RL#template -1,{
OnEnable:
- set .@num, atoi(charat(strnpcinfo(1),2));
+ .@num = atoi(charat(strnpcinfo(1),2));
if (.@num == 0) {
if (compare(strnpcinfo(2),"arug")) {
if (strnpcinfo(2) == "arug_cas01") {
@@ -1663,17 +1671,17 @@ OnEnable:
if (.@num == 3) set getd(".MyMobCount_"+.@num+strnpcinfo(2)),4;
else if (.@num) set getd(".MyMobCount_"+.@num+strnpcinfo(2)),6;
setwall strnpcinfo(2),.@wall[0],.@wall[1],.@wall[2],.@wall[3],.@wall[4],substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9)+"_"+strnpcinfo(1);
- set .@j,(getd(".MyMobCount_"+.@num+strnpcinfo(2)))?getd(".MyMobCount_"+.@num+strnpcinfo(2)):getarraysize(.@x);
- for(set .@i,0; .@i<.@j; set .@i,.@i+1)
+ .@j = (getd(".MyMobCount_"+.@num+strnpcinfo(2)))?getd(".MyMobCount_"+.@num+strnpcinfo(2)):getarraysize(.@x);
+ for (.@i = 0; .@i<.@j; ++.@i)
guardian strnpcinfo(2),.@x[.@i],.@y[.@i]," ",1905,strnpcinfo(0)+"::OnBarrierDestroyed";
end;
OnBarrierDestroyed:
- set .@num, atoi(charat(strnpcinfo(1),2));
+ .@num = atoi(charat(strnpcinfo(1),2));
if (!.@num) end;
set getd(".MyMobCount_"+.@num+strnpcinfo(2)),getd(".MyMobCount_"+.@num+strnpcinfo(2))-1;
if (getd(".MyMobCount_"+.@num+strnpcinfo(2)) == 0) {
- set .@var$,substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
+ .@var$ = substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9);
setd "$agit_"+.@var$+"["+(.@num+1)+"]",1;
setarray .@count$[0],"1st","2nd","3rd";
mapannounce strnpcinfo(2),"The "+.@count$[.@num-1]+" Fortress Gate is destroyed.",bc_map,"0x00ff00";
@@ -1714,10 +1722,10 @@ function script LinkFlag {
mes "Teleport Service. Please";
mes "choose a destination";
mes "within the stronghold.^000000";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+3)
- set .@menu$, .@menu$+getarg(.@i)+":";
- set .@menu$, .@menu$+"Cancel";
- set .@i, select(.@menu$)-1;
+ for (.@i = 0; .@i<getargcount(); .@i += 3)
+ .@menu$ += getarg(.@i)+":";
+ .@menu$ += "Cancel";
+ .@i = select(.@menu$)-1;
if (.@i != getargcount()/3)
warp strnpcinfo(4),getarg(.@i*3+1),getarg(.@i*3+2);
close;
@@ -1726,8 +1734,8 @@ function script LinkFlag {
// Return Flags (function)
//============================================================
function script ReturnFlag {
- set .@str$, (compare(strnpcinfo(4),"aru"))?"Arunafeltz":"Schwaltzvalt";
- set .@GID, getcastledata(getarg(0),1);
+ .@str$ = (compare(strnpcinfo(4),"aru"))?"Arunafeltz":"Schwaltzvalt";
+ .@GID = getcastledata(getarg(0),1);
if (!.@GID) {
mes "[ "+.@str$+" Royal Edict ]";
mes "The Holy Kingdom of";
@@ -1806,16 +1814,16 @@ function script ReturnFlag {
switch(select("Hold the stem.:Do nothing.")) {
case 1:
if (compare(strnpcinfo(4),"arug")) {
- set .@map$,"arug_dun01";
+ .@map$ = "arug_dun01";
setarray .@mapx[0],350,350,50, 50,200;
setarray .@mapy[0],350, 50,50,350,386;
}
else {
- set .@map$,"schg_dun01";
+ .@map$ = "schg_dun01";
setarray .@mapx[0],262, 94, 79,212,322;
setarray .@mapy[0],314,284,140, 70,166;
}
- set .@i, atoi(charat(strnpcinfo(4),9))-1;
+ .@i = atoi(charat(strnpcinfo(4),9))-1;
warp .@map$,.@mapx[.@i],.@mapy[.@i];
close;
case 2:
diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt
index 2da7c8719..598ea98f5 100644
--- a/npc/instances/EndlessTower.txt
+++ b/npc/instances/EndlessTower.txt
@@ -54,7 +54,7 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
mes "Sigh... I don't know if I can ever go back to sailing the sea...";
close;
}
- set .@name$,strcharinfo(0);
+ .@name$ = strcharinfo(0);
if (in_102tower == 1) {
mes "^0000ffLooking incredibly excited, the old man ran into the marine shop hurriedly ordering goods. You don't have anything better to do, so you decide to ask him why he is in such a rush.^000000";
next;
@@ -75,7 +75,7 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
mes "^0000ffMr. Janssen talked about his perilous ocean journeys for quite a while. You have enough time on your hands, so you sit down, quietly listening to his story.^000000";
next;
mes "^0000ffAt least half of his story sounded grossly exaggerated, but something caught your ear: he insists that a humongous tower exists on the ocean, and that it's so tall, it scrapes across the sky.^000000";
- set in_102tower,2;
+ in_102tower = 2;
close;
} else if (in_102tower == 2) {
mes "[Captain Janssen]";
@@ -119,7 +119,7 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
mes "[Captain Janssen]";
mes "...Okay then...";
mes "Welcome aboard, first mate.";
- set in_102tower,3;
+ in_102tower = 3;
close;
} else if (in_102tower == 3) {
mes "[Captain Janssen]";
@@ -130,7 +130,7 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
mes "[Captain Janssen]";
mes "Then pull up the anchor, first mate!";
close2;
- set in_102tower,4;
+ in_102tower = 4;
warp "e_tower",70,114;
end;
case 2:
@@ -200,7 +200,7 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
mes "[Captain Janssen]";
mes "Thank you so much! Now I can stock up on food and materials for my ship. You're kind, very kind!";
Zeny -= 10000;
- set in_102tower,1;
+ in_102tower = 1;
close;
}
}
@@ -209,24 +209,24 @@ alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
- set .@party_id,getcharid(1);
- set .@p_name$,getpartyname(.@party_id);
- set .@md_name$,"Endless Tower";
+ .@party_id = getcharid(1);
+ .@p_name$ = getpartyname(.@party_id);
+ .@md_name$ = "Endless Tower";
- set .@etower_timer,checkquest(60200,PLAYTIME); // 1 week
- set .@etower_timer2,checkquest(60201,PLAYTIME); // 4 hours
+ .@etower_timer = questprogress(60200,PLAYTIME); // 1 week
+ .@etower_timer2 = questprogress(60201,PLAYTIME); // 4 hours
if (!instance_check_party(.@party_id,2)) {
mes "Make or join a party with more than 1 member and try again.";
close;
}
- if (.@etower_timer == -1) {
+ if (!.@etower_timer) {
if (getcharid(0) == getpartyleader(.@party_id,2)) {
mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?";
next;
switch(select("Generate dungeon "+.@md_name$+":Enter the dungeon:Return to Alberta:Cancel")) {
case 1:
- set .@instance, instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "Party Name: "+.@p_name$;
mes "Party Leader: "+strcharinfo(0);
@@ -235,7 +235,7 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
}
mes "^0000ff"+.@md_name$+"^000000 - Try to reserve";
mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.";
- for( set .@i, 1; .@i <= 6; set .@i, .@i + 1 ) {
+ for (.@i = 1; .@i <= 6; ++.@i) {
if( instance_attachmap(.@i + "@tower", .@instance) == "" ) {
mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
instance_destroy(.@instance);
@@ -267,7 +267,7 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
case 3:
end;
}
- } else if ((.@etower_timer >= 0) && (.@etower_timer2 < 2)) {
+ } else if (.@etower_timer == 1) {
mes "If you have the dungeon generated already, you can enter it. ";
next;
switch(select("Enter the "+.@md_name$+":Return to Alberta:Cancel")) {
@@ -282,15 +282,15 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
break;
}
close;
- } else if ((.@etower_timer >= 0) && (.@etower_timer < 2) && (.@etower_timer2 == 2)) {
+ } else if (.@etower_timer == 1 && .@etower_timer2 == 2) {
- set .@dun_lim_time,etower_timer+604800; // 1 week
- set .@dun_lim_time2,etower_timer+14400; // 4 hours
- set .@dun_cur_time,gettimetick(2);
- set .@dun_ent_t,(.@dun_lim_time - .@dun_cur_time);
- set .@dun_h,(.@dun_ent_t / 3600);
- set .@dun_m,(.@dun_ent_t - (.@dun_h * 3600)) / 60;
- set .@dun_s,.@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
+ .@dun_lim_time = etower_timer+604800; // 1 week
+ .@dun_lim_time2 = etower_timer+14400; // 4 hours
+ .@dun_cur_time = gettimetick(2);
+ .@dun_ent_t = (.@dun_lim_time - .@dun_cur_time);
+ .@dun_h = (.@dun_ent_t / 3600);
+ .@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60;
+ .@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
mes "Due to the tower's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon.";
next;
@@ -299,7 +299,7 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
warp "alberta",223,36;
end;
} else {
- set etower_timer,0;
+ etower_timer = 0;
erasequest 60200;
erasequest 60201;
mes "^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
@@ -314,7 +314,7 @@ L_Enter:
} else {
mapannounce "e_tower", strcharinfo(0)+" of the party, " +getarg(3)+", is entering the dungeon, Endless Tower.",bc_map,"0x00ff99",FW_NORMAL,12;
if (getarg(1)) {
- set etower_timer,gettimetick(2);
+ etower_timer = gettimetick(2);
setquest 60200;
setquest 60201;
}
@@ -338,7 +338,7 @@ OnTouch:
e_tower,1,1,2 script #102Administrator Mode CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "Please enter the password";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
switch(select("Generate Purification Stone:Remove Purification Stone:Cancel")) {
@@ -362,7 +362,7 @@ e_tower,1,1,2 script #102Administrator Mode CLEAR_NPC,{
}
e_tower,69,117,4 script Purification Stone#et1 2_MONEMUS,{
- set etower_timer,0;
+ etower_timer = 0;
mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
close;
@@ -394,7 +394,7 @@ OnTimer1800000:
e_tower,151,185,4 script Purification Stone#et2 CLEAR_NPC,{
callfunc "F_GM_NPC";
- set etower_timer,0;
+ etower_timer = 0;
mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
close2;
warp "e_tower",75,108;
@@ -405,9 +405,9 @@ e_tower,151,185,4 script Purification Stone#et2 CLEAR_NPC,{
//============================================================
function script F_Tower_Monster {
- set .@level, getarg(0);
- set .@map$, getarg(1);
- set .@label$, getarg(2);
+ .@level = getarg(0);
+ .@map$ = getarg(1);
+ .@label$ = getarg(2);
switch(.@level) {
case 1:
@@ -1018,8 +1018,8 @@ function script F_Tower_Monster {
areamonster .@map$,181,9,191,45,"Cecil Damon",1638,2,.@label$;
break;
case 99:
- for(set .@i,1; .@i<=7; set .@i,.@i+1) {
- set .@mob_ran,rand(1,30);
+ for(.@i = 1; .@i<=7; ++.@i) {
+ .@mob_ran = rand(1,30);
if (.@mob_ran == 1)
areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,2,.@label$;
else if (.@mob_ran == 2)
@@ -1088,8 +1088,8 @@ function script F_Tower_Monster {
function script F_Tower_Warp {
- set .@level, getarg(0);
- set .@map$, getarg(1);
+ .@level = getarg(0);
+ .@map$ = getarg(1);
switch(.@level) {
case 2: warp .@map$,136,354; break;
@@ -1203,7 +1203,7 @@ function script F_Tower_Warp {
setarray .@level$[1],"26th","51st","76th";
setarray .@map$[1],"2@tower","3@tower","4@tower";
- set .@i, select("26th Level:51st Level:76th Level");
+ .@i = select("26th Level:51st Level:76th Level");
if (countitem(6000) < .@i) {
mes "-Warning-";
@@ -1236,8 +1236,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("#1F Controller")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#1F Controller")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
initnpctimer;
//SetItemPartyInMap in_102floor 1
@@ -1274,9 +1274,9 @@ OnTouch_:
end;
OnMyMobDead:
- set .@map$, strnpcinfo(4);
- set .@level, atoi(replacestr(strnpcinfo(0),"FGate102tower","")) + 1;
- set .@mob_dead_num,mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead");
+ .@map$ = strnpcinfo(4);
+ .@level = atoi(replacestr(strnpcinfo(0),"FGate102tower","")) + 1;
+ .@mob_dead_num = mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
initnpctimer;
//SetItemPartyInMap in_102floor .@level
@@ -1285,7 +1285,7 @@ OnMyMobDead:
end;
OnTimer5000:
- set .@level, atoi(replacestr(strnpcinfo(0),"FGate102tower","")) + 1;
+ .@level = atoi(replacestr(strnpcinfo(0),"FGate102tower","")) + 1;
mapannounce strnpcinfo(4), "All Monsters on the "+callsub(L_Display,.@level)+" Level have been defeated.",bc_map,"0xffff00";
donpcevent instance_npcname(.@level+"FGate102tower")+"::OnEnable";
stopnpctimer;
@@ -1293,7 +1293,7 @@ OnTimer5000:
L_Display:
// Display level properly.
- set .@mod, getarg(0) % 10;
+ .@mod = getarg(0) % 10;
if (.@mod == 1 && getarg(0) != 11) return getarg(0)+"st";
else if (.@mod == 2 && getarg(0) != 12) return getarg(0)+"nd";
else if (.@mod == 3 && getarg(0) != 13) return getarg(0)+"rd";
@@ -1383,7 +1383,7 @@ OnTimer120000:
1@tower,71,1,0 script #Manager Mode1 CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "Please enter the password.";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
mes "This NPC manages the tower from the 1st to the 25th Level.";
@@ -1414,8 +1414,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("2@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
initnpctimer;
//SetItemPartyInMap in_102floor 26
@@ -1499,7 +1499,7 @@ OnTouch_:
2@tower,71,1,0 script #Manager Mode2 CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "Please enter the password.";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
mes "This NPC manages the tower from the 26st to the 50th Level.";
@@ -1530,8 +1530,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("3@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
+ .@map$ = instance_mapname("3@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
initnpctimer;
//SetItemPartyInMap in_102floor 51
@@ -1615,7 +1615,7 @@ OnTouch_:
3@tower,71,1,0 script #Manager Mode3 CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "Please enter the password.";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
mes "This NPC manages the tower from the 51st to the 75th Level.";
@@ -1646,8 +1646,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("4@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
+ .@map$ = instance_mapname("4@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
initnpctimer;
//SetItemPartyInMap in_102floor 76
@@ -1730,7 +1730,7 @@ OnTouch_:
4@tower,71,1,0 script #Manager Mode4 CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "Please enter the password.";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
mes "This NPC manages the tower from the 76th to the 99th Level.";
@@ -1772,7 +1772,7 @@ OnTouch_:
next;
mes "^0000ffAs soon as the voice stopped talking, an irresistible force lifted and moved you somewhere else.";
close2;
- set in_102tower,10;
+ in_102tower = 10;
warp "alberta",223,36;
}
else {
@@ -1857,8 +1857,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("5@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("5@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
mapannounce .@map$, "Mysterious Voice: Who are you to dare intrude upon my sanctuary?!",bc_map,"0xffff00";
donpcevent instance_npcname("#102FShadowDust")+"::OnDisable";
@@ -1880,7 +1880,7 @@ OnDisable:
end;
OnEnable:
- set .@map$, instance_mapname("5@tower");
+ .@map$ = instance_mapname("5@tower");
monster .@map$,72,93,"Thorny Skeleton",1958,1;
monster .@map$,70,87,"Thorn of Magic",1960,1;
monster .@map$,68,83,"Thorn of Pureness",1961,1;
@@ -1922,7 +1922,7 @@ OnEnable:
5@tower,71,1,0 script #Manager Mode5 CLEAR_NPC,{
callfunc "F_GM_NPC";
mes "This NPC manages the crystal on the 100th Level. Please enter the password.";
- set .@i, callfunc("F_GM_NPC","dmc2008",1);
+ .@i = callfunc("F_GM_NPC","dmc2008",1);
next;
if (.@i == 1) {
donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable";
@@ -1982,7 +1982,7 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@mob_dead_num,mobcount(instance_mapname("6@tower"),instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("6@tower"),instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
donpcevent instance_npcname("#1st Beeper")+"::OnEnable";
disablenpc instance_npcname("Tyrant's Throne#");
@@ -2014,7 +2014,7 @@ OnTimer15500:
end;
OnTimer20500:
- set .@map$, instance_mapname("6@tower");
+ .@map$ = instance_mapname("6@tower");
mapannounce .@map$,"Let's see who runs fastest. Are you ready?",bc_map,"0x00ffcc";
stopnpctimer;
areamonster .@map$,151,66,153,106,"Bone Guardian",1152,50,instance_npcname("#1st Beeper")+"::OnMyMobDead";
@@ -2022,8 +2022,8 @@ OnTimer20500:
end;
OnMyMobDead:
- set .@map$, instance_mapname("6@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("#1st Beeper")+"::OnMyMobDead");
+ .@map$ = instance_mapname("6@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#1st Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
donpcevent instance_npcname("#2nd Beeper")+"::OnEnable";
//SetItemPartyInMap in_102floor 101
@@ -2049,7 +2049,7 @@ OnTimer5500:
end;
OnTimer10500:
- set .@map$, instance_mapname("6@tower");
+ .@map$ = instance_mapname("6@tower");
mapannounce .@map$,"I demand an encore!",bc_map,"0x00ffcc";
stopnpctimer;
areamonster .@map$,151,66,153,106,"Wind Guardian",1263,30,instance_npcname("#2nd Beeper")+"::OnMyMobDead";
@@ -2057,8 +2057,8 @@ OnTimer10500:
end;
OnMyMobDead:
- set .@map$, instance_mapname("6@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("#2nd Beeper")+"::OnMyMobDead");
+ .@map$ = instance_mapname("6@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#2nd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
donpcevent instance_npcname("#3rd Beeper")+"::OnEnable";
//SetItemPartyInMap in_102floor 102
@@ -2084,7 +2084,7 @@ OnTimer5500:
end;
OnTimer10500:
- set .@map$, instance_mapname("6@tower");
+ .@map$ = instance_mapname("6@tower");
mapannounce .@map$,"How would you like to play one more round?",bc_map,"0x00ffcc";
stopnpctimer;
areamonster .@map$,151,66,153,106,"Sword Edge Guardian",1132,20,instance_npcname("#3rd Beeper")+"::OnMyMobDead";
@@ -2092,8 +2092,8 @@ OnTimer10500:
end;
OnMyMobDead:
- set .@map$, instance_mapname("6@tower");
- set .@mob_dead_num,mobcount(.@map$,instance_npcname("#3rd Beeper")+"::OnMyMobDead");
+ .@map$ = instance_mapname("6@tower");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#3rd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
donpcevent instance_npcname("#4th Beeper")+"::OnEnable";
//SetItemPartyInMap in_102floor 103
@@ -2119,7 +2119,7 @@ OnTimer5500:
end;
OnTimer10500:
- set .@map$, instance_mapname("6@tower");
+ .@map$ = instance_mapname("6@tower");
mapannounce .@map$,"You'll soon know. Mine is the face of death!",bc_map,"0x00ffcc";
stopnpctimer;
monster .@map$,156,147,"Nacht Sieger",1956,1,instance_npcname("#4th Beeper")+"::OnMyMobDead";
diff --git a/npc/instances/NydhoggsNest.txt b/npc/instances/NydhoggsNest.txt
index 9ccdade10..6538330fc 100644
--- a/npc/instances/NydhoggsNest.txt
+++ b/npc/instances/NydhoggsNest.txt
@@ -32,7 +32,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
specialeffect2 EF_HOLYHIT;
pushpc 3,3;
if (ep13_1_edq == 14)
- set ep13_1_edq,15;
+ ep13_1_edq = 15;
mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...";
next;
mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation.";
@@ -42,7 +42,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
next;
mes "You'll have to obtain the others trust in the expendition camp by working hard.";
}
- set ins_nyd,1;
+ ins_nyd = 1;
close;
case 2:
close;
@@ -54,7 +54,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
next;
mes "It would be better to go back to camp and inform the others and ask for help.";
if (ep13_1_edq == 14 || ep13_1_edq == 15) {
- set ep13_1_edq,15;
+ ep13_1_edq = 15;
close;
}
next;
@@ -78,7 +78,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
mes "In the name of Yggdrasiliad, I will accept you as a servant of the Guardian.";
next;
specialeffect2 EF_CHANGECOLD;
- set ins_nyd,200;
+ ins_nyd = 200;
mes "[Yggdrasil Gatekeeper]";
mes "I accept your entrance through the Guardian's gate. You are now considered a faithful servant of the Guardian Nidhoggur.";
next;
@@ -89,15 +89,15 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
}
} else if (ins_nyd == 131 || ins_nyd == 132 || ins_nyd > 199) {
- set .@party_id,getcharid(1);
- set .@md_name$,"Nidhoggur's Nest";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Nidhoggur's Nest";
- set .@ins_nyd_check,checkquest(3135,PLAYTIME); // 3 Day cooldown
- set .@ins_nyd_check2,checkquest(3136,PLAYTIME); // 4 Hour play limit
+ .@ins_nyd_check = questprogress(3135,PLAYTIME); // 3 Day cooldown
+ .@ins_nyd_check2 = questprogress(3136,PLAYTIME); // 4 Hour play limit
mes "As I put my hands on the stone gate, a voice sounded from the depth of my heart.";
next;
- if (.@ins_nyd_check == -1 && .@ins_nyd_check2 == -1) {
+ if (!.@ins_nyd_check && !.@ins_nyd_check2) {
if (!instance_check_party(.@party_id,2,70)) {
mes "[Yggdrasil Gatekeeper]";
mes "Where are the other servants, so you can work together? Each servant cannot be admitted here individually...";
@@ -115,13 +115,13 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
next;
switch(select("Please allow me to enter.:I want to go in.:I want to leave.")) {
case 1:
- set .@instance, instance_create(.@md_name$, .@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
mes "[Yggdrasil Gatekeeper]";
mes "The Guardian seems to wish to be alone. I will go in and check, please wait out here.";
close;
}
- for( set .@i, 1; .@i <= 2; set .@i, .@i + 1 ) {
+ for (.@i = 1; .@i <= 2; ++.@i) {
if( instance_attachmap(.@i + "@nyd", .@instance) == "" )
break;
}
@@ -150,7 +150,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
close;
goto L_Enter;
} else {
- if (.@ins_nyd_check == 0 || .@ins_nyd_check == 1) {
+ if (.@ins_nyd_check == 1) {
if ('ins_nyd2 == 3 || 'ins_nyd2 == 4) {
mes "[Yggdrasil Gatekeeper]";
mes "With the defeat of Nidhoggur's Shadow, the roots of the World Tree Yggdrasil are also affected.";
@@ -166,7 +166,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
close;
goto L_Enter;
} else if (.@ins_nyd_check == 2) {
- if (.@ins_nyd_check2 == 0 || .@ins_nyd_check2 == 1) {
+ if (.@ins_nyd_check2 == 1) {
mes "[Yggdrasil Gatekeeper]";
mes "The time limit to enter the dungeon has expired. You must wait for the World Tree to stabilize its power before trying to re-enter.";
close;
@@ -178,7 +178,7 @@ nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
mes "If you would like to enter again, please register with me.";
erasequest 3135;
erasequest 3136;
- set 'ins_nyd2,0;
+ 'ins_nyd2 = 0;
close;
}
}
@@ -210,8 +210,8 @@ L_Enter:
close;
} else {
mapannounce "nyd_dun02", getpartyname(getcharid(1))+"'s party member "+strcharinfo(0)+" has entered Nidhoggur's Nest.",bc_map,"0x00ff99";
- if (checkquest(3135) == -1) setquest 3135;
- if (checkquest(3136) == -1) setquest 3136;
+ if (!questprogress(3135)) setquest 3135;
+ if (!questprogress(3136)) setquest 3136;
warp "1@nyd",32,37;
close;
}
@@ -278,7 +278,7 @@ mid_camp,271,299,3 script Historian Magnifier#edq 4_M_SAGE_C,3,3,{
next;
mes "[Historian Magnifier]";
mes "I will definitely help you find a way to enter the World Tree directly so, just believe in me! Okay~!!";
- set ins_nyd,3;
+ ins_nyd = 3;
close;
} else if (ins_nyd == 3) {
mes "Why are you standing there? Go to my assistant in the Prontera Library!";
@@ -336,7 +336,7 @@ mid_camp,271,299,3 script Historian Magnifier#edq 4_M_SAGE_C,3,3,{
next;
mes "[Historian Magnifier]";
mes "I'll also keep searching here. If you find anything, come back and let me know.";
- set ins_nyd,5;
+ ins_nyd = 5;
close;
}
} else if ((ins_nyd == 5) || (ins_nyd == 51) || (ins_nyd == 52)) {
@@ -375,7 +375,7 @@ mid_camp,271,299,3 script Historian Magnifier#edq 4_M_SAGE_C,3,3,{
next;
mes "[Historian Magnifier]";
mes "Let's report to Commander Agip about the situation so far. Then, we wait on his decision.";
- set ins_nyd,7;
+ ins_nyd = 7;
close;
} else if ((ins_nyd == 7) || (ins_nyd == 8)) {
mes "Report to Commander Hibba Agip about what we have discovered, since time is dependent on his decision.";
@@ -412,7 +412,7 @@ mid_camp,271,299,3 script Historian Magnifier#edq 4_M_SAGE_C,3,3,{
prt_in,171,94,3 script Assistant Naomi#edq 4_F_HUWOMAN,3,3,{
mes "[Assistant Naomi]";
- set .@name$,strcharinfo(0);
+ .@name$ = strcharinfo(0);
if (ins_nyd == 3) {
mes "The doctor never ever tries to come back, and there're too many things to do... How can I do it all...";
next;
@@ -519,7 +519,7 @@ prt_in,171,94,3 script Assistant Naomi#edq 4_F_HUWOMAN,3,3,{
next;
mes "[Assistant Naomi]";
mes "Before you go back to the Doctor, you had better read these books. So, I will go back to work.";
- set ins_nyd,4;
+ ins_nyd = 4;
close;
}
} else if (ins_nyd == 4) {
@@ -615,7 +615,7 @@ splendide,198,178,3 script Grumbling Soldier#edq 4_M_FAIRYSOLDIER,3,3,{
next;
mes "[Grumbling Soldier]";
mes "Might be... those Sapha tribesmen have dug in the cave before... They do have a special talent for digging.";
- set ins_nyd,51;
+ ins_nyd = 51;
close;
case 2:
mes "[Grumbling Soldier]";
@@ -675,7 +675,7 @@ splendide,240,164,3 script Sighing Soldier#edq 4_M_FAIRYSOLDIER2,3,3,{
next;
mes "[Sighing Soldier]";
mes "We don't know if the monsters there are strong, so we never checked it out. But on a personal level, nobody wants to go there...";
- set ins_nyd,51;
+ ins_nyd = 51;
close;
case 2:
mes "[Sighing Soldier]";
@@ -761,7 +761,7 @@ spl_in01,109,60,3 script Commander Lebiordirr#edq 4_F_FAIRY,3,3,{
next;
mes "[Commander Lebiordirr]";
mes "Now, if you understand this, inform your friends.";
- set ins_nyd,61;
+ ins_nyd = 61;
close;
} else if (ins_nyd == 61) {
mes "If you can't follow this rule, I will stop associating with you and ban all of your people from here.";
@@ -843,7 +843,7 @@ spl_in01,109,60,3 script Commander Lebiordirr#edq 4_F_FAIRY,3,3,{
next;
mes "[Commander Lebiordirr]";
mes "Here, outsider. Arioss will explain the situation with the giants. Talk with him...";
- set ins_nyd,91;
+ ins_nyd = 91;
close;
} else if ((ins_nyd == 91) || (ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
mes "Outsider. Arioss here will explain the situation with the giants, talk with him...";
@@ -906,7 +906,7 @@ spl_in01,109,60,3 script Commander Lebiordirr#edq 4_F_FAIRY,3,3,{
next;
mes "[Aide Arioss]";
mes "Commander...";
- set ins_nyd,121;
+ ins_nyd = 121;
close;
} else if ((ins_nyd == 121) || (ins_nyd == 131)) {
mes "Strange one, thank you for your cooperation in such situations... Please forget what has happened today...";
@@ -978,7 +978,7 @@ spl_in01,104,56,3 script Aide Arioss#edq 4_F_FAIRYKID2,3,3,{
next;
mes "[Aide Arioss]";
mes "I have already told you what you wanted to know... If you need anything else, just let me know.";
- set ins_nyd,101;
+ ins_nyd = 101;
close;
} else if (ins_nyd == 101) {
mes "Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?";
@@ -1019,7 +1019,7 @@ spl_in01,104,56,3 script Aide Arioss#edq 4_F_FAIRYKID2,3,3,{
next;
mes "[Aide Arioss]";
mes "Please meet the Guardian, and come back with an answer to everything. I believe in you.";
- set ins_nyd,111;
+ ins_nyd = 111;
close;
} else if ((ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
mes "Please meet with the Guardian and take a wise answer from him. I will trust you.";
@@ -1039,7 +1039,7 @@ spl_in01,104,56,3 script Aide Arioss#edq 4_F_FAIRYKID2,3,3,{
mes "It can't compare with the effort you have put in for us... but please accept our token of friendship.";
getexp 1500000,350000;
getitem 6081,10; //Splendide_Coin
- set ins_nyd,131;
+ ins_nyd = 131;
mes "[Aide Arioss]";
mes "If we can help you with anything in the future, we will do all we can to assist you. Once again, thank you.";
close;
@@ -1140,7 +1140,7 @@ man_in01,311,57,3 script Neat Etorr#edq 4_MAN_NITT,3,3,{
next;
mes "[Neat Etorr]";
mes "You have heard it all, now please report back to your race.";
- set ins_nyd,62;
+ ins_nyd = 62;
close;
} else if (ins_nyd == 62) {
mes "That captive is the only reference for our tribe, so we have taken good care of her. She is related to your current investigation.";
@@ -1225,7 +1225,7 @@ man_in01,311,57,3 script Neat Etorr#edq 4_MAN_NITT,3,3,{
next;
mes "[Neat Etorr]";
mes "Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.";
- set ins_nyd,92;
+ ins_nyd = 92;
close;
} else if ((ins_nyd == 92) || (ins_nyd == 102) || (ins_nyd == 112) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
mes "Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.";
@@ -1275,7 +1275,7 @@ man_in01,311,57,3 script Neat Etorr#edq 4_MAN_NITT,3,3,{
mes "It's not a lot, but please this as a token of our appreciation.";
getexp 1500000,350000;
getitem 6080,10; //Manuk_Coin
- set ins_nyd,132;
+ ins_nyd = 132;
close;
} else if (ins_nyd == 132) {
mes "Strange one, thank you for helping us in the time of need. I will never forget your kindness.";
@@ -1345,7 +1345,7 @@ man_in01,291,62,3 script Laphine Prisoner#edq 4_F_FAIRYKID2,3,3,{
next;
mes "[Laphine Prisoner]";
mes "I just want to say this...if the Sapha tribe intrude that place, we will never forgive them!";
- set ins_nyd,52;
+ ins_nyd = 52;
close;
case 3:
mes "[Laphine Prisoner]";
@@ -1420,7 +1420,7 @@ man_in01,291,62,3 script Laphine Prisoner#edq 4_F_FAIRYKID2,3,3,{
next;
mes "[Laphine Prisoner]";
mes "I have already told you everything you wanted to hear. If you have any other requests, please let me know.";
- set ins_nyd,102;
+ ins_nyd = 102;
close;
} else if (ins_nyd == 102) {
mes "Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?";
@@ -1461,7 +1461,7 @@ man_in01,291,62,3 script Laphine Prisoner#edq 4_F_FAIRYKID2,3,3,{
next;
mes "[Laphine Prisoner]";
mes "Please meet the Guardian, and come back with an answer to everything. And tell the answer to...";
- set ins_nyd,112;
+ ins_nyd = 112;
close;
} else if ((ins_nyd == 71) || (ins_nyd == 81) || (ins_nyd == 91) || (ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 121) || (ins_nyd == 131)) {
mes "... ...";
@@ -1555,7 +1555,7 @@ OnTouch_:
mes "[World Tree Yggdrasil]";
mes "My soul... it has been trapped here. You're the only ones I can trust now.";
next;
- set .@exit,1;
+ .@exit = 1;
}
if (.@exit) break;
}
@@ -1608,7 +1608,7 @@ OnTouch_:
next;
mes "[World Tree Yggdrasil]";
mes "And... Be careful... Be careful of the shadow's power.";
- set 'ins_nyd2,1;
+ 'ins_nyd2 = 1;
donpcevent instance_npcname("ins_nyd_1f_timer")+"::OnEnable";
donpcevent instance_npcname("nyd_call_mon_1")+"::OnEnable";
close;
@@ -1665,7 +1665,7 @@ OnTouch:
end;
OnInstanceInit: // Temporary fix for @reloadscript.
- set 'ins_nyd2,0;
+ 'ins_nyd2 = 0;
end;
}
@@ -1675,7 +1675,7 @@ OnInstanceInit:
end;
OnEnable:
- set .@map$, instance_mapname("1@nyd");
+ .@map$ = instance_mapname("1@nyd");
monster .@map$,220,250,"Nidhoggur's Guardian#1",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
monster .@map$,220,252,"Nidhoggur's Guardian#2",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
monster .@map$,240,270,"Nidhoggur's Guardian#3",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
@@ -1697,13 +1697,13 @@ OnDisable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@nyd");
- set .@mob_dead_num,mobcount(.@map$, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@nyd");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
mapannounce .@map$, "All of Nidhoggur's Guardians have been defeated!",bc_map,"0x00ff99";
donpcevent instance_npcname("ins_nyd_1f_timer")+"::OnDisable";
donpcevent instance_npcname("nyd_to2f_warp")+"::OnEnable";
- set 'ins_nyd2,2;
+ 'ins_nyd2 = 2;
}
end;
}
@@ -1763,14 +1763,14 @@ OnEnable:
end;
OnTouch:
- set 'ins_nyd2,3;
+ 'ins_nyd2 = 3;
warp instance_mapname("2@nyd"),200,10;
end;
}
1@nyd,1,1,0 script ins_nyd1_spawn_mobs -1,{
OnInstanceInit:
- set .@map$, instance_mapname("1@nyd");
+ .@map$ = instance_mapname("1@nyd");
monster .@map$,0,0,"Ancient Tree",2019,40,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyTreeDead";
monster .@map$,0,0,"Rhyncho",2020,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyRhynDead";
monster .@map$,0,0,"Phylla",2021,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPhyDead";
@@ -1862,7 +1862,7 @@ OnInstanceInit:
OnEnable:
enablenpc instance_npcname("nyd_2f_boss_enter_call");
- set .@map$, instance_mapname("2@nyd");
+ .@map$ = instance_mapname("2@nyd");
monster .@map$,199,327,"Nidhoggur's Shadow",2022,1,instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead";
mapannounce .@map$, "Nidhoggur's Shadow : I will devour all of you... you and the World Tree Yggdrasil.",bc_map,"0x00ff99";
//donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnGo";
@@ -1877,7 +1877,7 @@ OnDisable:
OnTimer180000:
stopnpctimer;
OnWarpColor:
- set .@map$, instance_mapname("2@nyd");
+ .@map$ = instance_mapname("2@nyd");
switch(rand(1,4)) {
case 1:
mapannounce .@map$, "Nidhoggur's Shadow : In this chaos... your blood is just what I need.",bc_map,"0xFFFF00";
@@ -1915,7 +1915,7 @@ OnWarpColor:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@nyd");
+ .@map$ = instance_mapname("2@nyd");
if (mobcount(.@map$,instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead") < 1) {
mapannounce .@map$, "Nidhoggur's Shadow : World Tree Yggdrasil's guardian... his powers are disappearing...",bc_map,"0x00ff99";
donpcevent instance_npcname("World Tree Yggdrasil#2F")+"::OnEnable";
@@ -1925,7 +1925,7 @@ OnMyMobDead:
donpcevent instance_npcname("nyd_2f_white_c")+"::OnDisable";
donpcevent instance_npcname("nyd_2f_yellow_c")+"::OnDisable";
donpcevent instance_npcname("nyd_2f_green_c")+"::OnDisable";
- set 'ins_nyd2,4;
+ 'ins_nyd2 = 4;
end;
}
end;
@@ -1976,8 +1976,8 @@ OnTimer180000:
next;
switch(select("Please let me out.:I want to look around for a while.")) {
case 1:
- set 'ins_nyd2,0;
- set ins_nyd,203;
+ 'ins_nyd2 = 0;
+ ins_nyd = 203;
//setquest 3135;
warp "nyd_dun02",98,196;
end;
@@ -2051,8 +2051,8 @@ OnInstanceInit:
OnEnable:
enablenpc instance_npcname(strnpcinfo(0));
initnpctimer;
- set .@map$, instance_mapname("2@nyd");
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@map$ = instance_mapname("2@nyd");
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
if (compare(strnpcinfo(0),"red")) {
monster .@map$,120,285,"Nidhoggur's Guardian#1",2020,1,.@label$;
monster .@map$,119,286,"Nidhoggur's Guardian#2",2020,1,.@label$;
@@ -2081,7 +2081,7 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@nyd");
+ .@map$ = instance_mapname("2@nyd");
if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
mapannounce .@map$, "Nidhoggur's Shadow : You're not bad... but I will be your opponent this time.",bc_map,"0x00ff99";
donpcevent instance_npcname("nyd_2f_boss_enter_logic")+"::OnEnable";
@@ -2155,7 +2155,7 @@ OnTouch:
2@nyd,1,1,0 script ins_nyd2_spawn_mobs -1,{
OnInstanceInit:
- set .@map$, instance_mapname("2@nyd");
+ .@map$ = instance_mapname("2@nyd");
areamonster .@map$,200,92,180,80,"Rhyncho",2020,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyRhynDead";
areamonster .@map$,200,92,180,80,"Phylla",2021,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPhyDead";
areamonster .@map$,200,92,180,80,"Dark Shadow",2023,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyDarkshaDead";
@@ -2193,8 +2193,8 @@ sec_in02,36,167,3 script Nidhoggur Manager 4_M_FAIRYSOLDIER,1,1,{
next;
switch(select("Reset variables to allow entrance to Nidhoggur:change variable 'ins_nyd':Remove 3 day timer 3135:Confirm variable number")) {
case 1:
- set ins_nyd,200;
- set ins_nyd2,0;
+ ins_nyd = 200;
+ ins_nyd2 = 0;
erasequest 3135;
mes "ins_nyd set to 200 ins_nyd2 set to 0";
mes "quest 3135 erased.";
@@ -2203,8 +2203,8 @@ sec_in02,36,167,3 script Nidhoggur Manager 4_M_FAIRYSOLDIER,1,1,{
mes "Which variable do you want to change?";
next;
switch(select("ins_nyd:ins_nyd2")) {
- case 1: set .@var$,"ins_nyd"; break;
- case 2: set .@var$,"ins_nyd2"; break;
+ case 1: .@var$ = "ins_nyd"; break;
+ case 2: .@var$ = "ins_nyd2"; break;
}
mes "Input the variable number";
next;
@@ -2228,7 +2228,7 @@ sec_in02,36,167,3 script Nidhoggur Manager 4_M_FAIRYSOLDIER,1,1,{
nyd_dun02,7,7,2 script Purification Admin#nyd2 CLEAR_NPC,2,0,{
callfunc "F_GM_NPC";
mes "Please enter the password";
- set .@i, callfunc("F_GM_NPC","dragonslayer",1);
+ .@i = callfunc("F_GM_NPC","dragonslayer",1);
next;
if (.@i == 0) {
mes "Enter the password exactly.";
@@ -2259,8 +2259,8 @@ nyd_dun02,7,7,2 script Purification Admin#nyd2 CLEAR_NPC,2,0,{
nyd_dun02,88,195,4 script Purification Stone#nyd2 2_MONEMUS,{
erasequest 3135;
erasequest 3136;
- set ins_nyd,200;
- set ins_nyd2,0;
+ ins_nyd = 200;
+ ins_nyd2 = 0;
mes "^0000FFThe records and after-effect related to the Nidhoggur's Nest have been removed. You can generate and enter the dungeon again.^000000";
close;
OnInit:
diff --git a/npc/instances/OrcsMemory.txt b/npc/instances/OrcsMemory.txt
index 55f88f99d..e43e3df10 100644
--- a/npc/instances/OrcsMemory.txt
+++ b/npc/instances/OrcsMemory.txt
@@ -42,23 +42,23 @@
//============================================================
gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{
- set .@party_id,getcharid(1);
- set .@p_name$,getpartyname(.@party_id);
- set .@md_name$,"Orc's Memory";
+ .@party_id = getcharid(1);
+ .@p_name$ = getpartyname(.@party_id);
+ .@md_name$ = "Orc's Memory";
if (!instance_check_party(.@party_id,2,30,80)) {
mes "Only users between Levels ^ff000030 ~ 80^000000 can enter this Dungeon.";
close;
}
- set .@orctime,checkquest(12059,PLAYTIME);
- if (.@orctime == -1) {
+ .@orctime = questprogress(12059,PLAYTIME);
+ if (!.@orctime) {
if (getcharid(0) == getpartyleader(.@party_id,2)) {
mes "Party status confirmed. Would you like to book entrance to the "+.@md_name$+"?";
next;
switch(select("Reserve the "+.@md_name$+":Enter the Dungeon:Cancel")) {
case 1:
- set .@instance,instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "Party Name: "+.@p_name$;
mes "Party Leader: "+strcharinfo(0);
@@ -66,7 +66,7 @@ gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{
close;
}
mes "^0000ff"+.@md_name$+"^000000- Attempting to book an entrance";
- for( set .@i, 1; .@i <= 2; set .@i, .@i + 1 ) {
+ for (.@i = 1; .@i <= 2; ++.@i) {
if( instance_attachmap(.@i + "@orcs", .@instance) == "" )
break;
}
@@ -87,7 +87,7 @@ gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{
if(select(.@md_name$ + " Enter the Memorial Dungeon:Cancel") == 2)
end;
callsub L_Enter,1;
- } else if (.@orctime == 0 || .@orctime == 1) {
+ } else if (.@orctime == 1) {
mes "You can enter the Dungeon if it has been generated.";
next;
if(select("Enter the Dungeon "+.@md_name$+":Cancel") == 2)
@@ -110,7 +110,7 @@ L_Enter:
close;
} else {
mapannounce "gef_fild10", .@p_leader$ + " of the party, " + .@p_name$ + " is entering the "+.@md_name$+".",bc_map,"0x00ff99";
- if (checkquest(12059)== -1) setquest 12059;
+ if (!questprogress(12059)) setquest 12059;
warp "1@orcs",179,15;
end;
}
@@ -158,7 +158,7 @@ gef_fild10,238,202,6 script Mad Scientist#orc 4_LGTSCIENCE,{
case 1:
mes "[Mad Scientist]";
mes "Very good! Just sit in the hands of this statue! And try to act natural when you're in there!";
- set mad,1;
+ mad = 1;
close;
case 2:
mes "[Mad Scientist]";
@@ -170,7 +170,7 @@ gef_fild10,238,202,6 script Mad Scientist#orc 4_LGTSCIENCE,{
mes "Hmm? Put your hand on that Monemus Statue if you want to experience traveling through dimensions!";
close;
} else {
- set mad,1;
+ mad = 1;
end;
}
}
@@ -195,10 +195,10 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@orcs");
- set .@mob_dead_num, 30 - mobcount(.@map$,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@orcs");
+ .@mob_dead_num = 30 - mobcount(.@map$,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
- set .@mob_ran,rand(1,30);
+ .@mob_ran = rand(1,30);
if (.@mob_ran > 29) {
monster .@map$,0,0,"Orc Warrior",1023,.@mob_dead_num,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
}
@@ -231,7 +231,7 @@ OnTimer10:
end;
OnTimer4010:
- set .@map$, instance_mapname("1@orcs");
+ .@map$ = instance_mapname("1@orcs");
mapannounce .@map$, "Stalactic Golems are digging out of the deep underground.",bc_map,"0x77ff77";
areamonster .@map$,17,187,27,177,"Stalactic Golem",1278,20,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
stopnpctimer;
@@ -255,8 +255,8 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@orcs");
- set .@mob_dead_num, 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@orcs");
+ .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
if (rand(1,30) > 15) {
if (.@mob_dead_num > 0) {
monster .@map$,0,0,"Trained Wolf",1106,.@mob_dead_num,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead";
@@ -287,9 +287,9 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@orcs");
- set .@mob_dead_num, 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
- set .@mob_ran,rand(1,30);
+ .@map$ = instance_mapname("1@orcs");
+ .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
+ .@mob_ran = rand(1,30);
if (.@mob_ran > 29) {
if (.@mob_dead_num > 0) {
monster .@map$,0,0,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
@@ -320,8 +320,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@orcs");
- set .@mob_dead_num, 10 - mobcount(.@map$,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@orcs");
+ .@mob_dead_num = 10 - mobcount(.@map$,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
monster .@map$,0,0,"Anopheles",1627,.@mob_dead_num,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead";
}
@@ -542,10 +542,10 @@ OnDisable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@orcs");
- set .@mob_dead_num, 30 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("2@orcs");
+ .@mob_dead_num = 30 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
- set .@mob_ran,rand(1,30);
+ .@mob_ran = rand(1,30);
if (.@mob_ran > 29) {
monster .@map$,0,0,"Vengeful Orc",1152,.@mob_dead_num,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
}
@@ -575,7 +575,7 @@ OnTimer10:
end;
OnTimer4010:
- set .@map$, instance_mapname("2@orcs");
+ .@map$ = instance_mapname("2@orcs");
mapannounce .@map$, "[ Wraiths were summoned by an unknown power ]",bc_map,"0x77ff77";
areamonster .@map$,167,25,177,35,"Wraith",1475,30,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
stopnpctimer;
@@ -595,9 +595,9 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@orcs");
- set .@mob_dead_num, 15 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
- set .@mob_ran,rand(1,30);
+ .@map$ = instance_mapname("2@orcs");
+ .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
+ .@mob_ran = rand(1,30);
if (.@mob_ran > 29) {
if (.@mob_dead_num > 0) {
monster .@map$,0,0,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
@@ -632,8 +632,8 @@ OnInstanceInit:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@orcs");
- set .@mob_dead_num, 10 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
+ .@map$ = instance_mapname("2@orcs");
+ .@mob_dead_num = 10 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
monster .@map$,0,0,"Anopheles",1627,1,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead";
}
@@ -727,7 +727,7 @@ OnInstanceInit:
end;
OnEnable:
- set .@map$, instance_mapname("2@orcs");
+ .@map$ = instance_mapname("2@orcs");
monster .@map$,109,156,"Safeguard Chief",1981,1,instance_npcname("#Mobs Control")+"::OnMyMobDead1";
mapannounce .@map$, "The Chief Orc of Safeguards: Oh!! Looks like I have company. Defeat me if you can!!",bc_map,"0xff8888";
end;
@@ -758,7 +758,7 @@ OnInstanceInit:
end;
OnEnable:
- set .@map$, instance_mapname("2@orcs");
+ .@map$ = instance_mapname("2@orcs");
monster .@map$,67,64,"Orc Sniper",1982,1,instance_npcname("#Mobs Control")+"::OnMyMobDead2";
mapannounce .@map$, "Orc Sniper: Hah! Pretty impressive that you made it this far, but your foolish little trip ends here...",bc_map,"0xff8888";
end;
@@ -789,7 +789,7 @@ OnInstanceInit:
end;
OnEnable:
- set .@map$, instance_mapname("2@orcs");
+ .@map$ = instance_mapname("2@orcs");
monster .@map$,152,147,"Depraved Orc Spirit",1983,1,instance_npcname("#Mobs Control")+"::OnMyMobDead3";
mapannounce .@map$, "Depraved Orc Spirit: I smell flesh! Hungry! Wanna try some human meat!!",bc_map,"0xff8888";
end;
@@ -831,7 +831,7 @@ OnInstanceInit:
end;
OnEnable:
- set .@map$, instance_mapname("2@orcs");
+ .@map$ = instance_mapname("2@orcs");
monster .@map$,185,8,"Shaman Cargalache",1984,1,instance_npcname("#Boss Control")+"::OnMyMobDead";
monster .@map$,179,15,"Depraved Orc Hero",1087,1;
enablenpc instance_npcname("#Boss Control");
@@ -839,8 +839,8 @@ OnEnable:
OnMyMobDead:
donpcevent instance_npcname("Kruger#")+"::OnEnable";
- set .@map$, instance_mapname("2@orcs");
- set .@mob_ran,rand(1,5);
+ .@map$ = instance_mapname("2@orcs");
+ .@mob_ran = rand(1,5);
if (.@mob_ran == 1) {
mapannounce .@map$, "Shaman Cargalache: How... How could this be... How could someone like you...!!",bc_map,"0xffff00";
}
@@ -900,7 +900,7 @@ OnTouch:
mes "Thank you, I'm sure she's finally free from the nightmare that used to choke her soul.";
next;
mes "Kruger was about to say something more, but he breathed his last breath before he could...";
- set yong_odun,2;
+ yong_odun = 2;
close;
}
else {
diff --git a/npc/instances/SealedShrine.txt b/npc/instances/SealedShrine.txt
index 215ceffeb..82267be7a 100644
--- a/npc/instances/SealedShrine.txt
+++ b/npc/instances/SealedShrine.txt
@@ -42,11 +42,11 @@ monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
mes "What brought you to this place?";
next;
if (countitem(6004) > 0) {
- set .@doll,1;
- set .@selection,select("What is this place?:I want to enter.:About the Cursed Baphomet Doll.:Cancel.");
+ .@doll = 1;
+ .@selection = select("What is this place?:I want to enter.:About the Cursed Baphomet Doll.:Cancel.");
}
else {
- set .@selection,select("What is this place?:I want to enter.:Cancel.");
+ .@selection = select("What is this place?:I want to enter.:Cancel.");
}
switch(.@selection) {
case 1:
@@ -99,28 +99,28 @@ monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
case 2:
if (BaseLevel >= 75) {
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
mes "[Friar Patrick]";
mes "Do you mean you'll go to the shrine and reseal Baphomet?";
next;
// 12 hour cooldown
- set .@ins_bapho_check,checkquest(3040,PLAYTIME);
+ .@ins_bapho_check = questprogress(3040,PLAYTIME);
// Two hour play limit
- //set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
+ //.@ins_bapho_check2 = questprogress(3045,PLAYTIME);
- if (.@ins_bapho_check == -1) {
+ if (!.@ins_bapho_check) {
if (getpartyleader(.@party_id,2) == getcharid(0) && instance_check_party(.@party_id,2,75)) {
mes "[Friar Patrick]";
mes "Party name is "+getpartyname(.@party_id)+"...";
mes "Name of the leader is "+strcharinfo(0)+"...";
- set .@instance, instance_create("Sealed Catacomb",.@party_id);
+ .@instance = instance_create("Sealed Catacomb",.@party_id);
if (.@instance < 0) {
mes "Umm... But it seems that there is a problem here... I'll check quickly. Please wait.";
}
else {
- for( set .@i, 1; .@i <= 2; set .@i, .@i + 1 ) {
+ for (.@i = 1; .@i <= 2; ++.@i) {
if( instance_attachmap("" + .@i + "@cata", .@instance) == "" )
break;
}
@@ -158,7 +158,7 @@ monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
mes "Once the party leader is permitted, the rest of the party can enter. This is a rule of this monastery, so please understand.";
}
}
- else if (.@ins_bapho_check == 0 || .@ins_bapho_check == 1) {
+ else if (.@ins_bapho_check == 1) {
mes "[Friar Patrick]";
mes "It seems you have entered this shrine recently... You cannot reenter because Baphomet's Curse still remains. Baphomet's Curse disappears only after a certain amount of time has passed.";
}
@@ -170,8 +170,8 @@ monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
mes "Haaaaaaap... Hocus Pocus Wingardium Abracadabra!!!!!";
next;
erasequest 3040;
- if (checkquest(3041)>=0) erasequest 3041;
- if (checkquest(3045)>=0) erasequest 3045;
+ if (questprogress(3041)) erasequest 3041;
+ if (questprogress(3045)) erasequest 3045;
mes "[Friar Patrick]";
mes "Huu... It's over. Now that I've released Baphomet's Curse, you can enter again.";
}
@@ -224,11 +224,11 @@ monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
close;
// 12 hour cooldown
- set .@ins_bapho_check,checkquest(3040,PLAYTIME);
+ .@ins_bapho_check = questprogress(3040,PLAYTIME);
// Two hour play limit
- //set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
+ //.@ins_bapho_check2 = questprogress(3045,PLAYTIME);
- if (.@ins_bapho_check == -1) {
+ if (!.@ins_bapho_check) {
if (has_instance("1@cata") == "") {
mes "It's cold to the touch. It doesn't respond.";
close;
@@ -238,7 +238,7 @@ monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
warp "1@cata",100,224;
end;
}
- } else if (.@ins_bapho_check == 0 || .@ins_bapho_check == 1) {
+ } else if (.@ins_bapho_check == 1) {
mes "[Friar Patrick]";
mes "It seems you have entered this shrine recently... You cannot reenter because the curse of Baphomet still remains.";
mes "The curse of Baphomet disappears after a certain amount of time after you entered.";
@@ -251,8 +251,8 @@ monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
mes "Haaaaaaap... Wingardium Leviosa Expecto Patronum !!!!!";
specialeffect2 EF_HOLYHIT;
erasequest 3040;
- if (checkquest(3041)>=0) erasequest 3041;
- if (checkquest(3045)>=0) erasequest 3045;
+ if (questprogress(3041)) erasequest 3041;
+ if (questprogress(3045)) erasequest 3045;
next;
mes "[Friar Patrick]";
mes "Huu... It's over. Now I released all of the curses on you. You can enter again.";
@@ -261,14 +261,14 @@ monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
}
prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
- set .@new_maje,checkquest(3043);
+ .@new_maje = questprogress(3043);
mes "[Rust Blackhand]";
mes "Who are you? What do you want me for?";
next;
mes "[Rust Blackhand]";
mes "You're not a monk, then what do you want?";
next;
- if (.@new_maje == 0 || .@new_maje == 1) {
+ if (.@new_maje == 1) {
mes "[Rust Blackhand]";
mes "Did you bring all of the ingredients?";
next;
@@ -311,7 +311,7 @@ prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
close;
}
}
- else if ((.@new_maje == -1) && (countitem(6004) > 0)) {
+ else if (!.@new_maje && countitem(6004) > 0) {
switch(select("About the Cursed Baphomet Doll:Stop talking.")) {
case 1:
mes "[Rust Blackhand]";
@@ -364,12 +364,12 @@ prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
close;
}
}
- else if ((.@new_maje == -1) && (countitem(6004) == 0)) {
+ else if (!.@new_maje && countitem(6004) == 0) {
mes "[Rust Blackhand]";
mes "If you don't have business with me, go away! As you see, I make equipment for the Brothers at the monastery, not for adventurers like you. Do you understand?";
close;
}
- else if ((.@new_maje == 2) && (countitem(6004) > 0)) {
+ else if (.@new_maje == 2 && countitem(6004) > 0) {
switch(select("About the Cursed Baphomet Doll:Stop talking.")) {
case 1:
mes "[Rust Blackhand]";
@@ -420,7 +420,7 @@ prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
close;
}
}
- else if ((.@new_maje == 2) && (countitem(6004) == 0)) {
+ else if (.@new_maje == 2 && countitem(6004) == 0) {
mes "[Rust Blackhand]";
mes "Why are you hanging around here? If you don't want a ^4d4dffGigantic Magestic Goat^000000, go away.";
close;
@@ -432,8 +432,8 @@ prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
1@cata,1,2,0 script ins_baphomet_lotto -1,{
OnInstanceInit:
// Pick one "true" Gravestone and 12 "false" Gravestones.
- set .@true, rand(1,13);
- for(set .@i,1; .@i<13; set .@i,.@i+1) {
+ .@true = rand(1,13);
+ for (.@i = 1; .@i<13; ++.@i) {
disablenpc instance_npcname("Gravestone#1F_1"+((.@i == .@true)?"F":"T"));
}
disablenpc instance_npcname("ins_baphomet_lotto");
@@ -442,15 +442,15 @@ OnInstanceInit:
1@cata,3,2,0 script ins_baphomet_lotto2 -1,{
OnEnable:
- for(set .@i,1; .@i<12; set .@i,.@i+1)
+ for (.@i = 1; .@i < 12; ++.@i)
enablenpc instance_npcname("Bobbing Torch#"+.@i);
end;
}
1@cata,4,2,0 script ins_baphomet_lotto3 -1,{
OnEnable:
- set .@label$, instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@cata");
+ .@label$ = instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@cata");
monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
monster .@map$,0,0,"Apostle of Baphomet",1291,1,.@label$;
monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
@@ -473,7 +473,7 @@ OnDisable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@cata");
+ .@map$ = instance_mapname("1@cata");
if (mobcount(.@map$,instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead") < 1) {
mapannounce .@map$, "All apostles of Baphomet are dead!",bc_map,"0x00ff99";
}
@@ -484,7 +484,7 @@ OnMyMobDead:
// Soul of hero near the north grave
//============================================================
1@cata,141,221,0 script Gravestone# CLEAR_NPC,3,3,{
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
if ('ins_baphomet == 0) {
mes "The gravestone is trembling...";
next;
@@ -522,7 +522,7 @@ OnMyMobDead:
next;
mes "[Voice of the Gravestone]";
mes "If your ^0000FFparty leader^000000 brings me the pendant, my soul can be substantialized. So, hurry up.";
- set 'ins_baphomet,1;
+ 'ins_baphomet = 1;
close;
case 3:
mes "I can feel the voice becoming faint.";
@@ -586,12 +586,12 @@ OnTouch:
end;
OnInstanceInit: // Temporary fix for @reloadscript.
- set 'ins_baphomet,0;
+ 'ins_baphomet = 0;
end;
}
1@cata,176,119,4 script Ancient Hero's Soul#1F 4_M_CHAMPSOUL,{
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
cutin "ins_cata_champ_n",2;
if ('ins_baphomet == 2) {
mes "[Ancient Hero's Soul]";
@@ -610,7 +610,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
cutin "ins_cata_champ_n",2;
switch(select("What is Essence of Fire?:What is a Token of Apostle?:What should I do?:I am ready.")) {
case 1:
- set .@ins_baphomet_1f_1,.@ins_baphomet_1f_1+1;
+ ++.@ins_baphomet_1f_1;
mes "[Ancient Hero's Soul]";
mes "You can see the torches here and there. These torches are the essence of Thor, the god of Thunder. They are inherited from our predecessors to stop the darkness of Baphomet...";
next;
@@ -625,7 +625,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
next;
break;
case 2:
- set .@ins_baphomet_1f_2,.@ins_baphomet_1f_2+1;
+ ++.@ins_baphomet_1f_2;
mes "[Ancient Hero's Soul]";
mes "At that time, it was impossible to get rid of Devil Baphomet by ourselves. After numerous heroes sacrificed their lives, we could barely seal him under this Abbey.";
next;
@@ -652,7 +652,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
next;
break;
case 3:
- set .@ins_baphomet_1f_3,.@ins_baphomet_1f_3+1;
+ ++.@ins_baphomet_1f_3;
if (getpartyleader(.@party_id,2) == getcharid(0)) {
mes "[Ancient Hero's Soul]";
mes "You look like the leader of this party. You need to go and get ^0000FF10 Essence of Fire^000000 from the torches.";
@@ -690,7 +690,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
mes "[Ancient Hero's Soul]";
mes "Are you ready to go? Then I'll open this sealed gate now.";
next;
- set .@exitloop,1;
+ .@exitloop = 1;
}
else {
cutin "ins_cata_champ_a",2;
@@ -708,7 +708,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
if (getpartyleader(.@party_id,2) == getcharid(0)) {
mes "[Ancient Hero's Soul]";
mes "To remind you again, I must be substantialized within the next hour. So everyone, finish your work within that time!";
- set 'ins_baphomet,3;
+ 'ins_baphomet = 3;
donpcevent instance_npcname("ins_baphomet_1f_timer")+"::OnEnable";
donpcevent instance_npcname("ins_baphomet_lotto2")+"::OnEnable";
donpcevent instance_npcname("ins_baphomet_lotto3")+"::OnEnable";
@@ -716,7 +716,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
else {
mes "[Ancient Hero's Soul]";
mes "To remind you again, I can be substantialized for the next hour. So everyone, finish your work within that time.";
- //set 'ins_baphomet,3;
+ //'ins_baphomet = 3;
}
close2;
cutin "",255;
@@ -729,7 +729,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
next;
if ((countitem(6001) > 9) && (countitem(6002) > 0)) {
delitem 6001,countitem(6001); //Essence_Of_Fire
- set 'ins_baphomet,4;
+ 'ins_baphomet = 4;
mes "[Ancient Hero's Soul]";
mes "Okay. You've done your work. Now check your companions and tell me when everyone has finished their work.";
}
@@ -747,7 +747,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
mes "Do you have a ^0000FFToken of Apostle^000000?";
next;
if (countitem(6002) > 0) {
- set 'ins_baphomet,4;
+ 'ins_baphomet = 4;
mes "[Ancient Hero's Soul]";
mes "Okay. You've done your work. Tell your representative to check your companions and come to me when everyone has finished their work.";
}
@@ -764,7 +764,7 @@ OnInstanceInit: // Temporary fix for @reloadscript.
mes "[Ancient Hero's Soul]";
mes "Are you ready? I opened the sealed gate. To pass the gate, you should carry a ^0000FFToken of Apostle^000000.";
next;
- set 'ins_baphomet,5;
+ 'ins_baphomet = 5;
specialeffect EF_TELEPORTATION;
enablenpc instance_npcname("ins_bapho_to_2f");
mes "[Ancient Hero's Soul]";
@@ -815,7 +815,7 @@ OnInstanceInit:
OnTouch:
if (countitem(6002) > 0) {
delitem 6002,countitem(6002); //Token_Of_Apostle
- set 'ins_baphomet,5;
+ 'ins_baphomet = 5;
warp instance_mapname("2@cata"),80,144;
end;
}
@@ -835,7 +835,7 @@ OnInstanceInit:
- script Gravestone#SS1 -1,{
if ('ins_baphomet == 1) {
getitem 6003,1; //Soul_Pendant
- set 'ins_baphomet,2;
+ 'ins_baphomet = 2;
mes "A small object is shining under a leaning grave.";
next;
mes "[" + strcharinfo(0) + "]";
@@ -882,7 +882,7 @@ OnInstanceInit:
// Bobbing Torches
//============================================================
- script Bobbing Torch#SS -1,{
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
if (getpartyleader(.@party_id,2) == getcharid(0)) {
if (('ins_baphomet == 3) && (countitem(6001) < 11)) {
mes "A huge torch appearing as if it can burn everything is bobbing up and down in front of me.";
@@ -1011,7 +1011,7 @@ OnTimer18000:
2@cata,50,67,0 script slave_left -1,5,5,{
OnTouch:
- set .@map$, instance_mapname("2@cata");
+ .@map$ = instance_mapname("2@cata");
mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
monster .@map$,55,67,"Apostle of Baphomet",1869,1;
monster .@map$,51,67,"Apostle of Baphomet",1291,1;
@@ -1035,7 +1035,7 @@ OnTouch:
2@cata,109,67,0 script slave_right -1,5,5,{
OnTouch:
- set .@map$, instance_mapname("2@cata");
+ .@map$ = instance_mapname("2@cata");
mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
monster .@map$,105,67,"Apostle of Baphomet",1869,1;
monster .@map$,104,67,"Apostle of Baphomet",1291,1;
@@ -1059,7 +1059,7 @@ OnTouch:
2@cata,79,39,0 script slave_down -1,5,5,{
OnTouch:
- set .@map$, instance_mapname("2@cata");
+ .@map$ = instance_mapname("2@cata");
mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
monster .@map$,78,41,"Apostle of Baphomet",1869,1;
monster .@map$,79,42,"Apostle of Baphomet",1291,1;
@@ -1084,8 +1084,8 @@ OnTouch:
// Magical Seals
//============================================================
- script Magical Seal#SS -1,{
- set .@seal_check,checkquest(3041,PLAYTIME);
- if (.@seal_check == 0 || .@seal_check == 1) {
+ .@seal_check = questprogress(3041,PLAYTIME);
+ if (.@seal_check == 1) {
specialeffect2 EF_SILENCEATTACK;
percentheal -50,0;
sc_start Eff_Stone,30000,0;
@@ -1095,7 +1095,7 @@ OnTouch:
if (.@seal_check == 2) erasequest 3041;
specialeffect EF_LEXDIVINA;
disablenpc instance_npcname(strnpcinfo(0));
- set .@map$, instance_mapname("2@cata");
+ .@map$ = instance_mapname("2@cata");
if (strnpcinfo(2) == "0") areamobuseskill .@map$,79,81,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
else if (strnpcinfo(2) == "2") areamobuseskill .@map$,123,109,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
else if (strnpcinfo(2) == "4") areamobuseskill .@map$,123,22,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
@@ -1121,7 +1121,7 @@ OnInstanceInit:
2@cata,35,109,0 duplicate(Magical Seal#SS) Magical Seal#10 CLEAR_NPC
2@cata,79,65,0 script The Main Altar#ss CLEAR_NPC,{
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
if (('ins_baphomet == 5) && (getpartyleader(.@party_id,2) == getcharid(0))) {
mes "An evil power, too terrible to describe, lies under the great altar radiating a violet color.";
next;
@@ -1133,7 +1133,7 @@ OnInstanceInit:
specialeffect EF_METEORSTORM;
mes "[" + strcharinfo(0) + "]";
mes "Watch out! Something... Something is coming.";
- set 'ins_baphomet,6;
+ 'ins_baphomet = 6;
donpcevent instance_npcname("ins_2f_hero_broad")+"::OnEnable";
disablenpc instance_npcname("The Main Altar#ss");
close;
@@ -1149,7 +1149,7 @@ OnInstanceInit:
2@cata,80,63,4 script Ancient Hero's Soul#2F 4_M_CHAMPSOUL,{
cutin "ins_cata_champ_s",2;
- if (checkquest(3041)>=0) erasequest 3041;
+ if (questprogress(3041)) erasequest 3041;
mes "[Ancient Hero's Soul]";
mes "Good job, my descendants... You've finished the long-cherished task that me and my bretheren could not complete.";
next;
@@ -1168,7 +1168,7 @@ OnInstanceInit:
mes "[Ancient Hero's Soul]";
mes "If you leave, please say hello to Patrick for me.";
cutin "",255;
- set 'ins_baphomet,0;
+ 'ins_baphomet = 0;
warp "monk_test",310,150;
close;
case 2:
@@ -1235,9 +1235,9 @@ OnEnable:
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@cata");
+ .@map$ = instance_mapname("2@cata");
if (mobcount(.@map$,instance_npcname("control_baphomet")+"::OnMyMobDead") < 1) {
- set 'ins_baphomet,7;
+ 'ins_baphomet = 7;
erasequest 3041;
mapannounce .@map$, "Baphomet : No! Nonono! How dare these weaklings defeat me!... No!!...",bc_map,"0xdb7093";
enablenpc instance_npcname("Ancient Hero's Soul#2F");
@@ -1455,7 +1455,7 @@ OnTimer70000:
1@cata,1,1,0 script ins_1f_spawn_mobs -1,{
OnInstanceInit:
- set .@map$, instance_mapname("1@cata");
+ .@map$ = instance_mapname("1@cata");
monster .@map$,0,0,"Zombie Master",1298,10;
monster .@map$,0,0,"Wraith Dead",1291,10;
//monster .@map$,0,0,"Ancient Mimic",1699,10;
diff --git a/npc/jobs/1-1e/gunslinger.txt b/npc/jobs/1-1e/gunslinger.txt
index aafe2d0c4..ff98b30e7 100644
--- a/npc/jobs/1-1e/gunslinger.txt
+++ b/npc/jobs/1-1e/gunslinger.txt
@@ -86,7 +86,7 @@ que_ng,152,167,3 script Master Miller 4_M_HUOLDARMY,{
mes "Horn in Payon. He's a shaman";
mes "that will judge whether or not";
mes "you qualify to be a Gunslinger.";
- set GUNS_Q,1;
+ GUNS_Q = 1;
setquest 6020;
close;
}
@@ -179,7 +179,7 @@ que_ng,152,167,3 script Master Miller 4_M_HUOLDARMY,{
mes "power of the earth protect";
mes "you in all of your adventures~";
callfunc "Job_Change",Job_Gunslinger;
- set GUNS_Q,6;
+ GUNS_Q = 6;
completequest 6024;
if (rand(1,2) == 1) {
getitem 13100,1; // Six_Shooter
@@ -260,7 +260,7 @@ payon,184,65,3 script Wise Bull Horn 4_M_LGTGRAND,{
mes "will help you achieve";
mes "your goal of becoming";
mes "a Gunslinger.";
- set GUNS_Q,2;
+ GUNS_Q = 2;
changequest 6020,6021;
close;
}
@@ -297,7 +297,7 @@ payon,184,65,3 script Wise Bull Horn 4_M_LGTGRAND,{
delitem 935,10; // Shell
delitem 511,3; // Green_Herb
delitem 1013,3; // Colorful_Shell
- set GUNS_Q,3;
+ GUNS_Q = 3;
changequest 6021,6022;
mes "[Wise Bull Horn]";
mes "Ah, you've returned";
@@ -344,7 +344,7 @@ payon,184,65,3 script Wise Bull Horn 4_M_LGTGRAND,{
mes "I'm thirsty, and would like";
mes "a cold glass of Milk. Would";
mes "you please bring me some?";
- set GUNS_Q,4;
+ GUNS_Q = 4;
changequest 6022,6023;
close;
}
@@ -359,7 +359,7 @@ payon,184,65,3 script Wise Bull Horn 4_M_LGTGRAND,{
close;
}
delitem 519,1; // Milk
- set GUNS_Q,5;
+ GUNS_Q = 5;
changequest 6023,6024;
mes "[Wise Bull Horn]";
mes "Oh, thank you for your!";
diff --git a/npc/jobs/1-1e/ninja.txt b/npc/jobs/1-1e/ninja.txt
index 90cc08edc..be8753834 100644
--- a/npc/jobs/1-1e/ninja.txt
+++ b/npc/jobs/1-1e/ninja.txt
@@ -186,7 +186,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{
mes "Anyway, after you give him";
mes "the letter, come back and";
mes "let me know his answer.";
- set NINJ_Q,1;
+ NINJ_Q = 1;
setquest 6015;
close;
}
@@ -253,7 +253,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{
mes "I should have thought about";
mes "that earlier! Well, it's too";
mes "late now. Just h-hurry it up!";
- set NINJ_Q,4;
+ NINJ_Q = 4;
changequest 6017,6018;
close;
}
@@ -331,7 +331,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{
mes "agile as the wind, and as";
mes "quiet as the falling shadows.";
callfunc "Job_Change",Job_Ninja;
- set NINJ_Q,5;
+ NINJ_Q = 5;
delitem 7053,5; // Cyfar
delitem 1010,1; // Phracon
getitem 13010,1; // Asura
@@ -430,7 +430,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{
mes "help me find";
mes "^3355FF5 Cyfars^000000 and";
mes "^3355FF1 Phracon^000000.";
- set NINJ_Q,2;
+ NINJ_Q = 2;
changequest 6015,6016;
close;
}
@@ -524,7 +524,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{
mes "me send you there directly...";
delitem 1010,1; // Phracon
delitem 7053,5; // Cyfar
- set NINJ_Q,3;
+ NINJ_Q = 3;
changequest 6016,6017;
close2;
warp "amatsu",113,127;
diff --git a/npc/jobs/1-1e/taekwon.txt b/npc/jobs/1-1e/taekwon.txt
index 6403c2648..dd088790d 100644
--- a/npc/jobs/1-1e/taekwon.txt
+++ b/npc/jobs/1-1e/taekwon.txt
@@ -102,7 +102,7 @@ payon,157,141,5 script Phoenix#TKJobChange 4_M_MONK,{
mes "training as a Novice. Very good. Then let us prepare for your";
mes "spiritual training. Take a deep";
mes "breath, speak to me when ready.";
- set TK_Q, 2;
+ TK_Q = 2;
setquest 6001;
close;
}
@@ -112,8 +112,8 @@ payon,157,141,5 script Phoenix#TKJobChange 4_M_MONK,{
mes "true potential without integrating mind and body. Go, gain ^FF00001 more";
mes "Base Level^000000, and then return.";
next;
- set TAEK_Q, BaseLevel;
- set TK_Q, 1;
+ TAEK_Q = BaseLevel;
+ TK_Q = 1;
setquest 6000;
mes "[Phoenix]";
mes "I understand this is not an";
@@ -136,7 +136,7 @@ payon,157,141,5 script Phoenix#TKJobChange 4_M_MONK,{
switch(TK_Q) {
case 1:
if(BaseLevel > TAEK_Q) {
- set TK_Q, 2;
+ TK_Q = 2;
changequest 6000,6001;
mes "[Phoenix]";
mes "Good. I sense that you";
@@ -331,7 +331,7 @@ payon,157,141,5 script Phoenix#TKJobChange 4_M_MONK,{
mes "we have discussed for a little";
mes "while. When your mind is calm,";
mes "come and speak to me.";
- set TK_Q, 3;
+ TK_Q = 3;
changequest 6001,6002;
close;
case 3:
diff --git a/npc/jobs/2-1/assassin.txt b/npc/jobs/2-1/assassin.txt
index d778d789a..e88f0adc6 100644
--- a/npc/jobs/2-1/assassin.txt
+++ b/npc/jobs/2-1/assassin.txt
@@ -82,7 +82,7 @@ in_moc_16,19,33,1 script Guildsman#asn 1_M_JOBTESTER,{
mes "Well then,";
mes "go for it!";
close2;
- set ASSIN_Q,0;
+ ASSIN_Q = 0;
warp "in_moc_16",19,76;
end;
}
@@ -92,9 +92,9 @@ in_moc_16,19,33,1 script Guildsman#asn 1_M_JOBTESTER,{
mes "[Ferocious-looking guy]";
mes "You'll have to walk if you want to get back to town. Oh, and don't forget to save your spawn point, alright?";
close2;
- set ASSIN_Q,0;
- set ASSIN_Q2,0;
- set ASSIN_Q3,0;
+ ASSIN_Q = 0;
+ ASSIN_Q2 = 0;
+ ASSIN_Q3 = 0;
savepoint "in_moc_16",18,14;
warp "in_moc_16",18,14;
end;
@@ -253,8 +253,8 @@ in_moc_16,19,33,1 script Guildsman#asn 1_M_JOBTESTER,{
mes "It's been a while since I've received a guest. I'm sending";
mes "you to the office.";
close2;
- set ASSIN_Q,0;
- if (checkquest(8000) != -1) {
+ ASSIN_Q = 0;
+ if (questprogress(8000)) {
changequest 8000,8001;
} else {
setquest 8001;
@@ -549,8 +549,8 @@ OnTouch:
mes "Alright then,";
mes "best of luck to you!";
close2;
- set ASSIN_Q3,1;
- set ASSIN_Q,1;
+ ASSIN_Q3 = 1;
+ ASSIN_Q = 1;
changequest 8001,8002;
warp "in_moc_16",19,144;
end;
@@ -572,8 +572,8 @@ OnTouch:
mes "to the Test Hall.";
mes "Best of luck~";
close2;
- set ASSIN_Q3,2;
- set ASSIN_Q,1;
+ ASSIN_Q3 = 2;
+ ASSIN_Q = 1;
changequest 8001,8002;
warp "in_moc_16",19,144;
end;
@@ -598,9 +598,9 @@ OnTouch:
mes "Eh, get outta here.";
mes "Stop wastin' my time...";
close2;
- set ASSIN_Q,0;
- set ASSIN_Q3,0;
- set ASSIN_Q2,0;
+ ASSIN_Q = 0;
+ ASSIN_Q3 = 0;
+ ASSIN_Q2 = 0;
erasequest 8001;
warp "moc_fild16",206,229;
end;
@@ -626,8 +626,8 @@ OnTouch:
mes "[Assassin 'Khai']";
mes "Are you done filling out the form? Alright, give it to me so I can send you to the Test Hall. Good luck~";
next;
- set ASSIN_Q3,1;
- set ASSIN_Q,1;
+ ASSIN_Q3 = 1;
+ ASSIN_Q = 1;
changequest 8001,8002;
warp "in_moc_16",19,144;
end;
@@ -640,8 +640,8 @@ OnTouch:
mes "Then give me the form so that I can send you to the Test Hall, alright?";
mes "Good luck...";
next;
- set ASSIN_Q3,2;
- set ASSIN_Q,1;
+ ASSIN_Q3 = 2;
+ ASSIN_Q = 1;
changequest 8001,8002;
warp "in_moc_16",19,144;
end;
@@ -707,7 +707,7 @@ OnTouch:
mes "Although I am heartless,";
mes "I am not necessarily cruel. Before we proceed, is there anything you wish to know?";
next;
- set ASSIN_Q2,0;
+ ASSIN_Q2 = 0;
while(ASSIN_Q2 < 3) {
switch(select("...Skills?:...Stats?:Hmpf, I know it all.")) {
case 1:
@@ -770,7 +770,7 @@ OnTouch:
mes "Now...";
mes "That's all I have to tell you";
mes "about Assassin skills.";
- set ASSIN_Q2,1;
+ ASSIN_Q2 = 1;
next;
break;
case 2:
@@ -783,7 +783,7 @@ OnTouch:
next;
mes "[The Anonymous One]";
mes "I cannot give you better advice than that in regards to Stats. You should research and see which stats suit you, and decide what kind of Assassin you want to be.";
- set ASSIN_Q2,2;
+ ASSIN_Q2 = 2;
next;
break;
case 3:
@@ -793,7 +793,7 @@ OnTouch:
mes "I'll be the judge of that!";
next;
}
- set ASSIN_Q2,3;
+ ASSIN_Q2 = 3;
break;
}
}
@@ -843,53 +843,53 @@ OnTouch:
mes "1. Choose skill that is not required to learn Grimtooth.";
next;
if (select("Cloaking level 2:Sonic Blow level 5:Katar Mastery level 4:Right hand Mastery level 2") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "2. What property does Enchant Poison possess?";
next;
if (select("Poison:Earth:Fire:Wind") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "3. How does Level 4 Right Hand Mastery work?";
next;
if (select("Recover 80% of damage decrease:Recover 90% of damage decrease:Increase 90% of damage:Increase 108% of damage") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "4. What is the item required for using Venom Dust?";
next;
if (select("Red Blood:Blue Gemstone:Yellow Gemstone:Red Gemstone") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "5. Which skill can you learn when you reach Level 5 Enchant Poison?";
next;
if (select("Envenom:Sonic Blow:Venom Splasher:Venom Dust") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "6. Among the following skills, which allows you to walk while invisible?";
next;
if (select("Hiding:Back Slide:Cloaking:Sand Attack") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "7. Choose the condition that is unrelated to Venom Splasher.";
next;
if (select("Poisoned target.:Red Gemstone.:Remaing HP of Target.") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "8. Which monster is weak to a weapon with Vadon card (adds 20% damage on Fire property monster)?";
next;
if (select("Steel Chonchon:Deviruchi:Elder Willow:Baphomet") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "9. How much SP does";
mes "Double Attack need?";
next;
if (select("15:It's a passive skill, so SP use is 0.:It's passive skill, so SP use is 10.:54") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "10. What is the best elemental Main Gauche weapon for hunting in Izlude dungeon?";
next;
if (select("Wind Main Gauche:Ice Main Gauche:Earth Main Gauche:Fire Main Gauche") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 2:
mes "[The Anonymous One]";
@@ -897,104 +897,104 @@ OnTouch:
mes "drops a slotted Katar?";
next;
if (select("Thief Bug:Peco Peco:Desert Wolf:Hammer Cobolt") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "2. Which monster";
mes "drops a slotted Jur?";
next;
if (select("Martin:Desert Wolf:Marionette:Myst") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "3. Which class is allowed to craft elemental weapons?";
next;
if (select("Merchant:Blacksmith:Thief:Priest") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "4. Choose the weapon which is not in the Katar class.";
next;
if (select("Jamadhar:Jur:Katar:Gladius") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "5. What property do Izlude dungeon monsters posses?";
next;
if (select("Water:Fire:Wind:Earth") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "6. Which monster";
mes "cannot be a Cute Pet?";
next;
if (select("Poporing:Roda Frog:Smokie:Poison Spore") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "7. Choose a monster that Fire property Daggers work the best on.";
next;
if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "8. Choose the non-elemental Katar from the following:";
next;
if (select("Katar of Raging Blaze:Katar of Dusty Thornbush:Sharpened Legbone of Ghoul:Infiltrator") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "9. Which is the uncommon monster?";
next;
if (select("Poring:Mastering:Ghostring:Spore") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "10. Choose the monster";
mes "that is not Undead.";
next;
if (select("Drake:Megalodon:Spore:Khalitzburg") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 3:
mes "[The Anonymous One]";
mes "1. Choose the correct amount of the maximum dodge rate increase from the 'Increase Dodge' skill when at level 10.";
next;
if (select("30:40:160:20") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "2. Choose a monster which detects hiding/cloaking Thieves and Assassins.";
next;
if (select("Worm Tail:Andre:Mummy:Soldier Skeleton") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "3. Choose a group of weapons that cannot be used by an Assassin at once.";
next;
if (select("Main Gaughe + Gladius:Stiletto + Main Gauche:Katar + Maingauche:Hammer + Stiletto") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "4. Choose the town where Thieves can change their jobs.";
next;
if (select("Prontera:Lutie:Alberta:Morocc") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "5. Choose a card that does not affect the AGI stat.";
next;
if (select("Baphomet Jr. card:Whisper Card:Female Thiefbug card:Male Thiefbug card") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "6. Choose the correct specialty of the Assassin class.";
next;
if (select("Excellent singing talent:Excellent reading talent:Excellent dancing talent:Excellent dodge ability") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "7. Choose the maximum AGI bonus an Assassin can get at job level 50.";
next;
if (select("7:8:9:10") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "8. Choose the item that an Assassin cannot equip.";
next;
if (select("Dagger:Helm:Boots:Brooch") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[The Anonymous One]";
mes "9. Choose the job change item for Thief.";
next;
switch(select("Orange Gooey Mushroom:Red Gooey Mushroom:Orange Net Mushroom:Orange Hair Mushroom")) {
case 1:
case 3:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
default:
break;
@@ -1003,7 +1003,7 @@ OnTouch:
mes "10. Choose a card that would typically benefit an Assassin the least.";
next;
if (select("Whisper card:Elder Willow card:Soldier Skeleton card:Cobold card") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
}
if (ASSIN_Q2 == 3) {
@@ -1019,7 +1019,7 @@ OnTouch:
mes "You scored";
mes "" + .@assassin_t + " percent...";
if (.@assassin_t > 80) {
- set ASSIN_Q2,5;
+ ASSIN_Q2 = 5;
changequest 8002,8003;
mes "Well done.";
mes "You pass.";
@@ -1029,7 +1029,7 @@ OnTouch:
close;
}
else {
- set ASSIN_Q2,4;
+ ASSIN_Q2 = 4;
mes "That means you fail!";
next;
mes "[The Anonymous One]";
@@ -1056,7 +1056,7 @@ OnTouch:
mes "You scored";
mes "" + .@assassin_t + " points...";
if (.@assassin_t > 80) {
- set ASSIN_Q2,5;
+ ASSIN_Q2 = 5;
changequest 8002,8003;
next;
mes "[The Anonymous One]";
@@ -1064,7 +1064,7 @@ OnTouch:
close;
}
else {
- set ASSIN_Q2,4;
+ ASSIN_Q2 = 4;
mes "You failed!";
next;
mes "[The Anonymous One]";
@@ -1189,9 +1189,9 @@ OnTouch:
mes "I guess you";
mes "could use a break...";
close2;
- set ASSIN_Q,0;
- set ASSIN_Q3,0;
- set ASSIN_Q2,0;
+ ASSIN_Q = 0;
+ ASSIN_Q3 = 0;
+ ASSIN_Q2 = 0;
changequest 8003,8000;
warp "in_moc_16",19,13;
end;
@@ -1202,7 +1202,7 @@ in_moc_16,1,1,0 script Beholder#ASNTEST -1,{
end;
OnEnable:
- set .MyMobs,6;
+ .MyMobs = 6;
// Target mobs
monster "in_moc_16",62,161,"Job change target",1002,1,"Beholder#ASNTEST::OnMyMobDead";
monster "in_moc_16",85,169,"Job change target",1063,1,"Beholder#ASNTEST::OnMyMobDead";
@@ -1262,15 +1262,15 @@ OnResetMob:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "in_moc_16","You seem to be doing quite well. Keep it up!",bc_map;
- set ASSIN_Q,3;
+ ASSIN_Q = 3;
changequest 8003,8004;
donpcevent "timestopper#1::OnEnable";
donpcevent "Keeper of the Door#ASN::OnEnable";
donpcevent "Beholder#ASNTEST::OnResetMob";
- set .DisableTraps,1;
+ .DisableTraps = 1;
stopnpctimer;
}
else {
@@ -1280,7 +1280,7 @@ OnMyMobDead:
OnMyMobDead2:
mapannounce "in_moc_16",strcharinfo(0) + "! You made a mistake! I'm bringing you back!",bc_map;
- set ASSIN_Q,2;
+ ASSIN_Q = 2;
warp "in_moc_16",19,161;
donpcevent "Beholder#ASNTEST::OnReset";
end;
@@ -1336,7 +1336,7 @@ OnTimer184000:
OnTimer185000:
mapannounce "in_moc_16","Time's up!",bc_map;
mapannounce "in_moc_16","Well, good job... If you wanted to waste your time. You'll have to try again!",bc_map;
- //set ASSIN_Q,2;
+ //ASSIN_Q = 2;
end;
OnTimer186000:
@@ -1352,7 +1352,7 @@ in_moc_16,68,158,0 script 01_1::SinTrap -1,0,0,{
OnTouch:
if (getvariableofnpc(.DisableTraps,"Beholder#ASNTEST") < 1) {
mapannounce "in_moc_16",strcharinfo(0) + ", you're trapped. You will be sent back.",bc_map;
- set ASSIN_Q,2;
+ ASSIN_Q = 2;
warp "in_moc_16",19,161;
donpcevent "Beholder#ASNTEST::OnResetMob";
donpcevent "Standby Room#ASNTEST::OnStart";
@@ -1452,9 +1452,9 @@ OnInit:
OnTouch:
donpcevent "Thomas#ASNTEST::OnDisable";
if (ASSIN_Q == 3)
- set ASSIN_Q,3;
+ ASSIN_Q = 3;
else
- set ASSIN_Q,4;
+ ASSIN_Q = 4;
warp "in_moc_16",87,102;
savepoint "in_moc_16",16,13;
end;
@@ -1486,7 +1486,7 @@ OnDisable:
OnMyMobDead:
mapannounce "in_moc_16","Hey, what the hell was that?! I told you: No killing monsters!",bc_map;
mapannounce "in_moc_16","I'm bringing you back... *Sigh...*",bc_map;
- set ASSIN_Q,3;
+ ASSIN_Q = 3;
warp "in_moc_16",87,102;
killmonsterall "in_moc_16";
end;
@@ -1520,9 +1520,9 @@ OnTouch:
mes "Oh hey, don't forget to save your respawn point in town.";
close2;
mapannounce "in_moc_16",strcharinfo(0) + " got scared and quit the test...Who's Next?!",bc_map;
- set ASSIN_Q,0;
- set ASSIN_Q2,0;
- set ASSIN_Q3,0;
+ ASSIN_Q = 0;
+ ASSIN_Q2 = 0;
+ ASSIN_Q3 = 0;
changequest 8004,8000;
savepoint "in_moc_16",18,14;
warp "in_moc_16",18,14;
@@ -1543,7 +1543,7 @@ OnTouch:
mes "[Thomas]";
mes "If you run away, get a nose bleed and pass out or something like that, I'll fail ya'. Enough talk. Let's see what you got.";
close2;
- set ASSIN_Q,4;
+ ASSIN_Q = 4;
monster "in_moc_16",81,77,"Mummy",1041,1,"timestopper#1::OnMyMobDead";
monster "in_moc_16",82,77,"Mummy",1041,1,"timestopper#1::OnMyMobDead";
@@ -1590,7 +1590,7 @@ OnTouch:
mes "Oh! Congratulations!";
mes "You may now proceed to our Guildmaster's room. Good luck!!";
close2;
- set ASSIN_Q,5;
+ ASSIN_Q = 5;
changequest 8004,8005;
warp "in_moc_16",181,183;
end;
@@ -1600,7 +1600,7 @@ in_moc_16,182,169,0 script Maze Assistant WARPNPC,1,1,{
OnTouch:
if (ASSIN_Q == 5 || ASSIN_Q == 6) {
warp "in_moc_16",181,183;
- set ASSIN_Q,ASSIN_Q+1;
+ ++ASSIN_Q;
changequest 8005,8006;
}
else {
@@ -1637,7 +1637,7 @@ in_moc_16,149,80,4 script Guildmaster#ASN2 1_M_MOC_LORD,1,1,{
OnTouch:
savepoint "morocc",100,100;
if (ASSIN_Q == 7 && BaseJob == Job_Thief) {
- set ASSIN_Q,8;
+ ASSIN_Q = 8;
mes "[Guildmaster]";
mes "Welcome.";
mes "I apologize for";
@@ -1671,7 +1671,7 @@ OnTouch:
next;
switch(select("Revenge...!:Money~:I want to travel.")) {
case 1:
- set ASSIN_Q,8;
+ ASSIN_Q = 8;
mes "[Guildmaster]";
mes "Revenge...?";
mes "Yes, I understand. All of us hold grudges against someone else eventually.";
@@ -1685,7 +1685,7 @@ OnTouch:
next;
break;
case 2:
- set ASSIN_Q,9;
+ ASSIN_Q = 9;
mes "[Guildmaster]";
mes "Financial reasons...? I won't deny that we all need money to live. But being Assassin means living for a higher purpose.";
next;
@@ -1696,7 +1696,7 @@ OnTouch:
next;
break;
case 3:
- set ASSIN_Q,10;
+ ASSIN_Q = 10;
mes "[Guildmaster]";
mes "Good idea. Traveling around the world will allow you to broaden your experiences.";
next;
@@ -1725,7 +1725,7 @@ OnTouch:
next;
switch(select("I like the solitude.:Making money being an Assassin.:They just look interesting.")) {
case 1:
- set ASSIN_Q,11;
+ ASSIN_Q = 11;
mes "[Guildmaster]";
mes "You got the point...";
mes "We are lonely. We will always be alone, even amongst each other...";
@@ -1740,13 +1740,13 @@ OnTouch:
next;
break;
case 2:
- set ASSIN_Q,12;
+ ASSIN_Q = 12;
mes "[Guildmaster]";
mes "Well, I can't deny it, we do need money to make a living. But don't you think we should pursue something even more important than money?";
next;
break;
case 3:
- set ASSIN_Q,13;
+ ASSIN_Q = 13;
mes "[Guildmaster]";
mes "Style and appearance is only superficial. It is sad that many people think this way...";
next;
@@ -1771,7 +1771,7 @@ OnTouch:
next;
switch(select("To broaden my skills.:It's a goal of mine.:For spiritual improvement.")) {
case 1:
- set ASSIN_Q,14;
+ ASSIN_Q = 14;
mes "[Guildmaster]";
mes "Learning skills comes naturally with the Assassin job. But don't think of skills as the best value of your training.";
next;
@@ -1780,7 +1780,7 @@ OnTouch:
next;
break;
case 2:
- set ASSIN_Q,15;
+ ASSIN_Q = 15;
mes "[Guildmaster]";
mes "It's a goal of yours, eh? Well, I guess you've got to have goals...";
next;
@@ -1794,7 +1794,7 @@ OnTouch:
next;
break;
case 3:
- set ASSIN_Q,16;
+ ASSIN_Q = 16;
mes "[Guildmaster]";
mes "Good idea...";
mes "That is a good way to improve yourself. I've seen many people who know how to be strong physically but not in their mental state.";
@@ -1826,14 +1826,14 @@ OnTouch:
next;
switch(select("I would level up fast.:I want to explore my Assassin skills.:I will go where I couldn't go as a Thief.")) {
case 1:
- set .@assassin_sangdam,.@assassin_sangdam+10;
+ .@assassin_sangdam += 10;
mes "[Guildmaster]";
mes "Don't act recklessly...";
mes "Being an Assassin never makes you a different person. And don't rely on chance.";
next;
break;
case 2:
- set .@assassin_sangdam,.@assassin_sangdam+5;
+ .@assassin_sangdam += 5;
mes "[Guildmaster]";
mes "It is good for one to examine oneself. I can understand that you will be excited by the great change in your ability.";
next;
@@ -1860,14 +1860,14 @@ OnTouch:
next;
switch(select("My friends.:My Guildsmen.:My lover.")) {
case 1:
- set .@assassin_sangdam,.@assassin_sangdam+5;
+ .@assassin_sangdam += 5;
mes "[Guildmaster]";
mes "I see...";
mes "Appreciate them for caring about you, even when you're alone.";
next;
break;
case 2:
- set .@assassin_sangdam,.@assassin_sangdam+5;
+ .@assassin_sangdam += 5;
mes "[Guildmaster]";
mes "Great...";
mes "Comrades for whom you would die for...";
@@ -1898,7 +1898,7 @@ OnTouch:
next;
switch(select("Places where Assassins can level up...:Main goals as an Assassin.:Financial consulting.")) {
case 1:
- set .@assassin_sangdam,.@assassin_sangdam+5;
+ .@assassin_sangdam += 5;
mes "[Guildmaster]";
mes "It all depends on your mind. Any place could be the best to level up according to your mind state.";
next;
@@ -1916,7 +1916,7 @@ OnTouch:
next;
break;
case 3:
- set .@assassin_sangdam,.@assassin_sangdam+10;
+ .@assassin_sangdam += 10;
mes "[Guildmaster]";
mes "Oh my lord...";
mes "Are you planning to become an Assassin in order to make money?";
@@ -2054,8 +2054,8 @@ OnTouch:
next;
}
if (ASSIN_Q3 == 1 && BaseJob == Job_Thief && ASSIN_Q > 6 && ASSIN_Q < 17) {
- set ASSIN_Q,17;
- set ASSIN_Q3,2;
+ ASSIN_Q = 17;
+ ASSIN_Q3 = 2;
mes "[Guildmaster]";
mes "Well, I've said too much. Please choose a weapon as a present.";
next;
@@ -2092,7 +2092,7 @@ OnTouch:
next;
}
else {
- set ASSIN_Q,17;
+ ASSIN_Q = 17;
mes "[Guildmaster]";
mes "Well, I talked too much.";
mes "Please take this first.";
@@ -2151,7 +2151,7 @@ OnTouch:
end;
}
else if (ASSIN_Q > 7 && ASSIN_Q < 17) {
- set ASSIN_Q,7;
+ ASSIN_Q = 7;
mes "[Guildmaster]";
mes "What the hell? You pressed 'Cancel' during the process. Do you want to change your job or what?";
next;
diff --git a/npc/jobs/2-1/blacksmith.txt b/npc/jobs/2-1/blacksmith.txt
index c466925e1..53f2fa5fc 100644
--- a/npc/jobs/2-1/blacksmith.txt
+++ b/npc/jobs/2-1/blacksmith.txt
@@ -1,4 +1,4 @@
-//===== HerculesScript =======================================
+//===== Hercules Script =======================================
//= Blacksmith Job Quest
//===== By: ==================================================
//= EREMES THE CANIVALIZER(Aegis)
@@ -162,7 +162,7 @@ ein_in01,18,28,4 script Guildsman#BLS 4_M_JOB_BLACKSMITH,{
mes "Hmmm...";
mes "One of our Blacksmiths in Einbech, ^8E6B23Geschupenschte^000000 has sent us word that he's short on help. Your first test of character will be to help him out.";
next;
- set BSMITH_Q,1;
+ BSMITH_Q = 1;
setquest 2000;
mes "[Altiregen]";
mes "Be careful";
@@ -217,7 +217,7 @@ ein_in01,18,28,4 script Guildsman#BLS 4_M_JOB_BLACKSMITH,{
mes "Please go talk to the guildsman inside the building for more details about your next test.";
next;
if (select("I want to change my job quickly! But...oh well.:Grrr! Enough is enough!") == 1) {
- set BSMITH_Q,16;
+ BSMITH_Q = 16;
changequest 2013,2014;
mes "[Altiregen]";
mes "I'm sorry, but I'm sure you understand, right? We can't just casually accept anybody into";
@@ -248,11 +248,11 @@ ein_in01,18,28,4 script Guildsman#BLS 4_M_JOB_BLACKSMITH,{
else if (BSMITH_Q == 17 && countitem(1005) > 0 && JobLevel > 39) {
mes "[Altiregen]";
mes "Excellent, I can tell by the twinkle in your eye that you were successful. I can now bestow upon you the gift of the smithing, the art of the Blacksmith.";
- if (checkquest(2015) != -1) {
+ if (questprogress(2015)) {
changequest 2015,2016;
}
next;
- set .@joblvl,JobLevel;
+ .@joblvl = JobLevel;
callfunc "Job_Change",Job_Blacksmith;
callfunc "F_ClearJobVar"; // clears all job variables for the current player
mes "[Altiregen]";
@@ -324,7 +324,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
mes "[Geschupenschte]";
mes "However, I want to make sure that you have some basic knowledge as a Merchant. I'd like to ask you some questions, if that's okay.";
next;
- set .@selection,select("Yes.:Um, can I have some time to prepare?");
+ .@selection = select("Yes.:Um, can I have some time to prepare?");
}
else if (BSMITH_Q == 2) {
mes "[Geschupenschte]";
@@ -350,131 +350,131 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
mes "with its specialty item?";
next;
if (select("Morroc - Thief Clothes:Alberta - Two Hand Axe:Comodo - Berserk Potion:Alberta - Swordmace") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "2. What status can";
mes "be inflicted with the";
mes "^8E6B23Hammer Fall^000000 skill?";
next;
if (select("Stun:Blind:Silence:Sleep") == 1)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "3. Which one of the following skills cannot be performed";
mes "by a Merchant?";
next;
if (select("Vending:Discount:Overcharge:Increase AGI") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "4. Where can you find a store";
mes "that sells Blue Gemstones?";
next;
if (select("Alberta:Morroc:Geffen:Prontera") == 3)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "5. Where is the";
mes "Tool Dealer";
mes "located in Geffen?";
next;
if (select("8 o'clock direction from the town square:11 o'clock direction from the town square:6 o'clock direction from the town square:5 o'clock direction from the town square") == 1)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "6. Which weapon";
mes "cannot be used";
mes "by a Merchant?";
next;
if (select("Stiletto:Ring Pommel Saber:Chain:Bible") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "7. Which one of the following";
mes "has the highest defense rate?";
next;
if (select("Panties:Mink Coat:Wooden Mail:Silk Robe") == 2)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "8. For Level 3 weapons,";
mes "what is the ^8E6B23Safe^000000 limit";
mes "for upgrading?";
next;
if (select("up to + 3:up to + 4:up to + 5:up to + 6") == 3)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "9. What item";
mes "can be made using";
mes "the ^8E6B23Trunks^000000 item?";
next;
if (select("Sakkat:Ghost Bandana:Majestic Goat:Antler") == 1)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "10. The most important";
mes "part of being a Merchant is...?";
next;
select("Credit:Integrity:Money:Rhetoric");
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
}
else {
mes "[Geschupenschte]";
mes "1. Among the following cities, which one is not correctly matched with its specialty?";
next;
if (select("Al De Baran - Yggdrasil Leaf:Alberta - Hammer:Comodo - Berserk Potion:Al De Baran - Hammer") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "2. How much Zeny";
mes "is one Jellopy worth?";
next;
if (select("1 Zeny:2 Zeny:3 Zeny:4 Zeny") == 3)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "3. What is required";
mes "for a Merchant to use";
mes "the ^8E6B23Vending^000000 Skill?";
next;
if (select("Must have a Cart.:Must have items to sell.:Must be wielding a weapon.:Must be wearing armor.") == 1)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "4. Where can you";
mes "change your Job to";
mes "become a Merchant?";
next;
if (select("Alberta:Morroc:Geffen:Prontera") == 1)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "5. Where is the";
mes "Weapons Dealer";
mes "located in Morroc?";
next;
if (select("7 o'clock from the town's center:11 o'clock from the town's center:6 o'clock from the town's center:5 o'clock from the town's center") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "6. What weapon";
mes "can a Merchant";
mes "not use?";
next;
if (select("Main Gauche:Claymore:Chain:Two handed Axe") == 2)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "7. Which one of the following";
mes "has the highest defense rate?";
next;
if (select("Panties:Mink Coat:Wooden Mail:Silk Robe") == 2)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "8. For Level 3 weapons,";
mes "what is the ^8E6B23Safe^000000 limit";
mes "for upgrading?";
next;
if (select("up to + 3:up to + 4:up to + 5:up to + 6") == 3)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "9. What monster does";
mes "NOT drop Iron Ore?";
next;
if (select("Chon Chon:Steel Chon Chon:Zerom:Anolian") == 4)
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
mes "[Geschupenschte]";
mes "10. What is most";
mes "important to a Merchant?";
next;
select("Rhetoric:Credit:Money:Experience");
- set .@black_q,.@black_q+10;
+ .@black_q += 10;
}
mes "[Geschupenschte]";
mes "Umm. You did a good job!";
@@ -482,8 +482,8 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
mes "[Geschupenschte]";
mes "Let's see...your score is..." + .@black_q + " points.";
if (.@black_q == 100) {
- set BSMITH_Q,3;
- if (checkquest(2001) != -1) {
+ BSMITH_Q = 3;
+ if (questprogress(2001)) {
changequest 2001,2002;
} else {
changequest 2000,2002;
@@ -499,8 +499,8 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
mes "When you get back, I'll be ready!";
close;
}
- set BSMITH_Q,2;
- if (checkquest(2001) == -1) {
+ BSMITH_Q = 2;
+ if (!questprogress(2001)) {
changequest 2000,2001;
}
mes ".............";
@@ -576,7 +576,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
//Iron, Green_Herb, Animal's_Skin, Ring_Pommel_Saber
default: setarray .@items[0], 998,1, 511,1, 919,2, 1122,1, 8; changequest 2002,2007; break;
}
- set BSMITH_Q,.@items[8];
+ BSMITH_Q = .@items[8];
mes "[Geschupenschte]";
mes "^8E6B23"+.@items[1]+" "+getitemname(.@items[0])+"^000000,";
mes "^8E6B23"+.@items[3]+" "+getitemname(.@items[2])+"^000000,";
@@ -645,7 +645,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
delitem .@items[2],.@items[3];
delitem .@items[4],.@items[5];
delitem .@items[6],.@items[7];
- set BSMITH_Q,.@items[8];
+ BSMITH_Q = .@items[8];
mes "[Geschupenschte]";
mes "Wooooo~~~";
mes "All done...";
@@ -653,7 +653,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
case 9:
mes "Okay, now take this to ^8E6B23Baisulist^000000 in Geffen of Rune-Midgarts Kingdom. Simply deliver it and bring me the receipt.";
getitem 1610,1; //Arc_Wand
- if (checkquest(2003) != -1) {
+ if (questprogress(2003)) {
changequest 2003,2008;
}
next;
@@ -678,7 +678,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
case 10:
mes "Okay, now take this to ^8E6B23Wickebine^000000 in Morroc of Rune-Midgarts Kingdom. Simply deliver it and bring me the receipt.";
getitem 1219,1; //Gladius
- if (checkquest(2004) != -1) {
+ if (questprogress(2004)) {
changequest 2004,2009;
}
next;
@@ -703,7 +703,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
case 11:
mes "Okay, now take this to ^8E6B23Krongast^000000 in Lighthalzen. Simply deliver it and bring me the receipt.";
getitem 1119,1; //Tsurugi
- if (checkquest(2005) != -1) {
+ if (questprogress(2005)) {
changequest 2005,2010;
}
next;
@@ -729,7 +729,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
case 12:
mes "Okay, now take this to ^8E6B23Talpiz^000000 in Payon of Rune-Midgarts Kingdom. Simply deliver this and bring me the receipt.";
getitem 1713,1; //Arbalest
- if (checkquest(2006) != -1) {
+ if (questprogress(2006)) {
changequest 2006,2011;
}
next;
@@ -753,7 +753,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
case 13:
mes "Okay, now take this to ^8E6B23Bismarc^000000 in Hugel. Simply deliver this and bring back the receipt.";
getitem 1122,1; //Ring_Pommel_Saber
- if (checkquest(2007) != -1) {
+ if (questprogress(2007)) {
changequest 2007,2012;
}
next;
@@ -848,18 +848,18 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
next;
if (select("Yes sir, here it is.:Receipt? I, uh, have it somewhere.") == 1) {
if (countitem(1073) > 0) {
- set BSMITH_Q,15;
+ BSMITH_Q = 15;
delitem 1073,1; //Merchant_Voucher_1
- if (checkquest(2008) != -1) {
+ if (questprogress(2008)) {
changequest 2008,2013;
}
- else if (checkquest(2009) != -1) {
+ else if (questprogress(2009)) {
changequest 2009,2013;
}
- else if (checkquest(2010) != -1) {
+ else if (questprogress(2010)) {
changequest 2010,2013;
}
- else if (checkquest(2011) != -1) {
+ else if (questprogress(2011)) {
changequest 2011,2013;
}
else {
@@ -880,7 +880,7 @@ ein_in01,201,27,3 script Guildsman#alberta 1_M_SMITH,{
mes "will be a great Blacksmith!";
close;
}
- set BSMITH_Q,3;
+ BSMITH_Q = 3;
mes "[Geschupenschte]";
mes "You mean...";
mes "You didn't get";
@@ -955,7 +955,7 @@ geffen,46,164,1 script Baisulist#BLS 1_F_04,{
mes "[Baisulist]";
mes "You're";
mes "absolutely sure?";
- set BSMITH_Q,14;
+ BSMITH_Q = 14;
delitem 1610,1; //Arc_Wand
next;
mes "[Baisulist]";
@@ -1038,7 +1038,7 @@ morocc,27,112,4 script Wickebine#BLS 4_F_JOB_ASSASSIN,{
next;
mes "- She looks very happy. -";
next;
- set BSMITH_Q,14;
+ BSMITH_Q = 14;
delitem 1219,1; //Gladius
cutin "Job_Black_hucke01",2;
mes "[Wickebine]";
@@ -1132,7 +1132,7 @@ lighthalzen,209,80,4 script Krongast#BLS 4_M_JOB_KNIGHT2,{
mes "You double checked?";
mes "Alright then, I'll take it!";
next;
- set BSMITH_Q,14;
+ BSMITH_Q = 14;
delitem 1119,1; //Tsurugi
mes "[Krongast]";
mes "Oh ho...";
@@ -1209,7 +1209,7 @@ payon,214,79,4 script Talpiz#BLS 1_M_ORIENT01,{
mes "So, you're sure?";
mes "Let me take a look...";
next;
- set BSMITH_Q,14;
+ BSMITH_Q = 14;
delitem 1713,1; //Arbalest
mes "[Talpiz]";
mes "*wheet whoo*";
@@ -1290,7 +1290,7 @@ hugel,168,183,1 script Bismarc#BLS 2_M_THIEFMASTER,{
mes "Give it...!";
mes "Pleeeease!";
next;
- set BSMITH_Q,14;
+ BSMITH_Q = 14;
delitem 1122,1; //Ring_Pommel_Saber
mes "^3355FFBismarc stabs";
mes "himself, repeatedly,";
@@ -1376,7 +1376,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "you fail. And I won't";
mes "tell you what you missed.";
next;
- set .@blackss_te,0;
+ .@blackss_te = 0;
mes "[Mitehmaeeuh]";
mes "Please listen";
mes "and answer carefully...";
@@ -1389,7 +1389,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "the ^8E6B23Discount^000000 skill?";
next;
if (select("Level 3 Push Cart:Item Appraisal:Level 10 Mammonite:Level 3 Enlarge Weight") == 4)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "2. When you attack";
mes "with ^8E6B23Hammerfall^000000,";
@@ -1397,7 +1397,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "you inflict on enemies?";
next;
if (select("Stun:Blindness:Chaos:Silence") == 1)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "3. How much Zeny is spent";
mes "when attacking with the";
@@ -1405,7 +1405,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "(Level 10 Mammonite)";
next;
if (select("900 Zeny:1000 Zeny:2000 Zeny:100,000 Zeny") == 2)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "4. What is the";
mes "discount rate when";
@@ -1413,7 +1413,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "skill is mastered?";
next;
if (select("21 % :22 % :23 % :24 % ") == 4)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "5. What is the maximum";
mes "percentage that you can";
@@ -1422,7 +1422,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "^8E6B23Overcharge^000000 skill?";
next;
if (select("21 % :22 % :23 % :24 % ") == 3)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
break;
case 2:
mes "[Mitehmaeeuh]";
@@ -1431,21 +1431,21 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "drops Steel?";
next;
if (select("Zerom:Chon Chon:Skel Worker:Requiem") == 3)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "2. Which of the following";
mes "stones can be made from";
mes "Red Bloods?";
next;
if (select("Flame Heart:Rough Wind:Great Nature:Mystic Frozen") == 1)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "3. Which of the following";
mes "stones do you have the most";
mes "of in your Kafra Storage?";
next;
select("Wind of Verdure:Red Blood:Green Live:Crystal Blue");
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "4. In general,";
mes "which of the following";
@@ -1454,14 +1454,14 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "attribute weapon?";
next;
if (select("Fire Property:Water Property:Earth Property:Wind Property") == 2)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "5. How many Iron Ore";
mes "is required to make";
mes "1 Steel?";
next;
if (select("5 Iron Ore :4 Iron Ore:3 Iron Ore:6 Iron Ore") == 1)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
break;
case 3:
mes "[Mitehmaeeuh]";
@@ -1472,7 +1472,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
switch(select("Ask them what they need.:Have a brief conversation.:Ignore them.:Give items and run away.")) {
case 1:
case 2:
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
break;
default:
break;
@@ -1484,20 +1484,20 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "^8E6B23Change Cart^000000 skills?";
next;
if (select("Al De Baran:Alberta:Morroc:Izlude") == 2)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "3. From the center of Einbroch,";
mes "in which direction is the Blacksmith Guild?";
next;
if (select("11 o'clock:5 o'clock:7 o'clock:12 o'clock") == 2)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "4. In which town";
mes "can you find the";
mes "most Blacksmiths?";
next;
if (select("Prontera:Morroc:Alberta:Einbroch") == 4)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
mes "[Mitehmaeeuh]";
mes "5. Which of the";
mes "following statuses";
@@ -1505,7 +1505,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
mes "as a Blacksmith?";
next;
if (select("STR :DEX:AGI :VIT ") == 2)
- set .@blackss_te,.@blackss_te+20;
+ .@blackss_te += 20;
break;
}
mes "[Mitehmaeeuh]";
@@ -1523,7 +1523,7 @@ ein_in01,24,41,5 script Blacksmith Guildsman#moc 4_F_JOB_BLACKSMITH,{
next;
mes "[Mitehmaeeuh]";
mes "However, don't let your early success make you overconfident. A Blacksmith's life isn't a picnic. As proof that you have passed the test, I give you this Hammer of Blacksmith.";
- set BSMITH_Q,17;
+ BSMITH_Q = 17;
getitem 1005,1; //Hammer_Of_Blacksmith
changequest 2014,2015;
next;
diff --git a/npc/jobs/2-1/hunter.txt b/npc/jobs/2-1/hunter.txt
index 1acb63a8b..e0de2c97b 100644
--- a/npc/jobs/2-1/hunter.txt
+++ b/npc/jobs/2-1/hunter.txt
@@ -180,7 +180,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "[Hunter Sherin]";
mes "Tada~ Congratulations!";
mes "You look great as a Hunter!!";
- set .@joblvl, JobLevel;
+ .@joblvl = JobLevel;
completequest 4013;
callfunc "Job_Change",Job_Hunter;
callfunc "F_ClearJobVar"; // clears all job variables for the current player
@@ -223,7 +223,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "shall we begin?";
next;
if (select("Yes~ Let's start now.:No, I'll be back later.") == 1) {
- if(checkquest(4000) == -1) {
+ if (!questprogress(4000)) {
setquest 4000;
}
mes "[Hunter Sherin]";
@@ -242,10 +242,10 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
}
break;
case 2:
- set .@selection,2;
+ .@selection = 2;
break;
case 3:
- set .@selection,3;
+ .@selection = 3;
break;
}
}
@@ -267,7 +267,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Scream out loud asking where you should go.:Quietly ask a person passing by.:Wander around alone and search for a place.")) {
case 2:
case 3:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -281,7 +281,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Ask a Priest to open a free warp portal.:Use the Kafra service.:Walk with a friend.")) {
case 2:
case 3:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -296,7 +296,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Beg here and there.:Sell items I do not need.:Hunt at a nearby field.")) {
case 2:
case 3:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -309,12 +309,12 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "situation?";
next;
if (select("Attack a Hode from the top of a hill.:Go back to town.:Attack someone else's Hode.") == 2)
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
mes "[Hunter Sherin]";
mes "Let's say you were having too much trouble hunting Hodes and returned to town. Now you are out of HP and a Priest happens to be around. How would you ask for a Heal?";
next;
if (select("Would it be possible to get a Heal, please?:Heal, please.:Heal me.") == 1)
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
mes "[Hunter Sherin]";
mes "This time, you found a rare item while you were going through your inventory. You go out to sell the item, and there are many people with stores and chatrooms open.";
next;
@@ -326,7 +326,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Scream out loud to everyone in sight.:Open a chatroom and wait.:Look to see if anyone already wants it.")) {
case 2:
case 3:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -334,7 +334,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "While you are waiting, someone is begging for items and Zeny. What should you do?";
next;
if (select("Give some of my items and Zeny.:Ignore and walk away.:Tell the person about a good place to hunt.") == 1)
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
mes "[Hunter Sherin]";
mes "By now, you decide to go to the Maze by yourself.";
next;
@@ -346,7 +346,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Tell them which way to go.:Guide them to their destination.:Ignore.")) {
case 1:
case 2:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -357,7 +357,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "What should you do?";
next;
if (select("Watch, then attack when asked for help.:Attack and see what happens.:Just go back to town.") == 1)
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
mes "[Hunter Sherin]";
mes "You are now very exhausted after your day of hunting. It's time to go back to town.";
next;
@@ -367,7 +367,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
switch(select("Pick it up and keep it.:Try to find the owner.:Just walk by.")) {
case 2:
case 3:
- set .@hunter_t,.@hunter_t+10;
+ .@hunter_t += 10;
default:
break;
}
@@ -375,7 +375,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "Okay, this is the end of the test!";
next;
if (.@hunter_t == 100) {
- set HNTR_Q,2;
+ HNTR_Q = 2;
changequest 4000,4001;
mes "[Hunter Sherin]";
mes "Well done! Your answers show you've got the right outlook on life. You definitely have the right qualities to become a Hunter~";
@@ -385,7 +385,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
close;
}
else if (.@hunter_t == 90) {
- set HNTR_Q,2;
+ HNTR_Q = 2;
changequest 4000,4001;
mes "[Hunter Sherin]";
mes "Well, I'm looking at your answers and your score isn't perfect. But I'll let you pass anyway. I don't know what our Guildmaster will think, though.";
@@ -394,7 +394,7 @@ hu_in01,386,373,4 script Hunter Guildsman#hnt 4_F_JOB_HUNTER,{
mes "Just remember to always keep basic etiquette in mind. Try harder in the following tests and make me happy, okay?";
close;
}
- set HNTR_Q,1;
+ HNTR_Q = 1;
mes "[Hunter Sherin]";
mes "Hmm... I don't think this'll work out. You can't become a Hunter without knowing basic etiquette.";
next;
@@ -473,7 +473,7 @@ hu_in01,382,382,4 script Guild Receptionist#hnt 4_M_JOB_HUNTER,{
mes "[Guild Receptionist]";
mes "Greetings. They call me... ^660000The Demon Hunter^000000. I am the one in charge of processing applications. Your name is ... " + strcharinfo(0) + ", correct?";
next;
- set .@selection,select("Yes, that is correct.:Nope~~(heeheehee)");
+ .@selection = select("Yes, that is correct.:Nope~~(heeheehee)");
if (.@selection == 2) {
mes "[Demon Hunter]";
mes "Hey, stop messing around.";
@@ -501,7 +501,7 @@ hu_in01,382,382,4 script Guild Receptionist#hnt 4_M_JOB_HUNTER,{
mes "[Demon Hunter]";
mes "You see, we're having some financial problems. Let's see, we're short on these items...";
next;
- if(checkre(0)) set .@i,1;
+ if(checkre(0)) .@i = 1;
switch(rand(1,7)) {
//Insect_Feeler/Claw_Of_Desert_Wolf, Wooden_Block, White_Herb
case 1: setarray .@items[0], (.@i?928:7030),5, 1019,5, 509,3, 3; changequest 4001,4002; break;
@@ -521,7 +521,7 @@ hu_in01,382,382,4 script Guild Receptionist#hnt 4_M_JOB_HUNTER,{
if (.@selection == 1) {
mes "[Demon Hunter]";
mes "Hmm. ^660000"+.@items[1]+" "+getitemname(.@items[0])+"^000000 to use for arrow tips. ^660000"+.@items[3]+" "+getitemname(.@items[2])+"^000000 to use here and there. And ^660000"+.@items[5]+" "+getitemname(.@items[4])+"^000000 please.";
- set HNTR_Q,.@items[6];
+ HNTR_Q = .@items[6];
next;
mes "[Demon Hunter]";
mes "Oh right. Our Guildmaster has gone on an official trip to the Payon Central Palace. You have to go visit him because the one that administers the test.";
@@ -532,7 +532,7 @@ hu_in01,382,382,4 script Guild Receptionist#hnt 4_M_JOB_HUNTER,{
close;
}
else if (HNTR_Q >= 3 && HNTR_Q <= 9) {
- if(checkre(0)) set .@i,1;
+ if(checkre(0)) .@i = 1;
switch(HNTR_Q) {
//Insect_Feeler/Claw_Of_Desert_Wolf, Wooden_Block, White_Herb
case 3: setarray .@items[0], (.@i?928:7030),5, 1019,5, 509,3, 10; break;
@@ -555,23 +555,23 @@ hu_in01,382,382,4 script Guild Receptionist#hnt 4_M_JOB_HUNTER,{
if (countitem(.@items[0]) >= .@items[1] && countitem(.@items[2]) >= .@items[3] && countitem(.@items[4]) >= .@items[5]) {
mes "[Demon Hunter]";
mes "You brought all of the necessary materials... You can get directions to the testing area from our Guildmaster who is currently in the Payon Central Palace.";
- set HNTR_Q,.@items[6];
- if(checkquest(4002) != -1) {
+ HNTR_Q = .@items[6];
+ if (questprogress(4002)) {
changequest 4002,4009;
}
- else if(checkquest(4003) != -1) {
+ else if (questprogress(4003)) {
changequest 4003,4009;
}
- else if(checkquest(4004) != -1) {
+ else if (questprogress(4004)) {
changequest 4004,4009;
}
- else if(checkquest(4005) != -1) {
+ else if (questprogress(4005)) {
changequest 4005,4009;
}
- else if(checkquest(4006) != -1) {
+ else if (questprogress(4006)) {
changequest 4006,4010;
}
- else if(checkquest(4007) != -1) {
+ else if (questprogress(4007)) {
changequest 4007,4010;
}
else {
@@ -655,7 +655,7 @@ payon_in03,131,7,3 script Hunter#htnGM 1_M_ORIENT01,{
}
mes "[Hunter Guildmaster]";
mes "Well, then. Your arrows are probably still being made, so you can use mine to take the test.";
- set HNTR_Q,12;
+ HNTR_Q = 12;
changequest 4009,4011;
getitem 1751,200; //Silver_Arrow
close2;
@@ -727,7 +727,7 @@ payon_in03,131,7,3 script Hunter#htnGM 1_M_ORIENT01,{
mes "Okay!! I hope";
mes "you will pass this time!";
close2;
- set HNTR_Q,12;
+ HNTR_Q = 12;
warp "job_hunte",176,22;
end;
}
@@ -740,7 +740,7 @@ payon_in03,131,7,3 script Hunter#htnGM 1_M_ORIENT01,{
mes "[Hunter Guildmaster]";
mes "Wow, you came back in one piece!";
mes "I mean, good job. I'll give you the item which proves that you have passed the test.";
- set HNTR_Q,17;
+ HNTR_Q = 17;
savepoint "payon",104,99;
getitem 1007,1; //Penetration
changequest 4012,4013;
@@ -819,7 +819,7 @@ payon_in02,21,31,1 script Hunter#htnGM2 1_M_ORIENT01,{
next;
mes "[Hunter Guildmaster]";
mes "Good luck.";
- set HNTR_Q,12;
+ HNTR_Q = 12;
changequest 4010,4011;
warp "job_hunte",176,22;
cutin "job_huntermaster",255;
@@ -915,7 +915,7 @@ payon_in02,21,31,1 script Hunter#htnGM2 1_M_ORIENT01,{
mes "Pass this time!";
close2;
cutin "job_huntermaster",255;
- set HNTR_Q,12;
+ HNTR_Q = 12;
warp "job_hunte",176,22;
end;
}
@@ -932,7 +932,7 @@ payon_in02,21,31,1 script Hunter#htnGM2 1_M_ORIENT01,{
mes "[Hunter Guildmaster]";
mes "Wow. You're back in one piece!";
mes "I mean, good job. Well then, I'll give you the item which serves as proof that you passed the test.";
- set HNTR_Q,17;
+ HNTR_Q = 17;
savepoint "payon",104,99;
getitem 1007,1; //Penetration
next;
@@ -1008,7 +1008,7 @@ OnTouch:
mes "Very well. I'll send you to Payon. Hope to see you next time. Don't forget to save when you leave.";
// donpcevent "Waiting Room#hnt::OnStart";
close2;
- set HNTR_Q,13;
+ HNTR_Q = 13;
savepoint "payon",104,99;
warp "payon_in02",21,27;
}
@@ -1050,7 +1050,7 @@ OnInit:
OnEnable:
donpcevent "Switch#hnt::OnDisable";
enablenpc "Manager#hnt";
- set .MyMobs,6;
+ .MyMobs = 6;
initnpctimer;
// Target Mosnters
monster "job_hunte",67,80,"Job Change Monster",1015,1,"Manager#hnt::OnMyMobDead";
@@ -1093,10 +1093,10 @@ OnEnable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 3) {
mapannounce "job_hunte","Okay, good job... Now, find the switch in the center of the map!! Be careful of the traps!!",bc_map;
- set HNTR_Q,14;
+ HNTR_Q = 14;
donpcevent "Switch#hnt::OnEnable";
donpcevent "Manager#hnt::OnDisable";
}
@@ -1107,7 +1107,7 @@ OnMyMobDead:
OnMyMobDead2:
mapannounce "job_hunte",strcharinfo(0)+ "!! You made a mistake...Please try again.",bc_map;
- set HNTR_Q,13;
+ HNTR_Q = 13;
warp "job_hunte",176,22;
donpcevent "Manager#hnt::OnReset";
donpcevent "Waiting Room#hnt::OnStart";
@@ -1207,7 +1207,7 @@ job_hunte,93,101,1 script Switch#hnt 1_SHADOW_NPC,1,1,{
OnTouch:
mes "^3355FFThere are 3 buttons";
mes "on the escape switch.^000000";
- set HNTR_Q,15;
+ HNTR_Q = 15;
next;
switch(select("Escape:Cancel:Re-test")) {
case 1:
@@ -1229,7 +1229,7 @@ OnTouch:
mes "returned to the";
mes "waiting room.^000000";
close2;
- set HNTR_Q,13;
+ HNTR_Q = 13;
warp "job_hunte",176,22;
donpcevent "Manager#hnt::OnReset";
donpcevent "Waiting Room#hnt::OnStart";
@@ -1254,10 +1254,10 @@ OnInit:
OnTouch:
donpcevent "Manager#hnt::OnReset";
donpcevent "Waiting Room#hnt::OnStart";
- set HNTR_Q,16;
+ HNTR_Q = 16;
changequest 4011,4012;
savepoint "payon",104,99;
- if (rand(1))
+ if (rand(2))
warp "payon_in02",21,27;
warp "payon_in03",128,7;
}
@@ -1400,7 +1400,7 @@ OnTouch:
case 130: mapannounce "job_hunte",strcharinfo(0) + ", it's okay to cry. Just not too loudly.",bc_map; break;
case 131: mapannounce "job_hunte",strcharinfo(0) + "...oh man. It's tiring setting up all these traps. You guys have got to stop falling into them!",bc_map; break;
}
- set HNTR_Q,13;
+ HNTR_Q = 13;
warp "job_hunte",176,22;
donpcevent "Manager#hnt::OnReset";
donpcevent "Waiting Room#hnt::OnStart";
@@ -1636,7 +1636,7 @@ job_hunte,65,92,0 duplicate(HntTrap) 57-3 -1,0,0
job_hunte,65,93,0 script 57-4::HntTrap2 -1,{
OnTouch:
mapannounce "job_hunte",strcharinfo(0) + ", has failed me! Go back to where you started!",bc_map;
- set HNTR_Q,13;
+ HNTR_Q = 13;
warp "job_hunte",176,22;
donpcevent "Manager#hnt::OnReset";
donpcevent "Waiting Room#hnt::OnStart";
diff --git a/npc/jobs/2-1/knight.txt b/npc/jobs/2-1/knight.txt
index da1d8a8e4..5b146d66d 100644
--- a/npc/jobs/2-1/knight.txt
+++ b/npc/jobs/2-1/knight.txt
@@ -133,7 +133,7 @@ prt_in,88,101,4 script Chivalry Captain#knt 1_M_KNIGHTMASTER,{
mes "all of your skill points.";
close;
}
- set KNIGHT_Q,1;
+ KNIGHT_Q = 1;
setquest 9000;
mes "Let me see...";
mes "Your name is";
@@ -559,7 +559,7 @@ prt_in,75,107,4 script Sir Andrew#knt 1_M_YOUNGKNIGHT,{
next;
mes "[Sir Andrew]";
mes "Please go to my fellow Knight, Sir Siracuse, as he will give you your next test. Well done in mastering the Swordman job.";
- set KNIGHT_Q,4;
+ KNIGHT_Q = 4;
changequest 9000,9003;
close;
}
@@ -577,7 +577,7 @@ prt_in,75,107,4 script Sir Andrew#knt 1_M_YOUNGKNIGHT,{
//Short_Leg, Heart_Of_Mermaid. Blossom_Of_Maneater, Flesh_Of_Clam, Old_Frying_Pan, Snail's_Shell
case 2: setarray .@items[0], 1042,5, 950,5, 1032,5, 966,5, 7031,5, 946,5, 3; break;
}
- set KNIGHT_Q,.@items[12];
+ KNIGHT_Q = .@items[12];
if (KNIGHT_Q == 2) changequest 9000,9001;
else changequest 9000,9002;
mes "^236B8E"+.@items[1]+" "+getitemname(.@items[0])+"^000000,";
@@ -626,7 +626,7 @@ prt_in,75,107,4 script Sir Andrew#knt 1_M_YOUNGKNIGHT,{
delitem .@items[10],.@items[11];
if (KNIGHT_Q == 2) changequest 9001,9003;
else changequest 9002,9003;
- set KNIGHT_Q,4;
+ KNIGHT_Q = 4;
mes "[Sir Andrew]";
mes "Please visit my fellow Knight, Sir Siracuse, and continue the tests with the dedication and loyalty you've shown to me this day.";
close;
@@ -862,7 +862,7 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
mes "A Knight must possess great strength, defense, speed, and the skill to wield a Two-Handed Sword. Which of the following weapons are not affected by the Two Hand Quicken skill?";
next;
if (select("Katana:Slayer:Broadsword:Flamberge") != 4) {
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Wrong!";
mes "That's a Two-Handed Sword!";
@@ -876,7 +876,7 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
mes "Good, now let me ask about some skills. Which of the following is not necessary to learn Bowling Bash?";
next;
if (select("Two Handed Sword Mastery Lv.5:Magnum Break Lv.3:Provoke Lv.10:Bash Lv.10") != 3) {
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Wrong!";
mes "You need that to learn Bowling Bash! You should learn more about the Knight class before applying for the job!";
@@ -886,7 +886,7 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
mes "Knights can also use Spears, unlike other jobs, and have skills related to Spears as well. What skills are not necessary to learn the skill Brandish Spear?";
next;
if (select("Pierce Lv.5:Spear Stab Lv.3:Spear Boomerang Lv.3:Peco Peco Ride Lv.1") != 3) {
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Wrong! You need to learn that to learn Brandish Spear! How can you not know about Knights if you want to become one?";
next;
@@ -899,7 +899,7 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
mes "Some Spears also have magical attributes, just like spells. Of the following, which can attack a Nightmare, which has the Ghost attribute?";
next;
if (select("Zephyrus:Lance:Bill Guisarme:Crescent Scythe") != 1) {
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Wrong! You'll be doing absolutely no damage with that type of Spear! Come back after you've learned more about Knights!";
next;
@@ -914,7 +914,7 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
mes "But, you can counter this speed decrease as you learn the Cavalier Mastery skill. What percentage of your normal attack speed will you have after learning Level 3 Cavalier Mastery?";
next;
if (select("70 % of normal attack speed:80 % of normal attack speed:90 % of normal attack speed:100 % of normal attack speed") != 2) {
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Wrong!";
mes "Don't bother riding a Peco Peco if you don't know about Cavalier Mastery!";
@@ -937,12 +937,12 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
next;
break;
case 2:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "You have the wrong idea. Do you really believe that is helping the Novice? Give a man a fish, he will eat for a day. Teach him to fish, he will eat for a lifetime!";
close;
case 3:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Do you really believe that this will truly help the poor Novice? It's generous but, they will not know the true value of zeny and items until they earn it themselves.";
close;
@@ -960,12 +960,12 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
next;
break;
case 2:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "Are you crazy? Don't you realize the flaw in that kind of thinking? You can't control large mobs. What if they kill you? Who will protect the innocent?";
close;
case 3:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "I see your greed and we will have none of it here! It seems you do not truly care for others!";
mes "Get lost!";
@@ -984,17 +984,17 @@ prt_in,71,91,0 script Sir Siracuse#knt 1_M_YOUNGKNIGHT,{
next;
break;
case 2:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "You're scum! You strive to become a Knight for personal wealth? Get lost! We will not accept someone like you in our Chivalry!";
close;
case 3:
- set KNIGHT_Q,5;
+ KNIGHT_Q = 5;
mes "[Sir Siracuse]";
mes "So you're trying to become famous through the Chivalry? That's pathetic. We won't accept someone like you in our Chivalry!";
close;
}
- set KNIGHT_Q,6;
+ KNIGHT_Q = 6;
changequest 9003,9004;
mes "[Sir Siracuse]";
mes "Well then,";
@@ -1096,20 +1096,20 @@ prt_in,79,94,4 script Sir Windsor#knt 4_M_JOB_KNIGHT1,{
}
else if (KNIGHT_Q == 6 || KNIGHT_Q == 7) {
if (KNIGHT_Q == 6) {
- set .@mes$,"Sir Siracuse sent me to you.:Oh, nothing.";
+ .@mes$ = "Sir Siracuse sent me to you.:Oh, nothing.";
mes ".....What?";
next;
}
else {
- set .@mes$,"I want to try again!:...";
+ .@mes$ = "I want to try again!:...";
next;
}
if (select(.@mes$) == 1) {
mes "[Sir Windsor]";
mes "...";
next;
- set KNIGHT_Q,7;
- if (checkquest(9004) != -1) {
+ KNIGHT_Q = 7;
+ if (questprogress(9004)) {
changequest 9004,9005;
}
mes "[Sir Windsor]";
@@ -1126,7 +1126,8 @@ prt_in,79,94,4 script Sir Windsor#knt 4_M_JOB_KNIGHT1,{
mes "...This way.";
}
close2;
- if(checkquest(9006) == -1) changequest 9005,9006;
+ if (!questprogress(9006))
+ changequest 9005,9006;
warp "job_knt",89,101;
end;
}
@@ -1159,7 +1160,7 @@ job_knt,89,106,4 script Knight Windsor#knt 4_M_JOB_KNIGHT1,{
mes "[Sir Windsor]";
mes "...Question?";
next;
- set .@i, select("What kind of test is this?:How do I take the test?:I'd like to leave.:No.");
+ .@i = select("What kind of test is this?:How do I take the test?:I'd like to leave.:No.");
mes "[Sir Windsor]";
mes "...";
if (.@i == 4) close;
@@ -1252,14 +1253,14 @@ OnInit:
OnEnable:
enablenpc "Knight1";
if (!checkre(0)) {
- set .MyMobs,12;
+ .MyMobs = 12;
monster "job_knt",39,150,"Dustiness",1114,1,"Knight1::OnMyMobDead";
monster "job_knt",47,150,"Dustiness",1114,1,"Knight1::OnMyMobDead";
monster "job_knt",39,142,"Dustiness",1114,1,"Knight1::OnMyMobDead";
monster "job_knt",47,142,"Dustiness",1114,1,"Knight1::OnMyMobDead";
}
else
- set .MyMobs,8;
+ .MyMobs = 8;
monster "job_knt",43,137,"Piere",1160,1,"Knight1::OnMyMobDead";
monster "job_knt",43,137,"Andre",1095,1,"Knight1::OnMyMobDead";
monster "job_knt",43,137,"Deniro",1105,1,"Knight1::OnMyMobDead";
@@ -1277,7 +1278,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mes "[Sir Windsor]";
mes "...";
@@ -1318,7 +1319,7 @@ OnInit:
OnEnable:
enablenpc "Knight2";
if (!checkre(0)) {
- set .MyMobs,12;
+ .MyMobs = 12;
monster "job_knt",43,42,"Desert Wolf",1106,1,"Knight2::OnMyMobDead";
monster "job_knt",43,62,"Desert Wolf",1106,1,"Knight2::OnMyMobDead";
monster "job_knt",60,68,"Anacondaq",1030,1,"Knight2::OnMyMobDead";
@@ -1327,7 +1328,7 @@ OnEnable:
monster "job_knt",27,35,"Anacondaq",1030,1,"Knight2::OnMyMobDead";
}
else
- set .MyMobs,6;
+ .MyMobs = 6;
monster "job_knt",53,52,"Frilldora",1119,1,"Knight2::OnMyMobDead";
monster "job_knt",34,52,"Frilldora",1119,1,"Knight2::OnMyMobDead";
monster "job_knt",58,52,"Drainliar",1111,1,"Knight2::OnMyMobDead";
@@ -1343,7 +1344,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mes "[Sir Windsor]";
mes "...Hmm.";
@@ -1383,12 +1384,12 @@ OnInit:
OnEnable:
enablenpc "Knight3";
if (!checkre(0)) {
- set .MyMobs,7;
+ .MyMobs = 7;
monster "job_knt",147,167,"Goblin Archer",1258,1,"Knight3::OnMyMobDead";
monster "job_knt",136,158,"Steam Goblin",1280,1,"Knight3::OnMyMobDead";
}
else
- set .MyMobs,5;
+ .MyMobs = 5;
monster "job_knt",136,152,"Goblin",1122,1,"Knight3::OnMyMobDead";
monster "job_knt",150,152,"Goblin",1123,1,"Knight3::OnMyMobDead";
monster "job_knt",143,145,"Goblin",1124,1,"Knight3::OnMyMobDead";
@@ -1403,7 +1404,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mes "[Sir Windsor]";
mes "...";
@@ -1415,8 +1416,8 @@ OnMyMobDead:
mes "...Go talk to";
mes "Amy Beatrice now.";
close2;
- set KNIGHT_Q,8;
- if(checkquest(9007) == -1) {
+ KNIGHT_Q = 8;
+ if (!questprogress(9007)) {
changequest 9006,9007;
}
warp "prt_in",80,100;
@@ -1544,7 +1545,8 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "come to Amy?";
next;
if (select("Sir Windsor told me to--:Oh, nothing.") == 1) {
- if(checkquest(9008) == -1) changequest 9007,9008;
+ if (!questprogress(9008))
+ changequest 9007,9008;
mes "[Lady Amy]";
mes "Oh!";
mes "No need to say";
@@ -1614,7 +1616,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "How would you go about doing so?";
next;
if (select("Shout out that you are looking for a party.:Open a chat room and wait.:Look for people seeking Knights.") != 1)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "You have formed a party with equal leveled players. There's a Priest, a Wizard, a Hunter, an Assassin, and a Blacksmith...";
next;
@@ -1628,12 +1630,12 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "What should you do?";
next;
if (select("Check out the area and plan ahead.:Gather monsters for your party members.:Lead the party slowly at the front.") != 2)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "But some rude players came with a group of monsters and disappeared! What should you do?";
next;
if (select("Keep the monsters from reaching the party.:Defend while the party retreats.:Run away on your Peco Peco.") == 2)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "Luckily, you all lived through the crisis. But as you walk, you find a person, who is not in your party, collapsed on the ground.";
next;
@@ -1641,7 +1643,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "The person is asking politely for help. What should you do?";
next;
if (select("Ask your party's Priest to help.:Say you will help for Zeny.:Ignore and move on.") == 1)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "You must bid farewell to your party members because you must go somewhere else.";
next;
@@ -1652,7 +1654,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "should you do?";
next;
if(select("Give it to who deserves it the most.:Pretend like nothing happened and keep it.:Decide with party who gets it.") != 2)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "You end up with the item and you go to Prontera to sell it. There are many people with shops and chat rooms opened selling items.";
next;
@@ -1661,7 +1663,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "do to sell your item?";
next;
if (select("Shout out loud to everyone.:Open a chat room and wait.:Inquire if there is anyone that is interested.") == 3)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "While you are waiting,";
mes "someone comes and begs";
@@ -1669,7 +1671,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "What do you do?";
next;
if (select("Give them some Zeny and items.:Simply ignore them.:Give suggestions for a place to hunt.") == 3)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "Now you decide to go to the Hidden Temple by yourself. You happily ride on your Peco Peco.";
next;
@@ -1679,7 +1681,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "What should you do?";
next;
if(select("Tell the person how to reach the exit.:Lead the person to the exit.:Give a Butterfly Wing.") != 3)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "You've been hunting for a while, and now you're low on HP!";
mes "It's red now, which is very dangerous.";
@@ -1691,7 +1693,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "the Priest for a Heal?";
next;
if (select("Would it be possible to get a heal please?:Can I have a heal?:Heal plz!!") == 1)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "You are now very";
mes "exhausted and it's time";
@@ -1705,7 +1707,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "you do?";
next;
if (select("Pick it up and keep it.:Ask around to find the owner.:Simply walk by.") != 1)
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Lady Amy]";
mes "Okay,";
mes "that was the";
@@ -1713,7 +1715,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
next;
mes "[Lady Amy]";
if (.@knight_t == 100) {
- set KNIGHT_Q,10;
+ KNIGHT_Q = 10;
changequest 9008,9009;
mes "Well done, that kind of mentality is needed for a Knight! For your next test, visit Sir Edmond, please~";
next;
@@ -1722,7 +1724,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
close;
}
else if (.@knight_t == 90) {
- set KNIGHT_Q,10;
+ KNIGHT_Q = 10;
changequest 9008,9009;
mes "Well, it wasn't perfect,";
mes "but I think you know enough";
@@ -1733,7 +1735,7 @@ prt_in,69,107,6 script Lady Amy#knt 4_F_JOB_KNIGHT,{
mes "Now, it's time for you to go to Sir Edmond for your next test. Do well on the rest of your tests. You better promise~";
close;
}
- set KNIGHT_Q,9;
+ KNIGHT_Q = 9;
mes "Mmm...";
mes "To be honest, I don't think your attitude is good enough to be a Knight quite yet.";
next;
@@ -1882,7 +1884,7 @@ prt_in,70,99,6 script Sir Edmond#knt 4_M_JOB_KNIGHT2,{
mes "the quality of";
mes "reverence.";
close2;
- set KNIGHT_Q,11;
+ KNIGHT_Q = 11;
changequest 9009,9010;
warp "job_knt",143,57;
end;
@@ -1992,7 +1994,7 @@ OnInit:
disablenpc "Warp#knt";
end;
OnTouch:
- set KNIGHT_Q,12;
+ KNIGHT_Q = 12;
changequest 9010,9011;
warp "prt_in",80,100;
end;
@@ -2196,7 +2198,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
switch(select("Gain wealth and fame.:I can protect myself.:I can protect others.")) {
case 1:
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Sir Gray]";
mes "Of course, wealth and fame have their place in the world. But we as Knights must live for higher virtues.";
next;
@@ -2236,7 +2238,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
break;
case 2:
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Sir Gray]";
mes "Of course wealth is important.";
mes "But we Knights must live for higher virtues.";
@@ -2253,7 +2255,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
}
break;
case 3:
- set .@knight_t,.@knight_t+5;
+ .@knight_t += 5;
mes "[Sir Gray]";
mes "Satisfaction, you say.";
mes "It seems like you are";
@@ -2272,20 +2274,20 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
switch(select("Skills.:Goal.:Appearance.")) {
case 1:
- set .@knight_t,.@knight_t+5;
+ .@knight_t += 5;
mes "[Sir Gray]";
mes "Skill is something you gain with experience as a Knight. It cannot be your highest goal. Otherwise, you'll never be satisfied as a Knight.";
next;
break;
case 2:
- set .@knight_t,.@knight_t-5;
+ .@knight_t -= 5;
mes "[Sir Gray]";
mes "I see...";
mes "Always having a goal is very important. You may be full of ideas upon becoming a Knight, but that may change with time.";
next;
break;
case 3:
- set .@knight_t,.@knight_t+5;
+ .@knight_t += 5;
mes "[Sir Gray]";
mes "Oh no...";
mes "What you see isn't what really counts. A Swordman may be stronger than a Knight, and even Knight may grow weak if he becomes lazy.";
@@ -2316,7 +2318,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
switch(select("I will grow within a short period of time.:I would like to test my ability as a Knight.:I would like to go to more challenging places.")) {
case 1:
- set .@knight_t,.@knight_t+10;
+ .@knight_t += 10;
mes "[Sir Gray]";
mes "Don't be in too much of a hurry to become strong. Even if you become";
mes "a Knight, you are still yourself.";
@@ -2377,7 +2379,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
switch(select("Comfortable places for Knights to go...:The different paths of a Knight...:Ways to get more money as a Knight...")) {
case 1:
- set .@knight_t,.@knight_t+5;
+ .@knight_t += 5;
mes "[Sir Gray]";
mes "There are many places that are comfortable or uncomfortable in this world. However Knights must";
mes "be able to survive anywhere.";
@@ -2389,7 +2391,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
next;
break;
case 3:
- set .@knight_t,.@knight_t+15;
+ .@knight_t += 15;
mes "[Sir Gray]";
mes "Oh no. Do you hold wealth as a priority of being a Knight? We're not meant to be that way. Come again when you have thought";
mes "more about it...";
@@ -2406,7 +2408,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
mes "for so long.";
next;
if (.@knight_t == 0) {
- set KNIGHT_Q,14;
+ KNIGHT_Q = 14;
changequest 9011,9012;
mes "[Sir Gray]";
mes "I enjoyed talking with you. You remind me of myself as a young recruit. Shall we talk to the captain and decide on your";
@@ -2420,7 +2422,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
close;
}
else if (.@knight_t == 5) {
- set KNIGHT_Q,14;
+ KNIGHT_Q = 14;
changequest 9011,9012;
mes "[Sir Gray]";
mes "I enjoyed speaking with you. You can think about the principles of Knighthood more once you become a Knight.";
@@ -2430,7 +2432,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
close;
}
else if (.@knight_t == 10) {
- set KNIGHT_Q,14;
+ KNIGHT_Q = 14;
changequest 9011,9012;
mes "[Sir Gray]";
mes "I enjoyed talking with you. Although, there were some";
@@ -2448,7 +2450,7 @@ prt_in,87,92,4 script Sir Gray#knt 2_M_SWORDMASTER,{
close;
}
else {
- set KNIGHT_Q,13;
+ KNIGHT_Q = 13;
mes "[Sir Gray]";
mes "Conversing";
mes "with young ones";
diff --git a/npc/jobs/2-1/priest.txt b/npc/jobs/2-1/priest.txt
index 57f6a2647..e28106f69 100644
--- a/npc/jobs/2-1/priest.txt
+++ b/npc/jobs/2-1/priest.txt
@@ -35,7 +35,7 @@
prt_church,16,41,4 script High Bishop#prst 1_M_PASTOR,{
// Uncomment the following 'if' statement to allow High Priests to assist Acolytes with the job change quest.
// Officially High Priests are blocked from helping by an indiscriminate check if you are a transcended character.
- //if (Class == Job_High_Priest) set .@AllowHPAssist,1;
+ //if (Class == Job_High_Priest) .@AllowHPAssist = 1;
if (Upper == 1 && .@AllowHPAssist != 1) {
mes "[Bishop Paul]";
mes "Hm...?";
@@ -241,7 +241,7 @@ prt_church,16,41,4 script High Bishop#prst 1_M_PASTOR,{
mes "I strongly recommend that you use all of these skill points before you apply for the Priest job change test.";
close;
}
- set PRIEST_Q,1;
+ PRIEST_Q = 1;
setquest 8009;
mes "[Bishop Paul]";
if (Sex)
@@ -271,7 +271,7 @@ prt_church,16,41,4 script High Bishop#prst 1_M_PASTOR,{
mes "[Bishop Paul]";
mes "I have no doubt that you will do a good job by yourself. However, it will be easier with the aid of a Brother or Sister that has already become a Priest.";
next;
- set PRIEST_Q,5;
+ PRIEST_Q = 5;
changequest 8009,8011;
mes "[Bishop Paul]";
mes "Well, are you ready for the Spiritual Training?";
@@ -392,7 +392,7 @@ prt_church,16,41,4 script High Bishop#prst 1_M_PASTOR,{
close;
}
else if (PRIEST_Q == 4) {
- set PRIEST_Q,5;
+ PRIEST_Q = 5;
changequest 8010,8011;
mes "[Bishop Paul]";
mes "You've accomplished";
@@ -509,7 +509,7 @@ prt_church,16,41,4 script High Bishop#prst 1_M_PASTOR,{
mes "[Bishop Paul]";
mes "Make this servant of yours an instrument of your miraculous works...";
next;
- set .@joblvl,JobLevel;
+ .@joblvl = JobLevel;
completequest 8016;
callfunc "Job_Change",Job_Priest;
callfunc "F_ClearJobVar"; // clears all job variables for the current player
@@ -690,7 +690,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
}
else if (PRIEST_Q == 7 || PRIEST_Q == 8) {
if (PRIEST_Q == 7) {
- if(checkquest(8014) == -1) {
+ if (!questprogress(8014)) {
changequest 8013,8014;
}
mes "Welcome! I'm so glad to see you've come back! Now, there is one last trial left for you to complete.";
@@ -722,7 +722,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "Aw...? How could you give me that kind of answer? I assume you're not ready to be a Priest yet...";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "You should reflect a little more on the teachings of holiness and come back later. You can't be a Priest if your spirit is weak.";
close;
@@ -734,7 +734,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "Aw...? God won't grant you the power of holiness if your goals aren't just and pure. Meditate on your motivations for a while, and then come back to me.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Think about the qualities that make Priests people of respect. You can't be a Priest if your spirit is not in accordance with God.";
close;
@@ -746,7 +746,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "No, no. You've got the wrong idea. God authorizes us to use his power to support his children. You must help people in danger: it is your obligation.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Go and observe the adventurers that are fighting for peace in this world. They will teach you what you must do in order to help them.";
close;
@@ -758,7 +758,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "How can you say no...? That's one of the basic principles of Priesthood. You must value the welfare of others over your own safety.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Go and think about the value of suffering and the meaning of sacrifice. When you think you understand more about helping those in need, come back to me.";
close;
@@ -770,7 +770,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "No no no... You've got it wrong. Even though your purpose is to spread God's message, no one will eagerly accept what you say when you spam text.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Remember...";
mes "You must be a moral person, and display maturity and respect to other players. This kind of attitude applies for all classes,";
@@ -784,7 +784,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "No, you won't. Luring many monsters does more harm than good. There is no exception. That behavior is totally unacceptable.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Even if it looks like you are aiding your party members, such action results in bad karma. Please reflect on that for a while.";
close;
@@ -796,7 +796,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "[Sister Cecilia]";
mes "With that spirit, you can't be a Priest. If it is God's will to sacrifice yourself for a good purpose, you must carry out God's will as his servant.";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "Besides, God has also given Priests the resurrection power. Think about the meaning of life and death again, and then come back to me.";
close;
@@ -809,7 +809,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "You have demonstrated your devotion to God. Will you swear to adhere to his teachings for the rest of your days?";
next;
if (select("I do.:No.") == 1) {
- set PRIEST_Q,9;
+ PRIEST_Q = 9;
changequest 8014,8015;
mes "[Sister Cecilia]";
mes "Now, you have completed your oath of Priesthood and accomplished all three trials required to become a Priest.";
@@ -825,7 +825,7 @@ prt_church,27,24,1 script Sister Cecilia 1_F_PRIEST,{
mes "...";
mes "......";
next;
- set PRIEST_Q,8;
+ PRIEST_Q = 8;
mes "[Sister Cecilia]";
mes "You've come so far...";
mes "Why would you want";
@@ -953,14 +953,14 @@ job_prist,24,187,4 script Peter S. Alberto 4_M_MINISTER,{
donpcevent "Peter S. Alberto#2::OnEnable";
end;
case 2:
- set PRIEST_Q,6;
+ PRIEST_Q = 6;
mes "[Father Peter]";
mes "Hm? What is it you need?";
mes "Well, no problem. You can";
mes "afford to take your time.";
close;
case 3:
- set PRIEST_Q,6;
+ PRIEST_Q = 6;
mes "[Father Peter]";
mes "What...?";
mes "You wanna go back??";
@@ -990,7 +990,7 @@ job_prist,24,187,4 script Peter S. Alberto 4_M_MINISTER,{
mes "Kill those";
mes "misbegotten creatures!";
close2;
- if(checkquest(8012) == -1) {
+ if (!questprogress(8012)) {
changequest 8011,8012;
}
warp "job_prist",24,44;
@@ -1102,7 +1102,7 @@ OnEnable:
end;
OnM1:
- set .MyMobs,13;
+ .MyMobs = 13;
monster "job_prist",24,52,"Theft",1015,1,"Z_C#prst::OnMyMobDead";
monster "job_prist",18,52,"Want of Virtue",1015,1,"Z_C#prst::OnMyMobDead";
monster "job_prist",30,52,"Jealousy",1015,1,"Z_C#prst::OnMyMobDead";
@@ -1294,7 +1294,7 @@ OnDisable:
job_prist,24,109,4 script prst1_1 WARPNPC,3,3,{
OnTouch:
- set .@mobs,getvariableofnpc(.MyMobs,"Zombie_Generator#prst");
+ .@mobs = getvariableofnpc(.MyMobs,"Zombie_Generator#prst");
if (BaseJob == Job_Priest) warp "job_prist",168,17;
else if (BaseClass == Job_Acolyte && .@mobs < 1) {
warp "job_prist",168,17;
@@ -1711,8 +1711,8 @@ OnTouch:
end;
}
else if (BaseClass == Job_Acolyte) {
- set PRIEST_Q,7;
- if(checkquest(8012) != -1) {
+ PRIEST_Q = 7;
+ if (questprogress(8012)) {
changequest 8012,8013;
}
warp "prt_church",16,37;
@@ -1738,7 +1738,7 @@ function script F_FatherRub {
mes "Well then, please head to your next destination for your pilgrimage. Be safe in your travels.";
close2;
savepoint "prt_fild03",361,255;
- set PRIEST_Q,2;
+ PRIEST_Q = 2;
end;
}
else if (PRIEST_Q == 2) {
@@ -1786,7 +1786,7 @@ function script F_MotherMart {
mes "on your journey.";
close2;
savepoint "moc_fild07",35,355;
- set PRIEST_Q,3;
+ PRIEST_Q = 3;
end;
}
else if (PRIEST_Q == 3) {
@@ -1846,7 +1846,7 @@ function script F_FatherYos {
mes "completed.";
close2;
savepoint "prt_fild00",206,230;
- set PRIEST_Q,4;
+ PRIEST_Q = 4;
end;
}
else if (PRIEST_Q == 4) {
diff --git a/npc/jobs/2-1/wizard.txt b/npc/jobs/2-1/wizard.txt
index b1b4d05ab..bce3603eb 100644
--- a/npc/jobs/2-1/wizard.txt
+++ b/npc/jobs/2-1/wizard.txt
@@ -140,7 +140,7 @@ gef_tower,111,37,4 script Wizard Guildsman 1_F_GYPSY,{
mes "[Catherine]";
mes "Go talk to the man in the corner and he will give you the remaining exams.";
mes "Be careful. We have lost many Mages due to the difficulty of the exams.";
- set WIZ_Q,3;
+ WIZ_Q = 3;
setquest 9015;
close;
}
@@ -152,18 +152,18 @@ gef_tower,111,37,4 script Wizard Guildsman 1_F_GYPSY,{
mes "The first test is collecting magic items.";
mes "The important part is that you must gather these items on your own.";
next;
- set wizard_m1,rand(1,2);
+ wizard_m1 = rand(1,2);
mes "[Catherine]";
mes "The items you must collect are...";
- if (rand(1)) {
- set WIZ_Q,1;
+ if (rand(2)) {
+ WIZ_Q = 1;
setquest 9013;
mes "^3355FFRed Gemstone^000000 10 each,";
mes "^3355FFBlue Gemstone^000000 10 each,";
mes "^3355FFYellow Gemstone^000000 10 each,";
}
else {
- set WIZ_Q,2;
+ WIZ_Q = 2;
setquest 9014;
mes "^3355FFCrystal Blue^000000 5 each,";
mes "^3355FFGreen Live^000000 5 each,";
@@ -200,7 +200,7 @@ gef_tower,111,37,4 script Wizard Guildsman 1_F_GYPSY,{
delitem 716,10; //Red_Gemstone
delitem 717,10; //Blue_Gemstone
delitem 715,10; //Yellow_Gemstone
- set WIZ_Q,3;
+ WIZ_Q = 3;
changequest 9013,9015;
mes "[Catherine]";
mes "Good for you! You passed the first test.";
@@ -239,7 +239,7 @@ gef_tower,111,37,4 script Wizard Guildsman 1_F_GYPSY,{
delitem 993,5; //Yellow_Live
delitem 990,5; //Boody_Red
delitem 992,5; //Wind_Of_Verdure
- set WIZ_Q,3;
+ WIZ_Q = 3;
changequest 9014,9015;
mes "[Catherine]";
mes "Good. You've passed the first test now.";
@@ -393,7 +393,7 @@ gef_tower,111,37,4 script Wizard Guildsman 1_F_GYPSY,{
}
else if (WIZ_Q == 7) {
if (JobLevel < 40) {
- set WIZ_Q,0;
+ WIZ_Q = 0;
mes "[Catherine]";
mes "Hey, what don't you get it?";
mes "I said you must be at least job level 40 to change your job, got it?";
@@ -547,7 +547,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "[Raulel]";
mes "I'll give you 10 questions so give me the right answers.";
mes "If you get something wrong, I won't tell you what it is!";
- if(checkquest(9016) == -1) {
+ if (!questprogress(9016)) {
changequest 9015,9016;
}
next;
@@ -588,156 +588,156 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "1. Which of the following is not necessary to learn Fire Wall?";
next;
if (select("Fire Bolt Lv 4:Fire Ball Lv 5:Sight Lv 1:Napalm Beat Lv 4") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "2. Regaurdless of it's previous attribute, What does the monster's attribute change to when you cast Frost Diver on it?";
next;
if (select("Water:Earth:Fire:Wind") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "3. When you completely master Napalm Beat, what is the ratio of the increased MATK using that spell?";
next;
if (select("1.6 times:1.7 times:2 times:20 times") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "4. What item do you need when casting Stone Curse?";
next;
if (select("Red Blood:Blue Gemstone:Yellow Gemstone:Red Gemstone") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "5. Which of the following is not required to master Safety Wall?";
next;
if (select("Napalm Beat Lv 4:Soul Strike Lv 5:Increase SP Recovery Lv 6:Safety Wall Lv 7") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "6. Without the INT bonus, what amount of SP is recovered every 10 seconds when you have learned Increase SP Recovery Lv 7?";
next;
if (select("14:21:28:35") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "7. Using Energy Coat, when you have 50% of your SP remaining, how much SP is used when hit, and what percentage is damage reduced by?";
next;
if (select("Damage 18% SP1.5%:Damage 18% SP2%:Damage 24% SP1.5%:Damage 24% SP2%") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "8. How much SP is consumed and how many times can you avoid attacks when using Safety Wall Lv 6?";
next;
if (select("SP 40, 6 times:SP 35, 6 times:SP 40, 7 times:SP 35, 7 times") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "9. How much SP is needed when using Lv 10 Thunderstorm?";
next;
if (select("84:74:64:54") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "10. Which skill is most useful training in the Byalan Dungeon?";
next;
if (select("Lightning Bolt:Fire Bolt:Cold Bolt:Sight") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
break;
case 2:
mes "[Raulel]";
mes "1. Which monster can you obtain a slotted Guard from?";
next;
if (select("Thief Bug:PecoPeco:Pupa:Kobold (Hammer)") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "2. Which of the following is the easiest monster for a low level Mage to hunt?";
next;
if (select("Flora:Giearth:Golem:Myst") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "3. Which monster will not be affected by Stone Curse?";
next;
if (select("Elder Willow:Evil Druid:Magnolia:Marc") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "4. When attacking a Lv 3 water attribute monster with a wind attribute weapon, what is the damage percentage?";
next;
if (select("125%:150%:175%:200%") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "5. If a Baby Desert Wolf and a Familiar fought, which one would win?";
next;
if (select("Baby Desert Wolf:Familiar:Neither:I don't know") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "6. Which of the following cannot be a Cute Pet?";
next;
if (select("Poporing:Roda Frog:Smokie:Poison Spore") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "7. Choose the monster that is weak against a fire attribute attack.";
next;
if (select("Dagger Goblin:Mace Goblin:Morningstar Goblin:Hammer Goblin") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "8. Which of the following has the highest defense?";
next;
if (select("Horn:Chonchon:Andre:Caramel") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "9. Choose the monster that's of a different species.";
next;
if (select("Poring:Mastering:Ghostring:Spore") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "10. Which of the following is not an Undead monster?";
next;
if (select("Drake:Megalodon:Deviace:Khalitzburg") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
break;
case 3:
mes "[Raulel]";
mes "1. Which stat is the most important for a Mage?";
next;
if (select("INT:AGI:DEX:VIT") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "2. Which attribute does not have a 'Bolt' type attack?";
next;
if (select("Water:Earth:Fire:Wind") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "3. Choose the one that does not relate to a Mage.";
next;
if (select("Weak physical strength.:Attacks at a distance.:Good at selling stuff.:Magic Defense is high.") == 3)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "4. Which town is the home of Mages?";
next;
if (select("Prontera:Morroc:Alberta:Geffen") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "5. Which of the following cards has nothing to do with INT?";
next;
if (select("Andre Egg Card:Soldier Andre Card:Baby Desert Wolf Card:Elder Willow Card") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "6. What is the Mage good at compared to other job classes?";
next;
if (select("Exceptional Vocal Ability:Exceptional Acting Ability:Exceptional Dance Skills:Exceptional Magic Skills") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "7. What is the INT bonus at Job Lv 40 for a Mage?";
next;
if (select("8:7:6:5") == 4)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "8. Which item can a Mage not equip?";
next;
if (select("Knife:Boys Cap:Sandle:Eye of Dullahan") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "9. Which of the following is the catalyst when making the Mage test solution 3?";
next;
if (select("Blue Gemstone:Red Gemstone:Yellow Gemstone:Red Blood") == 1)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
mes "[Raulel]";
mes "10. Which card is irrelevant to magic?";
next;
if (select("Marduk Card:Magnolia Card:Willow Card:Maya Card") == 2)
- set .@wizard_t,.@wizard_t+10;
+ .@wizard_t += 10;
}
mes "[Raulel]";
if (WIZ_Q == 4) {
@@ -746,7 +746,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "[Raulel]";
mes "Your score is... " + .@wizard_t + "points.....";
if (.@wizard_t == 100) {
- set WIZ_Q,5;
+ WIZ_Q = 5;
changequest 9016,9017;
mes "Hahahahahahah~ Well done, you passed the second test.";
mes "It wasn't done in one try like mine was, but I'll let you slide...";
@@ -757,7 +757,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
close;
}
else if (.@wizard_t == 90) {
- set WIZ_Q,5;
+ WIZ_Q = 5;
changequest 9016,9017;
mes "Hahaha~ Since you only missed one problem, you passed the second test.";
mes "It wasn't done in one try like mine was, but I'll let you slide...";
@@ -768,7 +768,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
close;
}
else if (.@wizard_t == 80) {
- set WIZ_Q,5;
+ WIZ_Q = 5;
changequest 9016,9017;
mes "Sheez... You didn't do very well, but you passed the second test.";
mes "It wasn't done in one try like mine was, but I'll let you slide...";
@@ -792,7 +792,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "[Raulel]";
mes "Your score is... " + .@wizard_t + " points!";
if (.@wizard_t == 100) {
- set WIZ_Q,5;
+ WIZ_Q = 5;
changequest 9016,9017;
mes "*cough* *Cough* Well done, you passed the second test.";
next;
@@ -802,7 +802,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
close;
}
else if (.@wizard_t == 90) {
- set WIZ_Q,5;
+ WIZ_Q = 5;
changequest 9016,9017;
mes "Hahahaha~ I'll let you slide by since you only missed one problem. You passed the second test.";
next;
@@ -812,7 +812,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
close;
}
else {
- set WIZ_Q,4;
+ WIZ_Q = 4;
mes "You failed. I will let you come back again...after you've learned more relating to the type of questions I've asked you.";
next;
mes "[Raulel]";
@@ -834,7 +834,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "What a rash person. Your the type that rushes into battle without thinking, what in the world are you doing here instead of with the Prontera Chivalry? Heck, go for it! *cough* Not my fault if you end up dying.";
mes "Just consider yourself a glass cannon...because the monsters are going to break you into pieces. Hahahahahahahahaha~";
next;
- set WIZ_Q,6;
+ WIZ_Q = 6;
savepoint "geffen",120,107;
mes "[Raulel]";
mes "Then, as you wish. I'll send you there right now.";
@@ -868,7 +868,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "If you want, I can send you back to town right now... What do you want to do?";
next;
if (select("Continue testing.:I want to go back because I have butterflies in my stomach.") == 1) {
- set WIZ_Q,6;
+ WIZ_Q = 6;
savepoint "geffen",120,107;
mes "[Raulel]";
mes "You are indeed, very determined. Ok! Hahahahahaha~";
@@ -877,7 +877,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
warp "job_wiz",57,154;
end;
}
- set WIZ_Q,6;
+ WIZ_Q = 6;
mes "[Raulel]";
mes "Good thinking. This is a better choice for you. Hahahahah~";
mes "Go back and live a easy life, Greater Magic is a force that should not be wield by types like yourself.";
@@ -895,7 +895,7 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "Ok then, here's a proposition. Since you're probably worn out as it is, and I can clearly see the lust for Greater Magic burning in your eyes...";
mes "Hahahahaha~ yeah! Go bring me a ^3355FFWorn Out Scroll^000000.";
next;
- set WIZ_Q2,WIZ_Q2+1;
+ WIZ_Q2 = 7;
mes "[Raulel]";
mes "If not, you can take the test again...";
mes "Well, I'll send you to take the test for now. Hahahaha~";
@@ -923,8 +923,8 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "Hahahahahahahaha~ *Cough* *cough* So you ended up bringing one of these eh? Good job...";
mes "I think I can continue my research with this...";
next;
- set WIZ_Q2,0;
- set WIZ_Q,7;
+ WIZ_Q2 = 0;
+ WIZ_Q = 7;
mes "[Raulel]";
mes "Even though your not Grade A Wizard material, I can tell your serious about wanting the Greater Magic. I'll tell Catherine that you passed. Hahahahahahahahah~";
mes "You went through a lot of trouble here, and that is the true purpose for us selecting Wizards. Only those who will devote themselves to the art will ever become Wizards. Good luck to you. Become much Stronger. Hahahahahaha~";
@@ -946,27 +946,27 @@ gef_tower,102,24,2 script Gloomy Wizard 4_M_JOB_WIZARD,{
mes "1. Choose the monster with a different attribute than the others.";
next;
if (select("Mantis:Cornutus:Giearth:Caramel") == 2)
- set .@wizard_t,.@wizard_t+20;
+ .@wizard_t += 20;
mes "[Raulel]";
mes "2. Choose the monster that is not a looting one.";
next;
if (select("Yoyo:Magnolia:Metaller:Zerom") == 4)
- set .@wizard_t,.@wizard_t+20;
+ .@wizard_t += 20;
mes "[Raulel]";
mes "3. Which of these monsters does not recognize casting?";
next;
if (select("Marina:Vitata:Scorpion:Giearth") == 1)
- set .@wizard_t,.@wizard_t+20;
+ .@wizard_t += 20;
mes "[Raulel]";
mes "4. Choose the spell that would be efficient against a Marine Sphere.";
next;
if (select("Cold Bolt:Fire Bolt:Lightning Bolt:Stone Curse") == 3)
- set .@wizard_t,.@wizard_t+20;
+ .@wizard_t += 20;
mes "[Raulel]";
mes "5. Choose the monster that can move.";
next;
if (select("Hydra:Madragora:Greatest General:Frilldora") == 4)
- set .@wizard_t,.@wizard_t+20;
+ .@wizard_t += 20;
mes "[Raulel]";
mes "*pfft* Do it right, so I don't have to ask again.";
next;
@@ -1094,11 +1094,11 @@ OnInit:
OnEnable:
enablenpc "Room of Water";
if (!checkre(0)) {
- set .MyMobs,8;
+ .MyMobs = 8;
monster "job_wiz",129,170,"Obeaune",1044,1,"Room of Water::OnMyMobDead";
}
else
- set .MyMobs,7;
+ .MyMobs = 7;
monster "job_wiz",109,174,"Phen",1158,1,"Room of Water::OnMyMobDead";
monster "job_wiz",118,174,"Shellfish",1074,1,"Room of Water::OnMyMobDead";
monster "job_wiz",109,165,"Vadon",1066,1,"Room of Water::OnMyMobDead";
@@ -1115,9 +1115,9 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
- set WIZ_Q2,WIZ_Q2+1;
+ ++WIZ_Q2;
mapannounce "job_wiz",strcharinfo(0)+" has succeeded in eliminating the monsters.",bc_map;
donpcevent "Room of Water#Door::OnEnable";
stopnpctimer;
@@ -1188,7 +1188,7 @@ OnInit:
OnEnable:
enablenpc "Room of Water#Door";
donpcevent "Room of Water::OnDisable";
- set .MyMobs,5;
+ .MyMobs = 5;
monster "job_wiz",114,169,"Marine Sphere",1142,1,"Room of Water#Door::OnMyMobDead";
monster "job_wiz",112,169,"Hydra",1068,1,"Room of Water#Door::OnMyMobDead";
monster "job_wiz",116,169,"Hydra",1068,1,"Room of Water#Door::OnMyMobDead";
@@ -1203,7 +1203,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_wiz",strcharinfo(0)+" has succeeded in eliminating the monsters.",bc_map;
percentheal 100,100;
@@ -1267,13 +1267,13 @@ OnInit:
OnEnable:
enablenpc "Room of Earth";
if (!checkre(0)) {
- set .MyMobs,10;
+ .MyMobs = 10;
monster "job_wiz",120,102,"Hode",1127,1,"Room of Earth::OnMyMobDead";
monster "job_wiz",111,93,"Savage",1166,1,"Room of Earth::OnMyMobDead";
monster "job_wiz",127,86,"Mantis",1139,1,"Room of Earth::OnMyMobDead";
}
else
- set .MyMobs,7;
+ .MyMobs = 7;
monster "job_wiz",111,102,"Yoyo",1057,1,"Room of Earth::OnMyMobDead";
monster "job_wiz",120,102,"Deniro",1105,1,"Room of Earth::OnMyMobDead";
monster "job_wiz",111,102,"Caramel",1103,1,"Room of Earth::OnMyMobDead";
@@ -1290,7 +1290,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_wiz",strcharinfo(0) + " has succeeded in eliminating the monsters.",bc_map;
donpcevent "Room of Earth#Door::OnEnable";
@@ -1363,11 +1363,11 @@ OnEnable:
enablenpc "Room of Earth#Door";
donpcevent "Room of Earth::OnDisable";
if (!checkre(0)) {
- set .MyMobs,7;
+ .MyMobs = 7;
monster "job_wiz",116,97,"Flora",1118,1,"Room of Earth#Door::OnMyMobDead";
}
else
- set .MyMobs,6;
+ .MyMobs = 6;
monster "job_wiz",114,95,"Mandragora",1020,1,"Room of Earth#Door::OnMyMobDead";
monster "job_wiz",118,95,"Mandragora",1020,1,"Room of Earth#Door::OnMyMobDead";
monster "job_wiz",114,99,"Mandragora",1020,1,"Room of Earth#Door::OnMyMobDead";
@@ -1383,7 +1383,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_wiz",strcharinfo(0) + " has succeeded in eliminating the monster.",bc_map;
percentheal 100,100;
@@ -1447,12 +1447,12 @@ OnInit:
OnEnable:
enablenpc "Room of Fire";
if (!checkre(0)) {
- set .MyMobs,8;
+ .MyMobs = 8;
monster "job_wiz",58,110,"Zerom",1178,1,"Room of Fire::OnMyMobDead";
monster "job_wiz",54,89,"Desert Wolf",1106,1,"Room of Fire::OnMyMobDead";
}
else
- set .MyMobs,6;
+ .MyMobs = 6;
monster "job_wiz",33,110,"Goblin",1123,1,"Room of Fire::OnMyMobDead";
monster "job_wiz",40,103,"Scorpion",1001,1,"Room of Fire::OnMyMobDead";
monster "job_wiz",51,103,"Frilldora",1119,1,"Room of Fire::OnMyMobDead";
@@ -1468,7 +1468,7 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_wiz",strcharinfo(0) + " has succeeded in eliminating the monsters.",bc_map;
donpcevent "Room of Fire#Door::OnEnable";
@@ -1540,7 +1540,7 @@ OnInit:
OnEnable:
enablenpc "Room of Fire#Door";
donpcevent "Room of Fire::OnDisable";
- set .MyMobs,3;
+ .MyMobs = 3;
monster "job_wiz",44,99,"Greatest General",1277,1,"Room of Fire#Door::OnMyMobDead";
if (checkre(0)) {
monster "job_wiz",43,99,"Greatest General",1277,1,"Room of Fire#Door::OnMyMobDead";
@@ -1559,10 +1559,10 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_wiz","Congratulations, " + strcharinfo(0) + ". You have passed the job change test.",bc_map;
- set WIZ_Q,7;
+ WIZ_Q = 7;
changequest 9017,9018;
donpcevent "Room of Fire#Door::OnDisable";
donpcevent "Test Helper#wiz::OnEnable";
diff --git a/npc/jobs/2-1a/AssassinCross.txt b/npc/jobs/2-1a/AssassinCross.txt
index a9fdee622..3daf3bd84 100644
--- a/npc/jobs/2-1a/AssassinCross.txt
+++ b/npc/jobs/2-1a/AssassinCross.txt
@@ -15,7 +15,7 @@
valkyrie,44,58,5 script Assassin Cross#Valkyrie 4_F_JOB_ASSASSIN,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Assassin Cross]";
mes "Congratulations...";
@@ -77,7 +77,7 @@ valkyrie,44,58,5 script Assassin Cross#Valkyrie 4_F_JOB_ASSASSIN,{
close;
}
jobchange Job_Assassin_Cross;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Assassin Cross]";
mes "Congratulations.";
mes "As an Assassin Cross,";
diff --git a/npc/jobs/2-1a/HighPriest.txt b/npc/jobs/2-1a/HighPriest.txt
index e7dffe9b9..77cf7be23 100644
--- a/npc/jobs/2-1a/HighPriest.txt
+++ b/npc/jobs/2-1a/HighPriest.txt
@@ -15,7 +15,7 @@
valkyrie,44,42,5 script High Priest#Valkyrie 1_M_PASTOR,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[High Priest]";
mes "Congratulations.";
@@ -57,7 +57,7 @@ valkyrie,44,42,5 script High Priest#Valkyrie 1_M_PASTOR,{
close;
}
jobchange Job_High_Priest;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[High Priest]";
mes "Congratulations.";
mes "As a High Priest,";
diff --git a/npc/jobs/2-1a/HighWizard.txt b/npc/jobs/2-1a/HighWizard.txt
index ab5dc6424..2a823da5f 100644
--- a/npc/jobs/2-1a/HighWizard.txt
+++ b/npc/jobs/2-1a/HighWizard.txt
@@ -15,7 +15,7 @@
valkyrie,44,47,5 script High Wizard#Valkyrie 4_M_JOB_WIZARD,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[High Wizard]";
mes "Congratulations.";
@@ -61,7 +61,7 @@ valkyrie,44,47,5 script High Wizard#Valkyrie 4_M_JOB_WIZARD,{
close;
}
jobchange Job_High_Wizard;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[High Wizard]";
mes "Congratulations.";
mes "As a High Wizard,";
diff --git a/npc/jobs/2-1a/LordKnight.txt b/npc/jobs/2-1a/LordKnight.txt
index eb310e360..291cd930c 100644
--- a/npc/jobs/2-1a/LordKnight.txt
+++ b/npc/jobs/2-1a/LordKnight.txt
@@ -15,7 +15,7 @@
valkyrie,44,39,5 script Lord Knight#Valkyrie 1_M_KNIGHTMASTER,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Lord Knight]";
mes "Congratulations.";
@@ -59,7 +59,7 @@ valkyrie,44,39,5 script Lord Knight#Valkyrie 1_M_KNIGHTMASTER,{
close;
}
jobchange Job_Lord_Knight;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Lord Knight]";
mes "Congratulations!";
mes "As a Lord Knight,";
diff --git a/npc/jobs/2-1a/Sniper.txt b/npc/jobs/2-1a/Sniper.txt
index c7060cdf6..893dc3a2d 100644
--- a/npc/jobs/2-1a/Sniper.txt
+++ b/npc/jobs/2-1a/Sniper.txt
@@ -15,7 +15,7 @@
valkyrie,44,55,5 script Sniper#Valkyrie 4_F_JOB_HUNTER,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Sniper]";
mes "Congratulations.";
@@ -57,7 +57,7 @@ valkyrie,44,55,5 script Sniper#Valkyrie 4_F_JOB_HUNTER,{
close;
}
jobchange Job_Sniper;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Sniper]";
mes "Congratulations!";
mes "As a Sniper, I hope";
diff --git a/npc/jobs/2-1a/WhiteSmith.txt b/npc/jobs/2-1a/WhiteSmith.txt
index 590f68143..a530246cc 100644
--- a/npc/jobs/2-1a/WhiteSmith.txt
+++ b/npc/jobs/2-1a/WhiteSmith.txt
@@ -15,7 +15,7 @@
valkyrie,44,50,5 script MasterSmith#Valkyrie 4_M_JOB_BLACKSMITH,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[MasterSmith]";
mes "Congratulations.";
@@ -63,7 +63,7 @@ valkyrie,44,50,5 script MasterSmith#Valkyrie 4_M_JOB_BLACKSMITH,{
close;
}
jobchange Job_Whitesmith;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[MasterSmith]";
mes "Congratulations!";
mes "As a MasterSmith,";
diff --git a/npc/jobs/2-1e/StarGladiator.txt b/npc/jobs/2-1e/StarGladiator.txt
index ca04c46c9..f33cda98e 100644
--- a/npc/jobs/2-1e/StarGladiator.txt
+++ b/npc/jobs/2-1e/StarGladiator.txt
@@ -101,7 +101,7 @@ payon,215,102,3 script Moohyun#job_star 4_M_ROGUE,3,3,{
mes "place that's closest to the sky.^FFFFFF ^000000 In the meantime, I'll write a";
mes "letter of recommendation that";
mes "I'll send to him for you.";
- set STGL_Q,1;
+ STGL_Q = 1;
setquest 7007;
close;
}
@@ -224,7 +224,7 @@ payon,215,102,3 script Moohyun#job_star 4_M_ROGUE,3,3,{
mes "back to the Moon Room. Soon,";
mes "maybe we'll be able to greet";
mes "each other as Taekwon Masters!";
- set STGL_Q,8;
+ STGL_Q = 8;
close;
}
mes "[Moohyun]";
@@ -420,7 +420,7 @@ comodo,172,230,3 script Wandering Master#job_sta 4_M_JOB_ASSASSIN,{
mes "^4D4DFFMystic Frozen^000000 and";
mes "^4D4DFFFlame Heart^000000.";
mes "Now go...";
- set STGL_Q,2;
+ STGL_Q = 2;
changequest 7007,7008;
close;
}
@@ -485,7 +485,7 @@ comodo,172,230,3 script Wandering Master#job_sta 4_M_JOB_ASSASSIN,{
delitem 997,1; //Great_Nature
delitem 995,1; //Mistic_Frozen
delitem 994,1; //Flame_Heart
- set STGL_Q,3;
+ STGL_Q = 3;
changequest 7008,7009;
close;
}
@@ -839,7 +839,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "I suppose you can think";
mes "of mankind as the sons of";
mes "the sun. Good, very good...";
- set .@sun_point,.@sun_point+10;
+ .@sun_point += 10;
break;
case 2:
mes "[Daru]";
@@ -853,7 +853,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "I suppose you can think of";
mes "the Sun as one of thousands";
mes "of stars in the universe...";
- set .@sun_point,.@sun_point+5;
+ .@sun_point += 5;
break;
case 4:
mes "[Daru]";
@@ -879,7 +879,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "of the sun, our world";
mes "not only be cold, but it";
mes "would be completely lifeless.";
- set .@sun_point,.@sun_point+10;
+ .@sun_point += 10;
break;
case 2:
mes "[Daru]";
@@ -888,7 +888,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "of the sun brings comfort.";
mes "And without comfort, is life";
mes "truly worth living? Good answer. ^FFFFFF ^000000";
- set .@sun_point,.@sun_point+10;
+ .@sun_point += 10;
break;
case 3:
mes "[Daru]";
@@ -897,7 +897,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "we would see nothing.";
mes "We would know nothing.";
mes "We would be nothing.";
- set .@sun_point,.@sun_point+10;
+ .@sun_point += 10;
break;
case 4:
mes "[Daru]";
@@ -931,7 +931,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "them all? Think carefully...";
next;
if (select("2nd, Marsh, Knights:4th, Desert, Sand:10th, Desert, Knights:5th, Deep Cave, Wolves") == 2)
- set .@sun_point,.@sun_point+10;
+ .@sun_point += 10;
mes "[Daru]";
mes "Well, that will be all.";
mes "I cannot possibly know all";
@@ -948,7 +948,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "all life, the origin of warmth";
mes "and comfort. Now, let me lead";
mes "you to the Moon Room.";
- set STGL_Q,4;
+ STGL_Q = 4;
close2;
warp "job_star",100,13;
end;
@@ -967,7 +967,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "more attuned with the power of";
mes "the cosmos. Now, please come";
mes "this way to the Moon Room...";
- set STGL_Q,4;
+ STGL_Q = 4;
close2;
warp "job_star",100,13;
end;
@@ -987,7 +987,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "to speak to me once again.";
mes "Contemplate the infinite";
mes "power of the sun...";
- set STGL_Q,5;
+ STGL_Q = 5;
close;
}
else if (STGL_Q == 4) {
@@ -1009,7 +1009,7 @@ job_star,29,33,0 script Daru#job_star 1_M_ORIENT01,{
mes "its importance to the humans";
mes "and the world. Well done. Now,";
mes "let's proceed to the Moon Room.";
- set STGL_Q,4;
+ STGL_Q = 4;
close2;
warp "job_star",100,13;
end;
@@ -1134,7 +1134,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "gentle moon whose soft";
mes "light helps you think clearly.";
mes "It's a moon of peaceful rest...";
- set .@moon_point,.@moon_point+10;
+ .@moon_point += 10;
break;
case 3:
mes "[Beeryu]";
@@ -1144,7 +1144,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "to aspire to attain prosperity";
mes "is natural, and to fulfill your";
mes "aspirations is life's pinnacle.";
- set .@moon_point,.@moon_point+10;
+ .@moon_point += 10;
break;
case 4:
mes "[Beeryu]";
@@ -1173,7 +1173,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "both power and compassion";
mes "are required to enact the";
mes "truest form of justice.";
- set .@moon_point,.@moon_point+10;
+ .@moon_point += 10;
break;
case 2:
mes "[Beeryu]";
@@ -1183,7 +1183,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "never forget your reasons";
mes "for attaining mastery of the";
mes "self, else you lose your way.";
- set .@moon_point,.@moon_point+10;
+ .@moon_point += 10;
break;
case 3:
mes "[Beeryu]";
@@ -1240,7 +1240,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "light of the moon?";
next;
if (select("2nd, Marsh, Dark Knights:4th, the Desert, the Sand:10th, Deep Cave, Dark Knight:5th, Marsh, Wolves") == 4)
- set .@moon_point,.@moon_point+10;
+ .@moon_point += 10;
mes "[Beeryu]";
mes "Well, I've asked the";
mes "questions I wanted to set";
@@ -1264,7 +1264,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "Now, the time has come for you";
mes "to enter the Star Room. Come,";
mes "follow me this way...";
- set STGL_Q,6;
+ STGL_Q = 6;
close2;
warp "job_star",166,29;
end;
@@ -1295,7 +1295,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "of patience^000000. Then, when you're";
mes "ready, please talk to Moogang";
mes "so that he can send you to me.";
- set STGL_Q,7;
+ STGL_Q = 7;
close2;
warp "payon",164,58;
end;
@@ -1366,7 +1366,7 @@ job_star,95,33,0 script Beeryu#job_star 1_M_MOC_LORD,{
mes "pride without hubris. You're";
mes "ready for the Star Room, so";
mes "I'll send you to Cheehee now.";
- set STGL_Q,6;
+ STGL_Q = 6;
close2;
warp "job_star",166,29;
end;
@@ -1422,7 +1422,7 @@ job_star,161,33,0 script Cheehee#job_star 1_F_ORIENT_03,{
mes "like a pretty girl's teardrops";
mes "shed on a background of ";
mes "pitch black night sky...";
- set STGL_Q,9;
+ STGL_Q = 9;
close;
}
else if (STGL_Q == 9) {
@@ -1433,7 +1433,7 @@ job_star,161,33,0 script Cheehee#job_star 1_F_ORIENT_03,{
mes "bring me the items on";
mes "this earth that come from";
mes "the stars. Bring me a piece of a star and the sand of a star...";
- set STGL_Q,10;
+ STGL_Q = 10;
changequest 7009,7010;
close;
}
@@ -1465,7 +1465,7 @@ job_star,161,33,0 script Cheehee#job_star 1_F_ORIENT_03,{
mes "sweet kind of sadness...";
delitem 1000,1; //Star_Crumb
delitem 1001,1; //Sparkling_Dust
- set STGL_Q,11;
+ STGL_Q = 11;
close;
}
mes "[Cheehee]";
@@ -1534,7 +1534,7 @@ job_star,161,33,0 script Cheehee#job_star 1_F_ORIENT_03,{
mes "Moogang again. I will";
mes "let him know that you";
mes "completed our testing.";
- set STGL_Q,12;
+ STGL_Q = 12;
changequest 7010,7011;
close;
}
@@ -1567,7 +1567,7 @@ job_star,161,33,0 script Cheehee#job_star 1_F_ORIENT_03,{
mes "Moogang again. I will";
mes "let him know that you";
mes "completed our testing.";
- set STGL_Q,12;
+ STGL_Q = 12;
changequest 7010,7011;
close;
}
diff --git a/npc/jobs/2-2/alchemist.txt b/npc/jobs/2-2/alchemist.txt
index 7e5ca7e33..04a32e0cf 100644
--- a/npc/jobs/2-2/alchemist.txt
+++ b/npc/jobs/2-2/alchemist.txt
@@ -183,17 +183,17 @@ alde_alche,27,185,5 script Alchemist Guildsman#am 4_F_ALCHE,{
mes "needs to bring...";
switch(rand(1,3)) {
case 1:
- set ALCH_Q,1;
+ ALCH_Q = 1;
setquest 2028;
mes "^551A8B7 Berserk Potions^000000.";
break;
case 2:
- set ALCH_Q,2;
+ ALCH_Q = 2;
setquest 2029;
mes "^551A8B100 Mini Furnaces^000000.";
break;
case 3:
- set ALCH_Q,3;
+ ALCH_Q = 3;
setquest 2030;
mes "^551A8B7,500 Fire Arrows^000000.";
}
@@ -233,11 +233,11 @@ alde_alche,27,185,5 script Alchemist Guildsman#am 4_F_ALCHE,{
mes "[Parmy Gianino]";
mes "Okay, now you need to learn";
mes "the basics to being an Alchemist and learn the procedures for mixing chemicals and medicines.";
- set ALCH_Q,4;
- if(checkquest(2028) != -1) {
+ ALCH_Q = 4;
+ if (questprogress(2028)) {
changequest 2028,2031;
}
- else if(checkquest(2029) != -1) {
+ else if (questprogress(2029)) {
changequest 2029,2031;
}
else {
@@ -266,11 +266,11 @@ alde_alche,27,185,5 script Alchemist Guildsman#am 4_F_ALCHE,{
mes "[Parmy Gianino]";
mes "Okay, now you need to learn";
mes "the basics to being an Alchemist and learn the procedures for mixing chemicals and medicines.";
- set ALCH_Q,4;
- if(checkquest(2028) != -1) {
+ ALCH_Q = 4;
+ if (questprogress(2028)) {
changequest 2028,2031;
}
- else if(checkquest(2029) != -1) {
+ else if (questprogress(2029)) {
changequest 2029,2031;
}
else {
@@ -465,7 +465,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "Now go to Darwin!";
mes "He'll teach you how to do the experiments. Just tell him that";
mes "I sent you.";
- set ALCH_Q,6;
+ ALCH_Q = 6;
changequest 2031,2032;
close;
}
@@ -515,32 +515,32 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "12 + 23 + 34 + 45 = ?";
next;
input .@input;
- if (.@input != 114) set .@w_point,.@w_point+1;
+ if (.@input != 114) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "1000 - 36 - 227 - 348 = ?";
next;
input .@input;
- if (.@input != 389) set .@w_point,.@w_point+1;
+ if (.@input != 389) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "14 * 17 * 3 = ?";
next;
input .@input;
- if (.@input != 714) set .@w_point,.@w_point+1;
+ if (.@input != 714) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "9765 / 3 / 5 / 7 = ?";
next;
input .@input;
- if (.@input != 93) set .@w_point,.@w_point+1;
+ if (.@input != 93) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(47 * 28) - (1376 / 4) = ?";
next;
input .@input;
- if (.@input != 972) set .@w_point,.@w_point+1;
+ if (.@input != 972) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(2646 / 7) + (13 * 28) = ?";
next;
input .@input;
- if (.@input != 742) set .@w_point,.@w_point+1;
+ if (.@input != 742) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "How much do";
mes "12 Red Potions,";
@@ -549,7 +549,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "after a 24 % discount?";
next;
input .@input;
- if (.@input != 909) set .@w_point,.@w_point+1;
+ if (.@input != 909) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total weight of";
@@ -557,7 +557,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "and 1 Long Coat?";
next;
input .@input;
- if (.@input != 450) set .@w_point,.@w_point+1;
+ if (.@input != 450) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total defense of";
@@ -567,7 +567,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "Ear Muffs?";
next;
input .@input;
- if (.@input != 20) set .@w_point,.@w_point+1;
+ if (.@input != 20) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "If you buy 5 Helms";
mes "with a 24 % discount";
@@ -576,44 +576,44 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "do you earn?";
next;
input .@input;
- if (.@input != 8800) set .@w_point,.@w_point+1;
+ if (.@input != 8800) .@w_point += 1;
break;
case 2:
mes "[Raspuchin Gregory]";
mes "13 + 25 + 37 + 48 = ?";
next;
input .@input;
- if (.@input != 123) set .@w_point,.@w_point+1;
+ if (.@input != 123) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "1000 - 58 - 214 - 416 = ?";
next;
input .@input;
- if (.@input != 312) set .@w_point,.@w_point+1;
+ if (.@input != 312) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "12 * 24 * 3 = ?";
next;
input .@input;
- if (.@input != 864) set .@w_point,.@w_point+1;
+ if (.@input != 864) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "10530 / 3 / 5 / 2 = ?";
next;
input .@input;
- if (.@input != 351) set .@w_point,.@w_point+1;
+ if (.@input != 351) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(35 * 19) - (1792 / 7) = ?";
next;
input .@input;
- if (.@input != 409) set .@w_point,.@w_point+1;
+ if (.@input != 409) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(2368 / 8) + (24 * 17) = ?";
next;
input .@input;
- if (.@input != 704) set .@w_point,.@w_point+1;
+ if (.@input != 704) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(2646 / 7) + (13 * 28) = ?";
next;
input .@input;
- if (.@input != 742) set .@w_point,.@w_point+1;
+ if (.@input != 742) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total price of";
@@ -623,7 +623,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "a 24 % discount?";
next;
input .@input;
- if (.@input != 934) set .@w_point,.@w_point+1;
+ if (.@input != 934) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total weight of";
@@ -631,7 +631,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "4 Caps, and 2 Boots?";
next;
input .@input;
- if (.@input != 550) set .@w_point,.@w_point+1;
+ if (.@input != 550) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total defense of";
@@ -641,7 +641,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "and Glasses?";
next;
input .@input;
- if (.@input != 16) set .@w_point,.@w_point+1;
+ if (.@input != 16) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "How much profit do you";
mes "make if you buy Tights";
@@ -650,39 +650,39 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "the normal price?";
next;
input .@input;
- if (.@input != 8520) set .@w_point,.@w_point+1;
+ if (.@input != 8520) .@w_point += 1;
break;
case 3:
mes "[Raspuchin Gregory]";
mes "12 + 23 + 34 + 45 = ?";
next;
input .@input;
- if (.@input != 114) set .@w_point,.@w_point+1;
+ if (.@input != 114) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "1000 - 58 - 214 - 416 = ?";
next;
input .@input;
- if (.@input != 312) set .@w_point,.@w_point+1;
+ if (.@input != 312) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "14 * 17 * 3 = ?";
next;
input .@input;
- if (.@input != 714) set .@w_point,.@w_point+1;
+ if (.@input != 714) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "10530 / 3 / 5 / 2 = ?";
next;
input .@input;
- if (.@input != 351) set .@w_point,.@w_point+1;
+ if (.@input != 351) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(47 * 28) - (1376 / 4) = ?";
next;
input .@input;
- if (.@input != 972) set .@w_point,.@w_point+1;
+ if (.@input != 972) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "(2646 / 7) + (13 * 28) = ?";
next;
input .@input;
- if (.@input != 742) set .@w_point,.@w_point+1;
+ if (.@input != 742) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total cost of";
@@ -692,7 +692,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "after a 24 % discount?";
next;
input .@input;
- if (.@input != 798) set .@w_point,.@w_point+1;
+ if (.@input != 798) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total weight of";
@@ -700,14 +700,14 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "3 Caps, and 3 boots?";
next;
input .@input;
- if (.@input != 480) set .@w_point,.@w_point+1;
+ if (.@input != 480) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "What is the";
mes "total defense of";
mes "a Mirror Shield, Mr. Smile, Leather Jacket, Silk Robe, Wedding Veil, Muffler, and Eye Patch?";
next;
input .@input;
- if (.@input != 12) set .@w_point,.@w_point+1;
+ if (.@input != 12) .@w_point += 1;
mes "[Raspuchin Gregory]";
mes "If you buy 4 Padded Armors";
mes "at a 24% discount and sell";
@@ -716,7 +716,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "you make from this sale?";
next;
input .@input;
- if (.@input != 7680) set w_point,w_point+1;
+ if (.@input != 7680) .@w_point += 1;
}
if (.@w_point == 0) {
mes "[Raspuchin Gregory]";
@@ -741,7 +741,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
next;
}
else {
- set ALCH_Q,5;
+ ALCH_Q = 5;
mes "[Raspuchin Gregory]";
mes "Keheheh! Idiot!";
mes "Just listening to your";
@@ -773,7 +773,7 @@ alde_alche,175,107,3 script Fastidious Alchemist#am 4_M_ALCHE_B,{
mes "Now go to Darwin!";
mes "He'll teach you how to do the experiments. Just tell him that";
mes "I sent you.";
- set ALCH_Q,6;
+ ALCH_Q = 6;
changequest 2031,2032;
close;
}
@@ -914,7 +914,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
mes "^551A8B1 Red Herb^000000,";
mes "^551A8B1 Yellow Herb^000000 and";
mes "^551A8B1 White Herb^000000.";
- set ALCH_Q,7;
+ ALCH_Q = 7;
changequest 2032,2033;
next;
mes "[Darwin]";
@@ -1091,7 +1091,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
mes "Go to the Union";
mes "and cast away the last";
mes "vestiges of Merchant life!!";
- set ALCH_Q,40;
+ ALCH_Q = 40;
changequest 2033,2034;
close;
}
@@ -1122,19 +1122,19 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
mes "Now, make some medicine";
mes "using the simple procedure";
mes "I just explained to you.";
- set w_point,0;
+ .@w_point = 0;
next;
switch(select("Prepare the Medicine Bowl.:Put the Medicine Bowl on your head.:Kick the Medicine Bowl.")) {
case 1:
break;
case 2:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "What...?";
next;
break;
case 3:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "No!";
next;
@@ -1142,7 +1142,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
}
switch(select("Put some dirt in the Medicine Bowl.:Put some Herbs in the Medicine Bowl.:Put a Harp in the Medicine Bowl.")) {
case 1:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "...Eh!?";
mes "That's not";
@@ -1152,7 +1152,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
case 2:
break;
case 3:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "A Harp?";
mes "And how would";
@@ -1164,14 +1164,14 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
case 1:
break;
case 2:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Wh-What are";
mes "you doing!?";
next;
break;
case 3:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Agh...!";
mes "What do you";
@@ -1182,14 +1182,14 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
}
switch(select("Spray clean water.:Drink clean water.:Pour clean water.")) {
case 1:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Huh?";
mes "What are you doing?";
next;
break;
case 2:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "W-wait...";
mes "Are you";
@@ -1203,7 +1203,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
case 1:
break;
case 2:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Eat the Herbs?";
mes "I think you need";
@@ -1212,7 +1212,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
next;
break;
case 3:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Singing and";
mes "dancing? Alchemists";
@@ -1223,7 +1223,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
}
switch(select("Put noodles in and fry it.:Pour it in an empty bottle.:Hold the Medicine Bowl and drink it.")) {
case 1:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "We're Alchemists,";
mes "not restaurant chefs.";
@@ -1232,7 +1232,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
case 2:
break;
case 3:
- set .@w_point,.@w_point+1;
+ ++.@w_point;
mes "[Darwin]";
mes "Huh...";
mes "Pretty sloppy...";
@@ -1256,7 +1256,7 @@ alde_alche,13,15,7 script Studying Man#am 4_M_ALCHE_C,{
mes "[Darwin]";
mes "Good job.";
mes "It came out pretty well considering it's your first time. Go ahead and keep the medicines that you've just made.";
- set ALCH_Q,8;
+ ALCH_Q = 8;
changequest 2033,2035;
next;
mes "[Darwin]";
@@ -1433,7 +1433,7 @@ alde_alche,79,19,5 script Experiment Expert#am 4_M_ALCHE_A,{
mes "You don't need to bring anything. Just go watch him at work and have him tell you how he makes those solutions. Got it?";
next;
mes "[Van Helmont]";
- set ALCH_Q,9;
+ ALCH_Q = 9;
changequest 2035,2036;
mes "Well then, see you later.";
mes "You'd better get going as";
@@ -1503,13 +1503,13 @@ alde_alche,79,19,5 script Experiment Expert#am 4_M_ALCHE_A,{
mes "necessary to make";
mes "a Counteragent?";
next;
- if (select("Karvodailnirol:Detrimindexta:Alcohol") != 1) set .@w_point,.@w_point+1;
+ if (select("Karvodailnirol:Detrimindexta:Alcohol") != 1) .@w_point += 1;
mes "[Van Helmont]";
mes "What item is not";
mes "necessary to make";
mes "a Mixture?";
next;
- if (select("Karvodailnirol:Detrimindexta:Alcohol") != 2) set .@w_point,.@w_point+1;
+ if (select("Karvodailnirol:Detrimindexta:Alcohol") != 2) .@w_point += 1;
if (.@w_point > 0) {
mes "[Van Helmont]";
mes "Weren't you listening to Molgenstein at all? Maybe you";
@@ -1528,7 +1528,7 @@ alde_alche,79,19,5 script Experiment Expert#am 4_M_ALCHE_A,{
mes "Go out and find the room next";
mes "to this one and talk to Nicholas. He'll continue your training.";
next;
- set ALCH_Q,20;
+ ALCH_Q = 20;
changequest 2036,2037;
mes "[Van Helmont]";
mes "What are you";
@@ -1664,7 +1664,7 @@ alde_alche,101,184,4 script Master Alchemist#am 2_M_DYEINGER,{
}
else if (ALCH_Q == 40) {
if (JobLevel < 40) {
- set ALCH_Q,0;
+ ALCH_Q = 0;
mes "Hmm...you don't seem to be qualified yet.";
mes "Remember, you must reach at least job level 40 to become an Alchemist.";
close2;
@@ -1687,10 +1687,10 @@ alde_alche,101,184,4 script Master Alchemist#am 2_M_DYEINGER,{
cutin "",255;
end;
}
- if(checkquest(2039) != -1) {
+ if (questprogress(2039)) {
changequest 2039,2040;
}
- if(checkquest(2034) != -1) {
+ if (questprogress(2034)) {
changequest 2034,2040;
}
mes "Ah, well done.";
@@ -1698,9 +1698,9 @@ alde_alche,101,184,4 script Master Alchemist#am 2_M_DYEINGER,{
mes "have learned all of";
mes "the basics of Alchemy.";
next;
- set ALCH_Q,0;
+ ALCH_Q = 0;
completequest 2040;
- set .@jlevel,JobLevel;
+ .@jlevel = JobLevel;
callfunc "Job_Change",Job_Alchemist;
callfunc "F_ClearJobVar";
mes "[Vincent Carsciallo]";
@@ -1813,51 +1813,51 @@ alde_alche,145,19,1 script Chief Researcher#am 1_M_LIBRARYMASTER,{
case 1:
mes "t m y a n y e o b n e g p r i";
next;
- if (select("Brake:Brass:Bug:Broken:Brigan?") == 5) set .@alch_t,.@alch_t+10;
+ if (select("Brake:Brass:Bug:Broken:Brigan?") == 5) .@alch_t += 10;
mes "o n c u t a p j l e r s v m u";
next;
- if (select("vendor:storage:weapon:simple:streetshop") == 1) set .@alch_t,.@alch_t+10;
+ if (select("vendor:storage:weapon:simple:streetshop") == 1) .@alch_t += 10;
mes "t v a r m e g p h e u b o y l";
next;
- if (select("molasses:party:leader:sweets:treacle") == 2) set .@alch_t,.@alch_t+10;
+ if (select("molasses:party:leader:sweets:treacle") == 2) .@alch_t += 10;
mes "q z a h n a i n b r d p t n c";
next;
- if (select("partisan:partizan:pato:paros:pack") == 2) set .@alch_t,.@alch_t+10;
+ if (select("partisan:partizan:pato:paros:pack") == 2) .@alch_t += 10;
break;
case 2:
mes "m p d i c f a r o g n k w a s";
next;
- if (select("packman:sunshine:ragnarok:wonderland:frost") == 1) set .@alch_t,.@alch_t+10;
+ if (select("packman:sunshine:ragnarok:wonderland:frost") == 1) .@alch_t += 10;
mes "g b n o p r e f a r e t a s k";
next;
- if (select("purple:smoker:ragnarok:bolt:burnt wood") == 3) set .@alch_t,.@alch_t+10;
+ if (select("purple:smoker:ragnarok:bolt:burnt wood") == 3) .@alch_t += 10;
mes "u g n i s j e k c e o g n d p";
next;
- if (select("scab:kinship:donate:source:opening") == 5) set .@alch_t,.@alch_t+10;
+ if (select("scab:kinship:donate:source:opening") == 5) .@alch_t += 10;
mes "r o e h n r o m c a i n p t t";
next;
- if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) set .@alch_t,.@alch_t+10;
+ if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) .@alch_t += 10;
break;
case 3:
mes "s m i e x b w u n e t a g l r";
next;
- if (select("tiger:wolf:pumpkin:tripped:tore") == 1) set .@alch_t,.@alch_t+10;
+ if (select("tiger:wolf:pumpkin:tripped:tore") == 1) .@alch_t += 10;
mes "n i e g b o p d s o a u w r v";
next;
- if (select("bash:provoke:endure:stun:abracadabra") == 3) set .@alch_t,.@alch_t+10;
+ if (select("bash:provoke:endure:stun:abracadabra") == 3) .@alch_t += 10;
mes "l r m g r e x t a v i n e d e";
next;
- if (select("alberta:latifoliate:crimson:maple:evergreen") == 5) set .@alch_t,.@alch_t+10;
+ if (select("alberta:latifoliate:crimson:maple:evergreen") == 5) .@alch_t += 10;
mes "r o e h n r o m c a i n p t t";
next;
- if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) set .@alch_t,.@alch_t+10;
+ if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) .@alch_t += 10;
break;
}
mes "[Nicholas Flamel]";
mes "Ah, you finished.";
mes "Now, let's see...";
if (.@alch_t > 30) {
- set ALCH_Q,22;
+ ALCH_Q = 22;
mes "Excellent job!";
next;
mes "[Nicholas Flamel]";
@@ -1875,7 +1875,7 @@ alde_alche,145,19,1 script Chief Researcher#am 1_M_LIBRARYMASTER,{
close;
}
else {
- set ALCH_Q,21;
+ ALCH_Q = 21;
mes "^666666*Gasp!*^000000 H-horrible!";
next;
mes "[Nicholas Flamel]";
@@ -1913,7 +1913,7 @@ alde_alche,145,19,1 script Chief Researcher#am 1_M_LIBRARYMASTER,{
mes "Come back here to me after you";
mes "help them out. They'll need all of these items to continue their experiments.";
next;
- set ALCH_Q,23;
+ ALCH_Q = 23;
changequest 2037,2038;
mes "[Nicholas Flamel]";
mes "1 Mixture,";
@@ -1943,7 +1943,7 @@ alde_alche,145,19,1 script Chief Researcher#am 1_M_LIBRARYMASTER,{
close;
}
else if (ALCH_Q == 24) {
- set ALCH_Q,40;
+ ALCH_Q = 40;
changequest 2038,2039;
mes "[Nicholas Flamel]";
mes "Ah, you're back!";
diff --git a/npc/jobs/2-2/bard.txt b/npc/jobs/2-2/bard.txt
index 24d49cbce..a5a7878f8 100644
--- a/npc/jobs/2-2/bard.txt
+++ b/npc/jobs/2-2/bard.txt
@@ -151,7 +151,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "[Lalo]";
mes "It would be nice if more people went around and sang...";
mes "Well, it's quite ok as it is now... hmmhmm.";
- set BARD_Q,1;
+ BARD_Q = 1;
setquest 3000;
close2;
cutin "job_bard_aiolo01",255;
@@ -208,7 +208,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "[Lalo]";
mes "It doesn't really matter which Flower, but try to bring one that I like.";
mes "And don't just buy any random Flower, ok?";
- set BARD_Q,2;
+ BARD_Q = 2;
changequest 3000,3001;
close2;
cutin "job_bard_aiolo01",255;
@@ -411,9 +411,9 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "There's a talking snowman in a town called Lutie.";
mes "Go there and bring back a present.";
next;
- set BARD_Q,3;
+ BARD_Q = 3;
changequest 3001,3002;
- set xmas_npc,1;
+ xmas_npc = 1;
mes "[Lalo]";
mes "if you become friends with ^008800Jack Frost^000000, you will receive something.";
mes "And also talk to the townspeople while you're at it...";
@@ -423,7 +423,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
}
else if ((BARD_Q >= 3) || (BARD_Q <= 5)) {
if (BARD_Q == 3) {
- if(xmas_npc > 10) { //this var is set in LUTIE.TXT
+ if(xmas_npc > 10) { //this var is set in lutie.txt
cutin "job_bard_aiolo01",2;
mes "[Lalo]";
mes "How was the trip? Did you meet a lot of people?";
@@ -433,7 +433,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "Then, do you want to try singing...?";
mes "I'll sing a short melody...";
mes "and you try after.";
- if(checkquest(3003) == -1) {
+ if (!questprogress(3003)) {
changequest 3002,3003;
}
next;
@@ -445,7 +445,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
}
else {
cutin "job_bard_aiolo01",2;
- set xmas_npc,1;
+ xmas_npc = 1;
mes "[Lalo]";
mes "Eh, you still haven't become his friend?";
mes "Talking will not be enough.";
@@ -475,7 +475,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
}
if (BARD_Q != 5) {
- set .@bard_s, rand(1,5);
+ .@bard_s = rand(1,5);
if (.@bard_s == 1) {
mes "^3377FFThere was a man^000000";
mes "who was said to be immortal.";
@@ -486,7 +486,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "There was a man")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFThere was a man";
mes "who was said to be immortal.^000000";
@@ -497,7 +497,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "who was said to be immortal.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFThere was a man";
mes "who was said to be immortal.";
@@ -508,7 +508,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "His name Jichfreid,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFThere was a man";
mes "who was said to be immortal.";
@@ -519,7 +519,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Son of the hero Jichmunt.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFThere was a man";
mes "who was said to be immortal.";
@@ -530,7 +530,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "The evil giant Papner,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFThere was a man";
mes "who was said to be immortal.";
@@ -541,7 +541,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Turned into a dragon and ate him.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
}
else if (.@bard_s == 2) {
mes "^3377FFA Merchant without money or equipment,^000000";
@@ -553,7 +553,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "A Merchant without money or equipment,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFA Merchant without money or equipment,";
mes "a Merchant that couldn't sell anything.^000000";
@@ -564,7 +564,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "a Merchant that couldn't sell anything.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFA Merchant without money or equipment,";
mes "a Merchant that couldn't sell anything.";
@@ -575,7 +575,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "But he was too proud to beg.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFA Merchant without money or equipment,";
mes "a Merchant that couldn't sell anything.";
@@ -586,7 +586,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "So he gathered some money selling items.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFA Merchant without money or equipment,";
mes "a Merchant that couldn't sell anything.";
@@ -597,7 +597,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "At first he only sold Red Potions.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFA Merchant without money or equipment,";
mes "a Merchant that couldn't sell anything.";
@@ -608,7 +608,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Some say he sold Sweet Potatoes, too.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
}
else if (.@bard_s == 3) {
mes "^3377FFAll Gods never age.^000000";
@@ -620,7 +620,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "All Gods never age.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFAll Gods never age.";
mes "The ever so Beautiful Goddess Eden,^000000";
@@ -631,7 +631,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "The ever so Beautiful Goddess Eden,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFAll Gods never age.";
mes "The ever so Beautiful Goddess Eden,";
@@ -642,7 +642,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Beautiful and graceful Goddess Eden,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFAll Gods never age.";
mes "The ever so Beautiful Goddess Eden,";
@@ -653,7 +653,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Odin's daughter-in-law and Bragi's wife.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFAll Gods never age.";
mes "The ever so Beautiful Goddess Eden,";
@@ -664,7 +664,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Her sweet apples in her basket,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFAll Gods never age.";
mes "The ever so Beautiful Goddess Eden,";
@@ -675,7 +675,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "All thanks to her sweet apples.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
}
else if (.@bard_s == 4) {
mes "^3377FFBragi, Bragi,^000000";
@@ -687,7 +687,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Bragi, Bragi,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFBragi, Bragi,";
mes "Forever call the poets name.^000000";
@@ -698,7 +698,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Forever call the poets name.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFBragi, Bragi,";
mes "Forever call the poets name.";
@@ -709,7 +709,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "My songs are his breath,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFBragi, Bragi,";
mes "Forever call the poets name.";
@@ -720,7 +720,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "My mind is his will,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFBragi, Bragi,";
mes "Forever call the poets name.";
@@ -731,7 +731,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "All wandering poets are his people,")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFBragi, Bragi,";
mes "Forever call the poets name.";
@@ -742,7 +742,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "And all praise shall go to him.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
}
else {
mes "^3377FFLouder, louder, louder.^000000";
@@ -754,7 +754,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Louder, louder, louder.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFLouder, louder, louder.";
mes "Give strength to the warriors!^000000";
@@ -765,7 +765,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Give strength to the warriors!")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFLouder, louder, louder.";
mes "Give strength to the warriors!";
@@ -776,7 +776,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Shake the sky and roar through the land.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFLouder, louder, louder.";
mes "Give strength to the warriors!";
@@ -787,7 +787,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Make my heart pound again!")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFLouder, louder, louder.";
mes "Give strength to the warriors!";
@@ -798,7 +798,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "Let the castle walls ring.")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "^3377FFLouder, louder, louder.";
mes "Give strength to the warriors!";
@@ -809,7 +809,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
next;
input .@Song$;
if (.@Song$ != "This day will never come again!")
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
}
if (.@w_point) {
@@ -828,7 +828,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "[Lalo]";
mes "..........";
next;
- set BARD_Q,5;
+ BARD_Q = 5;
mes "[Lalo]";
mes "Wonderful! Finished it in one try!";
mes "You can become a great Bard. ";
@@ -841,7 +841,7 @@ comodo,226,123,5 script Wandering Bard 2_M_BARD_ORIENT,{
mes "Do you want to just change jobs now?";
mes "Or do you want a present.";
next;
- set .@selection,select("Just change my job please.:I'd be thankful for a present.");
+ .@selection = select("Just change my job please.:I'd be thankful for a present.");
}
if ((.@selection == 1) || (BARD_Q == 5)) {
if(SkillPoint) {
diff --git a/npc/jobs/2-2/crusader.txt b/npc/jobs/2-2/crusader.txt
index d5bcd70ea..c713194de 100644
--- a/npc/jobs/2-2/crusader.txt
+++ b/npc/jobs/2-2/crusader.txt
@@ -78,7 +78,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
next;
delitem 1004, 1;
delitem 1009, 1;
- set CRUS_Q,4;
+ CRUS_Q = 4;
mes "[Michael Halig]";
mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
close;
@@ -149,7 +149,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
next;
delitem 1004, 1;
delitem 1009, 1;
- set CRUS_Q,4;
+ CRUS_Q = 4;
setquest 3009;
mes "[Michael Halig]";
mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
@@ -163,9 +163,9 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "This is my test for you. Bring me the following items and prove your determination to me.";
next;
mes "[Michael Halig]";
- set .@cru_m1,rand(1,3);
+ .@cru_m1 = rand(1,3);
if(.@cru_m1 == 1) {
- set CRUS_Q, 1;
+ CRUS_Q = 1;
setquest 3006;
mes "10 ^3355FF"+getitemname(957)+"^000000";
mes "10 ^3355FF"+getitemname(959)+"^000000";
@@ -174,7 +174,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
next;
}
else if(.@cru_m1 == 2) {
- set CRUS_Q, 2;
+ CRUS_Q = 2;
setquest 3007;
mes "10 ^3355FF"+getitemname(932)+"^000000";
mes "10 ^3355FF"+getitemname(1043)+"^000000";
@@ -183,7 +183,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
next;
}
else {
- set CRUS_Q, 3;
+ CRUS_Q = 3;
setquest 3008;
mes "10 ^3355FF"+getitemname(958)+"^000000";
mes "10 ^3355FF"+getitemname(930)+"^000000";
@@ -214,22 +214,22 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
next;
switch(CRUS_Q) {
case 1:
- set .@item1, 957;
- set .@item2, 959;
- set .@item3, 1099;
- set .@item4, 901;
+ .@item1 = 957;
+ .@item2 = 959;
+ .@item3 = 1099;
+ .@item4 = 901;
break;
case 2:
- set .@item1, 932;
- set .@item2, 1043;
- set .@item3, 1098;
- set .@item4, 1094;
+ .@item1 = 932;
+ .@item2 = 1043;
+ .@item3 = 1098;
+ .@item4 = 1094;
break;
case 3:
- set .@item1, 958;
- set .@item2, 930;
- set .@item3, 1041;
- set .@item4, 1062;
+ .@item1 = 958;
+ .@item2 = 930;
+ .@item3 = 1041;
+ .@item4 = 1062;
break;
}
if (countitem(.@item1) > 9 && countitem(.@item2) > 9 && countitem(.@item3) > 9 && countitem(.@item4) > 9) {
@@ -244,11 +244,11 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
delitem .@item2, 10;
delitem .@item3, 10;
delitem .@item4, 10;
- set CRUS_Q, 4;
- if(checkquest(3006) != -1) {
+ CRUS_Q = 4;
+ if (questprogress(3006)) {
changequest 3006,3009;
}
- else if(checkquest(3007) != -1) {
+ else if (questprogress(3007)) {
changequest 3007,3009;
}
else {
@@ -281,7 +281,7 @@ prt_castle,45,169,5 script Senior Crusader 4_M_CRU_OLD,{
mes "[Michael Halig]";
mes "Together, let us ready ourselves and be victorious over evil and tyranny!";
next;
- set .@Joblevel,JobLevel;
+ .@Joblevel = JobLevel;
completequest 3015;
callfunc "Job_Change",Job_Crusader;
callfunc "F_ClearJobVar"; //clears all job variables for the current player
@@ -377,7 +377,7 @@ prt_castle,164,32,1 script Man in Anguish 4_M_JOB_KNIGHT1,{
mes "But...";
mes "You must keep one thing in mind. Under no condition are you allowed to kill the monsters.";
next;
- set CRUS_Q,5;
+ CRUS_Q = 5;
changequest 3009,3010;
mes "[Murnak Mijoul]";
mes "Well then...";
@@ -419,7 +419,7 @@ prt_castle,164,32,1 script Man in Anguish 4_M_JOB_KNIGHT1,{
mes "[Murnak Mijoul]";
mes "No matter what you do, do not kill any of the monsters. This time, think carefully before you draw your sword.";
next;
- set CRUS_Q,5;
+ CRUS_Q = 5;
mes "[Murnak Mijoul]";
mes "Well then...";
mes "Good luck.";
@@ -526,191 +526,191 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
mes "choose the correct answer.";
next;
}
- set .@cru_m,rand(1,3);
+ .@cru_m = rand(1,3);
if (.@cru_m == 1) {
mes "[Gabriel Valentine]";
mes "1. Which attribute is the most effective in atttacking the Undead?";
next;
if (select("Neutral:Earth:Undead:Holy") == 4)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "2. If the monster is a Level 2 Undead, how much more damage does a Holy attack do compared to Fire?";
next;
if (select("25 %:50 %:75 %:100 %") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "3. What item can you not get from an Evil Druid?";
next;
if (select("Monk Hat:Yggdrasil leaf:White Herb:Amulet ") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "4. Which Undead monster";
mes "has the highest HP?";
next;
if (select("Ghoul:Skeleton Prisoner:Wraith:Zombie Prisoner") == 4)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "5. Which of the following monsters is a different size than the others?";
next;
if (select("Wraith:Khalitzburg:Drake:Evil Druid") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "6. Which card grants you tolerance to Undead property attacks?";
next;
if (select("Orc Skeleton Card:Orc Zombie Card:Ghoul Card:Skel Worker Card") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "7. What was the relationship between Munak and Bongun before they passed away?";
next;
if (select("Big Brother and Little Sister:Childhood friends in the same village:Stepbrother and sister:Complete strangers") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "8. Which of the following monsters is not aggressive?";
next;
if (select("Soldier Skeleton:Orc Skeleton:Skeleton:Skel Worker") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "9. What is the name of the shield in which a Munak Card has been inserted?";
next;
if (select("Atomic Shield:Amulet Shield:Hypnotic Shield:Homeroth Shield") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "10. Which of the following monsters does not drop Memento?";
next;
if (select("Munak:Ghoul:Mummy:Soldier Skeleton") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
}
else if (.@cru_m == 2) {
mes "[Gabriel Valentine]";
mes "1. Which of the following monsters is a different attribute than the others?";
next;
if (select("Carat:Wind Ghost:Isis:Wanderer") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "2. Which sword is effective in attacking Demon monsters?";
next;
if (select("Decussate Tsurugi:Hollowed Tsurugi:Damned Tsurugi:Drowsy Tsurugi") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "3. Which item is NOT dropped by Dokebi?";
next;
if (select("Rough Elunium:Golden Hammer:Sword Mace:Mighty Staff") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "4. Which Demon monster has the most HP?";
next;
if (select("Giearth:Magnolia:Dokebi:Marionette") == 4)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "5. Which Demon monster is a different size than the others?";
next;
if (select("Ghostring:Whisper:Deviruchi:Baphomet Junior") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "6. Which shield reduces damage inflicted by Demon monsters?";
next;
if (select("Satanic Shield:Shield from Hell:Amulet Shield:Excellent Shield") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "7. Which attribute is the most effective on the Wind Ghost?";
next;
if (select("Water:Earth:Fire:Wind") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "8. Which monster is different from the other Demon monsters?";
next;
if (select("Sohee:Isis:Dokebi:Whisper") == 4)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "9. What effect does the Marionette Card have?";
next;
if (select("Increase defense against Shadow attacks by 30 %:Increase defense against poison attacks by 30 %:Increase defense against Ghost attacks by 30 %:Increase defense against Neutral attacks by 30 %") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "10. Which of the following is an effective way to react when encountering a demon monster?";
next;
if (select("Scream, 'Evil one, go away!':Offer your soul and get a deal.:Put Holy Water on a weapon and attack.:Put on a Deviruchi hat.") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
}
else {
mes "[Gabriel Valentine]";
mes "1. What level of 'Divine Protection' do you need to learn 'Demon Bane?'";
next;
if (select("Level 1:Level 2:Level 3:Level 4") == 3)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "2. If your INT is 30, including INT bonuses from quipment, at level 55, how much HP does Level 5 Heal recover?";
next;
if (select("396:440:484:528") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "3. With Level 7 Divine Protection, by how much is your defense against the Undead increased?";
next;
if (select("21:22:23:24") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "4. Which of the following spears can attack Nightmare, which is endowed with the Ghost attribute?";
next;
if (select("Lance:Bill Guisarme:Cresent scythe:Zephyrus") == 4)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "5. What level of 'Heal' do you need to learn 'Cure?'";
next;
if (select("Level 1:Level 2:Level 3:Level 4") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "6. What is the attack speed when Level 3 Cavalier Mastery is learned?";
next;
if (select("70 % of normal speed:80 % of normal speed:90 % of normal speed:100 % of normal speed") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "7. Which of the following is not correct of the Demon Bane skill?";
next;
if (select("Increase attack on Undead:Only Acolytes can learn the skill:When mastered, + 30 increase:Passive Skill") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "8. How much SP does Level 7 Heal use?";
next;
if (select("30:31:33:35") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "9. What status cannot be";
mes "cured with the Cure skill?";
next;
if (select("Curse:Silence:Chaos:Blind") == 1)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
mes "[Gabriel Valentine]";
mes "10. What best describes a Crusader?";
next;
if (select("One preparing for matrimony.:One preparing for the Holy War.:One preparing consummation.:One preparing potions.") == 2)
- set .@cru_t,.@cru_t+10;
+ .@cru_t += 10;
}
mes "[Gabriel Valentine]";
@@ -722,7 +722,7 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
mes " " + strcharinfo(0) + "'s score";
mes "is " + .@cru_t + " points...";
if(.@cru_t == 100) {
- set CRUS_Q, 8;
+ CRUS_Q = 8;
changequest 3011,3013;
mes "Superb! Now, it's time for";
mes "you to take the next test.";
@@ -735,7 +735,7 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
close;
}
else if(.@cru_t == 90) {
- set CRUS_Q, 8;
+ CRUS_Q = 8;
changequest 3011,3013;
mes "Well done~ Now, it's time for";
mes "you to take the next test.";
@@ -748,7 +748,7 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
close;
}
else if (.@cru_t == 80 && CRUS_Q == 7) {
- set CRUS_Q,8;
+ CRUS_Q = 8;
changequest 3011,3013;
mes "Seems like you prepared a lot so I'll let you pass this time.";
mes "Hurry now and go take the next test.";
@@ -758,8 +758,8 @@ prt_church,95,127,3 script Crusader 4_F_CRU,{
mes "I will inform him to prepare the next test.";
close;
}
- set CRUS_Q,7;
- if(checkquest(3011) != -1) {
+ CRUS_Q = 7;
+ if (questprogress(3011)) {
changequest 3011,3012;
}
mes "Hmmm... What a pity.";
@@ -866,7 +866,7 @@ prt_castle,35,151,5 script Patron Knight 4_M_CRU,{
mes "[Bliant Piyord]";
mes "To take the battle test, bring";
mes "1 ^3355FFHoly Water^000000. This will be used to purify you prior to taking the test.";
- if(checkquest(3013) != -1) {
+ if (questprogress(3013)) {
changequest 3013,3014;
}
next;
@@ -1204,7 +1204,7 @@ OnDead:
job_cru,98,105,4 script Summoner#cr5 WARPNPC,3,3,{
OnTouch:
- set CRUS_Q,6;
+ CRUS_Q = 6;
changequest 3010,3011;
warp "prt_castle",164,28;
end;
@@ -1271,7 +1271,7 @@ OnInit:
end;
OnStart:
- set .MyMonsterCount,0;
+ .MyMonsterCount = 0;
enablenpc "Monster Summon#cr0";
donpcevent "Monster Summon#cr1::OnStart";
donpcevent "Monster Summon#cr2::OnStart";
@@ -1301,9 +1301,9 @@ OnMonster3:
end;
OnDead:
- set .MyMonsterCount,.MyMonsterCount+1;
+ ++.MyMonsterCount;
if (.MyMonsterCount >= 10) {
- set CRUS_Q,10;
+ CRUS_Q = 10;
changequest 3014,3015;
}
end;
diff --git a/npc/jobs/2-2/dancer.txt b/npc/jobs/2-2/dancer.txt
index 6b4ddf5b0..36e84321a 100644
--- a/npc/jobs/2-2/dancer.txt
+++ b/npc/jobs/2-2/dancer.txt
@@ -176,7 +176,7 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
mes "Wow! What a pretty name! Just a moment, I have to show this to the director, so come back in a little bit, okay?";
close2;
cutin "",255;
- set DANC_Q,1;
+ DANC_Q = 1;
setquest 7000;
end;
}
@@ -230,9 +230,9 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
mes "[Aile]";
mes "We're short on some supplies, but you'll be using them for yourself anyway. Just think of it as part of the tuition, so don't worry too much.";
next;
- set .@item_nd,rand(1,10);
+ .@item_nd = rand(1,10);
if (.@item_nd > 0 && .@item_nd < 3) {
- set DANC_Q,2;
+ DANC_Q = 2;
changequest 7000,7001;
mes "[Aile]";
mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, you'll about ^CD688920 Sticky Mucus^000000 for shoe polish.";
@@ -249,7 +249,7 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
mes "^CD68891 Shoes^000000.";
}
else if (.@item_nd == 4) {
- set DANC_Q,3;
+ DANC_Q = 3;
changequest 7000,7002;
mes "[Aile]";
mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, bring ^CD68895 Earthworm Peelings^000000 for polishing the floor and, of course, a pair of ^CD6889Boots^000000.";
@@ -261,7 +261,7 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
mes "^CD68891 Boots^000000.";
}
else {
- set DANC_Q,4;
+ DANC_Q = 4;
changequest 7000,7003;
mes "[Aile]";
mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, bring ^CD68892 Clam Shells^000000 for your costume, ^CD68895 Yellow Potions^000000 and ^CD688920 Jellopy^000000 to treat foot injuries.";
@@ -299,8 +299,8 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
setarray .@count[0], 2,5,20,10,1;
break;
}
- set .@size, getarraysize(.@item);
- for( set .@i, 0; .@i < .@size; set .@i,.@i+1 ) {
+ .@size = getarraysize(.@item);
+ for (.@i = 0; .@i < .@size; ++.@i) {
if( countitem(.@item[.@i]) < .@count[.@i] ) {
break;
}
@@ -319,11 +319,11 @@ job_duncer,43,93,4 script Aile#da 4_F_07,{
Zeny -= 10000;
mes "[Aile]";
mes "Next, go to ^CD6889Bijou^000000, who is in charge of the interviewing process. She will have a couple of things she'll need to ask you.";
- set DANC_Q,5;
- if(checkquest(7001) != -1) {
+ DANC_Q = 5;
+ if (questprogress(7001)) {
changequest 7001,7004;
}
- else if(checkquest(7002) != -1) {
+ else if (questprogress(7002)) {
changequest 7002,7004;
}
else {
@@ -504,7 +504,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "increases which of the following?";
next;
if (select("Intelligence (INT):Dexterity (DEX):Vitality (VIT):Critical Attack Rate") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "2. Of the following,";
mes "which can you not consider";
@@ -512,10 +512,10 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
next;
switch(select("Tango:Tap Dance:HIP-HOP:Hip Shaker:Lightning Bolt")) {
default:
- set .@da_score,.@da_score-10;
+ .@da_score -= 10;
break;
case 5:
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
}
mes "[Bijou]";
@@ -523,18 +523,18 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "best describes a Dancer?";
next;
if (select("Person who yells.:A loud person.:A person who dances.:A person who sings.") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "4. Which of the following";
mes "cannot be associated with Comodo?";
next;
if (select("Beach city.:Dancer Job Change.:Always dark like the night.:Dungeons in 3 directions.:A lot of Thieves.") == 5)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "5. Before Comodo, what is the region name of the region NorthEast of Pharoah's Lighthouse Island?";
next;
if (select("Elmeth Plateau:Comuko Beach:Comodo Beach:Ginai Swamp") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "6. Who is the most";
mes "beautiful dancer?";
@@ -548,11 +548,11 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Didn't you see the";
mes "other choices?!";
mes "Minus points...!";
- set .@da_score,.@da_score-10;
+ .@da_score -= 10;
next;
break;
case 2:
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
default:
break;
@@ -563,26 +563,26 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "with a Dancer?";
next;
if (select("Assassin:Bard:Alchemist:Sage") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "8. Which of the following";
mes "is not a specialty of Comodo?";
next;
if (select("Berserk Potion:Clam Shell:Crab Shell:Shining Stone") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "9. Who is the manager";
mes "of the Comodo Casino?";
next;
if (select("Yoo:Moo:Hoon:Roul") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "10. Who accepts the";
mes "Dancer job change";
mes "applications?";
next;
if (select("Bijou:Aile:Athena:Sonotora") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
case 2:
mes "[Bijou]";
@@ -591,14 +591,14 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "^CD6889Mental Sensing^000000?";
next;
if (select("Instant monster death.:Doubles damage.:Increases experience.:Increases attack speed.") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "2. Which is considered";
mes "bad etiquette on the dance";
mes "floor after a dance?";
next;
if (select("Thank your partner.:Praise your partner's dance.:Ask to dance a different dance.:Criticize your partner.") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "3. Which is not an";
mes "appropriate response";
@@ -607,27 +607,27 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "are dancing together?";
next;
if (select("Smile at each other and continue dancing.:Point out the mistake.:Ignore it if the dancer does not realize it.:Give them a smile.") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "4. In which town";
mes "can you change jobs";
mes "to a Dancer?";
next;
if (select("Cocomo:Sandarman:Comudo:Comodo") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "5. How many dungeons";
mes "are directly connected";
mes "to Comodo?";
next;
if (select("1:2:3:4") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "6. Which of the following";
mes "is not a Cute Pet monster?";
next;
if (select("Isis:Argiope:Dokebi:Deviruchi") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "7. Who is the most";
mes "graceful dancer?";
@@ -641,11 +641,11 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Didn't you see the";
mes "other choices?!";
mes "Minus points...!";
- set .@da_score,.@da_score-10;
+ .@da_score -= 10;
next;
break;
case 2:
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
default:
break;
@@ -656,18 +656,18 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Kafra in Comodo?";
next;
if (select("Kafra Headquarters:Kafra West Headquarters:Kafra Service:Kafra Headquarters: Western Branch") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[......]";
mes "9. What is my name?";
next;
if (select("Borjuis:Bourgeois:Bijou:Beruberu") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "10. What is the";
mes "effect of ^CD6889Lullaby^000000?";
next;
if (select("Casts the Blind effect in the area.:Casts the Sleep effect on the area.:Puts a night effect on the area.:Freezes the area.") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
case 3:
mes "[Bijou]";
@@ -679,7 +679,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
break;
case 2:
case 3:
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
}
mes "[Bijou]";
@@ -690,19 +690,19 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "ground to create a rhythm?";
next;
if (select("Tap Dance:Improve Concentration:Tango:Double Strafing") == 1)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "3. Which of the following";
mes "is not a characteristic of a Dancer?";
next;
if (select("Uses Dance skills. :Attacks from a distance.:Uses Whips.:Uses Two-handed swords.") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "4. Which town has";
mes "the most Dancers?";
next;
if (select("Al De Baran:Juno:Morroc:Comodo") == 4)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "5. Of the following,";
mes "who dances most beautifully?";
@@ -716,11 +716,11 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Didn't you see the";
mes "other choices?!";
mes "Minus points...!";
- set .@da_score,.@da_score-10;
+ .@da_score -= 10;
next;
break;
case 2:
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
break;
default:
break;
@@ -731,32 +731,32 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "job classes?";
next;
if (select("Health:Acting :Dancing :Magic ") == 3)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "7. Who is the manager";
mes "of the Comodo Casino?";
next;
if (select("Ryu:Moo:Roul:Hoon") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "8. What item cannot";
mes "be equipped by a Dancer?";
next;
if (select("Kitty Band :Two-handed Sword:Sandals:Earring") == 2)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "9. Do you think you";
mes "can say this quiz is";
mes "frustrating and annoying?";
next;
select("Yes:No");
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
mes "[Bijou]";
mes "10. Which of the following";
mes "is not a Jazz musician?";
next;
if (select("Art Blakey:Billie Holiday :Louis Armstrong :Bud Powell :Elder Willow ") == 5)
- set .@da_score,.@da_score+10;
+ .@da_score += 10;
}
mes "[Bijou]";
mes "Good job~";
@@ -769,7 +769,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Your score is";
mes "" + .@da_score + " points...";
if (.@da_score == 100) {
- set DANC_Q,7;
+ DANC_Q = 7;
mes "Very well done!";
mes "A perfect score!";
next;
@@ -782,12 +782,12 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
close;
}
else if (.@da_score > 70) {
- set DANC_Q,7;
+ DANC_Q = 7;
mes "It wasn't perfect, but I'll let you pass.";
close;
}
else {
- set DANC_Q,6;
+ DANC_Q = 6;
mes "You.. You failed!";
next;
mes "[Bijou]";
@@ -831,7 +831,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "Well then~";
mes "Good luck...!!";
changequest 7004,7005;
- set DANC_Q,8;
+ DANC_Q = 8;
close2;
warp "job_duncer",105,109;
end;
@@ -868,7 +868,7 @@ job_duncer,95,93,4 script Bijou#da 4W_F_01,{
mes "[Bijou]";
mes "With the blessing of our goddess, you shall be reborn as a Dancer. From now on, no one will leave your presense without a smile~";
next;
- set .@jlevel,JobLevel;
+ .@jlevel = JobLevel;
mes "[Bijou]";
completequest 7006;
callfunc "Job_Change",Job_Dancer;
@@ -1236,7 +1236,7 @@ OnTimer89000:
job_duncer,69,110,0 script dance#return -1,1,4,{
OnTouch:
mapannounce "job_duncer","Good! Well done! Go back to Bijou!",bc_map;
- set DANC_Q,9;
+ DANC_Q = 9;
changequest 7005,7006;
warp "comodo",188,162;
end;
@@ -1255,7 +1255,7 @@ OnEnable:
job_duncer,66,110,0 script dance#return#2 -1,1,1,{
OnTouch:
- set DANC_Q,9;
+ DANC_Q = 9;
warp "comodo",188,162;
end;
@@ -1271,7 +1271,7 @@ OnEnable:
job_duncer,72,110,0 script dance#return#3 -1,1,1,{
OnTouch:
- set DANC_Q,9;
+ DANC_Q = 9;
warp "comodo",188,162;
end;
@@ -1292,7 +1292,7 @@ OnEnable:
OnTouch:
donpcevent "Backdancer#1::OnOmg";
mapannounce "job_duncer"," " + strcharinfo(0) + ", you lack rhythm... Your timing was too late!",bc_map;
- set DANC_Q,8;
+ DANC_Q = 8;
donpcevent "Bijou#dance_timer::OnDisable";
donpcevent "Waiting Room#dance::OnEnable";
warp "comodo",188,162;
diff --git a/npc/jobs/2-2/monk.txt b/npc/jobs/2-2/monk.txt
index 90fccf68c..d3bd8b329 100644
--- a/npc/jobs/2-2/monk.txt
+++ b/npc/jobs/2-2/monk.txt
@@ -67,7 +67,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "We monks live our lives for spiritual enlightenment.";
mes "We improve our bodies as well as our minds to reach true inner peace.";
mes "May you find your inner peace as well.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
case 2:
if (BaseJob == Job_Acolyte && JobLevel > 39) {
@@ -75,7 +75,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "Hmm you seem as though you have been training for this...";
mes "That is good. Go see our sensei Moohae. Speak with him.";
mes "He will help you start your training.";
- set MONK_Q,2;
+ MONK_Q = 2;
setquest 3016;
close;
}
@@ -94,7 +94,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "I hope that you will soon join us on our";
mes "path of inner peace and enlightenment.";
mes "I'll be waiting here for you.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
else {
@@ -114,7 +114,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "when observing our brothers in their";
mes "pursuit of spiritual enlightenment.";
mes "I hope you reach it too.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
}
@@ -130,7 +130,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "I hope that your experience here with";
mes "our brothers has helped you become one";
mes "step closer to true enlightenment.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
case 2:
if (BaseJob == Job_Acolyte && JobLevel > 39) {
@@ -138,7 +138,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "Hmm you seem as though you have been training for this...";
mes "That is good. Go see our sensei Moohae. Speak with him.";
mes "He will help you start your training.";
- set MONK_Q,2;
+ MONK_Q = 2;
setquest 3016;
close;
}
@@ -157,7 +157,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "I hope that you will soon join us in our";
mes "path to inner peace and enlightenment.";
mes "I'll be waiting here for you.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
else {
@@ -177,7 +177,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "when observing our brothers in their";
mes "pursuit of spiritual enlightenment.";
mes "I hope you reach it too.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
}
@@ -213,7 +213,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "We monks live our lives for God and spiritual enlightenment.";
mes "We improve our bodies as well as our minds to reach true inner peace.";
mes "May you find your inner peace as well.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
case 2:
if (BaseJob == Job_Acolyte && JobLevel > 39) {
@@ -221,7 +221,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "Hmm you seem as though you have been training for this...";
mes "That is good. Go see our sensei Moohae, speak with him";
mes "and he will help you start new training.";
- set MONK_Q,2;
+ MONK_Q = 2;
setquest 3016;
close;
}
@@ -240,7 +240,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "I hope that you will soon join us in our";
mes "path to inner peace and enlightenment.";
mes "I'll be waiting here for you.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
else {
@@ -260,7 +260,7 @@ prt_monk,59,247,1 script Guarding Monk#mk 2_M_PHARMACIST,6,2,{
mes "when observing our brothers in their";
mes "pursuit of spiritual enlightenment.";
mes "I hope you reach it too.";
- set MONK_Q,1;
+ MONK_Q = 1;
close;
}
}
@@ -391,7 +391,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes .@items[3]+" "+getitemname(.@items[2])+",";
mes .@items[5]+" "+getitemname(.@items[4])+".";
mes "Find these items and return to me.";
- set MONK_Q,.@items[6];
+ MONK_Q = .@items[6];
next;
mes "[Sensei Moohae]";
switch (.@items[6]) {
@@ -418,7 +418,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Well done, you found all the items.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3017,3024;
delitem 938,5; //Sticky_Mucus
delitem 1055,10; //Earthworm_Peeling
@@ -449,7 +449,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Very good, you found all the items.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3018,3024;
delitem 942,20; //Yoyo_Tail
delitem 1002,5; //Iron_Ore
@@ -480,7 +480,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "See, that wasn't so bad you real found all the items.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3019,3024;
delitem 905,30; //Stem
delitem 909,5; //Jellopy
@@ -511,7 +511,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Impressive, you really found all the items.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3020,3024;
delitem 943,5; //Solid_Shell
delitem 935,20; //Shell
@@ -542,7 +542,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Very nice, you found all the items.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3021,3024;
delitem 7053,5; //Cyfar
delitem 509,10; //White_Herb
@@ -573,7 +573,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Excellent, all the items I asked for.";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3022,3024;
delitem 913,10; //Tooth_Of_Bat
delitem 948,5; //Bear's_Foot
@@ -604,7 +604,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "Wow, you found all the items!!";
mes "I will tell this to the elders.";
- set MONK_Q,10;
+ MONK_Q = 10;
changequest 3023,3024;
delitem 1027,5; //Porcupine_Spike
delitem 1025,20; //Spiderweb
@@ -839,7 +839,7 @@ monk_in,99,58,1 script Sensei Moohae#mk 1_M_PASTOR,{
mes "[Sensei Moohae]";
mes "....and see life through the eyes of a monk.";
next;
- set .@jlevel,JobLevel;
+ .@jlevel = JobLevel;
completequest 3032;
callfunc "Job_Change",Job_Monk;
callfunc "F_ClearJobVar";
@@ -943,9 +943,9 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
next;
}
mes "[Touha]";
- set .@rand,rand(1,3);
+ .@rand = rand(1,3);
if ((.@rand == 1) || (MONK_Q == 11)) {
- set MONK_Q,11;
+ MONK_Q = 11;
mes "I seek the path";
next;
mes "[Touha]";
@@ -976,7 +976,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
mes "et Spiritus Sancti.";
}
else if ((.@rand == 2) || (MONK_Q == 12)) {
- set MONK_Q,12;
+ MONK_Q = 12;
mes "I commit myself to";
next;
mes "[Touha]";
@@ -1007,7 +1007,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
mes "et Spiritus Sancti.";
}
else if ((.@rand == 3) || (MONK_Q == 13)) {
- set MONK_Q,13;
+ MONK_Q = 13;
mes "And shepherds we shall be,";
next;
mes "[Touha]";
@@ -1071,7 +1071,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
mes "to what we believe";
break;
case 7:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "[" + strcharinfo(0) + "]";
mes "I seek the path";
break;
@@ -1094,7 +1094,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 3: mes "I seek the path"; break;
case 4: mes "shall hold true"; break;
case 5:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "of enlightenment.";
break;
case 6: mes "and will help protect others"; break;
@@ -1106,7 +1106,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
switch(select("to what we believe:We monks:I seek the path:shall hold true:of enlightenment.:we learn through our lives.:In nomine Patris, et Filii:and will help protect others:through the teachings:et Spiritus Sancti.")) {
case 1: mes "to what we believe"; break;
case 2:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "We monks";
break;
case 3: mes "I seek the path"; break;
@@ -1120,7 +1120,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
}
switch(select("shall hold true:I seek the path:We monks:In nomine Patris, et Filii:of enlightenment.:et Spiritus Sancti.:to what we believe:we learn through our lives.:and will help protect others:through the teachings")) {
case 1:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "shall hold true";
break;
case 2: mes "I seek the path"; break;
@@ -1144,7 +1144,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 7: mes "we learn through our lives."; break;
case 8: mes "In nomine Patris, et Filii"; break;
case 9:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "to what we believe";
break;
case 10: mes "et Spiritus Sancti."; break;
@@ -1153,7 +1153,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 1: mes "I seek the path"; break;
case 2: mes "through the teachings"; break;
case 3:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "and will help protect others";
break;
case 4: mes "of enlightenment."; break;
@@ -1175,13 +1175,13 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "shall hold true"; break;
case 9: mes "and will help protect others"; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "through the teachings";
break;
}
switch(select("we learn through our lives.:In nomine Patris, et Filii:through the teachings:I seek the path:We monks:shall hold true:to what we believe:and will help protect others:of enlightenment.:et Spiritus Sancti.")) {
case 1:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "we learn through our lives.";
break;
case 2: mes "In nomine Patris, et Filii"; break;
@@ -1205,7 +1205,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "through the teachings"; break;
case 9: mes "we learn through our lives."; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "In nomine Patris, et Filii";
break;
}
@@ -1220,7 +1220,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "we learn through our lives."; break;
case 9: mes "In nomine Patris, et Filii"; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "et Spiritus Sancti.";
break;
}
@@ -1241,7 +1241,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
break;
case 4:
mes "[" + strcharinfo(0) + "]";
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "I commit myself to";
break;
case 5:
@@ -1279,14 +1279,14 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 7: mes "et Spiritus Sancti."; break;
case 8: mes "I commit myself to"; break;
case 9:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "veritas and aequitas.";
break;
case 10: mes "In nomine Patris, et Filii"; break;
}
switch(select("I will follow my path:veritas and aequitas.:I commit myself to:et Spiritus Sancti.:Evil shall never be:to enlightenment and purity.:In nomine Patris, et Filii:I will protect my:brothers with my life.:victorious while I breathe.")) {
case 1:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "I will follow my path";
break;
case 2: mes "veritas and aequitas."; break;
@@ -1306,7 +1306,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 4: mes "I will protect my"; break;
case 5: mes "victorious while I breathe."; break;
case 6:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "to enlightenment and purity.";
break;
case 7: mes "brothers with my life."; break;
@@ -1325,7 +1325,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "I will follow my path"; break;
case 9: mes "veritas and aequitas."; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "I will protect my";
break;
}
@@ -1335,7 +1335,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 3: mes "veritas and aequitas."; break;
case 4: mes "I commit myself to"; break;
case 5:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "brothers with my life.";
break;
case 6: mes "I will protect my"; break;
@@ -1347,7 +1347,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
switch(select("veritas and aequitas.:Evil shall never be:brothers with my life.:victorious while I breathe.:I will follow my path:to enlightenment and purity.:I will protect my:In nomine Patris, et Filii:et Spiritus Sancti.:I commit myself to")) {
case 1: mes "veritas and aequitas."; break;
case 2:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "Evil shall never be";
break;
case 3: mes "brothers with my life."; break;
@@ -1361,7 +1361,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
}
switch(select("victorious while I breathe.:to enlightenment and purity.:I will protect my:veritas and aequitas.:brothers with my life.:I will follow my path:Evil shall never be:In nomine Patris, et Filii:I commit myself to:et Spiritus Sancti.")) {
case 1:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "victorious while I breathe.";
break;
case 2: mes "to enlightenment and purity."; break;
@@ -1383,7 +1383,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 6: mes "brothers with my life."; break;
case 7: mes "Evil shall never be"; break;
case 8:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "In nomine Patris, et Filii";
break;
case 9: mes "victorious while I breathe."; break;
@@ -1400,7 +1400,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "victorious while I breathe."; break;
case 9: mes "In nomine Patris, et Filii"; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "et Spiritus Sancti.";
break;
}
@@ -1413,7 +1413,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
break;
case 2:
mes "[" + strcharinfo(0) + "]";
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "And shepherds we shall be,";
break;
case 3:
@@ -1458,7 +1458,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 6: mes "Power hath descended forth"; break;
case 7: mes "And shepherds we shall be,"; break;
case 8:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "for thee my lord for thee.";
break;
case 9: mes "from the hand"; break;
@@ -1468,7 +1468,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 1: mes "And shepherds we shall be,"; break;
case 2: mes "for thee my lord for thee."; break;
case 3:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "Power hath descended forth";
break;
case 4: mes "from the hand"; break;
@@ -1485,7 +1485,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 3: mes "Power hath descended forth"; break;
case 4: mes "so our feet may swiftly carry"; break;
case 5:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "from the hand";
break;
case 6: mes "flow a river forth to thee and"; break;
@@ -1499,7 +1499,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 2: mes "for thee my lord for thee."; break;
case 3: mes "Power hath descended forth"; break;
case 4:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "so our feet may swiftly carry";
break;
case 5: mes "from the hand"; break;
@@ -1517,7 +1517,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 5: mes "so our feet may swiftly carry"; break;
case 6: mes "flow a river forth to thee and"; break;
case 7:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "out thy command. And we shall";
break;
case 8: mes "teeming with souls shall it ever be"; break;
@@ -1528,7 +1528,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 1: mes "for thee my lord for thee."; break;
case 2: mes "teeming with souls shall it ever be"; break;
case 3:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "flow a river forth to thee and";
break;
case 4: mes "In nomine Patris, et Filii"; break;
@@ -1541,7 +1541,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
}
switch(select("teeming with souls shall it ever be:In nomine Patris, et Filii:And shepherds we shall be,:for thee my lord for thee.:Power hath descended forth:from the hand:so our feet may swiftly carry:out thy command. And we shall:flow a river forth to thee and:et Spiritus Sancti.")) {
case 1:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "teeming with souls shall it ever be";
break;
case 2: mes "In nomine Patris, et Filii"; break;
@@ -1559,7 +1559,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 2: mes "for thee my lord for thee."; break;
case 3: mes "And shepherds we shall be,"; break;
case 4:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "In nomine Patris, et Filii";
break;
case 5: mes "so our feet may swiftly carry"; break;
@@ -1580,7 +1580,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
case 8: mes "teeming with souls shall it ever be"; break;
case 9: mes "In nomine Patris, et Filii"; break;
case 10:
- set .@monk_t,.@monk_t+10;
+ .@monk_t += 10;
mes "et Spiritus Sancti.";
break;
}
@@ -1593,7 +1593,7 @@ prt_monk,251,255,1 script Touha#mk 1_F_PRIEST,{
mes "Hmm...";
next;
if (.@monk_t > 90) {
- set MONK_Q,14;
+ MONK_Q = 14;
changequest 3025,3026;
mes "[Touha]";
mes "...well done, that was perfect. You pay attention well...";
@@ -1774,14 +1774,14 @@ prt_monk,57,179,1 script Boohae#mk 4_M_MINISTER,{
mes "Choose which one you want to do...";
next;
if (select("Gathering mushrooms:Marathon") == 1) {
- set MONK_Q,15;
+ MONK_Q = 15;
changequest 3026,3027;
mes "[Boohae]";
mes "Hmm....gathering mushrooms. So you want to test your tolerance huh?";
mes "Go prepare and come back later when you're ready.";
close;
}
- set MONK_Q,16;
+ MONK_Q = 16;
changequest 3026,3028;
mes "[Boohae]";
mes "Good choice. Forcing your physical limits to their boundaries and grants a higher amount of self control.";
@@ -1954,7 +1954,7 @@ monk_test,386,388,4 script Apprentice Monk#mk 4_M_MINISTER,{
mes "" + strcharinfo(0) + "...q.q..q. .quit! ...the marathon!! Y...you do not have what it takes to be a m... monk!";
mapannounce "monk_test","" + strcharinfo(0) + "...q.q..q. .quit! ...the marathon!! Y...you do not have what it takes to be a m... monk!",bc_map;
close2;
- set MONK_Q,15;
+ MONK_Q = 15;
changequest 3028,3027;
warp "prt_monk",194,168;
end;
@@ -1968,12 +1968,12 @@ monk_test,386,388,4 script Apprentice Monk#mk 4_M_MINISTER,{
monk_test,387,350,0 script Supervisor#race_monk WARPNPC,2,2,{
OnTouch:
if (MONK_Q >= 15 && MONK_Q <= 23) {
- set MONK_Q,MONK_Q+1;
+ MONK_Q += 1;
warp "monk_test",385,388;
end;
}
else if (MONK_Q == 24) {
- set MONK_Q,25;
+ MONK_Q = 25;
changequest 3028,3029;
mapannounce "monk_test","Now! This is the last lap!! If you make it you need to go visit Tomoon for the next test!",bc_map;
warp "monk_test",385,388;
@@ -2040,7 +2040,7 @@ job_monk,225,180,1 script Hyunmoo#mk 4_M_ORIENT02,{
mes ".....I figured as much....you don't have a spirit.";
mapannounce "job_monk","" + strcharinfo(0) + ", has quit his testing to become a monk.",bc_map;
close2;
- set MONK_Q,16;
+ MONK_Q = 16;
changequest 3027,3028;
warp "prt_monk",194,168;
end;
@@ -2087,7 +2087,7 @@ job_monk,225,180,1 script Hyunmoo#mk 4_M_ORIENT02,{
close2;
mapannounce "job_monk","" + strcharinfo(0) + ", has quit his training to become a monk.",bc_map;
warp "prt_monk",194,168;
- set MONK_Q,16;
+ MONK_Q = 16;
changequest 3027,3028;
end;
}
@@ -2099,7 +2099,7 @@ job_monk,225,180,1 script Hyunmoo#mk 4_M_ORIENT02,{
mes "[Hyunmoo]";
mes "Go meet Tomoon for your next test.";
mes "Tomoon is staying in the deepest room inside a building near this abbey.";
- set MONK_Q,25;
+ MONK_Q = 25;
changequest 3027,3029;
delitem 1069,countitem(1069); //Mushroom_Of_Thief_1
delitem 1070,countitem(1070); //Mushroom_Of_Thief_2
@@ -2181,7 +2181,7 @@ monk_test,319,139,1 script Tomoon#mk 1_M_HOF,{
mes "[Tomoon]";
mes "Let's see if you got what it takes to be a true monk!!";
close2;
- set MONK_Q,26;
+ MONK_Q = 26;
changequest 3029,3031;
warp "monk_test",88,74;
end;
@@ -2204,7 +2204,7 @@ monk_test,319,139,1 script Tomoon#mk 1_M_HOF,{
getitem 506,1; //Green_Potion
mes "Drink this potion and you will be able to become a monk!!!";
mes "... now go back to sensei Moohae!!!";
- set MONK_Q,28;
+ MONK_Q = 28;
changequest 3031,3032;
close;
}
@@ -2237,7 +2237,7 @@ monk_test,82,85,1 script Proctor#mk 4_F_SISTER,{
mes "Alright! I wish you luck. If you get lost and can't find a way out, simply log out and log back in.";
mes "Then you will return to your save point. What's that mean? Heck if I know, I'm just told to say that. Oh yes and also, please cooperate with your comrades.";
close2;
- set MONK_Q,26;
+ MONK_Q = 26;
warp "monk_test",125,277;
end;
case 2:
@@ -2323,7 +2323,7 @@ monk_test,166,278,0 script exit_monk#1 WARPNPC,1,1,{
OnTouch:
mes "[Proctor]";
mes "You did well. Please return to Tomoon, he's waiting for you.";
- set MONK_Q,27;
+ MONK_Q = 27;
donpcevent "mob_monk#1_5::OnDisable";
donpcevent "mob_monk#1_4::OnDisable";
donpcevent "mob_monk#1_3::OnDisable";
@@ -2344,7 +2344,7 @@ monk_test,88,91,1 script Proctor#mk2 1_M_HOF,{
mes "Alright! I wish you luck. If you get lost and can't find a way out, simply log out and log back in.";
mes "Then you will return to your save point. What's that mean? Heck if I know, I'm just told to say that. Oh yes and also, please cooperate with your comrades.";
close2;
- set MONK_Q,26;
+ MONK_Q = 26;
warp "monk_test",125,177;
end;
case 2:
@@ -2430,7 +2430,7 @@ monk_test,166,178,0 script exit_monk#2 WARPNPC,1,1,{
OnTouch:
mes "[Proctor]";
mes "You did well. Please return to Tomoon, he's waiting for you.";
- set MONK_Q,27;
+ MONK_Q = 27;
donpcevent "mob_monk#2_5::OnDisable";
donpcevent "mob_monk#2_4::OnDisable";
donpcevent "mob_monk#2_3::OnDisable";
@@ -2451,7 +2451,7 @@ monk_test,95,85,1 script Proctor#btl#3 1_F_PRIEST,{
mes "Alright! I wish you luck. If you get lost and can't find a way out, simply log out and log back in.";
mes "Then you will return to your save point. What's that mean? Heck if I know, I'm just told to say that. Oh yes and also, please cooperate with your comrades.";
close2;
- set MONK_Q,26;
+ MONK_Q = 26;
warp "monk_test",230,277;
end;
case 2:
@@ -2537,7 +2537,7 @@ monk_test,270,278,0 script exit_monk#3 WARPNPC,1,1,{
OnTouch:
mes "[Proctor]";
mes "You did well. Please return to Tomoon, he's waiting for you.";
- set MONK_Q,27;
+ MONK_Q = 27;
donpcevent "mob_monk#3_5::OnDisable";
donpcevent "mob_monk#3_4::OnDisable";
donpcevent "mob_monk#3_3::OnDisable";
diff --git a/npc/jobs/2-2/rogue.txt b/npc/jobs/2-2/rogue.txt
index cf20d5203..7fb6f2c0a 100644
--- a/npc/jobs/2-2/rogue.txt
+++ b/npc/jobs/2-2/rogue.txt
@@ -168,7 +168,7 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
mes "You've been";
mes "doin' a great job~";
}
- set .@jlevel,JobLevel;
+ .@jlevel = JobLevel;
callfunc "Job_Change",Job_Rogue;
callfunc "F_ClearJobVar";
completequest 2027;
@@ -212,110 +212,110 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
mes "1. Choose the skill necessary for learning ^880000Stalk^000000.";
next;
if (select("^880000Hiding^000000:^880000Steal^000000:^880000Improve Dodge^000000:^880000Bash^000000") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "2. In comparison to the Merchant's Level 10 ^880000Discount^000000 skill, how much more of a discount, in terms of percent, can a Rogue get with Level 10 ^880000Haggle^000000 skill?";
next;
if (select("3 %:2 %:1 %:0 %") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "3. What is the correct description for the skill, ^880000Mug^000000?";
next;
if (select("Steal items from players:Steal items from monsters:Steal Zeny from monsters:Steal Zeny from players") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "4. How many Rogues does it require to activate the skill, ^880000Slyness^000000?";
next;
if (select("1 Rogues + 2 Assassin:1 Thief + 2 Rogue:4 Thieves:2 Rogues") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "5. Choose the skill that you can learn at Level 5 ^880000Divest Helm^000000.";
next;
if (select("^880000Envenom^000000:^880000Strip Tease^000000:^880000Venom Splasher^000000:^880000Divest Shield^000000") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "6. Choose the skill which allows its user to move while hiding.";
next;
if (select("^880000Hiding^000000:^880000Back Slide^000000:^880000Stalk^000000:^880000Sand Attack^000000") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "7. Choose the card that increases the accuracy rate of its owner.";
next;
if (select("Andre Card.:Familiar Card.:Mummy Card.:Marina Card.") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "8. Choose the monster that receives more damage when it's attacked by a weapon with the Vadon card (20 % more damage on Fire property).";
next;
if (select("Vadon:Deviruchi:Elder Willow:Baphomet") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "9. How much SP does the skill ^880000Double Attack^000000 require when used with a Dagger?";
next;
if (select("15:Passive skill, no SP required.:Passive skill, 10 SP:54") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "10. Choose the most efficient dagger to use in the Byalan Dungeon.";
next;
if (select("Wind Main-Gauche:Ice Main-Gauche:Earth Main-Gauche:Fire Main-Gauche") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 2:
mes "[Markie]";
mes "1. Which monster drops a slotted Gladius?";
next;
if (select("Thief Bug:Peco Peco:Desert Wolf:Kobold") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "2. Which monster drops a slotted Main-Gauche?";
next;
if (select("Hornet:Desert Wolf:Marionette:Myst") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "3. Choose the class that is able to create unique potions.";
next;
if (select("Merchant:Alchemist:Blacksmith:Priest") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "4. Choose the weapon that Rogues aren't allowed to use.";
next;
if (select("Gakkung:Crossbow:Gladius:Katar") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "5. Choose the property that the monster Hode possesses.";
next;
if (select("Water:Fire:Wind:Earth") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "6. Choose the monster that is unable to be tamed for as a Cute Pet.";
next;
if (select("Poporing:Creamy:Orc:Poison Spore") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "7. Choose the monster that receives more damage from a Dagger with the Fire property.";
next;
if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "8. Choose the town that doesn't have any guild castles.";
next;
if (select("Prontera:Al De Baran:Alberta:Payon") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "9. Choose the plant that drops Blue Herbs.";
@@ -324,54 +324,54 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
default:
break;
case 3:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 4:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
}
mes "[Markie]";
mes "10. Choose the monster that does not have the Undead property.";
next;
if (select("Zombie:Megalodon:Familiar:Khalitzburg") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 3:
mes "[Markie]";
mes "1. By what percentage is the flee rate increased when a Thief masters the ^880000Improve Dodge^000000?";
next;
if (select("30:40:160:20") == 1)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "2. Choose the monster that detects a characters using the Hiding or Cloaking skill.";
next;
if (select("Worm Tail:Argos:Mummy:Soldier Skeleton") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "3. Choose the location where Thieves can change their jobs to Rogues.";
next;
if (select("Comodo:Kokomo Beach:Paros Lighthouse:Morroc") == 3)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "4. In which town can Novices change their jobs to Thieves?";
next;
if (select("Comodo:Lutie:Alberta:Morroc") == 4)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "5. Choose the card that does not affect the DEX stat.";
next;
if (select("Rocker Card:Mummy Card:Zerom Card:Drops Card") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "6. So what's cool about being a Rogue?";
next;
select("Being totally badass.:The clothes, the style.:Getting to call other people, 'foo'':Excellent attack strength");
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "7. When is it possible to change jobs from Thief to Rogue?";
@@ -380,17 +380,17 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
default:
break;
case 3:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
case 4:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
}
mes "[Markie]";
mes "8. You want to dye your hair blue. What town do you go to, and in which direction, with 12 o' clock being North.";
next;
if (select("Morroc, 7 o'clock:Prontera, 7 o'clock:Morroc, 5 o'clock:Prontera, 1 o'clock") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
mes "[Markie]";
mes "9. Choose the mushroom that is required on the Thief job change quest.";
@@ -400,14 +400,14 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
break;
case 1:
case 3:
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
break;
}
mes "[Markie]";
mes "10. Choose the card that least benefits the Rogue class.";
next;
if (select("Whisper Card:Elder Willow Card:Zerom Card:Matyr Card") == 2)
- set .@assassin_t,.@assassin_t+10;
+ .@assassin_t += 10;
}
mes "[Markie]";
mes "*Whew~*";
@@ -419,7 +419,7 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
mes "You got...";
mes "" + .@assassin_t + " points.";
if (.@assassin_t > 80) {
- set ROGUE_Q,2;
+ ROGUE_Q = 2;
setquest 2017;
mes "Good. You passed.";
mes "We don't gotta";
@@ -434,7 +434,7 @@ in_rogue,363,122,4 script Rogue Guildsman#rg 4_F_ROGUE,{
close;
}
else {
- set ROGUE_Q,1;
+ ROGUE_Q = 1;
mes "Aw crud... You failed!";
next;
mes "[Markie]";
@@ -506,14 +506,14 @@ in_rogue,376,23,1 script Mr. Smith#rg 1_M_LIBRARYMASTER,{
mes "[Mr. Smith]";
mes "What you have to understand is that the Rogue Guild does a lot of business, ^666666sometimes illegally^000000, that needs financial backup.";
next;
- set .@item_need,rand(1,15);
+ .@item_need = rand(1,15);
if (.@item_need > 0 && .@item_need < 6) callsub S_Req,"10 Skel-bone","6 Blue Herb","10 Decayed Nail","10 Horrendous Mouth",3;
else if (.@item_need > 5 && .@item_need < 11) callsub S_Req,"10 Green Herb","10 Crab Shell","10 Snake Scale","10 Garlet",4;
else if (.@item_need > 10 && .@item_need < 15) callsub S_Req,"10 Yellow Herb","10 Shell","10 Grasshopper's Leg","10 Bear's Footskin",5;
else if (.@item_need == 15) {
mes "[Mr. Smith]";
mes "I will let you know...";
- set ROGUE_Q,6;
+ ROGUE_Q = 6;
changequest 2017,2021;
next;
mes "[Mr. Smith]";
@@ -679,14 +679,14 @@ in_rogue,376,23,1 script Mr. Smith#rg 1_M_LIBRARYMASTER,{
delitem 917,5; //Talon
delitem 908,5; //Spawn
delitem 945,5; //Raccoon_Leaf
- set ROGUE_Q,8;
+ ROGUE_Q = 8;
next;
mes "[Mr. Smith]";
mes "Wow, you've brought each and every single thing I asked you to. Good work... I salute you.";
next;
mes "^CCCCCC- Middle Finger -^000000'";
mes "*Grins*";
- set ROGUE_Q,8;
+ ROGUE_Q = 8;
changequest 2021,2025;
next;
mes "[Mr. Smith]";
@@ -756,11 +756,11 @@ in_rogue,376,23,1 script Mr. Smith#rg 1_M_LIBRARYMASTER,{
mes "I send you to...?";
switch(rand(1,3)) {
case 1:
- set ROGUE_Q,9;
- if(checkquest(2018) != -1) {
+ ROGUE_Q = 9;
+ if (questprogress(2018)) {
changequest 2018,2022;
}
- else if(checkquest(2019) != -1) {
+ else if (questprogress(2019)) {
changequest 2019,2022;
}
else {
@@ -793,11 +793,11 @@ in_rogue,376,23,1 script Mr. Smith#rg 1_M_LIBRARYMASTER,{
mes "Well, I will wish you luck. His place isn't that far from here, so come back as soon as possible. Being swift... That is the spirit of the Rogue.";
close;
case 2:
- set ROGUE_Q,10;
- if(checkquest(2018) != -1) {
+ ROGUE_Q = 10;
+ if (questprogress(2018)) {
changequest 2018,2023;
}
- else if(checkquest(2019) != -1) {
+ else if (questprogress(2019)) {
changequest 2019,2023;
}
else {
@@ -829,11 +829,11 @@ in_rogue,376,23,1 script Mr. Smith#rg 1_M_LIBRARYMASTER,{
mes "Ah, you might want to remember the password to meet him in person. The password is ^0000FFAntonio doesn't enjoy destroying upgrade items^000000.";
close;
case 3:
- set ROGUE_Q,11;
- if(checkquest(2018) != -1) {
+ ROGUE_Q = 11;
+ if (questprogress(2018)) {
changequest 2018,2024;
}
- else if(checkquest(2019) != -1) {
+ else if (questprogress(2019)) {
changequest 2019,2024;
}
else {
@@ -944,7 +944,7 @@ S_Req:
mes "^FF0000"+getarg(1)+"^000000,";
mes "^FF0000"+getarg(2)+"^000000 and";
mes "^FF0000"+getarg(3)+"^000000.";
- set ROGUE_Q,getarg(4);
+ ROGUE_Q = getarg(4);
if(getarg(4) == 3) {
changequest 2017,2018;
}
@@ -979,13 +979,13 @@ S_CheckItems:
delitem getarg(2),getarg(3);
delitem getarg(4),getarg(5);
delitem getarg(6),getarg(7);
- set ROGUE_Q,7;
+ ROGUE_Q = 7;
next;
mes "[Mr. Smith]";
mes "Great, great...";
mes "I think you";
mes "brought everything.";
- set ROGUE_Q,7;
+ ROGUE_Q = 7;
next;
mes "[Mr. Smith]";
mes "Alright, wait just a moment while";
@@ -1024,7 +1024,7 @@ OnTouch:
case 2:
mes "[" + strcharinfo(0) + "]";
mes "Aragham";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 3:
mes "[" + strcharinfo(0) + "]";
@@ -1040,7 +1040,7 @@ OnTouch:
case 2: mes "didn't"; break;
case 3:
mes "never";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 4: mes "ever"; break;
}
@@ -1048,7 +1048,7 @@ OnTouch:
case 1: mes "hoard"; break;
case 2:
mes "hoarded";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 3: mes "hide"; break;
case 4: mes "took"; break;
@@ -1057,7 +1057,7 @@ OnTouch:
switch(select("upgrade items.:forging items.:refining item.:upgrade item.")) {
case 1:
mes "upgrade items.";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 2: mes "forging items."; break;
case 3: mes "refining item."; break;
@@ -1090,7 +1090,7 @@ OnTouch:
case 1:
mes "[" + strcharinfo(0) + "]";
mes "My father";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 2:
mes "[" + strcharinfo(0) + "]";
@@ -1110,7 +1110,7 @@ OnTouch:
case 2: mes "didn't"; break;
case 3:
mes "never";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 4: mes "ever"; break;
}
@@ -1121,13 +1121,13 @@ OnTouch:
case 4: mes "took"; break;
case 5:
mes "hoarded";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
}
switch(select("upgrade items.:forging items.:refining item.:upgrade item.")) {
case 1:
mes "upgrade items.";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 2: mes "forging items."; break;
case 3: mes "refining item."; break;
@@ -1168,7 +1168,7 @@ OnTouch:
case 3:
mes "[" + strcharinfo(0) + "]";
mes "Antonio";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 4:
mes "[" + strcharinfo(0) + "]";
@@ -1179,7 +1179,7 @@ OnTouch:
case 1: mes "enjoys"; break;
case 2:
mes "doesn't enjoy";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 3: mes "likes"; break;
case 4: mes "doesn't like"; break;
@@ -1188,7 +1188,7 @@ OnTouch:
case 1: mes "damaging"; break;
case 2:
mes "destroying";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 3: mes "fixing"; break;
case 4: mes "forging"; break;
@@ -1198,7 +1198,7 @@ OnTouch:
case 2: mes "refining items."; break;
case 3:
mes "upgrade items.";
- set .@rogue_t,.@rogue_t+10;
+ .@rogue_t += 10;
break;
case 4: mes "refined items."; break;
case 5: mes "upgraded items."; break;
@@ -1250,7 +1250,7 @@ in_rogue,272,135,1 script Hermanthorn Jr#rg 4_M_03,{
mes "[HermanthornJr.]";
mes "Well...";
mes "Just make it back to the Rogue Guild alive. That's all you have to do!";
- set ROGUE_Q,12;
+ ROGUE_Q = 12;
changequest 2025,2026;
close;
}
@@ -1287,7 +1287,7 @@ OnTouch:
mes "has opened.^000000";
close2;
warp "in_rogue",10,21;
- set ROGUE_Q,12;
+ ROGUE_Q = 12;
end;
}
else {
@@ -1385,7 +1385,7 @@ OnMyMobDead:
in_rogue,9,389,0 script oneway_to_gu WARPNPC,1,1,{
OnTouch:
donpcevent "gen_ro#4::OnDisable";
- set ROGUE_Q,17;
+ ROGUE_Q = 17;
warp "in_rogue",367,10;
end;
}
@@ -1423,7 +1423,7 @@ in_rogue,244,39,1 script Aragham Junior#rg 4W_M_03,{
mes "Good luck, then.";
close2;
warp "in_rogue",15,105;
- set ROGUE_Q,13;
+ ROGUE_Q = 13;
changequest 2022,2026;
end;
}
@@ -1504,7 +1504,7 @@ in_rogue,160,34,1 script Hollgrehenn junior#rg 4_M_03,{
mes "Good luck.";
close2;
warp "in_rogue",15,105;
- set ROGUE_Q,15;
+ ROGUE_Q = 15;
changequest 2024,2026;
end;
}
@@ -1591,7 +1591,7 @@ in_rogue,177,109,1 script Antonio junior#rg 4_M_ORIENT01,{
mes "a Rogue if you pass...";
close2;
warp "in_rogue",15,105;
- set ROGUE_Q,14;
+ ROGUE_Q = 14;
changequest 2023,2026;
end;
}
@@ -1649,7 +1649,7 @@ in_rogue,177,109,1 script Antonio junior#rg 4_M_ORIENT01,{
in_rogue,370,320,0 script quest_out WARPNPC,1,1,{
OnTouch:
- set ROGUE_Q,16;
+ ROGUE_Q = 16;
warp "in_rogue",378,113;
end;
}
diff --git a/npc/jobs/2-2/sage.txt b/npc/jobs/2-2/sage.txt
index 72bacfaf1..46493312c 100644
--- a/npc/jobs/2-2/sage.txt
+++ b/npc/jobs/2-2/sage.txt
@@ -126,7 +126,7 @@ yuno_in02,38,61,5 script Dean of the Academy#sa 2_M_SAGE_OLD,{
else if (SAGE_Q == 15) {
if (countitem(1550) > 0) {
if (JobLevel < 40) {
- set SAGE_Q,0;
+ SAGE_Q = 0;
mes "You don't seem to be qualified yet.";
mes "Remember, you must reach at least job level 40 to become a Sage.";
close2;
@@ -329,7 +329,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
mes "Yes, everything's ready.";
mes "Next, you will take an entrance test.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
@@ -347,7 +347,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
mes "Thank you, your application has been accepted.";
mes "Next, you will take an entrance test.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
@@ -366,7 +366,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
mes "Thank you, your application has been accepted.";
mes "Next, you will take the entrance test.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
@@ -405,7 +405,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
mes "Yes, everything's ready.";
mes "Next, you will take the entrance test.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
@@ -438,7 +438,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
next;
switch(rand(1,3)) {
case 1:
- set SAGE_Q,1;
+ SAGE_Q = 1;
setquest 2043;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
@@ -450,7 +450,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "If you bring those items, your tuition will be 30,000 zeny, in lieu of the original 70,000 zeny fee.";
break;
case 2:
- set SAGE_Q,2;
+ SAGE_Q = 2;
setquest 2044;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
@@ -462,7 +462,7 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "If you bring the aforementioned items, the tuition fee will be 30,000 zeny, rather than the original 70,000 zeny fee.";
break;
case 3:
- set SAGE_Q,3;
+ SAGE_Q = 3;
setquest 2045;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
@@ -511,14 +511,14 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
delitem 1007,1; //Penetration
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
next;
}
else if (Zeny > 69999) {
Zeny -= 70000;
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
- set SAGE_Q,4;
+ SAGE_Q = 4;
next;
}
else {
@@ -539,17 +539,17 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
setarray .@count[0], 50,50,50,50;
break;
}
- set .@size, (getarraysize(.@item)-1);
- for( set .@i,0 ; .@i < .@size && countitem(.@item[.@i]) >= .@count[.@i] ; set .@i,.@i+1 );
+ .@size = (getarraysize(.@item)-1);
+ for (.@i = 0 ; .@i < .@size && countitem(.@item[.@i]) >= .@count[.@i] ; ++.@i);
if(.@i == .@size) {
if (Zeny > 29999) {
- for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
+ for (.@i = 0; .@i < .@size ; ++.@i)
delitem .@item[.@i], .@count[.@i];
Zeny -= 30000;
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
- set .@SAGE_Q_T,SAGE_Q;
- set SAGE_Q,4;
+ .@SAGE_Q_T = SAGE_Q;
+ SAGE_Q = 4;
next;
}
mes "[Metheus Sylphe]";
@@ -594,14 +594,14 @@ yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
mes "Ah yes, everything is in readiness.";
mes "Next, you will take an entrance test.";
- set SAGE_Q,4;
- if(checkquest(2043) != -1) {
+ SAGE_Q = 4;
+ if (questprogress(2043)) {
changequest 2043,2041;
}
- else if(checkquest(2044) != -1) {
+ else if (questprogress(2044)) {
changequest 2044,2041;
}
- else if(checkquest(2045) != -1) {
+ else if (questprogress(2045)) {
changequest 2045,2041;
}
else {
@@ -714,247 +714,247 @@ L_AskQuestions:
mes "1. Choose an item that the Gift merchant in Prontera does not sell.";
next;
if (select("China:Red Frame:Bouquet:Glass Bead") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "2. Choose a city where you cannot purchase a Stiletto.";
next;
if (select("Prontera:Morroc:Geffen:Lutie") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "3. Choose the closest city to Turtle Island.";
next;
if (select("Al De Baran:Alberta:Comodo:Izlude") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Raggler:Pest:Frilldora:Aster") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "5. Choose the monster that has a different attribute than the others.";
next;
if (select("Mantis:Metaller:Rocker:Horn") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "6. Choose the monster that is different sized than the others.";
next;
if (select("Raydric:Raydric Archer:Wanderer:Dark Frame") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "7. Choose the monster which doesn't drop 'Alcohol'.";
next;
if (select("Horong:Plankton:Poison Spore:Toad") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Knight job change quest.";
next;
if (select("Sir Siracuse:Thomas Servantes:Sir Windsor:Lady Amy") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Prontera.";
next;
if (select("Tono:Pina:YuPi:Hollgrehenn") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "10. Choose the right name for the Kafra lady who wears glasses.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "11. How much SP is spent to use lvl 7 Thunderstorm?";
next;
if (select("49:59:69:74") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "12. Choose the right amount of damage reduction and SP consumption of the Energy Coat skill when the caster's remaining SP is 50%.";
next;
if (select("Damage -24% SP1.5%:Damage -24% SP2%:Damage -18% SP1.5%:Damage -18% SP2%") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "13. Choose the property that is irrelevant to 'Bolt' type skills for the Mage class.";
next;
if (select("Water:Earth:Fire:Wind") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "14. Choose the right chance and attack strength for lvl 7 Double Attack, the Thief skill.";
next;
if (select("35% / 120%:35% / 140%:40% / 120%:40% / 140%") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Magnus Exorcismus, the Priest skill.";
next;
if (select("Divine Protection:Heal:Ruwach:Aqua Benedicta") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "16. Choose the correct defense and ability of the Bunny Band.";
next;
if (select("1 / LUK +2:1 / LUK +5:2 / LUK +2:2 / LUK +5") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "17. Choose the class that cannot equip Padded Armor.";
next;
if (select("Swordman:Merchant:Thief:Archer") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "18. Choose the item that cures all abnormal status and restores full HP and SP at the same time.";
next;
if (select("Royal Jelly:Yggdrasil Seed:Yggdrasilberry:Mastella Fruit") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "19. Who rules the Rune-Midgarts kingdom right now?";
next;
if (select("Tristun the 3rd:Tristram the 3rd:Tristar the 3rd:Trast the 3rd") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "20. Choose the god of Crusaders.";
next;
if (select("Odin:Loki:Thor:Venadin") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
break;
case 2:
mes "1. Choose the jewel that the Morroc Jewel Merchant does not sell.";
next;
if (select("Topaz:Garnet:Diamond:Sapphire") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "2. Choose the city where users cannot purchase Monster's Feed from an NPC.";
next;
if (select("Prontera:Morroc:Al De Baran:Alberta") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "3. Choose the closest city to the Maze.";
next;
if (select("Prontera:Morroc:Geffen:Payon") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Muka:Drops:Plankton:Penomena") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "5. Choose the monster with the different attribute.";
next;
if (select("Dokebi:Isis:Giearth:Deviruchi") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "6. Choose the monster that is different in size.";
next;
if (select("Thiefbug (Aggressive):Horn:Metaller:Argos") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "7. Choose the monster which does not drop 'Yggdrasil Leaf'.";
next;
if (select("Marduk:Baphomet Jr.:Angeling:Wanderer") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Priest job change quest.";
next;
if (select("Paul:Sir Windsor:Peter S. Alberto:Cecilia") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Morroc.";
next;
if (select("Syvia:Akira:Antonio:Dmitrii") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "10. Choose the Kafra lady who has gorgeous blue hair.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "11. Choose the skill that is irrelevant to learning Fire Wall, the Mage skill.";
next;
if (select("lvl 4 Fire Bolt:lvl 4 Napalm Beat:lvl 5 Fire Ball:lvl 1 Sight") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "12. How much SP can be restored when learning SP recovery at lvl 6 (without being affected by INT)?";
next;
if (select("14:16:18:21") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "13. How many INT points does a Mage receive as a bonus at job lvl 33?";
next;
if (select("7:6:5:4") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "14. Choose the correct SP consumption and the skill duration for Improve Concentration lvl 5 (Archer skill).";
next;
if (select("45 / 80 sec:50 / 80 sec:45 / 90 sec:50 / 90 sec") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Maximize Power, the Blacksmith skill.";
next;
if (select("Hilt Binding:Skin Tempering:Hammer Fall:Weapon Perfection") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "16. What is the correct defense rate and ability of Cute Ribbon?";
next;
if (select("0 / SP +20:0 / SP +30:1 / SP +20:1 / SP +30") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "17. Choose the class that cannot equip Saint Robe.";
next;
if (select("Swordman:Merchant:Thief:Acolyte") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "18. Choose the abnormal status that cannot be cured by Green Potion.";
next;
if (select("Silence:Chaos:Blind:Curse") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "19. Choose the correct name for the ancient kingdom that disappeared somewhere in Geffen.";
next;
if (select("Geffayon:Geffenia:Gefenn:Jaffen") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "20. Choose the correct name for the tree that has become the root of this world.";
next;
if (select("Yggdrasil:Iggdrassil:Mastella:Dead Branch") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
break;
case 3:
mes "1. Choose the item that the Magical Tool merchant in Geffen does not sell.";
next;
if (select("Mantle:Wand:Circlet:Silver Robe") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "2. Choose the city where users cannot purchase Blade from an NPC.";
next;
if (select("Prontera:Izlude:Al De Baran:Payon") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "3. Choose the closest city to Glast Heim.";
next;
if (select("Prontera:Geffen:Morroc:Payon") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Aster:Marc:Marse:Marin") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "5. Choose the monster that has a different attribute.";
next;
if (select("Baby Desert Wolf:Smokie:Picky:Choco") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "6. Choose the monster that is different sized.";
next;
if (select("Drake:Wraith:Evil Druid:Khalitzburg") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "7. Choose the monster that does not drop 'Phracon'.";
next;
if (select("Pupa:Peco Peco Egg:Savage Bebe:Baby Desert Wolf") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Blacksmith job change quest.";
next;
if (select("Altiregen:Geschupenschte:Barcadi:Baisulist") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Al De Baran.";
next;
if (select("RS125:GOD-POING:Stromme:Chemirre") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "10. Choose the Kafra lady who is the youngest among the staff.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "11. Choose the correct SP consumption and the number of evasions when using Safety Wall lvl 6.";
next;
if (select("SP 40, 6 times:SP 35, 6 times:SP 40, 7 times:SP 35, 7 times") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "12. Choose the correct amount of magic attack for Napalm Beat lvl 6.";
next;
if (select("MATK * 1.2:MATK * 1.3:MATK * 1.4:MATK * 1.5") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "13. Choose the catalyst stone for Mage Solution no. 4 that is used for the Mage job change quest.";
next;
if (select("Blue Gemstone:Red Gemstone:Yellow Gemstone:1 carat Diamond") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "14. Choose the correct attack strength and SP consumption for Bash lvl 6, the Swordman skill.";
next;
if (select("250% / 8:280% / 8:280% / 15:310% / 15") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Claymore Trap, the Hunter skill.";
next;
if (select("Remove Trap:Land Mine:Ankle Snare:Flasher") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "16. Choose the correct defense and ability of Wedding Veil.";
next;
if (select("0 / MDEF +3:0 / MDEF +5:1 / MDEF +3:1 / MDEF +5") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "17. Choose the class that cannot equip Coat.";
next;
if (select("Swordman:Merchant:Thief:Novice") == 4)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "18. Choose the item that is not an ingredient for Blue Dyestuffs.";
next;
if (select("Alcohol:Detrimindexta:Karvodailnirol:Blue Herb") == 3)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "19. When the world was created by the god Odin, what did he use for the material?";
next;
if (select("The heart of Ymir:The nail of Ymir:The tooth of Ymir:The memento of Ymir") == 1)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
mes "20. Choose the metal that has rumored to bring fortune and fame to a person with the destiny.";
next;
if (select("Empelium Gold:Emperium:Emperor:Phracon") == 2)
- set .@sage_t,.@sage_t+5;
+ .@sage_t += 5;
}
mes "[Claytos Verdo]";
if (SAGE_Q == 4) {
@@ -977,7 +977,7 @@ L_AskQuestions:
mes "Excellent! You seem fully qualified to become a Sage!";
else
mes "Excellent! You must have studed really hard for this test!";
- set SAGE_Q,6;
+ SAGE_Q = 6;
changequest 2041,2046;
next;
mes "[Claytos Verdo]";
@@ -985,7 +985,7 @@ L_AskQuestions:
mes "Go visit Professor Hermes for the practical examination.";
}
else if (.@sage_t >= 80) {
- set SAGE_Q,6;
+ SAGE_Q = 6;
changequest 2041,2046;
mes "Yeah, not bad. I assume that you will at least understand what you're going to learn in class.";
next;
@@ -995,7 +995,7 @@ L_AskQuestions:
}
else {
if (SAGE_Q == 4) {
- set SAGE_Q,5;
+ SAGE_Q = 5;
mes "Oh well...what a shame: You failed.";
next;
mes "[Claytos Verdo]";
@@ -1020,11 +1020,11 @@ L_AskQuestions:
mes "You will take the written test under the same conditions as the test you took before. I'll give you 20 questions.";
mes "Each correct answer will give you 5 points. When your score reaches 80 points, you pass the test.";
next;
- set sage_m2,rand(1,3);
+ sage_m2 = rand(1,3);
mes "[Claytos Verdo]";
mes "Okay, there's no need to wait.";
mes "Answer immediately, or I'll fail you again.";
- set SAGE_Q,5;
+ SAGE_Q = 5;
goto L_AskQuestions;
end;
}
@@ -1127,7 +1127,7 @@ yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
mes "How about it? Are you ready to take this test?";
next;
if (select("Yes, I am.:Sorry, give me some time.") == 1) {
- set SAGE_Q,7;
+ SAGE_Q = 7;
mes "[Hermes Tris]";
mes "Good, let's start immediately.";
mes "Do your best and come back safely!";
@@ -1135,7 +1135,7 @@ yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
warp "job_sage",50,154;
end;
}
- set SAGE_Q,7;
+ SAGE_Q = 7;
mes "[Hermes Tris]";
mes "Yes, you don't need to hurry... take your time and come back.";
close;
@@ -1173,7 +1173,7 @@ yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
next;
switch(rand(1,3)) {
case 1:
- set SAGE_Q,9;
+ SAGE_Q = 9;
changequest 2046,2047;
mes "[Hermes Tris]";
mes "Now, you will study Yggdrasil.";
@@ -1187,7 +1187,7 @@ yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
mes "I wish you luck.";
close;
case 2:
- set SAGE_Q,11;
+ SAGE_Q = 11;
changequest 2046,2048;
mes "[Hermes Tris]";
mes "Now, you will study monsters.";
@@ -1201,7 +1201,7 @@ yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
mes "I wish you luck.";
close;
case 3:
- set SAGE_Q,13;
+ SAGE_Q = 13;
changequest 2046,2049;
mes "[Hermes Tris]";
mes "Now, you will study magic skills that have certain properties.";
@@ -1346,7 +1346,7 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "Anything is fine as long as it's related to the Yggdrasil tree.";
mes "Seeds or fruits of the tree would be good. I know it's difficult to find, but please try.";
next;
- set SAGE_Q2,1;
+ SAGE_Q2 = 1;
changequest 2047,2050;
mes "[Saphien Layless]";
mes "When we have the reserve items, we will start the class.";
@@ -1471,8 +1471,8 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding the squid ink.";
next;
- set SAGE_Q2,0;
- set SAGE_Q,10;
+ SAGE_Q2 = 0;
+ SAGE_Q = 10;
changequest 2050,2051;
mes "[Saphien Layless]";
mes "I will help you to write your thesis when you're ready with all those items.";
@@ -1500,36 +1500,36 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "The ocean is coiled up by";
switch(select("A giant ash tree.:A giant snake Yormungandr.:A giant turtle and elephants.:A giant dragon.")) {
case 1:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A giant ash tree.";
break;
case 2:
mes "A giant snake Yormungandr.";
break;
case 3:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A giant turtle and elephants.";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A giant dragon.";
break;
}
mes "The continent consists of three places such as,";
switch(select("Mt.Mjolnir, where spiders live,:Uranos, where titans live,:Utgard, where titans live,:Lutie, the winter land,")) {
case 1:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Mt.Mjolnir where spiders live,";
break;
case 2:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Uranos where titans live,";
break;
case 3:
mes "Utgard where titans live,";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Lutie, the winter land,";
break;
}
@@ -1538,32 +1538,32 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "Midgard, where humans live in,";
break;
case 2:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Rune-Midgarts, where humans live,";
break;
case 3:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Tritonia, where mermaids live,";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Morroc, the desert city,";
break;
}
switch(select("Abguard, where gods live.:Asgard, where gods live.:Schwarzwald, where citizens live.:Prontera, the capital of Rune-Midgarts.")) {
case 1:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Abguard where gods live.";
break;
case 2:
mes "Asgard, where gods live.";
break;
case 3:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Schwarzwald, where citizens live.";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Prontera, the capital of Rune-Midgarts.";
break;
}
@@ -1586,30 +1586,30 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "A giant ash tree.";
break;
case 2:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A fabulous Mastella tree.";
break;
case 3:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A giant willow.";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "A giant dead branch.";
break;
}
mes "The root of Yggdrasil is divided into 3 parts. Those parts reach to 3 places...";
switch(select("Schwarzwald, Jotunnheim, Niflheim.:Midgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Niflheim.")) {
case 1:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Schwarzwald, Jotunnheim, Niflheim.";
break;
case 2:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Midgard, Jotunnheim, Naffleheim.";
break;
case 3:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "Asgard, Jotunnheim, Naffleheim.";
break;
case 4:
@@ -1619,18 +1619,18 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "One who has a Seed of Yggdrasil,";
switch(select("can be cured from all the abnormal statuses.:can restore full HP and SP at once.:can restore half of total HP and SP.:can be cured from Silence, Curse and Chaos.")) {
case 1:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "can be cured from all the abnormal statuses.";
break;
case 2:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "can restore full HP and SP at once.";
break;
case 3:
mes "can restore half of total HP and SP.";
break;
case 4:
- set .@w_point,.@w_point+1;
+ .@w_point += 1;
mes "can be cured from Silence, Curse and Chaos.";
break;
}
@@ -1651,7 +1651,7 @@ yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
next;
mes ".................................";
next;
- set SAGE_Q,15;
+ SAGE_Q = 15;
changequest 2051,2052;
mes "[Saphien Layless]";
mes "Oh, did you finish already? Well done.";
@@ -1758,13 +1758,13 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "Yes, that's what I guessed about you. You're just book smart.";
mes "However, I am sure you will encounter most of the monsters mentioned in my lecture.";
next;
- set sage_m4,rand(1,3);
+ sage_m4 = rand(1,3);
mes "[Lucius Celsus]";
mes "Let's get started.";
mes "Make sure you're ready for the practical examination during my lecture.";
next;
if (sage_m4 == 1) {
- set SAGE_Q2,1;
+ SAGE_Q2 = 1;
changequest 2048,2053;
mes "[Lucius Celsus]";
mes "Go bring the following items to me.";
@@ -1773,7 +1773,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "5 ^3355FFFish Tail^000000.";
}
else if (sage_m4 == 2) {
- set SAGE_Q2,2;
+ SAGE_Q2 = 2;
changequest 2048,2054;
mes "[Lucius Celsus]";
mes "Go bring the following items to me.";
@@ -1782,7 +1782,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "5 ^3355FFHeart of Mermaid^000000.";
}
else {
- set SAGE_Q2,3;
+ SAGE_Q2 = 3;
changequest 2048,2054;
mes "[Lucius Celsus]";
mes "Go bring following items to me.";
@@ -1824,7 +1824,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "Most fish class monsters live underwater, so they are attributed with the water property.";
break;
case 3:
- set sage_m4,4;
+ sage_m4 = 4;
mes "[Lucius Celsus]";
mes "...I didn't know Phens were aggressive nowadays?";
mes "Or do Marina and Plankton team up to start a fight with you?";
@@ -1834,7 +1834,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "They are all fishes and possess water property.";
break;
case 4:
- set sage_m4,4;
+ sage_m4 = 4;
mes "[Lucius Celsus]";
mes "What...! What are you here for!? You are here to study about specific monsters, microcephalic moron!";
mes "Sigh...they are all fishes and possess water property.";
@@ -1852,7 +1852,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "Although you might want to be careful of monsters that recognize magic casting.";
break;
case 2:
- set sage_m4,4;
+ sage_m4 = 4;
mes "[Lucius Celsus]";
mes "What? Fire Bolt! Fire cannot beat water, you imbecile!";
mes "Most fishes are attributed with the water property. Therefore, they are weak to wind property magic spells. Don't you get it?";
@@ -1863,7 +1863,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "However, you will be in trouble if you use the spell in a poorly chosen spot.";
break;
case 4:
- set sage_m4,4;
+ sage_m4 = 4;
mes "[Lucius Celsus]";
mes "I can't fathom such stupidity! This question asks you to choose a property that counters water! Don't you get it?";
mes "Logically, any magic spell possessing the water property cannot overcome the water atrribute monsters!";
@@ -1880,11 +1880,11 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
next;
switch(rand(1,4)) {
case 1:
- set SAGE_Q2,4;
- if(checkquest(2053) != -1) {
+ SAGE_Q2 = 4;
+ if (questprogress(2053)) {
changequest 2053,2056;
}
- else if(checkquest(2054) != -1) {
+ else if (questprogress(2054)) {
changequest 2054,2056;
}
else {
@@ -1895,11 +1895,11 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "5 ^3355FFInsect Feeler^000000.";
break;
case 2:
- set SAGE_Q2,5;
- if(checkquest(2053) != -1) {
+ SAGE_Q2 = 5;
+ if (questprogress(2053)) {
changequest 2053,2057;
}
- else if(checkquest(2054) != -1) {
+ else if (questprogress(2054)) {
changequest 2054,2057;
}
else {
@@ -1910,11 +1910,11 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "5 ^3355FFMoth Dust^000000.";
break;
case 3:
- set SAGE_Q2,6;
- if(checkquest(2053) != -1) {
+ SAGE_Q2 = 6;
+ if (questprogress(2053)) {
changequest 2053,2058;
}
- else if(checkquest(2054) != -1) {
+ else if (questprogress(2054)) {
changequest 2054,2058;
}
else {
@@ -1925,11 +1925,11 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "5 ^3355FFRainbow Shell^000000.";
break;
case 4:
- set SAGE_Q2,7;
- if(checkquest(2053) != -1) {
+ SAGE_Q2 = 7;
+ if (questprogress(2053)) {
changequest 2053,2059;
}
- else if(checkquest(2054) != -1) {
+ else if (questprogress(2054)) {
changequest 2054,2059;
}
else {
@@ -2000,15 +2000,15 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
next;
- set SAGE_Q2,0;
- set SAGE_Q,12;
- if(checkquest(2056) != -1) {
+ SAGE_Q2 = 0;
+ SAGE_Q = 12;
+ if (questprogress(2056)) {
changequest 2056,2051;
}
- else if(checkquest(2057) != -1) {
+ else if (questprogress(2057)) {
changequest 2057,2051;
}
- else if(checkquest(2058) != -1) {
+ else if (questprogress(2058)) {
changequest 2058,2051;
}
else {
@@ -2074,7 +2074,7 @@ yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
next;
mes ".................................";
next;
- set SAGE_Q,15;
+ SAGE_Q = 15;
changequest 2051,2052;
mes "[Lucius Celsus]";
mes "Are you done? Okay, then it's over.";
@@ -2179,7 +2179,7 @@ yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
mes "Please bring me ^3355FF30 Stone^000000, that's all.";
mes "It's not so hard, isn't it?";
next;
- set SAGE_Q2,1;
+ SAGE_Q2 = 1;
changequest 2049,2060;
mes "[Aebecee George]";
mes "Why don't you ask a thief pal for help?";
@@ -2215,7 +2215,7 @@ yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
mes "[Aebecee George]";
mes "I will give you these elemental ores...but...they are not for free.";
mes "Whoa there cowboy! Don't pull out so soon~ Listen, tee hee~";
- set SAGE_Q2,2;
+ SAGE_Q2 = 2;
changequest 2060,2061;
next;
mes "[Aebecee George]";
@@ -2274,7 +2274,7 @@ yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
mes "[Aebecee George]";
mes "When you come to the next class, bring ^3355FF1 Holy Water^000000~";
mes "I hope you have at least one Priest friend. Oh, you don't? Well, it couldn't hurt to get friendly with one.";
- set SAGE_Q2,3;
+ SAGE_Q2 = 3;
changequest 2061,2062;
close;
}
@@ -2323,8 +2323,8 @@ yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
mes "[Aebecee George]";
mes "Well, that's it. You can write your thesis with what I've taught you!";
mes "Tee hee~ yes! Yes! I am the best teacher in the world! Oh, I am on fire! Tee hee~";
- set SAGE_Q2,0;
- set SAGE_Q,14;
+ SAGE_Q2 = 0;
+ SAGE_Q = 14;
changequest 2062,2051;
next;
mes "[Aebecee George]";
@@ -2491,7 +2491,7 @@ yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
next;
mes ".................................";
next;
- set SAGE_Q,15;
+ SAGE_Q = 15;
changequest 2051,2052;
mes "[Aebecee George]";
mes "Tee hee, so... are you done with your thesis? What do you think of your work? I think you did fine~";
@@ -2584,7 +2584,7 @@ OnInit:
OnEnable:
enablenpc "Arena#1";
- set .MyMobs,16;
+ .MyMobs = 16;
monster "job_sage",111,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",120,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",111,93,"Grade F",1183,1,"Arena#1::OnMyMobDead";
@@ -2609,7 +2609,7 @@ OnReset:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
donpcevent "Arena#2::OnEnable";
@@ -2682,7 +2682,7 @@ OnEnable:
enablenpc "Arena#2";
donpcevent "Arena#1::OnReset";
disablenpc "Arena#1";
- set .MyMobs,24;
+ .MyMobs = 24;
monster "job_sage",111,102,"Numerical Value",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,102,"Physics",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,102,"History",1063,1,"Arena#2::OnMyMobDead";
@@ -2715,7 +2715,7 @@ OnReset:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
donpcevent "Arena#Doorkeeper::OnEnable";
@@ -2785,7 +2785,7 @@ OnEnable:
enablenpc "Arena#Doorkeeper";
donpcevent "Arena#2::OnReset";
disablenpc "Arena#2";
- set .MyMobs,1;
+ .MyMobs = 1;
monster "job_sage",116,97,"Academic Probation",1179,1,"Arena#Doorkeeper::OnMyMobDead";
initnpctimer;
end;
@@ -2800,10 +2800,10 @@ OnDisable:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage","Congratulations, " + strcharinfo(0) + ". You passed the test.",bc_map;
- set SAGE_Q,8;
+ SAGE_Q = 8;
donpcevent "Test Helper#sg::OnEnable";
disablenpc "Arena#Doorkeeper";
stopnpctimer;
diff --git a/npc/jobs/2-2a/Champion.txt b/npc/jobs/2-2a/Champion.txt
index 7f0f743cd..72eed8840 100644
--- a/npc/jobs/2-2a/Champion.txt
+++ b/npc/jobs/2-2a/Champion.txt
@@ -15,7 +15,7 @@
valkyrie,53,42,3 script Champion#Valkyrie 1_M_HOF,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Champion]";
mes "Congratulations.";
@@ -62,7 +62,7 @@ valkyrie,53,42,3 script Champion#Valkyrie 1_M_HOF,{
close;
}
jobchange Job_Champion;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Champion]";
mes "Congratulations!";
mes "Live as a Champion,";
diff --git a/npc/jobs/2-2a/Clown.txt b/npc/jobs/2-2a/Clown.txt
index 1d9b200bf..173aedb40 100644
--- a/npc/jobs/2-2a/Clown.txt
+++ b/npc/jobs/2-2a/Clown.txt
@@ -17,7 +17,7 @@
valkyrie,53,54,3 script Minstrel#Valkyrie 2_M_BARD_ORIENT,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Minstrel]";
mes "Congratulations.";
@@ -58,7 +58,7 @@ valkyrie,53,54,3 script Minstrel#Valkyrie 2_M_BARD_ORIENT,{
close;
}
jobchange Job_Clown;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Minstrel]";
mes "Congratulations!";
mes "As a Minstrel, your";
diff --git a/npc/jobs/2-2a/Gypsy.txt b/npc/jobs/2-2a/Gypsy.txt
index f8d80cc29..b265cc921 100644
--- a/npc/jobs/2-2a/Gypsy.txt
+++ b/npc/jobs/2-2a/Gypsy.txt
@@ -15,7 +15,7 @@
valkyrie,53,56,3 script Gypsy#Valkyrie 4W_F_01,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Gypsy]";
mes "Congratulations.";
@@ -58,7 +58,7 @@ valkyrie,53,56,3 script Gypsy#Valkyrie 4W_F_01,{
close;
}
jobchange Job_Gypsy;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Gypsy]";
mes "Congratulations!";
mes "As a Gypsy, I know";
diff --git a/npc/jobs/2-2a/Paladin.txt b/npc/jobs/2-2a/Paladin.txt
index 9bd6a46f0..ec97506d3 100644
--- a/npc/jobs/2-2a/Paladin.txt
+++ b/npc/jobs/2-2a/Paladin.txt
@@ -15,7 +15,7 @@
valkyrie,53,39,3 script Paladin#Valkyrie 4_M_CRU_OLD,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Paladin]";
mes "Congratulations.";
@@ -59,7 +59,7 @@ valkyrie,53,39,3 script Paladin#Valkyrie 4_M_CRU_OLD,{
close;
}
jobchange Job_Paladin;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Paladin]";
mes "Congratulations.";
mes "As a Paladin, I hope";
diff --git a/npc/jobs/2-2a/Professor.txt b/npc/jobs/2-2a/Professor.txt
index b42e1627a..68cac14cf 100644
--- a/npc/jobs/2-2a/Professor.txt
+++ b/npc/jobs/2-2a/Professor.txt
@@ -15,7 +15,7 @@
valkyrie,53,47,3 script Scholar#Valkyrie 2_M_SAGE_OLD,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Scholar]";
mes "Congratulations.";
@@ -66,7 +66,7 @@ valkyrie,53,47,3 script Scholar#Valkyrie 2_M_SAGE_OLD,{
close;
}
jobchange Job_Professor;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Scholar]";
mes "Congratulations!";
mes "As a Professor, I hope";
diff --git a/npc/jobs/2-2a/Stalker.txt b/npc/jobs/2-2a/Stalker.txt
index fbc1e060c..34ec24935 100644
--- a/npc/jobs/2-2a/Stalker.txt
+++ b/npc/jobs/2-2a/Stalker.txt
@@ -15,7 +15,7 @@
valkyrie,53,58,3 script Stalker#Valkyrie 4_F_ROGUE,{
if (ADVJOB == 0 || Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Stalker]";
mes "Congratulations.";
@@ -67,7 +67,7 @@ valkyrie,53,58,3 script Stalker#Valkyrie 4_F_ROGUE,{
close;
}
jobchange Job_Stalker;
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Stalker]";
mes "Congratulations!";
mes "As a Stalker, I hope";
diff --git a/npc/jobs/2-2e/SoulLinker.txt b/npc/jobs/2-2e/SoulLinker.txt
index 38fb47131..300928c5d 100644
--- a/npc/jobs/2-2e/SoulLinker.txt
+++ b/npc/jobs/2-2e/SoulLinker.txt
@@ -156,7 +156,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
mes "and talk to me at any time.";
close;
}
- set SOUL_Q,1;
+ SOUL_Q = 1;
setquest 6005;
mes "[Kid]";
mes "So you want to become";
@@ -197,7 +197,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
delitem 732,1; //Crystal_Jewel__
delitem 929,1; //Immortal_Heart
delitem 748,1; //Witherless_Rose
- set SOUL_Q,2;
+ SOUL_Q = 2;
changequest 6005,6006;
mes "[Kid]";
mes "Great, I see that you've";
@@ -246,7 +246,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
mes "to wait for very long.";
close;
}
- set SOUL_Q,0;
+ SOUL_Q = 0;
mes "[Kid]";
mes "You've become a warrior";
mes "of the Sun, the Moon and";
@@ -276,7 +276,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
close;
}
donpcevent "Timer#link3::OnEnable";
- set .SoulLinkerTest,1;
+ .SoulLinkerTest = 1;
mes "[Maia]";
mes "Great, I've finished";
mes "the preparations. Now";
@@ -314,7 +314,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
close;
}
donpcevent "Timer#link3::OnEnable";
- set .SoulLinkerTest,1;
+ .SoulLinkerTest = 1;
mes "[Maia]";
mes "Alright then, close";
mes "your eyes and relax.";
@@ -327,7 +327,7 @@ morocc_in,174,30,6 script Kid#link1 4_M_KID2,{
}
OnInit:
- set .SoulLinkerTest,0;
+ .SoulLinkerTest = 0;
end;
}
@@ -360,7 +360,7 @@ OnTouch:
mes "will be able to call upon";
mes "more spirits as a Soul Linker.";
next;
- set SOUL_Q,3;
+ SOUL_Q = 3;
changequest 6006,6007;
mes "[Maia]";
mes "We can only remain in";
@@ -398,7 +398,7 @@ OnTouch:
mes "if you talk to me later...";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "[Maia]";
mes "You are on a riding pet,";
mes "so you cannot change your job.";
@@ -445,7 +445,7 @@ OnTouch:
completequest 6008;
callfunc "Job_Change",Job_Soul_Linker;
callfunc "F_ClearJobVar"; // clears all job variables for the current player
- set SOUL_Q,0;
+ SOUL_Q = 0;
mes "[Maia]";
mes "I wish the best of luck";
mes "in your new life. Surround";
@@ -519,8 +519,8 @@ job_soul,30,35,6 script Monk Spirit#link4 4_M_GRANDMONK,{
mes "is the only chance that I can";
mes "possibly have to do this.";
next;
- set SOUL_Q,4;
- if(checkquest(6008) == -1) {
+ SOUL_Q = 4;
+ if (!questprogress(6008)) {
changequest 6007,6008;
}
mes "[Monk Spirit]";
@@ -568,8 +568,8 @@ job_soul,30,25,7 script Sage Spirit#link5 4_M_SAGE_A,{
mes "it. But to do that, I shall";
mes "require your help. I beg you,";
mes "let me become your spirit ally.";
- set SOUL_Q,4;
- if(checkquest(6008) == -1) {
+ SOUL_Q = 4;
+ if (!questprogress(6008)) {
changequest 6007,6008;
}
next;
@@ -612,8 +612,8 @@ job_soul,25,30,5 script Alchemist Spirit#link7 4_F_ALCHE,{
mes "passed away. I cannot go";
mes "on to the next world until I've";
mes "passed on my techniques...";
- set SOUL_Q,4;
- if(checkquest(6008) == -1) {
+ SOUL_Q = 4;
+ if (!questprogress(6008)) {
changequest 6007,6008;
}
next;
diff --git a/npc/jobs/novice/supernovice.txt b/npc/jobs/novice/supernovice.txt
index 2887b2ae3..7411e3533 100644
--- a/npc/jobs/novice/supernovice.txt
+++ b/npc/jobs/novice/supernovice.txt
@@ -209,7 +209,7 @@ aldeba_in,223,167,3 script Tzerero#sn 4_M_SEAMAN,{
mes "an ordinary number.";
mes "Hahahahaha~";
next;
- set SUPNOV_Q,1;
+ SUPNOV_Q = 1;
setquest 6010;
mes "[Tzerero]";
mes "Good luck, my friend.";
@@ -430,7 +430,7 @@ aldebaran,54,238,5 script Kafra Employee#sn 4_F_KAFRA1,{
close;
}
if (Zeny >= 1899) {
- set RESRVPTS, RESRVPTS + 190;
+ RESRVPTS += 190;
Zeny -= 1900;
if (getskilllv("MC_PUSHCART") > 0) setcart;
mes "[Kafra Employee]";
diff --git a/npc/jobs/valkyrie.txt b/npc/jobs/valkyrie.txt
index 0aa4c4e3f..0439033b9 100644
--- a/npc/jobs/valkyrie.txt
+++ b/npc/jobs/valkyrie.txt
@@ -64,7 +64,7 @@ valkyrie,48,86,4 script Valkyrie# 4_F_VALKYRIE,{
mes "begin an entirely new life.";
mes "Honor to the warriors!";
next;
- if (Weight > 0 || Zeny > 0 || checkcart() != 0 || checkfalcon() != 0 || checkriding() != 0) {
+ if (Weight > 0 || Zeny > 0 || checkcart() || checkfalcon() || checkmount()) {
mes "[Valkyrie]";
mes "There are a few things you must";
mes "do before we start. You must";
@@ -143,12 +143,12 @@ valkyrie,48,86,4 script Valkyrie# 4_F_VALKYRIE,{
mes "One...";
mes "Two......";
mes "And Three.";
- set ADVJOB, Class+Job_Novice_High; //memo the target 3rd Job ID
- if(ADVJOB == Job_Lord_Knight2) set ADVJOB,Job_Lord_Knight;
- if(ADVJOB == Job_Paladin2) set ADVJOB,Job_Paladin;
+ ADVJOB = Class+Job_Novice_High; //memo the target 3rd Job ID
+ if(ADVJOB == Job_Lord_Knight2) ADVJOB = Job_Lord_Knight;
+ if(ADVJOB == Job_Paladin2) ADVJOB = Job_Paladin;
jobchange Job_Novice_High;
resetlvl(1);
- set MISC_QUEST,MISC_QUEST | 1024; //<-reset Skill Reset Event
+ MISC_QUEST |= 1024; //<-reset Skill Reset Event
skill 142,1,0;
skill 143,1,0;
completequest 1000;
@@ -232,7 +232,7 @@ yuno_in02,88,164,5 script Metheus Sylphe#Library 2_M_SAGE_B,{
if (select("Donate.:Cancel.") == 1) {
if (Zeny >= 1285000) {
Zeny -= 1285000;
- set valkyrie_Q,1;
+ valkyrie_Q = 1;
mes "[Metheus Sylphe]";
mes "Thank you, your donation will be used for a good cause. You may";
mes "now go in and read the book.";
@@ -324,8 +324,8 @@ yuno_in02,93,207,1 script Book of Ymir HIDDEN_NPC,{
mes "So, I am leaving this record in hope that someone in the future";
mes "can confirm that Valkyrie and Valhalla actually exist...";
next;
- set valkyrie_Q,2;
- if(checkquest(1000) == -1) {
+ valkyrie_Q = 2;
+ if(!questprogress(1000)) {
setquest 1000;
}
mes "[The Book of Ymir]";
@@ -352,7 +352,7 @@ yuno_in05,49,43,1 script Heart of Ymir HIDDEN_NPC,{
valkyrie,44,33,5 script Teleporter 4_F_TELEPORTER,{
if (Upper != 1) {
- set .@karma_d,rand(1,10);
+ .@karma_d = rand(1,10);
if (.@karma_d > 4) {
mes "[Teleporter]";
mes "Congratulations.";
diff --git a/npc/kafras/dts_warper.txt b/npc/kafras/dts_warper.txt
index 560d96e01..3f2c6870d 100644
--- a/npc/kafras/dts_warper.txt
+++ b/npc/kafras/dts_warper.txt
@@ -57,9 +57,9 @@
einbroch,246,70,0 script Vote Timer#ein -1,{
OnInit:
if ($dts) {
- set $dts,0;
- set $dtsvote,0;
- set $dtsday,0;
+ $dts = 0;
+ $dtsvote = 0;
+ $dtsday = 0;
}
initnpctimer;
end;
@@ -120,45 +120,45 @@ OnTimer60000:
if ($DTS_JondaVotes > $DTS_KafraVotes) {
if ($DTS_JondaWins == 0) {
if ($DTS_KafraWins < 2) {
- set $DTS_KafraWins,$DTS_KafraWins+1;
- set $DTS_Result,1;
- set $DTS_Time,0;
+ ++$DTS_KafraWins;
+ $DTS_Result = 1;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else if ($DTS_KafraWins == 2) {
- set $DTS_Result,1;
- set $DTS_Time,0;
+ $DTS_Result = 1;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
}
else if ($DTS_JondaWins == 1) {
if ($DTS_KafraWins < 2) {
- set $DTS_KafraWins,$DTS_KafraWins+1;
- set $DTS_Result,1;
- set $DTS_Time,0;
+ ++$DTS_KafraWins;
+ $DTS_Result = 1;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else {
- set $DTS_Time,0;
- set $DTS_Result,1;
+ $DTS_Time = 0;
+ $DTS_Result = 1;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer3#ein::OnEnable";
}
}
else {
if ($DTS_KafraWins < 2) {
- set $DTS_KafraWins,$DTS_KafraWins+1;
- set $DTS_Result,1;
- set $DTS_Time,0;
+ ++$DTS_KafraWins;
+ $DTS_Result = 1;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else {
- set $DTS_Result,1;
- set $DTS_Time,0;
+ $DTS_Result = 1;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#6::OnEnable";
donpcevent "Vote Timer3#ein::OnEnable";
}
@@ -167,45 +167,45 @@ OnTimer60000:
else {
if ($DTS_KafraWins == 0) {
if ($DTS_JondaWins < 2) {
- set $DTS_JondaWins,$DTS_JondaWins+1;
- set $DTS_Result,2;
- set $DTS_Time,0;
+ ++$DTS_JondaWins;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else {
- set $DTS_Result,2;
- set $DTS_Time,0;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
}
else if ($DTS_KafraWins == 1) {
if ($DTS_JondaWins < 2) {
- set $DTS_JondaWins,$DTS_JondaWins+1;
- set $DTS_Result,2;
- set $DTS_Time,0;
+ ++$DTS_JondaWins;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else {
- set $DTS_Result,2;
- set $DTS_Time,0;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer4#ein::OnEnable";
}
}
else {
if ($DTS_JondaWins < 2) {
- set $DTS_JondaWins,$DTS_JondaWins+1;
- set $DTS_Result,2;
- set $DTS_Time,0;
+ ++$DTS_JondaWins;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer2#ein::OnEnable";
}
else {
- set $DTS_Result,2;
- set $DTS_Time,0;
+ $DTS_Result = 2;
+ $DTS_Time = 0;
donpcevent "Scrutiny Association#7::OnEnable";
donpcevent "Vote Timer4#ein::OnEnable";
}
@@ -213,13 +213,13 @@ OnTimer60000:
}
}
else {
- set $DTS_Result,3;
- set $DTS_Time,0;
+ $DTS_Result = 3;
+ $DTS_Time = 0;
donpcevent "Vote Timer#ein::OnEnable";
}
}
else {
- set $DTS_Time,$DTS_Time+1;
+ ++$DTS_Time;
donpcevent "Vote Timer#ein::OnEnable";
}
}
@@ -234,15 +234,14 @@ OnEnable:
OnTimer60000:
stopnpctimer;
if ($DTS_PeriodCheck == 8640) {
- set $DTS_PeriodCheck,0;
- set $DTS_Result,0;
- set $DTS_KafraVotes,0;
- set $DTS_JondaVotes,0;
- set $DTS_VoteCount,$DTS_VoteCount+1;
+ $DTS_PeriodCheck = 0;
+ $DTS_Result = 0;
+ $DTS_KafraVotes = 0;
+ $DTS_JondaVotes = 0;
+ ++$DTS_VoteCount;
donpcevent "Vote Timer#ein::OnEnable";
- }
- else {
- set $DTS_PeriodCheck,$DTS_PeriodCheck+1;
+ } else {
+ ++$DTS_PeriodCheck;
donpcevent "Vote Timer2#ein::OnEnable";
}
end;
@@ -256,16 +255,15 @@ OnEnable:
OnTimer60000:
stopnpctimer;
if ($DTS_PeriodCheck == 8640) {
- set $DTS_PeriodCheck,0; //Global Variable
- set $DTS_Result,0; //Global Variable
- set $DTS_KafraVotes,0; //Global Variable
- set $DTS_JondaVotes,0; //Global Variable
- set $DTS_JondaWins,$DTS_JondaWins-1;
- set $DTS_VoteCount,$DTS_VoteCount+1;
+ $DTS_PeriodCheck = 0; //Global Variable
+ $DTS_Result = 0; //Global Variable
+ $DTS_KafraVotes = 0; //Global Variable
+ $DTS_JondaVotes = 0; //Global Variable
+ --$DTS_JondaWins;
+ ++$DTS_VoteCount;
donpcevent "Vote Timer#ein::OnEnable";
- }
- else {
- set $DTS_PeriodCheck,$DTS_PeriodCheck+1; //Global Variable
+ } else {
+ ++$DTS_PeriodCheck; //Global Variable
donpcevent "Vote Timer3#ein::OnEnable";
}
end;
@@ -279,16 +277,15 @@ OnEnable:
OnTimer60000:
stopnpctimer;
if ($DTS_PeriodCheck == 8640) {
- set $DTS_PeriodCheck,0; //Global Variable
- set $DTS_Result,0; //Global Variable
- set $DTS_KafraVotes,0; //Global Variable
- set $DTS_JondaVotes,0; //Global Variable
- set $DTS_KafraWins,$DTS_KafraWins-1;
- set $DTS_VoteCount,$DTS_VoteCount+1;
+ $DTS_PeriodCheck = 0; //Global Variable
+ $DTS_Result = 0; //Global Variable
+ $DTS_KafraVotes = 0; //Global Variable
+ $DTS_JondaVotes = 0; //Global Variable
+ --$DTS_KafraWins;
+ ++$DTS_VoteCount;
donpcevent "Vote Timer#ein::OnEnable";
- }
- else {
- set $DTS_PeriodCheck,$DTS_PeriodCheck+1; //Global Variable
+ } else {
+ ++$DTS_PeriodCheck; //Global Variable
donpcevent "Vote Timer4#ein::OnEnable";
}
end;
@@ -405,8 +402,8 @@ function script F_VoteKafra {
mes "have a good day, adventurer.";
break;
case 2:
- set lhz_vote,$DTS_VoteCount+1;
- set $DTS_KafraVotes,$DTS_KafraVotes+1;
+ lhz_vote = $DTS_VoteCount+1;
+ ++$DTS_KafraVotes;
mes "[Kafra Voting Staff]";
mes "Thanks for your vote!";
mes "We'll continue to do our best";
@@ -474,8 +471,8 @@ function script F_VoteKafra {
mes "have a good day, adventurer.";
break;
case 2:
- set lhz_vote,$DTS_VoteCount+1;
- set $DTS_KafraVotes,$DTS_KafraVotes+1;
+ lhz_vote = $DTS_VoteCount+1;
+ ++$DTS_KafraVotes;
mes "[Kafra Voting Staff]";
mes "Thanks for your vote!";
mes "We'll continue to do our best";
@@ -810,8 +807,8 @@ lighthalzen,163,60,4 script Kafra Voting Staff#lght 4_F_KAFRA9,{
mes "Corp, alright? Have a nice day~";
break;
case 2:
- set lhz_vote,$DTS_VoteCount+1;
- set $DTS_JondaVotes,$DTS_JondaVotes+1;
+ lhz_vote = $DTS_VoteCount+1;
+ ++$DTS_JondaVotes;
mes "[Cool Event Corp. Voting Staff]";
mes "Thank you for your vote!";
mes "It's customers like you who";
@@ -882,8 +879,8 @@ lighthalzen,163,60,4 script Kafra Voting Staff#lght 4_F_KAFRA9,{
mes "Corp, alright? Have a nice day~";
break;
case 2:
- set lhz_vote,$DTS_VoteCount+1;
- set $DTS_JondaVotes,$DTS_JondaVotes+1;
+ lhz_vote = $DTS_VoteCount+1;
+ ++$DTS_JondaVotes;
mes "[Cool Event Corp. Voting Staff]";
mes "Thank you for your vote!";
mes "It's customers like you who";
@@ -1202,7 +1199,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "Current Setitem value is "+lhz_vote+".";
close;
case 2:
- set lhz_vote,0;
+ lhz_vote = 0;
close;
case 3:
mes "[Christy's Maid]";
@@ -1219,7 +1216,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_Time,.@input;
+ $DTS_Time = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1233,7 +1230,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_JondaVotes,.@input;
+ $DTS_JondaVotes = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1247,7 +1244,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_KafraVotes,.@input;
+ $DTS_KafraVotes = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1261,7 +1258,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_Result,.@input;
+ $DTS_Result = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1275,7 +1272,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_PeriodCheck,.@input;
+ $DTS_PeriodCheck = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1289,7 +1286,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_KafraWins,.@input;
+ $DTS_KafraWins = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1303,7 +1300,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_JondaWins,.@input;
+ $DTS_JondaWins = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
@@ -1317,7 +1314,7 @@ sec_in02,17,160,4 script Vote Globalvar Girl#yuno 4_F_OPERATION,{
mes "The value is incorrect.";
close;
}
- set $DTS_VoteCount,.@input;
+ $DTS_VoteCount = .@input;
mes "[Christy's Maid]";
mes "The value has been modified.";
close;
diff --git a/npc/kafras/functions_kafras.txt b/npc/kafras/functions_kafras.txt
index 28fe32b95..329d0fee4 100644
--- a/npc/kafras/functions_kafras.txt
+++ b/npc/kafras/functions_kafras.txt
@@ -428,7 +428,7 @@ function script F_KafCart {
//===================================================
function script F_KafInfo {
// Uncomment next line to block Kafra Storage Protection
- //set .@block, 1;
+ //.@block = 1;
setarray .@m$, "Check Special Reserve Points.","Storage Password Service","Kafra Employee Locations","Cancel";
if (getarg(0) == 2) deletearray .@m$[1],2; // Port Malaya, Rune Knight: remove Storage Password and Kafra Employee Locations
else if (.@block) deletearray .@m$[1],1; // Remove Storage Password
diff --git a/npc/kafras/kafras.txt b/npc/kafras/kafras.txt
index e52d195ce..235a0da0f 100644
--- a/npc/kafras/kafras.txt
+++ b/npc/kafras/kafras.txt
@@ -67,7 +67,7 @@ aldeba_in,96,181,4 script Kafra Service 4_F_KAFRA5,{
mes "I'll access your Storage for you.";
next;
Zeny -= 20;
- set RESRVPTS, RESRVPTS + (20/5);
+ RESRVPTS += (20/5);
mes "[Kafra Leilah]";
mes "In the future, please";
mes "ask the Kafra Employee on";
diff --git a/npc/merchants/advanced_refiner.txt b/npc/merchants/advanced_refiner.txt
index 853e82f5e..6d19d68e4 100644
--- a/npc/merchants/advanced_refiner.txt
+++ b/npc/merchants/advanced_refiner.txt
@@ -35,20 +35,20 @@ payon,157,146,6 script Suhnbi#cash 4_M_03,{
next;
setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i) {
if (getequipisequiped(.@i)) {
- set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- set .@equipped,1;
+ .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ .@equipped = 1;
}
- set .@menu$, .@menu$ + ":";
+ .@menu$ += ":";
}
if (.@equipped == 0) {
mes "[Suhnbi]";
mes "I don't think I can refine any items you have...";
close;
}
- set .@part, select(.@menu$);
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) //custom check
close;
diff --git a/npc/merchants/alchemist.txt b/npc/merchants/alchemist.txt
index dfb9a68b4..91dc048c9 100644
--- a/npc/merchants/alchemist.txt
+++ b/npc/merchants/alchemist.txt
@@ -60,8 +60,8 @@ alde_alche,24,188,3 script Guild Dealer 2_M_ALCHE,{
break;
}
}
- set .@sell,.@input * 8;
- set .@item_weight,.@input * 10;
+ .@sell = .@input * 8;
+ .@item_weight = .@input * 10;
if (Zeny < .@sell) {
mes "[Gever Al Sharp]";
mes "You don't";
diff --git a/npc/merchants/cashheadgear_dye.txt b/npc/merchants/cashheadgear_dye.txt
index f2d739aba..f9a6cd089 100644
--- a/npc/merchants/cashheadgear_dye.txt
+++ b/npc/merchants/cashheadgear_dye.txt
@@ -15,7 +15,7 @@
prt_in,253,168,4 script Alora 4_F_LGTGIRL,{
// Mysterious Dyestuff
- set .@dyeID, 6220;
+ .@dyeID = 6220;
// Headgear Choices
setarray .@hgn$[1], "Mage Hat","Beanie","Drooping Cat","Deviruchi Hat","Wig","Ribbon","Magestic Goat";
// Mage Hats - Normal, Yellow, Blue, Brown, Gray, Red
@@ -39,12 +39,12 @@ prt_in,253,168,4 script Alora 4_F_LGTGIRL,{
mes "[Alora]";
mes "Do you have a headgear that you would like to dye?";
next;
- for(set .@i,1; .@i < getarraysize(.@hgn$); set .@i,.@i+1) {
- if(.@i == 1) set .@menu$, .@hgn$[.@i];
- else set .@menu$, .@menu$ +":"+ .@hgn$[.@i];
+ for(.@i = 1; .@i < getarraysize(.@hgn$); ++.@i) {
+ if(.@i == 1) .@menu$ = .@hgn$[.@i];
+ else .@menu$ += ":"+ .@hgn$[.@i];
}
- set .@menu$, .@menu$ +":Cancel";
- set .@t, select(.@menu$);
+ .@menu$ += ":Cancel";
+ .@t = select(.@menu$);
if(.@t == getarraysize(.@hgn$)) {
mes "[Alora]";
mes "Have a good journey adventurer!";
@@ -54,24 +54,24 @@ prt_in,253,168,4 script Alora 4_F_LGTGIRL,{
mes "[Alora]";
mes "Okay, what color do you want to change it to?";
next;
- for(set .@i,1; .@i < getarraysize(getd(".@hg_"+.@t+"")); set .@i,.@i+1) {
+ for(.@i = 1; .@i < getarraysize(getd(".@hg_"+.@t+"")); ++.@i) {
if(.@i == 1 && .@t != 5)
- set .@menu$, "Normal";
+ .@menu$ = "Normal";
else if(.@i == 1 && .@t == 5)
- set .@menu$, getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
+ .@menu$ = getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
else {
sscanf(getitemname(getd(".@hg_"+.@t+"["+.@i+"]")),"%s "+ .@hgn$[.@t],.@colour$);
- set .@menu$, .@menu$ +":"+ .@colour$;
+ .@menu$ += ":"+ .@colour$;
}
}
- set .@menu$, .@menu$ +":Cancel";
- set .@c, select(.@menu$);
+ .@menu$ += ":Cancel";
+ .@c = select(.@menu$);
if(.@c == getarraysize(getd(".@hg_"+.@t+""))) {
mes "[Alora]";
mes "Oh, okay no problem!";
close;
}
- set .@dyHG, getd(".@hg_"+.@t+"["+.@c+"]");
+ .@dyHG = getd(".@hg_"+.@t+"["+.@c+"]");
mes "[Alora]";
mes "Oh I'm so excited aren't you?";
mes "And just to be sure, what color is the "+ .@hgn$[.@t] +" you want me to use?";
@@ -85,18 +85,18 @@ prt_in,253,168,4 script Alora 4_F_LGTGIRL,{
mes "["+ strcharinfo(0) +"]";
mes "Ok, thanks for the warning, I think I'll give you my";
next;
- set .@menu$, "Nevermind";
- for(set .@i,1; .@i < getarraysize(getd(".@hg_"+.@t+"")); set .@i,.@i+1) {
- if(.@i == 1) set .@menu$, .@menu$ +":Normal "+ getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
- else set .@menu$, .@menu$ +":"+ getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
+ .@menu$ = "Nevermind";
+ for(.@i = 1; .@i < getarraysize(getd(".@hg_"+.@t+"")); ++.@i) {
+ if(.@i == 1) .@menu$ += ":Normal "+ getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
+ else .@menu$ += ":"+ getitemname(getd(".@hg_"+.@t+"["+.@i+"]"));
}
- set .@mine, select(.@menu$) - 1;
+ .@mine = select(.@menu$) - 1;
if(!.@mine) {
mes "[Alora]";
mes "It's best to be very sure, have a safe journey.";
close;
}
- set .@myHG, getd(".@hg_"+.@t+"["+.@mine+"]");
+ .@myHG = getd(".@hg_"+.@t+"["+.@mine+"]");
if(.@dyHG == .@myHG) {
mes "[Alora]";
mes "Woah what happened?";
diff --git a/npc/merchants/clothes_dyer.txt b/npc/merchants/clothes_dyer.txt
index 94fab1d5c..b7e90febf 100644
--- a/npc/merchants/clothes_dyer.txt
+++ b/npc/merchants/clothes_dyer.txt
@@ -22,9 +22,9 @@
prt_in,284,168,2 script Dyer Ginedin Rephere 1_M_JOBTESTER,{
function Dyes;
- set .@EnableDyes,1; // Disable (set to 0) if palettes cause errors [see note v2.4]
+ .@EnableDyes = 1; // Disable (set to 0) if palettes cause errors [see note v2.4]
- set .n$,"[Dyer Ginedin Rephere]";
+ .n$ = "[Dyer Ginedin Rephere]";
mes .n$;
mes "11... 12... Mmm... good. I think I'll be able to finish before tonight's party. Oh! I didn't notice you were here!";
while(1) {
@@ -135,11 +135,11 @@ L_End:
function Dyes {
setarray .@DyeName$[0],"the default color","Orange","Violet","Red","Black","Green","Blue","White","Yellow";
setarray .@DyeItems[0],0,980,981,975,983,979,978,982,976;
- set .@menu$,"- Default:";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+2)
- set .@menu$, .@menu$+"- "+.@DyeName$[getarg(.@i)]+":";
- set .@menu$, .@menu$+"- ^777777Cancel^000000";
- set .@s, select(.@menu$)-1;
+ .@menu$ = "- Default:";
+ for(.@i = 0; .@i<getargcount(); .@i += 2)
+ .@menu$ += "- "+.@DyeName$[getarg(.@i)]+":";
+ .@menu$ += "- ^777777Cancel^000000";
+ .@s = select(.@menu$)-1;
if (.@s == (getargcount()/2)+1) goto L_End;
mes .n$;
if (.@s == 0) {
diff --git a/npc/merchants/coin_exchange.txt b/npc/merchants/coin_exchange.txt
index 160a7e5bc..5a63c5708 100644
--- a/npc/merchants/coin_exchange.txt
+++ b/npc/merchants/coin_exchange.txt
@@ -16,7 +16,7 @@
// Manuk & Splendide
//============================================================
- script ::merchant_13_2 -1,{
- set .@n$, "["+strnpcinfo(1)+"]";
+ .@n$ = "["+strnpcinfo(1)+"]";
mes .@n$;
if (isequipped(2782) && ep13_2_rhea == 100) {
if (!checkweight(1201,1)) {
@@ -29,15 +29,15 @@
next;
if (strnpcinfo(1) == "Merchant of Manuk") {
setarray .@items[2],12342,12343,12348;
- set .@Book,11019; //Manuk_Selling_Item
- set .@coin,6080; //Manuk_Coin
- set .@i, select("View item description:Manuk's Opportunity:Manuk's Courage:Manuk's Faith:Cancel");
+ .@Book = 11019; //Manuk_Selling_Item
+ .@coin = 6080; //Manuk_Coin
+ .@i = select("View item description:Manuk's Opportunity:Manuk's Courage:Manuk's Faith:Cancel");
}
else {
setarray .@items[2],12344,12345,12349;
- set .@Book,11018; //Splendide_Selling_Item
- set .@coin,6081; //Splendide_Coin
- set .@i, select("View item description:Buy Pinguicula's Fruit Jam:Buy Luciola's Honey Jam:Buy Cornus' Tears:Do nothing");
+ .@Book = 11018; //Splendide_Selling_Item
+ .@coin = 6081; //Splendide_Coin
+ .@i = select("View item description:Buy Pinguicula's Fruit Jam:Buy Luciola's Honey Jam:Buy Cornus' Tears:Do nothing");
}
mes .@n$;
if (.@i == 1) {
diff --git a/npc/merchants/dye_maker.txt b/npc/merchants/dye_maker.txt
index b8ca80d06..bca4ef276 100644
--- a/npc/merchants/dye_maker.txt
+++ b/npc/merchants/dye_maker.txt
@@ -105,57 +105,57 @@ S_MakeDye:
mes "Mmm... I need 30 Red Herbs, 1 Counteragent, and 1 Empty Bottle to make Red Dyestuffs. The fee is only 3000 zeny to make it.";
setarray .@item[0], 507, 973, 713;
setarray .@count[0], 30, 1, 1;
- set .@cost,3000;
- set .@dyestuff,975;
+ .@cost = 3000;
+ .@dyestuff = 975;
break;
case 2:
mes "Mmm... I need 30 Yellow Herbs, 1 Couneragent, and 1 Empty Bottle to make Lemon Dyestuffs. The fee is only 3000 zeny to make it.";
setarray .@item[0], 508, 973, 713;
setarray .@count[0], 30, 1, 1;
- set .@cost,3000;
- set .@dyestuff,976;
+ .@cost = 3000;
+ .@dyestuff = 976;
break;
case 3:
mes "Mmm... I need 20 Blue Herbs, 1 Counteragent, and 1 Empty Bottle to make Cobaltblue Dyestuff. It's hard to use the Blue Herb, so the fee is going to be 3500 zeny.";
setarray .@item[0], 510, 973, 713;
setarray .@count[0], 20, 1, 1;
- set .@cost,3500;
- set .@dyestuff,978;
+ .@cost = 3500;
+ .@dyestuff = 978;
break;
case 4:
mes "Mmm... I need 5 Blue Herbs, 20 Green Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Darkgreen Dyestuffs. Don't get all of the materials confused. The fee is only 5000 zeny.";
setarray .@item[0], 510, 511, 508, 974, 973, 713;
setarray .@count[0], 5, 20, 20, 1, 1, 1;
- set .@cost,5000;
- set .@dyestuff,979;
+ .@cost = 5000;
+ .@dyestuff = 979;
break;
case 5:
mes "Mmm... I need 20 Red Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Orange Dyestuff. The fee is going to be 5000 zeny.";
setarray .@item[0], 507, 508, 974, 973, 713;
setarray .@count[0], 20, 20, 1, 1, 1;
- set .@cost,5000;
- set .@dyestuff,980;
+ .@cost = 5000;
+ .@dyestuff = 980;
break;
case 6:
mes "Mmm... I need 10 Blue Herbs, 30 Red Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Violet Dyestuffs. The fee will be 5000 zeny.";
setarray .@item[0], 510, 507, 974, 973, 713;
setarray .@count[0], 10, 30, 1, 1, 1;
- set .@cost,5000;
- set .@dyestuff,981;
+ .@cost = 5000;
+ .@dyestuff = 981;
break;
case 7:
mes "Mmm... I need 30 White Herbs, 1 Counteragent, and 1 Empty bottle to make White Dyestuffs. The fee will be 3000 zeny.";
setarray .@item[0], 509, 973, 713;
setarray .@count[0], 30, 1, 1;
- set .@cost,3000;
- set .@dyestuff,982;
+ .@cost = 3000;
+ .@dyestuff = 982;
break;
case 8:
mes "Mmm... I need 30 of each Red, Yellow, and Green Herb, 5 Blue Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle. The process takes longer and more effort than the others, so it is going to be 7000 zeny.";
setarray .@item[0], 507, 508, 511, 510, 974, 973, 713;
setarray .@count[0], 30, 30, 30, 5, 1, 1, 1;
- set .@cost,7000;
- set .@dyestuff,983;
+ .@cost = 7000;
+ .@dyestuff = 983;
break;
}
next;
@@ -168,9 +168,9 @@ S_MakeDye:
}
next;
if (select("Make Dyestuffs:Cancel") == 1) {
- set .@size, getarraysize(.@item);
+ .@size = getarraysize(.@item);
// check requirements
- for( set .@i,0 ; .@i < .@size ; set .@i,.@i+1 )
+ for (.@i = 0; .@i < .@size; ++.@i)
if( countitem(.@item[.@i]) < .@count[.@i] )
break;
if( .@i < .@size || Zeny < .@cost ) {
@@ -180,7 +180,7 @@ S_MakeDye:
close;
}
// delete items
- for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
+ for (.@i = 0; .@i < .@size; ++.@i)
delitem .@item[.@i], .@count[.@i];
Zeny -= .@cost;
// get dyestuff
diff --git a/npc/merchants/elemental_trader.txt b/npc/merchants/elemental_trader.txt
index a1f255743..bf01c29d3 100644
--- a/npc/merchants/elemental_trader.txt
+++ b/npc/merchants/elemental_trader.txt
@@ -80,7 +80,7 @@ ama_in02,61,27,7 script Alchemist#ama 4_M_ALCHE_B,{
mes "Uh-huh, what did you bring?";
next;
setarray .@items[1],995,997,994,996;
- set .@i, .@items[select("Mystic Frozen:Great Nature:Flame Heart:Rough Wind")];
+ .@i = .@items[select("Mystic Frozen:Great Nature:Flame Heart:Rough Wind")];
mes "[Laspuchin Gregory]";
if (countitem(.@i) > 7) {
mes "I will take 8 of them and";
@@ -91,13 +91,13 @@ ama_in02,61,27,7 script Alchemist#ama 4_M_ALCHE_B,{
mes "[Laspuchin Gregory]";
mes "HeeHee, what do you want? Choose one!";
next;
- set .@menu$, "";
- for(set .@j,1; .@j<5; set .@j,.@j+1) {
- if (.@items[.@j] != .@i) set .@menu$, .@menu$+getitemname(.@items[.@j]);
- set .@menu$, .@menu$+":";
+ .@menu$ = "";
+ for(.@j = 1; .@j < 5; ++.@j) {
+ if (.@items[.@j] != .@i) .@menu$ += getitemname(.@items[.@j]);
+ .@menu$ += ":";
}
- set .@menu$, .@menu$+"Cancel the trade";
- set .@j, select(.@menu$);
+ .@menu$ += "Cancel the trade";
+ .@j = select(.@menu$);
mes "[Laspuchin Gregory]";
if (.@j == 5) {
mes "Oh, well.";
diff --git a/npc/merchants/enchan_arm.txt b/npc/merchants/enchan_arm.txt
index ee3032440..10aecf6ae 100644
--- a/npc/merchants/enchan_arm.txt
+++ b/npc/merchants/enchan_arm.txt
@@ -36,25 +36,25 @@ prontera,165,60,2 script Apprentice Craftsman 1_F_MERCHANT_01,{
switch(select("Non Slotted Armor.:Slotted Armor.:High Grade Armor.:Maybe next time.")) {
case 1:
setarray .@items[0],2307,2309,2314,2316,2321,2325,2327,2328,2330,2332,2334,2335,2341,2344,2346,2348,2350,2337,2386,2394,2395,2396;
- set .@j,50;
+ .@j = 50;
break;
case 2:
setarray .@items[0],2311,2318,2319,2320,2308,2310,2315,2317,2322,2324,2326,2331,2333,2336,2342,2345,2347,2349,2351;
- set .@j,55;
- set .@k,1;
+ .@j = 55;
+ .@k = 1;
break;
case 3:
setarray .@items[0],2364,2365,2391,2374,2375,2376,2377,2378,2379,2380,2381,2382,2387,2388,2389,2390;
- set .@j,60;
+ .@j = 60;
break;
case 4:
mes "[Apprentice Craftsman]";
mes "Please come back when you have any interest in enchanting your armor.";
close;
}
- set .@menu$,"";
- for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+1)
- set .@menu$, .@menu$+getitemname(.@items[.@i])+((.@k)?" [1]":"")+":";
+ .@menu$ = "";
+ for(.@i = 0; .@i<getarraysize(.@items); ++.@i)
+ .@menu$ += getitemname(.@items[.@i])+((.@k)?" [1]":"")+":";
callsub S_EnchantArmor, .@items[select(.@menu$)-1], .@j;
end;
}
@@ -65,8 +65,8 @@ prontera,165,60,2 script Apprentice Craftsman 1_F_MERCHANT_01,{
close;
S_EnchantArmor:
- set .@itemid,getarg(0);
- set .@failrate,getarg(1);
+ .@itemid = getarg(0);
+ .@failrate = getarg(1);
mes "[Apprentice Craftsman]";
if (countitem(.@itemid) == 1) {
mes "Socket enchant will cost you 400,000 zeny. And there will be a random option enchanted. Of course, there is a chance of breaking your armor.";
@@ -96,42 +96,42 @@ S_EnchantArmor:
Zeny -= 400000;
delitem .@itemid,1;
switch (rand(1,.@failrate)) {
- case 1: set .@addpart,4702;break;
- case 2: set .@addpart,4712;break;
- case 3: set .@addpart,4722;break;
- case 4: set .@addpart,4732;break;
- case 5: set .@addpart,4742;break;
- case 6: set .@addpart,4752;break;
+ case 1: .@addpart = 4702;break;
+ case 2: .@addpart = 4712;break;
+ case 3: .@addpart = 4722;break;
+ case 4: .@addpart = 4732;break;
+ case 5: .@addpart = 4742;break;
+ case 6: .@addpart = 4752;break;
case 7:
- case 8: set .@addpart,4701;break;
+ case 8: .@addpart = 4701;break;
case 9:
- case 10: set .@addpart,4711;break;
+ case 10: .@addpart = 4711;break;
case 11:
- case 12: set .@addpart,4721;break;
+ case 12: .@addpart = 4721;break;
case 13:
- case 14: set .@addpart,4731;break;
+ case 14: .@addpart = 4731;break;
case 15:
- case 16: set .@addpart,4741;break;
+ case 16: .@addpart = 4741;break;
case 17:
- case 18: set .@addpart,4751;break;
+ case 18: .@addpart = 4751;break;
case 19:
case 20:
- case 21: set .@addpart,4700;break;
+ case 21: .@addpart = 4700;break;
case 22:
case 23:
- case 24: set .@addpart,4710;break;
+ case 24: .@addpart = 4710;break;
case 25:
case 26:
- case 27: set .@addpart,4720;break;
+ case 27: .@addpart = 4720;break;
case 28:
case 29:
- case 30: set .@addpart,4730;break;
+ case 30: .@addpart = 4730;break;
case 31:
case 32:
- case 33: set .@addpart,4740;break;
+ case 33: .@addpart = 4740;break;
case 34:
case 35:
- case 36: set .@addpart,4750;break;
+ case 36: .@addpart = 4750;break;
default:
specialeffect2 EF_PHARMACY_FAIL;
mes "[Apprentice Craftsman]";
diff --git a/npc/merchants/gemstone.txt b/npc/merchants/gemstone.txt
index 126dbeba4..1737c217f 100644
--- a/npc/merchants/gemstone.txt
+++ b/npc/merchants/gemstone.txt
@@ -47,7 +47,7 @@ S_TradeGems:
close;
}
else {
- set .@gems,countitem(getarg(0))/2;
+ .@gems = countitem(getarg(0))/2;
mes "[Jade]";
mes "I believe I can create";
mes "a total of " + .@gems + " " + getitemname(getarg(1)) + "s";
diff --git a/npc/merchants/hair_dyer.txt b/npc/merchants/hair_dyer.txt
index fa4295831..91708d991 100644
--- a/npc/merchants/hair_dyer.txt
+++ b/npc/merchants/hair_dyer.txt
@@ -58,14 +58,14 @@ prt_in,243,168,4 script Jovovich 4_F_02,{
while(1) {
switch(select("Red, please.:Yellow, please.:Violet, please.:Orange, please.:Green, please.:Blue, please.:White, please.:Black, please.:Actually, I like my hair as it is.")) {
- case 1: set .@headpalette,8; break;
- case 2: set .@headpalette,1; break;
- case 3: set .@headpalette,2; break;
- case 4: set .@headpalette,3; break;
- case 5: set .@headpalette,4; break;
- case 6: set .@headpalette,5; break;
- case 7: set .@headpalette,6; break;
- case 8: set .@headpalette,7; break;
+ case 1: .@headpalette = 8; break;
+ case 2: .@headpalette = 1; break;
+ case 3: .@headpalette = 2; break;
+ case 4: .@headpalette = 3; break;
+ case 5: .@headpalette = 4; break;
+ case 6: .@headpalette = 5; break;
+ case 7: .@headpalette = 6; break;
+ case 8: .@headpalette = 7; break;
case 9:
if (.@choose_success != 0) {
mes "[Hairdresser Jovovich]";
@@ -111,7 +111,7 @@ prt_in,243,168,4 script Jovovich 4_F_02,{
}
Zeny -= 1000;
setlook VAR_HEADPALETTE,.@headpalette;
- set .@choose_success,1;
+ .@choose_success = 1;
break;
}
@@ -203,35 +203,35 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "for using my service and";
mes "I hope you come by again!";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
}
while (.@choose_success != 2) {
switch(select("Red, please.:Yellow, please.:Purple, please.:Orange, please.:Green, please.:Blue, please.:White, please.:Dark Brown, please.:I like my hair color.")) {
case 1:
- set .@headpalette,8;
+ .@headpalette = 8;
break;
case 2:
- set .@headpalette,1;
+ .@headpalette = 1;
break;
case 3:
- set .@headpalette,2;
+ .@headpalette = 2;
break;
case 4:
- set .@headpalette,3;
+ .@headpalette = 3;
break;
case 5:
- set .@headpalette,4;
+ .@headpalette = 4;
break;
case 6:
- set .@headpalette,5;
+ .@headpalette = 5;
break;
case 7:
- set .@headpalette,6;
+ .@headpalette = 6;
break;
case 8:
- set .@headpalette,7;
+ .@headpalette = 7;
break;
case 9:
if (.@choose_success != 0) {
@@ -242,7 +242,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "your beauty and to tell";
mes "the truth, I agree with you~";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
}
else {
mes "[Rossa]";
@@ -251,7 +251,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "You'd look so good if you dyed";
mes "your hair a different color~";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
}
break;
}
@@ -272,7 +272,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "Scarlet Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 1) && (countitem(976) == 0)) {
@@ -282,7 +282,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "Lemon Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 2) && (countitem(981) == 0)) {
@@ -292,7 +292,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "Violet Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 3) && (countitem(980) == 0)) {
@@ -302,7 +302,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "Orange Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 4) && (countitem(979) == 0)) {
@@ -314,7 +314,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "with you. Would you come";
mes "back after you get some?";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 5) && (countitem(978) == 0)) {
@@ -326,7 +326,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "with you. Would you come";
mes "back after you get some?";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 6) && (countitem(982) == 0)) {
@@ -336,7 +336,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "White Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
else if ((.@headpalette == 7) && (countitem(983) == 0)) {
@@ -346,7 +346,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "hair if you didn't bring";
mes "Black Dyestuffs with you...";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
if (Zeny < 1000) {
@@ -356,7 +356,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
mes "1,000 zeny. Did you forget";
mes "to bring your money with you?";
close2;
- set .@choose_success,2;
+ .@choose_success = 2;
break;
}
if (.@headpalette == 8) delitem 975,1; //Scarlet_Dyestuffs
@@ -369,7 +369,7 @@ lhz_in02,100,134,3 script Hair Dyer#lich 4_F_EINWOMAN,{
else if (.@headpalette == 7) delitem 983,1; //Black_Dyestuffs
Zeny -= 1000;
setlook VAR_HEADPALETTE,.@headpalette;
- set .@choose_success,1;
+ .@choose_success = 1;
break;
}
}
diff --git a/npc/merchants/hair_style.txt b/npc/merchants/hair_style.txt
index d1ce1e234..2eb2d4eb4 100644
--- a/npc/merchants/hair_style.txt
+++ b/npc/merchants/hair_style.txt
@@ -425,28 +425,28 @@ alberta_in,55,142,7 script Hair Dresser 4_F_02,{
next;
switch(select("Red.:Yellow.:Purple.:Orange.:Green.:Blue.:White.:Dark Brown.:Cancel.")) {
case 1:
- set .@pallete,8;
+ .@pallete = 8;
break;
case 2:
- set .@pallete,1;
+ .@pallete = 1;
break;
case 3:
- set .@pallete,2;
+ .@pallete = 2;
break;
case 4:
- set .@pallete,3;
+ .@pallete = 3;
break;
case 5:
- set .@pallete,4;
+ .@pallete = 4;
break;
case 6:
- set .@pallete,5;
+ .@pallete = 5;
break;
case 7:
- set .@pallete,6;
+ .@pallete = 6;
break;
case 8:
- set .@pallete,7;
+ .@pallete = 7;
break;
case 9:
mes "[Veronica]";
@@ -1006,28 +1006,28 @@ lhz_in02,100,143,3 script Hair Dresser#li 2_M_DYEINGER,{
next;
switch(select("Red:Yellow:Purple:Orange:Green:Blue:White:Dark Brown")) {
case 1:
- set .@headpalette,8;
+ .@headpalette = 8;
break;
case 2:
- set .@headpalette,1;
+ .@headpalette = 1;
break;
case 3:
- set .@headpalette,2;
+ .@headpalette = 2;
break;
case 4:
- set .@headpalette,3;
+ .@headpalette = 3;
break;
case 5:
- set .@headpalette,4;
+ .@headpalette = 4;
break;
case 6:
- set .@headpalette,5;
+ .@headpalette = 5;
break;
case 7:
- set .@headpalette,6;
+ .@headpalette = 6;
break;
case 8:
- set .@headpalette,7;
+ .@headpalette = 7;
break;
}
}
@@ -1244,8 +1244,8 @@ lhz_in02,91,155,5 script Assistant Beautician#li 4_F_LGTGIRL,{
mes "Wait, I can...";
mes "I can fix this!";
next;
- set .@style_r,rand(1,23);
- set .@color_r,rand(1,8);
+ .@style_r = rand(1,23);
+ .@color_r = rand(1,8);
mes "[Assistant Beautician]";
mes "^333333*Pant Pant Pant*^000000";
next;
diff --git a/npc/merchants/hd_refine.txt b/npc/merchants/hd_refine.txt
index 0091b36ef..31e3f5cdf 100644
--- a/npc/merchants/hd_refine.txt
+++ b/npc/merchants/hd_refine.txt
@@ -31,10 +31,10 @@
mes "So lets kick this into overdrive, what d' ya say? What item do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Blacksmith Mighty Hammer]";
switch(.@part) {
@@ -85,15 +85,15 @@
switch(getequipweaponlv(.@part)) {
default:
case 0:
- set .@price,20000;
- set .@material,6241; //HD_Elunium
+ .@price = 20000;
+ .@material = 6241; //HD_Elunium
break;
case 1:
case 2:
case 3:
case 4:
- set .@price,20000;
- set .@material,6240; //HD_Oridecon
+ .@price = 20000;
+ .@material = 6240; //HD_Oridecon
break;
}
mes "[Blacksmith Mighty Hammer]";
@@ -170,10 +170,10 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF
mes "Which equipment do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Basta]";
switch(.@part) {
@@ -229,17 +229,17 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF
switch(getequipweaponlv(.@part)) {
default:
case 0:
- set .@price,100000;
- set .@material,6225; //HD_Carnium
- set .@type$,"armor";
+ .@price = 100000;
+ .@material = 6225; //HD_Carnium
+ .@type$ = "armor";
break;
case 1:
case 2:
case 3:
case 4:
- set .@price,100000;
- set .@material,6226; //HD_Bradium
- set .@type$,"weapon";
+ .@price = 100000;
+ .@material = 6226; //HD_Bradium
+ .@type$ = "weapon";
break;
}
mes "[Basta]";
diff --git a/npc/merchants/milk_trader.txt b/npc/merchants/milk_trader.txt
index 3f2c46a20..d9c7efe47 100644
--- a/npc/merchants/milk_trader.txt
+++ b/npc/merchants/milk_trader.txt
@@ -46,9 +46,9 @@ prontera,73,140,0 script Milk Vendor 4_M_04,{
mes "way, you know...";
close;
}
- set .@bottles,countitem(713);
- set .@total_weight,.@bottles * 50;
- set .@total_cost,.@bottles * 15;
+ .@bottles = countitem(713);
+ .@total_weight = .@bottles * 50;
+ .@total_cost = .@bottles * 15;
if (Zeny < .@total_cost) {
mes "[Milk Vendor]";
mes "Oh, whoa~!";
diff --git a/npc/merchants/novice_exchange.txt b/npc/merchants/novice_exchange.txt
index 5474190e6..4f9c05218 100644
--- a/npc/merchants/novice_exchange.txt
+++ b/npc/merchants/novice_exchange.txt
@@ -355,7 +355,7 @@ function script F_PotExchange {
break;
}
}
- set .@put_out_item,.@input * getarg(1);
+ .@put_out_item = .@input * getarg(1);
if (countitem(getarg(0)) < .@put_out_item) {
mes "[Merchant]";
mes "Uh oh, the number you entered doesn't seem right. You better check the number of Red Potions that you can trade for again.";
diff --git a/npc/merchants/old_pharmacist.txt b/npc/merchants/old_pharmacist.txt
index d74b3287d..1889ea3b9 100644
--- a/npc/merchants/old_pharmacist.txt
+++ b/npc/merchants/old_pharmacist.txt
@@ -56,13 +56,13 @@ alberta_in,16,28,4 script Pharmacist 1_M_PUBMASTER,{
next;
mes "[Old Pharmacist]";
if (countitem(507) < countitem(713)) {
- set .@max,countitem(507);
+ .@max = countitem(507);
}
else if (countitem(508) < countitem(713)) {
- set .@max,countitem(508);
+ .@max = countitem(508);
}
else {
- set .@max,countitem(713);
+ .@max = countitem(713);
}
if ((countitem(507) < 1) || (countitem(508) < 1) || (countitem(713) == 0)) {
mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
@@ -186,9 +186,9 @@ L_Making:
next;
mes "[Old Pharmacist]";
if ((countitem(getarg(0))/2) < countitem(713)) {
- set .@max,countitem(getarg(0))/2;
+ .@max = countitem(getarg(0))/2;
} else {
- set .@max,countitem(713);
+ .@max = countitem(713);
}
if ((countitem(getarg(0)) < 2) || (countitem(713) == 0)) {
mes "You rascal! What did you expect?! Coming here with nothing. Tsk!";
diff --git a/npc/merchants/quivers.txt b/npc/merchants/quivers.txt
index 37c183600..a2e293e83 100644
--- a/npc/merchants/quivers.txt
+++ b/npc/merchants/quivers.txt
@@ -76,10 +76,10 @@ S_BuyQuiver:
next;
switch(select("Store as many Arrows in quivers as possible:Purchase 1 quiver:Cancel")) {
case 1:
- set .@arrows,countitem(getarg(0));
- set .@quiver,.@arrows / getarg(1);
- set .@arrows_used,.@quiver * getarg(1);
- set .@arrow_zeny01,.@quiver * getarg(2);
+ .@arrows = countitem(getarg(0));
+ .@quiver = .@arrows / getarg(1);
+ .@arrows_used = .@quiver * getarg(1);
+ .@arrow_zeny01 = .@quiver * getarg(2);
mes "Number of";
mes "Arrows: ^3131FF"+.@arrows+" ^000000";
mes "Maximum Number";
diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt
index 823fbea66..2b2d95180 100644
--- a/npc/merchants/refine.txt
+++ b/npc/merchants/refine.txt
@@ -144,7 +144,7 @@ geffen_in,110,172,0 script Christopher#1 1_M_SMITH,{
break;
}
}
- set .@sell,.@input * 150;
+ .@sell = .@input * 150;
if (Zeny < .@sell) {
mes "[Christopher Guillenrow]";
mes "I don't think I can let ye have this with the zeny ye have. I can't lose me money because of ye.";
@@ -225,7 +225,7 @@ geffen_in,110,172,0 script Christopher#1 1_M_SMITH,{
break;
}
}
- set .@sell,.@input * 200;
+ .@sell = .@input * 200;
if (Zeny < .@sell) {
mes "[Christopher Guillenrow]";
mes "Ye don't have enough money. Ye know I can't sell this at a lower price... You know how the wifey nags about Zeny.";
@@ -263,7 +263,7 @@ geffen_in,110,172,0 script Christopher#1 1_M_SMITH,{
break;
}
}
- set .@sell,.@input * 1000;
+ .@sell = .@input * 1000;
if (Zeny < .@sell) {
mes "[Christopher Guillenrow]";
mes "I don't think I can let ye have this with the zeny ye have. I can't lose me money because of ye.";
@@ -403,27 +403,27 @@ ein_in01,38,29,0 script Paul Spanner 1_M_SMITH,{
next;
switch(select("Mini Furnace - 150z.:Iron Hammer - 1,000z.:Golden Hammer - 3,000z.:Oridecon Hammer - 5,000z.:Cancel.")) {
case 1:
- set .@item,612;
- set .@item_cost,150;
- set .@item_weight,200;
+ .@item = 612;
+ .@item_cost = 150;
+ .@item_weight = 200;
mes "[Paul Spanner]";
mes "You definately need this furnce to process ores!";
next;
break;
case 2:
- set .@item,613;
- set .@item_cost,1000;
- set .@item_weight,200;
+ .@item = 613;
+ .@item_cost = 1000;
+ .@item_weight = 200;
break;
case 3:
- set .@item,614;
- set .@item_cost,3000;
- set .@item_weight,300;
+ .@item = 614;
+ .@item_cost = 3000;
+ .@item_weight = 300;
break;
case 4:
- set .@item,615;
- set .@item_cost,5000;
- set .@item_weight,400;
+ .@item = 615;
+ .@item_cost = 5000;
+ .@item_weight = 400;
break;
case 5:
mes "[Paul Spanner]";
@@ -449,7 +449,7 @@ ein_in01,38,29,0 script Paul Spanner 1_M_SMITH,{
break;
}
}
- set .@sell,.@input * .@item_cost;
+ .@sell = .@input * .@item_cost;
if (Zeny < .@sell) {
mes "[Paul Spanner]";
mes "You don't have enough money. Sorry, I cannot sell them at a loss.";
@@ -472,12 +472,12 @@ ein_in01,38,29,0 script Paul Spanner 1_M_SMITH,{
next;
switch(select("Phracon - 200z.:Emveretarcon - 1,000z.:Quit.")) {
case 1:
- set .@item,1010;
- set .@item_price,200;
+ .@item = 1010;
+ .@item_price = 200;
break;
case 2:
- set .@item,1011;
- set .@item_price,1000;
+ .@item = 1011;
+ .@item_price = 1000;
break;
case 3:
mes "[Paul Spanner]";
@@ -503,7 +503,7 @@ ein_in01,38,29,0 script Paul Spanner 1_M_SMITH,{
break;
}
}
- set .@sell,.@input * .@item_price;
+ .@sell = .@input * .@item_price;
if (Zeny < .@sell) {
mes "[Paul Spanner]";
mes "You don't have enough money. Sorry, I cannot sell them at a loss.";
@@ -604,7 +604,7 @@ lhz_in02,282,20,7 script Fulerr 4_M_LGTMAN,{
//============================================================
function script refinemain {
disable_items;
- set .@features,getarg(1);
+ .@features = getarg(1);
mes "[" + getarg(0) + "]";
mes "I'm the Armsmith.";
mes "I can refine all kinds of weapons, armor and equipment, so let me";
@@ -612,20 +612,20 @@ function script refinemain {
next;
setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 1; .@i <= 10; ++.@i) {
if(getequipisequiped(.@i)) {
- set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- set .@equipped,1;
+ .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ .@equipped = 1;
}
- set .@menu$, .@menu$ + ":";
+ .@menu$ += ":";
}
if (.@equipped == 0) {
mes "[" + getarg(0) + "]";
mes "I don't think I can refine any items you have...";
close;
}
- set .@part, select(.@menu$);
+ .@part = select(.@menu$);
if(!getequipisequiped(.@part)) { //custom check
mes "[" + getarg(0) + "]";
@@ -650,38 +650,38 @@ function script refinemain {
mes "refined as it gets!";
close;
}
- set .@refineitemid, getequipid(.@part); // save id of the item
- set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
+ .@refineitemid = getequipid(.@part); // save id of the item
+ .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
switch(getequipweaponlv(.@part)){
case 0: //Refine Armor
- set .@price,2000;
- set .@material,985;
- set .@safe,4;
+ .@price = 2000;
+ .@material = 985;
+ .@safe = 4;
break;
case 1: //Refine Level 1 Weapon
- set .@price,50;
- set .@material,1010;
- set .@safe,7;
+ .@price = 50;
+ .@material = 1010;
+ .@safe = 7;
break;
case 2: //Refine Level 2 Weapon
- set .@price,200;
- set .@material,1011;
- set .@safe,6;
+ .@price = 200;
+ .@material = 1011;
+ .@safe = 6;
break;
case 3: //Refine Level 3 Weapon
- set .@price,5000;
- set .@material,984;
- set .@safe,5;
+ .@price = 5000;
+ .@material = 984;
+ .@safe = 5;
break;
case 4: //Refine Level 4 Weapon
- set .@price,20000;
- set .@material,984;
- set .@safe,4;
+ .@price = 20000;
+ .@material = 984;
+ .@safe = 4;
break;
case 5: //Refine other stuff?
- set .@price,2000;
- set .@material,985;
- set .@safe,4;
+ .@price = 2000;
+ .@material = 985;
+ .@safe = 4;
break;
}
if(.@features != 1) {
@@ -757,7 +757,7 @@ function script refinemain {
failedrefitem .@part;
mes "[" + getarg(0) + "]";
emotion (!rand(5))?e_cash:e_omg;
- set .@lose,rand(1,3);
+ .@lose = rand(1,3);
if (.@lose == 1) {
mes "OH! MY GOD!";
mes "Damn it! Not again!";
@@ -778,7 +778,7 @@ function script refinemain {
mes "["+getarg(0)+"]";
successrefitem .@part;
emotion e_heh;
- set .@win,rand(1,3);
+ .@win = rand(1,3);
if (.@win == 1) {
mes "Perfect!";
mes "Heh heh!";
@@ -805,12 +805,12 @@ function script refinemain {
mes "[" + getarg(0) + "]";
mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
next;
- set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
+ .@menu2 = select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
} else
- set .@menu2,2;
+ .@menu2 = 2;
switch(.@menu2){
case 1:
- set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
+ .@refinecnt = .@safe - getequiprefinerycnt(.@part);
break;
case 2:
next;
@@ -818,14 +818,14 @@ function script refinemain {
mes "How many times would you like me to refine your item?";
next;
input .@refinecnt;
- set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
+ .@refinecheck = .@refinecnt + getequiprefinerycnt(.@part);
if (.@refinecnt < 1 || .@refinecheck > 10) {
mes "[" + getarg(0) + "]";
mes "I can't refine this item that many times.";
close;
}
if(.@refinecheck > .@safe) {
- set .@refinecheck,.@refinecheck - .@safe;
+ .@refinecheck -= .@safe;
mes "[" + getarg(0) + "]";
mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
next;
@@ -842,7 +842,7 @@ function script refinemain {
mes "You said so... So be it.";
close;
}
- set .@fullprice,.@price * .@refinecnt;
+ .@fullprice = .@price * .@refinecnt;
mes "[" + getarg(0) + "]";
mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
next;
@@ -877,17 +877,17 @@ function script refinemain {
emotion e_omg;
mes "[" + getarg(0) + "]";
mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
- set .@refinecnt,.@refinecnt - 1;
+ --.@refinecnt;
if(.@refinecnt == 0) close;
mes "Here's the unused Zeny and materials back...";
getitem .@material,.@refinecnt;
- set .@fullprice,.@refinecnt * .@price;
+ .@fullprice = .@refinecnt * .@price;
Zeny += .@fullprice;
close;
}
successrefitem .@part;
emotion e_no1;
- set .@refinecnt,.@refinecnt - 1;
+ --.@refinecnt;
next;
}
mes "[" + getarg(0) + "]";
@@ -946,12 +946,12 @@ function script phramain {
next;
switch(select("Phracon - 200 Zeny:Emveretarcon - 1000 Zeny:Ask about other Metals")) {
case 1:
- set .@material,1010;
- set .@price,200;
+ .@material = 1010;
+ .@price = 200;
break;
case 2:
- set .@material,1011;
- set .@price,1000;
+ .@material = 1011;
+ .@price = 1000;
break;
case 3:
mes "[" + getarg(0) + "]";
@@ -984,7 +984,7 @@ function script phramain {
break;
}
}
- set .@sell,.@input * .@price;
+ .@sell = .@input * .@price;
if (Zeny < .@sell) {
mes "[" + getarg(0) + "]";
mes "Err...";
@@ -1183,7 +1183,7 @@ sch_gld,340,80,7 script Repairman#sch_gld 4_M_04,{
// Equipment Repair Function
//============================================================
function script repairmain {
- set .@repairprice,5000;
+ .@repairprice = 5000;
mes "["+getarg(0)+"]";
mes "Hey there!";
mes "Do you want me";
@@ -1193,14 +1193,14 @@ function script repairmain {
next;
switch(select("Actually, I do have some items...:None at the moment.")) {
case 1:
- set .@checkitem,1;
+ .@checkitem = 1;
while (1) {
if (getbrokenid(.@checkitem) == 0) {
break;
}
- set .@checkitem,.@checkitem+1;
+ ++.@checkitem;
}
- set .@checkitem,.@checkitem-1;
+ --.@checkitem;
if (!.@checkitem) {
mes "["+getarg(0)+"]";
mes "Oh wow, this is incredible!";
@@ -1217,7 +1217,7 @@ function script repairmain {
mes "" + .@checkitem + " are damaged.";
mes "Would you like to repair?";
next;
- set .@totalcost,.@repairprice*.@checkitem;
+ .@totalcost = .@repairprice*.@checkitem;
mes "["+getarg(0)+"]";
mes "Each repair costs " + .@repairprice + " Zeny. So to repair all your damaged items would cost " + .@totalcost + " Zeny! Would you like to repair the items?";
next;
@@ -1229,19 +1229,19 @@ function script repairmain {
mes "Check your wallet before you receive the repair bill! I can't repair anything because you don't have enough Zeny.";
close;
}
- set .@checkitem2,1;
+ .@checkitem2 = 1;
while (1) {
if (getbrokenid(.@checkitem2) == 0) {
break;
}
- set .@checkitem2,.@checkitem2+1;
+ ++.@checkitem2;
}
- set .@checkitem2,.@checkitem2-1;
+ --.@checkitem2;
if (.@checkitem == .@checkitem2) {
Zeny -= .@totalcost;
while (.@checkitem) {
repair(.@checkitem);
- set .@checkitem,.@checkitem-1;
+ --.@checkitem;
}
mes "["+getarg(0)+"]";
mes "Okay! All done. Now, try to be a little more careful. Items have lives too you know.";
diff --git a/npc/merchants/renters.txt b/npc/merchants/renters.txt
index 5944932e9..00ff18dd5 100644
--- a/npc/merchants/renters.txt
+++ b/npc/merchants/renters.txt
@@ -26,9 +26,9 @@
// PecoPeco Breeder (for Knights)-------------------------------------------
prontera,55,350,5 script Peco Peco Breeder#knt 8W_SOLDIER,{
- if(Upper==0) set .@price,2500; //Normal Peco - default price
- if(Upper==1) set .@price,2500; //Armored Peco
- if(Upper==2) set .@price,2500; //Baby Peco
+ if(Upper==0) .@price = 2500; //Normal Peco - default price
+ if(Upper==1) .@price = 2500; //Armored Peco
+ if(Upper==2) .@price = 2500; //Baby Peco
mes "[Peco Peco Breeder]";
if (BaseJob == Job_Knight && Class < Job_Rune_Knight) {
@@ -48,7 +48,7 @@ prontera,55,350,5 script Peco Peco Breeder#knt 8W_SOLDIER,{
mes "bankrupt?";
close;
}
- else if(getskilllv("KN_RIDING") == 0) {
+ else if(getskilllv(KN_RIDING) == 0) {
mes "[Peco Peco Breeder]";
mes "I'm sorry, but you're";
mes "not eligible for this";
@@ -56,20 +56,19 @@ prontera,55,350,5 script Peco Peco Breeder#knt 8W_SOLDIER,{
mes "the Peco Peco Ride skill first.";
close;
}
- else if(checkriding()) {
+ else if(checkmount()) {
mes "[Peco Peco Breeder]";
mes "You're already";
mes "mounted on a";
mes "Peco Peco.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Peco Peco Breeder]";
mes "Please remove your cash mount.";
close;
}
Zeny -= .@price;
- setriding;
+ setmount(MOUNT_PECO);
close;
case 2:
mes "[Peco Peco Breeder]";
@@ -89,9 +88,9 @@ prontera,55,350,5 script Peco Peco Breeder#knt 8W_SOLDIER,{
// Grand PecoPeco Breeder (for Crusaders)-------------------------------------------
prontera,232,318,3 script Peco Peco Breeder#cru 8W_SOLDIER,{
- if(Upper==0) set .@price,3500; //Normal Peco - default price
- if(Upper==1) set .@price,3500; //Armored Peco
- if(Upper==2) set .@price,3500; //Baby Peco
+ if(Upper==0) .@price = 3500; //Normal Peco - default price
+ if(Upper==1) .@price = 3500; //Armored Peco
+ if(Upper==2) .@price = 3500; //Baby Peco
mes "[PecoPeco Breeder]";
if (BaseJob == Job_Crusader && Class < Job_Rune_Knight) {
@@ -113,26 +112,25 @@ prontera,232,318,3 script Peco Peco Breeder#cru 8W_SOLDIER,{
mes "bring "+.@price+" zeny...";
close;
}
- else if(getskilllv("KN_RIDING") == 0) {
+ else if(getskilllv(KN_RIDING) == 0) {
mes "[Peco Peco Breeder]";
mes "You must first learn";
mes "to ride a PecoPeco before";
mes "I can rent one to you.";
close;
}
- else if(checkriding()) {
+ else if(checkmount()) {
mes "[Peco Peco Breeder]";
mes "You are already";
mes "mounted on a Peco Peco.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Peco Peco Breeder]";
mes "Please remove your cash mount.";
close;
}
Zeny -= .@price;
- setriding;
+ setmount(MOUNT_PECO);
close;
case 2:
mes "[PecoPeco Breeder]";
@@ -151,9 +149,9 @@ prontera,232,318,3 script Peco Peco Breeder#cru 8W_SOLDIER,{
// Falcon Master--------------------------------------------------------------
hu_in01,381,304,5 script Falcon Breeder#hnt 8W_SOLDIER,{
- if(Upper==0) set .@price,2500; //Normal Falcon - default price
- if(Upper==1) set .@price,2500; //Scarf Falcon
- if(Upper==2) set .@price,2500; //Baby Falcon
+ if(Upper==0) .@price = 2500; //Normal Falcon - default price
+ if(Upper==1) .@price = 2500; //Scarf Falcon
+ if(Upper==2) .@price = 2500; //Baby Falcon
mes "[Falcon Breeder]";
if (BaseJob == Job_Hunter) {
diff --git a/npc/merchants/socket_enchant.txt b/npc/merchants/socket_enchant.txt
index 4c806a819..178f8ca98 100644
--- a/npc/merchants/socket_enchant.txt
+++ b/npc/merchants/socket_enchant.txt
@@ -281,7 +281,7 @@ function script Func_Socket {
mes "Alright then, let the work begin!";
mes "You'd better pray for a successful result.";
next;
- set .@a, rand(1,100);
+ .@a = rand(1,100);
if ((.@a > getarg(2)) && (.@a < getarg(3)))
{
specialeffect getarg(3) == 51 ? EF_LORD : EF_SANCTUARY; // only S Class items have Lord of Vermillion effect
diff --git a/npc/merchants/socket_enchant2.txt b/npc/merchants/socket_enchant2.txt
index dbdcfe379..08fe62ed9 100644
--- a/npc/merchants/socket_enchant2.txt
+++ b/npc/merchants/socket_enchant2.txt
@@ -277,7 +277,7 @@
mes "Shall we start now?";
mes "Pray to your gods for good luck.";
next;
- set .@a, rand(1,100);
+ .@a = rand(1,100);
if ((.@a > 4) && (.@a < 95))
{
specialeffect EF_LORD;
@@ -417,7 +417,7 @@ function script Func_Socket2 {
mes "Alright then, let the work begin!";
mes "You'd better pray for a successful result.";
next;
- set .@a, rand(1,100);
+ .@a = rand(1,100);
if ((.@a > getarg(2)) && (.@a < getarg(3)))
{
specialeffect EF_LORD;
diff --git a/npc/other/CashShop_Functions.txt b/npc/other/CashShop_Functions.txt
index 76056cb52..39bfa3c97 100644
--- a/npc/other/CashShop_Functions.txt
+++ b/npc/other/CashShop_Functions.txt
@@ -59,10 +59,10 @@ function script F_CashPartyCall {
// - Reset players skills. Weight must be 0, options must be off.
// - No arguments.
function script F_CashReset {
- if (Class != Job_Novice && Weight == 0 && !checkriding() && !checkfalcon() && !checkcart() && !ismounting()) {
+ if (Class != Job_Novice && Weight == 0 && !checkmount() && !checkfalcon() && !checkcart() && !hascashmount()) {
resetskill;
sc_end SC_ALL;
- if (countitem(12213)) delitem 12213,1;
+ if (countitem(Neuralizer)) delitem Neuralizer,1;
}
return;
}
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index 559ba151f..4e9060419 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -48,74 +48,74 @@
function script F_ClearJobVar {
// Misc ---------------------------------
- set JBLVL,0;
- set FIRSTAID,0;
- set PLAYDEAD,0;
- set got_bandage,0;
- set got_novnametag,0;
+ JBLVL = 0;
+ FIRSTAID = 0;
+ PLAYDEAD = 0;
+ got_bandage = 0;
+ got_novnametag = 0;
// First Class Jobs ---------------------
- set job_acolyte_q,0; set job_acolyte_q2,0;
- set job_archer_q,0;
- set job_magician_q,0;
- set job_merchant_q,0; set job_merchant_q2,0; set job_merchant_q3,0;
- set job_sword_q,0; set SWTEST, 0;
- set job_thief_q,0;
+ job_acolyte_q = 0; job_acolyte_q2 = 0;
+ job_archer_q = 0;
+ job_magician_q = 0;
+ job_merchant_q = 0; job_merchant_q2 = 0; job_merchant_q3 = 0;
+ job_sword_q = 0; SWTEST = 0;
+ job_thief_q = 0;
// Super Novice
- set SUPNOV_Q,0;
+ SUPNOV_Q = 0;
// 2-1 Jobs ------------------------------
- set ASSIN_Q,0; set ASSIN_Q2,0; set ASSIN_Q3,0;
- set BSMITH_Q,0; set BSMITH_Q2,0;
- set HNTR_Q,0; set HNTR_Q2,0;
- set KNIGHT_Q,0; set KNIGHT_Q2,0;
- set PRIEST_Q,0; set PRIEST_Q2,0; set PRIEST_Q3,0;
- set WIZ_Q,0; set WIZ_Q2,0;
+ ASSIN_Q = 0; ASSIN_Q2 = 0; ASSIN_Q3 = 0;
+ BSMITH_Q = 0; BSMITH_Q2 = 0;
+ HNTR_Q = 0; HNTR_Q2 = 0;
+ KNIGHT_Q = 0; KNIGHT_Q2 = 0;
+ PRIEST_Q = 0; PRIEST_Q2 = 0; PRIEST_Q3 = 0;
+ WIZ_Q = 0; WIZ_Q2 = 0;
// 2-2 Jobs ------------------------------
- set ROGUE_Q,0; set ROGUE_Q2,0;
- set ALCH_Q,0; set ALCH_Q2,0;
- set CRUS_Q,0;
- set MONK_Q,0; set JOB_MONK_C,0;
- set SAGE_Q,0; set SAGE_Q2,0;
- set DANC_Q,0;
- set BARD_Q,0;
+ ROGUE_Q = 0; ROGUE_Q2 = 0;
+ ALCH_Q = 0; ALCH_Q2 = 0;
+ CRUS_Q = 0;
+ MONK_Q = 0; JOB_MONK_C = 0;
+ SAGE_Q = 0; SAGE_Q2 = 0;
+ DANC_Q = 0;
+ BARD_Q = 0;
// Extended Classes
- set TAEK_Q,0; set TK_Q,0;
- set STGL_Q,0;
- set SOUL_Q,0;
- set GUNS_Q,0;
- set NINJ_Q,0;
+ TAEK_Q = 0; TK_Q = 0;
+ STGL_Q = 0;
+ SOUL_Q = 0;
+ GUNS_Q = 0;
+ NINJ_Q = 0;
return;
}
function script F_ClearGarbage {
// Clear outdated global VARS
//Clear TURTLE var if the Turtle Islans Quest is already done
- if(TURTLE==20) set MISC_QUEST,MISC_QUEST | 65536;
- if(MISC_QUEST & 65536) set TURTLE,0; //now clear the var if the quest is over
+ if(TURTLE==20) MISC_QUEST |= 65536;
+ if(MISC_QUEST & 65536) TURTLE = 0; //now clear the var if the quest is over
//Clear previously saved Quest Skills (now it isn't used)
- set ADV_QSK,0;
- set ADV_QSK2,0;
+ ADV_QSK = 0;
+ ADV_QSK2 = 0;
//Old Seset Skill Event used to use RES_SKILL var
- set RES_SKILL,0;
+ RES_SKILL = 0;
//Here you put outdated variables from your outdated EVENTS
//e.g. Is XMAS done? Add the EVENT var clearing code here.
//due to bugs in BS quest:
- set wizard_m2,0;
+ wizard_m2 = 0;
// Old Novice Ground Variables.
- set NEW_MES_FLAG0,0;
- set NEW_MES_FLAG1,0;
- set NEW_MES_FLAG2,0;
- set NEW_MES_FLAG3,0;
- set NEW_MES_FLAG4,0;
- set NEW_MES_FLAG5,0;
- set NEW_LVUP0,0;
- set NEW_LVUP1,0;
- set NEW_JOBLVUP,0;
+ NEW_MES_FLAG0 = 0;
+ NEW_MES_FLAG1 = 0;
+ NEW_MES_FLAG2 = 0;
+ NEW_MES_FLAG3 = 0;
+ NEW_MES_FLAG4 = 0;
+ NEW_MES_FLAG5 = 0;
+ NEW_LVUP0 = 0;
+ NEW_LVUP1 = 0;
+ NEW_JOBLVUP = 0;
// Old DTS variables that are no longer used.
- set dtseligible,0;
- set MISC_QUEST,MISC_QUEST & ~128;
+ dtseligible = 0;
+ MISC_QUEST = MISC_QUEST & ~128;
return;
}
@@ -144,7 +144,7 @@ function script Job_Change {
//returns random argument
// Example: check F_Bye or F_Hi functions
// READ AND THINK: You can use it to pick a random number from a list:
-// set @itemIDfromList, callfunc("F_Rand",1129,1222,1163,1357,1360,1522,1811,1410);
+// @itemIDfromList = callfunc("F_Rand",1129,1222,1163,1357,1360,1522,1811,1410);
function script F_Rand {
return getarg(rand(getargcount()));
@@ -196,20 +196,20 @@ function script F_Bye {
function script F_ItemName {
if(getarg(3))
- set .@t$,.@t$+"+"+getarg(3)+" ";
+ .@t$ += "+"+getarg(3)+" ";
switch(getarg(2)) {
case 0: break;
- case 1: set .@t$,.@t$+"VS "; break;
- case 2: set .@t$,.@t$+"VVS "; break;
- case 3: set .@t$,.@t$+"VVVS "; break;
- default: set .@t$,.@t$+getarg(2)+"xVS "; break;
+ case 1: .@t$ += "VS "; break;
+ case 2: .@t$ += "VVS "; break;
+ case 3: .@t$ += "VVVS "; break;
+ default: .@t$ += getarg(2)+"xVS "; break;
}
switch(getarg(1)) {
- case 1: set .@t$,.@t$+"Ice "; break;
- case 2: set .@t$,.@t$+"Earth "; break;
- case 3: set .@t$,.@t$+"Fire "; break;
- case 4: set .@t$,.@t$+"Wind "; break;
- default: set .@t$,.@t$+"Strange "; break;
+ case 1: .@t$ += "Ice "; break;
+ case 2: .@t$ += "Earth "; break;
+ case 3: .@t$ += "Fire "; break;
+ case 4: .@t$ += "Wind "; break;
+ default: .@t$ += "Strange "; break;
}
return "^000090"+.@t$+getitemname(getarg(0))+"^000000";
}
@@ -218,14 +218,14 @@ function script F_ItemName {
// *** Function "F_SaveQuestSkills": Store learnt quest skills
//////////////////////////////////////////////////////////////////////////////////
function script F_SaveQuestSkills {
- set ADV_QSK,0; set ADV_QSK2,0;
+ ADV_QSK = 0; ADV_QSK2 = 0;
//1st classes quest skills
- for(set .@i, 0; .@i < 14; set .@i, .@i + 1){
- if(getskilllv(144+.@i)) set ADV_QSK,ADV_QSK|pow(2,.@i);
+ for (.@i = 0; .@i < 14; ++.@i) {
+ if(getskilllv(144+.@i)) ADV_QSK |= pow(2,.@i);
}
//2nd classes quest skills
- for(set .@i, 0; .@i < 19; set .@i, .@i + 1){
- if(getskilllv(1001+.@i)) set ADV_QSK2,ADV_QSK2|pow(2,.@i);
+ for (.@i = 0; .@i < 19; ++.@i) {
+ if(getskilllv(1001+.@i)) ADV_QSK2 |= pow(2,.@i);
}
return;
}
@@ -235,10 +235,10 @@ function script F_SaveQuestSkills {
//////////////////////////////////////////////////////////////////////////////////
function script F_Load1Skills {
//1st classes quest skills
- for(set .@i, 0; .@i < 14; set .@i, .@i + 1){
+ for(.@i = 0; .@i < 14; ++.@i) {
if(ADV_QSK|pow(2,.@i) == ADV_QSK) skill 144+.@i,1,0;
}
- set ADV_QSK,0; //Clear var
+ ADV_QSK = 0; //Clear var
return;
}
@@ -247,10 +247,10 @@ function script F_Load1Skills {
//////////////////////////////////////////////////////////////////////////////////
function script F_Load2Skills {
//2nd classes quest skills
- for(set .@i, 0; .@i < 19; set .@i, .@i + 1){
+ for (.@i = 0; .@i < 19; ++.@i) {
if(ADV_QSK2|pow(2,.@i) == ADV_QSK2) skill 1001+.@i,1,0;
}
- set ADV_QSK2,0; //Clear var
+ ADV_QSK2 = 0; //Clear var
return;
}
@@ -309,35 +309,35 @@ function script F_GetArmorType {
// Time calculation Function
// *********************************************************************
function script Time2Str {
- set .@time_left, getarg(0) - gettimetick(2);
+ .@time_left = getarg(0) - gettimetick(2);
- set .@Days, .@time_left / 86400;
- set .@time_left, .@time_left - (.@Days * 86400);
- set .@Hours, .@time_left / 3600;
- set .@time_left, .@time_left - (.@Hours * 3600);
- set .@Minutes, .@time_left / 60;
- set .@time_left, .@time_left - (.@Minutes * 60);
+ .@Days = .@time_left / 86400;
+ .@time_left -= (.@Days * 86400);
+ .@Hours = .@time_left / 3600;
+ .@time_left -= (.@Hours * 3600);
+ .@Minutes = .@time_left / 60;
+ .@time_left -= (.@Minutes * 60);
- set .@Time$, "";
+ .@Time$ = "";
if( .@Days > 1 )
- set .@Time$, .@Time$ + .@Days + " days, ";
+ .@Time$ += .@Days + " days, ";
else if( .@Days > 0 )
- set .@Time$, .@Time$ + .@Days + " day, ";
+ .@Time$ += .@Days + " day, ";
if( .@Hours > 1 )
- set .@Time$, .@Time$ + .@Hours + " hours, ";
+ .@Time$ += .@Hours + " hours, ";
else if( .@Hours > 0 )
- set .@Time$, .@Time$ + .@Hours + " hour, ";
+ .@Time$ += .@Hours + " hour, ";
if( .@Minutes > 1 )
- set .@Time$, .@Time$ + .@Minutes + " minutes, ";
+ .@Time$ += .@Minutes + " minutes, ";
else if( .@Minutes > 0 )
- set .@Time$, .@Time$ + .@Minutes + " minute, ";
+ .@Time$ += .@Minutes + " minute, ";
if( .@time_left > 1 || .@time_left == 0 )
- set .@Time$, .@Time$ + .@time_left + " seconds";
+ .@Time$ += .@time_left + " seconds";
else if( .@time_left == 1 )
- set .@Time$, .@Time$ + .@time_left + " second";
+ .@Time$ += .@time_left + " second";
return .@Time$;
}
diff --git a/npc/other/acolyte_warp.txt b/npc/other/acolyte_warp.txt
index 10cd72124..9760d4e67 100644
--- a/npc/other/acolyte_warp.txt
+++ b/npc/other/acolyte_warp.txt
@@ -41,10 +41,10 @@ prontera,98,121,4 script Acolyte#Prtclear 4_F_01,{
setarray .@maps$[0], "izlude", "geffen", "payon", "morocc", "alberta", "aldebaran", "comodo", "umbala", "yuno";
setarray .@cost[0], 600, 1200, 1200, 1200, 1800, 2200, 2200, 2200, 1800;
- set .@size, getarraysize(.@towns$);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
- set .@menu$, .@menu$+.@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
- set .@i, select(.@menu$+"Cancel")-1;
+ .@size = getarraysize(.@towns$);
+ for(.@i = 0; .@i<.@size; ++.@i)
+ .@menu$ += .@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
+ .@i = select(.@menu$+"Cancel")-1;
if (.@i == .@size)
close;
if (Zeny < .@cost[.@i]) {
@@ -104,10 +104,10 @@ yuno,142,184,6 script Acolyte#Junoclear 4_F_01,{
setarray .@maps$[0], "einbroch", "lighthalzen", "hugel", "rachel", "prontera";
setarray .@cost[0], 2200, 2200, 2200, 2200, 1800;
- set .@size, getarraysize(.@towns$);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
- set .@menu$, .@menu$+.@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
- set .@i, select(.@menu$+"Cancel")-1;
+ .@size = getarraysize(.@towns$);
+ for(.@i = 0; .@i<.@size; ++.@i)
+ .@menu$ += .@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
+ .@i = select(.@menu$+"Cancel")-1;
if (.@i == .@size)
close;
if (Zeny < .@cost[.@i]) {
diff --git a/npc/other/arena/arena_aco.txt b/npc/other/arena/arena_aco.txt
index cc0b4b640..65ed3c6e3 100644
--- a/npc/other/arena/arena_aco.txt
+++ b/npc/other/arena/arena_aco.txt
@@ -113,7 +113,7 @@ OnReset_09:
- script Trocco#aco1 -1,{
OnEnable:
initnpctimer;
- set $@arn_1,gettimetick(2);
+ $@arn_1 = gettimetick(2);
end;
OnTimer2000:
@@ -302,7 +302,7 @@ OnMyMobDead:
force_5-1,25,69,0 script force_02start#aco -1,1,1,{
OnTouch:
- set $@drop_gate,0;
+ $@drop_gate = 0;
donpcevent "force_02mob#aco::OnEnable";
disablenpc "force_02start#aco";
end;
@@ -320,7 +320,7 @@ OnReset:
OnMyMobDead:
if ((mobcount("force_5-1","force_02mob#aco::OnMyMobDead") < 11) && ($@drop_gate == 0)) {
- set $@drop_gate,1;
+ $@drop_gate = 1;
donpcevent "Trocco#aco1::On02_End";
donpcevent "arena_aco1::OnReset_02";
}
@@ -482,7 +482,7 @@ OnReset:
OnMyMobDead:
if (mobcount("force_5-1","force_09mob#aco::OnMyMobDead") < 1) {
donpcevent "Trocco#aco1::On09_End";
- set $@arn_2,gettimetick(2);
+ $@arn_2 = gettimetick(2);
donpcevent "arena_aco1::OnReset_09";
}
end;
@@ -541,7 +541,7 @@ OnReset_09:
- script Trocco#aco2 -1,{
OnEnable:
initnpctimer;
- set $@arn_1,gettimetick(2);
+ $@arn_1 = gettimetick(2);
end;
OnTimer2000:
@@ -1018,7 +1018,7 @@ OnReset:
OnMyMobDead:
if (mobcount("force_5-1","force_09mob#pri::OnMyMobDead") < 1) {
donpcevent "Trocco#aco2::On09_End";
- set $@arn_2,gettimetick(2);
+ $@arn_2 = gettimetick(2);
donpcevent "arena_aco2::OnReset_09";
}
end;
@@ -1062,7 +1062,7 @@ prt_are_in,181,83,3 script Staff#aco-1 1_F_02,{
next;
}
else {
- set arena_point,arena_point+1;
+ ++arena_point;
}
mes "[Staff]";
mes "Well, let me guide";
@@ -1076,23 +1076,23 @@ prt_are_in,181,83,3 script Staff#aco-1 1_F_02,{
}
prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
- set .@start_timeaco, $@arn_1;
- set .@hour_startaco, .@start_timeaco / 10000;
- set .@min_startaco, ((.@start_timeaco % 10000) / 100);
- set .@sec_startaco, .@start_timeaco % 100;
- set .@end_timeaco, $@arn_2;
- set .@hour_endaco, .@end_timeaco / 10000;
- set .@min_endaco, ((.@end_timeaco % 10000) / 100);
- set .@sec_endaco, .@end_timeaco % 100;
+ .@start_timeaco = $@arn_1;
+ .@hour_startaco = .@start_timeaco / 10000;
+ .@min_startaco = ((.@start_timeaco % 10000) / 100);
+ .@sec_startaco = .@start_timeaco % 100;
+ .@end_timeaco = $@arn_2;
+ .@hour_endaco = .@end_timeaco / 10000;
+ .@min_endaco = ((.@end_timeaco % 10000) / 100);
+ .@sec_endaco = .@end_timeaco % 100;
if ((.@hour_startaco == 23) && (.@hour_endaco == 0)) {
- set .@hour_endaco,24;
+ .@hour_endaco = 24;
}
- set .@st_to_secaco, ((.@hour_startaco * 3600) + (.@min_startaco * 60) + (.@sec_startaco));
- set .@et_to_secaco, ((.@hour_endaco * 3600) + (.@min_endaco * 60) + (.@sec_endaco));
- set .@record_timeaco, (.@et_to_secaco - .@st_to_secaco);
- set .@record_houraco, .@record_timeaco / 3600;
- set .@record_minaco, ((.@record_timeaco % 3600) / 60);
- set .@record_secaco, .@record_timeaco % 60;
+ .@st_to_secaco = ((.@hour_startaco * 3600) + (.@min_startaco * 60) + (.@sec_startaco));
+ .@et_to_secaco = ((.@hour_endaco * 3600) + (.@min_endaco * 60) + (.@sec_endaco));
+ .@record_timeaco = (.@et_to_secaco - .@st_to_secaco);
+ .@record_houraco = .@record_timeaco / 3600;
+ .@record_minaco = ((.@record_timeaco % 3600) / 60);
+ .@record_secaco = .@record_timeaco % 60;
if ((.@record_timeaco < 0 ) || (.@record_houraco < 0) || (.@record_minaco < 0 ) || (.@record_secaco < 0)) {
emotion e_omg;
mes "[Staff]";
@@ -1126,7 +1126,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "your time in the Arena~";
close2;
if (arena_point < 29981) {
- set arena_point,arena_point+20;
+ arena_point += 20;
warp "arena_room",100,75;
donpcevent "#arn_timer_aco::OnStop";
donpcevent "Acolyte Waiting Room::OnStart";
@@ -1140,30 +1140,30 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
}
else {
if (BaseJob == Job_Acolyte) {
- set .@acotop_t,$arn_acotop;
- set .@acotop_n$,$arn_acotopn$;
+ .@acotop_t = $arn_acotop;
+ .@acotop_n$ = $arn_acotopn$;
}
else {
if (BaseLevel < 70) {
- set .@acotop_t,$arn_pritop60;
- set .@acotop_n$,$arn_pritopn60$;
+ .@acotop_t = $arn_pritop60;
+ .@acotop_n$ = $arn_pritopn60$;
}
else if (BaseLevel < 80) {
- set .@acotop_t,$arn_pritop70;
- set .@acotop_n$,$arn_pritopn70$;
+ .@acotop_t = $arn_pritop70;
+ .@acotop_n$ = $arn_pritopn70$;
}
else if (BaseLevel < 90) {
- set .@acotop_t,$arn_pritop80;
- set .@acotop_n$,$arn_pritopn80$;
+ .@acotop_t = $arn_pritop80;
+ .@acotop_n$ = $arn_pritopn80$;
}
else {
- set .@acotop_t,$arn_pritop90;
- set .@acotop_n$,$arn_pritopn90$;
+ .@acotop_t = $arn_pritop90;
+ .@acotop_n$ = $arn_pritopn90$;
}
}
- set .@topbunaco, ((.@acotop_t % 3600) / 60);
- set .@topchoaco, .@acotop_t % 60;
- set .@gapaco, .@acotop_t - .@record_timeaco;
+ .@topbunaco = ((.@acotop_t % 3600) / 60);
+ .@topchoaco = .@acotop_t % 60;
+ .@gapaco = .@acotop_t - .@record_timeaco;
mes "[Staff]";
mes "^3131FF"+strcharinfo(0)+"^000000, right?";
mes "Hey, you did great! You";
@@ -1196,26 +1196,26 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "under the Time Force Battle";
mes "Arena - Acolyte Class Record!";
if (BaseJob == Job_Acolyte) {
- set $arn_acotop,.@record_timeaco;
- set $arn_acotopn$, strcharinfo(0);
+ $arn_acotop = .@record_timeaco;
+ $arn_acotopn$ = strcharinfo(0);
donpcevent "Vendigos::OnLineRec_aco";
}
else {
if (BaseLevel < 70) {
- set $arn_pritop60,.@record_timeaco;
- set $arn_pritopn60$, strcharinfo(0);
+ $arn_pritop60 = .@record_timeaco;
+ $arn_pritopn60$ = strcharinfo(0);
}
else if (BaseLevel < 80) {
- set $arn_pritop70,.@record_timeaco;
- set $arn_pritopn70$, strcharinfo(0);
+ $arn_pritop70 = .@record_timeaco;
+ $arn_pritopn70$ = strcharinfo(0);
}
else if (BaseLevel < 90) {
- set $arn_pritop80,.@record_timeaco;
- set $arn_pritopn80$, strcharinfo(0);
+ $arn_pritop80 = .@record_timeaco;
+ $arn_pritopn80$ = strcharinfo(0);
}
else {
- set $arn_pritop90,.@record_timeaco;
- set $arn_pritopn90$, strcharinfo(0);
+ $arn_pritop90 = .@record_timeaco;
+ $arn_pritopn90$ = strcharinfo(0);
}
donpcevent "Vendigos::OnLineRec_pri";
}
@@ -1251,7 +1251,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,30000;
+ arena_point = 30000;
}
else {
mes "[Staff]";
@@ -1268,7 +1268,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,arena_point+50;
+ arena_point += 50;
}
specialeffect2 EF_EXIT;
warp "arena_room",100,75;
@@ -1315,7 +1315,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,30000;
+ arena_point = 30000;
}
else {
mes "[Staff]";
@@ -1332,7 +1332,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,arena_point+20;
+ arena_point += 20;
}
specialeffect2 EF_EXIT;
warp "arena_room",100,75;
@@ -1355,29 +1355,29 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Acolyte Class Records.";
mes "Congratulations~";
if (BaseJob == Job_Acolyte) {
- set $arn_acotop,.@record_timeaco;
- set $arn_acotopn$, strcharinfo(0);
+ $arn_acotop = .@record_timeaco;
+ $arn_acotopn$ = strcharinfo(0);
donpcevent "#Vendigos::OnLineRec_aco";
}
else {
if (BaseLevel < 70) {
- set $arn_pritop60,.@record_timeaco;
- set $arn_pritopn60$, strcharinfo(0);
+ $arn_pritop60 = .@record_timeaco;
+ $arn_pritopn60$ = strcharinfo(0);
donpcevent "#Vendigos::OnLineRec_pri60";
}
else if (BaseLevel < 80) {
- set $arn_pritop70,.@record_timeaco;
- set $arn_pritopn70$, strcharinfo(0);
+ $arn_pritop70 = .@record_timeaco;
+ $arn_pritopn70$ = strcharinfo(0);
donpcevent "#Vendigos::OnLineRec_pri70";
}
else if (BaseLevel < 90) {
- set $arn_pritop80,.@record_timeaco;
- set $arn_pritopn80$, strcharinfo(0);
+ $arn_pritop80 = .@record_timeaco;
+ $arn_pritopn80$ = strcharinfo(0);
donpcevent "#Vendigos::OnLineRec_pri80";
}
else {
- set $arn_pritop90,.@record_timeaco;
- set $arn_pritopn90$, strcharinfo(0);
+ $arn_pritop90 = .@record_timeaco;
+ $arn_pritopn90$ = strcharinfo(0);
donpcevent "#Vendigos::OnLineRec_pri90";
}
}
@@ -1413,7 +1413,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,30000;
+ arena_point = 30000;
}
else {
mes "[Staff]";
@@ -1430,7 +1430,7 @@ prt_are_in,25,31,3 script Staff#aco-2 1_F_02,{
mes "Now let me guide you";
mes "back to the Arena Lobby...";
close2;
- set arena_point,arena_point+20;
+ arena_point += 20;
}
specialeffect2 EF_EXIT;
warp "arena_room",100,75;
@@ -1570,10 +1570,10 @@ arena_room,94,82,7 script Arena Record Staff#aco 1_F_PRIEST,{
next;
switch(select("Acolyte Mode:Priest - Level 70 or lower:Priest - Level 80 or lower:Priest - Level 90 or lower:Priest - Level 91 ~ "+(checkre(0)?"160":"99"))) {
case 1:
- set .@acotop_t,$arn_acotop;
- set .@acotop_n$,$arn_acotopn$;
- set .@acotopbun, ((.@acotop_t % 3600) / 60 );
- set .@acotopcho, (.@acotop_t % 60);
+ .@acotop_t = $arn_acotop;
+ .@acotop_n$ = $arn_acotopn$;
+ .@acotopbun = ((.@acotop_t % 3600) / 60 );
+ .@acotopcho = (.@acotop_t % 60);
mes "[Mathea]";
mes "^3131FF"+.@acotop_n$+"^000000";
mes "is the top player of the";
@@ -1583,24 +1583,24 @@ arena_room,94,82,7 script Arena Record Staff#aco 1_F_PRIEST,{
mes "for participating in the Arena.";
close;
case 2:
- set .@pritop_t,$arn_pritop60;
- set .@pritop_n$,$arn_pritopn60$;
+ .@pritop_t = $arn_pritop60;
+ .@pritop_n$ = $arn_pritopn60$;
break;
case 3:
- set .@pritop_t,$arn_pritop70;
- set .@pritop_n$,$arn_pritopn70$;
+ .@pritop_t = $arn_pritop70;
+ .@pritop_n$ = $arn_pritopn70$;
break;
case 4:
- set .@pritop_t,$arn_pritop80;
- set .@pritop_n$,$arn_pritopn80$;
+ .@pritop_t = $arn_pritop80;
+ .@pritop_n$ = $arn_pritopn80$;
break;
case 5:
- set .@pritop_t,$arn_pritop90;
- set .@pritop_n$,$arn_pritopn90$;
+ .@pritop_t = $arn_pritop90;
+ .@pritop_n$ = $arn_pritopn90$;
break;
}
- set .@pritopbun, ((.@pritop_t % 3600) / 60 );
- set .@pritopcho, (.@pritop_t % 60);
+ .@pritopbun = ((.@pritop_t % 3600) / 60 );
+ .@pritopcho = (.@pritop_t % 60);
mes "[Mathea]";
mes "^3131FF"+.@pritop_n$+"^000000";
mes "is the top player of this";
@@ -1612,16 +1612,16 @@ arena_room,94,82,7 script Arena Record Staff#aco 1_F_PRIEST,{
OnInit:
if ($arn_acotopn$ == "") {
- set $arn_pritop60, 480;
- set $arn_pritop70, 480;
- set $arn_pritop80, 480;
- set $arn_pritop90, 480;
- set $arn_acotop, 480;
- set $arn_pritopn60$, "Default";
- set $arn_pritopn70$, "Default";
- set $arn_pritopn80$, "Default";
- set $arn_pritopn90$, "Default";
- set $arn_acotopn$, "Default";
+ $arn_pritop60 = 480;
+ $arn_pritop70 = 480;
+ $arn_pritop80 = 480;
+ $arn_pritop90 = 480;
+ $arn_acotop = 480;
+ $arn_pritopn60$ = "Default";
+ $arn_pritopn70$ = "Default";
+ $arn_pritopn80$ = "Default";
+ $arn_pritopn90$ = "Default";
+ $arn_acotopn$ = "Default";
}
end;
}
@@ -1709,7 +1709,7 @@ arena_room,140,136,3 script Guide Alias 4_F_NOVICE,{
}
arena_room,195,5,3 script log-on-aco#arena 4_NFWISP,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "^3355FFIncorrect Password.^000000";
close;
@@ -1728,24 +1728,24 @@ arena_room,195,5,3 script log-on-aco#arena 4_NFWISP,{
mes "been canceled.^000000";
close;
case 2:
- set $arn_acotop, 480;
- set $arn_acotopn$, "Default";
+ $arn_acotop = 480;
+ $arn_acotopn$ = "Default";
break;
case 3:
- set $arn_pritop60, 480;
- set $arn_pritopn60$, "Default";
+ $arn_pritop60 = 480;
+ $arn_pritopn60$ = "Default";
break;
case 4:
- set $arn_pritop70, 480;
- set $arn_pritopn70$, "Default";
+ $arn_pritop70 = 480;
+ $arn_pritopn70$ = "Default";
break;
case 5:
- set $arn_pritop80, 480;
- set $arn_pritopn80$, "Default";
+ $arn_pritop80 = 480;
+ $arn_pritopn80$ = "Default";
break;
case 6:
- set $arn_pritop90, 480;
- set $arn_pritopn90$, "Default";
+ $arn_pritop90 = 480;
+ $arn_pritopn90$ = "Default";
break;
}
close;
@@ -1753,7 +1753,7 @@ arena_room,195,5,3 script log-on-aco#arena 4_NFWISP,{
}
arena_room,195,10,3 script acolink#arena 4_NFWISP,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "Command has";
mes "been canceled.";
diff --git a/npc/other/arena/arena_lvl50.txt b/npc/other/arena/arena_lvl50.txt
index e1e98d3b2..9c91c684c 100644
--- a/npc/other/arena/arena_lvl50.txt
+++ b/npc/other/arena/arena_lvl50.txt
@@ -37,8 +37,8 @@ force_1-1,99,20,4 script Heel and Toe#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- set $arena_min50st,gettime(2);
- set $arena_sec50st,gettime(1);
+ $arena_min50st = gettime(2);
+ $arena_sec50st = gettime(1);
end;
OnTimer3000:
@@ -774,8 +774,8 @@ OnMyMobDead:
donpcevent "Heel and Toe#arena::On09_End";
donpcevent "arena#50::OnReset_09";
donpcevent "arena#50::OnReset_All";
- set $arena_min50end,gettime(2);
- set $arena_sec50end,gettime(1);
+ $arena_min50end = gettime(2);
+ $arena_sec50end = gettime(1);
}
end;
}
@@ -791,8 +791,9 @@ prt_are_in,129,188,3 script Staff#50-1 1_F_02,{
mes "You already have enough arena points.";
mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
next;
+ } else {
+ ++arena_point;
}
- else set arena_point, arena_point + 1;
mes "[Staff]";
mes "Let me guide you outside. I hope you had a good time.";
close2;
@@ -804,22 +805,22 @@ prt_are_in,129,188,3 script Staff#50-1 1_F_02,{
prt_are_in,25,188,3 script Staff#50-2 1_F_02,{
if($arena_min50end < $arena_min50st) {
if($arena_sec50end < $arena_sec50st) {
- set @record_min50,60 - $arena_min50st + $arena_min50end -1;
- set @record_sec50,60 - $arena_sec50st + $arena_sec50end;
+ @record_min50 = 60 - $arena_min50st + $arena_min50end -1;
+ @record_sec50 = 60 - $arena_sec50st + $arena_sec50end;
} else {
- set @record_min50,60 - $arena_min50st + $arena_min50end;
- set @record_sec50,$arena_sec50end - $arena_sec50st;
+ @record_min50 = 60 - $arena_min50st + $arena_min50end;
+ @record_sec50 = $arena_sec50end - $arena_sec50st;
}
} else {
if($arena_sec50end < $arena_sec50st) {
- set @record_min50,$arena_min50end - $arena_min50st -1;
- set @record_sec50,60 - $arena_sec50st + $arena_sec50end;
+ @record_min50 = $arena_min50end - $arena_min50st -1;
+ @record_sec50 = 60 - $arena_sec50st + $arena_sec50end;
} else {
- set @record_min50,$arena_min50end - $arena_min50st;
- set @record_sec50,$arena_sec50end - $arena_sec50st;
+ @record_min50 = $arena_min50end - $arena_min50st;
+ @record_sec50 = $arena_sec50end - $arena_sec50st;
}
}
- set @gap50,(60 * $top_50min + $top_50sec) - (60 * @record_min50 + @record_sec50);
+ @gap50 = (60 * $top_50min + $top_50sec) - (60 * @record_min50 + @record_sec50);
mes "[Staff]";
mes "Wow, you did a good job~ ";
mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
@@ -852,7 +853,7 @@ prt_are_in,25,188,3 script Staff#50-2 1_F_02,{
mes "Thank you.";
close2;
} else {
- set arena_point, arena_point + 20;
+ arena_point += 20;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -877,9 +878,9 @@ prt_are_in,25,188,3 script Staff#50-2 1_F_02,{
next;
mes "[Staff]";
mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 50s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
- set $top_50min, @record_min50;
- set $top_50sec, @record_sec50;
- set $arena_50topn$,strcharinfo(0);
+ $top_50min = @record_min50;
+ $top_50sec = @record_sec50;
+ $arena_50topn$ = strcharinfo(0);
donpcevent "Vendigos::OnLineRec_50";
next;
if (arena_point > 29950) {
@@ -899,7 +900,7 @@ prt_are_in,25,188,3 script Staff#50-2 1_F_02,{
mes "Let me reward you with some arena points.";
mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
next;
- set arena_point, arena_point + 50;
+ arena_point += 50;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -1007,6 +1008,6 @@ OnEnable:
end;
OnInit:
- if(!$top_50min && !$top_50sec) set $top_50min,5;
+ if(!$top_50min && !$top_50sec) $top_50min = 5;
end;
}
diff --git a/npc/other/arena/arena_lvl60.txt b/npc/other/arena/arena_lvl60.txt
index c3d33f333..51c29def1 100644
--- a/npc/other/arena/arena_lvl60.txt
+++ b/npc/other/arena/arena_lvl60.txt
@@ -38,8 +38,8 @@ force_2-1,99,20,4 script Minilover#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- set $arena_min60st,gettime(2);
- set $arena_sec60st,gettime(1);
+ $arena_min60st = gettime(2);
+ $arena_sec60st = gettime(1);
end;
OnTimer3000:
@@ -784,8 +784,8 @@ OnMyMobDead:
donpcevent "Minilover#arena::On09_End";
donpcevent "arena#60::OnReset_09";
donpcevent "arena#60::OnReset_All";
- set $arena_min60end,gettime(2);
- set $arena_sec60end,gettime(1);
+ $arena_min60end = gettime(2);
+ $arena_sec60end = gettime(1);
}
end;
}
@@ -801,8 +801,9 @@ prt_are_in,129,135,3 script Staff#60-1 1_F_02,{
mes "You already have enough arena points.";
mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
next;
+ } else {
+ ++arena_point;
}
- else set arena_point, arena_point + 1;
mes "[Staff]";
mes "Let me guide you outside. I hope you had a good time.";
close2;
@@ -814,22 +815,22 @@ prt_are_in,129,135,3 script Staff#60-1 1_F_02,{
prt_are_in,25,135,3 script Staff#60-2 1_F_02,{
if($arena_min60end < $arena_min60st) {
if($arena_sec60end < $arena_sec60st) {
- set @record_min60,60 - $arena_min60st + $arena_min60end -1;
- set @record_sec60,60 - $arena_sec60st + $arena_sec60end;
+ @record_min60 = 60 - $arena_min60st + $arena_min60end -1;
+ @record_sec60 = 60 - $arena_sec60st + $arena_sec60end;
} else {
- set @record_min60,60 - $arena_min60st + $arena_min60end;
- set @record_sec60,$arena_sec60end - $arena_sec60st;
+ @record_min60 = 60 - $arena_min60st + $arena_min60end;
+ @record_sec60 = $arena_sec60end - $arena_sec60st;
}
} else {
if($arena_sec60end < $arena_sec60st) {
- set @record_min60,$arena_min60end - $arena_min60st -1;
- set @record_sec60,60 - $arena_sec60st + $arena_sec60end;
+ @record_min60 = $arena_min60end - $arena_min60st -1;
+ @record_sec60 = 60 - $arena_sec60st + $arena_sec60end;
} else {
- set @record_min60,$arena_min60end - $arena_min60st;
- set @record_sec60,$arena_sec60end - $arena_sec60st;
+ @record_min60 = $arena_min60end - $arena_min60st;
+ @record_sec60 = $arena_sec60end - $arena_sec60st;
}
}
- set @gap60,(60 * $top_60min + $top_60sec) - (60 * @record_min60 + @record_sec60);
+ @gap60 = (60 * $top_60min + $top_60sec) - (60 * @record_min60 + @record_sec60);
mes "[Staff]";
mes "Wow, you did a good job~ ";
mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
@@ -862,7 +863,7 @@ prt_are_in,25,135,3 script Staff#60-2 1_F_02,{
mes "Thank you.";
close2;
} else {
- set arena_point, arena_point + 20;
+ arena_point += 20;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -887,9 +888,9 @@ prt_are_in,25,135,3 script Staff#60-2 1_F_02,{
next;
mes "[Staff]";
mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 60s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
- set $top_60min, @record_min60;
- set $top_60sec, @record_sec60;
- set $arena_60topn$,strcharinfo(0);
+ $top_60min = @record_min60;
+ $top_60sec = @record_sec60;
+ $arena_60topn$ = strcharinfo(0);
donpcevent "Vendigos::OnLineRec_60";
next;
if (arena_point > 29950) {
@@ -909,7 +910,7 @@ prt_are_in,25,135,3 script Staff#60-2 1_F_02,{
mes "Let me reward you with some arena points.";
mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
next;
- set arena_point, arena_point + 50;
+ arena_point += 50;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -1020,6 +1021,6 @@ OnEnable:
end;
OnInit:
- if(!$top_60min && !$top_60sec) set $top_60min,6;
+ if(!$top_60min && !$top_60sec) $top_60min = 6;
end;
}
diff --git a/npc/other/arena/arena_lvl70.txt b/npc/other/arena/arena_lvl70.txt
index e50113e74..68805437f 100644
--- a/npc/other/arena/arena_lvl70.txt
+++ b/npc/other/arena/arena_lvl70.txt
@@ -37,8 +37,8 @@ force_3-1,99,20,4 script Cadillac#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- set $arena_min70st,gettime(2);
- set $arena_sec70st,gettime(1);
+ $arena_min70st = gettime(2);
+ $arena_sec70st = gettime(1);
end;
OnTimer3000:
@@ -749,8 +749,8 @@ OnMyMobDead:
donpcevent "Cadillac#arena::On09_End";
donpcevent "arena#70::OnReset_09";
donpcevent "arena#70::OnReset_All";
- set $arena_min70end,gettime(2);
- set $arena_sec70end,gettime(1);
+ $arena_min70end = gettime(2);
+ $arena_sec70end = gettime(1);
}
end;
}
@@ -766,8 +766,9 @@ prt_are_in,129,83,3 script Staff#70-1 1_F_02,{
mes "You already have enough arena points.";
mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
next;
+ } else {
+ ++arena_point;
}
- else set arena_point, arena_point + 1;
mes "[Staff]";
mes "Let me guide you outside. I hope you had a good time.";
close2;
@@ -779,22 +780,22 @@ prt_are_in,129,83,3 script Staff#70-1 1_F_02,{
prt_are_in,25,84,3 script Staff#70-2 1_F_02,{
if($arena_min70end < $arena_min70st) {
if($arena_sec70end < $arena_sec70st) {
- set @record_min70,60 - $arena_min70st + $arena_min70end -1;
- set @record_sec70,60 - $arena_sec70st + $arena_sec70end;
+ @record_min70 = 60 - $arena_min70st + $arena_min70end -1;
+ @record_sec70 = 60 - $arena_sec70st + $arena_sec70end;
} else {
- set @record_min70,60 - $arena_min70st + $arena_min70end;
- set @record_sec70,$arena_sec70end - $arena_sec70st;
+ @record_min70 = 60 - $arena_min70st + $arena_min70end;
+ @record_sec70 = $arena_sec70end - $arena_sec70st;
}
} else {
if($arena_sec70end < $arena_sec70st) {
- set @record_min70,$arena_min70end - $arena_min70st -1;
- set @record_sec70,60 - $arena_sec70st + $arena_sec70end;
+ @record_min70 = $arena_min70end - $arena_min70st -1;
+ @record_sec70 = 60 - $arena_sec70st + $arena_sec70end;
} else {
- set @record_min70,$arena_min70end - $arena_min70st;
- set @record_sec70,$arena_sec70end - $arena_sec70st;
+ @record_min70 = $arena_min70end - $arena_min70st;
+ @record_sec70 = $arena_sec70end - $arena_sec70st;
}
}
- set @gap70,(60 * $top_70min + $top_70sec) - (60 * @record_min70 + @record_sec70);
+ @gap70 = (60 * $top_70min + $top_70sec) - (60 * @record_min70 + @record_sec70);
mes "[Staff]";
mes "Wow, you did a good job~ ";
mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
@@ -827,7 +828,7 @@ prt_are_in,25,84,3 script Staff#70-2 1_F_02,{
mes "Thank you.";
close2;
} else {
- set arena_point, arena_point + 20;
+ arena_point += 20;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -852,9 +853,9 @@ prt_are_in,25,84,3 script Staff#70-2 1_F_02,{
next;
mes "[Staff]";
mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 70s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
- set $top_70min, @record_min70;
- set $top_70sec, @record_sec70;
- set $arena_70topn$,strcharinfo(0);
+ $top_70min = @record_min70;
+ $top_70sec = @record_sec70;
+ $arena_70topn$ = strcharinfo(0);
donpcevent "Vendigos::OnLineRec_70";
next;
if (arena_point > 29970) {
@@ -874,7 +875,7 @@ prt_are_in,25,84,3 script Staff#70-2 1_F_02,{
mes "Let me reward you with some arena points.";
mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
next;
- set arena_point, arena_point + 50;
+ arena_point += 50;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -984,6 +985,6 @@ OnEnable:
end;
OnInit:
- if(!$top_70min && !$top_70sec) set $top_70min,7;
+ if(!$top_70min && !$top_70sec) $top_70min = 7;
end;
}
diff --git a/npc/other/arena/arena_lvl80.txt b/npc/other/arena/arena_lvl80.txt
index 773175a11..f610619b7 100644
--- a/npc/other/arena/arena_lvl80.txt
+++ b/npc/other/arena/arena_lvl80.txt
@@ -37,8 +37,8 @@ force_4-1,99,20,4 script Octus#arena 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- set $arena_min80st,gettime(2);
- set $arena_sec80st,gettime(1);
+ $arena_min80st = gettime(2);
+ $arena_sec80st = gettime(1);
end;
OnTimer3000:
@@ -730,8 +730,8 @@ OnMyMobDead:
donpcevent "Octus#arena::On09_End";
donpcevent "arena#80::OnReset_09";
donpcevent "arena#80::OnReset_All";
- set $arena_min80end,gettime(2);
- set $arena_sec80end,gettime(1);
+ $arena_min80end = gettime(2);
+ $arena_sec80end = gettime(1);
}
end;
}
@@ -747,8 +747,9 @@ prt_are_in,181,188,3 script Staff#80-1 1_F_02,{
mes "You already have enough arena points.";
mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
next;
+ } else {
+ ++arena_point;
}
- else set arena_point, arena_point + 1;
mes "[Staff]";
mes "Let me guide you outside. I hope you had a good time.";
close2;
@@ -760,22 +761,22 @@ prt_are_in,181,188,3 script Staff#80-1 1_F_02,{
prt_are_in,77,187,3 script Staff#80-2 1_F_02,{
if($arena_min80end < $arena_min80st) {
if($arena_sec80end < $arena_sec80st) {
- set @record_min80,60 - $arena_min80st + $arena_min80end -1;
- set @record_sec80,60 - $arena_sec80st + $arena_sec80end;
+ @record_min80 = 60 - $arena_min80st + $arena_min80end -1;
+ @record_sec80 = 60 - $arena_sec80st + $arena_sec80end;
} else {
- set @record_min80,60 - $arena_min80st + $arena_min80end;
- set @record_sec80,$arena_sec80end - $arena_sec80st;
+ @record_min80 = 60 - $arena_min80st + $arena_min80end;
+ @record_sec80 = $arena_sec80end - $arena_sec80st;
}
} else {
if($arena_sec80end < $arena_sec80st) {
- set @record_min80,$arena_min80end - $arena_min80st -1;
- set @record_sec80,60 - $arena_sec80st + $arena_sec80end;
+ @record_min80 = $arena_min80end - $arena_min80st -1;
+ @record_sec80 = 60 - $arena_sec80st + $arena_sec80end;
} else {
- set @record_min80,$arena_min80end - $arena_min80st;
- set @record_sec80,$arena_sec80end - $arena_sec80st;
+ @record_min80 = $arena_min80end - $arena_min80st;
+ @record_sec80 = $arena_sec80end - $arena_sec80st;
}
}
- set @gap80,(60 * $top_80min + $top_80sec) - (60 * @record_min80 + @record_sec80);
+ @gap80 = (60 * $top_80min + $top_80sec) - (60 * @record_min80 + @record_sec80);
mes "[Staff]";
mes "Wow, you did a good job~ ";
mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
@@ -808,7 +809,7 @@ prt_are_in,77,187,3 script Staff#80-2 1_F_02,{
mes "Thank you.";
close2;
} else {
- set arena_point, arena_point + 20;
+ arena_point += 20;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -833,9 +834,9 @@ prt_are_in,77,187,3 script Staff#80-2 1_F_02,{
next;
mes "[Staff]";
mes "You have been recorded as the fastest player among people who cleared ^FF0000Arena Time Force Battle lvl 80s^000000, ^3131FF"+strcharinfo(0)+"^000000.";
- set $top_80min, @record_min80;
- set $top_80sec, @record_sec80;
- set $arena_80topn$,strcharinfo(0);
+ $top_80min = @record_min80;
+ $top_80sec = @record_sec80;
+ $arena_80topn$ = strcharinfo(0);
donpcevent "Vendigos::OnLineRec_80";
next;
if (arena_point > 29980) {
@@ -855,7 +856,7 @@ prt_are_in,77,187,3 script Staff#80-2 1_F_02,{
mes "Let me reward you with some arena points.";
mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
next;
- set arena_point, arena_point + 50;
+ arena_point += 50;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -963,6 +964,6 @@ OnEnable:
end;
OnInit:
- if(!$top_80min && !$top_80sec) set $top_80min,8;
+ if(!$top_80min && !$top_80sec) $top_80min = 8;
end;
}
diff --git a/npc/other/arena/arena_party.txt b/npc/other/arena/arena_party.txt
index 218a6de90..ca4b74388 100644
--- a/npc/other/arena/arena_party.txt
+++ b/npc/other/arena/arena_party.txt
@@ -40,7 +40,7 @@ OnStart:
prt_are_in,76,87,3 script Helper#party 67,4,4,{
if($arn_partywait == 0) {
- set $arn_partywait,1;
+ $arn_partywait = 1;
emotion e_gasp,0;
mes "[Helper Iriff]";
mes "Good day, challengers!";
@@ -52,7 +52,7 @@ prt_are_in,76,87,3 script Helper#party 67,4,4,{
next;
switch( select( "No","Yes" ) ) {
case 1:
- set $arn_partywait,0;
+ $arn_partywait = 0;
mes "[Helper Iriff]";
mes "I see.";
mes "However, please remember you have only a limited amount of time.";
@@ -80,7 +80,7 @@ OnStop:
end;
OnInit:
- set $arn_partywait,0;
+ $arn_partywait = 0;
end;
}
@@ -94,7 +94,7 @@ OnTouch:
warp "arena_room",100,75;
else {
Zeny -= 1000;
- set $arn_partywait,0;
+ $arn_partywait = 0;
donpcevent "toout#party::OnStop";
warp "force_1-2",99,26;
}
@@ -114,7 +114,7 @@ OnTimer:
end;
OnTimer60000:
- set $arn_partywait,0;
+ $arn_partywait = 0;
enablenpc "toout#party";
end;
@@ -124,7 +124,7 @@ OnTimer70000:
disablenpc "toout#party";
OnTouch:
- set $arn_partywait,0;
+ $arn_partywait = 0;
warp "arena_room",100,75;
OnEnter:
@@ -139,7 +139,7 @@ OnStop:
prt_are_in,73,74,0 script arena_out -1,1,1,{
OnTouch:
- set $arn_partywait,0;
+ $arn_partywait = 0;
warp "arena_room",100,75;
end;
}
@@ -147,8 +147,8 @@ OnTouch:
force_1-2,99,31,4 script Slipslowrun#party 4_F_TELEPORTER,{
OnStart:
initnpctimer;
- set $arena_minptst,gettime(2);
- set $arena_secptst,gettime(1);
+ $arena_minptst = gettime(2);
+ $arena_secptst = gettime(1);
end;
OnTimer2000:
@@ -354,8 +354,8 @@ OnStart:
donpcevent "force_10mob-2#party::OnReset";
donpcevent "force_exitmob#party::OnReset";
donpcevent "Slipslowrun#party::OnStart";
- set $arn_partyc,0;
- set $arn_partywait,0;
+ $arn_partyc = 0;
+ $arn_partywait = 0;
end;
On04_Start:
@@ -412,8 +412,8 @@ OnReset:
force_1-2,95,187,0 script force_09_exit WARPNPC,1,1,{
OnTouch:
- set $arena_minptend,gettime(2);
- set $arena_secptend,gettime(1);
+ $arena_minptend = gettime(2);
+ $arena_secptend = gettime(1);
warp "prt_are_in",73,139;
donpcevent "#arn_timer_pt::OnEnter";
donpcevent "arena_p::OnReset";
@@ -466,7 +466,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_01mob#party::OnMyMobDead") < 1) {
enablenpc "force_01_00";
donpcevent "Slipslowrun#party::On01_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
if($arn_partyc == 3) {
donpcevent "Slipslowrun#party::On04_Start";
enablenpc "force_03_04";
@@ -525,7 +525,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_02mob#party::OnMyMobDead") < 1) {
enablenpc "force_02_00";
donpcevent "Slipslowrun#party::On02_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
if($arn_partyc == 3) {
donpcevent "Slipslowrun#party::On04_Start";
enablenpc "force_03_04";
@@ -580,7 +580,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_03mob#party::OnMyMobDead") < 1) {
enablenpc "force_03_00";
donpcevent "Slipslowrun#party::On03_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
if($arn_partyc == 3) {
donpcevent "Slipslowrun#party::On04_Start";
enablenpc "force_03_04";
@@ -725,7 +725,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_06mob#party::OnMyMobDead") < 1) {
donpcevent "arena_p::On07_Start";
donpcevent "Slipslowrun#party::On06_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
}
end;
}
@@ -761,7 +761,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_07mob#party::OnMyMobDead") < 1) {
donpcevent "arena_p::On08_Start";
donpcevent "Slipslowrun#party::On07_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
}
end;
}
@@ -778,20 +778,20 @@ OnEnable:
monster "force_1-2",172,154,"Khalitzburg",1438,1,"force_08mob#party::OnMyMobDead";
monster "force_1-2",174,145,"Ghostring",1576,1,"force_08mob#party::OnMyMobDead";
monster "force_1-2",174,145,"Chimera",1456,1,"force_08mob#party::OnMyMobDead";
- for(set .@i,0; .@i<5; set .@i,.@i+1) {
+ for(.@i = 0; .@i<5; ++.@i) {
monster "force_1-2",rand(162,184),rand(122,185),"Injustice",1446,1,"force_08mob#party::OnMyMobDead";
}
monster "force_1-2",rand(162,184),rand(122,185),"Raydric Archer",1453,1,"force_08mob#party::OnMyMobDead";
- for(set .@i,0; .@i<5; set .@i,.@i+1) {
+ for(.@i = 0; .@i<5; ++.@i) {
monster "force_1-2",rand(162,184),rand(122,185),"Nightmare Terror",1554,1,"force_08mob#party::OnMyMobDead";
}
- for(set .@i,0; .@i<6; set .@i,.@i+1) {
+ for(.@i = 0; .@i<6; ++.@i) {
monster "force_1-2",rand(162,184),rand(122,185),"Ancient Mummy",1522,1,"force_08mob#party::OnMyMobDead";
}
- for(set .@i,0; .@i<10; set .@i,.@i+1) {
+ for(.@i = 0; .@i<10; ++.@i) {
monster "force_1-2",rand(162,184),rand(122,185),"Skel Prisoner",1479,1,"force_08mob#party::OnMyMobDead";
}
- for(set .@i,0; .@i<5; set .@i,.@i+1) {
+ for(.@i = 0; .@i<5; ++.@i) {
monster "force_1-2",rand(162,184),rand(122,185),"Hunter Fly",1422,1,"force_08mob#party::OnMyMobDead";
}
end;
@@ -804,7 +804,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_08mob#party::OnMyMobDead") < 1) {
donpcevent "arena_p::On09_Start";
donpcevent "Slipslowrun#party::On08_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
}
end;
}
@@ -833,7 +833,7 @@ OnEnable:
monster "force_1-2",122,178,"Anolian",1488,1,"force_09mob#party::OnMyMobDead";
monster "force_1-2",121,177,"Anolian",1488,1,"force_09mob#party::OnMyMobDead";
monster "force_1-2",122,177,"Anolian",1488,1,"force_09mob#party::OnMyMobDead";
- set $force_09_pt,15;
+ $force_09_pt = 15;
end;
OnReset:
@@ -844,7 +844,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_09mob#party::OnMyMobDead") < 1) {
donpcevent "arena_p::On10_Start";
donpcevent "Slipslowrun#party::On09_End";
- set $arn_partyc,$arn_partyc +1;
+ ++$arn_partyc;
}
end;
}
@@ -896,7 +896,7 @@ OnMyMobDead:
if (mobcount("force_1-2","force_10mob-2#party::OnMyMobDead") < 1) {
donpcevent "arena_p::OnExit";
donpcevent "Slipslowrun#party::On10_End";
- set $arn_partyc,0;
+ $arn_partyc = 0;
}
end;
}
@@ -960,8 +960,9 @@ prt_are_in,181,135,3 script Staff#party-1 1_F_02,{
mes "You already have enough arena points.";
mes "Please spend some arena points later. When I see you next time, I will make sure to give you some reward.";
next;
+ } else {
+ ++arena_point;
}
- else set arena_point, arena_point + 1;
mes "[Staff]";
mes "Let me guide you outside. I hope you had a good time.";
close2;
@@ -973,22 +974,22 @@ prt_are_in,181,135,3 script Staff#party-1 1_F_02,{
prt_are_in,77,135,3 script Staff#party-2 1_F_02,{
if($arena_minptend < $arena_minptst) {
if($arena_secptend < $arena_secptst) {
- set @record_minpt,60 - $arena_minptst + $arena_minptend -1;
- set @record_secpt,60 - $arena_secptst + $arena_secptend;
+ @record_minpt = 60 - $arena_minptst + $arena_minptend -1;
+ @record_secpt = 60 - $arena_secptst + $arena_secptend;
} else {
- set @record_minpt,60 - $arena_minptst + $arena_minptend;
- set @record_secpt,$arena_secptend - $arena_secptst;
+ @record_minpt = 60 - $arena_minptst + $arena_minptend;
+ @record_secpt = $arena_secptend - $arena_secptst;
}
} else {
if($arena_secptend < $arena_secptst) {
- set @record_minpt,$arena_minptend - $arena_minptst -1;
- set @record_secpt,60 - $arena_secptst + $arena_secptend;
+ @record_minpt = $arena_minptend - $arena_minptst -1;
+ @record_secpt = 60 - $arena_secptst + $arena_secptend;
} else {
- set @record_minpt,$arena_minptend - $arena_minptst;
- set @record_secpt,$arena_secptend - $arena_secptst;
+ @record_minpt = $arena_minptend - $arena_minptst;
+ @record_secpt = $arena_secptend - $arena_secptst;
}
}
- set @gappt,(60 * $top_ptmin + $top_ptsec) - (60 * @record_minpt + @record_secpt);
+ @gappt = (60 * $top_ptmin + $top_ptsec) - (60 * @record_minpt + @record_secpt);
mes "[Staff]";
mes "Wow, you did a good job~ ";
mes "Your name is...^3131FF" + strcharinfo(0) +"^000000, isn't it?";
@@ -1004,7 +1005,7 @@ prt_are_in,77,135,3 script Staff#party-2 1_F_02,{
mes "[Staff]";
mes "^3131FF"+$arena_pttopn$+"^000000's running time was ^3131FF"+$top_ptmin+"^000000minutes ^3131FF"+$top_ptsec+"^000000seconds.";
next;
- set .arn_party,getcharid(1);
+ .arn_party = getcharid(1);
if (@gappt < 0) {
mes "[Staff]";
mes "Although you failed to make a new record, I hope you will succeed next time.";
@@ -1022,7 +1023,7 @@ prt_are_in,77,135,3 script Staff#party-2 1_F_02,{
mes "Thank you.";
close2;
} else {
- set arena_point, arena_point + 40;
+ arena_point += 40;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -1063,9 +1064,9 @@ prt_are_in,77,135,3 script Staff#party-2 1_F_02,{
next;
switch( select( "Yes","No" ) ) {
case 1:
- set $top_ptmin, @record_minpt;
- set $top_ptsec, @record_secpt;
- set $arena_pttopn$,.@arnparty$;
+ $top_ptmin = @record_minpt;
+ $top_ptsec = @record_secpt;
+ $arena_pttopn$ = .@arnparty$;
donpcevent "Vendigos::OnLineRec_pt";
mes "[Staff]";
mes "Your record has been entered.";
@@ -1100,7 +1101,7 @@ prt_are_in,77,135,3 script Staff#party-2 1_F_02,{
mes "Let me reward you with some arena points.";
mes "At the same time, since you have renewed the record you will receive an extra amount of the points this time.";
next;
- set arena_point, arena_point + 100;
+ arena_point += 100;
mes "[Staff]";
mes "Let me reward you some arena points.";
mes "If you wish to check the amount of arena points you have, please go talk to ^3131FFVendigos^000000 at the arena entrance.";
@@ -1230,14 +1231,14 @@ OnEnable:
donpcevent "Slipslowrun#party::OnTimerOff";
disablenpc "Slipslowrun#party";
disablenpc "arn_warp_pt";
- set $arn_partywait,0;
- set $arn_partyc,0;
+ $arn_partywait = 0;
+ $arn_partyc = 0;
donpcevent "#arn_timer_pt::OnStop";
enablenpc "Slipslowrun#party";
enablenpc "arena_p";
end;
OnInit:
- if(!$top_ptmin && !$top_ptsec) set $top_ptmin,10;
+ if(!$top_ptmin && !$top_ptsec) $top_ptmin = 10;
end;
}
diff --git a/npc/other/arena/arena_point.txt b/npc/other/arena/arena_point.txt
index 3b49596c0..e61db7f78 100644
--- a/npc/other/arena/arena_point.txt
+++ b/npc/other/arena/arena_point.txt
@@ -75,10 +75,10 @@ prt_are_in,103,11,3 script Arena Point Manager 4_M_JOB_HUNTER,{
close;
}
else {
- set .@want_point1,10 * .@input;
- set .@want_point,5 * .@input;
- set .@my_arena_all,arena_point + .@want_point;
- set .@my_turbo_all,tt_point - .@want_point1;
+ .@want_point1 = 10 * .@input;
+ .@want_point = 5 * .@input;
+ .@my_arena_all = arena_point + .@want_point;
+ .@my_turbo_all = tt_point - .@want_point1;
if (.@my_arena_all > 28999) {
mes "[Arena Point Manager]";
mes "You will exceed the";
@@ -111,8 +111,8 @@ prt_are_in,103,11,3 script Arena Point Manager 4_M_JOB_HUNTER,{
mes "into 5 Arena Points " + .@input + " times.";
mes "A total of " + .@want_point1 + " Turbo Track Points were converted into";
mes "" + .@want_point +" Arena Points.";
- set tt_point,tt_point - .@want_point1;
- set arena_point,arena_point+.@want_point;
+ tt_point -= .@want_point1;
+ arena_point += .@want_point;
next;
mes "[Arena Point Manager]";
mes "" + strcharinfo(0) + ",";
@@ -158,8 +158,8 @@ S_ExchangePoints:
mes "" + strcharinfo(0) + ",";
mes "you've converted "+getarg(1)+" Track";
mes "Points into "+getarg(2)+" Arena Point.";
- set tt_point,tt_point-getarg(1);
- set arena_point,arena_point+getarg(2);
+ tt_point -= getarg(1);
+ arena_point += getarg(2);
next;
mes "[Arena Point Manager]";
mes "" + strcharinfo(0) + ",";
diff --git a/npc/other/arena/arena_room.txt b/npc/other/arena/arena_room.txt
index 9330fcf6a..c06aef63d 100644
--- a/npc/other/arena/arena_room.txt
+++ b/npc/other/arena/arena_room.txt
@@ -392,7 +392,7 @@ arena_room,158,82,1 script Helper Lonik 4_M_ROGUE,{
}
sec_in02,72,180,3 script Arena Manager#arena 4_NFWISP,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "[Arena Manager]";
mes "Command has been canceled.";
@@ -408,16 +408,16 @@ sec_in02,72,180,3 script Arena Manager#arena 4_NFWISP,{
case 1:
switch(select("Lv 50:Lv 60:Lv 70:Lv 80:Party Mode")) {
case 1:
- set .@arena,50;
+ .@arena = 50;
break;
case 2:
- set .@arena,60;
+ .@arena = 60;
break;
case 3:
- set .@arena,70;
+ .@arena = 70;
break;
case 4:
- set .@arena,80;
+ .@arena = 80;
break;
case 5:
mes "[Arena Manager]";
@@ -470,29 +470,29 @@ sec_in02,72,180,3 script Arena Manager#arena 4_NFWISP,{
case 2:
switch(select("Lv 50:Lv 60:Lv 70:Lv 80:Party Mode")) {
case 1:
- set .@min$,"$top50min";
- set .@sec$,"$top50sec";
- set .@mode$,"Lv 50";
+ .@min$ = "$top50min";
+ .@sec$ = "$top50sec";
+ .@mode$ = "Lv 50";
break;
case 2:
- set .@min$,"$top60min";
- set .@sec$,"$top60sec";
- set .@mode$,"Lv 60";
+ .@min$ = "$top60min";
+ .@sec$ = "$top60sec";
+ .@mode$ = "Lv 60";
break;
case 3:
- set .@min$,"$top70min";
- set .@sec$,"$top70sec";
- set .@mode$,"Lv 70";
+ .@min$ = "$top70min";
+ .@sec$ = "$top70sec";
+ .@mode$ = "Lv 70";
break;
case 4:
- set .@min$,"$top80min";
- set .@sec$,"$top80sec";
- set .@mode$,"Lv 80";
+ .@min$ = "$top80min";
+ .@sec$ = "$top80sec";
+ .@mode$ = "Lv 80";
break;
case 5:
- set .@min$,"$top_ptmin";
- set .@sec$,"$top_ptsec";
- set .@mode$,"party";
+ .@min$ = "$top_ptmin";
+ .@sec$ = "$top_ptsec";
+ .@mode$ = "party";
break;
}
mes "[Arena Manager]";
@@ -514,7 +514,7 @@ sec_in02,72,180,3 script Arena Manager#arena 4_NFWISP,{
}
sec_in02,79,171,3 script Reward Manager#arena 4_NFWISP,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "[Reward Manager]";
mes "Command has been canceled.";
@@ -616,7 +616,7 @@ prt_are_in,98,14,3 script Givu#arena 4_F_JOB_KNIGHT,{
mes "Please check the total amount of arena points you have.";
close;
}
- set arena_point, arena_point-40;
+ arena_point -= 40;
if (checkre(3)) {
if (BaseLevel < 70) getexp 300,0;
else if (BaseLevel < 80) getexp 900,0;
@@ -661,16 +661,16 @@ prt_are_in,98,14,3 script Givu#arena 4_F_JOB_KNIGHT,{
mes "The NPC will appear for 1 minute and this service requires 10 arena points.";
next;
switch(select("Baphomet:Dark Lord:Doppelganger:Eddga:Dracula:Samurai:Stormy Knight:Phreeoni:Girl:Valkyrie")) {
- case 1: set $@arena_picture_id,1039; break;
- case 2: set $@arena_picture_id,1272; break;
- case 3: set $@arena_picture_id,1046; break;
- case 4: set $@arena_picture_id,1115; break;
- case 5: set $@arena_picture_id,1389; break;
- case 6: set $@arena_picture_id,1492; break;
- case 7: set $@arena_picture_id,1251; break;
- case 8: set $@arena_picture_id,1159; break;
- case 9: set $@arena_picture_id,6969; break;
- case 10: set $@arena_picture_id,7777; break;
+ case 1: $@arena_picture_id = 1039; break;
+ case 2: $@arena_picture_id = 1272; break;
+ case 3: $@arena_picture_id = 1046; break;
+ case 4: $@arena_picture_id = 1115; break;
+ case 5: $@arena_picture_id = 1389; break;
+ case 6: $@arena_picture_id = 1492; break;
+ case 7: $@arena_picture_id = 1251; break;
+ case 8: $@arena_picture_id = 1159; break;
+ case 9: $@arena_picture_id = 6969; break;
+ case 10: $@arena_picture_id = 7777; break;
}
if (arena_point < 10) {
mes "[Givu]";
@@ -688,8 +688,8 @@ prt_are_in,98,14,3 script Givu#arena 4_F_JOB_KNIGHT,{
next;
switch(select("Yes:No")) {
case 1:
- set arena_point, arena_point-10;
- set $@arena_picture,1;
+ arena_point -= 10;
+ $@arena_picture = 1;
enablenpc "#arena_"+$@arena_picture_id+"";
movenpc "#arena_"+$@arena_picture_id+"",96,28;
if ($@arena_picture_id == 6969) {
@@ -941,13 +941,13 @@ OnTimer62000:
mapannounce "prt_are_in","Time is over. Thank you for using my services.",1,0xFFCE00;
movenpc "#arena_"+$@arena_picture_id+"",1,1;
donpcevent "#arena_1039::OnInit";
- set $@arena_picture,0;
+ $@arena_picture = 0;
stopnpctimer;
end;
}
sec_in02,72,171,3 script Picture Manager#arena 4_NFWISP,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "[Picture Manager]";
mes "Command has been canceled.";
@@ -968,7 +968,7 @@ sec_in02,72,171,3 script Picture Manager#arena 4_NFWISP,{
case 2:
mes "[Picture Manager]";
mes "Picture rewarding reseted.";
- set $@arena_picture,0;
+ $@arena_picture = 0;
close;
}
}
@@ -1008,7 +1008,7 @@ function script Func_Are_Rew {
mes "Please check the total amount of arena points you have.";
close;
}
- set arena_point, arena_point - (.@reward * getarg(2));
+ arena_point -= (.@reward * getarg(2));
getitem getarg(0),.@reward * getarg(1);
mes "[Givu]";
mes "Thank you, please come again.";
diff --git a/npc/other/books.txt b/npc/other/books.txt
index 6f83ace1b..fed26bfeb 100644
--- a/npc/other/books.txt
+++ b/npc/other/books.txt
@@ -18,9 +18,9 @@ prt_in,168,56,4 script Monster Encyclopedia#prt HIDDEN_NPC,{
mes "containing information on Water,";
mes "Wind and Ghost property monsters.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
- set .@loop2,1;
+ .@loop2 = 1;
switch(select("Water Property Monsters:Wind Property Monsters:Spritual Property Monsters:Cancel")) {
case 1:
while(.@loop2) {
@@ -213,7 +213,7 @@ prt_in,168,56,4 script Monster Encyclopedia#prt HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -325,7 +325,7 @@ prt_in,168,56,4 script Monster Encyclopedia#prt HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -379,14 +379,14 @@ prt_in,168,56,4 script Monster Encyclopedia#prt HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
case 4:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -399,9 +399,9 @@ prt_in,159,56,4 script Monster Encyclopedia#2pr HIDDEN_NPC,{
mes "Fire and Neutral property";
mes "monsters.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
- set .@loop2,1;
+ .@loop2 = 1;
switch(select("Earth Property Monsters:Fire Property Monsters:Neutral Property Monsters:Cancel")) {
case 1:
while(.@loop2) {
@@ -648,7 +648,7 @@ prt_in,159,56,4 script Monster Encyclopedia#2pr HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -783,7 +783,7 @@ prt_in,159,56,4 script Monster Encyclopedia#2pr HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -858,14 +858,14 @@ prt_in,159,56,4 script Monster Encyclopedia#2pr HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
case 4:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -877,9 +877,9 @@ prt_in,161,50,4 script Monster Encyclopedia#3pr 111,{
mes "containing information on Dark,";
mes "Poison and Undead monsters.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
- set .@loop2,1;
+ .@loop2 = 1;
switch(select("Dark Property Monsters:Poison Property Monsters:Undead Property Monsters:Cancel")) {
case 1:
while(.@loop2) {
@@ -1011,7 +1011,7 @@ prt_in,161,50,4 script Monster Encyclopedia#3pr 111,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -1099,7 +1099,7 @@ prt_in,161,50,4 script Monster Encyclopedia#3pr 111,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
@@ -1226,14 +1226,14 @@ prt_in,161,50,4 script Monster Encyclopedia#3pr 111,{
break;
case 4:
close2;
- set .@loop2,0;
+ .@loop2 = 0;
end;
}
}
case 4:
close2;
- set .@loop,0;
+ .@loop = 0;
end;
}
}
@@ -1244,7 +1244,7 @@ prt_in,172,96,4 script Monster Encyclopedia#4pr HIDDEN_NPC,{
mes "This is an Encyclopedia describing";
mes "monsters living in Dungeons.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
switch(select("Ant Hell:Geffen Tower:Sphinx:Cancel")) {
case 1:
while(.@loop1) {
@@ -1350,7 +1350,7 @@ prt_in,172,96,4 script Monster Encyclopedia#4pr HIDDEN_NPC,{
break;
case 3:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -1547,7 +1547,7 @@ prt_in,172,96,4 script Monster Encyclopedia#4pr HIDDEN_NPC,{
break;
case 5:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -1710,7 +1710,7 @@ prt_in,172,96,4 script Monster Encyclopedia#4pr HIDDEN_NPC,{
break;
case 6:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -1726,7 +1726,7 @@ prt_in,164,96,4 script Monster Encyclopedia#5pr HIDDEN_NPC,{
mes "This is an Encyclopedia describing";
mes "Monsters living in Dungeons.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
switch(select("Orc Dungeon:Byalan Cave near Izlude:Prontera Culvert")){
case 1:
while(.@loop1) {
@@ -1803,7 +1803,7 @@ prt_in,164,96,4 script Monster Encyclopedia#5pr HIDDEN_NPC,{
break;
case 3:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2065,7 +2065,7 @@ prt_in,164,96,4 script Monster Encyclopedia#5pr HIDDEN_NPC,{
break;
case 6:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2290,7 +2290,7 @@ prt_in,164,96,4 script Monster Encyclopedia#5pr HIDDEN_NPC,{
break;
case 5:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2304,7 +2304,7 @@ prt_in,172,102,4 script Monster Encyclopedia#6pr HIDDEN_NPC,{
mes "This is an Encyclopedia describing";
mes "Monsters living in Dungeons.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
switch(select("Mjolnir Dead Pit:Payon Cave:Pyramid")) {
case 1:
while(.@loop1) {
@@ -2405,7 +2405,7 @@ prt_in,172,102,4 script Monster Encyclopedia#6pr HIDDEN_NPC,{
break;
case 4:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2583,7 +2583,7 @@ prt_in,172,102,4 script Monster Encyclopedia#6pr HIDDEN_NPC,{
break;
case 6:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2797,7 +2797,7 @@ prt_in,172,102,4 script Monster Encyclopedia#6pr HIDDEN_NPC,{
break;
case 7:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -2812,7 +2812,7 @@ prt_in,164,102,4 script Monster Encyclopedia#7pr HIDDEN_NPC,{
mes "This is an Encyclopedia describing";
mes "Monsters living in Dungeons.";
next;
- set .@loop1,1;
+ .@loop1 = 1;
switch(select("Sunken Ship near Alberta:Prontera Maze")) {
case 1:
while(.@loop1) {
@@ -2947,7 +2947,7 @@ prt_in,164,102,4 script Monster Encyclopedia#7pr HIDDEN_NPC,{
break;
case 3:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
@@ -3442,7 +3442,7 @@ prt_in,164,102,4 script Monster Encyclopedia#7pr HIDDEN_NPC,{
break;
case 3:
close2;
- set .@loop1,0;
+ .@loop1 = 0;
end;
}
}
diff --git a/npc/other/card_trader.txt b/npc/other/card_trader.txt
index 8838bafb9..871dd805a 100644
--- a/npc/other/card_trader.txt
+++ b/npc/other/card_trader.txt
@@ -57,7 +57,7 @@ prontera,115,90,0 script Putty 4_F_01,{
4453;
setarray .card[1], getarraysize(.card1), getarraysize(.card2), getarraysize(.card3);
}
- set .@points,oversea_event9;
+ .@points = oversea_event9;
if (!.@points) {
mes "[Putty]";
mes "Hi there.";
@@ -103,20 +103,20 @@ prontera,115,90,0 script Putty 4_F_01,{
mes "Please tell me what card you want to exchange.";
next;
input .@i$;
- set .@input$, "_"+.@i$;
- set .@card,0;
+ .@input$ = "_"+.@i$;
+ .@card = 0;
freeloop(1);
- for(set .@j,1; .@j<4; set .@j,.@j+1) {
- for(set .@i,0; .@i<.card[.@j]; set .@i,.@i+1)
+ for(.@j = 1; .@j<4; ++.@j) {
+ for(.@i = 0; .@i<.card[.@j]; ++.@i)
if (compare(.@input$,"_"+getitemname(getd(".card"+.@j+"["+.@i+"]")))) {
- set .@card, getd(".card"+.@j+"["+.@i+"]"); break; }
+ .@card = getd(".card"+.@j+"["+.@i+"]"); break; }
sleep2 10; // For good measure
if (.@card) break; }
freeloop(0);
mes "[Putty]";
if (!.@card) mes "Please, come back here if you want to exchange a monster card.";
else {
- set .@count, countitem(.@card);
+ .@count = countitem(.@card);
if (!.@count) {
mes "You don't have any ^0055FF"+getitemname(.@card)+"s^000000 with you!";
close; }
@@ -127,7 +127,7 @@ prontera,115,90,0 script Putty 4_F_01,{
switch(select("Yes, please!","No, thank you.")) {
case 1:
delitem .@card,.@count;
- set oversea_event9, (.@points+.@count);
+ oversea_event9 = (.@points+.@count);
mes "[Putty]";
mes "Alright, you have received ^CC0000"+.@count+"^000000 points.";
break;
@@ -150,7 +150,7 @@ prontera,115,90,0 script Putty 4_F_01,{
mes "Great, I wish you the best";
mes "of luck with this album. I have a";
mes "very good feeling about this one!";
- set oversea_event9, .@points - 100;
+ oversea_event9 = .@points - 100;
getitem 616,1;
close;
case 2:
@@ -158,7 +158,7 @@ prontera,115,90,0 script Putty 4_F_01,{
mes "[Putty]";
mes "Oh, you must like adventures.";
mes "Here you go, just what you need!";
- set oversea_event9, .@points - 50;
+ oversea_event9 = .@points - 50;
getitem 607,20;
close;
case 3:
@@ -166,7 +166,7 @@ prontera,115,90,0 script Putty 4_F_01,{
mes "[Putty]";
mes "Blue Potions? Are you sure?";
mes "If that's what you want, here they are!";
- set oversea_event9, .@points - 20;
+ oversea_event9 = .@points - 20;
getitem 505,10;
close;
case 4:
@@ -175,7 +175,7 @@ prontera,115,90,0 script Putty 4_F_01,{
mes "It took many bees";
mes "to make all of this.";
mes "Make good use of it.";
- set oversea_event9, .@points - 1;
+ oversea_event9 = .@points - 1;
getitem 518,4;
close;
case 5:
diff --git a/npc/other/comodo_gambling.txt b/npc/other/comodo_gambling.txt
index 28a2e799d..ea354e490 100644
--- a/npc/other/comodo_gambling.txt
+++ b/npc/other/comodo_gambling.txt
@@ -100,279 +100,279 @@ comodo,219,158,6 script Kachua 4_F_02,{
switch (select("Weapon", "Armor", "Garment", "Helmet", "Shoes", "Shield")) {
case 1: // Weapons
- set .@gamble1,rand(1,1000);
+ .@gamble1 = rand(1,1000);
if ((.@gamble1 > 920) && (.@gamble1 < 931)) {
- set .@gamble2,rand(1,85);
- if (.@gamble2 == 1) set .@item,1128; // Haedonggum[2]
- else if (.@gamble2 == 2) set .@item,1120; // Tsurugi[2]
- else if (.@gamble2 == 3) set .@item,1127; // Saber[3]
- else if (.@gamble2 == 4) set .@item,1158; // Two-Handed Sword[2]
- else if (.@gamble2 == 5) set .@item,1155; // Bastard Sword[3]
- else if (.@gamble2 == 6) set .@item,1220; // Gladius[3]
- else if (.@gamble2 == 7) set .@item,1222; // Damascus[1]
- else if (.@gamble2 == 8) set .@item,1253; // Katar[2]
- else if (.@gamble2 == 9) set .@item,1529; // Iron Driver
- else if (.@gamble2 == 10) set .@item,1251; // Jur[3]
- else if (.@gamble2 == 11) set .@item,1361; // Two-Handed Axe[2]
- else if (.@gamble2 == 12) set .@item,1258; // Katar of Raging Blaze
- else if (.@gamble2 == 13) set .@item,1257; // Katar of Quaking
- else if (.@gamble2 == 14) set .@item,1256; // Katar of Frozen Icicle
- else if (.@gamble2 == 15) set .@item,1259; // Katar of Piercing Wind
- else if (.@gamble2 == 16) set .@item,1260; // Sharpened Legbone of Ghoul
- else if (.@gamble2 == 17) set .@item,1716; // Gakkung Bow[2]
- else if (.@gamble2 == 18) set .@item,1715; // Arbalest[2]
- else if (.@gamble2 == 19) set .@item,1711; // Crossbow[3]
- else if (.@gamble2 == 20) set .@item,1702; // Bow[4]
- else if (.@gamble2 == 21) set .@item,1520; // Chain[3]
- else if (.@gamble2 == 22) set .@item,1610; // Arc Wand[1]
- else if (.@gamble2 == 23) set .@item,1615; // Evil Bone Wand
- else if (.@gamble2 == 24) set .@item,1602; // Rod[4]
- else if (.@gamble2 == 25) set .@item,1461; // Trident[3]
- else if (.@gamble2 == 26) set .@item,1402; // Javelin[4]
- else if (.@gamble2 == 27) set .@item,1961; // Whip[2]
- else if (.@gamble2 == 28) set .@item,1957; // Rante Whip[1]
- else if (.@gamble2 == 29) set .@item,1552; // Tablet[1]
- else if (.@gamble2 == 30) set .@item,1551; // Bible[2]
- else if (.@gamble2 == 31) set .@item,1553; // Book of Billows
- else if (.@gamble2 == 32) set .@item,1554; // Book of Mother Earth
- else if (.@gamble2 == 33) set .@item,1555; // Book of the Blazing Sun
- else if (.@gamble2 == 34) set .@item,1556; // Book of Gust of Wind
- else if (.@gamble2 == 35) set .@item,1951; // Rope[4]
- else if (.@gamble2 == 36) set .@item,1959; // Tail Whip[2]
- else if (.@gamble2 == 37) set .@item,1953; // Whip[3]
- else if (.@gamble2 == 38) set .@item,1955; // Wire Whip[3]
- else if (.@gamble2 == 39) set .@item,1810; // Claw[2]
- else if (.@gamble2 == 40) set .@item,1910; // Harp[2]
- else if (.@gamble2 == 41) set .@item,1906; // Lute[3]
- else if (.@gamble2 == 42) set .@item,1902; // Violin[4]
- else if (.@gamble2 == 43) set .@item,1904; // Mandolin[3]
- else if (.@gamble2 == 44) set .@item,1912; // Gumoongoh[2]
- else if (.@gamble2 == 45) set .@item,1908; // Guitar[1]
- else if (.@gamble2 == 46) set .@item,1808; // Fist[1]
- else if (.@gamble2 == 47) set .@item,1802; // Waghnak[4]
- else if (.@gamble2 == 48) set .@item,1812; // Finger[2]
- else if (.@gamble2 == 49) set .@item,1806; // Studded Knuckles[3]
- else if (.@gamble2 == 50) set .@item,1804; // Knuckle Duster[3]
- else if (.@gamble2 == 51) set .@item,1550; // Book[3]
- else if (.@gamble2 == 52) set .@item,1246; // Cinquedea[2]
- else if (.@gamble2 == 53) set .@item,1147; // Town Sword
- else if (.@gamble2 > 53 && .@gamble2 < 56) set .@item,1264; // Specialty Jur[4]
- else if (.@gamble2 > 55 && .@gamble2 < 58) set .@item,1262; // Loki's Nail
- else if (.@gamble2 > 57 && .@gamble2 < 60) set .@item,1622; // Hypnotist's Staff[2]
- else if (.@gamble2 == 60) set .@item,1723; // Luna Bow[2]
- else if (.@gamble2 > 60 && .@gamble2 < 63) set .@item,1965; // Red Flame Whip
- else if (.@gamble2 > 62 && .@gamble2 < 65) set .@item,1966; // Icicle Whip
- else if (.@gamble2 > 64 && .@gamble2 < 67) set .@item,1967; // Gaia Whip
- else if (.@gamble2 > 66 && .@gamble2 < 69) set .@item,1968; // Skipping Rope
- else if (.@gamble2 > 68 && .@gamble2 < 71) set .@item,1914; // Burning Passion Guitar
- else if (.@gamble2 > 70 && .@gamble2 < 73) set .@item,1915; // Loner's Guitar
- else if (.@gamble2 > 72 && .@gamble2 < 75) set .@item,1916; // Green Acre Guitar
- else if (.@gamble2 > 74 && .@gamble2 < 77) set .@item,1917; // Gentle Breeze Guitar
- else if (.@gamble2 > 76 && .@gamble2 < 79) set .@item,13004; // Cowardice Blade[2]
- else if (.@gamble2 > 78 && .@gamble2 < 81) set .@item,1307; // Windhawk
- else if (.@gamble2 == 81) set .@item,1560; // Sage's Diary[2]
- else if (.@gamble2 == 82) set .@item,1618; // Survivor's Rod[1]
- else if (.@gamble2 == 83) set .@item,1620; // Survivor's Rod[1]
- else if (.@gamble2 > 83 && .@gamble2 < 86) set .@item,1971; // Electric Wire
+ .@gamble2 = rand(1,85);
+ if (.@gamble2 == 1) .@item = 1128; // Haedonggum[2]
+ else if (.@gamble2 == 2) .@item = 1120; // Tsurugi[2]
+ else if (.@gamble2 == 3) .@item = 1127; // Saber[3]
+ else if (.@gamble2 == 4) .@item = 1158; // Two-Handed Sword[2]
+ else if (.@gamble2 == 5) .@item = 1155; // Bastard Sword[3]
+ else if (.@gamble2 == 6) .@item = 1220; // Gladius[3]
+ else if (.@gamble2 == 7) .@item = 1222; // Damascus[1]
+ else if (.@gamble2 == 8) .@item = 1253; // Katar[2]
+ else if (.@gamble2 == 9) .@item = 1529; // Iron Driver
+ else if (.@gamble2 == 10) .@item = 1251; // Jur[3]
+ else if (.@gamble2 == 11) .@item = 1361; // Two-Handed Axe[2]
+ else if (.@gamble2 == 12) .@item = 1258; // Katar of Raging Blaze
+ else if (.@gamble2 == 13) .@item = 1257; // Katar of Quaking
+ else if (.@gamble2 == 14) .@item = 1256; // Katar of Frozen Icicle
+ else if (.@gamble2 == 15) .@item = 1259; // Katar of Piercing Wind
+ else if (.@gamble2 == 16) .@item = 1260; // Sharpened Legbone of Ghoul
+ else if (.@gamble2 == 17) .@item = 1716; // Gakkung Bow[2]
+ else if (.@gamble2 == 18) .@item = 1715; // Arbalest[2]
+ else if (.@gamble2 == 19) .@item = 1711; // Crossbow[3]
+ else if (.@gamble2 == 20) .@item = 1702; // Bow[4]
+ else if (.@gamble2 == 21) .@item = 1520; // Chain[3]
+ else if (.@gamble2 == 22) .@item = 1610; // Arc Wand[1]
+ else if (.@gamble2 == 23) .@item = 1615; // Evil Bone Wand
+ else if (.@gamble2 == 24) .@item = 1602; // Rod[4]
+ else if (.@gamble2 == 25) .@item = 1461; // Trident[3]
+ else if (.@gamble2 == 26) .@item = 1402; // Javelin[4]
+ else if (.@gamble2 == 27) .@item = 1961; // Whip[2]
+ else if (.@gamble2 == 28) .@item = 1957; // Rante Whip[1]
+ else if (.@gamble2 == 29) .@item = 1552; // Tablet[1]
+ else if (.@gamble2 == 30) .@item = 1551; // Bible[2]
+ else if (.@gamble2 == 31) .@item = 1553; // Book of Billows
+ else if (.@gamble2 == 32) .@item = 1554; // Book of Mother Earth
+ else if (.@gamble2 == 33) .@item = 1555; // Book of the Blazing Sun
+ else if (.@gamble2 == 34) .@item = 1556; // Book of Gust of Wind
+ else if (.@gamble2 == 35) .@item = 1951; // Rope[4]
+ else if (.@gamble2 == 36) .@item = 1959; // Tail Whip[2]
+ else if (.@gamble2 == 37) .@item = 1953; // Whip[3]
+ else if (.@gamble2 == 38) .@item = 1955; // Wire Whip[3]
+ else if (.@gamble2 == 39) .@item = 1810; // Claw[2]
+ else if (.@gamble2 == 40) .@item = 1910; // Harp[2]
+ else if (.@gamble2 == 41) .@item = 1906; // Lute[3]
+ else if (.@gamble2 == 42) .@item = 1902; // Violin[4]
+ else if (.@gamble2 == 43) .@item = 1904; // Mandolin[3]
+ else if (.@gamble2 == 44) .@item = 1912; // Gumoongoh[2]
+ else if (.@gamble2 == 45) .@item = 1908; // Guitar[1]
+ else if (.@gamble2 == 46) .@item = 1808; // Fist[1]
+ else if (.@gamble2 == 47) .@item = 1802; // Waghnak[4]
+ else if (.@gamble2 == 48) .@item = 1812; // Finger[2]
+ else if (.@gamble2 == 49) .@item = 1806; // Studded Knuckles[3]
+ else if (.@gamble2 == 50) .@item = 1804; // Knuckle Duster[3]
+ else if (.@gamble2 == 51) .@item = 1550; // Book[3]
+ else if (.@gamble2 == 52) .@item = 1246; // Cinquedea[2]
+ else if (.@gamble2 == 53) .@item = 1147; // Town Sword
+ else if (.@gamble2 > 53 && .@gamble2 < 56) .@item = 1264; // Specialty Jur[4]
+ else if (.@gamble2 > 55 && .@gamble2 < 58) .@item = 1262; // Loki's Nail
+ else if (.@gamble2 > 57 && .@gamble2 < 60) .@item = 1622; // Hypnotist's Staff[2]
+ else if (.@gamble2 == 60) .@item = 1723; // Luna Bow[2]
+ else if (.@gamble2 > 60 && .@gamble2 < 63) .@item = 1965; // Red Flame Whip
+ else if (.@gamble2 > 62 && .@gamble2 < 65) .@item = 1966; // Icicle Whip
+ else if (.@gamble2 > 64 && .@gamble2 < 67) .@item = 1967; // Gaia Whip
+ else if (.@gamble2 > 66 && .@gamble2 < 69) .@item = 1968; // Skipping Rope
+ else if (.@gamble2 > 68 && .@gamble2 < 71) .@item = 1914; // Burning Passion Guitar
+ else if (.@gamble2 > 70 && .@gamble2 < 73) .@item = 1915; // Loner's Guitar
+ else if (.@gamble2 > 72 && .@gamble2 < 75) .@item = 1916; // Green Acre Guitar
+ else if (.@gamble2 > 74 && .@gamble2 < 77) .@item = 1917; // Gentle Breeze Guitar
+ else if (.@gamble2 > 76 && .@gamble2 < 79) .@item = 13004; // Cowardice Blade[2]
+ else if (.@gamble2 > 78 && .@gamble2 < 81) .@item = 1307; // Windhawk
+ else if (.@gamble2 == 81) .@item = 1560; // Sage's Diary[2]
+ else if (.@gamble2 == 82) .@item = 1618; // Survivor's Rod[1]
+ else if (.@gamble2 == 83) .@item = 1620; // Survivor's Rod[1]
+ else if (.@gamble2 > 83 && .@gamble2 < 86) .@item = 1971; // Electric Wire
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 201)) set .@item,1201; // Knife[3]
- else if ((.@gamble1 > 200) && (.@gamble1 < 301)) set .@item,1101; // Sword[3]
- else if ((.@gamble1 > 300) && (.@gamble1 < 401)) set .@item,1601; // Rod[3]
- else if ((.@gamble1 > 400) && (.@gamble1 < 501)) set .@item,1116; // Katana[3]
- else if ((.@gamble1 > 500) && (.@gamble1 < 601)) set .@item,1250; // Jur[2]
- else if ((.@gamble1 > 600) && (.@gamble1 < 701)) set .@item,1301; // Axe[3]
- else if ((.@gamble1 > 700) && (.@gamble1 < 801)) set .@item,1701; // Bow[3]
- else if ((.@gamble1 > 800) && (.@gamble1 < 851)) set .@item,1504; // Mace[3]
- else if ((.@gamble1 > 850) && (.@gamble1 < 901)) set .@item,1604; // Wand[2]
- else if ((.@gamble1 > 900) && (.@gamble1 < 911)) set .@item,1108; // Blade[4]
- else if ((.@gamble1 > 910) && (.@gamble1 < 921)) set .@item,1163; // Claymore
- else if ((.@gamble1 > 930) && (.@gamble1 < 961)) set .@item,1522; // Stunner
- else if ((.@gamble1 > 960) && (.@gamble1 < 971)) set .@item,1608; // Staff[3]
- else if ((.@gamble1 > 970) && (.@gamble1 < 981)) set .@item,1408; // Pike[4]
- else if ((.@gamble1 > 980) && (.@gamble1 < 991)) set .@item,1452; // Guisarme[3]
- else if ((.@gamble1 > 990) && (.@gamble1 < 1001)) set .@item,1208; // Main Gauche[4]
+ else if ((.@gamble1 > 0) && (.@gamble1 < 201)) .@item = 1201; // Knife[3]
+ else if ((.@gamble1 > 200) && (.@gamble1 < 301)) .@item = 1101; // Sword[3]
+ else if ((.@gamble1 > 300) && (.@gamble1 < 401)) .@item = 1601; // Rod[3]
+ else if ((.@gamble1 > 400) && (.@gamble1 < 501)) .@item = 1116; // Katana[3]
+ else if ((.@gamble1 > 500) && (.@gamble1 < 601)) .@item = 1250; // Jur[2]
+ else if ((.@gamble1 > 600) && (.@gamble1 < 701)) .@item = 1301; // Axe[3]
+ else if ((.@gamble1 > 700) && (.@gamble1 < 801)) .@item = 1701; // Bow[3]
+ else if ((.@gamble1 > 800) && (.@gamble1 < 851)) .@item = 1504; // Mace[3]
+ else if ((.@gamble1 > 850) && (.@gamble1 < 901)) .@item = 1604; // Wand[2]
+ else if ((.@gamble1 > 900) && (.@gamble1 < 911)) .@item = 1108; // Blade[4]
+ else if ((.@gamble1 > 910) && (.@gamble1 < 921)) .@item = 1163; // Claymore
+ else if ((.@gamble1 > 930) && (.@gamble1 < 961)) .@item = 1522; // Stunner
+ else if ((.@gamble1 > 960) && (.@gamble1 < 971)) .@item = 1608; // Staff[3]
+ else if ((.@gamble1 > 970) && (.@gamble1 < 981)) .@item = 1408; // Pike[4]
+ else if ((.@gamble1 > 980) && (.@gamble1 < 991)) .@item = 1452; // Guisarme[3]
+ else if ((.@gamble1 > 990) && (.@gamble1 < 1001)) .@item = 1208; // Main Gauche[4]
break;
case 2: // Armors
- set .@gamble1,rand(1,500);
+ .@gamble1 = rand(1,500);
if ((.@gamble1 > 299) && (.@gamble1 < 303)) {
- set .@gamble2,rand(1,30);
- if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,2315; // Chain Mail[1]
- else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,2336; // Thief Clothes[1]
- else if ((.@gamble2 > 4) && (.@gamble2 < 7)) set .@item,2318; // Lord's Clothes[1]
- else if ((.@gamble2 > 6) && (.@gamble2 < 9)) set .@item,2326; // Saint's Robe[1]
- else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,2327; // Holy Robe
- else if ((.@gamble2 > 10) && (.@gamble2 < 13)) set .@item,2342; // Legion Plate Armor[1]
- else if ((.@gamble2 > 12) && (.@gamble2 < 15)) set .@item,2331; // Tights[1]
- else if ((.@gamble2 > 14) && (.@gamble2 < 17)) set .@item,2342; // Legion Plate Armor[1]
- else if ((.@gamble2 > 16) && (.@gamble2 < 19)) set .@item,2311; // Mink Coat[1]
- else if ((.@gamble2 > 18) && (.@gamble2 < 21)) set .@item,2320; // Formal Suit[1]
- else if ((.@gamble2 > 20) && (.@gamble2 < 23)) set .@item,2319; // Glittering Jacket[1]
- else if ((.@gamble2 > 22) && (.@gamble2 < 25)) set .@item,2344; // Lucius's Fierce Armor of Volcano
- else if ((.@gamble2 > 24) && (.@gamble2 < 27)) set .@item,2346; // Saphien's Armor of Ocean
- else if ((.@gamble2 > 26) && (.@gamble2 < 29)) set .@item,2348; // Aebeccee's Raging Typhoon Armor
- else if ((.@gamble2 > 28) && (.@gamble2 < 31)) set .@item,2350; // Claytos Cracking Earth Armor
+ .@gamble2 = rand(1,30);
+ if ((.@gamble2 > 0) && (.@gamble2 < 3)) .@item = 2315; // Chain Mail[1]
+ else if ((.@gamble2 > 2) && (.@gamble2 < 5)) .@item = 2336; // Thief Clothes[1]
+ else if ((.@gamble2 > 4) && (.@gamble2 < 7)) .@item = 2318; // Lord's Clothes[1]
+ else if ((.@gamble2 > 6) && (.@gamble2 < 9)) .@item = 2326; // Saint's Robe[1]
+ else if ((.@gamble2 > 8) && (.@gamble2 < 11)) .@item = 2327; // Holy Robe
+ else if ((.@gamble2 > 10) && (.@gamble2 < 13)) .@item = 2342; // Legion Plate Armor[1]
+ else if ((.@gamble2 > 12) && (.@gamble2 < 15)) .@item = 2331; // Tights[1]
+ else if ((.@gamble2 > 14) && (.@gamble2 < 17)) .@item = 2342; // Legion Plate Armor[1]
+ else if ((.@gamble2 > 16) && (.@gamble2 < 19)) .@item = 2311; // Mink Coat[1]
+ else if ((.@gamble2 > 18) && (.@gamble2 < 21)) .@item = 2320; // Formal Suit[1]
+ else if ((.@gamble2 > 20) && (.@gamble2 < 23)) .@item = 2319; // Glittering Jacket[1]
+ else if ((.@gamble2 > 22) && (.@gamble2 < 25)) .@item = 2344; // Lucius's Fierce Armor of Volcano
+ else if ((.@gamble2 > 24) && (.@gamble2 < 27)) .@item = 2346; // Saphien's Armor of Ocean
+ else if ((.@gamble2 > 26) && (.@gamble2 < 29)) .@item = 2348; // Aebeccee's Raging Typhoon Armor
+ else if ((.@gamble2 > 28) && (.@gamble2 < 31)) .@item = 2350; // Claytos Cracking Earth Armor
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 51)) set .@item,2301; // Cotton Shirt
- else if ((.@gamble1 > 50) && (.@gamble1 < 101)) set .@item,2302; // Cotton Shirt[1]
- else if ((.@gamble1 > 100) && (.@gamble1 < 151)) set .@item,2303; // Jacket
- else if ((.@gamble1 > 150) && (.@gamble1 < 201)) set .@item,2304; // Jacket[1]
- else if ((.@gamble1 > 200) && (.@gamble1 < 251)) set .@item,2305; // Adventurer's Suit
- else if ((.@gamble1 > 250) && (.@gamble1 < 300)) set .@item,2301; // Cotton Shirt
- else if ((.@gamble1 > 301) && (.@gamble1 < 351)) set .@item,2307; // Mantle
- else if ((.@gamble1 > 350) && (.@gamble1 < 401)) set .@item,2309; // Coat
- else if ((.@gamble1 > 400) && (.@gamble1 < 402)) set .@item,2322; // Silk Robe[1]
- else if ((.@gamble1 > 401) && (.@gamble1 < 403)) set .@item,2310; // Coat[1]
- else if ((.@gamble1 > 402) && (.@gamble1 < 411)) set .@item,2306; // Adventurer's Suit[1]
- else if ((.@gamble1 > 410) && (.@gamble1 < 416)) set .@item,2308; // Mantle[1]
- else if ((.@gamble1 > 415) && (.@gamble1 < 421)) set .@item,2313; // Padded Armor[1]
- else if ((.@gamble1 > 420) && (.@gamble1 < 426)) set .@item,2337; // Ninja Suit
- else if ((.@gamble1 > 425) && (.@gamble1 < 431)) set .@item,2341; // Legion Plate Armor
- else if ((.@gamble1 > 430) && (.@gamble1 < 436)) set .@item,2325; // Saint's Robe
- else if ((.@gamble1 > 435) && (.@gamble1 < 441)) set .@item,2317; // Full Plate
- else if ((.@gamble1 > 440) && (.@gamble1 < 446)) set .@item,2330; // Tights
- else if ((.@gamble1 > 445) && (.@gamble1 < 451)) set .@item,2314; // Chain Mail
- else if ((.@gamble1 > 450) && (.@gamble1 < 456)) set .@item,2335; // Thief Clothes
- else if ((.@gamble1 > 455) && (.@gamble1 < 461)) set .@item,2324; // Scapulare[1]
- else if ((.@gamble1 > 460) && (.@gamble1 < 466)) set .@item,2329; // Wooden Mail[1]
- else if ((.@gamble1 > 465) && (.@gamble1 < 471)) set .@item,2340; // Novice Breastplate[1]
- else if ((.@gamble1 > 470) && (.@gamble1 < 476)) set .@item,2312; // Padded Armor
- else if ((.@gamble1 > 475) && (.@gamble1 < 481)) set .@item,2339; // Pantie
- else if ((.@gamble1 > 480) && (.@gamble1 < 486)) set .@item,2328; // Wooden Mail
- else if ((.@gamble1 > 485) && (.@gamble1 < 491)) set .@item,2321; // Silk Robe
- else if ((.@gamble1 > 490) && (.@gamble1 < 501)) set .@item,2323; // Scapulare
+ else if ((.@gamble1 > 0) && (.@gamble1 < 51)) .@item = 2301; // Cotton Shirt
+ else if ((.@gamble1 > 50) && (.@gamble1 < 101)) .@item = 2302; // Cotton Shirt[1]
+ else if ((.@gamble1 > 100) && (.@gamble1 < 151)) .@item = 2303; // Jacket
+ else if ((.@gamble1 > 150) && (.@gamble1 < 201)) .@item = 2304; // Jacket[1]
+ else if ((.@gamble1 > 200) && (.@gamble1 < 251)) .@item = 2305; // Adventurer's Suit
+ else if ((.@gamble1 > 250) && (.@gamble1 < 300)) .@item = 2301; // Cotton Shirt
+ else if ((.@gamble1 > 301) && (.@gamble1 < 351)) .@item = 2307; // Mantle
+ else if ((.@gamble1 > 350) && (.@gamble1 < 401)) .@item = 2309; // Coat
+ else if ((.@gamble1 > 400) && (.@gamble1 < 402)) .@item = 2322; // Silk Robe[1]
+ else if ((.@gamble1 > 401) && (.@gamble1 < 403)) .@item = 2310; // Coat[1]
+ else if ((.@gamble1 > 402) && (.@gamble1 < 411)) .@item = 2306; // Adventurer's Suit[1]
+ else if ((.@gamble1 > 410) && (.@gamble1 < 416)) .@item = 2308; // Mantle[1]
+ else if ((.@gamble1 > 415) && (.@gamble1 < 421)) .@item = 2313; // Padded Armor[1]
+ else if ((.@gamble1 > 420) && (.@gamble1 < 426)) .@item = 2337; // Ninja Suit
+ else if ((.@gamble1 > 425) && (.@gamble1 < 431)) .@item = 2341; // Legion Plate Armor
+ else if ((.@gamble1 > 430) && (.@gamble1 < 436)) .@item = 2325; // Saint's Robe
+ else if ((.@gamble1 > 435) && (.@gamble1 < 441)) .@item = 2317; // Full Plate
+ else if ((.@gamble1 > 440) && (.@gamble1 < 446)) .@item = 2330; // Tights
+ else if ((.@gamble1 > 445) && (.@gamble1 < 451)) .@item = 2314; // Chain Mail
+ else if ((.@gamble1 > 450) && (.@gamble1 < 456)) .@item = 2335; // Thief Clothes
+ else if ((.@gamble1 > 455) && (.@gamble1 < 461)) .@item = 2324; // Scapulare[1]
+ else if ((.@gamble1 > 460) && (.@gamble1 < 466)) .@item = 2329; // Wooden Mail[1]
+ else if ((.@gamble1 > 465) && (.@gamble1 < 471)) .@item = 2340; // Novice Breastplate[1]
+ else if ((.@gamble1 > 470) && (.@gamble1 < 476)) .@item = 2312; // Padded Armor
+ else if ((.@gamble1 > 475) && (.@gamble1 < 481)) .@item = 2339; // Pantie
+ else if ((.@gamble1 > 480) && (.@gamble1 < 486)) .@item = 2328; // Wooden Mail
+ else if ((.@gamble1 > 485) && (.@gamble1 < 491)) .@item = 2321; // Silk Robe
+ else if ((.@gamble1 > 490) && (.@gamble1 < 501)) .@item = 2323; // Scapulare
break;
case 3: // Garments
- set .@gamble1,rand(1,500);
+ .@gamble1 = rand(1,500);
if ((.@gamble1 > 200) && (.@gamble1 < 204)) {
- set .@gamble2,rand(1,16);
- if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,2506; // Manteau[1]
- else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,2504; // Muffler[1]
- else if ((.@gamble2 > 4) && (.@gamble2 < 8)) set .@item,2508; // Ragamuffin Manteau
- else if ((.@gamble2 > 7) && (.@gamble2 < 11)) set .@item,2507; // Ancient Cape
- else if (.@gamble2 == 11) set .@item,2513; // Heavenly Maiden Robe[1]
- else if (.@gamble2 == 12) set .@item,2514; // Pauldron[1]
- else if (.@gamble2 == 13) set .@item,2523; // Undershirt[1]
- else if (.@gamble2 == 14) set .@item,2530; // Rider Insigna[1]
- else if (.@gamble2 == 15) set .@item,2509; // Survivor's Manteau
- else if (.@gamble2 == 16) set .@item,2515; // Eagle Wing[1]
+ .@gamble2 = rand(1,16);
+ if ((.@gamble2 > 0) && (.@gamble2 < 3)) .@item = 2506; // Manteau[1]
+ else if ((.@gamble2 > 2) && (.@gamble2 < 5)) .@item = 2504; // Muffler[1]
+ else if ((.@gamble2 > 4) && (.@gamble2 < 8)) .@item = 2508; // Ragamuffin Manteau
+ else if ((.@gamble2 > 7) && (.@gamble2 < 11)) .@item = 2507; // Ancient Cape
+ else if (.@gamble2 == 11) .@item = 2513; // Heavenly Maiden Robe[1]
+ else if (.@gamble2 == 12) .@item = 2514; // Pauldron[1]
+ else if (.@gamble2 == 13) .@item = 2523; // Undershirt[1]
+ else if (.@gamble2 == 14) .@item = 2530; // Rider Insigna[1]
+ else if (.@gamble2 == 15) .@item = 2509; // Survivor's Manteau
+ else if (.@gamble2 == 16) .@item = 2515; // Eagle Wing[1]
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 101)) set .@item,2503; // Muffler
- else if ((.@gamble1 > 100) && (.@gamble1 < 201)) set .@item,2505; // Manteau
- else if ((.@gamble1 > 203) && (.@gamble1 < 451)) set .@item,2501; // Hood
- else if ((.@gamble1 > 450) && (.@gamble1 < 501)) set .@item,2502; // Hood[1]
+ else if ((.@gamble1 > 0) && (.@gamble1 < 101)) .@item = 2503; // Muffler
+ else if ((.@gamble1 > 100) && (.@gamble1 < 201)) .@item = 2505; // Manteau
+ else if ((.@gamble1 > 203) && (.@gamble1 < 451)) .@item = 2501; // Hood
+ else if ((.@gamble1 > 450) && (.@gamble1 < 501)) .@item = 2502; // Hood[1]
break;
case 4: // Headgears
- set .@gamble1,rand(1,1000);
+ .@gamble1 = rand(1,1000);
if ((.@gamble1 > 299) && (.@gamble1 < 304)) {
- set .@gamble2,rand(1,93);
- if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,2251; // Monk Hat
- else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,2285; // Apple of Archer
- else if ((.@gamble2 > 4) && (.@gamble2 < 7)) set .@item,2255; // Evil Wing
- else if ((.@gamble2 > 6) && (.@gamble2 < 9)) set .@item,5045; // Magician Hat
- else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,2233; // Circlet[1]
- else if ((.@gamble2 > 10) && (.@gamble2 < 13)) set .@item,2231; // Gemmed Sallet[1]
- else if ((.@gamble2 > 12) && (.@gamble2 < 15)) set .@item,2217; // Biretta[1]
- else if ((.@gamble2 > 14) && (.@gamble2 < 17)) set .@item,2206; // Wedding Veil
- else if ((.@gamble2 > 16) && (.@gamble2 < 19)) set .@item,2246; // Golden Gear
- else if ((.@gamble2 > 18) && (.@gamble2 < 21)) set .@item,2261; // Army Cap
- else if ((.@gamble2 > 20) && (.@gamble2 < 23)) set .@item,2287; // Pirate Bandana
- else if ((.@gamble2 > 22) && (.@gamble2 < 25)) set .@item,5012; // Ph.D Hat
- else if ((.@gamble2 > 24) && (.@gamble2 < 27)) set .@item,2244; // Big Ribbon
- else if ((.@gamble2 > 26) && (.@gamble2 < 29)) set .@item,2213; // Kitty Band
- else if ((.@gamble2 > 28) && (.@gamble2 < 31)) set .@item,2248; // Western Grace
- else if ((.@gamble2 > 30) && (.@gamble2 < 33)) set .@item,2223; // Turban[1]
- else if ((.@gamble2 > 32) && (.@gamble2 < 35)) set .@item,2247; // Romantic Gent
- else if ((.@gamble2 > 34) && (.@gamble2 < 37)) set .@item,2245; // Sweet Gent
- else if ((.@gamble2 > 36) && (.@gamble2 < 39)) set .@item,5003; // Joker Jester
- else if ((.@gamble2 > 38) && (.@gamble2 < 41)) set .@item,2225; // Goggles[1]
- else if ((.@gamble2 > 40) && (.@gamble2 < 43)) set .@item,5017; // Bone Helm
- else if ((.@gamble2 > 42) && (.@gamble2 < 45)) set .@item,5030; // Panda Hat
- else if ((.@gamble2 > 44) && (.@gamble2 < 47)) set .@item,5035; // Poring Hat
- else if ((.@gamble2 > 46) && (.@gamble2 < 49)) set .@item,2250; // Cute Ribbon
- else if ((.@gamble2 > 48) && (.@gamble2 < 51)) set .@item,2277; // Nurse Cap
- else if ((.@gamble2 > 50) && (.@gamble2 < 53)) set .@item,5011; // Aerial
- else if ((.@gamble2 > 52) && (.@gamble2 < 55)) set .@item,2290; // Funeral Hat
- else if ((.@gamble2 > 54) && (.@gamble2 < 57)) set .@item,5010; // Indian Fillet
- else if ((.@gamble2 > 56) && (.@gamble2 < 60)) set .@item,2259; // Mini Propeller
- else if ((.@gamble2 > 59) && (.@gamble2 < 62)) set .@item,5008; // Puppy Love
- else if ((.@gamble2 > 61) && (.@gamble2 < 63)) set .@item,2249; // Coronet
- else if ((.@gamble2 > 62) && (.@gamble2 < 65)) set .@item,2229; // Helm[1]
- else if (.@gamble2 == 65) set .@item,2258; // Spiky Band
- else if (.@gamble2 == 66) set .@item,2274; // Ghost Bandana
- else if (.@gamble2 == 67) set .@item,5019; // Corsair
- else if (.@gamble2 == 68) set .@item,2254; // Angel Wing
- else if (.@gamble2 == 69) set .@item,5007; // Grand Circlet
- else if (.@gamble2 == 70) set .@item,5066; // Succubus Horn
- else if (.@gamble2 == 71) set .@item,2235; // Crown
- else if (.@gamble2 == 72) set .@item,2234; // Tiara
- else if (.@gamble2 == 73) set .@item,2256; // Majestic Goat
- else if (.@gamble2 == 74) set .@item,5093; // Coif[1]
- else if (.@gamble2 == 75) set .@item,5072; // Incubus Horn
- else if (.@gamble2 == 76) set .@item,5002; // Jewel Crown
- else if (.@gamble2 > 76 && .@gamble2 < 80) set .@item,5118; // Puppy Headband
- else if (.@gamble2 > 79 && .@gamble2 < 83) set .@item,5120; // Bucket Hat[1]
- else if (.@gamble2 > 82 && .@gamble2 < 86) set .@item,5111; // Galapago Cap
- else if (.@gamble2 > 85 && .@gamble2 < 89) set .@item,5116; // Banana Hat
- else if (.@gamble2 > 88 && .@gamble2 < 92) set .@item,5119; // Super Novice Hat[1]
- else if (.@gamble2 > 91 && .@gamble2 < 94) set .@item,5141; // Marionetta Doll[1]
+ .@gamble2 = rand(1,93);
+ if ((.@gamble2 > 0) && (.@gamble2 < 3)) .@item = 2251; // Monk Hat
+ else if ((.@gamble2 > 2) && (.@gamble2 < 5)) .@item = 2285; // Apple of Archer
+ else if ((.@gamble2 > 4) && (.@gamble2 < 7)) .@item = 2255; // Evil Wing
+ else if ((.@gamble2 > 6) && (.@gamble2 < 9)) .@item = 5045; // Magician Hat
+ else if ((.@gamble2 > 8) && (.@gamble2 < 11)) .@item = 2233; // Circlet[1]
+ else if ((.@gamble2 > 10) && (.@gamble2 < 13)) .@item = 2231; // Gemmed Sallet[1]
+ else if ((.@gamble2 > 12) && (.@gamble2 < 15)) .@item = 2217; // Biretta[1]
+ else if ((.@gamble2 > 14) && (.@gamble2 < 17)) .@item = 2206; // Wedding Veil
+ else if ((.@gamble2 > 16) && (.@gamble2 < 19)) .@item = 2246; // Golden Gear
+ else if ((.@gamble2 > 18) && (.@gamble2 < 21)) .@item = 2261; // Army Cap
+ else if ((.@gamble2 > 20) && (.@gamble2 < 23)) .@item = 2287; // Pirate Bandana
+ else if ((.@gamble2 > 22) && (.@gamble2 < 25)) .@item = 5012; // Ph.D Hat
+ else if ((.@gamble2 > 24) && (.@gamble2 < 27)) .@item = 2244; // Big Ribbon
+ else if ((.@gamble2 > 26) && (.@gamble2 < 29)) .@item = 2213; // Kitty Band
+ else if ((.@gamble2 > 28) && (.@gamble2 < 31)) .@item = 2248; // Western Grace
+ else if ((.@gamble2 > 30) && (.@gamble2 < 33)) .@item = 2223; // Turban[1]
+ else if ((.@gamble2 > 32) && (.@gamble2 < 35)) .@item = 2247; // Romantic Gent
+ else if ((.@gamble2 > 34) && (.@gamble2 < 37)) .@item = 2245; // Sweet Gent
+ else if ((.@gamble2 > 36) && (.@gamble2 < 39)) .@item = 5003; // Joker Jester
+ else if ((.@gamble2 > 38) && (.@gamble2 < 41)) .@item = 2225; // Goggles[1]
+ else if ((.@gamble2 > 40) && (.@gamble2 < 43)) .@item = 5017; // Bone Helm
+ else if ((.@gamble2 > 42) && (.@gamble2 < 45)) .@item = 5030; // Panda Hat
+ else if ((.@gamble2 > 44) && (.@gamble2 < 47)) .@item = 5035; // Poring Hat
+ else if ((.@gamble2 > 46) && (.@gamble2 < 49)) .@item = 2250; // Cute Ribbon
+ else if ((.@gamble2 > 48) && (.@gamble2 < 51)) .@item = 2277; // Nurse Cap
+ else if ((.@gamble2 > 50) && (.@gamble2 < 53)) .@item = 5011; // Aerial
+ else if ((.@gamble2 > 52) && (.@gamble2 < 55)) .@item = 2290; // Funeral Hat
+ else if ((.@gamble2 > 54) && (.@gamble2 < 57)) .@item = 5010; // Indian Fillet
+ else if ((.@gamble2 > 56) && (.@gamble2 < 60)) .@item = 2259; // Mini Propeller
+ else if ((.@gamble2 > 59) && (.@gamble2 < 62)) .@item = 5008; // Puppy Love
+ else if ((.@gamble2 > 61) && (.@gamble2 < 63)) .@item = 2249; // Coronet
+ else if ((.@gamble2 > 62) && (.@gamble2 < 65)) .@item = 2229; // Helm[1]
+ else if (.@gamble2 == 65) .@item = 2258; // Spiky Band
+ else if (.@gamble2 == 66) .@item = 2274; // Ghost Bandana
+ else if (.@gamble2 == 67) .@item = 5019; // Corsair
+ else if (.@gamble2 == 68) .@item = 2254; // Angel Wing
+ else if (.@gamble2 == 69) .@item = 5007; // Grand Circlet
+ else if (.@gamble2 == 70) .@item = 5066; // Succubus Horn
+ else if (.@gamble2 == 71) .@item = 2235; // Crown
+ else if (.@gamble2 == 72) .@item = 2234; // Tiara
+ else if (.@gamble2 == 73) .@item = 2256; // Majestic Goat
+ else if (.@gamble2 == 74) .@item = 5093; // Coif[1]
+ else if (.@gamble2 == 75) .@item = 5072; // Incubus Horn
+ else if (.@gamble2 == 76) .@item = 5002; // Jewel Crown
+ else if (.@gamble2 > 76 && .@gamble2 < 80) .@item = 5118; // Puppy Headband
+ else if (.@gamble2 > 79 && .@gamble2 < 83) .@item = 5120; // Bucket Hat[1]
+ else if (.@gamble2 > 82 && .@gamble2 < 86) .@item = 5111; // Galapago Cap
+ else if (.@gamble2 > 85 && .@gamble2 < 89) .@item = 5116; // Banana Hat
+ else if (.@gamble2 > 88 && .@gamble2 < 92) .@item = 5119; // Super Novice Hat[1]
+ else if (.@gamble2 > 91 && .@gamble2 < 94) .@item = 5141; // Marionetta Doll[1]
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 101)) set .@item,2226; // Cap
- else if ((.@gamble1 > 100) && (.@gamble1 < 201)) set .@item,2211; // Bandana
- else if ((.@gamble1 > 200) && (.@gamble1 < 300)) set .@item,2209; // Ribbon[1]
- else if ((.@gamble1 > 303) && (.@gamble1 < 401)) set .@item,2220; // Hat
- else if ((.@gamble1 > 400) && (.@gamble1 < 501)) set .@item,2232; // Circlet
- else if ((.@gamble1 > 500) && (.@gamble1 < 601)) set .@item,2216; // Biretta
- else if ((.@gamble1 > 600) && (.@gamble1 < 701)) set .@item,2230; // Gemmed Sallet
- else if ((.@gamble1 > 700) && (.@gamble1 < 801)) set .@item,2224; // Goggles
- else if ((.@gamble1 > 800) && (.@gamble1 < 901)) set .@item,2222; // Turban
- else if ((.@gamble1 > 900) && (.@gamble1 < 906)) set .@item,2228; // Helm
- else if ((.@gamble1 > 905) && (.@gamble1 < 911)) set .@item,2252; // Wizard Hat
- else if ((.@gamble1 > 910) && (.@gamble1 < 916)) set .@item,2227; // Cap[1]
- else if ((.@gamble1 > 915) && (.@gamble1 < 921)) set .@item,2221; // Hat[1]
- else if ((.@gamble1 > 920) && (.@gamble1 < 926)) set .@item,2299; // Orc Helm
- else if ((.@gamble1 > 925) && (.@gamble1 < 931)) set .@item,2236; // Santa Hat
- else if ((.@gamble1 > 930) && (.@gamble1 < 936)) set .@item,2275; // Red Bandana
- else if ((.@gamble1 > 935) && (.@gamble1 < 941)) set .@item,5015; // Egg Shell
- else if ((.@gamble1 > 940) && (.@gamble1 < 946)) set .@item,2215; // Flower Band
- else if ((.@gamble1 > 945) && (.@gamble1 < 951)) set .@item,5092; // Coif
- else if ((.@gamble1 > 950) && (.@gamble1 < 1001)) set .@item,2226; // Cap
+ else if ((.@gamble1 > 0) && (.@gamble1 < 101)) .@item = 2226; // Cap
+ else if ((.@gamble1 > 100) && (.@gamble1 < 201)) .@item = 2211; // Bandana
+ else if ((.@gamble1 > 200) && (.@gamble1 < 300)) .@item = 2209; // Ribbon[1]
+ else if ((.@gamble1 > 303) && (.@gamble1 < 401)) .@item = 2220; // Hat
+ else if ((.@gamble1 > 400) && (.@gamble1 < 501)) .@item = 2232; // Circlet
+ else if ((.@gamble1 > 500) && (.@gamble1 < 601)) .@item = 2216; // Biretta
+ else if ((.@gamble1 > 600) && (.@gamble1 < 701)) .@item = 2230; // Gemmed Sallet
+ else if ((.@gamble1 > 700) && (.@gamble1 < 801)) .@item = 2224; // Goggles
+ else if ((.@gamble1 > 800) && (.@gamble1 < 901)) .@item = 2222; // Turban
+ else if ((.@gamble1 > 900) && (.@gamble1 < 906)) .@item = 2228; // Helm
+ else if ((.@gamble1 > 905) && (.@gamble1 < 911)) .@item = 2252; // Wizard Hat
+ else if ((.@gamble1 > 910) && (.@gamble1 < 916)) .@item = 2227; // Cap[1]
+ else if ((.@gamble1 > 915) && (.@gamble1 < 921)) .@item = 2221; // Hat[1]
+ else if ((.@gamble1 > 920) && (.@gamble1 < 926)) .@item = 2299; // Orc Helm
+ else if ((.@gamble1 > 925) && (.@gamble1 < 931)) .@item = 2236; // Santa Hat
+ else if ((.@gamble1 > 930) && (.@gamble1 < 936)) .@item = 2275; // Red Bandana
+ else if ((.@gamble1 > 935) && (.@gamble1 < 941)) .@item = 5015; // Egg Shell
+ else if ((.@gamble1 > 940) && (.@gamble1 < 946)) .@item = 2215; // Flower Band
+ else if ((.@gamble1 > 945) && (.@gamble1 < 951)) .@item = 5092; // Coif
+ else if ((.@gamble1 > 950) && (.@gamble1 < 1001)) .@item = 2226; // Cap
break;
case 5: // Footgear
- set .@gamble1,rand(1,500);
+ .@gamble1 = rand(1,500);
if ((.@gamble1 > 299) && (.@gamble1 < 303)) {
- set .@gamble2,rand(1,10);
- if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,2406; // Boots[1]
- else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,2412; // Greaves[1]
- else if ((.@gamble2 > 4) && (.@gamble2 < 8)) set .@item,2404; // Shoes[1]
- else if ((.@gamble2 > 7) && (.@gamble2 < 11)) set .@item,2407; // Crystal Pumps
+ .@gamble2 = rand(1,10);
+ if ((.@gamble2 > 0) && (.@gamble2 < 3)) .@item = 2406; // Boots[1]
+ else if ((.@gamble2 > 2) && (.@gamble2 < 5)) .@item = 2412; // Greaves[1]
+ else if ((.@gamble2 > 4) && (.@gamble2 < 8)) .@item = 2404; // Shoes[1]
+ else if ((.@gamble2 > 7) && (.@gamble2 < 11)) .@item = 2407; // Crystal Pumps
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 201)) set .@item,2401; // Sandals
- else if ((.@gamble1 > 200) && (.@gamble1 < 300)) set .@item,2408; // Shackles
- else if ((.@gamble1 > 302) && (.@gamble1 < 351)) set .@item,2411; // Greaves
- else if ((.@gamble1 > 350) && (.@gamble1 < 401)) set .@item,2403; // Shoes
- else if ((.@gamble1 > 400) && (.@gamble1 < 451)) set .@item,2405; // Boots
- else if ((.@gamble1 > 450) && (.@gamble1 < 476)) set .@item,2409; // High Heels
- else if ((.@gamble1 > 475) && (.@gamble1 < 501)) set .@item,2402; // Sandals[1]
+ else if ((.@gamble1 > 0) && (.@gamble1 < 201)) .@item = 2401; // Sandals
+ else if ((.@gamble1 > 200) && (.@gamble1 < 300)) .@item = 2408; // Shackles
+ else if ((.@gamble1 > 302) && (.@gamble1 < 351)) .@item = 2411; // Greaves
+ else if ((.@gamble1 > 350) && (.@gamble1 < 401)) .@item = 2403; // Shoes
+ else if ((.@gamble1 > 400) && (.@gamble1 < 451)) .@item = 2405; // Boots
+ else if ((.@gamble1 > 450) && (.@gamble1 < 476)) .@item = 2409; // High Heels
+ else if ((.@gamble1 > 475) && (.@gamble1 < 501)) .@item = 2402; // Sandals[1]
break;
case 6: // Shields
- set .@gamble1,rand(1,500);
+ .@gamble1 = rand(1,500);
if ((.@gamble1 > 200) && (.@gamble1 < 205)) {
- set .@gamble2,rand(1,10);
- if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,2104; // Buckler[1]
- else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,2106; // Shield[1]
- else if ((.@gamble2 > 4) && (.@gamble2 < 7)) set .@item,2102; // Guard[1]
- else if ((.@gamble2 > 6) && (.@gamble2 < 9)) set .@item,2111; // Sacred Mission
- else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,2109; // Memory Book
+ .@gamble2 = rand(1,10);
+ if ((.@gamble2 > 0) && (.@gamble2 < 3)) .@item = 2104; // Buckler[1]
+ else if ((.@gamble2 > 2) && (.@gamble2 < 5)) .@item = 2106; // Shield[1]
+ else if ((.@gamble2 > 4) && (.@gamble2 < 7)) .@item = 2102; // Guard[1]
+ else if ((.@gamble2 > 6) && (.@gamble2 < 9)) .@item = 2111; // Sacred Mission
+ else if ((.@gamble2 > 8) && (.@gamble2 < 11)) .@item = 2109; // Memory Book
}
- else if ((.@gamble1 > 0) && (.@gamble1 < 201)) set .@item,2101; // Guard
- else if ((.@gamble1 > 204) && (.@gamble1 < 301)) set .@item,2103; // Buckler
- else if ((.@gamble1 > 300) && (.@gamble1 < 401)) set .@item,2107; // Mirror Shield
- else if ((.@gamble1 > 401) && (.@gamble1 < 481)) set .@item,2105; // Shield
- else if ((.@gamble1 > 480) && (.@gamble1 < 501)) set .@item,2108; // Mirror Shield[1]
+ else if ((.@gamble1 > 0) && (.@gamble1 < 201)) .@item = 2101; // Guard
+ else if ((.@gamble1 > 204) && (.@gamble1 < 301)) .@item = 2103; // Buckler
+ else if ((.@gamble1 > 300) && (.@gamble1 < 401)) .@item = 2107; // Mirror Shield
+ else if ((.@gamble1 > 401) && (.@gamble1 < 481)) .@item = 2105; // Shield
+ else if ((.@gamble1 > 480) && (.@gamble1 < 501)) .@item = 2108; // Mirror Shield[1]
break;
default: // Cancel button / hack
cutin "katsua01.bmp",255;
@@ -536,8 +536,8 @@ mjolnir_02,85,362,3 script Blacksmith Miner 4_F_JOB_BLACKSMITH,{
mes "Please enter 500 or less.";
close;
}
- set .@cost,.@amount * 55000;
- set .@weight,.@amount * 100;
+ .@cost = .@amount * 55000;
+ .@weight = .@amount * 100;
if (Zeny < .@cost){
mes "[Dwayne]";
mes "Errr...";
diff --git a/npc/other/divorce.txt b/npc/other/divorce.txt
index c95589d74..9ffda4910 100644
--- a/npc/other/divorce.txt
+++ b/npc/other/divorce.txt
@@ -193,7 +193,7 @@ nif_in,190,112,5 script Deviruchi#divorce 4_DEVIRUCHI,{
next;
specialeffect EF_MAGICROD;
specialeffect2 EF_DEVIL;
- set wedding_sign,0;
+ wedding_sign = 0;
Zeny -= 2500000;
percentheal -100,-100;
divorce;
diff --git a/npc/other/fortune.txt b/npc/other/fortune.txt
index a596377d1..a14f63fc9 100644
--- a/npc/other/fortune.txt
+++ b/npc/other/fortune.txt
@@ -66,7 +66,7 @@ payon_in03,117,128,5 script Fortune Teller 4_M_BIBI,{
mes "[Lhimetorra]";
mes " I see it... I see a sign of love... ";
next;
- set .@card_1_love,rand(1,74);
+ .@card_1_love = rand(1,74);
if (.@card_1_love == 1) {
cutin "°¡À̾ƽºÄ«µå",4; // Giearth Card
mes "[Lhimetorra]";
@@ -768,7 +768,7 @@ payon_in03,117,128,5 script Fortune Teller 4_M_BIBI,{
mes "[Lhimetorra]";
mes " Ooh... something about your fortune is starting to show... ";
next;
- set .@card_1_money,rand(1,73);
+ .@card_1_money = rand(1,73);
if (.@card_1_money == 1) {
cutin "°¡À̾ƽºÄ«µå",4; // Giearth Card
mes "[Lhimetorra]";
@@ -1438,7 +1438,7 @@ payon_in03,117,128,5 script Fortune Teller 4_M_BIBI,{
mes "[Lhimetorra]";
mes " Future... the card that sees the future is beginning to speak...... Prepare yourself... ";
next;
- set .@card_1_future,rand(1,67);
+ .@card_1_future = rand(1,67);
if (.@card_1_future == 1) {
cutin "°¡À̾ƽºÄ«µå",4; // Giearth Card
mes "[Lhimetorra]";
@@ -2088,7 +2088,7 @@ payon_in03,117,128,5 script Fortune Teller 4_M_BIBI,{
mes "[Lhimetorra]";
mes " Someone that knows of the dangers you do not, will warn you in the form of cards... so listen carefully-! ";
next;
- set .@card_1_warning,rand(1,70);
+ .@card_1_warning = rand(1,70);
if (.@card_1_warning == 1) {
cutin "°¡À̾ƽºÄ«µå",4; // Giearth Card
mes "[Lhimetorra]";
@@ -2770,7 +2770,7 @@ payon_in03,75,129,5 script Poring Fortune Teller 4_M_BIBI,{
mes " Ohh! Cute love fortune! Heh! Lets look at the cards! ";
next;
mes "[Chocarle]";
- set .@card_2_love,rand(1,33);
+ .@card_2_love = rand(1,33);
if (.@card_2_love == 1) {
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
mes " Oh! Your lover is about to leave your side! Hold on tight! ";
@@ -2918,7 +2918,7 @@ payon_in03,75,129,5 script Poring Fortune Teller 4_M_BIBI,{
mes " Issues about studying is a serious matter! Lets take a look! Yap! ";
next;
mes "[Chocarle]";
- set .@card_2_study,rand(1,33);
+ .@card_2_study = rand(1,33);
if (.@card_2_study == 1) {
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
mes " Agh! Don't die from studying! Take breaks while you're at it! You need some rest! ";
@@ -3066,7 +3066,7 @@ payon_in03,75,129,5 script Poring Fortune Teller 4_M_BIBI,{
mes " Relationships among friends is more difficult than people think! Let's use the cards to try and solve this complicated puzzle of friendship! ";
next;
mes "[Chocarle]";
- set .@card_2_buddy,rand(1,33);
+ .@card_2_buddy = rand(1,33);
if (.@card_2_buddy == 1) {
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
mes " Ah! Your friend has gone crazy! They need the heal of friendship! ";
@@ -3214,7 +3214,7 @@ payon_in03,75,129,5 script Poring Fortune Teller 4_M_BIBI,{
mes " If you say fortunetelling! Of course it is about the future! Let's try to figure this out! ";
next;
mes "[Chocarle]";
- set .@card_2_future,rand(1,33);
+ .@card_2_future = rand(1,33);
if (.@card_2_future == 1) {
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
mes " Oh no! You are not confident about the future! Trust yourself a little more! Hope! ";
@@ -3364,7 +3364,7 @@ payon_in03,75,129,5 script Poring Fortune Teller 4_M_BIBI,{
mes " Ok! Let's try it! ";
next;
mes "[Chocarle]";
- set .@card_2_fortune,rand(1,33);
+ .@card_2_fortune = rand(1,33);
if (.@card_2_fortune == 1) {
cutin "°í½ºÆ®¸µÄ«µå",4; // Ghostring Card
mes " Uh oh! You're about to be robbed! You must save a little first! ";
diff --git a/npc/other/gm_npcs.txt b/npc/other/gm_npcs.txt
index c9a65e067..76d95974e 100644
--- a/npc/other/gm_npcs.txt
+++ b/npc/other/gm_npcs.txt
@@ -37,7 +37,7 @@ function script F_GM_NPC {
if (getarg(1) == 0) {
// Integer password
if (getarg(3,0)) {
- set .@error, input(.@input,getarg(2),getarg(3));
+ .@error = input(.@input,getarg(2),getarg(3));
if (.@error)
return -2;
} else
diff --git a/npc/other/guildpvp.txt b/npc/other/guildpvp.txt
index debb96de9..b33fffeee 100644
--- a/npc/other/guildpvp.txt
+++ b/npc/other/guildpvp.txt
@@ -25,14 +25,14 @@ pvp_y_room,77,85,4 script Guild Battle Guide 8W_SOLDIER,{
mes "Let me know to which map";
mes "you want me to move you.";
next;
- set .@i, select("Map 1:Map 2:Map 3:Map 4:Map 5");
+ .@i = select("Map 1:Map 2:Map 3:Map 4:Map 5");
mes "[Guild Battle Guide]";
mes "You've chosen Map "+.@i+".";
mes "Now, which team are";
mes "you on? You can choose";
mes "either Team 1 or Team 2.";
next;
- set .@j, select("Team 1:Team 2");
+ .@j = select("Team 1:Team 2");
mes "[Guild Battle Guide]";
mes "Alright, I'll move you";
mes "to Map "+.@i+" as a member";
diff --git a/npc/other/gympass.txt b/npc/other/gympass.txt
index 3f15debc1..8f5bd738d 100644
--- a/npc/other/gympass.txt
+++ b/npc/other/gympass.txt
@@ -50,8 +50,8 @@ payon,173,141,4 script Ripped Cabus#GymPass 4_M_HUMAN_02,{
switch(select("Yes:No:Um, my workouts wore off.")) {
case 1:
if (gympassmemory < 10) {
- set .@add_carry,gympassmemory + 1;
- set .@remain_carry,10 - .@add_carry;
+ .@add_carry = gympassmemory + 1;
+ .@remain_carry = 10 - .@add_carry;
if (countitem(7776) > 0) {
mes "[Ripped]";
mes "Oh, awesome, I see you";
@@ -76,8 +76,8 @@ payon,173,141,4 script Ripped Cabus#GymPass 4_M_HUMAN_02,{
mes "^FF00000" + .@remain_carry + "^000000 more times if we continue";
mes "training together like this.";
delitem 7776,1; //Max_Weight_Up_Scroll
- set gympassmemory,.@add_carry;
- skill "ALL_INCCARRY",.@add_carry,3;
+ gympassmemory = .@add_carry;
+ skill ALL_INCCARRY,.@add_carry,3;
close;
}
else {
diff --git a/npc/other/hugel_bingo.txt b/npc/other/hugel_bingo.txt
index 2b1e8f410..15b87b117 100644
--- a/npc/other/hugel_bingo.txt
+++ b/npc/other/hugel_bingo.txt
@@ -54,34 +54,34 @@ OnInit:
end;
OnTouch:
- set @bingo_a1$,0;
- set @bingo_a2$,0;
- set @bingo_a3$,0;
- set @bingo_a4$,0;
- set @bingo_a5$,0;
- set @bingo_b1$,0;
- set @bingo_b2$,0;
- set @bingo_b3$,0;
- set @bingo_b4$,0;
- set @bingo_b5$,0;
- set @bingo_c1$,0;
- set @bingo_c2$,0;
- set @bingo_c3$,0;
- set @bingo_c4$,0;
- set @bingo_c5$,0;
- set @bingo_d1$,0;
- set @bingo_d2$,0;
- set @bingo_d3$,0;
- set @bingo_d4$,0;
- set @bingo_d5$,0;
- set @bingo_e1$,0;
- set @bingo_e2$,0;
- set @bingo_e3$,0;
- set @bingo_e4$,0;
- set @bingo_e5$,0;
- set @bingo_case,1;
+ @bingo_a1$ = 0;
+ @bingo_a2$ = 0;
+ @bingo_a3$ = 0;
+ @bingo_a4$ = 0;
+ @bingo_a5$ = 0;
+ @bingo_b1$ = 0;
+ @bingo_b2$ = 0;
+ @bingo_b3$ = 0;
+ @bingo_b4$ = 0;
+ @bingo_b5$ = 0;
+ @bingo_c1$ = 0;
+ @bingo_c2$ = 0;
+ @bingo_c3$ = 0;
+ @bingo_c4$ = 0;
+ @bingo_c5$ = 0;
+ @bingo_d1$ = 0;
+ @bingo_d2$ = 0;
+ @bingo_d3$ = 0;
+ @bingo_d4$ = 0;
+ @bingo_d5$ = 0;
+ @bingo_e1$ = 0;
+ @bingo_e2$ = 0;
+ @bingo_e3$ = 0;
+ @bingo_e4$ = 0;
+ @bingo_e5$ = 0;
+ @bingo_case = 1;
L_Fill:
- set @bingo_fill,callfunc("Func_Bingo",@bingo_case);
+ @bingo_fill = callfunc("Func_Bingo",@bingo_case);
if (!@bingo_fill) {
mes "The numbers you have entered";
mes "exceed the limit, or you have";
@@ -89,7 +89,7 @@ L_Fill:
mes "Please enter your numbers again.";
next;
} else if (@bingo_fill) {
- if(@bingoplate[25] < 10) set @bingo_e5$,"0"+@bingoplate[25]+""; else set @bingo_e5$,@bingoplate[25];
+ if(@bingoplate[25] < 10) @bingo_e5$ = "0"+@bingoplate[25]+""; else @bingo_e5$ = @bingoplate[25];
donpcevent "start#bingo::OnEnter";
mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ["+@bingo_a5$+"]";
mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ["+@bingo_b5$+"]";
@@ -115,12 +115,12 @@ OnStart:
OnEnter:
if ($@hu_bingoa == 4) {
- set $@hu_bingoa,5;
+ $@hu_bingoa = 5;
donpcevent "start2#bingo::OnStart";
stopnpctimer;
end;
}
- set $@hu_bingoa,$@hu_bingoa +1;
+ ++$@hu_bingoa;
end;
OnTimer1000:
@@ -159,8 +159,8 @@ OnTimer203000:
OnTimer204000:
areawarp "que_bingo",44,115,54,126,"que_bingo",40,121;
disablenpc "out3#bingo";
- set $@hu_bingoa,0;
- set $@hu_bingob,0;
+ $@hu_bingoa = 0;
+ $@hu_bingob = 0;
donpcevent "Bingo Waiting Room::OnStart";
end;
}
@@ -187,12 +187,12 @@ OnTimer2000:
OnTimer5000:
mapannounce "que_bingo","Eukran: Now, let the game begin!",1,0xFFAB54;
setarray $@bingoarray[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;
- set .@max_index, 24;
- for(set .@i,0; .@i < 25; set .@i,.@i +1) {
- set $@bingo0,rand(0,.@max_index);
- set $bingo[.@i],$@bingoarray[$@bingo0];
- set $@bingoarray[$@bingo0], $@bingoarray[.@max_index];
- set .@max_index, .@max_index - 1;
+ .@max_index = 24;
+ for(.@i = 0; .@i < 25; ++.@i) {
+ $@bingo0 = rand(0,.@max_index);
+ $bingo[.@i] = $@bingoarray[$@bingo0];
+ $@bingoarray[$@bingo0] = $@bingoarray[.@max_index];
+ --.@max_index;
}
end;
@@ -201,7 +201,7 @@ OnTimer8000:
end;
OnTimer10000:
- set $@bingoresult,1;
+ $@bingoresult = 1;
callfunc "Func_BingoResult",$@bingoresult;
end;
@@ -271,7 +271,7 @@ OnTimer460000:
mapannounce "que_bingo","Eukran: I'm sorry, but this game has ended without a winner. Thanks for playing, everyone~",1,0xFFAB54;
donpcevent "1a#bingo::OnInit";
areawarp "que_bingo",44,115,54,126,"que_bingo",40,121;
- set $@hu_bingoa,0;
+ $@hu_bingoa = 0;
donpcevent "Bingo Waiting Room::OnStart";
end;
}
@@ -408,44 +408,44 @@ OnInit:
end;
OnTouch:
- if(@bingoplate[1] == $bingo[$@bingoresult -1]){ set @bingo_a1$,"^ff0000- -^000000"; setarray @bingoplate[1],99; }
- else if(@bingoplate[2] == $bingo[$@bingoresult -1]){ set @bingo_a2$,"^ff0000- -^000000"; setarray @bingoplate[2],99; }
- else if(@bingoplate[3] == $bingo[$@bingoresult -1]){ set @bingo_a3$,"^ff0000- -^000000"; setarray @bingoplate[3],99; }
- else if(@bingoplate[4] == $bingo[$@bingoresult -1]){ set @bingo_a4$,"^ff0000- -^000000"; setarray @bingoplate[4],99; }
- else if(@bingoplate[5] == $bingo[$@bingoresult -1]){ set @bingo_a5$,"^ff0000- -^000000"; setarray @bingoplate[5],99; }
- else if(@bingoplate[6] == $bingo[$@bingoresult -1]){ set @bingo_b1$,"^ff0000- -^000000"; setarray @bingoplate[6],99; }
- else if(@bingoplate[7] == $bingo[$@bingoresult -1]){ set @bingo_b2$,"^ff0000- -^000000"; setarray @bingoplate[7],99; }
- else if(@bingoplate[8] == $bingo[$@bingoresult -1]){ set @bingo_b3$,"^ff0000- -^000000"; setarray @bingoplate[8],99; }
- else if(@bingoplate[9] == $bingo[$@bingoresult -1]){ set @bingo_b4$,"^ff0000- -^000000"; setarray @bingoplate[9],99; }
- else if(@bingoplate[10] == $bingo[$@bingoresult -1]){ set @bingo_b5$,"^ff0000- -^000000"; setarray @bingoplate[10],99; }
- else if(@bingoplate[11] == $bingo[$@bingoresult -1]){ set @bingo_c1$,"^ff0000- -^000000"; setarray @bingoplate[11],99; }
- else if(@bingoplate[12] == $bingo[$@bingoresult -1]){ set @bingo_c2$,"^ff0000- -^000000"; setarray @bingoplate[12],99; }
- else if(@bingoplate[13] == $bingo[$@bingoresult -1]){ set @bingo_c3$,"^ff0000- -^000000"; setarray @bingoplate[13],99; }
- else if(@bingoplate[14] == $bingo[$@bingoresult -1]){ set @bingo_c4$,"^ff0000- -^000000"; setarray @bingoplate[14],99; }
- else if(@bingoplate[15] == $bingo[$@bingoresult -1]){ set @bingo_c5$,"^ff0000- -^000000"; setarray @bingoplate[15],99; }
- else if(@bingoplate[16] == $bingo[$@bingoresult -1]){ set @bingo_d1$,"^ff0000- -^000000"; setarray @bingoplate[16],99; }
- else if(@bingoplate[17] == $bingo[$@bingoresult -1]){ set @bingo_d2$,"^ff0000- -^000000"; setarray @bingoplate[17],99; }
- else if(@bingoplate[18] == $bingo[$@bingoresult -1]){ set @bingo_d3$,"^ff0000- -^000000"; setarray @bingoplate[18],99; }
- else if(@bingoplate[19] == $bingo[$@bingoresult -1]){ set @bingo_d4$,"^ff0000- -^000000"; setarray @bingoplate[19],99; }
- else if(@bingoplate[20] == $bingo[$@bingoresult -1]){ set @bingo_d5$,"^ff0000- -^000000"; setarray @bingoplate[20],99; }
- else if(@bingoplate[21] == $bingo[$@bingoresult -1]){ set @bingo_e1$,"^ff0000- -^000000"; setarray @bingoplate[21],99; }
- else if(@bingoplate[22] == $bingo[$@bingoresult -1]){ set @bingo_e2$,"^ff0000- -^000000"; setarray @bingoplate[22],99; }
- else if(@bingoplate[23] == $bingo[$@bingoresult -1]){ set @bingo_e3$,"^ff0000- -^000000"; setarray @bingoplate[23],99; }
- else if(@bingoplate[24] == $bingo[$@bingoresult -1]){ set @bingo_e4$,"^ff0000- -^000000"; setarray @bingoplate[24],99; }
- else if(@bingoplate[25] == $bingo[$@bingoresult -1]){ set @bingo_e5$,"^ff0000- -^000000"; setarray @bingoplate[25],99; }
- set @bingowin,0;
- if(@bingoplate[1] == @bingoplate[2] && @bingoplate[1] == @bingoplate[3] && @bingoplate[1] == @bingoplate[4] && @bingoplate[1] == @bingoplate[5]) set @bingowin,@bingowin +1;
- if(@bingoplate[6] == @bingoplate[7] && @bingoplate[6] == @bingoplate[8] && @bingoplate[6] == @bingoplate[9] && @bingoplate[6] == @bingoplate[10]) set @bingowin,@bingowin +1;
- if(@bingoplate[11] == @bingoplate[12] && @bingoplate[11] == @bingoplate[13] && @bingoplate[11] == @bingoplate[14] && @bingoplate[11] == @bingoplate[15]) set @bingowin,@bingowin +1;
- if(@bingoplate[16] == @bingoplate[17] && @bingoplate[16] == @bingoplate[18] && @bingoplate[16] == @bingoplate[19] && @bingoplate[16] == @bingoplate[20]) set @bingowin,@bingowin +1;
- if(@bingoplate[21] == @bingoplate[22] && @bingoplate[21] == @bingoplate[23] && @bingoplate[21] == @bingoplate[24] && @bingoplate[21] == @bingoplate[25]) set @bingowin,@bingowin +1;
- if(@bingoplate[1] == @bingoplate[6] && @bingoplate[1] == @bingoplate[11] && @bingoplate[1] == @bingoplate[16] && @bingoplate[1] == @bingoplate[21]) set @bingowin,@bingowin +1;
- if(@bingoplate[2] == @bingoplate[7] && @bingoplate[2] == @bingoplate[12] && @bingoplate[2] == @bingoplate[17] && @bingoplate[2] == @bingoplate[22]) set @bingowin,@bingowin +1;
- if(@bingoplate[3] == @bingoplate[8] && @bingoplate[3] == @bingoplate[13] && @bingoplate[3] == @bingoplate[18] && @bingoplate[3] == @bingoplate[23]) set @bingowin,@bingowin +1;
- if(@bingoplate[4] == @bingoplate[9] && @bingoplate[4] == @bingoplate[14] && @bingoplate[4] == @bingoplate[19] && @bingoplate[4] == @bingoplate[24]) set @bingowin,@bingowin +1;
- if(@bingoplate[5] == @bingoplate[10] && @bingoplate[5] == @bingoplate[15] && @bingoplate[5] == @bingoplate[20] && @bingoplate[5] == @bingoplate[25]) set @bingowin,@bingowin +1;
- if(@bingoplate[1] == @bingoplate[7] && @bingoplate[1] == @bingoplate[13] && @bingoplate[1] == @bingoplate[19] && @bingoplate[1] == @bingoplate[25]) set @bingowin,@bingowin +1;
- if(@bingoplate[5] == @bingoplate[9] && @bingoplate[5] == @bingoplate[13] && @bingoplate[5] == @bingoplate[17] && @bingoplate[5] == @bingoplate[21]) set @bingowin,@bingowin +1;
+ if(@bingoplate[1] == $bingo[$@bingoresult -1]){ @bingo_a1$ = "^ff0000- -^000000"; setarray @bingoplate[1],99; }
+ else if(@bingoplate[2] == $bingo[$@bingoresult -1]){ @bingo_a2$ = "^ff0000- -^000000"; setarray @bingoplate[2],99; }
+ else if(@bingoplate[3] == $bingo[$@bingoresult -1]){ @bingo_a3$ = "^ff0000- -^000000"; setarray @bingoplate[3],99; }
+ else if(@bingoplate[4] == $bingo[$@bingoresult -1]){ @bingo_a4$ = "^ff0000- -^000000"; setarray @bingoplate[4],99; }
+ else if(@bingoplate[5] == $bingo[$@bingoresult -1]){ @bingo_a5$ = "^ff0000- -^000000"; setarray @bingoplate[5],99; }
+ else if(@bingoplate[6] == $bingo[$@bingoresult -1]){ @bingo_b1$ = "^ff0000- -^000000"; setarray @bingoplate[6],99; }
+ else if(@bingoplate[7] == $bingo[$@bingoresult -1]){ @bingo_b2$ = "^ff0000- -^000000"; setarray @bingoplate[7],99; }
+ else if(@bingoplate[8] == $bingo[$@bingoresult -1]){ @bingo_b3$ = "^ff0000- -^000000"; setarray @bingoplate[8],99; }
+ else if(@bingoplate[9] == $bingo[$@bingoresult -1]){ @bingo_b4$ = "^ff0000- -^000000"; setarray @bingoplate[9],99; }
+ else if(@bingoplate[10] == $bingo[$@bingoresult -1]){ @bingo_b5$ = "^ff0000- -^000000"; setarray @bingoplate[10],99; }
+ else if(@bingoplate[11] == $bingo[$@bingoresult -1]){ @bingo_c1$ = "^ff0000- -^000000"; setarray @bingoplate[11],99; }
+ else if(@bingoplate[12] == $bingo[$@bingoresult -1]){ @bingo_c2$ = "^ff0000- -^000000"; setarray @bingoplate[12],99; }
+ else if(@bingoplate[13] == $bingo[$@bingoresult -1]){ @bingo_c3$ = "^ff0000- -^000000"; setarray @bingoplate[13],99; }
+ else if(@bingoplate[14] == $bingo[$@bingoresult -1]){ @bingo_c4$ = "^ff0000- -^000000"; setarray @bingoplate[14],99; }
+ else if(@bingoplate[15] == $bingo[$@bingoresult -1]){ @bingo_c5$ = "^ff0000- -^000000"; setarray @bingoplate[15],99; }
+ else if(@bingoplate[16] == $bingo[$@bingoresult -1]){ @bingo_d1$ = "^ff0000- -^000000"; setarray @bingoplate[16],99; }
+ else if(@bingoplate[17] == $bingo[$@bingoresult -1]){ @bingo_d2$ = "^ff0000- -^000000"; setarray @bingoplate[17],99; }
+ else if(@bingoplate[18] == $bingo[$@bingoresult -1]){ @bingo_d3$ = "^ff0000- -^000000"; setarray @bingoplate[18],99; }
+ else if(@bingoplate[19] == $bingo[$@bingoresult -1]){ @bingo_d4$ = "^ff0000- -^000000"; setarray @bingoplate[19],99; }
+ else if(@bingoplate[20] == $bingo[$@bingoresult -1]){ @bingo_d5$ = "^ff0000- -^000000"; setarray @bingoplate[20],99; }
+ else if(@bingoplate[21] == $bingo[$@bingoresult -1]){ @bingo_e1$ = "^ff0000- -^000000"; setarray @bingoplate[21],99; }
+ else if(@bingoplate[22] == $bingo[$@bingoresult -1]){ @bingo_e2$ = "^ff0000- -^000000"; setarray @bingoplate[22],99; }
+ else if(@bingoplate[23] == $bingo[$@bingoresult -1]){ @bingo_e3$ = "^ff0000- -^000000"; setarray @bingoplate[23],99; }
+ else if(@bingoplate[24] == $bingo[$@bingoresult -1]){ @bingo_e4$ = "^ff0000- -^000000"; setarray @bingoplate[24],99; }
+ else if(@bingoplate[25] == $bingo[$@bingoresult -1]){ @bingo_e5$ = "^ff0000- -^000000"; setarray @bingoplate[25],99; }
+ @bingowin = 0;
+ if(@bingoplate[1] == @bingoplate[2] && @bingoplate[1] == @bingoplate[3] && @bingoplate[1] == @bingoplate[4] && @bingoplate[1] == @bingoplate[5]) @bingowin = @bingowin +1;
+ if(@bingoplate[6] == @bingoplate[7] && @bingoplate[6] == @bingoplate[8] && @bingoplate[6] == @bingoplate[9] && @bingoplate[6] == @bingoplate[10]) @bingowin = @bingowin +1;
+ if(@bingoplate[11] == @bingoplate[12] && @bingoplate[11] == @bingoplate[13] && @bingoplate[11] == @bingoplate[14] && @bingoplate[11] == @bingoplate[15]) @bingowin = @bingowin +1;
+ if(@bingoplate[16] == @bingoplate[17] && @bingoplate[16] == @bingoplate[18] && @bingoplate[16] == @bingoplate[19] && @bingoplate[16] == @bingoplate[20]) @bingowin = @bingowin +1;
+ if(@bingoplate[21] == @bingoplate[22] && @bingoplate[21] == @bingoplate[23] && @bingoplate[21] == @bingoplate[24] && @bingoplate[21] == @bingoplate[25]) @bingowin = @bingowin +1;
+ if(@bingoplate[1] == @bingoplate[6] && @bingoplate[1] == @bingoplate[11] && @bingoplate[1] == @bingoplate[16] && @bingoplate[1] == @bingoplate[21]) @bingowin = @bingowin +1;
+ if(@bingoplate[2] == @bingoplate[7] && @bingoplate[2] == @bingoplate[12] && @bingoplate[2] == @bingoplate[17] && @bingoplate[2] == @bingoplate[22]) @bingowin = @bingowin +1;
+ if(@bingoplate[3] == @bingoplate[8] && @bingoplate[3] == @bingoplate[13] && @bingoplate[3] == @bingoplate[18] && @bingoplate[3] == @bingoplate[23]) @bingowin = @bingowin +1;
+ if(@bingoplate[4] == @bingoplate[9] && @bingoplate[4] == @bingoplate[14] && @bingoplate[4] == @bingoplate[19] && @bingoplate[4] == @bingoplate[24]) @bingowin = @bingowin +1;
+ if(@bingoplate[5] == @bingoplate[10] && @bingoplate[5] == @bingoplate[15] && @bingoplate[5] == @bingoplate[20] && @bingoplate[5] == @bingoplate[25]) @bingowin = @bingowin +1;
+ if(@bingoplate[1] == @bingoplate[7] && @bingoplate[1] == @bingoplate[13] && @bingoplate[1] == @bingoplate[19] && @bingoplate[1] == @bingoplate[25]) @bingowin = @bingowin +1;
+ if(@bingoplate[5] == @bingoplate[9] && @bingoplate[5] == @bingoplate[13] && @bingoplate[5] == @bingoplate[17] && @bingoplate[5] == @bingoplate[21]) @bingowin = @bingowin +1;
if($@bingoresult == 1 || $@bingoresult == 21) mes "[ "+$@bingoresult+"st Number - "+$bingo[$@bingoresult -1]+" ]";
else if($@bingoresult == 2 || $@bingoresult == 22) mes "[ "+$@bingoresult+"nd Number - "+$bingo[$@bingoresult -1]+" ]";
else if($@bingoresult == 3 || $@bingoresult == 23) mes "[ "+$@bingoresult+"rd Number - "+$bingo[$@bingoresult -1]+" ]";
@@ -469,9 +469,9 @@ OnTouch:
input @bingoyell$;
if (@bingoyell$ == "Bingo") {
if ($@hu_bingoa == 5) {
- set $@hu_bingoa,6;
+ $@hu_bingoa = 6;
donpcevent "start2#bingo::OnStop";
- set $@bingowinner$,strcharinfo(0);
+ $@bingowinner$ = strcharinfo(0);
donpcevent "win1a#bingo::OnWin";
close;
@@ -713,7 +713,7 @@ OnTimer5000:
disablenpc "end1d#bingo";
disablenpc "end1e#bingo";
areawarp "que_bingo",44,115,54,126,"que_bingo",40,121;
- set $@hu_bingoa,0;
+ $@hu_bingoa = 0;
donpcevent "Bingo Waiting Room::OnStart";
end;
}
@@ -760,18 +760,18 @@ OnTouch:
case 3: warp "que_bingo",46,116; break;
case 4: warp "que_bingo",45,121; break;
}
- set $@hu_bingob,$@hu_bingob +1;
- if ($@hu_bingob == 5) set $@hu_bingob,0;
+ $@hu_bingob = $@hu_bingob +1;
+ if ($@hu_bingob == 5) $@hu_bingob = 0;
end;
}
function script Func_Bingo {
- for(set .@i,getarg(0); .@i < 26; set .@i,.@i +1) {
- if(@bingoplate[1] < 10) set @bingo_a1$,"0"+@bingoplate[1]+""; else set @bingo_a1$,@bingoplate[1];
- if(@bingoplate[2] < 10) set @bingo_a2$,"0"+@bingoplate[2]+""; else set @bingo_a2$,@bingoplate[2];
- if(@bingoplate[3] < 10) set @bingo_a3$,"0"+@bingoplate[3]+""; else set @bingo_a3$,@bingoplate[3];
- if(@bingoplate[4] < 10) set @bingo_a4$,"0"+@bingoplate[4]+""; else set @bingo_a4$,@bingoplate[4];
- if(@bingoplate[5] < 10) set @bingo_a5$,"0"+@bingoplate[5]+""; else set @bingo_a5$,@bingoplate[5];
+ for(.@i = getarg(0); .@i < 26; ++.@i) {
+ if(@bingoplate[1] < 10) @bingo_a1$ = "0"+@bingoplate[1]+""; else @bingo_a1$ = @bingoplate[1];
+ if(@bingoplate[2] < 10) @bingo_a2$ = "0"+@bingoplate[2]+""; else @bingo_a2$ = @bingoplate[2];
+ if(@bingoplate[3] < 10) @bingo_a3$ = "0"+@bingoplate[3]+""; else @bingo_a3$ = @bingoplate[3];
+ if(@bingoplate[4] < 10) @bingo_a4$ = "0"+@bingoplate[4]+""; else @bingo_a4$ = @bingoplate[4];
+ if(@bingoplate[5] < 10) @bingo_a5$ = "0"+@bingoplate[5]+""; else @bingo_a5$ = @bingoplate[5];
if(.@i > 5) mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ["+@bingo_a5$+"]";
else {
switch(.@i) {
@@ -782,11 +782,11 @@ function script Func_Bingo {
case 5: mes "["+@bingo_a1$+"] ["+@bingo_a2$+"] ["+@bingo_a3$+"] ["+@bingo_a4$+"] ^ff0000[__]^000000"; break;
}
}
- if(@bingoplate[6] < 10) set @bingo_b1$,"0"+@bingoplate[6]+""; else set @bingo_b1$,@bingoplate[6];
- if(@bingoplate[7] < 10) set @bingo_b2$,"0"+@bingoplate[7]+""; else set @bingo_b2$,@bingoplate[7];
- if(@bingoplate[8] < 10) set @bingo_b3$,"0"+@bingoplate[8]+""; else set @bingo_b3$,@bingoplate[8];
- if(@bingoplate[9] < 10) set @bingo_b4$,"0"+@bingoplate[9]+""; else set @bingo_b4$,@bingoplate[9];
- if(@bingoplate[10] < 10) set @bingo_b5$,"0"+@bingoplate[10]+""; else set @bingo_b5$,@bingoplate[10];
+ if(@bingoplate[6] < 10) @bingo_b1$ = "0"+@bingoplate[6]+""; else @bingo_b1$ = @bingoplate[6];
+ if(@bingoplate[7] < 10) @bingo_b2$ = "0"+@bingoplate[7]+""; else @bingo_b2$ = @bingoplate[7];
+ if(@bingoplate[8] < 10) @bingo_b3$ = "0"+@bingoplate[8]+""; else @bingo_b3$ = @bingoplate[8];
+ if(@bingoplate[9] < 10) @bingo_b4$ = "0"+@bingoplate[9]+""; else @bingo_b4$ = @bingoplate[9];
+ if(@bingoplate[10] < 10) @bingo_b5$ = "0"+@bingoplate[10]+""; else @bingo_b5$ = @bingoplate[10];
if(.@i > 10) mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ["+@bingo_b5$+"]";
else if(.@i < 6) mes "[ ] [ ] [ ] [ ] [ ]";
else {
@@ -798,11 +798,11 @@ function script Func_Bingo {
case 10: mes "["+@bingo_b1$+"] ["+@bingo_b2$+"] ["+@bingo_b3$+"] ["+@bingo_b4$+"] ^ff0000[__]^000000"; break;
}
}
- if(@bingoplate[11] < 10) set @bingo_c1$,"0"+@bingoplate[11]+""; else set @bingo_c1$,@bingoplate[11];
- if(@bingoplate[12] < 10) set @bingo_c2$,"0"+@bingoplate[12]+""; else set @bingo_c2$,@bingoplate[12];
- if(@bingoplate[13] < 10) set @bingo_c3$,"0"+@bingoplate[13]+""; else set @bingo_c3$,@bingoplate[13];
- if(@bingoplate[14] < 10) set @bingo_c4$,"0"+@bingoplate[14]+""; else set @bingo_c4$,@bingoplate[14];
- if(@bingoplate[15] < 10) set @bingo_c5$,"0"+@bingoplate[15]+""; else set @bingo_c5$,@bingoplate[15];
+ if(@bingoplate[11] < 10) @bingo_c1$ = "0"+@bingoplate[11]+""; else @bingo_c1$ = @bingoplate[11];
+ if(@bingoplate[12] < 10) @bingo_c2$ = "0"+@bingoplate[12]+""; else @bingo_c2$ = @bingoplate[12];
+ if(@bingoplate[13] < 10) @bingo_c3$ = "0"+@bingoplate[13]+""; else @bingo_c3$ = @bingoplate[13];
+ if(@bingoplate[14] < 10) @bingo_c4$ = "0"+@bingoplate[14]+""; else @bingo_c4$ = @bingoplate[14];
+ if(@bingoplate[15] < 10) @bingo_c5$ = "0"+@bingoplate[15]+""; else @bingo_c5$ = @bingoplate[15];
if(.@i > 15) mes "["+@bingo_c1$+"] ["+@bingo_c2$+"] ["+@bingo_c3$+"] ["+@bingo_c4$+"] ["+@bingo_c5$+"]";
else if(.@i < 11) mes "[ ] [ ] [ ] [ ] [ ]";
else {
@@ -814,11 +814,11 @@ function script Func_Bingo {
case 15: mes "["+@bingo_c1$+"] ["+@bingo_c2$+"] ["+@bingo_c3$+"] ["+@bingo_c4$+"] ^ff0000[__]^000000"; break;
}
}
- if(@bingoplate[16] < 10) set @bingo_d1$,"0"+@bingoplate[16]+""; else set @bingo_d1$,@bingoplate[16];
- if(@bingoplate[17] < 10) set @bingo_d2$,"0"+@bingoplate[17]+""; else set @bingo_d2$,@bingoplate[17];
- if(@bingoplate[18] < 10) set @bingo_d3$,"0"+@bingoplate[18]+""; else set @bingo_d3$,@bingoplate[18];
- if(@bingoplate[19] < 10) set @bingo_d4$,"0"+@bingoplate[19]+""; else set @bingo_d4$,@bingoplate[19];
- if(@bingoplate[20] < 10) set @bingo_d5$,"0"+@bingoplate[20]+""; else set @bingo_d5$,@bingoplate[20];
+ if(@bingoplate[16] < 10) @bingo_d1$ = "0"+@bingoplate[16]+""; else @bingo_d1$ = @bingoplate[16];
+ if(@bingoplate[17] < 10) @bingo_d2$ = "0"+@bingoplate[17]+""; else @bingo_d2$ = @bingoplate[17];
+ if(@bingoplate[18] < 10) @bingo_d3$ = "0"+@bingoplate[18]+""; else @bingo_d3$ = @bingoplate[18];
+ if(@bingoplate[19] < 10) @bingo_d4$ = "0"+@bingoplate[19]+""; else @bingo_d4$ = @bingoplate[19];
+ if(@bingoplate[20] < 10) @bingo_d5$ = "0"+@bingoplate[20]+""; else @bingo_d5$ = @bingoplate[20];
if(.@i > 20) mes "["+@bingo_d1$+"] ["+@bingo_d2$+"] ["+@bingo_d3$+"] ["+@bingo_d4$+"] ["+@bingo_d5$+"]";
else if(.@i < 16) mes "[ ] [ ] [ ] [ ] [ ]";
else {
@@ -830,10 +830,10 @@ function script Func_Bingo {
case 20: mes "["+@bingo_d1$+"] ["+@bingo_d2$+"] ["+@bingo_d3$+"] ["+@bingo_d4$+"] ^ff0000[__]^000000"; break;
}
}
- if(@bingoplate[21] < 10) set @bingo_e1$,"0"+@bingoplate[21]+""; else set @bingo_e1$,@bingoplate[21];
- if(@bingoplate[22] < 10) set @bingo_e2$,"0"+@bingoplate[22]+""; else set @bingo_e2$,@bingoplate[22];
- if(@bingoplate[23] < 10) set @bingo_e3$,"0"+@bingoplate[23]+""; else set @bingo_e3$,@bingoplate[23];
- if(@bingoplate[24] < 10) set @bingo_e4$,"0"+@bingoplate[24]+""; else set @bingo_e4$,@bingoplate[24];
+ if(@bingoplate[21] < 10) @bingo_e1$ = "0"+@bingoplate[21]+""; else @bingo_e1$ = @bingoplate[21];
+ if(@bingoplate[22] < 10) @bingo_e2$ = "0"+@bingoplate[22]+""; else @bingo_e2$ = @bingoplate[22];
+ if(@bingoplate[23] < 10) @bingo_e3$ = "0"+@bingoplate[23]+""; else @bingo_e3$ = @bingoplate[23];
+ if(@bingoplate[24] < 10) @bingo_e4$ = "0"+@bingoplate[24]+""; else @bingo_e4$ = @bingoplate[24];
if(.@i < 21) mes "[ ] [ ] [ ] [ ] [ ]";
else {
switch(.@i) {
@@ -846,10 +846,10 @@ function script Func_Bingo {
}
next;
input .@bingoinput;
- if(.@bingoinput < 1 || .@bingoinput > 25) { set @bingo_case,.@i; return 0; }
+ if(.@bingoinput < 1 || .@bingoinput > 25) { @bingo_case = .@i; return 0; }
if(.@i > 1) {
- for(set .@j,.@i; .@j > 0; set .@j,.@j -1) {
- if(.@bingoinput == @bingoplate[.@j -1]) { set @bingo_case,.@i; return 0; }
+ for(.@j = .@i; .@j > 0; --.@j) {
+ if(.@bingoinput == @bingoplate[.@j -1]) { @bingo_case = .@i; return 0; }
}
}
setarray @bingoplate[.@i],.@bingoinput;
@@ -858,10 +858,10 @@ function script Func_Bingo {
}
function script Func_BingoResult {
- if (getarg(0) == 1 || getarg(0) == 21) set .@str$,"st";
- else if (getarg(0) == 2 || getarg(0) == 22) set .@str$,"nd";
- else if (getarg(0) == 3 || getarg(0) == 23) set .@str$,"rd";
- else set .@str$,"th";
+ if (getarg(0) == 1 || getarg(0) == 21) .@str$ = "st";
+ else if (getarg(0) == 2 || getarg(0) == 22) .@str$ = "nd";
+ else if (getarg(0) == 3 || getarg(0) == 23) .@str$ = "rd";
+ else .@str$ = "th";
mapannounce "que_bingo","Eukran: The "+getarg(0)+.@str$+" number is "+$bingo[getarg(0) -1]+". Please check your Bingo Plate.",4,0xFFAB54;
enablenpc ""+getarg(0)+"a#bingo";
enablenpc ""+getarg(0)+"b#bingo";
diff --git a/npc/other/marriage.txt b/npc/other/marriage.txt
index be909a207..dead8d61b 100644
--- a/npc/other/marriage.txt
+++ b/npc/other/marriage.txt
@@ -363,7 +363,7 @@ prt_church,97,100,4 script Wedding Staff#w 1_F_LIBRARYGIRL,{
delitem 2338,1; //Wedding_Dress
}
delitem 2613,1; //Diamond_Ring
- set wedding_sign,1;
+ wedding_sign = 1;
goto L_End;
}
mes "[Marry Happy]";
@@ -563,10 +563,10 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
if (!$@wedding) {
if (wedding_sign == 1) {
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
+ .@partymembercount = $@partymembercount;
if (.@partymembercount == 2) {
if (Sex) {
- set $@wedding,1;
+ $@wedding = 1;
initnpctimer;
mes "[Vomars]";
mes "Young lovers, please";
@@ -593,7 +593,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "Miss " + $@wed_bride$ + "?";
next;
select("I do.");
- set $@wed_groom$,strcharinfo(0);
+ $@wed_groom$ = strcharinfo(0);
mes "[Vomars]";
mes "Now, it is time for";
mes "your bride to make";
@@ -634,7 +634,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
else if ($@wedding == 1) {
if (wedding_sign == 1) {
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
+ .@partymembercount = $@partymembercount;
if (.@partymembercount == 2) {
if (Sex == 0) {
if (strcharinfo(0) == $@wed_bride$) {
@@ -662,7 +662,7 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "want to marry? Hmm.";
mes "I'm truly sorry for this";
mes "misunderstanding...";
- set $@wedding,0;
+ $@wedding = 0;
close2;
stopnpctimer;
cutin "",255;
@@ -702,9 +702,9 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "And lastly...";
mes "Always be happy,";
mes "dear "+$@wed_bride$+"...";
- set $@wed_groom$,"";
- set $@wed_bride$,"";
- set $@wedding,0;
+ $@wed_groom$ = "";
+ $@wed_bride$ = "";
+ $@wedding = 0;
close2;
stopnpctimer;
cutin "",255;
@@ -732,9 +732,9 @@ prt_church,100,128,4 script Bishop#w 1_M_PASTOR,{
mes "must do what your heart";
mes "tells you is right. Now, run!";
}
- set $@wed_groom$,"";
- set $@wed_bride$,"";
- set $@wedding,0;
+ $@wed_groom$ = "";
+ $@wed_bride$ = "";
+ $@wedding = 0;
close2;
stopnpctimer;
cutin "",255;
@@ -795,9 +795,9 @@ OnStop:
end;
OnReset:
- set $@wed_groom$,"";
- set $@wed_bride$,"";
- set $@wedding,0;
+ $@wed_groom$ = "";
+ $@wed_bride$ = "";
+ $@wedding = 0;
end;
OnTimer180000:
@@ -876,7 +876,7 @@ prt_church,20,179,4 script Divorce Staff 1_F_LIBRARYGIRL,{
next;
switch(select("Drop 1 Wedding Ring.:Keep it.")) {
case 1:
- set .@ring, (Sex)?2634:2635; //Bridegroom_Ring, Bride_Ring
+ .@ring = (Sex)?2634:2635; //Bridegroom_Ring, Bride_Ring
if (countitem(.@ring)) {
delitem .@ring,1;
mes "[Bad Ending]";
@@ -931,7 +931,7 @@ prt_church,22,179,4 script Remarry Staff 1_F_LIBRARYGIRL,{
next;
switch(select("Make new Wedding Ring.:Cancel.")) {
case 1:
- set .@ring, (Sex)?2634:2635; //Bridegroom_Ring, Bride_Ring
+ .@ring = (Sex)?2634:2635; //Bridegroom_Ring, Bride_Ring
if (countitem(.@ring) || isequipped(.@ring)) {
mes "[Wedding Again]";
mes "Wait, wait...";
diff --git a/npc/other/mercenary_rent.txt b/npc/other/mercenary_rent.txt
index 422a5ac5b..e9c9a1275 100644
--- a/npc/other/mercenary_rent.txt
+++ b/npc/other/mercenary_rent.txt
@@ -20,10 +20,11 @@
setarray .@name$, "Spear", "Sword", "Bow";
setarray .@faith$, "SPEAR_MERC_GUILD", "SWORD_MERC_GUILD", "ARCH_MERC_GUILD";
setarray .@item, 12182, 12172, 12162;
- set .@npc$, strnpcinfo(2);
- for (set .@size, getarraysize(.@name$); .@i < .@size; set .@i, .@i + 1)
- if (.@npc$ == .@name$[.@i]) set .@type, .@i;
- set .@faith_merc, mercenary_get_faith(getd(.@faith$[.@type]));
+ .@npc$ = strnpcinfo(2);
+ .@size = getarraysize(.@name$);
+ for (.@i = 0; .@i < .@size; ++.@i)
+ if (.@npc$ == .@name$[.@i]) .@type = .@i;
+ .@faith_merc = mercenary_get_faith(getd(.@faith$[.@type]));
mes "[Mercenary Manager]";
mes "Welcome to the";
mes .@npc$ + " Mercenary Guild.";
@@ -38,14 +39,14 @@
mes "interested in hiring?";
next;
setarray .@suffix$, "th","st","nd","rd";
- for (set .@i, 1; .@i <= 9; set .@i, .@i + 1)
- set .@menu$, .@menu$ + .@i + .@suffix$[((.@i <= 3)? .@i : 0)] + " Grade " + .@npc$ + " Mercenary:";
- set .@Grade, select(.@menu$);
- set .@BaseLevel, 5 + (.@Grade * 10);
- set .@BaseLevel, (.@val > 90)? 90 : .@BaseLevel;
- set .@ZenyCost, 7 * .@Grade;
+ for (.@i = 1; .@i <= 9; ++.@i)
+ .@menu$ += .@i + .@suffix$[((.@i <= 3)? .@i : 0)] + " Grade " + .@npc$ + " Mercenary:";
+ .@Grade = select(.@menu$);
+ .@BaseLevel = 5 + (.@Grade * 10);
+ .@BaseLevel = (.@val > 90)? 90 : .@BaseLevel;
+ .@ZenyCost = 7 * .@Grade;
setarray .@FaithCost[7], 50,100,300;
- set .@FaithCost, .@FaithCost[.@Grade];
+ .@FaithCost = .@FaithCost[.@Grade];
mes "[Mercenary Manager]";
mes "So you want to hire a " + .@Grade + .@suffix$[((.@Grade <= 3)? .@i : 0)];
mes "Grade " + .@npc$ + " Mercenary?";
@@ -221,12 +222,13 @@ pay_arche,99,167,4 duplicate(Mercenary Manager#main) Mercenary Manager#Bow 4_M_J
next;
setarray .@item, 12184, 12185, 12241, 12242, 12243;
setarray .@cost, 1750, 3000, 560, 1050, 2100;
- for (set .@size, getarraysize(.@item); .@i < .@size; set .@i, .@i + 1)
- set .@menu$, .@menu$ + getitemname(.@item[.@i]) + ":";
- set .@m, select(.@menu$)-1;
- set .@str$, .@cost[.@m] + "";
- set .@len, getstrlen(.@str$);
- set .@str_cost$, (.@len <= 3)? .@str$ : insertchar(.@str$,",",.@len-3);
+ .@size = getarraysize(.@item);
+ for (.@i = 0; .@i < .@size; ++.@i)
+ .@menu$ += getitemname(.@item[.@i]) + ":";
+ .@m = select(.@menu$)-1;
+ .@str$ = .@cost[.@m] + "";
+ .@len = getstrlen(.@str$);
+ .@str_cost$ = (.@len <= 3)? .@str$ : insertchar(.@str$,",",.@len-3);
mes "[Mercenary Goods Merchant]";
mes getitemname(.@item[.@m]);
mes "each cost " + .@str_cost$ + " zeny.";
@@ -241,7 +243,7 @@ pay_arche,99,167,4 duplicate(Mercenary Manager#main) Mercenary Manager#Bow 4_M_J
mes "to buy any Mercenary Potions.";
close;
}
- else if (.@input < 0 || .@input > 10000) {
+ if (.@input < 0 || .@input > 10000) {
mes "[Mercenary Goods Merchant]";
mes "I'm sorry, but you";
mes "can only buy up to";
@@ -250,7 +252,8 @@ pay_arche,99,167,4 duplicate(Mercenary Manager#main) Mercenary Manager#Bow 4_M_J
mes "a number from 1 to 10,000.";
close;
}
- else if (set(.@total_po, .@input * .@cost[.@m]) > Zeny) {
+ .@total_po = .@input * .@cost[.@m];
+ if (.@total_po > Zeny) {
mes "[Mercenary Goods Merchant]";
mes "I'm sorry, but you don't";
mes "have enough zeny for this";
@@ -260,7 +263,7 @@ pay_arche,99,167,4 duplicate(Mercenary Manager#main) Mercenary Manager#Bow 4_M_J
mes "for your Mercenaries.";
close;
}
- else if (!checkweight(.@item[.@m], .@input)) {
+ if (!checkweight(.@item[.@m], .@input)) {
mes "[Mercenary Goods Merchant]";
mes "If I gave you that many";
mes "potions, you wouldn't be";
diff --git a/npc/other/monster_race.txt b/npc/other/monster_race.txt
index c3c54a426..30dd66bab 100644
--- a/npc/other/monster_race.txt
+++ b/npc/other/monster_race.txt
@@ -30,7 +30,7 @@ hugel,51,61,0 script #race_timer1-1 -1,{
OnInit:
OnEnable:
enablenpc "#race_timer1-1";
- set $@mon_time_1_1,2;
+ $@mon_time_1_1 = 2;
initnpctimer;
end;
@@ -45,7 +45,7 @@ OnTimer10000:
OnTimer30000:
mapannounce "hugel","The Single Monster Race Arena has just opened.",bc_map,"0x87ceeb";
- set $@mon_time_1_1,1;
+ $@mon_time_1_1 = 1;
donpcevent "Race Progress Timer::OnEnable";
end;
@@ -67,7 +67,7 @@ OnTimer272000:
OnTimer330000:
mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0x87ceeb";
- set $@mon_time_1_1,0;
+ $@mon_time_1_1 = 0;
donpcevent "#race_timer1-1::OnDisable";
stopnpctimer;
end;
@@ -77,9 +77,9 @@ p_track01,58,0,0 script Race Progress Timer -1,{
OnEnable:
enablenpc "Race Progress Timer";
initnpctimer;
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
enablenpc "starting#"+.@i;
- set .@c, 1;
+ .@c = 1;
while (.@c <= 6) {
setd ".@line_"+.@c,rand(1,70);
if (getd(".@line_"+.@c) <= 10) {
@@ -109,29 +109,29 @@ OnEnable:
enablenpc "Luk"+.@c+"#2";
set getd(".@tired"+.@c),rand(20,40);
setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c);
- for (set .@i, 1; .@i <= 3; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 3; ++.@i)
enablenpc "Tire"+.@c+"#"+.@i;
if (getd(".@tired"+.@c) < 30) enablenpc "Tire"+.@c+"#4";
} else if (getd(".@line_"+.@c)) <= 60 {
setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c);
- for (set .@i, 1; .@i <= 3; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 3; ++.@i)
enablenpc "Luk"+.@c+"#"+.@i;
set getd(".@tired"+.@c),rand(10,30);
setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c);
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 4; ++.@i)
enablenpc "Tire"+.@c+"#"+.@i;
if (getd(".@tired"+.@c) < 20) enablenpc "Tire"+.@c+"#5";
} else if (getd(".@line_"+.@c) <= 70) {
setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c);
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 4; ++.@i)
enablenpc "Luk"+.@c+"#"+.@i;
set getd(".@tired"+.@c),rand(0,20);
setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c);
- for (set .@i, 1; .@i <= 5; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 5; ++.@i)
enablenpc "Tire"+.@c+"#"+.@i;
if (getd(".@tired"+.@c) < 10) enablenpc "Tire"+.@c+"#6";
}
- set .@c, .@c + 1;
+ ++.@c;
}
end;
@@ -170,10 +170,10 @@ OnTimer243000:
OnTimer300000:
mapannounce "p_track01","The Monster Race has already begun. Good luck to all the participants.",bc_map,"0xffb6c1";
- set $@mon_time_1_1,0;
- set $@monster_race,0;
+ $@mon_time_1_1 = 0;
+ $@monster_race = 0;
disablenpc "Ticket Helper#single";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
donpcevent "Runner No. "+.@i+"::OnEnable";
stopnpctimer;
end;
@@ -201,11 +201,11 @@ p_track01,73,22,1 script Ticket Helper#single 4_M_HUMAN_02,{
mes "too many things...";
close;
}
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
- set .@m$, .@m$ + "Monster "+.@i+":";
- set .@m, select ("Monster Status:"+.@m$) - 1;
+ for (.@i = 1; .@i <= 6; ++.@i)
+ .@m$ += "Monster "+.@i+":";
+ .@m = select ("Monster Status:"+.@m$) - 1;
if (!.@m) {
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mr_1_luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mr_1_tire"+.@i) + "]";
close;
} else {
@@ -227,7 +227,7 @@ p_track01,73,22,1 script Ticket Helper#single 4_M_HUMAN_02,{
mes "announced. If the monster you";
mes "picked wins, then please use this ticket to redeem your prize.";
getitem 7514,1; //Monster_Ticket
- set monster_race_1,.@m;
+ monster_race_1 = .@m;
close;
}
mes "[Ticket Helper]";
@@ -259,9 +259,9 @@ OnDisable:
OnTouchNPC:
initnpctimer;
- set .@n, WN(0);
- set $@monster_race,.@n;
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) {
+ .@n = WN(0);
+ $@monster_race = .@n;
+ for (.@i = 1; .@i <= 6; ++.@i) {
if (.@n == .@i) continue;
donpcevent "Runner No. "+.@i+"::OnDisable";
}
@@ -291,7 +291,7 @@ OnTimer9000:
end;
function WN {
- set .@n, charat(strnpcinfo(0),getstrlen(strnpcinfo(0))-1);
+ .@n = charat(strnpcinfo(0),getstrlen(strnpcinfo(0))-1);
if (!getarg(0)) return .@n;
return ((.@n <= 3)?((.@n == 1)?"1st":((.@n == 2)?"2nd":"3rd")):.@n+"th");
}
@@ -317,7 +317,7 @@ p_track01,67,45,5 script Medal Distributor#single 4_F_RACING,{
mes "available in your Inventory.";
close;
}
- set .@insa,rand(1,1000);
+ .@insa = rand(1,1000);
if (countitem(7514)) {
mes "[Medal Distributor]";
mes "Hello there~";
@@ -389,7 +389,7 @@ p_track01,67,45,5 script Medal Distributor#single 4_F_RACING,{
mes "Wayne in Hugel for some";
mes "interesting items. Thank you~";
delitem 7514,1; //Monster_Ticket
- set monster_race_1,0;
+ monster_race_1 = 0;
getitem 7515,4; //Marvelous_Medal
close;
}
@@ -478,25 +478,25 @@ OnTimer249000:
OnTimer252000:
mapannounce "p_track01","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) {
+ for (.@i = 1; .@i <= 6; ++.@i) {
donpcevent "starting#"+.@i+"::OnDisable";
setd "$@mr_1_luk"+.@i,0;
setd "$@mr_1_tire"+.@i,0;
}
- set .@c, 1;
+ .@c = 1;
while (.@c <= 6) {
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) {
+ for (.@i = 1; .@i <= 6; ++.@i) {
disablenpc "Tire"+.@c+"#"+.@i;
disablenpc "Luk"+.@c+"#"+.@i;
}
- set .@c, .@c + 1;
+ ++.@c;
}
end;
OnTimer300000:
donpcevent "#race_timer1-1::OnEnable";
- set $@mon_time_1_1,2;
- set $@monster_race,0;
+ $@mon_time_1_1 = 2;
+ $@monster_race = 0;
mapwarp "p_track01","hugel",63,73;
end;
@@ -552,7 +552,7 @@ p_track01,76,36,1 script Exit Guide#single 4_M_NFMAN,{
mes "here in the Monster Race Arena.";
delitem 7514,1; //Monster_Ticket
}
- set monster_race_1,0;
+ monster_race_1 = 0;
close2;
warp "hugel",63,73;
end;
@@ -658,7 +658,7 @@ hugel,58,72,6 script Eckar Ellebird#single 4_M_NFMAN,{
mes "Let me guide you inside";
mes "the Monster Race Arena now.";
Zeny -= 2000;
- set monster_race_1,0;
+ monster_race_1 = 0;
close2;
warp "p_track01",75,41;
end;
@@ -679,7 +679,7 @@ hugel,58,72,6 script Eckar Ellebird#single 4_M_NFMAN,{
mes "Let me guide you now";
mes "to the Monster Race Arena.";
Zeny -= 2000;
- set monster_race_1,0;
+ monster_race_1 = 0;
close2;
warp "p_track01",75,41;
end;
@@ -716,7 +716,7 @@ hugel,58,72,6 script Eckar Ellebird#single 4_M_NFMAN,{
mes "I hope you enjoy";
mes "watching this race!";
Zeny -= 500;
- set monster_race_1,0;
+ monster_race_1 = 0;
close2;
warp "p_track01",75,41;
end;
@@ -843,26 +843,26 @@ p_track01,39,49,3 script Game Guide#single 4_F_RACING,{
- script starting_1 -1,{
OnDisable:
- for(set .@i,1; .@i<7; set .@i,.@i+1)
+ for(.@i = 1; .@i<7; ++.@i)
enablenpc "Luk1#"+.@i;
- for(set .@i,1; .@i<7; set .@i,.@i+1)
+ for(.@i = 1; .@i<7; ++.@i)
enablenpc "Tire1#"+.@i;
setd "$@mr_1_luk"+strnpcinfo(2),0;
setd "$@mr_1_tire"+strnpcinfo(2),0;
end;
OnTouchNPC:
- set .@start,rand(1,100);
- if (.@start < 11) set .@speed,60;
- else if (.@start < 21) set .@speed,70;
- else if (.@start < 31) set .@speed,80;
- else if (.@start < 41) set .@speed,90;
- else if (.@start < 51) set .@speed,100;
- else if (.@start < 61) set .@speed,110;
- else if (.@start < 71) set .@speed,120;
- else if (.@start < 81) set .@speed,130;
- else if (.@start < 91) set .@speed,140;
- else set .@speed,150;
+ .@start = rand(1,100);
+ if (.@start < 11) .@speed = 60;
+ else if (.@start < 21) .@speed = 70;
+ else if (.@start < 31) .@speed = 80;
+ else if (.@start < 41) .@speed = 90;
+ else if (.@start < 51) .@speed = 100;
+ else if (.@start < 61) .@speed = 110;
+ else if (.@start < 71) .@speed = 120;
+ else if (.@start < 81) .@speed = 130;
+ else if (.@start < 91) .@speed = 140;
+ else .@speed = 150;
sc_start SC_WALKSPEED,5000,.@speed;
end;
@@ -874,12 +874,12 @@ OnInit:
- script Luk_1 -1,{
OnTouchNPC:
- set .@start,rand(1,100);
- if (.@start < 61) set .@speed,110;
- else if (.@start < 71) set .@speed,120;
- else if (.@start < 81) set .@speed,130;
- else if (.@start < 91) set .@speed,140;
- else set .@speed,150;
+ .@start = rand(1,100);
+ if (.@start < 61) .@speed = 110;
+ else if (.@start < 71) .@speed = 120;
+ else if (.@start < 81) .@speed = 130;
+ else if (.@start < 91) .@speed = 140;
+ else .@speed = 150;
sc_start SC_WALKSPEED,10000,.@speed;
end;
@@ -890,11 +890,11 @@ OnInit:
- script Luk_2 -1,{
OnTouchNPC:
- set .@start,rand(1,100);
- if (.@start < 61) set .@time,1000;
- else if (.@start < 71) set .@time,2000;
- else if (.@start < 81) set .@time,3000;
- else if (.@start < 91) set .@time,4000;
+ .@start = rand(1,100);
+ if (.@start < 61) .@time = 1000;
+ else if (.@start < 71) .@time = 2000;
+ else if (.@start < 81) .@time = 3000;
+ else if (.@start < 91) .@time = 4000;
if (.@time) sc_start SC_STUN,.@time,0;
end;
@@ -905,11 +905,11 @@ OnInit:
- script Tire_1 -1,{
OnTouchNPC:
- set .@start,rand(1,100);
- if (.@start < 61) set .@time,1000;
- else if (.@start < 71) set .@time,2000;
- else if (.@start < 81) set .@time,3000;
- else if (.@start < 91) set .@time,4000;
+ .@start = rand(1,100);
+ if (.@start < 61) .@time = 1000;
+ else if (.@start < 71) .@time = 2000;
+ else if (.@start < 81) .@time = 3000;
+ else if (.@start < 91) .@time = 4000;
if (.@time) sc_start SC_SLEEP,.@time,0;
end;
@@ -1005,7 +1005,7 @@ p_track01,47,28,0 duplicate(Tire_1) Tire6#6 -1,0,0
hugel,47,56,0 script #race_timer2-1 -1,{
OnEnable:
enablenpc "#race_timer2-1";
- set $@mon_time_2_1,2;
+ $@mon_time_2_1 = 2;
initnpctimer;
end;
@@ -1020,7 +1020,7 @@ OnTimer10000:
OnTimer30000:
mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1";
- set $@mon_time_2_1,1;
+ $@mon_time_2_1 = 1;
donpcevent "#race_timer2-2::OnEnable";
enablenpc "Ticket Helper#2";
donpcevent "TrapGlobal#race02::OnEnable";
@@ -1044,14 +1044,14 @@ OnTimer272000:
OnTimer330000:
mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1";
- set $@mon_time_2_1,0;
+ $@mon_time_2_1 = 0;
donpcevent "#race_timer2-1::OnDisable";
stopnpctimer;
end;
OnInit:
enablenpc "#race_timer2-1";
- set $@mon_time_2_1,2;
+ $@mon_time_2_1 = 2;
initnpctimer;
end;
}
@@ -1059,7 +1059,7 @@ OnInit:
p_track02,42,23,0 script #race_timer2-2 -1,{
OnEnable:
enablenpc "#race_timer2-2";
- set $@mon_time_2_2,0;
+ $@mon_time_2_2 = 0;
initnpctimer;
end;
@@ -1094,9 +1094,9 @@ OnTimer242000:
OnTimer300000:
mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb";
- set $@mon_time_2_2,1;
- set $@mon_race_2_1,0;
- set $@mon_race_2_2,0;
+ $@mon_time_2_2 = 1;
+ $@mon_race_2_1 = 0;
+ $@mon_race_2_2 = 0;
disablenpc "Ticket Helper#2";
donpcevent "#poring1::OnEnable";
donpcevent "#lunatic1::OnEnable";
@@ -1109,7 +1109,7 @@ OnTimer300000:
OnInit:
disablenpc "#race_timer2-2";
- set $@mon_time_2_2,0;
+ $@mon_time_2_2 = 0;
end;
}
@@ -1172,8 +1172,8 @@ OnTimer300000:
mapwarp "p_track02","hugel",63,73;
disablenpc "Medal Distributor#medal";
donpcevent "#race_timer2-1::OnEnable";
- set $@mon_race_2_1,0;
- set $@mon_race_2_2,0;
+ $@mon_race_2_1 = 0;
+ $@mon_race_2_2 = 0;
donpcevent "#race_timer2-3::OnDisable";
stopnpctimer;
end;
@@ -1282,8 +1282,8 @@ hugel,62,69,1 script Eckar Erenes#double 4_M_NFMAN,{
mes "Let me guide you inside";
mes "the Monster Race Arena now.";
Zeny -= 2000;
- set monster_race_2_1,0;
- set monster_race_2_2,0;
+ monster_race_2_1 = 0;
+ monster_race_2_2 = 0;
close2;
warp "p_track02",75,41;
end;
@@ -1305,8 +1305,8 @@ hugel,62,69,1 script Eckar Erenes#double 4_M_NFMAN,{
mes "Let me guide you now";
mes "to the Monster Race Arena.";
Zeny -= 2000;
- set monster_race_2_1,0;
- set monster_race_2_2,0;
+ monster_race_2_1 = 0;
+ monster_race_2_2 = 0;
close2;
warp "p_track02",75,41;
end;
@@ -1343,8 +1343,8 @@ hugel,62,69,1 script Eckar Erenes#double 4_M_NFMAN,{
mes "I hope you enjoy";
mes "watching this race!";
Zeny -= 500;
- set monster_race_2_1,0;
- set monster_race_2_2,0;
+ monster_race_2_1 = 0;
+ monster_race_2_2 = 0;
close2;
warp "p_track02",75,41;
end;
@@ -1400,7 +1400,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
next;
switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) {
case 1:
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mon_r02_Luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mon_r02_tire"+.@i) + "]";
close;
case 2:
@@ -1419,11 +1419,10 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "will win this race.";
next;
while (1) {
- set .@m$, "";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
- set .@m$, .@m$ + ((.@i != .@m1)?"Monster "+.@i:"")+":";
- set .@m, 0;
- set .@m, select (.@m$);
+ .@m$ = "";
+ for (.@i = 1; .@i <= 6; ++.@i)
+ .@m$ += ((.@i != .@m1)?"Monster "+.@i:"")+":";
+ .@m = select (.@m$);
switch (.@m) {
case 1: setarray .@w$, "a friendly","Poring type monster"; break;
case 2: setarray .@w$, "an adorable","Lunatic type monster"; break;
@@ -1456,7 +1455,7 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "you think will place";
mes "1st or 2nd in this race.";
next;
- set .@m1, .@m;
+ .@m1 = .@m;
} else {
if (!$@mon_time_2_2) {
mes "[Ticket Helper]";
@@ -1466,8 +1465,8 @@ p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{
mes "I really hope that the odds";
mes "work out in your favor~";
emotion e_kis;
- set monster_race_2_1,.@m1;
- set monster_race_2_2,.@m;
+ monster_race_2_1 = .@m1;
+ monster_race_2_2 = .@m;
getitem 7514,1; //Monster_Ticket
close;
} else {
@@ -1710,8 +1709,8 @@ p_track02,67,45,5 script Medal Distributor#medal 4_F_RACING,{
mes "visit Wayne in Hugel. We hope";
mes "you enjoyed the Monster Race~";
delitem 7514,1; //Monster_Ticket
- set monster_race_2_1,7;
- set monster_race_2_2,7;
+ monster_race_2_1 = 7;
+ monster_race_2_2 = 7;
getitem 7515,15; //Marvelous_Medal
close;
}
@@ -1788,8 +1787,8 @@ p_track02,76,38,1 script Exit Guide#double 4_M_NFMAN,{
mes "here in the Monster Race Arena.";
delitem 7514,1; //Monster_Ticket
}
- set monster_race_2_1,0;
- set monster_race_2_2,0;
+ monster_race_2_1 = 0;
+ monster_race_2_2 = 0;
close2;
warp "hugel",63,73;
end;
@@ -1801,7 +1800,7 @@ OnEnable:
enablenpc strnpcinfo(0);
setarray .@n[1], 1725,1726,1727,1728,1730,1729;
getmapxy(.@m$,.@x,.@y,1);
- set .@i, MN;
+ .@i = MN;
monster "p_track02",58,.@y,"Monster "+.@i,.@n[.@i],1,strnpcinfo(0)+"::OnMyMobDead";
end;
@@ -1811,18 +1810,18 @@ OnDisable:
end;
OnTouchNPC:
- set .@i, MN;
+ .@i = MN;
if (!$@mon_race_2_1) {
emotion e_lv;
specialeffect EF_MVP;
mapannounce "p_track02","Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC";
- set $@mon_race_2_1,1;
+ $@mon_race_2_1 = 1;
donpcevent strnpcinfo(0)+"::OnDisable";
} else {
emotion e_lv;
specialeffect EF_MVP;
mapannounce "p_track02","The race is over! Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC";
- set $@mon_race_2_2,1;
+ $@mon_race_2_2 = 1;
donpcevent "#poring1::OnDisable";
donpcevent "#lunatic1::OnDisable";
donpcevent "#savagebebe1::OnDisable";
@@ -1840,7 +1839,7 @@ OnMyMobDead:
function MN {
setarray .@n$[1], "poring","lunatic","savagebebe","desertwolf","deviruchi","baphomet";
- for (set .@i, 1; .@i <= getarraysize(.@n$); set .@i, .@i + 1) {
+ for (.@i = 1; .@i <= getarraysize(.@n$); ++.@i) {
if (compare(strnpcinfo(0),.@n$[.@i]))
break;
}
@@ -1862,9 +1861,9 @@ p_track02,30,28,0 duplicate(mob1#main) #baphomet1 HIDDEN_WARP_NPC,0,0
p_track02,19,48,0 script TrapGlobal#race02 -1,{
OnEnable:
enablenpc "TrapGlobal#race02";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
enablenpc "starting#race02_"+.@i;
- set .@c, 1;
+ .@c = 1;
while (.@c <= 6) {
setd ".@line_"+.@c,rand(1,70);
if (getd(".@line_"+.@c) <= 10) {
@@ -1895,40 +1894,40 @@ OnEnable:
enablenpc "Luk#race02_"+.@c+"_2";
setd ".@tired_"+.@c,rand(20,40);
setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c);
- for (set .@i, 1; .@i <= 3; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 3; ++.@i)
enablenpc "Tire#race02_"+.@c+"_"+.@i;
if (getd(".@tired_"+.@c) < 30) enablenpc "Tire#race02_"+.@c+"_4";
} else if (getd(".@line_"+.@c) <= 60) {
setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c);
- for (set .@i, 1; .@i <= 3; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 3; ++.@i)
enablenpc "Luk#race02_"+.@c+"_"+.@i;
setd ".@tired_"+.@c,rand(10,30);
setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c);
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 4; ++.@i)
enablenpc "Tire#race02_"+.@c+"_"+.@i;
if (getd(".@tired_"+.@c) < 20) enablenpc "Tire#race02_"+.@c+"_5";
} else if (getd(".@line_"+.@c) <= 70) {
setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c);
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 4; ++.@i)
enablenpc "Luk#race02_"+.@c+"_"+.@i;
setd ".@tired_"+.@c,rand(0,20);
setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c);
- for (set .@i, 1; .@i <= 5; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 5; ++.@i)
enablenpc "Tire#race02_"+.@c+"_"+.@i;
if (getd(".@tired_"+.@c) < 10) enablenpc "Tire#race02_"+.@c+"_6";
}
- set .@c, .@c + 1;
+ ++.@c;
}
end;
OnDisable:
disablenpc "TrapGlobal#race02";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
donpcevent "starting#race02_"+.@i+"::OnDisable";
end;
OnInit:
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) {
+ for (.@i = 1; .@i <= 6; ++.@i) {
setd "$@mon_r02_luk"+.@i,0;
setd "$@mon_r02_tire"+.@i,0;
}
@@ -1938,24 +1937,24 @@ OnInit:
- script starting_2 -1,{
OnDisable:
disablenpc strnpcinfo(0);
- for(set .@i,1; .@i<7; set .@i,.@i+1)
+ for(.@i = 1; .@i<7; ++.@i)
disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i;
- for(set .@i,1; .@i<7; set .@i,.@i+1)
+ for(.@i = 1; .@i<7; ++.@i)
disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i;
end;
OnTouchNPC:
- set .@start,rand(1,100);
- if (.@start < 11) set .@speed,60;
- else if (.@start < 21) set .@speed,70;
- else if (.@start < 31) set .@speed,80;
- else if (.@start < 41) set .@speed,90;
- else if (.@start < 51) set .@speed,100;
- else if (.@start < 61) set .@speed,110;
- else if (.@start < 71) set .@speed,120;
- else if (.@start < 81) set .@speed,130;
- else if (.@start < 91) set .@speed,140;
- else set .@speed,150;
+ .@start = rand(1,100);
+ if (.@start < 11) .@speed = 60;
+ else if (.@start < 21) .@speed = 70;
+ else if (.@start < 31) .@speed = 80;
+ else if (.@start < 41) .@speed = 90;
+ else if (.@start < 51) .@speed = 100;
+ else if (.@start < 61) .@speed = 110;
+ else if (.@start < 71) .@speed = 120;
+ else if (.@start < 81) .@speed = 130;
+ else if (.@start < 91) .@speed = 140;
+ else .@speed = 150;
sc_start SC_WALKSPEED,5000,.@speed;
end;
@@ -2286,7 +2285,7 @@ ein_in01,85,208,5 script Ei'felle#repay01 4_M_EINMAN2,{
}
}
setarray .@m$, "Dagger","One Handed Sword","Two Handed Sword","Axe","Mace","Bow","Staff","Book","Spear","Katar","Knuckle","Whip","Musical Instrument";
- set .@m, select (implode(.@m$,":")) - 1;
+ .@m = select (implode(.@m$,":")) - 1;
mes "[Ei'felle]";
mes "So you'd like to have a";
mes .@m$[.@m]+"? Please choose";
@@ -2346,7 +2345,7 @@ ein_in01,85,208,5 script Ei'felle#repay01 4_M_EINMAN2,{
setarray .@mw, 1918,1913;
break;
}
- set .@j, select (.@mw$+":Cancel") - 1;
+ .@j = select (.@mw$+":Cancel") - 1;
explode(.@mw$,.@mw$,":");
if (.@j == getarraysize(.@mw$)) close;
callsub S_BonusReward,1500,.@mw[.@j];
@@ -2581,9 +2580,9 @@ S_Reward:
mes "advance my research,";
mes "and I promise to repay";
mes "you as soon as I can!";
- set .@medals,countitem(7515);
+ .@medals = countitem(7515);
delitem 7515,.@medals; //Marvelous_Medal
- set ein_medal01,ein_medal01+.@medals;
+ ein_medal01 += .@medals;
close;
case 2:
mes "[Ei'felle]";
@@ -2631,7 +2630,7 @@ S_Reward:
mes "and I promise to repay";
mes "you as soon as I can!";
delitem 7515,.@input; //Marvelous_Medal
- set ein_medal01,ein_medal01+.@input;
+ ein_medal01 += .@input;
close;
}
case 3:
@@ -2735,7 +2734,7 @@ S_BonusReward:
mes "difficult. In any case, I would";
mes "appreciate your continued help~";
}
- set ein_medal01,ein_medal01-getarg(0);
+ ein_medal01 -= getarg(0);
getitem getarg(1),1;
close;
}
@@ -2800,9 +2799,9 @@ hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{
mes "more Prize Medals at a time.";
next;
setarray .@pm, 1,3,7,8,16,25,42,59;
- for (set .@i, 0; .@i < getarraysize(.@pm); set .@i, .@i + 1)
- set .@m$, .@m$ + .@pm[.@i] + " Prize medal:";
- set .@m, select (.@m$) - 1;
+ for (.@i = 0; .@i < getarraysize(.@pm); ++.@i)
+ .@m$ += .@pm[.@i] + " Prize medal:";
+ .@m = select (.@m$) - 1;
switch (.@m) {
case 0:
setarray .@mr$, "2 Hinale Leaflets:2 Aloe Leaflets:1 Mastela Fruit:5 Witch Starsands:4 Condensed Red Potions";
@@ -2817,23 +2816,23 @@ hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{
setarray .@mr, 12130,1,12110,1;
break;
case 3:
- set .@mr$, "1 Gift Box";
+ .@mr$ = "1 Gift Box";
setarray .@mr, 644,1;
break;
case 4:
- set .@mr$, "1 Old Blue Box";
+ .@mr$ = "1 Old Blue Box";
setarray .@mr, 603,1;
break;
case 5:
- set .@mr$, "1 Taming Gift Set";
+ .@mr$ = "1 Taming Gift Set";
setarray .@mr, 12105,1;
break;
case 6:
- set .@mr$, "1 Old Purple Box";
+ .@mr$ = "1 Old Purple Box";
setarray .@mr, 617,1;
break;
case 7:
- set .@mr$, "1 Poring Box";
+ .@mr$ = "1 Poring Box";
setarray .@mr, 12109,1;
break;
}
@@ -2843,7 +2842,7 @@ hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{
mes "sets that you'd like to receive";
mes "in exchange for "+.@pm[.@m]+" Prize Medal."+((getarraysize(.@mr)<3)?" Well, we have only 1 set, but...":"");
next;
- set .@m2, select (.@mr$) - 1;
+ .@m2 = select (.@mr$) - 1;
if (countitem(7515) < .@pm[.@m]) {
mes "[Wayne]";
mes "Hey, you don't have";
@@ -3074,12 +3073,12 @@ hugel,5,5,3 script Monster Race Manager 4_M_LGTGUARD,{
mes "Entry NPCs for the Single";
mes "and Dual Monster Races.";
next;
- set .@select, select("Single Race Entry - ON:Dual Race Entry - ON:Single Race Entry - OFF:Dual Race Entry - OFF");
+ .@select = select("Single Race Entry - ON:Dual Race Entry - ON:Single Race Entry - OFF:Dual Race Entry - OFF");
mes "[Monster Race Manager]";
mes "Please enter";
mes "the password.";
next;
- set .@i, callfunc("F_GM_NPC",1854,0,0,2000);
+ .@i = callfunc("F_GM_NPC",1854,0,0,2000);
if (.@i == -2) {
mes "[Monster Race Manager]";
mes "Error.";
diff --git a/npc/other/poring_war.txt b/npc/other/poring_war.txt
index 38eac1de1..5e99c97d8 100644
--- a/npc/other/poring_war.txt
+++ b/npc/other/poring_war.txt
@@ -129,13 +129,13 @@ poring_w01,100,97,3 script Poring Vending Machine#w 4_PORING,{
mes "What could it be?";
next;
switch(rand(1,17)) {
- case 5: set .@Random_Figure,2766; break; // Swordman_Figure
- case 6: set .@Random_Figure,2767; break; // Acolyte_Figure
- case 8: set .@Random_Figure,2770; break; // Thief_Figure
- case 11: set .@Random_Figure,2771; break; // Merchant_Figure
- case 13: set .@Random_Figure,2769; break; // Archer_Figure
- case 14: set .@Random_Figure,2768; break; // Mage_Figure
- default: set .@Random_Figure,2765; break; // Novice_Figure
+ case 5: .@Random_Figure = 2766; break; // Swordman_Figure
+ case 6: .@Random_Figure = 2767; break; // Acolyte_Figure
+ case 8: .@Random_Figure = 2770; break; // Thief_Figure
+ case 11: .@Random_Figure = 2771; break; // Merchant_Figure
+ case 13: .@Random_Figure = 2769; break; // Archer_Figure
+ case 14: .@Random_Figure = 2768; break; // Mage_Figure
+ default: .@Random_Figure = 2765; break; // Novice_Figure
}
mes "A nice " + getitemname(.@Random_Figure) + ".";
delitem 7539,50; // Poring_Coin
@@ -291,9 +291,9 @@ poring_w01,96,97,3 script Sweet Devi#wop 4_DEVIRUCHI,{
close2;
if (WoP_SaveMap$ != "") {
savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y;
- set WoP_SaveMap$,"";
- set WoP_SaveMap_X,0;
- set WoP_SaveMap_Y,0;
+ WoP_SaveMap$ = "";
+ WoP_SaveMap_X = 0;
+ WoP_SaveMap_Y = 0;
}
warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
@@ -304,12 +304,12 @@ OnPCLogoutEvent:
if (.@map$ == "poring_w02") {
if (WoP_SaveMap$ != "") {
savepoint WoP_SaveMap$,WoP_SaveMap_X,WoP_SaveMap_Y;
- set WoP_SaveMap$,"";
- set WoP_SaveMap_X,0;
- set WoP_SaveMap_Y,0;
+ WoP_SaveMap$ = "";
+ WoP_SaveMap_X = 0;
+ WoP_SaveMap_Y = 0;
}
delitem 7773,countitem(7773);
- set wop_team,0;
+ wop_team = 0;
}
end;
@@ -317,9 +317,9 @@ OnPCDieEvent:
getmapxy .@map$,.@x,.@y,0;
if (.@map$ == "poring_w02" && wop_team) {
if (getsavepoint(0) != "poring_w02" && WoP_SaveMap$ == "") {
- set WoP_SaveMap$,getsavepoint(0);
- set WoP_SaveMap_X,getsavepoint(1);
- set WoP_SaveMap_Y,getsavepoint(2);
+ WoP_SaveMap$ = getsavepoint(0);
+ WoP_SaveMap_X = getsavepoint(1);
+ WoP_SaveMap_Y = getsavepoint(2);
}
if (wop_team == 1) {
savepoint "poring_w02",rand(44,51),rand(76,87);
@@ -342,13 +342,13 @@ OnInit:
removemapflag "poring_w02",mf_pvp;
removemapflag "poring_w02",mf_pvp_noguild;
removemapflag "poring_w02",mf_pvp_nocalcrank;
- set $@wop_teamcount,0;
- set $@wop_deadcount_a,0;
- set $@wop_deadcount_d,0;
- set $@wop_team_a,0;
- set $@wop_team_d,0;
- set $@wop_doorcount_a,0;
- set $@wop_doorcount_d,0;
+ $@wop_teamcount = 0;
+ $@wop_deadcount_a = 0;
+ $@wop_deadcount_d = 0;
+ $@wop_team_a = 0;
+ $@wop_team_d = 0;
+ $@wop_doorcount_a = 0;
+ $@wop_doorcount_d = 0;
end;
}
@@ -389,7 +389,7 @@ OnStartArena:
warpwaitingpc "poring_w02",26,175;
disablewaitingroomevent;
if ($@wop_teamcount == 0) {
- set $@wop_teamcount,1;
+ $@wop_teamcount = 1;
donpcevent "Poring#wop_door_d::OnDevilingStart";
donpcevent "#wop_warp_rtry::OnStop";
}
@@ -457,7 +457,7 @@ OnTimer55100:
donpcevent "Poring#wop_door_a::OnDisable";
donpcevent "Poring#wop_door_d::OnDisable";
donpcevent "Poring#wop_door_all::OnDisable";
- set $@wop_teamcount,0;
+ $@wop_teamcount = 0;
donpcevent "#wop_master::OnAngelingEnd";
donpcevent "#wop_warp_rtry::OnEnable";
end;
@@ -481,7 +481,7 @@ OnStartArena:
warpwaitingpc "poring_w02",170,175;
disablewaitingroomevent;
if ($@wop_teamcount == 0) {
- set $@wop_teamcount,1;
+ $@wop_teamcount = 1;
donpcevent "Poring#wop_door_a::OnAngelingStart";
donpcevent "#wop_warp_rtry::OnStop";
}
@@ -550,7 +550,7 @@ OnTimer55100:
donpcevent "Poring#wop_door_d::OnDisable";
donpcevent "Poring#wop_door_all::OnDisable";
- set $@wop_teamcount,0;
+ $@wop_teamcount = 0;
donpcevent "#wop_master::OnDevilingEnd";
donpcevent "#wop_warp_rtry::OnEnable";
end;
@@ -627,8 +627,8 @@ poring_w02,26,181,3 script Mr. Doppel#wop_team_a 8_DOPPEL,{
mes "- after you loose some weight. -";
close;
}
- set .@a_tname$,getpartyname($@wop_team_a);
- set .@pname$,getpartyname(getcharid(1));
+ .@a_tname$ = getpartyname($@wop_team_a);
+ .@pname$ = getpartyname(getcharid(1));
if ($@wop_team_a != 0 && $@wop_team_a == getcharid(1)) {
mes "[Mr. Doppel]";
mes "So, everyone joined the party?";
@@ -660,7 +660,7 @@ poring_w02,26,181,3 script Mr. Doppel#wop_team_a 8_DOPPEL,{
mes "Very well. Nice you have done everything on time.";
delitem 7773,countitem(7773);
close2;
- set wop_team,0;
+ wop_team = 0;
warp "poring_w02",44,82;
end;
}
@@ -671,7 +671,7 @@ poring_w02,26,181,3 script Mr. Doppel#wop_team_a 8_DOPPEL,{
mes "Wait for all the other party members there.";
delitem 7773,countitem(7773);
close2;
- set wop_team,0;
+ wop_team = 0;
warp "poring_w02",44,82;
end;
}
@@ -703,7 +703,7 @@ poring_w02,26,181,3 script Mr. Doppel#wop_team_a 8_DOPPEL,{
mes "So, I'll register your party name as - " +.@pname$ + " -.";
mes "Now, Tell your ^4d4dffmembers to confirm your party^000000.";
mes "I'll send you to the battlefield as soon as I confirm your party.";
- set $@wop_team_a,getcharid(1);
+ $@wop_team_a = getcharid(1);
mapannounce "poring_w02","The registration of the Angeling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66;
close;
case 3:
@@ -758,8 +758,8 @@ poring_w02,170,181,3 script Mr. Doppel#wop_team_d 8_DOPPEL,{
mes "- after you loose some weight. -";
close;
}
- set .@d_tname$,getpartyname($@wop_team_d);
- set .@pname$,getpartyname(getcharid(1));
+ .@d_tname$ = getpartyname($@wop_team_d);
+ .@pname$ = getpartyname(getcharid(1));
if ($@wop_team_d != 0 && $@wop_team_d == getcharid(1)) {
mes "[Mr. Doppel]";
mes "So, everyone joined the party?";
@@ -791,7 +791,7 @@ poring_w02,170,181,3 script Mr. Doppel#wop_team_d 8_DOPPEL,{
mes "Very well. Nice you have done everything on time.";
delitem 7773,countitem(7773);
close2;
- set wop_team,0;
+ wop_team = 0;
warp "poring_w02",153,82;
end;
}
@@ -801,7 +801,7 @@ poring_w02,170,181,3 script Mr. Doppel#wop_team_d 8_DOPPEL,{
mes "Wait for all the other party members there.";
delitem 7773,countitem(7773);
close2;
- set wop_team,0;
+ wop_team = 0;
warp "poring_w02",153,82;
end;
}
@@ -832,7 +832,7 @@ poring_w02,170,181,3 script Mr. Doppel#wop_team_d 8_DOPPEL,{
mes "So, I'll register your party name as - " + .@pname$ + " -.";
mes "Now, Tell your ^4d4dffmembers to confirm your party^000000.";
mes "I'll send you to the battlefield as soon as I confirm your party.";
- set $@wop_team_d,getcharid(1);
+ $@wop_team_d = getcharid(1);
mapannounce "poring_w02","The registration of the Deviling Team has been confirmed. The party members must confirm their team with Mr. Doppel.",0,0x33FF66;
close;
case 3:
@@ -889,13 +889,13 @@ OnReset:
donpcevent "#wop_angellium2::OnReset";
donpcevent "#wop_devillium1::OnReset";
donpcevent "#wop_devillium2::OnReset";
- set $@wop_team_a,0;
- set $@wop_team_d,0;
- set $@wop_deadcount_a,0;
- set $@wop_deadcount_d,0;
- set $@wop_teamcount,0;
- set $@wop_doorcount_a,0;
- set $@wop_doorcount_d,0;
+ $@wop_team_a = 0;
+ $@wop_team_d = 0;
+ $@wop_deadcount_a = 0;
+ $@wop_deadcount_d = 0;
+ $@wop_teamcount = 0;
+ $@wop_doorcount_a = 0;
+ $@wop_doorcount_d = 0;
donpcevent "#wop_warp_a::OnDisable";
donpcevent "#wop_warp_d::OnDisable";
donpcevent "#wop_warp_rtry::OnDisable";
@@ -930,7 +930,7 @@ OnStop:
end;
OnAngelingWin:
- set .@i,1;
+ .@i = 1;
OnDevilingWin:
removemapflag "poring_w02",mf_partylock;
removemapflag "poring_w02",mf_pvp;
@@ -1044,7 +1044,7 @@ OnDisable:
end;
OnTouch:
- set wop_team,1;
+ wop_team = 1;
warp "poring_w02",57,82;
end;
}
@@ -1066,7 +1066,7 @@ OnDisable:
end;
OnTouch:
- set wop_team,2;
+ wop_team = 2;
warp "poring_w02",140,82;
end;
}
@@ -1086,7 +1086,7 @@ OnAngelingSpawn:
end;
OnMyMobDead:
- set $@wop_deadcount_a,$@wop_deadcount_a + 1;
+ ++$@wop_deadcount_a;
if ($@wop_deadcount_a == 1) {
mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been killed! 1 point lost!!",0,0x00ff00;
initnpctimer;
@@ -1101,7 +1101,7 @@ OnMyMobDead:
end;
OnTimer120000:
- set $@wop_deadcount_a,$@wop_deadcount_a - 1;
+ --$@wop_deadcount_a;
donpcevent "#wop_angellium1::OnAngelingSpawn";
mapannounce "poring_w02","Mr. Doppel: The Angeling on the 1st base has been revived! 1 point gained!!",0,0x00ff00;
stopnpctimer;
@@ -1120,7 +1120,7 @@ OnAngelingSpawn:
end;
OnMyMobDead:
- set $@wop_deadcount_a,$@wop_deadcount_a + 1;
+ ++$@wop_deadcount_a;
if ($@wop_deadcount_a == 1) {
mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00;
initnpctimer;
@@ -1135,7 +1135,7 @@ OnMyMobDead:
end;
OnTimer120000:
- set $@wop_deadcount_a,$@wop_deadcount_a - 1;
+ --$@wop_deadcount_a;
donpcevent "#wop_angellium2::OnAngelingSpawn";
mapannounce "poring_w02","Mr. Doppel: The Angeling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00;
stopnpctimer;
@@ -1155,7 +1155,7 @@ OnDevilingSpawn:
end;
OnMyMobDead:
- set $@wop_deadcount_d,$@wop_deadcount_d + 1;
+ ++$@wop_deadcount_d;
if ($@wop_deadcount_d == 1) {
mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been killed! 1 point lost!!",0,0x00ff00;
initnpctimer;
@@ -1170,7 +1170,7 @@ OnMyMobDead:
end;
OnTimer120000:
- set $@wop_deadcount_d,$@wop_deadcount_d - 1;
+ --$@wop_deadcount_d;
donpcevent "#wop_devillium1::OnDevilingSpawn";
mapannounce "poring_w02","Mr. Doppel: The Deviling on the 1st base has been revived! 1 point gained!!",0,0x00ff00;
stopnpctimer;
@@ -1190,7 +1190,7 @@ OnDevilingSpawn:
end;
OnMyMobDead:
- set $@wop_deadcount_d,$@wop_deadcount_d + 1;
+ ++$@wop_deadcount_d;
if ($@wop_deadcount_d == 1) {
mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been killed! 1 point lost!!",0,0x00ff00;
initnpctimer;
@@ -1205,7 +1205,7 @@ OnMyMobDead:
end;
OnTimer120000:
- set $@wop_deadcount_d,$@wop_deadcount_d - 1;
+ --$@wop_deadcount_d;
donpcevent "#wop_devillium2::OnDevilingSpawn";
mapannounce "poring_w02","Mr. Doppel: The deviling on the 2nd base has been revived! 1 point gained!!",0,0x00ff00;
stopnpctimer;
@@ -1222,8 +1222,8 @@ poring_w02,99,201,3 script Deviruchi#wop_endmaster 4_DEVIRUCHI,{
mes "- after you loose some weight. -";
close;
}
- set .@a_point,$@wop_deadcount_a;
- set .@d_point,$@wop_deadcount_d;
+ .@a_point = $@wop_deadcount_a;
+ .@d_point = $@wop_deadcount_d;
if (getcharid(1) == $@wop_team_a) {
if (.@a_point < .@d_point) {
mes "[Devi]";
@@ -1427,13 +1427,13 @@ OnTimer68100:
donpcevent "#wop_devillium2::OnReset";
donpcevent "#wop_angellium1::OnReset";
donpcevent "#wop_angellium2::OnReset";
- set $@wop_team_a,0;
- set $@wop_team_d,0;
- set $@wop_deadcount_a,0;
- set $@wop_deadcount_d,0;
- set $@wop_teamcount,0;
- set $@wop_doorcount_a,0;
- set $@wop_doorcount_d,0;
+ $@wop_team_a = 0;
+ $@wop_team_d = 0;
+ $@wop_deadcount_a = 0;
+ $@wop_deadcount_d = 0;
+ $@wop_teamcount = 0;
+ $@wop_doorcount_a = 0;
+ $@wop_doorcount_d = 0;
donpcevent "#wop_warp_a::OnDisable";
donpcevent "#wop_warp_d::OnDisable";
donpcevent "Mr. Doppel#wop_team_a::OnDisable";
@@ -1461,7 +1461,7 @@ poring_w02,99,52,0 script Angeling Guardian#wop_da HIDDEN_NPC,{
if ($@wop_doorcount_a < 4) {
mes "War Badge equipped.";
delitem 7773,1; // War_Badge
- set $@wop_doorcount_a,$@wop_doorcount_a + 1;
+ ++$@wop_doorcount_a;
cutin "wop_emb0" + $@wop_doorcount_a,1;
if ($@wop_doorcount_a == 4) {
next;
@@ -1501,7 +1501,7 @@ poring_w02,99,52,0 script Angeling Guardian#wop_da HIDDEN_NPC,{
end;
OnInit:
- set $@wop_doorcount_a,0;
+ $@wop_doorcount_a = 0;
end;
}
@@ -1558,7 +1558,7 @@ poring_w02,98,113,0 script Deviling Guardian#wop_dd HIDDEN_NPC,{
if ($@wop_doorcount_d < 4) {
mes "War Badge equipped.";
delitem 7773,1; // War_Badge
- set $@wop_doorcount_d,$@wop_doorcount_d + 1;
+ ++$@wop_doorcount_d;
cutin "wop_emb0" + $@wop_doorcount_d,1;
if ($@wop_doorcount_d == 4) {
next;
@@ -1598,7 +1598,7 @@ poring_w02,98,113,0 script Deviling Guardian#wop_dd HIDDEN_NPC,{
end;
OnInit:
- set $@wop_doorcount_d,0;
+ $@wop_doorcount_d = 0;
end;
}
diff --git a/npc/other/powernpc.txt b/npc/other/powernpc.txt
index 33c6980dd..ad81c6438 100644
--- a/npc/other/powernpc.txt
+++ b/npc/other/powernpc.txt
@@ -24,7 +24,7 @@ gonryun,180,118,4 script Iron man#gnp 4_M_03,{
mes "Children are not allowed in here.";
close;
}
- if (in_battle == 3) set in_battle,1;
+ if (in_battle == 3) in_battle = 1;
if (in_battle < 1) {
mes "[Songmoodoo]";
mes "Hey hey~ This is not something";
@@ -84,14 +84,14 @@ gonryun,180,118,4 script Iron man#gnp 4_M_03,{
mes "I'll give you another chance.";
mes "See you again.";
emotion e_pif;
- set in_battle,1;
+ in_battle = 1;
}
close;
L_Lifting:
if (checkweight(7049,getarg(0))) {
mes "You lifted the Stone lightly.^000000";
- set in_battle,1;
+ in_battle = 1;
getitem 7049, getarg(0); // Stone
next;
emotion e_no1;
@@ -138,9 +138,9 @@ gon_test,50,14,4 script Administrator#gnp 8_M_TWSOLDIER,{
close;
}
Zeny -= 500;
- set in_battle,1;
+ in_battle = 1;
warp "gon_test",42,86;
- set $@in_battle,1;
+ $@in_battle = 1;
setnpctimer 0,"Summoner#gnp";
startnpctimer "Summoner#gnp";
end;
@@ -161,15 +161,15 @@ gon_test,42,89,4 script Summoner#gnp 4_M_TWBOY,{
mes "Welcome.";
mes "Which monster will you recall?";
next;
- set .@gnpGroup, select("Group 1:Group 2:Group 3:Group 4:Group 5:Group 6:Group 7:Group 8:Group 9:Group 10:Group 11");
- set .@gnpGroupMob$,.gnpMobsName$[(.@gnpGroup-1)*6];
- for (set .@i,1; .@i < 6; set .@i, .@i+1)
- set .@gnpGroupMob$, .@gnpGroupMob$ + ":" + .gnpMobsName$[(.@gnpGroup-1)*6 + .@i];
- set .@gnpMob, select(.@gnpGroupMob$);
+ .@gnpGroup = select("Group 1:Group 2:Group 3:Group 4:Group 5:Group 6:Group 7:Group 8:Group 9:Group 10:Group 11");
+ .@gnpGroupMob$ = .gnpMobsName$[(.@gnpGroup-1)*6];
+ for (.@i = 1; .@i < 6; ++.@i)
+ .@gnpGroupMob$ += ":" + .gnpMobsName$[(.@gnpGroup-1)*6 + .@i];
+ .@gnpMob = select(.@gnpGroupMob$);
mes "[SongYeunWoo]";
mes "Let the fight begin!";
close2;
- set in_battle,2;
+ in_battle = 2;
if (getnpctimer(0) < 180000) monster "gon_test",56,86,.gnpMobsName$[(.@gnpGroup-1)*6 + .@gnpMob - 1],.gnpMobsId[(.@gnpGroup-1)*6 + .@gnpMob - 1],1,"Summoner#gnp::OnGnpMobDead";
end;
OnInit:
@@ -213,13 +213,13 @@ OnTimer182000:
OnGnpMobDead:
setnpctimer 0;
- set in_battle,1;
+ in_battle = 1;
areaannounce "gon_test",41,81,74,92,"Thank you. Please come again.",0;
sleep 4000;
OnTimer184000:
stopnpctimer;
areawarp "gon_test",41,81,74,92,"gon_test",44,4;
- set $@in_battle,0;
+ $@in_battle = 0;
end;
}
@@ -253,7 +253,7 @@ gon_test,46,14,3 script Guide of field of fight 4_F_TWGIRL,{
mes "Yes, thank you.";
mes "Have a good time.";
close2;
- set in_battle,3;
+ in_battle = 3;
warp "gon_test",25,98;
end;
case 4:
@@ -281,7 +281,7 @@ gon_test,70,103,3 script ChowAnAn#gnp 4_F_TWMIDWOMAN,{
mes "Thank you.";
mes "Please come again.";
close2;
- set in_battle,1;
+ in_battle = 1;
warp "gon_test",44,4;
end;
}
diff --git a/npc/other/pvp.txt b/npc/other/pvp.txt
index 779f332ae..383c67d22 100644
--- a/npc/other/pvp.txt
+++ b/npc/other/pvp.txt
@@ -253,7 +253,7 @@ geffen_in,67,63,4 duplicate(pvpe) PVP Narrator#pe6 4_M_02
close;
L_Warp:
- set .@map$,getarg(0);
+ .@map$ = getarg(0);
if (checkre(0)) {
switch(rand(1,10)) {
case 1: warp .@map$,34,38; break;
@@ -291,7 +291,7 @@ function script F_PVP_FSRS {
}
}
if (strnpcinfo(4) == "pvp_y_room") {
- set .@base$, "pvp_y_"+strnpcinfo(2);
+ .@base$ = "pvp_y_"+strnpcinfo(2);
setarray .@maps$[0], .@base$+"-1", .@base$+"-2", .@base$+"-3", .@base$+"-4", .@base$+"-5";
setarray .@name$[0], "Prontera", "Izlude", "Payon", "Alberta", "Morroc";
setarray .@Limit[0], 128, 128, 128, 128, 128;
@@ -300,10 +300,10 @@ function script F_PVP_FSRS {
setarray .@name$[0], "Sandwich", "Lock on", "Four Room", "Under cross", "Compass Room";
setarray .@Limit[0], 64, 32, 32, 32, 32;
}
- for(set .@i,0; .@i<5; set .@i,.@i+1)
- set .@menu$, .@menu$+.@name$[.@i]+" ["+getmapusers(.@maps$[.@i])+" / "+.@Limit[.@i]+"]:";
- set .@menu$, .@menu$+"Cancel.";
- set .@i, select(.@menu$)-1;
+ for (.@i = 0; .@i<5; ++.@i)
+ .@menu$ += .@name$[.@i]+" ["+getmapusers(.@maps$[.@i])+" / "+.@Limit[.@i]+"]:";
+ .@menu$ += "Cancel.";
+ .@i = select(.@menu$)-1;
if (.@i == 5) close;
if (getmapusers(.@maps$[.@i]) >= .@Limit[.@i]) {
mes "[PVP Fight Square Reception Staff]";
@@ -326,7 +326,7 @@ pvp_room,54,85,4 script Registration Staff#1 8W_SOLDIER,{
mes "For details about viewers please proceed to the Register Staff on your right.";
close;
}
- set .@size, getarraysize(.warp_x);
+ .@size = getarraysize(.warp_x);
if (.@size == 0) {
setarray .warp_x,40,59,20,40;
setarray .warp_y,59,40,40,20;
@@ -342,7 +342,7 @@ pvp_room,54,85,4 script Registration Staff#1 8W_SOLDIER,{
mes "Good luck!";
close2;
delitem 7028,1; //Invite_For_Duel
- set .@rand, rand(.@size);
+ .@rand = rand(.@size);
warp "pvp_2vs2", .warp_x[.@rand], .warp_y[.@rand];
deletearray .warp_x[.@rand],1;
deletearray .warp_y[.@rand],1;
diff --git a/npc/other/turbo_track.txt b/npc/other/turbo_track.txt
index 2d9b967d8..fdbf58b82 100644
--- a/npc/other/turbo_track.txt
+++ b/npc/other/turbo_track.txt
@@ -19,7 +19,7 @@
function script F_tt {
if (compare(strnpcinfo(2),"main")) end;
- set .@w$,(charat(strnpcinfo(4),6))+((getstrlen(strnpcinfo(4)) > 9)?(substr(strnpcinfo(4),8,9)):(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1)));
+ .@w$ = (charat(strnpcinfo(4),6))+((getstrlen(strnpcinfo(4)) > 9)?(substr(strnpcinfo(4),8,9)):(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1)));
return .@w$;
}
@@ -33,13 +33,13 @@ OnEnable:
OnStartArena:
if (compare(strnpcinfo(2),"n1")) {
- set .@in$, "n";
- set .@in, 1;
+ .@in$ = "n";
+ .@in = 1;
} else {
- set .@in$,(compare(strnpcinfo(1),"Expert"))?"e":"n";
- if (compare(strnpcinfo(1),"4")) set .@in, 4;
- if (compare(strnpcinfo(1),"8")) set .@in, 8;
- if (compare(strnpcinfo(1),"16")) set .@in, 16;
+ .@in$ = (compare(strnpcinfo(1),"Expert"))?"e":"n";
+ if (compare(strnpcinfo(1),"4")) .@in = 4;
+ if (compare(strnpcinfo(1),"8")) .@in = 8;
+ if (compare(strnpcinfo(1),"16")) .@in = 16;
}
warpwaitingpc "turbo_"+.@in$+"_"+.@in,298,161;
donpcevent "Broadcast#"+.@in$+.@in+"::OnEnable";
@@ -51,9 +51,9 @@ OnInit:
if (compare(strnpcinfo(2),"n1")) {
waitingroom "Solo Mode",60,"Solo Mode#n1::OnStartArena",1;
} else {
- if (compare(strnpcinfo(1),"4")) set .@in, 4;
- if (compare(strnpcinfo(1),"8")) set .@in, 8;
- if (compare(strnpcinfo(1),"16")) set .@in, 16;
+ if (compare(strnpcinfo(1),"4")) .@in = 4;
+ if (compare(strnpcinfo(1),"8")) .@in = 8;
+ if (compare(strnpcinfo(1),"16")) .@in = 16;
waitingroom strnpcinfo(1),60,strnpcinfo(0)+"::OnStartArena",.@in,1000,10,99;
}
enablewaitingroomevent strnpcinfo(0);
@@ -90,7 +90,7 @@ turbo_e_4,298,167,0 script Point#tt_main -1,15,15,{
OnTouch:
if (tt_point < 28999) {
- set tt_point,tt_point+2;
+ tt_point += 2;
warp strnpcinfo(4),59,364;
}
else
@@ -98,7 +98,7 @@ OnTouch:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Point Give-Away Guy#"+.@w$;
end;
}
@@ -112,7 +112,7 @@ turbo_n_1,298,167,0 duplicate(Point#tt_main) Point Give-Away Guy#n1 -1,15,15
- script Broadcast#tt_main -1,{
OnEnable:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Broadcast#"+.@w$;
initnpctimer;
end;
@@ -170,25 +170,25 @@ OnTimer47000:
end;
OnTimer49000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Point Give-Away Guy#"+.@w$;
donpcevent "Master#"+.@w$+"::OnEnable";
end;
OnTimer50000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
donpcevent "snake#"+.@w$+"::OnEnable";
donpcevent "hunting#"+.@w$+"::OnEnable";
if (strnpcinfo(4) != "turbo_n_1") enablenpc "bing#"+.@w$;
end;
OnTimer57000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Point Give-Away Guy#"+.@w$;
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Broadcast#"+.@w$;
end;
}
@@ -203,13 +203,13 @@ turbo_n_1,167,3,0 duplicate(Broadcast#tt_main) Broadcast#n1 -1
- script Master#tt_main -1,{
function RName;
OnEnable:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Master#"+.@w$;
initnpctimer;
end;
OnDisable:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
stopnpctimer;
disablenpc "Master#"+.@w$;
end;
@@ -259,11 +259,11 @@ OnTimer22000:
end;
OnTimer23000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),"Now! The race has begun! Go Go Go!!",bc_map,"0x33FF66";
disablenpc "No_Unfair_Start#"+.@w$+"-1";
disablenpc "No_Unfair_Start#"+.@w$+"-2";
- if (strnpcinfo(4) == "turbo_n_1") set $@start_time,gettimetick(0);
+ if (strnpcinfo(4) == "turbo_n_1") $@start_time = gettimetick(0);
end;
OnTimer30000:
@@ -367,7 +367,7 @@ OnTimer925000:
end;
OnTimer927000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),"[Everyone will be transported to a Waiting Room.]",bc_map,"0x33FF66";
mapwarp strnpcinfo(4),"turbo_room",71,89;
disablenpc "Broadcast#"+.@w$;
@@ -393,13 +393,13 @@ OnTimer927000:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Master#"+.@w$;
end;
function RName {
- set .@s,(getstrlen(getarg(0)) > 2)?(substr(getarg(0),1,2)):(charat(getarg(0),getstrlen(getarg(0))-1));
- set .@rn$,((compare(strnpcinfo(4),"_e_"+.@s))?"Expert mode":"Normal mode")+" - "+.@s+" person";
+ .@s = (getstrlen(getarg(0)) > 2)?(substr(getarg(0),1,2)):(charat(getarg(0),getstrlen(getarg(0))-1));
+ .@rn$ = ((compare(strnpcinfo(4),"_e_"+.@s))?"Expert mode":"Normal mode")+" - "+.@s+" person";
return .@rn$;
}
}
@@ -1177,7 +1177,7 @@ turbo_n_1,381,354,0 duplicate(SandTrap#tt_main) #TBT_trap_n1-23 -1,1,1
- script Trap#tt_main -1,{
OnTouch:
if (rand(1,3) == 1) {
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
cutin "kafra_03",2;
mes "^4d4dffAl De Baran";
mes "Turbo Track";
@@ -1609,7 +1609,7 @@ turbo_n_1,236,3,0 duplicate(WaterTrap#tt_main) flasher#n1-48b -1,3,0
- script snake01#tt_main -1,{
OnTouch:
- set .@turbo2,rand(1,7);
+ .@turbo2 = rand(1,7);
if (.@turbo2 < 3) warp strnpcinfo(4),370,292;
if (.@turbo2 < 5) warp strnpcinfo(4),295,293;
if (.@turbo2 < 7) warp strnpcinfo(4),355,292;
@@ -1626,7 +1626,7 @@ turbo_n_1,324,279,0 duplicate(snake01#tt_main) snake01#n1 WARPNPC,1,1
- script snake02#tt_main -1,{
OnTouch:
- set .@turbo2,rand(1,8);
+ .@turbo2 = rand(1,8);
if (.@turbo2 < 3) warp strnpcinfo(4),287,256;
if (.@turbo2 < 5) warp strnpcinfo(4),303,256;
if (.@turbo2 < 7) warp strnpcinfo(4),347,256;
@@ -1644,7 +1644,7 @@ turbo_n_1,332,279,0 duplicate(snake02#tt_main) snake02#n1 WARPNPC,1,1
- script snake03#tt_main WARPNPC,1,1,{
OnTouch:
- set .@turbo2,rand(1,8);
+ .@turbo2 = rand(1,8);
if (.@turbo2 < 3) warp strnpcinfo(4),279,292;
if (.@turbo2 < 5) warp strnpcinfo(4),311,292;
if (.@turbo2 < 7) warp strnpcinfo(4),347,256;
@@ -1662,7 +1662,7 @@ turbo_n_1,324,270,0 duplicate(snake03#tt_main) snake03#n1 WARPNPC,1,1
- script snake04#tt_main WARPNPC,1,1,{
OnTouch:
- set .@turbo2,rand(1,7);
+ .@turbo2 = rand(1,7);
if (.@turbo2 < 3) warp strnpcinfo(4),363,256;
if (.@turbo2 < 5) warp strnpcinfo(4),295,293;
if (.@turbo2 < 7) warp strnpcinfo(4),355,292;
@@ -1687,7 +1687,7 @@ OnReset:
OnEnable:
if (compare(strnpcinfo(2),"snake")) {
setarray .@n, 279,284,279,268,279,260,287,288,287,280,287,264,295,284,295,268,295,260,303,288,303,280,303,264,311,284,311,268,311,260,347,288,347,280,347,264,355,284,355,268,355,260,363,288,363,280,363,264,371,284,371,268,371,260,379,288,379,280,379,264;
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
monster strnpcinfo(4),.@n[.@i],.@n[.@i+1],"Archer Skeleton",1420,1;
} else {
setarray .@n_1$, "Munak","1610";
@@ -1697,9 +1697,9 @@ OnEnable:
setarray .@n_3$, "Yao Jun","1612";
setarray .@n_3, 68,56,26,46;
while (.@c < 3) {
- for (set .@i, 0; .@i < getarraysize(getd(".@n_"+.@c)); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(getd(".@n_"+.@c)); .@i += 2)
monster strnpcinfo(4),getd(".@n_"+.@c+"["+.@i+"]"),getd(".@n_"+.@c+"["+(.@i+1)+"]"),getd(".@n_"+.@c+"$[0]"),atoi(getd(".@n_"+.@c+"$[1]")),1;
- set .@c, .@c + 1;
+ ++.@c;
}
}
@@ -1718,7 +1718,7 @@ turbo_n_1,90,46,0 duplicate(SnakeHunt#tt_main) hunting#n1 HIDDEN_NPC
- script cos#tt_main -1,{
OnTouch:
- set .@n, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@n = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
switch (.@n) {
case 1:
mapannounce strnpcinfo(4),strcharinfo(0) +" has just passed the Log Bridge course!",bc_map,"0x70DBDB";
@@ -1921,8 +1921,8 @@ turbo_n_1,222,65,0 duplicate(TurboHint_4#tt_main) #n1NoWayOut7 -1,1,1
- script cos_end#tt_main -1,{
function GetNumber;
OnTouch:
- set .@w$,callfunc("F_tt");
- if (.@w$ == "n1") set $@end_time,gettimetick(0);
+ .@w$ = callfunc("F_tt");
+ if (.@w$ == "n1") $@end_time = gettimetick(0);
mapannounce strnpcinfo(4),strcharinfo(0) +" has just arrived at the Finish Line! Congratulations!",bc_map,"0xFFFF00";
if (.@w$ != "n1") {
setd "$ttnames$["+GetNumber(.@w$)+"]",strcharinfo(0);
@@ -1940,7 +1940,7 @@ OnTouch:
} else {
if (.@w$ == "e8" || .@w$ == "n8") setarray .@pts, 28951,50;
if (.@w$ == "e16" || .@w$ == "n16") setarray .@pts, 28941,60;
- if (tt_point < .@pts[0]) set tt_point,tt_point+.@pts[1];
+ if (tt_point < .@pts[0]) tt_point += .@pts[1];
warp strnpcinfo(4),384,161;
enablenpc "Winner Helper#TBT_"+.@w$;
enablenpc "#cos_"+.@w$+"_end2";
@@ -1950,14 +1950,14 @@ OnTouch:
function GetNumber {
setarray .@w_n$[1], "n4","n8","n16","e4","e8","e16";
- for (set .@i, 1; .@i <= getarraysize(.@w_n$); set .@i, .@i + 1) {
+ for (.@i = 1; .@i <= getarraysize(.@w_n$); ++.@i) {
if (getarg(0) == .@w_n$[.@i])
return .@i;
}
}
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "#cos_"+.@w$+"_end";
end;
}
@@ -1971,18 +1971,18 @@ turbo_n_1,371,47,0 duplicate(cos_end#tt_main) #cos_n1_end WARPNPC,1,1
- script cos_end2#tt_main WARPNPC,1,1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),strcharinfo(0) +" is second to reach the Finish Line! Congratulations!",bc_map,"0xFFFF00";
if (.@w$ == "e8" || .@w$ == "n8") setarray .@pts, 28961,40;
if (.@w$ == "e16" || .@w$ == "n16") setarray .@pts, 28951,50;
- if (tt_points < .@pts[0]) set tt_point,tt_point+.@pts[1];
+ if (tt_points < .@pts[0]) tt_point += .@pts[1];
warp "turbo_room",72,89;
disablenpc "#cos_"+.@w$+"_end2";
enablenpc "#cos_"+.@w$+"_end3";
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "#cos_"+.@w$+"_end2";
end;
}
@@ -1993,11 +1993,11 @@ turbo_n_16,371,51,0 duplicate(cos_end2#tt_main) #cos_n16_end2 WARPNPC,1,1
- script cos_end3#tt_main -1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),"" + strcharinfo(0) +" is third to reach the Finish Line! Congratulations!",bc_map,"0xFFFF00";
if (.@w$ == "e8" || .@w$ == "n8") setarray .@pts, 28971,30;
if (.@w$ == "e16" || .@w$ == "n16") setarray .@pts, 28951,50;
- if (tt_point < .@pts[0]) set tt_point,tt_point+.@pts[1];
+ if (tt_point < .@pts[0]) tt_point += .@pts[1];
warp "turbo_room",72,89;
donpcevent "Winner Helper#TBT_"+.@w$+"::OnEnable";
donpcevent "Master#"+.@w$+"::OnDisable";
@@ -2006,7 +2006,7 @@ OnTouch:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "#cos_"+.@w$+"_end3";
end;
}
@@ -2017,7 +2017,7 @@ turbo_n_16,371,43,0 duplicate(cos_end3#tt_main) #cos_n16_end3 WARPNPC,1,1
turbo_e_4,316,365,0 script DSwitch#tt_main -1,1,1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (rand(1,2) == 1)
enablenpc "Flasher_Exit_1#"+.@w$;
else
@@ -2040,7 +2040,7 @@ OnTouch:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc strnpcinfo(0);
end;
}
@@ -2064,13 +2064,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
if (tt_rank < 29999) {
mes "[Guide]";
mes "Congratulations!";
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) {
if (tt_point < 28961) {
mes "As the winner, your reward";
mes "is 40 Turbo Track Points~";
- set tt_point,tt_point+40;
- set my_point,tt_point;
+ tt_point += 40;
+ my_point = tt_point;
mes "You now have a total of";
mes tt_point + " Turbo Track points,";
mes strcharinfo(0) +".";
@@ -2090,7 +2090,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "any points if you exceed the";
mes "point limit. You now have a total of " + my_point + " Turbo Track points.";
}
- set tt_rank,tt_rank+1;
+ ++tt_rank;
next;
if (tt_rank > $ttranks[1]) {
setarray $ttranks[0],$ttranks[0],tt_rank,$ttranks[1],$ttranks[2],$ttranks[3],$ttranks[4];
@@ -2103,13 +2103,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
donpcevent "Turbo Track Guide::OnNew_Top1";
if (tt_rank == 29999) {
if ($ttnames$[7] == "Breezy Havana") {
- set $ttnames$[7],strcharinfo(0);
+ $ttnames$[7] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
}
else if ($ttnames$[8] == "RS125") {
- set $ttnames$[8],strcharinfo(0);
+ $ttnames$[8] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
if (compare(.@w$,"4")) announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
@@ -2127,13 +2127,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
donpcevent "Turbo Track Guide::OnNew_Top2";
if (tt_rank == 29999) {
if ($ttnames$[7] == "Breezy Havana") {
- set $ttnames$[7],strcharinfo(0);
+ $ttnames$[7] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
}
else if ($ttnames$[8] == "RS125") {
- set $ttnames$[8],strcharinfo(0);
+ $ttnames$[8] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
@@ -2151,13 +2151,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
donpcevent "Turbo Track Guide::OnNew_Top3";
if (tt_rank == 29999) {
if ($ttnames$[7] == "Breezy Havana") {
- set $ttnames$[7],strcharinfo(0);
+ $ttnames$[7] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
}
else if ($ttnames$[8] == "RS125") {
- set $ttnames$[8],strcharinfo(0);
+ $ttnames$[8] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
@@ -2175,13 +2175,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
donpcevent "Turbo Track Guide::OnNew_Top4";
if (tt_rank == 29999) {
if ($ttnames$[7] == "Breezy Havana") {
- set $ttnames$[7],strcharinfo(0);
+ $ttnames$[7] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
}
else if ($ttnames$[8] == "RS125") {
- set $ttnames$[8],strcharinfo(0);
+ $ttnames$[8] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
@@ -2199,13 +2199,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
donpcevent "Turbo Track Guide::OnNew_Top5";
if (tt_rank == 29999) {
if ($ttnames$[7] == "Breezy Havana") {
- set $ttnames$[7],strcharinfo(0);
+ $ttnames$[7] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce "" + strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
}
else if ($ttnames$[8] == "RS125") {
- set $ttnames$[8],strcharinfo(0);
+ $ttnames$[8] = strcharinfo(0);
mes "You've secured your place in";
mes "the Turbo Track Hall of Honor!";
announce strcharinfo(0) + " has joined the Turbo Track Hall of Honor!",bc_all,"FF0000";
@@ -2250,7 +2250,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "Right, your reward...";
if (tt_point < 28961) {
mes "40 Turbo Track Points!";
- set tt_point,tt_point+40;
+ tt_point += 40;
mes "You now have a total of";
mes tt_point +" Turbo Track Points.";
}
@@ -2265,7 +2265,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "Oh, I'm sorry! You're";
mes "here so that I can tell you";
mes "how many Turbo Track Points";
- set my_point,tt_point;
+ my_point = tt_point;
mes "you have, right? You've got a total of " + my_point + " Turbo Track Points, "+ strcharinfo(0) +".";
}
next;
@@ -2291,7 +2291,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "Right, your reward...";
if (tt_point < 28961) {
mes "40 Turbo Track Points!";
- set tt_point,tt_point+40;
+ tt_point += 40;
mes "You now have a total of";
mes tt_point +" Turbo Track Points.";
}
@@ -2303,7 +2303,7 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
}
} else {
mes "Oh right, your current";
- set my_point,tt_point;
+ my_point = tt_point;
mes "Turbo Track Point total!";
mes "You've got a total of";
mes my_point + " Turbo Track points,";
@@ -2332,8 +2332,8 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
mes "Right, your reward...";
mes "40 Turbo Track Points!";
if (tt_point < 28961) {
- set tt_point,tt_point+40;
- set my_point,tt_point;
+ tt_point += 40;
+ my_point = tt_point;
mes "You now have a total of";
mes tt_point +" Turbo Track Points.";
}
@@ -2363,13 +2363,13 @@ turbo_n_1,114,190,0 duplicate(Flasher#tt_main) Flasher_Exit_2#n1 WARPNPC,1,1
}
OnEnable:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Winner Helper#TBT_"+.@w$;
initnpctimer;
end;
OnTimer4000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),"This is the ending broadcast for Turbo Track "+RName(.@w$)+".",bc_map,"0x33FF66";
end;
@@ -2382,12 +2382,12 @@ OnTimer12000:
end;
OnTimer16000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"Players in the arena must be ready to leave through the Warp Portal.",bc_map,"0x33FF66";
end;
OnTimer20000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4"))
mapannounce strnpcinfo(4),"In the meantime, winners must proceed to receive their rewards as soon as possible.",bc_map,"0x33FF66";
else
@@ -2395,41 +2395,41 @@ OnTimer20000:
end;
OnTimer24000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"Thank you for visiting Al De Baran Turbo Track.",bc_map,"0x33FF66";
end;
OnTimer25000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"In the meantime, winners must procceed to receive their rewards as soon as possible.",bc_map,"0x33FF66";
end;
OnTimer28000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"Al De Baran Turbo Track is brought to you by...",bc_map,"0x33FF66";
end;
OnTimer30000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"Thank you for visiting Al De Baran Turbo Track.",bc_map,"0x33FF66";
OnTimer32000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"[Al De Baran Kafra Corporation Headquarters]",bc_map,"0x33FF66";
end;
OnTimer35000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"Al De Baran Turbo Track is brought to you by...",bc_map,"0x33FF66";
end;
OnTimer36000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"[Al De Baran Guild Castle Management Luina]",bc_map,"0x33FF66";
end;
OnTimer40000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4"))
mapannounce strnpcinfo(4),"[Blacksmith Union]",bc_map,"0x33FF66";
else
@@ -2437,42 +2437,42 @@ OnTimer40000:
end;
OnTimer44000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"And [Comodo Casino].",bc_map,"0x33FF66";
end;
OnTimer45000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"[Al De Baran Guild Castle Management Luina]",bc_map,"0x33FF66";
end;
OnTimer48000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"Once again, we'd like to thank our sponsors.",bc_map,"0x33FF66";
end;
OnTimer50000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"[Blacksmith Union]",bc_map,"0x33FF66";
end;
OnTimer52000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapannounce strnpcinfo(4),"Have a good day.",bc_map,"0x33FF66";
end;
OnTimer55000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"And [Comodo Casino].",bc_map,"0x33FF66";
end;
OnTimer58000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) mapwarp strnpcinfo(4),"turbo_room",72,89;
end;
OnTimer60000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (compare(.@w$,"4")) {
enablenpc "Notice_Maker1#TBT_"+.@w$;
enablenpc "Notice_Maker3#TBT_"+.@w$;
@@ -2494,17 +2494,17 @@ OnTimer60000:
end;
OnTimer65000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapannounce strnpcinfo(4),"Have a good day.",bc_map,"0x33FF66";
end;
OnTimer70000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) mapwarp strnpcinfo(4),"turbo_room",72,89;
end;
OnTimer71000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
if (!compare(.@w$,"4")) {
disablenpc "Winner Helper#TBT_"+.@w$;
enablenpc "#cos_"+.@w$+"_end";
@@ -2527,13 +2527,13 @@ OnTimer71000:
end;
function RName {
- set .@s,(getstrlen(getarg(0)) > 2)?(substr(getarg(0),1,2)):(charat(getarg(0),getstrlen(getarg(0))-1));
- set .@rn$,((compare(strnpcinfo(4),"_e_"+.@s))?"Expert mode":"Normal mode")+" - "+.@s+" person";
+ .@s = (getstrlen(getarg(0)) > 2)?(substr(getarg(0),1,2)):(charat(getarg(0),getstrlen(getarg(0))-1));
+ .@rn$ = ((compare(strnpcinfo(4),"_e_"+.@s))?"Expert mode":"Normal mode")+" - "+.@s+" person";
return .@rn$;
}
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Winner Helper#TBT_"+.@w$;
end;
}
@@ -2545,19 +2545,19 @@ turbo_n_8,384,167,1 duplicate(WHelper#tt_main) Winner Helper#TBT_n8 1_M_01
turbo_n_16,384,167,1 duplicate(WHelper#tt_main) Winner Helper#TBT_n16 1_M_01
turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
- set .@hour_start,$@start_time / 10000;
- set .@min_start,(($@start_time % 10000) / 100);
- set .@sec_start,$@start_time % 100;
- set .@hour_end,$@end_time / 10000;
- set .@min_end,(($@end_time % 10000) / 100);
- set .@sec_end,$@end_time % 100;
- if (hour_start == 23 && hour_end == 0) set .@hour_end,24;
- set .@st_to_sec,((.@hour_start * 3600) + (.@min_start * 60) + (.@sec_start));
- set .@et_to_sec,((.@hour_end * 3600) + (.@min_end * 60) + (.@sec_end));
- set .@record_time,(.@et_to_sec - .@st_to_sec);
- set .@record_hour,.@record_time / 3600;
- set .@record_min,((.@record_time % 3600) / 60);
- set .@record_sec,.@record_time % 60;
+ .@hour_start = $@start_time / 10000;
+ .@min_start = (($@start_time % 10000) / 100);
+ .@sec_start = $@start_time % 100;
+ .@hour_end = $@end_time / 10000;
+ .@min_end = (($@end_time % 10000) / 100);
+ .@sec_end = $@end_time % 100;
+ if (hour_start == 23 && hour_end == 0) .@hour_end = 24;
+ .@st_to_sec = ((.@hour_start * 3600) + (.@min_start * 60) + (.@sec_start));
+ .@et_to_sec = ((.@hour_end * 3600) + (.@min_end * 60) + (.@sec_end));
+ .@record_time = (.@et_to_sec - .@st_to_sec);
+ .@record_hour = .@record_time / 3600;
+ .@record_min = ((.@record_time % 3600) / 60);
+ .@record_sec = .@record_time % 60;
if (.@record_min < 0) {
mes "[Guide]";
mes "Good work! Maybe you didn't";
@@ -2570,8 +2570,8 @@ turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
if (tt_point < 28991) {
mes "You will be rewarded";
mes "with 10 Turbo Track points~!";
- set tt_point,tt_point+10;
- set my_point,tt_point;
+ tt_point += 10;
+ my_point = tt_point;
mes "You now have a total of";
mes tt_point + " Turbo Track points.";
}
@@ -2594,9 +2594,9 @@ turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
end;
}
else {
- set .@topbun,(($ttranks[0] % 3600) / 60 );
- set .@topcho,$ttranks[0] % 60;
- set .@gap,$ttranks[0] - .@record_time;
+ .@topbun = (($ttranks[0] % 3600) / 60 );
+ .@topcho = $ttranks[0] % 60;
+ .@gap = $ttranks[0] - .@record_time;
if (.@gap < 0) {
mes "[Guide]";
mes "Good work! Maybe you didn't";
@@ -2609,8 +2609,8 @@ turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
if (tt_point < 28991) {
mes "You will be rewarded";
mes "with 10 Turbo Track points~!";
- set tt_point,tt_point+10;
- set my_point,tt_point;
+ tt_point += 10;
+ my_point = tt_point;
mes "You now have a total of";
mes tt_point + " Turbo Track points.";
}
@@ -2648,7 +2648,7 @@ turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
mes "a new record, you";
mes "will be rewarded with";
mes "40 Turbo Track Points!";
- set tt_point,tt_point+40;
+ tt_point += 40;
mes "You now have a total of";
mes tt_point + " Turbo Track points.";
}
@@ -2674,7 +2674,7 @@ turbo_n_1,384,167,1 script Guide#TBT_n1 1_M_01,{
}
OnEnable:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Guide#TBT_"+.@w$;
initnpctimer;
end;
@@ -2736,7 +2736,7 @@ OnTimer56000:
end;
OnTimer60000:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Guide#TBT_"+.@w$;
enablenpc "#cos_"+.@w$+"_end";
enablenpc "Notice_Maker1#TBT_"+.@w$;
@@ -2754,21 +2754,21 @@ OnTimer60000:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "Guide#TBT_"+.@w$;
end;
}
- script NMaker1#tt_main -1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),strcharinfo(0) +" is now entering the Small Cave! " + strcharinfo(0) +" is now in the lead!",bc_map,"0xFFFF00";
donpcevent "Turbo Track Guide::OnEnd_"+.@w$;
disablenpc "Notice_Maker1#TBT_"+.@w$;
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Notice_Maker1#TBT_"+.@w$;
end;
}
@@ -2782,13 +2782,13 @@ turbo_n_1,11,91,0 duplicate(NMaker1#tt_main) Notice_Maker1#TBT_n1 -1,3,3
- script NMaker3#tt_main -1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),strcharinfo(0) +" is now entering the Single Snail! " + strcharinfo(0) +" is now in the lead!",bc_map,"0xFFFF00";
disablenpc "Notice_Maker3#TBT_"+.@w$;
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Notice_Maker3#TBT_"+.@w$;
end;
}
@@ -2802,13 +2802,13 @@ turbo_n_1,234,223,0 duplicate(NMaker3#tt_main) Notice_Maker3#TBT_n1 -1,3,3
- script NMaker4#tt_main -1,{
OnTouch:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
mapannounce strnpcinfo(4),strcharinfo(0) +" is currently in First Place!",bc_map,"0xFFFF00";
disablenpc "Notice_Maker4#TBT_"+.@w$;
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
enablenpc "Notice_Maker4#TBT_"+.@w$;
end;
@@ -2887,7 +2887,7 @@ turbo_n_1,253,364,0 duplicate(warp#tt_main) Warp#n1_7 -1,2,2
end;
OnTouch:
specialeffect EF_BLASTMINEBOMB;
- set .@HitTrap,10;
+ .@HitTrap = 10;
if (.@HitTrap > 0 && .@HitTrap < 4)
percentheal -1,0;
else if (.@HitTrap > 4 && .@HitTrap < 8)
@@ -3524,7 +3524,7 @@ turbo_n_1,368,36,0 duplicate(TurboTrap#tt_main) trap_n1#F95 HIDDEN_WARP_NPC,1,1
end;
OnTouch:
specialeffect EF_FREEZING;
- set .@HitTrap,10;
+ .@HitTrap = 10;
if (.@HitTrap > 0 && .@HitTrap < 4)
percentheal -1,0;
else if (.@HitTrap > 4 && .@HitTrap < 8) {
@@ -3589,8 +3589,8 @@ turbo_n_1,340,55,0 duplicate(TurboTrap_2#tt_main) trap_n1#F48 HIDDEN_WARP_NPC,1,
- script bing_1#tt_main -1,{
end;
OnTouch:
- set .@w$,callfunc("F_tt");
- set .@bing1,rand(1,10);
+ .@w$ = callfunc("F_tt");
+ .@bing1 = rand(1,10);
if (.@bing1 > 0 && .@bing1 < 4)
warp strnpcinfo(4),217,232;
else if (.@bing1 == 6)
@@ -3627,7 +3627,7 @@ OnTouch:
end;
OnInit:
- set .@w$,callfunc("F_tt");
+ .@w$ = callfunc("F_tt");
disablenpc "bing2#"+.@w$;
end;
}
@@ -3735,7 +3735,7 @@ turbo_room,99,120,4 script Turbo Track Guide 4_F_TELEPORTER,{
mes "game mode. Would you like to";
mes "learn more about a certain course?";
next;
- set .@exitloop,1;
+ .@exitloop = 1;
while (.@exitloop) {
switch(select("Log Bridge and Cube Hills:Cursed Desert and Flasher Maze:Single Snail and Invisible Maze:Snake Dice and Small Cave:No, thanks.")) {
case 1:
@@ -3809,7 +3809,7 @@ turbo_room,99,120,4 script Turbo Track Guide 4_F_TELEPORTER,{
mes "best of luck to";
mes "you in the races!";
next;
- set .@exitloop,0;
+ .@exitloop = 0;
}
}
mes "[Turbo Track Guide]";
@@ -4123,7 +4123,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
else {
- set .@total_point,10 * .@input;
+ .@total_point = 10 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
@@ -4134,7 +4134,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
mes "redeeming your points again.";
close;
}
- set tt_point,tt_point-.@total_point;
+ tt_point -= .@total_point;
getitem 7060,.@input; //Warp_Free_Ticket
mes "[Item Exchange Helper]";
mes "Thank you for";
@@ -4152,40 +4152,40 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
next;
switch(select("Earth Spike:Cold Bolt:Fire Bolt:Lightning Bolt:Soul Strike:Fire Ball:Fire Wall:Frost Diver:Heal")) {
case 1:
- set .@scroll,687; //Earth_Scroll_1_5
- set .@name$,"Earth Spike";
+ .@scroll = 687; //Earth_Scroll_1_5
+ .@name$ = "Earth Spike";
break;
case 2:
- set .@scroll,689; //Cold_Scroll_1_5
- set .@name$,"Cold Boltl";
+ .@scroll = 689; //Cold_Scroll_1_5
+ .@name$ = "Cold Boltl";
break;
case 3:
- set .@scroll,691; //Fire_Scroll_1_5
- set .@name$,"Fire Bolt";
+ .@scroll = 691; //Fire_Scroll_1_5
+ .@name$ = "Fire Bolt";
break;
case 4:
- set .@scroll,693; //Wind_Scroll_1_5
- set .@name$,"Lightning Bolt";
+ .@scroll = 693; //Wind_Scroll_1_5
+ .@name$ = "Lightning Bolt";
break;
case 5:
- set .@scroll,695; //Ghost_Scroll_1_5
- set .@name$,"Soul Strike";
+ .@scroll = 695; //Ghost_Scroll_1_5
+ .@name$ = "Soul Strike";
break;
case 6:
- set .@scroll,697; //Fire_Scroll_2_5
- set .@name$,"Fire Ball";
+ .@scroll = 697; //Fire_Scroll_2_5
+ .@name$ = "Fire Ball";
break;
case 7:
- set .@scroll,699; //Fire_Scroll_3_5
- set .@name$,"Fire Wall";
+ .@scroll = 699; //Fire_Scroll_3_5
+ .@name$ = "Fire Wall";
break;
case 8:
- set .@scroll,12000; //Cold_Scroll_2_5
- set .@name$,"Frost Diver";
+ .@scroll = 12000; //Cold_Scroll_2_5
+ .@name$ = "Frost Diver";
break;
case 9:
- set .@scroll,12002; //Holy_Scroll_1_5
- set .@name$,"Heal";
+ .@scroll = 12002; //Holy_Scroll_1_5
+ .@name$ = "Heal";
break;
}
mes "[Item Exchange Helper]";
@@ -4211,7 +4211,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
else {
- set .@total_point,12 * .@input;
+ .@total_point = 12 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
@@ -4222,7 +4222,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
mes "redeeming your points again.";
close;
}
- set tt_point,tt_point-.@total_point;
+ tt_point -= .@total_point;
getitem .@scroll,.@input;
mes "[Item Exchange Helper]";
mes "Thank you for";
@@ -4253,7 +4253,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
- set tt_point,tt_point-40;
+ tt_point -= 40;
if (BaseLevel < 70) getexp 3000,0;
else if (BaseLevel < 80) getexp 9000,0;
else if (BaseLevel < 90) getexp 10000,0;
@@ -4296,7 +4296,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
else {
- set .@total_point,150 * .@input;
+ .@total_point = 150 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
@@ -4307,7 +4307,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
mes "redeeming your points again.";
close;
}
- set tt_point,tt_point-.@total_point;
+ tt_point -= .@total_point;
getitem 732,.@input; //Crystal_Jewel__
mes "[Item Exchange Helper]";
mes "Thank you for";
@@ -4343,7 +4343,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
else {
- set .@total_point,300 * .@input;
+ .@total_point = 300 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
@@ -4354,7 +4354,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
mes "redeeming your points again.";
close;
}
- set tt_point,tt_point-.@total_point;
+ tt_point -= .@total_point;
getitem 644,.@input; //Gift_Box
mes "[Item Exchange Helper]";
mes "Thank you for";
@@ -4390,7 +4390,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
close;
}
else {
- set .@total_point,400 * .@input;
+ .@total_point = 400 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
@@ -4401,7 +4401,7 @@ turbo_room,93,117,5 script Point Exchange Helper 4_M_TELEPORTER,{
mes "redeeming your points again.";
close;
}
- set tt_point,tt_point-.@total_point;
+ tt_point -= .@total_point;
getitem 12016,.@input; //Speed_Up_Potion
mes "[Item Exchange Helper]";
mes "Thank you for";
@@ -4503,10 +4503,10 @@ turbo_room,106,117,3 script Point Manager#tt 4_M_ZONDAOYAJI,{
close;
}
else {
- set .@want_point1,10 * .@input;
- set .@want_point,5 * .@input;
- set .@my_turbo_all,tt_point+.@want_point;
- set .@my_arena_all,arena_point-.@want_point1;
+ .@want_point1 = 10 * .@input;
+ .@want_point = 5 * .@input;
+ .@my_turbo_all = tt_point+.@want_point;
+ .@my_arena_all = arena_point-.@want_point1;
if (.@my_turbo_all > 28999) {
mes "[Turbo Track Point Manager]";
mes "Unfortunately, your Turbo Track Points will exceed the maximum limit if we proceed with point conversion. Please spend more";
@@ -4529,8 +4529,8 @@ turbo_room,106,117,3 script Point Manager#tt 4_M_ZONDAOYAJI,{
mes "A total of " + .@want_point1 + " Arena Points";
mes "has been converted into";
mes "" + .@want_point +" Turbo Track Points.";
- set arena_point,.@my_arena_all; //arena_point
- set tt_point,.@my_turbo_all;
+ arena_point = .@my_arena_all; //arena_point
+ tt_point = .@my_turbo_all;
next;
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
@@ -4569,8 +4569,8 @@ S_ExchangePoints:
mes "2 Arena Points";
mes "have been converted";
mes "into 1 Turbo Track Point.";
- set arena_point,arena_point-getarg(1);
- set tt_point,tt_point+getarg(2);
+ arena_point -= getarg(1);
+ tt_point += getarg(2);
next;
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
@@ -4600,10 +4600,10 @@ OnTouch:
mes "things using the Kafra Service.^000000";
close;
}
- if ((BaseJob == Job_Knight || BaseJob == Job_Crusader) && checkriding()) {
+ if ((BaseJob == Job_Knight || BaseJob == Job_Crusader) && checkmount()) {
if (MaxWeight-Weight < 20000) {
if (!(eaclass()&EAJL_THIRD)) {
- set .@mount$,(BaseJob == Job_Knight)?"Peco Peco":"Grand Peco";
+ .@mount$ = (BaseJob == Job_Knight) ? "Peco Peco" : "Grand Peco";
mes "[Helper]";
mes .@mount$+"s are prohibited";
mes "in the Turbo Track Arena.";
@@ -4612,7 +4612,7 @@ OnTouch:
mes "a Free Ticket for Peco Ride";
mes "for retrieving your "+.@mount$+".";
} else {
- set .@mount$,(BaseJob == Job_Knight)?"Dragon":"Gryphon";
+ .@mount$ = (BaseJob == Job_Knight) ? "Dragon" : "Gryphon";
mes "[Helper]";
mes .@mount$+"s are prohibited";
mes "in the Turbo Track Arena.";
@@ -4625,14 +4625,9 @@ OnTouch:
end;
} else {
if (!(eaclass()&EAJL_THIRD)) {
- setriding 0;
- getitem 7310,1; //Free_Peco_Ticket
- } else {
- if (BaseJob == Job_Knight)
- setdragon 0;
- else
- setriding 0;
+ getitem Free_Peco_Ticket, 1;
}
+ setmount(MOUNT_NONE);
warp "turbo_room",100,65;
}
} else if ((Class == Job_Ranger || Class == Job_Ranger_T || Class == Job_Baby_Ranger) && checkoption(Option_Wugrider)) {
@@ -4648,7 +4643,7 @@ OnTouch:
setoption Option_Wugrider,0;
warp "turbo_room",100,65;
}
- } else if ((Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) && checkmadogear()) {
+ } else if ((Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) && checkmount()) {
if (MaxWeight-Weight < 20000) {
mes "[Helper]";
mes "Magic Gears are prohibited";
@@ -4660,7 +4655,7 @@ OnTouch:
warp "alde_gld",183,199;
end;
} else {
- setmadogear 0;
+ setmount(MOUNT_NONE);
warp "turbo_room",100,65;
}
} else
@@ -4689,9 +4684,9 @@ alde_gld,186,199,3 script Turbo Track Guide#Entran 4_F_RACING,{
}
- script ::MountManager_turbo -1,{
- set .@n$, "["+strnpcinfo(1)+"]";
+ .@n$ = "["+strnpcinfo(1)+"]";
mes .@n$;
- if (ismounting()) {
+ if (hascashmount()) {
mes "Please get off of that creature you're riding on.";
mes "Then talk to me again.";
close;
@@ -4699,39 +4694,27 @@ alde_gld,186,199,3 script Turbo Track Guide#Entran 4_F_RACING,{
if (BaseJob == Job_Knight || BaseJob == Job_Crusader) {
if (!(eaclass()&EAJL_THIRD)) {
if (BaseJob == Job_Knight) {
- set .@zeny,2500;
- set .@zeny$,"2,500";
- set .@mount$,"Peco Peco";
+ .@zeny = 2500;
+ .@zeny$ = "2,500";
+ .@mount$ = "Peco Peco";
} else {
- set .@zeny,3500;
- set .@zeny$,"3,500";
- set .@mount$,"Grand Peco";
+ .@zeny = 3500;
+ .@zeny$ = "3,500";
+ .@mount$ = "Grand Peco";
}
- set .@skill,63;
- set .@skill$,"Peco Peco Ride";
- set .@riding, checkriding();
- set .@i,1;
} else {
if (BaseJob == Job_Knight) {
- set .@mount$,"Dragon";
- set .@skill,63;
- set .@skill$,"Dragon Training";
- set .@riding, checkdragon();
- set .@i,2;
+ .@mount$ = "Dragon";
} else {
- set .@mount$,"Gryphon";
- set .@skill,63;
- set .@skill$,"Peco Peco Ride";
- set .@riding, checkriding();
- set .@i,1;
+ .@mount$ = "Gryphon";
}
}
+ .@skill = KN_RIDING;
+ .@skill$ = "Peco Peco Ride";
} else if (Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) {
- set .@mount$,"Magic Gear";
- set .@skill,2255;
- set .@skill$,"Magic Gear License";
- set .@riding, checkmadogear();
- set .@i,3;
+ .@mount$ = "Magic Gear";
+ .@skill = NC_MADOLICENCE;
+ .@skill$ = "Magic Gear License";
} else {
mes "Thank you for";
mes "visiting Al De Baran's";
@@ -4757,7 +4740,7 @@ alde_gld,186,199,3 script Turbo Track Guide#Entran 4_F_RACING,{
mes "the "+.@skill$+" skill first.";
close;
} else {
- if (.@riding) {
+ if (checkmount()) {
mes .@n$;
mes "You're already";
mes "mounted on a";
@@ -4766,7 +4749,7 @@ alde_gld,186,199,3 script Turbo Track Guide#Entran 4_F_RACING,{
close;
} else {
if (.@zeny) {
- if (countitem(7310) < 1 && Zeny < .@zeny) {
+ if (countitem(Free_Peco_Ticket) < 1 && Zeny < .@zeny) {
mes .@n$;
mes "I'm sorry, but you";
mes "don't have a Free Ticket";
@@ -4774,17 +4757,13 @@ alde_gld,186,199,3 script Turbo Track Guide#Entran 4_F_RACING,{
mes "to use the Peco rental service.";
close;
} else {
- if (countitem(7310) > 0)
- delitem 7310,1; //Free_Peco_Ticket
+ if (countitem(Free_Peco_Ticket) > 0)
+ delitem Free_Peco_Ticket, 1;
else
Zeny -= .@zeny;
}
}
- switch(.@i) {
- case 1: setriding; break;
- case 2: setdragon; break;
- case 3: setmadogear; break;
- }
+ setmount;
mes .@n$;
mes "Thank you for";
mes "your patronage~";
diff --git a/npc/pre-re/guides/guides_alberta.txt b/npc/pre-re/guides/guides_alberta.txt
index f4a0d12ce..164aa528b 100644
--- a/npc/pre-re/guides/guides_alberta.txt
+++ b/npc/pre-re/guides/guides_alberta.txt
@@ -28,7 +28,7 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
mes "trouble finding anything in";
mes "town, or if you just need";
mes "guidance around the city.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -42,11 +42,11 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while (.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Merchant Guild^000000:Weapon Shop:Tool Shop:Inn:Forge:Cancel")) {
@@ -104,7 +104,7 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
}
}
break;
@@ -114,7 +114,7 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
viewpoint 2,46,345,4,0xFF00FF;
viewpoint 2,175,220,5,0xFF00FF;
viewpoint 2,175,220,6,0xFF00FF;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Alberta Guide]";
@@ -147,7 +147,7 @@ alberta,23,238,4 script Guide#alb::AlbGuide 8W_SOLDIER,{
mes "to ask me if you have any";
mes "questions about Alberta.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "prt_soldier",255;
diff --git a/npc/pre-re/guides/guides_einbroch.txt b/npc/pre-re/guides/guides_einbroch.txt
index 9eefe2535..4fe9d1947 100644
--- a/npc/pre-re/guides/guides_einbroch.txt
+++ b/npc/pre-re/guides/guides_einbroch.txt
@@ -24,7 +24,7 @@ einbroch,72,202,4 script Guide#ein::EinGuide 4_M_EIN_SOLDIER,{
mes "the City of Steel.";
mes "Please ask me if you";
mes "have any questions.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide.:Remove Marks from Mini-Map.:Notice.:Cancel.")) {
@@ -38,11 +38,11 @@ einbroch,72,202,4 script Guide#ein::EinGuide 4_M_EIN_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Airport^000000:Train Station:Factory:Plaza:Hotel:Weapon Shop:Laboratory:Blacksmith Guild:Einbroch Tower:Cancel")) {
case 1:
@@ -139,7 +139,7 @@ einbroch,72,202,4 script Guide#ein::EinGuide 4_M_EIN_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
}
}
break;
@@ -153,7 +153,7 @@ einbroch,72,202,4 script Guide#ein::EinGuide 4_M_EIN_SOLDIER,{
viewpoint 2,36,49,8,0x00FF00;
viewpoint 2,244,90,9,0x00FF00;
viewpoint 2,174,195,10,0xFFFF00;
- set .@compass_check,0;
+ .@compass_check = 0;
mes "[Einbroch Guide]";
mes "Okay, the marks from";
mes "your Mini-Map have been";
@@ -194,7 +194,7 @@ einbroch,72,202,4 script Guide#ein::EinGuide 4_M_EIN_SOLDIER,{
mes "Oh, and please be";
mes "aware of the Smog Alerts.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "ein_soldier",255;
@@ -212,7 +212,7 @@ einbech,67,37,4 script Guide#4ein::EinGuide2 4_M_EIN_SOLDIER,{
mes "here to assist tourists,";
mes "so if you have any questions,";
mes "please feel free to ask us.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide.:Remove Marks from Mini-Map.:Notice.:Cancel.")) {
@@ -226,11 +226,11 @@ einbech,67,37,4 script Guide#4ein::EinGuide2 4_M_EIN_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while (.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("Train Station:Tavern:Tool Shop:Swordman Guild:Mine:Cancel")) {
case 1:
@@ -290,7 +290,7 @@ einbech,67,37,4 script Guide#4ein::EinGuide2 4_M_EIN_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
}
}
break;
@@ -300,7 +300,7 @@ einbech,67,37,4 script Guide#4ein::EinGuide2 4_M_EIN_SOLDIER,{
viewpoint 2,176,136,4,0xFF00FF;
viewpoint 2,250,110,5,0xFF00FF;
viewpoint 2,138,251,6,0x00FF00;
- set .@compass_check,0;
+ .@compass_check = 0;
mes "[Einbech Guide]";
mes "Okay, the marks from";
mes "your Mini-Map have been";
@@ -339,7 +339,7 @@ einbech,67,37,4 script Guide#4ein::EinGuide2 4_M_EIN_SOLDIER,{
mes "enjoy your travels";
mes "here in Einbech.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "ein_soldier",255;
diff --git a/npc/pre-re/guides/guides_geffen.txt b/npc/pre-re/guides/guides_geffen.txt
index 46d7e9007..43e5c81c9 100644
--- a/npc/pre-re/guides/guides_geffen.txt
+++ b/npc/pre-re/guides/guides_geffen.txt
@@ -26,7 +26,7 @@ geffen,203,116,0 script Guide#gef::GefGuide 4_M_GEF_SOLDIER,{
mes "need any guidance around";
mes "the city, feel free to ask me";
mes "and I'll do my best to assist you. ^FFFFFFcobo^000000";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
@@ -40,11 +40,11 @@ geffen,203,116,0 script Guide#gef::GefGuide 4_M_GEF_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while (.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
// next;
switch(select("^FF0000Magic Acedemy^000000:Forge Shop:Weapon Shop:Tool Shop:Pub:Inn:Geffen Tower:Cancel")) {
@@ -116,7 +116,7 @@ geffen,203,116,0 script Guide#gef::GefGuide 4_M_GEF_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -129,7 +129,7 @@ geffen,203,116,0 script Guide#gef::GefGuide 4_M_GEF_SOLDIER,{
viewpoint 2,134,221,6,0xFF00FF;
viewpoint 2,204,214,7,0xFF00FF;
viewpoint 2,204,214,8,0x00FF00;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Geffen Guide]";
@@ -162,7 +162,7 @@ geffen,203,116,0 script Guide#gef::GefGuide 4_M_GEF_SOLDIER,{
mes "your journeys through";
mes "the lands you may travel...";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "gef_soldier",255;
diff --git a/npc/pre-re/guides/guides_hugel.txt b/npc/pre-re/guides/guides_hugel.txt
index b8a9711b1..7189738ef 100644
--- a/npc/pre-re/guides/guides_hugel.txt
+++ b/npc/pre-re/guides/guides_hugel.txt
@@ -30,11 +30,11 @@ hugel,98,56,3 script Hugel Guide Granny#huge 4_F_LGTGRAND,0,0,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop,1;
+ .@loop = 1;
while(.@loop) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("Church:Inn:Pub:Airport:Weapon Shop:Tool Shop:Party Supplies Shop:^3131FFHunter Job Change Place^000000:^3131FFShrine Expedition's Place^000000:Monster Race Arena:Bingo Game Room:Cancel")) {
case 1:
@@ -118,7 +118,7 @@ hugel,98,56,3 script Hugel Guide Granny#huge 4_F_LGTGRAND,0,0,{
mes "[Hugel Guide Granny]";
mes "If you like to get rid of all the location marks on your Mini-Map,";
mes "just ask me again, and choose ''Remove Marks from Mini-Map'' menu.";
- set .@loop,0;
+ .@loop = 0;
}
}
break;
@@ -134,7 +134,7 @@ hugel,98,56,3 script Hugel Guide Granny#huge 4_F_LGTGRAND,0,0,{
viewpoint 2,52,91,10,0xFFFFFF;
viewpoint 2,58,72,11,0xFF9900;
viewpoint 2,55,209,12,0x66FFFF;
- set .@compass_check,0;
+ .@compass_check = 0;
mes "[Hugel Guide Granny]";
mes "Okay, they are gone now. If you have more locations to ask, just let me know.";
break;
diff --git a/npc/pre-re/guides/guides_izlude.txt b/npc/pre-re/guides/guides_izlude.txt
index ef84be488..7961f46da 100644
--- a/npc/pre-re/guides/guides_izlude.txt
+++ b/npc/pre-re/guides/guides_izlude.txt
@@ -25,7 +25,7 @@ izlude,121,87,6 script Guide#iz 8W_SOLDIER,{
mes "If you need any guidance";
mes "around Izlude, feel free";
mes "to ask me at anytime.";
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
@@ -39,11 +39,11 @@ izlude,121,87,6 script Guide#iz 8W_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Swordman Association^000000:Swordman Hall:Arena:Izlude Marina:Weapon Shop:Tool Shop:Cancel")) {
@@ -105,7 +105,7 @@ izlude,121,87,6 script Guide#iz 8W_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -117,7 +117,7 @@ izlude,121,87,6 script Guide#iz 8W_SOLDIER,{
viewpoint 2,175,220,3,0xFF0000;
viewpoint 2,134,221,4,0xFF0000;
viewpoint 2,204,214,5,0xFF0000;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Izlude Guide]";
@@ -150,7 +150,7 @@ izlude,121,87,6 script Guide#iz 8W_SOLDIER,{
mes "if you ever feel lost";
mes "around Izlude, alright?";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
diff --git a/npc/pre-re/guides/guides_lighthalzen.txt b/npc/pre-re/guides/guides_lighthalzen.txt
index b194c546c..a921c8c01 100644
--- a/npc/pre-re/guides/guides_lighthalzen.txt
+++ b/npc/pre-re/guides/guides_lighthalzen.txt
@@ -22,7 +22,7 @@ lighthalzen,207,310,5 script Guide#lhz::LhzGuide 4_M_EIN_SOLDIER,{
mes "around the city, feel free";
mes "to ask me and I'll do my";
mes "very best to help you.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
@@ -42,11 +42,11 @@ lighthalzen,207,310,5 script Guide#lhz::LhzGuide 4_M_EIN_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Rekenber Corporation^000000:Train Station:Police Station:Bank:Hotel:Airport:Merchant Guild:Jewelry Shop:Weapon Shop:Departement Store:Cancel")) {
case 1:
@@ -154,7 +154,7 @@ lighthalzen,207,310,5 script Guide#lhz::LhzGuide 4_M_EIN_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
}
}
break;
@@ -169,7 +169,7 @@ lighthalzen,207,310,5 script Guide#lhz::LhzGuide 4_M_EIN_SOLDIER,{
viewpoint 2,93,110,9,0xFF9900;
viewpoint 2,196,46,10,0x330033;
viewpoint 2,199,163,11,0xFFFF00;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Lighthalzen Guide]";
@@ -211,7 +211,7 @@ lighthalzen,207,310,5 script Guide#lhz::LhzGuide 4_M_EIN_SOLDIER,{
mes "We hope that you enjoy";
mes "our fair city, adventurer.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "ein_soldier",255;
diff --git a/npc/pre-re/guides/guides_louyang.txt b/npc/pre-re/guides/guides_louyang.txt
index 8b5b14c8b..ecb3cc25a 100644
--- a/npc/pre-re/guides/guides_louyang.txt
+++ b/npc/pre-re/guides/guides_louyang.txt
@@ -141,7 +141,7 @@ louyang,224,104,3 script Representative#lou 4_F_CHNWOMAN,{
next;
switch(select("Ask Building Locations.:Remove all marks from mini-map.:Cancel.")) {
case 1:
- set .@compass_check,1;
+ .@compass_check = 1;
mes "[Representative]";
mes "Where would you like to go?";
next;
diff --git a/npc/pre-re/guides/guides_morroc.txt b/npc/pre-re/guides/guides_morroc.txt
index d4b136094..47777fa17 100644
--- a/npc/pre-re/guides/guides_morroc.txt
+++ b/npc/pre-re/guides/guides_morroc.txt
@@ -25,7 +25,7 @@ morocc,153,286,6 script Guide#moc::MocGuide 4_M_MOC_SOLDIER,{
mes "Please ask me for help if";
mes "you're having any trouble";
mes "finding anything in town.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -39,11 +39,11 @@ morocc,153,286,6 script Guide#moc::MocGuide 4_M_MOC_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Thief Guild^000000:Weapon Shop:Inn:Pub:Mercenary Guild:Forge:Cancel")) {
@@ -108,7 +108,7 @@ morocc,153,286,6 script Guide#moc::MocGuide 4_M_MOC_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
}
}
break;
@@ -119,7 +119,7 @@ morocc,153,286,6 script Guide#moc::MocGuide 4_M_MOC_SOLDIER,{
viewpoint 2,175,220,5,0xFF0000;
viewpoint 2,175,220,6,0xFF0000;
viewpoint 2,175,220,7,0xFF0000;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Morroc Guide]";
@@ -152,7 +152,7 @@ morocc,153,286,6 script Guide#moc::MocGuide 4_M_MOC_SOLDIER,{
mes "too much trouble";
mes "out there, adventurer.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
}
}
cutin "moc_soldier",255;
diff --git a/npc/pre-re/guides/guides_payon.txt b/npc/pre-re/guides/guides_payon.txt
index 9f8e4a776..44dd6a4a4 100644
--- a/npc/pre-re/guides/guides_payon.txt
+++ b/npc/pre-re/guides/guides_payon.txt
@@ -27,7 +27,7 @@ payon,162,67,4 script Guide#pay 4_M_PAY_SOLDIER,{
mes "If you're unfamiliar with this";
mes "area, I can help you find what";
mes "you're looking for around here.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice.:Cancel")) {
@@ -41,11 +41,11 @@ payon,162,67,4 script Guide#pay 4_M_PAY_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Archer Guild^000000:Weapon Shop:Tool Shop:Pub:Central Palace:The Empress:Palace Annex:Royal Kitchen:Forge:Cancel")) {
case 1:
@@ -133,7 +133,7 @@ payon,162,67,4 script Guide#pay 4_M_PAY_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -148,7 +148,7 @@ payon,162,67,4 script Guide#pay 4_M_PAY_SOLDIER,{
viewpoint 2,237,41,8,0x0000FF;
viewpoint 2,46,345,9,0x00FF00;
viewpoint 2,175,220,10,0xFF0000;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Payon Guide]";
@@ -180,7 +180,7 @@ payon,162,67,4 script Guide#pay 4_M_PAY_SOLDIER,{
mes "your travels,";
mes "brave adventurer.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
@@ -196,7 +196,7 @@ pay_arche,85,30,2 script Guide#2pay 4_M_PAY_SOLDIER,{
mes "If you're unfamiliar with this";
mes "area, I can help you find what";
mes "you're looking for around here.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -206,11 +206,11 @@ pay_arche,85,30,2 script Guide#2pay 4_M_PAY_SOLDIER,{
if (.@compass_check == 0) {
mes "Would you like to leave indicators on the mini-map?";
next;
- if (select("Yes.:No.") == 1) set .@compass_check,1;
+ if (select("Yes.:No.") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("^FF0000Archer Guild^000000:Tool Shop:Payon Dungeon:Cancel")) {
case 1:
@@ -244,7 +244,7 @@ pay_arche,85,30,2 script Guide#2pay 4_M_PAY_SOLDIER,{
case 4:
mes "[Payon Guide]";
mes "If you'd like to erase the marks on the mini-map, select menu, 'Wipe all indicators on the mini-map'.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -253,7 +253,7 @@ pay_arche,85,30,2 script Guide#2pay 4_M_PAY_SOLDIER,{
viewpoint 2,237,41,0,0xFF00FF;
viewpoint 2,237,41,1,0xFF0000;
viewpoint 2,46,345,2,0xFF00FF;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Payon Guide]";
@@ -285,7 +285,7 @@ pay_arche,85,30,2 script Guide#2pay 4_M_PAY_SOLDIER,{
mes "your travels,";
mes "brave adventurer.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
diff --git a/npc/pre-re/guides/guides_prontera.txt b/npc/pre-re/guides/guides_prontera.txt
index 7a97a764c..a7e6bb151 100644
--- a/npc/pre-re/guides/guides_prontera.txt
+++ b/npc/pre-re/guides/guides_prontera.txt
@@ -28,7 +28,7 @@ prontera,154,187,4 script Guide#prt::PrtGuide 8W_SOLDIER,{
mes "the beautiful capital of the";
mes "Rune-Midgarts Kingdom. If";
mes "you have questions or need help finding something in the city, don't hesitate to ask.";
- set .@loop1,1;
+ .@loop1 = 1;
while (.@loop1) {
next;
switch(select("City Guide.:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -42,11 +42,11 @@ prontera,154,187,4 script Guide#prt::PrtGuide 8W_SOLDIER,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while (.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("Swordman Association:^0000FFSanctuary^000000:Prontera Chivalry:Weapon Shop:Tool Shop:Inn:Trading Post:Pub:Library:Job Agency:Prontera Castle:City Hall:Cancel")) {
@@ -170,7 +170,7 @@ prontera,154,187,4 script Guide#prt::PrtGuide 8W_SOLDIER,{
mes "no longer wish to have the";
mes "location marks displayed";
mes "on your Mini-Map.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -190,7 +190,7 @@ prontera,154,187,4 script Guide#prt::PrtGuide 8W_SOLDIER,{
viewpoint 2,133,183,15,0x00FF00;
viewpoint 2,156,360,16,0x00FF00;
viewpoint 2,75,91,17,0x00FF00;
- set .@compass_check,0;
+ .@compass_check = 0;
break;
case 3:
mes "[Prontera Guide]";
@@ -223,7 +223,7 @@ prontera,154,187,4 script Guide#prt::PrtGuide 8W_SOLDIER,{
mes "through Rune-Midgard";
mes "are both fun and safe.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
diff --git a/npc/pre-re/guides/guides_rachel.txt b/npc/pre-re/guides/guides_rachel.txt
index 2380a465a..0d94e963b 100644
--- a/npc/pre-re/guides/guides_rachel.txt
+++ b/npc/pre-re/guides/guides_rachel.txt
@@ -25,7 +25,7 @@ rachel,138,146,5 script Rachel Guide 4_M_RASWORD,{
mes "If this is the first time for you";
mes "to use the guide services, why";
mes "don't you check the \"Notice\" menu first?";
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
next;
switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -38,11 +38,11 @@ rachel,138,146,5 script Rachel Guide 4_M_RASWORD,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("Cheshrumnir:Inn:Weapon Shop:Tool Shop:Airport:Cancel")) {
@@ -79,7 +79,7 @@ rachel,138,146,5 script Rachel Guide 4_M_RASWORD,{
mes "[Rachel Guide]";
mes "If you like to get rid of all the location marks on your Mini-Map,";
mes "just ask me again, and choose \"Remove Marks from Mini-Map\" menu.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -106,7 +106,7 @@ rachel,138,146,5 script Rachel Guide 4_M_RASWORD,{
mes "Hope you have a wonderfull journey";
mes "in Arunafeltz.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
diff --git a/npc/pre-re/guides/guides_veins.txt b/npc/pre-re/guides/guides_veins.txt
index 99df4106e..ca42a05e2 100644
--- a/npc/pre-re/guides/guides_veins.txt
+++ b/npc/pre-re/guides/guides_veins.txt
@@ -17,7 +17,7 @@ veins,210,345,5 script Veins Guide#1::ve_guide 4_M_RASWORD,{
mes "[Veins Guide]";
mes "Desert City Veins welcomes adventurers seeking shelter from harsh sandstorms.";
mes "If this is the first time for you to use the guide services, why don't you check the...";
- set .@loop1,1;
+ .@loop1 = 1;
while(.@loop1) {
next;
switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
@@ -30,11 +30,11 @@ veins,210,345,5 script Veins Guide#1::ve_guide 4_M_RASWORD,{
mes "to mark locations";
mes "on your Mini-Map?";
next;
- if (select("Yes:No") == 1) set .@compass_check,1;
+ if (select("Yes:No") == 1) .@compass_check = 1;
}
- set .@loop2,1;
+ .@loop2 = 1;
while(.@loop2) {
- if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+ if (.@wait_button_chk == 0) .@wait_button_chk = 1;
else next;
switch(select("Temple:Inn:Weapon Shop:Tool Shop:Airship:Tavern:Geological Research Institute:Cancel")) {
@@ -88,7 +88,7 @@ veins,210,345,5 script Veins Guide#1::ve_guide 4_M_RASWORD,{
mes "[Veins Guide]";
mes "If you like to get rid of all the location marks on your Mini-Map,";
mes "just ask me again, and choose 'Remove Marks from Mini-Map' menu.";
- set .@loop2,0;
+ .@loop2 = 0;
break;
}
}
@@ -117,7 +117,7 @@ veins,210,345,5 script Veins Guide#1::ve_guide 4_M_RASWORD,{
mes "[Veins Guide]";
mes "Enjoy your stay in Veins.";
close2;
- set .@loop1,0;
+ .@loop1 = 0;
break;
}
}
diff --git a/npc/pre-re/jobs/1-1/acolyte.txt b/npc/pre-re/jobs/1-1/acolyte.txt
index 2faef7c87..9e138d9c6 100644
--- a/npc/pre-re/jobs/1-1/acolyte.txt
+++ b/npc/pre-re/jobs/1-1/acolyte.txt
@@ -104,17 +104,17 @@ prt_church,184,41,4 script Cleric#aco 1_M_PASTOR,{
mes "give you a mission...";
switch(rand(3)) {
default:
- set job_acolyte_q,2;
+ job_acolyte_q = 2;
mes "Please visit ^000077Father Rubalkabara^000000, a member of the Prontera Parish, and return here. He has been practicing asceticism in the ^000077Relics NorthEast of Prontera City^000000.";
setquest 1001;
break;
case 1:
- set job_acolyte_q,3;
+ job_acolyte_q = 3;
mes "Please visit ^000077Mother Mathilda^000000 and then return to me. She has been practicing asceticism near ^000077Morroc Town, SouthWest of Prontera City^000000.";
setquest 1002;
break;
case 2:
- set job_acolyte_q,4;
+ job_acolyte_q = 4;
mes "Please visit ^000077Father Yosuke^000000 and return here. He has been practicing asceticism around ^000077a bridge somewhere NorthWest of Prontera^000000.";
setquest 1003;
break;
@@ -182,10 +182,10 @@ prt_church,184,41,4 script Cleric#aco 1_M_PASTOR,{
skill 143,0,0;
callfunc "Job_Change",Job_Acolyte;
callfunc "F_ClearJobVar";
- if(checkquest(1001) != -1) {
+ if (questprogress(1001)) {
completequest 1001;
}
- else if(checkquest(1002) != -1) {
+ else if (questprogress(1002)) {
completequest 1002;
}
else {
@@ -278,7 +278,7 @@ prt_fild03,365,255,2 script Ascetic#aco 4_M_ORIENT02,{
mes "Farewell.";
close2;
savepoint "prt_fild03",361,255;
- set job_acolyte_q,6;
+ job_acolyte_q = 6;
end;
}
else {
@@ -346,7 +346,7 @@ moc_fild07,41,355,4 script Ascetic#2aco 4_F_SISTER,{
mes "Please return to the Prontera Sanctuary and speak to the Priest in charge.";
close2;
savepoint "moc_fild07",35,355;
- set job_acolyte_q,7;
+ job_acolyte_q = 7;
end;
}
else {
@@ -423,7 +423,7 @@ prt_fild00,208,218,6 script Ascetic#3aco 4W_M_02,{
mes "Now go back to the Santuary and finish becoming an Acolyte, kid.";
close2;
savepoint "prt_fild00",206,230;
- set job_acolyte_q,8;
+ job_acolyte_q = 8;
end;
}
else {
diff --git a/npc/pre-re/jobs/1-1/archer.txt b/npc/pre-re/jobs/1-1/archer.txt
index 710580054..97ea540c1 100644
--- a/npc/pre-re/jobs/1-1/archer.txt
+++ b/npc/pre-re/jobs/1-1/archer.txt
@@ -95,7 +95,7 @@ payon_in02,64,71,4 script Archer Guildsman#archer 4_M_03,{
mes "If so, you need to fill out this application form.";
next;
if (select("Apply.:Cancel") == 1) {
- set job_archer_q,1;
+ job_archer_q = 1;
setquest 1004;
mes "[Archer Guildsman]";
mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements.";
@@ -132,12 +132,12 @@ payon_in02,64,71,4 script Archer Guildsman#archer 4_M_03,{
close;
}
if (job_archer_q == 1) {
- set .@archer_item1,countitem(1066) * 5;
- set .@archer_item2,countitem(1067) * 3;
- set .@archer_item3,countitem(1068) * 2;
- set .@archer_item4,countitem(1019);
- set .@total_archer,.@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4;
- set .@total_archer2,(((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4);
+ .@archer_item1 = countitem(1066) * 5;
+ .@archer_item2 = countitem(1067) * 3;
+ .@archer_item3 = countitem(1068) * 2;
+ .@archer_item4 = countitem(1019);
+ .@total_archer = .@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4;
+ .@total_archer2 = (((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4);
mes "[Archer Guildsman]";
mes "Excellent!";
mes "Now then,";
diff --git a/npc/pre-re/jobs/1-1/mage.txt b/npc/pre-re/jobs/1-1/mage.txt
index 2e03ce410..541c76235 100644
--- a/npc/pre-re/jobs/1-1/mage.txt
+++ b/npc/pre-re/jobs/1-1/mage.txt
@@ -106,22 +106,22 @@ geffen_in,164,124,4 script Mage Guildsman 2_F_MAGICMASTER,{
case 1:
mes "Make me a ^3355FFMixed Solution No. 1^000000";
mes "and bring it back to me.";
- set job_magician_q,1;
+ job_magician_q = 1;
break;
case 2:
mes "Make me a ^3355FFMixed Solution No. 2^000000";
mes "and bring it back to me.";
- set job_magician_q,2;
+ job_magician_q = 2;
break;
case 3:
mes "Make me a ^3355FFMixed Solution No. 3^000000";
mes "and bring it back to me.";
- set job_magician_q,3;
+ job_magician_q = 3;
break;
default:
mes "Make me a ^3355FFMixed Solution No. 4^000000";
mes "and bring it back to me.";
- set job_magician_q,4;
+ job_magician_q = 4;
}
next;
getitem 1092,1; //Empty_Cylinder
@@ -208,13 +208,13 @@ geffen_in,164,124,4 script Mage Guildsman 2_F_MAGICMASTER,{
callfunc "Job_Change",Job_Mage;
callfunc "F_ClearJobVar";
Zeny += 50;
- if(checkquest(1005) != -1) {
+ if (questprogress(1005)) {
completequest 1005;
}
- else if(checkquest(1006) != -1) {
+ else if (questprogress(1006)) {
completequest 1006;
}
- else if(checkquest(1007) != -1) {
+ else if (questprogress(1007)) {
completequest 1007;
}
else {
@@ -305,7 +305,7 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
mes "Process Halting.";
close;
}
- set .@mixitem2,1;
+ .@mixitem2 = 1;
break;
case 2:
if (countitem(1088) == 0) {
@@ -316,10 +316,10 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
mes "Process Halting.";
close;
}
- set .@mixitem2,2;
+ .@mixitem2 = 2;
break;
case 3:
- set .@mixitem2,0;
+ .@mixitem2 = 0;
break;
}
while (1) {
@@ -384,20 +384,20 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
if (.@mixitem2 == 2) delitem 1088,1; //Morocc_Potion
mes "Items are Ready.";
mes "Close the Lid.";
- set .@progress,3;
+ .@progress = 3;
next;
}
break;
case 2:
- set .@continue,0;
+ .@continue = 0;
next;
break;
case 3:
- set .@mixitem1_1,0;
- set .@mixitem1_2,0;
- set .@mixitem1_3,0;
- set .@progress,0;
- set .@continue,0;
+ .@mixitem1_1 = 0;
+ .@mixitem1_2 = 0;
+ .@mixitem1_3 = 0;
+ .@progress = 0;
+ .@continue = 0;
mes "[Mixing Machine]";
mes "Reset Complete.";
mes "Initiate again?";
@@ -430,8 +430,8 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
next;
}
else {
- if (countitem(909) > 0) set .@mixitem1_1,.@mixitem1_1 + .@input;
- set .@progress,2;
+ if (countitem(909) > 0) .@mixitem1_1 += .@input;
+ .@progress = 2;
break;
}
}
@@ -446,8 +446,8 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
next;
}
else {
- if (countitem(914) > 0) set .@mixitem1_2,.@mixitem1_2 + .@input;
- set .@progress,2;
+ if (countitem(914) > 0) .@mixitem1_2 += .@input;
+ .@progress = 2;
break;
}
}
@@ -462,8 +462,8 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
next;
}
else {
- if (countitem(519) > 0) set .@mixitem1_3,.@mixitem1_3 + .@input;
- set .@progress,2;
+ if (countitem(519) > 0) .@mixitem1_3 += .@input;
+ .@progress = 2;
break;
}
}
@@ -471,8 +471,8 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
case 4:
if (.@progress != 2)
- set .@progress,1;
- set .@continue,1;
+ .@progress = 1;
+ .@continue = 1;
next;
}
if (.@continue) break;
@@ -506,15 +506,15 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
next;
if (select("Confirm.:Cancel.") == 1) {
if (.@input == 8472)
- set .@magic_powder,1;
+ .@magic_powder = 1;
else if (.@input == 3735)
- set .@magic_powder,2;
+ .@magic_powder = 2;
else if (.@input == 2750)
- set .@magic_powder,3;
+ .@magic_powder = 3;
else if (.@input == 5429)
- set .@magic_powder,4;
+ .@magic_powder = 4;
else
- set .@magic_powder,5;
+ .@magic_powder = 5;
}
break;
}
@@ -524,10 +524,10 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{
mes "Catalyst Stone.";
next;
switch(select("Yellow Gemstone.:Red Gemstone.:Blue Gemstone.:1carat Diamond.:Skip.")) {
- case 1: set .@mixitem3,1; break;
- case 2: set .@mixitem3,2; break;
- case 3: set .@mixitem3,3; break;
- case 4: set .@mixitem3,4; break;
+ case 1: .@mixitem3 = 1; break;
+ case 2: .@mixitem3 = 2; break;
+ case 3: .@mixitem3 = 3; break;
+ case 4: .@mixitem3 = 4; break;
case 5: break;
}
mes "[Mixing Machine]";
diff --git a/npc/pre-re/jobs/1-1/merchant.txt b/npc/pre-re/jobs/1-1/merchant.txt
index 934dc0300..a82d32ff1 100644
--- a/npc/pre-re/jobs/1-1/merchant.txt
+++ b/npc/pre-re/jobs/1-1/merchant.txt
@@ -98,9 +98,9 @@ alberta_in,53,43,6 script Merchant#mer 4_M_04,{
mes "[Chief Mahnsoo]";
mes "Hello there,";
mes ""+ strcharinfo(0) +".";
- set job_merchant_q,0;
- set job_merchant_q2,0;
- set quest_alb_01,0;
+ job_merchant_q = 0;
+ job_merchant_q2 = 0;
+ quest_alb_01 = 0;
mes "Unfortunately, you failed to earn your Merchant License this time.";
next;
mes "[Chief Mahnsoo]";
@@ -151,13 +151,13 @@ alberta_in,53,43,6 script Merchant#mer 4_M_04,{
mes "Congratulations!";
callfunc "Job_Change",Job_Merchant;
callfunc "F_ClearJobVar";
- if(checkquest(1009) != -1) {
+ if (questprogress(1009)) {
completequest 1009;
}
- else if(checkquest(1010) != -1) {
+ else if (questprogress(1010)) {
completequest 1010;
}
- else if(checkquest(1011) != -1) {
+ else if (questprogress(1011)) {
completequest 1011;
}
else {
@@ -170,7 +170,7 @@ alberta_in,53,43,6 script Merchant#mer 4_M_04,{
mes "*Ahem* Aaaaand let me give you a little bit of money for delivering that message to Blossom for me.";
mes "I hope you'll help me again next time~";
Zeny += 200;
- set quest_alb_01,2;
+ quest_alb_01 = 2;
}
else {
mes "[Chief Mahnsoo]";
@@ -340,7 +340,7 @@ alberta_in,53,43,6 script Merchant#mer 4_M_04,{
case 1:
mes "[Chief Mahnsoo]";
if (Zeny >= 1000) {
- set job_merchant_q,2;
+ job_merchant_q = 2;
Zeny -= 1000;
mes "Alright~";
mes "That's 1,000 zeny.";
@@ -354,7 +354,7 @@ alberta_in,53,43,6 script Merchant#mer 4_M_04,{
case 2:
mes "[Chief Mahnsoo]";
if (Zeny >= 500) {
- set job_merchant_q,1;
+ job_merchant_q = 1;
Zeny -= 500;
mes "Let's see...";
mes "That's 500 Zeny. Although I don't think splitting payment is a good idea for any Merchant, it's alright since you're still learning.";
@@ -494,17 +494,17 @@ S_GiveSerial:
next;
mes "[Chief Mahnsoo]";
mes "Remember...";
- if (rand(1)) {
+ if (rand(2)) {
mes "The package's";
mes "Serial Number is";
mes "^3355FF"+getarg(0)+"^000000.";
- set job_merchant_q2,getarg(1);
+ job_merchant_q2 = getarg(1);
}
else {
mes "The package's";
mes "Serial Number is";
mes "^3355FF"+getarg(2)+"^000000.";
- set job_merchant_q2,getarg(3);
+ job_merchant_q2 = getarg(3);
}
return;
}
@@ -564,7 +564,7 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
delitem 1080,1; //Merchant_Voucher_8
else {
next;
- set job_merchant_q,9;
+ job_merchant_q = 9;
mes " [Union Staff Kay] ";
mes "Wait a sec.";
mes "Where's the receipt?";
@@ -579,9 +579,9 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
mes "...Great! Everything's perfect! I'll report your success to the Guildmaster. You should talk to Chief Mahnsoo now, alright?";
close2;
if (job_merchant_q == 6)
- set job_merchant_q,8;
+ job_merchant_q = 8;
else if (job_merchant_q == 5)
- set job_merchant_q,7;
+ job_merchant_q = 7;
end;
}
else if (job_merchant_q == 4 || job_merchant_q == 3 && countitem(1081) == 0 && countitem(1082) == 0 && countitem(1091) == 0) {
@@ -592,7 +592,7 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
mes "the delivery go?";
next;
if (select("*Sob* I lost the package.:Fine.") == 1) {
- set job_merchant_q,9;
+ job_merchant_q = 9;
mes "[Union Staff Kay]";
mes "Are you kidding me? You'll fail the test if you lose the package!";
next;
@@ -618,7 +618,7 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
mes "Where is it?!";
next;
if (select("*Sob* I lost it!:I have it right here.") == 1) {
- set job_merchant_q,9;
+ job_merchant_q = 9;
mes "[Union Staff Kay]";
mes "You...";
mes "Lost it?!";
@@ -645,9 +645,9 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
else if (countitem(1091) != 0)
delitem 1091,1; //Merchant_Box_Etc
if (job_merchant_q == 4)
- set job_merchant_q,2;
+ job_merchant_q = 2;
else if (job_merchant_q == 3)
- set job_merchant_q,1;
+ job_merchant_q = 1;
next;
mes "[Union Staff Kay]";
mes "I need some time to get everything in order, so come back later.";
@@ -658,7 +658,7 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
close;
}
else if ((job_merchant_q == 0 || job_merchant_q == 1 || job_merchant_q == 2)) {
- set where_village,0;
+ where_village = 0;
mes "[Union Staff Kay]";
mes "Hey there.";
mes "what brings";
@@ -686,10 +686,10 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
mes "Alright, there you go. Lemme give you the package. Now, choose the destination of the delivery.";
next;
switch(select("Prontera.:Geffen.:Morocc.:Byalan Island.")) {
- case 1: set .@where_village,1; break;
- case 2: set .@where_village,2; break;
- case 3: set .@where_village,3; break;
- case 4: set .@where_village,4; break;
+ case 1: .@where_village = 1; break;
+ case 2: .@where_village = 2; break;
+ case 3: .@where_village = 3; break;
+ case 4: .@where_village = 4; break;
}
mes "[Union Staff Kay]";
mes "Okay, now you need to give me the package's Serial Number. If you wanna cancel, just enter '0', alright?";
@@ -761,9 +761,9 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{
getitem 1091,1; //Merchant_Box_Etc
}
if (job_merchant_q == 2)
- set job_merchant_q,4;
+ job_merchant_q = 4;
else if (job_merchant_q == 1)
- set job_merchant_q,3;
+ job_merchant_q = 3;
mes "[Union Staff Kay]";
mes "Alright. Take this package and guard it with your life until it's safely delivered to the customer. Don't lose this thing, got it?";
next;
@@ -840,9 +840,9 @@ morocc_in,140,102,4 script Student#mer 4_M_04,{
close;
}
if (job_merchant_q == 4)
- set job_merchant_q,6;
+ job_merchant_q = 6;
else if (job_merchant_q == 3)
- set job_merchant_q,5;
+ job_merchant_q = 5;
next;
mes "[Dyer's Student]";
mes "Thanks a lot!";
@@ -928,9 +928,9 @@ geffen_in,155,122,4 script Guild Staff#mer 1_M_01,{
close;
}
if (job_merchant_q == 4)
- set job_merchant_q,6;
+ job_merchant_q = 6;
else if (job_merchant_q == 3)
- set job_merchant_q,5;
+ job_merchant_q = 5;
next;
mes "[Guild Staff]";
mes "Heh heh~";
@@ -1022,9 +1022,9 @@ prontera,248,42,0 script Kafra Employee#mer 4_F_KAFRA2,{
end;
}
if (job_merchant_q == 4)
- set job_merchant_q,6;
+ job_merchant_q = 6;
else if (job_merchant_q == 3)
- set job_merchant_q,5;
+ job_merchant_q = 5;
mes "[Kafra Employee]";
mes "Thanks again";
mes "for going through";
@@ -1059,7 +1059,7 @@ prontera,248,42,0 script Kafra Employee#mer 4_F_KAFRA2,{
end;
}
Zeny -= 600;
- set RESRVPTS, RESRVPTS + 37;
+ RESRVPTS += 37;
cutin "",255;
warp "izlude",94,103;
end;
@@ -1131,14 +1131,14 @@ function script F_MercKafra {
end;
}
if (job_merchant_q == 4)
- set job_merchant_q,6;
+ job_merchant_q = 6;
else if (job_merchant_q == 3)
- set job_merchant_q,5;
+ job_merchant_q = 5;
next;
if (countitem(1072) != 0 && quest_alb_01 == 0) {
select("This is from Chief Mahnsoo of the Merchant Guild...");
delitem 1072,1; //Delivery_Message
- set quest_alb_01,1;
+ quest_alb_01 = 1;
mes "[Kafra Employee]";
mes "Oh~! A letter from";
mes "Mahnsoo! Thank you";
diff --git a/npc/pre-re/jobs/1-1/swordman.txt b/npc/pre-re/jobs/1-1/swordman.txt
index 8b4a9f974..6b520b393 100644
--- a/npc/pre-re/jobs/1-1/swordman.txt
+++ b/npc/pre-re/jobs/1-1/swordman.txt
@@ -109,7 +109,7 @@ izlude_in,74,172,4 script Swordman#swd_1 2_M_SWORDMASTER,{
next;
if (select("Sign up.:Cancel.") == 1) {
savepoint "izlude_in",65,165;
- set job_sword_q,1;
+ job_sword_q = 1;
setquest 1014;
mes "[Swordman]";
mes "Ah, yes. Your application will be reviewed as soon as possible.";
@@ -154,7 +154,7 @@ izlude_in,74,172,4 script Swordman#swd_1 2_M_SWORDMASTER,{
mes "Hahaha! Congratulations! Now you are fully qualified to be a real Swordman! I will transform you right away!";
next;
callfunc "Job_Change",Job_Swordman;
- set job_sword_q,0;
+ job_sword_q = 0;
completequest 1014;
mes "[Swordman]";
mes "Once again, congratulations. I expect that you will be a good representative of the Swordman Association.";
@@ -279,12 +279,12 @@ izlude_in,30,163,0 script Test Hall Staff#swd_1 8W_SOLDIER,{
next;
mes "[Test Hall Staff]";
mes "Try to relax and do your best. This course isn't so difficult.";
- set job_sword_q,2;
+ job_sword_q = 2;
}
else if (job_sword_q == 2) {
mes "Retesting? Try not to worry about it. It's good that you don't back down from a challenge! Here, take these and cheer up!";
getitem 512,5; //Apple
- set job_sword_q,3;
+ job_sword_q = 3;
}
else if (job_sword_q == 3)
mes "Don't ever give up! Now retesting!";
@@ -310,7 +310,7 @@ job_sword1,230,204,2 script Test Hall Staff#2swd_3 8W_SOLDIER,{
}
job_sword1,223,167,2 script Mae#swd_1_success 4_F_03,{
mapannounce "job_sword1","Applicant " + strcharinfo(0) + ". You successfully passed the test.",bc_map;
- set job_sword_q,4;
+ job_sword_q = 4;
mes "[Mae]";
mes "I sencerely congratulate you for passing the test!";
mes "I already sent your test result to the Job Department.Please inquire at the Officer in Centre.Thank you.";
diff --git a/npc/pre-re/jobs/1-1/thief.txt b/npc/pre-re/jobs/1-1/thief.txt
index 356809cdc..e0d13a0c9 100644
--- a/npc/pre-re/jobs/1-1/thief.txt
+++ b/npc/pre-re/jobs/1-1/thief.txt
@@ -251,7 +251,7 @@ moc_prydb1,39,129,2 script Thief Guide 1_F_04,{
mes "[Thief Guide]";
mes "" + strcharinfo(0) + "?";
mes "What kind of name is " + strcharinfo(0) + "? Anyway, give me a second.";
- set job_thief_q,1;
+ job_thief_q = 1;
next;
mes "[Thief Guide]";
mes "Alright, your registration has been processed. Okay, you can begin your test if you're ready.";
@@ -296,7 +296,7 @@ moc_prydb1,39,129,2 script Thief Guide 1_F_04,{
next;
mes "[Thief Guide]";
mes "Because I feel like it, I now decree that you have passed this interview. Good work!";
- set job_thief_q,2;
+ job_thief_q = 2;
setquest 1013;
next;
mes "[Thief Guide]";
@@ -385,10 +385,10 @@ moc_prydb1,42,133,2 script Comrade 2_M_THIEFMASTER,{
close;
}
next;
- set .@thief_item1,countitem(1069) * 3;
- set .@thief_item2,countitem(1070);
- set .@total_thief,.@thief_item1 + .@thief_item2;
- set .@money_thief,((.@thief_item1 * 5) + (.@thief_item2 * 2)) + 200;
+ .@thief_item1 = countitem(1069) * 3;
+ .@thief_item2 = countitem(1070);
+ .@total_thief = .@thief_item1 + .@thief_item2;
+ .@money_thief = ((.@thief_item1 * 5) + (.@thief_item2 * 2)) + 200;
mes "[Comrade]";
if (countitem(1069) != 0) {
mes "First, let me check the Orange Net Mushrooms you got.";
@@ -503,7 +503,7 @@ moc_ruins,141,125,3 script Mr. Irrelevant 4_M_01,{
mes "[Mr. Irrelevant]";
mes "Your name is " + strcharinfo(0) + "? Ah, it's on the list. Alright, I'll let you into the Mushroom Farm , but I can't guarantee your safety...";
close2;
- set job_thief_q,3;
+ job_thief_q = 3;
switch(rand(5)) {
case 1: warp "job_thief1",228,106; end;
case 2: warp "job_thief1",38,50; end;
diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt
index a57bf5190..3e61066c9 100644
--- a/npc/pre-re/jobs/novice/novice.txt
+++ b/npc/pre-re/jobs/novice/novice.txt
@@ -106,14 +106,14 @@ new_1-2,100,29,4 script Receptionist#nv1 4_M_04,{
mes "best, and I wish you";
mes "the best of luck!";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
switch(rand(6)) {
case 0:
savepoint "prontera",273,354;
@@ -237,7 +237,7 @@ new_1-1,53,114,4 script Shion#nv1 4_F_JOB_HUNTER,{
mes "[Shion]";
mes "Oh, and before you leave,";
mes "learn how to treat a lady nice, okay? Then they might give you gifts like this!";
- set nov_1st_cos,3;
+ nov_1st_cos = 3;
getexp 9,0;
close;
}
@@ -254,7 +254,7 @@ new_1-1,53,114,4 script Shion#nv1 4_F_JOB_HUNTER,{
mes "[Shion]";
mes "You can even gain";
mes "experience like this!";
- set nov_1st_cos,3;
+ nov_1st_cos = 3;
getexp 9,0;
next;
mes "[Shion]";
@@ -303,7 +303,7 @@ new_1-1,53,114,4 script Shion#nv1 4_F_JOB_HUNTER,{
mes "at the entrance, so don't";
mes "worry about getting lost.";
mes "Take care now~!";
- set nov_1st_cos,1;
+ nov_1st_cos = 1;
close;
case 2:
mes "[Shion]";
@@ -336,13 +336,13 @@ new_1-1,53,114,4 script Shion#nv1 4_F_JOB_HUNTER,{
mes "at the entrance, so don't";
mes "worry about getting lost.";
mes "Take care now~!";
- set nov_1st_cos,1;
+ nov_1st_cos = 1;
close;
case 3:
mes "[Shion]";
mes "Me? I'm Shion!";
mes "But that's a rude way of asking! I'm volunteering my time and effort here, so you've got to show me a little bit of respect at least!";
- set nov_1st_cos,2;
+ nov_1st_cos = 2;
close;
}
}
@@ -388,15 +388,15 @@ new_1-2,99,105,3 script Interfaces Tutor#nv1 4_M_CRU,{
if (NEW_MES_FLAG0) {
mes "[Kris]";
mes "Ah, " + strcharinfo(0) + ", you've applied for an old training course that we no longer provide for our trainees. Let me issue a new proof of registration for you.";
- set NEW_MES_FLAG0,0;
- set NEW_MES_FLAG1,0;
- set NEW_MES_FLAG2,0;
- set NEW_MES_FLAG3,0;
- set NEW_MES_FLAG4,0;
- set NEW_MES_FLAG5,0;
- set NEW_LVUP0,0;
- set NEW_LVUP1,0;
- set NEW_JOBLVUP,0;
+ NEW_MES_FLAG0 = 0;
+ NEW_MES_FLAG1 = 0;
+ NEW_MES_FLAG2 = 0;
+ NEW_MES_FLAG3 = 0;
+ NEW_MES_FLAG4 = 0;
+ NEW_MES_FLAG5 = 0;
+ NEW_LVUP0 = 0;
+ NEW_LVUP1 = 0;
+ NEW_JOBLVUP = 0;
next;
}
mes "[Kris]";
@@ -434,7 +434,7 @@ new_1-2,99,105,3 script Interfaces Tutor#nv1 4_M_CRU,{
mes "As you gain experience,";
mes "the experience gauge fills up.";
mes "Once it is 100 % full, you gain an experience level, and the gauge is reset to 0.";
- set nov_get_item02,10;
+ nov_get_item02 = 10;
switch (BaseLevel) {
case 1: getexp 10,0; break;
case 2: getexp 17,0; break;
@@ -507,7 +507,7 @@ new_1-2,99,105,3 script Interfaces Tutor#nv1 4_M_CRU,{
next;
mes "[Kris]";
mes "Let me give you a little bit of Job experience points. Open your Skill Window and distribute your Skill Points into ^3355FFBasic Skills^000000.";
- set nov_get_item02,11;
+ nov_get_item02 = 11;
switch (JobLevel) {
case 1: getexp 0,10; break;
case 2: getexp 0,18; break;
@@ -524,7 +524,7 @@ new_1-2,99,105,3 script Interfaces Tutor#nv1 4_M_CRU,{
next;
mes "[Kris]";
mes "Now, why don't you speak to Edwin? He will teach you more regarding the basic use of Skills. Ah, and let me give you a small present: a Tattered Novice Ninja Suit!";
- set nov_get_item02,12;
+ nov_get_item02 = 12;
getitem 2352,1; //Novice_Plate
close;
case 2:
@@ -684,15 +684,15 @@ new_1-2,83,111,3 script Skill Tutor#nv 4_M_MONK,{
if (NEW_MES_FLAG0) {
mes "By the way, your proof of registration has expired, so let me give you a new one.";
mes "Let me give you a new one.";
- set NEW_MES_FLAG0,0;
- set NEW_MES_FLAG1,0;
- set NEW_MES_FLAG2,0;
- set NEW_MES_FLAG3,0;
- set NEW_MES_FLAG4,0;
- set NEW_MES_FLAG5,0;
- set NEW_LVUP0,0;
- set NEW_LVUP1,0;
- set NEW_JOBLVUP,0;
+ NEW_MES_FLAG0 = 0;
+ NEW_MES_FLAG1 = 0;
+ NEW_MES_FLAG2 = 0;
+ NEW_MES_FLAG3 = 0;
+ NEW_MES_FLAG4 = 0;
+ NEW_MES_FLAG5 = 0;
+ NEW_LVUP0 = 0;
+ NEW_LVUP1 = 0;
+ NEW_JOBLVUP = 0;
}
mes "Then, shall we begin the class?";
next;
@@ -723,7 +723,7 @@ new_1-2,83,111,3 script Skill Tutor#nv 4_M_MONK,{
next;
mes "[Cecil]";
mes "Open your Skill Window ('Alt' + 'S') and click the '^3355FFLv Up^000000' button next to the Basic Skill icon to allocate a Skill Point to your Basic Skills.";
- set nov_get_item03,10;
+ nov_get_item03 = 10;
switch (JobLevel) {
case 1: getexp 0,10; break;
case 2: getexp 0,18; break;
@@ -752,13 +752,13 @@ new_1-2,83,111,3 script Skill Tutor#nv 4_M_MONK,{
mes "^3355FFYou have learned";
mes "the ^4A708BFirst Aid^3355FF skill.^000000";
skill 142,1,0; //NV_FIRSTAID
- set NOV_SK,3;
- set nov_get_item03,11;
+ NOV_SK = 3;
+ nov_get_item03 = 11;
next;
if (JobLevel < 7) {
mes "^3355FFYou have gained a small";
mes "amount of Job experience.^000000";
- set nov_get_item03,12;
+ nov_get_item03 = 12;
switch (JobLevel) {
case 1: getexp 0,10; break;
case 2: getexp 0,18; break;
@@ -784,7 +784,7 @@ new_1-2,83,111,3 script Skill Tutor#nv 4_M_MONK,{
mes "so let me reward you!";
if (BaseLevel < 8) {
mes "Behold: bonus experience!";
- set nov_get_item03,13;
+ nov_get_item03 = 13;
switch (BaseLevel) {
case 1: getexp 10,0; break;
case 2: getexp 17,0; break;
@@ -928,15 +928,15 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
mes "Oh! Hello, you're new here.";
if (NEW_MES_FLAG0) {
mes "Ooh, your proof of registration was expired. But that's okay, I'll just give you a new one! There you go.";
- set NEW_MES_FLAG0,0;
- set NEW_MES_FLAG1,0;
- set NEW_MES_FLAG2,0;
- set NEW_MES_FLAG3,0;
- set NEW_MES_FLAG4,0;
- set NEW_MES_FLAG5,0;
- set NEW_LVUP0,0;
- set NEW_LVUP1,0;
- set NEW_JOBLVUP,0;
+ NEW_MES_FLAG0 = 0;
+ NEW_MES_FLAG1 = 0;
+ NEW_MES_FLAG2 = 0;
+ NEW_MES_FLAG3 = 0;
+ NEW_MES_FLAG4 = 0;
+ NEW_MES_FLAG5 = 0;
+ NEW_LVUP0 = 0;
+ NEW_LVUP1 = 0;
+ NEW_JOBLVUP = 0;
}
mes "So, have you come to attend";
mes "my Item Information class?";
@@ -953,7 +953,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
next;
mes "[Alice]";
mes "Now, would you click the ^4A708Bitem^000000 tab in the Inventory Window? I just gave you a Novice Potion. You can drink it by double-clicking it. Go ahead, try it!";
- set nov_get_item04,10;
+ nov_get_item04 = 10;
getitem 569,1; //Novice_Potion
percentheal -50,0;
next;
@@ -964,7 +964,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
mes "And here's";
mes "a little reward";
mes "just for listening.";
- set nov_get_item04,11;
+ nov_get_item04 = 11;
switch (BaseLevel) {
case 1: getexp 10,0; break;
case 2: getexp 17,0; break;
@@ -999,7 +999,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
mes "on the Novice Slippers";
mes "I just gave you to";
mes "put them on.";
- set nov_get_item04,12;
+ nov_get_item04 = 12;
getitem 2510,1; //Novice_Hood
getitem 2414,1; //Novice_Boots
getitem 5055,1; //Novice_Egg_Cap
@@ -1010,7 +1010,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
mes "Hooray~!";
mes "You did it!";
mes "You deserve a reward!";
- set nov_get_item04,13;
+ nov_get_item04 = 13;
switch (BaseLevel) {
case 1: getexp 10,0; break;
case 2: getexp 17,0; break;
@@ -1054,7 +1054,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
next;
mes "[Alice]";
mes "Passive Skills, such as the aptly named 'Basic Skill,' cannot be dragged into the Hotkey bar because Passive Skills are always in effect and don't need to be activated.";
- set nov_get_item04,14;
+ nov_get_item04 = 14;
if (JobLevel < 7) {
switch (JobLevel) {
case 1: getexp 0,10; break;
@@ -1073,7 +1073,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
next;
mes "[Alice]";
mes "However, ^ff0000do not use the Fly Wing or Butterfly Wing^000000 in these Training Grounds or you could be stuck here forever. Those items are for when you graduate, okay?";
- set nov_get_item04,15;
+ nov_get_item04 = 15;
getitem 601,10; //Wing_Of_Fly
getitem 602,2; //Wing_Of_Butterfly
getitem 569,50; //Novice_Potion
@@ -1083,7 +1083,7 @@ new_1-2,115,111,3 script Item Tutor#nv 4_F_JOB_BLACKSMITH,{
if (JobLevel < 7) {
mes "I will give";
mes "you some Job experience!";
- set nov_get_item04,16;
+ nov_get_item04 = 16;
switch (JobLevel) {
case 1: getexp 0,10; break;
case 2: getexp 0,18; break;
@@ -1238,15 +1238,15 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
mes "The Kafra services are";
mes "always on your side.";
if (NEW_MES_FLAG0) {
- set NEW_MES_FLAG0,0;
- set NEW_MES_FLAG1,0;
- set NEW_MES_FLAG2,0;
- set NEW_MES_FLAG3,0;
- set NEW_MES_FLAG4,0;
- set NEW_MES_FLAG5,0;
- set NEW_LVUP0,0;
- set NEW_LVUP1,0;
- set NEW_JOBLVUP,0;
+ NEW_MES_FLAG0 = 0;
+ NEW_MES_FLAG1 = 0;
+ NEW_MES_FLAG2 = 0;
+ NEW_MES_FLAG3 = 0;
+ NEW_MES_FLAG4 = 0;
+ NEW_MES_FLAG5 = 0;
+ NEW_LVUP0 = 0;
+ NEW_LVUP1 = 0;
+ NEW_JOBLVUP = 0;
}
next;
mes "[Kafra Employee]";
@@ -1283,34 +1283,34 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
next;
switch(select("Prontera:Morroc:Payon:Alberta:Geffen")) {
case 1:
- set .@dest$,"Prontera";
- set .@mapn$,"prontera";
- set .@saveX,117; set .@saveY,72;
- set .@warpX,150; set .@warpY,50;
+ .@dest$ = "Prontera";
+ .@mapn$ = "prontera";
+ .@saveX = 117; .@saveY = 72;
+ .@warpX = 150; .@warpY = 50;
break;
case 2:
- set .@dest$,"Morroc";
- set .@mapn$,"morocc";
- set .@saveX,150; set .@saveY,99;
- set .@warpX,155; set .@warpY,110;
+ .@dest$ = "Morroc";
+ .@mapn$ = "morocc";
+ .@saveX = 150; .@saveY = 99;
+ .@warpX = 155; .@warpY = 110;
break;
case 3:
- set .@dest$,"Payon";
- set .@mapn$,"payon";
- set .@saveX,70; set .@saveY,100;
- set .@warpX,166; set .@warpY,67;
+ .@dest$ = "Payon";
+ .@mapn$ = "payon";
+ .@saveX = 70; .@saveY = 100;
+ .@warpX = 166; .@warpY = 67;
break;
case 4:
- set .@dest$,"Alberta";
- set .@mapn$,"alberta";
- set .@saveX,30; set .@saveY,232;
- set .@warpX,114; set .@warpY,58;
+ .@dest$ = "Alberta";
+ .@mapn$ = "alberta";
+ .@saveX = 30; .@saveY = 232;
+ .@warpX = 114; .@warpY = 58;
break;
case 5:
- set .@dest$,"Geffen";
- set .@mapn$,"geffen";
- set .@saveX,119; set .@saveY,37;
- set .@warpX,122; set .@warpY,65;
+ .@dest$ = "Geffen";
+ .@mapn$ = "geffen";
+ .@saveX = 119; .@saveY = 37;
+ .@warpX = 122; .@warpY = 65;
break;
}
mes "[Kafra Employee]";
@@ -1319,7 +1319,7 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
mes "May God be with you.";
close2;
if (nov_get_item05 < 11) {
- set nov_get_item05,11;
+ nov_get_item05 = 11;
getitem 569,100; //Novice_Potion
getitem 1243,1; //Novice_Knife
getitem 2414,1; //Novice_Boots
@@ -1331,14 +1331,14 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
}
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint .@mapn$,.@saveX,.@saveY;
warp .@mapn$,.@warpX,.@warpY;
end;
@@ -1354,34 +1354,34 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
warp "new_1-2",28,178;
end;
case 2:
- set .@dest$,"Prontera";
- set .@mapn$,"prontera";
- set .@saveX,117; set .@saveY,72;
- set .@warpX,150; set .@warpY,50;
+ .@dest$ = "Prontera";
+ .@mapn$ = "prontera";
+ .@saveX = 117; .@saveY = 72;
+ .@warpX = 150; .@warpY = 50;
break;
case 3:
- set .@dest$,"Morroc";
- set .@mapn$,"morocc";
- set .@saveX,150; set .@saveY,99;
- set .@warpX,155; set .@warpY,110;
+ .@dest$ = "Morroc";
+ .@mapn$ = "morocc";
+ .@saveX = 150; .@saveY = 99;
+ .@warpX = 155; .@warpY = 110;
break;
case 4:
- set .@dest$,"Payon";
- set .@mapn$,"payon";
- set .@saveX,70; set .@saveY,100;
- set .@warpX,166; set .@warpY,67;
+ .@dest$ = "Payon";
+ .@mapn$ = "payon";
+ .@saveX = 70; .@saveY = 100;
+ .@warpX = 166; .@warpY = 67;
break;
case 5:
- set .@dest$,"Alberta";
- set .@mapn$,"alberta";
- set .@saveX,30; set .@saveY,232;
- set .@warpX,114; set .@warpY,58;
+ .@dest$ = "Alberta";
+ .@mapn$ = "alberta";
+ .@saveX = 30; .@saveY = 232;
+ .@warpX = 114; .@warpY = 58;
break;
case 6:
- set .@dest$,"Geffen";
- set .@mapn$,"geffen";
- set .@saveX,119; set .@saveY,37;
- set .@warpX,122; set .@warpY,65;
+ .@dest$ = "Geffen";
+ .@mapn$ = "geffen";
+ .@saveX = 119; .@saveY = 37;
+ .@warpX = 122; .@warpY = 65;
break;
}
mes "[Kafra Employee]";
@@ -1390,18 +1390,18 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
mes "May God be with you.";
close2;
if (nov_get_item05 < 11) {
- set nov_get_item05,11;
+ nov_get_item05 = 11;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
}
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint .@mapn$,.@saveX,.@saveY;
warp .@mapn$,.@warpX,.@warpY;
end;
@@ -1431,7 +1431,7 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
mes "the Kafra Corporation";
mes "free of charge~!";
if (nov_1st_cos < 20) {
- set nov_1st_cos,20;
+ nov_1st_cos = 20;
switch (BaseLevel) {
case 1: getexp 10,0; break;
case 2: getexp 17,0; break;
@@ -1474,7 +1474,7 @@ new_1-2,118,108,3 script Kafra Employee#nv1 4_F_KAFRA1,{
mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot. The maximum number of items that can be placed in Kafra Storage is 30,000.";
if (nov_3_archer < 20) {
if (JobLevel < 7) {
- set nov_3_archer,20;
+ nov_3_archer = 20;
switch (JobLevel) {
case 1: getexp 0,10; break;
case 2: getexp 0,18; break;
@@ -2089,7 +2089,7 @@ new_1-2,184,172,1 script Understandings of Skills 1_M_01,{
mes "as you are cute~!";
mes "I, Leo, am very impressed.";
next;
- set .@end,1;
+ .@end = 1;
}
if (.@end) break;
}
@@ -2214,31 +2214,31 @@ new_1-2,17,182,5 script Helper#nv 4_M_02,{
mes "Haaaaaaa~!";
if (nov_2nd_cos < 1) {
if (BaseLevel == 1) {
- set nov_2nd_cos,12;
+ nov_2nd_cos = 12;
getexp 9,0;
}
else if (BaseLevel == 2) {
- set nov_2nd_cos,13;
+ nov_2nd_cos = 13;
getexp 16,0;
}
else if (BaseLevel == 3) {
- set nov_2nd_cos,14;
+ nov_2nd_cos = 14;
getexp 25,0;
}
else if (BaseLevel == 4) {
- set nov_2nd_cos,15;
+ nov_2nd_cos = 15;
getexp 36,0;
}
else if (BaseLevel == 5) {
- set nov_2nd_cos,16;
+ nov_2nd_cos = 16;
getexp 77,0;
}
else if (BaseLevel == 6) {
- set nov_2nd_cos,17;
+ nov_2nd_cos = 17;
getexp 112,0;
}
else if (BaseLevel >= 7) {
- set nov_2nd_cos,18;
+ nov_2nd_cos = 18;
getexp 153,0;
}
}
@@ -2482,28 +2482,28 @@ new_1-2,38,182,3 script Entrance Guard#nv 4_F_03,{
mes "[Muriel]";
mes "I'm going to give you some useful supplies, so please use them in case of an emergency.";
if (nov_2nd_cos == 12) {
- set nov_2nd_cos,22;
+ nov_2nd_cos = 22;
}
else if (nov_2nd_cos == 13) {
- set nov_2nd_cos,23;
+ nov_2nd_cos = 23;
}
else if (nov_2nd_cos == 14) {
- set nov_2nd_cos,24;
+ nov_2nd_cos = 24;
}
else if (nov_2nd_cos == 15) {
- set nov_2nd_cos,25;
+ nov_2nd_cos = 25;
}
else if (nov_2nd_cos == 16) {
- set nov_2nd_cos,26;
+ nov_2nd_cos = 26;
}
else if (nov_2nd_cos == 17) {
- set nov_2nd_cos,27;
+ nov_2nd_cos = 27;
}
else if (nov_2nd_cos == 18) {
- set nov_2nd_cos,28;
+ nov_2nd_cos = 28;
}
else {
- set nov_2nd_cos,29;
+ nov_2nd_cos = 29;
}
getitem 602,1; //Wing_Of_Butterfly
getitem 601,9; //Wing_Of_Fly
@@ -2543,35 +2543,35 @@ new_1-2,38,182,3 script Entrance Guard#nv 4_F_03,{
mes "some supplies again.";
mes "Please be careful!";
if (nov_2nd_cos == 22) {
- set nov_2nd_cos,33;
+ nov_2nd_cos = 33;
getexp 16,0;
}
else if (nov_2nd_cos == 23) {
- set nov_2nd_cos,34;
+ nov_2nd_cos = 34;
getexp 25,0;
}
else if (nov_2nd_cos == 24) {
- set nov_2nd_cos,35;
+ nov_2nd_cos = 35;
getexp 36,0;
}
else if (nov_2nd_cos == 25) {
- set nov_2nd_cos,36;
+ nov_2nd_cos = 36;
getexp 77,0;
}
else if (nov_2nd_cos == 26) {
- set nov_2nd_cos,37;
+ nov_2nd_cos = 37;
getexp 112,0;
}
else if (nov_2nd_cos == 27) {
- set nov_2nd_cos,38;
+ nov_2nd_cos = 38;
getexp 153,0;
}
else if (nov_2nd_cos == 28) {
- set nov_2nd_cos,39;
+ nov_2nd_cos = 39;
getexp 200,0;
}
else if (nov_2nd_cos == 29) {
- set nov_2nd_cos,40;
+ nov_2nd_cos = 40;
getexp 200,0;
}
percentheal 100,0;
@@ -2781,66 +2781,66 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Study:Exercise:Public service:Violence")) {
case 1:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@thief_p,.@thief_p+1;
- set .@swordman_p,.@swordman_p+1;
+ ++.@thief_p;
+ ++.@swordman_p;
break;
case 3:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 4:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
}
switch(select("Change:Conserve")) {
case 1:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
switch(select("Consumer:Seller:Producer")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
- set .@thief_p,.@thief_p+1;
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@swordman_p;
+ ++.@thief_p;
+ ++.@acolyte_p;
break;
case 2:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 3:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
switch(select("Celebrity:Prudence")) {
case 1:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
case 2:
- set .@archer_p,.@archer_p+1;
+ ++.@archer_p;
break;
}
switch(select("Theory:Experience")) {
case 1:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
}
switch(select("The Past:Reality:The Future")) {
case 1:
- set .@archer_p,.@archer_p+1;
+ ++.@archer_p;
break;
case 2:
- set .@merchant_p,.@merchant_p+1;
- set .@thief_p,.@thief_p+1;
+ ++.@merchant_p;
+ ++.@thief_p;
break;
case 3:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
mes "[Hanson]";
@@ -2854,11 +2854,11 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
case 2:
- set .@thief_p,.@thief_p+1;
- set .@merchant_p,.@merchant_p+1;
+ ++.@thief_p;
+ ++.@merchant_p;
break;
}
mes "[Hanson]";
@@ -2868,10 +2868,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 2:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
mes "[Hanson]";
@@ -2881,10 +2881,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
case 2:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
mes "[Hanson]";
@@ -2894,10 +2894,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
case 2:
- set .@archer_p,.@archer_p+1;
+ ++.@archer_p;
break;
}
mes "[Hanson]";
@@ -2915,10 +2915,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
case 2:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
}
mes "[Hanson]";
@@ -2927,10 +2927,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 2:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
mes "[Hanson]";
@@ -2940,10 +2940,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 2:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
mes "[Hanson]";
@@ -2951,10 +2951,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 2:
- set .@archer_p,.@archer_p+1;
+ ++.@archer_p;
break;
}
mes "[Hanson]";
@@ -2966,16 +2966,16 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("You feel like a robot.:You are proud and satisfied.:Schedule? What schedule?")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
- set .@thief_p,.@thief_p+1;
+ ++.@swordman_p;
+ ++.@thief_p;
break;
case 2:
- set .@acolyte_p,.@acolyte_p+1;
- set .@magician_p,.@magician_p+1;
+ ++.@acolyte_p;
+ ++.@magician_p;
break;
case 3:
- set .@archer_p,.@archer_p+1;
- set .@merchant_p,.@merchant_p+1;
+ ++.@archer_p;
+ ++.@merchant_p;
break;
}
mes "[Hanson]";
@@ -2986,13 +2986,13 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Consider if you need it.:Check the price.:Don't think twice, just buy it!")) {
case 1:
- set .@archer_p,.@archer_p+1;
+ ++.@archer_p;
break;
case 2:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 3:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
}
mes "[Hanson]";
@@ -3003,14 +3003,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("don't mind...:don't like...:don't care about...")) {
case 1:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 2:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
case 3:
- set .@acolyte_p,.@acolyte_p+1;
- set .@swordman_p,.@swordman_p+1;
+ ++.@acolyte_p;
+ ++.@swordman_p;
break;
}
mes "[Hanson]";
@@ -3021,10 +3021,10 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Handle it myself, even if it's hard.:Ask friends to help.")) {
case 1:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
}
mes "[Hanson]";
@@ -3035,16 +3035,16 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Carry her to a hospital.:Assess the situation before taking action.:Just ignore it.")) {
case 1:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 2:
- set .@swordman_p,.@swordman_p+1;
- set .@archer_p,.@archer_p+1;
+ ++.@swordman_p;
+ ++.@archer_p;
break;
case 3:
- set .@magician_p,.@magician_p+1;
- set .@thief_p,.@thief_p+1;
- set .@merchant_p,.@merchant_p+1;
+ ++.@magician_p;
+ ++.@thief_p;
+ ++.@merchant_p;
break;
}
mes "[Hanson]";
@@ -3054,17 +3054,17 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Check the brand.:Wonder who lost it.:Finder's keepers!:Leave it where it was.")) {
case 1:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 2:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 3:
- set .@merchant_p,.@merchant_p+1;
- set .@thief_p,.@thief_p+1;
+ ++.@merchant_p;
+ ++.@thief_p;
break;
case 4:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
}
mes "[Hanson]";
@@ -3072,16 +3072,16 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Pretend it's a joke.:Change the subject.:Analyze it.:Apologize honestly.")) {
case 1:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
case 2:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
case 3:
- set .@magician_p,.@magician_p+1;
+ ++.@magician_p;
break;
case 4:
- set .@acolyte_p,.@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
mes "[Hanson]";
@@ -3089,13 +3089,13 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
next;
switch(select("Buy the item for her/him.:Say 'no.':Promise it for next time.")) {
case 1:
- set .@swordman_p,.@swordman_p+1;
+ ++.@swordman_p;
break;
case 2:
- set .@merchant_p,.@merchant_p+1;
+ ++.@merchant_p;
break;
case 3:
- set .@thief_p,.@thief_p+1;
+ ++.@thief_p;
break;
}
mes "[Hanson]";
@@ -3105,7 +3105,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "I've prepared some items for you since you passed the personality test. Please take them, you've earned it.";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 501,4; //Red_Potion
getitem 503,2; //Yellow_Potion
getitem 506,2; //Green_Potion
@@ -3131,156 +3131,95 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
if (.@swordman_p > .@thief_p) {
if (.@swordman_p > .@archer_p) {
if (.@swordman_p > .@acolyte_p) {
- set .@job_c,1;
- }
- else {
- set .@job_c,6;
+ .@job_c = 1;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
+ } else if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ .@job_c = 4;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- else {
- if (.@thief_p > .@archer_p) {
- if (.@thief_p > .@acolyte_p) {
- set .@job_c,4;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
- }
- }
- }
- else {
- if (.@merchant_p > .@thief_p) {
- if (.@merchant_p > .@archer_p) {
- if (.@merchant_p > .@acolyte_p) {
- set .@job_c,3;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
+ } else if (.@merchant_p > .@thief_p) {
+ if (.@merchant_p > .@archer_p) {
+ if (.@merchant_p > .@acolyte_p) {
+ .@job_c = 3;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- else {
- if (.@thief_p > .@archer_p) {
- if (.@thief_p > .@acolyte_p) {
- set .@job_c,4;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
- }
+ } else if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ .@job_c = 4;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- }
- else {
- if (.@magician_p > .@merchant_p) {
- if (.@magician_p > .@thief_p) {
- if (.@magician_p > .@archer_p) {
- if (.@magician_p > .@acolyte_p) {
- set .@job_c,2;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
+ } else if (.@magician_p > .@merchant_p) {
+ if (.@magician_p > .@thief_p) {
+ if (.@magician_p > .@archer_p) {
+ if (.@magician_p > .@acolyte_p) {
+ .@job_c = 2;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- else {
- if (.@thief_p > .@archer_p) {
- if (.@thief_p > .@acolyte_p) {
- set .@job_c,4;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
- }
+ } else if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ .@job_c = 4;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
- else {
- if (.@merchant_p > .@thief_p) {
- if (.@merchant_p > .@archer_p) {
- if (.@merchant_p > .@acolyte_p) {
- set .@job_c,3;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
- }
- }
- else {
- if (.@thief_p > .@archer_p) {
- if (.@thief_p > .@acolyte_p) {
- set .@job_c,4;
- }
- else {
- set .@job_c,6;
- }
- }
- else {
- if (.@archer_p > .@acolyte_p) {
- set .@job_c,5;
- }
- else {
- set .@job_c,6;
- }
- }
+ } else if (.@merchant_p > .@thief_p) {
+ if (.@merchant_p > .@archer_p) {
+ if (.@merchant_p > .@acolyte_p) {
+ .@job_c = 3;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
+ }
+ } else if (.@thief_p > .@archer_p) {
+ if (.@thief_p > .@acolyte_p) {
+ .@job_c = 4;
+ } else {
+ .@job_c = 6;
}
+ } else if (.@archer_p > .@acolyte_p) {
+ .@job_c = 5;
+ } else {
+ .@job_c = 6;
}
if (.@job_c == 1) {
mes "[Hanson]";
@@ -3310,7 +3249,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000331 Falchion^000000";
mes "^0000337 Phracon^000000";
next;
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 1104,1; //Falchion
@@ -3338,14 +3277,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^A62A2A" + strcharinfo(0) + "^000000";
mes "and farewell.";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint "izlude",93,104;
warp "izlude_in",74,167;
end;
@@ -3379,7 +3318,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000337 Phracon^000000";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 1601,1; //Rod
@@ -3411,14 +3350,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "You'll now be teleported.";
mes "Good luck, ^A62A2A" + strcharinfo(0) + "^000000 and farewell.";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint "geffen",119,37;
warp "geffen_in",163,98;
end;
@@ -3452,7 +3391,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000337 Phracon^000000";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,4; //Cargo_Free_Ticket
getitem 7060,4; //Warp_Free_Ticket
getitem 7061,4; //Cart_Free_Ticket
@@ -3482,14 +3421,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^A62A2A" + strcharinfo(0) + "^000000";
mes "and farewell.";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint "alberta",30,232;
warp "alberta_in",62,44;
end;
@@ -3529,7 +3468,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000337 Phracon^000000";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 1207,1; //Main_Gauche
@@ -3590,7 +3529,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000337 Phracon^000000";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 1704,1; //Composite_Bow
@@ -3619,14 +3558,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^A62A2A" + strcharinfo(0) + "^000000";
mes "and farewell.";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint "payon",70,100;
warp "payon_in02",64,65;
end;
@@ -3662,7 +3601,7 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^0000337 Phracon^000000";
next;
//---------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 1504,1; //Mace
@@ -3691,14 +3630,14 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "^A62A2A" + strcharinfo(0) + "^000000";
mes "and farewell.";
close2;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
savepoint "prontera",117,72;
warp "prt_church",172,19;
end;
@@ -3725,16 +3664,16 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes ""+ strcharinfo(0) +".";
mes "Fare well.";
next;
- set nov_3_swordman,40;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
- set .@startmap,rand(1,6);
+ nov_3_swordman = 40;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
+ .@startmap = rand(1,6);
if ((.@startmap > 0) && (.@startmap < 2)) {
savepoint "prontera",117,72;
warp "prt_fild08",170,371;
@@ -3777,15 +3716,15 @@ new_1-4,100,29,1 script Hanson#nv 1_ETC_01,{
mes "left to do is to lead";
mes "you to Rune-Midgard~";
next;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
- set .@startmap,rand(1,6);
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
+ .@startmap = rand(1,6);
if ((.@startmap > 0) && (.@startmap < 2)) {
savepoint "prontera",117,72;
warp "prt_fild08",170,371;
@@ -3902,7 +3841,7 @@ S_UserJobchoice:
////mes "^000099100 Zeny^000000";
next;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,5; //Cargo_Free_Ticket
getitem 7060,5; //Warp_Free_Ticket
getitem 2305,1; //Adventure_Suit
@@ -3925,14 +3864,14 @@ S_UserJobchoice:
mes "^A62A2A" + strcharinfo(0) + "^000000";
mes "and farewell.";
next;
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
if(@menu == 1) {
savepoint "izlude",93,104;
warp "izlude_in",74,167;
@@ -3995,7 +3934,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "A Swordman is the ideal character to take the position of party leader. When advancing to the Second Job Class, Swordmen can change their jobs to ^8E2323Knights^000000 or ^8E2323Crusaders^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 2:
@@ -4013,7 +3952,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Mages can change their jobs to ^8E2323Wizards^000000 or ^8E2323Sages^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 3:
@@ -4028,7 +3967,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, every Archer may advance to the ^8E2323Hunter^000000 class. Alternatively, male Archers may advance to become ^8E2323Bards^000000, and female Archers may become ^8E2323Dancers^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 4:
@@ -4044,7 +3983,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Merchants can change their jobs to ^8E2323Blacksmiths^000000 or ^8E2323Alchemists^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 5:
@@ -4057,7 +3996,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 6:
@@ -4070,7 +4009,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
mes "[Bruce]";
mes "When advancing to the Second Job Class, Acolytes can change their jobs to ^8E2323Priests^000000 or ^8E2323Monks^000000.";
mes "";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 7:
@@ -4153,7 +4092,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "A Swordman is the ideal character to take the position of party leader. When advancing to the Second Job Class, Swordmen can change their jobs to ^8E2323Knights^000000 or ^8E2323Crusaders^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 2:
@@ -4171,7 +4110,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Mages can change their jobs to ^8E2323Wizards^000000 or ^8E2323Sages^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 3:
@@ -4186,7 +4125,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, every Archer may advance to the ^8E2323Hunter^000000 class. Alternatively, male Archers may advance to become ^8E2323Bards^000000, and female Archers may become ^8E2323Dancers^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 4:
@@ -4202,7 +4141,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Merchants can change their jobs to ^8E2323Blacksmiths^000000 or ^8E2323Alchemists^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 5:
@@ -4215,7 +4154,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
next;
mes "[Bruce]";
mes "When advancing to the Second Job Class, Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 6:
@@ -4228,7 +4167,7 @@ new_1-4,91,22,4 script Bruce#nv 1_M_LIBRARYMASTER,{
mes "[Bruce]";
mes "When advancing to the Second Job Class, Acolytes can change their jobs to ^8E2323Priests^000000 or ^8E2323Monks^000000.";
mes "";
- set nov_3_swordman,20;
+ nov_3_swordman = 20;
next;
break;
case 7:
diff --git a/npc/pre-re/mobs/dungeons/lhz_dun.txt b/npc/pre-re/mobs/dungeons/lhz_dun.txt
index eb544e724..5d054d111 100644
--- a/npc/pre-re/mobs/dungeons/lhz_dun.txt
+++ b/npc/pre-re/mobs/dungeons/lhz_dun.txt
@@ -271,26 +271,26 @@ OnTimer7800000:
OnSummon:
// Select Coordinates to summon a random MVP on
switch(rand(1,6)) {
- case 1: set .@x,140; set .@y,232; break;
- case 2: set .@x,75; set .@y,138; break;
- case 3: set .@x,140; set .@y,87; break;
- case 4: set .@x,205; set .@y,140; break;
- case 5: set .@x,123; set .@y,137; break;
- case 6: set .@x,175; set .@y,137; break;
+ case 1: .@x = 140; .@y = 232; break;
+ case 2: .@x = 75; .@y = 138; break;
+ case 3: .@x = 140; .@y = 87; break;
+ case 4: .@x = 205; .@y = 140; break;
+ case 5: .@x = 123; .@y = 137; break;
+ case 6: .@x = 175; .@y = 137; break;
}
- set .@mob,rand(1646,1651);
+ .@mob = rand(1646,1651);
monster "lhz_dun03",.@x,.@y,strmobinfo(1,.@mob),.@mob,1,"summon_boss_lt::OnMyMVPDead";
// Select Coordinates to summon a random 99 on
switch(rand(1,6)) {
- case 1: set .@x2,183; set .@y2,97; break;
- case 2: set .@x2,97; set .@y2,96; break;
- case 3: set .@x2,47; set .@y2,139; break;
- case 4: set .@x2,231; set .@y2,140; break;
- case 5: set .@x2,139; set .@y2,211; break;
- case 6: set .@x2,139; set .@y2,259; break;
+ case 1: .@x2 = 183; .@y2 = 97; break;
+ case 2: .@x2 = 97; .@y2 = 96; break;
+ case 3: .@x2 = 47; .@y2 = 139; break;
+ case 4: .@x2 = 231; .@y2 = 140; break;
+ case 5: .@x2 = 139; .@y2 = 211; break;
+ case 6: .@x2 = 139; .@y2 = 259; break;
}
- set .@mob2,rand(1640,1645);
+ .@mob2 = rand(1640,1645);
monster "lhz_dun03",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,"summon_boss_lt::OnMVP";
end;
diff --git a/npc/pre-re/quests/collection/quest_alligator.txt b/npc/pre-re/quests/collection/quest_alligator.txt
index 79c121ba5..327216667 100644
--- a/npc/pre-re/quests/collection/quest_alligator.txt
+++ b/npc/pre-re/quests/collection/quest_alligator.txt
@@ -13,8 +13,8 @@
//============================================================
cmd_fild01,362,256,3 script Cuir#Gator_Hunt 1_M_MOC_LORD,{
- if (checkquest(60119) != -1) {
- if (checkquest(60119,HUNTING) != 2 ) {
+ if (questprogress(60119)) {
+ if (questprogress(60119,HUNTING) != 2) {
mes "[Cuir]";
mes "Have you finished hunting the 50 Alligators?";
next;
@@ -53,8 +53,8 @@ cmd_fild01,362,256,3 script Cuir#Gator_Hunt 1_M_MOC_LORD,{
close;
}
}
- if (checkquest(60120) != -1) {
- if (checkquest(60120,HUNTING) != 2 ) {
+ if (questprogress(60120)) {
+ if (questprogress(60120,HUNTING) != 2) {
mes "[Cuir]";
mes "Have you finished hunting the 50 Alligators?";
next;
@@ -94,8 +94,8 @@ cmd_fild01,362,256,3 script Cuir#Gator_Hunt 1_M_MOC_LORD,{
close;
}
}
- if (checkquest(60121) != -1) {
- if (checkquest(60121,HUNTING) != 2 ) {
+ if (questprogress(60121)) {
+ if (questprogress(60121,HUNTING)) {
mes "[Cuir]";
mes "Have you finished hunting the 150 Alligators?";
next;
diff --git a/npc/pre-re/quests/collection/quest_caramel.txt b/npc/pre-re/quests/collection/quest_caramel.txt
index 6815c62e1..5474939ff 100644
--- a/npc/pre-re/quests/collection/quest_caramel.txt
+++ b/npc/pre-re/quests/collection/quest_caramel.txt
@@ -13,8 +13,8 @@
//============================================================
mjolnir_01,296,29,6 script Yullo#Caramel_Hunt 4_F_SISTER,{
- if (checkquest(60116) != -1) {
- if (checkquest(60116,HUNTING) != 2 ) {
+ if (questprogress(60116)) {
+ if (questprogress(60116,HUNTING) != 2) {
mes "[Yullo]";
mes "Have you finished hunting the 50 Caramels?";
next;
@@ -53,8 +53,8 @@ mjolnir_01,296,29,6 script Yullo#Caramel_Hunt 4_F_SISTER,{
close;
}
}
- if (checkquest(60117) != -1) {
- if (checkquest(60117,HUNTING) != 2 ) {
+ if (questprogress(60117)) {
+ if (questprogress(60117,HUNTING) != 2) {
mes "[Yullo]";
mes "Have you finished hunting the 50 Caramels?";
next;
@@ -94,8 +94,8 @@ mjolnir_01,296,29,6 script Yullo#Caramel_Hunt 4_F_SISTER,{
close;
}
}
- if (checkquest(60118) != -1) {
- if (checkquest(60118,HUNTING) != 2 ) {
+ if (questprogress(60118)) {
+ if (questprogress(60118,HUNTING) != 2) {
mes "[Yullo]";
mes "Have you finished hunting the 150 Caramels?";
next;
diff --git a/npc/pre-re/quests/collection/quest_coco.txt b/npc/pre-re/quests/collection/quest_coco.txt
index 7ba4cab02..541259954 100644
--- a/npc/pre-re/quests/collection/quest_coco.txt
+++ b/npc/pre-re/quests/collection/quest_coco.txt
@@ -13,8 +13,8 @@
//============================================================
mjolnir_01,293,20,3 script Nutters#Coco_Hunt 4_M_YOYOROGUE,{
- if (checkquest(60113) != -1) {
- if (checkquest(60113,HUNTING) != 2 ) {
+ if (questprogress(60113)) {
+ if (questprogress(60113,HUNTING) != 2) {
mes "[Nutters]";
mes "Have you finished hunting the 50 Cocos?";
next;
@@ -53,8 +53,8 @@ mjolnir_01,293,20,3 script Nutters#Coco_Hunt 4_M_YOYOROGUE,{
close;
}
}
- if (checkquest(60114) != -1) {
- if (checkquest(60114,HUNTING) != 2 ) {
+ if (questprogress(60114)) {
+ if (questprogress(60114,HUNTING) != 2) {
mes "[Nutters]";
mes "Have you finished hunting the 50 Cocos?";
next;
@@ -94,8 +94,8 @@ mjolnir_01,293,20,3 script Nutters#Coco_Hunt 4_M_YOYOROGUE,{
close;
}
}
- if (checkquest(60115) != -1) {
- if (checkquest(60115,HUNTING) != 2 ) {
+ if (questprogress(60115)) {
+ if (questprogress(60115,HUNTING) != 2) {
mes "[Nutters]";
mes "Have you finished hunting the 150 Cocos?";
next;
diff --git a/npc/pre-re/quests/collection/quest_creamy.txt b/npc/pre-re/quests/collection/quest_creamy.txt
index ecdb6b0fb..7de8c7cf9 100644
--- a/npc/pre-re/quests/collection/quest_creamy.txt
+++ b/npc/pre-re/quests/collection/quest_creamy.txt
@@ -13,8 +13,8 @@
//============================================================
prt_fild04,356,148,3 script Laertes#Creamy_Hunt 4_M_NFMAN,{
- if (checkquest(60122) != -1) {
- if (checkquest(60122,HUNTING) != 2 ) {
+ if (questprogress(60122)) {
+ if (questprogress(60122,HUNTING) != 2) {
mes "[Laertes]";
mes "Have you finished hunting the 50 Creamys?";
next;
@@ -53,8 +53,8 @@ prt_fild04,356,148,3 script Laertes#Creamy_Hunt 4_M_NFMAN,{
close;
}
}
- if (checkquest(60123) != -1) {
- if (checkquest(60123,HUNTING) != 2 ) {
+ if (questprogress(60123)) {
+ if (questprogress(60123,HUNTING) != 2) {
mes "[Laertes]";
mes "Have you finished hunting the 50 Creamys?";
next;
@@ -94,8 +94,8 @@ prt_fild04,356,148,3 script Laertes#Creamy_Hunt 4_M_NFMAN,{
close;
}
}
- if (checkquest(60124) != -1) {
- if (checkquest(60124,HUNTING) != 2 ) {
+ if (questprogress(60124)) {
+ if (questprogress(60124,HUNTING) != 2) {
mes "[Laertes]";
mes "Have you finished hunting the 150 Creamys?";
next;
diff --git a/npc/pre-re/quests/collection/quest_demonpungus.txt b/npc/pre-re/quests/collection/quest_demonpungus.txt
index 242e7bca2..d72e3f816 100644
--- a/npc/pre-re/quests/collection/quest_demonpungus.txt
+++ b/npc/pre-re/quests/collection/quest_demonpungus.txt
@@ -13,8 +13,8 @@
//============================================================
ein_fild01,43,249,0 script Local Villager#hunt 4_M_HUMAN_01,{
- if (checkquest(60125) != -1) {
- if (checkquest(60125,HUNTING) != 2 ) {
+ if (questprogress(60125)) {
+ if (questprogress(60125,HUNTING) != 2) {
mes "[Local Villager]";
mes "Have you finished hunting the 50 Demon Pungus?";
next;
@@ -53,8 +53,8 @@ ein_fild01,43,249,0 script Local Villager#hunt 4_M_HUMAN_01,{
close;
}
}
- if (checkquest(60126) != -1) {
- if (checkquest(60126,HUNTING) != 2 ) {
+ if (questprogress(60126)) {
+ if (questprogress(60126,HUNTING) != 2) {
mes "[Local Villager]";
mes "Have you finished hunting the 50 Demon Pungus?";
next;
@@ -94,8 +94,8 @@ ein_fild01,43,249,0 script Local Villager#hunt 4_M_HUMAN_01,{
close;
}
}
- if (checkquest(60127) != -1) {
- if (checkquest(60127,HUNTING) != 2 ) {
+ if (questprogress(60127)) {
+ if (questprogress(60127,HUNTING) != 2) {
mes "[Local Villager]";
mes "Have you finished hunting the 150 Demon Pungus?";
next;
diff --git a/npc/pre-re/quests/collection/quest_disguiseloliruri.txt b/npc/pre-re/quests/collection/quest_disguiseloliruri.txt
index 35d48aef7..8ff2ebce3 100644
--- a/npc/pre-re/quests/collection/quest_disguiseloliruri.txt
+++ b/npc/pre-re/quests/collection/quest_disguiseloliruri.txt
@@ -13,8 +13,8 @@
nif_fild02,332,327,4 script Deadman 4_M_NFDEADMAN,{
- if (checkquest(60173) != -1) {
- if (checkquest(60173,HUNTING) != 2 ) {
+ if (questprogress(60173)) {
+ if (questprogress(60173,HUNTING) != 2) {
mes "[Deadman]";
mes "Have you finished hunting the 50 Disguise?";
next;
@@ -51,8 +51,8 @@ nif_fild02,332,327,4 script Deadman 4_M_NFDEADMAN,{
erasequest 60173;
close;
}
- if (checkquest(60176) != -1) {
- if (checkquest(60176,HUNTING) != 2 ) {
+ if (questprogress(60176)) {
+ if (questprogress(60176,HUNTING) != 2) {
mes "[Deadman]";
mes "Have you finished hunting the 50 Loli Ruri?";
next;
diff --git a/npc/pre-re/quests/collection/quest_dokebi.txt b/npc/pre-re/quests/collection/quest_dokebi.txt
index 62f0ed45d..898c353cb 100644
--- a/npc/pre-re/quests/collection/quest_dokebi.txt
+++ b/npc/pre-re/quests/collection/quest_dokebi.txt
@@ -13,8 +13,8 @@
//============================================================
pay_fild10,108,357,5 script Li#Dokebi_Hunt 4_F_01,{
- if (checkquest(60128) != -1) {
- if (checkquest(60128,HUNTING) != 2 ) {
+ if (questprogress(60128)) {
+ if (questprogress(60128,HUNTING) != 2) {
mes "[Li]";
mes "Have you finished hunting the 50 Dokebis?";
next;
@@ -53,8 +53,8 @@ pay_fild10,108,357,5 script Li#Dokebi_Hunt 4_F_01,{
close;
}
}
- if (checkquest(60129) != -1) {
- if (checkquest(60129,HUNTING) != 2 ) {
+ if (questprogress(60129)) {
+ if (questprogress(60129,HUNTING) != 2) {
mes "[Li]";
mes "Have you finished hunting the 50 Dokebis?";
next;
@@ -94,8 +94,8 @@ pay_fild10,108,357,5 script Li#Dokebi_Hunt 4_F_01,{
close;
}
}
- if (checkquest(60130) != -1) {
- if (checkquest(60130,HUNTING) != 2 ) {
+ if (questprogress(60130)) {
+ if (questprogress(60130,HUNTING) != 2) {
mes "[Li]";
mes "Have you finished hunting the 150 Dokebis?";
next;
diff --git a/npc/pre-re/quests/collection/quest_dryad.txt b/npc/pre-re/quests/collection/quest_dryad.txt
index 552a1096f..1b14307de 100644
--- a/npc/pre-re/quests/collection/quest_dryad.txt
+++ b/npc/pre-re/quests/collection/quest_dryad.txt
@@ -13,8 +13,8 @@
//============================================================
um_fild01,34,281,5 script Lilla#Dryad_Hunt 4_F_07,{
- if (checkquest(60131) != -1) {
- if (checkquest(60131,HUNTING) != 2 ) {
+ if (questprogress(60131)) {
+ if (questprogress(60131,HUNTING) != 2) {
mes "[Lilla]";
mes "Have you finished hunting the 50 Dryads?";
next;
@@ -53,8 +53,8 @@ um_fild01,34,281,5 script Lilla#Dryad_Hunt 4_F_07,{
close;
}
}
- if (checkquest(60132) != -1) {
- if (checkquest(60132,HUNTING) != 2 ) {
+ if (questprogress(60132)) {
+ if (questprogress(60132,HUNTING) != 2) {
mes "[Lilla]";
mes "Have you finished hunting the 50 Dryads?";
next;
@@ -94,8 +94,8 @@ um_fild01,34,281,5 script Lilla#Dryad_Hunt 4_F_07,{
close;
}
}
- if (checkquest(60133) != -1) {
- if (checkquest(60133,HUNTING) != 2 ) {
+ if (questprogress(60133)) {
+ if (questprogress(60133,HUNTING) != 2) {
mes "[Lilla]";
mes "Have you finished hunting the 150 Dryads?";
next;
diff --git a/npc/pre-re/quests/collection/quest_fabre.txt b/npc/pre-re/quests/collection/quest_fabre.txt
index bd11cf8ae..5de7e74fd 100644
--- a/npc/pre-re/quests/collection/quest_fabre.txt
+++ b/npc/pre-re/quests/collection/quest_fabre.txt
@@ -13,8 +13,8 @@
//============================================================
gef_fild07,321,193,4 script Langry#Fabre_Hunt 4_M_SAGE_A,{
- if (checkquest(60107) != -1) {
- if (checkquest(60107,HUNTING) != 2 ) {
+ if (questprogress(60107)) {
+ if (questprogress(60107,HUNTING) != 2) {
mes "[Langry]";
mes "Have you finished hunting the 50 Fabres?";
next;
@@ -53,8 +53,8 @@ gef_fild07,321,193,4 script Langry#Fabre_Hunt 4_M_SAGE_A,{
close;
}
}
- if (checkquest(60108) != -1) {
- if (checkquest(60108,HUNTING) != 2 ) {
+ if (questprogress(60108)) {
+ if (questprogress(60108,HUNTING) != 2) {
mes "[Langry]";
mes "Have you finished hunting the 50 Fabres?";
next;
@@ -94,8 +94,8 @@ gef_fild07,321,193,4 script Langry#Fabre_Hunt 4_M_SAGE_A,{
close;
}
}
- if (checkquest(60109) != -1) {
- if (checkquest(60109,HUNTING) != 2 ) {
+ if (questprogress(60109)) {
+ if (questprogress(60109,HUNTING) != 2) {
mes "[Langry]";
mes "Have you finished hunting the 150 Fabres?";
next;
diff --git a/npc/pre-re/quests/collection/quest_frilldora.txt b/npc/pre-re/quests/collection/quest_frilldora.txt
index 5c9321aa6..95ee22d3c 100644
--- a/npc/pre-re/quests/collection/quest_frilldora.txt
+++ b/npc/pre-re/quests/collection/quest_frilldora.txt
@@ -13,8 +13,8 @@
//============================================================
moc_fild17,66,273,5 script Lemly#Frilldora_Hunt 4_F_JOB_ASSASSIN,{
- if (checkquest(60134) != -1) {
- if (checkquest(60134,HUNTING) != 2 ) {
+ if (questprogress(60134)) {
+ if (questprogress(60134,HUNTING) != 2) {
mes "[Lemly]";
mes "Have you finished hunting the 50 Frilldora?";
next;
@@ -53,8 +53,8 @@ moc_fild17,66,273,5 script Lemly#Frilldora_Hunt 4_F_JOB_ASSASSIN,{
close;
}
}
- if (checkquest(60135) != -1) {
- if (checkquest(60135,HUNTING) != 2 ) {
+ if (questprogress(60135)) {
+ if (questprogress(60135,HUNTING) != 2) {
mes "[Lemly]";
mes "Have you finished hunting the 50 Frilldora?";
next;
@@ -94,8 +94,8 @@ moc_fild17,66,273,5 script Lemly#Frilldora_Hunt 4_F_JOB_ASSASSIN,{
close;
}
}
- if (checkquest(60136) != -1) {
- if (checkquest(60136,HUNTING) != 2 ) {
+ if (questprogress(60136)) {
+ if (questprogress(60136,HUNTING) != 2) {
mes "[Lemly]";
mes "Have you finished hunting the 150 Frilldora?";
next;
diff --git a/npc/pre-re/quests/collection/quest_goat.txt b/npc/pre-re/quests/collection/quest_goat.txt
index 292a38459..ee5c33f54 100644
--- a/npc/pre-re/quests/collection/quest_goat.txt
+++ b/npc/pre-re/quests/collection/quest_goat.txt
@@ -13,8 +13,8 @@
//============================================================
ein_fild06,82,171,0 script Vegetable Farmer#Goat 4_F_SHABBY,{
- if (checkquest(60137) != -1) {
- if (checkquest(60137,HUNTING) != 2 ) {
+ if (questprogress(60137)) {
+ if (questprogress(60137,HUNTING) != 2) {
mes "[Vegetable Farmer]";
mes "Have you finished hunting the 50 Goats?";
next;
@@ -53,8 +53,8 @@ ein_fild06,82,171,0 script Vegetable Farmer#Goat 4_F_SHABBY,{
close;
}
}
- if (checkquest(60138) != -1) {
- if (checkquest(60138,HUNTING) != 2) {
+ if (questprogress(60138)) {
+ if (questprogress(60138,HUNTING) != 2) {
mes "[Vegetable Farmer]";
mes "Have you finished hunting the 100 Goats?";
next;
@@ -94,8 +94,8 @@ ein_fild06,82,171,0 script Vegetable Farmer#Goat 4_F_SHABBY,{
close;
}
}
- if (checkquest(60139) != -1) {
- if (checkquest(60139,HUNTING) != 2) {
+ if (questprogress(60139)) {
+ if (questprogress(60139,HUNTING) != 2) {
mes "[Vegetable Farmer]";
mes "Have you finished hunting the 150 Goats?";
next;
diff --git a/npc/pre-re/quests/collection/quest_golem.txt b/npc/pre-re/quests/collection/quest_golem.txt
index 2c927ea40..8ad2d47b2 100644
--- a/npc/pre-re/quests/collection/quest_golem.txt
+++ b/npc/pre-re/quests/collection/quest_golem.txt
@@ -13,8 +13,8 @@
//============================================================
moc_fild11,57,138,0 script Private Jeremy#hunt 4_M_MOC_SOLDIER,{
- if (checkquest(60140) != -1) {
- if (checkquest(60140,HUNTING) != 2 ) {
+ if (questprogress(60140)) {
+ if (questprogress(60140,HUNTING) != 2) {
mes "[Private Jeremy]";
mes "Have you finished hunting the 50 Golems?";
next;
@@ -53,8 +53,8 @@ moc_fild11,57,138,0 script Private Jeremy#hunt 4_M_MOC_SOLDIER,{
close;
}
}
- if (checkquest(60141) != -1) {
- if (checkquest(60141,HUNTING) != 2 ) {
+ if (questprogress(60141)) {
+ if (questprogress(60141,HUNTING) != 2) {
mes "[Private Jeremy]";
mes "Have you finished hunting the 50 Golems?";
next;
@@ -94,8 +94,8 @@ moc_fild11,57,138,0 script Private Jeremy#hunt 4_M_MOC_SOLDIER,{
close;
}
}
- if (checkquest(60142) != -1) {
- if (checkquest(60142,HUNTING) != 2 ) {
+ if (questprogress(60142)) {
+ if (questprogress(60142,HUNTING) != 2) {
mes "[Private Jeremy]";
mes "Have you finished hunting the 150 Golems?";
next;
diff --git a/npc/pre-re/quests/collection/quest_hode.txt b/npc/pre-re/quests/collection/quest_hode.txt
index c534448d4..050387859 100644
--- a/npc/pre-re/quests/collection/quest_hode.txt
+++ b/npc/pre-re/quests/collection/quest_hode.txt
@@ -13,8 +13,8 @@
//============================================================
moc_fild17,208,346,5 script Shone#Hode_Hunt 4_M_MOC_SOLDIER,{
- if (checkquest(60104) != -1) {
- if (checkquest(60104,HUNTING) != 2 ) {
+ if (questprogress(60104)) {
+ if (questprogress(60104,HUNTING) != 2) {
mes "[Shone]";
mes "Have you finished hunting the 50 Hodes?";
next;
@@ -53,8 +53,8 @@ moc_fild17,208,346,5 script Shone#Hode_Hunt 4_M_MOC_SOLDIER,{
close;
}
}
- if (checkquest(60105) != -1) {
- if (checkquest(60105,HUNTING) != 2 ) {
+ if (questprogress(60105)) {
+ if (questprogress(60105,HUNTING) != 2) {
mes "[Shone]";
mes "Have you finished hunting the 50 Hodes?";
next;
@@ -94,8 +94,8 @@ moc_fild17,208,346,5 script Shone#Hode_Hunt 4_M_MOC_SOLDIER,{
close;
}
}
- if (checkquest(60106) != -1) {
- if (checkquest(60106,HUNTING) != 2 ) {
+ if (questprogress(60106)) {
+ if (questprogress(60106,HUNTING) != 2) {
mes "[Shone]";
mes "Have you finished hunting the 150 Hodes?";
next;
diff --git a/npc/pre-re/quests/collection/quest_leafcat.txt b/npc/pre-re/quests/collection/quest_leafcat.txt
index 185ff2067..04b816322 100644
--- a/npc/pre-re/quests/collection/quest_leafcat.txt
+++ b/npc/pre-re/quests/collection/quest_leafcat.txt
@@ -13,8 +13,8 @@
//============================================================
ayo_fild01,44,241,5 script Lella#LeafCat_Hunt 4_F_YUNYANG,{
- if (checkquest(60143) != -1) {
- if (checkquest(60143,HUNTING) != 2 ) {
+ if (questprogress(60143)) {
+ if (questprogress(60143,HUNTING) != 2) {
mes "[Lella]";
mes "Have you finished hunting the 50 Leaf Cats?";
next;
@@ -53,8 +53,8 @@ ayo_fild01,44,241,5 script Lella#LeafCat_Hunt 4_F_YUNYANG,{
close;
}
}
- if (checkquest(60144) != -1) {
- if (checkquest(60144,HUNTING) != 2 ) {
+ if (questprogress(60144)) {
+ if (questprogress(60144,HUNTING) != 2) {
mes "[Lella]";
mes "Have you finished hunting the 50 Leaf Cats?";
next;
@@ -94,8 +94,8 @@ ayo_fild01,44,241,5 script Lella#LeafCat_Hunt 4_F_YUNYANG,{
close;
}
}
- if (checkquest(60145) != -1) {
- if (checkquest(60145,HUNTING) != 2 ) {
+ if (questprogress(60145)) {
+ if (questprogress(60145,HUNTING) != 2) {
mes "[Lella]";
mes "Have you finished hunting the 150 Leaf Cats?";
next;
diff --git a/npc/pre-re/quests/collection/quest_mantis.txt b/npc/pre-re/quests/collection/quest_mantis.txt
index 3eb18ca4f..622f49538 100644
--- a/npc/pre-re/quests/collection/quest_mantis.txt
+++ b/npc/pre-re/quests/collection/quest_mantis.txt
@@ -13,8 +13,8 @@
lou_fild01,240,354,4 script Mantis Researcher 4_M_OILMAN,{
- if (checkquest(60179) != -1) {
- if (checkquest(60179,HUNTING) != 2 ) {
+ if (questprogress(60179)) {
+ if (questprogress(60179,HUNTING) != 2) {
mes "[Mantis Researcher]";
mes "Have you finished hunting the 50 Mantis?";
next;
diff --git a/npc/pre-re/quests/collection/quest_pecopeco.txt b/npc/pre-re/quests/collection/quest_pecopeco.txt
index 3460320ce..60f888f00 100644
--- a/npc/pre-re/quests/collection/quest_pecopeco.txt
+++ b/npc/pre-re/quests/collection/quest_pecopeco.txt
@@ -13,8 +13,8 @@
//============================================================
moc_fild02,74,329,3 script Gregor#PecoPeco_Hunt 4W_M_01,{
- if (checkquest(60101) != -1) {
- if (checkquest(60101,HUNTING) != 2 ) {
+ if (questprogress(60101)) {
+ if (questprogress(60101,HUNTING) != 2) {
mes "[Gregor]";
mes "Have you finished hunting the 50 Peco Pecos?";
next;
@@ -54,8 +54,8 @@ moc_fild02,74,329,3 script Gregor#PecoPeco_Hunt 4W_M_01,{
close;
}
}
- if (checkquest(60102) != -1) {
- if (checkquest(60102,HUNTING) != 2 ) {
+ if (questprogress(60102)) {
+ if (questprogress(60102,HUNTING) != 2) {
mes "[Gregor]";
mes "Have you finished hunting the 50 Peco Pecos?";
next;
@@ -96,8 +96,8 @@ moc_fild02,74,329,3 script Gregor#PecoPeco_Hunt 4W_M_01,{
close;
}
}
- if (checkquest(60103) != -1) {
- if (checkquest(60103,HUNTING) != 2 ) {
+ if (questprogress(60103)) {
+ if (questprogress(60103,HUNTING) != 2) {
mes "[Gregor]";
mes "Have you finished hunting the 150 Peco Pecos?";
next;
diff --git a/npc/pre-re/quests/collection/quest_pupa.txt b/npc/pre-re/quests/collection/quest_pupa.txt
index 64aafe42f..ec38c275a 100644
--- a/npc/pre-re/quests/collection/quest_pupa.txt
+++ b/npc/pre-re/quests/collection/quest_pupa.txt
@@ -13,8 +13,8 @@
//============================================================
gef_fild04,191,54,3 script Halgus#Pupa_Hunt 2_F_MAGICMASTER,{
- if (checkquest(60110) != -1) {
- if (checkquest(60110,HUNTING) != 2 ) {
+ if (questprogress(60110)) {
+ if (questprogress(60110,HUNTING) != 2) {
mes "[Halgus]";
mes "Have you gotten rid of the Pupa?";
next;
@@ -54,8 +54,8 @@ gef_fild04,191,54,3 script Halgus#Pupa_Hunt 2_F_MAGICMASTER,{
close;
}
}
- if (checkquest(60111) != -1) {
- if (checkquest(60111,HUNTING) != 2 ) {
+ if (questprogress(60111)) {
+ if (questprogress(60111,HUNTING) != 2) {
mes "[Halgus]";
mes "Have you gotten rid of the Pupa?";
next;
@@ -96,8 +96,8 @@ gef_fild04,191,54,3 script Halgus#Pupa_Hunt 2_F_MAGICMASTER,{
close;
}
}
- if (checkquest(60112) != -1) {
- if (checkquest(60112,HUNTING) != 2 ) {
+ if (questprogress(60112)) {
+ if (questprogress(60112,HUNTING) != 2) {
mes "[Halgus]";
mes "Have you gotten rid of the Pupa?";
next;
diff --git a/npc/pre-re/quests/collection/quest_zhupolong.txt b/npc/pre-re/quests/collection/quest_zhupolong.txt
index a167ec3e5..3d908c398 100644
--- a/npc/pre-re/quests/collection/quest_zhupolong.txt
+++ b/npc/pre-re/quests/collection/quest_zhupolong.txt
@@ -13,8 +13,8 @@
lou_dun02,161,264,4 script Dragon Hunter 4_M_JOB_HUNTER,{
- if (checkquest(60182) != -1) {
- if (checkquest(60182,HUNTING) != 2 ) {
+ if (questprogress(60182)) {
+ if (questprogress(60182,HUNTING) != 2) {
mes "[Dragon Hunter]";
mes "Have you finished hunting the 50 Zhu Po Long?";
next;
diff --git a/npc/pre-re/warps/fields/morroc_fild.txt b/npc/pre-re/warps/fields/morroc_fild.txt
index c79538814..b46742e4a 100644
--- a/npc/pre-re/warps/fields/morroc_fild.txt
+++ b/npc/pre-re/warps/fields/morroc_fild.txt
@@ -41,7 +41,7 @@ moc_fild03,70,341,0 warp mocf04-1 5,2,moc_fild02,332,23
//moc_fild04,14,98,0 warp mocf07 1,11,moc_fild05,378,119
//moc_fild04,175,18,0 warp mocf08 3,2,moc_fild08,170,380
//moc_fild04,19,206,0 warp mocf09 3,15,moc_fild05,373,208
-//moc_fild04,219,327,0 script mocf016 WARPNPC,3,4,{ set @anthell,0; warp "anthell01",35,262; }
+//moc_fild04,219,327,0 script mocf016 WARPNPC,3,4,{ @anthell = 0; warp "anthell01",35,262; }
//moc_fild04,292,381,0 warp mocf01-2 10,1,moc_fild01,76,25
//moc_fild04,314,381,0 warp mocf01-3 10,1,moc_fild01,76,25
//moc_fild04,336,381,0 warp mocf01-4 10,1,moc_fild01,76,25
@@ -94,7 +94,7 @@ moc_fild13,308,49,0 warp mocf06-1 2,4,moc_fild03,20,37
//moc_fild14,196,382,0 warp mocf16-1 4,2,moc_fild08,204,19
//moc_fild15,104,16,0 warp mocf26 9,2,moc_fild16,125,380
//moc_fild15,158,363,0 warp mocf18-1 6,2,moc_fild09,126,23
-//moc_fild15,258,253,0 script mocf017 WARPNPC,3,3,{ set @anthell,1; warp "anthell01",35,262; }
+//moc_fild15,258,253,0 script mocf017 WARPNPC,3,3,{ @anthell = 1; warp "anthell01",35,262; }
//moc_fild15,348,18,0 warp mocf27 5,2,moc_fild16,334,379
//moc_fild15,367,276,0 warp mocf25-1 2,4,moc_fild14,19,278
//moc_fild15,38,105,0 warp mocf23-1 2,4,moc_fild11,376,197
diff --git a/npc/quests/bard_quest.txt b/npc/quests/bard_quest.txt
index 508284350..477bc9c3e 100644
--- a/npc/quests/bard_quest.txt
+++ b/npc/quests/bard_quest.txt
@@ -28,8 +28,8 @@
//============================================================
geffen,132,38,3 script Bard#2 1_M_BARD,{
- if (BARD_Q > 5) set gef_bard_q,BARD_Q;
- set @name$,strcharinfo(0);
+ if (BARD_Q > 5) gef_bard_q = BARD_Q;
+ @name$ = strcharinfo(0);
if (gef_bard_q > 29) {
cutin "bard_eland02",2;
mes "[Errende]";
@@ -123,7 +123,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
specialeffect2 EF_RESURRECTION;
mes "^3355FFWhile listening to his song, you feel at ease, and your thoughts become clearer. You believe that you see the vision of an angel, and you gain some experience points.^000000";
- set gef_bard_q, gef_bard_q + 16; //30,31
+ gef_bard_q += 16; //30,31
if (checkre(3)) {
if (BaseLevel < 56) getexp 450,0;
else if ((BaseLevel > 55) && (BaseLevel < 61)) getexp 550,0;
@@ -196,7 +196,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "There you go. Now, you may go to Mr. Sketzi. Remember, you must";
mes "show him the Seal of Friendship.";
mes "Good luck, now~";
- set gef_bard_q,11;
+ gef_bard_q = 11;
goto L_End;
} else if (gef_bard_q == 20) {
@@ -239,7 +239,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "[Errende]";
mes "If you will let me, I will tell you of my travels. By your leave,";
mes "I will play a song that will help you forget your troubles.";
- set gef_bard_q,21;
+ gef_bard_q = 21;
callsub S_StorySong,2;
} else {
@@ -291,7 +291,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
- set gef_bard_q,22;
+ gef_bard_q = 22;
}
goto L_End;
@@ -332,7 +332,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
if(select("No, thanks.:I can, so stop crying.")==1) {
mes "[Errende]";
mes "Ah, I guess it was too much to ask of you. My apologies. Don't worry about it, I'll find out some other way.";
- set gef_bard_q,25;
+ gef_bard_q = 25;
} else {
mes "[Errende]";
@@ -345,7 +345,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I'll pay you back somehow!";
mes "Thank you for your trouble";
mes "in advance~";
- set gef_bard_q,24;
+ gef_bard_q = 24;
}
goto L_End;
@@ -378,7 +378,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "What was the line...?";
mes "How could I forget";
mes "the 8th love?";
- set gef_bard_q,26;
+ gef_bard_q = 26;
goto L_End;
}
@@ -400,7 +400,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "No love,";
mes "No hope";
mes "No....^000000";
- set .@random,rand(1,50);
+ .@random = rand(1,50);
next;
if (.@random > 27 && .@random < 37 ) {
@@ -418,7 +418,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "I promise to pay you back as best as I can! I'll wait for you here until you return!";
- set gef_bard_q,24;
+ gef_bard_q = 24;
} else {
cutin "bard_eland04",2;
mes "^3355FFYou ignore his";
@@ -554,7 +554,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
if(select("No, thanks.:I can, so stop crying.")==1) {
mes "[Errende]";
mes "Ah, I guess it was too much to ask of you. My apologies. Don't worry about it, I'll find out some other way.";
- set gef_bard_q,25;
+ gef_bard_q = 25;
} else {
mes "[Errende]";
mes "Are you serious?";
@@ -566,20 +566,20 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "I'll pay you back somehow!";
mes "Thank you for your trouble";
mes "in advance~";
- set gef_bard_q,24;
+ gef_bard_q = 24;
}
goto L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- set gef_bard_q,26;
+ gef_bard_q = 26;
goto L_End;
} else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- set gef_bard_q,26;
+ gef_bard_q = 26;
goto L_End;
} else if (.@inputstr$ == "Errende") {
@@ -589,7 +589,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "If I did, why would";
mes "I not know what this";
mes "song is about?";
- set gef_bard_q,26;
+ gef_bard_q = 26;
goto L_End;
} else {
@@ -602,7 +602,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "What was the line...?";
mes "How could I forget";
mes "the 8th love?";
- set gef_bard_q,26;
+ gef_bard_q = 26;
goto L_End;
}
@@ -651,7 +651,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
- set gef_bard_q,2;
+ gef_bard_q = 2;
}
goto L_End;
@@ -688,14 +688,14 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
if(select("No, thanks.:I can, so stop crying.")==1) {
mes "[Errende]";
mes "Ah, I guess it was too much to ask of you. My apologies. Don't worry about it, I'll find out some other way.";
- set gef_bard_q,5;
+ gef_bard_q = 5;
} else {
mes "[Errende]";
mes "Are you serious? Oh, thank you so much! You must be an angel! An angel that truly understands the heart of a poet!";
next;
mes "[Errende]";
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
- set gef_bard_q,4;
+ gef_bard_q = 4;
}
goto L_End;
@@ -724,7 +724,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "What was the line...?";
mes "How could I forget";
mes "the 8th love?";
- set gef_bard_q,6;
+ gef_bard_q = 6;
goto L_End;
}
@@ -740,7 +740,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "Shattering his dreams...";
mes "No dreams, no heart, no love, no hope, no...^000000";
next;
- set .@random,rand(1,50);
+ .@random = rand(1,50);
if (.@random > 27 && .@random < 37) {
mes "^3355FFErrende continues to sing about his personal despair. He seems to be disappointed in your refusal to help him. Of course, you begin to feel sorry for him.^000000";
@@ -756,7 +756,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
next;
mes "[Errende]";
mes "I promise to pay you back as best as I can! I'll wait for you here until you return!";
- set gef_bard_q,4;
+ gef_bard_q = 4;
} else {
mes "^3355FFYou ignore his";
mes "heart wrenching song.";
@@ -887,35 +887,35 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
if(select("No, thanks.:I can, so stop crying.")==1) {
mes "[Errende]";
mes "Ah, I guess it was too much to ask of you. My apologies. Don't worry about it, I'll find out some other way.";
- set gef_bard_q,5;
+ gef_bard_q = 5;
} else {
mes "[Errende]";
mes "Are you serious? Oh, thank you so much! You must be an angel! An angel that truly understands the heart of a poet!";
next;
mes "[Errende]";
mes "I'll pay you back somehow! Thank you for your trouble in advance~";
- set gef_bard_q,4;
+ gef_bard_q = 4;
}
goto L_End;
} else if (.@inputstr$ == "Gunther") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- set gef_bard_q,6;
+ gef_bard_q = 6;
goto L_End;
}
else if (.@inputstr$ == "Gunther Doubleharmony") {
mes "[Errende]";
mes "Gunther? I don't think he would do this. He always puts lines in his songs like 'doubleharmony for you.' Plus, he's too silly for that.";
- set gef_bard_q,6;
+ gef_bard_q = 6;
goto L_End;
} else if (.@inputstr$ == "Errende") {
cutin "bard_eland04",2;
mes "[Errende]";
mes "Surely you jest! If I did, why would I not know what this song is about?";
- set gef_bard_q,6;
+ gef_bard_q = 6;
goto L_End;
} else {
@@ -927,7 +927,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "What was the line...?";
mes "How could I forget";
mes "the 8th love?";
- set gef_bard_q,6;
+ gef_bard_q = 6;
goto L_End;
}
@@ -981,7 +981,7 @@ geffen,132,38,3 script Bard#2 1_M_BARD,{
mes "[Errende]";
mes "If you will let me, I will tell you of my travels. By your leave,";
mes "I will play a song that will help you forget your troubles.";
- set gef_bard_q,1;
+ gef_bard_q = 1;
callsub S_StorySong,5;
} else {
@@ -1010,7 +1010,7 @@ S_StorySong:
if(select("News and rumors~:Cancel.")==1) {
cutin "bard_eland01",2;
mes "[Errende]";
- set .@random,rand(1,3);
+ .@random = rand(1,3);
if (.@random == 1) {
mes "Hmmm. Then shall we talk about this town, Geffen? Have you ever been to the Pub or the Inn here?";
next;
@@ -1132,7 +1132,7 @@ S_StorySong:
mes "Alright.";
mes "Here we go~";
- set .@random,rand(1,3);
+ .@random = rand(1,3);
if (.@random == 1)
soundeffect "ring_of_nibelungen.wav",0;
else if (.@random == 2)
@@ -1159,9 +1159,9 @@ S_StorySong:
next;
//for 3 and 4 variants, we need higher chance
if(getarg(0) == 3 || getarg(0) == 4)
- set .@random,rand(1,5);
+ .@random = rand(1,5);
else
- set .@random,rand(1,3);
+ .@random = rand(1,3);
if (.@random == 1) {
mes "^483D8BValhalla dazzles in gold";
mes "The fifth as we know";
@@ -1308,15 +1308,15 @@ S_StorySong:
next;
mes "[Errende]";
mes "I beseech you, if you meet him, please ask him of the 8th love and inform me of that lyric immediately~";
- if(gef_bard_q==1) set gef_bard_q,2;
- if(gef_bard_q==21) set gef_bard_q,22;
+ if(gef_bard_q==1) gef_bard_q = 2;
+ if(gef_bard_q==21) gef_bard_q = 22;
} else {
mes "[Errende]";
mes "*Sigh...*";
mes "I can't remember the 8th part of this song if my life depended on it. And it does~! *Wahhhh~*";
- if(gef_bard_q==1) set gef_bard_q,7;
- if(gef_bard_q==21) set gef_bard_q,27;
+ if(gef_bard_q==1) gef_bard_q = 7;
+ if(gef_bard_q==21) gef_bard_q = 27;
}
goto L_End;
@@ -1366,7 +1366,7 @@ S_StorySong:
}
morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
- set @name$,strcharinfo(0);
+ @name$ = strcharinfo(0);
if (gef_bard_q == 31) {
mes "[Kino Kitty]";
mes "Everything will be";
@@ -1382,7 +1382,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
switch(select("Tell me a story...:Your voice is...:No thanks, I appreciate it though.")) {
case 1:
- set .@random,rand(1,3);
+ .@random = rand(1,3);
if (.@random == 1) {
mes "[Kino Kitty]";
mes "Many legends have been passed down as songs. Stories of Gods and tales of brave warriors have all been written as songs.";
@@ -1500,7 +1500,6 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "Could that tree be Yggdrasil? Is it possible that I could meet her in the Niffheim, realm of the dead?";
close;
}
-
case 2:
mes "[Kino Kitty]";
mes "Oh... Well, I have a chronic disease so I can't speak out loud. I, um, even cough up a little blood. But aside from that, I'm perfectly healthy.";
@@ -1508,7 +1507,6 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "^3355FFA look of bitterness momentarily flashed across Kino Kitty's face. He then adjusted his guitar strings and began to play, humming a low tune.^000000";
soundeffect "humming.wav",0;
close;
-
case 3:
mes "[Kino Kitty]";
mes "Hmm...?";
@@ -1531,7 +1529,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
switch(select("Tell me a story, or sing something~:Your voice is...:No thanks. I appreciate it, though.")) {
case 1:
- set .@random,rand(1,3);
+ .@random = rand(1,3);
if (.@random == 1) {
mes "[Kino Kitty]";
mes "Ah...";
@@ -1644,7 +1642,6 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "Could that tree be Yggdrasil? Is it possible that I could meet her in the Niffheim, realm of the dead?";
close;
}
-
case 2:
mes "[Kino Kitty]";
mes "Oh... Well, I have a chronic disease so I can't speak out loud. I, um, even cough up a little blood. But aside from that, I'm perfectly healthy.";
@@ -1652,7 +1649,6 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "^3355FFA look of bitterness momentarily flashed across Kino Kitty's face. He then adjusted his guitar strings and began to play, humming a low tune.^000000";
soundeffect "humming.wav",0;
close;
-
case 3:
mes "[Kino Kitty]";
mes "Hmm...?";
@@ -1686,9 +1682,8 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "[Kino Kitty]";
mes "Ah, right.";
mes "You already have a seal marked by Errende. Oh well, if you don't want it, what can I do?";
- set gef_bard_q,13;
+ gef_bard_q = 13;
close;
-
case 2:
mes "[Kino Kitty]";
mes "Now, let's see...";
@@ -1728,10 +1723,9 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
next;
mes "^3355FFKino Kitty hands you a letter that is labeled 'Dear Errende'";
mes "on the front.^000000";
- set gef_bard_q,14;
+ gef_bard_q = 14;
close;
}
-
} else {
mes "[Kino Kitty]";
mes "Hmmm...?";
@@ -1825,12 +1819,10 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "[Kino Kitty]";
mes "^333333^333333*Cough Cough*^000000^000000";
mes "Wh-why do I have to suffer? Are my final days as a Bard on this earth soon approaching? I feel so pathetic...";
- set gef_bard_q,10;
+ gef_bard_q = 10;
close;
-
} else {
switch(select("Tell me a story.:Sing a song.:Nothing.")) {
-
case 1:
mes "[Kino Kitty]";
mes "A story? Mmmm...";
@@ -1861,12 +1853,10 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "...Hah...";
mes "I'm sorry, but I don't think I can speak for much longer.";
close;
-
case 2:
mes "[Kino Kitty]";
mes "Sorry, but I don't feel like singing at the moment. I hope you understand. I want to sing the last song of my life for Jorti...";
close;
-
case 3:
mes "[Kino Kitty]";
mes "You have no";
@@ -1938,7 +1928,6 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "^333333(Wasn't the little girl";
mes "scared by your outburst...?)^000000";
close;
-
} else {
if (gef_bard_q == 2) {
mes "[Mysterious Bard]";
@@ -1949,7 +1938,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
next;
mes "[Kino Kitty]";
mes "When next we meet, I will tell you what I have heard and experienced. That is, I am willing to spend my time with you.";
- set gef_bard_q,22;
+ gef_bard_q = 22;
close;
} else if (gef_bard_q == 3) {
@@ -1961,7 +1950,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
next;
mes "[Kino Kitty]";
mes "When next we meet, I will tell you what I have heard and experienced. That is, I am willing to spend my time with you.";
- set gef_bard_q,23;
+ gef_bard_q = 23;
close;
} else if (gef_bard_q == 4) {
@@ -2026,7 +2015,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
mes "[Kino Kitty]";
mes "^333333^333333*Cough Cough*^000000^000000";
mes "Wh-why do I have to suffer? Are my final days as a Bard on this earth soon approaching? I feel so pathetic...";
- set gef_bard_q,10;
+ gef_bard_q = 10;
close;
} else {
@@ -2047,7 +2036,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
next;
mes "[Kino Kitty]";
mes "When next we meet, I will tell you what I have heard and experienced. That is, I am willing to spend my time with you.";
- set gef_bard_q,20;
+ gef_bard_q = 20;
close;
} else {
@@ -2056,7 +2045,7 @@ morocc,134,111,3 script Bard#3 2_M_BARD_ORIENT,{
next;
mes "[Mysterious Bard]";
mes "My lady, fair as wisteria, whose beauty rivals that of the goddess Freya, let me introduce myself as the poor poet who wanders the earth, Kino Kitty. I hope you remember me.";
- set gef_bard_q,20;
+ gef_bard_q = 20;
close;
}
}
@@ -2169,7 +2158,7 @@ yuno_in01,172,100,3 script Old Man#bq1 4_M_05,{
mes "I hope you find";
mes "what you're";
mes "looking for.";
- set gef_bard_q,12;
+ gef_bard_q = 12;
close;
} else {
@@ -2181,7 +2170,6 @@ yuno_in01,172,100,3 script Old Man#bq1 4_M_05,{
mes "You're not looking for any medical or health related books, are you? I'm sorry, but we don't carry any of those.";
close;
}
-
} else {
mes "[Sketzi Bundin]";
mes "Welcome.";
@@ -2194,7 +2182,7 @@ yuno_in01,172,100,3 script Old Man#bq1 4_M_05,{
}
yuno_in01,163,101,0 script Old Book#bq HIDDEN_NPC,{
- set @name$,strcharinfo(0);
+ @name$ = strcharinfo(0);
if ((gef_bard_q > 11) && (gef_bard_q < 14)) {
if (!rand(5)) {
mes "^3355FFYou opened the book. There's a crisp brittleness to the pages, and the letters are faded and barely readable. You can't even identify the author's name.^000000";
@@ -2232,7 +2220,7 @@ yuno_in01,163,101,0 script Old Book#bq HIDDEN_NPC,{
mes "Love finally blossoms.";
next;
mes "^3355FFYou copy down the final lines, and keep them in a note inside your pocket.";
- set gef_bard_q,15;
+ gef_bard_q = 15;
close;
} else {
@@ -2297,7 +2285,6 @@ yuno_in01,173,96,0 script Luke's Songs Vol.1 HIDDEN_NPC,{
mes "[Luke's Note]";
mes "The lyrics, of course, are fictional, and are in no way anecdotal.";
close;
-
case 2:
mes "[Life is a Water Mill]";
mes "I chased after fame.";
@@ -2324,7 +2311,6 @@ yuno_in01,173,96,0 script Luke's Songs Vol.1 HIDDEN_NPC,{
mes "made to give comfort";
mes "to people in despair.";
close;
-
case 3:
mes "[We]";
mes "A good Bard sings";
@@ -2466,7 +2452,7 @@ yuno_in01,173,92,0 script Apple of Idun HIDDEN_NPC,{
}
payon,181,172,3 script Bard#4 1_M_BARD,{
- set @name$,strcharinfo(0);
+ @name$ = strcharinfo(0);
if (gef_bard_q == 2 || gef_bard_q == 22) {
mes "[Gunther Doubleharmony]";
mes "Hahaha~!";
@@ -2506,8 +2492,8 @@ payon,181,172,3 script Bard#4 1_M_BARD,{
next;
mes "[Gunther Doubleharmony]";
mes "There you go! Now you can go back to Minty Errende and show him your back and he will see what I wrote and then remember the lyrics!";
- if (gef_bard_q == 2) set gef_bard_q,3;
- if (gef_bard_q == 22) set gef_bard_q,23;
+ if (gef_bard_q == 2) gef_bard_q = 3;
+ if (gef_bard_q == 22) gef_bard_q = 23;
close;
} else {
@@ -2743,14 +2729,11 @@ payon,181,172,3 script Bard#4 1_M_BARD,{
mes "But it's okay because he was rescued by some Alchemist and came back to life, but you should go to Lutie if you wanna know more about him, okay?";
close;
}
-
case 3:
mes "[Gunther Doubleharmony]";
mes "You're gonna leave right now and not even listen to me a little bit? Okay, I'm cool, but promise you'll come back and listen to just one of my songs, okay?";
close;
-
}
-
} else {
mes "[" + @name$ + "]";
mes "...";
@@ -2915,7 +2898,7 @@ yuno_in04,33,119,3 script Adventurer#1 4_M_ROGUE,{
mes "Hello there~";
mes "My name is Pane.";
mes "May I ask yours?";
- set @name$,strcharinfo(0);
+ @name$ = strcharinfo(0);
input .@inputstr$;
next;
mes "[Energetic Young Man]";
diff --git a/npc/quests/bunnyband.txt b/npc/quests/bunnyband.txt
index 8eb89773a..557b434dd 100644
--- a/npc/quests/bunnyband.txt
+++ b/npc/quests/bunnyband.txt
@@ -32,7 +32,7 @@ alberta,26,229,0 script Kafra Employee#bunny 4_M_01,{
mes "all the items...";
next;
setarray .@items[0],949,100,706,1,722,1,2213,1;
- for(set .@i,0; .@i<8; set .@i,.@i+2)
+ for(.@i = 0; .@i<8; .@i += 2)
if (countitem(.@items[.@i]) < .@items[.@i+1]) {
mes "[Kafra Employee]";
mes "Ooh, I'm sorry";
@@ -49,7 +49,7 @@ alberta,26,229,0 script Kafra Employee#bunny 4_M_01,{
mes "Please wait a moment";
mes "while I put it together...";
next;
- for(set .@i,0; .@i<8; set .@i,.@i+2)
+ for(.@i = 0; .@i<8; .@i += 2)
if (countitem(.@items[.@i]) < .@items[.@i+1]) {
mes "[Kafra Employee]";
mes "Hm? I'm sorry,";
@@ -69,7 +69,7 @@ alberta,26,229,0 script Kafra Employee#bunny 4_M_01,{
mes "The perfect Bunny Band!";
mes "Well, I hope you enjoy it.";
getitem 2214,1; //Bunny_Band
- set BUNYBND,0;
+ BUNYBND = 0;
next;
mes "[Kafra Employee]";
mes "Thank you for";
@@ -93,7 +93,7 @@ alberta,26,229,0 script Kafra Employee#bunny 4_M_01,{
next;
switch(select("Join the Event:Event Information:Cancel")) {
case 1:
- set BUNYBND,1;
+ BUNYBND = 1;
mes "[Kafra Employee]";
mes "Great! Thanks for";
mes "participating! If you";
diff --git a/npc/quests/cooking_quest.txt b/npc/quests/cooking_quest.txt
index b3f381451..d98703a6f 100644
--- a/npc/quests/cooking_quest.txt
+++ b/npc/quests/cooking_quest.txt
@@ -316,9 +316,9 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "then, what shall we cook?";
next;
cutin "orleans_6",0;
- set .@cook_m1,rand(1,6);
+ .@cook_m1 = rand(1,6);
if (.@cook_m1 == 1) {
- set cooking_q,1;
+ cooking_q = 1;
mes "[Charles Orleans]";
mes "Ahhh, how about";
mes "'Fried Grasshopper Legs?'";
@@ -335,7 +335,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
goto L_End;
}
else if (.@cook_m1 == 2) {
- set cooking_q,2;
+ cooking_q = 2;
mes "[Charles Orleans]";
mes "Ah, I've got it!";
mes "Let's make ''Grape Juice";
@@ -352,7 +352,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
goto L_End;
}
else if (.@cook_m1 == 3) {
- set cooking_q,3;
+ cooking_q = 3;
mes "[Charles Orleans]";
mes "I've got it~";
mes "We can make";
@@ -368,7 +368,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
goto L_End;
}
else if (.@cook_m1 == 4) {
- set cooking_q,4;
+ cooking_q = 4;
mes "[Charles Orleans]";
mes "Mmm, why don't we";
mes "make ''Frog Egg and";
@@ -386,7 +386,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
goto L_End;
}
else if (.@cook_m1 == 5) {
- set cooking_q,5;
+ cooking_q = 5;
mes "[Charles Orleans]";
mes "Ah, I know what";
mes "would be perfect right";
@@ -402,7 +402,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "^4D4DFF1 Yellow Potion^000000.";
goto L_End;
}
- set cooking_q,6;
+ cooking_q = 6;
mes "[Charles Orleans]";
mes "Ooh, you know what";
mes "would be scrumptious?";
@@ -455,12 +455,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem 940,5; //Grasshopper's_Leg
delitem 7031,1; //Old_Frying_Pan
delitem 7457,1; //Cooking_Oil
- set cooking_q,7;
+ cooking_q = 7;
getitem 12041,1; //Str_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "Hurry and bring me";
@@ -512,12 +512,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
mes "and practice on your own now.";
delitem 514,3; //Grape
delitem 501,2; //Red_Potion
- set cooking_q,7;
+ cooking_q = 7;
getitem 12046,1; //Int_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "What are you doing?";
@@ -573,12 +573,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem 518,1; //Honey
delitem 514,2; //Grape
delitem 501,1; //Red_Potion
- set cooking_q,7;
+ cooking_q = 7;
getitem 12061,1; //Dex_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "What's taking you so";
@@ -634,12 +634,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem 577,1; //Grain
delitem 908,10; //Spawn
delitem 1024,1; //Chinese_ink
- set cooking_q,7;
+ cooking_q = 7;
getitem 12056,1; //Agi_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "What are you doing?";
@@ -694,12 +694,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem 960,10; //Nipper
delitem 511,10; //Green_Herb
delitem 503,1; //Yellow_Potion
- set cooking_q,7;
+ cooking_q = 7;
getitem 12051,1; //Vit_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "Shouldn't you be";
@@ -755,12 +755,12 @@ prt_castle,43,30,3 script Charles Orleans#cook 4_M_OILMAN,{
delitem 942,5; //Yoyo_Tail
delitem 7031,1; //Old_Frying_Pan
delitem 7457,1; //Cooking_Oil
- set cooking_q,7;
+ cooking_q = 7;
getitem 12066,1; //Luk_Dish01
goto L_End;
}
cutin "orleans_6",0;
- set .@talk_j,rand(1,2);
+ .@talk_j = rand(1,2);
if (.@talk_j == 1) {
mes "[Charles Orleans]";
mes "You better go prepare";
@@ -1690,7 +1690,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
mes "improve as you practice. ";
mes "Please take this cookbook";
mes "with the basic Level 1 recipes.";
- set cooking_q,8;
+ cooking_q = 8;
getitem 7472,1; //Cookbook01
next;
mes "[Madeleine Chu]";
@@ -1768,7 +1768,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
delitem 12056,1; //Agi_Dish01
delitem 12051,1; //Vit_Dish01
delitem 12066,1; //Luk_Dish01
- set cooking_q,9;
+ cooking_q = 9;
getitem 12111,1; //Food_Package
mes "[Madeleine Chu]";
mes "There you go, it's ready";
@@ -1865,7 +1865,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
mes "very ashamed of you...";
next;
delitem 7472,1; //Cookbook01
- set cooking_q,0;
+ cooking_q = 0;
mes "[Madeleine Chu]";
mes "First of all, I'd like";
mes "you to return my cookbook.";
@@ -1899,7 +1899,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
mes "skills are the most important";
mes "factor in quality cuisine.";
next;
- set cooking_q,11;
+ cooking_q = 11;
getitem 12126,10; //Indoor_Cooking_Kits
mes "[Madeleine Chu]";
mes "Please try these Indoor";
@@ -1982,7 +1982,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
mes "even small things. Still,";
mes "I guess it's understandable.";
next;
- set .@talk_j,rand(1,3);
+ .@talk_j = rand(1,3);
if (.@talk_j == 1) {
mes "[Madeleine Chu]";
mes "You know, when I first";
@@ -2059,8 +2059,8 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
close;
S_SellSets:
- set .@item_cost,getiteminfo(getarg(0),0);
- set .@item_weight,getiteminfo(getarg(0),6);
+ .@item_cost = getiteminfo(getarg(0),0);
+ .@item_weight = getiteminfo(getarg(0),6);
mes "[Madeleine Chu]";
mes "How many " + (getarg(0)==12125 ? "Outdoor":"Indoor");
mes "Cooking Kits would";
@@ -2089,8 +2089,8 @@ S_SellSets:
}
else break;
}
- set .@total_cost,.@sell * .@item_cost;
- set .@total_weight,.@sell * .@item_weight;
+ .@total_cost = .@sell * .@item_cost;
+ .@total_weight = .@sell * .@item_weight;
if (Zeny < .@total_cost) {
mes "[Madeleine Chu]";
mes "Oh, I'm sorry, but you";
@@ -2118,7 +2118,7 @@ S_SellSets:
}
prt_castle,45,28,3 script Child with Cat#cook 4_F_YUNYANG,{
- set .@nyu,rand(1,2);
+ .@nyu = rand(1,2);
if (.@nyu == 1) {
cutin "nyuang_1",2;
emotion e_what;
@@ -2288,7 +2288,7 @@ payon,209,127,3 script Servant 4_M_ORIENT01,{
mes "to tell me. In return, please have one of my humble Rice Cakes.";
next;
delitem 12111,1; //Food_Package
- set cooking_q,10;
+ cooking_q = 10;
getitem 555,1; //Rice_Cake
mes "[Chulsoo]";
mes "I better visit Prontera";
diff --git a/npc/quests/counteragent_mixture.txt b/npc/quests/counteragent_mixture.txt
index ed8152a06..20e1e8bed 100644
--- a/npc/quests/counteragent_mixture.txt
+++ b/npc/quests/counteragent_mixture.txt
@@ -86,7 +86,7 @@ alberta_in,133,55,3 script Louitz#cm 4_M_02,{
mes "like any liquids we're used to.";
close;
case 2:
- set molgenstain,1;
+ molgenstain = 1;
mes "[Merchant Louitz]";
mes "Hey, this is one of";
mes "those solutions that";
@@ -156,7 +156,7 @@ alberta_in,133,55,3 script Louitz#cm 4_M_02,{
mes "like any liquids we're used to.";
close;
case 2:
- set molgenstain,1;
+ molgenstain = 1;
mes "[Merchant Louitz]";
mes "Oh hey, this is that";
mes "Karvodailnirol that the";
@@ -226,7 +226,7 @@ alberta_in,133,55,3 script Louitz#cm 4_M_02,{
mes "like any liquids we're used to.";
close;
case 2:
- set molgenstain,1;
+ molgenstain = 1;
mes "[Merchant Louitz]";
mes "Oh hey, this is that";
mes "Detrimindexta that the";
@@ -348,7 +348,7 @@ geffen,181,114,3 script Aure Dupon#cm 4_KID01,{
mes "carried by the tides of destiny.";
close;
case 2:
- set molgenstain,2;
+ molgenstain = 2;
mes "[Aure Dupon]";
mes "Molgenstein...?";
mes "The man is obsessed";
@@ -536,8 +536,8 @@ geffen_in,141,140,3 script Molgenstein#cm 2_M_MOLGENSTEIN,{
}
}
if (molgenstain == 2) {
- set MISC_QUEST,MISC_QUEST | 4;
- set molgenstain,0;
+ MISC_QUEST |= 4;
+ molgenstain = 0;
mes "[Chemist Molgenstein]";
mes "Heeheeheehee.... welcome. Hehehehe.... heeheeheeheehee....";
next;
diff --git a/npc/quests/dandelion_request.txt b/npc/quests/dandelion_request.txt
index d733a374b..7952773a7 100644
--- a/npc/quests/dandelion_request.txt
+++ b/npc/quests/dandelion_request.txt
@@ -74,7 +74,7 @@ izlude,103,106,3 script Guildsman#1 1_M_02,3,3,{
mes "a letter of recommendation";
mes "to get you started on this";
mes "mission, alright?";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -113,7 +113,7 @@ izlude,103,106,3 script Guildsman#1 1_M_02,3,3,{
mes "You name it. This is gonna be";
mes "huge. Listen, if you're going";
mes "to help, then let me give you this letter of recommendation...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -153,7 +153,7 @@ izlude,103,106,3 script Guildsman#1 1_M_02,3,3,{
mes "if you plan to follow these";
mes "orders. I hope you take that";
mes "mission for those kids' sake...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -186,7 +186,7 @@ izlude,103,106,3 script Guildsman#1 1_M_02,3,3,{
mes "supposed to give you if you";
mes "plan on taking the mission.";
mes "For the sake of those missing kids, I really hope that you do.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -322,7 +322,7 @@ OnTouch:
mes "a letter of recommendation";
mes "to get you started on this";
mes "mission, alright?";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -361,7 +361,7 @@ OnTouch:
mes "You name it. This is gonna be";
mes "huge. Listen, if you're going";
mes "to help, then let me give you this letter of recommendation...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -401,7 +401,7 @@ OnTouch:
mes "if you plan to follow these";
mes "orders. I hope you take that";
mes "mission for those kids' sake...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -434,7 +434,7 @@ OnTouch:
mes "supposed to give you if you";
mes "plan on taking the mission.";
mes "For the sake of those missing kids, I really hope that you do.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -523,7 +523,7 @@ prontera,237,313,3 script Nun#moc 1_F_PRIEST,3,3,{
mes "will need the Bishop's";
mes "letter of recommendation,";
mes "so please take it now.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -629,7 +629,7 @@ OnTouch:
mes "will need the Bishop's";
mes "letter of recommendation,";
mes "so please take it now.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -724,7 +724,7 @@ alberta,129,59,3 script Guildsman#2 1_M_03,3,3,{
mes "letter of recommendation!";
mes " ";
mes "^71637DOh, right! Here, take this!^000000";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -760,7 +760,7 @@ alberta,129,59,3 script Guildsman#2 1_M_03,3,3,{
mes "from Morroc. If you want to";
mes "help them, you'll need this";
mes "letter of recommendation, okay?";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -788,7 +788,7 @@ alberta,129,59,3 script Guildsman#2 1_M_03,3,3,{
mes "a very difficult mission.";
mes "You should prepare yourself";
mes "if you plan to get involved...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -824,7 +824,7 @@ alberta,129,59,3 script Guildsman#2 1_M_03,3,3,{
mes "head over to Morroc as soon";
mes "as you can. If even the Assassin Guild needs help, I'm sure that";
mes "spells really big trouble...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1064,7 +1064,7 @@ OnTouch:
mes "letter of recommendation!";
mes " ";
mes "^71637DOh, right! Here, take this!^000000";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -1100,7 +1100,7 @@ OnTouch:
mes "from Morroc. If you want to";
mes "help them, you'll need this";
mes "letter of recommendation, okay?";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1128,7 +1128,7 @@ OnTouch:
mes "a very difficult mission.";
mes "You should prepare yourself";
mes "if you plan to get involved...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1164,7 +1164,7 @@ OnTouch:
mes "head over to Morroc as soon";
mes "as you can. If even the Assassin Guild needs help, I'm sure that";
mes "spells really big trouble...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1224,7 +1224,7 @@ geffen,123,109,3 script Academy Staff 2_M_SAGE_B,3,3,{
mes "assisting the Assassins";
mes "in this mission. Please take";
mes "this letter of recommendation.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Academy Staff]";
@@ -1316,7 +1316,7 @@ OnTouch:
mes "assisting the Assassins";
mes "in this mission. Please take";
mes "this letter of recommendation.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Academy Staff]";
@@ -1397,7 +1397,7 @@ morocc,155,56,3 script Miya 4_F_04,3,3,{
mes "the west, somewhere around";
mes "here in this city. Well, that's";
mes "all he told me, so I'll seeya~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1417,7 +1417,7 @@ morocc,155,56,3 script Miya 4_F_04,3,3,{
mes "we can. Here, take this letter";
mes "of recommendation and talk to";
mes "Jack, our contact west in this city. You better go right away...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1449,7 +1449,7 @@ morocc,155,56,3 script Miya 4_F_04,3,3,{
mes "this mission is pretty major.";
mes "We'll need all the help that";
mes "we can possibly get...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1562,7 +1562,7 @@ OnTouch:
mes "the west, somewhere around";
mes "here in this city. Well, that's";
mes "all he told me, so I'll seeya~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1582,7 +1582,7 @@ OnTouch:
mes "we can. Here, take this letter";
mes "of recommendation and talk to";
mes "Jack, our contact west in this city. You better go right away...";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1614,7 +1614,7 @@ OnTouch:
mes "this mission is pretty major.";
mes "We'll need all the help that";
mes "we can possibly get...";
- set mao_request,1;
+ mao_request = 1;
close;
}
}
@@ -1678,7 +1678,7 @@ payon,231,323,3 script Guildsman#3 1_M_ORIENT01,3,3,{
mes "assisting them, please take";
mes "this Letter of Recommendation";
mes "and bring it to the contact from the Assassin Guild in Morroc.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -1713,7 +1713,7 @@ payon,231,323,3 script Guildsman#3 1_M_ORIENT01,3,3,{
mes "Guild contact to the west";
mes "of the Oasis in Morroc.";
mes "Well, good luck, pal~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -1741,7 +1741,7 @@ payon,231,323,3 script Guildsman#3 1_M_ORIENT01,3,3,{
mes "Guild and a recommendation";
mes "that you help them. Yeah.";
mes "Here's the letter he wrote.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -1783,7 +1783,7 @@ payon,231,323,3 script Guildsman#3 1_M_ORIENT01,3,3,{
mes "this letter of recommendation.";
mes "I guess she thinks you'll do";
mes "the best job. So, um, congrats~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -1951,7 +1951,7 @@ OnTouch:
mes "assisting them, please take";
mes "this Letter of Recommendation";
mes "and bring it to the contact from the Assassin Guild in Morroc.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -1986,7 +1986,7 @@ OnTouch:
mes "Guild contact to the west";
mes "of the Oasis in Morroc.";
mes "Well, good luck, pal~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
close;
}
@@ -2014,7 +2014,7 @@ OnTouch:
mes "Guild and a recommendation";
mes "that you help them. Yeah.";
mes "Here's the letter he wrote.";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -2056,7 +2056,7 @@ OnTouch:
mes "this letter of recommendation.";
mes "I guess she thinks you'll do";
mes "the best job. So, um, congrats~";
- set mao_request,1;
+ mao_request = 1;
getitem 7416,1;
next;
mes "[Guildsman]";
@@ -2162,7 +2162,7 @@ OnTouch:
if(mao_request || Class == Job_Assassin || Class == Job_Assassin_Cross) warp "que_job01",9,94;
else
{
- set .@mao_pass,rand(1,3);
+ .@mao_pass = rand(1,3);
if(.@mao_pass == 2)
{
mes "[Jack]";
@@ -2203,7 +2203,6 @@ OnTouch:
mes "one drink at this joint.";
mes "Just drink at home, willya?";
close;
-
case 2:
mes "[Jack]";
mes "Hmm...";
@@ -2330,7 +2329,6 @@ OnTouch:
close2;
warp "que_job01",85,77;
end;
-
case 2:
mes "[Litheron]";
mes "Not the saavy type,";
@@ -2439,8 +2437,7 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
switch( select( "Tropical Sograt","Vermilion on the Beach","Do you have anything cheaper?" ) )
{
case 1:
- set .@maodrink,1;
-
+ .@maodrink = 1;
case 2:
if(checkweight(12112,1) != 1)
{
@@ -2499,7 +2496,6 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
if(.@maodrink) getitem 12112,1;
else getitem 12113,1;
close;
-
case 3:
mes "[Master]";
mes "What are you...?";
@@ -2510,7 +2506,6 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
mes "go someplace else.";
close;
}
-
case 2:
if(mao_request == 1)
{
@@ -2522,7 +2517,7 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
mes "Alright, just go inside. Hey,";
mes "but be careful. This won't be";
mes "easy like most assignments...";
- set mao_request,2;
+ mao_request = 2;
close;
}
mes "[Master]";
@@ -2557,7 +2552,7 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
mes "Hey, since when did";
mes "I become your doorman?!";
mes "Eh, ah well. You got it.";
- set mao_request,2;
+ mao_request = 2;
close;
}
mes "^3355FFYou forgot to bring your";
@@ -2659,7 +2654,6 @@ que_job01,82,95,3 script Bar Master 1_ETC_01,{
mes "order something to drink.";
close;
}
-
case 3:
mes "[Master]";
mes "...";
@@ -2710,7 +2704,6 @@ que_job01,49,49,5 script Tao 4_F_YUNYANG,{
mes "safe from people that";
mes "don't belong here, meow.";
close;
-
case 2:
mes "[Tao]";
mes "Meow, meow.";
@@ -2729,7 +2722,7 @@ OnTouch:
{
if(!$@maobar_room)
{
- set $@maobar_room,1;
+ $@maobar_room = 1;
donpcevent "#maobartimer1::OnEnter";
if(mao_request == 2 || mao_request == 28 || mao_request == 29 || mao_request == 126 || mao_request == 127)
{
@@ -2786,7 +2779,7 @@ OnEnter:
initnpctimer;
mapannounce "que_job01","You will now enter the Master Zone, Area 1.",1,0x70DBDB;
end;
-
+
OnStop:
mapannounce "que_job01","The security magic in the Master Zone, Area 1 is deactivated.",1,0x70DBDB;
donpcevent "#maobar6::OnInit";
@@ -2801,11 +2794,11 @@ OnStop:
donpcevent "#roombar1::OnInit";
stopnpctimer;
end;
-
+
OnTimer240000:
donpcevent "#maobar6::OnEnter";
end;
-
+
OnTimer245000:
donpcevent "#maobar6::OnInit";
donpcevent "Valdes#1::OnInit";
@@ -2817,7 +2810,7 @@ OnTimer245000:
donpcevent "Marjana#poison::OnInit";
donpcevent "#mao_table::OnInit";
end;
-
+
OnTimer250000:
mapannounce "que_job01","The security magic in the Master Zone, Area 1 is deactivated.",1,0x70DBDB;
donpcevent "#roombar1::OnInit";
@@ -2826,15 +2819,14 @@ OnTimer250000:
}
que_job01,12,13,1 script #maobar6 HIDDEN_WARP_NPC,1,1,{
-
OnInit:
disablenpc "#maobar7";
end;
-
+
OnEnter:
enablenpc "#maobar7";
end;
-
+
OnTouch:
warp "que_job01",52,50;
end;
@@ -2858,7 +2850,7 @@ OnTouch:
}
if(!$@maobar_room2)
{
- set $@maobar_room2,1;
+ $@maobar_room2 = 1;
donpcevent "#maobartimer2::OnEnter";
if(mao_request == 25)
{
@@ -2917,7 +2909,7 @@ OnEnter:
initnpctimer;
mapannounce "que_job01","Security Level in the Master Zone, Area 2 has activated.",1,0x70DBDB;
end;
-
+
OnStop:
mapannounce "que_job01","Security Level in the Master Zone, Area 2 deactivated.",1,0x70DBDB;
donpcevent "#maobar7::OnInit";
@@ -2930,12 +2922,12 @@ OnStop:
donpcevent "#roombar2::OnInit";
stopnpctimer;
end;
-
+
OnTimer240000:
donpcevent "#maobar7::OnEnter";
donpcevent "#maobar8::OnEnter";
end;
-
+
OnTimer245000:
donpcevent "#maobar7::OnInit";
donpcevent "#maobar8::OnInit";
@@ -2946,7 +2938,7 @@ OnTimer245000:
donpcevent "#mao_empty::OnInit";
donpcevent "#roombar2::OnInit";
end;
-
+
OnTimer250000:
mapannounce "que_job01","Security Level in the Master Zone, Area 2 deactivated.",1,0x70DBDB;
donpcevent "#roombar2::OnInit";
@@ -2959,11 +2951,11 @@ que_job01,80,17,1 script #maobar7 WARPNPC,1,1,{
OnInit:
disablenpc "#maobar7";
end;
-
+
OnEnter:
enablenpc "#maobar7";
end;
-
+
OnTouch:
warp "que_job01",52,50;
end;
@@ -2974,11 +2966,11 @@ que_job01,144,51,1 script #maobar8 WARPNPC,1,1,{
OnInit:
disablenpc "#maobar8";
end;
-
+
OnEnter:
enablenpc "#maobar8";
end;
-
+
OnTouch:
warp "que_job01",52,50;
end;
@@ -3108,7 +3100,7 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
mes "the Dandelion representative";
mes "in the pub. He'll brief you";
mes "further on your mission.";
- set mao_request,3;
+ mao_request = 3;
getitem 7417,1;
next;
cutin "",255;
@@ -3120,7 +3112,6 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
mes "That is all. Dismissed!";
close2;
break;
-
case 2:
mes "[Valdes]";
mes "Alright. Lin will be";
@@ -3144,7 +3135,7 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
mes "This document will prove to";
mes "him that you have been assigned";
mes "as his personal bodyguard.";
- set mao_request,103;
+ mao_request = 103;
getitem 7418,1;
close2;
break;
@@ -3274,7 +3265,7 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
delitem 7417,countitem(7417);
if(mao_request == 28) getexp 1050000,0;
else if(mao_request == 29) getexp 1280000,0;
- set mao_request,30;
+ mao_request = 30;
getitem 12107,1;
next;
mes "[Valdes]";
@@ -3415,7 +3406,7 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
delitem 7418,countitem(7418);
if(mao_request == 126) getexp 1050000,0;
else if(mao_request == 127) getexp 1280000,0;
- set mao_request,128;
+ mao_request = 128;
getitem 12106,1;
next;
mes "[Valdes]";
@@ -3494,7 +3485,7 @@ que_job01,16,21,5 script Valdes#1 1_M_JOBTESTER,{
OnInit:
disablenpc "Valdes#1";
end;
-
+
OnEnter:
enablenpc "Valdes#1";
end;
@@ -3505,7 +3496,7 @@ que_job01,17,11,3 script Valdes#2 1_M_JOBTESTER,{
OnInit:
disablenpc "Valdes#2";
end;
-
+
OnEnter:
disablenpc "Valdes#2";
end;
@@ -3516,7 +3507,7 @@ que_job01,142,56,5 script Valdes#3 1_M_JOBTESTER,{
OnInit:
disablenpc "Valdes#3";
end;
-
+
OnEnter:
disablenpc "Valdes#3";
end;
@@ -3583,7 +3574,7 @@ que_job01,19,18,3 script Lin#1 4_F_ACROSS,{
}
cutin "",255;
end;
-
+
OnInit:
disablenpc "Lin#1";
end;
@@ -3598,7 +3589,7 @@ que_job01,13,9,7 script Lin#2 4_F_ACROSS,{
OnInit:
disablenpc "Lin#2";
end;
-
+
OnEnter:
disablenpc "Lin#2";
end;
@@ -3645,7 +3636,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "against his forehead, and then";
mes "quickly mumbled something";
mes "before raising his head.^000000";
- set mao_request,104;
+ mao_request = 104;
close2;
}
else if(mao_request == 104)
@@ -3710,7 +3701,6 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "will go to the Juno Library to";
mes "find his research documents.";
break;
-
case 2:
mes "[" + strcharinfo(0) + "]";
mes "Won't they attack";
@@ -3778,7 +3768,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "help make your job a lot";
mes "easier. Okay then, good luck~";
mes "Good luck!";
- set mao_request,105;
+ mao_request = 105;
close2;
}
else if(mao_request == 105)
@@ -3826,7 +3816,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "bring them to him and";
mes "see what he wants us";
mes "to do for him next.";
- set mao_request,108;
+ mao_request = 108;
next;
cutin "mocseal_dan01.bmp",0;
mes "[R. Moore]";
@@ -3901,7 +3891,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "historian in Morroc about Morroc Satan and all that. There's";
mes "too much we don't know, and";
mes "I don't wanna take chances.";
- set mao_request,116;
+ mao_request = 116;
next;
cutin "mocseal_dan01.bmp",0;
mes "[R. Moore]";
@@ -4044,7 +4034,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "believe you, but we need some";
mes "time to consider your request";
mes "before we can go ahead with the investigation you're asking for...";
- set mao_request,119;
+ mao_request = 119;
close2;
}
else if(mao_request == 119)
@@ -4107,7 +4097,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "historical record that proves";
mes "that Satan Morroc really";
mes "existed in our world.";
- set mao_request,120;
+ mao_request = 120;
close2;
}
else if(mao_request == 120)
@@ -4126,7 +4116,7 @@ que_job01,84,17,3 script Lin#2-1 4_F_ACROSS,{
mes "we've collected so far, as well";
mes "as keep an eye on Mr. R. Moore.";
mes "Good luck, and be careful.";
- set mao_request,121;
+ mao_request = 121;
close2;
}
else if(mao_request == 121)
@@ -4190,7 +4180,7 @@ que_job01,79,15,1 script R 4_M_MASKMAN,{
mes "against his forehead, and then";
mes "quickly mumbled something";
mes "before raising his head.^000000";
- set mao_request,104;
+ mao_request = 104;
close2;
}
else if(mao_request == 104)
@@ -4264,7 +4254,7 @@ que_job01,79,15,1 script R 4_M_MASKMAN,{
mes "We need to protect you, but";
mes "we still want to help those";
mes "missing children if we can.";
- set mao_request,108;
+ mao_request = 108;
close2;
}
else if(mao_request == 108)
@@ -4326,7 +4316,7 @@ que_job01,79,15,1 script R 4_M_MASKMAN,{
mes "did not want me to repair";
mes "Morroc's elemental equilibrium.";
mes "At least, that's what I believe. ^FFFFFF ^000000";
- set mao_request,109;
+ mao_request = 109;
next;
mes "[R. Moore]";
mes "You can't possibly";
@@ -4543,7 +4533,7 @@ que_job01,79,15,1 script R 4_M_MASKMAN,{
mes "believe you, but we need some";
mes "time to consider your request";
mes "before we can go ahead with the investigation you're asking for...";
- set mao_request,119;
+ mao_request = 119;
close2;
}
else if(mao_request == 119)
@@ -4593,7 +4583,7 @@ que_job01,147,54,3 script Lin#3 4_F_ACROSS,{
OnInit:
disablenpc "Lin#3";
end;
-
+
OnEnter:
disablenpc "Lin#3";
end;
@@ -4663,7 +4653,7 @@ que_job01,13,17,5 script Kidd#1 4_M_ACROSS,{
OnInit:
disablenpc "Kidd#1";
end;
-
+
OnEnter:
enablenpc "Kidd#1";
end;
@@ -4674,7 +4664,7 @@ que_job01,12,8,7 script Kidd#2 4_M_ACROSS,{
OnInit:
disablenpc "Kidd#2";
end;
-
+
OnEnter:
disablenpc "Kidd#2";
end;
@@ -4685,7 +4675,7 @@ que_job01,148,54,3 script Kidd#3 4_M_ACROSS,{
OnInit:
disablenpc "Kidd#3";
end;
-
+
OnEnter:
disablenpc "Kidd#3";
end;
@@ -4783,7 +4773,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "from under his shirt, pressed";
mes "it to his forehead, and then";
mes "quickly mumbled some words.^000000";
- set mao_request,4;
+ mao_request = 4;
close2;
}
else if(mao_request == 4)
@@ -4827,7 +4817,6 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "and where he might be now.";
mes "Pretty good idea, huh?";
break;
-
case 2:
mes "[Kidd]";
mes "I know that Juno is pretty";
@@ -4845,7 +4834,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "be familiar with Raiyan's work";
mes "and could point us in the right";
mes "direction. Alright then, I'll meet up with you in the Juno Library.";
- set mao_request,5;
+ mao_request = 5;
close2;
}
else if(mao_request > 4 && mao_request < 8)
@@ -4884,7 +4873,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "Although he's probably";
mes "gone by now, we need to";
mes "follow through on this lead... If we're lucky, we'll catch Moore.";
- set mao_request,9;
+ mao_request = 9;
close2;
}
else if(mao_request == 9)
@@ -4909,7 +4898,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "probably be best for you to";
mes "investigate the pyramids west";
mes "of Morroc. If you happen to find anything, then meet me back here.";
- set mao_request,10;
+ mao_request = 10;
next;
cutin "mocseal_dan01.bmp",0;
mes "[Dandelion Member]";
@@ -4982,7 +4971,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "local historian and see what";
mes "I can learn about those crests";
mes "and Raiyan Moore's intentions.";
- set mao_request,12;
+ mao_request = 12;
close2;
}
else if(mao_request == 12)
@@ -5055,7 +5044,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "guessing something must";
mes "have happened when he";
mes "went to visit that historian.";
- set mao_request,17;
+ mao_request = 17;
close2;
}
else if(mao_request == 17)
@@ -5098,7 +5087,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "Alright, alright.";
mes "I'll try talking";
mes "to him for you...";
- set mao_request,18;
+ mao_request = 18;
close2;
}
else
@@ -5107,7 +5096,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "Alright, alright.";
mes "I'll try talking";
mes "to him for you...";
- set mao_request,18;
+ mao_request = 18;
close2;
}
}
@@ -5155,7 +5144,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "Coming right up.";
mes "Here you are, enjoy.";
mes "Take this.";
- set mao_request,20;
+ mao_request = 20;
getitem 12112,1;
next;
cutin "mocseal_kid01.bmp",2;
@@ -5220,7 +5209,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "truly exists. It might be";
mes "possible to do that by";
mes "offering a blood sacrifice.";
- set mao_request,21;
+ mao_request = 21;
next;
mes "[Kidd]";
mes "Then that would mean";
@@ -5264,7 +5253,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "you can find those kids, Raiyan";
mes "Moore, or concrete proof of";
mes "Satan Morroc's existence.";
- set mao_request,22;
+ mao_request = 22;
next;
mes "[Kidd]";
mes "If you're lucky enough to";
@@ -5327,7 +5316,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "Raiyan Moore now!";
mes "We're running out of";
mes "time! What'll we do?!";
- set mao_request,23;
+ mao_request = 23;
close2;
}
else
@@ -5341,7 +5330,6 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
close2;
}
break;
-
case 2:
cutin "mocseal_kid01.bmp",2;
mes "[Kidd]";
@@ -5428,9 +5416,8 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "a bad feeling about this!";
mes "We gotta go talk to our";
mes "commanding officer!";
- set mao_request,24;
+ mao_request = 24;
break;
-
case 2:
mes "[Kidd]";
mes "That's right! She's";
@@ -5439,7 +5426,7 @@ que_job01,91,83,3 script Kidd#hall 4_M_ACROSS,{
mes "How could we overlook this?!";
mes "Damn it, we need to talk to our";
mes "commanding officer right now!";
- set mao_request,24;
+ mao_request = 24;
break;
}
next;
@@ -5591,7 +5578,6 @@ que_job01,89,85,5 script Dandelion Member 4_M_MASKMAN,{
mes "can ever forgive ourselves.";
close2;
break;
-
case 2:
mes "[Dandelion Member]";
mes "You really haven't?";
@@ -5674,7 +5660,7 @@ que_job01,89,85,5 script Dandelion Member 4_M_MASKMAN,{
mes "from under his shirt, pressed";
mes "it to his forehead, and then";
mes "quickly mumbled some words.^000000";
- set mao_request,4;
+ mao_request = 4;
close2;
}
else if(mao_request == 4)
@@ -5797,7 +5783,7 @@ que_job01,89,85,5 script Dandelion Member 4_M_MASKMAN,{
mes "guessing something must";
mes "have happened when he";
mes "went to visit that historian.";
- set mao_request,17;
+ mao_request = 17;
close2;
}
else if(mao_request == 17)
@@ -5859,7 +5845,7 @@ que_job01,89,85,5 script Dandelion Member 4_M_MASKMAN,{
mes "Coming right up.";
mes "Here you are, enjoy.";
mes "Take this.";
- set mao_request,20;
+ mao_request = 20;
getitem 12112,1;
next;
cutin "mocseal_kid01.bmp",2;
@@ -6092,9 +6078,8 @@ yuno_in04,180,106,3 script Reading Girl 1_F_MERCHANT_01,{
mes "some historic documents";
mes "before he ran off. They're";
mes "all about history, so I couldn't really understand them at all...";
- set mao_request,6;
+ mao_request = 6;
close;
-
case 2:
mes "[Yunia]";
mes "Mm... I really don't";
@@ -6103,10 +6088,9 @@ yuno_in04,180,106,3 script Reading Girl 1_F_MERCHANT_01,{
mes "he was researching so that";
mes "they'll be ready when he";
mes "comes back to the library.";
- set mao_request,6;
+ mao_request = 6;
close;
}
-
case 2:
mes "[Yunia]";
mes "Oh... you know.";
@@ -6160,7 +6144,7 @@ yuno_in04,180,106,3 script Reading Girl 1_F_MERCHANT_01,{
mes "you try reading his notes";
mes "and his journal on his desk?";
mes "That might be really helpful.";
- set mao_request,7;
+ mao_request = 7;
close;
}
else if(mao_request == 7)
@@ -6223,9 +6207,8 @@ yuno_in04,180,106,3 script Reading Girl 1_F_MERCHANT_01,{
mes "that the documents you're";
mes "delivering are the ones";
mes "that he needs, am I right?";
- set mao_request,106;
+ mao_request = 106;
close;
-
case 2:
mes "[Yunia]";
mes "Oh... You know. Just this";
@@ -6280,7 +6263,7 @@ yuno_in04,180,106,3 script Reading Girl 1_F_MERCHANT_01,{
mes "Oh, and please give";
mes "my regards to Mr. Moore";
mes "when you see him, okay?";
- set mao_request,107;
+ mao_request = 107;
close;
}
else
@@ -6322,7 +6305,7 @@ yuno_in04,175,129,0 script Workbook#mao HIDDEN_NPC,{
{
if(!.mao_book)
{
- set .mao_book,.mao_book +1;
+ ++.mao_book;
donpcevent "#maobooktimer::OnEnter";
mes "^3355FFYou find a crumpled piece";
mes "of paper filled with scribbles.";
@@ -6386,7 +6369,7 @@ yuno_in04,175,129,0 script Workbook#mao HIDDEN_NPC,{
mes "gonna bring this part of";
mes "his journal with me. I'll";
mes "meet you back in Morroc.";
- set mao_request,8;
+ mao_request = 8;
close2;
cutin "mocseal_kid01.bmp",255;
donpcevent "Kidd#book::OnInit";
@@ -6422,7 +6405,7 @@ yuno_in04,175,129,0 script Workbook#mao HIDDEN_NPC,{
}
OnInit:
- set .mao_book,0;
+ .mao_book = 0;
end;
}
@@ -6432,11 +6415,11 @@ yuno_in04,174,130,5 script Kidd#book 4_M_ACROSS,{
mes "......";
mes ".........";
close;
-
+
OnInit:
disablenpc "Kidd#book";
end;
-
+
OnEnter:
enablenpc "Kidd#book";
end;
@@ -6447,11 +6430,11 @@ yuno_in04,1,1,1 script #maobooktimer -1,{
OnEnter:
initnpctimer;
end;
-
+
OnStop:
donpcevent "Workbook#mao::OnInit";
stopnpctimer;
-
+
OnTimer180000:
donpcevent "Workbook#mao::OnInit";
stopnpctimer;
@@ -6462,7 +6445,7 @@ que_job01,6,79,5 script Lin#stairs 4_F_ACROSS,{
OnInit:
disablenpc "Lin#stairs";
end;
-
+
OnEnter:
enablenpc "Lin#stairs";
end;
@@ -6499,7 +6482,7 @@ que_job01,8,77,1 script #linstairs HIDDEN_WARP_NPC,3,3,{
mes "that Mr. R isn't telling us the";
mes "truth for some reason, let";
mes "me know. I'll see you soon.";
- set mao_request,110;
+ mao_request = 110;
close2;
cutin "mocseal_rin01.bmp",255;
donpcevent "Lin#stairs::OnInit";
@@ -6548,7 +6531,7 @@ que_job01,8,77,1 script #linstairs HIDDEN_WARP_NPC,3,3,{
mes "Okay then, I'll see";
mes "you later. Remember,";
mes "the Morroc Inn, alright?";
- set mao_request,116;
+ mao_request = 116;
close2;
cutin "mocseal_rin01.bmp",255;
donpcevent "Lin#stairs::OnInit";
@@ -6605,7 +6588,7 @@ que_job01,8,77,1 script #linstairs HIDDEN_WARP_NPC,3,3,{
mes "missing from Morroc lately.";
mes "What'll be our next move?";
mes "I guess we'll talk to Mr. R.";
- set mao_request,118;
+ mao_request = 118;
next;
mes "[Lin]";
mes "The way things are going,";
@@ -6672,7 +6655,7 @@ que_job01,8,77,1 script #linstairs HIDDEN_WARP_NPC,3,3,{
mes "we might be the ones who'll";
mes "have to keep Satan Morroc";
mes "from returning to this world...";
- set mao_request,122;
+ mao_request = 122;
close2;
cutin "mocseal_rin01.bmp",255;
donpcevent "Lin#stairs::OnInit";
@@ -6708,7 +6691,7 @@ moc_fild10,281,148,1 script Upturned Spot#water HIDDEN_NPC,{
mes "this crest's Water element.^000000";
specialeffect EF_SPHERE;
delitem 996,1;
- set mao_request,15;
+ mao_request = 15;
next;
mes "[" + strcharinfo(0) + "]";
mes "Alright...";
@@ -6753,7 +6736,7 @@ moc_fild10,281,148,1 script Upturned Spot#water HIDDEN_NPC,{
mes "waves in the oasis.^000000";
specialeffect EF_BEGINSPELL2;
delitem 995,1;
- set mao_request,114;
+ mao_request = 114;
next;
mes "[" + strcharinfo(0) + "]";
mes "Alright...";
@@ -6799,7 +6782,7 @@ moc_fild19,21,33,1 script Unturned Spot#wind HIDDEN_NPC,{
mes "interested in. Well,";
mes "I better go inform Kidd";
mes "about what I found here.";
- set mao_request,11;
+ mao_request = 11;
close2;
}
else if(mao_request == 11)
@@ -6848,7 +6831,7 @@ moc_fild19,21,33,1 script Unturned Spot#wind HIDDEN_NPC,{
mes "Wind in this area to stabilize.^000000";
specialeffect EF_SPHERE;
delitem 997,1;
- set mao_request,13;
+ mao_request = 13;
next;
mes "[" + strcharinfo(0) + "]";
mes "Great, now that I'm done";
@@ -6934,7 +6917,7 @@ moc_fild19,21,33,1 script Unturned Spot#wind HIDDEN_NPC,{
mes "for. It looks like an artifact of the Wind element, but the wind";
mes "around here isn't as strong as it should be. I think I might need";
mes "to bring a ^4D4DFFRough Wind^000000 here...";
- set mao_request,111;
+ mao_request = 111;
close2;
}
else if(mao_request == 111)
@@ -6956,7 +6939,7 @@ moc_fild19,21,33,1 script Unturned Spot#wind HIDDEN_NPC,{
mes "the wind to blow stronger.^000000";
specialeffect EF_BEGINSPELL4;
delitem 996,1;
- set mao_request,112;
+ mao_request = 112;
next;
cutin "mocseal_wind01.bmp",2;
mes "[" + strcharinfo(0) + "]";
@@ -7024,7 +7007,7 @@ moc_fild12,280,36,1 script Unturned Spot#earth HIDDEN_NPC,{
cutin "mocseal_earth02.bmp",2;
specialeffect EF_SPHERE;
delitem 994,1;
- set mao_request,14;
+ mao_request = 14;
next;
mes "[" + strcharinfo(0) + "]";
mes "That was simple.";
@@ -7075,7 +7058,7 @@ moc_fild12,280,36,1 script Unturned Spot#earth HIDDEN_NPC,{
mes "towards the crest.^000000";
specialeffect EF_BEGINSPELL5;
delitem 997,1;
- set mao_request,113;
+ mao_request = 113;
next;
mes "[" + strcharinfo(0) + "]";
mes "Great, I think that actually";
@@ -7138,7 +7121,7 @@ moc_fild07,192,166,1 script Unturned Spot#fire HIDDEN_NPC,{
cutin "mocseal_fire02.bmp",2;
specialeffect EF_SPHERE;
delitem 995,1;
- set mao_request,16;
+ mao_request = 16;
next;
mes "[" + strcharinfo(0) + "]";
mes "It looks like my work";
@@ -7182,7 +7165,7 @@ moc_fild07,192,166,1 script Unturned Spot#fire HIDDEN_NPC,{
specialeffect EF_BEGINSPELL3;
cutin "mocseal_fire01.bmp",2;
delitem 994,1;
- set mao_request,115;
+ mao_request = 115;
next;
mes "[" + strcharinfo(0) + "]";
mes "Well, that's the";
@@ -7350,7 +7333,7 @@ morocc_in,46,125,5 script Assistant 4_F_NOVICE,{
mes "regulate this region's elements";
mes "to make it possible for people";
mes "to live here in the desert.";
- set mao_request,19;
+ mao_request = 19;
close;
}
else if(mao_request == 116)
@@ -7462,7 +7445,7 @@ morocc_in,46,125,5 script Assistant 4_F_NOVICE,{
mes "regulate this region's elements";
mes "to make it possible for people";
mes "to live here in the desert.";
- set mao_request,117;
+ mao_request = 117;
close;
}
else
@@ -7538,7 +7521,7 @@ OnTouch:
mes "too serious. Valdes,";
mes "wait, I'm coming with you!";
mes ""+ strcharinfo(0) +", come on, quickly!";
- set mao_request,25;
+ mao_request = 25;
close2;
donpcevent "Kidd#2::OnInit";
end;
@@ -7625,7 +7608,7 @@ OnTouch:
mes "If Satan Morroc really";
mes "exists, we can't let";
mes "him enter our world!";
- set mao_request,124;
+ mao_request = 124;
close2;
warp "que_job01",11,4;
end;
@@ -7634,7 +7617,7 @@ OnTouch:
OnInit:
disablenpc "#mao_table";
end;
-
+
OnEnter:
enablenpc "#mao_table";
end;
@@ -7653,14 +7636,14 @@ OnTouch:
mes "like Lin's voice...";
mes "Where are they?";
mes "Where have they gone?!";
- set mao_request,123;
+ mao_request = 123;
close;
}
OnInit:
disablenpc "#mao_empty";
end;
-
+
OnEnter:
enablenpc "#mao_empty";
end;
@@ -7725,7 +7708,7 @@ OnTouch:
mes "happening. Hurry,";
mes "the fate of the world";
mes "hangs in the balance!";
- set mao_request,26;
+ mao_request = 26;
close2;
warp "que_job01",144,61;
end;
@@ -7733,7 +7716,7 @@ OnTouch:
OnInit:
disablenpc "#Rabsent";
end;
-
+
OnEnter:
enablenpc "#Rabsent";
end;
@@ -7766,7 +7749,7 @@ moc_castle,40,20,3 script Man 4_M_DIEMAN,{
{
close2;
warp "que_job02",14,182;
- set $mao_gate1,1;
+ $mao_gate1 = 1;
end;
}
}
@@ -7784,15 +7767,15 @@ moc_castle,40,20,3 script Man 4_M_DIEMAN,{
{
close2;
warp "que_job03",14,182;
- set $mao_gate2,1;
+ $mao_gate2 = 1;
end;
}
}
close;
OnInit:
- set $mao_gate1,0;
- set $mao_gate2,0;
+ $mao_gate1 = 0;
+ $mao_gate2 = 0;
end;
}
@@ -7801,11 +7784,11 @@ que_job02,14,182,1 script #maogate1 HIDDEN_WARP_NPC,1,1,{
OnEnter:
enablenpc "#maogate1";
end;
-
+
OnStop:
disablenpc "#maogate1";
end;
-
+
OnTouch:
if (mao_request == 26 || mao_request == 27)
{
@@ -7819,7 +7802,7 @@ OnTouch:
mes "teleported outside.^000000";
close2;
warp "morocc",100,100;
- set $mao_gate1,0;
+ $mao_gate1 = 0;
}
end;
@@ -7863,7 +7846,7 @@ OnTimer596000:
OnTimer597000:
enablenpc "#maogate1";
- set $mao_gate1,0;
+ $mao_gate1 = 0;
stopnpctimer;
end;
}
@@ -7877,7 +7860,7 @@ OnInit:
OnEnter:
enablenpc "#maogate1_talk1";
end;
-
+
OnTouch:
mes "^333333Holy... ritual... of...";
mes "blood... I am proud...";
@@ -7918,7 +7901,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk2";
end;
-
+
OnTouch:
mes "...";
mes "......";
@@ -7964,7 +7947,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk3";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -8021,7 +8004,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk4";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -8073,7 +8056,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk5";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -8110,7 +8093,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk6";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -8183,7 +8166,7 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk7";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -8237,16 +8220,16 @@ OnStop:
OnEnter:
enablenpc "#maogate1_talk8";
end;
-
+
OnStop2:
stopnpctimer;
end;
-
+
OnTouch:
initnpctimer;
disablenpc "#maogate1_talk8";
end;
-
+
OnTimer1000:
mapannounce "que_job02","...Blood... is the currency... of the soul...",1,0x7B68EE;
end;
@@ -8370,7 +8353,7 @@ que_job02,66,85,5 script Dandelion Member#1_bt 4_M_MASKMAN,{
mes "in there and help him...";
close2;
emotion e_gasp,1;
- set mao_request,27;
+ mao_request = 27;
disablenpc "Dandelion Member#1_bt";
end;
}
@@ -8546,7 +8529,7 @@ OnTouch:
mes "Let me go!";
mes "I'm gonna chase";
mes "Moore myself!";
- set mao_request,28;
+ mao_request = 28;
close2;
donpcevent "Lin#maogate1_2::OnInit";
disablenpc "#maogate1_end";
@@ -8577,7 +8560,7 @@ OnTimer5000:
end;
OnTimer5500:
- set $@maogate1mobs,3;
+ $@maogate1mobs = 3;
monster "que_job02",128,105,"Mummy",1041,1,"Kidd#maogate1_2::OnMyMobDead";
monster "que_job02",115,106,"Mummy",1041,1,"Kidd#maogate1_2::OnMyMobDead";
monster "que_job02",121,112,"Mummy",1041,1,"Kidd#maogate1_2::OnMyMobDead";
@@ -8595,7 +8578,7 @@ OnTimer10000:
donpcevent "Dandelion#maogate1_1::OnInit";
stopnpctimer;
end;
-
+
OnMyMobDead:
end;
}
@@ -8624,7 +8607,7 @@ OnEnter:
end;
OnMyMobDead:
- set $@maogate1mobs,$@maogate1mobs -1;
+ --$@maogate1mobs;
if($@maogate1mobs < 1) donpcevent "#maogate1_end2::OnEnter";
end;
}
@@ -8747,7 +8730,7 @@ OnTouch:
mes "back, the other members";
mes "of the Assassin Guild";
mes "will take care of this...";
- set mao_request,29;
+ mao_request = 29;
close2;
mapwarp "que_job02","que_job01",59,49;
donpcevent "#maogate1_talk1::OnInit";
@@ -8774,7 +8757,7 @@ OnTouch:
donpcevent "#maogate1_battle::OnStop";
donpcevent "#maogate1_battle::OnEnter";
enablenpc "#maogate1";
- set $mao_gate1,0;
+ $mao_gate1 = 0;
end;
}
}
@@ -8784,11 +8767,11 @@ que_job03,14,182,1 script #maogate2 HIDDEN_WARP_NPC,1,1,{
OnEnter:
enablenpc "#maogate2";
end;
-
+
OnStop:
disablenpc "#maogate2";
end;
-
+
OnTouch:
if (mao_request == 124 || mao_request == 125)
{
@@ -8802,7 +8785,7 @@ OnTouch:
mes "teleported outside.^000000";
close2;
warp "morocc",100,100;
- set $mao_gate2,0;
+ $mao_gate2 = 0;
}
end;
@@ -8846,7 +8829,7 @@ OnTimer596000:
OnTimer597000:
enablenpc "#maogate2";
- set $mao_gate2,0;
+ $mao_gate2 = 0;
stopnpctimer;
end;
}
@@ -8860,7 +8843,7 @@ OnInit:
OnEnter:
enablenpc "#maogate2_talk1";
end;
-
+
OnTouch:
mes "^333333Holy... ritual... of...";
mes "blood... I am proud...";
@@ -8901,7 +8884,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk2";
end;
-
+
OnTouch:
mes "...";
mes "......";
@@ -8947,7 +8930,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk3";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -9004,7 +8987,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk4";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -9056,7 +9039,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk5";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -9093,7 +9076,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk6";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -9166,7 +9149,7 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk7";
end;
-
+
OnTouch:
mes "......";
mes ".........";
@@ -9220,16 +9203,16 @@ OnStop:
OnEnter:
enablenpc "#maogate2_talk8";
end;
-
+
OnStop2:
stopnpctimer;
end;
-
+
OnTouch:
initnpctimer;
disablenpc "#maogate2_talk8";
end;
-
+
OnTimer1000:
mapannounce "que_job03","...Blood... is the currency... of the soul...",1,0x7B68EE;
end;
@@ -9268,39 +9251,39 @@ OnStop:
OnEnter:
enablenpc "#maogate2_battle";
end;
-
+
OnStop2:
stopnpctimer;
killmonster "que_job03","#maogate2_battle::OnMyMobDead";
end;
-
+
OnTouch:
initnpctimer;
emotion e_wah,1;
disablenpc "#maogate2_battle";
end;
-
+
OnTimer500:
monster "que_job03",71,85,"Mummy",1041,1,"#maogate2_battle::OnMyMobDead";
monster "que_job03",79,85,"Mummy",1041,1,"#maogate2_battle::OnMyMobDead";
monster "que_job03",71,80,"Mummy",1041,1,"#maogate2_battle::OnMyMobDead";
monster "que_job03",79,80,"Mummy",1041,1,"#maogate2_battle::OnMyMobDead";
end;
-
+
OnTimer5000:
mapannounce "que_job03","Watch out!",1,0x90EE90;
donpcevent "Dandelion Member#2_bt::OnEnter";
end;
-
+
OnTimer6000:
specialeffect EF_LORD;
end;
-
+
OnTimer6500:
killmonster "que_job03","#maogate2_battle::OnMyMobDead";
stopnpctimer;
end;
-
+
OnMyMobDead:
end;
}
@@ -9363,7 +9346,7 @@ que_job03,66,85,5 script Dandelion Member#2_bt 4_M_MASKMAN,{
mes "and try to find her as";
mes "soon as I can!";
close2;
- set mao_request,125;
+ mao_request = 125;
disablenpc "Dandelion Member#2_bt";
end;
}
@@ -9371,7 +9354,7 @@ que_job03,66,85,5 script Dandelion Member#2_bt 4_M_MASKMAN,{
OnInit:
disablenpc "Dandelion Member#2_bt";
end;
-
+
OnEnter:
enablenpc "Dandelion Member#2_bt";
end;
@@ -9382,11 +9365,11 @@ que_job03,87,83,1 script #maogate2_setting HIDDEN_WARP_NPC,2,2,{
OnStop:
disablenpc "#maogate2_setting";
end;
-
+
OnEnter:
enablenpc "#maogate2_setting";
end;
-
+
OnTouch:
if (mao_request == 125)
{
@@ -9405,20 +9388,20 @@ que_job03,117,101,1 script #maogate2_end HIDDEN_WARP_NPC,3,3,{
OnInit:
disablenpc "#maogate2_end";
end;
-
+
OnReset:
killmonster "que_job03","#maogate2_end::OnMyMobDead";
end;
-
+
OnStop:
killmonster "que_job03","#maogate2_end::OnMyMobDead";
stopnpctimer;
end;
-
+
OnEnter:
enablenpc "#maogate2_end";
end;
-
+
OnTouch:
donpcevent "#maogate2_setting::OnStop";
mes "[" + strcharinfo(0) + "]";
@@ -9539,8 +9522,8 @@ OnTouch:
mes "Let me go!";
mes "I'm gonna chase";
mes "Moore myself!";
- set mao_request,126;
- set $maoattack,$maoattack +1;
+ mao_request = 126;
+ ++$maoattack;
close2;
donpcevent "Lin#maogate2_2::OnInit";
disablenpc "#maogate2_end";
@@ -9571,7 +9554,7 @@ OnTimer5000:
end;
OnTimer5500:
- set $@maogate2mobs,3;
+ $@maogate2mobs = 3;
monster "que_job03",128,105,"Mummy",1041,1,"Kidd#maogate2_2::OnMyMobDead";
monster "que_job03",115,106,"Mummy",1041,1,"Kidd#maogate2_2::OnMyMobDead";
monster "que_job03",121,112,"Mummy",1041,1,"Kidd#maogate2_2::OnMyMobDead";
@@ -9618,7 +9601,7 @@ OnEnter:
end;
OnMyMobDead:
- set $@maogate2mobs,$@maogate2mobs -1;
+ --$@maogate2mobs;
if($@maogate2mobs < 1) donpcevent "#maogate2_end2::OnEnter";
end;
}
@@ -9725,7 +9708,7 @@ que_job03,122,106,1 script #maogate2_end2 HIDDEN_WARP_NPC,15,15,{
OnInit:
disablenpc "#maogate2_end2";
end;
-
+
OnEnter:
enablenpc "#maogate2_end2";
end;
@@ -9740,7 +9723,7 @@ OnTouch:
mes "You don't look so hot. Come";
mes "on, we gotta get you back";
mes "to the guild for now...";
- set mao_request,127;
+ mao_request = 127;
close2;
mapwarp "que_job03","que_job01",59,49;
donpcevent "#maogate2_talk1::OnInit";
@@ -9767,7 +9750,7 @@ OnTouch:
donpcevent "#maogate2_battle::OnStop";
donpcevent "#maogate2_battle::OnEnter";
enablenpc "#maogate2";
- set $mao_gate2,0;
+ $mao_gate2 = 0;
end;
}
}
@@ -9803,11 +9786,11 @@ morocc,30,29,5 script Member#mao1 4_M_MASKMAN,10,15,{
OnStop:
disablenpc "Member#mao1";
end;
-
+
OnEnter:
enablenpc "Member#mao1";
end;
-
+
OnTouch:
if (mao_request == 30 || mao_request == 128)
{
@@ -9848,7 +9831,7 @@ OnTouch:
if($maoattack > 49)
{
donpcevent "#mao_manager::OnStart";
- set $maoattack,0;
+ $maoattack = 0;
}
else donpcevent "#mao_timer::OnStart";
end;
@@ -9886,7 +9869,7 @@ morocc,29,26,0 script Member#mao2 4_M_MASKMAN,{
OnStop:
disablenpc "Member#mao2";
end;
-
+
OnEnter:
enablenpc "Member#mao2";
end;
@@ -9923,7 +9906,7 @@ morocc,33,27,1 script Member#mao3 4_M_MASKMAN,{
OnStop:
disablenpc "Member#mao3";
end;
-
+
OnEnter:
enablenpc "Member#mao3";
end;
@@ -9960,7 +9943,7 @@ morocc,34,30,3 script Member#mao4 4_M_MASKMAN,{
OnStop:
disablenpc "Member#mao4";
end;
-
+
OnEnter:
enablenpc "Member#mao4";
end;
@@ -9971,7 +9954,7 @@ morocc,1,1,1 script #mao_timer -1,{
OnStart:
initnpctimer;
end;
-
+
OnTimer300000:
OnStop:
donpcevent "Member#mao1::OnEnter";
@@ -9987,7 +9970,7 @@ morocc,1,2,1 script #mao_manager -1,{
OnStart:
initnpctimer;
end;
-
+
OnStop:
killmonster "morocc","#mao_manager::OnMyMobDead";
donpcevent "Member#mao1::OnEnter";
@@ -9996,27 +9979,27 @@ OnStop:
donpcevent "Member#mao4::OnEnter";
stopnpctimer;
end;
-
+
OnTimer300000:
mapannounce "morocc","How dare... you... interrupt... the holy ritual...",1,0x7B68EE;
end;
-
+
OnTimer305000:
mapannounce "morocc","...The seal... no... it won't... it's not...",1,0x7B68EE;
end;
-
+
OnTimer310000:
mapannounce "morocc","...Accursed humans... interfering with... my revival...",1,0x7B68EE;
end;
-
+
OnTimer315000:
mapannounce "morocc","...Take this... blessing... of blood... Accept your.... death...",1,0x7B68EE;
end;
-
+
OnTimer320000:
mapannounce "morocc","...Beg for... my forgiveness... in the afterlife...!",1,0x7B68EE;
end;
-
+
OnTimer325000:
mapannounce "morocc","???: Morroc Satan's angry! Oh Freya, please protect us from the evil being...",1,0x7B68EE;
monster "morocc",163,185,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
@@ -10030,7 +10013,7 @@ OnTimer325000:
monster "morocc",157,191,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
monster "morocc",155,191,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer327000:
monster "morocc",163,194,"Satan's Despair",1041,1,"#mao_manager::OnMyMobDead";
monster "morocc",161,194,"Satan's Despair",1041,1,"#mao_manager::OnMyMobDead";
@@ -10048,7 +10031,7 @@ OnTimer327000:
monster "morocc",157,200,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
monster "morocc",155,200,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer329000:
announce "Kafra Pavianne: This is the Morroc Kafra Branch! The m-monsters are... Aaaaahhh!",bc_all,0x70DBDB;
monster "morocc",163,203,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
@@ -10067,7 +10050,7 @@ OnTimer329000:
monster "morocc",157,209,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
monster "morocc",155,209,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer331000:
monster "morocc",163,212,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
monster "morocc",161,212,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
@@ -10080,7 +10063,7 @@ OnTimer331000:
monster "morocc",157,212,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
monster "morocc",155,212,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer333000:
monster "morocc",138,162,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
monster "morocc",140,162,"Satan's Wrath",1041,1,"#mao_manager::OnMyMobDead";
@@ -10126,7 +10109,7 @@ OnTimer333000:
monster "morocc",178,160,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
monster "morocc",180,160,"Satan's Wrath",1154,1,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer335000:
monster "morocc",138,158,"Satan's Despair",1041,1,"#mao_manager::OnMyMobDead";
monster "morocc",140,158,"Satan's Despair",1041,1,"#mao_manager::OnMyMobDead";
@@ -10152,7 +10135,7 @@ OnTimer335000:
monster "morocc",0,0,"Satan's Despair",1041,20,"#mao_manager::OnMyMobDead";
monster "morocc",0,0,"Satan's Wrath",1041,20,"#mao_manager::OnMyMobDead";
end;
-
+
OnTimer1800000:
killmonster "morocc","#mao_manager::OnMyMobDead";
donpcevent "Member#mao1::OnEnter";
@@ -10161,7 +10144,7 @@ OnTimer1800000:
donpcevent "Member#mao4::OnEnter";
stopnpctimer;
end;
-
+
OnMyMobDead:
end;
}
@@ -10252,23 +10235,22 @@ sec_in02,38,162,0 script Morroc Invasion Manager 4_F_SITDOWN,{
mes "must be completed 1 more";
mes "time before the Satan Morroc";
mes "invasion can be triggered.";
- set $maoattack,49;
+ $maoattack = 49;
close;
case 2:
mes "The GlobalVar has been";
mes "set to 50. The Satan Morroc";
mes "invasion can now be triggered.";
- set $maoattack,50;
+ $maoattack = 50;
close;
-
case 3:
mes "The GlobalVar has been";
mes "set to 0. The Lin Quest";
mes "must be completed 1 more";
mes "time before the Satan Morroc";
mes "invasion can be triggered.";
- set $maoattack,0;
+ $maoattack = 0;
close;
}
diff --git a/npc/quests/doomed_swords.txt b/npc/quests/doomed_swords.txt
index 6bccc7347..b17c59145 100644
--- a/npc/quests/doomed_swords.txt
+++ b/npc/quests/doomed_swords.txt
@@ -37,7 +37,7 @@ prt_in,162,11,2 script Ghatu#magum 4_M_04,{
mes "hiding in the mountains";
mes "since too many people want^FFFFFF ^000000 to use his talents for the wrong";
mes "purposes. Apparently, there is^FFFFFF ^000000 a godly quality to his weapons...";
- set event_magum,1;
+ event_magum = 1;
close;
}
mes "[Ghatu]";
@@ -69,7 +69,7 @@ prt_in,162,11,2 script Ghatu#magum 4_M_04,{
mes "hammer. If you can manage to";
mes "find him, perhaps you can ask";
mes "him to forge something for you?";
- set event_magum,5;
+ event_magum = 5;
close;
}
@@ -103,7 +103,7 @@ prt_in,162,11,2 script Ghatu#magum 4_M_04,{
mes "hammer. If you can manage to";
mes "find him, perhaps you can ask";
mes "him to forge something for you?";
- set event_magum,5;
+ event_magum = 5;
close;
}
mes "[Ghatu]";
@@ -151,8 +151,8 @@ prontera,197,188,2 script Veeyop#magum 1_M_04,{
mes "Prontera, but then he moved";
mes "away for some weird reason.";
if (event_magum == 1)
- set event_magum,5;
- set dmdswrd_Q2,dmdswrd_Q2 | 1;
+ event_magum = 5;
+ dmdswrd_Q2 |= 1;
close;
}
@@ -203,8 +203,8 @@ morocc,281,178,2 script Cetsu#magum 4W_M_01,{
mes "did seem to be pretty";
mes "high in demand back then...";
if (event_magum == 1)
- set event_magum,5;
- set dmdswrd_Q2,dmdswrd_Q2 | 2;
+ event_magum = 5;
+ dmdswrd_Q2 |= 2;
close;
}
@@ -247,8 +247,8 @@ izlude_in,173,88,2 script Nain#magum 8_F,{
mes "can forge that accursed";
mes "Executioner anew...";
if (event_magum == 1)
- set event_magum,5;
- set dmdswrd_Q2,dmdswrd_Q2 | 4;
+ event_magum = 5;
+ dmdswrd_Q2 |= 4;
close;
}
@@ -458,8 +458,8 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "and an Emperium to prove your";
mes "worthiness to me. I will wait";
mes "for your return, adventurer.";
- set dmdswrd_Q2,dmdswrd_Q2 | 8;
- set event_magum,6;
+ dmdswrd_Q2 |= 8;
+ event_magum = 6;
close;
}
mes "[Mysterious Blacksmith]";
@@ -523,8 +523,8 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "require you to prove that you";
mes "are worthy of the Grimtooth's";
mes "power. Can you truly handle it?";
- set dmdswrd_Q2,dmdswrd_Q2 | 16;
- set event_magum,6;
+ dmdswrd_Q2 |= 16;
+ event_magum = 6;
close;
}
mes "[Mysterious Blacksmith]";
@@ -579,8 +579,8 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "evil power. As for the Emperium, consider it my test to see if you";
mes "are truly capable of wielding";
mes "the accursed Executioner...";
- set dmdswrd_Q2,dmdswrd_Q2 | 32;
- set event_magum,6;
+ dmdswrd_Q2 |= 32;
+ event_magum = 6;
close;
}
mes "[Mysterious Blacksmith]";
@@ -874,7 +874,7 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "and an Emperium to prove your";
mes "worthiness to me. I will wait";
mes "for your return, adventurer.";
- set dmdswrd_Q2,dmdswrd_Q2 | 8;
+ dmdswrd_Q2 |= 8;
close;
}
mes "[Mysterious Blacksmith]";
@@ -1019,7 +1019,7 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "require you to prove that you";
mes "are worthy of the Grimtooth's";
mes "power. Can you truly handle it?";
- set dmdswrd_Q2,dmdswrd_Q2 | 16;
+ dmdswrd_Q2 |= 16;
close;
}
mes "[Mysterious Blacksmith]";
@@ -1151,7 +1151,7 @@ pay_fild08,218,283,2 script Mysterious Man#magum 4_M_ORIENT02,{
mes "evil power. As for the Emperium, consider it my test to see if you";
mes "are truly capable of wielding";
mes "the accursed Executioner...";
- set dmdswrd_Q2,dmdswrd_Q2 | 4;
+ dmdswrd_Q2 |= 4;
close;
}
mes "[Mysterious Blacksmith]";
diff --git a/npc/quests/doomed_swords_quest.txt b/npc/quests/doomed_swords_quest.txt
index e4a1ddf58..008ada20f 100644
--- a/npc/quests/doomed_swords_quest.txt
+++ b/npc/quests/doomed_swords_quest.txt
@@ -101,7 +101,7 @@ mjolnir_02,186,193,4 script Middle-Aged Man#magum1 1_M_LIBRARYMASTER,{
mes "Give me a few minutes and";
mes "I'll let you know what you";
mes "need to bring to me.";
- set dmdswrd_Q,32;
+ dmdswrd_Q = 32;
close;
}
else if (dmdswrd_Q == 32) {
@@ -135,7 +135,7 @@ mjolnir_02,186,193,4 script Middle-Aged Man#magum1 1_M_LIBRARYMASTER,{
mes "^FF000025 Amulets^000000,";
mes "^FF00001 Coal^000000, and";
mes "^FF00001 Necklace of Oblivion^000000.";
- set dmdswrd_Q,33;
+ dmdswrd_Q = 33;
close;
}
else if (dmdswrd_Q == 33) {
@@ -152,7 +152,7 @@ mjolnir_02,186,193,4 script Middle-Aged Man#magum1 1_M_LIBRARYMASTER,{
delitem 1003,1; //Coal
delitem 609,25; //Amulet
delitem 1008,1; //Frozen_Heart
- set dmdswrd_Q,34;
+ dmdswrd_Q = 34;
close;
}
mes "[Walker]";
@@ -262,7 +262,7 @@ mjolnir_02,186,193,4 script Middle-Aged Man#magum1 1_M_LIBRARYMASTER,{
mes "and give my regards to Morf";
mes "once you see him. If you do";
mes "succeed in obtaining a doomed sword, use its power responsibly.";
- set dmdswrd_Q,35;
+ dmdswrd_Q = 35;
close;
}
else if (dmdswrd_Q == 35) {
@@ -391,7 +391,7 @@ payon,248,159,1 script Old Man#magum1 2_M_PHARMACIST,{
mes "Potions so I can nurse";
mes "the headache I'm gonna";
mes "have! I'll need them so bad...";
- set dmdswrd_Q,36;
+ dmdswrd_Q = 36;
close;
}
else if (dmdswrd_Q == 36) {
@@ -431,7 +431,7 @@ payon,248,159,1 script Old Man#magum1 2_M_PHARMACIST,{
mes "sword pentagram. I'll just be";
mes "waiting for you right here.";
delitem 503,20; //Yellow_Potion
- set dmdswrd_Q,37;
+ dmdswrd_Q = 37;
close;
}
mes "[Old Man]";
@@ -557,7 +557,7 @@ payon,248,159,1 script Old Man#magum1 2_M_PHARMACIST,{
delitem 1019,3; //Wooden_Block
delitem 7021,1; //Foolishness_Of_Blind
delitem 7002,50; //Ogre_Tooth
- set dmdswrd_Q,38;
+ dmdswrd_Q = 38;
close;
}
mes "[Old Man]";
@@ -662,7 +662,7 @@ payon,248,159,1 script Old Man#magum1 2_M_PHARMACIST,{
mes "find him, he can complete";
mes "this pentagram for you. Well,";
mes "care now, and good luck.";
- set dmdswrd_Q,39;
+ dmdswrd_Q = 39;
close;
case 2:
mes "[Morf]";
@@ -870,7 +870,7 @@ morocc,248,159,4 script Young Man#magum1 4_M_04,{
mes "Oh, and bring me the ^FF0000exact";
mes "amounts^000000--^FF0000no more^000000, ^FF0000no less^000000.";
mes "Okay now, I'll see you later~";
- set dmdswrd_Q,40;
+ dmdswrd_Q = 40;
close;
}
else if (dmdswrd_Q == 40) {
@@ -893,7 +893,7 @@ morocc,248,159,4 script Young Man#magum1 4_M_04,{
delitem 7023,6; //Blade_Lost_In_Darkness
delitem 723,9; //Cardinal_Jewel
delitem 7019,1; //Loki's_Whispers
- set dmdswrd_Q,41;
+ dmdswrd_Q = 41;
close;
}
mes "[Huey]";
@@ -972,7 +972,7 @@ morocc,248,159,4 script Young Man#magum1 4_M_04,{
mes "There, I see it! Now";
mes "quickly, take it! It's yours!";
next;
- set .@random,rand(1,10);
+ .@random = rand(1,10);
if (.@random >= 1 && .@random <= 5) {
callsub S_GetSword,1237,0,1,42;
getitem 1237,1; //Grimtooth_
@@ -1041,7 +1041,7 @@ S_GetSword:
mes "the light dissipates, you";
mes "can see that you have";
mes "obtained a "+getitemname(getarg(0))+".^000000";
- set magum,getarg(3);
+ magum = getarg(3);
next;
}
if (checkweight(getarg(0),1) == 0) {
@@ -1091,6 +1091,6 @@ S_GetSword:
mes "Walker my regards if you";
mes "happen to see them. Well";
mes "then, take care of yourself, and be cautious in using that sword.";
- set dmdswrd_Q,45;
+ dmdswrd_Q = 45;
return;
}
diff --git a/npc/quests/eye_of_hellion.txt b/npc/quests/eye_of_hellion.txt
index 0acbf6c05..505db5edd 100644
--- a/npc/quests/eye_of_hellion.txt
+++ b/npc/quests/eye_of_hellion.txt
@@ -203,7 +203,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "has offered to help me find";
mes "the gem, but I do not know if";
mes "I can trust him. Please help me protect this world from the gem...";
- set HELLIONQ,36;
+ HELLIONQ = 36;
close;
}
mes "[Sir Chilias'Tyus]";
@@ -213,7 +213,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "one to take lightly. However,";
mes "I believe that you are wholly";
mes "capable of accomplishing this.";
- set HELLIONQ,37;
+ HELLIONQ = 37;
close;
}
mes "[Sir Chilias'Tyus]";
@@ -257,7 +257,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "has offered to help me find";
mes "the gem, but I do not know if";
mes "I can trust him. Please help me protect this world from the gem...";
- set HELLIONQ,36;
+ HELLIONQ = 36;
close;
}
mes "[Sir Chilias'Tyus]";
@@ -301,7 +301,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "and see if you can find";
mes "it. Good luck to you,";
mes "kind adventurer.";
- set HELLIONQ,47;
+ HELLIONQ = 47;
close;
}
else if (HELLIONQ == 47) {
@@ -358,7 +358,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "fulfill my dear grandfather's";
mes "greatest wish and forever";
mes "seal away the Hellion's gem.";
- set HELLIONQ,58;
+ HELLIONQ = 58;
getitem 7335,1; //Piece_Of_Slate_3
next;
mes "[Sir Chilias'Tyus]";
@@ -406,7 +406,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "the only one who can combine";
mes "the tablet pieces into the its";
mes "complete form. Thank you...";
- set HELLIONQ,67;
+ HELLIONQ = 67;
close;
}
mes "[Sir Chilias'Tyus]";
@@ -544,7 +544,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "from those motivated by greed.";
delitem 7332,1; //Slate
delitem 7337,countitem(7337); //Eye_Of_Hellion
- set HELLIONQ,69;
+ HELLIONQ = 69;
getitem 2658,1; //Nile_Rose_
getitem 603,1; //Old_Blue_Box
getexp (checkre(3))?120000:1200000,0;
@@ -612,7 +612,7 @@ morocc_in,116,101,3 script Old Scholar Tyus#hellion 4_M_JOB_WIZARD,3,3,{
mes "keep its secret and protect it";
mes "from those motivated by greed.";
delitem 7332,1; //Slate
- set HELLIONQ,70;
+ HELLIONQ = 70;
getitem 2658,1; //Nile_Rose_
getexp (checkre(3))?100000:1000000,0;
next;
@@ -739,7 +739,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "through so much trouble to";
mes "even hide these clues. Oh";
mes "man, I want it so bad...";
- set HELLIONQ,39;
+ HELLIONQ = 39;
close;
}
mes "[Clanux Heffron]";
@@ -757,7 +757,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "Prontera. I doubt it, but there's";
mes "a chance I mighta missed";
mes "something there. Get to it!";
- set HELLIONQ,39;
+ HELLIONQ = 39;
close;
}
mes "[Clanux Heffron]";
@@ -767,7 +767,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "that, pal! Why should I help";
mes "you if we're gonna compete";
mes "for the same prize?!";
- set HELLIONQ,38;
+ HELLIONQ = 38;
close;
}
else if (HELLIONQ == 38) {
@@ -793,7 +793,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "the old Swordman Training";
mes "Grounds here in Prontera.";
mes "There might be some clues left over there for you to find...";
- set HELLIONQ,39;
+ HELLIONQ = 39;
close;
}
mes "[" + strcharinfo(0) + "]";
@@ -852,7 +852,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "drop me a couple more hints.";
mes "And give this to the old guy";
mes "to prove I found it, will you?";
- set HELLIONQ,41;
+ HELLIONQ = 41;
getitem 7093,1; //Wheel
next;
mes "[Clanux Heffron]";
@@ -884,7 +884,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "learn anything new,";
mes "to me and let me know!";
mes "That's an order, got it?";
- set HELLIONQ,41;
+ HELLIONQ = 41;
getitem 7093,1; //Wheel
close;
}
@@ -924,7 +924,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "here. The sooner you get";
mes "that clue, the sooner I'll";
mes "get that Hellion's gem.";
- set HELLIONQ,43;
+ HELLIONQ = 43;
getitem 7093,1; //Wheel
close;
}
@@ -1000,7 +1000,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "Oh yeah? Hah! Well, now";
mes "that the easy part is done, I'll just figure out that secret";
mes "password myself! Hahaha! That Hellion's gem is as good as mine!";
- set HELLIONQ,46;
+ HELLIONQ = 46;
close;
}
mes "[Clanux Heffron]";
@@ -1010,7 +1010,7 @@ prontera,269,326,3 script Clanux Heffron#hellion 1_M_04,{
mes "Yeah, I was able to get that";
mes "far, but I haven't been able";
mes "to figure out the password...";
- set HELLIONQ,46;
+ HELLIONQ = 46;
close;
}
else if (HELLIONQ > 45 && HELLIONQ < 71) {
@@ -1055,7 +1055,7 @@ prontera,223,82,0 script #prt_key-1 HIDDEN_NPC,{
mes "a steel bearing with a roughly";
mes "etched message that reads:^000000";
mes "^4d4dff''Veggie Lady N9 W3 BINGO.''^000000";
- set HELLIONQ,40;
+ HELLIONQ = 40;
next;
mes "[" + strcharinfo(0) + "]";
mes "What the heck does this";
@@ -1132,9 +1132,9 @@ OnTouch:
mes "In fact, I hate talking.";
mes "That's why I sell vegetables.";
if (HELLIONQ == 40)
- set HELLIONQ,42;
+ HELLIONQ = 42;
else if (HELLIONQ == 41)
- set HELLIONQ,43;
+ HELLIONQ = 43;
next;
mes "["+ strcharinfo(0) +"]";
mes "Holy cow...";
@@ -1184,7 +1184,7 @@ prt_in,128,79,0 script Unknown Machine#prt_key HIDDEN_NPC,{
mes "to life and a panel opens,";
mes "revealing a numeric keypad.^000000";
delitem 7093,1; //Wheel
- set HELLIONQ,44;
+ HELLIONQ = 44;
next;
mes "[" + strcharinfo(0) + "]";
mes "I guess that I've got";
@@ -1216,7 +1216,7 @@ prt_in,128,79,0 script Unknown Machine#prt_key HIDDEN_NPC,{
mes "this back to Sir Chilia'Tyus";
mes "and confirm that this was";
mes "made by his grandfather...^000000";
- set HELLIONQ,45;
+ HELLIONQ = 45;
getitem 7333,1; //Piece_Of_Slate_1
close;
}
@@ -1267,7 +1267,7 @@ prt_in,128,79,0 script Unknown Machine#prt_key HIDDEN_NPC,{
mes "this back to Sir Chilia'Tyus";
mes "and confirm that this was";
mes "made by his grandfather...^000000";
- set HELLIONQ,45;
+ HELLIONQ = 45;
getitem 7333,1; //Piece_Of_Slate_1
close;
}
@@ -1372,7 +1372,7 @@ payon,182,132,3 script Grout'he Tuccok#hellion 1_M_02,{
mes "If you got any more questions,";
mes "I guess you can ask me later~";
Zeny -= 10000;
- set HELLIONQ,48;
+ HELLIONQ = 48;
getitem 953,1; //Stone_Heart
getitem 511,1; //Green_Herb
getitem 533,1; //Grape_Juice
@@ -1513,7 +1513,7 @@ payon,182,132,3 script Grout'he Tuccok#hellion 1_M_02,{
mes "it's all we got. Heck,";
mes "all these clues make";
mes "less sense than this!";
- set HELLIONQ,53;
+ HELLIONQ = 53;
close;
}
mes "[Grout'he]";
@@ -1551,7 +1551,7 @@ payon,182,132,3 script Grout'he Tuccok#hellion 1_M_02,{
mes "Archer Village that fits";
mes "that description perfectly!";
mes "You should check it out.";
- set HELLIONQ,56;
+ HELLIONQ = 56;
close;
}
else if (HELLIONQ == 56) {
@@ -1617,7 +1617,7 @@ OnTouch:
mes "Hopefully this will";
mes "make more sense once";
mes "I find more clues. I hope.";
- set HELLIONQ,49;
+ HELLIONQ = 49;
close;
}
end;
@@ -1638,7 +1638,7 @@ payon,82,109,3 script Pile of Stone#paypuzz2 HIDDEN_NPC,{
mes "that looks easy once";
mes "I get the answer. Well,";
mes "if I ever get it, that is.";
- set HELLIONQ,50;
+ HELLIONQ = 50;
close;
}
}
@@ -1659,7 +1659,7 @@ payon,239,56,3 script Dried Fish#paypuzz3 HIDDEN_NPC,{
mes "these clues must be";
mes "some sort of crazy man!";
mes "It's the only explanation!";
- set HELLIONQ,51;
+ HELLIONQ = 51;
close;
}
}
@@ -1685,7 +1685,7 @@ payon,240,160,3 script Vat#paypuzz4 HIDDEN_NPC,{
mes "Am I missing something?";
mes "I think I really need help in";
mes "figuring this out. Hmm...";
- set HELLIONQ,52;
+ HELLIONQ = 52;
close;
}
}
@@ -1746,7 +1746,7 @@ payon,159,129,3 script Wooden Floor#paypuzz5 HIDDEN_NPC,{
delitem 511,1; //Green_Herb
delitem 533,1; //Grape_Juice
delitem 1049,1; //Skirt_Of_Virgin
- set HELLIONQ,54;
+ HELLIONQ = 54;
next;
mes "[Stone Engraving]";
mes "^4D4DFF''This has been entrusted to";
@@ -1755,7 +1755,7 @@ payon,159,129,3 script Wooden Floor#paypuzz5 HIDDEN_NPC,{
mes "find peace. To he who finds";
mes "this, remember that avarice";
mes "knows no bounds. --Tyus.''^000000";
- set HELLIONQ,55;
+ HELLIONQ = 55;
close;
}
mes "[" + strcharinfo(0) + "]";
@@ -1775,7 +1775,7 @@ payon,159,129,3 script Wooden Floor#paypuzz5 HIDDEN_NPC,{
mes "find peace. To he who finds";
mes "this, remember that avarice";
mes "knows no bounds. --Tyus.''^000000";
- set HELLIONQ,55;
+ HELLIONQ = 55;
close;
}
else if (HELLIONQ > 54) {
@@ -1861,7 +1861,7 @@ pay_arche,142,28,0 script Buddha Statue#paypuzz6 HIDDEN_NPC,5,5,{
mes "revealing a piece of the";
mes "tablet that will lead you";
mes "to the Hellion's gem.";
- set HELLIONQ,57;
+ HELLIONQ = 57;
getitem 7334,1; //Piece_Of_Slate_2
close;
case 4:
@@ -1933,7 +1933,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "when he entrusted you with";
mes "this important mission. Huh.";
mes "A reevaluation is in order...";
- set HELLIONQ,60;
+ HELLIONQ = 60;
close;
}
mes "[Welshyun]";
@@ -1957,7 +1957,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "please remember that.";
mes "Ah, and my student's";
mes "name is Enoz.";
- set HELLIONQ,59;
+ HELLIONQ = 59;
close;
}
else if (HELLIONQ == 59) {
@@ -1977,7 +1977,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "There's no way I can do any";
mes "serious thinking with such";
mes "a dry, parched throat...";
- set HELLIONQ,61;
+ HELLIONQ = 61;
close;
}
else if (HELLIONQ == 61) {
@@ -2011,7 +2011,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "Ah, and my student's";
mes "name is Enoz.";
delitem 504,1; //White_Potion
- set HELLIONQ,62;
+ HELLIONQ = 62;
close;
}
mes "[Welshyun]";
@@ -2061,7 +2061,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "incredibly heavy tome,";
mes "the Master Science";
mes "Reference Book.^000000";
- set HELLIONQ,64;
+ HELLIONQ = 64;
close;
}
else if (HELLIONQ == 64) {
@@ -2098,7 +2098,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
mes "you may have this piece of";
mes "the tablet, which I've already found. The clues were too simple...";
delitem 717,1; //Blue_Gemstone
- set HELLIONQ,66;
+ HELLIONQ = 66;
getitem 7336,1; //Piece_Of_Slate_4
next;
mes "[Welshyun]";
@@ -2174,7 +2174,7 @@ geffen,110,200,3 script Sage Welshyun#hellion 4_M_SAGE_A,3,3,{
delitem 7334,1; //Piece_Of_Slate_2
delitem 7335,1; //Piece_Of_Slate_3
delitem 7336,1; //Piece_Of_Slate_4
- set HELLIONQ,68;
+ HELLIONQ = 68;
getitem 7332,1; //Slate
next;
mes "[Welshyun]";
@@ -2290,7 +2290,7 @@ gef_tower,116,37,0 script Enoz#hellion 4_M_ALCHE_A,{
mes "Reference Book? ";
mes "It was right here";
mes "three days ago...";
- set HELLIONQ,63;
+ HELLIONQ = 63;
close;
}
mes "[Enoz]";
@@ -2351,7 +2351,7 @@ gef_tower,116,37,0 script Enoz#hellion 4_M_ALCHE_A,{
mes "playing these pranks?!";
mes "Apple Juice! I need";
mes "some Apple Juice!";
- set HELLIONQ,65;
+ HELLIONQ = 65;
next;
mes "^3355FFIt looks like it's time";
mes "to get 1 Blue Gemstone,";
diff --git a/npc/quests/first_class/tu_acolyte.txt b/npc/quests/first_class/tu_acolyte.txt
index 854b0a26a..6a60f40c9 100644
--- a/npc/quests/first_class/tu_acolyte.txt
+++ b/npc/quests/first_class/tu_acolyte.txt
@@ -63,7 +63,7 @@ prt_church,179,15,1 script Priest Praupin 4_M_MINISTER,{
mes "[Priest Praupin]";
mes "I look forward to seeing you";
mes "become a better Acolyte after learning from Sister Asthe's instructions. If you like, I can send you to the convent.";
- set tu_acolyte01, 1;
+ tu_acolyte01 = 1;
next;
if(select("Go to the convent.:Do not go.")==1){
mes "[Priest Praupin]";
@@ -120,12 +120,12 @@ prt_church,179,15,1 script Priest Praupin 4_M_MINISTER,{
switch(select("Wand:Flail")) {
case 1:
delitem 7181,1; //Receipt_01
- set tu_acolyte01,23;
+ tu_acolyte01 = 23;
getitem 1604,1; //Wand
break;
case 2:
delitem 7181,1; //Receipt_01
- set tu_acolyte01,23;
+ tu_acolyte01 = 23;
getitem 1510,1; //Flail
break;
}
@@ -201,7 +201,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "why don't you rest";
mes "for a little bit? You must be tired after traveling all the way here. When you're ready, just come";
mes "see me, okay?";
- set tu_acolyte01, 2;
+ tu_acolyte01 = 2;
close;
}
break;
@@ -292,7 +292,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "[Asthe]";
mes "HEAL !!";
npcskill "AL_HEAL",11,99,60;
- set tu_acolyte01, 3;
+ tu_acolyte01 = 3;
if(getskilllv("AL_HEAL") == 0){
getexp 0,100;
specialeffect2 EF_CONE;
@@ -330,7 +330,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "Well then,";
mes "I hope you";
mes "have a safe trip.";
- set tu_acolyte01,4;
+ tu_acolyte01 = 4;
getitem 1504,1; //Mace
getitem 602,1; //Wing_Of_Butterfly
savepoint "prt_monk",30,250;
@@ -348,7 +348,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "ready for me to discuss";
mes "the next subject. Now,";
mes "let's see... Hmm...";
- set tu_acolyte01, 5;
+ tu_acolyte01 = 5;
close;
}
break;
@@ -380,7 +380,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "Thank you so much.";
mes "You have returned the Mace.";
emotion e_heh;
- set tu_acolyte01, 5;
+ tu_acolyte01 = 5;
delitem 1504, 1; //Mace
if(Class == Job_Acolyte_High) {
getexp 2000,1000;
@@ -433,7 +433,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "[Asthe]";
mes "Did you undertand all that?";
mes "Ho ho ho~ No need to try to remember everything right now. You'll get the hang of it.";
- set tu_acolyte01, 6;
+ tu_acolyte01 = 6;
close;
case 6:
mes ""+strcharinfo(0)+",";
@@ -444,7 +444,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "[Asthe]";
mes "However, I'm a little busy with";
mes "my work right now, so would you deliver this to Priest Gardron in the next building for me?";
- set tu_acolyte01,7;
+ tu_acolyte01 = 7;
getitem 7148,1; //Mother_Letter
close;
case 7:
@@ -492,7 +492,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
next;
mes "^3355FFSister Asthe gives";
mes "you some dog food.^000000";
- set tu_acolyte01, 10;
+ tu_acolyte01 = 10;
close;
case 11:
case 12:
@@ -513,7 +513,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "know the answer.";
mes "Think carefully";
mes "and it will come.";
- set tu_acolyte01, 12;
+ tu_acolyte01 = 12;
close;
case 13:
mes "You remember that";
@@ -542,7 +542,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "Let's take a break before";
mes "we proceed to the next lesson,";
mes "alright? I'll be right here.";
- set tu_acolyte01, 14;
+ tu_acolyte01 = 14;
close;
case 14:
mes "Now it's time";
@@ -564,7 +564,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "[Asthe]";
mes "Try it for";
mes "yourself, okay?";
- set tu_acolyte01, 15;
+ tu_acolyte01 = 15;
npcskill "AL_INCAGI",10,0,0;
close;
case 15:
@@ -575,7 +575,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
next;
mes "[Asthe]";
mes "Like you'd expect, Decrease AGI slows down enemies, reducing their agility, Movement Speed, Dodge Rate and Attack Speed. Its effect is the exact reverse of Increase AGI.";
- set tu_acolyte01, 15;
+ tu_acolyte01 = 15;
next;
mes "[Asthe]";
mes "The last skill in the Heal skill tree is ^3131FFCure^000000. You can learn Cure after learning Level 2 Heal.";
@@ -591,7 +591,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "For now, don't forget that the Increase AGI, Decrease AGI and";
mes "Cure skills can only be learned";
mes "by learning the Heal skill.";
- set tu_acolyte01, 16;
+ tu_acolyte01 = 16;
close;
case 16:
mes "You've been learning";
@@ -658,7 +658,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "[Asthe]";
mes "Ho ho!";
mes "What a smart Acolyte~";
- set tu_acolyte01, 17;
+ tu_acolyte01 = 17;
}
close;
case 17:
@@ -691,7 +691,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "to carry everything.";
mes "Why don't you put some of your things in Kafra Storage first?";
} else {
- set tu_acolyte01, 18;
+ tu_acolyte01 = 18;
getitem 7183,1; //Sister_Letter
getitem 7181,1; //Receipt_01
getitem 1081,2; //Merchant_Box_1
@@ -741,7 +741,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
mes "the next time we";
mes "meet, I will give";
mes "you my final lesson.";
- set tu_acolyte01, 24;
+ tu_acolyte01 = 24;
close;
case 24:
mes "The last skill";
@@ -775,7 +775,7 @@ prt_monk,230,106,3 script Asthe#tu 1_F_PRIEST,{
next;
mes "[Asthe]";
mes "Well, please don't forget what I've taught you. I hope you look back with fondness at our time together amongst these beautiful flowers. May God bless you~";
- set tu_acolyte01, 25;
+ tu_acolyte01 = 25;
if (checkre(3))
getexp 1000,1000;
else
@@ -818,7 +818,7 @@ monk_in,18,38,6 script Priest Gardron#tu 4_M_MINISTER,{
mes "she is getting old now, but I'm relieved to hear that her health";
mes "is good. We are truly blessed...";
delitem 7148,1; //Mother_Letter
- set tu_acolyte01,8;
+ tu_acolyte01 = 8;
close;
} else {
mes "Hmm...?";
@@ -853,7 +853,7 @@ monk_in,18,38,6 script Priest Gardron#tu 4_M_MINISTER,{
mes "should return to Sister";
mes "Asthe to continue your";
mes "Acolyte training.";
- set tu_acolyte01, 9;
+ tu_acolyte01 = 9;
percentheal 100,100;
if (checkre(3))
getexp 1000,1000;
@@ -961,7 +961,7 @@ prt_monk,235,245,5 script Dog#tu 4_DOG01,{
while(1) {
switch(select("Give a treat.:Pet the dog.:End actions.")){
case 1:
- set .@dog_food, .@dog_food + 1;
+ ++.@dog_food;
if(.@dog_food > 4){
mes "[Dog]";
mes "^CDB79EGrrrrrr...!^000000";
@@ -1085,7 +1085,7 @@ prt_monk,226,257,6 script Ill Girl#tu 4_F_04,{
mes "["+strcharinfo(0)+"]";
mes "I'll cure you...";
mes "For sure.";
- set tu_acolyte01, 11;
+ tu_acolyte01 = 11;
close;
} else if(tu_acolyte01 == 11){
next;
@@ -1129,7 +1129,7 @@ prt_monk,226,257,6 script Ill Girl#tu 4_F_04,{
mes "practice your abilities!";
mes "It seemed that this good";
mes "deed has improved your skills.^000000";
- set tu_acolyte01, 13;
+ tu_acolyte01 = 13;
if (checkre(3))
getexp 0,500;
else
@@ -1236,7 +1236,7 @@ prt_monk,197,228,3 script Veiner 4_M_ORIENT02,{
mes "Oh right!";
mes "Thank you very much for delivering this to me. Sorry, but I'm always excited to hear from my cutie pie~";
emotion e_thx;
- set tu_acolyte01,19;
+ tu_acolyte01 = 19;
delitem 1081,1; //Merchant_Box_1
close;
} else if(tu_acolyte01 > 18){
@@ -1285,7 +1285,7 @@ prt_monk,28,260,5 script Hedrick 1_M_04,{
mes "you have one of the";
mes "cookies she sent me?";
delitem 7148,1; //Mother_Letter
- set tu_acolyte01,20;
+ tu_acolyte01 = 20;
getitem 538,1; //Well_Baked_Cookie
close;
}
@@ -1304,7 +1304,7 @@ OnTouch:
mes "Oh, and come here if";
mes "you need anything, okay?";
delitem 1081,1; //Merchant_Box_1
- set tu_acolyte01,21;
+ tu_acolyte01 = 21;
close;
}
@@ -1315,7 +1315,7 @@ monk_in,103,176,7 script Karven 1_M_PASTOR,{
mes "May you rest";
if(tu_acolyte01 == 21 && countitem(7183)){
delitem 7183, 1;
- set tu_acolyte01, 22;
+ tu_acolyte01 = 22;
mes "in peace forever...";
next;
mes "[Karven]";
@@ -1785,23 +1785,23 @@ sec_in02,17,156,3 script 1st Job Quest Reset 4_F_JOB_BLACKSMITH,{
next;
switch(select("Swordsman:Merchant:Archer:Acolyte:Thief:Mage")) {
case 1:
- set tu_swordman,0;
+ tu_swordman = 0;
break;
case 2:
- set tu_merchant,0;
+ tu_merchant = 0;
break;
case 3:
- set tu_archer01,0;
- set tu_archer02,0;
+ tu_archer01 = 0;
+ tu_archer02 = 0;
break;
case 4:
- set tu_acolyte01,0;
+ tu_acolyte01 = 0;
break;
case 5:
- set tu_thief01,0;
+ tu_thief01 = 0;
break;
case 6:
- set tu_magician01,0;
+ tu_magician01 = 0;
break;
}
mes "Completed.";
diff --git a/npc/quests/first_class/tu_archer.txt b/npc/quests/first_class/tu_archer.txt
index 5e5344271..cedf21a6f 100644
--- a/npc/quests/first_class/tu_archer.txt
+++ b/npc/quests/first_class/tu_archer.txt
@@ -265,7 +265,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
next;
mes "[Master Kavaruk]";
mes "If you're interested, it would probably be best to speak to the Alchemist Guild member who is waiting to hear from us at the ^3131FFshop next to the road south of Icarus^000000.";
- set tu_archer02,1;
+ tu_archer02 = 1;
close;
} else if(tu_archer02 == 1){
@@ -291,7 +291,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
mes "[Master Kavaruk]";
mes "Please find out if he is all right and help him with whatever he";
mes "may need. In the meantime, I will be waiting to hear from you. Thank you very much.";
- set tu_archer02, 2;
+ tu_archer02 = 2;
close;
} else if(tu_archer02 == 2){
@@ -305,7 +305,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
mes "Hmmm, I see. Thank you";
mes "for bringing me the news. As Arthail has said, I shall wait until he has more news for me.";
mes "You should also train and prepare for the future as well.";
- set tu_archer02, 10;
+ tu_archer02 = 10;
if (checkre(3))
getexp 1000,1000;
else
@@ -358,7 +358,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
next;
switch(select("Yes:No")){
case 1:
- set tu_archer01, 1;
+ tu_archer01 = 1;
mes "[Master Kavaruk]";
mes "Ah yes. Well then, please";
mes "take this message over to ^3131FFSeisner^000000 who is in the Training Grounds west of Icarus.";
@@ -397,7 +397,7 @@ payon_in02,54,13,3 script Master Kavaruk 1_M_JOBTESTER,{
mes "[Master Kavaruk]";
if(Class == Job_Archer || Class == Job_Archer_High || Class == Job_Baby_Archer){
mes "Now it is time to experience the principles you've just learned firsthand. Go speak to ^3131FFReidin Corse^000000, who is just outside of this building, and he'll tell you about the different skills.";
- set tu_archer01, 4;
+ tu_archer01 = 4;
} else {
mes "Still, there's no need for you to do any field training since only Archers can actually participate";
mes "in that.";
@@ -498,7 +498,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "Alright! We got a fresh Archer here! You're lucky you came to me, I'm the best teacher you can find! But let me warn you, I teach at a really fast pace, so try to keep";
mes "up. Okay? Good.";
next;
- set tu_archer01, 5;
+ tu_archer01 = 5;
mes "[Reidin Corse]";
mes "Okay, I'm ready to begin the lessons! Come back over here once you've got your bow and arrows and everything else ready, got it?";
close;
@@ -507,7 +507,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "some stuff. But even if you're";
mes "a little experienced, there's still room for you to learn. So try and keep up, got it?";
next;
- set tu_archer01, 5;
+ tu_archer01 = 5;
mes "[Reidin Corse]";
mes "Well, I'm ready to teach whenever you're ready to learn. Come back once your bow and arrows and everything else is ready, alright?";
close;
@@ -542,9 +542,9 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "if you can't aim at your targets, you'd be horrible at archery, right? You gotta have Accuracy!";
next;
mes "[Reidin Corse]";
- set .@skill_owl, getskilllv("AC_OWL");
+ .@skill_owl = getskilllv("AC_OWL");
if(.@skill_owl < 3){
- set tu_archer01, 6;
+ tu_archer01 = 6;
mes "Now, your first assignment";
mes "is to learn ^3131FFLevel 3 Owl's Eye^000000!";
if (checkre(0))
@@ -622,7 +622,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
} else {
emotion e_ag;
mes "Huh. So you already know a little about Owl's Eye already, huh? Well then, I guess I oughta talk about something you don't know about!";
- set tu_archer01, 7;
+ tu_archer01 = 7;
getexp 500,0;
close;
}
@@ -637,7 +637,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
close;
}
} else if(tu_archer01 == 6){
- set .@owl, getskilllv(43);
+ .@owl = getskilllv(43);
if(.@owl > 2){
mes "Ah, you're";
mes "finally back.";
@@ -649,7 +649,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "Ah, but your eyes look a lot sharper than they used to be.";
mes "Here, this is a small, special reward for you.";
specialeffect2 EF_WIND;
- set tu_archer01, 7;
+ tu_archer01 = 7;
getexp 500,0;
next;
emotion e_pif;
@@ -729,7 +729,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "practice from a distance!";
next;
- set .@eagle, getskilllv("AC_VULTURE");
+ .@eagle = getskilllv("AC_VULTURE");
if(.@eagle < 3){
if (checkre(0))
mes "Alright, Mandagora usually live around Geffen. I can send you to Geffen, so just travel north from there to find";
@@ -743,13 +743,13 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
if(MaxWeight - Weight < 1000){
mes "You've got plenty of arrows";
mes "for that, so go for it!";
- set tu_archer01, 8;
+ tu_archer01 = 8;
next;
} else {
next;
mes "[Reidin Corse]";
mes "Here's a little something to encourage you. Since Mandagora are Earth property monsters, these Fire Arrows will work really well.";
- set tu_archer01,8;
+ tu_archer01 = 8;
getitem 1752,300; //Fire_Arrow
next;
}
@@ -784,12 +784,12 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "You already";
mes "learned Vulture's Eye!";
mes "Why did I spend so much time explaining about it? Well, I guess we're ready to move on to the next lesson...";
- set tu_archer01,9;
+ tu_archer01 = 9;
getitem 1752,500; //Fire_Arrow
close;
}
} else if(tu_archer01 == 8){
- set .@eagle, getskilllv("AC_VULTURE");
+ .@eagle = getskilllv("AC_VULTURE");
if(.@eagle < 3){
if (checkre(0))
mes "Mandagora lives in the area north of Geffen. Learn up to Level 3 Vulture's Eye and get acquainted with your attack range.";
@@ -822,7 +822,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
} else {
mes "Ah, so you've learned";
mes "a little something about Vulture's Eye! What do you think about it now? Ah, and here's a little reward for you before I start the next lesson~";
- set tu_archer01,9;
+ tu_archer01 = 9;
getitem 1752,500; //Fire_Arrow
close;
}
@@ -844,7 +844,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "Whaddya think?";
mes "Exciting, yes?";
next;
- set .@eagle, getskilllv("AC_DOUBLE");
+ .@eagle = getskilllv("AC_DOUBLE");
if(.@eagle > 2){
mes "["+strcharinfo(0)+"]";
mes "I...";
@@ -858,7 +858,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "[Reidin Corse]";
mes "^333333*Sigh*^000000";
mes "Next lesson...";
- set tu_archer01, 10;
+ tu_archer01 = 10;
close;
} else {
mes "[Reidin Corse]";
@@ -876,7 +876,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
next;
if(.@eagle == 0){
specialeffect2 EF_WIND;
- set tu_archer01, 10;
+ tu_archer01 = 10;
getexp 0,500;
}
emotion e_no1;
@@ -926,7 +926,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "[Reidin Corse]";
mes "It's easier to find Izlude if you pass by Prontera, so head towards the fields near Prontera. Alright, off you go, " + strcharinfo(0) + "~";
}
- set tu_archer01,11;
+ tu_archer01 = 11;
close;
} else if(tu_archer01 == 11){
if (checkre(0) && countitem(940) < 10) {
@@ -954,7 +954,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "Good! You pass.";
mes "Don't forget that you gotta keep training and improve your skills. Before you know it, you'll be an expert almost as good as me!";
specialeffect2 EF_WIND;
- set tu_archer01, 12;
+ tu_archer01 = 12;
if (checkre(0))
delitem 940,10; //Grasshopper's_Leg
getexp 1000,1000;
@@ -982,7 +982,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "[Reidin Corse]";
mes "You might not be able";
mes "to see it now, but as you become more skilled, you'll eventually recognize all the benefits of this skill.";
- set tu_archer01, 13;
+ tu_archer01 = 13;
close;
} else if(tu_archer01 == 13){
mes "^333333*Sigh*^000000";
@@ -1027,7 +1027,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
} else {
mes "This stuff is just a little something to encourage you, so don't take it the wrong way! Now hurry up, get what I asked for,";
mes "and come back!";
- set tu_archer01,14;
+ tu_archer01 = 14;
getitem 601,10; //Wing_Of_Fly
getitem 501,10; //Red_Potion
getitem 602,1; //Wing_Of_Butterfly
@@ -1087,7 +1087,7 @@ pay_arche,103,165,5 script Reidin Corse#tu 4_M_REIDIN_KURS,{
mes "my final exam! Here, take";
mes "this little reward!";
specialeffect2 EF_WIND;
- set tu_archer01,16;
+ tu_archer01 = 16;
if (checkre(3))
getexp 1000,1000;
else
@@ -1241,7 +1241,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
next;
mes "[Seisner]";
mes "Hunters can ultimately transcend into ^3131FFSnipers^000000, Bards into ^3131FFMinstrels^000000, and Dancers into ^3131FFGypsies^000000. I know that's pretty complex.";
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
next;
break;
case 2:
@@ -1268,7 +1268,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "increase the amount of weight";
mes "that any character can carry. So if you have more STR, you can carry around more arrows.";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 2:
mes "[Seisner]";
@@ -1279,7 +1279,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "[Seisner]";
mes "One of the drawbacks of being an Archer is having weaker strength and lower Dodge Rate. However, the Dodge Rate disadvantage is lessened by increasing your ^FF3131AGI^000000.";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 3:
mes "[Seisner]";
@@ -1295,7 +1295,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "VIT might be helpful";
mes "depending on how you use it. Still, I wouldn't recommend focusing too much on increasing your VIT if you're an Archer.";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 4:
mes "[Seisner]";
@@ -1311,7 +1311,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "[Seisner]";
mes "For Hunters, one of the Second Job Classes for Archers, having higher INT will increase the damage inflicted by ^3131FFFalcons^000000.";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 5:
mes "[Seisner]";
@@ -1330,7 +1330,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "[Seisner]";
mes "Just like any other class, ^FF3131DEX^000000 increases ^3131FFAccuracy (HIT)^000000 and slightly enhances Attack Speed (ASPD).";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 6:
mes "[Seisner]";
@@ -1341,7 +1341,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "[Seisner]";
mes "For Hunters, one of the Second Classes for the Archer, LUK increases the chance of ^3131FFBlitz Beat^000000 occurring automatically. So Hunters who rely on their Falcons might want to invest in LUK.";
next;
- if(tu_archer01 == 1) set tu_archer01, 2;
+ if(tu_archer01 == 1) tu_archer01 = 2;
break;
case 7:
mes "[Seisner]";
@@ -1349,7 +1349,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "anything else that";
mes "you want to ask me?";
next;
- set .@exitwhile,1;
+ .@exitwhile = 1;
break;
}
if (.@exitwhile) break;
@@ -1376,7 +1376,7 @@ pay_arche,84,139,3 script Seisner 4_F_JOB_HUNTER,{
mes "If you feel comfortable enough with the knowledge I've taught you, you should go back to Master Kavaruk. But if you still have questions, you can always come and ask me.";
close2;
specialeffect2 EF_WIND;
- set tu_archer01, 3;
+ tu_archer01 = 3;
if(JobLevel == 1){
getexp 0,30;
} else if((JobLevel > 1) && (JobLevel < 11)){
@@ -1429,7 +1429,7 @@ pay_arche,76,135,3 script #Target HIDDEN_NPC,{ end; }
mes "Wow!";
mes "Thank you, thank you!";
mes "I''ll try my very best!";
- set tu_archer01, 15;
+ tu_archer01 = 15;
close;
case 2:
mes "[Acolyte]";
@@ -1454,7 +1454,7 @@ pay_arche,76,135,3 script #Target HIDDEN_NPC,{ end; }
mes "Y-you're a man!";
mes "D-d-d-don't tease me";
mes "like that! I'm serious!";
- set tu_archer01, 15;
+ tu_archer01 = 15;
close;
} else {
mes "And he's so brave";
@@ -1466,7 +1466,7 @@ pay_arche,76,135,3 script #Target HIDDEN_NPC,{ end; }
mes "^333333*Sniffle*^000000";
mes "I'll d-do my best to help you!";
mes "I wish you both happiness! (Waaaaaah~!)";
- set tu_archer01, 15;
+ tu_archer01 = 15;
close;
}
}
@@ -1578,11 +1578,11 @@ pay_arche,130,113,3 script Alchemist Guildmember#tu 2_M_ALCHE,{
mes "Flora field! I really";
mes "appreciate your help~";
- set .@alche_f,countitem(1032); // Blossom_Of_Maneater
- set .@alche_s,countitem(905); // Stem
- set .@f_zeny, .@alche_f * 130;
- set .@s_zeny, .@alche_s * 30;
- set .@total_zeny, .@f_zeny + .@s_zeny;
+ .@alche_f = countitem(1032); // Blossom_Of_Maneater
+ .@alche_s = countitem(905); // Stem
+ .@f_zeny = .@alche_f * 130;
+ .@s_zeny = .@alche_s * 30;
+ .@total_zeny = .@f_zeny + .@s_zeny;
if(countitem(1032) == 0){
delitem 905, .@alche_s; //Stem
} else if(countitem(905) == 0){
@@ -1677,7 +1677,7 @@ prontera,126,335,5 script Arthail 1_M_BARD,{
next;
mes "[Arthail]";
mes "Would you please go and see if there's any news being spread around in that area for me?";
- set tu_archer02, 3;
+ tu_archer02 = 3;
}
close;
} else if(tu_archer02 == 3){
@@ -1765,7 +1765,7 @@ prontera,126,335,5 script Arthail 1_M_BARD,{
mes "I can't help it then.";
mes "I'd better go check";
mes "this out on my own.";
- set tu_archer02, 5;
+ tu_archer02 = 5;
close;
} else if(tu_archer02 > 4 && tu_archer02 < 7){
@@ -1796,7 +1796,7 @@ prontera,126,335,5 script Arthail 1_M_BARD,{
mes "I guess I'll finally";
mes "have a song that";
mes "I can share with you.";
- set tu_archer02, 9;
+ tu_archer02 = 9;
close;
}
mes "...";
@@ -1823,7 +1823,7 @@ prontera,167,281,3 script New Guild Master#tu 4_M_MONK,{
mes "those who call themselves";
mes "my comrades will never";
mes "know the taste of defeat!";
- if(tu_archer02 == 3) set tu_archer02, 4;
+ if(tu_archer02 == 3) tu_archer02 = 4;
close;
}
@@ -1876,7 +1876,7 @@ prt_castle,76,165,6 script Minister#tu 1_M_JOBTESTER,{
next;
mes "[Minister]";
mes "Ah, there are a few stray cats running around, those Wild Roses, so those noises you heard must have been them. Everything is fine here in the palace.";
- set tu_archer02, 6;
+ tu_archer02 = 6;
close;
} else if(tu_archer02 == 7){
next;
@@ -1924,7 +1924,7 @@ OnTouch_:
mes "Contact the";
mes "Prontera Church.";
mes "Hurry, this is urgent!";
- set tu_archer02, 7;
+ tu_archer02 = 7;
close;
}
end;
@@ -1959,7 +1959,7 @@ monk_in,19,43,1 script Bishop Maugins 1_M_PASTOR,{
mes "Of course not!";
mes "The king and I regularly write to each other, but I haven't heard of anything in particular. Please don't worry yourself.";
next;
- set tu_archer02, 8;
+ tu_archer02 = 8;
break;
}
mes "[Bishop Maugins]";
diff --git a/npc/quests/first_class/tu_ma_th01.txt b/npc/quests/first_class/tu_ma_th01.txt
index a80f424b0..70966ad73 100644
--- a/npc/quests/first_class/tu_ma_th01.txt
+++ b/npc/quests/first_class/tu_ma_th01.txt
@@ -29,7 +29,7 @@ moc_fild12,166,369,0 script Trace of Battle#1 CLEAR_NPC,{
mes "used in a battle. A feeling";
mes "of acute dizziness overcomes";
mes "you after examining the scene.^000000";
- set tu_thief01, 6;
+ tu_thief01 = 6;
sc_start SC_POISON,60000,0;
specialeffect EF_VENOMDUST2;
close;
@@ -59,7 +59,7 @@ moc_fild12,166,369,0 script Trace of Battle#1 CLEAR_NPC,{
mes "The trail of this";
mes "battle decidedly";
mes "heads southward.^000000";
- set tu_thief01, 9;
+ tu_thief01 = 9;
close;
} else {
mes "^3355FFYou find signs of";
@@ -88,7 +88,7 @@ moc_fild12,166,369,0 script Trace of Battle#1 CLEAR_NPC,{
mes "The trail of this";
mes "battle decidedly";
mes "heads southward.^000000";
- set tu_magician01, 9;
+ tu_magician01 = 9;
close;
} else {
mes "^3355FFYou find signs of";
@@ -119,7 +119,7 @@ moc_fild12,173,215,0 script Trace of Battle#2 CLEAR_NPC,{
mes "^3355FFYou've found traces";
mes "of the pursuit which";
mes "continue eastward.^000000";
- set tu_thief01, 10;
+ tu_thief01 = 10;
close;
} else {
mes "^3355FFThese traces of";
@@ -138,7 +138,7 @@ moc_fild12,173,215,0 script Trace of Battle#2 CLEAR_NPC,{
mes "^3355FFYou've found traces";
mes "of the pursuit which";
mes "continue eastward.^000000";
- set tu_magician01, 10;
+ tu_magician01 = 10;
close;
} else {
mes "^3355FFThese traces of";
@@ -171,7 +171,7 @@ moc_fild12,276,165,0 script Trace of Battle#3 CLEAR_NPC,{
mes "footprints looks almost too";
mes "pronounced, as if it had been";
mes "made for somebody to find.^000000";
- set tu_thief01, 11;
+ tu_thief01 = 11;
close;
} else {
mes "^3355FFIt's a very";
@@ -192,7 +192,7 @@ moc_fild12,276,165,0 script Trace of Battle#3 CLEAR_NPC,{
mes "footprints looks almost too";
mes "pronounced, as if it had been";
mes "made for somebody to find.^000000";
- set tu_magician01, 11;
+ tu_magician01 = 11;
close;
} else {
mes "^3355FFIt's a very";
@@ -226,7 +226,7 @@ moc_fild11,39,163,0 script Trace of Battle#4 CLEAR_NPC,{
mes "someone } else got involved.";
mes "These prints are distinctly";
mes "clearer and much smaller.^000000";
- set tu_thief01, 12;
+ tu_thief01 = 12;
close;
} else {
mes "^3355FFFrom these traces,";
@@ -250,7 +250,7 @@ moc_fild11,39,163,0 script Trace of Battle#4 CLEAR_NPC,{
mes "someone } else got involved.";
mes "These prints are distinctly";
mes "clearer and much smaller.^000000";
- set tu_magician01, 12;
+ tu_magician01 = 12;
close;
} else {
mes "^3355FFFrom these traces,";
@@ -315,7 +315,7 @@ moc_fild11,205,52,0 script Trace of Battle#5 CLEAR_NPC,{
mes "it that I can't recognize.";
mes "Hopefully, this'll provide";
mes "some sort of clue to all this?";
- set tu_thief01, 13;
+ tu_thief01 = 13;
next;
mes "^3355FFYou take the piece";
mes "of cloth from the puddle";
@@ -384,7 +384,7 @@ moc_fild11,205,52,0 script Trace of Battle#5 CLEAR_NPC,{
mes "it that I can't recognize.";
mes "Hopefully, this'll provide";
mes "some sort of clue to all this?";
- set tu_magician01,13;
+ tu_magician01 = 13;
next;
mes "^3355FFYou take the piece";
mes "of cloth from the puddle";
@@ -519,7 +519,7 @@ moc_fild17,213,358,0 script Trace of Battle#8 CLEAR_NPC,{
mes "only two sets of footprints.";
mes "What happened to the other";
mes "set that you found earlier?^000000";
- set tu_thief01, 14;
+ tu_thief01 = 14;
close;
} else {
mes "^3355FFFrom the evidence";
@@ -544,7 +544,7 @@ moc_fild17,213,358,0 script Trace of Battle#8 CLEAR_NPC,{
mes "only two sets of footprints.";
mes "What happened to the other";
mes "set that you found earlier?^000000";
- set tu_magician01, 14;
+ tu_magician01 = 14;
close;
} else {
mes "^3355FFFrom the evidence";
@@ -579,10 +579,10 @@ moc_fild17,228,274,0 script Trace of Battle#9 CLEAR_NPC,{
mes "together, it looks like the battle continues towards the east.";
mes "But you should check this";
mes "spot a little bit more...^000000";
- set tu_thief01, 15;
+ tu_thief01 = 15;
close;
} else if(tu_thief01 == 15){
- set .@seek_tm, rand(1,10);
+ .@seek_tm = rand(1,10);
if(.@seek_tm == 7){
mes "^3355FFAfter investigating this";
mes "area more thoroughly,";
@@ -591,7 +591,7 @@ moc_fild17,228,274,0 script Trace of Battle#9 CLEAR_NPC,{
mes "You decide to keep it with";
mes "you, hoping that it will";
mes "provide more clues.^000000";
- set tu_thief01, 16;
+ tu_thief01 = 16;
close;
} else {
mes "^3355FFYou don't find anything,";
@@ -621,10 +621,10 @@ moc_fild17,228,274,0 script Trace of Battle#9 CLEAR_NPC,{
mes "together, it looks like the battle continues towards the east.";
mes "But you should check this";
mes "spot a little bit more...^000000";
- set tu_magician01, 15;
+ tu_magician01 = 15;
close;
} else if(tu_magician01 == 15){
- set .@seek_tm1, rand(1,10);
+ .@seek_tm1 = rand(1,10);
if(.@seek_tm1 == 7){
mes "^3355FFAfter investigating this";
mes "area more thoroughly,";
@@ -633,7 +633,7 @@ moc_fild17,228,274,0 script Trace of Battle#9 CLEAR_NPC,{
mes "You decide to keep it with";
mes "you, hoping that it will";
mes "provide more clues.^000000";
- set tu_magician01, 16;
+ tu_magician01 = 16;
close;
} else {
mes "^3355FFYou don't find anything,";
@@ -673,7 +673,7 @@ moc_fild17,34,292,0 script Trace of Battle#10 CLEAR_NPC,{
mes "who was being pursued, look";
mes "more erratic, as if exhaustion";
mes "and desperation were setting in. These traces lead to the west.^000000";
- set tu_thief01, 17;
+ tu_thief01 = 17;
close;
} else {
mes "^3355FFThe trail from";
@@ -694,7 +694,7 @@ moc_fild17,34,292,0 script Trace of Battle#10 CLEAR_NPC,{
mes "who was being pursued, look";
mes "more erratic, as if exhaustion";
mes "and desperation were setting in. These traces lead to the west.^000000";
- set tu_magician01, 17;
+ tu_magician01 = 17;
close;
} else {
mes "^3355FFThe trail from";
@@ -727,7 +727,7 @@ moc_fild18,346,296,0 script Trace of Battle#11 CLEAR_NPC,{
mes "in this area. It looks like";
mes "someone was injured";
mes "pretty badly around here.^000000";
- set tu_thief01, 18;
+ tu_thief01 = 18;
close;
} else {
mes "^3355FFSince someone involved";
@@ -750,7 +750,7 @@ moc_fild18,346,296,0 script Trace of Battle#11 CLEAR_NPC,{
mes "in this area. It looks like";
mes "someone was injured";
mes "pretty badly around here.^000000";
- set tu_magician01, 18;
+ tu_magician01 = 18;
close;
} else {
mes "^3355FFSince someone involved";
@@ -783,7 +783,7 @@ moc_fild18,309,257,0 script Trace of Battle#12 CLEAR_NPC,{
mes "like whoever is doing";
mes "the chasing is getting";
mes "much closer to his prey.^000000";
- set tu_thief01, 19;
+ tu_thief01 = 19;
close;
} else {
mes "^3355FFThe trail of this";
@@ -804,7 +804,7 @@ moc_fild18,309,257,0 script Trace of Battle#12 CLEAR_NPC,{
mes "like whoever is doing";
mes "the chasing is getting";
mes "much closer to his prey.^000000";
- set tu_magician01, 19;
+ tu_magician01 = 19;
close;
} else {
mes "^3355FFThe trail of this";
@@ -837,7 +837,7 @@ moc_fild18,177,333,0 script Trace of Battle#13 CLEAR_NPC,{
mes "joined the battle which";
mes "now seems to be leading";
mes "in the southwest direction.^000000";
- set tu_thief01, 20;
+ tu_thief01 = 20;
close;
} else {
mes "^3355FFIt looks like";
@@ -857,7 +857,7 @@ moc_fild18,177,333,0 script Trace of Battle#13 CLEAR_NPC,{
mes "joined the battle which";
mes "now seems to be leading";
mes "in the southwest direction.^000000";
- set tu_magician01, 20;
+ tu_magician01 = 20;
close;
} else {
mes "^3355FFIt looks like";
@@ -890,7 +890,7 @@ moc_fild18,111,303,0 script Trace of Battle#14 CLEAR_NPC,{
mes "joined in this battle and";
mes "the pursuit clearly heads";
mes "towards the south.^000000";
- set tu_thief01, 21;
+ tu_thief01 = 21;
close;
} else {
mes "^3355FFThe trail of";
@@ -911,7 +911,7 @@ moc_fild18,111,303,0 script Trace of Battle#14 CLEAR_NPC,{
mes "joined in this battle and";
mes "the pursuit clearly heads";
mes "towards the south.^000000";
- set tu_magician01, 21;
+ tu_magician01 = 21;
close;
} else {
mes "^3355FFThe trail of";
@@ -959,11 +959,11 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "that have been set off are";
mes "mixed with the ones which";
mes "haven't been triggered.^000000";
- set tu_thief01, 22;
+ tu_thief01 = 22;
close;
}
} else if(tu_thief01 == 22){
- set .@trap_tm, rand(1,3);
+ .@trap_tm = rand(1,3);
if(.@trap_tm == 3){
mes "^3355FFOne trap in particular";
mes "stands out to you more";
@@ -987,7 +987,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "happen. Perhaps you";
mes "should try something else.^000000";
delitem 506,1; //Green_Potion
- set tu_thief01, 23;
+ tu_thief01 = 23;
close;
}
case 2:
@@ -1026,7 +1026,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "check what might be inside.^000000";
delitem 511,1; //Green_Herb
delitem 716,1; //Red_Gemstone
- set tu_thief01, 24;
+ tu_thief01 = 24;
close;
} else if(countitem(511) > 0){
mes "^3355FFYou should try to";
@@ -1078,7 +1078,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "You take it with you in";
mes "hopes that it provides";
mes "some kind of evidence.^000000";
- set tu_thief01, 25;
+ tu_thief01 = 25;
close;
} else {
mes "^3355FFYou examine the area";
@@ -1113,11 +1113,11 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "that have been set off are";
mes "mixed with the ones which";
mes "haven't been triggered.^000000";
- set tu_magician01, 22;
+ tu_magician01 = 22;
close;
}
} else if(tu_magician01 == 22){
- set .@trap_tm, rand(1,3);
+ .@trap_tm = rand(1,3);
if(.@trap_tm == 3){
mes "^3355FFOne trap in particular";
mes "stands out to you more";
@@ -1141,7 +1141,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "happen. Perhaps you";
mes "should try something else.^000000";
delitem 506,1; //Green_Potion
- set tu_magician01, 23;
+ tu_magician01 = 23;
close;
}
case 2:
@@ -1180,7 +1180,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "check what might be inside.^000000";
delitem 511,1; //Green_Herb
delitem 716,1; //Red_Gemstone
- set tu_magician01, 24;
+ tu_magician01 = 24;
close;
} else if(countitem(511) > 0){
mes "^3355FFYou should try to";
@@ -1232,7 +1232,7 @@ moc_fild18,109,197,0 script Trace of Battle#15 CLEAR_NPC,{
mes "You take it with you in";
mes "hopes that it provides";
mes "some kind of evidence.^000000";
- set tu_magician01, 25;
+ tu_magician01 = 25;
close;
} else {
mes "^3355FFYou examine the area";
@@ -1280,7 +1280,7 @@ moc_fild18,156,96,0 script Trace of Battle#16 CLEAR_NPC,{
mes "from this investigation. You";
mes "better return and report your";
mes "findings to Yierhan soon.^000000";
- set tu_thief01, 26;
+ tu_thief01 = 26;
close;
} else {
mes "^3355FFThis is the end";
@@ -1316,7 +1316,7 @@ moc_fild18,156,96,0 script Trace of Battle#16 CLEAR_NPC,{
mes "from this investigation. You";
mes "better return and report your";
mes "findings to Yierhan soon.^000000";
- set tu_magician01, 26;
+ tu_magician01 = 26;
close;
} else {
mes "^3355FFThis is the end";
diff --git a/npc/quests/first_class/tu_magician01.txt b/npc/quests/first_class/tu_magician01.txt
index 01df38855..a3ef46322 100644
--- a/npc/quests/first_class/tu_magician01.txt
+++ b/npc/quests/first_class/tu_magician01.txt
@@ -131,7 +131,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "sitting! I'm bushed, so it's";
mes "time for a break. But we'll";
mes "continue this later, okay?";
- set tu_magician01, 1;
+ tu_magician01 = 1;
if (checkre(3))
getexp BaseLevel*3,BaseLevel*2;
else
@@ -209,7 +209,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "only slightly injured and the";
mes "Fire Wall won't necessarily";
mes "block its approach. So beware!";
- set .@eread_1,1;
+ .@eread_1 = 1;
next;
break;
case 2:
@@ -244,7 +244,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "afterwards, like Fire Bolt and";
mes "Fire Ball, to take advantage of";
mes "the monster's Earth property.";
- set .@eread_2,1;
+ .@eread_2 = 1;
next;
break;
case 3:
@@ -282,7 +282,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "the ^93DB70Wind^000000 property skills";
mes "that we Mages can use are";
mes "Lighning Bolt and Thunder Storm.";
- set .@eread_3,1;
+ .@eread_3 = 1;
next;
break;
case 4:
@@ -319,7 +319,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "actually freeze monsters.";
mes "While monsters are frozen by";
mes "Frost Diver, they're considered Water monsters. Interesting, huh?";
- set .@eread_4,1;
+ .@eread_4 = 1;
next;
break;
case 5:
@@ -352,7 +352,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "shield against long range";
mes "attacks or strong property";
mes "attacks, so be really careful!";
- set .@eread_5,1;
+ .@eread_5 = 1;
next;
break;
case 6:
@@ -369,7 +369,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "Alrighty, we'll";
mes "move on to the next";
mes "subject then. Ho ho ho~!";
- set tu_magician01,2;
+ tu_magician01 = 2;
specialeffect2 EF_HIT5;
if(.@eread_1) getexp 150,70;
if(.@eread_2) getexp 150,70;
@@ -456,7 +456,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "until you've collected";
mes "10 Chrysalis from them.";
mes "Then bring them to me, okay?";
- set tu_magician01, 3;
+ tu_magician01 = 3;
getexp 400,200;
specialeffect2 EF_HIT5;
close;
@@ -474,7 +474,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "from here and hunt Pupa";
mes "to get more Chrysalis, okay?";
mes "For now, I'll just heal you up.";
- set tu_magician01, 4;
+ tu_magician01 = 4;
percentheal 100,100;
close;
} else {
@@ -484,7 +484,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "By now, you must be more";
mes "used to using your skills, huh?";
mes "Anyway, let me know when you're ready for the next lesson, okay?";
- set tu_magician01, 5;
+ tu_magician01 = 5;
getexp 400,200;
specialeffect2 EF_HIT5;
close;
@@ -512,7 +512,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "By now, you must be more";
mes "used to using your skills, huh?";
mes "Anyway, let me know when you're ready for the next lesson, okay?";
- set tu_magician01, 5;
+ tu_magician01 = 5;
getexp 400,200;
specialeffect2 EF_HIT5;
close;
@@ -542,7 +542,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "of Soul Strike and increase";
mes "that skill's level, it will grow in strength and you'll be able";
mes "to cast it much more quickly.";
- set .@skill_e1,1;
+ .@skill_e1 = 1;
next;
break;
case 2:
@@ -562,7 +562,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "certain number of attacks,";
mes "depending on the level of the";
mes "Safety Wall skill that you use.";
- set .@skill_e2,1;
+ .@skill_e2 = 1;
next;
break;
case 3:
@@ -582,7 +582,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "good use of the destructive";
mes "power of the Fire Ball!";
next;
- set .@skill_e3,1;
+ .@skill_e3 = 1;
break;
case 4:
mes "[Mana]";
@@ -608,7 +608,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "skill, its damage and chance";
mes "of freezing monsters will also";
mes "increase. Pretty dangerous, eh? ^FFFFFFkamenriderblack^000000";
- set .@skill_e4,1;
+ .@skill_e4 = 1;
next;
break;
case 5:
@@ -627,7 +627,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "within a certain range.";
mes "It's an incredibly potent";
mes "ground targeting attack.";
- set .@skill_e5,1;
+ .@skill_e5 = 1;
next;
break;
case 6:
@@ -653,7 +653,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "Fire Well strategically";
mes "and effectively, it can";
mes "be a very powerful skill~";
- set .@skill_e6,1;
+ .@skill_e6 = 1;
next;
break;
case 7:
@@ -672,7 +672,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "learn Energy Coat, I'm";
mes "sure Blizardis will tell";
mes "you all you need to know.";
- set .@skill_e7,1;
+ .@skill_e7 = 1;
next;
break;
case 8:
@@ -690,7 +690,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "you to help you in your";
mes "training. I hope it comes";
mes "in handy when fighting...";
- set tu_magician01, 6;
+ tu_magician01 = 6;
getitem 1604,1; //Wand
specialeffect2 EF_HIT5;
if(.@skill_e1) getexp 300,100;
@@ -737,7 +737,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "done with what Yierhan";
mes "has you do, come back";
mes "and report to me, okay?";
- set tu_magician01, 7;
+ tu_magician01 = 7;
emotion e_heh;
warp "morocc",182,286;
close;
@@ -784,7 +784,7 @@ geffen,67,180,4 script New Mage Manager#M 8_F,{
mes "a little reward for helping";
mes "out both of our guilds. Once";
mes "again, thanks very much~";
- set tu_magician01, 28;
+ tu_magician01 = 28;
getitem 2321,1; //Silk_Robe
Zeny += 3000;
getexp 3000,1000;
diff --git a/npc/quests/first_class/tu_merchant.txt b/npc/quests/first_class/tu_merchant.txt
index 3acd91860..a13ec1aa6 100644
--- a/npc/quests/first_class/tu_merchant.txt
+++ b/npc/quests/first_class/tu_merchant.txt
@@ -53,19 +53,19 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "you learned";
mes "about Vending?";
next;
- set .@chk_vend, getskilllv("MC_VENDING");
+ .@chk_vend = getskilllv(MC_VENDING);
if((.@chk_vend > 3) && (.@chk_vend < 10)){
mes "[Guarnien]";
mes "Excellent!";
mes "You've taught yourself well. Here, you've earned this little reward~";
- set tu_merchant, 17;
+ tu_merchant = 17;
completequest 8240;
getexp 186,43;
next;
} else if(.@chk_vend == 10){
mes "[Guarnien]";
mes "Oh, I see that you're very serious about being a Merchant. I'm proud that you've managed to master this skill! Here, you deserve this reward!";
- set tu_merchant, 17;
+ tu_merchant = 17;
completequest 8240;
getexp 199,69;
next;
@@ -116,11 +116,11 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "to vend a total of 3 items at one time. Each time you level up the Vending skill, the total number of items you can vend will";
mes "increase by one.";
next;
- set .@chk_vend, getskilllv("MC_VENDING");
+ .@chk_vend = getskilllv(MC_VENDING);
if((.@chk_vend > 3) && (.@chk_vend < 10)){
mes "[Guarnien]";
mes "But I see that you must already know that, huh? Well, seeing as you're so clever, I think you've earned this little prize~";
- set tu_merchant, 17;
+ tu_merchant = 17;
completequest 8239;
getexp 186,60;
next;
@@ -134,19 +134,19 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "Please, take this";
mes "little reward for";
mes "all your efforts~";
- set tu_merchant, 17;
+ tu_merchant = 17;
completequest 8239;
getexp 199,69;
next;
} else {
mes "[Guarnien]";
mes "For your final assignment, I will ask you to learn the Vending skill up to Skill Level 4. Of course, once you do, I'll give you a little reward. I'll be waiting, so do your best~";
- set tu_merchant, 16;
+ tu_merchant = 16;
erasequest 8239;
setquest 8240;
close;
}
-
+
mes "[Guarnien]";
mes "Ah, now you have mastered the fundamentals of the Merchant class. Just keep practicing the basic principles, like researching the market for item prices, and you should be fine.";
next;
@@ -167,7 +167,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "learned Push Cart up";
mes "to Level 4 like I asked?";
next;
- set .@chk_cart, getskilllv("MC_PUSHCART");
+ .@chk_cart = getskilllv(MC_PUSHCART);
if(.@chk_cart > 3 && .@chk_cart < 10){
mes "[Guarnien]";
mes "Well done~";
@@ -175,7 +175,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "cooperative student.";
mes "You deserve a little";
mes "reward for your effort~";
- set tu_merchant, 15;
+ tu_merchant = 15;
erasequest 8238;
setquest 8239;
getexp 162,52;
@@ -187,7 +187,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "[Guarnien]";
mes "Excellent!";
mes "You've actually went above and beyond mastered the Push Cart skill. Great work!";
- set tu_merchant, 15;
+ tu_merchant = 15;
erasequest 8238;
setquest 8239;
getexp 186,60;
@@ -223,13 +223,13 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "the level of the Push Cart skill, your movement speed will slowly be restored. With Push Cart Level 10, a PushCart won't slow you";
mes "down at all!";
next;
- set .@chk_cart, getskilllv("MC_PUSHCART");
+ .@chk_cart = getskilllv(MC_PUSHCART);
if(.@chk_cart > 3 && .@chk_cart < 10){
mes "[Guarnien]";
mes "Ah, and I see that you've been focusing on learning Push Cart. Although you might still have a problem with your movement";
mes "speed, it shouldn't be a big deal.";
mes "Well done~";
- set tu_merchant, 15;
+ tu_merchant = 15;
erasequest 8237;
setquest 8238;
getexp 162,52;
@@ -242,7 +242,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "Wonderful! You've already";
mes "mastered the Push Cart skill.";
mes "You truly deserve a little bit of a reward~";
- set tu_merchant, 15;
+ tu_merchant = 15;
erasequest 8237;
setquest 8238;
getexp 186,60;
@@ -257,7 +257,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "skill up to Level 4? Once";
mes "you do that, I can go on to";
mes "my next lecture.";
- set tu_merchant, 14;
+ tu_merchant = 14;
close;
}
case 12:
@@ -266,7 +266,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "with learning that";
mes "^871F78Over Charge^000000 skill?";
next;
- set .@chk_over, getskilllv("MC_OVERCHARGE");
+ .@chk_over = getskilllv(MC_OVERCHARGE);
if(.@chk_over > 3 && .@chk_over < 10){
mes "[Guarnien]";
mes "Nice work!";
@@ -274,7 +274,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "you've done just";
mes "as I asked. Please,";
mes "take this little reward~";
- set tu_merchant, 13;
+ tu_merchant = 13;
erasequest 8236;
setquest 8237;
getexp 126,27;
@@ -288,7 +288,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "You actually";
mes "mastered Over Charge?";
mes "Most impressive! You deserve a small reward for your work!";
- set tu_merchant, 13;
+ tu_merchant = 13;
erasequest 8236;
setquest 8237;
getexp 142,33;
@@ -317,11 +317,11 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "[Guarnien]";
mes "Over Charge allows you to sell items to NPC shops for more Zeny. The higher your Over Charge Skill Level, the more Zeny you'll receive for items sold to NPCs.";
next;
- set .@chk_over, getskilllv("MC_OVERCHARGE");
+ .@chk_over = getskilllv(MC_OVERCHARGE);
if(.@chk_over > 3 && .@chk_over < 10){
mes "[Guarnien]";
mes "Ah, you've already learned Level 4 Over Charge. Perfect! Let me give you a little reward~";
- set tu_merchant, 13;
+ tu_merchant = 13;
erasequest 8235;
setquest 8236;
getexp 126,27;
@@ -333,7 +333,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
} else if(.@chk_over == 10){
mes "[Guarnien]";
mes "Amazing! You've already mastered the Over Charge skill! You must have wanted this reward badly~";
- set tu_merchant, 13;
+ tu_merchant = 13;
erasequest 8235;
setquest 8236;
getexp 142,33;
@@ -345,7 +345,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
} else {
mes "[Guarnien]";
mes "Personally, I think you should learn this skill for sure! For your next assignment, learn Over Charge up to Level 4. It shouldn't be too difficult to do.";
- set tu_merchant, 12;
+ tu_merchant = 12;
erasequest 8235;
setquest 8236;
next;
@@ -374,12 +374,12 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
next;
mes "[Guarnien]";
mes "Now, why don't you go to Prontera and try to buy 10 Red Potions from an NPC for the cheapest price again?";
- set tu_merchant, rand(6,8);
+ tu_merchant = rand(6,8);
close;
case 9:
mes "Let me see those";
mes "Red Potions. Ah, it seems you researched the market and bought the cheapest ones! Great work!";
- set tu_merchant, 11;
+ tu_merchant = 11;
changequest 8234,8235;
getexp 112,22;
next;
@@ -417,19 +417,19 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "Prontera's a bit far from here, isn't it? I'll just use this Kafra Warp-- Mahnsoo has a bunch for";
mes "some reason --to send you there right now. Get ready...!";
next;
- set tu_merchant, rand(6,8);
+ tu_merchant = rand(6,8);
warp "prontera",155,46;
end;
case 4:
mes "So, how is it going with learning the Discount skill? Like I always say, if you can't make a bargain, you can't be a Merchant!";
next;
mes "[Guarnien]";
- set .@chk_disc, getskilllv("MC_DISCOUNT");
+ .@chk_disc = getskilllv(MC_DISCOUNT);
if(.@chk_disc > 3 && .@chk_disc < 10){
mes "Ah, you've learned";
mes "how to use the Discount skill";
mes "well enough. Good, here's a little reward for your hard work~";
- set tu_merchant, 5;
+ tu_merchant = 5;
erasequest 8232;
setquest 8233;
getexp 83,11;
@@ -440,7 +440,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
} else if(.@chk_disc == 10){
mes "Incredible!";
mes "You've actually mastered the Discount skill! You're such a great student. You deserve a bit of a reward!";
- set tu_merchant, 5;
+ tu_merchant = 5;
erasequest 8232;
setquest 8233;
getexp 97,18;
@@ -467,7 +467,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "mastered at ^871F78Level 10^000000. The higher the skill level, the less you have to pay for items at NPC shops.";
next;
mes "[Guarnien]";
- set .@chk_disc, getskilllv("MC_DISCOUNT");
+ .@chk_disc = getskilllv(MC_DISCOUNT);
if(.@chk_disc > 3 && .@chk_disc < 10){
mes "Oooh, good work.";
mes "I see that you've";
@@ -475,7 +475,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "to Level 4 already.";
mes "Here, take this";
mes "small reward~";
- set tu_merchant, 5;
+ tu_merchant = 5;
erasequest 8231;
setquest 8232;
getexp 83,11;
@@ -487,7 +487,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
} else if(.@chk_disc == 10){
mes "Incredible!";
mes "You've actually mastered the Discount skill! You're such a great student. You deserve a bit of a reward!";
- set tu_merchant, 5;
+ tu_merchant = 5;
erasequest 8231;
setquest 8232;
getexp 97,18;
@@ -505,7 +505,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
next;
mes "[Guarnien]";
mes "Still, you can't ignore the fact that bargaining is an essential skill for a Merchant! Come back to me when you're ready~";
- set tu_merchant, 4;
+ tu_merchant = 4;
erasequest 8231;
setquest 8232;
close;
@@ -523,13 +523,13 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "So if you use this skill too often, you might end up bankrupt! So be really careful. Also, as the Skill Level for Mammonite increases, so does the attack strength and Zeny consumption.";
next;
mes "[Guarnien]";
- set .@chk_mam, getskilllv("MC_MAMMONITE");
+ .@chk_mam = getskilllv(MC_MAMMONITE);
if(.@chk_mam > 3 && .@chk_mam < 10){
mes "Ah, I see that you've already tried this skill. How much money have you wasted using Mammonite? Not too much, I hope.";
next;
mes "[Guarnien]";
mes "Well, since you're still green, I feel awfully sorry if you've wasted Zeny. Why don't you take this as compensation?";
- set tu_merchant, 3;
+ tu_merchant = 3;
erasequest 8230;
setquest 8231;
getexp 70,12;
@@ -539,7 +539,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
close;
} else {
mes "Okay. Now I think we're ready for me to discuss the ^871F78Discount^000000 skill. Come back when you'd like me to tell you more about it, okay?";
- set tu_merchant, 3;
+ tu_merchant = 3;
erasequest 8230;
setquest 8231;
close;
@@ -552,7 +552,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "like I asked?";
next;
mes "[Guarnien]";
- set .@chk_soji, getskilllv("MC_INCCARRY");
+ .@chk_soji = getskilllv(MC_INCCARRY);
if(.@chk_soji > 3 && .@chk_soji < 10){
mes "Ah. I can tell that you have. Not bad! By now you should be able to learn the ^871F78Discount^000000 skill, but I'll teach you about that later.";
next;
@@ -565,10 +565,10 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "[Guarnien]";
mes "This skill works exactly like a ^871F78Magnifier^000000, so you won't have to spend any Zeny on them. Also, this skill is mastered at ^871F78Level 1^000000.";
next;
- if(getskilllv("MC_IDENTIFY")){
+ if(getskilllv(MC_IDENTIFY)){
mes "[Guarnien]";
mes "I see in your eyes that you've already learned to appraise items. Haha, although having that knowledge is reward in itself, let me give you something extra!";
- set tu_merchant, 2;
+ tu_merchant = 2;
erasequest 8229;
setquest 8230;
getexp 58,11;
@@ -587,17 +587,17 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
}
mes "Alright, next time";
mes "I'll talk about the Mammonite skill. For now, let me take a little bit of a break from all of this arduous lecture. ^666666*Whew!*^000000";
- set tu_merchant, 2;
+ tu_merchant = 2;
erasequest 8229;
setquest 8230;
close;
}
-
+
mes "You've just started out as a Merchant, haven't you? How would you like to learn the fundamentals of business from an experienced colleague?";
next;
if(select("Sure!:I'll make it on my own!")==1){
- set tu_merchant, 1;
- if(getskilllv("MC_INCCARRY") < 4){
+ tu_merchant = 1;
+ if(getskilllv(MC_INCCARRY) < 4){
setquest 8229;
mes "[Guarnien]";
if(Sex == 1){
@@ -635,9 +635,9 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "This skill works exactly like a ^871F78Magnifier^000000, so you won't have to spend any Zeny on them. Also, this skill is mastered at ^871F78Level 1^000000.";
next;
mes "[Guarnien]";
- if(getskilllv("MC_IDENTIFY")){
+ if(getskilllv(MC_IDENTIFY)){
mes "I see in your eyes that you've already learned to appraise items. Haha, although having that knowledge is reward in itself, let me give you something extra!";
- set tu_merchant, 2;
+ tu_merchant = 2;
erasequest 8229;
setquest 8230;
getexp 58,11;
@@ -657,7 +657,7 @@ alberta_in,70,51,5 script Guarnien 4W_M_02,{
mes "more about the Discount";
mes "skill later. I always manage";
mes "to forget about that!";
- set tu_merchant,2;
+ tu_merchant = 2;
erasequest 8229;
setquest 8230;
close;
@@ -711,7 +711,7 @@ prontera,66,111,3 script Sagle 4_KID01,{
close;
} else {
Zeny -= 420;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -759,7 +759,7 @@ prontera,66,111,3 script Sagle 4_KID01,{
end;
} else {
Zeny -= 410;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -806,7 +806,7 @@ prontera,66,111,3 script Sagle 4_KID01,{
close;
} else {
Zeny -= 390;
- set tu_merchant, 9;
+ tu_merchant = 9;
getitem 501,10; //Red_Potion
close;
}
@@ -863,7 +863,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
close;
} else {
Zeny -= 340;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 569,10; //Novice_Potion
close;
}
@@ -902,7 +902,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
close;
} else {
Zeny -= 390;
- set tu_merchant, 9;
+ tu_merchant = 9;
getitem 501,10; //Red_Potion
close;
}
@@ -941,7 +941,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
close;
} else {
Zeny -= 400;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -966,7 +966,7 @@ prontera,93,330,3 script Kellion 4W_M_01,{
mes "Well, hopefully, there's no truth to it whatsoever. None at all...";
close;
}
-
+
// Aigie
//============================================================
prt_in,169,11,3 script Aigie 4_F_03,{
@@ -1001,7 +1001,7 @@ prt_in,169,11,3 script Aigie 4_F_03,{
close;
} else {
Zeny -= 390;
- set tu_merchant, 9;
+ tu_merchant = 9;
getitem 501,10; //Red_Potion
close;
}
@@ -1046,7 +1046,7 @@ prt_in,169,11,3 script Aigie 4_F_03,{
close;
} else {
Zeny -= 420;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1091,7 +1091,7 @@ prt_in,169,11,3 script Aigie 4_F_03,{
close;
} else {
Zeny -= 340;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 569,10; //Novice_Potion
close;
}
@@ -1112,7 +1112,7 @@ prt_in,169,11,3 script Aigie 4_F_03,{
mes "However, money can be much more dependable than some people I know. You can rely on money more than anything else in this world.";
close;
}
-
+
// Jayon
//============================================================
prontera,247,129,3 script Jayon 4_M_03,{
@@ -1146,7 +1146,7 @@ prontera,247,129,3 script Jayon 4_M_03,{
close;
} else {
Zeny -= 410;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1192,7 +1192,7 @@ prontera,247,129,3 script Jayon 4_M_03,{
close;
} else {
Zeny -= 400;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1239,7 +1239,7 @@ prontera,247,129,3 script Jayon 4_M_03,{
close;
} else {
Zeny -= 410;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1294,7 +1294,7 @@ prt_in,251,129,3 script Maos 4_M_SEAMAN,{
close;
} else {
Zeny -= 420;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1329,7 +1329,7 @@ prt_in,251,129,3 script Maos 4_M_SEAMAN,{
close;
} else {
Zeny -= 340;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
@@ -1364,7 +1364,7 @@ prt_in,251,129,3 script Maos 4_M_SEAMAN,{
close;
} else {
Zeny -= 400;
- set tu_merchant, 10;
+ tu_merchant = 10;
getitem 501,10; //Red_Potion
close;
}
diff --git a/npc/quests/first_class/tu_sword.txt b/npc/quests/first_class/tu_sword.txt
index 66962d97f..33cfd9fa6 100644
--- a/npc/quests/first_class/tu_sword.txt
+++ b/npc/quests/first_class/tu_sword.txt
@@ -98,7 +98,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Magnum Break is ideal for use";
mes "when surrounded by foes, but also keep in mind that it also inflicts a little damage on its caster.";
next;
- set .@chk_magnum, getskilllv("SM_MAGNUM");
+ .@chk_magnum = getskilllv(SM_MAGNUM);
if(.@chk_magnum > 5){
mes "[Shurank]";
mes "I see that you've been training in the use of Magnum Break. Although it is an awesome skill, it's not for every Swordman. Still, there's no harm in learning it.";
@@ -106,7 +106,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here is a humble reward for";
mes "your great efforts. But do not let your talents allow you to grow arrogant!";
- set tu_swordman, 23;
+ tu_swordman = 23;
completequest 8228;
if (checkre(3))
getexp 186,0;
@@ -165,7 +165,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Before you go, please take this.";
mes "I hope that you make good use of it as you train to become stronger and stronger. Good luck out there.";
- set tu_swordman, 23;
+ tu_swordman = 23;
completequest 8228;
getitem 1113,1; //Scimiter
close;
@@ -186,8 +186,8 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "One Handed Sword Mastery";
mes "increases the damage of Daggers and One Handed Swords while Two Handed Sword Mastery increases the damage of Two Handed Swords.";
next;
- set .@chk_hanson, getskilllv("SM_SWORD");
- set .@chk_yangson, getskilllv("SM_TWOHAND");
+ .@chk_hanson = getskilllv(SM_SWORD);
+ .@chk_yangson = getskilllv(SM_TWOHAND);
if((.@chk_hanson > 9) || (.@chk_yangson > 9)){
mes "[Shurank]";
mes "Ah, from the way you handle your Sword, I see that you have mastered a Sword Mastery. I'm thoroughly impressed.";
@@ -197,7 +197,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "this small reward";
mes "in recognition of";
mes "your accomplishment.";
- set tu_swordman, 22;
+ tu_swordman = 22;
changequest 8227,8228;
if (checkre(3))
getexp 186,0;
@@ -212,7 +212,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Next time, I will tell you more about the Magnum Break skill.";
mes "I'll be here when you're ready to learn more.";
- set tu_swordman, 22;
+ tu_swordman = 22;
close;
case 13:
mes "You should leave as soon as possible to meet Dequ'ee in Geffen. You do remember where to find him, don't you?";
@@ -222,11 +222,11 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "training for the Endure";
mes "skill coming along?";
next;
- set .@chk_endure, getskilllv("SM_ENDURE");
+ .@chk_endure = getskilllv(SM_ENDURE);
if(.@chk_endure > 1){
mes "[Shurank]";
mes "From that gleen of toughness upon your skin, I see now that I was foolish to ask. Well done~";
- set tu_swordman, 13;
+ tu_swordman = 13;
erasequest 8221;
setquest 8222;
if (checkre(3))
@@ -256,7 +256,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "learned how to use";
mes "the Endure skill yet?";
next;
- set .@chk_endure, getskilllv("SM_ENDURE");
+ .@chk_endure = getskilllv(SM_ENDURE);
if((.@chk_endure > 0) && (.@chk_endure < 2)){
mes "[Shurank]";
mes "I see that you";
@@ -277,7 +277,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Since you've learned the Endure skill already, I don't think I need to explain it any further. You've done well.";
erasequest 8221;
setquest 8222;
- set tu_swordman, 13;
+ tu_swordman = 13;
next;
mes "[Shurank]";
mes "Ah, once again, I have";
@@ -291,7 +291,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
} else if(.@chk_endure > 1){
mes "[Shurank]";
mes "From that gleen of toughness upon your skin, I see now that I was foolish to ask. Well done~";
- set tu_swordman, 13;
+ tu_swordman = 13;
erasequest 8221;
setquest 8222;
if (checkre(3))
@@ -319,7 +319,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "all I know about";
mes "the Endure skill.";
next;
- set .@chk_endure, getskilllv("SM_ENDURE");
+ .@chk_endure = getskilllv(SM_ENDURE);
if(.@chk_endure == 0){
mes "[Shurank]";
mes "As you've noticed, receiving any damage causes you to reel in pain, stunning you for an instant. Thus, rapidly attacking enemies are dangerous since it's difficult to counter or escape them.";
@@ -335,7 +335,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Alright. Now I want you to train in the use of the Endure skill. You can become a great Swordman";
mes "if you can endure attacks";
mes "from your enemies!";
- set tu_swordman, 11;
+ tu_swordman = 11;
changequest 8220,8221;
close;
} else if((.@chk_endure > 0) && (.@chk_endure < 2)){
@@ -356,7 +356,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
next;
mes "[Shurank]";
mes "Since you've learned the Endure skill already, I don't think I need to explain it any further. You've done well.";
- set tu_swordman, 13;
+ tu_swordman = 13;
erasequest 8221;
setquest 8222;
next;
@@ -371,7 +371,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
} else if(.@chk_endure > 1){
mes "[Shurank]";
mes "Hm. But judging from the gleen of toughness on your skin, I suppose teaching you about Endure would be a waste of your time. Well done!";
- set tu_swordman, 13;
+ tu_swordman = 13;
erasequest 8221;
setquest 8222;
if (checkre(3))
@@ -393,11 +393,11 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "learning more about";
mes "the use of the Provoke skill?";
next;
- set .@chk_provoke, getskilllv("SM_PROVOKE");
+ .@chk_provoke = getskilllv(SM_PROVOKE);
if((.@chk_provoke > 4) && (.@chk_provoke < 10)){
mes "[Shurank]";
mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts.";
- set tu_swordman, 10;
+ tu_swordman = 10;
if (checkre(3))
getexp 112,0;
else
@@ -414,7 +414,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "up your mind to become";
mes "an outstanding Swordman.";
mes "Here is a small reward...";
- set tu_swordman, 10;
+ tu_swordman = 10;
if (checkre(3))
getexp 126,0;
else
@@ -436,7 +436,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "in the use of the Provoke";
mes "skill been progressing?";
next;
- set .@chk_provoke, getskilllv("SM_PROVOKE");
+ .@chk_provoke = getskilllv(SM_PROVOKE);
if((.@chk_provoke > 0) && (.@chk_provoke < 5)){
mes "[Shurank]";
mes "Ah, now I can see that you";
@@ -461,12 +461,12 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
next;
mes "[Shurank]";
mes "Alright, come back to me when you become sufficiently skilled in the use of Provoke. In the meantime, keep training.";
- set tu_swordman, 9;
+ tu_swordman = 9;
close;
} else if((.@chk_provoke > 4) && (.@chk_provoke < 10)){
mes "[Shurank]";
mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts.";
- set tu_swordman, 10;
+ tu_swordman = 10;
if (checkre(3))
getexp 112,0;
else
@@ -483,7 +483,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "up your mind to become";
mes "an outstanding Swordman.";
mes "Here is a small reward...";
- set tu_swordman, 10;
+ tu_swordman = 10;
if (checkre(3))
getexp 126,0;
else
@@ -506,7 +506,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Well, now that we taken care";
mes "of that, let me continue your instruction on Swordman skills. This time, we'll cover Provoke.";
next;
- set .@chk_provoke, getskilllv("SM_PROVOKE");
+ .@chk_provoke = getskilllv(SM_PROVOKE);
if(.@chk_provoke == 0){
mes "[Shurank]";
mes "You haven't";
@@ -534,7 +534,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Now I ask that you train yourself in the use of Provoke. Come back";
mes "to me when you have a sufficient understanding of the use of the Provoke skill.";
- set tu_swordman, 8;
+ tu_swordman = 8;
changequest 8217,8218;
close;
} else if((.@chk_provoke > 0) && (.@chk_provoke < 5)){
@@ -561,13 +561,13 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Now I ask that you train yourself in the use of Provoke. Come back";
mes "to me when you have a sufficient understanding of the use of the Provoke skill.";
- set tu_swordman, 9;
+ tu_swordman = 9;
changequest 8218,8219;
close;
} else if((.@chk_provoke > 4) && (.@chk_provoke < 10)){
mes "[Shurank]";
mes "Ah, I see that you have a fairly good understanding of the Provoke skill. Let me reward you in this small way for your efforts.";
- set tu_swordman, 10;
+ tu_swordman = 10;
changequest 8219,8220;
if (checkre(3))
getexp 112,0;
@@ -585,7 +585,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "up your mind to become";
mes "an outstanding Swordman.";
mes "Here is a small reward...";
- set tu_swordman, 10;
+ tu_swordman = 10;
completequest 8218;
completequest 8219;
completequest 8220;
@@ -645,7 +645,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Although there's a Warp service,";
mes "I recommend traveling by foot. You cannot grow strong without testing your strength and practicing your skills!";
- set tu_swordman, 6;
+ tu_swordman = 6;
changequest 8215,8216;
close;
case 4:
@@ -657,7 +657,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "it comes to damage, you must be";
mes "able to both take it and dish it out.";
next;
- set .@chk_hp, getskilllv("SM_RECOVERY");
+ .@chk_hp = getskilllv(SM_RECOVERY);
if(.@chk_hp == 0){
mes "[Shurank]";
mes "But judging from that";
@@ -675,13 +675,13 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "I strongly suggest that you";
mes "learn this skill! Of course, there are other Swordman skills that are just as important, though...";
- set tu_swordman, 5;
+ tu_swordman = 5;
next;
} else if(.@chk_hp == 10){
mes "[Shurank]";
mes "Ah! That healthy glow!";
mes "I see that you've mastered this skill already. Let me give you a little reward for your hard training!";
- set tu_swordman, 5;
+ tu_swordman = 5;
if (checkre(3))
getexp 112,0;
else
@@ -701,7 +701,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
next;
mes "[Shurank]";
mes "Increase HP Recovery is a fairly important skill, but whether or not you want to master that is really up to you.";
- set tu_swordman, 5;
+ tu_swordman = 5;
next;
}
mes "[Shurank]";
@@ -715,7 +715,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "if you want me to acknowledge";
mes "you as a fellow Swordman.";
next;
- set .@chk_bash, getskilllv("SM_BASH");
+ .@chk_bash = getskilllv(SM_BASH);
if(.@chk_bash == 10){
mes "[Shurank]";
mes "Those calluses...!";
@@ -724,7 +724,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping";
mes "all of the basics.";
- set tu_swordman, 4;
+ tu_swordman = 4;
if (checkre(3))
getexp 97,0;
else
@@ -743,7 +743,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Bash. If you want to grow as a Swordman, you will have great";
mes "need to master this skill.";
next;
- set .@chk_bash, getskilllv("SM_BASH");
+ .@chk_bash = getskilllv(SM_BASH);
if((.@chk_bash > 4) && (.@chk_bash < 10)){
mes "[Shurank]";
mes "Hm. It doesn't look like you've gained mastery of Bash, but it seems like you're trying hard.";
@@ -762,7 +762,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here's a little reward for all of your hard work. I hope you realize the importance of using Bash as";
mes "you grow stronger.";
- set tu_swordman, 3;
+ tu_swordman = 3;
if (checkre(3))
getexp 83,0;
else
@@ -776,7 +776,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping";
mes "all of the basics.";
- set tu_swordman, 4;
+ tu_swordman = 4;
if (checkre(3))
getexp 97,0;
else
@@ -793,7 +793,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "Have you been learning";
mes "the art of using Bash? I fervently believe that the Bash skill is the essense of Swordmanship!";
next;
- set .@chk_bash, getskilllv("SM_BASH");
+ .@chk_bash = getskilllv(SM_BASH);
if((.@chk_bash > 0) && (.@chk_bash < 5)){
mes "[Shurank]";
mes "I see that you understand";
@@ -814,7 +814,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Still, for your training efforts, let me give you a humble reward. But remember, we still have more";
mes "of the fundamentals to cover!";
- set tu_swordman, 2;
+ tu_swordman = 2;
if (checkre(3))
getexp 58,0;
else
@@ -846,7 +846,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
next;
mes "[Shurank]";
mes "For your efforts and patience, I offer you this small reward. Please take it and grow even stronger...";
- set tu_swordman, 3;
+ tu_swordman = 3;
setquest 8211;
if (checkre(3))
getexp 83,0;
@@ -864,7 +864,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping";
mes "all of the basics.";
- set tu_swordman, 4;
+ tu_swordman = 4;
if (checkre(3))
getexp 97,0;
else
@@ -892,7 +892,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "fundamentals, the first of";
mes "which is the ^5D478BBash^000000 skill.";
next;
- set .@chk_bash, getskilllv("SM_BASH");
+ .@chk_bash = getskilllv(SM_BASH);
if(.@chk_bash == 0){
mes "[Shurank]";
mes "^333333*Gasp*^000000";
@@ -900,7 +900,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
next;
mes "[Shurank]";
mes "Now, if you wish to become a true Swordman, you must learn the Bash skill. There's no question about it: You've got to know these basics! Take this, and learn to Bash!";
- set tu_swordman, 1;
+ tu_swordman = 1;
if (checkre(3))
getexp 49,0;
else
@@ -927,7 +927,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Still, for your training efforts, let me give you a humble reward. But remember, we still have more";
mes "of the fundamentals to cover!";
- set tu_swordman, 2;
+ tu_swordman = 2;
changequest 8211,8212;
if (checkre(3))
getexp 58,0;
@@ -953,7 +953,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Still, for your training efforts, let me give you a humble reward. But remember, we still have more";
mes "of the fundamentals to cover!";
- set tu_swordman, 3;
+ tu_swordman = 3;
changequest 8212,8213;
if (checkre(3))
getexp 83,0;
@@ -971,7 +971,7 @@ izlude_in,82,163,3 script Shurank 4_M_JOB_KNIGHT1,{
mes "[Shurank]";
mes "Here's a small prize in recognition of your efforts thus far. But don't relax yet! You still have a long way to go before grasping";
mes "all of the basics.";
- set tu_swordman, 4;
+ tu_swordman = 4;
completequest 8211;
completequest 8212;
completequest 8213;
@@ -1069,7 +1069,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
mes "[Dequ'ee]";
mes "Why don't you report back to Shurank now? I guess he still";
mes "wants to show you the ropes of Swordmanship.";
- set tu_swordman, 21;
+ tu_swordman = 21;
changequest 8226,8227;
close2;
if (checkre(0))
@@ -1130,7 +1130,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
next;
mes "[Dequ'ee]";
mes "Hurry over to Morroc and monitor Bankley in case he does anything desperate. If something happens, report to me right away!";
- set tu_swordman, 19;
+ tu_swordman = 19;
changequest 8224,8225;
if (checkre(3))
getexp 162,0;
@@ -1545,7 +1545,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
mes "can make sense of this";
mes "thing! Give me a while";
mes "to formulate an algorithm!";
- set tu_swordman, 17;
+ tu_swordman = 17;
close;
case 2:
mes "[Dequ'ee]";
@@ -1821,7 +1821,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
mes "can make sense of this";
mes "thing! Give me a while";
mes "to formulate an algorithm!";
- set tu_swordman, 18;
+ tu_swordman = 18;
close;
case 2:
mes "[Dequ'ee]";
@@ -1850,10 +1850,10 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
}
}
if(tu_swordman == 15){
- set .@hans$, "victkleyundncem";
- set .@bang$, "hekdlfiDrindkelsd";
- set .@mutr$, "ConBanfoevidehi";
- set .@geil$, "TheisWesomeof";
+ .@hans$ = "victkleyundncem";
+ .@bang$ = "hekdlfiDrindkelsd";
+ .@mutr$ = "ConBanfoevidehi";
+ .@geil$ = "TheisWesomeof";
mes "[Dequ'ee]";
mes "Ah, you're back.";
mes "I've just got a new";
@@ -1910,7 +1910,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
mes "We have to figure this";
mes "out, it's the only clue";
mes "that we have...";
- set tu_swordman, 16;
+ tu_swordman = 16;
changequest 8223,8224;
close;
} else {
@@ -1920,12 +1920,10 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
close;
}
} else {
-
mes "[Dequ'ee]";
mes "...Are you sure that you heard";
mes "him right? Why don't you go check it out again?";
close;
-
}
} else {
mes "[Dequ'ee]";
@@ -1934,14 +1932,12 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
close;
}
} else {
-
mes "[Dequ'ee]";
mes "Are you sure that's right?";
mes "No, no, I don't think it is.";
mes "Would you check that code and interrogate the suspects again";
mes "if you need to?";
close;
-
}
}
if(tu_swordman == 14){
@@ -1986,7 +1982,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
mes "Morroc is a little far. Alright, I'll drop you off somewhere";
mes "near that city.";
next;
- set tu_swordman, 14;
+ tu_swordman = 14;
changequest 8222,8223;
warp "moc_fild07",359,201;
close;
@@ -2179,7 +2175,7 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
next;
mes "[Dequ'ee]";
mes "Thank you for taking the trouble to come this far. Let me reward you with some experience points.";
- set tu_swordman, 7;
+ tu_swordman = 7;
changequest 8216,8217;
if (checkre(3))
getexp 112,0;
@@ -2246,7 +2242,6 @@ geffen,154,143,3 script Dequ'ee 4_M_JOB_KNIGHT2,{
break;
}
}
-
mes "Hmm...?";
mes "Do you have any";
mes "business with me?";
@@ -2291,7 +2286,7 @@ morocc_in,51,101,3 script Geil 4_M_ORIENT02,{
next;
mes "[Geil]";
mes "What's so important about this code, and why do you guys keep hounding me about the murder?!";
- set tu_swordman, 15;
+ tu_swordman = 15;
close;
}
mes "We should all";
@@ -2332,7 +2327,7 @@ morocc,82,292,5 script Muetro 4_M_02,{
mes "Happy now? Now";
mes "leave me alone and";
mes "catch the murderer.";
- set tu_swordman, 15;
+ tu_swordman = 15;
close;
}
mes "^666666*Sigh*^000000";
@@ -2395,7 +2390,7 @@ morocc,240,72,3 script Hans 4_M_04,{
next;
mes "[Hans]";
mes "It's like he used magic or something to make it stick out in my brain. Please leave me alone, this is all I know!";
- set tu_swordman, 15;
+ tu_swordman = 15;
close;
}
mes "I'm sorry...";
@@ -2420,7 +2415,7 @@ morocc_in,12,156,3 script Bankley 4W_M_01,{
next;
mes "^3355FFBankley had a sad, pitiable expression on his face. Since the color is still fresh in his cheeks, he died only a little while ago.";
mes "^3355FFThere is a long, deep wound in his chest, and a blood drenched knife is clenched in his right hand.^000000";
- set tu_swordman, 20;
+ tu_swordman = 20;
changequest 8225,8226;
close;
}
@@ -2477,7 +2472,7 @@ morocc_in,12,156,3 script Bankley 4W_M_01,{
mes "and wasting your time.";
mes "You're better off hunting";
mes "for the real culprit!";
- set tu_swordman, 15;
+ tu_swordman = 15;
close;
}
mes "Even though I can't afford it now, my dream is to travel around the world and visit all of its great cities!";
diff --git a/npc/quests/first_class/tu_thief01.txt b/npc/quests/first_class/tu_thief01.txt
index 059a76477..8d6788ce6 100644
--- a/npc/quests/first_class/tu_thief01.txt
+++ b/npc/quests/first_class/tu_thief01.txt
@@ -86,7 +86,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "So if you're feeling like the damage you're making is pretty weak, you might want more stat points in ^2F4F2FSTR^000000. How high your raise your own STR is really up to you.";
- set tu_thief01, 1;
+ tu_thief01 = 1;
getexp 200,100;
specialeffect2 EF_HIT5;
close;
@@ -102,7 +102,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "[Yierhan]";
mes "Sure, ^23238EDEX^000000 and LUK can";
mes "also increase your attack damage, but they're insignificant compared to STR. I repeat: ^660000insignificant^000000.";
- set tu_thief01, 1;
+ tu_thief01 = 1;
getexp 400,200;
specialeffect2 EF_HIT5;
close;
@@ -117,7 +117,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "So if you're feeling like the damage you're making is pretty weak, you might want more stat points in ^2F4F2FSTR^000000. How high your raise your own STR is really up to you.";
- set tu_thief01, 1;
+ tu_thief01 = 1;
getexp 200,100;
specialeffect2 EF_HIT5;
close;
@@ -129,17 +129,17 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "[Yierhan]";
mes "So level up your skills, learn a few new ones if you want, and";
mes "then come back over here.";
- set tu_thief01, 2;
+ tu_thief01 = 2;
close;
} else if(tu_thief01 == 2){
mes "Okay, let me see your skills. You know you gotta change your battle strategy depending on what skills you have, right? Skills are just as important as stats!";
next;
- set .@chk_th_skill1, getskilllv("TF_DOUBLE");
- set .@chk_th_skill2, getskilllv("TF_MISS");
- set .@chk_th_skill3, getskilllv("TF_STEAL");
- set .@chk_th_skill4, getskilllv("TF_HIDING");
- set .@chk_th_skill5, getskilllv("TF_POISON");
- set .@chk_th_skill6, getskilllv("TF_DETOXIFY");
+ .@chk_th_skill1 = getskilllv(TF_DOUBLE);
+ .@chk_th_skill2 = getskilllv(TF_MISS);
+ .@chk_th_skill3 = getskilllv(TF_STEAL);
+ .@chk_th_skill4 = getskilllv(TF_HIDING);
+ .@chk_th_skill5 = getskilllv(TF_POISON);
+ .@chk_th_skill6 = getskilllv(TF_DETOXIFY);
if(.@chk_th_skill1 == 0 && .@chk_th_skill2 == 0 && .@chk_th_skill3 == 0 && .@chk_th_skill4 == 0 && .@chk_th_skill5 == 0 && .@chk_th_skill6 == 0){
mes "[Yierhan]";
@@ -227,7 +227,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "if you want to know";
mes "about any other skills,";
mes "I can explain real quick.";
- set tu_thief01, 3;
+ tu_thief01 = 3;
getexp BaseLevel*30,BaseLevel*15;
specialeffect2 EF_HIT5;
close;
@@ -248,7 +248,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "It's a Passive skill, so it's always in effect and won't have to use any SP to use it. The higher your Double Attack skill level, the more double attacks you'll do.";
- set .@read_d, 1;
+ .@read_d = 1;
next;
break;
case 2:
@@ -263,7 +263,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "[Yierhan]";
mes "Just like the Double Attack skill, Increase Dodge is a Passive skill. It won't use SP and it's always in";
mes "effect. If you don't like to bruise, this is your skill.";
- set .@read_f, 1;
+ .@read_f = 1;
next;
break;
case 3:
@@ -274,7 +274,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
specialeffect2 EF_STEAL;
mes "[Yierhan]";
mes "But you can use Steal to take items from monsters! If you're lucky, you can get some good items that way. Oh, and Steal doesn't affect monster drop rates.";
- set .@read_s, 1;
+ .@read_s = 1;
next;
break;
case 4:
@@ -287,7 +287,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "Certain monsters will still be able to find you, no matter how well you hide. There are even a few monsters that can flush you out of hiding!";
- set .@read_p, 1;
+ .@read_p = 1;
next;
break;
case 5:
@@ -298,7 +298,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "This attack skill has the chance";
mes "to poison your enemy for a set amount of time. While poisoned, an enemy will constantly lose its HP and will have decreased defense.";
mes "Remember that.";
- set .@read_h, 1;
+ .@read_h = 1;
next;
break;
case 6:
@@ -312,7 +312,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "[Yierhan]";
mes "You can learn Detoxify";
mes "after you learn the Envenom skill. Detoxify allows you to counteract the effects of poison on a target.";
- set .@read_r, 1;
+ .@read_r = 1;
next;
specialeffect2 EF_DETOXICATION;
next;
@@ -325,7 +325,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "Now that you're such an expert on skills, I want you to level up your skills and come back, got it?";
- set tu_thief01, 4;
+ tu_thief01 = 4;
specialeffect2 EF_HIT5;
if(.@read_d) getexp 300,100;
if(.@read_f) getexp 300,100;
@@ -346,7 +346,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "Go and get me";
mes "10 ^ff0000Feather of Birds^000000.";
mes "You can go ahead and kill Pickies to get those. It really shouldn't be that hard. Oh, and use this Wing thingee to come back.";
- set tu_thief01, 5;
+ tu_thief01 = 5;
savepoint "moc_ruins",80,164;
getitem 602,1; //Wing_Of_Butterfly
getexp 100,50;
@@ -375,7 +375,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
if(tu_thief01 == 6){
switch(select("About those traces...:Nope.")) {
- case 1:
+ case 1:
mes "[Yierhan]";
mes "You found out, eh?";
mes "Well, I didn't really";
@@ -405,7 +405,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "not to get too close";
mes "to the poison! That stuff";
mes "is pretty strong!";
- set tu_thief01, 8;
+ tu_thief01 = 8;
getitem 1207,1; //Main_Gauche
getexp 1000,500;
specialeffect2 EF_HIT5;
@@ -415,7 +415,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "Good!";
mes "Less work for me!";
mes "Alright, you better get stronger the next time I see you. Oh, and you can have this stuff. You know, since you're so gangster and all.";
- set tu_thief01, 7;
+ tu_thief01 = 7;
getitem 1207,1; //Main_Gauche
getexp 500,200;
specialeffect2 EF_HIT5;
@@ -442,7 +442,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "Alright, you better get stronger the next time I see you. Oh, and you can have this stuff. You know, since you're so gangster and all.";
break;
}
- set tu_thief01, 7;
+ tu_thief01 = 7;
getitem 1207,1; //Main_Gauche
getexp 500,200;
specialeffect2 EF_HIT5;
@@ -486,7 +486,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "decide to check it";
mes "out, be real careful";
mes "other there, okay?";
- set tu_thief01, 8;
+ tu_thief01 = 8;
getexp 200,100;
specialeffect2 EF_HIT5;
close;
@@ -568,7 +568,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "Hey, this stuff is yours. Think of it as a reward for helping us out. Take care of yourself now~";
- set tu_thief01, 27;
+ tu_thief01 = 27;
getitem 2307,1; //Mantle
Zeny += 5000;
getexp 8000,3000;
@@ -618,7 +618,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
mes "[Yierhan]";
mes "Anyway, head over to";
mes "South Morroc since it seems to be a good place to start investigating. You'll see what we found right outside the South Morroc gate.";
- set tu_magician01, 8;
+ tu_magician01 = 8;
break;
}
} else if(tu_magician01 < 26){
@@ -692,7 +692,7 @@ moc_ruins,66,164,4 script Thief Trainer#T 4_M_02,{
next;
mes "[Yierhan]";
mes "Hey, this stuff is yours. Think of it as a reward for helping us out. Right, and I'll let Mana know you did a great job. Take care of yourself now~";
- set tu_magician01, 27;
+ tu_magician01 = 27;
Zeny += 5000;
getexp 5000,2000;
close;
diff --git a/npc/quests/guildrelay.txt b/npc/quests/guildrelay.txt
index 535eb7902..25282ff56 100644
--- a/npc/quests/guildrelay.txt
+++ b/npc/quests/guildrelay.txt
@@ -19,30 +19,30 @@
// Floating NPCs to duplicate from.
//============================================================
- script RelayDummy1::GuildRelay1 4_M_SAGE_A,{
- set .@name$,strnpcinfo(1);
+ .@name$ = strnpcinfo(1);
if (.@name$ == "Buzz") {
- set .@name2$,"Lenya";
- set .@name3$,"Gealuve";
- set .@name4$,"Pariz";
- set .@GID, getcastledata("aldeg_cas"+strnpcinfo(2),1);
+ .@name2$ = "Lenya";
+ .@name3$ = "Gealuve";
+ .@name4$ = "Pariz";
+ .@GID = getcastledata("aldeg_cas"+strnpcinfo(2),1);
}
else if (.@name$ == "Jody") {
- set .@name2$,"Ron Haware";
- set .@name3$,"Vers";
- set .@name4$,"Gen Garish";
- set .@GID, getcastledata("gefg_cas"+strnpcinfo(2),1);
+ .@name2$ = "Ron Haware";
+ .@name3$ = "Vers";
+ .@name4$ = "Gen Garish";
+ .@GID = getcastledata("gefg_cas"+strnpcinfo(2),1);
}
else if (.@name$ == "Chungye") {
- set .@name2$,"Dosuhlji";
- set .@name3$,"Yayula";
- set .@name4$,"Ashin";
- set .@GID, getcastledata("payg_cas"+strnpcinfo(2),1);
+ .@name2$ = "Dosuhlji";
+ .@name3$ = "Yayula";
+ .@name4$ = "Ashin";
+ .@GID = getcastledata("payg_cas"+strnpcinfo(2),1);
}
else if (.@name$ == "Hermod") {
- set .@name2$,"Atila";
- set .@name3$,"Cecil";
- set .@name4$,"Diligo";
- set .@GID, getcastledata("prtg_cas"+strnpcinfo(2),1);
+ .@name2$ = "Atila";
+ .@name3$ = "Cecil";
+ .@name4$ = "Diligo";
+ .@GID = getcastledata("prtg_cas"+strnpcinfo(2),1);
}
if (checkweight(908,630) == 0) {
mes "^3355FFWait a minute! You're";
@@ -86,7 +86,7 @@
mes "guild is going to be solid,";
mes "you need to think how much";
mes "trust there is in the guild.";
- set guildrelay_q,8;
+ guildrelay_q = 8;
getitem 7240,1; //Soul_Of_Confidence
next;
mes "[" + .@name$ + "]";
@@ -143,7 +143,7 @@
mes "guild is going to be solid,";
mes "you need to think how much";
mes "trust there is in the guild.";
- set guildrelay_q,8;
+ guildrelay_q = 8;
getitem 7240,1; //Soul_Of_Confidence
next;
mes "[" + .@name$ + "]";
@@ -199,7 +199,7 @@
mes "guild is going to be solid,";
mes "you need to think how much";
mes "trust there is in the guild.";
- set guildrelay_q,8;
+ guildrelay_q = 8;
getitem 7240,1; //Soul_Of_Confidence
next;
mes "[" + .@name$ + "]";
@@ -256,7 +256,7 @@
mes "It seems contradictive that";
mes "strongholds and might can";
mes "bring peace, but it's true.";
- set guildrelay_q,15;
+ guildrelay_q = 15;
getitem 7246,1; //Soul_Of_Peace
next;
mes "[" + .@name$ + "]";
@@ -317,7 +317,7 @@
mes "to report your trial results,";
mes "and lost my composure for a";
mes "moment. It won't happen again.";
- set guildrelay_q,999;
+ guildrelay_q = 999;
close;
}
else {
@@ -367,7 +367,7 @@
mes "the ^4D4DFFSpirit of Guild^000000, and";
mes "give it to your most trusted";
mes "Knight or Lord Knight.";
- set guildrelay_q,1;
+ guildrelay_q = 1;
getitem 7234,1; //Soul_Of_Guild
next;
mes "[" + .@name$ + "]";
@@ -413,9 +413,9 @@
mes "Hand me the spirit, and allow";
mes "me to give you your guild's reward.";
delitem 7239,1; //Soul_Of_Proceeding
- set guildtime,gettime(3);
- set guildrelay_q,100;
- set .@incen_item,rand(1,100);
+ guildtime = gettime(3);
+ guildrelay_q = 100;
+ .@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 25)) {
getitem 608,20; //Seed_Of_Yggdrasil
getitem 678,2; //Poison_Bottle
@@ -481,9 +481,9 @@
mes "challenges that you will all";
mes "face together. Good work!";
delitem 7245,1; //Soul_Of_Friendship
- set guildtime,gettime(3);
- set guildrelay_q,150;
- set .@incen_item,rand(1,100);
+ guildtime = gettime(3);
+ guildrelay_q = 150;
+ .@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 16)) {
getitem 607,10; //Yggdrasilberry
getitem 644,5; //Gift_Box
@@ -574,9 +574,9 @@
mes "Tristan III, and share it with";
mes "guild. Once again, good work.";
delitem 7251,1; //Soul_Of_Victory
- set guildtime,gettime(3);
- set guildrelay_q,25;
- set .@incen_item,rand(1,100);
+ guildtime = gettime(3);
+ guildrelay_q = 25;
+ .@incen_item = rand(1,100);
if ((.@incen_item > 0) && (.@incen_item < 26)) {
getitem 608,10; //Seed_Of_Yggdrasil
getitem 607,5; //Yggdrasilberry
@@ -693,7 +693,7 @@
mes "to a Knight or Lord Knight.";
mes "The test has now officially";
mes "begun. Good luck to you.";
- set guildrelay_q,1;
+ guildrelay_q = 1;
getitem 7234,1; //Soul_Of_Guild
close;
case 2:
@@ -1219,9 +1219,9 @@
}
- script RelayDummy2::GuildRelay2 4_M_SAGE_A,{
- set .@name$,strnpcinfo(1);
+ .@name$ = strnpcinfo(1);
getmapxy(.@m$,.@x,.@x,1);
- set .@GID, getcastledata(.@m$,1);
+ .@GID = getcastledata(.@m$,1);
if (checkweight(1201,1) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -1286,7 +1286,7 @@
mes "That shouldn't be too";
mes "hard now, right?";
delitem 7234,1; //Soul_Of_Guild
- set guildrelay_q,2;
+ guildrelay_q = 2;
close;
case 2:
mes "[" + .@name$ + "]";
@@ -1296,7 +1296,7 @@
mes "That shouldn't be too";
mes "hard now, right?";
delitem 7234,1; //Soul_Of_Guild
- set guildrelay_q,3;
+ guildrelay_q = 3;
close;
case 3:
mes "[" + .@name$ + "]";
@@ -1306,7 +1306,7 @@
mes "That shouldn't be too";
mes "hard now, right?";
delitem 7234,1; //Soul_Of_Guild
- set guildrelay_q,89;
+ guildrelay_q = 89;
close;
}
}
@@ -1321,7 +1321,7 @@
delitem 1015,30; //Thin_N'_Long_Tongue
delitem 7196,30; //Shoulder_Protection
delitem 7157,30; //Black_Mask
- set guildrelay_q,88;
+ guildrelay_q = 88;
getitem 7235,1; //Soul_Of_Courage
close;
}
@@ -1346,7 +1346,7 @@
delitem 1097,30; //Worn_Out_Page
delitem 1017,30; //Moustache_Of_Mole
delitem 1096,30; //Round_Shell
- set guildrelay_q,88;
+ guildrelay_q = 88;
getitem 7235,1; //Soul_Of_Courage
close;
}
@@ -1371,7 +1371,7 @@
delitem 7112,30; //Fright_Paper_Blade
delitem 1012,30; //Lizard_Scruff
delitem 1040,30; //Elder_Pixie's_Beard
- set guildrelay_q,88;
+ guildrelay_q = 88;
getitem 7235,1; //Soul_Of_Courage
close;
}
@@ -1408,8 +1408,8 @@
mes "when the time is right so";
mes "don't you worry about it.";
delitem 7235,1; //Soul_Of_Courage
- set guildrelay_q,4;
- set guildtime,gettime(3);
+ guildrelay_q = 4;
+ guildtime = gettime(3);
close;
}
if ((guildtime > 22) && (guildrelay_q == 4) && (BaseJob == Job_Blacksmith)) {
@@ -1421,7 +1421,7 @@
mes "Please give this to an";
mes "Alchemist or Biochemist.";
mes "Your work here is done.";
- set guildrelay_q,87;
+ guildrelay_q = 87;
getitem 7237,1; //Soul_Of_Partnership
close;
}
@@ -1435,7 +1435,7 @@
mes "Please give this to an";
mes "Alchemist or Biochemist.";
mes "Your work here is done.";
- set guildrelay_q,87;
+ guildrelay_q = 87;
getitem 7237,1; //Soul_Of_Partnership
close;
}
@@ -1449,7 +1449,7 @@
mes "Please give this to an";
mes "Alchemist or Biochemist.";
mes "Your work here is done.";
- set guildrelay_q,87;
+ guildrelay_q = 87;
getitem 7237,1; //Soul_Of_Partnership
close;
}
@@ -1462,7 +1462,7 @@
mes "Please give this to an";
mes "Alchemist or Biochemist.";
mes "Your work here is done.";
- set guildrelay_q,87;
+ guildrelay_q = 87;
getitem 7237,1; //Soul_Of_Partnership
close;
}
@@ -1492,7 +1492,7 @@
mes "gain 3 more levels.";
mes "How about that, eh?";
delitem 7237,1; //Soul_Of_Partnership
- set guildrelay_q,5;
+ guildrelay_q = 5;
close;
}
if ((BaseLevel > 57) && (BaseLevel < 76)) {
@@ -1503,7 +1503,7 @@
mes "gain 2 more levels.";
mes "How about that, eh?";
delitem 7237,1; //Soul_Of_Partnership
- set guildrelay_q,6;
+ guildrelay_q = 6;
close;
}
if ((BaseLevel > 75) && (BaseLevel < 94)) {
@@ -1514,7 +1514,7 @@
mes "gain 1 more level.";
mes "How about that, eh?";
delitem 7237,1; //Soul_Of_Partnership
- set guildrelay_q,7;
+ guildrelay_q = 7;
close;
}
if (BaseLevel > 93) {
@@ -1526,7 +1526,7 @@
mes "Fine, fine. You pass! Give this";
mes "to a ^FF0000Hunter^000000 or ^FF0000Sniper^000000 now~";
delitem 7237,1; //Soul_Of_Partnership
- set guildrelay_q,86;
+ guildrelay_q = 86;
getitem 7238,1; //Soul_Of_Correspondence
close;
}
@@ -1539,7 +1539,7 @@
mes "give it to a ^FF0000Hunter^000000 or ^FF0000Sniper^000000";
mes "in your guild. Nice work,";
mes "and I'll see you around.";
- set guildrelay_q,86;
+ guildrelay_q = 86;
getitem 7238,1; //Soul_Of_Correspondence
close;
}
@@ -1551,7 +1551,7 @@
mes "give it to a ^FF0000Hunter^000000 or ^FF0000Sniper^000000";
mes "in your guild. Nice work,";
mes "and I'll see you around.";
- set guildrelay_q,86;
+ guildrelay_q = 86;
getitem 7238,1; //Soul_Of_Correspondence
close;
}
@@ -1563,7 +1563,7 @@
mes "give it to a ^FF0000Hunter^000000 or ^FF0000Sniper^000000";
mes "in your guild. Nice work,";
mes "and I'll see you around.";
- set guildrelay_q,86;
+ guildrelay_q = 86;
getitem 7238,1; //Soul_Of_Correspondence
close;
}
@@ -1602,7 +1602,7 @@
mes "soon as you can, alright?";
setfalcon;
delitem 7238,1; //Soul_Of_Correspondence
- set guildrelay_q,85;
+ guildrelay_q = 85;
getitem 7239,1; //Soul_Of_Proceeding
close;
}
@@ -1728,9 +1728,9 @@
}
- script RelayDummy3::GuildRelay3 4_M_SAGE_A,{
- set .@name$,strnpcinfo(1);
+ .@name$ = strnpcinfo(1);
getmapxy(.@m$,.@x,.@x,1);
- set .@GID, getcastledata(.@m$,1);
+ .@GID = getcastledata(.@m$,1);
if (checkweight(1201,1) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -1794,8 +1794,8 @@
mes "guild must have solidarity";
mes "in order to be successful.";
delitem 7240,1; //Soul_Of_Confidence
- set guildrelay_q,9;
- set guildtime,gettime(3);
+ guildrelay_q = 9;
+ guildtime = gettime(3);
close;
}
if ((guildtime > 22) && (guildrelay_q == 9) && (BaseJob == Job_Sage)) {
@@ -1814,7 +1814,7 @@
mes "is. Please give this spirit";
mes "to a ^42426FBard^000000, ^42426FMinstrel^000000, ^42426FDancer^000000,";
mes "or ^42426FGypsy^000000. Good luck to you.";
- set guildrelay_q,81;
+ guildrelay_q = 81;
getitem 7241,1; //Soul_Of_Agreement
close;
}
@@ -1845,7 +1845,7 @@
mes "is. Please give this spirit";
mes "to a ^42426FBard^000000, ^42426FMinstrel^000000, ^42426FDancer^000000,";
mes "or ^42426FGypsy^000000. Good luck to you.";
- set guildrelay_q,71;
+ guildrelay_q = 71;
getitem 7241,1; //Soul_Of_Agreement
close;
}
@@ -1876,7 +1876,7 @@
mes "is. Please give this spirit";
mes "to a ^42426FBard^000000, ^42426FMinstrel^000000, ^42426FDancer^000000,";
mes "or ^42426FGypsy^000000. Good luck to you.";
- set guildrelay_q,71;
+ guildrelay_q = 71;
getitem 7241,1; //Soul_Of_Agreement
close;
}
@@ -1906,7 +1906,7 @@
mes "Please give it to a ^42426FBard^000000 or ^42426FClown^000000";
mes "You can also give it to ^42426FDancer^000000 or ^42426FGypsy^000000";
mes "Good luck.";
- set guildrelay_q,71;
+ guildrelay_q = 71;
getitem 7241,1; //Soul_Of_Agreement
close;
}
@@ -1945,7 +1945,7 @@
mes "these down so you don't";
mes "forget. Good luck to you.";
delitem 7241,1; //Soul_Of_Agreement
- set guildrelay_q,10;
+ guildrelay_q = 10;
break;
case 2:
mes "[" + .@name$ + "]";
@@ -1956,7 +1956,7 @@
mes "these down so you don't";
mes "forget. Good luck to you.";
delitem 7241,1; //Soul_Of_Agreement
- set guildrelay_q,11;
+ guildrelay_q = 11;
break;
case 3:
mes "[" + .@name$ + "]";
@@ -1967,7 +1967,7 @@
mes "these down so you don't";
mes "forget. Good luck to you.";
delitem 7241,1; //Soul_Of_Agreement
- set guildrelay_q,80;
+ guildrelay_q = 80;
break;
}
next;
@@ -1992,10 +1992,10 @@
delitem 7172,30; //Leopard_Talon
delitem 920,30; //Claw_Of_Wolves
if (BaseJob == Job_Dancer) {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
else {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
getitem 7242,1; //Soul_Of_Harmony
close;
@@ -2012,10 +2012,10 @@
delitem 7194,30; //Soft_Leaf
delitem 7155,30; //Poison_Toad's_Skin
if (BaseJob == Job_Dancer) {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
else {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
getitem 7242,1; //Soul_Of_Harmony
close;
@@ -2032,10 +2032,10 @@
delitem 7121,30; //Honey_Jar
delitem 1027,30; //Porcupine_Spike
if (BaseJob == Job_Dancer) {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
else {
- set guildrelay_q,72;
+ guildrelay_q = 72;
}
getitem 7242,1; //Soul_Of_Harmony
close;
@@ -2099,7 +2099,7 @@
mes "that to a ^2F4F2FWizard^000000 or";
mes "a ^2F4F2FHigh Wizard^000000.";
delitem 7242,1; //Soul_Of_Harmony
- set guildrelay_q,74;
+ guildrelay_q = 74;
getitem 7244,1; //Soul_Of_Unity
close;
}
@@ -2129,7 +2129,7 @@
mes "you'll be able to reach";
mes "this goal. Good luck to you.";
delitem 7244,1; //Soul_Of_Unity
- set guildrelay_q,12;
+ guildrelay_q = 12;
close;
}
else if ((BaseLevel > 60) && (BaseLevel < 76)) {
@@ -2141,7 +2141,7 @@
mes "you'll be able to reach";
mes "this goal. Good luck to you.";
delitem 7244,1; //Soul_Of_Unity
- set guildrelay_q,13;
+ guildrelay_q = 13;
close;
}
else if ((BaseLevel > 75) && (BaseLevel < 97)) {
@@ -2153,7 +2153,7 @@
mes "you'll be able to reach";
mes "this goal. Good luck to you.";
delitem 7244,1; //Soul_Of_Unity
- set guildrelay_q,14;
+ guildrelay_q = 14;
close;
}
else if (BaseLevel > 96) {
@@ -2179,7 +2179,7 @@
mes "to your ^FF0000Guild Master^000000.";
mes "You're done for now.";
delitem 7244,1; //Soul_Of_Unity
- set guildrelay_q,75;
+ guildrelay_q = 75;
getitem 7245,1; //Soul_Of_Friendship
close;
}
@@ -2198,7 +2198,7 @@
mes "Please give this spirit";
mes "to your ^FF0000Guild Master^000000.";
mes "You've done well.";
- set guildrelay_q,75;
+ guildrelay_q = 75;
getitem 7245,1; //Soul_Of_Friendship
close;
}
@@ -2216,7 +2216,7 @@
mes "Please give this spirit";
mes "to your ^FF0000Guild Master^000000.";
mes "You've done well.";
- set guildrelay_q,75;
+ guildrelay_q = 75;
getitem 7245,1; //Soul_Of_Friendship
close;
}
@@ -2234,7 +2234,7 @@
mes "Please give this spirit";
mes "to your ^FF0000Guild Master^000000.";
mes "You've done well.";
- set guildrelay_q,75;
+ guildrelay_q = 75;
getitem 7245,1; //Soul_Of_Friendship
close;
}
@@ -2413,9 +2413,9 @@
}
- script GuildDummy4::GuildRelay4 4_M_SAGE_A,{
- set .@name$,strnpcinfo(1);
+ .@name$ = strnpcinfo(1);
getmapxy(.@m$,.@x,.@x,1);
- set .@GID, getcastledata(.@m$,1);
+ .@GID = getcastledata(.@m$,1);
if (checkweight(1201,1) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -2478,7 +2478,7 @@
mes "to me that your people";
mes "skills are up to par.";
delitem 7246,1; //Soul_Of_Peace
- set guildrelay_q,91;
+ guildrelay_q = 91;
close;
case 2:
mes "a party with 8 members^000000.";
@@ -2491,7 +2491,7 @@
mes "to me that your people";
mes "skills are up to par.";
delitem 7246,1; //Soul_Of_Peace
- set guildrelay_q,92;
+ guildrelay_q = 92;
close;
case 3:
mes "a party with 10 members^000000.";
@@ -2504,13 +2504,13 @@
mes "to me that your people";
mes "skills are up to par.";
delitem 7246,1; //Soul_Of_Peace
- set guildrelay_q,93;
+ guildrelay_q = 93;
close;
}
}
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
- set .@partyleader,getpartyleader(getcharid(1),2);
+ .@partymembercount = $@partymembercount;
+ .@partyleader = getpartyleader(getcharid(1),2);
if (guildrelay_q == 91) {
if (.@partymembercount == 6) {
mes "[" + .@name$ + "]";
@@ -2526,7 +2526,7 @@
mes "this spirit, and then give";
mes "it to a Priest or High";
mes "Priest in your guild.";
- set guildrelay_q,95;
+ guildrelay_q = 95;
getitem 7247,1; //Soul_Of_Spirit
close;
}
@@ -2555,7 +2555,7 @@
mes "this spirit, and then give";
mes "it to a Priest or High";
mes "Priest in your guild.";
- set guildrelay_q,95;
+ guildrelay_q = 95;
getitem 7247,1; //Soul_Of_Spirit
close;
}
@@ -2583,7 +2583,7 @@
mes "this spirit, and then give";
mes "it to a Priest or High";
mes "Priest in your guild.";
- set guildrelay_q,95;
+ guildrelay_q = 95;
getitem 7247,1; //Soul_Of_Spirit
close;
}
@@ -2621,7 +2621,7 @@
mes "this. Come back to me";
mes "when you are ready.";
delitem 7247,1; //Soul_Of_Spirit
- set guildrelay_q,18;
+ guildrelay_q = 18;
close;
}
if ((BaseLevel > 60) && (BaseLevel < 76)) {
@@ -2639,7 +2639,7 @@
mes "this. Come back to me";
mes "when you are ready.";
delitem 7247,1; //Soul_Of_Spirit
- set guildrelay_q,19;
+ guildrelay_q = 19;
close;
}
if ((BaseLevel > 75) && (BaseLevel < 97)) {
@@ -2657,7 +2657,7 @@
mes "this. Come back to me";
mes "when you are ready.";
delitem 7247,1; //Soul_Of_Spirit
- set guildrelay_q,20;
+ guildrelay_q = 20;
close;
}
if (BaseLevel > 96) {
@@ -2676,7 +2676,7 @@
mes "^4D4DFFCrusader^000000 or ^4D4DFFPaladin^000000";
mes "in your guild.";
delitem 7247,1; //Soul_Of_Spirit
- set guildrelay_q,98;
+ guildrelay_q = 98;
getitem 7249,1; //Soul_Of_Service
close;
}
@@ -2697,7 +2697,7 @@
mes "sure to give it to a";
mes "^4D4DFFCrusader^000000 or ^4D4DFFPaladin^000000";
mes "in your guild.";
- set guildrelay_q,98;
+ guildrelay_q = 98;
getitem 7249,1; //Soul_Of_Service
close;
}
@@ -2717,7 +2717,7 @@
mes "sure to give it to a";
mes "^4D4DFFCrusader^000000 or ^4D4DFFPaladin^000000";
mes "in your guild.";
- set guildrelay_q,98;
+ guildrelay_q = 98;
getitem 7249,1; //Soul_Of_Service
close;
}
@@ -2735,7 +2735,7 @@
mes "Crusader or Paladin";
mes "who is in our guild.";
mes "Good luck!";
- set guildrelay_q,98;
+ guildrelay_q = 98;
getitem 7249,1; //Soul_Of_Service
close;
}
@@ -2764,8 +2764,8 @@
mes "You'll need to really listen";
mes "to your feelings this time...";
delitem 7249,1; //Soul_Of_Service
- set guildrelay_q,21;
- set guildtime,gettime(3);
+ guildrelay_q = 21;
+ guildtime = gettime(3);
close;
}
if ((guildtime > 22) && (guildrelay_q == 21) && (BaseJob == Job_Crusader)) {
@@ -2777,7 +2777,7 @@
mes "and trust it when it comes";
mes "again. Now give this spirit to";
mes "a ^FF0000Monk^000000 or ^FF0000Champion^000000 for me...";
- set guildrelay_q,96;
+ guildrelay_q = 96;
getitem 7250,1; //Soul_Of_Glory
close;
}
@@ -2799,7 +2799,7 @@
mes "and trust it when it comes";
mes "again. Now give this spirit to";
mes "a ^FF0000Monk^000000 or ^FF0000Champion^000000 for me...";
- set guildrelay_q,96;
+ guildrelay_q = 96;
getitem 7250,1; //Soul_Of_Glory
close;
}
@@ -2821,7 +2821,7 @@
mes "and trust it when it comes";
mes "again. Now give this spirit to";
mes "a ^FF0000Monk^000000 or ^FF0000Champion^000000 for me...";
- set guildrelay_q,96;
+ guildrelay_q = 96;
getitem 7250,1; //Soul_Of_Glory
close;
}
@@ -2842,7 +2842,7 @@
mes "and trust it when it comes";
mes "again. Now give this spirit to";
mes "a ^FF0000Monk^000000 or ^FF0000Champion^000000 for me...";
- set guildrelay_q,96;
+ guildrelay_q = 96;
getitem 7250,1; //Soul_Of_Glory
close;
}
@@ -2872,7 +2872,7 @@
mes "I shall be waiting";
mes "for you right here.";
delitem 7250,1; //Soul_Of_Glory
- set guildrelay_q,23;
+ guildrelay_q = 23;
close;
case 2:
mes "[" + .@name$ + "]";
@@ -2883,7 +2883,7 @@
mes "I shall be waiting";
mes "for you right here.";
delitem 7250,1; //Soul_Of_Glory
- set guildrelay_q,24;
+ guildrelay_q = 24;
close;
case 3:
mes "[" + .@name$ + "]";
@@ -2894,7 +2894,7 @@
mes "I shall be waiting";
mes "for you right here.";
delitem 7250,1; //Soul_Of_Glory
- set guildrelay_q,94;
+ guildrelay_q = 94;
close;
}
}
@@ -2909,7 +2909,7 @@
delitem 7165,30; //Limpid_Celestial_Robe
delitem 1021,30; //Dokkaebi_Horn
delitem 1023,30; //Fish_Tail
- set guildrelay_q,97;
+ guildrelay_q = 97;
getitem 7251,1; //Soul_Of_Victory
close;
}
@@ -2932,7 +2932,7 @@
delitem 1048,30; //Slender_Snake
delitem 1013,30; //Colorful_Shell
delitem 7200,30; //Flexible_String
- set guildrelay_q,97;
+ guildrelay_q = 97;
getitem 7251,1; //Soul_Of_Victory
close;
}
@@ -2957,7 +2957,7 @@
delitem 7003,30; //Anolian_Skin
delitem 7101,30; //Peco_Wing_Feather
delitem 7153,30; //Old_Japaness_Clothes
- set guildrelay_q,97;
+ guildrelay_q = 97;
getitem 7251,1; //Soul_Of_Victory
close;
}
diff --git a/npc/quests/gunslinger_quests.txt b/npc/quests/gunslinger_quests.txt
index 539f6c4ae..34ac3dbd6 100644
--- a/npc/quests/gunslinger_quests.txt
+++ b/npc/quests/gunslinger_quests.txt
@@ -113,7 +113,7 @@ que_ng,182,85,3 script Garrison 4_M_MANAGER,{
mes "[Garrison]";
mes "10 Steel, 1 Elunium, 10 Emveretarcon, 30 Coal, and 10 Rusty Screws.";
mes "I need this exact amount. Don't forget.";
- set gun_gs,1;
+ gun_gs = 1;
close;
}
@@ -163,7 +163,7 @@ que_ng,182,85,3 script Garrison 4_M_MANAGER,{
delitem 7317,10;
delitem 985,1;
delitem 1003,30;
- set gun_gs,2;
+ gun_gs = 2;
close;
case 2:
@@ -206,7 +206,7 @@ que_ng,182,85,3 script Garrison 4_M_MANAGER,{
mes "Did you sell off your gun while you were gone?";
mes "I said I'd slot your gun, but I never said I'd slot a gun that isn't here.";
mes "Go and get your Garrison and then get back to me.";
- set gun_gs,4;
+ gun_gs = 4;
close;
}
mes "[Garrison]";
@@ -217,7 +217,7 @@ que_ng,182,85,3 script Garrison 4_M_MANAGER,{
mes "Please use it well.";
delitem 13104,1;
getitem 13105,1;
- set gun_gs, 5;
+ gun_gs = 5;
close;
case 4:
if(countitem(13104) < 1)
@@ -233,7 +233,7 @@ que_ng,182,85,3 script Garrison 4_M_MANAGER,{
mes "Do use it well.";
delitem 13104, 1;
getitem 13105, 1;
- set gun_gs,5;
+ gun_gs = 5;
close;
case 5:
mes "[Garrison]";
@@ -373,7 +373,6 @@ SubGarrison_:
delitem 13104, 1;
getitem 13105, 1;
close;
-
case 3:
mes "[Garrison]";
mes "I'll see you when I see you~";
@@ -393,7 +392,7 @@ lighthalzen,322,247,6 script Ravey 86,{
mes "You!!!";
mes "Huuut~!!";
mes "Die!!!";
- set gun_gs,3;
+ gun_gs = 3;
percentheal 100,0;
percentheal -90,0;
next;
@@ -528,7 +527,7 @@ que_ng,187,163,3 script Ingrid 4_F_ALCHE,{
mes "I need 100 Used Iron Plates, 10 Oridecons, 50 Rusty Old Screws, 100 Burning Hearts, and 200,000 Zeny.";
mes "You must bring me the correct number of materials.";
mes "Please don't forget that.";
- set gun_inf,1;
+ gun_inf = 1;
close;
}
@@ -592,7 +591,7 @@ SubInferno:
delitem 7317,50;
delitem 7097,100;
getitem 13162,1;
- if(gun_inf == 1) set gun_inf,2;
+ if(gun_inf == 1) gun_inf = 2;
close;
}
}
@@ -741,7 +740,6 @@ que_ng,185,180,3 script Vanessa 4_F_JOB_BLACKSMITH,{
mes "Then see you next time~";
mes "Bye~Bye~";
close;
-
case 2:
mes "[Vanessa]";
mes "Mm, Okay.";
@@ -750,13 +748,11 @@ que_ng,185,180,3 script Vanessa 4_F_JOB_BLACKSMITH,{
mes "5 Oridecons, 70 Rusty Old Screws";
mes "and a fee of 100,000 zeny.";
mes "You must bring me these exact materials. Understood?";
- set gunst,1;
+ gunst = 1;
close;
}
-
case 1:
callsub SubDestroyer;
-
case 2:
mes "[Vanessa]";
mes "Oh~ You're back.?";
@@ -778,17 +774,16 @@ que_ng,185,180,3 script Vanessa 4_F_JOB_BLACKSMITH,{
next;
switch( select( "Maybe next time.","Okay.") )
{
- case 1:
- mes "[Vanessa]";
- mes "What~ C'mon";
- mes "What's there to think about?";
- mes "Ok, well, think about it";
- mes "and come back...";
- close;
- case 2:
- callsub SubDestroyer;
+ case 1:
+ mes "[Vanessa]";
+ mes "What~ C'mon";
+ mes "What's there to think about?";
+ mes "Ok, well, think about it";
+ mes "and come back...";
+ close;
+ case 2:
+ callsub SubDestroyer;
}
-
case 2:
mes "[Vanessa]";
mes "Oh~ The Slotted Destroyer~";
@@ -804,19 +799,16 @@ que_ng,185,180,3 script Vanessa 4_F_JOB_BLACKSMITH,{
next;
switch( select( "I'll think about it.","OK! I do!") )
{
- case 1:
- mes "[Vanessa]";
- mes "What~ C'mon";
- mes "What's there to think about?";
- mes "Ok, well, think about it";
- mes "and come back...";
- close;
-
- case 2:
- callsub SubDestroyer_;
-
+ case 1:
+ mes "[Vanessa]";
+ mes "What~ C'mon";
+ mes "What's there to think about?";
+ mes "Ok, well, think about it";
+ mes "and come back...";
+ close;
+ case 2:
+ callsub SubDestroyer_;
}
-
case 3:
mes "[Vanessa]";
mes "Hmm~ Yeah~";
@@ -864,7 +856,7 @@ SubDestroyer:
delitem 984,5;
delitem 7317,70;
getitem 13160,1;
- if(gunst == 1) set gunst,2;
+ if(gunst == 1) gunst = 2;
next;
mes "[Vanessa]";
mes "If you ever need one again later,";
@@ -918,7 +910,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
if(countitem(1043) > 999 && countitem(932) > 999){
delitem 1043,1000;
delitem 932,1000;
- set gun_na,2;
+ gun_na = 2;
mes "[N. A]";
mes "Ahh, it's all here! Ahh, and I";
mes "was worried about that no one";
@@ -958,7 +950,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "if you can't handle the test.";
mes "You may come back later to";
mes "take the challenge again.";
- set gun_na,0;
+ gun_na = 0;
close;
}
}
@@ -994,7 +986,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
close;
}
Zeny -= 100000;
- set gun_na,0;
+ gun_na = 0;
getitem 13158,1;
mes "[N. A]";
mes "One, two, three, four, five,";
@@ -1023,7 +1015,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
delitem 1003,70;
delitem 7317,50;
Zeny -= 50000;
- set gun_na,11;
+ gun_na = 11;
mes "[N. A]";
mes "Aha, you got me all the";
mes "materials. Here, let me get down";
@@ -1059,7 +1051,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "a Drifter for you is cancelled.";
mes "I wish you good luck";
mes "in your future.";
- set gun_na,0;
+ gun_na = 0;
close;
}
}
@@ -1073,7 +1065,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "Please clear your inventory.";
close;
}
- set gun_na,0;
+ gun_na = 0;
getitem 13157,1;
mes "[N. A]";
mes "Ahh, here's the completed";
@@ -1147,7 +1139,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "30 Lightning Sphere, 30 Blind";
mes "Sphere, or 30 Freezing Sphere.";
mes "Find me 30 of each Element.";
- set gun_na,102;
+ gun_na = 102;
close;
}
else if(gun_na == 102){
@@ -1167,31 +1159,31 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
case 2:
if(countitem(13205) >= 30){
delitem 13205,30;
- set gun_na,103;
+ gun_na = 103;
}
break;
case 3:
if(countitem(13203) >= 30){
delitem 13203,30;
- set gun_na,103;
+ gun_na = 103;
}
break;
case 4:
if(countitem(13204) >= 30){
delitem 13204,30;
- set gun_na,103;
+ gun_na = 103;
}
break;
case 5:
if(countitem(13206) >= 30){
delitem 13206,30;
- set gun_na,103;
+ gun_na = 103;
}
break;
case 6:
if(countitem(13207) >= 30){
delitem 13207,30;
- set gun_na,103;
+ gun_na = 103;
}
break;
}
@@ -1315,7 +1307,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "[N. A]";
mes "Easy, ain't it? Go and prove";
mes "your ability then! Heheheh...";
- set gun_na,1;
+ gun_na = 1;
close;
}
case 2:
@@ -1347,7 +1339,7 @@ que_ng,149,178,4 script Lab Director 4_F_ALCHE,{
mes "some time, come back here.";
close;
}else{
- set gun_na,10;
+ gun_na = 10;
mes "[N. A]";
mes "Since it's really hard to find";
mes "the materials for constructing";
@@ -1465,7 +1457,7 @@ lighthalzen,205,284,6 script F. Harrison 4_M_03,{
mes "you bring all those materials";
mes "to me once you find them all!";
mes "Promise me!!!";
- set gun_na,101;
+ gun_na = 101;
getitem 13102,1;
close;
}
@@ -1488,7 +1480,7 @@ lighthalzen,205,284,6 script F. Harrison 4_M_03,{
delitem 984,1;
delitem 1003,20;
delitem 13102,1;
- set gun_na,104;
+ gun_na = 104;
mes "[F. Harrison]";
mes "Aha! You got all the materials";
mes "for me! I'll get to the repair";
@@ -1525,7 +1517,7 @@ lighthalzen,205,284,6 script F. Harrison 4_M_03,{
mes "stuff first.-";
close;
}
- set gun_na,0;
+ gun_na = 0;
getitem 13159,1;
mes "[F. Harrison]";
mes "Whew... Finally it's fixed, thanks";
@@ -1589,7 +1581,7 @@ lighthalzen,205,284,6 script F. Harrison 4_M_03,{
mes "I won't break it!";
mes "That's that! Let's go~";
delitem 13158,1;
- set gun_na,100;
+ gun_na = 100;
close;
}
}
diff --git a/npc/quests/juice_maker.txt b/npc/quests/juice_maker.txt
index 27d5e22cb..e0753290a 100644
--- a/npc/quests/juice_maker.txt
+++ b/npc/quests/juice_maker.txt
@@ -22,9 +22,9 @@ prt_in,49,172,3 script Marianne#juice 1_M_INNKEEPER,{
mes "Whew...!";
mes "Still, he won't eat anything unless it's Meat. But maybe he will eat fruit if it was cut so that it was easy to eat. Like, if it was blended into juice...";
next;
- set mother_marienu,0;
- set morison_meat,0;
- set MISC_QUEST,MISC_QUEST | 1;
+ mother_marienu = 0;
+ morison_meat = 0;
+ MISC_QUEST |= 1;
mes "[Housewife Marianne]";
mes "Ah! Come to think of it, I heard they were making fruit juice somewhere. Now where was it... Payon Village, or Morroc?";
close;
@@ -47,7 +47,7 @@ prt_in,49,172,3 script Marianne#juice 1_M_INNKEEPER,{
close;
}
if (morison_meat > 0) {
- set mother_marienu,1;
+ mother_marienu = 1;
mes "[Housewife Marianne]";
mes "Oh!!.... This...";
mes "what is this...??";
@@ -91,7 +91,7 @@ prt_in,47,173,3 script Morrison#juice 4W_M_01,{
mes "You don't have to give me any more Meat. I feel like I'm going to explode if I eat any more.";
if (morison_meat == 10) {
next;
- set morison_meat,morison_meat+1;
+ ++morison_meat;
mes "[Little Morrison]";
mes "Oh... and... um.";
mes "Take this.";
@@ -127,7 +127,7 @@ prt_in,47,173,3 script Morrison#juice 4W_M_01,{
next;
if (select("Give Meat:Don't Give Meat") == 1) {
delitem 517,1; //Meat
- set morison_meat,morison_meat+1;
+ ++morison_meat;
mes "[Little Morrison]";
mes "Wow~!!! Meat!!";
mes "So yummy!";
@@ -137,7 +137,7 @@ prt_in,47,173,3 script Morrison#juice 4W_M_01,{
mes "*Chew chew*";
close;
}
- set morison_meat,15;
+ morison_meat = 15;
mes "[Little Morrison]";
mes "Waah...!";
mes "Fine, I get it now.";
@@ -189,20 +189,20 @@ payon_in03,188,146,5 script Marx Hansen#juice 4_M_04,{
next;
switch(select("Apple Juice:Banana Juice:Carrot Juice:Grape Juice:Cancel")) {
case 1:
- set .@fruit,512;
- set .@juice,531;
+ .@fruit = 512;
+ .@juice = 531;
break;
case 2:
- set .@fruit,513;
- set .@juice,532;
+ .@fruit = 513;
+ .@juice = 532;
break;
case 3:
- set .@fruit,515;
- set .@juice,534;
+ .@fruit = 515;
+ .@juice = 534;
break;
case 4:
- set .@fruit,514;
- set .@juice,533;
+ .@fruit = 514;
+ .@juice = 533;
break;
case 5:
mes "[Merchant Marx Hansen]";
@@ -225,9 +225,9 @@ payon_in03,188,146,5 script Marx Hansen#juice 4_M_04,{
next;
switch(select("As many as I can.:I want a certain amount.:Cancel.")) {
case 1:
- set .@make,countitem(.@fruit);
- if (countitem(713) < .@make) set .@make, countitem(713);
- if (Zeny/3 < .@make) set .@make, Zeny/3;
+ .@make = countitem(.@fruit);
+ if (countitem(713) < .@make) .@make = countitem(713);
+ if (Zeny/3 < .@make) .@make = Zeny/3;
break;
case 2:
mes "[Merchant Marx Hansen]";
@@ -250,7 +250,7 @@ payon_in03,188,146,5 script Marx Hansen#juice 4_M_04,{
break;
}
}
- set .@make,.@input;
+ .@make = .@input;
break;
case 3:
mes "[Merchant Marx Hansen]";
@@ -259,7 +259,7 @@ payon_in03,188,146,5 script Marx Hansen#juice 4_M_04,{
close;
}
- set .@total_zeny,3 * .@make;
+ .@total_zeny = 3 * .@make;
if (countitem(.@fruit) < .@make || countitem(713) < .@make || Zeny < .@total_zeny) {
mes "[Merchant Marx Hansen]";
diff --git a/npc/quests/kiel_hyre_quest.txt b/npc/quests/kiel_hyre_quest.txt
index 29ea57cf8..34a605649 100644
--- a/npc/quests/kiel_hyre_quest.txt
+++ b/npc/quests/kiel_hyre_quest.txt
@@ -355,7 +355,7 @@ yuno_in01,35,179,4 script Pub Master#kh 1_ETC_01,5,5,{
mes "Hyre Academy. I'll pay you";
mes "once you finish the job, okay?";
getitem 7487,1; //Tavern_Wine
- set KielHyreQuest,2;
+ KielHyreQuest = 2;
close;
case 2:
mes "[Vandt]";
@@ -445,7 +445,7 @@ OnTouch:
mes "This can't be good...";
mes "This isn't good at all!";
mes "What am I suposed to do?";
- set KielHyreQuest,1;
+ KielHyreQuest = 1;
close;
}
}
@@ -502,7 +502,7 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
mes "to understand that my hands";
mes "are tied. D-don't ask me";
mes "why, they just are!";
- set KHToastGirlEnd,1;
+ KHToastGirlEnd = 1;
close;
case 2:
mes "[Cezu]";
@@ -529,12 +529,12 @@ yuno,217,114,6 script Little Kid#kh 4W_KID,{
mes "send her my regards. See you~";
delitem 7488,1; //Delivery_Package
getitem 7488,1; //Delivery_Package
- set KHToastGirlEnd,3;
+ KHToastGirlEnd = 3;
close;
}
}
//KHToastGirlEnd no longer needed-- deleting.
- if (KielHyreQuest > 6) set KHToastGirlEnd,0;
+ if (KielHyreQuest > 6) KHToastGirlEnd = 0;
mes "Hot, fresh and";
mes "cruuuunchy toast!";
mes "Come and get some!";
@@ -591,7 +591,7 @@ lighthalzen,366,299,4 script Windmill Owner#kh 1_ETC_01,{
mes "I know how other people treat";
mes "you adventurers. Well, see ya.";
getitem 7488,1; //Delivery_Package
- set KHToastGirlEnd,2;
+ KHToastGirlEnd = 2;
close;
case 2:
mes "[Mills]";
@@ -901,7 +901,7 @@ kh_school,176,60,4 script Lady#kh 4W_F_01,{
mes "don't wander needlessly";
mes "around the academy.";
delitem 7487,1; //Tavern_Wine
- set KielHyreQuest,4;
+ KielHyreQuest = 4;
close;
case 2:
mes "[Mrs. Lecollane]";
@@ -1066,7 +1066,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "you hurry back here with";
mes "those cookie ingredients";
mes "as quickly as you can, okay?";
- set KielHyreQuest,6;
+ KielHyreQuest = 6;
break;
case 2:
mes "[Elly]";
@@ -1115,10 +1115,10 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
delitem 7182,5; //Cacao
delitem 7487,1; //Tavern_Wine
delitem 7488,1; //Delivery_Package
- set KielHyreQuest,8;
+ KielHyreQuest = 8;
//KHPubMasterEnd no longer needed-- deleting.
- set KHPubMasterEnd,0;
- set KHToastGirlEnd,0;
+ KHPubMasterEnd = 0;
+ KHToastGirlEnd = 0;
emotion e_ho;
}
}
@@ -1147,7 +1147,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes ""+strcharinfo(0)+"?";
mes "...that name! It's wonderful!";
getitem 538,5; //Well_Baked_Cookie
- set KielHyreQuest,10;
+ KielHyreQuest = 10;
}
else if (KielHyreQuest == 10) {
mes "[Elly]";
@@ -1193,7 +1193,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "property, but if you mention";
mes "my name, they'll let you in.";
mes "Alright then, see you~";
- set KielHyreQuest,12;
+ KielHyreQuest = 12;
break;
case 2:
cutin "kh_elly03",2;
@@ -1239,7 +1239,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "That way, you can just go";
mes "inside and talk to him~";
getitem 7489,1; //Villa_Spare_Key
- set KielHyreQuest,16;
+ KielHyreQuest = 16;
}
else if ((KielHyreQuest >= 14) && (KielHyreQuest < 20)) {
mes "[Elly]";
@@ -1293,7 +1293,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "mean that he's in danger?!";
mes "Oh no, what should I do?";
delitem 7490,1; //Letter_to_Elly
- set KielHyreQuest,22;
+ KielHyreQuest = 22;
}
else if (KielHyreQuest == 22) {
cutin "kh_elly03",2;
@@ -1420,7 +1420,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "by that ghost, just yell";
mes "''^FF0000Wake up, Elly!^000000''";
mes "That'll wake me up for sure!";
- set KielHyreQuest,24;
+ KielHyreQuest = 24;
break;
}
}
@@ -1460,7 +1460,7 @@ kh_school,179,39,0 script Cute Student#kh 4_F_KHELLY,{
mes "[Elly]";
mes "Hurry, hurry, the";
mes "teacher's coming!";
- set KielHyreQuest,26;
+ KielHyreQuest = 26;
}
else {
mes "[Elly]";
@@ -1607,7 +1607,7 @@ kh_school,178,180,4 script Elly 4_F_KHELLY,{
mes "up, but only for an instant.^000000";
getitem 7493,1; //Golden_Key
getitem 7494,1; //Kiel_Button
- set KielHyreQuest,34;
+ KielHyreQuest = 34;
close;
}
else {
@@ -1676,7 +1676,7 @@ kh_school,178,180,4 script Elly 4_F_KHELLY,{
mes "Grandpa";
getitem 7495,1; //Blue_Key_Card
delitem 7491,1; //Iron_Box
- set KielHyreQuest,36;
+ KielHyreQuest = 36;
close;
}
}
@@ -1750,7 +1750,7 @@ kh_school,175,176,0 script Cookie Basket#kh HIDDEN_NPC,{
mes "to leave my window open so that";
mes "you can still find me. I hope he";
mes "doesn't cast his curse on me!";
- set KielHyreQuest,32;
+ KielHyreQuest = 32;
close;
case 2:
mes "^3355FFThat note probably";
@@ -1804,7 +1804,7 @@ kh_school,175,176,0 script Cookie Basket#kh HIDDEN_NPC,{
mes "out a cookie, and put it";
mes "in your mouth. It was";
mes "deliciously bittersweet.";
- set KielHyreQuest,109;
+ KielHyreQuest = 109;
next;
input .@input$;
mes "["+strcharinfo(0)+"]";
@@ -1886,7 +1886,7 @@ yuno_fild08,71,170,0 script Grave#kh HIDDEN_NPC,{
mes "^3355FFYou hear another ";
mes "pleasant beep, and";
mes "a secret path opens.^000000";
- set KielHyreQuest,38;
+ KielHyreQuest = 38;
close;
}
else {
@@ -1994,7 +1994,7 @@ yuno_fild02,93,210,4 script Cottage Keeper#kh 4_M_03,{
mes "wouldn't have left if he";
mes "was supposed to keep";
mes "an appointment...";
- set KielHyreQuest,14;
+ KielHyreQuest = 14;
close;
case 2:
mes "[Cottage Keeper]";
@@ -2043,7 +2043,7 @@ yuno_fild02,75,218,0 script Door#kh2 HIDDEN_NPC,{
mes "3 Forward,";
mes "4 Left";
close2;
- set KielHyreQuest,18;
+ KielHyreQuest = 18;
warp "kh_vila",188,18;
end;
case 2:
@@ -2142,7 +2142,7 @@ kh_vila,184,20,0 script Book#kh1::BookKHQ1 HIDDEN_NPC,{
mes "pull it towards you, the";
mes "wall slides opens open";
mes "to reveal a secret path.^000000";
- set KielHyreQuest,28;
+ KielHyreQuest = 28;
specialeffect EF_READYPORTAL2,AREA,"Wall#kh";
close;
}
@@ -2182,7 +2182,7 @@ OnTouch:
mes "the fact that it's not";
mes "addressed to you.^000000";
getitem 7490,1; //Kyll_Hire_Letter
- set KielHyreQuest,20;
+ KielHyreQuest = 20;
close;
} else {
mes "^3355FFYou entered the room.^000000";
@@ -2295,7 +2295,7 @@ kh_vila,44,126,0 script Map#khp1 HIDDEN_NPC,{
mes "You'll need to find some";
mes "way to loosen the glue";
mes "without damaging the map...^000000";
- set KHCottagePoem1,1;
+ KHCottagePoem1 = 1;
close;
}
}
@@ -2335,7 +2335,7 @@ kh_vila,44,126,0 script Map#khp1 HIDDEN_NPC,{
mes "The deeper meaning";
mes "of this poem, if it even";
mes "exists, eludes you.^000000";
- set KHCottagePoem1,3;
+ KHCottagePoem1 = 3;
close;
}
else if ((KHCottagePoem1 > 2) || (KielHyreQuest >= 30)) {
@@ -2402,7 +2402,7 @@ kh_vila,33,184,0 script Pot#khp1 HIDDEN_NPC,{
mes "boiling pot, but";
mes "slightly burned your";
mes "hands by accident.";
- set KHCottagePoem1,2;
+ KHCottagePoem1 = 2;
close;
case 2:
@@ -2529,7 +2529,7 @@ kh_vila,39,41,0 script Pool#khp1 HIDDEN_NPC,{
mes "which seems to trigger";
mes "a strange sound coming";
mes "from the stairs at the hallway.^000000";
- set KHCottagePoem1,4;
+ KHCottagePoem1 = 4;
close;
case 2:
mes "^3355FFYou'd better not push";
@@ -2758,10 +2758,10 @@ kh_vila,181,138,0 script Bookshelf#khp1 HIDDEN_NPC,{
else if (countitem(7516) >= 1) {
switch(select("Green Keycard:Cottage Key")) {
case 1:
- set .@KHFirstKeyhole,1;
+ .@KHFirstKeyhole = 1;
break;
case 2:
- set .@KHFirstKeyhole,2;
+ .@KHFirstKeyhole = 2;
break;
}
mes "^3355FFWhich key will";
@@ -2770,11 +2770,11 @@ kh_vila,181,138,0 script Bookshelf#khp1 HIDDEN_NPC,{
next;
switch(select("Green Keycard:Cottage Key")) {
case 1:
- set .@KHSecondKeyhole,1;
+ .@KHSecondKeyhole = 1;
break;
case 2:
- set .@KHSecondKeyhole,2;
+ .@KHSecondKeyhole = 2;
break;
}
@@ -2845,7 +2845,7 @@ kh_vila,118,144,0 script Desk#khp1 HIDDEN_NPC,{
mes "a blank piece of";
mes "paper with the Kiel";
mes "Hyre Foundation seal.^000000";
- set KHCottagePoem2,1;
+ KHCottagePoem2 = 1;
close;
}
else if (KHCottagePoem2 >= 1) {
@@ -2897,7 +2897,7 @@ kh_vila,123,170,0 script Medicine Chest#khp1 HIDDEN_NPC,{
case 2:
switch(select("Try Red Liquid:Try Blue Liquid:Try Yellow Liquid:Try Green Liquid:Cancel")) {
case 1:
- set .@KHPotionColor$,"red";
+ .@KHPotionColor$ = "red";
break;
case 2:
mes "^3355FFIt works!";
@@ -2933,13 +2933,13 @@ kh_vila,123,170,0 script Medicine Chest#khp1 HIDDEN_NPC,{
mes "^3355FFThis is a very";
mes "strange poem. What";
mes "could it possibly mean?^000000";
- set KHCottagePoem2,2;
+ KHCottagePoem2 = 2;
close;
case 3:
- set .@KHPotionColor$,"yellow";
+ .@KHPotionColor$ = "yellow";
break;
case 4:
- set .@KHPotionColor$,"green";
+ .@KHPotionColor$ = "green";
break;
case 5:
mes "^3355FFNever mind.";
@@ -3063,7 +3063,7 @@ kh_vila,136,68,0 script Sword Hilt#kh HIDDEN_NPC,{
default:
break;
case 2:
- set .@KHSwords,.@KHSwords+1;
+ ++.@KHSwords;
break;
}
next;
@@ -3075,7 +3075,7 @@ kh_vila,136,68,0 script Sword Hilt#kh HIDDEN_NPC,{
default:
break;
case 4:
- set .@KHSwords,.@KHSwords+1;
+ ++.@KHSwords;
break;
}
next;
@@ -3085,7 +3085,7 @@ kh_vila,136,68,0 script Sword Hilt#kh HIDDEN_NPC,{
next;
switch(select("First Snake:Second Snake:Third Snake:Fourth Snake")) {
case 1:
- set .@KHSwords,.@KHSwords+1;
+ ++.@KHSwords;
break;
default:
break;
@@ -3099,7 +3099,7 @@ kh_vila,136,68,0 script Sword Hilt#kh HIDDEN_NPC,{
default:
break;
case 3:
- set .@KHSwords,.@KHSwords+1;
+ ++.@KHSwords;
break;
}
@@ -3109,8 +3109,8 @@ kh_vila,136,68,0 script Sword Hilt#kh HIDDEN_NPC,{
mes "noise, and your mind";
mes "and body feel as if they";
mes "are being swept away...^000000";
- set KHCottagePoem1,5;
- set KHCottagePoem2,3;
+ KHCottagePoem1 = 5;
+ KHCottagePoem2 = 3;
close2;
warp "kh_vila",178,72;
end;
@@ -3200,9 +3200,9 @@ kh_vila,185,68,0 script Test Tube::TestTubeKHQ2 HIDDEN_NPC,{
mes "^3355FFthose numbers^000000";
mes "^3355FFpossibly mean?^000000";
//KHCottagePoem1 and KHCottagePoem2 no longer needed-- deleting
- set KHCottagePoem1,0;
- set KHCottagePoem2,0;
- set KielHyreQuest,30;
+ KHCottagePoem1 = 0;
+ KHCottagePoem2 = 0;
+ KielHyreQuest = 30;
close;
}
else {
@@ -3518,7 +3518,7 @@ kh_school,122,186,4 script Beautiful Lady#kh6 4_F_KHELLISIA,{
mes "locate Kiel Hyre, please";
mes "let me know right away.";
getitem 7496,1; //Red_Key_Card
- set KielHyreQuest,40;
+ KielHyreQuest = 40;
break;
}
close2;
@@ -3562,7 +3562,7 @@ kh_school,122,186,4 script Beautiful Lady#kh6 4_F_KHELLISIA,{
mes "Kiel Hyre's orders, and";
mes "must carry them out...";
delitem 7497,1; //Steel_Piece
- set KielHyreQuest,44;
+ KielHyreQuest = 44;
close2;
cutin "",255;
end;
@@ -3585,7 +3585,7 @@ kh_school,122,186,4 script Beautiful Lady#kh6 4_F_KHELLISIA,{
delitem 7492,1; //Yellow_Key_Card
delitem 7495,1; //Blue_Key_Card
delitem 7496,1; //Red_Key_Card
- set KielHyreQuest,46;
+ KielHyreQuest = 46;
next;
mes "[Allysia]";
mes "I understand that this";
@@ -3739,7 +3739,7 @@ OnTouch:
mes "the gap between the";
mes "door and the floor.^000000";
getitem 7497,1; //Steel_Piece
- set KielHyreQuest,42;
+ KielHyreQuest = 42;
close;
}
@@ -3967,7 +3967,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "with ^3355FFAllysia^000000? She can explain";
mes "everything much more succinctly";
mes "than I can. I tend to ramble...";
- set .@KHQRead,.@KHQRead+1;
+ ++.@KHQRead;
next;
break;
case 2:
@@ -3994,7 +3994,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "I don't know why he wants";
mes "to do this. I still have";
mes "absolutely no clue...";
- set .@KHQRead,.@KHQRead+1;
+ ++.@KHQRead;
next;
break;
case 3:
@@ -4013,7 +4013,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "I've never even seen";
mes "his face! Kiehl just hired";
mes "him without letting me know...";
- set .@KHQRead,.@KHQRead+1;
+ ++.@KHQRead;
next;
break;
}
@@ -4027,7 +4027,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "I was locked up in the factory.";
delitem 7493,1; //Golden_Key
delitem 7494,1; //Kiel_Button
- set KielHyreQuest,48;
+ KielHyreQuest = 48;
break;
}
}
@@ -4040,7 +4040,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "saving my life.";
getitem 12105,1; //Taming_Gift_Set
getexp (checkre(3))?70000:700000,0;
- set KielHyreQuest,50;
+ KielHyreQuest = 50;
}
else if ((KielHyreQuest >= 50) && (KielHyreQuest < 64)) {
mes "[Kiel Hyre]";
@@ -4383,7 +4383,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
delitem 7501,1; //Kyll_Hyre_Letter2
delitem 7502,1; //Piece_Memo_Of_James
delitem 7503,1; //Man_Portrait
- set KielHyreQuest,70;
+ KielHyreQuest = 70;
close2;
cutin "",255;
end;
@@ -4577,7 +4577,7 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "Let me know once";
mes "you're ready. Then, I'll";
mes "guide you Kiehl's room.";
- set KielHyreQuest,74;
+ KielHyreQuest = 74;
}
else if ((KielHyreQuest >= 74) && (KielHyreQuest <= 104)) {
mes "[Kiel Hyre]";
@@ -4650,13 +4650,13 @@ kh_mansion,22,28,4 script Kiel Hyre#kh 4_M_KHKYEL,{
mes "deepest levels of the factory.";
mes "I'll investigate Kiehl's room.";
getitem 7509,1; //Fancy_Key_Card
- set KielHyreQuest,108;
+ KielHyreQuest = 108;
next;
if (Sex == 0) {
- if (getpartnerid() == 0) set .@KHTitle$,"Miss";
- else set .@KHSTitle$,"Mrs";
+ if (getpartnerid() == 0) .@KHTitle$ = "Miss";
+ else .@KHSTitle$ = "Mrs";
}
- else set .@KHTitle$,"Mr";
+ else .@KHTitle$ = "Mr";
mes "[Kiel Hyre]";
mes "Kiehl is my responsibility...";
mes "No matter what the cost may";
@@ -5047,7 +5047,7 @@ OnTouch:
mes "I'm Agent Mitchell Layla.";
mes "From here on, you're working";
mes "for the Schwaltzvalt Republic!";
- set KielHyreQuest,52;
+ KielHyreQuest = 52;
close;
}
}
@@ -5083,7 +5083,7 @@ OnTouch:
mes "when you're ready to go";
mes "to Juno, let me know, and you";
mes "can board the federal airship.";
- set KielHyreQuest,54;
+ KielHyreQuest = 54;
close;
}
else if (KielHyreQuest == 54) {
@@ -5135,7 +5135,7 @@ OnTouch:
mes "you to find out who Kiel";
mes "really is, and what's his";
mes "relationship to Rekenber.";
- set KielHyreQuest,68;
+ KielHyreQuest = 68;
next;
warp "kh_mansion",83,50;
end;
@@ -5207,7 +5207,7 @@ yuno,257,140,4 script Odd Grandma 4_F_EINOLD,{
mes "rest, so I can go to work.";
mes "The house is so messy,";
mes "and the boss is unhappy...";
- set KielHyreQuest,56;
+ KielHyreQuest = 56;
next;
select("Um, I don't see a baby...");
mes "[Grandma]";
@@ -5359,7 +5359,7 @@ yuno,250,132,0 script Old Lady#kh 4_F_05,{
mes "Alright then, I hope you find";
mes "what you're looking for.";
getitem 7498,1; //Rosimier_Key
- set KielHyreQuest,58;
+ KielHyreQuest = 58;
close;
}
}
@@ -5421,7 +5421,7 @@ yuno,250,132,0 script Old Lady#kh 4_F_05,{
mes "so he might have a better";
mes "idea of what had happened.";
delitem 7498,1; //Rosimier_Key
- set KielHyreQuest,60;
+ KielHyreQuest = 60;
close;
}
else if (KielHyreQuest >= 60) {
@@ -5805,7 +5805,7 @@ yuno_fild12,232,222,0 script Old Fisherman 4_M_SEAMAN,{
mes "a hut near the northeast";
mes "forest guard camp.";
delitem 544,10; //Fish_Slice
- set KielHyreQuest,62;
+ KielHyreQuest = 62;
close;
}
else {
@@ -5856,7 +5856,7 @@ yuno_fild09,158,217,0 script Wooden Board#kh HIDDEN_NPC,{
mes "picture frame underneath";
mes "the old wooden board.^000000";
getitem 7503,1; //Man_Portrait
- set KielHyreQuest,64;
+ KielHyreQuest = 64;
next;
cutin "",255;
mes "^3355FFYou have enough";
@@ -5894,7 +5894,7 @@ kh_kiehl01,17,39,0 script Receiver#kh HIDDEN_NPC,{
mes "you to kill me? We'll just";
mes "see about that! Go ahead,";
mes "try to find me, adventurer.^000000.";
- set KielHyreQuest,76;
+ KielHyreQuest = 76;
}
close2;
monster "kh_kiehl01",16,32,"Alicel",1739,1,"Receiver#kh::OnMyMobDead";
@@ -6045,7 +6045,7 @@ kh_kiehl01,44,33,0 script Big Door#BigDoorKHQ1 HIDDEN_NPC,{
delitem 7506,1; //Black_Key_Card
donpcevent "Big_Door_1_Warp::OnEnable";
enablenpc "Big_Door_1_Warp";
- set .KHDoor1Opened,1;
+ .KHDoor1Opened = 1;
close;
}
@@ -6106,7 +6106,7 @@ kh_kiehl01,174,40,0 script Big Door#BigDoorKHQ2 HIDDEN_NPC,{
delitem 7505,1; //Toy_Key
donpcevent "Big_Door_2_Warp::OnEnable";
enablenpc "Big_Door_2_Warp";
- set .KHDoor2Opened,1;
+ .KHDoor2Opened = 1;
close;
}
@@ -6166,7 +6166,7 @@ kh_kiehl01,77,108,0 script Big Door#BigDoorKHQ3 HIDDEN_NPC,{
delitem 7506,1; //Black_Key_Card
donpcevent "Big_Door_3_Warp::OnEnable";
enablenpc "Big_Door_3_Warp";
- set .KHDoor3Opened,1;
+ .KHDoor3Opened = 1;
close;
}
@@ -6226,7 +6226,7 @@ kh_kiehl01,42,177,0 script Big Door#BigDoorKHQ4 HIDDEN_NPC,{
delitem 7506,2; //Black_Key_Card
donpcevent "Big_Door_4_Warp::OnEnable";
enablenpc "Big_Door_4_Warp";
- set .KHDoor4Opened,1;
+ .KHDoor4Opened = 1;
close;
}
}
@@ -6327,13 +6327,13 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
mes "This must be some";
mes "kind of security device.^000000";
close2;
- set @KHDoorPushAttempt,@KHDoorPushAttempt+1;
+ ++@KHDoorPushAttempt;
monster "kh_kiehl01",163,183,"Alicel",1739,1;
monster "kh_kiehl01",163,179,"Aliot",1740,1;
monster "kh_kiehl01",169,183,"Alicel",1739,1;
monster "kh_kiehl01",169,179,"Aliot",1740,1;
if (@KHDoorPushAttempt >= 3) {
- set KielHyreQuest,86;
+ KielHyreQuest = 86;
}
end;
}
@@ -6352,10 +6352,10 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
next;
switch(select("Steel:Rusty Iron Piece:Solid Iron Piece:Iron Piece:Screw:Cancel")) {
case 1:
- set .@KHPryingItem$,"Steel";
+ .@KHPryingItem$ = "Steel";
break;
case 2:
- set .@KHPryingItem$,"Rusty Iron Piece";
+ .@KHPryingItem$ = "Rusty Iron Piece";
break;
case 3:
if (countitem(7507) >= 1) {
@@ -6368,7 +6368,7 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
mes "but you break one of your";
mes "Solid Iron Pieces.^000000";
delitem 7507,1; //Hard_Piece_of_Steel
- set KielHyreQuest,KielHyreQuest+2;
+ KielHyreQuest += 2;
close;
}
else if (KielHyreQuest == 92) {
@@ -6380,7 +6380,7 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
mes "awesome force, this Solid";
mes "Iron Piece shatters into dust.^000000";
delitem 7507,1; //Hard_Piece_of_Steel
- set KielHyreQuest,94;
+ KielHyreQuest = 94;
close;
}
}
@@ -6391,10 +6391,10 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
close;
}
case 4:
- set .@KHPryingItem$,"Iron Piece";
+ .@KHPryingItem$ = "Iron Piece";
break;
case 5:
- set .@KHPryingItem$,"Screw";
+ .@KHPryingItem$ = "Screw";
break;
case 6:
mes "^3355FFLet's look for something";
@@ -6419,7 +6419,7 @@ kh_kiehl01,166,187,0 script Big Door#BigDoorKHQ5 HIDDEN_NPC,{
close2;
donpcevent "Big_Door_5_Warp::OnEnable";
enablenpc "Big_Door_5_Warp";
- set .KHDoor5Opened,1;
+ .KHDoor5Opened = 1;
end;
case 2:
mes "^3355FFWho knows what is on the";
@@ -6487,8 +6487,8 @@ kh_kiehl02,49,10,0 script Kiehl_Room_Trap -1,5,3,{
OnTouch:
if (.KHTrapSprung < 1) {
- set .KHTrapSprung,1;
- set $@KHQuestBusy,1;
+ .KHTrapSprung = 1;
+ $@KHQuestBusy = 1;
initnpctimer;
monster "kh_kiehl02",47,13,"Aliot",1740,1;
monster "kh_kiehl02",45,13,"Alicel",1739,1;
@@ -6663,7 +6663,7 @@ kh_kiehl02,50,52,4 script Kiehl#Original 4_M_KHKIEL,{
mes "Kiehl Hyre, you're";
mes "under arrest for creating";
mes "and trading illegal weapons!";
- set KielHyreQuest,100;
+ KielHyreQuest = 100;
hideoffnpc "Mitchell#KiehlRoom";
hideoffnpc "Agent#KHAgent1";
hideoffnpc "Agent#KHAgent2";
@@ -6939,7 +6939,7 @@ kh_kiehl02,50,52,4 script Kiehl#Original 4_M_KHKIEL,{
mes "Anyway, I'll open up the";
mes "exit for you. Farewell~";
delitem 7504,1; //Toy_Motor
- set KielHyreQuest,104;
+ KielHyreQuest = 104;
hideonnpc "Kiehl#Copy";
donpcevent "Kiehl_Room_Exit::OnEnable";
enablenpc "Kiehl_Room_Exit";
@@ -6953,7 +6953,7 @@ kh_kiehl02,50,52,4 script Kiehl#Original 4_M_KHKIEL,{
mes "ring from the heart of";
mes "Kiehl's old robotic body.^000000";
getitem 7508,1; //Elysia_Ring
- set KielHyreQuest,106;
+ KielHyreQuest = 106;
close2;
cutin "",255;
end;
@@ -7028,17 +7028,17 @@ kh_kiehl02,1,1,0 script KiehlRoom -1,{
end;
OnKiehlMobDead:
- set .KHKilled,.KHKilled+1;
+ ++.KHKilled;
if (.KHKilled == 5) {
hideoffnpc "Kiehl#Original";
}
end;
OnKiehlDead:
- set .KHKilledBoss,1;
+ .KHKilledBoss = 1;
hideoffnpc "Kiehl#Original";
end;
-
+
OnReset:
donpcevent "Kiehl_Room_Trap::OnGlobalTimerOff";
if (getmapusers("kh_kiehl02") > 0)
@@ -7052,10 +7052,10 @@ OnReset:
hideonnpc "Agent#KHAgent4";
hideonnpc "Kiehl#Copy";
hideoffnpc "Kiehl#Original";
- set .KHKilledBoss,0;
- set .KHKilled,0;
+ .KHKilledBoss = 0;
+ .KHKilled = 0;
set getvariableofnpc(.KHTrapSprung,"Kiehl_Room_Trap"),0;
- set $@KHQuestBusy,0;
+ $@KHQuestBusy = 0;
end;
}
diff --git a/npc/quests/lvl4_weapon_quest.txt b/npc/quests/lvl4_weapon_quest.txt
index 91a1cea91..e31ea53c3 100644
--- a/npc/quests/lvl4_weapon_quest.txt
+++ b/npc/quests/lvl4_weapon_quest.txt
@@ -80,7 +80,7 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
next;
mes "[Bazo]";
mes "Please bring me 30 of either Citrin, Turquoise or Agate. Well then, I wish you luck in finding those things and I'll be waiting for you~";
- set lv4_weapon,1;
+ lv4_weapon = 1;
close;
case 2:
mes "[Bazo]";
@@ -133,21 +133,21 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
mes "Immaterial Sword!";
mes "This sword was born to be yours!";
mes "Congratulations and hopefully it will be useful to you.";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1141,1; //Immaterial_Sword
}
else if (lv4_weapon == 6) {
mes "Slash!";
mes "This mace was born to be yours!";
mes "Congratulations and hopefully it will be useful to you.";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1526,1; //Slash
}
else if (lv4_weapon == 7) {
mes "Quadrille!";
mes "This mace was born to be yours!";
mes "Congratulations and hopefully it will be useful to you.";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1527,1; //Quadrille
}
next;
@@ -157,19 +157,19 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
}
if (((lv4_weapon == 2) && (countitem(7295) > 29)) || ((lv4_weapon == 3) && (countitem(7294) > 29)) || ((lv4_weapon == 4) && (countitem(7291) > 29))) {
if (lv4_weapon == 2) {
- set .@itemreq,7295; // Citrine
+ .@itemreq = 7295; // Citrine
}
else if (lv4_weapon == 3) {
- set .@itemreq,7294; //Turqoise
+ .@itemreq = 7294; //Turqoise
}
else if (lv4_weapon == 4) {
- set .@itemreq,7291; // Agate
+ .@itemreq = 7291; // Agate
}
mes "[Bazo]";
mes "Okay, it seems like you're";
mes "ready so let's get started. Now, my favorite monsters are Poring, Hode, Obeaune and Minorous.";
next;
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
setarray .@mons[.@i],rand(1,4);
mes "[Bazo]";
if (.@i == 1) {
@@ -196,16 +196,16 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
mes "thinking about right now.";
}
next;
- set .@answer,select("Poring:Hode:Obeaune:Minorous");
+ .@answer = select("Poring:Hode:Obeaune:Minorous");
if (.@answer == .@mons[.@i]) {
- set .@dap,.@dap + 1;
+ ++.@dap;
}
}
mes "[Bazo]";
mes "Okay, let me give you the answers for the questions in the order I was thinking. Now, it might seem like I'm making them up right now, but I'm not. We gotta trust each other on this.";
next;
mes "[Bazo]";
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
if (.@mons[.@i] == 1) {
mes "Poring";
}
@@ -221,7 +221,7 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
}
if (.@dap > 0) {
delitem .@itemreq,30;
- set lv4_weapon,lv4_weapon+3;
+ lv4_weapon += 3;
}
else if (.@dap < 1) {
delitem .@itemreq,10;
@@ -270,13 +270,13 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
next;
switch(select("Citrin:Turquoise:Agate")) {
case 1:
- set .@itemreq,7295; // Citrine
+ .@itemreq = 7295; // Citrine
break;
case 2:
- set .@itemreq,7294; //Turqoise
+ .@itemreq = 7294; //Turqoise
break;
case 3:
- set .@itemreq,7291; // Agate
+ .@itemreq = 7291; // Agate
break;
}
}
@@ -287,10 +287,10 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
mes "you like to use?";
switch(select("Citrin:Turquoise")) {
case 1:
- set .@itemreq,7295; // Citrine
+ .@itemreq = 7295; // Citrine
break;
case 2:
- set .@itemreq,7294; //Turqoise
+ .@itemreq = 7294; //Turqoise
break;
}
}
@@ -301,10 +301,10 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
mes "you like to use?";
switch(select("Citrin:Agate")) {
case 1:
- set .@itemreq,7295; // Citrine
+ .@itemreq = 7295; // Citrine
break;
case 2:
- set .@itemreq,7291; // Agate
+ .@itemreq = 7291; // Agate
break;
}
}
@@ -315,22 +315,22 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
mes "you like to use?";
switch(select("Turquoise:Agate")) {
case 1:
- set .@itemreq,7294; //Turqoise
+ .@itemreq = 7294; //Turqoise
break;
case 2:
- set .@itemreq,7291; // Agate
+ .@itemreq = 7291; // Agate
break;
}
}
else {
if (countitem(7295) > 29) {
- set .@itemreq,7295; // Citrine
+ .@itemreq = 7295; // Citrine
}
if (countitem(7294) > 29) {
- set .@itemreq,7294; //Turqoise
+ .@itemreq = 7294; //Turqoise
}
if (countitem(7291) > 29) {
- set .@itemreq,7291; // Agate
+ .@itemreq = 7291; // Agate
}
}
mes "[Bazo]";
@@ -360,13 +360,13 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
delitem 999,50; //Steel
delitem 714,10; //Emperium
if (.@itemreq == 7295) {
- set lv4_weapon,2;
+ lv4_weapon = 2;
}
else if (.@itemreq == 7294) {
- set lv4_weapon,3;
+ lv4_weapon = 3;
}
else if (.@itemreq == 7291) {
- set lv4_weapon,4;
+ lv4_weapon = 4;
}
close;
}
@@ -449,7 +449,7 @@ umbala,117,285,3 script Bazo#lv4 4_M_03,{
next;
mes "[Bazo]";
mes "Please bring me 30 of either Citrin, Turquoise or Agate. Well then, I wish you luck in finding those things and I'll be waiting for you~";
- set lv4_weapon,1;
+ lv4_weapon = 1;
close;
case 2:
mes "[Bazo]";
@@ -529,7 +529,7 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
mes "[Hibilaithan]";
mes "Okay, I wish you good luck! In the meantime, I shall relax here and wait for your return.";
- set lv4_weapon,8;
+ lv4_weapon = 8;
close;
case 2:
mes "[Hibilaithan]";
@@ -575,17 +575,17 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
mes "[Hibilaithan]";
if (lv4_weapon == 12) {
mes "Ooh, this is a huge success! But of course, since it's my handiwork, that goes without saying. Hey, this is a weapon... Some sort of... Mailbreaker!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1225,1; //Mail_Breaker
}
else if (lv4_weapon == 13) {
mes "Ooh, this is a huge success! But of course, since it's my handiwork, that goes without saying. Hey, this is a weapon... Some sort of... Swordbreaker!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1224,1; //Sword_Breaker
}
else if (lv4_weapon == 14) {
mes "Ooh, this is a huge success! But of course, since it's my handiwork, that goes without saying. Hey, this is a weapon... Some sort of... Slaughter!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1367,1; //Slaughter
}
next;
@@ -595,13 +595,13 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
}
if (((lv4_weapon == 9) && (countitem(7292) > 29)) || ((lv4_weapon == 10) && (countitem(7297) > 29)) || ((lv4_weapon == 11) && (countitem(7296) > 29))) {
if (lv4_weapon == 9) {
- set .@itemreq,7292; //Muscovite
+ .@itemreq = 7292; //Muscovite
}
else if (lv4_weapon == 10) {
- set .@itemreq,7297; // Biotite
+ .@itemreq = 7297; // Biotite
}
else if (lv4_weapon == 11) {
- set .@itemreq,7296; // Pyroxene
+ .@itemreq = 7296; // Pyroxene
}
mes "[Hibilaithan]";
mes "Okay, let's get started!";
@@ -612,7 +612,7 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
mes "[Hibilaithan]";
mes "Don't worry, I'll tell you which monsters are my favorite, so this game isn't impossible. If you can guess just one of them right, we'll know your luck is good today!";
next;
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
setarray .@mons[.@i],rand(1,4);
mes "[Hibilaithan]";
if (.@i == 1) {
@@ -641,9 +641,9 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
mes "am I thinking of?";
}
next;
- set .@answer,select("Zealotus:Alice:Munak:Isis");
+ .@answer = select("Zealotus:Alice:Munak:Isis");
if (.@answer == .@mons[.@i]) {
- set .@dap,.@dap + 1;
+ ++.@dap;
}
}
mes "[Hibilaithan]";
@@ -653,7 +653,7 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
mes "I was thinking about...";
next;
mes "[Hibilaithan]";
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
if (.@mons[.@i] == 1) {
mes "Zealotus";
}
@@ -669,7 +669,7 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
}
if (.@dap > 0) {
delitem .@itemreq,30;
- set lv4_weapon,lv4_weapon+3;
+ lv4_weapon += 3;
}
else if (.@dap < 1) {
delitem .@itemreq,10;
@@ -721,13 +721,13 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
switch(select("Muscovite:Biotite:Pyroxene")) {
case 1:
- set .@itemreq,7292; //Muscovite
+ .@itemreq = 7292; //Muscovite
break;
case 2:
- set .@itemreq,7297; // Biotite
+ .@itemreq = 7297; // Biotite
break;
case 3:
- set .@itemreq,7296; // Pyroxene
+ .@itemreq = 7296; // Pyroxene
break;
}
}
@@ -737,10 +737,10 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
switch(select("Muscovite:Biotite")) {
case 1:
- set .@itemreq,7292; //Muscovite
+ .@itemreq = 7292; //Muscovite
break;
case 2:
- set .@itemreq,7297; // Biotite
+ .@itemreq = 7297; // Biotite
break;
}
}
@@ -750,10 +750,10 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
switch(select("Muscovite:Pyroxene")) {
case 1:
- set .@itemreq,7292; //Muscovite
+ .@itemreq = 7292; //Muscovite
break;
case 2:
- set .@itemreq,7296; // Pyroxene
+ .@itemreq = 7296; // Pyroxene
break;
}
}
@@ -763,22 +763,22 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
switch(select("Biotite:Pyroxene")) {
case 1:
- set .@itemreq,7297; // Biotite
+ .@itemreq = 7297; // Biotite
break;
case 2:
- set .@itemreq,7296; // Pyroxene
+ .@itemreq = 7296; // Pyroxene
break;
}
}
else {
if (countitem(7292) > 29) {
- set .@itemreq,7292; //Muscovite
+ .@itemreq = 7292; //Muscovite
}
else if (countitem(7297) > 29) {
- set .@itemreq,7297; // Biotite
+ .@itemreq = 7297; // Biotite
}
else if (countitem(7296) > 29) {
- set .@itemreq,7296; // Pyroxene
+ .@itemreq = 7296; // Pyroxene
}
}
mes "[Hibilaithan]";
@@ -808,13 +808,13 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
delitem 999,50; //Steel
delitem 714,10; //Emperium
if (countitem(7292) > 29) {
- set lv4_weapon,9;
+ lv4_weapon = 9;
}
else if (countitem(7297) > 29) {
- set lv4_weapon,10;
+ lv4_weapon = 10;
}
else if (countitem(7296) > 29) {
- set lv4_weapon,11;
+ lv4_weapon = 11;
}
close;
}
@@ -903,7 +903,7 @@ umbala,163,257,3 script Hibilaithan#lv4 4_M_UMDANCEKID2,{
next;
mes "[Hibilaithan]";
mes "Okay, I wish you good luck! In the meantime, I shall relax here and wait for your return.";
- set lv4_weapon,8;
+ lv4_weapon = 8;
close;
case 2:
mes "[Hibilaithan]";
@@ -981,7 +981,7 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
mes "[Tabezthan]";
mes "In other words, we will have to trust to luck. However, we'll have time to talk about that later. For now, please go and gather the necessary materials. I shall be waiting here.";
- set lv4_weapon,15;
+ lv4_weapon = 15;
close;
case 2:
mes "[Tabezthan]";
@@ -1024,19 +1024,19 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
if (lv4_weapon == 19) {
mes "I don't believe it!";
mes "This is such an incredibly rare weapon! Yes, I remember its name from what my late father told me. This is... Caesar's Sword!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1134,1; //Scissores_Sword
}
else if (lv4_weapon == 20) {
mes "I don't believe it!";
mes "This is such an incredibly rare weapon! Yes, I remember its name from what my late father told me. This is... Tirfing!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1139,1; //Tale_Fing_
}
else if (lv4_weapon == 21) {
mes "I don't believe it!";
mes "This is such an incredibly rare weapon! Yes, I remember its name from what my late father told me. This is... Sabbath!";
- set lv4_weapon,0;
+ lv4_weapon = 0;
getitem 1365,1; //Sabbath
}
next;
@@ -1048,13 +1048,13 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
}
if (((lv4_weapon == 16) && (countitem(7290))) || ((lv4_weapon == 17) && (countitem(7289))) || ((lv4_weapon == 18) && (countitem(7293)))) {
if (lv4_weapon == 16) {
- set .@itemreq,7290; //Phlogopite
+ .@itemreq = 7290; //Phlogopite
}
else if (lv4_weapon == 17) {
- set .@itemreq,7289; //Olivine
+ .@itemreq = 7289; //Olivine
}
else if (lv4_weapon == 18) {
- set .@itemreq,7293; //Rose_Quartz
+ .@itemreq = 7293; //Rose_Quartz
}
mes "[Tabezthan]";
mes "Shall we begin?";
@@ -1063,7 +1063,7 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
mes "[Tabezthan]";
mes "This mind reading game is an effective method of determining whether your fortune is good or bad. Get ready now...";
next;
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
setarray .@mons[.@i],rand(1,4);
mes "[Tabezthan]";
if (.@i == 1) {
@@ -1095,16 +1095,16 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
mes "monster I'm thinking of.";
}
next;
- set .@answer,select("Baphomet:Dark Lord:Bloody Knight:Stormy Knight");
+ .@answer = select("Baphomet:Dark Lord:Bloody Knight:Stormy Knight");
if (.@answer == .@mons[.@i]) {
- set .@dap,.@dap + 1;
+ ++.@dap;
}
}
mes "[Tabezthan]";
mes "That's the end of the game. Now, this is the order of the monsters that I had in mind...";
next;
mes "[Tabezthan]";
- for( set .@i, 1; .@i <= 5; set .@i,.@i+1 ) {
+ for( .@i = 1; .@i <= 5; ++.@i ) {
if (.@mons[.@i] == 1) {
mes "Baphomet";
}
@@ -1120,7 +1120,7 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
}
if (.@dap > 0) {
delitem .@itemreq,30;
- set lv4_weapon,lv4_weapon+3;
+ lv4_weapon += 3;
}
else if (.@dap < 1) {
delitem .@itemreq,10;
@@ -1163,13 +1163,13 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
switch(select("Phlogopite:Peridot:Rose Quartz")) {
case 1:
- set .@itemreq,7290; //Phlogopite
+ .@itemreq = 7290; //Phlogopite
break;
case 2:
- set .@itemreq,7289; //Olivine
+ .@itemreq = 7289; //Olivine
break;
case 3:
- set .@itemreq,7293; //Rose_Quartz
+ .@itemreq = 7293; //Rose_Quartz
break;
}
}
@@ -1182,10 +1182,10 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
switch(select("Phlogopite:Peridot")) {
case 1:
- set .@itemreq,7290; //Phlogopite
+ .@itemreq = 7290; //Phlogopite
break;
case 2:
- set .@itemreq,7289; //Olivine
+ .@itemreq = 7289; //Olivine
break;
}
}
@@ -1198,10 +1198,10 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
switch(select("Phlogopite:Rose Quartz")) {
case 1:
- set .@itemreq,7290; //Phlogopite
+ .@itemreq = 7290; //Phlogopite
break;
case 2:
- set .@itemreq,7293; //Rose_Quartz
+ .@itemreq = 7293; //Rose_Quartz
break;
}
}
@@ -1214,22 +1214,22 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
switch(select("Peridot:Rose Quartz")) {
case 1:
- set .@itemreq,7289; //Olivine
+ .@itemreq = 7289; //Olivine
break;
case 2:
- set .@itemreq,7293; //Rose_Quartz
+ .@itemreq = 7293; //Rose_Quartz
break;
}
}
else {
if (countitem(7290) > 29) {
- set .@itemreq,7290; //Phlogopite
+ .@itemreq = 7290; //Phlogopite
}
else if (countitem(7289) > 29) {
- set .@itemreq,7289; //Olivine
+ .@itemreq = 7289; //Olivine
}
else if (countitem(7293) > 29) {
- set .@itemreq,7293; //Rose_Quartz
+ .@itemreq = 7293; //Rose_Quartz
}
}
mes "[Tabezthan]";
@@ -1254,13 +1254,13 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
delitem 969,10; //Gold
delitem 714,10; //Emperium
if (countitem(7290) > 29) {
- set lv4_weapon,16;
+ lv4_weapon = 16;
}
else if (countitem(7289) > 29) {
- set lv4_weapon,17;
+ lv4_weapon = 17;
}
else if (countitem(7293) > 29) {
- set lv4_weapon,18;
+ lv4_weapon = 18;
}
close;
}
@@ -1332,7 +1332,7 @@ um_in,156,77,5 script Tabezthan#lv4 4_M_UMOLDMAN,{
next;
mes "[Tabezthan]";
mes "In other words, we will have to trust to luck. However, we'll have time to talk about that later. For now, please go and gather the necessary materials. I shall be waiting here.";
- set lv4_weapon,15;
+ lv4_weapon = 15;
close;
case 2:
mes "[Tabezthan]";
@@ -1389,7 +1389,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,54;
+ lv4_weapon = 54;
close;
}
else {
@@ -1401,7 +1401,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,55;
+ lv4_weapon = 55;
close;
}
}
@@ -1422,7 +1422,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
next;
mes "[Bill Thayer]";
mes "I hope you remember that. It's something I used to tell my sons when they were alive. Ha ha ha~";
- set lv4_weapon,50;
+ lv4_weapon = 50;
close;
}
if (lv4_weapon == 45) {
@@ -1435,7 +1435,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,45;
+ lv4_weapon = 45;
close;
}
if (lv4_weapon == 46) {
@@ -1448,7 +1448,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,46;
+ lv4_weapon = 46;
close;
}
if (lv4_weapon == 44) {
@@ -1472,7 +1472,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,45;
+ lv4_weapon = 45;
close;
}
else {
@@ -1485,7 +1485,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,46;
+ lv4_weapon = 46;
close;
}
}
@@ -1500,7 +1500,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
next;
mes "[Bill Thayer]";
mes "I always told my sons: 'Never accept payment to forge a good weapon. ^333333It brings bad luck.^000000' Don't ask me how that works. It just is.";
- set lv4_weapon,41;
+ lv4_weapon = 41;
next;
mes "[Bill Thayer]";
mes "Even if you offer me something more precious than money, I won't do any weapon smithing for you. Although I might have back when my sons were still alive...";
@@ -1551,7 +1551,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,36;
+ lv4_weapon = 36;
close;
}
else {
@@ -1564,14 +1564,14 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,37;
+ lv4_weapon = 37;
close;
}
}
if ((lv4_weapon == 31) || (lv4_weapon == 32)) {
mes "[Bill Thayer]";
mes "All of my sons broke my heart by dying too young. I remember that I always used to tell them: 'Enjoy your youth. ^333333Live without regret.^000000'";
- set lv4_weapon,32;
+ lv4_weapon = 32;
next;
mes "[Bill Thayer]";
mes "But I never suspected that their lives would be cut so short. Please remember to live life in such a way that regret won't haunt you later. That's the best advice I can give to you.";
@@ -1622,7 +1622,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,27;
+ lv4_weapon = 27;
close;
}
else {
@@ -1635,7 +1635,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "^333333*Sniff*^000000";
mes "All of my sons passed away";
mes "before they could finish their research. I should have been the one to have died. They were still so young...";
- set lv4_weapon,28;
+ lv4_weapon = 28;
close;
}
}
@@ -1644,7 +1644,7 @@ aldebaran,178,239,3 script Bill Thayer#lv4 4_M_05,{
mes "Listen, I told you...";
mes "There's nothing I can do.";
mes "^333333I'm utterly helpless here.^000000";
- set lv4_weapon,23;
+ lv4_weapon = 23;
next;
mes "[Bill Thayer]";
mes "There's no point in asking me to do anything. Ever since my sons passed away, I haven't been able to function. Please leave me alone.";
@@ -1717,7 +1717,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "[Kayron]";
mes "Huh...?";
mes "I can't remember what I was going to say. M-my memories! I... I can't seem to recollect...";
- set lv4_weapon,22;
+ lv4_weapon = 22;
close;
case 2:
mes "[Kayron]";
@@ -1762,7 +1762,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "this... Longinus's Spear!";
getitem 1469,1; //Longinus's_Spear
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Kayron]";
mes "I'm so glad that my years of research haven't been wasted.";
@@ -1789,7 +1789,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "this... Brionac!";
getitem 1470,1; //Brionac
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Kayron]";
mes "I'm so glad that my years of research haven't been wasted.";
@@ -1828,20 +1828,20 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "Here's a piece of paper.";
mes "You'll write 'Rock,' 'Paper,' or 'Scissors,' and I'll do the same. Then we'll compare our results and see what happens. Alright, let's do the first match!";
next;
- set .@npchand1,rand(1,3);
- set .@myhand1,select("Scissors:Rock:Paper");
+ .@npchand1 = rand(1,3);
+ .@myhand1 = select("Scissors:Rock:Paper");
if (((.@myhand1 == 1) && (.@npchand1 == 3)) || ((.@myhand1 == 2) && (.@npchand1 == 1)) || ((.@myhand1 == 3) && (.@npchand1 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Kayron]";
mes "Now...";
mes "Let's play";
mes "the second match~";
next;
- set .@npchand2,rand(1,3);
- set .@myhand2,select("Scissors:Rock:Paper");
+ .@npchand2 = rand(1,3);
+ .@myhand2 = select("Scissors:Rock:Paper");
if (((.@myhand2 == 1) && (.@npchand2 == 3)) || ((.@myhand2 == 2) && (.@npchand2 == 1)) || ((.@myhand2 == 3) && (.@npchand2 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Kayron]";
mes "Alright...";
@@ -1849,12 +1849,12 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "Write down 'Rock,'";
mes "'Paper' or 'Scissors.'";
next;
- set .@npchand3,rand(1,3);
- set .@myhand3,select("Scissors:Rock:Paper");
+ .@npchand3 = rand(1,3);
+ .@myhand3 = select("Scissors:Rock:Paper");
if (((.@myhand3 == 1) && (.@npchand3 == 3)) || ((.@myhand3 == 2) && (.@npchand3 == 1)) || ((.@myhand3 == 3) && (.@npchand3 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
- set .@aekddam,rand(1,3);
+ .@aekddam = rand(1,3);
if (.@shobu > 1) {
if (lv4_weapon == 27) {
delitem 7289,30; //Olivine
@@ -1866,7 +1866,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
delitem 7296,30; //Pyroxene
delitem 7293,30; //Rose_Quartz
}
- set lv4_weapon,lv4_weapon+2;
+ lv4_weapon += 2;
}
else if (.@shobu < 2) {
if (.@aekddam == 1) {
@@ -2002,7 +2002,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
delitem 989,1; //Emperium_Anvil
delitem 710,1; //Illusion_Flower
delitem 969,20; //Gold
- set lv4_weapon,26;
+ lv4_weapon = 26;
close;
}
if (lv4_weapon == 25) {
@@ -2047,7 +2047,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
next;
mes "[Kayron]";
mes "Anyway, I'll be waiting for you here while you go out and collect those things. Be careful, alright?";
- set lv4_weapon,25;
+ lv4_weapon = 25;
close;
}
if (lv4_weapon == 23) {
@@ -2091,7 +2091,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
next;
mes "[Kayron]";
mes "Alright, just give me a little time so that I can try to remember the things that I'll need, alright?";
- set lv4_weapon,24;
+ lv4_weapon = 24;
close;
}
else {
@@ -2126,7 +2126,7 @@ niflheim,240,193,3 script Kayron#lv4 4_M_NFDEADMAN2,{
mes "[Kayron]";
mes "Huh...?";
mes "I can't remember what I was going to say. M-my memories! I... I can't seem to recollect...";
- set lv4_weapon,22;
+ lv4_weapon = 22;
close;
case 2:
mes "[Kayron]";
@@ -2177,7 +2177,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "I can't remember!";
mes "Everything in my";
mes "head is so cloudy!";
- set lv4_weapon,31;
+ lv4_weapon = 31;
close;
case 2:
mes "[Reyghema]";
@@ -2216,7 +2216,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "This is... Tjungkuletti!";
getitem 1416,1; //Tjungkuletti
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Reyghema]";
mes "^333333*Sigh*^000000 I can feel it happening again. My memories are starting to slip away. Can't I be allowed to hold on to this memory?";
@@ -2242,7 +2242,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "This is... Brocca! Weee~ I made it!";
getitem 1415,1; //Skewer
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Reyghema]";
mes "^333333*Sigh*^000000 I can feel it happening again. My memories are starting to slip away. Can't I be allowed to hold on to this memory?";
@@ -2278,31 +2278,31 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "[Reyghema]";
mes "Alright, here's a piece of paper. When I say so, you write down 'Rock,' 'Paper' or 'Scissors.' Alright? Let's start.";
next;
- set .@npchand1,rand(1,3);
- set .@myhand1,select("Scissors:Rock:Paper");
+ .@npchand1 = rand(1,3);
+ .@myhand1 = select("Scissors:Rock:Paper");
if (((.@myhand1 == 1) && (.@npchand1 == 3)) || ((.@myhand1 == 2) && (.@npchand1 == 1)) || ((.@myhand1 == 3) && (.@npchand1 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Reyghema]";
mes "Okay, now let's";
mes "try this again.";
next;
- set .@npchand2,rand(1,3);
- set .@myhand2,select("Scissors:Rock:Paper");
+ .@npchand2 = rand(1,3);
+ .@myhand2 = select("Scissors:Rock:Paper");
if (((.@myhand2 == 1) && (.@npchand2 == 3)) || ((.@myhand2 == 2) && (.@npchand2 == 1)) || ((.@myhand2 == 3) && (.@npchand2 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Reyghema]";
mes "Last time.";
mes "Write down 'Rock,'";
mes "'Paper' or 'Scissors.'";
next;
- set .@npchand3,rand(1,3);
- set .@myhand3,select("Scissors:Rock:Paper");
+ .@npchand3 = rand(1,3);
+ .@myhand3 = select("Scissors:Rock:Paper");
if (((.@myhand3 == 1) && (.@npchand3 == 3)) || ((.@myhand3 == 2) && (.@npchand3 == 1)) || ((.@myhand3 == 3) && (.@npchand3 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
- set .@aekddam,rand(1,3);
+ .@aekddam = rand(1,3);
if (.@shobu > 1) {
if (lv4_weapon == 36) {
delitem 7292,30; //Muscovite
@@ -2314,7 +2314,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
delitem 7291,30; //Agate
delitem 7295,30; //Citrine
}
- set lv4_weapon,lv4_weapon+2;
+ lv4_weapon += 2;
}
else if (.@shobu < 2) {
if (.@aekddam == 1) {
@@ -2458,7 +2458,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
delitem 989,1; //Emperium_Anvil
delitem 710,1; //Illusion_Flower
delitem 969,20; //Gold
- set lv4_weapon,35;
+ lv4_weapon = 35;
close;
}
if (lv4_weapon == 34) {
@@ -2494,7 +2494,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
next;
mes "[Reyghema]";
mes "For now, just go and bring back the things I asked for. The sooner, the better. Hurry, I don't know how long my memories will last...";
- set lv4_weapon,34;
+ lv4_weapon = 34;
close;
}
if (lv4_weapon == 32) {
@@ -2541,7 +2541,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "[Reyghema]";
mes "Come back a little later.";
mes "By then, I should remember what kinds of things I'll need.";
- set lv4_weapon,33;
+ lv4_weapon = 33;
close;
}
else {
@@ -2606,7 +2606,7 @@ niflheim,99,268,5 script Reyghema#lv4 4_M_NFDEADMAN2,{
mes "I can't remember!";
mes "Everything in my";
mes "head is so cloudy!";
- set lv4_weapon,31;
+ lv4_weapon = 31;
close;
case 2:
mes "[Reyghema]";
@@ -2643,7 +2643,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "something I used to";
mes "say all the time? I...";
mes "I hate being dead!";
- set lv4_weapon,40;
+ lv4_weapon = 40;
close;
case 2:
mes "[Hein]";
@@ -2686,7 +2686,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "is Dragon Slayer!";
getitem 1166,1; //Dragon_Slayer
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
}
else {
@@ -2704,7 +2704,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "is Schweizersabel!";
getitem 1167,1; //Schweizersabel
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
}
mes "[Hein]";
@@ -2739,19 +2739,19 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "Here's a piece of paper.";
mes "When I tell you to, write down 'Rock,' 'Paper' or 'Scissors.' I'll do the same thing, and we'll compare our results at the end, okay? Let's begin!";
next;
- set .@npchand1,rand(1,3);
- set .@myhand1,select("Scissors:Rock:Paper");
+ .@npchand1 = rand(1,3);
+ .@myhand1 = select("Scissors:Rock:Paper");
if (((.@myhand1 == 1) && (.@npchand1 == 3)) || ((.@myhand1 == 2) && (.@npchand1 == 1)) || ((.@myhand1 == 3) && (.@npchand1 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Hein]";
mes "Okay, let's play";
mes "the second round!";
next;
- set .@npchand2,rand(1,3);
- set .@myhand2,select("Scissors:Rock:Paper");
+ .@npchand2 = rand(1,3);
+ .@myhand2 = select("Scissors:Rock:Paper");
if (((.@myhand2 == 1) && (.@npchand2 == 3)) || ((.@myhand2 == 2) && (.@npchand2 == 1)) || ((.@myhand2 == 3) && (.@npchand2 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Hein]";
mes "Okay...";
@@ -2759,11 +2759,11 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "After this, we";
mes "compare our results.";
next;
- set .@npchand3,rand(1,3);
- set .@myhand3,select("Scissors:Rock:Paper");
- set .@aekddam,rand(1,3);
+ .@npchand3 = rand(1,3);
+ .@myhand3 = select("Scissors:Rock:Paper");
+ .@aekddam = rand(1,3);
if (((.@myhand3 == 1) && (.@npchand3 == 3)) || ((.@myhand3 == 2) && (.@npchand3 == 1)) || ((.@myhand3 == 3) && (.@npchand3 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
if (.@shobu > 1) {
if (lv4_weapon == 45) {
@@ -2776,7 +2776,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
delitem 7296,30; //Pyroxene
delitem 7290,30; //Phlogopite
}
- set lv4_weapon,lv4_weapon+2;
+ lv4_weapon += 2;
}
else if (.@shobu < 2) {
if (.@aekddam == 1) {
@@ -2915,7 +2915,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
delitem 989,1; //Emperium_Anvil
delitem 710,1; //Illusion_Flower
delitem 969,20; //Gold
- set lv4_weapon,44;
+ lv4_weapon = 44;
close;
}
if (lv4_weapon == 43) {
@@ -2957,7 +2957,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
next;
mes "[Hein]";
mes "While you do that, I'll try my best to remember what else I need to make this weapon.";
- set lv4_weapon,43;
+ lv4_weapon = 43;
close;
}
if (lv4_weapon == 41) {
@@ -2981,7 +2981,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "Or remembered.";
mes "Perhaps I'm brain";
mes "dead too, huh?";
- set lv4_weapon,42;
+ lv4_weapon = 42;
next;
mes "[Hein]";
mes "Well, I must be a lucky dead man for remembering some of my past, right? Hahahaha!";
@@ -3049,7 +3049,7 @@ niflheim,187,280,3 script Hein#lv4 4_M_NFDEADMAN,{
mes "something I used to";
mes "say all the time? I...";
mes "I hate being dead!";
- set lv4_weapon,40;
+ lv4_weapon = 40;
close;
case 2:
mes "[Hein]";
@@ -3096,7 +3096,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "I can't think!";
mes "What was supposed";
mes "to come after that part?";
- set lv4_weapon,49;
+ lv4_weapon = 49;
close;
case 2:
mes "[Waltboughst]";
@@ -3128,7 +3128,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "With my skill and your luck, there was zero probability for failure. Behold... Exorcise!";
getitem 1233,1; //Exercise
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Waltboughst]";
mes "I'm a genius!";
@@ -3158,7 +3158,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "With my skill and your luck, there was zero probability for failure. Behold...Grand Cross!!";
getitem 1528,1; //Grand_Cross
}
- set lv4_weapon,0;
+ lv4_weapon = 0;
next;
mes "[Waltboughst]";
mes "I'm a genius!";
@@ -3204,20 +3204,20 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "Take this piece of paper.";
mes "Now, when I tell you to, write down 'Rock,' 'Paper' or 'Scissors.' Let's begin...!";
next;
- set .@npchand1,rand(1,3);
- set .@myhand1,select("Scissors:Rock:Paper");
+ .@npchand1 = rand(1,3);
+ .@myhand1 = select("Scissors:Rock:Paper");
if (((.@myhand1 == 1) && (.@npchand1 == 3)) || ((.@myhand1 == 2) && (.@npchand1 == 1)) || ((.@myhand1 == 3) && (.@npchand1 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Waltboughst]";
mes "Alright...";
mes "Now, let's play";
mes "a second time.";
next;
- set .@npchand2,rand(1,3);
- set .@myhand2,select("Scissors:Rock:Paper");
+ .@npchand2 = rand(1,3);
+ .@myhand2 = select("Scissors:Rock:Paper");
if (((.@myhand2 == 1) && (.@npchand2 == 3)) || ((.@myhand2 == 2) && (.@npchand2 == 1)) || ((.@myhand2 == 3) && (.@npchand2 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
mes "[Waltboughst]";
mes "One last time.";
@@ -3225,12 +3225,12 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "compare results";
mes "and check your luck.";
next;
- set .@npchand3,rand(1,3);
- set .@myhand3,select("Scissors:Rock:Paper");
+ .@npchand3 = rand(1,3);
+ .@myhand3 = select("Scissors:Rock:Paper");
if (((.@myhand3 == 1) && (.@npchand3 == 3)) || ((.@myhand3 == 2) && (.@npchand3 == 1)) || ((.@myhand3 == 3) && (.@npchand3 == 2))) {
- set .@shobu,.@shobu+1;
+ ++.@shobu;
}
- set .@aekddam,rand(1,3);
+ .@aekddam = rand(1,3);
if (.@shobu > 1) {
if (lv4_weapon == 54) {
delitem 7292,30; //Muscovite
@@ -3242,7 +3242,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
delitem 7294,30; //Turquoise
delitem 7290,30; //Phlogopite
}
- set lv4_weapon,lv4_weapon+2;
+ lv4_weapon += 2;
}
else if (.@shobu < 2) {
if (.@aekddam == 1) {
@@ -3379,7 +3379,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
delitem 989,1; //Emperium_Anvil
delitem 710,1; //Illusion_Flower
delitem 969,20; //Gold
- set lv4_weapon,53;
+ lv4_weapon = 53;
close;
}
if (lv4_weapon == 52) {
@@ -3406,7 +3406,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
next;
mes "[Waltboughst]";
mes "There were a few other necessary materials, but I need some time to focus and remember what they were.";
- set lv4_weapon,52;
+ lv4_weapon = 52;
close;
}
if (lv4_weapon == 50) {
@@ -3424,7 +3424,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "But that's no excuse!";
mes "Every successful man in";
mes "history has tried his best!";
- set lv4_weapon,51;
+ lv4_weapon = 51;
next;
mes "[Waltboughst]";
mes "I remember now...";
@@ -3493,7 +3493,7 @@ niflheim,331,72,3 script Waltboughst#lv4 4_M_NFDEADMAN,{
mes "I can't think!";
mes "What was supposed";
mes "to come after that part?";
- set lv4_weapon,49;
+ lv4_weapon = 49;
close;
case 2:
mes "[Waltboughst]";
diff --git a/npc/quests/newgears/2004_headgears.txt b/npc/quests/newgears/2004_headgears.txt
index d2cbe4c8c..982ee7c54 100644
--- a/npc/quests/newgears/2004_headgears.txt
+++ b/npc/quests/newgears/2004_headgears.txt
@@ -1441,7 +1441,7 @@ geffen,83,189,5 script Seth#1 4_M_KID2,{
close;
}
}
-
+
// Party Hat, Straw Hat, Cowboy Hat, Sombrero, Beanie
//============================================================
xmas_in,35,30,3 script Hat Merchant#zero 4_M_NFLOSTMAN,{
@@ -2472,31 +2472,31 @@ OnTouch:
close2;
set getvariableofnpc(.MyMobs1,"SpawnManager#Kitsune"),1;
switch(rand(1,25)) {
- case 1: set .@x,118; set .@y,66; break;
- case 2: set .@x,103; set .@y,194; break;
- case 3: set .@x,116; set .@y,50; break;
- case 4: set .@x,49; set .@y,94; break;
- case 5: set .@x,232; set .@y,232; break;
- case 6: set .@x,245; set .@y,86; break;
- case 7: set .@x,217; set .@y,133; break;
- case 8: set .@x,50; set .@y,157; break;
- case 9: set .@x,245; set .@y,60; break;
- case 10: set .@x,220; set .@y,77; break;
- case 11: set .@x,198; set .@y,62; break;
- case 12: set .@x,158; set .@y,41; break;
- case 13: set .@x,57; set .@y,210; break;
- case 14: set .@x,251; set .@y,207; break;
- case 15: set .@x,86; set .@y,130; break;
- case 16: set .@x,216; set .@y,233; break;
- case 17: set .@x,192; set .@y,245; break;
- case 18: set .@x,117; set .@y,234; break;
- case 19: set .@x,144; set .@y,255; break;
- case 20: set .@x,190; set .@y,216; break;
- case 21: set .@x,63; set .@y,66; break;
- case 22: set .@x,247; set .@y,183; break;
- case 23: set .@x,37; set .@y,225; break;
- case 24: set .@x,247; set .@y,118; break;
- case 25: set .@x,154; set .@y,130; break;
+ case 1: .@x = 118; .@y = 66; break;
+ case 2: .@x = 103; .@y = 194; break;
+ case 3: .@x = 116; .@y = 50; break;
+ case 4: .@x = 49; .@y = 94; break;
+ case 5: .@x = 232; .@y = 232; break;
+ case 6: .@x = 245; .@y = 86; break;
+ case 7: .@x = 217; .@y = 133; break;
+ case 8: .@x = 50; .@y = 157; break;
+ case 9: .@x = 245; .@y = 60; break;
+ case 10: .@x = 220; .@y = 77; break;
+ case 11: .@x = 198; .@y = 62; break;
+ case 12: .@x = 158; .@y = 41; break;
+ case 13: .@x = 57; .@y = 210; break;
+ case 14: .@x = 251; .@y = 207; break;
+ case 15: .@x = 86; .@y = 130; break;
+ case 16: .@x = 216; .@y = 233; break;
+ case 17: .@x = 192; .@y = 245; break;
+ case 18: .@x = 117; .@y = 234; break;
+ case 19: .@x = 144; .@y = 255; break;
+ case 20: .@x = 190; .@y = 216; break;
+ case 21: .@x = 63; .@y = 66; break;
+ case 22: .@x = 247; .@y = 183; break;
+ case 23: .@x = 37; .@y = 225; break;
+ case 24: .@x = 247; .@y = 118; break;
+ case 25: .@x = 154; .@y = 130; break;
}
monster "pay_dun03",.@x,.@y,"Nine Tail",1180,1,"SpawnManager#Kitsune::OnMyMobDead";
specialeffect EF_FLASHER;
@@ -2571,31 +2571,31 @@ pay_dun03,48,84,4 script Nine Tails#Kitsune Man 4_M_JPN2,{
}
set getvariableofnpc(.MyMobs2,"SpawnManager#Kitsune"),1;
switch(rand(1,25)) {
- case 1: set .@x,118; set .@y,66; break;
- case 2: set .@x,103; set .@y,194; break;
- case 3: set .@x,116; set .@y,50; break;
- case 4: set .@x,49; set .@y,94; break;
- case 5: set .@x,232; set .@y,232; break;
- case 6: set .@x,245; set .@y,86; break;
- case 7: set .@x,217; set .@y,133; break;
- case 8: set .@x,50; set .@y,157; break;
- case 9: set .@x,245; set .@y,60; break;
- case 10: set .@x,220; set .@y,77; break;
- case 11: set .@x,198; set .@y,62; break;
- case 12: set .@x,158; set .@y,41; break;
- case 13: set .@x,57; set .@y,210; break;
- case 14: set .@x,251; set .@y,207; break;
- case 15: set .@x,86; set .@y,130; break;
- case 16: set .@x,216; set .@y,233; break;
- case 17: set .@x,192; set .@y,245; break;
- case 18: set .@x,117; set .@y,234; break;
- case 19: set .@x,144; set .@y,255; break;
- case 20: set .@x,190; set .@y,216; break;
- case 21: set .@x,63; set .@y,66; break;
- case 22: set .@x,247; set .@y,183; break;
- case 23: set .@x,37; set .@y,225; break;
- case 24: set .@x,247; set .@y,118; break;
- case 25: set .@x,154; set .@y,130; break;
+ case 1: .@x = 118; .@y = 66; break;
+ case 2: .@x = 103; .@y = 194; break;
+ case 3: .@x = 116; .@y = 50; break;
+ case 4: .@x = 49; .@y = 94; break;
+ case 5: .@x = 232; .@y = 232; break;
+ case 6: .@x = 245; .@y = 86; break;
+ case 7: .@x = 217; .@y = 133; break;
+ case 8: .@x = 50; .@y = 157; break;
+ case 9: .@x = 245; .@y = 60; break;
+ case 10: .@x = 220; .@y = 77; break;
+ case 11: .@x = 198; .@y = 62; break;
+ case 12: .@x = 158; .@y = 41; break;
+ case 13: .@x = 57; .@y = 210; break;
+ case 14: .@x = 251; .@y = 207; break;
+ case 15: .@x = 86; .@y = 130; break;
+ case 16: .@x = 216; .@y = 233; break;
+ case 17: .@x = 192; .@y = 245; break;
+ case 18: .@x = 117; .@y = 234; break;
+ case 19: .@x = 144; .@y = 255; break;
+ case 20: .@x = 190; .@y = 216; break;
+ case 21: .@x = 63; .@y = 66; break;
+ case 22: .@x = 247; .@y = 183; break;
+ case 23: .@x = 37; .@y = 225; break;
+ case 24: .@x = 247; .@y = 118; break;
+ case 25: .@x = 154; .@y = 130; break;
}
monster "pay_dun03",.@x,.@y,"Nine Tail",1180,1,"SpawnManager#Kitsune::OnMyMobDead2";
specialeffect EF_BLASTMINEBOMB;
@@ -2611,18 +2611,18 @@ OnInit:
pay_dun03,48,84,4 script SpawnManager#Kitsune -1,{
OnInit:
- set .MyMobs1,1;
- set .MyMobs2,1;
+ .MyMobs1 = 1;
+ .MyMobs2 = 1;
end;
OnMyMobDead:
- set .MyMobs1,.MyMobs1-1;
+ --.MyMobs1;
if (.MyMobs1 < 1)
enablenpc "Nine Tails#Kitsune Man";
end;
OnMyMobDead2:
- set .MyMobs2,.MyMobs2-1;
+ --.MyMobs2;
if (.MyMobs2 < 1)
enablenpc "Nine Tails#Kitsune Mask";
end;
@@ -2684,7 +2684,7 @@ OnTouch:
warp "gef_fild10",100,100;
end;
}
- set orcs_hero_hat,1;
+ orcs_hero_hat = 1;
mes "[Orc Warrior]";
mes "Hah! It's a promise then!";
mes "Bwahahahahhahahahahahaha!";
@@ -2758,7 +2758,7 @@ OnTouch:
mes "I hate humans! In fact, all Orcs hate humans! Hate you hate you hate you with a passion!";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,2;
+ orcs_hero_hat = 2;
mes "[Orc Warrior]";
mes "So...";
mes "Still in the mood to talk?!";
@@ -2817,7 +2817,7 @@ OnTouch:
mes "Bah! Humans have built their own towns and cities. Do they keep their senseless killing amongst each other?! NO! Humans have to rampage and ravage everything!!";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,3;
+ orcs_hero_hat = 3;
mes "[Orc Warrior]";
mes "Now, if you want";
mes "to listen to more,";
@@ -2882,7 +2882,7 @@ OnTouch:
mes "That's enough for today!";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,4;
+ orcs_hero_hat = 4;
mes "[Orc Warrior]";
mes "Grrr~! If you want to listen longer go bring me ^FF00001000 Jellopy^000000 again.";
close;
@@ -2918,7 +2918,7 @@ OnTouch:
mes "That's the end of the conversation for today.";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,5;
+ orcs_hero_hat = 5;
mes "[Orc Warrior]";
mes "Now, if you want to listen some more, go bring me";
mes "^FF00001000 Jellopy^000000 again tomorrow.";
@@ -2954,7 +2954,7 @@ OnTouch:
mes "Orcs never restore health during battle using your silly medicines. Hmpf. Humans can be so weak, drinking bottles of Potion to keep up in a fight. Oh well, though, I'm not sure if you're the same.";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,6;
+ orcs_hero_hat = 6;
mes "[Orc Warrior]";
mes "Now, if you want";
mes "to listen to me";
@@ -2996,7 +2996,7 @@ OnTouch:
mes "Hm, well to you humans, we may all look the same, but we Orcs can tell each other apart. How about you, human? Do I look the same as every Warrior outside to you?";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,7;
+ orcs_hero_hat = 7;
mes "[Orc Warrior]";
mes "Now...";
mes "If you want to";
@@ -3043,7 +3043,7 @@ OnTouch:
mes "Well, humans rarely get the chance to see this helmet unless they're in battle with an Orc Hero themselves...";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,8;
+ orcs_hero_hat = 8;
mes "[Orc Warrior]";
mes "Now, if you want";
mes "to listen longer,";
@@ -3087,7 +3087,7 @@ OnTouch:
mes "Every Orc can recognize him by his distinguished helm with the three horns.";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,9;
+ orcs_hero_hat = 9;
mes "[Orc Warrior]";
mes "Now...";
mes "If you want to";
@@ -3133,7 +3133,7 @@ OnTouch:
mes "I don't think there is a curse which transforms humans into a totally ugly creature depending on their deeds. So it is difficult to tell which humans are honorable...";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,10;
+ orcs_hero_hat = 10;
mes "[Orc Warrior]";
mes "Now...";
mes "If you want";
@@ -3164,7 +3164,7 @@ OnTouch:
mes "I suggest you that you experience more battles with the many different Orcs out there. That's the best way of understanding and learning about the Orc tribe.";
next;
delitem 909,1000; //Jellopy
- set orcs_hero_hat,11;
+ orcs_hero_hat = 11;
getitem 1304,1; //Orcish_Axe
mes "[Orc Warrior]";
mes "This is a small token of my gratitue. This axe used to aid me in many battles and is very precious to me. I hope you will take care of this.";
@@ -3223,8 +3223,8 @@ OnTouch:
mes "Ah, spoken like a true warrior. Alright then, go forth and do battle with others of my tribe, and bring me 10,000 Orcish Vouchers.";
next;
delitem 931,100; //Orcish_Voucher
- set orcs_hero_hat,13;
- set orcs_hero_hat2,100;
+ orcs_hero_hat = 13;
+ orcs_hero_hat2 = 100;
mes "[Orc Warrior]";
mes "I took 100 Orcish Voucher from you now. Now, fight and fight until you have defeated 10,000 more Orc Warriors so that the whole tribe will have to recognize you!";
close;
@@ -3251,7 +3251,7 @@ OnTouch:
else if (orcs_hero_hat2 > 99 && orcs_hero_hat2 < 10000) {
if (countitem(931) > 0) {
if (orcs_hero_hat2 > 9999)
- set orcs_hero_hat2,10000;
+ orcs_hero_hat2 = 10000;
mes "[Orc Warrior]";
mes "You've come back...";
mes "It doesn't seem that you've accomplished your goal yet, but I do not expect you to defeat 10,000 Orc Warriors so easily.";
@@ -3265,10 +3265,10 @@ OnTouch:
mes "victory with me?";
next;
if (select("Yes, I do.:I will do it later.") == 1) {
- set .@total_vouchers,orcs_hero_hat2+countitem(931);
+ .@total_vouchers = orcs_hero_hat2+countitem(931);
if (.@total_vouchers < 10000) {
delitem 931,countitem(931); //Orcish_Voucher
- set orcs_hero_hat2,.@total_vouchers;
+ orcs_hero_hat2 = .@total_vouchers;
mes "[Orc Warrior]";
mes "I hope you will";
mes "continue your efforts";
@@ -3306,8 +3306,8 @@ OnTouch:
mes "an Orc Lady!!";
next;
delitem 931,countitem(931); //Orcish_Voucher
- set orcs_hero_hat,14;
- set orcs_hero_hat2,10000;
+ orcs_hero_hat = 14;
+ orcs_hero_hat2 = 10000;
getitem 2299,1; //Viking_Helm
mes "[Orc Warrior]";
mes "This is a present for you. I am not sure if it will fit to your head or not, but try it. If your head is too big to wear this, I suggest that you carry this with you.";
@@ -3389,7 +3389,7 @@ OnTouch:
mes "[Orc Warrior]";
mes "Go fight with 100 Orc Heroes and bring me the tokens of the battles you have endured. Even if you're an excellent warrior, I assure you this test will be the hardest one you'll ever get.";
next;
- set orcs_hero_hat,15;
+ orcs_hero_hat = 15;
mes "[Orc Warrior]";
mes "Now, go, warrior! I believe that you have a chance to succeed. Fight with 100 Orc Heroes, and I will grant you, a human, recognition as an Orc Hero!";
close;
@@ -3443,7 +3443,7 @@ OnTouch:
mes "You deserve to be an Orc Hero, the most powerful Orc warrior! As of today, you are now an Orc Hero!";
next;
delitem 968,100; //Voucher_Of_Orcish_Hero
- set orcs_hero_hat,16;
+ orcs_hero_hat = 16;
getitem 1124,1; //Orcish_Sword
mes "[Orc Warrior]";
mes "This is a sword only given to our heroes. I am not sure if you can use this or not, but as an Orc Hero, you're obligated to carry this with you always.";
@@ -3578,7 +3578,7 @@ OnTouch:
mes "Although you're a human, you're an Orc Hero amongst us now, so you should have a helm suitable for your position...";
next;
delitem 2299,1; //Viking_Helm
- set orcs_hero_hat,17;
+ orcs_hero_hat = 17;
getnameditem 5094,strcharinfo(0); //Orc_Hero_Helm
mes "[Orc Hero]";
mes "There you go. I marked a small indication on it. So wear this helm from now on. Do you understand? My human Orc Hero.";
diff --git a/npc/quests/newgears/2005_headgears.txt b/npc/quests/newgears/2005_headgears.txt
index b31e07bd8..e1aebe213 100644
--- a/npc/quests/newgears/2005_headgears.txt
+++ b/npc/quests/newgears/2005_headgears.txt
@@ -459,7 +459,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Detective Caps left!";
mes "Once they're gone,";
mes "they'll be extinct!";
- set DTHATQ,1;
+ DTHATQ = 1;
close;
}
else if(DTHATQ == 1)
@@ -495,7 +495,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Let's see now, I need to";
mes "look through your Inventory...";
next;
- set @lhzhatfailed,0;
+ @lhzhatfailed = 0;
if(countitem(611) < 10)
{
mes "[Morris]";
@@ -504,7 +504,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "do want to join this club,";
mes "don't you? Did you need to";
mes "hear the requirements again?";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(countitem(7301) < 1887 && @lhzhatfailed == 0)
@@ -512,7 +512,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "[Morris]";
mes "Magnifiers. Check.";
mes "Not enough Tassels? Check.";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(countitem(5120) < 1 && @lhzhatfailed == 0)
@@ -523,7 +523,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Hm. You're missing";
mes "the slotted Bucket Hat.";
mes "You were so close...";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(Zeny < 1887 && @lhzhatfailed == 0)
@@ -535,7 +535,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Hey. Where's the zeny?!";
mes "That's the most important,";
mes "er, qualification of all!";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(@lhzhatfailed == 1)
@@ -573,7 +573,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
delitem 5120,1;
delitem 611,10;
Zeny -= 1887;
- set DTHATQ,2;
+ DTHATQ = 2;
getitem 5108,1;
next;
switch( select( "Wait, promotion?", "Hooray!" ) )
@@ -662,7 +662,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "check to see if you";
mes "brought everything...";
next;
- set @lhzhatfailed,0;
+ @lhzhatfailed = 0;
if(countitem(611) < 10)
{
mes "[Morris]";
@@ -671,7 +671,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "those are essential tools";
mes "for sleuthing. Come now,";
mes "hurry back with them!";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(countitem(7301) < 1887 && @lhzhatfailed == 0)
@@ -679,7 +679,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "[Morris]";
mes "Magnifiers. Check.";
mes "Not enough Tassels? Check.";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(countitem(5120) < 1 && @lhzhatfailed == 0)
@@ -690,7 +690,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Hm. You're missing";
mes "the slotted Bucket Hat.";
mes "You were so close...";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(Zeny < 1887 && @lhzhatfailed == 0)
@@ -702,7 +702,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
mes "Hey. Where's the zeny?!";
mes "That's the most important,";
mes "er, qualification of all!";
- set @lhzhatfailed,1;
+ @lhzhatfailed = 1;
next;
}
if(@lhzhatfailed == 1)
@@ -731,7 +731,7 @@ lighthalzen,143,68,0 script Strange Guy#LhzHat 1_M_01,{
delitem 5120,1;
delitem 611,10;
Zeny -= 1887;
- set DTHATQ,2;
+ DTHATQ = 2;
getitem 5108,1;
next;
mes "[Morris]";
@@ -1126,7 +1126,7 @@ lighthalzen,182,89,0 script Relaxed-Looking Lady 4_F_02,{
mes "to meet you. I don't really";
mes "do much of anything.";
mes "Just sit. Relax.";
- set LHZBTQ,1;
+ LHZBTQ = 1;
emotion e_heh;
next;
mes "[Achiha]";
@@ -1186,7 +1186,7 @@ lighthalzen,182,89,0 script Relaxed-Looking Lady 4_F_02,{
mes "if you want me to make";
mes "a hat for you, come back";
mes "with those materials, okay?";
- set LHZBTQ,2;
+ LHZBTQ = 2;
close;
}
}
@@ -1231,7 +1231,7 @@ lighthalzen,182,89,0 script Relaxed-Looking Lady 4_F_02,{
mes "tired. Let me just sit,";
mes "relax, even if it's just";
mes "a little while longer...";
- set LHZBTQ,2;
+ LHZBTQ = 2;
close;
}
}
@@ -1284,7 +1284,7 @@ lighthalzen,182,89,0 script Relaxed-Looking Lady 4_F_02,{
delitem 5032,1;
Zeny -= 50000;
getitem 5109,1;
- set LHZBTQ,3;
+ LHZBTQ = 3;
next;
mes "[Achiha]";
mes "I hope you will enjoy the hat~";
@@ -1430,7 +1430,7 @@ gl_prison1,137,138,5 script Zealotus#LhzHat ZHERLTHSH,{
mes "of monster crying in the corner";
mes "of this prison and make him";
mes "realize his true nature.";
- set ZLMASKQ,1;
+ ZLMASKQ = 1;
close;
case 2:
mes "[Zealotus]";
@@ -1488,7 +1488,7 @@ gl_prison1,137,138,5 script Zealotus#LhzHat ZHERLTHSH,{
mes "^3131FF30 Worn-Out Magic Scrolls^000000.";
mes "Then, I can grant you a measure";
mes "of my power as I've promised.";
- set ZLMASKQ,7;
+ ZLMASKQ = 7;
close;
}
else if(ZLMASKQ == 7)
@@ -1552,7 +1552,7 @@ gl_prison1,137,138,5 script Zealotus#LhzHat ZHERLTHSH,{
delitem 660,1;
delitem 7099,30;
getnameditem 5121,strcharinfo(0);
- set ZLMASKQ,8;
+ ZLMASKQ = 8;
close;
}
}
@@ -1671,7 +1671,7 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
mes "at me, but I just can't";
mes "stop being afraid of all";
mes "you humans! Damn it all!";
- set ZLMASKQ,2;
+ ZLMASKQ = 2;
close;
}
else if(ZLMASKQ == 2 || ZLMASKQ == 3)
@@ -1727,7 +1727,7 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
mes "^333333*Pant pant*^000000";
mes "What... just...";
mes "What happened?";
- set ZLMASKQ,4;
+ ZLMASKQ = 4;
delitem 7315,369;
close;
case 2:
@@ -1784,18 +1784,18 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
break;
case 3:
mes "Zealotus";
- set .@phen_point,.@phen_point+1;
+ ++.@phen_point;
break;
}
switch( select( "hates", "likes" ) )
{
case 1:
mes "hates";
- set .@phen_point,.@phen_point+2;
+ .@phen_point += 2;
break;
case 2:
mes "likes";
- set .@phen_point,.@phen_point+1;
+ ++.@phen_point;
break;
}
switch( select( "Rybio.", "Injustice.", "Phendark.", "Zealotus." ) )
@@ -1808,7 +1808,7 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
break;
case 3:
mes "Phendark.";
- set .@phen_point,.@phen_point+1;
+ ++.@phen_point;
break;
case 4:
mes "Zealotus.";
@@ -1932,7 +1932,7 @@ gl_prison1,97,104,1 script Phendark#LhzHat PHENDARK,{
mes "to see Zealotus and give";
mes "that tramp a piece of my";
mes "mind! Grrrr! She'll be sorry!";
- set ZLMASKQ,6;
+ ZLMASKQ = 6;
emotion e_an;
close;
case 2:
@@ -2045,7 +2045,7 @@ gl_prison1,100,48,5 script Rybio#LhzHat RYBIO,{
mes "like you would want to";
mes "help one of us out, though.";
mes "What's in it for you, exactly?";
- set ZLMASKQ,3;
+ ZLMASKQ = 3;
close;
case 2:
mes "[Rybio]";
@@ -2092,7 +2092,7 @@ gl_prison1,100,48,5 script Rybio#LhzHat RYBIO,{
mes "him. Reverse psychology?";
mes "It's weird talking about this";
mes "with a human. Hahahaha~";
- set ZLMASKQ,5;
+ ZLMASKQ = 5;
close;
}
else if(ZLMASKQ == 5)
diff --git a/npc/quests/newgears/2006_headgears.txt b/npc/quests/newgears/2006_headgears.txt
index a777db3f3..cc5c87752 100644
--- a/npc/quests/newgears/2006_headgears.txt
+++ b/npc/quests/newgears/2006_headgears.txt
@@ -122,7 +122,7 @@ rachel,152,131,3 script Sakjul 4_M_MIDDLE1,{
mes "- THUD THUD -";
mes "- BOOM -";
next;
- set .@result,rand(1,10);
+ .@result = rand(1,10);
if (.@result == 4) {
delitem 5172,1; //Beret
delitem 7063,100; //Soft_Feather
@@ -210,7 +210,7 @@ rachel,152,131,3 script Sakjul 4_M_MIDDLE1,{
//============================================================
hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
if (moza_valkylie == 5) {
- set .@val2,rand(1,10);
+ .@val2 = rand(1,10);
if (.@val2 == 3) {
specialeffect EF_LIGHTSPHERE;
mes "[Ghenirhemin]";
@@ -243,7 +243,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
mes "Please take pride in yourself, and";
mes "do not disgrace this Helm through evil doings.";
next;
- set moza_valkylie,0;
+ moza_valkylie = 0;
getitem 5171,1; //Valkyrie_Helm
mes "[Ghenirhemin]";
mes "May God bless this adventurer";
@@ -258,7 +258,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
close;
}
else if (moza_valkylie == 4) {
- set .@val,rand(1,10);
+ .@val = rand(1,10);
if (.@val == 7) {
mes "[Ghenirhemin]";
mes "............";
@@ -270,7 +270,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
mes "I can't...I can't believe that";
mes "this is what happens in Valhala!";
next;
- set moza_valkylie,5;
+ moza_valkylie = 5;
mes "[Ghenirhemin]";
mes "We are now witnessess of the God's grace...ah....";
close;
@@ -280,7 +280,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
close;
}
else if (moza_valkylie == 3) {
- set moza_valkylie,4;
+ moza_valkylie = 4;
mes "[Ghenirhemin]";
mes "Will you stop being anxious?";
mes "Just relax and wait, will you?";
@@ -320,7 +320,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
delitem 7511,1000; //Rune_Of_Darkness
delitem 7563,1000; //Bloody_Rune
Zeny -= 10000000;
- set moza_valkylie,3;
+ moza_valkylie = 3;
mes "[Ghenirhemin]";
mes "Now I am all nervous";
mes "in anticipation of a good result. Hahahaha.";
@@ -348,7 +348,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
mes "It surely is a reasonable price considering that ";
mes "you are about to obtain a godly power, don't you think?";
next;
- set moza_valkylie,2;
+ moza_valkylie = 2;
mes "[Ghenirhemin]";
mes "Let's discuss it later";
mes "once you prepare the money and the items.";
@@ -448,7 +448,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
mes "It surely is a reasonable price considering that ";
mes "you are about to obtain a godly power, don't you think?";
next;
- set moza_valkylie,2;
+ moza_valkylie = 2;
mes "[Ghenirhemin]";
mes "Let's discuss it later";
mes "once you prepare the money and the items.";
@@ -533,7 +533,7 @@ hugel,147,103,3 script Ghenirhemin 4_M_HUGRANFA,{
mes "However, there is something that I can show you.";
mes "Now, take a look at this.";
next;
- set moza_valkylie,1;
+ moza_valkylie = 1;
mes "[Ghenirhemin]";
mes "See? This surely tells you that";
mes "I am not making things up!";
@@ -670,7 +670,7 @@ payon,135,320,3 script Chungwolmang 4W_M_01,{
}
delitem 7201,500; //Log
delitem 7200,10; //Flexible_String
- set moza_tal,2;
+ moza_tal = 2;
next;
mes "[Chungwolmang]";
mes "...Why are you eyeing at me?";
@@ -733,7 +733,7 @@ payon,135,320,3 script Chungwolmang 4W_M_01,{
mes "In fact, I can't pay you back unless I have them.";
next;
delitem 706,1; //Four_Leaf_Clover
- set moza_tal,1;
+ moza_tal = 1;
mes "[Chungwolmang]";
mes "You want me to pay you back, don't you?";
mes "So, please bring them to me, please~";
@@ -787,7 +787,7 @@ S_MakeMask:
if (getarg(0) == 5169)
delitem getarg(7),getarg(8);
getitem getarg(0),1;
- set moza_tal,0;
+ moza_tal = 0;
mes "[Chungwolmang]";
mes "Wow, it was a piece of cake!";
mes "You know, I am not an artisan only in title.";
@@ -853,7 +853,7 @@ payon_in03,139,124,3 script Han Garam 4_M_ORIENT01,{
delitem 733,5; //Crystal_Jewel___
delitem 975,1; //Scarlet_Dyestuffs
delitem 7166,50; //Soft_Silk_Cloth
- set moza_korea,0;
+ moza_korea = 0;
getitem 5174,1; //A_yam
mes "[Han Garam]";
mes "Now I need to meet with the Dragon God again,";
@@ -915,7 +915,7 @@ payon_in03,139,124,3 script Han Garam 4_M_ORIENT01,{
delitem 733,5; //Crystal_Jewel___
delitem 983,1; //Black_Dyestuffs
delitem 2221,1; //Hat_
- set moza_korea,0;
+ moza_korea = 0;
getitem 5173,1; //Judge_Hat
mes "[Han Garam]";
mes "Now I need to meet with the Dragon God again,";
@@ -1022,7 +1022,7 @@ payon_in03,139,124,3 script Han Garam 4_M_ORIENT01,{
mes "You heard what materials I need, don't you?";
mes "Choose a hat, and bring me its materials without missing anything.";
next;
- set moza_korea,2;
+ moza_korea = 2;
mes "[Han Garam]";
mes "Okay then, I will be waiting you to come back.";
close;
@@ -1074,7 +1074,7 @@ payon_in03,139,124,3 script Han Garam 4_M_ORIENT01,{
delitem 7448,7; //Yellow_Orb
delitem 7445,7; //Green_Orb
delitem 7447,7; //Red_Orb
- set moza_korea,1;
+ moza_korea = 1;
mes "[Han Garam]";
mes "...Okay, give me some time to focus.";
close;
diff --git a/npc/quests/newgears/2008_headgears.txt b/npc/quests/newgears/2008_headgears.txt
index f45664f3b..b5a91eb5f 100644
--- a/npc/quests/newgears/2008_headgears.txt
+++ b/npc/quests/newgears/2008_headgears.txt
@@ -96,14 +96,14 @@ gef_fild05,80,149,3 script Myu#08_hat 4_F_YUNYANG,{
mes "If you do, it's all over for you.";
mes "So you better be careful.. ";
mes "Meow Meow Meow..";
- set hatcat2008,1;
+ hatcat2008 = 1;
setquest 7054;
setquest 7055;
close;
}
}
} else if(hatcat2008 == 1) {
- if(checkquest(7055,HUNTING) == 2) {
+ if (questprogress(7055,HUNTING) == 2) {
mes "[Myu]";
mes "Did you think I didn't know what you have done?";
mes "Huh?";
@@ -116,11 +116,11 @@ gef_fild05,80,149,3 script Myu#08_hat 4_F_YUNYANG,{
mes "Our business is over!!!";
mes " ";
mes "(Meow..)";
- set hatcat2008,0;
+ hatcat2008 = 0;
erasequest 7054;
erasequest 7055;
close;
- } else if(checkquest(7054,HUNTING) == 2) {
+ } else if (questprogress(7054,HUNTING) == 2) {
mes "[Myu]";
mes "Oh..wow unbelievable!";
mes "Now, those Kobolds should have learned a lesson, haven't they?";
@@ -136,7 +136,7 @@ gef_fild05,80,149,3 script Myu#08_hat 4_F_YUNYANG,{
mes "What more did you expect?";
mes "That Pow is really a valuable thing!";
mes "Now, just take it and leave. Wild Roses feel uncomfortable with an adventurer around them.";
- set hatcat2008,2;
+ hatcat2008 = 2;
getitem 5446,1;
erasequest 7054;
erasequest 7055;
@@ -185,7 +185,7 @@ gef_fild05,80,149,3 script Myu#08_hat 4_F_YUNYANG,{
mes "You know the drill right?";
mes "Never ever touch the Wild Roses, Only hunt down the Kobold Archers.";
mes "Give them 1,000 times despair!";
- set hatcat2008,1;
+ hatcat2008 = 1;
setquest 7054;
setquest 7055;
close;
diff --git a/npc/quests/ninja_quests.txt b/npc/quests/ninja_quests.txt
index dfcc7d172..b9d9acd59 100644
--- a/npc/quests/ninja_quests.txt
+++ b/npc/quests/ninja_quests.txt
@@ -92,7 +92,7 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
mes "Oh, Very well.";
mes "Get a move on.";
mes "Find the shield called ^ff0000Guard[1]^000000 and bring it to me.";
- set ninbo,1;
+ ninbo = 1;
close;
}
}
@@ -119,7 +119,7 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
mes "Hmm, Ok.";
mes "I'm so grateful that I was able to see such a rare thing from overseas.";
mes "Thanks for everything.";
- set ninbo,0;
+ ninbo = 0;
close;
}else{
mes "[Boshuu]";
@@ -132,7 +132,7 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
mes "[Boshuu]";
mes "Then I'll slot your slotless Arm Guard.";
mes "Come back when you have all the required materials.";
- set ninbo,2;
+ ninbo = 2;
close;
}
}
@@ -182,14 +182,14 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
delitem 2102,1;
delitem 2117,1;
Zeny -= 10000;
- set ninbo,0;
- set MISC_QUEST,MISC_QUEST | 2048;
+ ninbo = 0;
+ MISC_QUEST |= 2048;
getitem 2118,1;
close;
}
}
else if (MISC_QUEST & 2048){
- set ninbo,0;
+ ninbo = 0;
mes "[Boshuu]";
mes "Oh~ I see you've come back.";
mes "Is it because you need another slotted Arm Guard?";
@@ -256,7 +256,7 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
}
}
else{
- set ninbo,0;
+ ninbo = 0;
mes "[Boshuu]";
mes "Oh~ You~!";
mes "Is what you have there the shield from overseas called a Guard? Let me take a look.";
@@ -352,7 +352,7 @@ que_ng,28,50,3 script Boshuu 4_M_SEAMAN,{
delitem 2102,1;
delitem 2117,1;
Zeny -= 10000;
- set MISC_QUEST,MISC_QUEST | 2048;
+ MISC_QUEST |= 2048;
getitem 2118,1;
close;
}
@@ -415,7 +415,7 @@ que_ng,28,45,3 script Basshu 4_M_04,{
mes "[Basshu]";
mes "Oh, thank you.";
mes "If you could really find me a Mirror Shield, I might get some really good ideas.";
- set ninbot,1;
+ ninbot = 1;
close;
}
}
@@ -447,7 +447,7 @@ que_ng,28,45,3 script Basshu 4_M_04,{
next;
mes "[Basshu]";
mes "Thanks for everything.";
- set ninbot,0;
+ ninbot = 0;
close;
}else{
mes "[Basshu]";
@@ -462,7 +462,7 @@ que_ng,28,45,3 script Basshu 4_M_04,{
next;
mes "[Basshu]";
mes "Come and see me when you have everything ready.";
- set ninbot,2;
+ ninbot = 2;
close;
}
}
@@ -522,14 +522,14 @@ que_ng,28,45,3 script Basshu 4_M_04,{
delitem 2107,1;
delitem 2117,1;
Zeny -= 20000;
- set ninbot,0;
- set MISC_QUEST,MISC_QUEST | 4096;
+ ninbot = 0;
+ MISC_QUEST |= 4096;
getitem 2119,1;
close;
}
}
else if (MISC_QUEST & 4096){
- set ninbot,0;
+ ninbot = 0;
mes "[Basshu]";
mes "Oh~ I see you've come back.";
mes "Are you here because you need an Improved Arm Guard?";
@@ -601,7 +601,7 @@ que_ng,28,45,3 script Basshu 4_M_04,{
}
}
else{
- set ninbot,0;
+ ninbot = 0;
mes "[Basshu]";
mes "Why~ That's~!";
mes "Is what you have there that shield which is called a 'Mirror Shield' overseas?";
@@ -703,7 +703,7 @@ que_ng,28,45,3 script Basshu 4_M_04,{
delitem 2107,1;
delitem 2117,1;
Zeny -= 20000;
- set MISC_QUEST,MISC_QUEST | 4096;
+ MISC_QUEST |= 4096;
getitem 2119,1;
close;
}
@@ -712,7 +712,6 @@ que_ng,28,45,3 script Basshu 4_M_04,{
}
que_ng,27,18,3 script Toshu 4_M_SEAMAN,{
-
if(BaseClass != Job_Ninja){
mes "[Toshu]";
mes "How are you~";
@@ -1148,217 +1147,214 @@ que_ng,22,62,3 script Tetsu 4_M_SEAMAN,{
mes "I may not look it, but if it's about any items related to Fuuma, there's none who come close to my craftsmenship.";
mes "Well, look around, look around.";
next;
- menu "Fuuma Shuriken Beneki",M_BENEKI,"Fuuma Shuriken Daisharin",M_DAIS,
- "Fuuma Shuriken Daisharin[4]",M_DAIS4,"Fuuma Shuriken Rekka",M_REKKA,"Cancel",M_CANCEL;
-
-//=====================BENEKI========================
-M_BENEKI:
- mes "[Tetsu]";
- mes "Hmm~ You've chose the ^ff0000Fuuma Beneki^000000.";
- mes "In order to make the Fuuma Beneki, I need";
- mes "50 Steel, 20 Harpy Feather";
- mes "5 Oridecon, and 90,000 Zeny.";
- mes "Do you want me to create this item for you?";
- next;
- menu "Well .. erm .. it's kind of pricey.",M_NOPE,"Yes! Make it for me!",-;
-
- if(countitem(999)<50 || countitem(7115)<20 || countitem(984)<5){
+ switch (select("Fuuma Shuriken Beneki","Fuuma Shuriken Daisharin","Fuuma Shuriken Daisharin[4]","Fuuma Shuriken Rekka","Cancel")) {
+ case 1: // Beneki
mes "[Tetsu]";
- mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Beneki.";
+ mes "Hmm~ You've chose the ^ff0000Fuuma Beneki^000000.";
+ mes "In order to make the Fuuma Beneki, I need";
+ mes "50 Steel, 20 Harpy Feather";
+ mes "5 Oridecon, and 90,000 Zeny.";
+ mes "Do you want me to create this item for you?";
next;
+ if (select("Well .. erm .. it's kind of pricey.","Yes! Make it for me!") != 2) {
+ break;
+ }
+
+ if(countitem(999)<50 || countitem(7115)<20 || countitem(984)<5){
+ mes "[Tetsu]";
+ mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Beneki.";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma shuriken Beneki, I require...";
+ mes "^ff000050 Steel,^000000";
+ mes "^ff000020 Harpy Feathers^000000,";
+ mes "^ff00005 Oridecons^000000,";
+ mes "and ^ff000090,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ if(Zeny < 90000){
+ mes "[Tetsu]";
+ mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma Shuriken Beneki, I require...";
+ mes "^ff000050 Steel,^000000";
+ mes "^ff000020 Harpy Feathers^000000,";
+ mes "^ff00005 Oridecons^000000,";
+ mes "and ^ff000090,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ delitem 999,50;
+ delitem 7115,20;
+ delitem 984,5;
+ Zeny -= 90000;
+ getitem 13300,1;
mes "[Tetsu]";
- mes "In order to create a Fuuma shuriken Beneki, I require...";
- mes "^ff000050 Steel,^000000";
- mes "^ff000020 Harpy Feathers^000000,";
- mes "^ff00005 Oridecons^000000,";
- mes "and ^ff000090,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
+ mes "Hmm, very well.";
+ mes "Looks like you've brought me the correct amount of materials and Zeny";
+ mes "Here is your completed Fuuma Shuriken Beneki";
close;
- }
- if(Zeny < 90000){
+ case 2: // Daisharin
mes "[Tetsu]";
- mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin^000000.";
+ mes "In order to create Fuuma Shuriken Daisharin, I require...";
+ mes "30 Steel, 100 Tassels";
+ mes "2 Oridecons, and 40,000 Zeny.";
+ mes "Do you want me to create this item for you?";
next;
- mes "[Tetsu]";
- mes "In order to create a Fuuma Shuriken Beneki, I require...";
- mes "^ff000050 Steel,^000000";
- mes "^ff000020 Harpy Feathers^000000,";
- mes "^ff00005 Oridecons^000000,";
- mes "and ^ff000090,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
- close;
- }
- delitem 999,50;
- delitem 7115,20;
- delitem 984,5;
- Zeny -= 90000;
- getitem 13300,1;
- mes "[Tetsu]";
- mes "Hmm, very well.";
- mes "Looks like you've brought me the correct amount of materials and Zeny";
- mes "Here is your completed Fuuma Shuriken Beneki";
- close;
-
-//=====================DAISHARIN========================
-M_DAIS:
- mes "[Tetsu]";
- mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin^000000.";
- mes "Fuuma Shuriken Daisharin In order to create Fuuma Shuriken Daisharin, I require...";
- mes "30 Steel, 100 Tassels";
- mes "2 Oridecons, and 40,000 Zeny.";
- mes "Do you want me to create this item for you?";
- next;
- menu "Well .. erm .. it's kind of pricey.",M_NOPE,"Yes! Make it for me!",-;
+ if (select("Well .. erm .. it's kind of pricey.","Yes! Make it for me!") != 2) {
+ break;
+ }
- if(countitem(999)<30 || countitem(7301)<100 || countitem(984)<2){
- mes "[Tetsu]";
- mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin.";
- next;
+ if(countitem(999)<30 || countitem(7301)<100 || countitem(984)<2){
+ mes "[Tetsu]";
+ mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin.";
+ next;
+ mes "[Tetsu]";
+ mes "Fuuma Shuriken Daisharin, I require...";
+ mes "^ff000030 Steel^000000, ";
+ mes "^ff0000100 Tassels^000000,";
+ mes "^ff00002 Oridecons^000000,";
+ mes "and ^ff000040,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ if(Zeny < 40000){
+ mes "[Tetsu]";
+ mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ next;
+ mes "[Tetsu]";
+ mes "Fuuma Shuriken Daisharin, I require...";
+ mes "^ff000030 Steel^000000, ";
+ mes "^ff0000100 Tassels^000000,";
+ mes "^ff00002 Oridecons^000000,";
+ mes "and ^ff000040,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ delitem 999,30;
+ delitem 7301,100;
+ delitem 984,2;
+ Zeny -= 40000;
+ getitem 13301,1;
mes "[Tetsu]";
- mes "Fuuma Shuriken Daisharin, I require...";
- mes "^ff000030 Steel^000000, ";
- mes "^ff0000100 Tassels^000000,";
- mes "^ff00002 Oridecons^000000,";
- mes "and ^ff000040,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
+ mes "Hmm, very well.";
+ mes "Looks like you've brought me the correct amount of materials and Zeny";
+ mes "Here is your completed Fuuma Shuriken Daisharin";
close;
- }
- if(Zeny < 40000){
+ case 3: // Daisharin[4]
mes "[Tetsu]";
- mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin[4]^000000.";
+ mes "In order to create Fuuma Shuriken Daisharin[4], I require...";
+ mes "20 Cracked Diamonds, 1 Fuuma Shuriken Daisharin";
+ mes "3 Oridecons, and 40,000 Zeny.";
+ mes "Do you want me to create this item for you?";
next;
mes "[Tetsu]";
- mes "Fuuma Shuriken Daisharin, I require...";
- mes "^ff000030 Steel^000000, ";
- mes "^ff0000100 Tassels^000000,";
- mes "^ff00002 Oridecons^000000,";
- mes "and ^ff000040,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
- close;
- }
- delitem 999,30;
- delitem 7301,100;
- delitem 984,2;
- Zeny -= 40000;
- getitem 13301,1;
- mes "[Tetsu]";
- mes "Hmm, very well.";
- mes "Looks like you've brought me the correct amount of materials and Zeny";
- mes "Here is your completed Fuuma Shuriken Daisharin";
- close;
-
-//=====================DAISHARIN4========================
-M_DAIS4:
- mes "[Tetsu]";
- mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Daisharin[4]^000000.";
- mes "In order to create Fuuma Shuriken Daisharin[4], I require...";
- mes "20 Cracked Diamonds, 1 Fuuma Shuriken Daisharin";
- mes "3 Oridecons, and 40,000 Zeny.";
- mes "Do you want me to create this item for you?";
- next;
- mes "[Tetsu]";
- mes "And in case you don't know...";
- mes "In the process of slotting a weapon, your weapon will lose any refine points and slotted cards, if any.";
- mes "Think this over with caution, and then decide if you really want to do this or not.";
- next;
- menu "No thanks.. It's a little pricey..",M_NOPE,"Yes! Make it for me!",-;
-
- if(countitem(733)<20 || countitem(13301)<1 || countitem(984)<3){
- mes "[Tetsu]";
- mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin[4].";
+ mes "And in case you don't know...";
+ mes "In the process of slotting a weapon, your weapon will lose any refine points and slotted cards, if any.";
+ mes "Think this over with caution, and then decide if you really want to do this or not.";
next;
+ if (select("No thanks.. It's a little pricey..","Yes! Make it for me!") != 2) {
+ break;
+ }
+
+ if(countitem(733)<20 || countitem(13301)<1 || countitem(984)<3){
+ mes "[Tetsu]";
+ mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Daisharin[4].";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma Shuriken Daisharin[4], I require...";
+ mes "^ff000020 Cracked Diamonds^000000,";
+ mes "^ff00003 Oridecons^000000,";
+ mes "1 Fuuma Shuriken Daisharin, and";
+ mes "^ff000040,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ if(Zeny < 40000){
+ mes "[Tetsu]";
+ mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma Shuriken Daisharin[4], I require...";
+ mes "^ff000020 Cracked Diamonds^000000,";
+ mes "^ff00003 Oridecons^000000,";
+ mes "1 Fuuma Shuriken Daisharin, and";
+ mes "^ff000040,000 Zeny^000000.";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ delitem 733,20;
+ delitem 984,3;
+ Zeny -= 40000;
+ delitem 13301,1;
+ getitem 13302,1;
mes "[Tetsu]";
- mes "In order to create a Fuuma Shuriken Daisharin[4], I require...";
- mes "^ff000020 Cracked Diamonds^000000,";
- mes "^ff00003 Oridecons^000000,";
- mes "1 Fuuma Shuriken Daisharin, and";
- mes "^ff000040,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
+ mes "Hmm, very well.";
+ mes "Looks like you've brought me the correct amount of materials and Zeny";
+ mes "Here is your completed Fuuma Shuriken Daisharin[4].";
close;
- }
- if(Zeny < 40000){
+ case 4: // Rekka
mes "[Tetsu]";
- mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
- next;
- mes "[Tetsu]";
- mes "In order to create a Fuuma Shuriken Daisharin[4], I require...";
- mes "^ff000020 Cracked Diamonds^000000,";
- mes "^ff00003 Oridecons^000000,";
- mes "1 Fuuma Shuriken Daisharin, and";
- mes "^ff000040,000 Zeny^000000.";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
- close;
- }
- delitem 733,20;
- delitem 984,3;
- Zeny -= 40000;
- delitem 13301,1;
- getitem 13302,1;
- mes "[Tetsu]";
- mes "Hmm, very well.";
- mes "Looks like you've brought me the correct amount of materials and Zeny";
- mes "Here is your completed Fuuma Shuriken Daisharin[4].";
- close;
-
-//=====================REKKA========================
-M_REKKA:
- mes "[Tetsu]";
- mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Rekka^000000.";
- mes "In order to create a Fuuma Shuriken Rekka, I require";
- mes "50 Steel, 100 Live Coal";
- mes "100 Burning Hearts, 50 Burning Stones";
- mes "and 78,000 Zeny.";
- mes "Do you want me to create this item for you?";
- next;
- menu "Well .. erm .. it's kind of pricey",M_NOPE,"Yes! Make it for me!",-;
+ mes "Hmm~ I see you've chose the ^ff0000Fuuma Shuriken Rekka^000000.";
+ mes "In order to create a Fuuma Shuriken Rekka, I require";
+ mes "50 Steel, 100 Live Coal";
+ mes "100 Burning Hearts, 50 Burning Stones";
+ mes "and 78,000 Zeny.";
+ mes "Do you want me to create this item for you?";
+ next;
+ if (select("Well .. erm .. it's kind of pricey","Yes! Make it for me!") != 2) {
+ break;
+ }
- if(countitem(999)<50 || countitem(7098)<100 || countitem(7097)<100 || countitem(7521)<50){
- mes "[Tetsu]";
- mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Rekka.";
- next;
+ if(countitem(999)<50 || countitem(7098)<100 || countitem(7097)<100 || countitem(7521)<50){
+ mes "[Tetsu]";
+ mes "It looks like you haven't brought me enough materials to make you a Fuuma Shuriken Rekka.";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma Shuriken Rekka, I require...";
+ mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,";
+ mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,";
+ mes "and ^ff000078,000 Zeny^000000";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ if(Zeny < 78000){
+ mes "[Tetsu]";
+ mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
+ next;
+ mes "[Tetsu]";
+ mes "In order to create a Fuuma Shuriken Rekka, I require...";
+ mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,";
+ mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,";
+ mes "and ^ff000078,000 Zeny^000000";
+ mes "Remember these needed materials, and come back after you're positive you have them all.";
+ close;
+ }
+ delitem 999,50;
+ delitem 7098,100;
+ delitem 7097,100;
+ delitem 7521,50;
+ Zeny -= 78000;
+ getitem 13303,1;
mes "[Tetsu]";
- mes "In order to create a Fuuma Shuriken Rekka, I require...";
- mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,";
- mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,";
- mes "and ^ff000078,000 Zeny^000000";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
+ mes "Hmm, very well.";
+ mes "Looks like you've brought me the correct amount of materials and Zeny";
+ mes "Here is your completed Fuuma Shuriken Rekka.";
close;
- }
- if(Zeny < 78000){
+ default: // Cancel
mes "[Tetsu]";
- mes "Hmm.. You brought plenty of materials, but you're short on zeny.";
- next;
- mes "[Tetsu]";
- mes "In order to create a Fuuma Shuriken Rekka, I require...";
- mes "^ff000050 Steel^000000,^ff000050 Burning Stones^000000,";
- mes "^ff0000100 Burning Hearts^000000,^ff0000100 Live Coal^000000,";
- mes "and ^ff000078,000 Zeny^000000";
- mes "Remember these needed materials, and come back after you're positive you have them all.";
+ mes "What a shame.";
+ mes "I wanted to show you the weapons I put my heart and soul into making them.";
+ mes "If you ever have second thoughts, it's never too late to come back and ask.";
close;
}
- delitem 999,50;
- delitem 7098,100;
- delitem 7097,100;
- delitem 7521,50;
- Zeny -= 78000;
- getitem 13303,1;
- mes "[Tetsu]";
- mes "Hmm, very well.";
- mes "Looks like you've brought me the correct amount of materials and Zeny";
- mes "Here is your completed Fuuma Shuriken Rekka.";
- close;
-
-//=====================I'M SORRY========================
-M_NOPE:
+ // It's kind of pricey
mes "[Tetsu]";
mes "Hmm. The cost to create this item is kind of expensive...";
mes "All right. If you do gather all the required materials one day, come back and see me.";
close;
-
-M_CANCEL:
- mes "[Tetsu]";
- mes "What a shame.";
- mes "I wanted to show you the weapons I put my heart and soul into making them.";
- mes "If you ever have second thoughts, it's never too late to come back and ask.";
- close;
}
diff --git a/npc/quests/obb_quest.txt b/npc/quests/obb_quest.txt
index 09a37eca7..cbbdfc31d 100644
--- a/npc/quests/obb_quest.txt
+++ b/npc/quests/obb_quest.txt
@@ -32,7 +32,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
if (thai_head >= 1 && thai_head <= 5) {
switch(thai_head) {
case 1:
- set .@th_rand,rand(1,100);
+ .@th_rand = rand(1,100);
if (.@th_rand > 6 && .@th_rand < 20) {
mes "[Tourist]";
mes "...........";
@@ -63,7 +63,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
next;
mes "[Tourist]";
mes "Alright, alright, but you don't have to be mean.";
- set thai_head,2;
+ thai_head = 2;
close;
}
mes "[Tourist]";
@@ -102,7 +102,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "food...I can't stay here much longer...";
next;
if (select("Do you want me to help you?:Well, good luck with everything.") == 1) {
- set thai_head,3;
+ thai_head = 3;
mes "[Tourist]";
mes "Thank god! Thank you so much.";
mes "I knew you would help me~!";
@@ -122,7 +122,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "of a choice...";
close;
}
- set thai_head,1;
+ thai_head = 1;
mes "[Tourist]";
mes ".........";
mes "How could you be so cold";
@@ -153,7 +153,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "food...I can't stay here much longer...";
next;
if (select("Do you want me to help you?:Well, good luck with everything.") == 1) {
- set thai_head,3;
+ thai_head = 3;
mes "[Tourist]";
mes "Thank god! Thank you so much.";
mes "I knew you would help me~!";
@@ -173,7 +173,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "of a choice...";
close;
}
- set thai_head,1;
+ thai_head = 1;
mes "[Tourist]";
mes ".........";
mes "How could you be so cold";
@@ -205,7 +205,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "*Sob*...so... hungry...";
close;
}
- set .@th_rand,rand(1,100);
+ .@th_rand = rand(1,100);
if (.@th_rand > 0 && .@th_rand < 10) {
if (countitem(517) == 10) {
mes "[Tourist]";
@@ -307,7 +307,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
close;
}
}
- set thai_head,4;
+ thai_head = 4;
mes "^3355FFHe seemed to have been";
mes "starving for a long time.";
mes "He ate all the meat I gave him";
@@ -369,7 +369,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "There really are many good";
mes "people like you in this world.";
next;
- set thai_head,5;
+ thai_head = 5;
delitem 538,20; //Well_Baked_Cookie
mes "[Tourist]";
mes "I appreciate what you've done for";
@@ -460,7 +460,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "Doncha want me to help you?";
close;
}
- set thai_head,6;
+ thai_head = 6;
getitem 1205,1; //Cutter_
next;
mes "[Tourist]";
@@ -580,7 +580,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "Oh right, everywhere...but Lutie.";
mes "Man, this stinks.";
close2;
- set thai_head,2;
+ thai_head = 2;
end;
case 3:
mes "[Tourist]";
@@ -600,7 +600,7 @@ alberta,43,244,0 script Tourist#thai 4W_M_03,{
mes "to feel like...";
mes "you're pullin' my";
mes "chain...";
- set thai_head,1;
+ thai_head = 1;
close;
}
mes "[Tourist]";
@@ -680,7 +680,7 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
mes "*Sigh* For now, I have a favor to";
mes "ask of you. Could you bring me";
mes "^0000FF1 No Recipient^000000?";
- set thai_head,7;
+ thai_head = 7;
next;
mes "[Jacob]";
mes "I need this kid to calm down first...";
@@ -749,7 +749,7 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
next;
mes "[Jacob]";
mes "(...*Phew!* Thank you~)";
- set thai_head,9;
+ thai_head = 9;
close;
case 2:
mes "[Tommy]";
@@ -777,10 +777,10 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
next;
mes "[Jacob]";
mes "(...*Phew* Thank you~)";
- set thai_head,9;
+ thai_head = 9;
close;
case 2:
- set thai_head,8;
+ thai_head = 8;
mes "[Tommy]";
mes "I knew it!! Daddy, you're a liar!!";
next;
@@ -813,11 +813,11 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
mes "[Jacob]";
mes "Tommy...Tommy please...";
mes "Will you let me explain...?";
- set thai_head,8;
+ thai_head = 8;
close;
}
case 3:
- set thai_head,8;
+ thai_head = 8;
mes "[Tommy]";
mes "I knew it!! Daddy, you're a liar!!";
next;
@@ -847,7 +847,7 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
mes "[Jacob]";
mes "Tommy...Tommy, please...";
mes "Will you let me explain...?";
- set thai_head,8;
+ thai_head = 8;
close;
}
}
@@ -867,7 +867,7 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
mes "I will give you a chance";
mes "to make up for your mistake.";
mes "Please get me a No Recipient as soon as you can.";
- set thai_head,7;
+ thai_head = 7;
close;
}
mes "[Jacob]";
@@ -965,10 +965,10 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
next;
mes "[Tommy]";
mes "...I'm sorry...*bows head*";
- set thai_head,10;
+ thai_head = 10;
close;
case 10:
- set .@rem,rand(1,11);
+ .@rem = rand(1,11);
if (.@rem == 1) {
mes "[Jacob]";
mes "Ah~ yes! Didn't you say Pandger Mayer introduced me to you?";
@@ -992,7 +992,7 @@ moc_ruins,105,62,4 script Jacob#thai 1_M_04,{
mes "People say that many adventurers";
mes "are visiting this man for some";
mes "reason. Why don't you go talk to him and see if he has some wisdom for you?";
- set thai_head,11;
+ thai_head = 11;
close;
}
else if (.@rem > 1 && .@remrem < 7) {
@@ -1105,14 +1105,14 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "...";
mes "Get out of my sight,";
mes "you greedy fool.";
- set thai_head,12;
+ thai_head = 12;
close;
case 2:
mes "[Elder Creek]";
mes "Bah! The more ignorant they are, the more arrogantly they act!";
mes "Did you think that I would accept just any meaning?";
mes "Take care, you ignorant fool.";
- set thai_head,12;
+ thai_head = 12;
close;
case 3:
mes "[Elder Creek]";
@@ -1131,14 +1131,14 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "[Elder Creek]";
mes "Of course, this rule applies to";
mes "you as well. That sort of thing is a universal principle, after all.";
- set thai_head,13;
+ thai_head = 13;
close;
case 4:
mes "[Elder Creek]";
mes ".....";
mes "Did you think that I would accept just any meaning??";
mes "Take care, you ignorant fool.";
- set thai_head,12;
+ thai_head = 12;
close;
}
case 2:
@@ -1193,7 +1193,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "you. I hope you will be happy";
mes "with that nugget of wisdom.";
close2;
- set thai_head,14;
+ thai_head = 14;
end;
case 2:
mes "[Elder Creek]";
@@ -1241,7 +1241,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "After all...I am a Sage.";
mes "I hope you will be happy with my wise advice.";
close2;
- set thai_head,14;
+ thai_head = 14;
end;
case 3:
mes "[Elder Creek]";
@@ -1307,7 +1307,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "I hope you will be happy";
mes "with my wise advice.";
close2;
- set thai_head,14;
+ thai_head = 14;
end;
case 4:
mes "[Elder Creek]";
@@ -1324,7 +1324,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "....that's all I can say.";
mes "I hope you will be happy with my wise advice.";
close2;
- set thai_head,14;
+ thai_head = 14;
end;
case 5:
mes "[Elder Creek]";
@@ -1341,7 +1341,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
next;
mes "[Elder Creek]";
mes "Get out of my sight immediately! I don't talk to trash!";
- set thai_head,12;
+ thai_head = 12;
close;
}
case 3:
@@ -1354,7 +1354,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
mes "[Elder Creek]";
mes "....*Sigh* Okay.";
mes "I forgive you.";
- set thai_head,11;
+ thai_head = 11;
close;
}
mes "[Elder Creek]";
@@ -1393,14 +1393,14 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
next;
mes "[Elder Creek]";
mes "Do me this favor, young man.";
- set thai_head,15;
+ thai_head = 15;
close;
case 14:
if (rand(1,30) == 5) {
mes "[Elder Creek]";
mes "....hmm. I see you want more.";
mes "Come back later.";
- set thai_head,13;
+ thai_head = 13;
close;
}
mes "[Elder Creek]";
@@ -1422,7 +1422,7 @@ comodo,68,195,0 script Old Man#thai 2_M_PHARMACIST,{
delitem 964,10; //Crap_Shell
delitem 7053,50; //Cyfar
next;
- set thai_head,16;
+ thai_head = 16;
getitem 603,1; //Old_Blue_Box
mes "[Elder Creek]";
mes "Please, take this first.";
diff --git a/npc/quests/okolnir.txt b/npc/quests/okolnir.txt
index ff6f6af85..c3aa36cfb 100644
--- a/npc/quests/okolnir.txt
+++ b/npc/quests/okolnir.txt
@@ -15,13 +15,13 @@
function script F_Okolnir {
if (compare(strnpcinfo(0),"main")) end;
- set .@sub$,(compare(strnpcinfo(4),"cas"))?(substr(strnpcinfo(4),0,2))+(substr(strnpcinfo(4),8,9)):substr(strnpcinfo(4),5,9);
+ .@sub$ = (compare(strnpcinfo(4),"cas"))?(substr(strnpcinfo(4),0,2))+(substr(strnpcinfo(4),8,9)):substr(strnpcinfo(4),5,9);
return .@sub$;
}
- script Guide#gq_main -1,{
- set .@sub$, callfunc("F_Okolnir");
- set .@GID, getcastledata(strnpcinfo(4),1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@GID = getcastledata(strnpcinfo(4),1);
if (getcharid(2) == .@GID) {
if (getd("$siz_"+.@sub$+"_on") == 0) {
mes "[Guide]";
@@ -58,8 +58,8 @@ function script F_Okolnir {
mes "Would you like to try to enter here?";
close;
case 2:
- set .@defence,getcastledata(strnpcinfo(4),3);
- set .@Economy,getcastledata(strnpcinfo(4),2);
+ .@defence = getcastledata(strnpcinfo(4),3);
+ .@Economy = getcastledata(strnpcinfo(4),2);
if ((.@Economy > 64) && (.@defence > 29)) {
mes "[Guide]";
mes "Great! Economy and Defense are OK.";
@@ -138,7 +138,7 @@ function script F_Okolnir {
end;
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "Guide#gq_"+.@sub$;
if (getd("$siz_"+.@sub$+"_on") == 1) setd "$siz_"+.@sub$+"_on", 0;
end;
@@ -167,9 +167,9 @@ que_qsch04,345,23,0 warp Gate02#gq_sch04 1,1,schg_cas04,369,306
que_qsch05,345,23,0 warp Gate02#gq_sch05 1,1,schg_cas05,369,306
- script Wish Maiden#gq_main -1,{
- set .@sub$, callfunc("F_Okolnir");
- set .@t$, ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
- set .@GID, getcastledata(.@t$,1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@t$ = ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
+ .@GID = getcastledata(.@t$,1);
if (getcharid(2) == .@GID) {
cutin "wish_maiden31",1;
if (strcharinfo(0) == getguildmaster(.@GID)) {
@@ -183,9 +183,9 @@ que_qsch05,345,23,0 warp Gate02#gq_sch05 1,1,schg_cas05,369,306
} else {
setarray .@n, 7830,1,7831,1,7832,1,7833,1,7834,1,2357,1,7510,100,969,10,985,20;
}
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2) {
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2) {
if (countitem(.@n[.@i]) >= .@n[.@i+1])
- set .@check, .@check + 1;
+ .@check += 1;
}
if (.@check >= 9) {
cutin "wish_maiden11",1;
@@ -219,7 +219,7 @@ que_qsch05,345,23,0 warp Gate02#gq_sch05 1,1,schg_cas05,369,306
next;
switch(select("We are ready.:We need more time.")) {
case 1:
- set .@saram,getmapusers("que_q"+.@sub$);
+ .@saram = getmapusers("que_q"+.@sub$);
if (((.@saram > 15) && (.@saram < 21))) {
cutin "wish_maiden12",1;
mes "[Wish Maiden]";
@@ -344,7 +344,7 @@ que_qsch05,345,23,0 warp Gate02#gq_sch05 1,1,schg_cas05,369,306
end;
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (!getd("$siz_"+.@sub$+"_on")) {
enablenpc "Wish Maiden#gq_"+.@sub$;
} else {
@@ -366,14 +366,14 @@ que_qsch05,345,82,3 duplicate(Wish Maiden#gq_main) Wish Maiden#gq_sch05 4_F_VALK
- script Gate01#gq_main -1,{
function SMonster;
- set .@sub$, callfunc("F_Okolnir");
-
+ .@sub$ = callfunc("F_Okolnir");
+
OnTouch:
- set .@sub$, callfunc("F_Okolnir");
- set .@saram,getmapusers("que_q"+.@sub$);
+ .@sub$ = callfunc("F_Okolnir");
+ .@saram = getmapusers("que_q"+.@sub$);
if (.@saram < 21) {
if (getd("$@gqse_"+.@sub$+"_miro") == getd("$@gqse_"+.@sub$+"_pcc")) {
- set .@point,rand(1,5);
+ .@point = rand(1,5);
switch (.@point) {
case 1: warp "que_q"+.@sub$,72,271; break;
case 2: warp "que_q"+.@sub$,45,243; break;
@@ -382,7 +382,6 @@ OnTouch:
case 5: warp "que_q"+.@sub$,46,300; break;
}
end;
-
}
switch (getd("$@gqse_"+.@sub$+"_miro")) {
case 0: setarray .@n, 77,271,72,271,1; break;
@@ -415,37 +414,36 @@ OnTouch:
mes "There are too many people, you can't enter.";
close;
}
-
+
function SMonster {
-
switch (BaseClass) {
- case 1: set .@m, 1652; break;
- case 2: set .@m, 1663; break;
- case 3: set .@m, 1662; break;
- case 4: set .@m, 1661; break;
- case 5: set .@m, 1660; break;
- case 6: set .@m, 1659; break;
- default: set .@m, 1652; break;
+ case 1: .@m = 1652; break;
+ case 2: .@m = 1663; break;
+ case 3: .@m = 1662; break;
+ case 4: .@m = 1661; break;
+ case 5: .@m = 1660; break;
+ case 6: .@m = 1659; break;
+ default: .@m = 1652; break;
}
monster "que_q"+getarg(0),getarg(1),getarg(2),strcharinfo(0),.@m,1,"#Gate_manager_"+getarg(0)+"::OnMyMobDead";
return;
}
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "Gate01#gq_"+.@sub$;
setcell "que_q"+.@sub$,58,302,63,302,cell_walkable,0;
setcell "que_q"+.@sub$,58,302,63,302,cell_shootable,0;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "Gate01#gq_"+.@sub$;
killmonsterall "que_q"+.@sub$;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "Gate01#gq_"+.@sub$;
end;
}
@@ -463,9 +461,9 @@ que_qsch05,346,81,0 duplicate(Gate01#gq_main) Gate01#gq_sch05 WARPNPC,1,1
- script #Gate_manager_main -1,{
end;
-
+
OnMyMobDead:
- set .@sub$, callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (getd("$@gqse_"+.@sub$+"_miro") == getd("$@gqse_"+.@sub$+"_pcc")) {
if (!mobcount("que_q"+.@sub$,"#Gate_manager_"+.@sub$+"::OnMyMobDead")) {
donpcevent "#gq_miromob2_"+.@sub$+"::OnEnable";
@@ -486,39 +484,39 @@ que_qsch05,1,4,0 duplicate(#Gate_manager_main) #Gate_manager_sch05 CLEAR_NPC
- script #gq_miromob2_main -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
initnpctimer;
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: How does it feel to see shadows of the past. This is only the beginning.",bc_map,"0x00ff00";
end;
OnTimer6000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: The things you seeing are not real, don't be caught in the Mystic garden.",bc_map,"0x00ff00";
setarray .@mobname$, "Seyren Windsor","Kathryne Keyron","Cecil Damon","Margaretha Sorin","Eremes Guile","Howard Alt-Eisen";
setarray .@num, 72,271,1640,63,282,1645,59,294,1644,46,300,1643,51,285,1641,51,262,1642;
- set .@c, 0;
+ .@c = 0;
while (.@c < 3) {
- for (set .@i, 0; .@i < getarraysize(.@mobname$); set .@i, .@i + 1)
+ for (.@i = 0; .@i < getarraysize(.@mobname$); ++.@i)
monster "que_q"+.@sub$,.@num[.@i*3],.@num[.@i*3+1],.@mobname$[.@i],.@num[.@i*3+2],1,"#gq_miromob2_"+.@sub$+"::OnMyMobDead";
- set .@c, .@c + 1;
+ ++.@c;
}
stopnpctimer;
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#gq_miromob2_"+.@sub$+"::OnMyMobDead";
stopnpctimer;
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (mobcount("que_q"+.@sub$,"#gq_miromob2_"+.@sub$+"::OnMyMobDead") == 0) {
mapannounce "que_qaru05","The Mystic garden exit is now open.",bc_map,"0x00ff00";
setcell "que_q"+.@sub$,58,302,63,302,cell_walkable,1;
@@ -540,9 +538,9 @@ que_qsch05,1,4,0 duplicate(#gq_miromob2_main) #gq_miromob2_sch05 CLEAR_NPC
- script #okolnir_main -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "Gate01#gq_"+.@sub$+"::OnEnable";
donpcevent "#Maze_Manager_"+.@sub$+"::OnEnable";
donpcevent "#event_start01_"+.@sub$+"::OnEnable";
@@ -561,7 +559,7 @@ OnEnable:
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "Wish Maiden#gq_"+.@sub$;
donpcevent "#gq_miromob2_"+.@sub$+"::OnReset";
disablenpc "Piamette#"+.@sub$;
@@ -612,52 +610,52 @@ OnStop:
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden : Do your best, Okolnir will disappear in one hour!",bc_map,"0x00ff00";
end;
OnTimer1800000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 30 minutes.",bc_map,"0xff0000";
end;
OnTimer2400000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 20 minutes.",bc_map,"0xff0000";
end;
OnTimer3000000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 10 minutes.",bc_map,"0xff0000";
end;
OnTimer3300000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 5 minutes.",bc_map,"0xff0000";
end;
OnTimer3360000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 4 minutes.",bc_map,"0xff0000";
end;
OnTimer3420000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 3 minutes.",bc_map,"0xff0000";
end;
OnTimer3480000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 2 minutes.",bc_map,"0xff0000";
end;
OnTimer3540000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir will disappear in 1 minutes.",bc_map,"0xff0000";
end;
OnTimer3600000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Okolnir has begun to disappear.",bc_map,"0x4d4dff";
disablenpc "Wish Maiden#gq_"+.@sub$;
donpcevent "#gq_miromob2_"+.@sub$+"::OnReset";
@@ -700,17 +698,17 @@ OnTimer3600000:
end;
OnTimer3605000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: ... You will fall into a deep sleep within Okolnir... ",bc_map,"0x00ff00";
end;
OnTimer3608000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: ..Have courage ... and await your chance again... ",bc_map,"0x00ff00";
end;
OnTimer3610000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setd "$@gqse_"+.@sub$+"_miro",0;
setd "$@gqse_"+.@sub$+"_pcc",0;
setd "$@gqse_"+.@sub$+"_gd",0;
@@ -719,7 +717,7 @@ OnTimer3610000:
end;
OnTimer3611000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#okolnir_"+.@sub$+"_time01::OnEnable";
stopnpctimer;
end;
@@ -737,14 +735,14 @@ que_qsch05,1,1,0 duplicate(#okolnir_main) #okolnir_sch05 CLEAR_NPC
- script #Maze_Manager_main -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
initnpctimer;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_bf_"+.@sub$+"::OnDisable";
donpcevent "#miro_rf_"+.@sub$+"::OnDisable";
donpcevent "#miro_yf_"+.@sub$+"::OnDisable";
@@ -752,57 +750,57 @@ OnDisable:
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_rf_"+.@sub$+"::OnDisable";
end;
OnTimer2000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_yf_"+.@sub$+"::OnDisable";
end;
OnTimer3000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_bf_"+.@sub$+"::OnEnable";
end;
OnTimer120000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_bf_"+.@sub$+"::OnDisable";
end;
OnTimer121000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_yf_"+.@sub$+"::OnDisable";
end;
OnTimer123000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_rf_"+.@sub$+"::OnEnable";
end;
OnTimer240000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_bf_"+.@sub$+"::OnDisable";
end;
OnTimer241000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_rf_"+.@sub$+"::OnDisable";
end;
OnTimer242000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_yf_"+.@sub$+"::OnEnable";
end;
OnTimer360000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#Maze_Manager_"+.@sub$+"::OnEnable";
end;
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#miro_bf_"+.@sub$+"::OnDisable";
donpcevent "#miro_rf_"+.@sub$+"::OnDisable";
donpcevent "#miro_yf_"+.@sub$+"::OnDisable";
@@ -822,22 +820,22 @@ que_qsch05,1,2,0 duplicate(#Maze_Manager_main) #Maze_Manager_sch05 CLEAR_NPC
- script #miro_bf_main -1,{
function Cell;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 44,270,46,270,50,287,52,287,50,265,52,265,56,279,58,279,64,301,64,298,62,272,64,272,58,245,58,243,72,289,72,287,68,257,68,255,73,263,73,261,75,251,75,249,79,283,79,281,82,271,84,271,89,295,89,293,88,276,90,276,88,266,90,266,94,256,96,256,64,301,64,299,100,251,102,251;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1]," ",1934,1,"#miro_bf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,0);
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#miro_bf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,1);
end;
function Cell {
setarray .@cell, 44,270,47,270,50,287,53,287,50,265,53,265,56,279,59,279,64,298,64,301,62,272,65,272,58,242,58,245,72,286,72,289,68,254,68,259,73,260,73,263,75,248,75,251,79,280,79,283,82,271,85,271,89,292,89,295,88,276,91,276,88,266,91,266,94,256,97,256,64,298,64,301,100,251,103,251;
- for (set .@i, 0; .@i < getarraysize(.@cell); set .@i, .@i + 4) {
+ for (.@i = 0; .@i < getarraysize(.@cell); .@i += 4) {
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_walkable,getarg(1);
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_shootable,getarg(1);
}
@@ -859,25 +857,25 @@ que_qsch05,2,1,0 duplicate(#miro_bf_main) #miro_bf_sch05 CLEAR_NPC
- script #miro_rf_main -1,{
function Cell;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 57,301,57,299,48,291,48,289,68,290,70,290,72,295,72,293,90,296,92,296,56,282,58,282,66,283,66,281,80,284,82,284,44,273,46,273,50,273,52,273,54,269,54,267,66,271,66,270,81,273,81,272,88,276,90,276,94,276,96,276,64,258,66,258,76,263,76,261,87,265,87,263,50,252,52,252,76,252,78,252,99,255,99,253,53,245,53,243;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1]," ",1935,1,"#miro_rf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,0);
end;
-
+
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#miro_rf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,1);
end;
-
+
OnMyMobDead:
end;
-
+
function Cell {
setarray .@cell, 57,298,57,301,48,288,48,291,68,290,71,290,72,292,72,295,90,296,93,296,56,282,59,282,66,280,66,283,80,284,83,284,44,273,47,273,50,273,53,273,54,266,54,269,66,270,66,271,81,272,81,273,88,276,91,276,94,276,97,276,64,258,67,258,76,260,76,263,87,262,87,265,50,252,53,252,76,252,79,252,99,252,99,255,53,242,53,245;
- for (set .@i, 0; .@i < getarraysize(.@cell); set .@i, .@i + 4) {
+ for (.@i = 0; .@i < getarraysize(.@cell); .@i += 4) {
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_walkable,getarg(1);
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_shootable,getarg(1);
}
@@ -897,25 +895,25 @@ que_qsch05,2,2,0 duplicate(#miro_rf_main) #miro_rf_sch05 CLEAR_NPC
- script #miro_yf_main -1,{
function Cell;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 44,292,46,292,67,295,67,293,94,301,94,299,79,289,79,287,56,282,58,282,71,283,71,281,100,281,102,281,44,261,46,261,50,265,52,265,56,270,58,270,72,278,73,278,82,266,84,266,88,266,90,266,94,271,96,271,60,257,60,255,73,263,73,261,75,257,75,255,87,257,87,255,58,251,58,249,80,251,80,249,53,245,53,243,75,245,75,243,100,251,102,251,100,256,102,256;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1]," ",1936,1,"#miro_yf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,0);
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#miro_yf_"+.@sub$+"::OnMyMobDead";
Cell(.@sub$,1);
end;
OnMyMobDead:
end;
-
+
function Cell {
setarray .@cell, 44,292,47,292,67,292,67,295,94,298,94,301,79,286,79,289,56,282,59,282,71,280,71,283,100,281,103,281,44,261,47,261,50,265,53,265,56,270,59,270,72,278,73,278,82,266,85,266,88,266,91,266,94,271,97,271,60,254,60,257,73,260,73,263,75,254,75,257,87,254,87,257,58,248,58,251,80,248,80,251,53,242,53,245,75,242,75,245,100,251,103,251,100,256,103,256;
- for (set .@i, 0; .@i < getarraysize(.@cell); set .@i, .@i + 4) {
+ for (.@i = 0; .@i < getarraysize(.@cell); .@i += 4) {
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_walkable,getarg(1);
setcell "que_q"+getarg(0),.@cell[.@i],.@cell[.@i+1],.@cell[.@i+2],.@cell[.@i+3],cell_shootable,getarg(1);
}
@@ -934,9 +932,9 @@ que_qsch05,2,3,0 duplicate(#miro_yf_main) #miro_yf_sch05 CLEAR_NPC
- script windpath01_main -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (countitem(7839)) {
mes "The Warp Gate responds to the Crystal Key.";
delitem 7839,1; //Crystal_Key
@@ -971,9 +969,9 @@ que_qsch05,113,165,0 warp windpath02_sch05 1,1,que_qsch05,139,172
- script Piamette#main -1,{
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "Piamette#"+.@sub$;
end;
}
@@ -993,46 +991,46 @@ que_qsch05,131,136,3 duplicate(Piamette#main) Piamette#sch05 PIAMETTE
end;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "#event_start01_"+.@sub$;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#event_start01_"+.@sub$;
stopnpctimer;
end;
OnTouch:
initnpctimer;
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#event_start01_"+.@sub$;
end;
OnTimer2000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette mumblings : ..There were six birds, Teo. But one is....",bc_map,"0xdb7093";
end;
OnTimer6000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette mumblings : ...Shh.. Teo. The birds have returned..Are they birds that ran away before...? Or breakers who disguises themselves as good adventurers?",bc_map,"0xdb7093";
end;
OnTimer10000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette mumblings : Ha! They are caged in.",bc_map,"0xdb7093";
end;
OnTimer14000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : Teo, Catch the birds! Put the cage away from here!",bc_map,"0x00ff00";
donpcevent "#gdtimer01_"+.@sub$+"::OnEnable";
stopnpctimer;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#event_start01_"+.@sub$;
end;
}
@@ -1049,84 +1047,84 @@ que_qsch05,114,158,0 duplicate(#event_start01_main) #event_start01_sch05 -1,1,1
- script #gdtimer01_main -1,{
end;
-
+
OnEnable:
initnpctimer;
end;
OnStop:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 8; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 8; ++.@i)
donpcevent "#getspell0"+.@i+"_"+.@sub$+"::OnDisable";
stopnpctimer;
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell08_"+.@sub$+"::OnDisable";
donpcevent "#getspell01_"+.@sub$+"::OnEnable";
end;
OnTimer10000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell01_"+.@sub$+"::OnDisable";
donpcevent "#getspell02_"+.@sub$+"::OnEnable";
end;
OnTimer20000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell02_"+.@sub$+"::OnDisable";
donpcevent "#getspell03_"+.@sub$+"::OnEnable";
end;
OnTimer30000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell03_"+.@sub$+"::OnDisable";
donpcevent "#getspell04_"+.@sub$+"::OnEnable";
end;
OnTimer40000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell04_"+.@sub$+"::OnDisable";
donpcevent "#getspell05_"+.@sub$+"::OnEnable";
end;
OnTimer50000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell05_"+.@sub$+"::OnDisable";
donpcevent "#getspell06_"+.@sub$+"::OnEnable";
end;
OnTimer60000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell06_"+.@sub$+"::OnDisable";
donpcevent "#getspell07_"+.@sub$+"::OnEnable";
end;
OnTimer70000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#getspell07_"+.@sub$+"::OnDisable";
donpcevent "#getspell08_"+.@sub$+"::OnEnable";
end;
OnTimer75000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (getd("$@gqse_"+.@sub$+"_gd") < 6) {
mapannounce "que_q"+.@sub$+"","Piamette : Silly birds! Silly Teo! Why can't you put away the cage at once?!",bc_map,"0x00ff00";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
enablenpc "#"+.@sub$+"_cage0"+.@i;
setd "$@gqse_"+.@sub$+"_gd",0;
}
end;
OnTimer76000:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 6; ++.@i)
disablenpc "#"+.@sub$+"_cage0"+.@i;
end;
OnTimer80000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#gdtimer01_"+.@sub$+"::OnEnable";
end;
}
@@ -1143,61 +1141,61 @@ que_qsch05,2,2,0 duplicate(#gdtimer01_main) #gdtimer01_sch05 CLEAR_NPC
- script #gdtimer02_main -1,{
end;
-
+
OnEnable:
initnpctimer;
end;
OnStop:
stopnpctimer;
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#gdtimer02_"+.@sub$+"::OnMyMobDead";
end;
OnTimer4000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : All of them are caught!",bc_map,"0xdb7093";
end;
OnTimer8000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : Let's call out the keeper of the key not to let the birds go far away.",bc_map,"0xdb7093";
end;
OnTimer12000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : The keeper of the key is protecting my cage.",bc_map,"0xdb7093";
setarray .@xy, 108,151,109,135,115,116,158,106,163,133,150,154;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Key Stone",1905,1,"#gdtimer02_"+.@sub$+"::OnMyMobDead";
end;
OnTimer112000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : Whooping fun times are back! Now, Go! I'll get back to!!",bc_map,"0xdb7093";
killmonster "que_q"+.@sub$,"#gdtimer02_"+.@sub$+"::OnMyMobDead";
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
enablenpc "#"+.@sub$+"_cage0"+.@i;
setd "$@gqse_"+.@sub$+"_gd",0;
end;
OnTimer113000:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 6; ++.@i)
disablenpc "#"+.@sub$+"_cage0"+.@i;
donpcevent "#gdtimer01_"+.@sub$+"::OnEnable";
stopnpctimer;
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#gdtimer02_"+.@sub$+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (!mobcount("que_q"+.@sub$,"#gdtimer02_"+.@sub$+"::OnMyMobDead")) {
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
enablenpc "#"+.@sub$+"_cage0"+.@i;
donpcevent "#piamette_"+.@sub$+"::OnEnable";
stopnpctimer;
@@ -1221,18 +1219,18 @@ OnEnable:
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#piamette_"+.@sub$+"::OnMyMobDead";
stopnpctimer;
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : All the keeper of keys are dead now? Who freed my birds? Teo, who did it?",bc_map,"0xdb7093";
end;
OnTimer5000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette : I'm pissed off now!",bc_map,"0xdb7093";
disablenpc "Piamette#"+.@sub$;
monster "que_q"+.@sub$,131,135,"Angry Piamette",1930,1,"#piamette_"+.@sub$+"::OnMyMobDead";
@@ -1240,7 +1238,7 @@ OnTimer5000:
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Piamette has been released, so the warp gate toward the South is working now.",bc_map,"0x00ff00";
enablenpc "windpath03_"+.@sub$;
enablenpc "windpath04_"+.@sub$;
@@ -1262,20 +1260,20 @@ que_qsch05,1,4,0 duplicate(#piamette_main) #piamette_sch05 CLEAR_NPC
end;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
- set .@c,charat(strnpcinfo(2),9);
+ .@sub$ = callfunc("F_Okolnir");
+ .@c = charat(strnpcinfo(2),9);
enablenpc "#getspell0"+.@c+"_"+.@sub$;
specialeffect EF_LOCKON;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
- set .@c,charat(strnpcinfo(2),9);
+ .@sub$ = callfunc("F_Okolnir");
+ .@c = charat(strnpcinfo(2),9);
disablenpc "#getspell0"+.@c+"_"+.@sub$;
end;
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
sc_start SC_STONE,300000,0,10000;
switch (getd("$@gqse_"+.@sub$+"_gd")) {
case 0: setarray .@n$, "103","153","1","Piamette : One white bird has dropped with its wing pierced by an arrow."; break;
@@ -1296,8 +1294,8 @@ OnTouch:
end;
OnInit:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 8; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 8; ++.@i)
disablenpc "#getspell0"+.@i+"_"+.@sub$;
end;
}
@@ -1384,20 +1382,20 @@ que_qsch05,146,121,0 duplicate(#getspells_main) #getspell08_sch05 -1,1,1
- script #main_cages -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
sc_end SC_STONE;
setarray .@n, 108,151,107,135,113,114,158,106,163,133,150,154;
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
warp "que_q"+.@sub$,.@n[.@i],.@n[.@i+1];
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ for (.@i = 1; .@i <= 6; ++.@i)
disablenpc "#"+.@sub$+"_cage0"+.@i;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 6; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 6; ++.@i)
disablenpc "#"+.@sub$+"_cage0"+.@i;
end;
}
@@ -1464,7 +1462,7 @@ que_qsch05,150,159,0 duplicate(#main_cages) #sch05_cage06 -1,1,1
que_qaru01,1,8,0 script #gd_main_mobctrl CLEAR_NPC,{
end;
-
+
OnEnable:
setarray .@mob_1$, "Ball of Piamette","1738";
setarray .@mob_1, 107,152,109,135,113,116,157,107,163,133,149,156,131,139,135,136,131,132,128,136,110,145,129,114,148,114,155,128,152,145,131,151,110,130;
@@ -1474,25 +1472,25 @@ OnEnable:
setarray .@mob_3, 132,139,135,135,132,132,128,135,111,145,111,130,130,114,149,114,156,128,153,145,132,151;
setarray .@mob_4$, "Ancient Mimic","1699";
setarray .@mob_4, 133,139,135,134,133,132,128,135,112,145,131,114,150,114,157,128,154,145,133,151,112,130;
- set .@sub$,callfunc("F_Okolnir");
- set .@c, 1;
+ .@sub$ = callfunc("F_Okolnir");
+ .@c = 1;
while (.@c <= 4) {
- for (set .@i, 0; .@i < getarraysize(getd(".@mob_"+.@c)); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(getd(".@mob_"+.@c)); .@i += 2)
monster "que_q"+.@sub$,getd(".@mob_"+.@c+"["+.@i+"]"),getd(".@mob_"+.@c+"["+(.@i+1)+"]"),getd(".@mob_"+.@c+"$"),atoi(getd(".@mob_"+.@c+"$[1]")),1,"#gd_"+.@sub$+"_mobctrl::OnMyMobDead";
- set .@c, .@c + 1;
+ ++.@c;
}
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#gd_"+.@sub$+"_mobctrl::OnMyMobDead";
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (mobcount("que_q"+.@sub$,"#gd_"+.@sub$+"_mobctrl::OnMyMobDead") < 7) {
setarray .@n, 107,152,109,135,113,116,157,107,163,133,149,156;
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
monster "que_q"+.@sub$,.@n[.@i],.@n[.@i+1],"Ball of Piamette",1738,1,"#gd_"+.@sub$+"_mobctrl::OnMyMobDead";
}
end;
@@ -1510,18 +1508,18 @@ que_qsch05,1,8,0 duplicate(#gd_main_mobctrl) #gd_sch05_mobctrl CLEAR_NPC
- script windpaths_main -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (compare(strnpcinfo(0),"windpath03")) {
warp "que_q"+.@sub$,119,103;
} else {
warp "que_q"+.@sub$,146,109;
}
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "windpath03_"+.@sub$;
disablenpc "windpath04_"+.@sub$;
end;
@@ -1550,60 +1548,60 @@ que_qsch05,128,104,0 duplicate(windpaths_main) windpath04_sch05 WARPNPC,1,1
- script #nm_switch_main -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#nm_switch_"+.@sub$;
initnpctimer;
end;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "#nm_switch_"+.@sub$;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#nm_switch_"+.@sub$;
stopnpctimer;
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: Did you have a good time with Piamette?",bc_map,"0x00ff00";
end;
OnTimer4000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: But it's the end. There will be summoned monsters coming soon...",bc_map,"0x00ff00";
end;
OnTimer9000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden: So come here to me safely...",bc_map,"0x00ff00";
end;
OnTimer10000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#nmsom"+.@sub$+"_jin01::OnEnable";
donpcevent "#"+.@sub$+"_stone01::OnEnable";
end;
OnTimer190000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#nmsom"+.@sub$+"_jin02::OnEnable";
donpcevent "#"+.@sub$+"_stone02::OnEnable";
end;
OnTimer370000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#nmsom"+.@sub$+"_jin03::OnEnable";
donpcevent "#"+.@sub$+"_stone03::OnEnable";
stopnpctimer;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#nm_switch_"+.@sub$;
end;
}
@@ -1620,22 +1618,22 @@ que_qsch05,253,273,0 duplicate(#nm_switch_main) #nm_switch_sch05 -1,5,5
- script #nmsommain_jin01 -1,{
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#"+.@sub$+"_stone01::OnEnable";
initnpctimer;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#nmsom"+.@sub$+"_jin01::OnMyMobDead";
stopnpctimer;
end;
OnTimer5000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 226,288,227,289,228,290,229,291,230,292,231,293,232,294,233,295,234,296,235,297,228,286,229,287,230,288,231,289,232,290,233,291,234,292,235,293,236,294,237,295,230,284,231,285,232,286,233,287,234,288,235,289,236,290,237,291,238,292,239,293;
mapannounce "que_q"+.@sub$,"The Western magic formation is working to summon Guard of Shadow.",bc_map,"0x4d4dff";
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Guard of Shadow",1752,1,"#nmsom"+.@sub$+"_jin01::OnMyMobDead";
end;
@@ -1643,9 +1641,9 @@ OnTimer25000:
OnTimer55000:
OnTimer85000:
OnTimer120000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy2, 226,294,227,294,228,294,229,294,230,295,231,296,231,297,231,298,231,299,230,300,229,301,228,301,227,301,226,301,225,300,224,299,224,298,224,297,224,296,225,295;
- for (set .@i, 0; .@i < getarraysize(.@xy2); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy2); .@i += 2)
monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Guard of Shadow",1752,1,"#nmsom"+.@sub$+"_jin01::OnMyMobDead";
end;
@@ -1669,21 +1667,21 @@ que_qsch05,229,297,0 duplicate(#nmsommain_jin01) #nmsomsch05_jin01 -1
- script #main_stone01 -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 227,294,229,294,231,296,231,298,230,300,228,301,226,301,224,299,224,297,225,295;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Western Magic Guardian",1752,1,"#"+.@sub$+"_stone01::OnMyMobDead";
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#"+.@sub$+"_stone01::OnMyMobDead";
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (mobcount("que_q"+.@sub$,"#"+.@sub$+"_stone01::OnMyMobDead") == 0) {
setd "$@gqse_"+.@sub$+"_nm",getd("$@gqse_"+.@sub$+"_nm")+1;
donpcevent "#nmsom"+.@sub$+"_jin01::OnDisable";
@@ -1710,16 +1708,16 @@ OnEnable:
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#nmsom"+.@sub$+"_jin02::OnMyMobDead";
stopnpctimer;
end;
OnTimer5000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"The Eastern magic formation is working to summon Bloody Hunter.",bc_map,"0x4d4dff";
setarray .@xy, 263,292,264,291,265,290,266,289,267,288,268,287,269,286,270,285,271,284,272,283,265,294,266,293,267,292,268,291,269,290,270,289,271,288,272,287,273,286,274,285,267,296,268,295,269,294,270,283,271,282,272,281,273,280,274,279,275,276,276,275;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Bloody Hunter",1753,1,"#nmsom"+.@sub$+"_jin02::OnMyMobDead";
end;
@@ -1727,9 +1725,9 @@ OnTimer25000:
OnTimer55000:
OnTimer85000:
OnTimer120000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy2, 274,301,275,301,276,301,277,301,278,300,279,299,279,298,279,297,279,296,278,295,277,294,276,294,275,294,274,294,273,295,272,296,272,297,272,298,272,299,273,300;
- for (set .@i, 0; .@i < getarraysize(.@xy2); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy2); .@i += 2)
monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Bloody Hunter",1753,1,"#nmsom"+.@sub$+"_jin02::OnMyMobDead";
end;
@@ -1753,21 +1751,21 @@ que_qsch05,275,299,0 duplicate(#nmsommain_jin02) #nmsomsch05_jin02 -1
- script #main_stone02 -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 275,301,277,301,279,299,279,297,278,295,276,294,274,294,272,296,272,298,273,300;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Eastern Magic Guardian",1753,1,"#"+.@sub$+"_stone02::OnMyMobDead";
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#"+.@sub$+"_stone02::OnMyMobDead";
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (mobcount("que_q"+.@sub$,"#"+.@sub$+"_stone02::OnMyMobDead") == 0) {
setd "$@gqse_"+.@sub$+"_nm",getd("$@gqse_"+.@sub$+"_nm")+1;
donpcevent "#nmsom"+.@sub$+"_jin02::OnDisable";
@@ -1794,37 +1792,37 @@ OnEnable:
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#nmsom"+.@sub$+"_jin03::OnMyMobDead";
stopnpctimer;
end;
OnTimer5000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"The Northern magic formation is working to summon Keeper of the Temple.",bc_map,"0x4d4dff";
setarray .@xy, 247,329,249,329,251,329,253,329,255,329,243,339,245,337,247,335,247,333,254,333,256,335,258,337,260,339;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Keeper Of The Temple",1933,1,"#nmsom"+.@sub$+"_jin03::OnMyMobDead";
end;
OnTimer120000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy2, 251,343,252,343,255,341,255,340,254,337,253,336,250,336,249,337,248,340,248,341;
- for (set .@i, 0; .@i < getarraysize(.@xy2); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy2); .@i += 2)
monster "que_q"+.@sub$,.@xy2[.@i],.@xy2[.@i+1],"Keeper Of The Temple",1933,1,"#nmsom"+.@sub$+"_jin03::OnMyMobDead";
end;
OnTimer240000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy3, 250,343,252,343,254,342,255,340,255,338,253,336,250,336,248,338,248,340,249,342;
- for (set .@i, 0; .@i < getarraysize(.@xy3); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy3); .@i += 2)
monster "que_q"+.@sub$,.@xy3[.@i],.@xy3[.@i+1],"Keeper Of The Temple",1933,1,"#nmsom"+.@sub$+"_jin03::OnMyMobDead";
end;
OnTimer360000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy4, 250,343,252,343,254,342,255,340,255,338,253,336,251,336,249,337,248,339,248,341;
- for (set .@i, 0; .@i < getarraysize(.@xy4); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy4); .@i += 2)
monster "que_q"+.@sub$,.@xy4[.@i],.@xy4[.@i+1],"Keeper Of The Temple",1933,1,"#nmsom"+.@sub$+"_jin03::OnMyMobDead";
stopnpctimer;
end;
@@ -1845,25 +1843,24 @@ que_qsch05,251,340,0 duplicate(#nmsommain_jin03) #nmsomsch05_jin03 -1
- script #main_stone03 -1,{
end;
-
+
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setarray .@xy, 251,343,252,343,255,341,255,340,254,337,253,336,250,336,249,337,248,340,248,341;
- for (set .@i, 0; .@i < getarraysize(.@xy); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@xy); .@i += 2)
monster "que_q"+.@sub$,.@xy[.@i],.@xy[.@i+1],"Northern Magic Guardian",1933,1,"#"+.@sub$+"_stone03::OnMyMobDead";
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"#"+.@sub$+"_stone03::OnMyMobDead";
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (mobcount("que_q"+.@sub$,"#"+.@sub$+"_stone03::OnMyMobDead") == 0) {
setd "$@gqse_"+.@sub$+"_nm",getd("$@gqse_"+.@sub$+"_nm")+1;
donpcevent "#nmsom"+.@sub$+"_jin03::OnDisable";
-
if (getd("$@gqse_"+.@sub$+"_nm") == 3) {
donpcevent "Wish Maiden#"+.@sub$+"_boss::OnFight";
}
@@ -1883,10 +1880,9 @@ que_qsch05,2,10,0 duplicate(#main_stone03) #sch05_stone03 CLEAR_NPC
- script Guard of Shadow#main_all -1,{
end;
-
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
disablenpc "Guard of Shadow#"+.@sub$+"_0"+.@in;
switch (.@in) {
case 1: setarray .@n, 234,284,235,285,236,286; break;
@@ -1894,23 +1890,23 @@ OnTouch:
case 3: setarray .@n, 235,295,236,296,237,297; break;
case 4: setarray .@n, 224,302,225,303,226,304; break;
}
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
monster "que_q"+.@sub$,.@n[.@i],.@n[.@i+1],"Guard of Shadow",1752,1,"Guard of Shadow#"+.@sub$+"_0"+.@in+"::OnMyMobDead";
end;
-
+
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
killmonster "que_q"+.@sub$,"Guard of Shadow#"+.@sub$+"_0"+.@in+"::OnMyMobDead";
disablenpc "Guard of Shadow#"+.@sub$+"_0"+.@in;
end;
OnMyMobDead:
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 4; ++.@i)
disablenpc "Guard of Shadow#"+.@sub$+"_0"+.@i;
end;
}
@@ -1957,10 +1953,10 @@ que_qsch05,225,303,5 duplicate(Guard of Shadow#main_all) Guard of Shadow#sch05_0
- script Bloody Hunter#main_all -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
disablenpc "Bloody Hunter#"+.@sub$+"_ac0"+.@in;
switch (.@in) {
case 1: setarray .@n, 265,297,266,296,267,295;
@@ -1968,23 +1964,23 @@ OnTouch:
case 3: setarray .@n, 269,308,270,307,271,306;
case 4: setarray .@n, 278,301,279,300,280,299;
}
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
monster "que_q"+.@sub$,.@n[.@i],.@n[.@i+1],"Bloody Hunter",1753,1,"Bloody Hunter#"+.@sub$+"_ac0"+.@in+"::OnMyMobDead";
end;
-
+
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
killmonster "que_q"+.@sub$,"Bloody Hunter#"+.@sub$+"_ac0"+.@in+"::OnMyMobDead";
disablenpc "Bloody Hunter#"+.@sub$+"_ac0"+.@in;
end;
OnMyMobDead:
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 4; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 4; ++.@i)
disablenpc "Bloody Hunter#"+.@sub$+"_ac0"+.@i;
end;
}
@@ -2031,22 +2027,22 @@ que_qsch05,279,300,3 duplicate(Bloody Hunter#main_all) Bloody Hunter#sch05_ac04
- script Temple Keeper#main_all -1,{
end;
-
+
OnTouch:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
disablenpc "Temple Keeper#"+.@sub$+"_ac0"+.@in;
switch (.@in) {
case 1: setarray .@n, 246,330,247,330,248,330; break;
case 2: setarray .@n, 254,330,255,330,256,330; break;
}
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
monster "que_q"+.@sub$,.@n[.@i],.@n[.@i+1],"Keeper Of The Temple",1933,1,"Temple Keeper#"+.@sub$+"_ac0"+.@in+"::OnMyMobDead";
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
- set .@in, charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@in = charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1);
killmonster "que_q"+.@sub$,"Temple Keeper#"+.@sub$+"_ac0"+.@in+"::OnMyMobDead";
disablenpc "Temple Keeper#"+.@sub$+"_ac0"+.@in;
end;
@@ -2055,8 +2051,8 @@ OnMyMobDead:
end;
OnInit:
- set .@sub$,callfunc("F_Okolnir");
- for (set .@i, 1; .@i <= 2; set .@i, .@i + 1)
+ .@sub$ = callfunc("F_Okolnir");
+ for (.@i = 1; .@i <= 2; ++.@i)
disablenpc "Temple Keeper#"+.@sub$+"_ac0"+.@i;
end;
}
@@ -2083,9 +2079,9 @@ que_qsch05,255,330,3 duplicate(Temple Keeper#main_all) Temple Keeper#sch05_ac02
- script Wish Maiden#main_boss -1,{
end;
-
+
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
killmonster "que_q"+.@sub$,"Wish Maiden#"+.@sub$+"_boss::OnMyMobDead";
hideonnpc "Wish Maiden#"+.@sub$+"_boss";
stopnpctimer;
@@ -2096,17 +2092,17 @@ OnFight:
end;
OnTimer1000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden : You guys reached here.. Are your guardians dead...?",bc_map,"0x00ff00";
end;
OnTimer4000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden : I sincerely welcome all your best efforts!",bc_map,"0x00ff00";
end;
OnTimer5000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
specialeffect EF_ICECRASH;
hideonnpc "Wish Maiden#"+.@sub$+"_boss";
specialeffect EF_SPHERE;
@@ -2115,16 +2111,16 @@ OnTimer5000:
end;
OnMyMobDead:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (!mobcount("que_q"+.@sub$,"Wish Maiden#"+.@sub$+"_boss::OnMyMobDead")) {
donpcevent "#okolnir_"+.@sub$+"::OnStop";
donpcevent "Wish Maiden#"+.@sub$+"_gift::OnEnable";
mapannounce "que_q"+.@sub$,"Wish Maiden : ..Good, you deserve the Goddess' shine.",bc_map,"0x00ff00";
}
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
hideonnpc "Wish Maiden#"+.@sub$+"_boss";
end;
}
@@ -2140,21 +2136,21 @@ que_qsch04,251,255,3 duplicate(Wish Maiden#main_boss) Wish Maiden#sch04_boss WIS
que_qsch05,251,255,3 duplicate(Wish Maiden#main_boss) Wish Maiden#sch05_boss WISH_MAIDEN
- script Wish Maiden#main_gift -1,{
- set .@sub$,callfunc("F_Okolnir");
- set .@t$, ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
- set .@GID, getcastledata(.@t$,1);
+ .@sub$ = callfunc("F_Okolnir");
+ .@t$ = ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
+ .@GID = getcastledata(.@t$,1);
if (getcharid(2) == .@GID) {
if (strcharinfo(0) == getguildmaster(.@GID)) {
if (compare(.@sub$,"aru")) {
setarray .@n, 7835,1,7836,1,7837,1,7838,1,2513,1,7291,10,7293,10,7063,100,985,20;
- set .@rwd, 2541; //Asprika
+ .@rwd = 2541; //Asprika
} else {
setarray .@n, 7830,1,7831,1,7832,1,7833,1,7834,1,2357,1,7510,100,969,10,985,20;
- set .@rwd, 2383; //Brynhild
+ .@rwd = 2383; //Brynhild
}
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2) {
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2) {
if (countitem(.@n[.@i]) >= .@n[.@i+1])
- set .@check, .@check + 1;
+ .@check += 1;
}
if (.@check >= 9) {
cutin "wish_maiden12",1;
@@ -2176,7 +2172,7 @@ que_qsch05,251,255,3 duplicate(Wish Maiden#main_boss) Wish Maiden#sch05_boss WIS
mes "[Wish Maiden]";
mes "I will open the gate for you to come back here.";
mes "...Okolnir won't last forever...";
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
delitem .@n[.@i],.@n[.@i+1];
getitem .@rwd,1;
getitem 7840,1; //Valkyrie_Gift
@@ -2218,30 +2214,30 @@ que_qsch05,251,255,3 duplicate(Wish Maiden#main_boss) Wish Maiden#sch05_boss WIS
end;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
enablenpc "Wish Maiden#"+.@sub$+"_gift";
initnpctimer;
end;
OnDisable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "Wish Maiden#"+.@sub$+"_gift";
stopnpctimer;
end;
OnTimer280000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapannounce "que_q"+.@sub$,"Wish Maiden : ... Okolnir will soon disappear... I will send you back to where you originally came from.",bc_map,"0x00ff00";
end;
OnTimer290000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
mapwarp "que_q"+.@sub$,.@t$,157,369;
donpcevent "#to_agit_"+.@sub$+"_gate::OnDisable";
end;
OnTimer300000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
donpcevent "#okolnir_"+.@sub$+"::OnDisable";
setd "$@gqse_"+.@sub$+"_miro",0;
setd "$@gqse_"+.@sub$+"_pcc",0;
@@ -2251,9 +2247,9 @@ OnTimer300000:
donpcevent "#okolnir_"+.@sub$+"_time01::OnEnable";
stopnpctimer;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "Wish Maiden#"+.@sub$+"_gift";
end;
}
@@ -2270,14 +2266,14 @@ que_qsch05,252,340,3 duplicate(Wish Maiden#main_gift) Wish Maiden#sch05_gift 4_F
- script #to_agit_main_gate -1,{
end;
-
+
OnTouch:
- set .@t$, ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
+ .@t$ = ((compare(strnpcinfo(4),"aru"))?"arug_cas0":"schg_cas0")+(charat(strnpcinfo(4),getstrlen(strnpcinfo(4))-1));
warp .@t$,157,369;
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
disablenpc "#to_agit_"+.@sub$+"_gate";
end;
}
@@ -2296,20 +2292,20 @@ que_qsch05,252,339,0 duplicate(#to_agit_main_gate) #to_agit_sch05_gate WARPNPC,1
end;
OnEnable:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setd "$gqse_"+.@sub$+"_time",0;
initnpctimer;
end;
OnReset:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
setd "$siz_"+.@sub$+"_on",0;
setd "$gqse_"+.@sub$+"_time",0;
stopnpctimer;
end;
OnTimer3600000:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (getd("$gqse_"+.@sub$+"_time") < 12) {
setd "$gqse_"+.@sub$+"_time",getd("$gqse_"+.@sub$+"_time")+1;
initnpctimer;
@@ -2323,9 +2319,9 @@ OnTimer3600000:
stopnpctimer;
}
end;
-
+
OnInit:
- set .@sub$,callfunc("F_Okolnir");
+ .@sub$ = callfunc("F_Okolnir");
if (getd("$siz_"+.@sub$+"_on") == 2) initnpctimer;
end;
}
diff --git a/npc/quests/partyrelay.txt b/npc/quests/partyrelay.txt
index 876fb735d..f7482ec65 100644
--- a/npc/quests/partyrelay.txt
+++ b/npc/quests/partyrelay.txt
@@ -15,8 +15,8 @@
payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
- set .@partyleader,getpartyleader(getcharid(1),2);
+ .@partymembercount = $@partymembercount;
+ .@partyleader = getpartyleader(getcharid(1),2);
if (checkweight(907,300) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -57,9 +57,9 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
mes "accomplishment. Here...";
mes "You deserve a real reward!";
next;
- set .@present,rand(1,7);
+ .@present = rand(1,7);
delitem 7741,1; //Mission_Certificate12
- set party_relay,0;
+ party_relay = 0;
getitem 644,6; //Gift_Box
getitem 603,3; //Old_Blue_Box
if (.@present == 2) {
@@ -126,7 +126,7 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
mes "effort thus far, and the";
mes "nineth ticket for your guild.";
delitem 7737,1; //Mission_Certificate8
- set party_relay,23;
+ party_relay = 23;
getitem 603,3; //Old_Blue_Box
getitem 617,1; //Old_Violet_Box
getitem 7738,1; //Mission_Certificate9
@@ -175,7 +175,7 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
mes "Class character, and tell";
mes "him to bring it to Gatan.";
delitem 7733,1; //Mission_Certificate4
- set party_relay,12;
+ party_relay = 12;
getitem 644,3; //Gift_Box
getitem 603,1; //Old_Blue_Box
getitem 7734,1; //Mission_Certificate5
@@ -240,7 +240,7 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
mes "ask him to bring it to Gatan.";
mes "The relay has started~";
next;
- set party_relay,2;
+ party_relay = 2;
getitem 7730,1; //Mission_Certificate1
mes "[Ledrion]";
mes "Now, since you're the";
@@ -352,7 +352,7 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
mes "me give you your first";
mes "set of instructions.";
next;
- set party_relay,1;
+ party_relay = 1;
mes "[Ledrion]";
mes "Just--^666666*Cough!*^000000";
mes "Lemme clear my";
@@ -383,8 +383,8 @@ payon,103,113,3 script Ledrion#payon::RelayLedrion 4_M_MANAGER,{
payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
- set .@partyleader,getpartyleader(getcharid(1),2);
+ .@partymembercount = $@partymembercount;
+ .@partyleader = getpartyleader(getcharid(1),2);
if (checkweight(907,300) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -401,7 +401,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "instructions, didn't you?";
close;
}
- set .@relaytime,gettime(3);
+ .@relaytime = gettime(3);
if (party_relay == 28) {
mes "[Gatan]";
mes "Say, I don't think it's";
@@ -420,7 +420,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "of your group, and ask him";
mes "to bring it to Bafhail. Ah, and";
mes "here's a little reward for you~";
- set party_relay,28;
+ party_relay = 28;
getitem 7739,1; //Mission_Certificate10
getitem 610,2; //Leaf_Of_Yggdrasil
getitem 607,2; //Yggdrasilberry
@@ -439,7 +439,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
else if ((party_relay == 26) && (BaseLevel > (party_relay_lv + 2)) && (.@relaytime >= 18) && (.@relaytime < 21)) {
@@ -450,7 +450,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
if (party_relay == 26) {
@@ -478,7 +478,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
else if ((party_relay == 25) && (BaseLevel > (party_relay_lv + 1)) && (.@relaytime >= 18) && (.@relaytime < 21)) {
@@ -489,7 +489,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
if (party_relay == 25) {
@@ -517,7 +517,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
else if ((party_relay == 24) && (BaseLevel > party_relay_lv) && (.@relaytime >= 18) && (.@relaytime < 21)) {
@@ -528,7 +528,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,27;
+ party_relay = 27;
close;
}
if (party_relay == 24) {
@@ -573,7 +573,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,27;
+ party_relay = 27;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -590,8 +590,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,24;
- set party_relay_lv,BaseLevel;
+ party_relay = 24;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -609,8 +609,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,24;
- set party_relay_lv,BaseLevel;
+ party_relay = 24;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -628,8 +628,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,25;
- set party_relay_lv,BaseLevel;
+ party_relay = 25;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -647,8 +647,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,25;
- set party_relay_lv,BaseLevel;
+ party_relay = 25;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -666,8 +666,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,26;
- set party_relay_lv,BaseLevel;
+ party_relay = 26;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -685,8 +685,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,26;
- set party_relay_lv,BaseLevel;
+ party_relay = 26;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -721,7 +721,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,27;
+ party_relay = 27;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -738,8 +738,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,24;
- set party_relay_lv,BaseLevel;
+ party_relay = 24;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -757,8 +757,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,24;
- set party_relay_lv,BaseLevel;
+ party_relay = 24;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -776,8 +776,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,25;
- set party_relay_lv,BaseLevel;
+ party_relay = 25;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -795,8 +795,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,25;
- set party_relay_lv,BaseLevel;
+ party_relay = 25;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -814,8 +814,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,26;
- set party_relay_lv,BaseLevel;
+ party_relay = 26;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -833,8 +833,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7738,1; //Mission_Certificate9
- set party_relay,26;
- set party_relay_lv,BaseLevel;
+ party_relay = 26;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -886,7 +886,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "of your group, and ask him";
mes "to bring it to Bafhail. Ah, and";
mes "here's a little reward for you~";
- set party_relay,17;
+ party_relay = 17;
getitem 7735,1; //Mission_Certificate6
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -904,7 +904,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
else if ((party_relay == 15) && (BaseLevel > (party_relay_lv + 2)) && (.@relaytime >= 21) && (.@relaytime < 1)) {
@@ -915,7 +915,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
if (party_relay == 15) {
@@ -943,7 +943,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
else if ((party_relay == 14) && (BaseLevel > (party_relay_lv + 1)) && (.@relaytime >= 21)) {
@@ -954,7 +954,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
if (party_relay == 14) {
@@ -982,7 +982,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
else if ((party_relay == 13) && (BaseLevel > party_relay_lv) && (.@relaytime >= 21)) {
@@ -993,7 +993,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "I left it around somewhere--";
mes "and I'll give you your next set";
mes "of instructions. Hang on...";
- set party_relay,16;
+ party_relay = 16;
close;
}
if (party_relay == 13) {
@@ -1038,7 +1038,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,16;
+ party_relay = 16;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -1055,8 +1055,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,13;
- set party_relay_lv,BaseLevel;
+ party_relay = 13;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1074,8 +1074,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,13;
- set party_relay_lv,BaseLevel;
+ party_relay = 13;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1093,8 +1093,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,14;
- set party_relay_lv,BaseLevel;
+ party_relay = 14;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1112,8 +1112,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,14;
- set party_relay_lv,BaseLevel;
+ party_relay = 14;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1131,8 +1131,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,15;
- set party_relay_lv,BaseLevel;
+ party_relay = 15;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1150,8 +1150,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,15;
- set party_relay_lv,BaseLevel;
+ party_relay = 15;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1186,7 +1186,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,16;
+ party_relay = 16;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -1203,8 +1203,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,13;
- set party_relay_lv,BaseLevel;
+ party_relay = 13;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1222,8 +1222,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,13;
- set party_relay_lv,BaseLevel;
+ party_relay = 13;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1241,8 +1241,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,14;
- set party_relay_lv,BaseLevel;
+ party_relay = 14;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1260,8 +1260,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,14;
- set party_relay_lv,BaseLevel;
+ party_relay = 14;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1279,8 +1279,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,15;
- set party_relay_lv,BaseLevel;
+ party_relay = 15;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1298,8 +1298,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7734,1; //Mission_Certificate5
- set party_relay,15;
- set party_relay_lv,BaseLevel;
+ party_relay = 15;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1357,7 +1357,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just a little";
mes "something for";
mes "your troubles~";
- set party_relay,6;
+ party_relay = 6;
getitem 7731,1; //Mission_Certificate2
getitem 607,2; //Yggdrasilberry
callfunc "F_PartyRelay_Exp";
@@ -1378,7 +1378,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
else if ((party_relay == 4) && (BaseLevel > (party_relay_lv + 2)) && ((.@relaytime >= 0) && (.@relaytime < 3))) {
@@ -1389,7 +1389,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
if (party_relay == 4) {
@@ -1417,7 +1417,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
else if ((party_relay == 3) && (BaseLevel > (party_relay_lv + 1)) && ((.@relaytime >= 0) && (.@relaytime < 3))) {
@@ -1428,7 +1428,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
if (party_relay == 3) {
@@ -1456,7 +1456,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
else if ((party_relay == 99) && (BaseLevel > party_relay_lv) && ((.@relaytime >= 0) && (.@relaytime < 3))) {
@@ -1467,7 +1467,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "sees them. Now, you mind";
mes "waiting a bit? Um, there's";
mes "something I have to give you...";
- set party_relay,5;
+ party_relay = 5;
close;
}
if (party_relay == 99) {
@@ -1513,7 +1513,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,5;
+ party_relay = 5;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -1530,8 +1530,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,99;
- set party_relay_lv,BaseLevel;
+ party_relay = 99;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1549,8 +1549,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,99;
- set party_relay_lv,BaseLevel;
+ party_relay = 99;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1568,8 +1568,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,3;
- set party_relay_lv,BaseLevel;
+ party_relay = 3;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1587,8 +1587,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,3;
- set party_relay_lv,BaseLevel;
+ party_relay = 3;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1606,8 +1606,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,4;
- set party_relay_lv,BaseLevel;
+ party_relay = 4;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1625,8 +1625,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,4;
- set party_relay_lv,BaseLevel;
+ party_relay = 4;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1662,7 +1662,7 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Just don't tell anyone!";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,5;
+ party_relay = 5;
mes "[Gatan]";
mes "Hold on a second...";
mes "I'm supposed to tell";
@@ -1679,8 +1679,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,99;
- set party_relay_lv,BaseLevel;
+ party_relay = 99;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1698,8 +1698,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,99;
- set party_relay_lv,BaseLevel;
+ party_relay = 99;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1717,8 +1717,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,3;
- set party_relay_lv,BaseLevel;
+ party_relay = 3;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1736,8 +1736,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "and do that, alright?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,3;
- set party_relay_lv,BaseLevel;
+ party_relay = 3;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1755,8 +1755,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,4;
- set party_relay_lv,BaseLevel;
+ party_relay = 4;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll go ahead and take";
mes "your ticket now. Come";
@@ -1774,8 +1774,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
mes "Levels for me, okay?";
next;
delitem 7730,1; //Mission_Certificate1
- set party_relay,4;
- set party_relay_lv,BaseLevel;
+ party_relay = 4;
+ party_relay_lv = BaseLevel;
mes "[Gatan]";
mes "I'll keep your ticket.";
mes "When you're finished, please come back.";
@@ -1818,8 +1818,8 @@ payon,83,327,3 script Gatan#payon::RelayGatan 4_M_04,{
payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
- set .@partyleader,getpartyleader(getcharid(1),2);
+ .@partymembercount = $@partymembercount;
+ .@partyleader = getpartyleader(getcharid(1),2);
if (checkweight(907,300) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -1837,7 +1837,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "with any of the other guys?";
close;
}
- set .@relaytime,gettime(3);
+ .@relaytime = gettime(3);
if (party_relay == 30) {
mes "[Bafhail]";
mes "Did you give that ticket";
@@ -1858,7 +1858,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1012,20; //Lizard_Scruff
delitem 1048,20; //Slender_Snake
delitem 7003,20; //Anolian_Skin
- set party_relay,30;
+ party_relay = 30;
getitem 7740,1; //Mission_Certificate11
getitem 610,2; //Leaf_Of_Yggdrasil
getitem 607,2; //Yggdrasilberry
@@ -1883,7 +1883,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1012,20; //Lizard_Scruff
delitem 1048,20; //Slender_Snake
delitem 7003,20; //Anolian_Skin
- set party_relay,30;
+ party_relay = 30;
getitem 7740,1; //Mission_Certificate11
getitem 610,2; //Leaf_Of_Yggdrasil
getitem 607,2; //Yggdrasilberry
@@ -1931,7 +1931,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF20 Horrendous Hairs^000000.";
next;
delitem 7739,1; //Mission_Certificate10
- set party_relay,29;
+ party_relay = 29;
mes "[Bafhail]";
mes "Understood?";
mes "Alright then, if you'll";
@@ -1958,7 +1958,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF20 Horrendous Hairs^000000.";
next;
delitem 7739,1; //Mission_Certificate10
- set party_relay,29;
+ party_relay = 29;
mes "[Bafhail]";
mes "Understood?";
mes "Understood?";
@@ -2006,7 +2006,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1015,10; //Thin_N'_Long_Tongue
delitem 7172,10; //Leopard_Talon
delitem 7155,10; //Poison_Toad's_Skin
- set party_relay,20;
+ party_relay = 20;
getitem 7736,1; //Mission_Certificate7
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2030,7 +2030,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1015,10; //Thin_N'_Long_Tongue
delitem 7172,10; //Leopard_Talon
delitem 7155,10; //Poison_Toad's_Skin
- set party_relay,20;
+ party_relay = 20;
getitem 7736,1; //Mission_Certificate7
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2072,7 +2072,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 7157,10; //Black_Mask
delitem 1021,10; //Dokkaebi_Horn
delitem 7101,10; //Peco_Wing_Feather
- set party_relay,20;
+ party_relay = 20;
getitem 7736,1; //Mission_Certificate7
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2096,7 +2096,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 7157,10; //Black_Mask
delitem 1021,10; //Dokkaebi_Horn
delitem 7101,10; //Peco_Wing_Feather
- set party_relay,20;
+ party_relay = 20;
getitem 7736,1; //Mission_Certificate7
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2156,7 +2156,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF10 PecoPeco Feathers^000000.";
next;
delitem 7735,1; //Mission_Certificate6
- set party_relay,18;
+ party_relay = 18;
mes "[Bafhail]";
mes "Understood?";
mes "Alright then, if you'll";
@@ -2188,7 +2188,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF10 Poisonous Toad Skins^000000.";
next;
delitem 7735,1; //Mission_Certificate6
- set party_relay,19;
+ party_relay = 19;
mes "[Bafhail]";
mes "Understood?";
mes "Alright then, if you'll";
@@ -2236,7 +2236,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 7196,10; //Shoulder_Protection
delitem 7189,10; //Heart_Of_Tree
delitem 920,10; //Claw_Of_Wolves
- set party_relay,9;
+ party_relay = 9;
getitem 7732,1; //Mission_Certificate3
getitem 607,2; //Yggdrasilberry
callfunc "F_PartyRelay_Exp";
@@ -2259,7 +2259,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 7196,10; //Shoulder_Protection
delitem 7189,10; //Heart_Of_Tree
delitem 920,10; //Claw_Of_Wolves
- set party_relay,9;
+ party_relay = 9;
getitem 7732,1; //Mission_Certificate3
getitem 607,2; //Yggdrasilberry
callfunc "F_PartyRelay_Exp";
@@ -2301,7 +2301,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1027,10; //Porcupine_Spike
delitem 1040,10; //Elder_Pixie's_Beard
delitem 1023,10; //Fish_Tail
- set party_relay,9;
+ party_relay = 9;
getitem 7732,1; //Mission_Certificate3
mes "[Bafhail]";
mes "Please give that";
@@ -2323,7 +2323,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
delitem 1027,10; //Porcupine_Spike
delitem 1040,10; //Elder_Pixie's_Beard
delitem 1023,10; //Fish_Tail
- set party_relay,9;
+ party_relay = 9;
getitem 7732,1; //Mission_Certificate3
mes "[Bafhail]";
mes "Please give that";
@@ -2373,7 +2373,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF10 Shoulder Protectors^000000";
next;
delitem 7731,1; //Mission_Certificate2
- set party_relay,8;
+ party_relay = 8;
mes "[Bafhail]";
mes "Remember that I won't";
mes "accept your items, even";
@@ -2405,7 +2405,7 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
mes "^4D4DFF10 Elder Pixie's Moustaches^000000";
next;
delitem 7731,1; //Mission_Certificate2
- set party_relay,7;
+ party_relay = 7;
mes "[Bafhail]";
mes "Remember that I won't";
mes "accept your items, even";
@@ -2451,8 +2451,8 @@ payon,204,221,3 script Bafhail#payon::RelayBafhail 4_M_JOB_BLACKSMITH,{
payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
- set .@partyleader,getpartyleader(getcharid(1),2);
+ .@partymembercount = $@partymembercount;
+ .@partyleader = getpartyleader(getcharid(1),2);
if (checkweight(907,300) == 0) {
mes "^3355FFWait a minute! You're";
mes "carrying too many items";
@@ -2471,9 +2471,9 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "have to meet either, but...";
close;
}
- set .@relaytime,gettime(3);
+ .@relaytime = gettime(3);
getmapxy(.@m$,.@x,.@y,1,strnpcinfo(3));
- set .@juwi,getareausers(.@m$,.@x-8,.@y-8,.@x+8,.@y+8);
+ .@juwi = getareausers(.@m$,.@x-8,.@y-8,.@x+8,.@y+8);
if (party_relay == 32) {
mes "[Lospii]";
mes "Hey! Did you give";
@@ -2498,7 +2498,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,32;
+ party_relay = 32;
getitem 7741,1; //Mission_Certificate12
getitem 610,2; //Leaf_Of_Yggdrasil
getitem 607,2; //Yggdrasilberry
@@ -2535,7 +2535,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,32;
+ party_relay = 32;
getitem 7741,1; //Mission_Certificate12
getitem 610,2; //Leaf_Of_Yggdrasil
getitem 607,2; //Yggdrasilberry
@@ -2599,7 +2599,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7740,1; //Mission_Certificate11
- set party_relay,31;
+ party_relay = 31;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
@@ -2640,7 +2640,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7740,1; //Mission_Certificate11
- set party_relay,31;
+ party_relay = 31;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
@@ -2697,7 +2697,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,22;
+ party_relay = 22;
getitem 7737,1; //Mission_Certificate8
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2733,7 +2733,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,22;
+ party_relay = 22;
getitem 7737,1; //Mission_Certificate8
getitem 610,2; //Leaf_Of_Yggdrasil
callfunc "F_PartyRelay_Exp";
@@ -2796,7 +2796,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7736,1; //Mission_Certificate7
- set party_relay,21;
+ party_relay = 21;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
@@ -2837,7 +2837,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7736,1; //Mission_Certificate7
- set party_relay,21;
+ party_relay = 21;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
@@ -2894,7 +2894,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,11;
+ party_relay = 11;
getitem 7733,1; //Mission_Certificate4
getitem 607,2; //Yggdrasilberry
callfunc "F_PartyRelay_Exp";
@@ -2930,7 +2930,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "For that, you get this";
mes "gift from me. Cool, huh?";
next;
- set party_relay,11;
+ party_relay = 11;
getitem 7733,1; //Mission_Certificate4
getitem 607,2; //Yggdrasilberry
callfunc "F_PartyRelay_Exp";
@@ -2993,7 +2993,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7732,1; //Mission_Certificate3
- set party_relay,10;
+ party_relay = 10;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
@@ -3034,7 +3034,7 @@ payon,168,314,3 script Lospii#payon::RelayLospii 4_M_KID1,{
mes "friends, not some other guys.";
next;
delitem 7732,1; //Mission_Certificate3
- set party_relay,10;
+ party_relay = 10;
mes "[Lospii]";
mes "Okay, I'll be right";
mes "here! Oh! And you have";
diff --git a/npc/quests/quests_13_1.txt b/npc/quests/quests_13_1.txt
index 16860ddf2..7bed6a624 100644
--- a/npc/quests/quests_13_1.txt
+++ b/npc/quests/quests_13_1.txt
@@ -158,7 +158,7 @@ prt_castle,121,51,3 script Alliance Manager#prt 4_M_CRU_OLD,{
mes "Always be careful not to get lost.";
next;
changequest 10068,10069;
- set ep13_ryu,13;
+ ep13_ryu = 13;
mes "[Alliance Manager]";
mes "Thanks for reporting to us.";
mes "We are better prepared.";
@@ -267,7 +267,7 @@ prt_castle,83,67,5 script Recruiter for the Brave 4_M_MANAGER,{
mes "Remember, go to ^FF0000Lighthalzen^000000, then follow the directions of the guide there.";
next;
changequest 10064,10065;
- set ep13_ryu,9;
+ ep13_ryu = 9;
if (checkre(3))
getexp 66000,21000;
else
@@ -332,7 +332,7 @@ prt_castle,83,67,5 script Recruiter for the Brave 4_M_MANAGER,{
mes "They will take care of everything, if you say that you've been sent by the Recruiter in Prontera.";
next;
setquest 10057;
- set ep13_ryu,1;
+ ep13_ryu = 1;
mes "[Recruiter]";
mes "Time is zeny, just go.";
mes "As soon as you visit the Promotional Staff, you will be allowed to travel to the unknown land.";
@@ -402,7 +402,7 @@ aldebaran,127,138,3 script Promotional Staff#alde 4W_SAILOR,{
next;
delitem 909,300; //Jellopy
changequest 10058,10059;
- set ep13_ryu,3;
+ ep13_ryu = 3;
mes "[Promotional Staff]";
mes "Anyway you did the first step.";
mes "Bless you!";
@@ -440,7 +440,7 @@ aldebaran,127,138,3 script Promotional Staff#alde 4W_SAILOR,{
mes "Are you ready?";
next;
changequest 10057,10058;
- set ep13_ryu,2;
+ ep13_ryu = 2;
mes "[Promotional Staff]";
mes "Just go ahead and hunt monsters, or whatever and collect 300 jellopies.";
mes "Then we can go forward.";
@@ -497,7 +497,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
next;
delitem 723,1; //Cardinal_Jewel
changequest 10061,10062;
- set ep13_ryu,6;
+ ep13_ryu = 6;
mes "[Promotional Staff]";
mes "I hope you can do it!";
mes "Good luck!";
@@ -526,7 +526,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
next;
delitem 721,1; //Azure_Jewel
changequest 10060,10061;
- set ep13_ryu,5;
+ ep13_ryu = 5;
mes "[Promotional Staff]";
mes "Please bring me a Ruby.";
mes "As I mentioned, this is the second request.";
@@ -555,7 +555,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
mes "Are you ready?";
next;
changequest 10059,10060;
- set ep13_ryu,4;
+ ep13_ryu = 4;
mes "[Promotional Staff]";
mes "Just bring me ^ff00001 Emerald^000000.";
mes "That isn't hard for you right?";
@@ -625,7 +625,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
mes "job, friend!";
next;
changequest 10063,10064;
- set ep13_ryu,8;
+ ep13_ryu = 8;
mes "[Promotional Staff]";
mes "Bless all of your heart,";
mes "for your great future!";
@@ -670,7 +670,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
mes "Good job, friend!";
next;
changequest 10062,10064;
- set ep13_ryu,8;
+ ep13_ryu = 8;
mes "[Promotional Staff]";
mes "May Freya bless you,";
mes "for your great future!";
@@ -687,7 +687,7 @@ geffen,90,67,3 script Promotional Staff#gef 4W_SAILOR,{
mes "I can't let you pass.";
next;
changequest 10062,10063;
- set ep13_ryu,7;
+ ep13_ryu = 7;
mes "[Promotional Staff]";
mes "Please level up a little more. I";
mes "can't accept that you're strong";
@@ -833,7 +833,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "It would bear watching you.";
next;
changequest 10073,10074;
- set ep13_ryu,18;
+ ep13_ryu = 18;
mes "[Sikaiz]";
mes "See you then.";
close;
@@ -869,7 +869,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "You need to investigate and report to us as much as possible. That's not that tough.";
next;
changequest 10072,10073;
- set ep13_ryu,17;
+ ep13_ryu = 17;
mes "[Sikaiz]";
mes "Don't worry so much.";
mes "We will support you.";
@@ -905,7 +905,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "I feel like I am forcing you, but I hope to get your help. Go to the ^FF0000Cheshrumnir Guard^000000 in Rachel and deliver Munkenro's message for me.";
next;
changequest 10070,10071;
- set ep13_ryu,15;
+ ep13_ryu = 15;
mes "[Sikaiz]";
mes "It's the same mission you did for Rune-Midgarts, so it shouldn't be that hard. I hope you can do it.";
close;
@@ -959,7 +959,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "He is a kind of manager for Schwaltzvald and he is the main contact point of the kingdom's people, since he's quite closely in communication with them.";
next;
changequest 10069,10070;
- set ep13_ryu,14;
+ ep13_ryu = 14;
mes "[Sikaiz]";
mes "That's enough talk about the three kingdoms. Now, let's move on to the next stories.";
close;
@@ -984,7 +984,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "It's not that difficult. Just tell them to prepare for the trip to the Dimensional Rift. It's quite easy, isn't it?";
next;
changequest 10067,10068;
- set ep13_ryu,12;
+ ep13_ryu = 12;
mes "[Sikaiz]";
mes "We're running out of time, so I will answer you when you come back. Ok?";
close;
@@ -1059,7 +1059,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "Anyway, I told you about Ash-Vacuum. What I know about it all. Though you still don't know much about it, that's all I can tell you.";
next;
changequest 10066,10067;
- set ep13_ryu,11;
+ ep13_ryu = 11;
mes "[Sikaiz]";
mes "If you have any other questions, you can still ask me...";
close;
@@ -1086,7 +1086,7 @@ lhz_in01,132,259,5 script Sikaiz#1 4_M_LGTGUARD,{
mes "You all should be relaxed about completing this mission. If there are more adventurers to register, let them come to me.";
next;
changequest 10065,10066;
- set ep13_ryu,10;
+ ep13_ryu = 10;
mes "- The speech has ended. -";
mes "- Let's move on. -";
close;
@@ -1355,7 +1355,7 @@ ra_temple,119,113,3 script Alliance Manager#ra 4_M_TRAINEE,{
mes "We're all together for this mission now... They would sacrifice for Freya.";
next;
changequest 10071,10072;
- set ep13_ryu,16;
+ ep13_ryu = 16;
mes "[Manager]";
mes "Now you can go back.";
mes "Just say I received the report of the status well.";
@@ -1413,7 +1413,7 @@ lhz_in01,32,22,3 script Officer A 4_M_MANAGER,{
mes "...or whatever you do...";
next;
changequest 10075,10076;
- set ep13_ryu,20;
+ ep13_ryu = 20;
mes "[Officer A]";
mes "Just return there. Good job.";
close;
@@ -1469,7 +1469,7 @@ lhz_in01,32,22,3 script Officer A 4_M_MANAGER,{
mes "Let's talk about it later.";
next;
changequest 10074,10075;
- set ep13_ryu,19;
+ ep13_ryu = 19;
mes "[Officer B]";
mes "Um, what's your business?";
close;
@@ -1522,7 +1522,7 @@ lhz_in01,30,24,5 script Officer B 4_M_MANAGER,{
mes "...or whatever you do...";
next;
changequest 10075,10076;
- set ep13_ryu,20;
+ ep13_ryu = 20;
mes "[Officer A]";
mes "Just return there. Good job.";
close;
@@ -1578,7 +1578,7 @@ lhz_in01,30,24,5 script Officer B 4_M_MANAGER,{
mes "Let's talk about it later.";
next;
changequest 10074,10075;
- set ep13_ryu,19;
+ ep13_ryu = 19;
mes "[Officer B]";
mes "Um, what's your business?";
close;
@@ -1711,7 +1711,7 @@ moc_fild22b,230,197,5 script Munkenro#2 4_M_RUSMAN1,{
mes "This can prove that you're strong enough. That's the minimum test I can perform.";
next;
changequest 10076,10077;
- set ep13_ryu,21;
+ ep13_ryu = 21;
mes "[Munkenro]";
mes "Once you get ready,";
mes "just let me know.";
@@ -1727,7 +1727,7 @@ moc_fild22b,230,197,5 script Munkenro#2 4_M_RUSMAN1,{
mes "[Munkenro]";
mes "Ok, just have a good adventure.";
next;
- set ep13_ryu,22;
+ ep13_ryu = 22;
changequest 10077,10078;
donpcevent "Head of the Alliance#moo::OnEnable";
mes "[Munkenro]";
@@ -1752,8 +1752,8 @@ moc_fild22b,230,197,5 script Munkenro#2 4_M_RUSMAN1,{
mes "I will give you one more chance.";
mes "Don't make any mistakes again.";
next;
- set ep13_ryu,21;
- set $@ep13_test,0;
+ ep13_ryu = 21;
+ $@ep13_test = 0;
mes "[Munkenro]";
mes "Once you get ready,";
mes "just let me know,";
@@ -1782,7 +1782,7 @@ moc_fild22b,230,197,5 script Munkenro#2 4_M_RUSMAN1,{
mes "Just forget it.";
next;
completequest 10078;
- set ep13_ryu,100;
+ ep13_ryu = 100;
if (checkre(3))
getexp 66000,21000;
else
@@ -1802,7 +1802,7 @@ OnInit:
OnEnable:
mapannounce "moc_fild22b","Head of the Alliance: I command that all soldiers attack the adventurers around here for 15 minutes. This is an order!",bc_map;
enablenpc "Head of the Alliance#moo";
- set $@ep13_test,1;
+ $@ep13_test = 1;
initnpctimer;
monster "moc_fild22b",0,0,"Allied Soldier",1851,80,"Head of the Alliance#moo::OnMyMobDead";
end;
@@ -1814,7 +1814,7 @@ OnReset:
OnDisable:
killmonster "moc_fild22b","Head of the Alliance#moo::OnMyMobDead";
mapannounce "moc_fild22b","Head of the Alliance: All alliance members. All of you should stop your attacks and return to work. That's all.",bc_map;
- set $@ep13_test,0;
+ $@ep13_test = 0;
disablenpc "Head of the Alliance#moo";
end;
@@ -1827,7 +1827,7 @@ OnMyMobDead:
OnTimer900000:
killmonster "moc_fild22b","Head of the Alliance#moo::OnMyMobDead";
mapannounce "moc_fild22b","Head of the Alliance: All alliance members. All of you should stop your attacks and return to work. That's all.",bc_map;
- set $@ep13_test,2;
+ $@ep13_test = 2;
disablenpc "Head of the Alliance#moo";
stopnpctimer;
end;
@@ -1925,7 +1925,7 @@ moc_fild22b,370,370,3 script Allied Manager#gm 4W_SAILOR,{
mes "[Manager]";
mes "Please enter the password.";
next;
- set .@i, callfunc("F_GM_NPC",8028,0,0,9000);
+ .@i = callfunc("F_GM_NPC",8028,0,0,9000);
if (.@i == -2) {
mes "[Manager]";
mes "Incorrect password.";
@@ -1946,7 +1946,7 @@ moc_fild22b,370,370,3 script Allied Manager#gm 4W_SAILOR,{
case 1:
mes "[Manager]";
mes "Resetting the allied attacks.";
- set $@ep13_test,2;
+ $@ep13_test = 2;
disablenpc "Head of the Alliance#moo";
close;
case 2:
@@ -1990,7 +1990,7 @@ mid_camp,222,283,4 script Marian#ep13bs 4_F_JOB_HUNTER,{
mes "[Marian]";
mes "Go to the right to find";
mes "^0000FFInstructor Lugen^000000.";
- set ep13_newbs,1;
+ ep13_newbs = 1;
getitem 12322,1; //Chocolate_Pie
setquest 11084;
close;
@@ -2009,7 +2009,7 @@ mid_camp,222,283,4 script Marian#ep13bs 4_F_JOB_HUNTER,{
mes "Go to the right along this way";
mes "and you'll find ^0000FFInstructor Lugen^000000.";
mes "Talk to him, first.";
- set ep13_newbs,1;
+ ep13_newbs = 1;
getitem 12322,1; //Chocolate_Pie
setquest 11084;
close;
@@ -2061,16 +2061,16 @@ mid_camp,222,283,4 script Marian#ep13bs 4_F_JOB_HUNTER,{
mes "Here they are!";
mes "And this is for you.";
mes "Go, go~~";
- set ep13_newbs,14;
+ ep13_newbs = 14;
getitem 6045,3; //Supply_Box
getitem 12322,1; //Chocolate_Pie
changequest 11091,11092;
close;
}
if (ep13_newbs > 13 && ep13_newbs < 20) {
- if (ep13_newbs < 16) set .@i,3;
- else if (ep13_newbs < 18) set .@i,2;
- else set .@i,1;
+ if (ep13_newbs < 16) .@i = 3;
+ else if (ep13_newbs < 18) .@i = 2;
+ else .@i = 1;
if (countitem(6045) < .@i) {
mes "[Marian]";
mes "Ha! You misplaced the Supply Box?!";
@@ -2173,14 +2173,14 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "registration, come back";
mes "to me and I will assign";
mes "your accomodations.";
- set ep13_newbs,3;
+ ep13_newbs = 3;
changequest 11084,11085;
close;
case 2:
mes "[Instructor Lugen]";
mes "You don't want to join?";
mes "If you change your mind, come back later.";
- set ep13_newbs,2;
+ ep13_newbs = 2;
close;
}
}
@@ -2209,7 +2209,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "registration, come back";
mes "to me and I will assign";
mes "your accomodations.";
- set ep13_newbs,3;
+ ep13_newbs = 3;
changequest 11084,11085;
close;
case 2:
@@ -2247,7 +2247,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "You need to share the barracks";
mes "with others, so make sure to";
mes "talk with them while you're there.";
- set ep13_newbs,5;
+ ep13_newbs = 5;
getitem 12322,1; //Chocolate_Pie
completequest 11086;
close;
@@ -2280,7 +2280,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "whom you met when";
mes "you first came here and";
mes "get the supplies from her.";
- set ep13_newbs,13;
+ ep13_newbs = 13;
getitem 12322,1; //Chocolate_Pie
setquest 11091;
close;
@@ -2310,7 +2310,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "The first box should be sent to";
mes "Jan, northwest of the camp.";
mes "She may be around the fence.";
- set ep13_newbs,15;
+ ep13_newbs = 15;
changequest 11092,11093;
close;
}
@@ -2356,7 +2356,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
next;
mes "[Instructor Lugen]";
mes "Freya be with you.";
- set ep13_newbs,17;
+ ep13_newbs = 17;
changequest 11094,11095;
close;
}
@@ -2412,7 +2412,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
next;
mes "[Instructor Lugen]";
mes "Please deliver it to him.";
- set ep13_newbs,19;
+ ep13_newbs = 19;
changequest 11096,11097;
close;
}
@@ -2456,7 +2456,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "I have more things";
mes "to do now, ha...";
emotion e_pif;
- set ep13_newbs,21;
+ ep13_newbs = 21;
completequest 11098;
close;
}
@@ -2539,7 +2539,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "My friend, Otto, is working";
mes "on the barrier in the west.";
mes "Please give it to him.";
- set ep13_newbs,23;
+ ep13_newbs = 23;
getitem 6043,1; //Letter_From_Lugen
setquest 11099;
close;
@@ -2550,7 +2550,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "[Instructor Lugen]";
mes "Yes.. I really appreciate your listening to me.";
mes "It makes me feel better.";
- set ep13_newbs,22;
+ ep13_newbs = 22;
close;
}
}
@@ -2600,7 +2600,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "[Instructor Lugen]";
mes "My friend, Otto, is working on the barrier in the west.";
mes "Please give it to him.";
- set ep13_newbs,23;
+ ep13_newbs = 23;
getitem 6043,1; //Letter_From_Lugen
setquest 11099;
close;
@@ -2672,7 +2672,7 @@ mid_camp,261,284,4 script Instructor#ep13bs 4_M_YOUNGKNIGHT,{
mes "[Instructor Lugen]";
mes "And this is for you.";
delitem 6044,1; //Letter_From_Otto
- set ep13_newbs,100;
+ ep13_newbs = 100;
getitem 617,1; //Old_Violet_Box
getitem 12322,5; //Chocolate_Pie
if (checkre(3))
@@ -2768,7 +2768,7 @@ mid_camp,123,290,4 script Otto#ep13bs 4_M_RUSMAN1,{
mes "in the near future and will";
mes "use that time to visit him.";
delitem 6043,1; //Letter_From_Lugen
- set ep13_newbs,24;
+ ep13_newbs = 24;
getitem 6044,1; //Letter_From_Otto
getitem 12322,1; //Chocolate_Pie
changequest 11099,11100;
@@ -2890,7 +2890,7 @@ mid_campin,106,122,4 script Receptionist Brink#ep13b 4_M_ORIENT02,{
next;
mes "- I guess I'm registered -";
mes "- I'd better go back to Lugen -";
- set ep13_newbs,4;
+ ep13_newbs = 4;
getitem 12322,1; //Chocolate_Pie
changequest 11085,11086;
close;
@@ -2986,7 +2986,7 @@ mid_camp,264,263,4 script Diego#ep13bs 4_M_RACHMAN1,{
mes "able to fix this with";
mes "^0000FF20 Ordinary Branches and 20 Strong Vine^000000.";
mes "Please bring them to me!!!";
- set ep13_newbs,6;
+ ep13_newbs = 6;
setquest 11087;
close;
case 2:
@@ -3013,7 +3013,7 @@ mid_camp,264,263,4 script Diego#ep13bs 4_M_RACHMAN1,{
mes "and tie it up with the vines.";
delitem 6041,20; //Strong_Bine
delitem 6042,20; //Ordinary_Branch
- set ep13_newbs,7;
+ ep13_newbs = 7;
changequest 11087,11088;
close;
}
@@ -3072,7 +3072,7 @@ mid_camp,264,263,4 script Diego#ep13bs 4_M_RACHMAN1,{
mes "Please come in and";
mes "take some rest for the";
mes "expedition tomorrow!!";
- set ep13_newbs,10;
+ ep13_newbs = 10;
getitem 12322,5; //Chocolate_Pie
completequest 11090;
close2;
@@ -3111,7 +3111,7 @@ OnTouch:
mes "- and feel better. -";
mes "- I think I need to go -";
mes "- to Instructor Lugen -";
- set ep13_newbs,11;
+ ep13_newbs = 11;
close;
}
else {
@@ -3157,7 +3157,7 @@ mid_campin,295,128,4 script Lucas#ep13bs 4_M_ACROSS,{
mes "[Lucas]";
mes "No, just ignore what I said.";
mes "......";
- set ep13_newbs,12;
+ ep13_newbs = 12;
//getitem 12322,1; //Chocolate_Pie
close;
case 2:
@@ -3211,7 +3211,7 @@ mid_camp,160,298,4 script Jan#ep13bs 4_LGTSCIENCE,{
mes "I'm grateful~";
mes "Uhuhu.";
delitem 6045,1; //Supply_Box
- set ep13_newbs,16;
+ ep13_newbs = 16;
getitem 12322,1; //Chocolate_Pie
changequest 11093,11094;
close;
@@ -3294,7 +3294,7 @@ mid_camp,30,168,4 script Gerard#ep13bs 4_DST_SOLDIER,{
mes "I won't be back for some time.";
emotion e_no1;
delitem 6045,1; //Supply_Box
- set ep13_newbs,18;
+ ep13_newbs = 18;
getitem 12322,1; //Chocolate_Pie
changequest 11095,11096;
close;
@@ -3376,7 +3376,7 @@ man_fild01,80,248,4 script Alberto#ep13bs 4_M_RASWORD,{
mes "Sniff.";
emotion e_sob;
delitem 6045,1; //Supply_Box
- set ep13_newbs,20;
+ ep13_newbs = 20;
getitem 12322,1; //Chocolate_Pie
changequest 11097,11098;
close;
@@ -3525,7 +3525,7 @@ mid_camp,267,263,0 script Post#ep13bs1 HIDDEN_NPC,{
mes "[Diego]";
mes "And this post should be knotted.";
mes "Then please do it to that post.";
- set ep13_newbs,8;
+ ep13_newbs = 8;
changequest 11088,11089;
close;
case 2:
@@ -3609,7 +3609,7 @@ mid_camp,267,258,0 script Post#ep13bs2 HIDDEN_NPC,{
mes "[Diego]";
mes "Ohhh!!!!";
mes "The broken posts are perfectly fixed!";
- set ep13_newbs,9;
+ ep13_newbs = 9;
changequest 11089,11090;
close;
case 2:
@@ -3818,7 +3818,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "venture through";
mes "such a threatening";
mes "environment!";
- set ep13_animal,1;
+ ep13_animal = 1;
setquest 2147;
close;
}
@@ -3937,7 +3937,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "asking here, don't you?";
mes "Help me, help me, please.";
delitem 6041,1; //Strong_Bine
- set ep13_animal,3;
+ ep13_animal = 3;
changequest 2147,2148;
close;
case 2:
@@ -4041,7 +4041,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
delitem 713,1; //Empty_Bottle
delitem 523,5; //Holy_Water
delitem 938,30; //Sticky_Mucus
- set ep13_animal,4;
+ ep13_animal = 4;
changequest 2148,2149;
close;
}
@@ -4095,7 +4095,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "[Rumis Block]";
mes "It won't take long. Can you please go wait for me over the eastern bridge?";
mes "Don't... Don't go too far from the bridge!";
- set ep13_animal,11;
+ ep13_animal = 11;
changequest 2153,2154;
close;
case 2:
@@ -4140,12 +4140,12 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "[Rumis Block]";
mes "Even thinking of them send chills down on my spine! Can you please go check what kind of races reside at the end of the land over the rightward bridge?";
mes "I want to know if they're friendly or hostile to us.";
- set ep13_animal,14;
+ ep13_animal = 14;
changequest 2156,2157;
close;
}
else if (ep13_animal == 14) {
- if (checkquest(2157,HUNTING) == 2) {
+ if (questprogress(2157,HUNTING) == 2) {
mes "[Rumis Block]";
mes "Welcome back. Did you find out about them?";
next;
@@ -4206,7 +4206,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "[Rumis Block]";
mes "I'll repay your favor as soon as I go back home.";
mes "I hope you'll make yourself known in Ash Vacuum with your great accomplishments.";
- set ep13_animal,15;
+ ep13_animal = 15;
completequest 2157;
getexp (checkre(3))?100000:1500000,0;
close;
@@ -4303,7 +4303,7 @@ mid_camp,188,254,3 script Monster Scholar#ep13 4_M_ALCHE_D,{
mes "- With a shy smile on the face, Rumis Block asked you to shake hands, and then turned around hurriedly. -";
next;
mes "- You really hope that Rumis will be able to go back home. -";
- set ep13_animal,100;
+ ep13_animal = 100;
delitem 6033,1; //Horn_Of_Tendrilion
getexp (checkre(3))?50000:1000000,0;
close;
@@ -4493,12 +4493,12 @@ mid_camp,240,270,3 script Botanist#ep13 4_M_ALCHE_C,{
next;
mes "[Botanist]";
mes "Yes, I only need... ^3131FF30^000000 of them.";
- set ep13_animal,5;
+ ep13_animal = 5;
changequest 2149,2150;
close;
}
else if (ep13_animal == 5) {
- if (checkquest(2150,HUNTING) == 2) {
+ if (questprogress(2150,HUNTING) == 2) {
mes "[Botanist]";
mes "Welcome back! How was it?";
mes "It was amazing, wasn't it?";
@@ -4549,7 +4549,7 @@ mid_camp,240,270,3 script Botanist#ep13 4_M_ALCHE_C,{
next;
mes "[Botanist]";
mes "How'd you like to hunt ^3131FF10 of them^000000 to set an example? Good luck!";
- set ep13_animal,6;
+ ep13_animal = 6;
changequest 2150,2151;
close;
}
@@ -4561,7 +4561,7 @@ mid_camp,240,270,3 script Botanist#ep13 4_M_ALCHE_C,{
}
}
else if (ep13_animal == 6) {
- if (checkquest(2151,HUNTING) == 2) {
+ if (questprogress(2151,HUNTING) == 2) {
mes "[Botanist]";
mes "Hopefully the Cornuses have learned their lesson, and won't touch my special environmental meters anymore.";
next;
@@ -4582,7 +4582,7 @@ mid_camp,240,270,3 script Botanist#ep13 4_M_ALCHE_C,{
mes "Let me show you.";
mes "Please take this rotting plant stem,";
mes "I'll meet you at the environmental purifier standing right next to the leftward bridge on the other side.";
- set ep13_animal,7;
+ ep13_animal = 7;
getitem 6035,1; //Decaying_Stem
changequest 2151,2152;
close;
@@ -4625,7 +4625,7 @@ mid_camp,336,171,1 script Camp Guard#man1 4_M_EIN_SOLDIER,{
switch(atoi(charat(strnpcinfo(2),3))) {
case 1:
if (ep13_animal == 1)
- set ep13_animal,2;
+ ep13_animal = 2;
warp "man_fild01",36,235;
break;
case 2:
@@ -4658,7 +4658,7 @@ OnTouch:
next;
mes "[Botanist]";
mes "Please try to plant the rotting stem in the ground.";
- set ep13_animal,8;
+ ep13_animal = 8;
close;
}
else if (ep13_animal == 8) {
@@ -4701,7 +4701,7 @@ mid_camp,45,148,7 script Botanist#ep13_1 4_M_ALCHE_C,{
next;
mes "[Botanist]";
mes "And don't forget to tell him that I've produced great research results. That'll make him cry like a baby. Hahahaha!";
- set ep13_animal,10;
+ ep13_animal = 10;
changequest 2152,2153;
disablenpc "Botanist#ep13_1";
close;
@@ -4729,7 +4729,7 @@ mid_camp,52,148,1 script Dirt#ep13 CLEAR_NPC,{
mes "- Ssshuhhhh -";
next;
mes "- Something is growing out of the dirt. -";
- set ep13_animal,9;
+ ep13_animal = 9;
delitem 6035,1; //Decaying_Stem
getitem 7193,1; //Germinating_Sprout
close;
@@ -4774,7 +4774,7 @@ man_fild01,92,230,3 script Frozen Tree#evt_lumis HIDDEN_NPC,1,1,{
mes "[Rumis Block]";
mes "Their horns might possess a special power. And I want to have them for further research.";
mes "...5 horns will be enough.";
- set ep13_animal,12;
+ ep13_animal = 12;
changequest 2154,2155;
close;
}
@@ -4830,7 +4830,7 @@ man_fild01,92,230,3 script Frozen Tree#evt_lumis HIDDEN_NPC,1,1,{
next;
mes "[Rumis Block]";
mes "Let's go back to the camp. Shall we? I have something to discuss with you.";
- set ep13_animal,13;
+ ep13_animal = 13;
delitem 6032,5; //Horn_Of_Hilsrion
changequest 2155,2156;
close;
@@ -4843,7 +4843,7 @@ man_fild01,92,230,3 script Frozen Tree#evt_lumis HIDDEN_NPC,1,1,{
//============================================================
spl_fild02,34,223,5 script Small Fairy#spl 4_M_FAIRYKID,{
if (BaseLevel > 69) {
- if (checkquest(2158) == -1) {
+ if (!questprogress(2158)) {
mes "You find a little creature flying in the bushes.";
mes "It has tiny wings on the back...";
mes "It's a fairy!";
@@ -4881,7 +4881,7 @@ spl_fild02,34,223,5 script Small Fairy#spl 4_M_FAIRYKID,{
man_fild03,236,105,3 script Tree Giant#man 4_MAN_PIOM,{
if (BaseLevel > 69) {
- if (checkquest(2159) == -1) {
+ if (!questprogress(2159)) {
mes "You have found something moving between dry branches.";
mes "It appears to be a tree at first glance, but it turns out to be a giant that is half tree and half man.";
next;
@@ -4923,14 +4923,14 @@ mid_camp,212,237,5 script Camp Guard Captain#man1 4_M_EIN_SOLDIER,{
mes "working for United Midgard.";
mes "How may I help you?";
next;
- if ((checkquest(2158) == 2) && (checkquest(2159) == 2)) {
+ if (questprogress(2158) == 2 && questprogress(2159) == 2) {
mes "["+strcharinfo(0)+"]";
mes "Oh, nothing.";
mes "Sorry to bother you.";
close;
}
else {
- if (checkquest(2158) == 1) {
+ if (questprogress(2158) == 1) {
mes "- You report your encounter with a small fairy in the Splandid area to the guard captain. -";
next;
mes "[Captain]";
@@ -4944,14 +4944,14 @@ mid_camp,212,237,5 script Camp Guard Captain#man1 4_M_EIN_SOLDIER,{
getexp (checkre(3))?90000:900000,0;
close;
}
- else if (checkquest(2158) == -1) {
+ else if (!questprogress(2158)) {
mes "["+strcharinfo(0)+"]";
mes "Oh, nothing.";
mes "Sorry to bother you.";
close;
}
else {
- if (checkquest(2159) == 1) {
+ if (questprogress(2159) == 1) {
mes "- You report your encounter with a tree giant in the Manuk area to the guard captain. -";
next;
mes "[Captain]";
@@ -5031,7 +5031,7 @@ OnTouch:
next;
mes "[United Research Official]";
mes "Sounds good, huh? Please, you should go now.";
- set ep13_1_rhea,1;
+ ep13_1_rhea = 1;
setquest 8196;
close;
}
@@ -5091,7 +5091,7 @@ OnTouch:
mes "[United Research Official]";
mes "So, first! Can you go meet those 3 researchers and check on them to prepare for the meeting?";
delitem 6036,1; //Invite_To_Meeting
- set ep13_1_rhea,11;
+ ep13_1_rhea = 11;
changequest 8198,8199;
close;
}
@@ -5214,7 +5214,7 @@ OnTouch:
mes "researchers of the union started to";
mes "scream as well, and rushed out of";
mes "the room. -";
- set ep13_1_rhea,20;
+ ep13_1_rhea = 20;
donpcevent "Research Official#ep131::OnCall";
close2;
warp "mid_camp",165,236;
@@ -5310,7 +5310,7 @@ OnTouch:
mes "Come on!!!";
next;
mes "-The three researchers say nothing. They just stare at each other, standing still... Then they finally leave the room. -";
- set ep13_1_rhea,21;
+ ep13_1_rhea = 21;
donpcevent "Ryosen#ep131_rhea05::OnDisable";
donpcevent "Hue#ep131_rhea06::OnDisable";
donpcevent "Hansenne#ep131_rhea07::OnDisable";
@@ -5341,7 +5341,7 @@ OnTouch:
next;
mes "[United Research Official]";
mes "What? Ah, adventurer?!";
- set ep13_1_rhea,22;
+ ep13_1_rhea = 22;
changequest 8206,8207;
close;
}
@@ -5386,7 +5386,7 @@ OnTouch:
next;
mes "- You feel so refreshed and light, as you drink the tea that the Official offered. -";
specialeffect2 EF_ABSORBSPIRITS;
- set ep13_1_rhea,100;
+ ep13_1_rhea = 100;
if (checkre(3))
getexp 80000,3000;
else
@@ -5533,7 +5533,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "[Ryosen]";
mes "How about having some tea here?";
mes "It's Rafflesia tea from Schwartzvalt. Don't even expect taste, it's awful... But what can I do? It's the only thing I've got...";
- set ep13_1_rhea,2;
+ ep13_1_rhea = 2;
close;
}
else if (ep13_1_rhea == 2) {
@@ -5565,7 +5565,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "[Ryosen]";
mes "I mean... the situation here is... just like the taste of this tea.";
mes "Just awful!";
- set ep13_1_rhea,3;
+ ep13_1_rhea = 3;
close;
}
else if (ep13_1_rhea == 3) {
@@ -5634,7 +5634,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "- which briefly explains -";
mes "- the agenda and schedule -";
mes "- of the whole meeting! -";
- set ep13_1_rhea,4;
+ ep13_1_rhea = 4;
getitem 6036,1; //Invite_To_Meeting
changequest 8196,8197;
close;
@@ -5668,7 +5668,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "[Ryosen]";
mes "Thank you for dealing with those guys. I've got to go through the file now. Please give me the Invitation.";
delitem 6036,1; //Invite_To_Meeting
- set ep13_1_rhea,9;
+ ep13_1_rhea = 9;
close;
}
else {
@@ -5707,7 +5707,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
next;
mes "[Ryosen]";
mes "In the meantime, I should prepare myself for the meeting.";
- set ep13_1_rhea,10;
+ ep13_1_rhea = 10;
getitem 6036,1; //Invite_To_Meeting
changequest 8197,8198;
close;
@@ -5743,7 +5743,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
next;
mes "[Ryosen]";
mes "I need that for the meeting, but he never sends it to me. He must've forgotten about it, again! You'll help me with this, right!?";
- set ep13_1_rhea,12;
+ ep13_1_rhea = 12;
changequest 8199,8200;
close;
}
@@ -5818,7 +5818,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "[Ryosen]";
mes "Please, the meeting's gonna begin soon.";
delitem 6038,1; //Neat_Report
- set ep13_1_rhea,19;
+ ep13_1_rhea = 19;
changequest 8204,8205;
close;
}
@@ -5916,7 +5916,7 @@ mid_camp,165,245,0 script Ryosen#ep131_rhea01 4_M_ALCHE_A,{
mes "[Ryosen]";
mes "Again, thank you so much.";
delitem 6038,1; //Neat_Report
- set ep13_1_rhea,26;
+ ep13_1_rhea = 26;
getitem 12319,1; //Strawberry_Cake
changequest 8209,8210;
close;
@@ -6083,7 +6083,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
mes "[Hue]";
mes "You should have some Sand chips while I'm reading this. Don't expect any taste, it's from Arunafeltz.";
delitem 6036,1; //Invite_To_Meeting
- set ep13_1_rhea,5;
+ ep13_1_rhea = 5;
close;
}
else {
@@ -6096,7 +6096,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
}
}
else if (ep13_1_rhea == 5) {
- set .@shu_agree00,rand(1,4);
+ .@shu_agree00 = rand(1,4);
if (.@shu_agree00 == 2) {
mes "[Hue]";
mes "...Meeting Schedule, on the Xth day, from hh:mm to hh:mm...";
@@ -6135,7 +6135,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
mes "[Hue]";
mes "You'll experience some hard time talking to Hansenne... It'll be like testing your patience.";
mes "Good luck!";
- set ep13_1_rhea,6;
+ ep13_1_rhea = 6;
getitem 6036,1; //Invite_To_Meeting
close;
}
@@ -6188,7 +6188,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
next;
mes "[Hue]";
mes "Just don't gorget that the file will be restored as fast as you prepare those things for me.";
- set ep13_1_rhea,16;
+ ep13_1_rhea = 16;
changequest 8202,8203;
close;
}
@@ -6217,7 +6217,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
delitem 7031,1; //Old_Frying_Pan
delitem 7521,1; //Flame_Stone
delitem 1024,1; //Chinese_Ink
- set ep13_1_rhea,17;
+ ep13_1_rhea = 17;
close;
}
else {
@@ -6242,7 +6242,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
next;
mes "[Hue]";
mes "Please, deliver this file before it's too late. The meeting's gonna begin soon.";
- set ep13_1_rhea,18;
+ ep13_1_rhea = 18;
getitem 6038,1; //Neat_Report
changequest 8203,8204;
close;
@@ -6311,7 +6311,7 @@ mid_camp,247,255,1 script Hue#ep131_rhea02 4_M_LGTGUARD,{
mes "[Hue]";
mes "Please give this report to Ryosen.";
mes "Thank you.";
- set ep13_1_rhea,25;
+ ep13_1_rhea = 25;
getitem 6038,1; //Neat_Report
getitem 12320,1; //Pineapple_Juice
changequest 8208,8209;
@@ -6481,7 +6481,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "[Hansenne]";
mes "You should take a rest, while I'm reading this. Oh, have some Poring Candy from Rune-Midgarts. It's terribly sour and sometimes salty. Funny taste, huh?";
delitem 6036,1; //Invite_To_Meeting
- set ep13_1_rhea,7;
+ ep13_1_rhea = 7;
close;
}
else {
@@ -6497,7 +6497,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
}
}
else if (ep13_1_rhea == 7) {
- set .@shu_agree00,rand(1,5);
+ .@shu_agree00 = rand(1,5);
if (.@shu_agree00 == 1) {
mes "[Hansenne]";
mes "Mmmmmm~";
@@ -6566,7 +6566,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "Ryosen's avery funny guy. Well, he wouldn't know how funny he is...";
mes "Haha, you should tell him that.";
mes "Haha, hahaha, hahahahahahahahaha.";
- set ep13_1_rhea,8;
+ ep13_1_rhea = 8;
getitem 6036,1; //Invite_To_Meeting
close;
}
@@ -6647,7 +6647,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "[Hansenne]";
mes "Maybe we can catch that document with a fishing rod if we're lucky!";
mes "Wow!";
- set ep13_1_rhea,13;
+ ep13_1_rhea = 13;
changequest 8200,8201;
close;
}
@@ -6680,7 +6680,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "[Hansenne]";
mes "He'd scream so hard and the windows might break. But he'll do it.";
mes "Haha, hahaha, hahahahahahahahaha.";
- set ep13_1_rhea,15;
+ ep13_1_rhea = 15;
changequest 8201,8202;
close;
}
@@ -6763,7 +6763,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "[Hansenne]";
mes "He must've been so upset that we all couldn't share that cake. Isn't it kinda cute?";
mes "Haha, hahaha, hahahahahahahahaha.";
- set ep13_1_rhea,23;
+ ep13_1_rhea = 23;
close;
}
else if (ep13_1_rhea == 23) {
@@ -6783,7 +6783,7 @@ mid_camp,222,218,3 script Hansenne#ep131_rhea03 4_M_RACHMAN1,{
mes "[Hansenne]";
mes "Thank you for doing me a favor.";
mes "Haha, hahaha, hahahahahahahahaha.";
- set ep13_1_rhea,24;
+ ep13_1_rhea = 24;
getitem 12321,1; //Spicy_Sandwich
changequest 8207,8208;
close;
@@ -6970,8 +6970,8 @@ mid_camp,1,1,0 script #timer_alba01 CLEAR_NPC,{
stopnpctimer;
next;
mes "Global values have been reset.";
- set $@PartTimeOn,0;
- set $@PartTimeSlots,0;
+ $@PartTimeOn = 0;
+ $@PartTimeSlots = 0;
next;
mes "Recruiting has been reset.";
mes "Timer has started!";
@@ -6984,8 +6984,8 @@ mid_camp,1,1,0 script #timer_alba01 CLEAR_NPC,{
}
OnInit:
- set $@PartTimeOn,0;
- set $@PartTimeSlots,0;
+ $@PartTimeOn = 0;
+ $@PartTimeSlots = 0;
OnEnable:
initnpctimer;
end;
@@ -6995,8 +6995,8 @@ OnStop:
end;
OnTimer1000:
- set $@PartTimeSlots,0;
- set $@PartTimeOn,1;
+ $@PartTimeSlots = 0;
+ $@PartTimeOn = 1;
mapannounce "mid_camp", "Breeder Taab: Attention adventurers in the camp! I'm recruiting 5 part-timers for my breeding farm. Only the first to arrive here will be hired!",bc_map,"0x00ff00";
end;
@@ -7008,7 +7008,7 @@ OnTimer360000:
OnTimer600000:
mapannounce "mid_camp", "Breeder Taab: The recruitment for my breeding farm has ended. I'll see you next time. Thanks!",bc_map,"0x00ff00";
- set $@PartTimeOn,0;
+ $@PartTimeOn = 0;
end;
OnTimer7800000:
@@ -7055,7 +7055,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
}
else {
if ($@PartTimeSlots < 5) {
- set $@PartTimeSlots,$@PartTimeSlots+1;
+ ++$@PartTimeSlots;
mes "[Taab]";
mes "Welcome.";
mes "Your job is simple:";
@@ -7065,7 +7065,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
mes "These are the available jobs.";
next;
if ($@PartTimeSlots == 1) {
- set ep13_alba,1;
+ ep13_alba = 1;
setquest 7042;
mes "[Taab]";
mes "Please bring me 50 Fresh Fish.";
@@ -7083,7 +7083,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
close;
}
else if ($@PartTimeSlots == 2) {
- set ep13_alba,2;
+ ep13_alba = 2;
setquest 7043;
mes "[Taab]";
mes "I've just run out of";
@@ -7098,7 +7098,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
close;
}
else if ($@PartTimeSlots == 3) {
- set ep13_alba,3;
+ ep13_alba = 3;
setquest 7044;
mes "[Taab]";
mes "I've just run out of";
@@ -7125,7 +7125,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
close;
}
else if ($@PartTimeSlots == 4) {
- set ep13_alba,4;
+ ep13_alba = 4;
setquest 7045;
mes "[Taab]";
mes "This is perfect because";
@@ -7148,7 +7148,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
close;
}
else {
- set ep13_alba,5;
+ ep13_alba = 5;
setquest 7046;
mes "[Taab]";
mes "Oh, I always wanted to put something warm on the floor for my creatures.";
@@ -7209,7 +7209,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
mes "How about a spiritual reward?";
next;
delitem 579,50; //Delicious_Fish
- set ep13_alba,6;
+ ep13_alba = 6;
if (checkre(3)) {
getexp 8000,3000;
mes "^4d4dff You have received 8,000 EXP";
@@ -7248,7 +7248,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
next;
delitem 7198,30; //Great_Leaf
delitem 7188,30; //Browny_Root
- set ep13_alba,6;
+ ep13_alba = 6;
if (checkre(3)) {
getexp 9000,4000;
mes "^4d4dff You have received 9,000 EXP";
@@ -7292,7 +7292,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
next;
delitem 528,20; //Monster's_Feed
delitem 537,30; //Pet_Food
- set ep13_alba,6;
+ ep13_alba = 6;
if (checkre(3)) {
getexp 8000,3000;
mes "^4d4dff You have received 8,000 EXP";
@@ -7333,7 +7333,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
next;
delitem 517,50; //Meat
delitem 537,30; //Pet_Food
- set ep13_alba,6;
+ ep13_alba = 6;
if (checkre(3)) {
getexp 8000,3000;
mes "^4d4dff You have received 8,000 EXP";
@@ -7371,7 +7371,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
mes "How about a spiritual reward?";
next;
delitem 6020,30; //Fur
- set ep13_alba,6;
+ ep13_alba = 6;
if (checkre(3)) {
getexp 8000,3000;
mes "^4d4dff You have received 8,000 EXP";
@@ -7393,8 +7393,8 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
}
}
else if (ep13_alba == 6) {
- set .@alba_check,checkquest(7047,PLAYTIME);
- if (.@alba_check == -1) {
+ .@alba_check = questprogress(7047,PLAYTIME);
+ if (!.@alba_check) {
mes "[Taab]";
mes "Thank you for";
mes "helping me last time.";
@@ -7403,10 +7403,10 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
mes "I hope you'll come by";
mes "to help me again.";
erasequest 7047;
- set ep13_alba,0;
+ ep13_alba = 0;
close;
}
- else if ((.@alba_check == 0) || (.@alba_check == 1)) {
+ else if (.@alba_check == 1) {
mes "[Taab]";
mes "I've got enough feed";
mes "and supplies to last a while.";
@@ -7429,7 +7429,7 @@ mid_camp,143,306,5 script Breeder Taab#ep13_alba 4_M_DST_MASTER,{
mes "I hope you'll come by";
mes "to help me again.";
erasequest 7047;
- set ep13_alba,0;
+ ep13_alba = 0;
close;
}
}
@@ -7514,7 +7514,7 @@ OnStop:
end;
OnTimer3600000:
- set .@monster,rand(1,3);
+ .@monster = rand(1,3);
if (.@monster == 1) {
monster "mid_camp",149,291,"Escaped Tatacho",1986,1,"#monster_master::OnMyMobDead";
mapannounce "mid_camp", "Breeder Taab: Argh! My Tatacho ran away!",bc_map,"0x00ff00";
@@ -7581,7 +7581,7 @@ function Catwarp;
mes "[Cat Hand Agent]";
mes "For more information, please speak to Agent Gyaruk standing down there.";
mes "I'm sure you'll find our business proposition to be very reasonable.";
- set ep13_yong1,1;
+ ep13_yong1 = 1;
close;
case 2:
mes "[Cat Hand Agent]";
@@ -7603,7 +7603,7 @@ function Catwarp;
mes "[Cat Hand Agent]";
mes "For our newcomers, we're offering a location-saving service with which you can save this camp as your returning location.";
mes "Would you like to save your location?";
- set ep13_yong1,3;
+ ep13_yong1 = 3;
next;
switch(select("Save your location:Cancel")) {
case 1:
@@ -8021,7 +8021,7 @@ mid_camp,72,94,4 script Fluffy Gyaruk 4_M_BOSSCAT,{
mes "[Fluffy Gyaruk]";
mes "Please go speak to the Cat Hand Agent over there to use a basic service.";
mes "Oh, and please come back afterwards.";
- set ep13_yong1,2;
+ ep13_yong1 = 2;
close;
case 2:
mes "[Fluffy Gyaruk]";
@@ -8054,7 +8054,7 @@ mid_camp,72,94,4 script Fluffy Gyaruk 4_M_BOSSCAT,{
mes "[Fluffy Gyaruk]";
mes "Excellent.";
mes "For more information about fishing and mining, please speak to the two Cat Agents standing at the river over there.";
- set ep13_yong1,4;
+ ep13_yong1 = 4;
close;
case 2:
mes "[Fluffy Gyaruk]";
@@ -8084,7 +8084,7 @@ mid_camp,72,94,4 script Fluffy Gyaruk 4_M_BOSSCAT,{
}
mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
- if (checkquest(12060,PLAYTIME) == -1) {
+ if (!questprogress(12060,PLAYTIME)) {
if (ep13_yong1 < 4) {
mes "[Ferocious Gorurug]";
mes "Grrr....";
@@ -8120,7 +8120,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
mes "[Ferocious Gorurug]";
mes "You'll have a hard time to catch them at first, but you'll get better.";
mes "It gets easier with a bit of practice.";
- set ep13_yong1,5;
+ ep13_yong1 = 5;
close;
}
else if (ep13_yong1 == 5) {
@@ -8130,7 +8130,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
mes "GOOD JOB!";
delitem 6039,10; //Piece_Of_Fish
getexp (checkre(3))?20000:30000,0;
- set ep13_yong1,10;
+ ep13_yong1 = 10;
setquest 12060;
next;
mes "^0000ffYou gain EXP "+(checkre(3)?"20,000":"30,000")+"^000000";
@@ -8151,7 +8151,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
delitem 6039,10; //Piece_Of_Fish
getexp 15000,0;
setquest 12060;
- set ep13_yong1,ep13_yong1+1;
+ ++ep13_yong1;
next;
mes "^0000ffYou gain EXP 15,000^000000";
close;
@@ -8172,7 +8172,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
delitem 6039,10; //Piece_Of_Fish
getexp 15000,0;
setquest 12060;
- set ep13_yong1,ep13_yong1+1;
+ ++ep13_yong1;
next;
mes "^0000ffYou gain EXP 15,000^000000";
close;
@@ -8192,7 +8192,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
delitem 6039,10; //Piece_Of_Fish
getexp 15000,0;
setquest 12060;
- set ep13_yong1,ep13_yong1+1;
+ ++ep13_yong1;
next;
mes "^0000ffYou gain EXP 15,000^000000";
close;
@@ -8214,7 +8214,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
delitem 6039,10; //Piece_Of_Fish
getexp 15000,0;
setquest 12060;
- set ep13_yong1,ep13_yong1+1;
+ ++ep13_yong1;
next;
mes "^0000ffYou gain EXP 1,500^000000";
close;
@@ -8233,7 +8233,7 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
close;
}
}
- else if ((checkquest(12060,PLAYTIME) == 0) || (checkquest(12060,PLAYTIME) == 1)) {
+ else if (questprogress(12060,PLAYTIME) == 1) {
mes "[Ferocious Gorurug]";
mes "*Yawn*";
mes "I'm sorry, but I'm off-duty.";
@@ -8252,32 +8252,32 @@ mid_camp,69,144,0 script Ferocious Gorurug 4_M_BOSSCAT,{
}
spl_fild02,314,165,0 script School of Fish#1::Fishinghole CLEAR_NPC,{
- if ((checkquest(12060,PLAYTIME) == -1) && (countitem(6039) < 20)) {
+ if (!questprogress(12060,PLAYTIME) && countitem(6039) < 20) {
specialeffect2 EF_BUBBLE;
specialeffect2 EF_INVENOM;
- set .@fcast,15;
+ .@fcast = 15;
if (isequipped(2550)) //Fisher's_Muffler
- set .@fcast,.@fcast - 2;
+ .@fcast -= 2;
if (isequipped(2443)) //Fish_Shoes
- set .@fcast,.@fcast - 2;
+ .@fcast -= 2;
if (isequipped(2764)) //Small_Fishing_Rod
- set .@fcast,.@fcast - 3;
+ .@fcast -= 3;
if (isequipped(2775)) //Lure
- set .@fcast,.@fcast - 1;
+ .@fcast -= 1;
if (isequipped(1599)) //Ahura_Mazda
- set .@fcast,.@fcast - 3;
+ .@fcast -= 3;
if (isequipped(2199)) //Angra_Manyu
- set .@fcast,.@fcast - 4;
+ .@fcast -= 4;
progressbar "ffff00",.@fcast;
if (ep13_1_rhea == 13) {
if (rand(1,20) == 2) {
getitem 6037,1; //Rough_File
- set ep13_1_rhea,14;
+ ep13_1_rhea = 14;
specialeffect EF_BUBBLE;
mapannounce strcharinfo(3),strcharinfo(0) + " has caught a Messy File!!",bc_map,"0xff77ff";
}
}
- set .@rhea_ran,rand(1,70);
+ .@rhea_ran = rand(1,70);
if (.@rhea_ran < 20) getitem 6039,1; //Piece_Of_Fish
else if (.@rhea_ran == 20) getitem 908,1; //Spawn
else if (.@rhea_ran == 21) getitem 909,1; //Jellopy
@@ -8331,7 +8331,7 @@ mid_camp,66,122,55 script Henry Clifford 4_M_05,{
switch(select("Yes.:No, thanks.")) {
case 1:
delitem 6049,1; //Marlin
- set ep13_yong1,ep13_yong1+2;
+ ep13_yong1 += 2;
mes "[Henry Clifford]";
mes "Thank you for the Marlin.";
mes "I've given you the points in return.";
@@ -8368,7 +8368,7 @@ mid_camp,66,122,55 script Henry Clifford 4_M_05,{
}
mid_camp,88,100,55 script Cat Hand Mining Agent 4_CAT,{
- if (checkquest(12062,PLAYTIME) == -1) {
+ if (!questprogress(12062,PLAYTIME) == -1) {
if ((countitem(6048) > 2) && (ep13_yong1 > 9)) {
mes "[Cat Hand Mining Agent]";
mes "Oh, wow~";
@@ -8377,7 +8377,7 @@ mid_camp,88,100,55 script Cat Hand Mining Agent 4_CAT,{
delitem 6048,3; //Unidentified_Mineral
getexp (checkre(3))?20000:30000,0;
setquest 12062;
- set ep13_yong1,ep13_yong1+1;
+ ++ep13_yong1;
select("I'm freezing! Take them quickly.");
mes "[Cat Hand Mining Agent]";
mes "Yes, yes~ I've received the mineral samples.";
@@ -8403,7 +8403,7 @@ mid_camp,88,100,55 script Cat Hand Mining Agent 4_CAT,{
close;
}
}
- else if ((checkquest(12062,PLAYTIME) == 0) || (checkquest(12062,PLAYTIME) == 1)) {
+ else if (questprogress(12062,PLAYTIME) == 1) {
mes "[Cat Hand Mining Agent]";
mes "I hope you'll bring me minerals again tomorrow...";
mes "If you can. It's much better to wait for you to do it than go there on my own.";
@@ -8419,10 +8419,10 @@ mid_camp,88,100,55 script Cat Hand Mining Agent 4_CAT,{
}
- script Mysterious Rock#0::manukrock -1,{
- if ((countitem(6048) < 3) && (checkquest(12062,PLAYTIME) == -1)) {
+ if (countitem(6048) < 3 && !questprogress(12062,PLAYTIME)) {
specialeffect2 EF_REPAIRWEAPON;
progressbar "ffff00",10;
- set .@rhea_ran,rand(1,20);
+ .@rhea_ran = rand(1,20);
if (.@rhea_ran < 13) getitem 7049,1; //Stone
else if (.@rhea_ran == 13) getitem 990,1; //Boody_Red
else if (.@rhea_ran == 14) getitem 991,1; //Crystal_Blue
@@ -8474,7 +8474,7 @@ sec_in02,80,171,0 script Piece of crack#sec 2_MONEMUS,{
mes "You can enter the number between 1~3000.";
close;
} else {
- set ep13_yong1,.@input;
+ ep13_yong1 = .@input;
close;
}
}
@@ -8483,7 +8483,7 @@ sec_in02,80,171,0 script Piece of crack#sec 2_MONEMUS,{
//============================================================
mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
cutin "ep13_captin_edq",2;
- set .@start,(ep13_newbs + ep13_ryu + mao_morocc2 + ep13_1_rhea + ep13_animal + ep13_start);
+ .@start = (ep13_newbs + ep13_ryu + mao_morocc2 + ep13_1_rhea + ep13_animal + ep13_start);
if ((ep13_1_edq == 0) && (.@start > 115)) {
mes "[Hibba Agip]";
mes "*Sigh* Look at me, I used to command the desert of Morroc, but I've been deployed to a world that only God knows where...";
@@ -8539,7 +8539,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Instructor Igrid]";
mes "What are you still doing here? Go, go speak to Abidal.";
- set ep13_1_edq,1;
+ ep13_1_edq = 1;
setquest 3085;
cutin "ep13_captin_edq",255;
close;
@@ -8582,7 +8582,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
mes "Hmm... Anyways, this is not a difficult mission. All you have to do is deliver this expedition report to officials of three countries of Rune Midgard. Simple right?";
next;
getitem 11012,1; //Expedition_Report
- set ep13_1_edq,3;
+ ep13_1_edq = 3;
changequest 3086,3087;
mes "[Hibba Agip]";
mes "The officials are ^0000FFMinister Laur^000000 of the Rune-Midgart's Kingdom, ^0000FFPriest Nuria^000000 of Arunafeltz, and ^0000FFGerhart^000000 of the Schwatzvalt Republic.";
@@ -8682,7 +8682,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Hibba Agip]";
mes "Let me tell you this: I can care less about justice or righteousness, but loyalty and faithfulness are very important. Keep that in mind for your own good, alright?";
- set ep13_1_edq,61;
+ ep13_1_edq = 61;
changequest 3088,3089;
next;
mes "[Hibba Agip]";
@@ -8765,7 +8765,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Hibba Agip]";
mes "Let me tell you this, loyalty and faithfulness are very, very important. They may cause you hardship sometimes, but those qualities will guarantee you the last laugh.";
- set ep13_1_edq,62;
+ ep13_1_edq = 62;
changequest 3088,3089;
next;
mes "[Hibba Agip]";
@@ -8801,7 +8801,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
mes "This was finished more quickly than I thought. Let me see...";
next;
delitem 11012,1; //Expedition_Report
- set ep13_1_edq,9;
+ ep13_1_edq = 9;
changequest 3092,3093;
mes "[Hibba Agip]";
mes "It looks alright. I don't have to read this thoroughly because I trust Abidal.";
@@ -8907,7 +8907,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
else
getexp 2500000,0;
getitem 12110,3; //First_Aid_Kit
- set ep13_1_edq,14;
+ ep13_1_edq = 14;
completequest 3094;
mes "[Hibba Agip]";
mes "Then I'll see you next time. Keep yourself in one piece, alright?";
@@ -8961,7 +8961,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Hibba Agip]";
mes "Find the historian and see if he has any useful information for you.";
- set ins_nyd,2;
+ ins_nyd = 2;
cutin "ep13_captin_edq",255;
break;
}
@@ -9100,7 +9100,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Hibba Agip]";
mes "You have your orders! Now I'm going to look for an adventurer who is willing to be sent to the Sapha.";
- set ins_nyd,81;
+ ins_nyd = 81;
cutin "ep13_captin_edq",255;
break;
case 2:
@@ -9133,7 +9133,7 @@ mid_campin,90,121,5 script Hibba Agip 4_M_REDSWORD,{
next;
mes "[Hibba Agip]";
mes "You have your orders! Now I'm going to look for an adventurer who is willing to be sent to the Laphine.";
- set ins_nyd,82;
+ ins_nyd = 82;
cutin "ep13_captin_edq",255;
break;
case 2:
@@ -9342,7 +9342,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
mes "[Staff Officer Abidal]";
mes "I'll prepare for your departure.";
mes "Please go speak to the commander.";
- set ep13_1_edq,2;
+ ep13_1_edq = 2;
changequest 3085,3086;
close;
case 2:
@@ -9388,7 +9388,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
next;
mes "[Staff Officer Abidal]";
mes "Anyways, please bring the pages of the report in ^0000FFincrements of 10^000000 whenever you find them. I'll try to put them in order.";
- set ep13_1_edq,71;
+ ep13_1_edq = 71;
changequest 3089,3090;
close;
}
@@ -9410,7 +9410,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
next;
mes "[Staff Officer Abidal]";
mes "Anyways, please bring the pages of the report in ^0000FFincrements of 10^000000 whenever you find them. I'll try to put them in order.";
- set ep13_1_edq,72;
+ ep13_1_edq = 72;
changequest 3089,3090;
close;
}
@@ -9441,7 +9441,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
mes "[Staff Officer Abidal]";
mes "Umm... This page should go here and..";
next;
- set .@ep13_edq_wrong,rand(1,7);
+ .@ep13_edq_wrong = rand(1,7);
if ((countitem(11013) == 0) && (.@ep13_edq_wrong == 1)) {
mes "[Staff Officer Abidal]";
mes "Thank you for your hard work. We were able to restore one volume of the report.";
@@ -9544,7 +9544,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
mes "[Staff Officer Abidal]";
mes "Umm... This page should go here and..";
next;
- set .@ep13_edq_wrong,rand(1,5);
+ .@ep13_edq_wrong = rand(1,5);
if ((countitem(11013) == 0) && (.@ep13_edq_wrong == 1)) {
mes "[Staff Officer Abidal]";
mes "Thank you for your hard work. We were able to restore one volume of the report.";
@@ -9663,7 +9663,7 @@ mid_campin,94,118,3 script Staff Officer Abidal 4_M_SAGE_C,{
delitem 11015,1; //Expedition_Report_Vol3
delitem 11016,1; //Expedition_Report_Vol4
getitem 11012,1; //Expedition_Report
- set ep13_1_edq,8;
+ ep13_1_edq = 8;
erasequest 3090;
erasequest 3091;
setquest 3092;
@@ -9894,7 +9894,7 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
mes "Argh... " + strcharinfo(0) + ", are you alright? The report... The report...";
next;
delitem 11012,1; //Expedition_Report
- set ep13_1_edq,4;
+ ep13_1_edq = 4;
changequest 3087,3088;
mes "[Expedition Agent]";
mes "We lost the report. The pages are blowing away!";
@@ -9950,7 +9950,7 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
mes "We lost the report. The pages are blowing away!";
next;
delitem 11012,1; //Expedition_Report
- set ep13_1_edq,5;
+ ep13_1_edq = 5;
changequest 3087,3088;
mes "[???]";
mes "Haha, I may have failed to take the report, but it's better destroyed than in your hands!";
@@ -9969,7 +9969,7 @@ mid_camp,206,286,3 script Expedition Messenger 4_M_MOCASS1,{
mes "[Expedition Messenger]";
mes "We must report this to the commander before anything else.";
mes ""+ strcharinfo(0) + ", please report to the commander immidiatly. Let us take care of the rest.";
- set ep13_1_edq,5;
+ ep13_1_edq = 5;
next;
mes "[Expedition Agent]";
mes "Yes, please report to the commander...";
@@ -10078,7 +10078,7 @@ man_fild01,315,95,3 script Expedition Scout#1 4_M_MOC_SOLDIER,{
next;
mes "[Expedition Scout]";
mes "I've been ordered by Instructor Igrid to conduct a search for something.";
- set .@playtime,checkquest(3091,PLAYTIME);
+ .@playtime = questprogress(3091,PLAYTIME);
next;
switch(select("Ask about search results.:Chitchat.:Quit.")) {
case 1:
@@ -10086,7 +10086,7 @@ man_fild01,315,95,3 script Expedition Scout#1 4_M_MOC_SOLDIER,{
mes "[Expedition Scout]";
mes "Oh, you must be"+strcharinfo(0)+". I heard that you'll be delivering the report.";
next;
- if (.@playtime == 0 || .@playtime == 1) {
+ if (.@playtime == 1) {
mes "[Expedition Scout]";
mes "Searching for lost pages was tougher then I expected. Please come back later when I'm finished making one round.";
close;
@@ -10094,17 +10094,17 @@ man_fild01,315,95,3 script Expedition Scout#1 4_M_MOC_SOLDIER,{
switch(rand(1,6)) {
case 1:
case 6:
- set .@i,2;
+ .@i = 2;
break;
case 3:
- set .@i,3;
+ .@i = 3;
break;
case 4:
- set .@i,5;
+ .@i = 5;
break;
case 2:
case 5:
- set .@i,0;
+ .@i = 0;
break;
}
mes "[Expedition Scout]";
@@ -10116,7 +10116,7 @@ man_fild01,315,95,3 script Expedition Scout#1 4_M_MOC_SOLDIER,{
mes "I'm doing my best, but I haven't found any pages yet.";
next;
}
- if (.@playtime == -1) {
+ if (!.@playtime) {
changequest 3090,3091;
erasequest 3090;
} else
@@ -10163,11 +10163,11 @@ prt_castle,88,165,3 script Laur 1_M_LIBRARYMASTER,{
mes "I knew it was the wrong idea to out a mercenary in the commander position. See, nothing is done on time. Gosh!";
next;
delitem 11012,1; //Expedition_Report
- if (ep13_1_edq == 9) set ep13_1_edq,101;
- else if (ep13_1_edq == 111) set ep13_1_edq,112;
- else if (ep13_1_edq == 121) set ep13_1_edq,122;
+ if (ep13_1_edq == 9) ep13_1_edq = 101;
+ else if (ep13_1_edq == 111) ep13_1_edq = 112;
+ else if (ep13_1_edq == 121) ep13_1_edq = 122;
else if (ep13_1_edq == 113 || ep13_1_edq == 123) {
- set ep13_1_edq,13;
+ ep13_1_edq = 13;
changequest 3093,3094;
}
mes "...";
@@ -10217,11 +10217,11 @@ ra_temple,122,174,3 script Nuria 4_F_RACHOLD,{
mes "I regret admitting that you've brought it much later than I expected, but... I'm glad it is here safely. Please give it to me.";
next;
delitem 11012,1; //Expedition_Report
- if (ep13_1_edq == 9) set ep13_1_edq,111;
- else if (ep13_1_edq == 101) set ep13_1_edq,102;
- else if (ep13_1_edq == 121) set ep13_1_edq,123;
+ if (ep13_1_edq == 9) ep13_1_edq = 111;
+ else if (ep13_1_edq == 101) ep13_1_edq = 102;
+ else if (ep13_1_edq == 121) ep13_1_edq = 123;
else if (ep13_1_edq == 122 || ep13_1_edq == 103) {
- set ep13_1_edq,13;
+ ep13_1_edq = 13;
changequest 3093,3094;
}
mes "...";
@@ -10263,11 +10263,11 @@ lhz_in01,110,174,5 script Gerhart 4_M_KHKYEL,{
mes "Do you know how long I waited for this report? *Sigh* ...Fine, just give it to me.";
next;
delitem 11012,1; //Expedition_Report
- if (ep13_1_edq == 9) set ep13_1_edq,121;
- else if (ep13_1_edq == 101) set ep13_1_edq,103;
- else if (ep13_1_edq == 111) set ep13_1_edq,113;
+ if (ep13_1_edq == 9) ep13_1_edq = 121;
+ else if (ep13_1_edq == 101) ep13_1_edq = 103;
+ else if (ep13_1_edq == 111) ep13_1_edq = 113;
else if (ep13_1_edq == 102 || ep13_1_edq == 112) {
- set ep13_1_edq,13;
+ ep13_1_edq = 13;
changequest 3093,3094;
}
mes "...";
@@ -10360,7 +10360,7 @@ OnTimer600000:
end;
OnMyMobDead:
- set .@spl_fild03_mob_dead,mobcount("spl_fild03","ep13_spl_fild03_mon_edq::OnMyMobDead");
+ .@spl_fild03_mob_dead = mobcount("spl_fild03","ep13_spl_fild03_mon_edq::OnMyMobDead");
if (mobcount("spl_fild03","ep13_spl_fild03_mon_edq::OnMyMobDead") < 10 && (ep13_1_edq == 71 || ep13_1_edq == 72))
getitem 6040,1; //Some_Of_Report
end;
@@ -10483,7 +10483,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
mes "What are you still doing here?";
mes "" + strcharinfo(0) + ", your job is to assist Mr. Kidd.";
mes "Please go help him, will you?";
- set mao_morocc2,1;
+ mao_morocc2 = 1;
setquest 7012;
close;
}
@@ -10513,7 +10513,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
next;
mes "- Her rant doesn't seem to be ending any time soon. You'd better go back and help Mr. Kidd, even if your heart's not in it. -";
next;
- set mao_morocc2,3;
+ mao_morocc2 = 3;
changequest 7013,7014;
next;
mes "[Echinacea]";
@@ -10554,7 +10554,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
next;
mes "[Echinacea]";
mes "Why don't you go show it to him? He might be able to help Mr. Kidd with what he is trying to do.";
- set mao_morocc2,14;
+ mao_morocc2 = 14;
changequest 7022,7023;
close;
}
@@ -10593,8 +10593,8 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
next;
input .@input$;
setarray .@pattern$[0],"SDHF92F-SDF","VWNM94GVWN90","CM3-TRDFGHE0";
- set .@quest, mao_morocc2;
- if (.@quest > 25) set .@quest,.@quest-3;
+ .@quest = mao_morocc2;
+ if (.@quest > 25) .@quest -= 3;
mes "[Echinacea]";
mes "[" + .@input$ + "]";
if (.@input$ == .@pattern$[.@quest-23]) {
@@ -10609,7 +10609,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
mes "It'll take some time before we get the results.";
if (countitem(6029) > 0)
delitem 6029,countitem(6029); //Morocc_Tracing_Log
- set mao_morocc2,29;
+ mao_morocc2 = 29;
changequest 7031+(.@quest-23),7034;
close;
}
@@ -10623,7 +10623,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
next;
mes "[Echinacea]";
mes "Go check the number again.";
- if (mao_morocc2 < 26) set mao_morocc2,.@quest+3;
+ if (mao_morocc2 < 26) mao_morocc2 = .@quest+3;
close;
}
}
@@ -10637,7 +10637,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
mes "[Echinacea]";
mes "To the south of this camp, you'll see a building with a mana detector attached to it.";
mes "Go ask the building manager about the trace results.";
- set mao_morocc2,30;
+ mao_morocc2 = 30;
changequest 7034,7035;
close;
}
@@ -10686,7 +10686,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
next;
mes "[Echinacea]";
mes "Keep up the good work assisting the explorers in this camp.";
- set mao_morocc2,100;
+ mao_morocc2 = 100;
if (checkre(3))
getexp 120000,20000;
else
@@ -10745,7 +10745,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
mes "[Echinacea]";
mes "No country wants to start a war, especially when we have a greater common enemy.";
mes "Just focus on what you can do to help us.";
- set mao_morocc2,101;
+ mao_morocc2 = 101;
setquest 7037;
close;
}
@@ -10798,7 +10798,7 @@ mid_campin,68,185,3 script Pursuit Party Leader#1 1_F_SIGNZISK,{
mes "You believe in peace, don't you?";
mes "Tell him that I'm grateful for these sweet potatoes, anyway..";
delitem 549,2; //Nice_Sweet_Potato
- set mao_morocc2,107;
+ mao_morocc2 = 107;
changequest 7040,7041;
close;
}
@@ -10862,7 +10862,7 @@ mid_camp,191,206,3 script Manager#moc2_finder 4_M_EIN_SOLDIER,{
next;
mes "[Manager]";
mes "That's all for today.";
- set mao_morocc2,31;
+ mao_morocc2 = 31;
changequest 7035,7036;
close;
}
@@ -10921,7 +10921,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
next;
mes "[Mr. Kidd]";
mes "If you don't want to help us out then go back to Echinacea and let her know yourself!";
- set mao_morocc2,2;
+ mao_morocc2 = 2;
changequest 7012,7013;
close2;
break;
@@ -10941,7 +10941,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "At Southwest Morroc, you'll find an underground tavern.";
mes "Go find ^4d4dffRin^000000.";
mes "Tell her I've sent you, and she'll take care of you.";
- set mao_morocc2,4;
+ mao_morocc2 = 4;
changequest 7012,7015;
close2;
break;
@@ -10988,7 +10988,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "At Southwest Morroc, you'll find an underground tavern.";
mes "Go find ^4d4dffRin^000000.";
mes "Tell her I've sent you, and she'll take care of you.";
- set mao_morocc2,4;
+ mao_morocc2 = 4;
changequest 7014,7015;
close2;
}
@@ -11066,7 +11066,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "Now, would you leave me alone for a while? I need to write a report based on the findings in this journal.";
delitem 6029,1; //Morocc_Tracing_Log
delitem 6027,1; //Crystal_Of_Feardoom
- set mao_morocc2,10;
+ mao_morocc2 = 10;
if (checkre(3))
getexp 20000,1000;
else
@@ -11093,7 +11093,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
next;
if ($@moc_mao_gate1 == 0) {
warp "que_dan01",32,27;
- set $@moc_mao_gate1,1;
+ $@moc_mao_gate1 = 1;
end;
}
else {
@@ -11178,7 +11178,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
next;
mes "[Mr. Kidd]";
mes "Thanks in advance.";
- set mao_morocc2,13;
+ mao_morocc2 = 13;
changequest 7021,7022;
close2;
}
@@ -11314,7 +11314,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "[Mr. Kidd]";
mes "Can you go back and spy on them a bit more?";
mes "I'll follow you as soon as I report these findings to the higher-ups.";
- set mao_morocc2,19;
+ mao_morocc2 = 19;
changequest 7027,7028;
close2;
}
@@ -11360,7 +11360,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "[Mr. Kidd]";
mes "Oh, and please bring ^4d4dffthis journal to Rin^000000.";
mes "This will be your last assignment from me.";
- set mao_morocc2,21;
+ mao_morocc2 = 21;
getitem 6027,1; //Crystal_Of_Feardoom
getitem 6029,1; //Morocc_Tracing_Log
changequest 7029,7030;
@@ -11464,7 +11464,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
mes "..I guess he's finally made a fire, huh?";
mes "Tell him thanks for these sweet potatoes.";
delitem 549,2; //Nice_Sweet_Potato
- set mao_morocc2,105;
+ mao_morocc2 = 105;
next;
switch(select("Ask about Dandelion.:Ask about Arunafeltz.")) {
case 1:
@@ -11527,7 +11527,7 @@ mid_camp,199,311,7 script Mr. Kidd#ep13_dan01 4_M_ACROSS,{
end;
OnInit:
- set $@moc_mao_gate1,0; //Global Variable
+ $@moc_mao_gate1 = 0; //Global Variable
end;
}
@@ -11538,7 +11538,7 @@ OnTouch:
mes "[Mr. Kidd]";
mes "" + strcharinfo(0) + "? " + strcharinfo(0) + "?!";
mes "Wake up!";
- set mao_morocc2,12;
+ mao_morocc2 = 12;
close;
}
}
@@ -11620,7 +11620,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
next;
mes "[Defaria]";
mes "I'll be waiting for your return.";
- set mao_morocc2,15;
+ mao_morocc2 = 15;
changequest 7023,7024;
close;
case 2:
@@ -11641,7 +11641,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
delitem 7511,30; //Rune_Of_Darkness
delitem 7563,30; //Bloody_Rune
delitem 6028,1; //Seal_Scroll
- set mao_morocc2,16;
+ mao_morocc2 = 16;
changequest 7024,7025;
close;
}
@@ -11688,7 +11688,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "[Defaria]";
mes "Um, do you mind? Would you stop talking to yourself and just leave already?";
mes "I'm sorry, but this old man needs some rest, alright?";
- set mao_morocc2,17;
+ mao_morocc2 = 17;
getitem 14595,1; //Unsealed_Magic_Spell
changequest 7025,7026;
close;
@@ -11766,7 +11766,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "[Defaria]";
mes "Please bring me ^4d4dff20 Sweet Potatoes and 30 Logs^000000.";
mes "I'll be waiting for your return.";
- set mao_morocc2,102;
+ mao_morocc2 = 102;
changequest 7037,7038;
close;
}
@@ -11819,7 +11819,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "I guess my magic hasn't gotten that rusty after all..";
delitem 516,20; //Sweet_Potato
delitem 7201,30; //Log
- set mao_morocc2,103;
+ mao_morocc2 = 103;
close;
}
else {
@@ -11853,7 +11853,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "...Do you mind delivering these to Mr. Kidd?";
next;
mes "- Defaria has given you 2 Nice Sweet Potatoes. -";
- set mao_morocc2,104;
+ mao_morocc2 = 104;
getitem 549,2; //Nice_Sweet_Potato
changequest 7038,7039;
close;
@@ -11900,7 +11900,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "They're cooked very well.";
next;
mes "- You have received 2 steaming hot Nice Sweet Potatoes. -";
- set mao_morocc2,106;
+ mao_morocc2 = 106;
getitem 549,2; //Nice_Sweet_Potato
changequest 7039,7040;
close;
@@ -11935,7 +11935,7 @@ mid_camp,256,272,3 script Defaria#moc2 4_M_HUGRANFA,{
mes "Ah, your sweet potatoes are now roasted very well.";
mes "Here, enjoy them.";
mes "Thank you for trying so hard to please this whimsical old man.";
- set mao_morocc2,108;
+ mao_morocc2 = 108;
getitem 633,5; //Baked_Yam
completequest 7041;
close;
@@ -12153,7 +12153,7 @@ que_job01,82,95,3 script Bar Master#moc2_01 1_ETC_01,{
mes "You can't expect your job to always go smoothly.";
mes "Of course there will be risks.";
mes "Why don't you go pay her a visit?";
- set mao_morocc2,5;
+ mao_morocc2 = 5;
close;
}
else if (mao_morocc2 > 4) {
@@ -12200,7 +12200,7 @@ que_job01,82,95,3 script Bar Master#moc2_01 1_ETC_01,{
mes "I see. So you're a member of the Ash Vacuum expedition.";
mes "Rin is in the inner room.";
mes "...She's been badly injured and is resting in bed. Don't do anything to shock her, alright?";
- set mao_morocc2,5;
+ mao_morocc2 = 5;
close;
}
else {
@@ -12422,14 +12422,14 @@ que_job01,49,49,5 script Tao#dan_09 4_F_YUNYANG,{
que_job01,51,55,0 script que_job01#room_1 WARPNPC,1,1,{
OnInit:
OnReset:
- set $@moc_mao_room1,0; //Global Variable
+ $@moc_mao_room1 = 0; //Global Variable
end;
OnTouch:
mes "[Tao]";
if (prt_curse == 24) {
if ($@moc_mao_room1 == 0) {
- set $@moc_mao_room1,1; //Global Variable
+ $@moc_mao_room1 = 1; //Global Variable
donpcevent " #room1timer::OnEnable";
donpcevent "Marjana#poison::OnEnable";
mes "Ah, that place is protected";
@@ -12452,7 +12452,7 @@ OnTouch:
}
else if (mao_request > 0) {
if ($@moc_mao_room1 == 0) {
- set $@moc_mao_room1,1; //Global Variable
+ $@moc_mao_room1 = 1; //Global Variable
donpcevent " #room1timer::OnEnable";
donpcevent "Valdes#moc_master_1::OnEnable";
mes "Ah, that place is protected";
@@ -12582,13 +12582,13 @@ que_job01,51,44,0 script que_job01#room_2 WARPNPC,1,1,{
OnInit:
OnReset:
- set $@moc_mao_room2,0; //Global Variable
+ $@moc_mao_room2 = 0; //Global Variable
end;
OnTouch:
if ((mao_morocc2 > 4) && (mao_morocc2 < 10)) {
if ($@moc_mao_room2 == 0) {
- set $@moc_mao_room2,1; //Global Variable
+ $@moc_mao_room2 = 1; //Global Variable
donpcevent " #room2timer::OnEnable";
mes "[Tao]";
mes "The room is also sealed with a security magic spell, meow.";
@@ -12609,7 +12609,7 @@ OnTouch:
}
else if (mao_morocc2 == 21) {
if ($@moc_mao_room2 == 0) {
- set $@moc_mao_room2,1; //Global Variable
+ $@moc_mao_room2 = 1; //Global Variable
donpcevent " #room2timer::OnEnable";
donpcevent "Rin#moc_room2_2::OnEnable";
donpcevent "Rayan#moc_room2_2::OnEnable";
@@ -12632,7 +12632,7 @@ OnTouch:
}
else if ((mao_morocc2 > 21) && (mao_morocc2 < 29)) {
if ($@moc_mao_room2 == 0) {
- set $@moc_mao_room2,1; //Global Variable
+ $@moc_mao_room2 = 1; //Global Variable
donpcevent " #room2timer::OnEnable";
donpcevent "Rin#moc_room2_2::OnEnable";
mes "[Tao]";
@@ -12867,7 +12867,7 @@ que_job01,84,17,3 script Rin#moc_room2_1 4_F_ACROSS,{
mes "[Rin]";
mes "How'd you like to conduct an investigation around that area? We might find something..";
mes "Like important clues or where they've headed...";
- set mao_morocc2,6;
+ mao_morocc2 = 6;
next;
mes "[Rin]";
mes "^4d4dffIf you're interested in helping me, I'll continue talking.^000000";
@@ -12906,7 +12906,7 @@ que_job01,84,17,3 script Rin#moc_room2_1 4_F_ACROSS,{
mes "[Rin]";
mes "While you're gone, I'll be preparing a document to send to Mr. Kidd.";
mes "Be safe, and look out for yourself, okay?";
- set mao_morocc2,7;
+ mao_morocc2 = 7;
changequest 7015,7016;
close2;
}
@@ -12974,7 +12974,7 @@ que_job01,84,17,3 script Rin#moc_room2_1 4_F_ACROSS,{
next;
mes "- You received the journal from Rin.";
mes "Instead of a journal, it's more like a bunch of documents being exchanged. -";
- set mao_morocc2,9;
+ mao_morocc2 = 9;
getitem 6029,1; //Morocc_Tracing_Log
changequest 7017,7018;
close2;
@@ -13181,7 +13181,7 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
mes "...I think he's gone...?";
delitem 6029,1; //Morocc_Tracing_Log
delitem 6027,1; //Crystal_Of_Feardoom
- set mao_morocc2,22;
+ mao_morocc2 = 22;
close2;
}
else {
@@ -13244,15 +13244,15 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
mes "I'll give you the pattern number of his magic wavelength. Can you give the number to Echinacea?";
mes "She'll take care of the rest.";
next;
- set .@rotto,rand(1,3);
- if (.@rotto == 1) set .@pattern$,"SDHF92F-SDF";
- else if (.@rotto == 2) set .@pattern$,"VWNM94GVWN90";
- else set .@pattern$,"CM3-TRDFGHE0";
+ .@rotto = rand(1,3);
+ if (.@rotto == 1) .@pattern$ = "SDHF92F-SDF";
+ else if (.@rotto == 2) .@pattern$ = "VWNM94GVWN90";
+ else .@pattern$ = "CM3-TRDFGHE0";
mes "[Rin]";
mes "The pattern number is...";
mes "^4d4dff["+.@pattern$+"]^000000";
mes "Don't leave out even one character. Okay?";
- set mao_morocc2,22+.@rotto;
+ mao_morocc2 = 22+.@rotto;
getitem 6029,1; //Morocc_Tracing_Log
changequest 7030,7030+.@rotto;
next;
@@ -13293,9 +13293,9 @@ que_job01,144,54,3 script Rin#moc_room2_2 4_F_ACROSS,{
next;
mes "[Rin]";
mes "Make sure you don't forget it again. The pattern number is...";
- if (mao_morocc2 == 26) set .@pattern$,"SDHF92F-SDF";
- else if (mao_morocc2 == 27) set .@pattern$,"VWNM94GVWN90";
- else set .@pattern$,"CM3-TRDFGHE0";
+ if (mao_morocc2 == 26) .@pattern$ = "SDHF92F-SDF";
+ else if (mao_morocc2 == 27) .@pattern$ = "VWNM94GVWN90";
+ else .@pattern$ = "CM3-TRDFGHE0";
mes "^4d4dff["+.@pattern$+"]^000000. Don't leave out even one character. Okay?";
mes "Got it?";
next;
@@ -13382,7 +13382,7 @@ hu_fild04,235,103,0 script Heap of Earth#mao2_01 CLEAR_NPC,4,4,{
mes "I don't think I'll find anything else here...";
mes "I should go back now.";
mes "I hope Rin will understand.";
- set mao_morocc2,8;
+ mao_morocc2 = 8;
getitem 6027,1; //Crystal_Of_Feardoom
changequest 7016,7017;
close;
@@ -13456,7 +13456,7 @@ OnTouch:
mes "A mysterious force is repelling you, and you're unable to push forward into this area.";
close2;
warp "morocc",100,100;
- set $@moc_mao_gate1,0; //Global Variable
+ $@moc_mao_gate1 = 0; //Global Variable
end;
}
end;
@@ -13489,7 +13489,7 @@ OnTimer307000:
OnTimer308000:
enablenpc "#moc2_event_on";
- set $@moc_mao_gate1,0; //Global Variable
+ $@moc_mao_gate1 = 0; //Global Variable
stopnpctimer;
}
@@ -13632,7 +13632,7 @@ que_dan01,49,36,5 script Corpse#moc2_dead01 4_M_DSTMANDEAD,{
next;
mes "^4d4dffYou have obtained a Sealed Magic Scroll.";
mes "Let's bring this to Kidd.^000000";
- set mao_morocc2,11;
+ mao_morocc2 = 11;
getitem 6028,1; //Seal_Scroll
donpcevent "#moc2_event_on::OnStop";
initnpctimer;
@@ -13705,7 +13705,7 @@ OnTimer10000:
end;
OnTimer11000:
- set $@moc_mao_gate1,0; //Global Variable
+ $@moc_mao_gate1 = 0; //Global Variable
end;
}
@@ -13812,7 +13812,7 @@ OnTouch:
mes "I'd better run!";
next;
mes "- You used a Butterfly Wing.-";
- set mao_morocc2,18;
+ mao_morocc2 = 18;
changequest 7026,7027;
close2;
consumeitem 602; //Wing_Of_Butterfly
@@ -13904,7 +13904,7 @@ que_dan02,115,53,3 script Man#moc2_crazyR01 4_M_DSTMAN,{
cutin "mocseal_kid01",255;
next;
mes "- You watched Mr. Kidd arrest the unconscious Rayan and take out a teleportation item. You decide to return to town. -";
- set mao_morocc2,20;
+ mao_morocc2 = 20;
changequest 7028,7029;
close2;
consumeitem 602; //Wing_Of_Butterfly
@@ -13984,7 +13984,7 @@ prontera,161,192,5 script Ash-Vacuum Warper 4_M_MOC_SOLDIER,{
mes "Ok. I hope you";
mes "enjoy your trip.";
close2;
- set ep13_ryu,100;
+ ep13_ryu = 100;
warp "mid_camp",210,291;
end;
case 2:
diff --git a/npc/quests/quests_13_2.txt b/npc/quests/quests_13_2.txt
index f024c5285..9c11d7fb2 100644
--- a/npc/quests/quests_13_2.txt
+++ b/npc/quests/quests_13_2.txt
@@ -416,10 +416,10 @@ function Catwarp {
man_fild02,132,47,4 duplicate(Cat Hand Agent#spl) Cat Hand Agent#man 4_M_BOSSCAT
- script Mysterious Rock#30::manukrock2 -1,{
- if ((countitem(6048) < 3) && (checkquest(12062,PLAYTIME) == -1)) {
+ if (countitem(6048) < 3 && !questprogress(12062,PLAYTIME)) {
specialeffect2 EF_REPAIRWEAPON;
progressbar "ffff00",10;
- set .@rhea_ran,rand(1,20);
+ .@rhea_ran = rand(1,20);
if (.@rhea_ran < 13) getitem 7049,1; //Stone
else if (.@rhea_ran == 13) getitem 990,1; //Boody_Red
else if (.@rhea_ran == 14) getitem 991,1; //Crystal_Blue
@@ -456,32 +456,32 @@ man_fild02,358,174,0 duplicate(manukrock2) Mysterious Rock#39 CLEAR_NPC
man_fild02,241,227,0 duplicate(manukrock2) Mysterious Rock#40 CLEAR_NPC
spl_fild03,226,151,0 script School of Fish#5::FishingHole_spl3 CLEAR_NPC,{
- if ((checkquest(12060,PLAYTIME) == -1) && (countitem(6039) < 20)) {
+ if (!questprogress(12060,PLAYTIME) && countitem(6039) < 20) {
specialeffect2 EF_BUBBLE;
specialeffect2 EF_INVENOM;
- set .@fcast,15;
+ .@fcast = 15;
if (isequipped(2550)) //Fisher's_Muffler
- set .@fcast,.@fcast - 2;
+ .@fcast -= 2;
if (isequipped(2443)) //Fish_Shoes
- set .@fcast,.@fcast - 2;
+ .@fcast -= 2;
if (isequipped(2764)) //Small_Fishing_Rod
- set .@fcast,.@fcast - 3;
+ .@fcast -= 3;
if (isequipped(2775)) //Lure
- set .@fcast,.@fcast - 1;
+ .@fcast -= 1;
if (isequipped(1599)) //Ahura_Mazda
- set .@fcast,.@fcast - 3;
+ .@fcast -= 3;
if (isequipped(2199)) //Angra_Manyu
- set .@fcast,.@fcast - 4;
+ .@fcast -= 4;
progressbar "ffff00",.@fcast;
if (ep13_1_rhea == 13) {
if (rand(1,20) == 2) {
getitem 6037,1; //Rough_File
- set ep13_1_rhea,14;
+ ep13_1_rhea = 14;
specialeffect2 EF_BUBBLE;
mapannounce strcharinfo(3),strcharinfo(0) + " has caught a Loose File.",bc_map,"0xff77ff";
}
}
- set .@rhea_ran,rand(1,70);
+ .@rhea_ran = rand(1,70);
if (.@rhea_ran < 20) getitem 6039,1; //Piece_Of_Fish
else if (.@rhea_ran == 20) getitem 908,1; //Spawn
else if (.@rhea_ran == 21) getitem 909,1; //Jellopy
@@ -497,17 +497,17 @@ spl_fild03,226,151,0 script School of Fish#5::FishingHole_spl3 CLEAR_NPC,{
mes "Nothing was caught.";
close;
}
- set .@rhea_ran5,rand(1,200);
+ .@rhea_ran5 = rand(1,200);
if (.@rhea_ran5 == 3) {
getitem 644,1; //Gift_Box
mapannounce strcharinfo(3),strcharinfo(0) + " has caught a Gift Box.",bc_map,"0x00ffff";
}
- set .@rhea_ran3,rand(1,500);
+ .@rhea_ran3 = rand(1,500);
if (.@rhea_ran3 == 3) {
getitem 603,1; //Old_Blue_Box
mapannounce strcharinfo(3),strcharinfo(0) + " has caught an Old Blue Box.",bc_map,"0x00ffff";
}
- set .@rhea_ran4,rand(1,3000);
+ .@rhea_ran4 = rand(1,3000);
if (.@rhea_ran4 == 3) {
getitem 617,1; //Old_Violet_Box
mapannounce strcharinfo(3),strcharinfo(0) + " has caught an Old Purple Box.",bc_map,"0x44ff44";
@@ -574,7 +574,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "[Arc]";
mes "Now I clearly understand that you are not sent by the giants of Manuk.";
mes "Thank you for telling me these interesting stories.";
- set ep13_mdrama,1;
+ ep13_mdrama = 1;
close;
case 2:
mes "[Arc]";
@@ -661,7 +661,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "[Arc]";
mes "Remember " + strcharinfo(0) + "... you must keep this to yourself...";
mes "Please, find her.";
- set ep13_mdrama,2;
+ ep13_mdrama = 2;
setquest 7056;
close;
case 2:
@@ -755,7 +755,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "Terra!!";
next;
mes "- Arc suddenly began gathering up his gear. -";
- set ep13_mdrama,8;
+ ep13_mdrama = 8;
close;
}
else if (ep13_mdrama == 8) {
@@ -788,7 +788,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "The higher ups won't just remain still...";
mes "I'm sorry to ask you but...";
mes "Please go and bring her back here...";
- set ep13_mdrama,9;
+ ep13_mdrama = 9;
changequest 7058,7059;
close;
}
@@ -841,7 +841,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "[Arc]";
mes "Sometimes you can find Yggdrasilberries around there.";
mes "Go find few more and bring them with you. Hurry!";
- set ep13_mdrama,14;
+ ep13_mdrama = 14;
getitem 607,3; //Yggdrasilberry
changequest 7062,7063;
close;
@@ -880,7 +880,7 @@ spl_in01,32,306,3 script Splendide Guard#ep13md01 4_M_FAIRYSOLDIER,2,2,{
mes "Terra's Yai.";
mes "Which is her Private Residence... It's located at the Southeast direction from here.";
mes "I would like to hear a detailed account of what happened.";
- set ep13_mdrama,26;
+ ep13_mdrama = 26;
changequest 7070,7071;
close;
}
@@ -957,7 +957,7 @@ spl_fild02,45,214,0 script ????#ep13_mdplant01 CLEAR_NPC,{
mes "It looks like this is Terra's trace that Arc told me about.";
next;
mes "A knotted leaf is pointing toward the^4d4dff Southern^000000 direction.";
- set ep13_mdrama,3;
+ ep13_mdrama = 3;
changequest 7056,7057;
close2;
}
@@ -1020,7 +1020,7 @@ spl_fild02,328,323,0 script ????#ep13_mdplant04 CLEAR_NPC,{
mes "But who?";
next;
mes "There are footprints heading ^4d4dffNorth^000000.";
- set ep13_mdrama,4;
+ ep13_mdrama = 4;
close;
}
else if (ep13_mdrama > 3) {
@@ -1040,7 +1040,7 @@ spl_fild01,341,109,0 script ????#ep13_mdplant05 CLEAR_NPC,{
mes "These footsteps can't be a Laphine's...";
next;
mes "There are footprints that lead to^4d4dff the Root of a huge tree^000000.";
- set ep13_mdrama,5;
+ ep13_mdrama = 5;
close;
}
else if (ep13_mdrama > 4) {
@@ -1064,7 +1064,7 @@ OnTouch:
switch(select("Follow the trace.:Looks dangerous... head back.")) {
case 1:
mes "You take a one step forward carefully through the muddy roots and slip.";
- set ep13_mdrama,6;
+ ep13_mdrama = 6;
close2;
percentheal -30,0;
warp "nyd_dun01",72,125;
@@ -1133,7 +1133,7 @@ nyd_dun01,58,223,0 script Petrified Sapha#ep13md03 CLEAR_NPC,{
next;
mes "[" + strcharinfo(0) + "]";
mes "Could it be... Terra was fighting this Giant?";
- set ep13_mdrama,7;
+ ep13_mdrama = 7;
changequest 7057,7058;
next;
mes "[" + strcharinfo(0) + "]";
@@ -1163,7 +1163,7 @@ nyd_dun01,58,223,0 script Petrified Sapha#ep13md03 CLEAR_NPC,{
mes "[" + strcharinfo(0) + "]";
mes "I can't just go back to Arc without anything... he'd be so disappointed...";
mes "Hmm, Should I go to the Sapha's village?";
- set ep13_mdrama,10;
+ ep13_mdrama = 10;
changequest 7059,7060;
close;
}
@@ -1205,7 +1205,7 @@ nyd_dun01,58,223,0 script Petrified Sapha#ep13md03 CLEAR_NPC,{
case 3:
mes "You pick up a fragment of Bradium scattered on the ground.";
mes "This should be enough.";
- set ep13_mdrama,22;
+ ep13_mdrama = 22;
getitem 6085,1; //Shaggy_Muffler
getitem 6084,1; //Bradium_Fragments
changequest 7066,7067;
@@ -1227,7 +1227,7 @@ nyd_dun01,58,223,0 script Petrified Sapha#ep13md03 CLEAR_NPC,{
mes "You carefully strip a worn muffler off of the Sapha's neck.";
mes "We will see if this muffler belongs to Ogen or not...";
mes "This should be enough.";
- set ep13_mdrama,22;
+ ep13_mdrama = 22;
getitem 6085,1; //Shaggy_Muffler
getitem 6084,1; //Bradium_Fragments
changequest 7066,7067;
@@ -1295,7 +1295,7 @@ nyd_dun01,58,223,0 script Petrified Sapha#ep13md03 CLEAR_NPC,{
donpcevent "Snorren#ep13md17::OnDisable";
mes "- Snorren stood up with a bitter smile...";
mes "...I should go back too... I'm worried about Terra. -";
- set ep13_mdrama,24;
+ ep13_mdrama = 24;
changequest 7068,7069;
close;
}
@@ -1390,7 +1390,7 @@ manuk,278,177,5 script Villager#ep13_11 4_MAN_PIOM,{
next;
mes "- The Sapha people are not willing to tell you anything. But the";
mes "captured Fairy may be Terra. -";
- set ep13_mdrama,11;
+ ep13_mdrama = 11;
changequest 7060,7061;
close;
case 2:
@@ -1417,7 +1417,7 @@ manuk,278,177,5 script Villager#ep13_11 4_MAN_PIOM,{
next;
mes "- Fortunately, Sapha had thought I could not understand them,";
mes "but they must be talking about Terra... -";
- set ep13_mdrama,11;
+ ep13_mdrama = 11;
changequest 7060,7061;
close;
}
@@ -1488,7 +1488,7 @@ manuk,281,177,3 script Villager#ep13_12 4_MAN_BENKUNI,{
next;
mes "- The Sapha people are not willing to tell you anything. But the";
mes "captured Fairy may be Terra. -";
- set ep13_mdrama,11;
+ ep13_mdrama = 11;
changequest 7060,7061;
close;
case 2:
@@ -1515,7 +1515,7 @@ manuk,281,177,3 script Villager#ep13_12 4_MAN_BENKUNI,{
next;
mes "- Fortunately, Sapha had thought I could not understand them,";
mes "but they must be talking about Terra... -";
- set ep13_mdrama,11;
+ ep13_mdrama = 11;
changequest 7060,7061;
close;
}
@@ -1679,7 +1679,7 @@ man_in01,175,59,5 script Snorren#ep13_13 4_MAN_PIOM,{
mes "Yeah?!";
mes "Then just wait here for a sec!";
mes "I will go and ask Luik about this!";
- set ep13_mdrama,12;
+ ep13_mdrama = 12;
close;
case 2:
mes "[Snorren]";
@@ -1739,7 +1739,7 @@ man_in01,175,59,5 script Snorren#ep13_13 4_MAN_PIOM,{
next;
mes "[" + strcharinfo(0) + "]";
mes "(I think I have no choice but to go back and ask Arc....)";
- set ep13_mdrama,13;
+ ep13_mdrama = 13;
changequest 7061,7062;
close;
}
@@ -1758,9 +1758,9 @@ man_in01,175,59,5 script Snorren#ep13_13 4_MAN_PIOM,{
next;
mes "[Snorren]";
mes "I will take everything you've brought with you!";
- set .@temp_ig,countitem(607);
+ .@temp_ig = countitem(607);
delitem 607,.@temp_ig; //Yggdrasilberry
- set ep13_mdrama,18;
+ ep13_mdrama = 18;
next;
mes "[Snorren]";
mes "Now, Let's go inside!";
@@ -1833,7 +1833,7 @@ man_in01,175,59,5 script Snorren#ep13_13 4_MAN_PIOM,{
mes "[Snorren]";
mes "Come back anytime...";
mes "Ok?";
- set ep13_mdrama,25;
+ ep13_mdrama = 25;
getitem 6080,15; //Manuk_Coin
changequest 7069,7070;
close;
@@ -1964,7 +1964,7 @@ man_in01,22,126,3 script Captured Laphine#ep13md 4_F_FAIRYKID6,{
mes "[Luik]";
mes "Why did she break down like that? What did she say?";
mes "Tell me what she said!!!";
- set ep13_mdrama,20;
+ ep13_mdrama = 20;
close;
case 2:
mes "[Terra]";
@@ -2011,7 +2011,7 @@ man_in01,22,126,3 script Captured Laphine#ep13md 4_F_FAIRYKID6,{
mes "[Luik]";
mes "Why did she break down like that? What did she say?";
mes "Tell me what she said!!!";
- set ep13_mdrama,20;
+ ep13_mdrama = 20;
close;
}
}
@@ -2079,7 +2079,7 @@ man_in01,17,128,5 script Snorren#ep13md_15 4_MAN_PIOM,{
mes "Yeah, Right.";
mes "" + strcharinfo(0) + ", you should try talking to that Laphine...";
mes "Let's hear her story.";
- set ep13_mdrama,19;
+ ep13_mdrama = 19;
changequest 7064,7065;
close;
}
@@ -2147,7 +2147,7 @@ man_in01,17,128,5 script Snorren#ep13md_15 4_MAN_PIOM,{
mes "Please save Ogen.";
delitem 6085,1; //Shaggy_Muffler
delitem 6084,1; //Bradium_Fragments
- set ep13_mdrama,23;
+ ep13_mdrama = 23;
changequest 7067,7068;
close;
}
@@ -2264,7 +2264,7 @@ man_in01,19,126,3 script Luik#ep13md16 4_MAN_GALTUN,{
next;
mes "[" + strcharinfo(0) + "]";
mes "Don't you dare...try to do any harm to Terra.";
- set ep13_mdrama,21;
+ ep13_mdrama = 21;
changequest 7065,7066;
close;
}
@@ -2317,7 +2317,7 @@ man_in01,19,126,3 script Luik#ep13md16 4_MAN_GALTUN,{
mes "Please save Ogen.";
delitem 6085,1; //Shaggy_Muffler
delitem 6084,1; //Bradium_Fragments
- set ep13_mdrama,23;
+ ep13_mdrama = 23;
changequest 7067,7068;
close;
}
@@ -2456,7 +2456,7 @@ spl_in02,236,92,5 script Arc#ep13md_l02 4_M_FAIRYSOLDIER,{
next;
mes "[Arc]";
mes "I'm sorry this is all I can give you for now.";
- set ep13_mdrama,27;
+ ep13_mdrama = 27;
getitem 6081,25; //Splendide_Coin
if (checkre(3))
getexp 120000,10000;
@@ -2485,7 +2485,7 @@ spl_in02,236,92,5 script Arc#ep13md_l02 4_M_FAIRYSOLDIER,{
mes "["+strnpcinfo(1)+"]";
if (strnpcinfo(1) == "Arc") mes "That's what Terra wants too.";
mes "It might be cramped, but you are always welcome to visit us.";
- set ep13_mdrama,28;
+ ep13_mdrama = 28;
close;
}
else if (ep13_mdrama > 27) {
@@ -2561,7 +2561,7 @@ spl_fild01,357,44,0 script ???#ep13mdf01 CLEAR_NPC,{
mes "There's some kind of fruit lying on the ground.";
mes "I see a small berry inside of a big outer shell...";
mes "It is a Yggdrasil!";
- set ep13_mdrama,15;
+ ep13_mdrama = 15;
getitem 607,1; //Yggdrasilberry
getitem 522,1; //Fruit_Of_Mastela
close;
@@ -2569,7 +2569,7 @@ spl_fild01,357,44,0 script ???#ep13mdf01 CLEAR_NPC,{
else if (ep13_mdrama == 15) {
mes "I've already pulled out a Yggdradsil... but is there anyting else..?";
next;
- set .@apple,rand(1,100);
+ .@apple = rand(1,100);
if (.@apple < 50) {
mes "I've been bitten by an unknown insect.";
mes "It hurts!";
@@ -2610,7 +2610,7 @@ spl_fild01,312,79,0 script ???#ep13mdf02 CLEAR_NPC,{
mes "There's some kind of fruit lying on the ground.";
mes "I see a small berry inside of a big outer shell...";
mes "It is a Yggdrasil!";
- set ep13_mdrama,16;
+ ep13_mdrama = 16;
getitem 607,1; //Yggdrasilberry
getitem 522,1; //Fruit_Of_Mastela
close;
@@ -2618,7 +2618,7 @@ spl_fild01,312,79,0 script ???#ep13mdf02 CLEAR_NPC,{
else if (ep13_mdrama == 16) {
mes "I've already pulled out a Yggdradsil... but is there anyting else..?";
next;
- set .@apple,rand(1,100);
+ .@apple = rand(1,100);
if (.@apple < 50) {
mes "I've been bitten by an unknown insect.";
mes "It hurts!";
@@ -2659,7 +2659,7 @@ spl_fild01,329,29,0 script ???#ep13mdf03 CLEAR_NPC,{
mes "There's some kind of fruit lying on the ground.";
mes "I see a small berry inside of a big outer shell...";
mes "It is a Yggdrasil!";
- set ep13_mdrama,17;
+ ep13_mdrama = 17;
getitem 607,1; //Yggdrasilberry
getitem 522,1; //Fruit_Of_Mastela
changequest 7063,7064;
@@ -2673,7 +2673,7 @@ spl_fild01,329,29,0 script ???#ep13mdf03 CLEAR_NPC,{
else if (ep13_mdrama == 17) {
mes "I've already pulled out a Yggdradsil... but is there anyting else..?";
next;
- set .@apple,rand(1,100);
+ .@apple = rand(1,100);
if (.@apple < 50) {
mes "I've been bitten by an unknown insect.";
mes "It hurts!";
@@ -2747,7 +2747,7 @@ manuk,252,116,3 script Manuk Galtun#ep13_2day 4_MAN_GALTUN,{
mes "[Strom]";
mes "There're monsters called ^4d4dffRata^000000 and ^4d4dffDueyrr^000000.";
mes "If you terminate them, I would regard you as a decent and strong person.";
- set ep13_2_days01,1;
+ ep13_2_days01 = 1;
setquest 7074;
setquest 7075;
close;
@@ -2767,9 +2767,7 @@ manuk,252,116,3 script Manuk Galtun#ep13_2day 4_MAN_GALTUN,{
}
}
else if (ep13_2_days01 == 1) {
- set .@qst_cpl01,checkquest(7074,HUNTING);
- set .@qst_cpl02,checkquest(7075,HUNTING);
- if ((.@qst_cpl01 == 2) & (.@qst_cpl02 == 2)) {
+ if (questprogress(7074,HUNTING) == 2 && questprogress(7075,HUNTING) == 2) {
mes "[Strom]";
mes "Sure enough... I, the Sapha Galtun, Strom, apologize to you. I should not have been so quick to despise you.";
mes "I admit that you are a brave soldier, please feel free to visit Manuk.";
@@ -2779,7 +2777,7 @@ manuk,252,116,3 script Manuk Galtun#ep13_2day 4_MAN_GALTUN,{
mes "If you need to buy something, you can use them.";
completequest 7074;
completequest 7075;
- set ep13_2_days01,2;
+ ep13_2_days01 = 2;
if (checkre(3))
getexp 50000,30000;
else
@@ -2829,10 +2827,8 @@ man_in01,378,276,3 script Manuk Engineer#ep13_2 4_MAN_NITT,{
close;
}
if ((isequipped(2782) == 1) && (ep13_2_rhea > 99)) {
- set .@alba,checkquest(7080);
- if ((.@alba == 0) || (.@alba == 1)) {
- set .@time_chek,checkquest(7080,PLAYTIME);
- if (.@time_chek != 2) {
+ if (questprogress(7080) == 1) {
+ if (questprogress(7080,PLAYTIME) != 2) {
mes "[Manuk Engineer]";
mes "Thank you for collecting the Enriched Bradium for me, it was very helpful.";
mes "We've got more than enough for now though.";
@@ -2847,8 +2843,7 @@ man_in01,378,276,3 script Manuk Engineer#ep13_2 4_MAN_NITT,{
}
}
else {
- set .@alba2,checkquest(7079);
- if ((.@alba2 == 0) || (.@alba2 == 1)) {
+ if (questprogress(7079) == 1) {
if (countitem(6090) > 19) {
mes "[Manuk Engineer]";
mes "Oh, that will do very well.";
@@ -2937,10 +2932,8 @@ spl_in01,97,313,3 script Laphine Craftsman#ep13 4_M_FAIRYKID5,{
}
if ((isequipped(2782) == 1) && (ep13_2_rhea > 99)) {
if (ep13_mdrama > 5) {
- set .@alba,checkquest(7082);
- if (.@alba == 1) {
- set .@time_chek,checkquest(7082,PLAYTIME);
- if ((.@time_chek == 0) || (.@time_chek == 1)) {
+ if (questprogress(7082) == 1) {
+ if (questprogress(7082,PLAYTIME) == 1) {
mes "[Laphine craftsman]";
mes "Thank you for collecting those items for me.";
mes "That should be sufficient for the time being.";
@@ -2952,8 +2945,7 @@ spl_in01,97,313,3 script Laphine Craftsman#ep13 4_M_FAIRYKID5,{
erasequest 7082;
close;
}
- set .@alba2,checkquest(7081);
- if ((.@alba2 == 0) || (.@alba2 == 1)) {
+ if (questprogress(7081) == 1) {
if ((countitem(7326) > 14) && (countitem(6075) > 14)) {
mes "[Laphine craftsman]";
mes "Oh, fantastic.";
@@ -3102,7 +3094,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
next;
if (select("Notice for criminal report:Cute pet investigation.") == 1) {
if (ep13_2_wanted == 1) {
- if (checkquest(7076,HUNTING) == 2) {
+ if (questprogress(7076,HUNTING) == 2) {
mes "[Pinedel]";
mes "Have you hunted the Runaway Dandelion?";
mes "Ok, I accept you.";
@@ -3112,7 +3104,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
mes "This is Rin's cherished treasure box...";
mes "This is enough payment, right?";
completequest 7076;
- set ep13_2_wanted,2;
+ ep13_2_wanted = 2;
getitem 7444,1; //Treasure_Box
close;
}
@@ -3150,7 +3142,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
delitem 6093,10; //Egg_Of_Draco
erasequest 7077;
setquest 7078;
- set ep13_2_dayegg,2;
+ ep13_2_dayegg = 2;
getexp 40000,40000;
getitem 6081,1; //Splendide_Coin
getitem 6080,1; //Manuk_Coin
@@ -3165,14 +3157,14 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
mes "[Pinedel]";
mes "Those eggs are about to hatch now.";
mes "I will investigate those back home.";
- set .@alba_check,checkquest(7078,PLAYTIME);
- if (.@alba_check == -1) {
+ .@alba_check = questprogress(7078,PLAYTIME);
+ if (!.@alba_check) {
close2;
erasequest 7078;
- set ep13_2_dayegg,3;
+ ep13_2_dayegg = 3;
end;
}
- else if ((.@alba_check == 0) || (.@alba_check == 1)) {
+ else if (.@alba_check == 1) {
mes "For now I still need more time.";
next;
mes "[Pinedel]";
@@ -3181,7 +3173,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
}
close2;
erasequest 7078;
- set ep13_2_dayegg,3;
+ ep13_2_dayegg = 3;
end;
}
else if (ep13_2_dayegg == 3) {
@@ -3192,7 +3184,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
if (select("Sure.:Sorry, I can't.") == 1) {
mes "[Pinedel]";
mes "Please collect 10 Draco Eggs.";
- set ep13_2_dayegg,1;
+ ep13_2_dayegg = 1;
setquest 7077;
close;
}
@@ -3217,7 +3209,7 @@ mid_camp,146,306,3 script Pet Breeder#ep13_eden01 4_F_SCIENCE,{
mes "[Pinedel]";
mes "Please collect 10 Draco Eggs.";
mes "Let's work together to make them as pets.";
- set ep13_2_dayegg,1;
+ ep13_2_dayegg = 1;
setquest 7077;
close;
}
@@ -3261,7 +3253,7 @@ mid_camp,192,239,4 script Wanted Sign#ep13_2ect01 4_BOARD3,{
mes "Do you accept Rin's request?";
if (select("I accept that request.:No, I can't.") == 1) {
mes "I accepted Rin's request.";
- set ep13_2_wanted,1;
+ ep13_2_wanted = 1;
setquest 7076;
close;
}
@@ -3537,7 +3529,7 @@ mid_camp,197,237,3 script Schwartzvalt Mechanic#1 4_M_LGTMAN,{
mes "[Mechanic Engineer Dorance]";
mes "The ^0000ff Arunafeltz Linguist^000000 should be on the second floor of the Alliance Headquarters.";
setquest 8243;
- set ep13_2_rhea,1;
+ ep13_2_rhea = 1;
close;
}
else if ((ep13_2_rhea > 0) && (ep13_2_rhea < 7)) {
@@ -3590,7 +3582,7 @@ mid_camp,197,237,3 script Schwartzvalt Mechanic#1 4_M_LGTMAN,{
mes "While you are gone, I be here organizing these documents.";
completequest 8248;
setquest 8249;
- set ep13_2_rhea,8;
+ ep13_2_rhea = 8;
close;
}
else if ((ep13_2_rhea > 7) && (ep13_2_rhea < 11)) {
@@ -3634,12 +3626,11 @@ mid_camp,197,237,3 script Schwartzvalt Mechanic#1 4_M_LGTMAN,{
mes "With all preperation done, allow me about one hour to finish this thing.";
completequest 8252;
setquest 8253;
- set ep13_2_rhea,12;
+ ep13_2_rhea = 12;
close;
}
else if (ep13_2_rhea == 12) {
- set .@trs_time01,checkquest(8253,PLAYTIME);
- if (.@trs_time01 == 2) {
+ if (questprogress(8253,PLAYTIME) == 2) {
mes "[Mechanic Engineer Dorance]";
mes "Sigh, What should I do now?!";
next;
@@ -3703,7 +3694,7 @@ mid_camp,197,237,3 script Schwartzvalt Mechanic#1 4_M_LGTMAN,{
mes "Thank you for helping us out.";
mes "I hope this ring would be a big help for your journey through the other world.";
completequest 8253;
- set ep13_2_rhea,100;
+ ep13_2_rhea = 100;
if (checkre(3))
getexp 200000,5000;
else
@@ -3814,9 +3805,7 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "[Linguist Dictionary]";
mes "Have you met the other world's people by any chance?";
next;
- set .@check_splque00,checkquest(2158);
- set .@check_manque00,checkquest(2159);
- if ((.@check_splque00 == 0) && (.@check_manque00 == 0)) {
+ if (!questprogress(2158) && !questprogress(2159)) {
// custom translation
mes "[Linguist Dictionary]";
mes "Looks like you haven't encountered them yet.";
@@ -3840,7 +3829,7 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "Do me a favor and go outside of the camp, find the fairies and wooden giants, and remember everything that they are saying, word for word so that I can hear what their language sounds like.";
completequest 8243;
setquest 8244;
- set ep13_2_rhea,2;
+ ep13_2_rhea = 2;
close;
}
else {
@@ -3866,14 +3855,12 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "Do me a favor and go outside of the camp, find the fairies and wooden giants, and remember everything that they are saying, word for word so that I can hear what their language sounds like.";
completequest 8243;
setquest 8244;
- set ep13_2_rhea,2;
+ ep13_2_rhea = 2;
close;
}
}
else if (ep13_2_rhea == 2) {
- set .@check_splque00,checkquest(2158);
- set .@check_manque00,checkquest(2159);
- if ((.@check_splque00 > 0) && (.@check_manque00 > 0)) {
+ if (questprogress(2158) && questprogress(2159)) {
mes "[Linguist Dictionary]";
mes "You are back!";
next;
@@ -3884,45 +3871,45 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "[Linguist Dictionary]";
mes "Now, let's start with the Fairies! What is the fairy's language like? Please write them down here sentence by sentence!";
next;
- set .@spl_score00,0;
+ .@spl_score00 = 0;
input .@input$;
if (.@input$ == "RLGHLRXLA TKANTLFDMS") {
mes "[Linguist Dictionary]";
mes ""+ .@input$ +"....";
mes "And?";
- set .@spl_score01,.@spl_score00+1;
+ .@spl_score01 = .@spl_score00+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "Mmm... Hmm...?";
- set .@spl_score01,.@spl_score00;
+ .@spl_score01 = .@spl_score00;
next;
}
input .@input$;
if (.@input$ == "WJACK TNAHRDNJSDMFH") {
mes ""+ .@input$ +"....";
mes "And?";
- set .@spl_score02,.@spl_score01+1;
+ .@spl_score02 = .@spl_score01+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "I see...?";
- set .@spl_score02,.@spl_score01;
+ .@spl_score02 = .@spl_score01;
next;
}
input .@input$;
if ((.@input$ == "WLSGHKWND !!") || (.@input$ == "WLSGHKWND")) {
mes ""+ .@input$ +"....";
mes "Is that all?";
- set .@spl_score03,.@spl_score02+1;
+ .@spl_score03 = .@spl_score02+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "Is that all?";
- set .@spl_score03,.@spl_score02;
+ .@spl_score03 = .@spl_score02;
next;
}
if (.@spl_score03 > 2) {
@@ -3949,45 +3936,45 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "[Linguist Dictionary]";
mes "Good. then next is the Wooden Giants! What's their language like? Write them down sentence by sentence just as you did with the Fairy's.";
next;
- set .@man_score00,0;
+ .@man_score00 = 0;
input .@input$;
if (.@input$ == "TJDTMFJDNS CJFDI") {
mes "[Linguist Dictionary]";
mes ""+ .@input$ +"....";
mes "And?";
- set .@man_score01,.@man_score00+1;
+ .@man_score01 = .@man_score00+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "And?";
- set .@man_score01,.@man_score00;
+ .@man_score01 = .@man_score00;
next;
}
input .@input$;
if (.@input$ == "TKADLFDMF QKATOS") {
mes ""+ .@input$ +"....";
mes "And?";
- set .@man_score02,.@man_score01+1;
+ .@man_score02 = .@man_score01+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "And?";
- set .@man_score02,.@man_score01;
+ .@man_score02 = .@man_score01;
next;
}
input .@input$;
if ((.@input$ == "EKDTLSDML DLFMADMS..") || (.@input$ == "EKDTLSDML DLFMADMS")) {
mes ""+ .@input$ +"....";
mes "This is it?";
- set .@man_score03,.@man_score02+1;
+ .@man_score03 = .@man_score02+1;
next;
}
else {
mes ""+ .@input$ +"....";
mes "Is that all?";
- set .@man_score03,.@man_score02;
+ .@man_score03 = .@man_score02;
next;
}
if (.@man_score03 > 2) {
@@ -4018,7 +4005,7 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "....Ummmm...";
next;
mes "- Dictionary stared at the paper intently. -";
- set ep13_2_rhea,3;
+ ep13_2_rhea = 3;
close;
}
else {
@@ -4097,7 +4084,7 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "It's difficult to continue on a research without some more samples of language. Please do my favor.";
completequest 8244;
setquest 8245;
- set ep13_2_rhea,4;
+ ep13_2_rhea = 4;
close;
}
else if ((ep13_2_rhea > 3) && (ep13_2_rhea < 6)) {
@@ -4132,7 +4119,7 @@ mid_campin,168,82,3 script Arunafeltz Linguist#1 4_M_TRAINEE,{
mes "I wonder what the Mechanic Engineer from the Schwaltzvalt Republic would think... Would you be kind to go ask him?";
completequest 8247;
setquest 8248;
- set ep13_2_rhea,7;
+ ep13_2_rhea = 7;
close;
}
else if ((ep13_2_rhea > 6) && (ep13_2_rhea < 13)) {
@@ -4252,13 +4239,11 @@ mid_camp,147,256,3 script Rune Midgarts Magician#1 4_M_JOB_WIZARD,{
mes "Assassins installed a trap to protect Gems as they bury them.";
completequest 8245;
setquest 8246;
- set ep13_2_rhea,5;
+ ep13_2_rhea = 5;
close;
}
else if (ep13_2_rhea == 5) {
- set .@check_spljew00,checkquest(8241);
- set .@check_manjew00,checkquest(8242);
- if ((.@check_spljew00 > 0) && (.@check_manjew00 > 0)) {
+ if (questprogress(8241) && questprogress(8242)) {
if (countitem(7575) > 0) && (countitem(7576) > 0) {
mes "[Magician Whisper]";
mes "Wow, You are back already!";
@@ -4285,7 +4270,7 @@ mid_camp,147,256,3 script Rune Midgarts Magician#1 4_M_JOB_WIZARD,{
setquest 8247;
delitem 7575,1; //Red_Jewel_
delitem 7576,1; //Blue_Jewel_
- set ep13_2_rhea,6;
+ ep13_2_rhea = 6;
close;
}
else {
@@ -4348,7 +4333,7 @@ mid_camp,147,256,3 script Rune Midgarts Magician#1 4_M_JOB_WIZARD,{
mes "While you are gone, I will organize the data to put into the Gem.";
completequest 8249;
setquest 8250;
- set ep13_2_rhea,9;
+ ep13_2_rhea = 9;
close;
}
else if (ep13_2_rhea == 9) {
@@ -4385,7 +4370,7 @@ mid_camp,147,256,3 script Rune Midgarts Magician#1 4_M_JOB_WIZARD,{
completequest 8250;
setquest 8251;
delitem 6048,1; //Unidentified_Mineral
- set ep13_2_rhea,10;
+ ep13_2_rhea = 10;
close;
}
else {
@@ -4423,7 +4408,7 @@ mid_camp,147,256,3 script Rune Midgarts Magician#1 4_M_JOB_WIZARD,{
mes "- ^0000ff from Whisper !!^000000 -";
completequest 8251;
setquest 8252;
- set ep13_2_rhea,11;
+ ep13_2_rhea = 11;
close;
}
else {
@@ -4475,7 +4460,7 @@ function script jewel_13_2 {
close;
}
else if (ep13_2_rhea == 5) {
- if (checkquest(8240+getarg(1)) == -1) {
+ if (!questprogress(8240+getarg(1))) {
mes "- Under a round pile of earth, -";
mes "- there's a "+getarg(0)+" Gem -";
mes "- half-buried. -";
@@ -4588,7 +4573,7 @@ mid_camp,7,3,0 script Translator Preparation#1 4_M_PAY_SOLDIER,{
mes "[EP13 Translator Quest Preparation]";
mes "First, you must confirm that you are my master.";
next;
- set .@i, callfunc("F_GM_NPC",1854,0);
+ .@i = callfunc("F_GM_NPC",1854,0);
if (.@i == -1) {
mes "[EP 13 Translator Quest Preparation]";
mes "Cancelled";
@@ -4619,7 +4604,7 @@ mid_camp,7,3,0 script Translator Preparation#1 4_M_PAY_SOLDIER,{
}
mes "[EP 13 Translator Quest Preparation]";
mes "Episode 13.1 - The Report Quest Reward Item Received.";
- set ep13_1_edq,14;
+ ep13_1_edq = 14;
close;
case 2:
mes "[EP 13 Translator Quest Preparation]";
@@ -4707,7 +4692,7 @@ man_in01,372,221,5 script Scientist#lifeguard 4_MAN_BENKUNI,{
mes "[Dr. Lifeguard]";
mes "I'll draw a result that can";
mes "satisfy his lead!";
- set ep13_2_tre,1;
+ ep13_2_tre = 1;
close;
}
else if ((ep13_2_tre == 1) || (ep13_2_tre == 100)) {
@@ -4716,8 +4701,7 @@ man_in01,372,221,5 script Scientist#lifeguard 4_MAN_BENKUNI,{
mes "Why not put some of your items in storage and come back?";
close;
}
- set .@dayq_chk,checkquest(2182,PLAYTIME);
- if ((.@dayq_chk == 0) || (.@dayq_chk == 1)) {
+ if (questprogress(2182,PLAYTIME) == 1) {
mes "The future of the Sapha is up to you.";
mes "I do not have any need of your help right now.";
close;
@@ -4765,7 +4749,7 @@ man_in01,372,221,5 script Scientist#lifeguard 4_MAN_BENKUNI,{
mes "Take it, it shold be";
mes "helpful in collecting";
mes "the minerals I need.";
- set ep13_2_tre,atoi(.@rand_dayq$[2]);
+ ep13_2_tre = atoi(.@rand_dayq$[2]);
setquest 2179+(atoi(.@rand_dayq$[2])-2);
getitem 6076,1; //Portable_Toolbox
close;
@@ -4786,15 +4770,15 @@ man_in01,372,221,5 script Scientist#lifeguard 4_MAN_BENKUNI,{
mes "[Dr. Lifeguard]";
mes "If you want to help my study for the sake of the Sapha, come to me at any time.";
mes "I will be very happy for any help you can give.";
- set .@stone_chk,countitem(6077);
- set .@stoneelse_chk,countitem(6078);
+ .@stone_chk = countitem(6077);
+ .@stoneelse_chk = countitem(6078);
delitem 6077,.@stone_chk; //Rough_Mineral
delitem 6078,.@stoneelse_chk; //Stone_Fragments
delitem 6076,1; //Portable_Toolbox
getitem 6080,3; //Manuk_Coin
getexp 0,(checkre(3))?50000:700000; //unconfirmed (RE)
changequest 2179+(ep13_2_tre-2),2182;
- set ep13_2_tre,100;
+ ep13_2_tre = 100;
close;
}
else {
@@ -4821,9 +4805,9 @@ man_in01,372,221,5 script Scientist#lifeguard 4_MAN_BENKUNI,{
function script find_13_2 {
switch (getarg(0)) {
- case 0: setarray .@check[0],2,10; set .@str$,"Mt. Mjolnir"; break;
- case 1: setarray .@check[0],3,5; set .@str$,"Abyss Lake"; break;
- case 2: setarray .@check[0],4,5; set .@str$,"Thor Volcano"; break;
+ case 0: setarray .@check[0],2,10; .@str$ = "Mt. Mjolnir"; break;
+ case 1: setarray .@check[0],3,5; .@str$ = "Abyss Lake"; break;
+ case 2: setarray .@check[0],4,5; .@str$ = "Thor Volcano"; break;
}
if (ep13_2_tre != .@check[0] || countitem(6076) != 1 || countitem(6077) >= .@check[1]) end;
mes "- Just arrived at "+.@str$+". I think I can find the mineral by using the Mineral Detector in the Portable Toolbox. -";
@@ -4894,7 +4878,7 @@ mjolnir_12,220,37,0 duplicate(mjo_no_find) #mj12_find_3 -1,5,5
else {
mes "- You succeeded to mine minerals. -";
emotion e_ic,1;
- set .@stst,rand(1,5);
+ .@stst = rand(1,5);
if (.@stst == 5) getitem 6077,5; //Rough_Mineral
else if (.@stst == 1) getitem 6077,1; //Rough_Mineral
else getitem 6077,2; //Rough_Mineral
@@ -5245,7 +5229,7 @@ OnTouch:
else {
mes "- You succeeded to mine minerals. -";
emotion e_ic,1;
- set .@stst,rand(1,5);
+ .@stst = rand(1,5);
if (.@stst == 5) getitem 6077,5; //Rough_Mineral
else if (.@stst == 1) getitem 6077,2; //Rough_Mineral
else getitem 6077,1; //Rough_Mineral
@@ -5378,7 +5362,7 @@ OnTouch:
else {
mes "- You succeeded to mine minerals. -";
emotion e_ic,1;
- set .@stst,rand(1,5);
+ .@stst = rand(1,5);
if (.@stst == 5) getitem 6077,5; //Rough_Mineral
else if (.@stst == 1) getitem 6077,2; //Rough_Mineral
else getitem 6077,1; //Rough_Mineral
@@ -5465,11 +5449,11 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
mes "Why not put some of your items in storage and come back?";
close;
}
- set .@dayq_chk,checkquest(2186,PLAYTIME);
- if ((.@dayq_chk == -1) || (.@dayq_chk == 2)) {
+ .@dayq_chk = questprogress(2186,PLAYTIME);
+ if (!.@dayq_chk || .@dayq_chk == 2) {
if ((ep13_2_tre1 < 1) || (ep13_2_tre1 == 6)) {
erasequest 2186;
- set ep13_2_tre1,0;
+ ep13_2_tre1 = 0;
mes "[Grenouille]";
mes "I've heard that some strangers from Rune Midgard are around here, it must be you.";
mes "I'm Grenouille, a scientist.";
@@ -5547,7 +5531,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
mes "depending on the Splendide device,";
mes "but ^FF0000the way^000000 can fill";
mes "Splendide by it's scent like it never falls!";
- set ep13_2_tre1,1;
+ ep13_2_tre1 = 1;
setquest 2183;
close;
}
@@ -5579,7 +5563,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
mes "[Grenouille]";
mes "Would you please wait a while?";
changequest 2183,2184;
- set ep13_2_tre1,4;
+ ep13_2_tre1 = 4;
delitem 6079,1; //Flower_Of_Alfheim
close;
}
@@ -5590,7 +5574,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
}
}
else if (ep13_2_tre1 == 4) {
- set .@ttalk,rand(1,10);
+ .@ttalk = rand(1,10);
if (.@ttalk < 8) {
mes "- clitter-clatter -";
next;
@@ -5632,7 +5616,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
mes "Here, I'll give you this perfume,";
mes "help the exhausted soldiers and";
mes "let me know the result, please!";
- set ep13_2_tre1,5;
+ ep13_2_tre1 = 5;
getitem 6082,5; //Spirit_Of_Alfheim
changequest 2184,2185;
close;
@@ -5656,7 +5640,7 @@ spl_in01,30,324,3 script High Laphine#grenouille 4_M_FAIRYKID5,{
mes "This is my reward for you.";
mes "I hope this will be helpful to you.";
mes "If you have something to talk to me about, come to me whenever. Nice to meet you, human from Rune Midgard.";
- set ep13_2_tre1,6;
+ ep13_2_tre1 = 6;
changequest 2185,2186;
getitem 6081,3; //Splendide_Coin
if (checkre(3) == 0)
@@ -5743,7 +5727,7 @@ spl_in02,139,65,3 script Middle-Ranked Laphine#la 4_F_FAIRYKID3,{
mes "Umm.. But I don't have";
mes "any other seed of flower..";
mes "So, just bring this, here you are~";
- set ep13_2_tre1,2;
+ ep13_2_tre1 = 2;
getitem 7193,1; //Germinating_Sprout
close;
}
@@ -5759,7 +5743,6 @@ spl_in02,139,65,3 script Middle-Ranked Laphine#la 4_F_FAIRYKID3,{
mes "Can you believe that right in front of us is a battle field? Though it's very silent and peaceful at the moment. So do I~";
close;
}
-
}
else {
mes "[Middle-Ranked Laphine]";
@@ -5783,7 +5766,7 @@ spl_in02,139,65,3 script Middle-Ranked Laphine#la 4_F_FAIRYKID3,{
mes "a big flower of Alfheim was lied";
mes "in your hand, instead of the seed. -";
delitem 7193,1; //Germinating_Sprout
- set ep13_2_tre1,3;
+ ep13_2_tre1 = 3;
getitem 6079,1; //Flower_Of_Alfheim
close;
}
@@ -6342,7 +6325,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Bazett]";
mes "Hopefully I can find what I am looking for with the information you can find.";
- set ep13_2_busut,2;
+ ep13_2_busut = 2;
setquest 11101;
close;
case 2:
@@ -6356,7 +6339,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Industrious Man]";
mes "Well if you decide to change your mind, come back to me.";
- set ep13_2_busut,1;
+ ep13_2_busut = 1;
close;
}
break;
@@ -6383,7 +6366,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Bazett]";
mes "Hopefully I can find what I am looking for with the information you can find.";
- set ep13_2_busut,2;
+ ep13_2_busut = 2;
setquest 11101;
close;
case 3:
@@ -6415,7 +6398,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Industrious Man]";
mes "Well if you decide to change your mind, come back to me.";
- set ep13_2_busut,1;
+ ep13_2_busut = 1;
close;
}
}
@@ -6491,7 +6474,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Bazett]";
mes "Hopefully I can find what I am looking for with the information you can find.";
- set ep13_2_busut,2;
+ ep13_2_busut = 2;
setquest 11101;
close;
case 2:
@@ -6516,11 +6499,11 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
next;
mes "[Bazett]";
mes "Got it? Ok take care and see you soon.";
- set ep13_2_busut,3;
- set ep13_2_bs1,1;
- set ep13_2_bs2,1;
- set ep13_2_bs3,1;
- set ep13_2_bs4,1;
+ ep13_2_busut = 3;
+ ep13_2_bs1 = 1;
+ ep13_2_bs2 = 1;
+ ep13_2_bs3 = 1;
+ ep13_2_bs4 = 1;
getitem 6074,1; //Bazett's_Order
changequest 11101,11102;
close;
@@ -6564,7 +6547,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
mes "You must be tired, go take a rest.";
mes "I'll go prepare new notes.";
mes "You can just go investigate again for me.";
- set ep13_2_busut,7;
+ ep13_2_busut = 7;
erasequest 11102;
setquest 11104;
close;
@@ -6597,7 +6580,7 @@ mid_camp,283,198,5 script Bazett Teablack#ep13bs 4_M_ALCHE_D,{
mes "Ah... this isn't much, but it's a coin that the giants use.";
mes "Maybe you can buy something from them with this.";
delitem 6074,1; //Bazett's_Order
- set ep13_2_busut,7;
+ ep13_2_busut = 7;
if (ep13_2_bs1 == 3) getitem 6080,1; //Manuk_Coin
if (ep13_2_bs2 == 3) getitem 6080,1; //Manuk_Coin
if (ep13_2_bs3 == 3) getitem 6080,1; //Manuk_Coin
@@ -6704,7 +6687,7 @@ manuk,193,135,0 script Worker#ep13bs 4_MAN_PIOM,{
next;
mes "[Gill]";
mes "Sorry, again for making you do this but I will be waiting here for you.";
- set ep13_2_bs1,2;
+ ep13_2_bs1 = 2;
setquest 11105;
close;
}
@@ -6718,8 +6701,8 @@ manuk,193,135,0 script Worker#ep13bs 4_MAN_PIOM,{
mes "It's all because of you, we are able to prevent anything disastrous.";
mes "^0000FFEven though you're also an alien race, but compared to the vile fairies^000000, I'm glad to have met someone like "+strcharinfo(0)+".";
delitem 6032,30; //Horn_Of_Hilsrion
- set ep13_2_bs1,3;
- set ep13_2_busut,4;
+ ep13_2_bs1 = 3;
+ ep13_2_busut = 4;
completequest 11105;
close;
}
@@ -6826,7 +6809,7 @@ manuk,193,135,0 script Worker#ep13bs 4_MAN_PIOM,{
next;
mes "[Gill]";
mes "I'm really sorry, so please hurry.";
- set ep13_2_bs1,2;
+ ep13_2_bs1 = 2;
setquest 11105;
close;
}
@@ -6840,7 +6823,7 @@ manuk,193,135,0 script Worker#ep13bs 4_MAN_PIOM,{
mes "It's all because of you, we are able to prevent anything disastrous.";
mes "^0000FFEven though you're also an alien race, but compared to the vile fairies^000000, I'm glad to have met someone like "+strcharinfo(0)+".";
delitem 6032,30; //Horn_Of_Hilsrion
- set ep13_2_bs1,3;
+ ep13_2_bs1 = 3;
completequest 11105;
close;
}
@@ -6926,8 +6909,8 @@ nyd_dun02,139,274,0 script Strange Device#ep13_in CLEAR_NPC,3,3,{
close;
}
else {
- set $@08_ep13nydun02_in,1;
- set .@way_loot,rand(1,2);
+ $@08_ep13nydun02_in = 1;
+ .@way_loot = rand(1,2);
if (.@way_loot == 1) {
donpcevent "ep13_warp_s1::OnEnable";
donpcevent "ep13_warp_11::OnEnable";
@@ -6956,7 +6939,7 @@ nyd_dun02,139,274,0 script Strange Device#ep13_in CLEAR_NPC,3,3,{
OnTimer70000:
donpcevent "ep13_nd2f_mng::OnReset";
- set $@08_ep13nydun02_in,0;
+ $@08_ep13nydun02_in = 0;
stopnpctimer;
end;
@@ -7306,7 +7289,7 @@ nyd_dun02,1,1,0 script ep13_nd2f_mng CLEAR_NPC,{
switch(select("Yes:No")) {
case 1:
donpcevent "ep13_nd2f_mng::OnReset";
- set $@08_ep13nydun02_in,0;
+ $@08_ep13nydun02_in = 0;
mes "Done.";
close;
case 2:
diff --git a/npc/quests/quests_airship.txt b/npc/quests/quests_airship.txt
index 49478877d..2a3b5103d 100644
--- a/npc/quests/quests_airship.txt
+++ b/npc/quests/quests_airship.txt
@@ -54,7 +54,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
mes "It's a strange favor to ask, but I'll pay you back as soon as you return.";
next;
setquest 2079;
- set kain_ticket, 5;
+ kain_ticket = 5;
mes "^3355FFKain Himere has given you a small box.^000000";
close;
}
@@ -64,7 +64,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
if (kain_ticket == 0) {
switch(select("About the Airship...:Leave a Comment")) {
case 1:
- set kain_ticket, 1;
+ kain_ticket = 1;
mes "[Kain Himere]";
mes "Is this your first time flying? Hahaha, I understand how nervous you might be since I used to feel the same way.";
next;
@@ -122,7 +122,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
} else if (kain_ticket == 1) {
switch(select("About the Airship...:Make a remark")) {
case 1:
- set kain_ticket, 2;
+ kain_ticket = 2;
mes "[Kain Himere]";
mes "You want to hear more";
mes "about the Airship? Hmm, I don't know too many stories that I could tell you.";
@@ -269,7 +269,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
next;
switch(select("Einbroch:Juno")) {
case 1:
- set kain_ticket, 4;
+ kain_ticket = 4;
mes "["+strcharinfo(0)+"]";
mes "I'm heading";
mes "to Einbroch.";
@@ -280,7 +280,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
mes "that thing. Hold on...";
close;
case 2:
- set kain_ticket, 3;
+ kain_ticket = 3;
mes "["+strcharinfo(0)+"]";
mes "I'm heading";
mes "to Juno.";
@@ -299,7 +299,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
next;
switch(select("Einbroch:Juno")) {
case 1:
- set kain_ticket, 4;
+ kain_ticket = 4;
mes "["+strcharinfo(0)+"]";
mes "I'm heading";
mes "to Einbroch.";
@@ -389,7 +389,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
mes "[Kain Himere]";
mes "Would be so kind as to help me by finding that journal and seeing if Tarsha is my daughter?";
changequest 2081,2082;
- set kain_ticket, 11;
+ kain_ticket = 11;
close;
}
} else if (kain_ticket == 11 || kain_ticket == 12) {
@@ -425,7 +425,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
mes "I know this isn't much, but please understand that it's all I can give you. God bless you for your all your help!";
delitem 7276, 1;
completequest 2085;
- set kain_ticket, 15;
+ kain_ticket = 15;
getitem 7311, 4;
close;
} else {
@@ -451,7 +451,7 @@ airplane,47,61,7 script Crewman 4_M_ZONDAOYAJI,{
ein_in01,227,279,3 script #door_ein -1,5,5,{
OnTouch:
if (kain_ticket == 5) {
- set kain_ticket, 6;
+ kain_ticket = 6;
mes "["+strcharinfo(0)+"]";
mes "Excuse me...?";
next;
@@ -498,7 +498,7 @@ OnTouch:
close;
case 2:
changequest 2079,2080;
- set kain_ticket, 7;
+ kain_ticket = 7;
mes "[Elle Cherno]";
mes "This...?";
mes "It's the Miner's Song!";
@@ -548,7 +548,7 @@ OnTouch:
mes "doodled message";
mes "in your hand.^000000";
changequest 2084,2085;
- set kain_ticket, 14;
+ kain_ticket = 14;
getitem 7276, 1; //Picture_Letter
close;
}
@@ -562,7 +562,7 @@ OnTouch:
ein_in01,123,94,1 script Theo Cherno 4_M_REPAIR,{
if (kain_ticket == 7) {
callfunc "F_Cherno";
- set kain_ticket, 8;
+ kain_ticket = 8;
close;
} else if (kain_ticket > 7 && kain_ticket < 10) {
mes "[Theo Cherno]";
@@ -600,7 +600,7 @@ ein_in01,123,94,1 script Theo Cherno 4_M_REPAIR,{
ein_in01,125,99,3 script Tarsha Cherno 4_F_EINWOMAN,{
if (kain_ticket == 7) {
callfunc "F_Cherno";
- set kain_ticket, 8;
+ kain_ticket = 8;
close;
} else if (kain_ticket == 8) {
mes "[Tarsha Cherno]";
@@ -669,7 +669,7 @@ ein_in01,125,99,3 script Tarsha Cherno 4_F_EINWOMAN,{
mes "["+strcharinfo(0)+"]";
mes "I've got to go check something now, but hopefully I'll be back soon with good news!";
changequest 2080,2081;
- set kain_ticket, 10;
+ kain_ticket = 10;
close;
} else if (kain_ticket == 10 || kain_ticket == 11) {
mes "["+strcharinfo(0)+"]";
@@ -737,7 +737,7 @@ ein_in01,125,99,3 script Tarsha Cherno 4_F_EINWOMAN,{
mes "Ah, right.";
mes "Elle wants to see you again. Would you be so kind as to see her before you go?";
changequest 2083,2084;
- set kain_ticket, 13;
+ kain_ticket = 13;
close;
case 3:
mes "^3355FFUh oh...";
@@ -1018,7 +1018,7 @@ ein_in01,121,99,3 script Mirror#ein HIDDEN_NPC,{
mes "^3355FFAfter enjoying that little epiphany, you see a reflection of Tarsha's neck as you set the mirror back down.^000000";
next;
mes "^3355FFAs you take a closer look, you find that there's a strange mark around her neck...^000000";
- set kain_ticket, 9;
+ kain_ticket = 9;
close;
}
}
@@ -1040,7 +1040,7 @@ einbech,45,113,5 script Tree#t1-1::Tree HIDDEN_NPC,{
mes "......";
mes ".........";
next;
- set .@find_diary,rand(1,100);
+ .@find_diary = rand(1,100);
if (.@find_diary > 10) {
mes "^3355ffUnfortunately,";
mes "you weren't able";
@@ -1056,7 +1056,7 @@ einbech,45,113,5 script Tree#t1-1::Tree HIDDEN_NPC,{
next;
mes "^3355FFThat was the last page of the journal. You picked it up so that you can bring it over to ^3131FFTarsha.^000000";
changequest 2082,2083;
- set kain_ticket, 12;
+ kain_ticket = 12;
close;
}
} else if (kain_ticket == 12) {
@@ -1160,7 +1160,7 @@ ein_in01,117,80,5 script Unidentified Machine#as HIDDEN_NPC,{
mes "your items again.";
close;
} else {
- set .@choice, select(getitemname(getbrokenid(1)),getitemname(getbrokenid(2)),
+ .@choice = select(getitemname(getbrokenid(1)),getitemname(getbrokenid(2)),
getitemname(getbrokenid(3)),getitemname(getbrokenid(4)),getitemname(getbrokenid(5)),
getitemname(getbrokenid(6)),getitemname(getbrokenid(7)),getitemname(getbrokenid(8)),
getitemname(getbrokenid(9)),getitemname(getbrokenid(10)));
@@ -1511,7 +1511,7 @@ OnTimer410000:
mapannounce "airplane_01","We will arrive in Izlude shortly.",bc_map,"0x00ff00";
end;
OnTimer420000:
- set $@airplanelocation2,1;
+ $@airplanelocation2 = 1;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Izlude. Have a safe trip.",bc_map,"0x00ff00";
@@ -1531,7 +1531,7 @@ OnTimer490000:
mapannounce "airplane_01","We will arrive in Juno shortly.",bc_map,"0x70dbdb";
end;
OnTimer500000:
- set $@airplanelocation2,2;
+ $@airplanelocation2 = 2;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Juno. Have a safe trip.",bc_map,"0x70dbdb";
@@ -1551,7 +1551,7 @@ OnTimer570000:
mapannounce "airplane_01","We will arrive in Rachel shortly.",bc_map,"0xFF8200";
end;
OnTimer580000:
- set $@airplanelocation2,0;
+ $@airplanelocation2 = 0;
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01","Welcome to Rachel. Have a safe trip.",bc_map,"0xFF8200";
@@ -1584,7 +1584,7 @@ airplane_01,246,54,3 script Airship Captain#02 4_M_REINDEER,{
close2;
cutin "",255;
end;
-
+
OnInit:
hideonnpc "Airship Captain#02";
end;
@@ -1614,13 +1614,13 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
mes "have a question?";
next;
if (lght_air >= 0 && lght_air <= 3 || lght_air == 7) {
- set .@question$, "How does this Airship fly?";
+ .@question$ = "How does this Airship fly?";
} else if (lght_air == 4) {
- set .@question$, "I handed the letter to Captain Ferlock.";
+ .@question$ = "I handed the letter to Captain Ferlock.";
} else if (lght_air == 5) {
- set .@question$, "You finished reading the letter?";
+ .@question$ = "You finished reading the letter?";
} else if (lght_air == 6) {
- set .@question$, "Already finished reading?";
+ .@question$ = "Already finished reading?";
}
switch (select("Y-you're a reindeer?!", .@question$, "No, not really.")) {
case 1:
@@ -1702,7 +1702,7 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
end;
case 2:
setquest 8032;
- set lght_air, 2;
+ lght_air = 2;
mes "[Tarlock]";
mes "Ha-hah! I like you";
mes "already! Alright, here's";
@@ -1736,7 +1736,7 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
}
}
} else if (lght_air == 4) {
- set lght_air, 5;
+ lght_air = 5;
changequest 8034,8035;
mes "[Tarlock]";
mes "Oh!";
@@ -1749,7 +1749,7 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
cutin "",255;
end;
} else if (lght_air == 5) {
- set lght_air, 6;
+ lght_air = 6;
mes "[Tarlock]";
mes "Um... Ha ha ha~!";
mes "This guy, he is a real lover!";
@@ -1835,7 +1835,7 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
mes "and writing those long";
mes "letters.";
completequest 8035;
- set lght_air, 7;
+ lght_air = 7;
if (checkre(3))
getexp 20000,1000;
else
@@ -1869,7 +1869,7 @@ airplane_01,238,154,3 script Airship Captain#01 4_M_REINDEER,{
mes "Although that's a secret,";
mes "let me assure you that it's";
mes "nothing weird or dangerous.";
- set lght_air, 1;
+ lght_air = 1;
close2;
cutin "",255;
end;
@@ -1921,7 +1921,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
mes "Haha, does it frighten you? This is a magically enchanted book. Once you've written the name in it, you will be able to find the answer you want in an instant.";
next;
mes "[Ferlock]";
- mes "It must have surprised you to find that the people of Schwaltzvalt make use of magical items too.";
+ mes "It must have surprised you to find that the people of Schwaltzvalt make use of magical items too.";
next;
mes "[Ferlock]";
mes "This is something I acquired from an old friend.... Hmm, but that has nothing to do with this.";
@@ -1947,7 +1947,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
mes "[Ferlock]";
mes "And if you ever meet him, please send him my gratitude and regards.";
changequest 8045,8046;
- set hg_ma1,5;
+ hg_ma1 = 5;
close2;
cutin "",255;
end;
@@ -2070,7 +2070,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
mes "my breath before";
mes "I continue? Yes,";
mes "there's a little more...";
- set lhz_heart,12;
+ lhz_heart = 12;
close2;
cutin "",255;
end;
@@ -2154,7 +2154,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
close2;
specialeffect2 EF_ABSORBSPIRITS;
completequest 8043;
- set lhz_heart,13;
+ lhz_heart = 13;
if (checkre(3))
getexp 70000,40000;
else
@@ -2180,13 +2180,13 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
mes "I be of service to you?";
next;
if (lght_air == 2) {
- set .@question2$, "Give him Tarlock's Letter.";
- set .@question3$, "Cancel.";
+ .@question2$ = "Give him Tarlock's Letter.";
+ .@question3$ = "Cancel.";
} else if (lght_air == 3) {
- set .@question2$, "Here are the items I've found.";
- set .@question3$, "Cancel.";
+ .@question2$ = "Here are the items I've found.";
+ .@question3$ = "Cancel.";
} else {
- set .@question2$, "Cancel.";
+ .@question2$ = "Cancel.";
}
switch(select("How does this Airship fly?", .@question2$, .@question3$)) {
case 1:
@@ -2203,7 +2203,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
case 2:
if (lght_air == 2) {
changequest 8032,8033;
- set lght_air, 3;
+ lght_air = 3;
mes "^3131FFYou give Captain Ferlock";
mes "the letter that his brother";
mes "Tarlock has written for him.^000000";
@@ -2269,7 +2269,7 @@ airplane,236,163,5 script Airship Captain#03 4_M_REINDEER,{
delitem 7340, 2;
delitem 576, 2;
changequest 8033,8034;
- set lght_air, 4;
+ lght_air = 4;
mes "[Ferlock]";
mes "You brought the items!";
mes "Thank you very much.";
@@ -2404,7 +2404,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "believe that? Yeah... Kaci";
mes "doesn't like him so much...";
close2;
- set lhz_heart,1;
+ lhz_heart = 1;
end;
} else if (lhz_heart == 1) {
mes "[Hallen]";
@@ -2454,7 +2454,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "Mawong's letter to";
mes "be delivered to Kaci.^000000";
setquest 8036;
- set lhz_heart,2;
+ lhz_heart = 2;
next;
mes "[Hallen]";
mes "Hey, thanks a lot, pal~";
@@ -2510,7 +2510,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "I can't think";
mes "that you really";
mes "believe that...";
- set lhz_heart,5;
+ lhz_heart = 5;
close;
case 2:
mes "[Hallen]";
@@ -2529,7 +2529,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "too much stuff right now...";
close;
}
- set lhz_heart,5;
+ lhz_heart = 5;
getitem 501,1;
mes "[Hallen]";
mes "I know this isn't";
@@ -2603,7 +2603,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "you could find out for me, ";
mes "it'd be a really big help.";
changequest 8038,8039;
- set lhz_heart,6;
+ lhz_heart = 6;
close;
} else if (lhz_heart == 6) {
mes "[Hallen]";
@@ -2655,7 +2655,7 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "have I heard about that";
mes "before? Mm, let me think...";
changequest 8039,8040;
- set lhz_heart,7;
+ lhz_heart = 7;
close;
} else {
select("Actually...");
@@ -2719,8 +2719,8 @@ airplane,236,63,4 script Hallen 4_M_KID1,{
mes "in your inventory for me, okay?";
close;
}
- if (Shinokas_Quest > 9) set lhz_heart,9;
- else set lhz_heart,8;
+ if (Shinokas_Quest > 9) lhz_heart = 9;
+ else lhz_heart = 8;
changequest 8040,8041;
getitem 501,1;
mes "[Hallen]";
@@ -2807,7 +2807,7 @@ airplane,33,69,4 script Kaci 1_F_MERCHANT_01,{
next;
mes "^3355FFSince she's begging, I guess I should send her message.";
changequest 8044,8045;
- set hg_ma1,4;
+ hg_ma1 = 4;
close;
} else if (hg_ma1 == 4) {
mes "[Kaci]";
@@ -2830,7 +2830,7 @@ airplane,33,69,4 script Kaci 1_F_MERCHANT_01,{
mes "But still, he's really busy...";
next;
changequest 8036,8037;
- set lhz_heart,3;
+ lhz_heart = 3;
mes "[Kaci]";
mes "Thank you for bringing";
mes "this to me. If you ever";
@@ -2850,7 +2850,7 @@ airplane,33,69,4 script Kaci 1_F_MERCHANT_01,{
L_Ask:
switch(select("Ask about Hallen:Ask about Mawong:Ask about the Airship")) {
case 1:
- set .@mesa,1;
+ .@mesa = 1;
mes "[Kaci]";
mes "Hallen? Well, he and I are";
mes "pretty close. Did you know";
@@ -2876,7 +2876,7 @@ L_Ask:
next;
break;
case 2:
- set .@mesb,1;
+ .@mesb = 1;
mes "[Kaci]";
mes "Mr. Mawong? Oh, don't get";
mes "the wrong idea! He's my";
@@ -2903,7 +2903,7 @@ L_Ask:
next;
break;
case 3:
- set .@mesc,1;
+ .@mesc = 1;
mes "[Kaci]";
mes "The Airship? It's so";
mes "huge and beautiful, and";
@@ -2942,7 +2942,7 @@ L_Ask:
mes "Have a nice day,";
mes "and I'll see you later~";
changequest 8037,8038;
- set lhz_heart,4;
+ lhz_heart = 4;
close;
} else if (lhz_heart == 8) {
mes "[Kaci]";
@@ -2988,7 +2988,7 @@ L_Ask:
mes "as soon as I can, even if it's";
mes "a heavily restricted area.^000000)";
changequest 8041,8042;
- set lhz_heart,9;
+ lhz_heart = 9;
close;
}
mes "[Kaci]";
@@ -3033,7 +3033,7 @@ OnTouch:
mes "the Password Checker";
mes "device with you into";
mes "the laboratory.^000000";
- set lhz_heart,10;
+ lhz_heart = 10;
close;
}
}
@@ -3081,12 +3081,12 @@ OnTouch:
mes "not enter any number";
mes "more than once. Make";
mes "sure the password is 3 digits.";
- set @retry,0;
+ @retry = 0;
next;
while (1) {
- set @yagu100,rand(1,9);
- set @yagu10,rand(1,9);
- set @yagu1,rand(1,9);
+ @yagu100 = rand(1,9);
+ @yagu10 = rand(1,9);
+ @yagu1 = rand(1,9);
if (((@yagu100 != @yagu10) && (@yagu100 != @yagu1)) && (@yagu10 != @yagu1)) {
break;
}
@@ -3105,9 +3105,9 @@ L_Retry:
mes "3 digit passwords.^000000";
close;
}
- set @input100,@input / 100;
- set @input10,(@input % 100) / 10;
- set @input1,@input % 10;
+ @input100 = @input / 100;
+ @input10 = (@input % 100) / 10;
+ @input1 = @input % 10;
if ((@input100 > 0) && (@input10 > 0) && (@input1 > 0)) {
if ((@input100 != @input10) && (@input100 != @input1) && (@input10 != @input1)) {
break;
@@ -3121,21 +3121,21 @@ L_Retry:
next;
}
}
- set @retry,@retry+1;
+ ++@retry;
mes "[Security System]";
mes "^ff0000"+strcharinfo(0)+"^000000";
mes "has entered the following:";
mes "^0000ff"+@input100+"^000000 - ^0000ff"+@input10+"^000000 - ^0000ff"+@input1+"^000000.";
mes "Please wait for authorization to complete.";
next;
- set @strike,0;
- set @ball,0;
- if (@yagu100 == @input100) set @strike,@strike+1;
- if (@yagu10 == @input10) set @strike,@strike+1;
- if (@yagu1 == @input1) set @strike,@strike+1;
- if ((@yagu100 == @input10) || (@yagu100 == @input1)) set @ball,@ball+1;
- if ((@yagu10 == @input100) || (@yagu10 == @input1)) set @ball,@ball+1;
- if ((@yagu1 == @input100) || (@yagu1 == @input10)) set @ball,@ball+1;
+ @strike = 0;
+ @ball = 0;
+ if (@yagu100 == @input100) @strike += 1;
+ if (@yagu10 == @input10) @strike += 1;
+ if (@yagu1 == @input1) @strike += 1;
+ if ((@yagu100 == @input10) || (@yagu100 == @input1)) @ball += 1;
+ if ((@yagu10 == @input100) || (@yagu10 == @input1)) @ball += 1;
+ if ((@yagu1 == @input100) || (@yagu1 == @input10)) @ball += 1;
if (@strike == 3) {
mes "[Security System]";
mes "Authorization complete.";
@@ -3205,7 +3205,7 @@ L_Retry:
close2;
donpcevent "Ferlock#lab::OnInit";
changequest 8042,8043;
- set lhz_heart,11;
+ lhz_heart = 11;
end;
}
mes "[Password Checker]";
diff --git a/npc/quests/quests_alberta.txt b/npc/quests/quests_alberta.txt
index 1d2e61da3..0dbea9c6a 100644
--- a/npc/quests/quests_alberta.txt
+++ b/npc/quests/quests_alberta.txt
@@ -1064,7 +1064,7 @@ alberta_in,23,104,4 script Grandpa Turtle#tur 2_M_PHARMACIST,{
close;
case 2:
if ((MISC_QUEST & 65536) || TURTLE) {
- if(MISC_QUEST & 65536) set TURTLE,0; //now clear the var
+ if(MISC_QUEST & 65536) TURTLE = 0; //now clear the var
mes "[Grandpa Turtle]";
mes "Well...";
mes "If you go to eastern side of the Alberta port, you should find an old ferryboatman.";
@@ -1089,7 +1089,7 @@ alberta_in,23,104,4 script Grandpa Turtle#tur 2_M_PHARMACIST,{
mes "[Grandpa Turtle]";
mes "Well, then...";
mes "Good luck~";
- set TURTLE,1;
+ TURTLE = 1;
close;
case 3:
mes "[Grandpa Turtle]";
@@ -1429,7 +1429,7 @@ alberta,248,93,4 script Voyage log#tur HIDDEN_NPC,{
mes "^FF3355X : 160 , Y : 81^000000";
next;
mes "^3355FFIn the Voyage log is a thin key marked with a skull. You've taken this Skull key, as it may be of some use later.^000000";
- set TURTLE,2;
+ TURTLE = 2;
close;
case 2:
mes "^3355FFYou notice a page with a stamp shaped like a bird's foot. The black ink smells sort of like fruit.^000000";
@@ -1479,7 +1479,7 @@ alberta,248,93,4 script Voyage log#tur HIDDEN_NPC,{
next;
mes "^3355FFYou've gained^000000";
mes "^3355FFthe Roots key.^000000";
- set TURTLE,3;
+ TURTLE = 3;
close;
case 3:
mes "^3355FFThese pages of this log are soiled with mud, and some of them are missing.^000000";
@@ -1513,7 +1513,7 @@ alberta,248,93,4 script Voyage log#tur HIDDEN_NPC,{
next;
mes "^3355FFYou've gained ^000000";
mes "^3355FFthe Security key^000000";
- set TURTLE,4;
+ TURTLE = 4;
close;
}
}
@@ -1537,8 +1537,8 @@ tur_dun01,160,81,4 script Skull Stone#tur HIDDEN_NPC,{
mes "^3355FFthe stone opened and^000000";
mes "^3355FFsome items popped out!!^000000";
next;
- set MISC_QUEST,MISC_QUEST | 65536;
- set TURTLE,0;
+ MISC_QUEST |= 65536;
+ TURTLE = 0;
switch(rand(1,3)) {
case 1:
getitem 532,5; //Banana_Juice
@@ -1612,7 +1612,7 @@ tur_dun02,132,251,4 script Turtle Tree Roots#tur HIDDEN_NPC,{
mes "^3355FFInside the pile of turtle^000000";
mes "^3355FFcrystals, a scroll is hidden.^000000";
mes "";
- set TURTLE,7;
+ TURTLE = 7;
mes "^3355FFYou've gained a^000000";
mes "^3355FFTurtle Crystal key.^000000";
close;
@@ -1669,7 +1669,7 @@ tur_dun02,46,125,4 script A pile of turtle crystal HIDDEN_NPC,{
mes "^3355FFAt the edge of the crystal^000000";
mes "^3355FFplate, is a long key.^000000";
mes "";
- set TURTLE,8;
+ TURTLE = 8;
mes "^3355FFYou've gained the^000000";
mes "^3355FFTurtle Pillar key.^000000";
close;
@@ -1717,8 +1717,8 @@ tur_dun02,49,158,4 script Turtle Pillar#tur HIDDEN_NPC,{
next;
mes "^3355FFThere are many items^000000";
mes "^3355FFunder the pillar...^000000";
- set MISC_QUEST,MISC_QUEST | 65536;
- set TURTLE,0;
+ MISC_QUEST |= 65536;
+ TURTLE = 0;
switch(rand(1,10)) {
case 1:
getitem 702,1; //Animal_Blood
@@ -1811,7 +1811,7 @@ tur_dun01,203,155,4 script Turtle stone#tur HIDDEN_NPC,{
mes "beneath the line of words,";
mes "rests a brilliant red bead.^000000";
next;
- set TURTLE,10;
+ TURTLE = 10;
mes "^3355FFYou set the red bead to the";
mes "Security key, fitting it";
mes "within one of three tiny holes.^000000";
@@ -1858,7 +1858,7 @@ tur_dun02,75,249,4 script Turtle stone#tur2 HIDDEN_NPC,{
mes "beneath the line of words,";
mes "rests a brilliant yellow bead.";
next;
- set TURTLE,11;
+ TURTLE = 11;
mes "^3355FFYou set the yellow bead";
mes "into the Security key, fitting it";
mes "within one of three tiny holes.^000000";
@@ -1905,7 +1905,7 @@ tur_dun03,118,233,4 script Turtle Stone#tur3 HIDDEN_NPC,{
mes "beneath the line of words,";
mes "rests a brilliant blue bead.^000000";
next;
- set TURTLE,12;
+ TURTLE = 12;
mes "^3355FFYou set the blue bead to the";
mes "into the Security Key, fitting it";
mes "within one of three tiny holes.^000000";
@@ -1945,8 +1945,8 @@ tur_dun04,113,178,4 script Turtle Statue#tur HIDDEN_NPC,{
mes "metal plate. You pull";
mes "it open like a drawer.^000000";
next;
- set MISC_QUEST,MISC_QUEST | 65536;
- set TURTLE,0;
+ MISC_QUEST |= 65536;
+ TURTLE = 0;
if (rand(1,20) == 7) {
switch(rand(1,4)) {
case 1:
@@ -2376,7 +2376,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "One day, I will surely become...";
mes "..An adventurer... and do many, many things.";
next;
- set ep13_2_hiki,13;
+ ep13_2_hiki = 13;
completequest 10089;
getexp (checkre(3))?8000:80000,0;
mes "[Iromo]";
@@ -2473,7 +2473,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "Really...? Other than Alberta, and Rune-Midgarts...?";
mes "There are other places...?";
next;
- set ep13_2_hiki,12;
+ ep13_2_hiki = 12;
changequest 10088,10089;
mes "[Iromo]";
mes "But... there will also be many troubles...";
@@ -2493,8 +2493,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
close;
}
if (ep13_2_hiki == 10) {
- set .@cooltime,checkquest(10087,PLAYTIME);
- if (.@cooltime == 2) {
+ if (questprogress(10087,PLAYTIME) == 2) {
mes "[Iromo]";
mes "...You really are annoying...";
mes "What exactly do you want from me...?";
@@ -2505,7 +2504,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "But...";
mes "He must've forgotten all about me...";
next;
- set ep13_2_hiki,11;
+ ep13_2_hiki = 11;
changequest 10087,10088;
getexp (checkre(3))?6700:67000,0;
mes "[Iromo]";
@@ -2573,7 +2572,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "...is always the same...";
mes "Get out... I'm not in the mood...";
next;
- set ep13_2_hiki,10;
+ ep13_2_hiki = 10;
changequest 10086,10087;
getexp (checkre(3))?5700:57000,0;
mes "[Iromo]";
@@ -2581,8 +2580,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
close;
}
if ((ep13_2_hiki == 8) || (ep13_2_hiki == 9)) {
- set .@cooltime,checkquest(10085,PLAYTIME);
- if (.@cooltime == 2) {
+ if (questprogress(10085,PLAYTIME) == 2) {
mes "[Iromo]";
mes "You never give up, don't you?";
mes "What are you trying to say?";
@@ -2606,7 +2604,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "[Iromo]";
mes "Do you have any stories about siblings?";
next;
- set ep13_2_hiki,9;
+ ep13_2_hiki = 9;
changequest 10085,10086;
mes "[Iromo]";
mes "What? Anything to say?";
@@ -2620,8 +2618,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
close;
}
if (ep13_2_hiki == 7) {
- set .@goyang,checkquest(10084,HUNTING);
- if (.@goyang == 2) {
+ if (questprogress(10084,HUNTING) == 2) {
mes "[Iromo]";
mes "Oh, you made the furious cat";
mes "go away from the village?";
@@ -2632,7 +2629,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "being outside.";
mes "I would rather stay at home.";
next;
- set ep13_2_hiki,8;
+ ep13_2_hiki = 8;
changequest 10084,10085;
getexp (checkre(3))?4700:47000,0;
mes "[Iromo]";
@@ -2688,7 +2685,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
next;
delitem 528,1; //Monster's_Feed
delitem 501,1; //Red_Potion
- set ep13_2_hiki,7;
+ ep13_2_hiki = 7;
changequest 10083,10084;
getexp (checkre(3))?3750:37500,0;
mes "[Iromo]";
@@ -2716,7 +2713,7 @@ alberta_in,131,95,5 script Iromo#ep3_2 4_M_KID1,{
mes "I can stand it.";
next;
if (ep13_2_hiki == 1) {
- set ep13_2_hiki,2;
+ ep13_2_hiki = 2;
changequest 10079,10080;
}
mes "[Iromo]";
@@ -2796,7 +2793,7 @@ alberta_in,120,93,3 script Iromo's Mother#ep3_2 1_M_INNKEEPER,{
mes "he spent all his pocket money,";
mes "but I don't know what he has been eating.";
next;
- set ep13_2_hiki,3;
+ ep13_2_hiki = 3;
mes "[Mother]";
mes "Oh, why don't you ask Iromo's friend?";
mes "I think he would know about his favorite food.";
@@ -2814,7 +2811,7 @@ alberta_in,120,93,3 script Iromo's Mother#ep3_2 1_M_INNKEEPER,{
mes "he spent all his pocket money,";
mes "but I don't know what he has been eating.";
next;
- set ep13_2_hiki,3;
+ ep13_2_hiki = 3;
mes "[Mother]";
mes "Oh, why don't you ask Iromo's friend?";
mes "I think he would know about his favorite food.";
@@ -2831,8 +2828,8 @@ alberta_in,120,93,3 script Iromo's Mother#ep3_2 1_M_INNKEEPER,{
mes "But, somehow...";
mes "he doesn't go out anymore.";
next;
- if (BaseLevel > 40 && checkquest(10079) == -1) {
- set ep13_2_hiki,1;
+ if (BaseLevel > 40 && !questprogress(10079)) {
+ ep13_2_hiki = 1;
setquest 10079;
}
mes "[Mother]";
@@ -2888,7 +2885,7 @@ alberta,45,106,5 script Little Boy#ep3_2 4_M_KID1,{
mes "I can't understand why he liked";
mes "those foods. He was odd...";
next;
- set ep13_2_hiki,6;
+ ep13_2_hiki = 6;
changequest 10082,10083;
mes "[Little Boy]";
mes "Anyway, I already told you";
@@ -2914,7 +2911,7 @@ alberta,45,106,5 script Little Boy#ep3_2 4_M_KID1,{
mes "Yum Yum...";
next;
delitem 513,1; //Banana
- set ep13_2_hiki,5;
+ ep13_2_hiki = 5;
changequest 10081,10082;
mes "[Little Boy]";
mes "Wait. Wait...";
@@ -2963,7 +2960,7 @@ alberta,45,106,5 script Little Boy#ep3_2 4_M_KID1,{
mes "They don't sell bananas in this village...";
mes "I am eager to have bananas.";
next;
- set ep13_2_hiki,4;
+ ep13_2_hiki = 4;
changequest 10080,10081;
mes "[Little Boy]";
mes "Oh, you will buy me a banana?";
diff --git a/npc/quests/quests_amatsu.txt b/npc/quests/quests_amatsu.txt
index 61c948f6e..96565b8ec 100644
--- a/npc/quests/quests_amatsu.txt
+++ b/npc/quests/quests_amatsu.txt
@@ -135,13 +135,13 @@ amatsu,223,236,3 script Publisher#ama 4_M_JPN,{
mes "This is your reward for you.";
mes "Please continue to enjoy stories~";
mes " ";
- set .@event_momo, event_momo;
- set event_momo,4;
+ .@event_momo = event_momo;
+ event_momo = 4;
completequest 8128;
completequest 8129;
completequest 8130;
if (.@event_momo == 3) {
- set .@gift_1,rand(1,10);
+ .@gift_1 = rand(1,10);
if (.@gift_1 == 1) {
getitem 659,1; //Heart_Of_Her
}
@@ -174,7 +174,7 @@ amatsu,223,236,3 script Publisher#ama 4_M_JPN,{
}
}
else {
- set .@gift_2,rand(1,10);
+ .@gift_2 = rand(1,10);
if (.@gift_2 == 1) {
getitem 622,1; //Rainbow_Carrot
}
@@ -327,7 +327,7 @@ ama_test,52,44,3 script Assistant#ama 4_M_MANAGER,{
mes "Bye-";
close2;
percentheal 100,0;
- set event_momo,0;
+ event_momo = 0;
warp "amatsu",223,230;
end;
}
@@ -452,7 +452,7 @@ OnTouch:
mes "[Grandma & Grandpa]";
mes "So...Do me this favor, kid~";
close2;
- set event_momo,1;
+ event_momo = 1;
if (countitem(9010) > 0 || countitem(9005) > 0 || countitem(9016) > 0) {
disablenpc "Grandpa#ama";
disablenpc "Grandma#ama1";
@@ -473,7 +473,7 @@ OnInit:
OnEnable:
enablenpc "Dokebi#ez";
- set .MyMobs,9;
+ .MyMobs = 9;
monster "ama_test",45,95,"Dokebi",1110,1,"Dokebi#ez::OnMyMobDead";
monster "ama_test",45,99,"Dokebi",1110,1,"Dokebi#ez::OnMyMobDead";
monster "ama_test",47,101,"Dokebi",1110,1,"Dokebi#ez::OnMyMobDead";
@@ -490,14 +490,14 @@ OnReset:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "ama_test","I...I will be baaaack~~~~!!!",bc_map;
enablenpc "Coach#ama";
- set event_momo,2;
+ event_momo = 2;
}
else {
- set .@dokebi_tel,rand(1,4);
+ .@dokebi_tel = rand(1,4);
if (.@dokebi_tel == 1) {
mapannounce "ama_test","!!IT'S A RAID!!!! RUN!!",bc_map;
}
@@ -521,7 +521,7 @@ OnInit:
OnEnable:
enablenpc "Dokebi#hd";
- set .MyMobs,9;
+ .MyMobs = 9;
monster "ama_test",45,95,"Dokebi",1110,1,"Dokebi#hd::OnMyMobDead";
monster "ama_test",45,99,"Dokebi",1110,1,"Dokebi#hd::OnMyMobDead";
monster "ama_test",47,101,"Dokebi",1110,1,"Dokebi#hd::OnMyMobDead";
@@ -538,14 +538,14 @@ OnReset:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "ama_test"," I will be baaaack~~~~!!!",bc_map;
enablenpc "Coach#ama";
- set event_momo,2;
+ event_momo = 2;
}
else {
- set .@dokebi_tel,rand(1,4);
+ .@dokebi_tel = rand(1,4);
if (.@dokebi_tel == 1) {
mapannounce "ama_test","!! IT'S A RAID!!!! RUN!!",bc_map;
}
@@ -674,7 +674,7 @@ OnInit:
OnEnable:
enablenpc "Am Mut#ama";
- set .MyMobs,3;
+ .MyMobs = 3;
monster "ama_test",35,102,"Am Mut",1301,1,"Am Mut#ama::OnMyMobDead";
monster "ama_test",40,91,"Am Mut",1301,1,"Am Mut#ama::OnMyMobDead";
monster "ama_test",56,108,"Am Mut",1301,1,"Am Mut#ama::OnMyMobDead";
@@ -685,12 +685,12 @@ OnReset:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
enablenpc "Coach#after";
}
else {
- set .@am_mut_tel,rand(1,3);
+ .@am_mut_tel = rand(1,3);
if (.@am_mut_tel == 1) {
mapannounce "ama_test"," Augh!! I, I made mistake...!",bc_map;
}
@@ -726,7 +726,7 @@ OnTouch:
mes "I had a great time...";
mes "Don't forget to get your reward~";
close2;
- set event_momo,3;
+ event_momo = 3;
changequest 8129,8130;
warp "amatsu",223,230;
disablenpc "Coach#after";
@@ -822,7 +822,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Thanks. It's nothing, but";
mes "I will give you my shop's special cuisine, Fish Slice, in return.";
next;
- set fish_r,0;
+ fish_r = 0;
erasequest 10036;
delitem 529,10; //Candy
getitem 544,15; //Fish_Slice
@@ -854,7 +854,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Thanks. It is nothing, but";
mes "I will give you two sets of Sushi in return.";
next;
- set fish_r,0;
+ fish_r = 0;
erasequest 10037;
delitem 964,10; //Crap_Shell
getitem 551,20; //Shusi
@@ -886,7 +886,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Thanks. It is nothing but";
mes "I will give you several sets of Sushi in return.";
next;
- set fish_r,0;
+ fish_r = 0;
erasequest 10038;
delitem 961,10; //Conch
getitem 551,30; //Shusi
@@ -918,7 +918,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Thanks. It is nothing but";
mes "I will give you a large amount of food in return.";
next;
- set fish_r,0;
+ fish_r = 0;
erasequest 10039;
delitem 1023,10; //Fish_Tail
getitem 544,20; //Fish_Slice
@@ -952,7 +952,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "I will give you two sets of Sushi in return.";
next;
delitem 736,1; //White_Platter
- set fish_r,0;
+ fish_r = 0;
erasequest 10040;
getitem 551,20; //Shusi
mes "[Magumagu]";
@@ -1011,7 +1011,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes " ";
next;
delitem 950,100; //Heart_Of_Mermaid
- set ama_sushi,4;
+ ama_sushi = 4;
completequest 10041;
getitem 1144,1; //Sasimi
mes "[Magumagu]";
@@ -1074,8 +1074,8 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "You look stuffed...";
mes "Share the rest with your friends and family.";
next;
- set ama_sushi,ama_sushi+1;
- set fish_r,0;
+ ++ama_sushi;
+ fish_r = 0;
erasequest 10041;
mes "[Magumagu]";
mes "Thanks a lot for today! Haha!";
@@ -1211,9 +1211,9 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Will you do me a favor?";
mes "I will reward you.";
next;
- set .@fish_m1,rand(1,10);
+ .@fish_m1 = rand(1,10);
if (.@fish_m1 == 1 || .@fish_m1 == 2) {
- set fish_r,1;
+ fish_r = 1;
setquest 10036;
mes "[Magumagu]";
mes "I need some candies to make";
@@ -1223,7 +1223,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes " ";
}
else if (.@fish_m1 == 3 || .@fish_m1 == 4) {
- set fish_r,2;
+ fish_r = 2;
setquest 10037;
mes "[Magumagu]";
mes "I need some crab shells to make";
@@ -1233,7 +1233,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Okay?";
}
else if (.@fish_m1 == 5 || .@fish_m1 == 6) {
- set fish_r,3;
+ fish_r = 3;
setquest 10038;
mes "[Magumagu]";
mes "I have used all of my conches.";
@@ -1243,7 +1243,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Please do me this favor.";
}
else if (.@fish_m1 == 7 || .@fish_m1 == 8) {
- set fish_r,4;
+ fish_r = 4;
setquest 10039;
mes "[Magumagu]";
mes "Decorative fish tails are out of";
@@ -1253,7 +1253,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Please do me this favor.";
}
else if (.@fish_m1 == 9) {
- set fish_r,5;
+ fish_r = 5;
setquest 10040;
mes "[Magumagu]";
mes "We are missing a platter to serve";
@@ -1264,7 +1264,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
}
else {
if (rand(1,10) == 1) {
- set fish_r,6;
+ fish_r = 6;
setquest 10041;
mes "[Magumagu]";
mes "Don't ask me why...";
@@ -1278,7 +1278,7 @@ ama_in01,162,17,1 script Sushi Master#ama 4_M_JPNOJI2,{
mes "Just keep what I want in mind.";
}
else {
- set fish_r,5;
+ fish_r = 5;
setquest 10040;
mes "[Magumagu]";
mes "We are missing a platter to serve";
@@ -1320,7 +1320,7 @@ amatsu,112,164,4 script Gate Soldier#ama1 8_M_JPNSOLDIER,{
mes " ";
close;
}
-
+
amatsu,119,164,4 script Gate Soldier#ama2 8_M_JPNSOLDIER,{
mes "[Gate Soldier]";
mes "Are you from Rune-Midgard?";
@@ -1335,7 +1335,7 @@ amatsu,119,164,4 script Gate Soldier#ama2 8_M_JPNSOLDIER,{
mes "Amatsu, and intercontinental trade was his idea.";
close;
}
-
+
ama_in02,207,40,6 script Gate Soldier#ama3 8_M_JPNSOLDIER,{
mes "[Gate Soldier]";
mes "Welcome. The lord of the palace";
@@ -1347,7 +1347,7 @@ ama_in02,207,40,6 script Gate Soldier#ama3 8_M_JPNSOLDIER,{
mes "Please enjoy your stay.";
close;
}
-
+
ama_in02,207,49,6 script Gate Soldier#ama4 8_M_JPNSOLDIER,{
mes "[Gate Soldier]";
mes "The lord is really nice guy.";
@@ -1362,14 +1362,14 @@ ama_in02,207,49,6 script Gate Soldier#ama4 8_M_JPNSOLDIER,{
mes " ";
close;
}
-
+
amatsu,164,174,4 script Gate Soldier#ama5 8_M_JPNSOLDIER,{
mes "[Gate Soldier]";
if (event_amatsu == 0) {
mes "You can't enter here.";
mes "The mother of our lord is resting in here. She needs her rest.";
next;
- set event_amatsu,1;
+ event_amatsu = 1;
setquest 8131;
mes "[Gate Soldier]";
mes "She has been sick for months.";
@@ -1400,7 +1400,7 @@ amatsu,164,174,4 script Gate Soldier#ama5 8_M_JPNSOLDIER,{
}
close;
}
-
+
amatsu,171,174,4 script Gate Soldier#ama6 8_M_JPNSOLDIER,{
mes "[Gate Soldier]";
if (event_amatsu == 0) {
@@ -1408,7 +1408,7 @@ amatsu,171,174,4 script Gate Soldier#ama6 8_M_JPNSOLDIER,{
mes "The mother of our lord is resting in here.";
mes " ";
next;
- set event_amatsu,1;
+ event_amatsu = 1;
mes "[Gate Soldier]";
mes "She has been sick for months.";
mes "That is why she is staying in here.";
@@ -1440,7 +1440,7 @@ amatsu,171,174,4 script Gate Soldier#ama6 8_M_JPNSOLDIER,{
}
close;
}
-
+
ama_in02,187,57,2 script Soldier#ama1 8_M_JPNSOLDIER,{
mes "[Ichiro]";
mes "Welcome.";
@@ -1453,7 +1453,7 @@ ama_in02,187,57,2 script Soldier#ama1 8_M_JPNSOLDIER,{
mes "palace. This is all provided by him.";
close;
}
-
+
ama_in02,170,62,4 script Soldier#ama2 8_M_JPNSOLDIER,{
mes "[Jiro]";
mes "I'm Jiro, the administrator";
@@ -1504,7 +1504,7 @@ ama_in02,170,62,4 script Soldier#ama2 8_M_JPNSOLDIER,{
close;
}
}
-
+
ama_in02,37,157,4 script Soldier#ama3 8_M_JPNSOLDIER,{
mes "[Saburo]";
mes "This is the training ground for improving our battle skills.";
@@ -1530,7 +1530,7 @@ ama_in02,37,157,4 script Soldier#ama3 8_M_JPNSOLDIER,{
mes "See ya...";
close;
}
-
+
ama_in02,32,51,6 script Soldier#ama4 8_M_JPNSOLDIER,{
mes "[Shiro]";
mes "*Cough, Cough* What...";
@@ -1549,7 +1549,7 @@ ama_in02,32,51,6 script Soldier#ama4 8_M_JPNSOLDIER,{
mes "*Cough*... *Cough*...";
close;
}
-
+
ama_in02,40,167,3 script Soldier#ama5 8_M_JPNSOLDIER,{
mes "[Goro]";
mes "*Psst*... Please, be quiet.";
@@ -1577,7 +1577,7 @@ ama_in02,40,167,3 script Soldier#ama5 8_M_JPNSOLDIER,{
mes "Just don't tell anyone that I've told you this, okay?";
close;
}
-
+
ama_in02,32,167,5 script Soldier#ama6 8_M_JPNSOLDIER,{
mes "[Rokuro]";
mes "He always talks nonsense.";
@@ -1599,7 +1599,7 @@ ama_in02,32,167,5 script Soldier#ama6 8_M_JPNSOLDIER,{
mes "improve after their visits...";
close;
}
-
+
ama_in02,42,34,2 script Soldier#ama7 8_M_JPNSOLDIER,{
mes "[Shichiro]";
mes "Have a good time.";
@@ -1615,7 +1615,7 @@ ama_in02,42,34,2 script Soldier#ama7 8_M_JPNSOLDIER,{
mes "Have a good day.";
close;
}
-
+
ama_in02,203,156,4 script Soldier#ama8 8_M_JPNSOLDIER,{
mes "[Hachiro]";
mes "My lord is inside.";
@@ -1629,7 +1629,7 @@ ama_in02,203,156,4 script Soldier#ama8 8_M_JPNSOLDIER,{
mes "What could have happened to him...?";
close;
}
-
+
ama_in02,195,156,4 script Soldier#ama9 8_M_JPNSOLDIER,{
mes "[Kyuro]";
mes "This is not good.";
@@ -1644,7 +1644,7 @@ ama_in02,195,156,4 script Soldier#ama9 8_M_JPNSOLDIER,{
mes "him as a soldier.";
close;
}
-
+
ama_in02,115,177,7 script Soldier#ama10 8_M_JPNSOLDIER,{
mes "[Jyuro]";
mes "What are you doing in here?";
@@ -1736,7 +1736,7 @@ ama_in02,115,177,7 script Soldier#ama10 8_M_JPNSOLDIER,{
mes "There are more things to enjoy in town. Have yourself a good time...";
close;
}
-
+
ama_dun01,229,7,0 script Soldier#ama11 8_M_JPNSOLDIER,{
mes "[Jyuro]";
mes "Do you want to go back?";
@@ -1752,7 +1752,7 @@ ama_dun01,229,7,0 script Soldier#ama11 8_M_JPNSOLDIER,{
mes "Take care...";
close;
}
-
+
ama_in02,200,176,4 script Lord of Palace#ama 8_M_JPNMASTER,{
if (event_amatsu == 0) {
mes "[Ishida Yoshinaga]";
@@ -1802,7 +1802,7 @@ ama_in02,200,176,4 script Lord of Palace#ama 8_M_JPNMASTER,{
mes "You, who hail from Rune-Midgard,";
mes "may be able to cure my mother's disease. I will reward you well if you succeed...";
next;
- set event_amatsu,2;
+ event_amatsu = 2;
changequest 8131,8132;
mes "[Ishida Yoshinaga]";
mes "I beg you...Please.";
@@ -1860,7 +1860,7 @@ ama_in02,200,176,4 script Lord of Palace#ama 8_M_JPNMASTER,{
mes "You can go anywhere";
mes "with this ticket.";
next;
- set event_amatsu,6;
+ event_amatsu = 6;
completequest 8135;
delitem 1022,1; //Fox_Tail
getitem 7160,1; //Lord's_Passable_Ticket
@@ -1907,7 +1907,7 @@ ama_in02,200,176,4 script Lord of Palace#ama 8_M_JPNMASTER,{
mes "I have faith in your ability.";
close;
}
-
+
ama_in01,22,111,0 script Grandma#ama2 4_F_JPNOBA,{
if (event_amatsu == 4) {
mes "[....]";
@@ -1923,15 +1923,15 @@ ama_in01,22,111,0 script Grandma#ama2 4_F_JPNOBA,{
select("Taaaah!!");
if ((BaseJob == Job_Priest || BaseJob != Job_Acolyte && BaseJob != Job_Monk) || (countitem(523) < 1 || countitem(948) < 1 || countitem(1029) < 1)) {
if (rand(1,4) == 1)
- set .@fox_kill,0;
+ .@fox_kill = 0;
else
- set .@fox_kill,1;
+ .@fox_kill = 1;
}
else {
if (rand(1,2) == 1)
- set .@fox_kill,0;
+ .@fox_kill = 0;
else
- set .@fox_kill,1;
+ .@fox_kill = 1;
}
if (.@fox_kill == 1) {
mes "[....]";
@@ -1946,7 +1946,7 @@ ama_in01,22,111,0 script Grandma#ama2 4_F_JPNOBA,{
next;
monster "ama_in01",22,111,"Nine Tails",1180,1;
killmonsterall "ama_in01";
- set event_amatsu,5;
+ event_amatsu = 5;
changequest 8134,8135;
getitem 1022,1; //Fox_Tail
mes "[....]";
@@ -2051,7 +2051,7 @@ ama_in01,22,111,0 script Grandma#ama2 4_F_JPNOBA,{
warp "amatsu",167,197;
end;
}
-
+
amatsu,189,166,5 script Kouji#ama 4_M_JPNCHIBI,{
mes "[Kouji]";
mes "Ralralrah Ralralrah Ralralrahralralrah~";
@@ -2065,7 +2065,7 @@ amatsu,189,166,5 script Kouji#ama 4_M_JPNCHIBI,{
mes "That Mommy's love is best for me~";
}
else if (event_amatsu == 2) {
- set event_amatsu,3;
+ event_amatsu = 3;
mes "Priest, Priest~";
mes "A fox is following me!";
mes "It's funny and a little absurd,";
@@ -2106,7 +2106,7 @@ amatsu,189,166,5 script Kouji#ama 4_M_JPNCHIBI,{
mes "Ralralrah Ralralrah Ralralrahralralrah~";
close;
}
-
+
ama_in01,169,173,1 script Shaman#ama 4_F_JPNMU,{
mes "[Tokako]";
mes "Er, I'm not really a shaman...";
@@ -2127,7 +2127,7 @@ ama_in01,169,173,1 script Shaman#ama 4_F_JPNMU,{
mes " ";
close;
}
-
+
ama_in01,180,173,3 script Kitsune Mask#ama 4_M_JPN2,{
if (event_amatsu == 3) {
mes "[Takehue]";
@@ -2167,7 +2167,7 @@ ama_in01,180,173,3 script Kitsune Mask#ama 4_M_JPN2,{
mes " ";
next;
select("Taaaaah!!");
- set event_amatsu,4;
+ event_amatsu = 4;
mes "[Takehue]";
mes "Good. Show that spiritual";
mes "energy to the fox several times.";
diff --git a/npc/quests/quests_ayothaya.txt b/npc/quests/quests_ayothaya.txt
index 5a30866f7..4135e8f98 100644
--- a/npc/quests/quests_ayothaya.txt
+++ b/npc/quests/quests_ayothaya.txt
@@ -141,7 +141,7 @@ ayothaya,233,105,3 script Powerful-Looking Woman 4_F_THAIAYO,2,2,{
}
delitem 7288,1; //Thai_Ring
changequest 12030,12031;
- set thai_find,3;
+ thai_find = 3;
close;
} else {
mes "[Shuda]";
@@ -160,7 +160,7 @@ ayothaya,233,105,3 script Powerful-Looking Woman 4_F_THAIAYO,2,2,{
mes "my ring. I'll be waiting";
mes "here for the good news.";
mes "Oho ho ho ho ho~!";
- if (checkquest(12029) == -1)
+ if (!questprogress(12029))
setquest 12029;
close;
}
@@ -321,7 +321,7 @@ ayothaya,233,105,3 script Powerful-Looking Woman 4_F_THAIAYO,2,2,{
mes "And so, that is my quest for you. It should keep you entertained for a while. So get into the water, and I'll supervise from here.";
mes "Oho ho ho ho ho!";
emotion e_heh;
- set thai_find,1;
+ thai_find = 1;
close;
case 2:
mes "[Powerful-Looking Woman]";
@@ -386,9 +386,9 @@ ayothaya,233,105,3 script Powerful-Looking Woman 4_F_THAIAYO,2,2,{
next;
mes "[Shuda]";
mes "So go and look under the water! There's no water current, so I'm sure it's still there! What are you waiting for, it's should be an easy swim for you! Oho ho ho ho ho!";
- if (checkquest(12029) == -1)
+ if (!questprogress(12029))
setquest 12029;
- set thai_find,1;
+ thai_find = 1;
close;
}
break;
@@ -473,7 +473,7 @@ if (!$@annonactive) {
mes "^3355FFshrubbery, you find";
mes "a small burrow.^000000";
next;
- set $@annonactive,1;
+ $@annonactive = 1;
enablenpc "Haggard Man";
mes "[Haggard Man]";
mes "^666666*Cough cough!*^000000";
@@ -488,7 +488,7 @@ if (!$@annonactive) {
mes "Hey...";
mes "What are you doi--";
next;
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
mes "^3355FFHe vanished!^000000";
close;
@@ -517,7 +517,7 @@ if (!$@annonactive) {
mes "from beneath.^000000";
next;
if (!rand(0,2)) {
- set $@annonactive,1;
+ $@annonactive = 1;
enablenpc "Haggard Man";
mes "[?]";
mes "^666666*Cough cough*^000000";
@@ -561,7 +561,7 @@ OnTouch:
mes "Strange to see";
mes "a blood stain in";
mes "this kind of place...";
- set thai_find,13;
+ thai_find = 13;
changequest 12033,12034;
close;
}
@@ -710,7 +710,7 @@ ayo_dun02,91,264,3 script Haggard Man 4_M_THAIAYO,{
next;
mes "^3355FFYou feel as though Annon";
mes "realigned every bone in your skeleton, placing them in the right spots. Strangely, you feel intense relaxation and refreshment instead of excruciating pain.";
- set thai_find,14;
+ thai_find = 14;
completequest 12034;
if (checkre(3)) {
if (BaseLevel < 56) getexp 900,0;
@@ -751,7 +751,7 @@ ayo_dun02,91,264,3 script Haggard Man 4_M_THAIAYO,{
mes "before others find me.";
mes "Good day~!";
close2;
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
end;
} else {
@@ -777,7 +777,7 @@ ayo_dun02,91,264,3 script Haggard Man 4_M_THAIAYO,{
mes "me back inside!";
mes "Wahhhhhh~!";
next;
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
mes "[" +strcharinfo(0)+ "]";
mes "Okay, it's time";
@@ -812,7 +812,7 @@ ayo_dun02,91,264,3 script Haggard Man 4_M_THAIAYO,{
mes "hide from Shuda.";
mes "^666666*Cries*^000000";
close2;
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
end;
}
@@ -821,17 +821,17 @@ ayo_dun02,91,264,3 script Haggard Man 4_M_THAIAYO,{
mes "Huh? Who are you?";
mes "This isn't a safe place for a tourists! You should leave right away!";
close2;
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
end;
}
OnInit:
- set $@annonactive,0;
+ $@annonactive = 0;
disablenpc "Haggard Man";
end;
}
-
+
ayothaya,253,99,3 script Fisherman 4_M_THAIONGBAK,{
if (thai_find == 1) {
mes "[Dannai]";
@@ -863,7 +863,7 @@ ayothaya,253,99,3 script Fisherman 4_M_THAIONGBAK,{
next;
delitem 528,1; //Monster's_Feed
Zeny -= 50;
- set .@randfish,rand(1,100);
+ .@randfish = rand(1,100);
if (.@randfish > 0 && .@randfish < 40) {
mes "^3355FFWhile cooking the Phen, you";
mes "find that it's swallowed a Stone.^000000";
@@ -910,7 +910,7 @@ ayothaya,253,99,3 script Fisherman 4_M_THAIONGBAK,{
mes "^3355FFYou take the";
mes "engagement ring.^000000";
close2;
- set thai_find,2;
+ thai_find = 2;
changequest 12029,12030;
getitem 7288,1; //Thai_Ring
end;
@@ -969,7 +969,7 @@ OnTouch:
if (rand(1,3) < 2) {
emotion e_gasp,1;
mes "^3355FFYou find footprints heading to the ^5C3317North^3355FF. It looks like somebody was in quite a hurry, just like the villager said!^000000";
- set thai_find,5;
+ thai_find = 5;
changequest 12032,12033;
close;
}
@@ -984,7 +984,7 @@ OnTouch:
emotion e_dots,1;
mes "^3355FFYou find another set of footprints. It seems that somebody was running away from something. These prints are heading to the ^5C3317East^3355FF. You'd better follow them to see what";
mes "you can find.^000000";
- set thai_find,6;
+ thai_find = 6;
close;
}
}
@@ -998,7 +998,7 @@ OnTouch:
emotion e_no,1;
mes "^3355FFThe footprints end around this area. Whoever was running must";
mes "have been exhausted and stumbled on something. Perhaps the owner of the footprints is nearby...^000000";
- set thai_find,7;
+ thai_find = 7;
close;
}
}
@@ -1012,7 +1012,7 @@ OnTouch:
emotion e_ic,1;
mes "^3355FFAs you follow the footprints,";
mes "you arrive at the '^5C3317Entrance of the Shrine^3355FF.' Whoever this person was, he just ran into the second level.^000000";
- set thai_find,8;
+ thai_find = 8;
close;
}
}
@@ -1029,7 +1029,7 @@ OnTouch:
mes "anyone would come here. The";
mes "footprints continue towards";
mes "the ^5C3317North^3355FF.^000000";
- set thai_find,9;
+ thai_find = 9;
close;
}
}
@@ -1052,10 +1052,10 @@ OnTouch:
case 1:
mes "["+strcharinfo(0)+"]";
mes "Well, it's probably nothing. But which way should I go now?";
- set thai_find,10;
+ thai_find = 10;
close;
case 2:
- set .@randayo,rand(1,10);
+ .@randayo = rand(1,10);
if (.@randayo < 2) {
mes "["+strcharinfo(0)+"]";
mes "Why, this is a pack of White Potions. Whoever owned these must have dropped these by accident. Hmm, I could use these for later...";
@@ -1067,7 +1067,7 @@ OnTouch:
mes "toward the ^5C3317East^000000.";
mes "I better look";
mes "into this.";
- set thai_find,10;
+ thai_find = 10;
getitem 504,10; //White_Potion
close;
} else if (.@randayo > 2 && .@randayo < 5) {
@@ -1081,7 +1081,7 @@ OnTouch:
mes "toward the ^5C3317East^000000.";
mes "I better look";
mes "into this.";
- set thai_find,10;
+ thai_find = 10;
getitem 503,10; //Yellow potion
close;
} else {
@@ -1100,7 +1100,7 @@ OnTouch:
mes "^3355FFYou find another trail";
mes "of footprints that heads";
mes "towards the ^5C3317East^3355FF.^000000";
- set thai_find,10;
+ thai_find = 10;
close;
}
}
@@ -1120,7 +1120,7 @@ OnTouch:
mes "deep into the dungeon.";
mes "Just looking for this";
mes "guy is exhausting...^000000";
- set thai_find,11;
+ thai_find = 11;
close;
}
}
@@ -1134,7 +1134,7 @@ OnTouch:
emotion e_gasp,1;
mes "^3355FFYou find traces of blood. Whoever was running in this direction may have been wounded. The trail of blood leads to the ^5C3317North^3355FF.^000000";
changequest 12032,12033;
- set thai_find,12;
+ thai_find = 12;
close;
}
}
@@ -1170,11 +1170,11 @@ ayothaya,193,171,3 script Old Man#02 4_M_THAIOLD,{
next;
mes "[Tham]";
mes "Oh well, don't worry. All of our villagers aren't like that. Anyway, I hope you enjoy your travels in Ayotaya.";
- set thai_find,4;
+ thai_find = 4;
changequest 12031,12032;
close;
} else {
- set .@randayo,rand(1,7);
+ .@randayo = rand(1,7);
if (.@randayo < 5) {
mes "[Tham]";
mes "Oh hello~";
@@ -1302,7 +1302,7 @@ ayothaya,83,132,0 script Dusit#thai 4_M_THAIONGBAK,{
next;
mes "[Dusit]";
mes "Ah well, you'll see what I'm talking about. I hope he'll help you learn more about that evil creature.";
- set ayodunquest,1;
+ ayodunquest = 1;
setquest 12035;
close;
}
@@ -1451,7 +1451,7 @@ ayo_in01,181,193,4 script Shaman#thai 4_F_THAISHAMAN,{
mes "Please come back";
mes "when you prepare all";
mes "the materials.";
- set ayodunquest,2;
+ ayodunquest = 2;
changequest 12035,12036;
close;
}
@@ -1490,7 +1490,7 @@ ayo_in01,181,193,4 script Shaman#thai 4_F_THAISHAMAN,{
delitem 7217,1; //Spool
delitem 7190,1; //Solid_Peeling
delitem 523,1; //Holy_Water
- set ayodunquest,3;
+ ayodunquest = 3;
changequest 12036,12037;
getitem 7285,1; //Thread_Skein
next;
@@ -1601,7 +1601,7 @@ ayo_in01,181,193,4 script Shaman#thai 4_F_THAISHAMAN,{
mes "^3366991 Yggdrasil Leaf^000000,";
mes "^3366992 Needle Packet^000000 and";
mes "^3366992 Spool^000000.";
- set ayodunquest,10;
+ ayodunquest = 10;
changequest 12037,12038;
next;
mes "[Boonthom]";
@@ -1636,7 +1636,7 @@ ayo_in01,181,193,4 script Shaman#thai 4_F_THAISHAMAN,{
delitem 7217,2; //Spool
delitem 610,1; //Leaf_Of_Yggdrasil
delitem 523,2; //Holy_Water
- set ayodunquest,11;
+ ayodunquest = 11;
getitem 7287,1; //Thread_Skein_
changequest 12038,12039;
next;
@@ -1736,7 +1736,7 @@ ayo_in01,181,193,4 script Shaman#thai 4_F_THAISHAMAN,{
next;
mes "[Boonthom]";
mes "If you wish to explore the building again, but you don't have any holy thread, feel free to ask me at anytime.";
- set ayodunquest,13;
+ ayodunquest = 13;
completequest 12039;
close;
} else if (ayodunquest > 12) {
@@ -1971,7 +1971,7 @@ ayo_dun01,259,46,0 duplicate(AyoHint) #hint02_3 -1,2,0
// Puzzle pieces
ayo_dun01,198,164,0 script #hun_thai_1 HIDDEN_NPC,{
if (ayodunquest == 3) {
- set ayodunquest,4;
+ ayodunquest = 4;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the 1st part of the slate.^000000";
next;
mes "^3355FFIt reads '^0000FFDo not enter the 2nd underground level^3355FF.' You are unable to read the rest of the message.^000000";
@@ -1983,7 +1983,7 @@ ayo_dun01,198,164,0 script #hun_thai_1 HIDDEN_NPC,{
ayo_dun01,87,16,0 script #hun_thai_2 HIDDEN_NPC,{
if (ayodunquest == 4) {
- set ayodunquest,5;
+ ayodunquest = 5;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the 2nd part of the slate.^000000";
next;
mes "^3355FFIt reads '^0000FF...is danger... You wil...^3355FF.' You are unable to read the rest of the message.^000000";
@@ -1995,7 +1995,7 @@ ayo_dun01,87,16,0 script #hun_thai_2 HIDDEN_NPC,{
ayo_dun01,268,214,0 script #hun_thai_3 HIDDEN_NPC,{
if (ayodunquest == 5) {
- set ayodunquest,6;
+ ayodunquest = 6;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the 3rd part of the slate.^000000";
next;
mes "^3355FFIt reads '^0000FF...encounter... tiger...^3355FF.' You are unable to read the rest of the message.^000000";
@@ -2007,7 +2007,7 @@ ayo_dun01,268,214,0 script #hun_thai_3 HIDDEN_NPC,{
ayo_dun01,147,274,0 script #hun_thai_4 HIDDEN_NPC,{
if (ayodunquest == 6) {
- set ayodunquest,7;
+ ayodunquest = 7;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the 4th part of the slate.^000000";
next;
mes "^3355FFIt reads '^0000FFYou must kill... In order to do... MUST... How to go... the 2nd underground level...^3355FF' You are unable to read the rest of the message.^000000";
@@ -2019,7 +2019,7 @@ ayo_dun01,147,274,0 script #hun_thai_4 HIDDEN_NPC,{
ayo_dun01,99,118,0 script #hun_thai_5 HIDDEN_NPC,{
if (ayodunquest == 7) {
- set ayodunquest,8;
+ ayodunquest = 8;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the 5th part of the slate.^000000";
next;
mes "^3355FFIt reads '^0000FFYou need more... Holy power... in order to...^3355FF' You are unable to read the rest of the message.^000000";
@@ -2031,7 +2031,7 @@ ayo_dun01,99,118,0 script #hun_thai_5 HIDDEN_NPC,{
ayo_dun01,16,188,0 script #hun_thai_6 HIDDEN_NPC,{
if (ayodunquest == 8) {
- set ayodunquest,9;
+ ayodunquest = 9;
setquest 12036;
mes "^3355FFYou find a piece of a stone slate with letters etched on it. It seems to be the last part of the slate.^000000";
next;
@@ -2080,7 +2080,7 @@ ayo_dun02,268,108,0 script #reward_tiger HIDDEN_NPC,{
next;
mes "^3355FFYou pick";
mes "up the box.^000000";
- set ayodunquest,12;
+ ayodunquest = 12;
completequest 12039;
getitem 603,1; //Old_Blue_Box
close;
@@ -2127,7 +2127,7 @@ ayothaya,196,265,3 script Einon#ayo 4_M_THAIOLD,{
mes "visit ^3131FFMali the Spicy^000000.";
next;
emotion e_no1;
- set tomyumgoong,1;
+ tomyumgoong = 1;
setquest 8123;
mes "[Einon]";
mes "She is the best cook when it";
@@ -2218,7 +2218,7 @@ ayo_in01,145,163,3 script Cook#ayo 4_F_THAIGIRL,{
mes "If you mention";
mes "my name, that guy";
mes "might give you a discount.";
- set tomyumgoong,2;
+ tomyumgoong = 2;
changequest 8123,8124;
next;
mes "[Mali the Spicy]";
@@ -2276,7 +2276,7 @@ ayo_in01,145,163,3 script Cook#ayo 4_F_THAIGIRL,{
mes "me some ^CE0000Lemons^000000.";
next;
if (select("Where can I find Lemons?:I hate sour food. I'd better quit!") == 1) {
- set tomyumgoong,4;
+ tomyumgoong = 4;
changequest 8124,8125;
mes "[Mali the Spicy]";
mes "A few days ago, I saw a good";
@@ -2357,7 +2357,7 @@ ayo_in01,145,163,3 script Cook#ayo 4_F_THAIGIRL,{
next;
if (select("Okay, I'll be right back.:Ah, I'm tired now. Let me take a rest first...") == 1) {
delitem 568,10; //Lemon
- set tomyumgoong,6;
+ tomyumgoong = 6;
changequest 8125,8126;
mes "[Mali the Spicy]";
mes "See you in a bit~";
@@ -2455,7 +2455,7 @@ ayo_in01,145,163,3 script Cook#ayo 4_F_THAIGIRL,{
mes " ......";
mes " .........";
next;
- set tomyumgoong,8;
+ tomyumgoong = 8;
completequest 8126;
getitem 566,10; //Tomyumkung
emotion e_no1;
@@ -2547,7 +2547,7 @@ ayothaya,153,86,5 script Thongpool#ayo 4_M_THAIONGBAK,{
if (Zeny > 10999) {
if (MaxWeight - Weight > 3999) {
Zeny -= 11000;
- set tomyumgoong,3;
+ tomyumgoong = 3;
getitem 567,20; //Prawn
emotion e_no1;
mes "[Thongpool]";
@@ -2745,8 +2745,8 @@ OnTouch:
mes "As you kids say,";
mes "^990000Let's get eXtreme!^000000";
next;
- set @user_score,0;
- set @pc_score,0;
+ @user_score = 0;
+ @pc_score = 0;
mes "[Mr. Jun]";
mes "Rock!";
mes "Paper!";
@@ -2757,7 +2757,7 @@ OnTouch:
break;
}
else {
- set .@jun_mark,rand(1,3);
+ .@jun_mark = rand(1,3);
switch(select("Scissors:Rock:Paper")) {
case 1:
if (.@jun_mark == 1) {
@@ -2774,7 +2774,7 @@ OnTouch:
else if (.@jun_mark == 2) {
emotion e_rock;
emotion e_scissors,1;
- set @pc_score,@pc_score + 1;
+ ++@pc_score;
mes "[Mr. Jun]";
mes "Yes...!";
mes "Oh my God, yes!";
@@ -2783,8 +2783,8 @@ OnTouch:
else {
emotion e_paper;
emotion e_scissors,1;
- set @pc_score,@pc_score + 1;
- set @user_score,@user_score + 1;
+ ++@pc_score;
+ ++@user_score;
mes "[Mr. Jun]";
mes "What...?";
mes "I don't believe it!";
@@ -2796,8 +2796,8 @@ OnTouch:
if (.@jun_mark == 1) {
emotion e_scissors;
emotion e_rock,1;
- set @pc_score,@pc_score + 1;
- set @user_score,@user_score + 1;
+ ++@pc_score;
+ ++@user_score;
mes "[Mr. Jun]";
mes "No...!";
mes "Sacrilege!";
@@ -2817,7 +2817,7 @@ OnTouch:
else {
emotion e_paper;
emotion e_rock,1;
- set @pc_score,@pc_score + 1;
+ ++@pc_score;
mes "[Mr. Jun]";
mes "Bwahahaha!";
mes "You lose, kid!";
@@ -2828,7 +2828,7 @@ OnTouch:
if (.@jun_mark == 1) {
emotion e_scissors;
emotion e_paper,1;
- set @pc_score,@pc_score + 1;
+ ++@pc_score;
mes "[Mr. Jun]";
mes "Heh heh~";
mes "Young fool!";
@@ -2837,8 +2837,8 @@ OnTouch:
else if (.@jun_mark == 2) {
emotion e_rock;
emotion e_paper,1;
- set @user_score,@user_score + 1;
- set @pc_score,@pc_score + 1;
+ ++@user_score;
+ ++@pc_score;
mes "[Mr. Jun]";
mes "Noooo...!";
mes "This cannot be!";
@@ -2875,7 +2875,7 @@ OnTouch:
mes "Grab as many as you want!";
mes "^3355FFYou have plucked";
mes "10 Lemons from the tree.^000000";
- set tomyumgoong,5;
+ tomyumgoong = 5;
getitem 568,10; //Lemon
next;
emotion e_dots;
@@ -2942,7 +2942,7 @@ ayothaya,213,94,7 script Merchant#ayo 4_M_THAIAYO,{
if (Zeny > 1999) {
if (MaxWeight - Weight > 1199) {
Zeny -= 2000;
- set tomyumgoong,7;
+ tomyumgoong = 7;
getitem 7286,30; //Chilli
mes "[Merchant Thongdum]";
mes "Thank you.";
diff --git a/npc/quests/quests_comodo.txt b/npc/quests/quests_comodo.txt
index 6faf8f84f..778487881 100644
--- a/npc/quests/quests_comodo.txt
+++ b/npc/quests/quests_comodo.txt
@@ -519,7 +519,7 @@ comodo,206,310,4 script Campground Boy#cmd 4_M_BIBI,{
mes "Would you visit him and see";
mes "what's taking him so long";
mes "to get over here?";
- set dmdswrd_Q,1;
+ dmdswrd_Q = 1;
close;
}
mes "[Rochito]";
@@ -584,7 +584,7 @@ comodo,206,310,4 script Campground Boy#cmd 4_M_BIBI,{
mes "^3355FFYou've received a bottle";
mes "of Mureuchieligu wine to";
mes "deliver to the Comodo Chief.^000000";
- set dmdswrd_Q,3;
+ dmdswrd_Q = 3;
break;
case 3:
mes "[Rochito]";
@@ -706,7 +706,7 @@ comodo,204,310,4 script Camping Youth#cmd 1_M_YOUNGKNIGHT,{
mes "one of the best friends that";
mes "a guy can have! Cheers!";
mes "Hahahaha hahahaha~!";
- set dmdswrd_Q,5;
+ dmdswrd_Q = 5;
next;
mes "[Rockha]";
mes "Ahh, you know what would";
@@ -988,7 +988,7 @@ cmd_in02,32,140,4 script Chief#cmd 1_M_03,{
mes "long since I've seen them, but";
mes "I hope that I get a chance to";
mes "visit them someday soon.";
- set dmdswrd_Q,4;
+ dmdswrd_Q = 4;
break;
case 4:
mes "[Tausupa]";
@@ -1057,7 +1057,7 @@ cmd_in02,32,140,4 script Chief#cmd 1_M_03,{
mes "friends cannot begin the";
mes "barbeque without Comodo's";
mes "world famous seasoning...";
- set dmdswrd_Q,2;
+ dmdswrd_Q = 2;
break;
case 2:
mes "[Tausupa]";
@@ -1156,7 +1156,7 @@ comodo,88,97,4 script Toruna#cmd 4_M_MANAGER,{
mes "here chalk him up to be some";
mes "sort of common loon, but who";
mes "knows? Maybe it does exist...";
- set dmdswrd_Q,6;
+ dmdswrd_Q = 6;
next;
mes "[Toruna]";
mes "Well, you can decide for";
@@ -1245,7 +1245,7 @@ comodo,164,291,4 script Rakusa#cmd 1_F_MERCHANT_01,{
mes "around here? Nope, I thought";
mes "so! Still, I think he really";
mes "believes that it exists...";
- set dmdswrd_Q,7;
+ dmdswrd_Q = 7;
break;
case 7:
mes "[Rakusa]";
@@ -1293,7 +1293,7 @@ comodo,169,284,4 script Kichiri#cmd 4W_M_02,{
mes "Magatu to shut up?";
mes "I just want to drink";
mes "my alcohol in peace!";
- set dmdswrd_Q,8;
+ dmdswrd_Q = 8;
break;
case 8:
mes "[Kichiri]";
@@ -1361,7 +1361,7 @@ comodo,163,280,4 script Magatu#cmd 1_M_JOBTESTER,{
mes "^3355FFYou have received";
mes "Magatu's lucky bottle";
mes "cap to present to Manzi.";
- set dmdswrd_Q,9;
+ dmdswrd_Q = 9;
break;
case 9:
mes "[Magatu]";
@@ -1435,7 +1435,7 @@ cmd_in02,189,99,4 script Manzi#cmd 4_M_03,{
mes "you his lucky bottle cap, so I'm^FFFFFF ^000000 gonna give you my lucky coin!";
mes "The old crone'll recognize it~";
next;
- set dmdswrd_Q,10;
+ dmdswrd_Q = 10;
mes "^3355FFYou received Manzi's";
mes "''lucky coin.'' Strangely";
mes "enough, both sides";
@@ -1561,7 +1561,7 @@ comodo,187,153,4 script Hullaris#cmd 4_F_GODEMOM,{
mes "^3355FFNigirboran^000000. He will judge";
mes "whether you are worthy";
mes "of the Comodo Cheese...";
- set dmdswrd_Q,11;
+ dmdswrd_Q = 11;
next;
mes "[Hullaris]";
mes "Now, you should be";
@@ -1660,7 +1660,7 @@ comodo,187,153,4 script Hullaris#cmd 4_F_GODEMOM,{
mes "body. You feel a powerful, yet";
mes "quiet confidence of being able";
mes "to accomplish anything.^000000";
- set dmdswrd_Q,14;
+ dmdswrd_Q = 14;
next;
mes "[Hullaris]";
mes "Hahahah! So what";
@@ -1740,7 +1740,7 @@ beach_dun3,30,220,4 script Nigirboran#cmd 4_M_BIBI,{
mes "have a fighting chance, right?";
mes "So come back when you're";
mes "ready for the testing~";
- set dmdswrd_Q,12;
+ dmdswrd_Q = 12;
break;
case 12:
mes "[Nigirboran]";
@@ -1830,7 +1830,7 @@ beach_dun3,30,220,4 script Nigirboran#cmd 4_M_BIBI,{
mes "a token button to";
mes "present to Hullaris";
mes "from Nigirboran.^000000";
- set dmdswrd_Q,13;
+ dmdswrd_Q = 13;
next;
mes "[Nigirboran]";
mes "Ah, I almost forgot";
@@ -2010,7 +2010,7 @@ aldebaran,44,53,4 script Meteurengut#cmd 1_M_WIZARD,{
mes "^3355FF1 Rough Elunium^000000,";
mes "^3355FF1 Emerald^000000, and";
mes "^3355FF1 Blue Gemstone^000000.";
- set dmdswrd_Q,15;
+ dmdswrd_Q = 15;
break;
case 15:
if (countitem(717) > 0 && countitem(726) > 0 && countitem(721) > 0 && countitem(640) > 0 && countitem(757) > 0) {
@@ -2026,7 +2026,7 @@ aldebaran,44,53,4 script Meteurengut#cmd 1_M_WIZARD,{
delitem 721,1; //Azure_Jewel
delitem 640,1; //Shining_Stone
delitem 757,1; //Elunium_Stone
- set dmdswrd_Q,16;
+ dmdswrd_Q = 16;
next;
mes "[Meteurengut]";
mes "Would you please bring me";
@@ -2073,7 +2073,7 @@ aldebaran,44,53,4 script Meteurengut#cmd 1_M_WIZARD,{
mes "*^3355FFClang Clang Clang!*";
mes "*Zaaaaaaaaaaaaaap*";
mes "*Ching tink t-t-t-tap*^000000";
- set dmdswrd_Q,17;
+ dmdswrd_Q = 17;
next;
mes "[Meteurengut]";
mes "*Whew* It's finished.";
@@ -2201,12 +2201,12 @@ morocc,201,30,4 script Zaka#cmd 4W_M_03,{
mes "Ah, yes. The first thing";
mes "I need is ^3355FF2 Snake Scales^000000,";
mes "so please bring those soon.";
- set dmdswrd_Q,18;
+ dmdswrd_Q = 18;
break;
case 18:
if (countitem(926) > 1) {
delitem 926,2; //Scale_Of_Snakes
- set dmdswrd_Q,19;
+ dmdswrd_Q = 19;
mes "[Zaka]";
mes "Ah, you've brought";
mes "the Snake Scales? Good,";
@@ -2249,7 +2249,7 @@ morocc,201,30,4 script Zaka#cmd 4W_M_03,{
mes "I finish this part of the process, okay? Wait, actually, I think";
mes "you can take your time...";
delitem 936,1; //Scales_Shell
- set dmdswrd_Q,20;
+ dmdswrd_Q = 20;
close;
}
mes "[Zaka]";
@@ -2270,7 +2270,7 @@ morocc,201,30,4 script Zaka#cmd 4W_M_03,{
mes "I want to ask you to bring me:";
mes "^3355FF1 Stinky Scale^000000. Easy, right?";
delitem 954,1; //Shining_Scales
- set dmdswrd_Q,21;
+ dmdswrd_Q = 21;
next;
mes "[Zaka]";
mes "The energy of a Stinky";
@@ -2303,7 +2303,7 @@ morocc,201,30,4 script Zaka#cmd 4W_M_03,{
mes "the creation of the";
mes "Book of the Lamb.^000000";
delitem 959,1; //Rotten_Scale
- set dmdswrd_Q,22;
+ dmdswrd_Q = 22;
next;
mes "[Zaka]";
mes "What...?!";
@@ -2431,7 +2431,7 @@ comodo,232,87,4 script Won#cmd 1_M_MOC_LORD,{
next;
mes "^3355FFYou receive the";
mes "Stamp of Muriniel.^000000";
- set dmdswrd_Q,23;
+ dmdswrd_Q = 23;
next;
mes "[Won]";
mes "Mysteltainn, Executioner,";
diff --git a/npc/quests/quests_ein.txt b/npc/quests/quests_ein.txt
index 3283266ea..ca27cd431 100644
--- a/npc/quests/quests_ein.txt
+++ b/npc/quests/quests_ein.txt
@@ -100,7 +100,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
delitem 7126,40; //Large_Jellopy
delitem 1011,10; //Emveretarcon
delitem 912,10; //Zargon
- set ein_gear1,0;
+ ein_gear1 = 0;
getitem 615,1; // Oridecon
close;
}
@@ -275,7 +275,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
mes "as a token of my gratitute.";
mes "If you would, please take this.";
Zeny -= 1000;
- set ein_gear1,2;
+ ein_gear1 = 2;
switch(rand(1,7)) {
case 1:
getitem 7290,1; // Phlogopite
@@ -332,7 +332,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
switch(select("Sure~!:No, thanks.")) {
case 1:
Zeny -= 1000;
- set ein_gear1,1;
+ ein_gear1 = 1;
mes "[Cavitar]";
mes "Great...!";
mes "Now I need to go";
@@ -383,10 +383,10 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
mes "10 Zargon?";
next;
switch(select("Sure~!:No, thanks.")) {
- case 1:
+ case 1:
Zeny -= 1000;
- set $einamanoama,$einamanoama + 1;
- set ein_gear1,1;
+ ++$einamanoama;
+ ein_gear1 = 1;
mes "[Cavitar]";
mes "Great...!";
mes "Now I need to go";
@@ -395,7 +395,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
mes "gather everything I've";
mes "asked you to bring.";
close;
- case 2:
+ case 2:
mes "[Cavitar]";
mes "I see.";
mes "Well, I understand";
@@ -414,7 +414,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
close;
}
}
- }
+ }
case 2:
mes "[Cavitar]";
mes "I understand.";
@@ -424,7 +424,7 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
mes "that I'm desperate...";
close;
}
- case 2:
+ case 2:
mes "[Cavitar]";
mes "You're...";
mes "You're heartless!";
@@ -473,10 +473,10 @@ einbech,97,167,5 script Cavitar 4_M_EINOLD,{
// Uwe Kleine :: ein_anoz
//============================================================
einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
- set EinUwe,0;
+ EinUwe = 0;
if (BaseClass == Job_Blacksmith) {
if (ein_cook > 999) {
- set .@ccc,ein_cook-1000;
+ .@ccc = ein_cook-1000;
if (.@ccc > 199) {
mes "[Uwe]";
mes "Oh hello hello~";
@@ -514,7 +514,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "in your Kafra Storage?";
close;
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,10; //Portable_Furnace
mes "[Uwe]";
mes "I had these lying";
@@ -567,7 +567,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Here's the Coal I promised~";
mes "Oh, and take these Mini Furnaces. They were just lying around, so you know, I thought, well, why don't you take them? *Tee hee hee~*";
delitem 7126,6; //Large_Jellopy
- set ein_cook,219;
+ ein_cook = 219;
getitem 1003,1; //Coal
getitem 612,10; //Portable_Furnace
next;
@@ -625,7 +625,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
else {
mes "I usually give you cutie Blacksmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,11; //Portable_Furnace
next;
mes "[Uwe]";
@@ -670,7 +670,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "in your Kafra Storage?";
close;
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,5; //Portable_Furnace
next;
mes "[Uwe]";
@@ -681,7 +681,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "[Uwe]";
mes "^666666You didn't bring";
mes "any Large Jellopy...?^000000.";
- set ein_cook,219;
+ ein_cook = 219;
next;
mes "[Uwe]";
mes "It's fine! It's not like I feel ^EEA9B8betrayed^000000 or anything, but I don't need them anymore! Since we're both in the business of smithing, I just hope that you remember to follow through on your favors, 'kay? Buhbye~";
@@ -713,7 +713,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
else {
mes "...You ^EEA9B8naughty girl^000000.";
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,10; //Portable_Furnace
next;
mes "[Uwe]";
@@ -741,7 +741,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Here's the Coal I promised~";
mes "Oh, and take these Mini Furnaces. They were just lying around, so you know, I thought, well, why don't you take them? *Tee hee hee~*";
delitem 7126,6; //Large_Jellopy
- set ein_cook,219;
+ ein_cook = 219;
getitem 1003,1; //Coal
getitem 612,10; //Portable_Furnace
close;
@@ -781,7 +781,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
else {
mes "I usually give you cutie Blacksmiths 10 Mini Furnaces, but you can have ^EEA9B811^000000. There's the little something extra I was talking about.";
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,11; //Portable_Furnace
next;
mes "[Uwe]";
@@ -810,7 +810,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
else {
mes "...you ^EEA9B8naughty girl^000000.";
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,10; //Portable_Furnace
next;
mes "[Uwe]";
@@ -825,7 +825,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "[Uwe]";
mes "^666666You didn't bring";
mes "any Large Jellopy...?^000000.";
- set ein_cook,219;
+ ein_cook = 219;
next;
mes "[Uwe]";
mes "It's fine! It's not like I feel ^EEA9B8betrayed^000000 or anything, but I don't need them anymore! Since we're both in the business of smithing, I just hope that you remember to follow through on your favors, 'kay? Buhbye~";
@@ -859,7 +859,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "...You ^EEA9B8naughty girl^000000.";
}
}
- set ein_cook,219;
+ ein_cook = 219;
getitem 612,10; //Portable_Furnace
next;
mes "[Uwe]";
@@ -933,7 +933,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "some Emvertarcons today,";
mes "so please have one, 'kay?";
mes "Welcome to Einbroch, cutie~";
- set ein_cook,1;
+ ein_cook = 1;
getitem 1011,1; //Emveretarcon
break;
case 2:
@@ -957,7 +957,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "someone just gave me some";
mes "Steel. Why don't you have 2 of";
mes "them as my little way of saying, ''Welcome to Einbroch, cutie~!''";
- set ein_cook,3;
+ ein_cook = 3;
getitem 998,2; //Iron
break;
case 3:
@@ -994,7 +994,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "some Emvertarcons today,";
mes "so please have one, 'kay?";
mes "Welcome to Einbroch, cutie~";
- set ein_cook,5;
+ ein_cook = 5;
getitem 1011,1; //Emveretarcon
break;
case 4:
@@ -1023,7 +1023,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Why don't you have one as";
mes "my way of saying ''Welcome";
mes "to Einbroch, sugar honey~''";
- set ein_cook,7;
+ ein_cook = 7;
getitem 613,1; //Iron_Hammer
break;
}
@@ -1165,7 +1165,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "stuff in your Kafra Storage~";
close;
}
- set ein_cook,11;
+ ein_cook = 11;
getitem 614,1; //Golden_Hammer
getitem 613,1; //Iron_Hammer
mes "[Uwe]";
@@ -1278,7 +1278,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "stuff in your Kafra Storage~";
close;
}
- set ein_cook,13;
+ ein_cook = 13;
getitem 614,1; //Golden_Hammer
getitem 613,1; //Iron_Hammer
mes "[Uwe]";
@@ -1394,7 +1394,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "stuff in your Kafra Storage~";
close;
}
- set ein_cook,15;
+ ein_cook = 15;
getitem 614,1; //Golden_Hammer
getitem 613,1; //Iron_Hammer
next;
@@ -1466,7 +1466,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Never cut corners and always";
mes "dedicate yourself to make the";
mes "very best finished product~";
- set ein_cook,17;
+ ein_cook = 17;
next;
mes "[Uwe]";
mes "Well, that was";
@@ -1659,7 +1659,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "stuff in your Kafra Storage~";
close;
}
- set ein_cook,19;
+ ein_cook = 19;
getitem 614,1; //Golden_Hammer
getitem 613,1; //Iron_Hammer
next;
@@ -2055,7 +2055,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "have some of these";
mes "cookies I just baked~";
next;
- set ein_cook,9;
+ ein_cook = 9;
getitem 538,5; //Well_Baked_Cookie
mes "[Uwe]";
mes "Okay, enjoy!";
@@ -2071,7 +2071,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "just thinking about";
mes "something but now I just";
mes "lost my train of thought.";
- set ein_cook,219;
+ ein_cook = 219;
next;
mes "[Uwe]";
mes "What was I going";
@@ -2083,26 +2083,26 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
}
}
else {
- set .@aaa,ein_cook % 2;
+ .@aaa = ein_cook % 2;
if (.@aaa == 1) {
- set .@bbb,ein_cook;
+ .@bbb = ein_cook;
if (.@bbb > 99) {
- set .@bbb,.@bbb-100;
+ .@bbb -= 100;
if (.@bbb > 99) {
- set .@bbb,.@bbb-100;
+ .@bbb -= 100;
if (.@bbb > 99) {
- set .@ccc,3;
+ .@ccc = 3;
}
else {
- set .@ccc,2;
+ .@ccc = 2;
}
}
else {
- set .@ccc,1;
+ .@ccc = 1;
}
}
else {
- set .@ccc,0;
+ .@ccc = 0;
}
if (.@ccc < 3) {
mes "[Uwe]";
@@ -2112,10 +2112,10 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "we've met somewhere before...";
next;
if (.@ccc == 0) {
- set ein_cook,ein_cook+300;
+ ein_cook += 300;
}
else if (.@ccc == 2) {
- set ein_cook,ein_cook+100;
+ ein_cook += 100;
}
mes "[Uwe]";
mes "Ah...!";
@@ -2343,7 +2343,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
}
}
if (ein_cook > 999) {
- set .@eee,ein_cook-1000;
+ .@eee = ein_cook-1000;
if (.@eee > 199) {
mes "[Uwe]";
mes "Ah, hello again,";
@@ -2688,7 +2688,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "Thank you ^EEA9B8so^000000 much!";
mes "Here's the Coal I promised~";
delitem 7126,6; //Large_Jellopy
- set ein_cook,ein_cook+100;
+ ein_cook += 100;
getitem 1003,1; //Coal
next;
}
@@ -2969,7 +2969,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "things. Get some paper,";
mes "and a pen for this list...";
next;
- set ein_cook,ein_cook+100;
+ ein_cook += 100;
mes "[Uwe]";
mes "Just kidding!";
mes "^333333*Titter~*^000000 I don't need";
@@ -3017,7 +3017,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
switch(select("Um, isn't this a forge?:Ignore him.")) {
case 1:
mes "[Uwe]";
- set ein_cook,1000;
+ ein_cook = 1000;
mes "Is this a forge?";
mes "Oh, sugar honey,";
mes "you haven't been here";
@@ -3158,7 +3158,7 @@ einbroch,215,180,6 script Uwe Kleine#ein 4_M_03,{
mes "things. Get some paper,";
mes "and a pen for this list...";
next;
- set ein_cook,ein_cook+100;
+ ein_cook += 100;
mes "[Uwe]";
mes "Just kidding!";
mes "^333333*Titter~*^000000 I don't need";
@@ -3215,7 +3215,7 @@ einbroch,1,1,0 script Einbroch Smog Alert -1,{
end;
OnEnable:
- set $@AlrdEinPoll,1;
+ $@AlrdEinPoll = 1;
mapannounce "einbroch","This is a state of emercency! Harmful smog is reaching high levels of saturation. Residents of Einbroch must find shelter immediately.",bc_map;
enablenpc "Einbroch Smog Alert";
hideonnpc "Centzu#ein";
@@ -3363,8 +3363,8 @@ OnTimer600000:
hideoffnpc "Paddler#ein";
hideoffnpc "Laboratory Soldier#ein-1";
hideoffnpc "Laboratory Soldier#ein-2";
- set $@AlrdEinPoll,0;
- set $EinPolution,0;
+ $@AlrdEinPoll = 0;
+ $EinPolution = 0;
stopnpctimer;
end;
}
@@ -3372,7 +3372,7 @@ OnTimer600000:
einbroch,132,84,3 script Liotzburg#ein 4_M_YURI,2,2,{
if ((EinFactory == 13) || (EinFactory == 14)) {
changequest 8029,8030;
- set EinFactory,14;
+ EinFactory = 14;
mes "[Liotzburg]";
mes "What...?";
mes "Factory Repair";
@@ -3438,7 +3438,7 @@ OnTouch:
mes "fix this! I gotta hide and find";
mes "someplace safe!";
close2;
- if ($EinPolution > 9 && !$@AlrdEinPoll) {
+ if ($EinPolution > 9 && !$@AlrdEinPoll) {
donpcevent "Einbroch Smog Alert::OnEnable";
hideonnpc "Liotzburg#ein";
}
@@ -3552,9 +3552,9 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
delitem 7325,20; //Tube
delitem 7317,10; //Screw
delitem 7319,10; //Old_Steel_Plate
- set $EinPolution,$EinPolution+1;
+ ++$EinPolution;
completequest 8031;
- set EinFactory,16;
+ EinFactory = 16;
if (checkre(3)) {
if (BaseLevel < 41) getexp 61,0;
else if (BaseLevel < 51) getexp 307,0;
@@ -3643,7 +3643,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "we could make those repairs.";
next;
changequest 8030,8031;
- set EinFactory,15;
+ EinFactory = 15;
mes "[Zelmeto]";
mes "But without funds, there's";
mes "no way we can purchase";
@@ -3689,7 +3689,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "functioning again.";
next;
changequest 8028,8029;
- set EinFactory,13;
+ EinFactory = 13;
mes "[Zelmeto]";
mes "First, I better";
mes "hurry and request";
@@ -3743,7 +3743,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "where it could be now.";
next;
changequest 8026,8027;
- set EinFactory,11;
+ EinFactory = 11;
mes "[Zelmeto]";
mes "Still, I'm sure that";
mes "it's inside the building,";
@@ -3796,7 +3796,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "be able to find it pretty easily.";
next;
changequest 8024,8025;
- set EinFactory,9;
+ EinFactory = 9;
mes "[Zelmeto]";
mes "Thanks again";
mes "for your help,";
@@ -3851,7 +3851,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "and fix it right away.";
next;
changequest 8022,8023;
- set EinFactory,7;
+ EinFactory = 7;
mes "[Zelmeto]";
mes "Thanks again";
mes "in advance.";
@@ -3899,7 +3899,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "operating fine for now...";
next;
changequest 8020,8021;
- set EinFactory,5;
+ EinFactory = 5;
mes "[Zelmeto]";
mes "We need to ensure that";
mes "it's stable, reliable and";
@@ -3951,7 +3951,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "report it to me. I know it might seem fine now, but I want to prevent an accident if I can.";
next;
changequest 8018,8019;
- set EinFactory,3;
+ EinFactory = 3;
mes "[Zelmeto]";
mes "Thank you";
mes "in advance,";
@@ -4044,7 +4044,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
mes "You should find it easily.";
next;
setquest 8017;
- set EinFactory,1;
+ EinFactory = 1;
mes "[Zelmeto]";
mes "When you finish your";
mes "inspection, report back";
@@ -4076,7 +4076,7 @@ ein_in01,67,242,3 script Zelmeto 4_M_REPAIR,{
ein_in01,49,232,3 script 2nd Control Panel#ins HIDDEN_NPC,{
if ((EinFactory == 1) || (EinFactory == 2)) {
changequest 8017,8018;
- set EinFactory,2;
+ EinFactory = 2;
mes "^3355FFIt's the 2nd control panel";
mes "Zelmeto asked you to inspect.";
mes "It looks totally broken: screws";
@@ -4091,7 +4091,7 @@ ein_in01,49,232,3 script 2nd Control Panel#ins HIDDEN_NPC,{
ein_in01,108,217,3 script 3rd Pressure Governor#1 HIDDEN_NPC,{
if ((EinFactory == 3) || (EinFactory == 4)) {
changequest 8019,8020;
- set EinFactory,4;
+ EinFactory = 4;
mes "^3355FFAt first glance, this";
mes "pressure governor looks";
mes "perfectly fine. But after you";
@@ -4107,7 +4107,7 @@ ein_in01,108,217,3 script 3rd Pressure Governor#1 HIDDEN_NPC,{
ein_in01,62,258,3 script Main Control Panel#ins HIDDEN_NPC,{
if ((EinFactory == 5) || (EinFactory == 6)) {
changequest 8021,8022;
- set EinFactory,6;
+ EinFactory = 6;
mes "^3355FFThe main control panel";
mes "doesn't look like it has";
mes "any problems. But after";
@@ -4123,7 +4123,7 @@ ein_in01,62,258,3 script Main Control Panel#ins HIDDEN_NPC,{
ein_in01,46,197,3 script Conveyor#ins HIDDEN_NPC,{
if ((EinFactory == 7) || (EinFactory == 8)) {
changequest 8023,8024;
- set EinFactory,8;
+ EinFactory = 8;
mes "^3355FFThe conveyor's movements";
mes "look jittery and clumsy. The";
mes "mechanical arm also doesn't";
@@ -4138,7 +4138,7 @@ ein_in01,46,197,3 script Conveyor#ins HIDDEN_NPC,{
ein_in01,100,266,3 script Pipe#ins HIDDEN_NPC,{
if ((EinFactory == 9) || (EinFactory == 10)) {
changequest 8025,8026;
- set EinFactory,10;
+ EinFactory = 10;
mes "^3355FFThe inspection of this";
mes "pipe didn't take very long.";
mes "It's bloated and worn out";
@@ -4154,7 +4154,7 @@ ein_in01,100,266,3 script Pipe#ins HIDDEN_NPC,{
ein_in01,95,239,3 script Conveyor#ins2 HIDDEN_NPC,{
if ((EinFactory == 11) || (EinFactory == 12)) {
changequest 8027,8028;
- set EinFactory,12;
+ EinFactory = 12;
mes "^3355FFThis conveyor seems";
mes "to have similar problems";
mes "as its smaller version. Its";
@@ -4168,7 +4168,7 @@ ein_in01,95,239,3 script Conveyor#ins2 HIDDEN_NPC,{
// Administrator NPC used to rig the invasion in Einbroch.
sec_in02,127,86,3 script Factory Quest Test 4_M_REPAIR,{
- set .@i, callfunc("F_GM_NPC",8028,0,0,9000);
+ .@i = callfunc("F_GM_NPC",8028,0,0,9000);
if (.@i == -2) {
mes "[Test1]";
mes "Boo~ya.";
@@ -4198,14 +4198,14 @@ sec_in02,127,86,3 script Factory Quest Test 4_M_REPAIR,{
mes "Okay...!";
mes "It's been";
mes "changed to ''0.''";
- set $EinPolution,0;
+ $EinPolution = 0;
close;
case 2:
mes "[Test2]";
mes "Okay...!";
mes "It's been";
mes "changed to ''10.''";
- set $EinPolution,10;
+ $EinPolution = 10;
close;
case 3:
donpcevent "Einbroch Smog Alert::OnEnable";
@@ -4393,7 +4393,7 @@ einbech,165,105,7 script Buender Hikeman#ein 4_M_EINOLD,{
mes "Then I learned...";
mes "You planned it all along.";
setquest 2071;
- set Shinokas_Quest,1;
+ Shinokas_Quest = 1;
close2;
cutin "ein_hicman",255;
end;
@@ -4505,7 +4505,7 @@ einbech,165,105,7 script Buender Hikeman#ein 4_M_EINOLD,{
mes "provoke the old man anymore,";
mes "intentionally or not.^000000";
changequest 2071,2072;
- set Shinokas_Quest,2;
+ Shinokas_Quest = 2;
close2;
cutin "ein_hicman",255;
end;
@@ -4664,7 +4664,7 @@ einbech,165,105,7 script Buender Hikeman#ein 4_M_EINOLD,{
close2;
cutin "ein_hicman",255;
completequest 2078;
- set Shinokas_Quest,11;
+ Shinokas_Quest = 11;
if (checkre(3)) {
if (BaseLevel < 70) getexp 30000,30000;
else if ((BaseLevel > 69) && (BaseLevel < 80)) getexp 40000,40000;
@@ -4742,7 +4742,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
close;
}
else if (Shinokas_Quest == 2) {
- set einbech,0;
+ einbech = 0;
mes "[Sick Old Man]";
mes "...!";
next;
@@ -4788,7 +4788,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "^3355FFIt doesn't seem";
mes "like this old man";
mes "is telling the truth...^000000";
- set einbech,0;
+ einbech = 0;
next;
}
else {
@@ -4800,7 +4800,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "what the hell";
mes "you're talking";
mes "about!";
- set .@einbech,.@einbech+1;
+ ++.@einbech;
next;
break;
case 2:
@@ -4809,7 +4809,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "W-why would you";
mes "even ask me that";
mes "kind of question?!";
- set .@einbech,.@einbech+1;
+ ++.@einbech;
next;
break;
case 3:
@@ -4823,7 +4823,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "like this old man";
mes "is telling the truth...^000000";
if (.@einbech > 0) {
- set .@einbech,0;
+ .@einbech = 0;
}
next;
break;
@@ -4900,7 +4900,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "happened. But it's a";
mes "long story...";
changequest 2072,2073;
- set Shinokas_Quest,3;
+ Shinokas_Quest = 3;
close;
}
else if (Shinokas_Quest == 3) {
@@ -4979,7 +4979,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "I'm too old and weak to leave";
mes "this house, and there's the chance that those men will find me. If you can sympathize with my situation, please find out if the Kapellthaine family has any unique ores...";
changequest 2073,2074;
- set Shinokas_Quest,4;
+ Shinokas_Quest = 4;
close;
}
else if (Shinokas_Quest == 4) {
@@ -5025,7 +5025,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "Factory for that ore as";
mes "soon as you can.";
changequest 2074,2075;
- set Shinokas_Quest,6;
+ Shinokas_Quest = 6;
close;
}
else if (Shinokas_Quest == 6) {
@@ -5106,7 +5106,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "of place. But I'm sure";
mes "you'll figure something out.";
changequest 2075,2076;
- set Shinokas_Quest,7;
+ Shinokas_Quest = 7;
close;
}
}
@@ -5235,7 +5235,7 @@ ein_in01,231,163,7 script Sick Old Man#ein 4_M_DIEMAN,{
mes "Why, God?";
mes "Why...";
changequest 2077,2078;
- set Shinokas_Quest,10;
+ Shinokas_Quest = 10;
close;
}
else if (Shinokas_Quest > 9) {
@@ -5273,7 +5273,7 @@ ein_in01,32,133,7 script Maid#ein 4_F_EINWOMAN,{
mes "special or otherwise, here";
mes "in the manor. What exactly";
mes "do you need them for?";
- set Shinokas_Quest,5;
+ Shinokas_Quest = 5;
close;
}
else {
@@ -5322,7 +5322,7 @@ ein_in01,254,35,1 script Scientist#ein 4_M_ALCHE_B,{
mes "flirting with that";
mes "woman. God...!";
mes "I'm like, so teed off!";
- set Shinokas_Quest,8;
+ Shinokas_Quest = 8;
close;
case 2:
mes "[Scientist]";
@@ -5357,7 +5357,7 @@ ein_in01,266,27,3 script Unknown Stuff#ein HIDDEN_NPC,{
mes "and folds of barbed wire.^000000";
close;
}
-
+
einbroch,51,46,5 script Laboratory Soldier#ein-1 4_M_EIN_SOLDIER,{
mes "[Laboratory Soldier]";
mes "This area";
@@ -5366,7 +5366,7 @@ einbroch,51,46,5 script Laboratory Soldier#ein-1 4_M_EIN_SOLDIER,{
mes "immediately.";
close;
}
-
+
einbroch,51,56,5 script Laboratory Soldier#ein-2 4_M_EIN_SOLDIER,{
mes "[Laboratory Soldier]";
mes "Yuck...!";
@@ -5572,7 +5572,7 @@ airplane,31,77,5 script Drunken Man#ein 4_M_YURI,{
mes "of ^3131FFYmir's Heart^333333. I better";
mes "tell Shinokas about this.)^000000";
changequest 2076,2077;
- set Shinokas_Quest,9;
+ Shinokas_Quest = 9;
close;
case 2:
mes "[Drunken Man]";
@@ -5692,12 +5692,12 @@ OnTouch:
mes "Failure to do so will result";
mes "in lockout. Please wait.";
next;
- set .@startseconds,gettime(3)*60*60+gettime(2)*60+gettime(1);
+ .@startseconds = gettime(3)*60*60+gettime(2)*60+gettime(1);
mes "[Security System]";
switch(rand(1,7)) {
case 1:
- set .@word1$,"burrdingdingdilidingdingphoohudaambandoorabambarambambamburanbamding";
- set .@word2$,"burapaphurarlandreamduranbatuhiwooikabamturubamdingding";
+ .@word1$ = "burrdingdingdilidingdingphoohudaambandoorabambarambambamburanbamding";
+ .@word2$ = "burapaphurarlandreamduranbatuhiwooikabamturubamdingding";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5705,8 +5705,8 @@ OnTouch:
mes "^FF1493"+.@word2$+"^000000";
break;
case 2:
- set .@word1$,"...silence. quiet benevolence... soul mate... wonder. enigma... cloud.";
- set .@word2$,"opeN,Open!op3n.openOpen0p3nOpEn0pen`open'0Pen open?open!111OPENSESAME";
+ .@word1$ = "...silence. quiet benevolence... soul mate... wonder. enigma... cloud.";
+ .@word2$ = "opeN,Open!op3n.openOpen0p3nOpEn0pen`open'0Pen open?open!111OPENSESAME";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5714,8 +5714,8 @@ OnTouch:
mes "^FF1493"+.@word2$+"^000000";
break;
case 3:
- set .@word1$,"Coboman no chikara-yumei na chikara-daiookii na chikara da ze! COBO ON";
- set .@word2$,"hfjdkeldjsieldjshfjdjeiskdlefvbd";
+ .@word1$ = "Coboman no chikara-yumei na chikara-daiookii na chikara da ze! COBO ON";
+ .@word2$ = "hfjdkeldjsieldjshfjdjeiskdlefvbd";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5723,8 +5723,8 @@ OnTouch:
mes "^FF1493"+.@word2$+"^000000";
break;
case 4:
- set .@word1$,"belief love luck grimace sweat rush folktale rodimus optimus bumblebee";
- set .@word2$,"LiGhTsPeEd RiGhT SPEed LeFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk";
+ .@word1$ = "belief love luck grimace sweat rush folktale rodimus optimus bumblebee";
+ .@word2$ = "LiGhTsPeEd RiGhT SPEed LeFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5732,8 +5732,8 @@ OnTouch:
mes "^FF1493"+.@word2$+"^000000";
break;
case 5:
- set .@word1$,"By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!";
- set .@word2$,"uNflAPPaBLe LoVaBLe SeCreTs AnD BoWLiNg aGaINST tHe KarMA of YoUtH";
+ .@word1$ = "By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!";
+ .@word2$ = "uNflAPPaBLe LoVaBLe SeCreTs AnD BoWLiNg aGaINST tHe KarMA of YoUtH";
mes "^3CBCBCBy the power of p-po-poi-po-poi-poin-poing";
mes "GOD-POING. I NEVER LOSE!^000000";
next;
@@ -5742,8 +5742,8 @@ OnTouch:
mes "^FF1493"+.@word2$+"^000000";
break;
case 6:
- set .@word1$,"You give me no choice. I guess it's time for me to reveal my secret...";
- set .@word2$,"fReeDoM eCstAcy JoUrnaLiSm ArMpIt DisCoverY hEaDaChE MoonbeAmS jUsTiCE";
+ .@word1$ = "You give me no choice. I guess it's time for me to reveal my secret...";
+ .@word2$ = "fReeDoM eCstAcy JoUrnaLiSm ArMpIt DisCoverY hEaDaChE MoonbeAmS jUsTiCE";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5751,8 +5751,8 @@ OnTouch:
mes "^800080"+.@word2$+"^000000";
break;
case 7:
- set .@word1$,"I'm the King of All Weirdos! Now you know of my true power. Obey~!";
- set .@word2$,"0uNflAPPaBLe LoVaBLe SeCreTs AnD BoWLiNg aGaINST tHe KarMA of YoUtH";
+ .@word1$ = "I'm the King of All Weirdos! Now you know of my true power. Obey~!";
+ .@word2$ = "0uNflAPPaBLe LoVaBLe SeCreTs AnD BoWLiNg aGaINST tHe KarMA of YoUtH";
mes "^3CBCBC"+.@word1$+"^000000";
next;
input .@input1$;
@@ -5761,8 +5761,8 @@ OnTouch:
}
next;
input .@input2$;
- set .@endtime,gettime(3)*60*60+gettime(2)*60+gettime(1);
- set .@time,.@endtime-.@startseconds;
+ .@endtime = gettime(3)*60*60+gettime(2)*60+gettime(1);
+ .@time = .@endtime-.@startseconds;
mes "[Security System]";
if ((.@input1$ == .@word1$) && (.@input2$ == .@word2$)) {
if (.@time > 60) {
@@ -5936,7 +5936,7 @@ ein_in01,31,138,3 script Calla#ein 4_F_01,{
mes "Wait. Now I just";
mes "feel goooood~";
percentheal 100,0;
- set EIN_LOVERQ,17;
+ EIN_LOVERQ = 17;
if (checkre(3)) {
if (BaseLevel < 41) getexp 61,0;
else if (BaseLevel < 61) getexp 600,0;
@@ -6003,7 +6003,7 @@ ein_in01,31,138,3 script Calla#ein 4_F_01,{
mes "I really miss him a lot.";
mes "^333333*Sob Sob...*^000000";
delitem 712,1; //Flower
- set EIN_LOVERQ,6;
+ EIN_LOVERQ = 6;
changequest 8079,808;
close;
}
@@ -6037,7 +6037,7 @@ ein_in01,31,138,3 script Calla#ein 4_F_01,{
mes "try to make it to Klitzer";
mes "this time? Thank you";
mes "for your help~";
- set EIN_LOVERQ,3;
+ EIN_LOVERQ = 3;
changequest 8078,8077;
getitem 1901,1; //Violin
close;
@@ -6080,7 +6080,7 @@ ein_in01,31,138,3 script Calla#ein 4_F_01,{
mes "I used to play this for him";
mes "all the time...";
next;
- set EIN_LOVERQ,3;
+ EIN_LOVERQ = 3;
changequest 8076,8077;
getitem 1901,1; //Violin
mes "[Calla]";
@@ -6109,7 +6109,7 @@ ein_in01,31,138,3 script Calla#ein 4_F_01,{
mes "much less change things here...";
next;
if (EIN_LOVERQ == 0) {
- set EIN_LOVERQ,1;
+ EIN_LOVERQ = 1;
}
mes "[Calla]";
mes "How is it like?";
@@ -6171,7 +6171,7 @@ ein_in01,200,101,5 script Klitzer#ein 4_M_EINMAN2,{
mes "that it's pretty rare. It may";
mes "even be useful to you later~";
delitem 7170,1; //Tuxedo
- set EIN_LOVERQ,16;
+ EIN_LOVERQ = 16;
changequest 8087,8088;
switch(rand(1,7)) {
case 1:
@@ -6269,7 +6269,7 @@ ein_in01,200,101,5 script Klitzer#ein 4_M_EINMAN2,{
mes "Wow. This is so sudden!";
mes "W-what should I do?";
next;
- set EIN_LOVERQ,14;
+ EIN_LOVERQ = 14;
changequest 8085,8086;
mes "[Klitzer]";
mes "This monkey suit";
@@ -6318,7 +6318,7 @@ ein_in01,200,101,5 script Klitzer#ein 4_M_EINMAN2,{
mes "person, I can at least send";
mes "my regards if you help me.";
next;
- set EIN_LOVERQ,7;
+ EIN_LOVERQ = 7;
changequest 8080,8081;
mes "[Klitzer]";
mes "I feel so much";
@@ -6411,7 +6411,7 @@ ein_in01,200,101,5 script Klitzer#ein 4_M_EINMAN2,{
mes "That's the stuff!";
percentheal 100,0;
delitem 1901,1; //Violin
- set EIN_LOVERQ,5;
+ EIN_LOVERQ = 5;
changequest 8077,8079;
if (checkre(3)) {
if (BaseLevel < 41) getexp 61,0;
@@ -6474,7 +6474,7 @@ ein_in01,200,101,5 script Klitzer#ein 4_M_EINMAN2,{
mes "a complete idiot. But I'd";
mes "give anything to see her...";
next;
- set EIN_LOVERQ,2;
+ EIN_LOVERQ = 2;
setquest 8076;
mes "[Klitzer]";
mes "Just...";
@@ -6553,7 +6553,7 @@ OnTouch:
mes "Make sure that if this punk";
mes "wakes up, it won't be today!";
delitem 1901,1; //Violin
- set EIN_LOVERQ,4;
+ EIN_LOVERQ = 4;
changequest 8077,8078;
percentheal -90,0;
close2;
@@ -6668,7 +6668,7 @@ ein_in01,31,151,3 script Satra#ein 4_F_EINWOMAN,{
mes "marry that oafish Megass~";
next;
delitem 1003,10; //Coal
- set EIN_LOVERQ,13;
+ EIN_LOVERQ = 13;
changequest 8084,8085;
mes "[Satra]";
mes "Anyway, when you next";
@@ -6754,7 +6754,7 @@ ein_in01,31,151,3 script Satra#ein 4_F_EINWOMAN,{
mes "chance to prove their worth.";
next;
delitem 1003,10; //Coal
- set EIN_LOVERQ,12;
+ EIN_LOVERQ = 12;
mes "[Satra]";
mes "Why should I deprive";
mes "the lowly of my gracious";
@@ -6836,7 +6836,7 @@ ein_in01,31,151,3 script Satra#ein 4_F_EINWOMAN,{
mes "living here than in Einbech.";
next;
delitem 1003,10; //Coal
- set EIN_LOVERQ,11;
+ EIN_LOVERQ = 11;
mes "[Satra]";
mes "Goodness, I believe";
mes "it's time for a spot of tea~";
@@ -6894,7 +6894,7 @@ ein_in01,31,151,3 script Satra#ein 4_F_EINWOMAN,{
mes "and Jawaii is very lovely.";
next;
delitem 1003,10; //Coal
- set EIN_LOVERQ,10;
+ EIN_LOVERQ = 10;
changequest 8083,8084;
mes "[Satra]";
mes "Well, I shall try to";
@@ -7045,7 +7045,7 @@ ein_in01,31,151,3 script Satra#ein 4_F_EINWOMAN,{
mes "for someone like yourself, but";
mes "this kind of task will require";
mes "some effort on your part.";
- set EIN_LOVERQ,9;
+ EIN_LOVERQ = 9;
changequest 8082,8083;
next;
mes "[Satra]";
@@ -7120,7 +7120,7 @@ ein_in01,191,102,5 script Kaijeta#ein 4_F_EINOLD,{
mes "things like choosing clothing.";
mes "He gets so nervous about it!";
next;
- set EIN_LOVERQ,15;
+ EIN_LOVERQ = 15;
changequest 8086,8087;
mes "[Kaijeta]";
mes "A man should wear nice";
@@ -7167,7 +7167,7 @@ ein_in01,191,102,5 script Kaijeta#ein 4_F_EINOLD,{
mes "when his heart's broken. And";
mes "I still have no idea how he got together with such a rich woman.";
next;
- set EIN_LOVERQ,8;
+ EIN_LOVERQ = 8;
mes "[Kaijeta]";
mes "Do you have any idea";
mes "how we can put an end";
diff --git a/npc/quests/quests_geffen.txt b/npc/quests/quests_geffen.txt
index 9c73d6c9f..03bcebac5 100644
--- a/npc/quests/quests_geffen.txt
+++ b/npc/quests/quests_geffen.txt
@@ -233,22 +233,22 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
mes "Number Match game. Please";
mes "try to guess my number, okay?";
mes "If you want to cancel, then please enter a number greater than 1,000.";
- set .@practice,1;
+ .@practice = 1;
break;
case 3:
mes "[Nia]";
mes "Great, let's play Number Match!";
mes "You will have 5 chances to guess the number that I'm thinking of.";
mes "If you want to cancel, then please enter a number greater than 1,000.";
- set .@practice,0;
+ .@practice = 0;
break;
case 4:
- set .@name_record$, $050908_minus1_yagu$;
+ .@name_record$ = $050908_minus1_yagu$;
if (.@name_record$ == "") //custom
- set .@name_record$,"(null)";
- set .@score_record, $050908_minus1_yagu;
- set .@score_min, .@score_record / 60;
- set .@score_sec, .@score_record % 60;
+ .@name_record$ = "(null)";
+ .@score_record = $050908_minus1_yagu;
+ .@score_min = .@score_record / 60;
+ .@score_sec = .@score_record % 60;
mes "[Nia]";
mes "^ff0000" + .@name_record$ + "^000000 is the";
mes "record holder for the Number";
@@ -268,12 +268,12 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
// Generate 3 digits of a number.
while(1) {
- set .@yagu100, rand(1,9);
- set .@yagu10, rand(1,9);
- set .@yagu1, rand(1,9);
+ .@yagu100 = rand(1,9);
+ .@yagu10 = rand(1,9);
+ .@yagu1 = rand(1,9);
if ((.@yagu100 != .@yagu10) && (.@yagu100 != .@yagu1) && (.@yagu10 != .@yagu1)) {
// Store the actual number (unofficial).
- set .@yagu, (100*.@yagu100) + (10*.@yagu10) + .@yagu1;
+ .@yagu = (100*.@yagu100) + (10*.@yagu10) + .@yagu1;
break;
}
}
@@ -281,7 +281,7 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
// The official time calculation is based on ServerTime,
// an int HHMMSS equivalent to atoi(gettimestr("%H%M%S",7)).
// UNIX time is really a better way to do this.
- set .@start_time, gettimetick(2);
+ .@start_time = gettimetick(2);
while(1) {
@@ -293,9 +293,9 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
mes "Number Match game.";
close;
}
- set .@input100, .@input / 100;
- set .@input10, (.@input % 100) / 10;
- set .@input1, .@input % 10;
+ .@input100 = .@input / 100;
+ .@input10 = (.@input % 100) / 10;
+ .@input1 = .@input % 10;
if ((.@input100 > 0) && (.@input10 > 0) && (.@input1 > 0)) {
if ((.@input100 != .@input10) && (.@input100 != .@input1) && (.@input10 != .@input1))
break;
@@ -309,7 +309,7 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
next;
}
- set .@retry, .@retry+1;
+ .@retry = .@retry+1;
mes "[Nia]";
mes "^ff0000"+strcharinfo(0)+"^000000,";
mes "your guess is ^0000ff"+.@input+"^000000.";
@@ -318,22 +318,22 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
next;
// Correct digits in correct locations.
- set .@strike,0;
+ .@strike = 0;
if (.@yagu100 == .@input100)
- set .@strike, .@strike+1;
+ .@strike += 1;
if (.@yagu10 == .@input10)
- set .@strike, .@strike+1;
+ .@strike += 1;
if (.@yagu1 == .@input1)
- set .@strike, .@strike+1;
+ .@strike += 1;
// Correct digits in incorrect locations.
- set .@ball,0;
+ .@ball = 0;
if ((.@yagu100 == .@input10) || (.@yagu100 == .@input1))
- set .@ball, .@ball+1;
+ .@ball += 1;
if ((.@yagu10 == .@input100) || (.@yagu10 == .@input1))
- set .@ball, .@ball+1;
+ .@ball += 1;
if ((.@yagu1 == .@input100) || (.@yagu1 == .@input10))
- set .@ball, .@ball+1;
+ .@ball += 1;
if (.@strike == 3) {
if (.@practice) {
@@ -348,22 +348,22 @@ geffen,122,77,4 script Nia#yagu 8_F_GIRL,{
} else {
// Calculate final time and check against the previous record.
- set .@end_time, gettimetick(2);
+ .@end_time = gettimetick(2);
if (.@end_time < .@start_time)
- set .@end_time, .@end_time + 3600;
- set .@total_time, .@end_time - .@start_time;
- set .@total_min, .@total_time / 60;
- set .@total_sec, .@total_time % 60;
- set .@name_record$, $050908_minus1_yagu$;
+ .@end_time += 3600;
+ .@total_time = .@end_time - .@start_time;
+ .@total_min = .@total_time / 60;
+ .@total_sec = .@total_time % 60;
+ .@name_record$ = $050908_minus1_yagu$;
if (.@name_record$ == "") //custom
- set .@name_record$,"(null)";
- set .@score_record, $050908_minus1_yagu;
- set .@score_min, .@score_record / 60;
- set .@score_sec, .@score_record % 60;
+ .@name_record$ = "(null)";
+ .@score_record = $050908_minus1_yagu;
+ .@score_min = .@score_record / 60;
+ .@score_sec = .@score_record % 60;
if (.@score_record >= .@total_time || !.@score_record) { //custom (second condition)
- set $050908_minus1_yagu$, strcharinfo(0);
- set $050908_minus1_yagu, .@total_time;
+ $050908_minus1_yagu$ = strcharinfo(0);
+ $050908_minus1_yagu = .@total_time;
mes "[Nia]";
mes "Great! You guessed";
mes "my number, which was";
diff --git a/npc/quests/quests_gonryun.txt b/npc/quests/quests_gonryun.txt
index f5c1fe522..039732025 100644
--- a/npc/quests/quests_gonryun.txt
+++ b/npc/quests/quests_gonryun.txt
@@ -22,7 +22,7 @@
gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
if (BaseLevel > 50) {
if (b_sword == 0) {
- set b_sword,1;
+ b_sword = 1;
mes "[Shi Yan Wen]";
mes "Hmm...?";
mes "Oh, hello there~";
@@ -100,7 +100,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "happened... Well, if you see";
mes "any suspicious characters around,";
mes "or find what was stolen, please let me know.";
- set b_sword,3;
+ b_sword = 3;
close;
case 2:
mes "[Shi Yan Wen]";
@@ -124,7 +124,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "um..Thank you.";
mes "If you somehow come across it,";
mes "please let me know.";
- set b_sword,11;
+ b_sword = 11;
close;
}
mes "[Shi Yan Wen]";
@@ -136,7 +136,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
next;
mes "[Shi Yan Wen]";
mes "If you would help me find the sword, I will surely repay you for your efforts.";
- set b_sword,3;
+ b_sword = 3;
close;
case 3:
mes "[Shi Yan Wen]";
@@ -161,7 +161,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "Um..Thank you.";
mes "If you somehow come across it,";
mes "please let me know.";
- set b_sword,11;
+ b_sword = 11;
close;
}
mes "[Shi Yan Wen]";
@@ -173,7 +173,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
next;
mes "[Shi Yan Wen]";
mes "If you would help me find the sword, I will surely repay you for your efforts.";
- set b_sword,3;
+ b_sword = 3;
close;
}
case 3:
@@ -192,7 +192,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "So far, it looks like";
mes "you're doing good work.";
mes "Take this old family medicine, it might be of use sometime soon.";
- set b_sword,7;
+ b_sword = 7;
getitem 504,3; //White_Potion
close;
case 7:
@@ -250,7 +250,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "would have never found it.";
mes "Please accept this as a";
mes "token of my gratitude...";
- set b_sword,15;
+ b_sword = 15;
getitem 603,1; //Old_Blue_Box
next;
mes "[Shi Yan Wen]";
@@ -285,7 +285,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "Oh, one last thing. This is";
mes "but a trinket, but please";
mes "accept this gift from me.";
- set b_sword,14;
+ b_sword = 14;
getitem 603,1; //Old_Blue_Box
close;
case 11:
@@ -305,7 +305,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "[Shi Yan Wen]";
mes "Here...take this.";
mes "Have a good time in Kunlun~";
- set b_sword,13;
+ b_sword = 13;
getitem 504,1; //White_Potion
close;
case 13:
@@ -370,7 +370,7 @@ gon_in,17,93,5 script Chief#gon 4_M_TWMASKMAN,{
mes "This is a small gift for you.";
mes "Please take it as thanks for a job well done!";
delitem 1123,1; //Haedonggum
- set b_sword,33;
+ b_sword = 33;
getitem 2404,1; //Shoes_
next;
mes "[Shi Yan Wen]";
@@ -456,7 +456,7 @@ gon_in,152,35,4 script Hostess#gon 4_F_GON,{
mes "I better watch out...";
mes "Oh, what am I saying?";
mes "Enjoy your time in my shop...hehe~";
- set b_sword,2;
+ b_sword = 2;
close;
case 3:
mes "[Mei Yen Fang]";
@@ -473,7 +473,7 @@ gon_in,152,35,4 script Hostess#gon 4_F_GON,{
mes "He seems to know about what";
mes "happened last night, but...";
mes "He's been drinking all night long.";
- set b_sword,4;
+ b_sword = 4;
close;
}
if (b_sword > 3 && b_sword < 11) {
@@ -552,11 +552,11 @@ gon_in,165,16,4 script Man in hangover#gon 4_M_ALCHE_A,{
mes "[Xue Bong]";
mes "C'mon, man...";
mes "I...I'm in freakin' pain here...";
- set b_sword,12;
+ b_sword = 12;
close;
case 2:
delitem 506,1; //Green_Potion
- set b_sword,5;
+ b_sword = 5;
mes "[Xue Bong]";
mes "Oh man...thanks.";
mes "I thought you were teasing me.";
@@ -588,7 +588,7 @@ gon_in,165,16,4 script Man in hangover#gon 4_M_ALCHE_A,{
mes "whether it was a man,";
mes "a poring, or if I had just";
mes "drank too much..eheh.";
- set b_sword,6;
+ b_sword = 6;
close;
}
mes "[Xue Bong]";
@@ -600,7 +600,7 @@ gon_in,165,16,4 script Man in hangover#gon 4_M_ALCHE_A,{
}
case 2:
delitem 506,1; //Green_Potion
- set b_sword,5;
+ b_sword = 5;
emotion e_thx;
mes "[Xue Bong]";
mes "Whew, Thanks!";
@@ -642,7 +642,7 @@ gon_in,165,16,4 script Man in hangover#gon 4_M_ALCHE_A,{
mes "disappeared. I'm not";
mes "sure if it was a human or an";
mes "animal...";
- set b_sword,6;
+ b_sword = 6;
next;
mes "[Xue Bong]";
mes "Anything else I can help you with?";
@@ -726,7 +726,7 @@ gon_in,165,16,4 script Man in hangover#gon 4_M_ALCHE_A,{
mes "outside. I have no idea";
mes "whether it was a man, a poring,";
mes "or if I just had too much to drink...heheh~";
- set b_sword,6;
+ b_sword = 6;
close;
case 2:
mes "[Xue Bong]";
@@ -841,7 +841,7 @@ OnTimer3000:
gon_dun01,202,25,0 script #getitem1-1 HIDDEN_NPC,2,1,{
if (b_sword != 7) end;
- set b_sword,8;
+ b_sword = 8;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -909,7 +909,7 @@ OnTimer3000:
gon_dun01,190,159,0 script #getitem1-2 HIDDEN_NPC,2,1,{
if (b_sword != 7) end;
- set b_sword,8;
+ b_sword = 8;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -977,7 +977,7 @@ OnTimer3000:
gon_dun01,164,53,0 script #getitem1-3 HIDDEN_NPC,2,1,{
if (b_sword != 7) end;
- set b_sword,8;
+ b_sword = 8;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1045,7 +1045,7 @@ OnTimer3000:
gon_dun01,134,183,0 script #getitem1-4 HIDDEN_NPC,2,1,{
if (b_sword != 7) end;
- set b_sword,8;
+ b_sword = 8;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1113,7 +1113,7 @@ OnTimer3000:
gon_dun01,140,257,0 script #getitem1-5 HIDDEN_NPC,2,1,{
if (b_sword != 7) end;
- set b_sword,8;
+ b_sword = 8;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1189,7 +1189,7 @@ OnTimer3000:
gon_dun02,202,25,0 script #getitem2-1 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1257,7 +1257,7 @@ OnTimer3000:
gon_dun02,265,201,0 script #getitem2-2 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1325,7 +1325,7 @@ OnTimer3000:
gon_dun02,247,128,0 script #getitem2-3 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1393,7 +1393,7 @@ OnTimer3000:
gon_dun02,149,75,0 script #getitem2-4 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1461,7 +1461,7 @@ OnTimer3000:
gon_dun02,23,106,0 script #getitem2-5 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1529,7 +1529,7 @@ OnTimer3000:
gon_dun02,249,40,0 script #getitem2-6 HIDDEN_NPC,2,1,{
if (b_sword != 8) end;
- set b_sword,9;
+ b_sword = 9;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
close;
@@ -1605,7 +1605,7 @@ OnTimer3000:
gon_dun03,10,74,0 script #getitem3-1 HIDDEN_NPC,2,1,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -1677,7 +1677,7 @@ OnTimer3000:
gon_dun03,199,102,0 script #getitem3-2 HIDDEN_NPC,2,1,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -1749,7 +1749,7 @@ OnTimer3000:
gon_dun03,14,163,0 script #getitem3-3 HIDDEN_NPC,2,1,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -1821,7 +1821,7 @@ OnTimer3000:
gon_dun03,156,263,0 script #getitem3-4 HIDDEN_NPC,2,1,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -1893,7 +1893,7 @@ OnTimer3000:
gon_dun03,170,90,0 script #getitem3-5 HIDDEN_NPC,2,1,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -1965,7 +1965,7 @@ OnTimer3000:
gon_dun03,68,39,0 script #getitem3-6 HIDDEN_NPC,1,2,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -2037,7 +2037,7 @@ OnTimer3000:
gon_dun03,68,213,0 script #getitem3-7 HIDDEN_NPC,1,2,{
if (b_sword != 9) end;
- set b_sword,10;
+ b_sword = 10;
mes "You found a ^FF0000piece of blade^000000.";
mes "Seems like it's a part of the sword you've been looking for.";
next;
@@ -2216,7 +2216,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "see for myself that";
mes "you're really interested";
mes "in helping others.";
- set b_sword,16;
+ b_sword = 16;
close;
}
mes "[Zuo Hei]";
@@ -2242,7 +2242,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "Why don't you go and take care of them first.";
mes "Once you start to help someone,";
mes "you can't just quit halfway.";
- set b_sword,16;
+ b_sword = 16;
close;
case 2:
mes "[Zuo Hei]";
@@ -2252,7 +2252,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "Why don't you go and take care of them first.";
mes "Once you start to help someone,";
mes "you can't just quit halfway.";
- set b_sword,16;
+ b_sword = 16;
close;
case 3:
mes "[Zuo Hei]";
@@ -2272,7 +2272,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "you'll need a very skilled smith.";
mes "Go to ^FF0000Geffen^000000, you'll find someone";
mes "who can help you.";
- set b_sword,17;
+ b_sword = 17;
close;
}
mes "[Zuo Hei]";
@@ -2302,7 +2302,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "keep the promises they make.";
mes "You'll not get any information from me.";
mes "Don't ever bother me again.";
- set b_sword,15;
+ b_sword = 15;
close;
}
break;
@@ -2355,7 +2355,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "you'll need a very skilled smith.";
mes "Go to ^FF0000Geffen^000000, you'll find someone";
mes "who can help you.";
- set b_sword,17;
+ b_sword = 17;
close;
}
mes "[Zuo Hei]";
@@ -2386,7 +2386,7 @@ gonryun,100,241,0 script Stranger#gnbs 4_M_JOB_KNIGHT1,{
mes "I don't like people who fail";
mes "to keep their promises.";
mes "You'll not get any information from me. Don't ever bother me again.";
- set b_sword,15;
+ b_sword = 15;
close;
}
}
@@ -2440,7 +2440,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "I'm sorry, but we're closed.";
mes "Come again another time.";
mes "Goodbye.";
- set b_sword,18;
+ b_sword = 18;
close;
}
mes "[Aumgarl]";
@@ -2458,7 +2458,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "Like I said, we're closed!";
mes "Come back later.";
if (rand(1,8) == 7) {
- set b_sword,19;
+ b_sword = 19;
mes "Didn't you hear me?! Sheesh!";
}
close2;
@@ -2649,7 +2649,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "[Aumgarl]";
mes "Thank you...";
mes "Thank you...";
- set b_sword,20;
+ b_sword = 20;
close;
}
mes "[Aumgarl]";
@@ -2772,7 +2772,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "Whenever you have a favor to ask,";
mes "come and find me. I'll do";
mes "my best to help you.";
- set b_sword,29;
+ b_sword = 29;
close;
case 2:
mes "[Aumgarl]";
@@ -2840,7 +2840,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "But these are the necessary";
mes "supplies we need to repair the sword.";
mes "I'll go find some other materials.";
- set b_sword,30;
+ b_sword = 30;
close;
}
case 29:
@@ -2924,7 +2924,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
mes "These are necessary supplies.";
mes "We need them to repair the sword.";
mes "I'll go find some other materials.";
- set b_sword,30;
+ b_sword = 30;
close;
}
case 30:
@@ -2940,7 +2940,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
delitem 1005,1; //Hammer_Of_Blacksmith
delitem 1000,2; //Star_Crumb
delitem 7098,5; //Live_Coal
- set b_sword,31;
+ b_sword = 31;
close;
}
mes "[Aumgarl]";
@@ -2980,7 +2980,7 @@ geffen_in,71,112,2 script Blacksmith#SaYumMoon 4_M_JOB_BLACKSMITH,{
next;
mes "'You received repaired";
mes "'^FF0000SaYumMoon's sword^000000'.";
- set b_sword,32;
+ b_sword = 32;
getitem 1123,1; //Haedonggum
close;
}
@@ -3100,7 +3100,7 @@ geffen_in,106,106,7 script Girl#gnbs2 4_M_KID2,{
mes "After taking the medicine, Lyroo";
mes "fell asleep.^000000";
delitem 606,1; //Aloebera
- set b_sword,28;
+ b_sword = 28;
close;
}
mes "[Lyroo]";
@@ -3152,7 +3152,7 @@ prontera,275,86,2 script Young man#SaYumMoon 4W_M_01,{
mes "[Neil]";
mes "It was a miracle!";
mes "I'm so happy to be alive!";
- if (b_sword == 20) set b_sword,21;
+ if (b_sword == 20) b_sword = 21;
close;
}
@@ -3187,7 +3187,7 @@ yuno,208,164,4 script Active little girl#gnbs 4W_F_01,{
mes "She's probably at home after";
mes "coming back from some trip.";
mes "Haha~";
- if (b_sword == 21) set b_sword,22;
+ if (b_sword == 21) b_sword = 22;
if (rand(1,2) == 2) {
next;
mes "[Hisa]";
@@ -3259,7 +3259,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
mes "[Cylrnel]";
mes "Without the exact symptoms, I can't make an accurate diagnosis.";
- set b_sword,24;
+ b_sword = 24;
close;
}
mes "[Cylrnel]";
@@ -3302,7 +3302,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
mes "[Cylrnel]";
mes "Without the exact symptoms, I can't make an accurate diagnosis.";
- set b_sword,24;
+ b_sword = 24;
close;
}
mes "[Cylrnel]";
@@ -3369,21 +3369,21 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
mes "[Cylrnel]";
mes "First, how was her body temperature?";
- set sick,0;
+ sick = 0;
next;
switch(select("Very hot.:Very cold.:Normal.:Turns hot and cold repeatedly.")) {
case 1:
- set .@sick1$,"Very hot.";
+ .@sick1$ = "Very hot.";
break;
case 2:
- set .@sick1$,"Very cold.";
+ .@sick1$ = "Very cold.";
break;
case 3:
- set .@sick1$,"Normal.";
+ .@sick1$ = "Normal.";
break;
case 4:
- set .@sick1$,"Turns hot and cold repeatedly";
- set .@sick,.@sick+1;
+ .@sick1$ = "Turns hot and cold repeatedly";
+ ++.@sick;
break;
}
mes "[Cylrnel]";
@@ -3392,17 +3392,17 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
switch(select("No sweating at all.:Sweating all over the body.:Runny nose.:No tears, sweats at all.")) {
case 1:
- set .@sick2$,"No sweating at all.";
- set .@sick,.@sick+1;
+ .@sick2$ = "No sweating at all.";
+ ++.@sick;
break;
case 2:
- set .@sick2$,"Sweating all over the body.";
+ .@sick2$ = "Sweating all over the body.";
break;
case 3:
- set .@sick2$,"Runny nose.";
+ .@sick2$ = "Runny nose.";
break;
case 4:
- set .@sick2$,"No tears, sweats at all.";
+ .@sick2$ = "No tears, sweats at all.";
break;
}
mes "[Cylrnel]";
@@ -3411,17 +3411,17 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
switch(select("Nothing in particular.:Becomes paralyzed often.:Muscles became soft.:Muscles became hard.")) {
case 1:
- set .@sick3$,"Nothing in particular.";
+ .@sick3$ = "Nothing in particular.";
break;
case 2:
- set .@sick3$,"Becomes paralyzed often.";
- set .@sick,.@sick+1;
+ .@sick3$ = "Becomes paralyzed often.";
+ ++.@sick;
break;
case 3:
- set .@sick3$,"Muscles became soft.";
+ .@sick3$ = "Muscles became soft.";
break;
case 4:
- set .@sick3$,"Muscles became hard.";
+ .@sick3$ = "Muscles became hard.";
break;
}
mes "[Cylrnel]";
@@ -3429,17 +3429,17 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
next;
switch(select("Stomach hurts like it's been stabbed by a knife.:Head hurts like it's been smashed by a hammer.:Heart beats irregularly.:Has difficulty in breathing.")) {
case 1:
- set .@sick4$,"Stomach hurts like it's been stabbed by a knife.";
+ .@sick4$ = "Stomach hurts like it's been stabbed by a knife.";
break;
case 2:
- set .@sick4$,"Head hurts like it's been smashed by a hammer.";
+ .@sick4$ = "Head hurts like it's been smashed by a hammer.";
break;
case 3:
- set .@sick4$,"Heart beats irregularly.";
- set .@sick,.@sick+1;
+ .@sick4$ = "Heart beats irregularly.";
+ ++.@sick;
break;
case 4:
- set .@sick4$,"Has difficulty in breathing.";
+ .@sick4$ = "Has difficulty in breathing.";
break;
}
mes "[Cylrnel]";
@@ -3489,7 +3489,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
mes "10 Witch Starsands";
mes "5 Burning Hearts";
mes "5 Ice Cubics";
- set b_sword,26;
+ b_sword = 26;
next;
mes "[Cylrnel]";
mes "Wrote them down?";
@@ -3512,7 +3512,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
mes "5 Witch Starsands";
mes "3 Burning Hearts";
mes "3 Ice Cubics";
- set b_sword,25;
+ b_sword = 25;
next;
mes "[Cylrnel]";
mes "Wrote them down?";
@@ -3557,7 +3557,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
delitem 1061,5; //Starsand_Of_Witch
delitem 7097,3; //Burning_Heart
delitem 7066,3; //Ice_Piece
- set b_sword,24;
+ b_sword = 24;
next;
mes "[Cylrnel]";
mes "I've chosen the ingredients";
@@ -3619,7 +3619,7 @@ yuno_in01,99,101,4 script Doctor#gnbs 4_F_ALCHE,{
delitem 1061,10; //Starsand_Of_Witch
delitem 7097,5; //Burning_Heart
delitem 7066,5; //Ice_Piece
- set b_sword,27;
+ b_sword = 27;
getitem 606,1; //Aloebera
close;
}
@@ -3687,7 +3687,7 @@ OnTouch:
if (rand(1,10) == 10) {
mes "[??????]";
mes "I am very busy right now. Please leave.";
- set b_sword,23;
+ b_sword = 23;
close;
}
mes "[??????]";
@@ -3710,7 +3710,7 @@ gonryun,237,226,3 script Han Ran Jiao#gon 4_M_TWMIDMAN,{
mes "my irreplaceable knife! Ahhhhhh!";
next;
if (BaseLevel >= 20) {
- set nakha,1;
+ nakha = 1;
mes "[Han Ran Jiao]";
mes "I need to go down to get it";
mes "but...the monsters...";
@@ -3756,7 +3756,7 @@ gonryun,237,226,3 script Han Ran Jiao#gon 4_M_TWMIDMAN,{
mes "knife to me?";
next;
if (select("Return the knife.:Refuse.") == 1) {
- set nakha,3;
+ nakha = 3;
delitem 1201,1; //Knife
mes "[Han Ran Jiao]";
mes "Thank you! Thank you so much!";
@@ -3800,7 +3800,7 @@ gonryun,237,226,3 script Han Ran Jiao#gon 4_M_TWMIDMAN,{
gon_fild01,245,257,0 script #gonknife HIDDEN_NPC,3,3,{
OnTouch:
if (nakha == 1) {
- set nakha,2;
+ nakha = 2;
mes "^3355FFHm? What's this?";
mes " ";
mes "Something was hidden beneath the leaves...^000000";
diff --git a/npc/quests/quests_hugel.txt b/npc/quests/quests_hugel.txt
index 453a0e8fc..a9505a624 100644
--- a/npc/quests/quests_hugel.txt
+++ b/npc/quests/quests_hugel.txt
@@ -71,7 +71,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "you should be able to";
mes "find Postell. Tell him that";
mes "I need my ''Kolbun A'' now!";
- set hg_herb,1;
+ hg_herb = 1;
setquest 8053;
next;
mes "[Allen]";
@@ -173,7 +173,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "not survive! A-adventurer, would^FFFFFF ^000000 you please stay by my side until";
mes "my son arrives? P-please?";
next;
- set hg_herb,3;
+ hg_herb = 3;
changequest 8054,8055;
mes "[" +strcharinfo(0)+ "]";
mes "......";
@@ -205,7 +205,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "''Withstander'' medicine...";
mes "from... Drawer... H-heeelp me!";
mes "Adventurer! H-Heeeeelp~!";
- set hg_herb,4;
+ hg_herb = 4;
changequest 8055,8056;
close;
} else if (hg_herb == 4) {
@@ -232,7 +232,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "Ah, wh-what a relief. It looks";
mes "like I-I live to see another";
mes "day. Th-thank you so much...";
- set hg_herb,7;
+ hg_herb = 7;
close;
} else if (hg_herb == 7) {
mes "[Allen]";
@@ -253,7 +253,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "My son Postell, he should";
mes "be coming soon. Thank you";
mes "for being so patient with me...";
- set hg_herb,10;
+ hg_herb = 10;
close;
}
mes "[Allen]";
@@ -267,7 +267,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "[" +strcharinfo(0)+ "]";
mes "(^333333Your son Postell";
mes "better get here soon!^000000)";
- set hg_herb,7;
+ hg_herb = 7;
close;
} else if (hg_herb == 10) {
mes "[Allen]";
@@ -327,7 +327,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "It won't take long, so don't";
mes "stress yourself about it.";
close2;
- set hg_herb,11;
+ hg_herb = 11;
disablenpc "Postell Schuwell#D";
emotion e_swt,1;
emotion e_swt;
@@ -347,7 +347,7 @@ hu_in01,387,245,0 script Allen Schuwell 4_M_DIEMAN,2,2,{
mes "you. Please take a look inside";
mes "the medicine drawer, and help";
mes "yourself to whatever you like~";
- set hg_herb,12;
+ hg_herb = 12;
changequest 8055,8056;
close;
} else if (hg_herb == 12) {
@@ -395,7 +395,7 @@ OnTouch:
mes "W-Withstander...!";
mes "I need m-my Withstander!";
mes "P-please! ^333333*Cough cough!*^000000";
- set hg_herb,5;
+ hg_herb = 5;
donpcevent "#DrawerOpener::OnEnable";
close;
} else if (hg_herb == 7) {
@@ -406,11 +406,10 @@ OnTouch:
mes "attack?! Please, g-get me";
mes "another dose of Withstander,";
mes "just to be on the safe side!";
- set hg_herb,8;
+ hg_herb = 8;
donpcevent "#DrawerOpener::OnEnable";
close;
}
-
}
hu_in01,385,247,5 script Postell Schuwell#D 4W_M_01,{
@@ -485,7 +484,7 @@ hu_fild06,34,123,3 script Postell Schuwell 4W_M_01,{
mes "get himself into any";
mes "more trouble? I'd really";
mes "appreciate it if you do.";
- set hg_herb,2;
+ hg_herb = 2;
changequest 8053,8054;
close;
case 2:
@@ -518,7 +517,7 @@ hu_fild06,34,123,3 script Postell Schuwell 4W_M_01,{
hu_in01,370,255,3 script Upper Drawer#First HIDDEN_WARP_NPC,2,2,{
OnTouch:
- set .@rand,rand(1,7);
+ .@rand = rand(1,7);
if (hg_herb < 5) {
mes "^3355FFThere are several";
mes "books and a few";
@@ -532,9 +531,9 @@ OnTouch:
mes "is gone! It's a miracle!";
mes "Maybe I'll just take the";
mes "Withstander later...";
- set hg_herb,4;
+ hg_herb = 4;
next;
- set .@rand,rand(1,7);
+ .@rand = rand(1,7);
if (.@rand == 4) {
mes "^3355FFYou find an old book";
mes "inside the drawer.^000000";
@@ -584,7 +583,7 @@ OnTouch:
mes "is gone! It's a miracle!";
mes "Maybe I'll just take the";
mes "Withstander later...";
- set hg_herb,7;
+ hg_herb = 7;
next;
if (.@rand == 4) {
mes "^3355FFYou find an old book";
@@ -634,7 +633,7 @@ OnTouch:
mes "inside the drawer.^000000";
close2;
specialeffect EF_CONE;
- set hg_herb,13;
+ hg_herb = 13;
getitem 603,1; //Old Blue Box
getexp (checkre(3))?5000:50000,0;
completequest 8056;
@@ -685,12 +684,12 @@ OnTouch:
if (hg_herb == 5) {
mes "^3355FFYou take out one dose of";
mes "Withstander from the drawer.^000000";
- set hg_herb,6;
+ hg_herb = 6;
close;
} else if (hg_herb == 8) {
mes "^3355FFYou take out one dose of";
mes "Withstander from the drawer.^000000";
- set hg_herb,9;
+ hg_herb = 9;
close;
} else {
mes "^3355FFThere are several books";
@@ -846,7 +845,7 @@ ein_in01,16,36,3 script Morriphen 4_M_04,{
mes "Thanks so much.";
mes "^333333*Cough Cough*";
mes "*Cough Cough*^000000";
- set hg_bio,1;
+ hg_bio = 1;
setquest 11009;
close;
}
@@ -938,7 +937,7 @@ ein_in01,16,36,3 script Morriphen 4_M_04,{
mes "way. I'll hurry as fast as";
mes "I can back to Hugel to";
mes "give Siria this medicine.";
- set hg_bio,7;
+ hg_bio = 7;
changequest 11014,11015;
close;
} else if (hg_bio == 7) {
@@ -1216,7 +1215,7 @@ ein_in01,16,36,3 script Morriphen 4_M_04,{
mes "Just get better so that";
mes "I won't have to worry";
mes "about you. Take care~";
- set hg_bio,9;
+ hg_bio = 9;
getexp (checkre(3))?70000:700000,0;
completequest 11016;
close;
@@ -1341,7 +1340,7 @@ hu_in01,326,307,3 script Siria 4_F_01,{
mes "to come here, then I'll";
mes "trust you too. ^333333*Cough*^000000";
mes "Thank you so much...";
- set hg_bio,2;
+ hg_bio = 2;
changequest 11009,11010;
close;
} else if (hg_bio == 2) {
@@ -1411,7 +1410,7 @@ hu_in01,326,307,3 script Siria 4_F_01,{
mes "destroyed their lives. I just--";
mes "I just... I just need to relax.";
mes "Thank you for everything...";
- set hg_bio,8;
+ hg_bio = 8;
getexp (checkre(3))?30000:500000,0;
changequest 11015,11016;
close;
@@ -1523,7 +1522,7 @@ lighthalzen,88,79,7 script Dono 4_M_03,{
mes "hard, but I've got no choice.";
mes "If you don't hurry, then";
mes "those two will die, simple^FFFFFF ^000000 as that. I'll wait for you here.";
- set hg_bio,3;
+ hg_bio = 3;
changequest 11010,11011;
close;
} else if (hg_bio == 1) {
@@ -1546,7 +1545,7 @@ lighthalzen,88,79,7 script Dono 4_M_03,{
delitem 7053,5; //Brigan
delitem 7054,5; //Cyfar
delitem 935,20; //Shell
- set hg_bio,4;
+ hg_bio = 4;
changequest 11011,11012;
mes "[Dono]";
mes "Good, good, you've brought";
@@ -1685,7 +1684,7 @@ lighthalzen,88,79,7 script Dono 4_M_03,{
mes "If he gets upset, and";
mes "stresses himself to death,";
mes "my work will be for nothing.";
- set hg_bio,6;
+ hg_bio = 6;
changequest 11013,11014;
close;
} else if (hg_bio == 6) {
@@ -1813,7 +1812,7 @@ lhz_in03,193,28,3 script Makkie 4_M_01,{
next;
mes "^3355FFYou receive a small bag";
mes "of Red Plant Stem Powder.^000000";
- set hg_bio,5;
+ hg_bio = 5;
changequest 11012,11013;
next;
mes "["+strcharinfo(0)+"]";
@@ -1935,7 +1934,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "Can you please go gather \"^3131FF5 Moks Mushroom Solution^000000\" from \"^3131FFMoks Mushrooms^000000\"?";
mes "You will find the mushrooms in fields near Hugel.";
mes "I hope that you will bring their solution as quickly as you can!";
- set hg_tre,10;
+ hg_tre = 10;
close2;
cutin "",255;
end;
@@ -1985,7 +1984,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "you will find clams near the ferry.";
mes "Please gather ^3131FF5 Clam Flesh^000000 from the clams.";
mes "Please hurry!";
- set hg_tre,20;
+ hg_tre = 20;
close2;
cutin "",255;
end;
@@ -2025,7 +2024,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "["+strcharinfo(0)+"]";
mes "'......I am confused...Does she love him or hate him?'";
emotion e_dots,1;
- set hg_tre,30;
+ hg_tre = 30;
close2;
cutin "",255;
end;
@@ -2065,7 +2064,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "Now, I can bake the Mushroom Flavor Cookies for uncle Hollun.";
mes "Thank you so much.";
emotion e_heh;
- set hg_tre,40;
+ hg_tre = 40;
close2;
cutin "",255;
end;
@@ -2075,7 +2074,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "Now, I can bake the best cookies of mine and compete with Agette!";
mes "Thank you so much.";
emotion e_heh;
- set hg_tre,40;
+ hg_tre = 40;
close2;
cutin "",255;
end;
@@ -2090,7 +2089,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "(If he knew what ingredients she used for the cookies,)";
mes "(I am pretty sure that at least he will remember her face to avoid next time...)'";
emotion e_dots,1;
- set hg_tre,40;
+ hg_tre = 40;
close2;
cutin "",255;
end;
@@ -2103,7 +2102,7 @@ hugel,70,137,5 script Shede 4_F_CAPEGIRL,{
mes "[Shede]";
mes "If you have some time, why don't you go spend some time with him?";
mes "I know that he will appreciate it.";
- set hg_tre,41;
+ hg_tre = 41;
close2;
cutin "",255;
end;
@@ -2199,7 +2198,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
next;
mes "[Herico]";
mes "Perhaps we will learn something from each other's story.";
- set hg_tre,42;
+ hg_tre = 42;
close2;
cutin "",255;
end;
@@ -2243,7 +2242,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "Please find out the secret about the airship and the island.";
mes "Then I will tell you my stories.";
mes "I hope that you will do your best to find out the secret.";
- set hg_tre,43;
+ hg_tre = 43;
close2;
cutin "",255;
end;
@@ -2278,7 +2277,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "[Herico]";
mes "Well, this is time for me to tell you my story.";
mes "I hope that you will enjoy it.";
- set hg_tre,44;
+ hg_tre = 44;
close2;
cutin "",255;
end;
@@ -2395,7 +2394,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "who still remembers about the rebellion.";
mes "If you find him, please ask him if he knows whereabouts of the rebellion survivors,";
mes "so that you can find out what happened to Sage Varmunt and his research documents.";
- set hg_tre,45;
+ hg_tre = 45;
close2;
cutin "",255;
end;
@@ -2585,7 +2584,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "Science is to benefit humankinds,";
mes "not to harm them. I think that something must be done.";
mes "Can you bring me a glass of water?";
- set hg_tre,50;
+ hg_tre = 50;
close2;
cutin "",255;
end;
@@ -2637,7 +2636,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
next;
mes "[Herico]";
mes "Let's discuss further what we should do.";
- set hg_tre,51;
+ hg_tre = 51;
close2;
cutin "",255;
end;
@@ -2659,7 +2658,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "It is where their filthy ambitions are reflected on.";
mes "Please sneak into the laboratory";
mes "and bring ^FF0000their research data^000000 to me.";
- set hg_tre,52;
+ hg_tre = 52;
close2;
cutin "",255;
end;
@@ -2722,7 +2721,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "that you are the only hope that I have.";
mes "Please stop them from performing experimental research on living bodies!";
delitem 7342,1; //File Folder
- set hg_tre,54;
+ hg_tre = 54;
close2;
cutin "",255;
end;
@@ -2804,7 +2803,7 @@ hu_in01,256,40,3 script Herico 4_M_HUGRANFA,{
mes "Let's see how well he can handle it.";
mes "I appreciate you for doing everything for me so far,";
mes "I really appreciate it.";
- set hg_tre,56;
+ hg_tre = 56;
getitem 7342,1;
close2;
cutin "",255;
@@ -2977,7 +2976,7 @@ lhz_in03,39,44,3 script Enquro Carson 4W_M_01,{
mes "People keep talking about the pub's best drink,";
mes "and I wonder how delicious the drink will be.";
mes "Can you please get me the drink? Hahaha, thanks!";
- set hg_tre,46;
+ hg_tre = 46;
close;
case 2:
mes "[Enquro Carson]";
@@ -3042,7 +3041,7 @@ lhz_in03,39,44,3 script Enquro Carson 4W_M_01,{
mes "I released the personal information at my discretion,";
mes "and I know that I am not allowed to do that. Hehe.";
emotion e_gg;
- set hg_tre,47;
+ hg_tre = 47;
delitem 12112,1; //Tropical Sograt
delitem 12113,1; //Vermilion on the Beach
close;
@@ -3168,7 +3167,7 @@ hu_in01,310,380,5 script Girl#hugel 4_F_HUGIRL,{
mes "Sure!";
mes "It is filled with books, and they don't look that interesting.";
mes "But, can you be careful to treat the shelf? It is a keepsake from my father.";
- set hg_tre,48;
+ hg_tre = 48;
close;
} else if (hg_tre > 48) {
mes "[Wintzil Trony]";
@@ -3403,7 +3402,7 @@ hu_in01,317,312,0 script Book HIDDEN_NPC,{
mes " ";
mes "My arm is throbbing with pain again. The history of mercenary soldiers ended, and I need to rest.";
mes "I hope that this will be the last page of my journal.";
- if (hg_tre == 48) set hg_tre,49;
+ if (hg_tre == 48) hg_tre = 49;
next;
mes "- The journal was ended at the page. -";
next;
@@ -3508,7 +3507,7 @@ hu_fild06,168,359,3 script Moks Mushrooms#Mush1 HIDDEN_NPC,{
}
mes "- You have successfully gathered mushrooms. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 11)
mes "Collected Moks Mushroom Solution: 1ea ";
else if (hg_tre == 12)
@@ -3563,7 +3562,7 @@ hu_fild06,194,341,3 script Moks Mushrooms#Mush2 HIDDEN_NPC,{
}
mes "- You have successfully gathered mushrooms. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 11)
mes "Collected Moks Mushroom Solution: 1ea ";
else if (hg_tre == 12)
@@ -3618,7 +3617,7 @@ hu_fild06,198,339,3 script Moks Mushrooms#Mush3 HIDDEN_NPC,{
}
mes "- You have successfully gathered mushrooms. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 11)
mes "Collected Moks Mushroom Solution: 1ea ";
else if (hg_tre == 12)
@@ -3673,7 +3672,7 @@ hugel,209,163,3 script Clam#C1 HIDDEN_NPC,{
}
mes "- You have successfully gathered Clam Flesh. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 21)
mes "Collected Clam Flesh: 1ea ";
else if (hg_tre == 22)
@@ -3728,7 +3727,7 @@ hugel,203,166,3 script Clam#C2 HIDDEN_NPC,{
}
mes "- You have successfully gathered Clam Flesh. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 21)
mes "Collected Clam Flesh: 1ea ";
else if (hg_tre == 22)
@@ -3783,7 +3782,7 @@ hugel,217,158,3 script Clam#C3 HIDDEN_NPC,{
}
mes "- You have successfully gathered Clam Flesh. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 21)
mes "Collected Clam Flesh: 1ea ";
else if (hg_tre == 22)
@@ -3838,7 +3837,7 @@ hugel,204,150,3 script Clam#C4 HIDDEN_NPC,{
}
mes "- You have successfully gathered Clam Flesh. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 21)
mes "Collected Clam Flesh: 1ea ";
else if (hg_tre == 22)
@@ -3893,7 +3892,7 @@ hu_fild06,155,309,1 script Moks Bugs#Bug1 THIEF_BUG_,{
}
mes "- You have successfully gathered Moks Bugs Shells. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 31)
mes "Collected Moks Bugs Shells: 1ea ";
else if (hg_tre == 32)
@@ -3948,7 +3947,7 @@ hu_fild06,218,320,1 script Moks Bugs#Bug2 THIEF_BUG_,{
}
mes "- You have successfully gathered Moks Bugs Shells. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 31)
mes "Collected Moks Bugs Shells: 1ea ";
else if (hg_tre == 32)
@@ -4003,7 +4002,7 @@ hu_fild06,249,329,1 script Moks Bugs#Bug3 THIEF_BUG_,{
}
mes "- You have successfully gathered Moks Bugs Shells. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 31)
mes "Collected Moks Bugs Shells: 1ea ";
else if (hg_tre == 32)
@@ -4058,7 +4057,7 @@ hu_fild06,218,373,1 script Moks Bugs#Bug4 THIEF_BUG_,{
}
mes "- You have successfully gathered Moks Bugs Shells. -";
specialeffect2 EF_VALLENTINE2;
- set hg_tre,hg_tre+1;
+ ++hg_tre;
if (hg_tre == 31)
mes "Collected Moks Bugs Shells: 1ea ";
else if (hg_tre == 32)
@@ -4096,7 +4095,7 @@ lhz_in01,214,129,0 script A Pile of Paper HIDDEN_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "Good, I must take this with me.";
- set hg_tre,53;
+ hg_tre = 53;
getitem 7342,1; //File folder
donpcevent "HuMSpawner::OnMonster";
close;
@@ -4119,7 +4118,7 @@ OnTimer60000:
killmonster "lhz_in01","HuMSpawner::OnMonsterDead";
stopnpctimer;
end;
-
+
OnMonsterDead:
end;
}
@@ -4139,7 +4138,7 @@ lhz_dun02,244,226,0 script Unethical Machine HIDDEN_NPC,{
enablenpc "HiddenExplosion";
mapannounce "lhz_dun02","Beep------------------ ",1,0x99CCFF;
delitem 7138,1; //Marine sphere bottle
- set hg_tre,55;
+ hg_tre = 55;
close;
} else {
mes "- You were staggered for the fact that";
@@ -4153,7 +4152,7 @@ lhz_dun02,244,227,0 script HiddenExplosion HIDDEN_WARP_NPC,5,5,{
OnInit:
disablenpc "HiddenExplosion";
end;
-
+
OnTouch:
percentheal -10,0;
specialeffect EF_HIT5;
@@ -4180,7 +4179,7 @@ hu_in01,377,106,3 script Pub Granny 4_F_HUGRANMA,{
hugel,198,169,0 script #HugelTree HIDDEN_WARP_NPC,2,2,{
if (BaseLevel > 49) {
if (!hg_memory) {
- set hg_memory,1;
+ hg_memory = 1;
setquest 8057;
mes "^3355FFFor some reason, you";
mes "feel very warm, safe,";
@@ -4242,7 +4241,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "so cruel and selfish!";
mes "Right now he's surveying";
mes "the land for construction...";
- set hg_memory,2;
+ hg_memory = 2;
changequest 8057,8058;
close;
} else if (hg_memory == 2) {
@@ -4284,7 +4283,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "He's completely changed.";
mes "My sister would be rolling";
mes "in her grave, seeing him now...";
- set hg_memory,6;
+ hg_memory = 6;
changequest 8061,8062;
close;
} else if (hg_memory == 6) {
@@ -4311,7 +4310,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "cutting down our tree, but";
mes "this is almost too much.";
next;
- set hg_memory,8;
+ hg_memory = 8;
mes "[Manainne]";
mes "Gosh, all that talk";
mes "about Nifflheim is...";
@@ -4343,7 +4342,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "[Manainne]";
mes "...!";
next;
- set hg_memory,9;
+ hg_memory = 9;
mes "[Manainne]";
mes "......";
mes "..........";
@@ -4385,7 +4384,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "I can't believe you'd...";
mes "Knock it off right now!";
next;
- set hg_memory,10;
+ hg_memory = 10;
mes "[El Schatt]";
mes "Look, out of my respect";
mes "for you and the relationship";
@@ -4483,7 +4482,7 @@ hugel,191,172,3 script Manainne 4_F_HUGRANMA,1,{
mes "believe. I want to";
mes "believe it so badly...";
mes "Is it really you?";
- set hg_memory,11;
+ hg_memory = 11;
close;
} else if (hg_memory == 11) {
mes "[Manainne]";
@@ -4544,7 +4543,7 @@ niflheim,90,106,3 script A Spirit#HQuest 4_NFWISP,{
mes "me... Just go back to ";
mes "the living... to Hugel...";
mes "Let me send you there...";
- set hg_memory,7;
+ hg_memory = 7;
changequest 8062,8063;
close2;
warp "hugel",78,148;
@@ -4573,7 +4572,7 @@ niflheim,90,106,3 script A Spirit#HQuest 4_NFWISP,{
hugel,100,103,3 script Perfitz 4_M_LGTGRAND,{
if (hg_memory == 3) {
- set hg_memory,4;
+ hg_memory = 4;
mes "[Perfitz]";
mes "I'm pleased that my son has";
mes "finally set his mind on the";
@@ -4658,7 +4657,7 @@ hugel,196,164,3 script El Schatt 1_M_04,{
mes "entire community. We should've";
mes "done this a long time ago...";
next;
- set hg_memory,3;
+ hg_memory = 3;
mes "[El Schatt]";
mes "C'mon... Take a look";
mes "around. I won't deny that";
@@ -4684,7 +4683,7 @@ hugel,196,164,3 script El Schatt 1_M_04,{
mes "it's just a waste of space...";
close;
} else if (hg_memory == 4) {
- set hg_memory,5;
+ hg_memory = 5;
mes "[El Schatt]";
mes "You've spoken with my father?";
mes "Hmpf! Don't tell me you're here";
@@ -4855,7 +4854,7 @@ hugel,196,164,3 script El Schatt 1_M_04,{
mes "^333333*Sniff*^000000 She had to go back...";
next;
specialeffect2 EF_CONE;
- set hg_memory,12;
+ hg_memory = 12;
getexp (checkre(3))?8000:50000,0;
completequest 8063;
getitem 603,1; //Old Blue Box
@@ -4935,7 +4934,7 @@ hugel,107,67,3 script Torpy 4_M_KID1,{
mes "sure that I can find at";
mes "least one of them just";
mes "outside of town.";
- set hg_ubu01,1;
+ hg_ubu01 = 1;
setquest 12044;
close;
case 2:
@@ -4963,7 +4962,7 @@ hugel,107,67,3 script Torpy 4_M_KID1,{
mes "outside of town?";
mes "*Sob* Okay, I hope my";
mes "Daddy comes back soon...";
- set hg_ubu01,3;
+ hg_ubu01 = 3;
changequest 12045,12046;
close;
} else if (hg_ubu01 == 6) {
@@ -4997,7 +4996,7 @@ hugel,107,67,3 script Torpy 4_M_KID1,{
mes "Hee hee~ Once I find";
mes "my Daddy, he has to get me";
mes "a girlfriend! He promised~!^000000";
- set hg_ubu01,7;
+ hg_ubu01 = 7;
close;
} else if (hg_ubu01 == 7) {
mes "[Torpy]";
@@ -5034,7 +5033,7 @@ hugel,107,67,3 script Torpy 4_M_KID1,{
mes "Maybe I should pick her...";
mes "Yeah, I'll pick the perfectest";
mes "girl that I can find! Yaaay~";
- set hg_ubu01,9;
+ hg_ubu01 = 9;
close;
} else if (hg_ubu01 == 9) {
emotion e_dots,1;
@@ -5123,7 +5122,7 @@ hu_fild06,190,367,3 script Torpy's Mom 4_F_GODEMOM,{
mes "home soon? Also, if you see";
mes "my husband inside town, tell";
mes "him that he better come home!";
- set hg_ubu01,2;
+ hg_ubu01 = 2;
changequest 12044,12045;
close;
} else if (hg_ubu01 == 2) {
@@ -5151,7 +5150,7 @@ hu_fild06,190,367,3 script Torpy's Mom 4_F_GODEMOM,{
mes "you accept this as our thanks.";
mes "Goodbye for now, adventurer~";
specialeffect2 (hg_ubu01 == 6)?EF_CONE:EF_MVP;
- set hg_ubu01,8;
+ hg_ubu01 = 8;
completequest 12048;
getitem 12065,3; //Green Salad
getexp (checkre(3))?5000:50000,0;
@@ -5221,7 +5220,7 @@ hugel,100,176,3 script Suspicious Barrel HIDDEN_NPC,{
mes "It's... It's the";
mes "o-only... possible...";
mes "Way... P-please help...";
- set hg_ubu01,4;
+ hg_ubu01 = 4;
changequest 12046,12047;
close;
case 2:
@@ -5254,7 +5253,7 @@ hugel,100,176,3 script Suspicious Barrel HIDDEN_NPC,{
mes "into the barrel where";
mes "it was quickly devoured.^000000";
delitem 12051,1; //Steamed crab nippers
- set hg_ubu01,5;
+ hg_ubu01 = 5;
next;
mes "[Strange Man]";
mes "Ha ha ha!";
@@ -5302,7 +5301,7 @@ hugel,100,176,3 script Suspicious Barrel HIDDEN_NPC,{
mes "into the barrel where";
mes "it was quickly devoured.^000000";
delitem 12051,1; //Steamed crab nippers
- set hg_ubu01,5;
+ hg_ubu01 = 5;
next;
mes "[Strange Man]";
mes "Ha ha ha!";
@@ -5412,7 +5411,7 @@ hugel,100,174,3 script Strange Man#Hugel 4_M_HUMAN_01,{
mes "with my son, and if I lose";
mes "this game of Hide-and-Seek...";
mes "Well, I just can't lose! Bye!";
- set hg_ubu01,6;
+ hg_ubu01 = 6;
changequest 12047,12048;
next;
mes "^3355FFTorpy's father has";
@@ -5434,17 +5433,17 @@ hugel,100,174,3 script Strange Man#Hugel 4_M_HUMAN_01,{
mes "have to eat again for days!";
close;
}
-
+
OnEnable:
enablenpc "Strange Man#Hugel";
disablenpc "Suspicious Barrel";
initnpctimer;
end;
-
+
OnInit:
disablenpc "Strange Man#Hugel";
end;
-
+
OnTimer60000:
stopnpctimer;
disablenpc "Strange Man#Hugel";
@@ -5511,7 +5510,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "my friend Neha. I'm grateful";
mes "that she's a regular customer--";
mes "she's a good friend, but I'm sure^FFFFFF ^000000 that she loves the soup as well.";
- set hg_odeng,1;
+ hg_odeng = 1;
setquest 8064;
getitem 584,1; //Fish_Ball_Soup
close;
@@ -5522,7 +5521,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "another one of my regulars.";
mes "He's been buying my soup ever";
mes "since I helped him start his^FFFFFF ^000000 business. Nice of him, isn't it?";
- set hg_odeng,2;
+ hg_odeng = 2;
setquest 8065;
getitem 584,1; //Fish_Ball_Soup
close;
@@ -5534,7 +5533,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "But... Be careful. She's got";
mes "a thing about punctuality.";
mes "Just try not to be late...";
- set hg_odeng,3;
+ hg_odeng = 3;
setquest 8066;
getitem 584,1; //Fish_Ball_Soup
close;
@@ -5546,7 +5545,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "nitpicky... And he likes to";
mes "have everything in such";
mes "and such and order...";
- set hg_odeng,4;
+ hg_odeng = 4;
setquest 8067;
getitem 584,1; //Fish_Ball_Soup
close;
@@ -5636,7 +5635,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "Well, I don't think I can";
mes "trust somebody like you";
mes "with any deliveries...";
- set hg_odeng,5;
+ hg_odeng = 5;
close;
}
}
@@ -5677,7 +5676,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "Well, I don't think I can";
mes "trust somebody like you";
mes "with any deliveries...";
- set hg_odeng,5;
+ hg_odeng = 5;
close;
}
}
@@ -5719,7 +5718,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "Well, I don't think I can";
mes "trust somebody like you";
mes "with any deliveries...";
- set hg_odeng,5;
+ hg_odeng = 5;
close;
}
}
@@ -5760,7 +5759,7 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "Well, I don't think I can";
mes "trust somebody like you";
mes "with any deliveries...";
- set hg_odeng,5;
+ hg_odeng = 5;
close;
}
}
@@ -5780,9 +5779,9 @@ hu_in01,15,372,3 script Cellette Lavit 1_F_MERCHANT_02,{
mes "you! Ah, before I forget, here";
mes "is your Fish Cake Soup. Thank";
mes "you so much for your help~";
- set hg_odeng,0;
- for(set .@i,8072; .@i<= 8075; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ hg_odeng = 0;
+ for (.@i = 8072; .@i <= 8075; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
getitem 584,3; //Fish_Ball_Soup
@@ -5833,12 +5832,12 @@ hugel,76,134,3 script Neha 4W_F_01,{
mes "^FF00001 Whip^000000 so that I can spank you";
mes "for your impertinence, girl!";
}
- for(set .@i,8064; .@i<= 8067; set .@i,.@i+1) {
- if (checkquest(.@i) > -1 && checkquest(.@i) < 2)
+ for (.@i = 8064; .@i <= 8067; ++.@i) {
+ if (questprogress(.@i) && questprogress(.@i) != 2)
completequest .@i;
}
setquest 8068;
- set hg_odeng,6;
+ hg_odeng = 6;
close;
} else {
mes "[Neha]";
@@ -5879,7 +5878,7 @@ hugel,76,134,3 script Neha 4W_F_01,{
mes "you come deliver my soup again~";
delitem 1960,1; //Whip
delitem 584,1; //Fish_Ball_Soup
- set hg_odeng,10;
+ hg_odeng = 10;
changequest 8068,8072;
close;
} else {
@@ -5926,7 +5925,7 @@ hugel,87,139,3 script Maewan 4_M_04,{
mes "alright? Oh, and don't";
mes "eat my soup before";
mes "you deliver it to me!";
- set hg_odeng,7;
+ hg_odeng = 7;
changequest 8065,8069;
close;
} else {
@@ -5950,7 +5949,7 @@ hugel,87,139,3 script Maewan 4_M_04,{
mes "Thanks again for delivering~";
delitem 584,1; //Fish_Ball_Soup
delitem 7015,1; //Bookclip in memory
- set hg_odeng,10;
+ hg_odeng = 10;
changequest 8069,8073;
close;
} else {
@@ -5979,7 +5978,6 @@ hugel,87,139,3 script Maewan 4_M_04,{
mes "all sorts of new things~";
close;
}
-
}
hugel,84,125,3 script Layoma 8_F_GIRL,{
@@ -6000,7 +5998,7 @@ hugel,84,125,3 script Layoma 8_F_GIRL,{
mes "dependable to me. Erm, bring";
mes "me ^FF00001 Mushroom Spore^000000, and";
mes "I'll forget this whole thing.";
- set hg_odeng,8;
+ hg_odeng = 8;
changequest 8066,8070;
close;
} else {
@@ -6027,7 +6025,7 @@ hugel,84,125,3 script Layoma 8_F_GIRL,{
mes "please tell her to not to come^FFFFFF ^000000 home so late all the time, okay?";
delitem 921,1; //Mushroom_Spore
delitem 584,1; //Fish_Ball_Soup
- set hg_odeng,10;
+ hg_odeng = 10;
changequest 8070,8074;
close;
} else {
@@ -6048,7 +6046,6 @@ hugel,84,125,3 script Layoma 8_F_GIRL,{
mes "that's a pretty exciting life!";
close;
}
-
}
hugel,102,161,3 script Erjan 4W_SAILOR,{
@@ -6069,7 +6066,7 @@ hugel,102,161,3 script Erjan 4W_SAILOR,{
mes "I command you to bring me";
mes "the commoner's ^FF0000China^000000!";
next;
- set hg_odeng,9;
+ hg_odeng = 9;
changequest 8067,8071;
mes "[Erjan]";
mes "Realize that I'm compromising";
@@ -6113,7 +6110,7 @@ hugel,102,161,3 script Erjan 4W_SAILOR,{
mes "with my noble thanks.";
delitem 736,1; //White_Platter
delitem 584,1; //Fish_Ball_Soup
- set hg_odeng,10;
+ hg_odeng = 10;
changequest 8071,8075;
close;
} else {
@@ -6169,7 +6166,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "been so long since";
mes "someone has tried";
mes "to speak to her.^000000";
- set hg_ma1,1;
+ hg_ma1 = 1;
close;
}
} else if (hg_ma1 == 1) {
@@ -6239,7 +6236,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "coming home?";
mes "I'm so worried...";
mes "^333333*Cough Cough*^000000";
- set hg_ma1,2;
+ hg_ma1 = 2;
close;
case 2:
mes "[Euslan]";
@@ -6280,7 +6277,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "know as soon as you can,";
mes "okay? Thanks for cheering";
mes "me up, "+strcharinfo(0)+".";
- set hg_ma1,3;
+ hg_ma1 = 3;
setquest 8044;
close;
}
@@ -6349,7 +6346,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "know as soon as you can,";
mes "okay? Thanks for cheering";
mes "me up, "+strcharinfo(0)+".";
- set hg_ma1,3;
+ hg_ma1 = 3;
setquest 8044;
close;
}
@@ -6408,7 +6405,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "of your way. Still, I'd really";
mes "appreciate your help if you";
mes "happen to pass through Hugel.";
- set hg_ma1,6;
+ hg_ma1 = 6;
changequest 8046,8047;
close;
} else if (hg_ma1 == 6 || hg_ma1 == 7) {
@@ -6462,7 +6459,7 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "your safety in your adventures.";
mes "Take care of yourself...";
close2;
- set hg_ma1,13;
+ hg_ma1 = 13;
completequest 8052;
specialeffect EF_ABSORBSPIRITS;
if (checkre(3))
@@ -6478,7 +6475,6 @@ yuno,111,156,3 script Euslan 4_F_01,{
mes "relaxed than she used to be.^000000";
close;
}
-
}
que_bingo,49,12,0 script #Hg_Quest HIDDEN_WARP_NPC,4,4,{
@@ -6540,12 +6536,11 @@ que_bingo,53,190,7 script Eukran 4_M_TWTEAMAN,{
mes "would Thierry go to such a";
mes "dangerous place? No one goes^FFFFFF ^000000 to the Odin Shrine for no reason.";
close2;
- set hg_ma1,8;
+ hg_ma1 = 8;
changequest 8047,8048;
warp "que_bingo",37,24;
end;
}
-
}
odin_tem01,129,127,0 script HiddenActivator#Hugel HIDDEN_WARP_NPC,3,3,{
@@ -6609,7 +6604,7 @@ OnTimer180000:
disablenpc "Young Man#Hu_Quest";
stopnpctimer;
end;
-
+
OnInit:
disablenpc "Young Man#Hu_Quest";
end;
@@ -6649,7 +6644,7 @@ odin_tem01,130,134,4 script Young Man#Hu_Quest 4_M_TWBOY,{
mes "Euslan's disease. It's not";
mes "curable by modern medicine...";
close2;
- set hg_ma1,9;
+ hg_ma1 = 9;
changequest 8048,8049;
end;
} else if (hg_ma1 == 9) {
@@ -6778,7 +6773,7 @@ odin_tem01,130,134,4 script Young Man#Hu_Quest 4_M_TWBOY,{
mes "If they get me, I'll never be";
mes "able to make the medicine!";
close2;
- set hg_ma1,11;
+ hg_ma1 = 11;
changequest 8050,8051;
end;
} else if (hg_ma1 == 11) {
@@ -6831,7 +6826,7 @@ odin_tem01,130,134,4 script Young Man#Hu_Quest 4_M_TWBOY,{
mes "has made to give to Euslan.^000000";
close2;
delitem 7511,5; //Rune_Of_Darkness
- set hg_ma1,12;
+ hg_ma1 = 12;
changequest 8051,8052;
end;
} else if (hg_ma1 == 12) {
@@ -6851,7 +6846,6 @@ odin_tem01,130,134,4 script Young Man#Hu_Quest 4_M_TWBOY,{
mes "I swear I'll come home to you!";
close;
}
-
}
odin_tem01,111,144,0 script HiddenHugel HIDDEN_WARP_NPC,2,2,{
@@ -6883,7 +6877,7 @@ OnTouch:
mes "you better go tell him";
mes "about this right now!^000000";
close2;
- set hg_ma1,10;
+ hg_ma1 = 10;
changequest 8049,8050;
end;
}
@@ -6918,7 +6912,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "so I really need Burupu back!";
mes "You should be able to find him";
mes "somewhere just outside of town.";
- set hg_milk,2;
+ hg_milk = 2;
setquest 12040;
close;
case 2:
@@ -6957,7 +6951,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "much! Please milk Booboo";
mes "right away, and get me";
mes "some delicious milk~";
- set hg_milk,7;
+ hg_milk = 7;
close;
} else if (hg_milk == 7) {
mes "[Kurupe]";
@@ -6986,7 +6980,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
specialeffect2 EF_CONE;
getexp (checkre(3))?10000:100000,0;
getitem 12063,3;
@@ -7016,7 +7010,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "to come in today, and then";
mes "come back to me. Then, I'll";
mes "let you milk Booboo the cow.";
- set hg_milk,10;
+ hg_milk = 10;
close;
case 2:
mes "[Kurupe]";
@@ -7056,7 +7050,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "now would you please";
mes "milk Booboo the cow?";
mes "Thanks once again~";
- set hg_milk,12;
+ hg_milk = 12;
close;
} else if (hg_milk == 12) {
mes "[Kurupe]";
@@ -7072,7 +7066,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "see, what would be good to";
mes "give you as payment. Hmm...";
next;
- set .@milkreward,rand(1,10);
+ .@milkreward = rand(1,10);
if (.@milkreward < 5) {
mes "[Kurupe]";
mes "You know what?";
@@ -7091,7 +7085,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
erasequest 12043;
getitem 519,5; //Milk
close;
@@ -7112,7 +7106,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
erasequest 12043;
getitem 502,5; //Orange_Potion
close;
@@ -7134,12 +7128,12 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
erasequest 12043;
getitem 503,5; //Yellow_Potion
close;
} else {
- set .@milkreward,rand(1,10);
+ .@milkreward = rand(1,10);
if (.@milkreward < 7) {
mes "[Kurupe]";
mes "Hey, why don't you";
@@ -7158,7 +7152,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
erasequest 12043;
getitem 518,3; //Honey
close;
@@ -7180,7 +7174,7 @@ hugel,56,104,3 script Kurupe 4_M_SEAMAN,3,3,{
mes "after you store some items into kafra storage.";
close;
}
- set hg_milk,9;
+ hg_milk = 9;
erasequest 12043;
getitem 12111,1; //Food_Package
close;
@@ -7210,7 +7204,7 @@ OnTouch:
mes "to work? Burupu,";
mes "where are you?!";
emotion e_swt,0;
- set hg_milk,1;
+ hg_milk = 1;
close;
}
}
@@ -7239,7 +7233,7 @@ hu_fild06,217,270,3 script Burupu 4_M_HUBOY,3,3,{
mes "town, and I saw all those";
mes "Swordmen, I knew it'd be";
mes "my destiny! Forget ranching,^FFFFFF ^000000 I'm gonna wield a frickin' sword!";
- set hg_milk,4;
+ hg_milk = 4;
close;
} else if (hg_milk == 4) {
mes "[Burupu]";
@@ -7265,7 +7259,7 @@ hu_fild06,217,270,3 script Burupu 4_M_HUBOY,3,3,{
mes "me a Rapier with 2 Slots";
mes "as soon as you can! I can't";
mes "wait to start training with it!";
- set hg_milk,5;
+ hg_milk = 5;
changequest 12040,12041;
close;
@@ -7296,7 +7290,7 @@ hu_fild06,217,270,3 script Burupu 4_M_HUBOY,3,3,{
mes "I'm gonna start training";
mes "with it right now!";
delitem 1110,1; //Lapier
- set hg_milk,6;
+ hg_milk = 6;
changequest 12041,12042;
next;
mes "[Burupu]";
@@ -7328,7 +7322,7 @@ hu_fild06,217,270,3 script Burupu 4_M_HUBOY,3,3,{
mes "time to work on my fencing.";
mes "All right, now I can focus";
mes "completely on my training!";
- set hg_milk,11;
+ hg_milk = 11;
close;
} else {
mes "[Burupu]";
@@ -7355,7 +7349,7 @@ OnTouch:
mes "sword?! I mean, I'm getting";
mes "tired of making all my own";
mes "whooshing sounds and effects.";
- set hg_milk,3;
+ hg_milk = 3;
emotion e_an,0;
close;
} else if (hg_milk == 5) {
@@ -7499,7 +7493,8 @@ hugel,72,101,0 script Burupu's Instructions HIDDEN_NPC,{
break;
}
close2;
- if (checkquest(12042) > -1) erasequest 12042;
+ if (questprogress(12042))
+ erasequest 12042;
end;
}
@@ -7590,7 +7585,7 @@ L_MilkCow:
mes "[Mrs. Booboo]";
switch(rand(1,6)) {
case 1:
- set .@cowsong$,"Brrbrr";
+ .@cowsong$ = "Brrbrr";
mes "^ff0000Brr~ Brrboo~ Boobooboo~^000000";
mes "^0000ffBrrrrrr~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rrrrboo~^000000";
@@ -7599,7 +7594,7 @@ L_MilkCow:
mes "^0000ffBoo! B! Boo~~~^000000";
break;
case 2:
- set .@cowsong$,"Brrrrrr";
+ .@cowsong$ = "Brrrrrr";
mes "^ff0000Brr~ Brrboo~ Boobooboo~^000000";
mes "^0000ffRrrururu~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rrrrboo~^000000";
@@ -7608,7 +7603,7 @@ L_MilkCow:
mes "^0000ffBoo! B! Boo~~~^000000";
break;
case 3:
- set .@cowsong$,"Rrrrboo";
+ .@cowsong$ = "Rrrrboo";
mes "^ff0000Brr~ Brrbrr~ Boobooboo~^000000";
mes "^0000ffBrrrrrr~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rurub~^000000";
@@ -7617,7 +7612,7 @@ L_MilkCow:
mes "^0000ffBoo! B! Boo~^000000";
break;
case 4:
- set .@cowsong$,"Boobooru";
+ .@cowsong$ = "Boobooru";
mes "^ff0000Brr~ Brrbrr~ Boobooboo~^000000";
mes "^0000ffBrrrrrr~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rrrrboo~^000000";
@@ -7626,7 +7621,7 @@ L_MilkCow:
mes "^0000ffBoo! B! Boo~^000000";
break;
case 5:
- set .@cowsong$,"Boobooboo";
+ .@cowsong$ = "Boobooboo";
mes "^ff0000Brr~ Brrbrr~ Boobooboo~^000000";
mes "^0000ffBrrrrrr~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rrrrboo~^000000";
@@ -7635,7 +7630,7 @@ L_MilkCow:
mes "^0000ffBoo! B! Boo~^000000";
break;
case 6:
- set .@cowsong$,"B";
+ .@cowsong$ = "B";
mes "^ff0000Brr~ Brrbrr~ Boobooboo~^000000";
mes "^0000ffBrrrrrr~ Booboo~ Boorrboo~^000000";
mes "^ff0000Booruboorubrr~ Rrrrboo~^000000";
@@ -7659,8 +7654,8 @@ L_MilkCow:
mes "you were able to milk";
mes "her. Now, you should";
mes "report to Kurupe.^000000";
- if (hg_milk == 12) set hg_milk,13;
- else set hg_milk,8;
+ if (hg_milk == 12) hg_milk = 13;
+ else hg_milk = 8;
setquest 12043;
close;
}
@@ -7683,7 +7678,7 @@ hugel,91,152,1 script Sign 2_BULLETIN_BOARD,{
mes "for the Odin Shrine Expedition.";
mes " ";
mes "- Shrine Expedition Dept.";
- if (!hg_odin) set hg_odin,1;
+ if (!hg_odin) hg_odin = 1;
close;
}
mes "Join our magician";
@@ -7769,7 +7764,7 @@ hu_in01,19,161,0 script Alex 1_F_SIGNZISK,{
mes "if you'd want to work for us.";
mes "Please talk to the Boatman";
mes "to travel to the shrine, okay?";
- set hg_odin,2;
+ hg_odin = 2;
setquest 11000;
close2;
cutin "",255;
@@ -7841,7 +7836,7 @@ hu_in01,19,161,0 script Alex 1_F_SIGNZISK,{
mes "from the shrine. Don't worry,";
mes "I'll make sure that you're";
mes "rewarded for your efforts.";
- set hg_odin,4;
+ hg_odin = 4;
changequest 11000,11001;
next;
mes "[Alex]";
@@ -7951,7 +7946,7 @@ hu_in01,19,161,0 script Alex 1_F_SIGNZISK,{
case 2:
if (countitem(7511) > 4) {
delitem 7511,5; //Rune_Of_Darkness
- set hg_odin,6; //Old_Blue_Box
+ hg_odin = 6; //Old_Blue_Box
changequest 11000,11002;
getitem 603,1;
mes "[Alex]";
@@ -8214,7 +8209,7 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "and survey the area for your";
mes "own benefit. Talk to the Boatman,^FFFFFF ^000000 and he'll take you there, okay?";
mes "Hurry up and come back soon!";
- set hg_odin,12;
+ hg_odin = 12;
setquest 11003;
close2;
cutin "hu_laura04.bmp",255;
@@ -8329,7 +8324,7 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "RIGHT?!";
next;
select("Yeah, yeah, whatever.:Sure thing.:I s-s-s-suppose...!:Yes, Ma'am!");
- set hg_odin,17;
+ hg_odin = 17;
cutin "hu_laura04.bmp",2;
mes "[Laura]";
mes "Good.";
@@ -8442,7 +8437,7 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
cutin "hu_laura04.bmp",255;
end;
case 3:
- set hg_odin,14;
+ hg_odin = 14;
changequest 11003,11004;
mes "[Laura]";
mes "That's what I've been";
@@ -8504,7 +8499,7 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
case 2:
if (countitem(7511) > 4) {
delitem 7511,5; //Rune_Of_Darkness
- set hg_odin,16;
+ hg_odin = 16;
changequest 11004,11005;
getitem 603,1; //Old_Blue_Box
mes "[Laura]";
@@ -8709,9 +8704,9 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "RIGHT?!";
next;
select("Yeah, yeah, whatever.:Sure thing.:I s-s-s-suppose...!:Yes, Ma'am!");
- set hg_odin,17;
- for(set .@i,11002; .@i<=11005; set .@i,.@i+1) {
- if (checkquest(.@i) > -1 && checkquest(.@i) < 2)
+ hg_odin = 17;
+ for(.@i = 11002; .@i <= 11005; ++.@i) {
+ if (questprogress(.@i) && questprogress(.@i) != 2)
completequest .@i;
}
setquest 11006;
@@ -8760,7 +8755,6 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "finish their guardian research?";
mes "What else did you learn?";
next;
-
case 2:
mes "["+strcharinfo(0)+"]";
mes "Well, have you";
@@ -8784,7 +8778,6 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "Um, really...";
next;
break;
-
case 2:
mes "["+strcharinfo(0)+"]";
mes "Er, you see...";
@@ -8792,7 +8785,6 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "about Ymir's Heart...";
next;
break;
-
case 3:
mes "["+strcharinfo(0)+"]";
mes "You know the expression,";
@@ -8800,7 +8792,6 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "is?'' Er, well, Ymir's Heart...";
next;
break;
-
case 4:
mes "["+strcharinfo(0)+"]";
mes "The truth is,";
@@ -8842,7 +8833,7 @@ hu_in01,14,11,4 script Laura 1_F_GYPSY,{
mes "I investigate the Schwaltzvalt";
mes "Research Team. I'm sorry, but";
mes "you're the only one I can ask.";
- set hg_odin,20;
+ hg_odin = 20;
changequest 11006,11007;
close2;
cutin "hu_laura04.bmp",255;
@@ -8955,7 +8946,7 @@ OnTouch:
mes "[Ashe]";
mes "......?";
next;
- set hg_odin,19;
+ hg_odin = 19;
mes "[Ashe]";
mes "......";
mes ".........";
@@ -8974,7 +8965,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "this area. Have you come to";
mes "assist in the expedition?";
close;
-
case 1:
mes "[Ashe]";
mes "Oh, you've here in response";
@@ -9006,7 +8996,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "secrets of the past, then";
mes "please speak to Ms. Laurence.";
close;
-
case 2:
case 12:
mes "[Ashe]";
@@ -9014,7 +9003,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "Odin Shrine? Good luck,";
mes "and be careful, alright?";
close;
-
case 3:
case 13:
mes "[Ashe]";
@@ -9024,7 +9012,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "your talent can be";
mes "a really big help to us!";
close;
-
case 4:
mes "[Ashe]";
mes "Hm? You've decided to";
@@ -9034,7 +9021,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "upset by that. Well, it's fine";
mes "with me. I don't really care.";
close;
-
case 5:
mes "[Ashe]";
mes "How's the work coming";
@@ -9044,7 +9030,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "that one person's victory";
mes "in research is victory for all.";
close;
-
case 6:
mes "[Ashe]";
mes "How's the work coming";
@@ -9054,13 +9039,11 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "that one person's victory";
mes "in research is victory for all.";
close;
-
case 14:
mes "[Ashe]";
mes "Please keep up";
mes "the good work~";
close;
-
case 15:
if (countitem(7511) > 4)
{
@@ -9076,7 +9059,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "look very well. Did";
mes "something happen?";
close;
-
case 16:
mes "[Ashe]";
mes "I know that Ms. Laurence";
@@ -9086,7 +9068,6 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "work. Thank you so much for";
mes "all of your efforts~";
close;
-
case 17:
mes "[Ashe]";
mes "Why does Ms. Laurence";
@@ -9094,14 +9075,12 @@ hu_in01,16,20,4 script Ashe 4_F_SISTER,{
mes "I honestly think this";
mes "rivalry is awfully petty...";
close;
-
case 19:
mes "[Ashe]";
mes "Ehm...";
mes "Don't worry";
mes "about it~";
close;
-
case 20:
mes "[Ashe]";
mes "Please don't ask";
@@ -9267,7 +9246,7 @@ hu_in01,159,84,3 script Laura#2 1_F_GYPSY,{
mes "Yeah, this is none";
mes "of your business!";
next;
- set hg_odin,25;
+ hg_odin = 25;
mes "[Ashe]";
mes "Oh... Oh, dear!";
close2;
@@ -9320,7 +9299,7 @@ hu_in01,162,85,4 script Ashe#2 4_F_SISTER,{
mes "ever see each other, so thank";
mes "you for all your help, friend.";
next;
- set hg_odin,59;
+ hg_odin = 59;
changequest 11007,11008;
mes "[Ashe]";
mes "Don't worry, my comrade";
@@ -9361,7 +9340,7 @@ OnTouch:
mes "ever see each other, so thank";
mes "you for all your help, friend.";
next;
- set hg_odin,59;
+ hg_odin = 59;
mes "[Ashe]";
mes "Don't worry, my comrade";
mes "at Morroc's South Gate will";
@@ -9439,7 +9418,6 @@ OnTouch:
mes "members of ''Secret Wing.''";
next;
break;
-
case 2:
mes "[???]";
mes "She'll be fine. If you're that";
@@ -9480,7 +9458,7 @@ OnTouch:
mes "that archaeologist, Laura.";
next;
getexp (checkre(3))?100000:700000,0;
- set hg_odin,60;
+ hg_odin = 60;
completequest 11008;
mes "[???]";
mes "...Thanks for";
@@ -9507,7 +9485,6 @@ hugel,209,109,2 script Boatman#hugel 4_M_SEAMAN,{
mes "to return and just";
mes "let me know.";
close;
-
case 2:
if (Zeny < 800)
{
@@ -9526,10 +9503,10 @@ hugel,209,109,2 script Boatman#hugel 4_M_SEAMAN,{
mes "the Odin Shrine soon~";
close2;
Zeny -= 800;
- if (hg_odin == 2) set hg_odin,3;
- else if (hg_odin == 4) set hg_odin,5;
- else if (hg_odin == 12) set hg_odin,13;
- else if (hg_odin == 14) set hg_odin,15;
+ if (hg_odin == 2) hg_odin = 3;
+ else if (hg_odin == 4) hg_odin = 5;
+ else if (hg_odin == 12) hg_odin = 13;
+ else if (hg_odin == 14) hg_odin = 15;
warp "odin_tem01",100,146;
end;
}
@@ -9550,7 +9527,6 @@ odin_tem01,93,146,4 script Boatman 4_M_SEAMAN,{
mes "when you're ready to";
mes "leave this dangerous place.";
close;
-
case 2:
mes "[Boatman]";
mes "Alright then,";
@@ -9615,7 +9591,7 @@ OnTouch:
break;
}
disablenpc "warpinside#1";
- set hg_odin,21;
+ hg_odin = 21;
warp "que_hugel",36,179;
end;
}
@@ -9647,7 +9623,7 @@ OnTouch:
break;
}
disablenpc "warpinside#2";
- set hg_odin,21;
+ hg_odin = 21;
warp "que_hugel",36,179;
end;
}
@@ -9679,7 +9655,7 @@ OnTouch:
break;
}
disablenpc "warpinside#3";
- set hg_odin,21;
+ hg_odin = 21;
warp "que_hugel",36,179;
end;
}
@@ -9711,7 +9687,7 @@ OnTouch:
break;
}
disablenpc "warpinside#4";
- set hg_odin,21;
+ hg_odin = 21;
warp "que_hugel",36,179;
end;
}
@@ -9743,7 +9719,7 @@ OnTouch:
break;
}
disablenpc "warpinside#5";
- set hg_odin,21;
+ hg_odin = 21;
warp "que_hugel",36,179;
end;
}
@@ -9805,7 +9781,7 @@ OnTouch:
mes "["+strcharinfo(0)+"]";
mes "Wa...waaaahhhh!";
close2;
- set hg_odin,22;
+ hg_odin = 22;
warp "que_hugel",163,31;
end;
}
@@ -9840,7 +9816,7 @@ OnTouch:
mes "["+strcharinfo(0)+"]";
mes "Waaaaahhhh!";
close2;
- set hg_odin,23;
+ hg_odin = 23;
warp "odin_tem03",264,260;
end;
}
@@ -9921,7 +9897,7 @@ OnTouch:
mes "...............................";
mes "Wait... You hear that?";
next;
- set hg_odin,18;
+ hg_odin = 18;
mes "[Alex]";
mes "We'll continue this";
mes "conversation later.";
diff --git a/npc/quests/quests_izlude.txt b/npc/quests/quests_izlude.txt
index 3b20a85bf..e7fa7ac3f 100644
--- a/npc/quests/quests_izlude.txt
+++ b/npc/quests/quests_izlude.txt
@@ -69,7 +69,7 @@
mes "Fine fine. Me, being the captain of a ship, can afford to bring you there at a lower price. How does 250 Zeny sound?";
next;
if (select("Alrighty~!:Bah, what a rip off!!") == 1) {
- set MISC_QUEST,MISC_QUEST | 16;
+ MISC_QUEST |= 16;
if (Zeny < 250) {
mes "[Edgar]";
mes "Um...";
diff --git a/npc/quests/quests_juperos.txt b/npc/quests/quests_juperos.txt
index e842882fe..e2a28024c 100644
--- a/npc/quests/quests_juperos.txt
+++ b/npc/quests/quests_juperos.txt
@@ -143,7 +143,7 @@ yuno_in04,190,125,4 script Scholar 8_F_GIRL,{
mes "service of his royal majesty,";
mes "the wise and benevolent";
mes "King Tristram III.";
- set yuno_hist,2;
+ yuno_hist = 2;
next;
mes "[Fayruz]";
mes "Well, "+strcharinfo(0)+",";
@@ -246,7 +246,7 @@ yuno_in04,190,125,4 script Scholar 8_F_GIRL,{
mes "''You will see him, the one";
mes "who was vain and extravagant,";
mes "with your own eyes at the place where the light passes through.";
- set yuno_hist,4;
+ yuno_hist = 4;
next;
mes "[Fayruz]";
mes "Ah, usually, descriptions";
@@ -407,7 +407,7 @@ yuno_in04,190,125,4 script Scholar 8_F_GIRL,{
mes "last time is really helping me";
mes "in my research. If you get the";
mes "chance, please bring me more!";
- set yuno_hist,7;
+ yuno_hist = 7;
next;
mes "[Fayruz]";
mes "This new data is adding";
@@ -458,7 +458,7 @@ yuno_in04,190,125,4 script Scholar 8_F_GIRL,{
mes "Alright. Okay. Yes.";
mes "Yes! Of course, how";
mes "could I not see it before!";
- set yuno_hist,9;
+ yuno_hist = 9;
next;
mes "[Fayruz]";
mes "I'll be with you";
@@ -576,8 +576,8 @@ function script Func_JupHist {
mes "and you awaken from the trance,";
mes "gently brought back to reality.^000000";
delitem getarg(0),1;
- set yuno_hist,5;
- set jupe_hist,getarg(1);
+ yuno_hist = 5;
+ jupe_hist = getarg(1);
getexp (checkre(3))?10000:100000,0;
next;
mes "[Fayruz]";
@@ -640,20 +640,20 @@ function script Func_JupHist {
mes "mankind that can't be ignored.";
if (countitem(getarg(0))) {
delitem getarg(0),1;
- if (getarg(0) == 7352) set jupe_hist,jupe_hist +1;
- else set jupe_hist,jupe_hist +2;
+ if (getarg(0) == 7352) jupe_hist += 1;
+ else jupe_hist += 2;
}
else if (countitem(getarg(1))) {
delitem getarg(1),1;
- if (getarg(1) == 7353) set jupe_hist,jupe_hist +2;
- else set jupe_hist,jupe_hist +4;
+ if (getarg(1) == 7353) jupe_hist += 2;
+ else jupe_hist += 4;
}
else {
delitem getarg(2),1;
- if (getarg(2) == 7354) set jupe_hist,jupe_hist +4;
- else set jupe_hist,jupe_hist +8;
+ if (getarg(2) == 7354) jupe_hist += 4;
+ else jupe_hist += 8;
}
- set yuno_hist,6;
+ yuno_hist = 6;
getexp (checkre(3))?10000:100000,0;
next;
mes "[Fayruz]";
@@ -767,17 +767,17 @@ function script Func_JupHist {
mes "like the strange and grotesque.";
if (countitem(getarg(0))) {
delitem getarg(0),1;
- if (getarg(0) == 7352) set jupe_hist,jupe_hist +1;
- else if (getarg(0) == 7353) set jupe_hist,jupe_hist +2;
- else set jupe_hist,jupe_hist +4;
+ if (getarg(0) == 7352) jupe_hist += 1;
+ else if (getarg(0) == 7353) jupe_hist += 2;
+ else jupe_hist += 4;
}
else if (countitem(getarg(1))) {
delitem getarg(1),1;
- if (getarg(1) == 7353) set jupe_hist,jupe_hist +2;
- else if (getarg(1) == 7354) set jupe_hist,jupe_hist +4;
- else set jupe_hist,jupe_hist +8;
+ if (getarg(1) == 7353) jupe_hist += 2;
+ else if (getarg(1) == 7354) jupe_hist += 4;
+ else jupe_hist += 8;
}
- set yuno_hist,8;
+ yuno_hist = 8;
getexp (checkre(3))?10000:100000,0;
next;
mes "[Fayruz]";
@@ -869,11 +869,11 @@ function script Func_JupHist {
mes "feeling of indefatigable";
mes "hope and inspiration...";
mes "You can make it if you try!^000000";
- if (getarg(0) == 7352) set jupe_hist,jupe_hist+1;
- else if (getarg(0) == 7353) set jupe_hist,jupe_hist+2;
- else if (getarg(0) == 7354) set jupe_hist,jupe_hist+4;
- else set jupe_hist,jupe_hist+8;
- set yuno_hist,10;
+ if (getarg(0) == 7352) jupe_hist += 1;
+ else if (getarg(0) == 7353) jupe_hist += 2;
+ else if (getarg(0) == 7354) jupe_hist += 4;
+ else jupe_hist += 8;
+ yuno_hist = 10;
delitem getarg(0),1;
getexp (checkre(3))?10000:100000,0;
next;
@@ -1134,7 +1134,7 @@ yuno_in04,186,125,4 script Bundle of Files HIDDEN_NPC,{
mes "may be able to learn much";
mes "from that ancient city's ruins.";
mes "..................^000000";
- if (!yuno_hist) set yuno_hist,1;
+ if (!yuno_hist) yuno_hist = 1;
next;
mes "["+strcharinfo(0)+"]";
mes "This...";
@@ -1296,7 +1296,7 @@ juperos_01,99,112,4 script Bronze Statue#1 CLEAR_NPC,{
mes "Okay, I guess I'll go back";
mes "to the Juno Library and";
mes "tell her what I found.";
- set yuno_hist,3;
+ yuno_hist = 3;
close;
}
mes "["+strcharinfo(0)+"]";
@@ -1706,7 +1706,7 @@ OnEnable:
end;
OnTimer5000:
- set .MyMobs,3;
+ .MyMobs = 3;
monster "juperos_02",24,275,"1st Gate Switch",1674,1,"3F Gate Switch#jupe::OnMyMobDead";
monster "juperos_02",240,29,"2nd Gate Switch",1674,1,"3F Gate Switch#jupe::OnMyMobDead";
monster "juperos_02",282,183,"3rd Gate Switch",1674,1,"3F Gate Switch#jupe::OnMyMobDead";
@@ -1714,7 +1714,7 @@ OnTimer5000:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs == 2)
mapannounce "juperos_02","Who are you to come here?",bc_map,"0xFF0000";
else if (.MyMobs == 1)
@@ -1954,7 +1954,7 @@ OnTouch:
donpcevent "Red Alarm On#1-1::OnEnable";
disablenpc "Red Alarm#1-1";
donpcevent "#hole#1-1::OnStop_Timer";
- set $@JupreArea1InUse,1;
+ $@JupreArea1InUse = 1;
disablenpc "#hole#1-1";
end;
}
@@ -2009,7 +2009,7 @@ OnDisable:
OnEnable:
enablenpc "Monster1#1-1";
initnpctimer;
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area1",30,263,"Security Guard",1675,1,"Monster1#1-1::OnMyMobDead";
monster "jupe_area1",30,262,"Security Guard",1669,1,"Monster1#1-1::OnMyMobDead";
monster "jupe_area1",30,261,"Security Guard",1675,1,"Monster1#1-1::OnMyMobDead";
@@ -2022,7 +2022,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area1","Do you realize this is a hallucination?",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2032,7 +2032,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#1-1::OnEnable";
disablenpc "Monster1#1-1";
@@ -2070,7 +2070,7 @@ OnTimer7000:
mapannounce "jupe_area1","Just how strong you are!",bc_map,"0xFF0000";
soundeffectall "jupe_warning.wav",0,"jupe_area1";
soundeffectall "jupe_warning.wav",0,"jupe_area1";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area1",30,238,"Security Guard",1675,1,"Monster2#1-1::OnMyMobDead";
monster "jupe_area1",31,238,"Security Guard",1669,1,"Monster2#1-1::OnMyMobDead";
monster "jupe_area1",32,238,"Security Guard",1675,1,"Monster2#1-1::OnMyMobDead";
@@ -2083,7 +2083,7 @@ OnTimer7000:
OnTimer300000:
mapannounce "jupe_area1","Bwahaha! You're only good at running away!",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2093,12 +2093,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area1","Zzzzt. Zzzzt..... ",bc_map,"0xFF0000";
disablenpc "Monster2#1-1";
enablenpc "#hole#1-1";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
stopnpctimer;
}
end;
@@ -2244,7 +2244,7 @@ OnInit:
end;
OnTouch:
- set $@JupreArea1InUse,1;
+ $@JupreArea1InUse = 1;
donpcevent "Red Alarm On#1-2::OnEnable";
disablenpc "Red Alarm#1-2";
disablenpc "#hole#1-2";
@@ -2297,7 +2297,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#1-2";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area1",30,176,"High Guard",1669,1,"Monster1#1-2::OnMyMobDead";
monster "jupe_area1",31,176,"High Guard",1675,1,"Monster1#1-2::OnMyMobDead";
monster "jupe_area1",32,176,"High Guard",1669,1,"Monster1#1-2::OnMyMobDead";
@@ -2310,7 +2310,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area1","I can't believe how cowardly you really are...",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2320,7 +2320,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#1-2::OnEnable";
disablenpc "Monster1#1-2";
@@ -2354,7 +2354,7 @@ OnTimer4000:
OnTimer6000:
mapannounce "jupe_area1","I was called Vesper Newton. Hahah, they called me a mad man back then.",bc_map,"0xFF0000";
- set .MyMobs,13;
+ .MyMobs = 13;
monster "jupe_area1",30,152,"Security Guard",1669,1,"Monster2#1-2::OnMyMobDead";
monster "jupe_area1",31,152,"Security Guard",1675,1,"Monster2#1-2::OnMyMobDead";
monster "jupe_area1",32,152,"Security Guard",1669,1,"Monster2#1-2::OnMyMobDead";
@@ -2372,7 +2372,7 @@ OnTimer6000:
OnTimer300000:
mapannounce "jupe_area1","...Not yet.",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2382,12 +2382,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area1","Not yet!",bc_map,"0xFF0000";
disablenpc "Monster2#1-2";
enablenpc "#hole#1-2";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
stopnpctimer;
}
end;
@@ -2531,7 +2531,7 @@ OnInit:
end;
OnTouch:
- set $@JupreArea1InUse,1;
+ $@JupreArea1InUse = 1;
donpcevent "Red Alarm On#1-3::OnEnable";
disablenpc "Red Alarm#1-3";
disablenpc "#hole#1-3";
@@ -2584,7 +2584,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#1-3";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area1",30,89,"Security Guard",1675,1,"Monster1#1-3::OnMyMobDead";
monster "jupe_area1",31,89,"Security Guard",1669,1,"Monster1#1-3::OnMyMobDead";
monster "jupe_area1",32,89,"Security Guard",1675,1,"Monster1#1-3::OnMyMobDead";
@@ -2597,7 +2597,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area1","Zzzzt...Zzzzt....",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2606,7 +2606,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#1-3::OnEnable";
disablenpc "Monster1#1-3";
@@ -2640,7 +2640,7 @@ OnTimer5000:
OnTimer8000:
mapannounce "jupe_area1","You're wrong! Welcome to Hell!",bc_map,"0xFF0000";
- set .MyMobs,15;
+ .MyMobs = 15;
monster "jupe_area1",42,64,"Security Guard",1669,1,"Monster2#1-3::OnMyMobDead";
monster "jupe_area1",43,64,"Security Guard",1675,1,"Monster2#1-3::OnMyMobDead";
monster "jupe_area1",44,64,"Security Guard",1669,1,"Monster2#1-3::OnMyMobDead";
@@ -2660,7 +2660,7 @@ OnTimer8000:
OnTimer300000:
mapannounce "jupe_area1","Do you still have your courage? Come. Prove it.",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2670,12 +2670,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area1","Do you still have your courage? Come. Prove it.",bc_map,"0xFF0000";
disablenpc "Monster2#1-3";
enablenpc "#hole#1-3";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
stopnpctimer;
}
end;
@@ -2824,7 +2824,7 @@ OnEnable:
end;
OnTouch:
- set $@JupreArea1InUse,1;
+ $@JupreArea1InUse = 1;
donpcevent "Red Alarm On#1-4::OnEnable";
disablenpc "Red Alarm#1-4";
disablenpc "#hole#1-4";
@@ -2877,7 +2877,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#1-4";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area1",92,154,"Security Guard",1669,1,"Monster1#1-4::OnMyMobDead";
monster "jupe_area1",96,154,"Security Guard",1675,1,"Monster1#1-4::OnMyMobDead";
monster "jupe_area1",100,154,"Security Guard",1669,1,"Monster1#1-4::OnMyMobDead";
@@ -2890,7 +2890,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area1","Zzzzt...Zzzzt....",bc_map,"0xFF0000";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
end;
OnTimer300002:
@@ -2900,7 +2900,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#1-4::OnEnable";
disablenpc "Monster1#1-4";
@@ -2934,7 +2934,7 @@ OnTimer4000:
OnTimer6000:
mapannounce "jupe_area1","I will be waiting for you!",bc_map,"0xFF0000";
- set .MyMobs,10;
+ .MyMobs = 10;
monster "jupe_area1",104,161,"Security Guard",1675,1,"Monster2#1-4::OnMyMobDead";
monster "jupe_area1",108,161,"Security Guard",1669,1,"Monster2#1-4::OnMyMobDead";
monster "jupe_area1",111,161,"Security Guard",1675,1,"Monster2#1-4::OnMyMobDead";
@@ -2948,7 +2948,7 @@ OnTimer6000:
end;
OnTimer300000:
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
mapannounce "jupe_area1","It's funny... Isn't it?",bc_map,"0xFF0000";
end;
@@ -2958,12 +2958,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area1","It's funny... Isn't it?",bc_map,"0xFF0000";
disablenpc "Monster2#1-4";
enablenpc "#hole#1-4";
- set $@JupreArea1InUse,0;
+ $@JupreArea1InUse = 0;
stopnpctimer;
}
end;
@@ -3163,7 +3163,7 @@ OnTouch:
donpcevent "Red Alarm On#2-1::OnEnable";
disablenpc "Red Alarm#2-1";
donpcevent "#hole#2-1::OnStop_Timer";
- set $@JupreArea2InUse,1;
+ $@JupreArea2InUse = 1;
disablenpc "#hole#2-1";
end;
}
@@ -3218,7 +3218,7 @@ OnDisable:
OnEnable:
enablenpc "Monster1#2-1";
initnpctimer;
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area2",126,252,"Security Guard",1669,1,"Monster1#2-1::OnMyMobDead";
monster "jupe_area2",127,252,"Security Guard",1675,1,"Monster1#2-1::OnMyMobDead";
monster "jupe_area2",128,252,"Security Guard",1669,1,"Monster1#2-1::OnMyMobDead";
@@ -3231,7 +3231,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area2","Do you realize this is a hallucination?",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3241,7 +3241,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#2-1::OnEnable";
disablenpc "Monster1#2-1";
@@ -3279,7 +3279,7 @@ OnTimer7000:
mapannounce "jupe_area2","Just how strong you are!",bc_map,"0xFF0000";
soundeffectall "jupe_warning.wav",0,"jupe_area2";
soundeffectall "jupe_warning.wav",0,"jupe_area2";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area2",126,236,"Security Guard",1675,1,"Monster2#2-1::OnMyMobDead";
monster "jupe_area2",127,236,"Security Guard",1669,1,"Monster2#2-1::OnMyMobDead";
monster "jupe_area2",128,236,"Security Guard",1675,1,"Monster2#2-1::OnMyMobDead";
@@ -3292,7 +3292,7 @@ OnTimer7000:
OnTimer300000:
mapannounce "jupe_area2","Bwahaha! You're only good at running away!",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3302,12 +3302,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area2","Zzzzt. Zzzzt..... ",bc_map,"0xFF0000";
disablenpc "Monster2#2-1";
enablenpc "#hole#2-1";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
stopnpctimer;
}
end;
@@ -3453,7 +3453,7 @@ OnInit:
end;
OnTouch:
- set $@JupreArea2InUse,1;
+ $@JupreArea2InUse = 1;
donpcevent "Red Alarm On#2-2::OnEnable";
disablenpc "Red Alarm#2-2";
disablenpc "#hole#2-2";
@@ -3506,7 +3506,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#2-2";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area2",126,176,"High Guard",1669,1,"Monster1#2-2::OnMyMobDead";
monster "jupe_area2",127,176,"High Guard",1675,1,"Monster1#2-2::OnMyMobDead";
monster "jupe_area2",128,176,"High Guard",1669,1,"Monster1#2-2::OnMyMobDead";
@@ -3519,7 +3519,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area2","I can't believe how cowardly you really are...",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3529,7 +3529,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#2-2::OnEnable";
disablenpc "Monster1#2-2";
@@ -3563,7 +3563,7 @@ OnTimer4000:
OnTimer6000:
mapannounce "jupe_area2","I was called Vesper Newton. Hahah, they called me a mad man back then.",bc_map,"0xFF0000";
- set .MyMobs,13;
+ .MyMobs = 13;
monster "jupe_area2",126,156,"Security Guard",1675,1,"Monster2#2-2::OnMyMobDead";
monster "jupe_area2",127,156,"Security Guard",1669,1,"Monster2#2-2::OnMyMobDead";
monster "jupe_area2",128,156,"Security Guard",1675,1,"Monster2#2-2::OnMyMobDead";
@@ -3581,7 +3581,7 @@ OnTimer6000:
OnTimer300000:
mapannounce "jupe_area2","...Not yet.",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3591,12 +3591,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area2","Not yet!",bc_map,"0xFF0000";
disablenpc "Monster2#2-2";
enablenpc "#hole#2-2";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
stopnpctimer;
}
end;
@@ -3740,7 +3740,7 @@ OnInit:
end;
OnTouch:
- set $@JupreArea2InUse,1;
+ $@JupreArea2InUse = 1;
donpcevent "Red Alarm On#2-3::OnEnable";
disablenpc "Red Alarm#2-3";
disablenpc "#hole#2-3";
@@ -3794,7 +3794,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#2-3";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area2",126,89,"Security Guard",1675,1,"Monster1#2-3::OnMyMobDead";
monster "jupe_area2",127,89,"Security Guard",1669,1,"Monster1#2-3::OnMyMobDead";
monster "jupe_area2",128,89,"Security Guard",1675,1,"Monster1#2-3::OnMyMobDead";
@@ -3807,7 +3807,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area2","Zzzzt...Zzzzt....",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3816,7 +3816,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#2-3::OnEnable";
disablenpc "Monster1#2-3";
@@ -3850,7 +3850,7 @@ OnTimer5000:
OnTimer8000:
mapannounce "jupe_area2","You're wrong! Welcome to Hell!",bc_map,"0xFF0000";
- set .MyMobs,16;
+ .MyMobs = 16;
monster "jupe_area2",114,64,"Security Guard",1675,1,"Monster2#2-3::OnMyMobDead";
monster "jupe_area2",115,64,"Security Guard",1669,1,"Monster2#2-3::OnMyMobDead";
monster "jupe_area2",116,64,"Security Guard",1675,1,"Monster2#2-3::OnMyMobDead";
@@ -3871,7 +3871,7 @@ OnTimer8000:
OnTimer300000:
mapannounce "jupe_area2","Do you still have your courage? Come. Prove it.",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -3881,17 +3881,17 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area2","Do you still have your courage? Come. Prove it.",bc_map,"0xFF0000";
disablenpc "Monster2#2-3";
enablenpc "#hole#2-3";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
stopnpctimer;
}
end;
}
-
+
//============================================================
// Security Checkpoint 2-4
//============================================================
@@ -4035,7 +4035,7 @@ OnEnable:
end;
OnTouch:
- set $@JupreArea2InUse,1;
+ $@JupreArea2InUse = 1;
donpcevent "Red Alarm On#2-4::OnEnable";
disablenpc "Red Alarm#2-4";
disablenpc "#hole#2-4";
@@ -4088,7 +4088,7 @@ OnDisable:
OnEnable:
initnpctimer;
enablenpc "Monster1#2-4";
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_area2",75,161,"Security Guard",1675,1,"Monster1#2-4::OnMyMobDead";
monster "jupe_area2",72,161,"Security Guard",1669,1,"Monster1#2-4::OnMyMobDead";
monster "jupe_area2",71,161,"Security Guard",1675,1,"Monster1#2-4::OnMyMobDead";
@@ -4101,7 +4101,7 @@ OnEnable:
OnTimer300000:
mapannounce "jupe_area2","Zzzzt...Zzzzt....",bc_map,"0xFF0000";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
end;
OnTimer300002:
@@ -4111,7 +4111,7 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Monster2#2-4::OnEnable";
disablenpc "Monster1#2-4";
@@ -4145,7 +4145,7 @@ OnTimer4000:
OnTimer6000:
mapannounce "jupe_area2","I will be waiting for you!",bc_map,"0xFF0000";
- set .MyMobs,12;
+ .MyMobs = 12;
monster "jupe_area2",63,161,"Security Guard",1675,1,"Monster2#2-4::OnMyMobDead";
monster "jupe_area2",61,161,"Security Guard",1669,1,"Monster2#2-4::OnMyMobDead";
monster "jupe_area2",59,161,"Security Guard",1675,1,"Monster2#2-4::OnMyMobDead";
@@ -4161,7 +4161,7 @@ OnTimer6000:
end;
OnTimer300000:
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
mapannounce "jupe_area2","It's funny... Isn't it?",bc_map,"0xFF0000";
end;
@@ -4171,12 +4171,12 @@ OnTimer300002:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
mapannounce "jupe_area2","It's funny... Isn't it?",bc_map,"0xFF0000";
disablenpc "Monster2#2-4";
enablenpc "#hole#2-4";
- set $@JupreArea2InUse,0;
+ $@JupreArea2InUse = 0;
stopnpctimer;
}
end;
@@ -4309,7 +4309,7 @@ jupe_ele_r,51,98,0 script Switch#ufe CLEAR_NPC,{
mes "ground begins to shake";
mes "violently. This isn't normal!^000000";
next;
- set $@JupeElevatorInUse,1;
+ $@JupeElevatorInUse = 1;
disablenpc "Switch#ufe";
enablenpc "Switch On#ufe";
initnpctimer;
@@ -4408,7 +4408,7 @@ OnInit:
end;
OnEnable:
- set .MyMobs,9;
+ .MyMobs = 9;
enablenpc "Elevator Guard1#ufe";
initnpctimer;
end;
@@ -4454,7 +4454,7 @@ OnTimer120000:
enablenpc "Switch#ufe";
disablenpc "Switch On#ufe";
donpcevent "Annihilation#ufe::OnEnable";
- set $@JupeElevatorInUse,0;
+ $@JupeElevatorInUse = 0;
end;
OnTimer120005:
@@ -4463,7 +4463,7 @@ OnTimer120005:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
donpcevent "Elevator Safety#ufe::OnEnable";
stopnpctimer;
@@ -4546,7 +4546,7 @@ OnEnable:
OnTimer1000:
mapwarp "jupe_ele_r", "jupe_ele",42,47;
- set $@JupeElevatorInUse2,0;
+ $@JupeElevatorInUse2 = 0;
donpcevent "TimeOut#ufe::OnEnable";
donpcevent "Guard-1#ufe::OnEnable";
end;
@@ -4577,8 +4577,8 @@ OnTimer59000:
donpcevent "Guard-3#ufe::OnDisable";
donpcevent "Guard-4#ufe::OnDisable";
stopnpctimer;
- set $@JupeElevatorInUse2,0;
- set $@JupeElevatorInUse,0;
+ $@JupeElevatorInUse2 = 0;
+ $@JupeElevatorInUse = 0;
disablenpc "Switch On#ufe";
enablenpc "Switch#ufe";
}
@@ -4626,8 +4626,8 @@ OnTimer142000:
disablenpc "GuardEnd#ufe";
disablenpc "4F Enter#ufe";
donpcevent "TimeOut#ufe::OnDisable";
- set $@JupeElevatorInUse2,0;
- set $@JupeElevatorInUse,0;
+ $@JupeElevatorInUse2 = 0;
+ $@JupeElevatorInUse = 0;
disablenpc "Switch On#ufe";
enablenpc "Switch#ufe";
stopnpctimer;
@@ -4656,7 +4656,7 @@ OnTimer8000:
end;
OnTimer12000:
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_ele",48,44,"Guard",1675,1,"Guard-1#ufe::OnMyMobDead";
monster "jupe_ele",45,42,"Guard",1669,1,"Guard-1#ufe::OnMyMobDead";
monster "jupe_ele",38,42,"Guard",1675,1,"Guard-1#ufe::OnMyMobDead";
@@ -4665,7 +4665,7 @@ OnTimer12000:
monster "jupe_ele",38,53,"Guard",1669,1,"Guard-1#ufe::OnMyMobDead";
monster "jupe_ele",45,53,"Guard",1675,1,"Guard-1#ufe::OnMyMobDead";
monster "jupe_ele",48,51,"Guard",1669,1,"Guard-1#ufe::OnMyMobDead";
- set $@JupeElevatorInUse2,1;
+ $@JupeElevatorInUse2 = 1;
end;
OnTimer30000:
@@ -4676,7 +4676,7 @@ OnTimer30000:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
if ($@JupeElevatorInUse2 == 1) {
donpcevent "Guard-2#ufe::OnEnable";
@@ -4715,7 +4715,7 @@ OnTimer11000:
end;
OnTimer12000:
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_ele",48,44,"Guard",1683,1,"Guard-2#ufe::OnMyMobDead";
monster "jupe_ele",45,42,"Guard",1669,1,"Guard-2#ufe::OnMyMobDead";
monster "jupe_ele",38,42,"Guard",1683,1,"Guard-2#ufe::OnMyMobDead";
@@ -4724,7 +4724,7 @@ OnTimer12000:
monster "jupe_ele",38,53,"Guard",1669,1,"Guard-2#ufe::OnMyMobDead";
monster "jupe_ele",45,53,"Guard",1683,1,"Guard-2#ufe::OnMyMobDead";
monster "jupe_ele",48,51,"Guard",1669,1,"Guard-2#ufe::OnMyMobDead";
- set $@JupeElevatorInUse2,2;
+ $@JupeElevatorInUse2 = 2;
end;
OnTimer30000:
@@ -4735,7 +4735,7 @@ OnTimer30000:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
if ($@JupeElevatorInUse2 == 2) {
donpcevent "Guard-3#ufe::OnEnable";
@@ -4770,7 +4770,7 @@ OnTimer8000:
end;
OnTimer12000:
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_ele",48,44,"Guard",1675,1,"Guard-3#ufe::OnMyMobDead";
monster "jupe_ele",45,42,"Guard",1669,1,"Guard-3#ufe::OnMyMobDead";
monster "jupe_ele",38,42,"Guard",1683,1,"Guard-3#ufe::OnMyMobDead";
@@ -4779,7 +4779,7 @@ OnTimer12000:
monster "jupe_ele",38,53,"Guard",1683,1,"Guard-3#ufe::OnMyMobDead";
monster "jupe_ele",45,53,"Guard",1675,1,"Guard-3#ufe::OnMyMobDead";
monster "jupe_ele",48,51,"Guard",1669,1,"Guard-3#ufe::OnMyMobDead";
- set $@JupeElevatorInUse2,3;
+ $@JupeElevatorInUse2 = 3;
end;
OnTimer30000:
@@ -4790,7 +4790,7 @@ OnTimer30000:
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
if ($@JupeElevatorInUse2 == 3) {
donpcevent "Guard-4#ufe::OnEnable";
@@ -4822,7 +4822,7 @@ OnTimer5000:
end;
OnTimer8000:
- set .MyMobs,8;
+ .MyMobs = 8;
monster "jupe_ele",48,44,"Guard",1684,1,"Guard-4#ufe::OnMyMobDead";
monster "jupe_ele",45,42,"Guard",1669,1,"Guard-4#ufe::OnMyMobDead";
monster "jupe_ele",38,42,"Guard",1684,1,"Guard-4#ufe::OnMyMobDead";
@@ -4831,11 +4831,11 @@ OnTimer8000:
monster "jupe_ele",38,53,"Guard",1669,1,"Guard-4#ufe::OnMyMobDead";
monster "jupe_ele",45,53,"Guard",1683,1,"Guard-4#ufe::OnMyMobDead";
monster "jupe_ele",48,51,"Guard",1675,1,"Guard-4#ufe::OnMyMobDead";
- set $@JupeElevatorInUse2,4;
+ $@JupeElevatorInUse2 = 4;
end;
OnMyMobDead:
- set .MyMobs,.MyMobs-1;
+ --.MyMobs;
if (.MyMobs < 1) {
if (getvariableofnpc(.MyMobs,"Guard-1#ufe") < 1 && getvariableofnpc(.MyMobs,"Guard-2#ufe") < 1 && getvariableofnpc(.MyMobs,"Guard-3#ufe") < 1) {
donpcevent "GuardEnd#ufe::OnEnable";
@@ -4897,8 +4897,8 @@ OnTimer25000:
end;
OnTimer26000:
- set $@JupeElevatorInUse2,0;
- set $@JupeElevatorInUse,0;
+ $@JupeElevatorInUse2 = 0;
+ $@JupeElevatorInUse = 0;
disablenpc "Switch On#ufe";
enablenpc "Switch#ufe";
donpcevent "GuardEnd#ufe::OnDisable";
@@ -5005,20 +5005,20 @@ sec_in02,39,167,0 script Juperos Manager 4_F_OPERATION,{
next;
switch(select("jupe_Area1:jupe_Area2:jupe_ele_r:jupe_ele")) {
case 1:
- set .@loc$,"jupe_Area1";
- set .@var$,"$@JupreArea1InUse";
+ .@loc$ = "jupe_Area1";
+ .@var$ = "$@JupreArea1InUse";
break;
case 2:
- set .@loc$,"jupe_Area2";
- set .@var$,"$@JupreArea2InUse";
+ .@loc$ = "jupe_Area2";
+ .@var$ = "$@JupreArea2InUse";
break;
case 3:
- set .@loc$,"jupe_ele_r";
- set .@var$,"$@JupeElevatorInUse";
+ .@loc$ = "jupe_ele_r";
+ .@var$ = "$@JupeElevatorInUse";
break;
case 4:
- set .@loc$,"jupe_ele";
- set .@var$,"$@JupeElevatorInUse2";
+ .@loc$ = "jupe_ele";
+ .@var$ = "$@JupeElevatorInUse2";
break;
}
mes "[Juperos Manager]";
diff --git a/npc/quests/quests_lighthalzen.txt b/npc/quests/quests_lighthalzen.txt
index 6f9a4c0d2..9d236e831 100644
--- a/npc/quests/quests_lighthalzen.txt
+++ b/npc/quests/quests_lighthalzen.txt
@@ -37,14 +37,14 @@ lighthalzen,1,1,0 script Law Enforcement -1,{
OnEnable:
mapannounce "lighthalzen","Attention, citizens. Our security has been breached and the city is in Gangster Alert status. Please find shelter immediately!",bc_map;
initnpctimer;
- for (set .@i, 0; .@i < 30; set .@i, .@i + 1)
+ for (.@i = 0; .@i < 30; ++.@i)
monster "lighthalzen",0,0,"Gangster",1592,1,"Law Enforcement::OnMyMobDead";
end;
OnTimer220000:
killmonster "lighthalzen","Law Enforcement::OnMyMobDead";
mapannounce "lighthalzen","Attention, citizens. Our law enforcement department has successfully contained the situation. Alert status has been canceled.",bc_map;
- set $@Lhz_Gangster_Alert, 0;
+ $@Lhz_Gangster_Alert = 0;
stopnpctimer;
end;
@@ -82,7 +82,7 @@ lighthalzen,267,200,3 script Guard#lhz01 4_M_LGTGUARD,{
mes "around here. But how can";
mes "so many sneak through us?";
donpcevent "Law Enforcement::OnEnable";
- set $@Lhz_Gangster_Alert, 100;
+ $@Lhz_Gangster_Alert = 100;
close;
}
if (gettime(3) >= 22 || gettime(3) < 2) {
@@ -95,7 +95,7 @@ lighthalzen,267,200,3 script Guard#lhz01 4_M_LGTGUARD,{
mes "the perfect opportunity";
mes "to sneak past him.^000000";
close2;
- set $@Lhz_Gangster_Alert, $@Lhz_Gangster_Alert + 1;
+ ++$@Lhz_Gangster_Alert;
warp "lighthalzen",303,229;
end;
}
@@ -104,7 +104,7 @@ lighthalzen,267,200,3 script Guard#lhz01 4_M_LGTGUARD,{
mes "and is looking elsewhere. Now's";
mes "your chance to sneak past him!^000000";
close2;
- set $@Lhz_Gangster_Alert, $@Lhz_Gangster_Alert + 1;
+ ++$@Lhz_Gangster_Alert;
warp "lighthalzen",303,229;
end;
}
@@ -149,7 +149,7 @@ lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{
mes "around here. But how can";
mes "so many sneak through us?";
donpcevent "Law Enforcement::OnEnable";
- set $@Lhz_Gangster_Alert, 100;
+ $@Lhz_Gangster_Alert = 100;
close;
}
if (gettime(3) >= 22 || gettime(3) < 2) {
@@ -162,7 +162,7 @@ lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{
mes "the perfect opportunity";
mes "to sneak past him.^000000";
close2;
- set $@Lhz_Gangster_Alert, $@Lhz_Gangster_Alert + 1;
+ ++$@Lhz_Gangster_Alert;
warp "lighthalzen",260,199;
end;
}
@@ -171,7 +171,7 @@ lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{
mes "and is looking elsewhere. Now's";
mes "your chance to sneak past him!^000000";
close2;
- set $@Lhz_Gangster_Alert, $@Lhz_Gangster_Alert + 1;
+ ++$@Lhz_Gangster_Alert;
warp "lighthalzen",260,199;
end;
}
@@ -191,8 +191,8 @@ lighthalzen,294,223,7 script Guard#lhz02 4_M_LGTGUARD,{
lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
// Retain prior position in quest.
if (piciburn) {
- set lhz_sincube,piciburn;
- set piciburn,0;
+ lhz_sincube = piciburn;
+ piciburn = 0;
}
// Quest is finished.
if (MISC_QUEST&512) {
@@ -221,7 +221,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "Is there something";
mes "on my face? Quit looking";
mes "at me and let me do my work.";
- set lhz_sincube,1;
+ lhz_sincube = 1;
close;
}
else if (lhz_sincube == 1) {
@@ -230,7 +230,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "You're still looking";
mes "at me. Quit it. I'm busy";
mes "here and you're bothering me.";
- set lhz_sincube,2;
+ lhz_sincube = 2;
close;
}
else if (lhz_sincube == 2) {
@@ -324,7 +324,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "and just trust anyone who";
mes "wants to know a secret";
mes "route. Now get outta here!";
- set lhz_sincube,3;
+ lhz_sincube = 3;
close;
}
else if (lhz_sincube == 3) {
@@ -340,7 +340,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "and stop begging, okay?";
mes "You're only embarassing";
mes "yourself! Good grief...";
- set lhz_sincube,4;
+ lhz_sincube = 4;
close;
}
else if (lhz_sincube == 4) {
@@ -414,7 +414,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "But you gotta have";
mes "exactly 20 Jellopy on";
mes "you, okay? Seeya pal~";
- set lhz_sincube,5;
+ lhz_sincube = 5;
setquest 12014;
close;
}
@@ -469,7 +469,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "then I'll tell you what you";
mes "really need to know.";
delitem 909,20; //Jellopy
- set lhz_sincube,6;
+ lhz_sincube = 6;
close;
}
mes "[Fishbone]";
@@ -520,7 +520,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "Okay then,";
mes "here we go!";
close2;
- set lhz_sincube,7;
+ lhz_sincube = 7;
switch(rand(1,3)) {
case 1: warp "lhz_cube",67,193; break;
case 2: warp "lhz_cube",66,136; break;
@@ -560,7 +560,7 @@ lighthalzen,341,224,3 script Fishbone 4_M_LGTGUARD,{
mes "Get ready, 'cuz";
mes "here we go...!";
close2;
- set lhz_sincube,7;
+ lhz_sincube = 7;
switch(rand(1,3)) {
case 1: warp "lhz_cube",67,193; break;
case 2: warp "lhz_cube",66,136; break;
@@ -676,7 +676,7 @@ lhz_cube,237,198,0 script Bundle of Files#cube HIDDEN_NPC,{
mes "drops to the ground";
mes "with a clink. You decide";
mes "to keep this ^000000Red Key^3355FF.^000000";
- set lhz_secret01,1;
+ lhz_secret01 = 1;
}
close;
}
@@ -737,18 +737,18 @@ lhz_cube,234,202,0 script Picture#cube HIDDEN_NPC,{
mes "find that the following";
mes "numbers are written:^000000";
mes " ";
- set .@number_rand,rand(1,3);
+ .@number_rand = rand(1,3);
if (.@number_rand == 1) {
mes "4 3 2 9 1 6 8 2 7";
- set lhz_secret01,3;
+ lhz_secret01 = 3;
}
else if (.@number_rand == 2) {
mes "3 6 4 1 2 8 7 1 5";
- set lhz_secret01,4;
+ lhz_secret01 = 4;
}
else {
mes "4 9 3 7 6 2 8 6 6";
- set lhz_secret01,5;
+ lhz_secret01 = 5;
}
close;
}
@@ -813,7 +813,7 @@ lhz_cube,242,201,0 script Drawer#cube HIDDEN_NPC,{
mes "^000000Jackknife^3355FF that you decide";
mes "to take. After all, it might";
mes "be handy sometime.^000000";
- set lhz_secret01,2;
+ lhz_secret01 = 2;
}
else {
mes "^3355FFUnfortunately, you";
@@ -851,7 +851,7 @@ lhz_cube,248,179,0 script Chest#cube HIDDEN_NPC,{
mes "an ounce of guilt, you";
mes "pick up the utility ^000000Axe^3355FF";
mes "and claim it as your own.^000000";
- set lhz_sincube,8;
+ lhz_sincube = 8;
}
close;
}
@@ -863,7 +863,7 @@ lhz_cube,248,179,0 script Chest#cube HIDDEN_NPC,{
}
lhz_cube,237,183,0 script Barrel#cube HIDDEN_NPC,{
- set number_line,0;
+ number_line = 0;
if (lhz_sincube < 8) {
mes "^3355FFYou have";
mes "found a shabbily";
@@ -894,7 +894,7 @@ lhz_cube,237,183,0 script Barrel#cube HIDDEN_NPC,{
mes "of the metal plate on";
mes "top of the box you found,";
mes "like some kind of keypad...^000000";
- set lhz_sincube,9;
+ lhz_sincube = 9;
}
else {
mes "^3355FFDoing that probably won't";
@@ -911,7 +911,7 @@ lhz_cube,237,183,0 script Barrel#cube HIDDEN_NPC,{
mes "you can only enter single";
mes "digit numbers at one time...^000000";
next;
- for( set $@i, 0; .@i < 9; set .@i, .@i + 1 )
+ for( $@i = 0; .@i < 9; ++.@i )
input .@input;
mes "^3355FFNothing happened...^000000";
close;
@@ -928,16 +928,16 @@ lhz_cube,237,183,0 script Barrel#cube HIDDEN_NPC,{
mes "metal plate on top of the box";
mes "you found inside the keg.^000000";
next;
- for( set $@i, 0; .@i < 9; set .@i, .@i + 1 ) {
+ for( $@i = 0; .@i < 9; ++.@i ) {
input .@input;
- if (.@input == .@numbers[.@i]) set .@number_line,.@number_line+1;
+ if (.@input == .@numbers[.@i]) .@number_line += 1;
}
if (.@number_line == 9) {
mes "^3355FFThe metal plate slides";
mes "open and you find a key";
mes "Key inside the box. You";
mes "to keep this ^000000Yellow Key^3355FF.^000000";
- set lhz_secret01,6;
+ lhz_secret01 = 6;
}
else {
mes "^3355FFNothing happened.";
@@ -994,7 +994,7 @@ lhz_cube,224,192,0 script Power Generator#cube HIDDEN_NPC,{
mes "^3355FFYou notice that the";
mes "^000000Status Light ^3355FFnext to the";
mes "bed has now turned off.^000000";
- set lhz_secret01,7;
+ lhz_secret01 = 7;
}
else {
mes "^3355FFNothing happened.";
@@ -1034,7 +1034,7 @@ lhz_cube,244,201,0 script Status Light#cube HIDDEN_NPC,{
mes "Status Light's bulb";
mes "and discover another key.";
mes "You obtained a ^000000Black Key^3355FF.^000000";
- set lhz_secret01,8;
+ lhz_secret01 = 8;
}
close;
}
@@ -1065,7 +1065,7 @@ lhz_cube,234,200,0 script Desk#cube HIDDEN_NPC,{
mes "that you decide to keep.";
mes "You never know when";
mes "you'll need one of those.^000000";
- set lhz_secret02,1;
+ lhz_secret02 = 1;
}
else {
mes "^3355FFThis is where you";
@@ -1130,7 +1130,7 @@ lhz_cube,234,200,0 script Desk#cube HIDDEN_NPC,{
mes "to the sum of its parts.";
mes "You are now the proud";
mes "bearer of a ^000000Long Stick^3355FF.^000000";
- set lhz_secret02,3;
+ lhz_secret02 = 3;
close;
case 3:
mes "^3355FFThis desk drawer is";
@@ -1200,7 +1200,7 @@ lhz_cube,247,198,0 script Bed#cube HIDDEN_NPC,{
mes "keep. You never know";
mes "when certain, seemingly";
mes "useless objects will save you.^000000";
- set lhz_secret02,2;
+ lhz_secret02 = 2;
}
close;
}
@@ -1229,7 +1229,7 @@ lhz_cube,247,198,0 script Bed#cube HIDDEN_NPC,{
mes "to the sum of its parts.";
mes "You are now the proud";
mes "bearer of a ^000000Long Stick^3355FF.^000000";
- set lhz_secret02,3;
+ lhz_secret02 = 3;
}
close;
}
@@ -1298,7 +1298,7 @@ lhz_cube,247,198,0 script Bed#cube HIDDEN_NPC,{
mes "it under the bed towards you.";
mes "You now possess the ^000000Cube^3355FF";
mes "that was under the bed.^000000";
- set lhz_secret02,4;
+ lhz_secret02 = 4;
}
else {
mes "^3355FFUnfortunately,";
@@ -1344,7 +1344,7 @@ lhz_cube,229,184,0 script Goblet#cube HIDDEN_NPC,{
mes "rid of that rust somehow.";
mes "Perhaps you can dip the key";
mes "in some corrosive chemical?^000000";
- set lhz_secret03,1;
+ lhz_secret03 = 1;
}
close;
}
@@ -1386,7 +1386,7 @@ lhz_cube,231,202,0 script Chemicals#cube HIDDEN_NPC,{
mes "again. Now that it is clean,";
mes "the Rusty Key has become";
mes "a sparkling ^000000Green Key^3355FF.^000000";
- set lhz_secret03,2;
+ lhz_secret03 = 2;
}
else {
mes "^3355FFWhatever you tried to";
@@ -1434,7 +1434,7 @@ lhz_cube,249,191,0 script Cabinet#cube HIDDEN_NPC,{
mes "one of the drawer keyholes.";
mes "You open the drawer and";
mes "obtain a strange ^000000Polygon^3355FF.^000000";
- set lhz_secret03,3;
+ lhz_secret03 = 3;
}
else {
mes "^3355FFWhatever you tried";
@@ -1489,7 +1489,7 @@ lhz_cube,224,197,0 script Experiment Tube#cube HIDDEN_NPC,{
mes "the experiment tube to open";
mes "and reveal an ^000000Oval^3355FF which you";
mes "you choose to take with you.^000000";
- set lhz_secret01,9;
+ lhz_secret01 = 9;
}
else {
mes "^3355FFNothing happened...^000000";
@@ -1528,11 +1528,11 @@ lhz_cube,224,197,0 script Experiment Tube#cube HIDDEN_NPC,{
mes "of winding stairs...^000000";
close2;
//remove variables that are no longer used.
- set lhz_sincube,0;
- set lhz_secret01,0;
- set lhz_secret02,0;
- set lhz_secret03,0;
- set MISC_QUEST,MISC_QUEST|512;
+ lhz_sincube = 0;
+ lhz_secret01 = 0;
+ lhz_secret02 = 0;
+ lhz_secret03 = 0;
+ MISC_QUEST |= 512;
warp "lhz_cube",177,13;
end;
}
@@ -1581,7 +1581,7 @@ lhz_cube,248,193,0 script Box#cube1 HIDDEN_NPC,{
mes "^3355FFYou insert the Oval";
mes "into the Oval shaped";
mes "hole where it fits perfectly.^000000";
- set lhz_secret01,10;
+ lhz_secret01 = 10;
close;
}
mes "^3355FFNothing happened.^000000";
@@ -1607,7 +1607,7 @@ lhz_cube,248,193,0 script Box#cube1 HIDDEN_NPC,{
mes "and it clicks into place.";
mes "Your formal Kindergarten";
mes "training is finally justified.^000000";
- set lhz_secret02,5;
+ lhz_secret02 = 5;
close;
}
mes "^3355FFNothing happened.^000000";
@@ -1637,7 +1637,7 @@ lhz_cube,248,193,0 script Box#cube1 HIDDEN_NPC,{
mes "nondescript Polygonal hole.";
mes "The Polygon fits perfectly,";
mes "almost as if it were destiny.^000000";
- set lhz_secret03,4;
+ lhz_secret03 = 4;
close;
}
mes "^3355FFNothing happened.^000000";
@@ -1670,7 +1670,7 @@ lhz_cube,248,193,0 script Box#cube1 HIDDEN_NPC,{
mes "You pocket this ^000000Laboratory";
mes "Permit^3355FF, knowing that you";
mes "will be needing it later.";
- set lhz_sincube,10;
+ lhz_sincube = 10;
getitem 2657,1; //Lab_Passport
}
close;
@@ -1949,9 +1949,9 @@ OnTouch:
mes "what do you say?";
next;
switch(select("Give me 1.:Give me 2.:Give me 3.:No, I'm fine.")) {
- case 1: set .@number,1; set .@price,15000*1; break;
- case 2: set .@number,2; set .@price,15000*2; break;
- case 3: set .@number,3; set .@price,15000*3; break;
+ case 1: .@number = 1; .@price = 15000*1; break;
+ case 2: .@number = 2; .@price = 15000*2; break;
+ case 3: .@number = 3; .@price = 15000*3; break;
case 4:
mes "[Suspicious Guy]";
mes "Well...";
@@ -2123,7 +2123,7 @@ lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{
mes "courtesy to a man who";
mes "dearly loved his friends.^000000";
next;
- set friendship,15;
+ friendship = 15;
changequest 12005,12006;
getitem 1201,1; //Knife
close;
@@ -2255,7 +2255,7 @@ lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{
mes "it's not like that oath really";
mes "means anything now, does it?";
next;
- set friendship,13;
+ friendship = 13;
mes "[Digotz]";
mes "That does it. I'm gonna";
mes "go see that Maku. I don't";
@@ -2331,7 +2331,7 @@ lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{
mes "mediate if we got into some";
mes "argument. Still, he couldn't";
mes "do anything about Maku now...";
- set friendship,7;
+ friendship = 7;
changequest 12002,12003;
next;
mes "[Digotz]";
@@ -2443,7 +2443,7 @@ lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{
mes "^FF0000Not to mention an apology!";
mes "^FF0000But who cares what you think?!";
mes "I'm so goddamn happy without you!^000000";
- set friendship,4;
+ friendship = 4;
close;
}
if (friendship == 2) {
@@ -2493,7 +2493,7 @@ lhz_in02,201,210,5 script Digotz 4_M_LGTMAN,{
mes "the fact me and Maku aren't";
mes "pals anymore. You know what?";
mes "Just forget everything I said.";
- set friendship,2;
+ friendship = 2;
changequest 12000,12001;
close;
}
@@ -2694,7 +2694,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
cutin "lhz_macu07",255;
next;
delitem 7351,1; //Friend's_Diary
- set friendship,14;
+ friendship = 14;
if (checkre(3)) {
if (BaseLevel > 90) getexp 70000,0;
else if (BaseLevel > 75) getexp 40000,0;
@@ -2784,7 +2784,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
mes "of fights. I really miss that";
mes "guy. Still, he ain't around...";
next;
- set friendship,6;
+ friendship = 6;
mes "[Maku]";
mes "Damn those guards!";
mes "If they weren't there,";
@@ -2869,7 +2869,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
next;
input .@input$;
if (.@input$ == "I'm so goddamn happy without you!") {
- set friendship,5;
+ friendship = 5;
cutin "lhz_macu06",2;
mes "[Maku]";
mes "That's it.";
@@ -2953,7 +2953,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
mes "long time since we hung";
mes "out and he probably hates";
mes "my penniless guts and...";
- set friendship,3;
+ friendship = 3;
changequest 12001,12002;
next;
mes "[Maku]";
@@ -3008,7 +3008,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
mes "to someone I just met";
mes "anyway? Sure, we all";
mes "do it, but still...";
- set friendship,1;
+ friendship = 1;
setquest 12000;
next;
mes "[Maku]";
@@ -3062,7 +3062,7 @@ lighthalzen,337,232,3 script Maku 4_M_LGTPOOR,{
mes "to someone I just met";
mes "anyway? Sure, we all";
mes "do it, but still...";
- set friendship,1;
+ friendship = 1;
next;
mes "[Maku]";
mes "Well, when you get";
@@ -3092,7 +3092,7 @@ yuno_in04,107,14,5 script Student 4_M_SAGE_A,{
mes "Still, students like Benkaistein can tune out the whole world";
mes "when they study hard enough...";
next;
- set friendship,8;
+ friendship = 8;
mes "[Joey Choryee]";
mes "Benkaistein...?";
mes "He's in the north part";
@@ -3146,7 +3146,7 @@ yuno_in04,96,106,5 script Passionate Student 4_M_SAGE_A,{
mes "go back and forth between the";
mes "rich and poor areas as my thanks.";
next;
- set friendship,16;
+ friendship = 16;
completequest 12006;
if (checkre(3)) {
if (BaseLevel > 90) getexp 70000,0;
@@ -3197,7 +3197,7 @@ yuno_in04,96,106,5 script Passionate Student 4_M_SAGE_A,{
mes "remind them of all the good";
mes "times we used to share.";
next;
- set friendship,12;
+ friendship = 12;
changequest 12004,12005;
mes "[Benkaistein]";
mes "Anyway, this should at";
@@ -3247,7 +3247,7 @@ yuno_in04,96,106,5 script Passionate Student 4_M_SAGE_A,{
mes "two to make up, but I also need";
mes "to finish this thesis. Let's see... What can I possibly do from here?";
next;
- set friendship,10;
+ friendship = 10;
changequest 12003,12004;
mes "[Benkaistein]";
mes "Oh, I know what I can do!";
@@ -3313,7 +3313,7 @@ yuno_in04,96,106,5 script Passionate Student 4_M_SAGE_A,{
mes "I-I'm trying to study!";
mes "No, wait. Have you been";
mes "calling me all this time?";
- set friendship,9;
+ friendship = 9;
close;
}
mes "[Passionate Student]";
@@ -3341,7 +3341,7 @@ yuno_in04,168,117,3 script Book#lhz HIDDEN_NPC,{
close;
}
if (friendship == 10) {
- set friendship,11;
+ friendship = 11;
getitem 7351,1; //Friend's_Diary
mes "^3355FFThis book is labeled,";
mes "''Benkaistein's Journal";
@@ -3364,11 +3364,11 @@ OnTouch_:
if (countitem(7345) > 0 ) {
if (lhz_curse == 0) {
soundeffect "loli_ruri_stand.wav",0;
- set lhz_curse,1;
+ lhz_curse = 1;
setquest 2086;
}
else if (lhz_curse < 26) {
- set @lhz_ghost,rand(1,5);
+ @lhz_ghost = rand(1,5);
sc_start SC_CURSE,1000,0;
soundeffect "loli_ruri_stand.wav",0;
if (@lhz_ghost == 1) {
@@ -3404,11 +3404,11 @@ OnTouch_:
if (countitem(7345) > 0 ) {
if (lhz_curse == 0) {
soundeffect "tao_gunka_stand.wav",0;
- set lhz_curse,1;
+ lhz_curse = 1;
setquest 2086;
}
else if (lhz_curse < 26) {
- set @lhz_ghost,rand(1,10);
+ @lhz_ghost = rand(1,10);
sc_start SC_CURSE,1000,0;
soundeffect "tao_gunka_stand.wav",0;
if (@lhz_ghost == 1) {
@@ -3444,11 +3444,11 @@ OnTouch_:
if (countitem(7345) > 0 ) {
if (lhz_curse == 0) {
soundeffect "tao_gunka_stand.wav",0;
- set lhz_curse,1;
+ lhz_curse = 1;
setquest 2086;
}
else if (lhz_curse < 26) {
- set @lhz_ghost,rand(1,10);
+ @lhz_ghost = rand(1,10);
sc_start SC_CURSE,1000,0;
soundeffect "tao_gunka_stand.wav",0;
if (@lhz_ghost == 1) {
@@ -3523,7 +3523,7 @@ OnTouch_:
close2;
sc_end SC_BLIND;
sc_start SC_CURSE,5000,0;
- if (!lhz_spi01) set lhz_spi01,1;
+ if (!lhz_spi01) lhz_spi01 = 1;
}
}
end;
@@ -3602,7 +3602,7 @@ OnTouch_:
soundeffect "tao_gunka_stand.wav",0;
sc_end SC_BLIND;
sc_start SC_CURSE,5000,0;
- if (!lhz_spi02) set lhz_spi02,1;
+ if (!lhz_spi02) lhz_spi02 = 1;
}
}
end;
@@ -3648,7 +3648,7 @@ OnTouch_:
soundeffect "loli_ruri_stand.wav",0;
sc_end SC_BLIND;
sc_start SC_CURSE,3000,0;
- if (!lhz_spi03) set lhz_spi03,1;
+ if (!lhz_spi03) lhz_spi03 = 1;
}
}
end;
@@ -3707,7 +3707,7 @@ OnTouch_:
soundeffect "tao_gunka_stand.wav",0;
sc_end SC_BLIND;
sc_start SC_CURSE,5000,0;
- if (!lhz_spi04) set lhz_spi04,1;
+ if (!lhz_spi04) lhz_spi04 = 1;
}
}
end;
@@ -3761,7 +3761,7 @@ OnTouch_:
soundeffect "tao_gunka_stand.wav",0;
sc_end SC_BLIND;
sc_start SC_CURSE,3000,0;
- if (lhz_curse == 6) set lhz_curse,7;
+ if (lhz_curse == 6) lhz_curse = 7;
}
}
end;
@@ -3845,7 +3845,7 @@ OnTouch_:
soundeffect "tao_gunka_stand.wav",0;
sc_end SC_BLIND;
sc_start SC_CURSE,3000,0;
- if (lhz_curse == 11) set lhz_curse,12;
+ if (lhz_curse == 11) lhz_curse = 12;
}
}
end;
@@ -3991,7 +3991,7 @@ lhz_que01,21,31,5 script #li_Varmunt 4_M_SAGE_C,{
mes "...";
mes "......";
mes ".........";
- set lhz_curse,13;
+ lhz_curse = 13;
close2;
warp "lhz_in01",206,129;
end;
@@ -4126,7 +4126,7 @@ lhz_que01,29,24,3 script #li_researcher 4_M_SAGE_A,{
mes "...";
mes "......";
mes ".........";
- set lhz_curse,13;
+ lhz_curse = 13;
close2;
warp "lhz_in01",206,129;
end;
@@ -4297,7 +4297,7 @@ lhz_que01,99,74,5 script #li_Man 1_M_02,{
mes "No matter how hard you try,";
mes "you can't open its clasp to see";
mes "what this pendant contains.^000000";
- set lhz_curse,17;
+ lhz_curse = 17;
changequest 2090,2091;
getitem 7341,1; //Worn_Out_Pendant
close2;
@@ -4443,7 +4443,7 @@ lighthalzen,346,263,3 script Elder#lhz 4_F_EINOLD,{
mes "I hope you can appease";
mes "the wrath of these spirits...";
mes "But as long as you let them guide you, you ought to be safe.";
- set lhz_curse,6;
+ lhz_curse = 6;
changequest 2086,2087;
close;
case 2:
@@ -4500,7 +4500,7 @@ lighthalzen,346,263,3 script Elder#lhz 4_F_EINOLD,{
mes "It won't be long until";
mes "the spirits are consumed";
mes "by their supernatural rage...";
- set lhz_curse,18;
+ lhz_curse = 18;
changequest 2091,2092;
close;
case 2:
@@ -4563,7 +4563,7 @@ lighthalzen,346,263,3 script Elder#lhz 4_F_EINOLD,{
mes "revealing a picture of a happy";
mes "couple. Somehow, the girl in";
mes "the picture, sitting uncomfortably^FFFFFF^3355FF in an old chair, looks familiar...^000000";
- set lhz_curse,19;
+ lhz_curse = 19;
changequest 2092,2093;
delitem 523,5; //Holy_Water
delitem 744,1; //Bunch_Of_Flowers
@@ -4869,7 +4869,7 @@ lhz_in03,32,162,3 script Crippled Girl#li_tre 1_M_INNKEEPER,{
mes "Well...";
mes "This is awkward.";
delitem 7341,1; //Worn_Out_Pendant
- set lhz_curse,24;
+ lhz_curse = 24;
close;
}
else {
@@ -4990,7 +4990,7 @@ lhz_in03,32,162,3 script Crippled Girl#li_tre 1_M_INNKEEPER,{
mes "Sheesh.";
mes "Don't kill the";
mes "messenger.";
- set lhz_curse,20;
+ lhz_curse = 20;
close2;
warp "lighthalzen",322,323;
end;
@@ -5083,7 +5083,7 @@ lhz_in03,32,162,3 script Crippled Girl#li_tre 1_M_INNKEEPER,{
mes "["+strcharinfo(0)+"]";
mes "Yes, I'm sure of that.";
delitem 7341,1; //Worn_Out_Pendant
- set lhz_curse,25;
+ lhz_curse = 25;
close;
case 2:
mes "["+strcharinfo(0)+"]";
@@ -5120,7 +5120,7 @@ lhz_in03,32,162,3 script Crippled Girl#li_tre 1_M_INNKEEPER,{
mes "[Setsu]";
mes "I'll try hard!";
delitem 7341,1; //Worn_Out_Pendant
- set lhz_curse,25;
+ lhz_curse = 25;
close;
}
}
@@ -5161,7 +5161,7 @@ lighthalzen,324,322,0 script #li_door WARPNPC,2,2,{
OnTouch_:
if ((lhz_curse > 19) && (lhz_curse < 23)) {
mes "^3355FFThe door is locked.^000000";
- set lhz_curse,lhz_curse+1;
+ lhz_curse = lhz_curse+1;
close;
}
else if (lhz_curse > 23) {
@@ -5187,7 +5187,7 @@ OnTouch_:
end;
}
-lhz_in03,12,162,0 warp #to_lhz 1,1,lighthalzen,321,322
+lhz_in03,12,162,0 warp #to_lhz 1,1,lighthalzen,321,322
lighthalzen,319,321,0 script #li_bother -1,2,2,{ //3,3
OnTouch_:
@@ -5226,7 +5226,7 @@ OnTouch_:
mes "is tied to the ^FF0000Rekenber";
mes "Corporation^000000 and that";
mes "^FF0000Regenschirm Laboratory^000000.";
- set lhz_curse,26;
+ lhz_curse = 26;
changequest 2093,2094;
if (checkre(3)) {
if (BaseLevel < 70) getexp 30000,30000;
@@ -5326,7 +5326,7 @@ lhz_in01,114,181,5 script Representative#li_01 1_F_LIBRARYGIRL,{
mes "the hallway to the left in";
mes "order to find our Library.";
mes "Thank you and have a nice day.";
- set lhz_curse,8;
+ lhz_curse = 8;
changequest 2087,2088;
close;
}
@@ -5440,8 +5440,8 @@ lhz_in01,27,247,5 script Representative#li_02 1_F_LIBRARYGIRL,{
mes "Regenschirm. It was his work";
mes "in science that enabled the";
mes "Rekenber Corporation to grow into the nation's biggest company.";
- if (lhz_curse == 8) set lhz_curse,9;
- else if (lhz_curse == 9) set lhz_curse,10;
+ if (lhz_curse == 8) lhz_curse = 9;
+ else if (lhz_curse == 9) lhz_curse = 10;
next;
break;
case 2:
@@ -5459,8 +5459,8 @@ lhz_in01,27,247,5 script Representative#li_02 1_F_LIBRARYGIRL,{
mes "you can imagine. Remember";
mes "that Rekenber is the name";
mes "that you can trust.";
- if (lhz_curse == 8) set lhz_curse,9;
- else if (lhz_curse == 9) set lhz_curse,10;
+ if (lhz_curse == 8) lhz_curse = 9;
+ else if (lhz_curse == 9) lhz_curse = 10;
next;
break;
}
@@ -5575,7 +5575,7 @@ lhz_in01,25,251,3 script Rekenber Guidebook#li HIDDEN_NPC,{
mes "by making the ancient power";
mes "of the gods more accessible";
mes "by means of new technologies.";
- if (lhz_curse == 10) set lhz_curse,11;
+ if (lhz_curse == 10) lhz_curse = 11;
next;
mes "..............";
close;
@@ -5604,7 +5604,7 @@ lhz_in01,273,121,1 script Mad Scientist#li 4_LGTSCIENCE,{
mes "I've fired? Get lost, or I'll";
mes "treat you to the pain of";
mes "being eaten alive!";
- set lhz_curse,14;
+ lhz_curse = 14;
close;
}
}
@@ -5632,7 +5632,7 @@ lhz_in01,273,121,1 script Mad Scientist#li 4_LGTSCIENCE,{
mes "thing I must collect. Yes, yes.";
mes "Here's a hint... It's round...";
mes "Shiny... Kids love playing games with them! Oh, I said too much!";
- set lhz_curse,15;
+ lhz_curse = 15;
changequest 2089,2090;
close;
case 2:
@@ -5715,7 +5715,7 @@ lhz_in01,273,121,1 script Mad Scientist#li 4_LGTSCIENCE,{
mes "them. Not that I cause them";
mes "undue suffering or anything...";
next;
- set .@exit,1;
+ .@exit = 1;
break;
}
if (.@exit) break;
@@ -5755,7 +5755,7 @@ lhz_in01,273,121,1 script Mad Scientist#li 4_LGTSCIENCE,{
mes "on schedule. I can't afford";
mes "the leisure of speaking with";
mes "you any longer. Bweh heh heh!";
- set lhz_curse,16;
+ lhz_curse = 16;
close;
}
else {
@@ -5798,7 +5798,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "specifically targeted that";
mes "area in order to provide ample";
mes "opportunity for employment.";
- set lhz_curse,27;
+ lhz_curse = 27;
close;
case 2:
mes "[Sueii Slierre]";
@@ -5833,7 +5833,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "to assist you if you have";
mes "more inquiries regarding";
mes "the Regenschirm Laboratory.";
- set lhz_curse,28;
+ lhz_curse = 28;
close;
case 2:
mes "[Sueii Slierre]";
@@ -6050,7 +6050,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "merits an investigation.";
mes "I'll let you know if we";
mes "find anything significant...";
- set lhz_curse,30;
+ lhz_curse = 30;
close;
}
else {
@@ -6060,7 +6060,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "seem to be carrying anything";
mes "that can be construed as proof.";
mes "I suggest you bring something that actually supports your claim.";
- set lhz_curse,29;
+ lhz_curse = 29;
close;
}
break;
@@ -6070,7 +6070,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "I'd like to get back on";
mes "task. Please excuse me.";
close2;
- set lhz_curse,30;
+ lhz_curse = 30;
end;
}
break;
@@ -6158,7 +6158,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "merits an investigation.";
mes "I'll let you know if we";
mes "find anything significant...";
- set lhz_curse,30;
+ lhz_curse = 30;
close;
}
else {
@@ -6169,14 +6169,14 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "allay my doubts about your";
mes "claim. Now, if you'll excuse";
mes "me, I need to get back on task.";
- set lhz_curse,29;
+ lhz_curse = 29;
close2;
warp "lhz_in01",228,226;
end;
}
}
else if (lhz_curse == 30) {
- set .@li_keka,rand(1,10);
+ .@li_keka = rand(1,10);
if (.@li_keka > 7) {
if (checkweight(1201,1) == 0) {
mes "[Sueii Slierre]";
@@ -6218,7 +6218,7 @@ lhz_in01,286,226,3 script Secretary Slierre#li 4_F_ZONDAGIRL,{
mes "on people! Anyway, please";
mes "accept this as a token of";
mes "our gratitude, adventurer.";
- set lhz_curse,31;
+ lhz_curse = 31;
changequest 2094,2095;
getitem 603,1; //Old_Blue_Box
getitem 12016,10; //Speed_Up_Potion
@@ -6271,7 +6271,7 @@ OnTouch_:
mes "his stacks of well organized";
mes "files remain here in the lab.^000000";
if (lhz_curse == 31) {
- set lhz_curse,32;
+ lhz_curse = 32;
completequest 2095;
}
close;
@@ -6389,7 +6389,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "Ha ha ha!";
mes "Anyway, I hope you";
mes "have a good day today~";
- set lhz_boss,1;
+ lhz_boss = 1;
close;
}
else if(lhz_boss == 1)
@@ -6453,7 +6453,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "have mistaken me";
mes "for somebody else!";
mes "Now, if you'll excuse me...";
- set lhz_boss,3;
+ lhz_boss = 3;
next;
mes "^3355FFEven if it wasn't";
mes "Ghalstein that you";
@@ -6533,7 +6533,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "some time to think";
mes "about how I can best";
mes "handle this situation.";
- set lhz_boss,4;
+ lhz_boss = 4;
close;
case 2:
@@ -6715,7 +6715,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "I'll give you a moment to";
mes "steady yourself before we";
mes "talk about our mission.";
- set lhz_boss,5;
+ lhz_boss = 5;
close;
}
break;
@@ -6732,7 +6732,6 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
{
case 1:
break;
-
case 2:
mes "[Ghalstein]";
mes "Very good.";
@@ -6753,7 +6752,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "I'll give you a moment to";
mes "steady yourself before we";
mes "talk about our mission.";
- set lhz_boss,5;
+ lhz_boss = 5;
close;
}
@@ -6791,7 +6790,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "thoughts hazier until it begins";
mes "to feel like your entire mind";
mes "is getting bleached somehow.^000000";
- set lhz_boss,0;
+ lhz_boss = 0;
close2;
warp "lighthalzen",217,313;
end;
@@ -6851,7 +6850,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "maybe you can find a";
mes "contact who can sneak";
mes "you inside the Laboratory.";
- set lhz_boss,6;
+ lhz_boss = 6;
changequest 12015,12016;
close;
}
@@ -6901,7 +6900,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
delitem 7346,1; //Pile_Of_Ymir_Heart
delitem 7347,10; //Lab_Staff_Record
delitem 7345,10; //Armlet_Of_Prisoner
- set lhz_boss,8;
+ lhz_boss = 8;
getitem 7348,1; //Indication_Of_Member01
changequest 12016,12017;
close;
@@ -7001,7 +7000,7 @@ lighthalzen,179,170,4 script Ordinary Man 4W_M_02,{
mes "to do so much, but ultimately,";
mes "we weren't able to accomplish";
mes "what we set out to do. Still...";
- set lhz_boss,44;
+ lhz_boss = 44;
getitem 617,1; //Old_Violet_Box
getexp (checkre(3))?180000:1800000,0;
completequest 12028;
@@ -7054,7 +7053,6 @@ OnTouch:
mes "awfully familiar...";
mes "But what do I care?)";
close;
-
case 2:
mes "["+strcharinfo(0)+"]";
mes "(This is too weird.";
@@ -7106,7 +7104,7 @@ OnTouch:
mes "Whoever it belonged";
mes "to is gone! What's";
mes "going on here?^000000";
- set lhz_boss,2;
+ lhz_boss = 2;
setquest 12015;
close;
}
@@ -7186,7 +7184,7 @@ yuno_fild04,165,245,4 script Dismal Guy 4_M_ORIENT02,{
mes "you're the one I've been";
mes "waiting here for. Alright,";
mes "just give me a second...";
- set lhz_boss,9;
+ lhz_boss = 9;
close;
case 2:
@@ -7253,7 +7251,7 @@ yuno_fild04,165,245,4 script Dismal Guy 4_M_ORIENT02,{
mes "bring back any information";
mes "he may have for us. Remember,";
mes "because of his position, you can only see him during certain hours.";
- set lhz_boss,10;
+ lhz_boss = 10;
close;
}
else if(lhz_boss == 10)
@@ -7278,7 +7276,7 @@ yuno_fild04,165,245,4 script Dismal Guy 4_M_ORIENT02,{
mes "you'll only be allowed to see";
mes "him from ^FF00008:00 PM to 11:00 PM^000000,";
mes "and from ^FF000011:00 AM to 2:00PM PST^000000.Good luck on this mission, friend.";
- set lhz_boss,11;
+ lhz_boss = 11;
changequest 12017,12018;
close;
}
@@ -7482,7 +7480,7 @@ yuno_pre,69,20,4 script Secretary#1 4_F_LGTGIRL,{
mes "to trouble you. Thank";
mes "you so much for your help.";
delitem 7342,1;
- set lhz_boss,17;
+ lhz_boss = 17;
close;
}
else if(lhz_boss < 21)
@@ -7510,33 +7508,33 @@ yuno_pre,69,20,4 script Secretary#1 4_F_LGTGIRL,{
else if(hg_tre == 56)
{
mes "[Hes O'Neil]";
- mes "The President has given the order that ";
- mes "nobody is allowed to enter this place.";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "However, you will change your mind after listening to my explanation.";
- next;
- mes "[Hes O'Neil]";
- mes "...............";
- mes "Is it something very important?";
- next;
- mes "["+strcharinfo(0)+"]";
- mes "It is the most important thing.";
- next;
- mes "[Hes O'Neil]";
- mes "Alright then, there you go.";
- mes "(Whisper) I hope you will become his source of strength.";
- close2;
- warp "yuno_pre",113,53;
- end;
+ mes "The President has given the order that ";
+ mes "nobody is allowed to enter this place.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "However, you will change your mind after listening to my explanation.";
+ next;
+ mes "[Hes O'Neil]";
+ mes "...............";
+ mes "Is it something very important?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "It is the most important thing.";
+ next;
+ mes "[Hes O'Neil]";
+ mes "Alright then, there you go.";
+ mes "(Whisper) I hope you will become his source of strength.";
+ close2;
+ warp "yuno_pre",113,53;
+ end;
}
else if(hg_tre > 56)
{
mes "[Hes O'Neil]";
mes "The president said that you're welcome to visit him anytime.";
close2;
- warp "yuno_pre",113,53;
- end;
+ warp "yuno_pre",113,53;
+ end;
}
else
{
@@ -7567,7 +7565,7 @@ yuno_pre,95,71,5 script Guard 4_M_EIN_SOLDIER,{
}
else if(lhz_boss == 11 || lhz_boss == 12)
{
- if(lhz_boss == 12) set @visit_pre,rand(1,10);
+ if(lhz_boss == 12) @visit_pre = rand(1,10);
if(@visit_pre == 7)
{
mes "[?????]";
@@ -7610,7 +7608,7 @@ yuno_pre,95,71,5 script Guard 4_M_EIN_SOLDIER,{
mes "[Guard]";
mes "Take care,";
mes "Mr. Keshnaar.";
- set lhz_boss,13;
+ lhz_boss = 13;
disablenpc "A Fine Gentleman";
close;
@@ -7620,7 +7618,7 @@ yuno_pre,95,71,5 script Guard 4_M_EIN_SOLDIER,{
mes "Currently, the president";
mes "is seeing another guest.";
mes "Thank you for your patience.";
- if(lhz_boss == 11) set lhz_boss,12;
+ if(lhz_boss == 11) lhz_boss = 12;
close;
}
else if(lhz_boss == 13)
@@ -7663,7 +7661,7 @@ yuno_pre,95,71,5 script Guard 4_M_EIN_SOLDIER,{
mes "the Rekenber Corporation.";
mes "He often visits the president";
mes "to discuss various issues.";
- set lhz_boss,14;
+ lhz_boss = 14;
close;
}
}
@@ -7851,7 +7849,7 @@ L_Mission:
mes "Alright, give me a second";
mes "to search for this file before";
mes "I explain the mission.";
- set lhz_boss,15;
+ lhz_boss = 15;
close2;
cutin "",255;
end;
@@ -7881,7 +7879,7 @@ L_Mission:
mes "folder to ^FF0000Ms. Hes O'Neil^000000";
mes "for me before you leave.";
mes "Thank you very much.";
- set lhz_boss,16;
+ lhz_boss = 16;
getitem 7342,1; //File01
changequest 12018,12019;
close2;
@@ -7938,7 +7936,7 @@ L_Mission:
mes "say that with pride. L-let";
mes "me check the files a minute...";
delitem 7343,1;
- set lhz_boss,22;
+ lhz_boss = 22;
close2;
cutin "",255;
end;
@@ -7985,8 +7983,8 @@ L_Mission:
mes "to discover Shinokas before";
mes "we can get him to talk.";
changequest 12022,12023;
- if(Shinokas_Quest == 11) set lhz_boss,24;
- else set lhz_boss,23;
+ if(Shinokas_Quest == 11) lhz_boss = 24;
+ else lhz_boss = 23;
close2;
cutin "",255;
end;
@@ -8047,7 +8045,7 @@ L_Mission:
mes "She'll know exactly";
mes "who you are and";
mes "how to help you.";
- set lhz_boss,26;
+ lhz_boss = 26;
completequest 12023;
setquest 12024;
close2;
@@ -8160,7 +8158,7 @@ L_Mission:
mes "new developments in the";
mes "investigation involving";
mes "Shinokas and his secret...";
- set lhz_boss,25;
+ lhz_boss = 25;
close2;
cutin "",255;
end;
@@ -8205,7 +8203,7 @@ L_Mission:
mes "She'll know exactly";
mes "who you are and";
mes "how to help you.";
- set lhz_boss,26;
+ lhz_boss = 26;
completequest 12023;
setquest 12024;
close2;
@@ -8283,7 +8281,7 @@ L_Mission:
mes "received some critically";
mes "important intel to give you.";
delitem 7344,1;
- set lhz_boss,38;
+ lhz_boss = 38;
close2;
cutin "",255;
end;
@@ -8343,7 +8341,7 @@ L_Mission:
mes "know more about how";
mes "all of this happened...";
delitem 7343,1;
- set lhz_boss,40;
+ lhz_boss = 40;
close2;
cutin "",255;
end;
@@ -8375,7 +8373,7 @@ L_Mission:
mes "...Yes, sir.";
mes "Right away.";
next;
- set lhz_boss,42;
+ lhz_boss = 42;
close2;
cutin "",255;
end;
@@ -8480,7 +8478,7 @@ L_Mission:
mes "here too. Go and talk to";
mes "^3355FFGhalstein^000000 again. It's time";
mes "we let you loose, adventurer.";
- set lhz_boss,43;
+ lhz_boss = 43;
completequest 12028;
close2;
cutin "",255;
@@ -8491,8 +8489,8 @@ L_Mission:
mes "[Karl]";
mes ".........";
mes "............";
- for(set .@i,12015; .@i<=12028; set .@i,.@i+1) {
- if (checkquest(.@i) > 0 && checkquest(.@i) < 2)
+ for (.@i = 12015; .@i <= 12028; ++.@i) {
+ if (questprogress(.@i) && questprogress(.@i) != 2)
completequest .@i;
}
close;
@@ -8571,7 +8569,7 @@ L_Mission:
mes "[Karl]";
mes "Thank you so much. ";
mes "You can count on me to right what was wrong.";
- set hg_tre,57;
+ hg_tre = 57;
delitem 7342,1; //File01
getexp (checkre(3))?200000:2000000,0;
getitem 617,1;
@@ -8894,7 +8892,7 @@ aldeba_in,155,240,5 script Kafra Employee#l2 4_F_AGENTKAFRA,{
mes "He's seriously wounded,";
mes "so please hurry before";
mes "the enemy can get to him...";
- set lhz_boss,18;
+ lhz_boss = 18;
changequest 12019,12020;
close;
}
@@ -8970,7 +8968,7 @@ aldeba_in,155,240,5 script Kafra Employee#l2 4_F_AGENTKAFRA,{
mes "sacrifice before we can allow ourselves the luxury of mourning";
mes "our loss. Let me read these files first before you deliver them...";
delitem 7343,1;
- set lhz_boss,20;
+ lhz_boss = 20;
close;
}
else if(lhz_boss == 20)
@@ -8982,7 +8980,7 @@ aldeba_in,155,240,5 script Kafra Employee#l2 4_F_AGENTKAFRA,{
mes "whom I am talking about.";
mes "The Secret Wing is counting";
mes "on you, brave adventurer.";
- set lhz_boss,21;
+ lhz_boss = 21;
getitem 7343,1; //File02
changequest 12021,12022;
next;
@@ -9071,7 +9069,7 @@ lhz_fild02,228,214,0 script Wounded Man 4_M_DIEMAN,{
mes "If you came a little later,";
mes "I'd be a goner. H-here,";
mes "t-take this with you...";
- set lhz_boss,19;
+ lhz_boss = 19;
getitem 7343,1; //File02
changequest 12020,12021;
next;
@@ -9095,7 +9093,6 @@ lhz_fild02,228,214,0 script Wounded Man 4_M_DIEMAN,{
mes "Jargeah just passed";
mes "out in a very ugly way.";
close;
-
case 2:
mes "^3355FFAnd so you left the";
mes "wounded man alone. Not";
@@ -9188,7 +9185,7 @@ lhz_fild01,66,219,4 script Mysterious Woman 4_F_AGENTKAFRA,{
mes "He'll explain everything else,";
mes "so be careful and don't let";
mes "them get suspicious of you!";
- set lhz_boss,27;
+ lhz_boss = 27;
changequest 12024,12025;
close2;
disablenpc "Mysterious Woman";
@@ -9227,7 +9224,7 @@ lhz_fild01,66,219,4 script Mysterious Woman 4_F_AGENTKAFRA,{
mes "have to check on the president";
mes "for me first. Plus, this new";
mes "intel needs to be confirmed...";
- set lhz_boss,37;
+ lhz_boss = 37;
close2;
disablenpc "Mysterious Woman";
end;
@@ -9254,7 +9251,7 @@ lhz_fild01,66,219,4 script Mysterious Woman 4_F_AGENTKAFRA,{
mes "you've got to give this";
mes "file to the president as";
mes "quickly as you can. Hurry!";
- set lhz_boss,39;
+ lhz_boss = 39;
getitem 7343,1;
close2;
disablenpc "Mysterious Woman";
@@ -9333,7 +9330,7 @@ lhz_fild01,66,219,4 script Mysterious Woman 4_F_AGENTKAFRA,{
mes "[Esuna]";
mes "For now, this is";
mes "goodbye. Take care...";
- set lhz_boss,41;
+ lhz_boss = 41;
changequest 12027,12028;
close2;
disablenpc "Mysterious Woman";
@@ -9497,7 +9494,7 @@ lhz_in01,285,169,3 script Researcher#2 4_LGTSCIENCE,{
mes "but you'll only be able to";
mes "stick around for 3 minutes";
mes "at a time. The Secret Archive is to the right of this laboratory.";
- set lhz_boss,28;
+ lhz_boss = 28;
getitem 7349,1; //Indication_Of_Member02
changequest 12025,12026;
next;
@@ -9591,7 +9588,7 @@ lhz_in01,285,169,3 script Researcher#2 4_LGTSCIENCE,{
mes "found her last time. She'll";
mes "know that you're coming.";
delitem 7349,1; //Indication_Of_Member02
- set lhz_boss,36;
+ lhz_boss = 36;
changequest 12026,12027;
close;
}
@@ -9615,7 +9612,7 @@ lhz_in01,187,31,0 script #Sneak HIDDEN_NPC,4,3,{
OnTouch:
if((lhz_boss > 27) && (lhz_boss < 35))
{
- set @sneaktime,gettimetick(0) % 100;
+ @sneaktime = gettimetick(0) % 100;
if((@sneaktime > 10 && @sneaktime < 59) || (@sneaktime < -10 && @sneaktime > -59))
{
mes "^3355FFAs you approach";
@@ -9701,7 +9698,7 @@ L_Enter:
mes "will be automatically sent";
mes "outside for security reasons.";
close2;
- set lhz_boss,29;
+ lhz_boss = 29;
donpcevent "Timer_Sneak::OnEnter";
warp "lhz_in01",177,35;
end;
@@ -9721,7 +9718,7 @@ L_Enter:
mes "screech after you input";
mes "the password. You really";
mes "should try to input it again.^000000";
- set @sneakerror,@sneakerror +1;
+ ++@sneakerror;
next;
if(@sneakerror > 2)
{
@@ -9824,7 +9821,7 @@ L_Search:
mes "Kafra Corporation and";
mes "Cool Event Corp are";
mes "located in Arena 3-2.^000000";
- set lhz_boss,30;
+ lhz_boss = 30;
close;
}
else if(@sneaksearch$ == "shinokas")
@@ -9833,7 +9830,7 @@ L_Search:
mes "Documents regarding";
mes "Shinokas are located";
mes "in Arena 1-5.^000000";
- set lhz_boss,31;
+ lhz_boss = 31;
close;
}
else if((@sneaksearch$ == "stein") || (@sneaksearch$ == "STEIN") || (@sneaksearch$ == "S.T.E.I.N"))
@@ -9865,7 +9862,7 @@ L_Search:
mes "more highly classified files";
mes "on Weierstrass, please use";
mes "a higher security archive.^000000";
- set lhz_boss,32;
+ lhz_boss = 32;
close;
}
else if(@sneaksearch$ == "einbroch")
@@ -9874,7 +9871,7 @@ L_Search:
mes "Documents regarding";
mes "Einbroch are stored";
mes "in Area 6-1.^000000";
- set lhz_boss,33;
+ lhz_boss = 33;
close;
}
else if(@sneaksearch$ == "lighthalzen")
@@ -9883,7 +9880,7 @@ L_Search:
mes "Documents regarding";
mes "Lighthalzen are stored";
mes "in Area 3-3.^000000";
- set lhz_boss,34;
+ lhz_boss = 34;
close;
}
else if(@sneaksearch$ == "rekenber")
@@ -10003,7 +10000,7 @@ lhz_in01,184,40,0 script Area 1-5 HIDDEN_NPC,{
mes "of Ymir's Heart. Apparently,";
mes "a beast from Einbroch folk";
mes "lore inhabited the area...^000000";
- set lhz_boss,35;
+ lhz_boss = 35;
getitem 7344,1;
close;
}
@@ -10280,7 +10277,7 @@ lhz_dun02,282,278,0 script Broken Machine HIDDEN_NPC,{
mes "He was probably right";
mes "not to describe it to you.";
mes "Words alone aren't enough...^000000";
- set lhz_boss,7;
+ lhz_boss = 7;
getitem 7346,1;
close;
@@ -10321,10 +10318,10 @@ sec_in02,17,170,4 script boss::lght_boss_admin 1_M_SIGNMONK,{
break;
case 2:
input .@input,0,1000;
- set lght_boss,.@input;
+ lght_boss = .@input;
break;
case 3:
- set Shinokas_Quest,11;
+ Shinokas_Quest = 11;
close;
}
mes " ";
@@ -10499,7 +10496,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "Damn it! Just... Don't come";
mes "back. I can't work like this...";
next;
- set lhz_rekenber,22;
+ lhz_rekenber = 22;
getexp (checkre(3))?55000:550000,0;
completequest 12013;
cutin "lhz_kaz01",2;
@@ -10584,7 +10581,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "that, can't you? Anyway, you";
mes "can handle those thugs, right?";
next;
- set lhz_rekenber,17;
+ lhz_rekenber = 17;
getexp (checkre(3))?45000:450000,0;
cutin "lhz_kaz10",2;
mes "[Kazien]";
@@ -10676,7 +10673,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "another package destined";
mes "for the Rune-Midgarts Kingdom.";
next;
- set lhz_rekenber,12;
+ lhz_rekenber = 12;
changequest 5005,5006;
getexp (checkre(3))?40000:400000,0;
cutin "lhz_kaz03",2;
@@ -10731,7 +10728,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "he asks you to do, come back";
mes "to me for another job, okay?";
next;
- set lhz_rekenber,8;
+ lhz_rekenber = 8;
changequest 12008,12010;
cutin "lhz_kaz01",2;
mes "[Kazien]";
@@ -10756,7 +10753,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "remember at all. Oooh, I hate";
mes "being this busy, I can't focus!";
next;
- set lhz_rekenber,0;
+ lhz_rekenber = 0;
erasequest 12009;
mes "[Kazien]";
mes "Arrgh, this is not good.";
@@ -10852,7 +10849,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "me! How am I supposed";
mes "to trust you now?";
next;
- set lhz_rekenber,7;
+ lhz_rekenber = 7;
cutin "lhz_kaz06",2;
mes "[Kazien]";
mes "Oh... You...";
@@ -10889,7 +10886,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "Laboratory Guard, but";
mes "he wouldn't even let me in.";
next;
- set lhz_rekenber,6;
+ lhz_rekenber = 6;
changequest 12008,12009;
cutin "lhz_kaz10",2;
mes "[Kazien]";
@@ -10975,7 +10972,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
mes "his order^000000. We pride ourselves";
mes "in our clients' confidentiality, so keep it secret, got it?";
next;
- set lhz_rekenber,3;
+ lhz_rekenber = 3;
changequest 12007,12008;
mes "[Kazien]";
mes "I'll just be waiting";
@@ -11043,7 +11040,7 @@ lhz_in01,174,258,3 script Young Man#reken 4_M_LGTGUARD,{
switch( select( "Yes, of course.","Nope, I love giving away secrets." ) )
{
case 1:
- set lhz_rekenber,2;
+ lhz_rekenber = 2;
mes "[Kazien]";
mes "Great, great.";
mes "I guess we can just";
@@ -11106,7 +11103,7 @@ lighthalzen,141,162,3 script Old Man#reken 4_M_03,{
mes "required for some positions.";
next;
if(!lhz_rekenber) {
- set lhz_rekenber,1;
+ lhz_rekenber = 1;
setquest 12007;
}
mes "[Old Man]";
@@ -11162,7 +11159,7 @@ einbroch,55,52,3 script Laboratory Guard#reken 852,{
mes "working here. Anyway,";
mes "I still can't allow you to";
mes "enter the laboratory.";
- set lhz_rekenber,4;
+ lhz_rekenber = 4;
changequest 12008,12010;
close;
@@ -11174,11 +11171,10 @@ einbroch,55,52,3 script Laboratory Guard#reken 852,{
mes "trouble getting past this";
mes "guard. Otherwise, I might";
mes "never finish this job!^000000)";
- set lhz_rekenber,5;
+ lhz_rekenber = 5;
changequest 12008,12010;
close;
}
-
case 2:
mes "[" + strcharinfo(0) + "]";
mes "Whoa, I'm leaving!";
@@ -11187,7 +11183,7 @@ einbroch,55,52,3 script Laboratory Guard#reken 852,{
mes "trouble getting past this";
mes "guard. Otherwise, I might";
mes "never finish this job!^000000)";
- set lhz_rekenber,5;
+ lhz_rekenber = 5;
changequest 12008,12010;
close;
}
@@ -11276,7 +11272,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "idea, then I don't wanna find";
mes "out for myself. Oh, hey...";
next;
- set lhz_rekenber,20;
+ lhz_rekenber = 20;
getitem 504,1; //White_Potion
cutin "lhz_ryo12",2;
mes "[Lyozien]";
@@ -11310,7 +11306,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "let them damage the packages!";
close2;
cutin "",255;
- set lhz_rekenber,19;
+ lhz_rekenber = 19;
donpcevent "#bully2::OnEnter";
donpcevent "Man#Lyozien::OnStop";
end;
@@ -11342,7 +11338,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "boxes, I don't ever wanna";
mes "disappoint him, you know?";
next;
- set lhz_rekenber,18;
+ lhz_rekenber = 18;
cutin "lhz_ryo10",2;
mes "[Lyozien]";
mes "Anyway, that's";
@@ -11384,7 +11380,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "to know. Man, it's good";
mes "that you're working for us.";
mes "Those thugs frighten me...";
- set lhz_rekenber,16;
+ lhz_rekenber = 16;
cutin "lhz_ryo01",2;
mes "[Lyozien]";
mes "Now I feeel much more secure.";
@@ -11433,7 +11429,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "or that the packages must";
mes "be destroyed. Boy, I sure";
mes "am glad that you're here!";
- set lhz_rekenber,14;
+ lhz_rekenber = 14;
close2;
cutin "",255;
end;
@@ -11468,7 +11464,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "sure they don't get them!";
close2;
cutin "",255;
- set lhz_rekenber,13;
+ lhz_rekenber = 13;
donpcevent "Man#Lyozien::OnStop";
donpcevent "#bully1::OnEnter";
end;
@@ -11521,7 +11517,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "sort of situation, right? You";
mes "know, embarassing orders...";
next;
- set lhz_rekenber,11;
+ lhz_rekenber = 11;
changequest 12011,12012;
cutin "lhz_ryo01",2;
mes "[Lyozien]";
@@ -11604,7 +11600,7 @@ airplane_01,96,48,3 script Man#Lyozien 4_M_LGTGUARD,{
mes "to go to Izlude, find Mr. Ahman";
mes "at the Airport, and tell him that his orders have safely arrived.";
next;
- set lhz_rekenber,9;
+ lhz_rekenber = 9;
changequest 12010,12011;
cutin "lhz_ryo11",2;
mes "[Lyozien]";
@@ -11678,7 +11674,7 @@ OnStop:
mes "time to relax on the Airship.";
mes "Oh, and don't worry, I'll";
mes "take care of the packages.";
- set lhz_rekenber,21;
+ lhz_rekenber = 21;
close;
}
else if (lhz_rekenber > 15 && lhz_rekenber < 20)
@@ -11723,7 +11719,7 @@ OnStop:
mes "I had some idea of what";
mes "they were up to, really.";
next;
- set lhz_rekenber,15;
+ lhz_rekenber = 15;
mes "[Ahman]";
mes "For now, you should";
mes "go and report to Lyozien.";
@@ -11809,7 +11805,7 @@ OnStop:
mes "worry about it. Thank you for";
mes "notifying me about the delivery.^FFFFFF ^000000 Now, you should go back and ";
mes "tell Lyozien. Take care now~";
- set lhz_rekenber,10;
+ lhz_rekenber = 10;
changequest 12012,12013;
close;
}
@@ -11827,21 +11823,21 @@ airplane_01,1,1,1 script #bully1 -1,{
OnInit:
disablenpc "#bully1";
end;
-
+
OnEnter:
enablenpc "#bully1";
initnpctimer;
monster "airplane_01",96,53,"Thug",1592,1,"#bully1::OnMyMobDead";
monster "airplane_01",87,47,"Thug",1592,1,"#bully1::OnMyMobDead";
- set .bullymobs,2;
+ .bullymobs = 2;
end;
-
+
OnReset:
killmonster "airplane_01","#bully1::OnMyMobDead";
end;
OnMyMobDead:
- set .bullymobs,.bullymobs -1;
+ --.bullymobs;
if(.bullymobs < 1)
{
mes "[Bully]";
@@ -11856,7 +11852,7 @@ OnMyMobDead:
stopnpctimer;
}
end;
-
+
OnTimer120000:
donpcevent "#bully1::OnReset";
donpcevent "#bully1::OnInit";
@@ -11870,22 +11866,22 @@ airplane_01,2,2,1 script #bully2 -1,{
OnInit:
disablenpc "#bully2";
end;
-
+
OnEnter:
enablenpc "#bully2";
initnpctimer;
monster "airplane_01",96,53,"Thug",1592,1,"#bully2::OnMyMobDead";
monster "airplane_01",87,47,"Thug",1592,1,"#bully2::OnMyMobDead";
monster "airplane_01",97,43,"Thug",1592,1,"#bully2::OnMyMobDead";
- set .bullymobs,3;
+ .bullymobs = 3;
end;
-
+
OnReset:
killmonster "airplane_01","#bully2::OnMyMobDead";
end;
OnMyMobDead:
- set .bullymobs,.bullymobs -1;
+ --.bullymobs;
if(.bullymobs < 1)
{
mes "^3355FFHey-- there's a slit";
@@ -11899,7 +11895,7 @@ OnMyMobDead:
stopnpctimer;
}
end;
-
+
OnTimer120000:
donpcevent "#bully2::OnReset";
donpcevent "#bully2::OnInit";
@@ -11910,7 +11906,7 @@ OnTimer120000:
airplane_01,99,47,3 script #packidentity HIDDEN_WARP_NPC,2,2,{
end;
-
+
OnInit:
disablenpc "#packidentity";
end;
@@ -11961,7 +11957,7 @@ OnTouch:
mes "[Kazien]";
mes "Answer me! Answer me! Answer meee!";
next;
- set lhz_rekenber,23;
+ lhz_rekenber = 23;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes ".............Damn it.";
@@ -11997,7 +11993,7 @@ OnTouch:
mes "is world peace if I'm not even";
mes "alive to enjoy it, huh?";
next;
- set lhz_rekenber,23;
+ lhz_rekenber = 23;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "......";
@@ -12014,7 +12010,7 @@ airplane_01,10,10,3 script #LyozienSwitch HIDDEN_NPC,{
mes "Input password.";
mes "Enter 0 to cancel.";
next;
- set .@i, callfunc("F_GM_NPC",1028,0,0,4000);
+ .@i = callfunc("F_GM_NPC",1028,0,0,4000);
if (.@i == -2) {
mes "[Lyozien Switch]";
mes "Incorrect.";
@@ -12033,11 +12029,11 @@ airplane_01,10,10,3 script #LyozienSwitch HIDDEN_NPC,{
next;
switch(select("On:OFF")) {
case 1:
- set .@str$,"activated";
+ .@str$ = "activated";
donpcevent "Man#Lyozien::OnEnable";
break;
case 2:
- set .@str$,"deactivated";
+ .@str$ = "deactivated";
donpcevent "Man#Lyozien::OnDisable";
break;
}
diff --git a/npc/quests/quests_louyang.txt b/npc/quests/quests_louyang.txt
index d928aefd6..789c3b447 100644
--- a/npc/quests/quests_louyang.txt
+++ b/npc/quests/quests_louyang.txt
@@ -60,7 +60,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -73,7 +73,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -86,7 +86,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -104,7 +104,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -148,7 +148,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -162,7 +162,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -176,7 +176,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -194,7 +194,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -244,7 +244,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -258,7 +258,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -272,7 +272,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -291,7 +291,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -377,7 +377,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
warp "louyang",280,161;
close;
}
@@ -392,7 +392,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
warp "louyang",280,161;
close;
}
@@ -407,7 +407,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
warp "louyang",280,161;
close;
}
@@ -426,7 +426,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
warp "louyang",280,161;
close;
}
@@ -437,12 +437,12 @@ OnTouch:
lou_fild01,195,177,5 script Jiu Lian Bu#1-1 4_M_CHN8GUEK,{
//Remove outdated variables and attempt to preserve prior quest progress.
- if (QL_ACCEPTSOUP) set ch_tre,1;
- if (QL_GOTDRAGONSOUP) set ch_tre,2;
- if (QL_GOTFAKESOUP) set ch_tre,3;
- if (QL_SOUPQUEST) set ch_tre,4;
- if (QL_SOUP2) set ch_tre,5;
- set QL_ACCEPTSOUP,0; set QL_GOTDRAGONSOUP,0; set QL_GOTFAKESOUP,0; set QL_SOUPQUEST,0; set QL_SOUP2,0;
+ if (QL_ACCEPTSOUP) ch_tre = 1;
+ if (QL_GOTDRAGONSOUP) ch_tre = 2;
+ if (QL_GOTFAKESOUP) ch_tre = 3;
+ if (QL_SOUPQUEST) ch_tre = 4;
+ if (QL_SOUP2) ch_tre = 5;
+ QL_ACCEPTSOUP = 0; QL_GOTDRAGONSOUP = 0; QL_GOTFAKESOUP = 0; QL_SOUPQUEST = 0; QL_SOUP2 = 0;
if (ch_tre == 0) {
mes "[Jiu Lian Bu]";
@@ -512,7 +512,7 @@ lou_fild01,195,177,5 script Jiu Lian Bu#1-1 4_M_CHN8GUEK,{
next;
mes "[Jiu Lian Bu]";
mes "When you finally steal the broth, make sure you bring it without spilling any. Okay? Good luck~";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
mes "[Jiu Lian Bu]";
@@ -551,7 +551,7 @@ lou_fild01,195,177,5 script Jiu Lian Bu#1-1 4_M_CHN8GUEK,{
mes "Ohhhh man....";
mes "This is soooo not Dragon Soup Broth. Sorry, but would you go";
mes "and try to get it again?";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
else if (ch_tre == 3) {
@@ -574,7 +574,7 @@ lou_fild01,195,177,5 script Jiu Lian Bu#1-1 4_M_CHN8GUEK,{
next;
mes "[Jiu Lian Bu]";
mes "Good job, chum! Heh heh heh, because you risked your neck for me, I'm gonna show you an awesome place! Just follow me~";
- set ch_tre,4;
+ ch_tre = 4;
close2;
warp "lou_fild01",180,170;
end;
@@ -668,7 +668,7 @@ lou_fild01,175,173,3 script Jiu Lian Bu#1-2 4_M_CHN8GUEK,{
mes "[Jiu Lian Bu]";
mes "So from now on, whenever you";
mes "wanna relieve yourself of stress, come see me and we'll come back to this place. Call it my way of saying thanks.";
- set ch_tre,5;
+ ch_tre = 5;
close;
}
else if (ch_tre == 5) {
@@ -754,10 +754,10 @@ lou_in02,50,185,5 script Pot#1 HIDDEN_NPC,{
mes "away from this restaurant";
mes "without getting caught...^000000";
if (rand(1,4) < 4) {
- set ch_tre,2;
+ ch_tre = 2;
}
else {
- set ch_tre,3;
+ ch_tre = 3;
}
close;
}
@@ -826,10 +826,10 @@ lou_in02,49,185,5 script Pot#2 HIDDEN_NPC,{
mes "away from this restaurant";
mes "without getting caught...^000000";
if (rand(1,4) < 4) {
- set ch_tre,2;
+ ch_tre = 2;
}
else {
- set ch_tre,3;
+ ch_tre = 3;
}
close;
}
@@ -904,7 +904,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -918,7 +918,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -932,7 +932,7 @@ OnTouch:
next;
mes "^3131FFYou have failed^000000";
mes "^3131FFto steal the pot.^000000";
- set ch_tre,1;
+ ch_tre = 1;
close;
}
}
@@ -1111,7 +1111,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
next;
mes "[Hua Tuo]";
mes "If pressed the wrong way, it can cause death. But between 5:15 am and 7:15 am, it's just a weak point.";
- set ch_par,1;
+ ch_par = 1;
close;
}
else if (ch_par == 1) {
@@ -1193,7 +1193,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
mes "I am sorry for causing you";
mes "so much trouble, but if you'll excuse me, I have other patients waiting. Please hurry back with";
mes "the medicine!";
- set ch_par,2;
+ ch_par = 2;
setquest 11044;
close;
}
@@ -1283,7 +1283,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
mes "This medicine is not that";
mes "great, but it's an old family secret. I hope it will be useful to you if you find yourself in great danger.";
delitem 7252,1; //Herb_Medicine
- set ch_par,10;
+ ch_par = 10;
completequest 11056;
getitem 679,2; //Gold_Pill
getexp (checkre(3))?1000:10000,0;
@@ -1323,7 +1323,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
mes "^3355FF20 Brown Root^000000,";
mes "^3355FF10 Sprout^000000 and";
mes "^3355FF5 Honey Pot^000000.";
- set ch_par,17;
+ ch_par = 17;
changequest 11056,11057;
close;
}
@@ -1402,7 +1402,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
mes "It's not much, but this medicine";
mes "is an old family secret. I hope that it will be of use to you in dangerous situations.";
delitem 7252,1; //Herb_Medicine
- set ch_par,10;
+ ch_par = 10;
completequest 11056;
getitem 679,2; //Gold_Pill
getexp (checkre(3))?1000:10000,0;
@@ -1433,7 +1433,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
mes "^3355FF20 Brown Root^000000,";
mes "^3355FF10 Sprout^000000 and";
mes "^3355FF5 Honey Pot^000000.";
- set ch_par,17;
+ ch_par = 17;
close;
}
else if (ch_par == 17) {
@@ -1457,7 +1457,7 @@ lou_in02,265,69,5 script Doctor#lyang 4_F_CHNDOCTOR,{
delitem 7193,10; //Germinating_Sprout
delitem 7121,5; //Honey_Jar
delitem 7252,1; //Herb_Medicine
- set ch_par,18;
+ ch_par = 18;
completequest 11057;
getitem 679,5; //Gold_Pill
getexp (checkre(3))?10000:30000,0;
@@ -1506,7 +1506,7 @@ lou_in02,272,55,0 script Familiar-Looking Patient 4_M_NFMAN,{
mes "Ummm....";
mes "^666666*Cough...cough...*^000000";
emotion e_omg;
- set ch_par,1;
+ ch_par = 1;
close;
}
else if (ch_par < 18) {
@@ -1555,7 +1555,7 @@ lou_in02,248,166,2 script Tool Shop Master#lou 4_M_CHNOLD,{
mes "[Wang Chuiyi]";
mes "You can find the storage on";
mes "the opposite side of this building. There, you'll see a guy named Jiang Xiayou. Go ahead and ask him for the stuff you need.";
- set ch_par,3;
+ ch_par = 3;
changequest 11044,11045;
close;
}
@@ -1661,25 +1661,25 @@ lou_in02,201,166,4 script Storage Keeper#lou 4_M_CHN8GUEK,{
mes "[Jiang Xiayou]";
mes "This is important,";
mes "So don't forget this.";
- set .@paper_j,rand(10,13);
+ .@paper_j = rand(10,13);
if (.@paper_j == 10) {
mes "When the guy asks what you need, you tell him: '^ff0000Residence Transfer Application^000000.' Just like that.";
- set ch_par,5;
+ ch_par = 5;
changequest 11045,11046;
}
else if (.@paper_j == 11) {
mes "When the guy asks what you need, you tell him: '^ff0000Summer SAT Class Application^000000.' Got it?";
- set ch_par,6;
+ ch_par = 6;
changequest 11045,11047;
}
else if (.@paper_j == 12) {
mes "When the guy asks what you need, you tell him: '^ff0000Sandy Dust Phenomenon Report^000000.' Easy, right?";
- set ch_par,7;
+ ch_par = 7;
changequest 11045,11048;
}
else if (.@paper_j == 13) {
mes "When the guy asks what you need, you tell him: '^ff0000Communication Proposal^000000.' Just like that?";
- set ch_par,8;
+ ch_par = 8;
changequest 11045,11049;
}
next;
@@ -1695,7 +1695,7 @@ lou_in02,201,166,4 script Storage Keeper#lou 4_M_CHN8GUEK,{
mes "[Jiang Xiayou]";
mes "The medicines you're looking for might be around here, so look around. If it weren't for the doctor, I wouldn't even let you hang around, you know that?";
emotion e_pif;
- set ch_par,4;
+ ch_par = 4;
changequest 11045,11050;
close;
}
@@ -1811,7 +1811,7 @@ lou_in02,201,166,4 script Storage Keeper#lou 4_M_CHN8GUEK,{
mes "[Jiang Xiayou]";
mes "Ah! Here you go. Even if it was kind of annoying to do, I guess";
mes "we gotta help each other, right? Alright then, I'll see ya around.";
- set ch_par,16;
+ ch_par = 16;
changequest 11055,11056;
getitem 7252,1; //Herb_Medicine
close;
@@ -1887,19 +1887,19 @@ lou_in02,210,47,0 script City Hall Officer#lou 4_M_CHNSOLDIER,{
mes "^333333When you go up stairs, another officer will give you the document you want.^000000 ^666666*Ahem*^000000 Louyang thanks you!";
Zeny -= .@input;
if (ch_par == 5) {
- set ch_par,11;
+ ch_par = 11;
changequest 11046,11051;
}
else if (ch_par == 6) {
- set ch_par,12;
+ ch_par = 12;
changequest 11047,11052;
}
else if (ch_par == 7) {
- set ch_par,13;
+ ch_par = 13;
changequest 11048,11053;
}
else if (ch_par == 8) {
- set ch_par,14;
+ ch_par = 14;
changequest 11049,11054;
}
close;
@@ -2078,19 +2078,19 @@ lou_in02,156,38,0 script Studying Officer#lou 4_M_CHNMAN,{
switch (ch_par) {
case 11:
if (.@input$ == "Residence Transfer Application")
- set .@paper,1;
+ .@paper = 1;
break;
case 12:
if (.@input$ == "Summer SAT Class Application")
- set .@paper,1;
+ .@paper = 1;
break;
case 13:
if (.@input$ == "Sandy Dust Phenomenon Report")
- set .@paper,1;
+ .@paper = 1;
break;
case 14:
if (.@input$ == "Communication Proposal")
- set .@paper,1;
+ .@paper = 1;
break;
}
mes "[Huang Zhishu]";
@@ -2125,9 +2125,9 @@ lou_in02,156,38,0 script Studying Officer#lou 4_M_CHNMAN,{
mes "[Huang Zhishu]";
mes "Here it is. A few days ago, someone asked me for the same document,";
mes "so I was able to find it again pretty easily. I hope it's useful to you.";
- set ch_par,15;
- for(set .@i,11051; .@i<=11054; set .@i,.@i+1) {
- if (checkquest(.@i) > -1 && checkquest(.@i < 2))
+ ch_par = 15;
+ for (.@i = 11051; .@i <= 11054; ++.@i) {
+ if (questprogress(.@i) && questprogress(.@i) != 2)
completequest .@i;
}
setquest 11055;
@@ -2169,7 +2169,7 @@ lou_in02,204,169,0 script Supply Stack#1lou HIDDEN_NPC,{
mes "*Rummage rummage*";
mes "*Rummage rummage*";
mes "You found a medicine.^000000";
- set ch_par,9;
+ ch_par = 9;
changequest 11050,11056;
getitem 7252,1; //Herb_Medicine
next;
@@ -2219,7 +2219,7 @@ lou_in02,207,168,0 script Supply Stack#5lou HIDDEN_NPC,{
mes "*Rummage rummage*";
mes "*Rummage rummage*";
mes "You found a medicine.^000000";
- set ch_par,9;
+ ch_par = 9;
changequest 11050,11056;
getitem 7252,1; //Herb_Medicine
next;
@@ -2271,7 +2271,7 @@ lou_in02,206,163,0 script Supply Stack#4lou HIDDEN_NPC,{
mes "*Rummage rummage*";
mes "*Rummage rummage*";
mes "You found a medicine.^000000";
- set ch_par,9;
+ ch_par = 9;
changequest 11050,11056;
getitem 7252,1; //Herb_Medicine
next;
@@ -2323,7 +2323,7 @@ lou_in02,198,170,0 script Supply Stack#3lou HIDDEN_NPC,{
mes "*Rummage rummage*";
mes "*Rummage rummage*";
mes "You found a medicine.^000000";
- set ch_par,9;
+ ch_par = 9;
changequest 11050,11056;
getitem 7252,1; //Herb_Medicine
next;
@@ -2375,7 +2375,7 @@ lou_in02,192,170,0 script Supply Stack#2 HIDDEN_NPC,{
mes "*Rummage rummage*";
mes "*Rummage rummage*";
mes "You found a medicine.^000000";
- set ch_par,9;
+ ch_par = 9;
changequest 11050,11056;
getitem 7252,1; //Herb_Medicine
next;
@@ -2417,11 +2417,11 @@ lou_in02,203,159,0 warp Storage Warp#4 1,1,louyang,129,118
lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
// Attempt to preserve prior quest progress.
if (ch_poison == 0 && CL_POISONKING != 0) {
- if (QL_POISONKING <= 12) set ch_poison,QL_POISONKING;
- else if (QL_POISONKING == 16) set ch_poison,19;
- else if (QL_POISONKING >= 17) set ch_poison,20;
+ if (QL_POISONKING <= 12) ch_poison = QL_POISONKING;
+ else if (QL_POISONKING == 16) ch_poison = 19;
+ else if (QL_POISONKING >= 17) ch_poison = 20;
// Remove outdated variable.
- set QL_POISONKING,0;
+ QL_POISONKING = 0;
}
if (checkweight(1201,1) == 0) {
mes "^3355FF * Wait a minute! *";
@@ -2473,18 +2473,18 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "mind helping me";
mes "memorize this poem...";
next;
- set .@question_poet,rand(1,4);
+ .@question_poet = rand(1,4);
if (.@question_poet == 1) {
mes "[Nagash Arses]";
mes "'^3355FFAs I lay^000000 ^3355FFlooking up at the moonlight^000000.' In this first line, what word should be in [ ]?";
next;
if (select("on the ground:with you:in bed:in the stars") == 3)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "Now to see if you see really understand the poem. It's no use to just know the words. They must be a part of you as well.";
next;
@@ -2492,20 +2492,20 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "How would you describe the overall mood and tone of the speaker of this poem?";
next;
if (select("Romantic:Wistful:Regretful:Passionate") == 2)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "What do you think is the";
mes "major theme of this poem?";
next;
if (select("Tragedy:Separation:Love:Revenge:Buddy Cop Film") == 2)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Ha ha ha! You understand this poem well! Now, would you repeat the first line for me again?";
next;
if (.@answer_poet > 30) {
if (select("When I lay in bed looking up at the moon light:When I lay in bed thinking of the moon light:As I lay in bed looking up at the moonlight:As I lay in bed thinking of the moonlight") == 3) {
- set ch_poison,2;
+ ch_poison = 2;
}
}
else {
@@ -2524,12 +2524,12 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "'^3355FFI lower my head feeling^000000 [ ].' Which word should be in [ ]?";
next;
if (select("homesick.:drowsy:loneliness.:heartbroken.") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Now to see if you see really understand the poem. It's no use to just know the words. To know this poem by heart is to truly take it to heart.";
@@ -2541,19 +2541,19 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "gazing at the moon?";
next;
if (select("In his hometown.:In jail.:In the depths of the cosmos.:In bed.") == 4)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "Although this poem is only four lines long, its structure can be easily classified. How would you describe this poem's structure?";
next;
if (select("Why, it's a sonnet.:It's prose with erratic caesuras.:It's a quatrain, of course.:Iambic pentameter?") == 3)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Ha ha ha! You understand this poem well! Now, would you repeat the first line for me again?";
next;
if (.@answer_poet > 30) {
if (select("It looks like the frost on the ground:It looks like an icicle on the ground:It looks as though shining:It looks like the frost in the sky") == 1) {
- set ch_poison,2;
+ ch_poison = 2;
}
}
else {
@@ -2572,13 +2572,13 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "'^3355FFIt looks like the^000000 ^3355FFon the ground^000000.' In the second line, which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "'^3355FFI lower my head feeling^000000 [ ].' Which word should be in [ ]?";
next;
if (select("homesick.:drowsy:loneliness.:heartbroken.") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Now to see if you see really understand the poem. It's not enough to just know the words. You must know what they truly mean.";
@@ -2587,19 +2587,19 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "In the first two lines, what two images are being linked by the poet?";
next;
if (select("Bed and ground:Frost and hometown:Gloomy:Smokey:Moonlight and frost") == 5)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
mes "[Nagash Arses]";
mes "In this land, the image of the moon often appears in poems expressing separation, longing and homesickness. Why would gazing at the moon offer comfort?";
next;
if (select("The rabbit on the moon grants wishes.:Its sheer beauty eases any anxiety.:Because it wanes and waxes.:All places and peoples share the same moon.") == 4)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Ha ha ha! You understand this poem well! Now, would you repeat the third line for me again?";
next;
if (.@answer_poet > 30) {
if (select("I look up at the bright moon:I lift my head to look at the bright moon:I turn my head to look at the bright moon:I face the bright moon") == 2) {
- set ch_poison,2;
+ ch_poison = 2;
}
}
else {
@@ -2619,13 +2619,13 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "which word should be in [ ]?";
next;
if (select("frost:dew:pebbles:snow") == 1)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "'^3355FFI lift my^000000 ^3355FFto look at the bright moon^000000.' In the third line, which word should be in [ ]?";
next;
if (select("eyes:head:gaze:sights") == 2)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Now to see if you see really understand the poem. It's no";
@@ -2635,20 +2635,20 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "What do you think is the major theme of this poem?";
next;
if (select("Tragedy:Separation:Love:Revenge:Buddy Cop Film") == 2)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Why might be one reason why the bright moonlight looks like frost on the ground to the poet?";
next;
if (select("He's looking through a frosty window.:A bright moon glimmers like icicles.:He's homesick, so the moonlight looks cold:It's called 'poetic license.'") == 3)
- set .@answer_poet,.@answer_poet + 10;
+ .@answer_poet += 10;
next;
mes "[Nagash Arses]";
mes "Ha ha ha! You understand this poem well! Now, would you repeat the last line for me again?";
next;
if (.@answer_poet > 30) {
if (select("I cry for my home town.:I lower my head feeling homesick.:I miss my home town.:I sob feeling homesick.") == 2) {
- set ch_poison,2;
+ ch_poison = 2;
}
}
else {
@@ -2823,7 +2823,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "home town. I miss the heat";
mes "of the desert and the glare";
mes "of the blazing sun...";
- set ch_poison,3;
+ ch_poison = 3;
close;
}
else {
@@ -2914,7 +2914,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "[Nagash Arses]";
mes "Go find my last disciple,";
mes "^0000FFSong Zhi Du^000000, as he may tell you something useful. He's working at the doctor's office. If it weren't for him, I'd be starving now.";
- set ch_poison,5;
+ ch_poison = 5;
setquest 11070;
close;
}
@@ -3005,7 +3005,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "[Nagash Arses]";
mes "Even to this day, the police are hounding after me. I really want to tell the lord of Louyang that I'm innocent, but it may be";
mes "too late now...";
- set ch_poison,4;
+ ch_poison = 4;
close;
}
else {
@@ -3072,7 +3072,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "Let's not talk about this any longer. It's reminding me of";
mes "my worst memories.";
next;
- set ch_poison,1;
+ ch_poison = 1;
if (BaseClass == Job_Thief) {
mes "[Nagash Arses]";
mes "Ah, you look just like I did when";
@@ -3198,7 +3198,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "Will you...";
mes "Will you excuse";
mes "me for a second...?";
- set ch_poison,15;
+ ch_poison = 15;
changequest 11077,11078;
close;
}
@@ -3284,7 +3284,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "For my sake, as well";
mes "as that of my disciple,";
mes "Louyang's leader must live...";
- set ch_poison,16;
+ ch_poison = 16;
changequest 11078,11079;
close;
}
@@ -3315,7 +3315,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
mes "^3355FFYou obtained";
mes "^0000FFPoison King,";
mes "Nagash Arses' Jounal^000000.";
- set ch_poison,18;
+ ch_poison = 18;
changequest 11080,11081;
close;
}
@@ -3357,7 +3357,7 @@ lou_in02,123,39,4 script Poison King#lou 4_M_CHNOLD,{
next;
mes "^3355FFYou grow dizzy, but you also feel like you're becoming more powerful and gaining experience.^000000";
next;
- set ch_poison,20;
+ ch_poison = 20;
changequest 11082,11083;
if (checkre(3)) {
if (BaseLevel < 56) getexp 1050,0;
@@ -3419,7 +3419,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
}
else {
if (rand(1,4) > 2) {
- set .@r_o_o_f,.@r_o_o_f + 1;
+ ++.@r_o_o_f;
mes "[Song Zhi Du]";
mes "Let's see, there's that medicine, and then the medicine over here...";
next;
@@ -3593,7 +3593,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "Go do whatever";
mes "you were going to do.";
mes "I'm just disappointed...";
- set ch_poison,6;
+ ch_poison = 6;
changequest 11070,11071;
close;
}
@@ -3610,7 +3610,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
next;
mes "[Song Zhi Du]";
mes "Since my body is so frail, I can't bear the tension and rage of seeing my lifelong enemy face to face.";
- set ch_poison,8;
+ ch_poison = 8;
changequest 11070,11073;
close;
}
@@ -3639,7 +3639,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "10 Venom Canine,";
mes "10 Empty Potion,";
mes "30 Green Potion^000000.";
- set ch_poison,7;
+ ch_poison = 7;
changequest 11071,11072;
next;
mes "[Song Zhi Du]";
@@ -3652,7 +3652,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "make you understand how I feel.";
specialeffect EF_ENDURE;
close2;
- set ch_poison,6;
+ ch_poison = 6;
changequest 11070,11071;
end;
}
@@ -3668,7 +3668,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
delitem 937,10; //Posionous_Canine
delitem 1093,10; //Empty_Potion
delitem 506,30; //Green_Potion
- set ch_poison,8;
+ ch_poison = 8;
changequest 11072,11073;
mes "[Song Zhi Du]";
mes "Ah...";
@@ -3755,7 +3755,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
emotion e_omg;
mes "[Song Zhi Du]";
mes "No!! I failed again! ^666666*Sigh...*^000000 And I spent a long time preparing all of those materials...";
- set ch_poison,10;
+ ch_poison = 10;
changequest 11074,11075;
close;
}
@@ -3845,7 +3845,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "I made it!";
mes "Now, revenge will be mine!";
next;
- set ch_poison,11;
+ ch_poison = 11;
getitem 678,2; //Poison_Bottle
mes "[Song Zhi Du]";
mes "Hahaha! Now, please";
@@ -3941,7 +3941,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "Hahaha...!";
mes "Master, I did it!";
mes "Your disciple Song Zhi Du made the world's deadliest poison for you!";
- set ch_poison,12;
+ ch_poison = 12;
changequest 11075,11076;
close;
}
@@ -3997,7 +3997,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "[Song Zhi Du]";
mes "But before you go, let me give you some poison and a medicinal pill.";
mes "I made these with the leftover materials and medicine in the storage.";
- set ch_poison,14;
+ ch_poison = 14;
getitem 678,3; //Poison_Bottle
next;
mes "[Song Zhi Du]";
@@ -4074,7 +4074,7 @@ lou_in02,253,45,0 script Employee#poison 4_M_CHNMAN,{
mes "Also, I hope you will";
mes "take these, since I don't";
mes "need them any longer.";
- set ch_poison,21;
+ ch_poison = 21;
completequest 11083;
getitem 678,5; //Poison_Bottle
next;
@@ -4184,7 +4184,7 @@ lou_fild01,224,348,0 script Lady#delivery 4_F_CHNDRESS3,{
mes "please bring this to";
mes "Song Zhi Du.";
mes "Take care!";
- set ch_poison,9;
+ ch_poison = 9;
changequest 11073,11074;
close;
}
@@ -4347,7 +4347,7 @@ lou_in01,107,163,0 script #lou_drink1 HIDDEN_NPC,{
next;
mes "^3355FFYou put the deadly poison into the bottle.^000000";
delitem 678,1; //Poison_Bottle
- set ch_poison,13;
+ ch_poison = 13;
changequest 11076,11077;
close;
}
@@ -4360,7 +4360,7 @@ lou_in01,107,163,0 script #lou_drink1 HIDDEN_NPC,{
mes "^3355FFYou take the drink bottle and replace it with a bottle filled with Sticky Mucus. Hopefully Bai Long won't notice!^000000";
delitem 938,1; //Sticky_Mucus
delitem 713,1; //Empty_Bottle
- set ch_poison,17;
+ ch_poison = 17;
changequest 11079,11080;
close;
}
@@ -4463,7 +4463,7 @@ lou_in01,99,158,4 script Lord#bailong 4_M_CHNGENERL,{
next;
mes "[Lord Bai Long]";
mes "Please, take this as a token of gratitute. And please deliver this letter to Nagash and Song Zhi Du for me.";
- set ch_poison,19;
+ ch_poison = 19;
changequest 11081,11802;
getitem 603,1; //Old_Blue_Box
next;
@@ -4635,13 +4635,13 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
mes "I understand if you need time to decide. If you do decide to join us, please return. Time is on our side, after all.";
close;
case 2:
- set QL_REVOL,1;
+ QL_REVOL = 1;
mes "[Sun Mao]";
mes strcharinfo(0)+ "...!";
mes "Your name is now engraved on this bloody pledge board. We will fight together to the death for Louyang's future!";
next;
getpartymember(getcharid(1));
- set @partymember,$@partymembercount;
+ @partymember = $@partymembercount;
if (getpartyleader(getcharid(1),1) == getcharid(0) || !@partymember) {
mes "[Sun Mao]";
mes "Now, the most important thing for our cause is to gather more recruits and increase our numbers. Please find others who will join us in our fight.";
@@ -4675,11 +4675,11 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
close;
}
getpartymember(getcharid(1));
- set @partymember,$@partymembercount;
+ @partymember = $@partymembercount;
if (QL_REVOL < 8) {
if (@partymember == QL_REVOL +1) {
if (@partymember != 8) {
- set QL_REVOL,QL_REVOL +1;
+ QL_REVOL += 1;
mes "[Sun Mao]";
mes "Oh, you brought a new comrade! Welcome. Please help your friend understand our intentions before joining us.";
next;
@@ -4749,7 +4749,7 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
mes "[Sun Mao]";
mes "Since flammable chemicals are not allowed inside government offices, you must keep them well hidden. If the chemicals are equally divided among the eight of you, we might succeed!";
next;
- set QL_REVOL,8;
+ QL_REVOL = 8;
getitem 7068,8; //Burn_Tree
getitem 7096,8; //Cold_Magma
getitem 7004,8; //Mud_Lump
@@ -4821,8 +4821,8 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
mes "Finally, we have a weapon to mete out severe retribution to our enemies, the corrupt government officials and the evil martial arts organizations! I appreciate your help, comrades.";
next;
delitem 7204,countitem(7204);
- set ch_make,0;
- set QL_REVOL,9;
+ ch_make = 0;
+ QL_REVOL = 9;
getitem 668,8;
mes "[Sun Mao]";
mes "Please take these funds and share them with your party members. I hope that all of you will lend your power to our cause once again.";
@@ -4847,7 +4847,7 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
}
} else {
if (ch_make == 1) {
- set ch_make,0;
+ ch_make = 0;
mes "[Sun Mao]";
mes "Ah...";
mes "You have";
@@ -4867,7 +4867,7 @@ lou_in02,77,37,7 script Hermit 4_M_CHNOLD,{
lou_in01,43,147,3 script Gunpowder Expert 4_M_ALCHE_C,{
if (ch_make == 0) {
getpartymember(getcharid(1));
- set @partymember,$@partymembercount;
+ @partymember = $@partymembercount;
if (!QL_REVOL) {
mes "[Hao Chenryu]";
mes "Who...";
@@ -4887,7 +4887,7 @@ lou_in01,43,147,3 script Gunpowder Expert 4_M_ALCHE_C,{
mes "Mao's plans are flawless,";
mes "so I'm sticking to the scenario he's drawn up. You're either improvising needlessly, or you're not really my comrade...";
close;
- } else if (countitem(7068) && countitem(7096) && countitem(7004)) {
+ } else if (countitem(7068) && countitem(7096) && countitem(7004)) {
mes "[Hao Chenryu]";
mes "Ah, I see that Mao";
mes "has sent you. I'm sorry";
@@ -4908,7 +4908,7 @@ lou_in01,43,147,3 script Gunpowder Expert 4_M_ALCHE_C,{
delitem 7004,1; //Mud_Lump
mes "[Hao Chenryu]";
mes "I don't want you to be caught if the soldiers inspect your goods. It will be better if one of you carry a Cart and hide the gunpowder in there.";
- set ch_make,1;
+ ch_make = 1;
getitem 7204,1; //Gunpowder
close;
case 2:
diff --git a/npc/quests/quests_morocc.txt b/npc/quests/quests_morocc.txt
index 45ed535f8..77708ab31 100644
--- a/npc/quests/quests_morocc.txt
+++ b/npc/quests/quests_morocc.txt
@@ -666,13 +666,13 @@ que_job01,49,49,5 script Tao#dan_09 4_F_YUNYANG,{
que_job01,51,55,0 script que_job01#room_1 WARPNPC,1,1,{
OnReset:
- set $@maobar_room,0;
+ $@maobar_room = 0;
end;
OnTouch:
if (prt_curse == 24) {
if ($@maobar_room == 0) {
- set $@maobar_room,1;
+ $@maobar_room = 1;
donpcevent " #room1timer::OnEnable";
donpcevent "Marjana#poison::OnEnable";
mes "[Tao]";
@@ -697,7 +697,7 @@ OnTouch:
}
else if (mao_request > 0) {
if ($@maobar_room == 0) {
- set $@maobar_room,1;
+ $@maobar_room = 1;
donpcevent " #room1timer::OnEnable";
donpcevent "Valdes#moc_master_1::OnEnable";
mes "[Tao]";
@@ -946,14 +946,14 @@ moc_fild20,354,183,3 script Continental Guard#01::MocConGuard 4_M_MOC_SOLDIER,3,
case 2:
if ($@re_moc < 3) {
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
+ .@partymembercount = $@partymembercount;
copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
while (.@partymembercount >= 0) {
- set .@name$,.@partymembername$[.@partymembercount];
+ .@name$ = .@partymembername$[.@partymembercount];
if (isloggedin(getcharid(3,.@name$))) {
- set .@onlinemembers,.@onlinemembers + 1;
+ ++.@onlinemembers;
}
- set .@partymembercount,.@partymembercount - 1;
+ --.@partymembercount;
}
if ((.@onlinemembers > 1) && (countitem(7826) > 0)) {
mes "[Continental Guard]";
@@ -1009,14 +1009,14 @@ moc_fild20,354,183,3 script Continental Guard#01::MocConGuard 4_M_MOC_SOLDIER,3,
mes "Ah, you're an adventurer working for the Continental Guard. Nice to meet you. Feel free to ask me if you need my assistance.";
next;
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
+ .@partymembercount = $@partymembercount;
copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
while (.@partymembercount >= 0) {
- set .@name$,.@partymembername$[.@partymembercount];
+ .@name$ = .@partymembername$[.@partymembercount];
if (isloggedin(getcharid(3,.@name$))) {
- set .@onlinemembers,.@onlinemembers + 1;
+ ++.@onlinemembers;
}
- set .@partymembercount,.@partymembercount - 1;
+ --.@partymembercount;
}
switch(select("Enter the First Field to Investigate:Enter the Second Field to Investigate:Return to Morroc's Accident Site:Cancel Conversation")) {
case 1:
@@ -1117,12 +1117,12 @@ moc_fild20,203,336,5 duplicate(MocConGuard) Continental Guard#07 4_M_MOC_SOLDIER
moc_fild20,215,336,3 duplicate(MocConGuard) Continental Guard#08 4_M_MOC_SOLDIER,3,3
- script Continental Messenger#00::ConMessenger 4_M_MOCASS1,3,3,{
- set .@area$,strnpcinfo(2);
- if (.@area$ == "01") { set .@area$,"Prontera"; }
- else if (.@area$ == "02") { set .@area$,"Geffen"; }
- else if (.@area$ == "03") { set .@area$,"Payon"; }
- else if (.@area$ == "04") { set .@area$,"Alberta"; }
- else if (.@area$ == "05") { set .@area$,"Al De Baran"; }
+ .@area$ = strnpcinfo(2);
+ if (.@area$ == "01") { .@area$ = "Prontera"; }
+ else if (.@area$ == "02") { .@area$ = "Geffen"; }
+ else if (.@area$ == "03") { .@area$ = "Payon"; }
+ else if (.@area$ == "04") { .@area$ = "Alberta"; }
+ else if (.@area$ == "05") { .@area$ = "Al De Baran"; }
if (BaseLevel > 79) {
mes "[Continental Guard Messenger]";
mes "Good day, "+ strcharinfo(0) +". We don't have the luxury of time in this dire situation so I'll try to make this quick.";
@@ -1247,7 +1247,7 @@ morocc,176,103,3 script Continental Official 4_M_SAGE_A,{
next;
mes "[Continental Guard Official]";
mes "Now please go speak to Chief Balrog of the Continental Guard. You can find him in the center.";
- set rebirth_moc_edq,1;
+ rebirth_moc_edq = 1;
setquest 3050;
close;
}
@@ -1397,7 +1397,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
case 2:
mes "[Chief Balrog]";
mes "Excellent! Bring back ^0000FF30 Live Coals^000000. I'll be waiting for your return.";
- set rebirth_moc_edq,2;
+ rebirth_moc_edq = 2;
changequest 3050,3051;
close;
}
@@ -1479,7 +1479,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "[Chief Balrog]";
mes "Please bring me ^0000FF50 Glacial Hearts^000000. The faster you get them here, the better.";
delitem 7098,30; //Live_Coal
- set rebirth_moc_edq,3;
+ rebirth_moc_edq = 3;
changequest 3051,3052;
close;
}
@@ -1505,7 +1505,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Well... It looks like you earned this.";
delitem 7561,50; //Ice_Heart
getitem 7826,1; //Continental_Guard_Paper
- set rebirth_moc_edq,4;
+ rebirth_moc_edq = 4;
changequest 3052,3053;
next;
mes "[" + strcharinfo(0) + "]";
@@ -1617,7 +1617,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
next;
delitem 7820,1; //Morroc_Skin
getexp (checkre(3))?200000:2000000,0;
- set rebirth_moc_edq,7;
+ rebirth_moc_edq = 7;
changequest 3055,3056;
mes "[Chief Balrog]";
mes "I've prepared a few things to give as a reward for you. Let's see... I have three items. Which one do you like to receive?";
@@ -1639,7 +1639,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with the Seal of Continental Guard. Congratulations.";
next;
getitem 2730,1; //Morroc_Seal
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1671,7 +1671,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with a Morroc Charm Stone. Congratulations.";
next;
getitem 2731,1; //Morroc_Charm_Stone
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1703,7 +1703,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with a Morroc Ring. Congratulations.";
next;
getitem 2732,1; //Morroc_Ring
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1751,7 +1751,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with the Seal of Continental Guard. Congratulations.";
next;
getitem 2730,1; //Morroc_Seal
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1783,7 +1783,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with a Morroc Charm Stone. Congratulations.";
next;
getitem 2731,1; //Morroc_Charm_Stone
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1815,7 +1815,7 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
mes "Great, then I'll reward you with a Morroc Ring. Congratulations.";
next;
getitem 2732,1; //Morroc_Ring
- set rebirth_moc_edq,8;
+ rebirth_moc_edq = 8;
completequest 3056;
mes "[Chief Balrog]";
mes "I hope you keep in mind that our battle is far from over. Our enemy is the king of demons... I fear that Satan Morroc will return someday soon.";
@@ -1859,13 +1859,13 @@ morocc,159,113,3 script Chief Balrog 4_M_CRU_OLD,{
moc_fild21,38,193,0 script Morocc Timer#edq -1,6,6,{
//OnInit:
-// set $@re_moc,0;
-// set $@re_moc_time$,"";
+// $@re_moc = 0;
+// $@re_moc_time$ = "";
// end;
OnTouch:
if ($@re_moc == 0) {
- set $@re_moc,1;
+ $@re_moc = 1;
donpcevent "Satan Broadcast#edq::OnEnable";
}
end;
@@ -1909,7 +1909,7 @@ moc_fild21,178,239,0 script Group of Evil#edq CLEAR_NPC,1,1,{
mes "Wah...!";
close2;
if($@re_moc == 1) {
- set $@re_moc,2;
+ $@re_moc = 2;
donpcevent "Satan Summon#edq::OnEnable";
}
end;
@@ -1927,7 +1927,7 @@ OnInit:
OnEnable:
enablenpc "Group of Evil#edq";
- set $@re_moc_time$,"";
+ $@re_moc_time$ = "";
end;
OnDisable:
@@ -1944,7 +1944,7 @@ moc_fild21,177,239,0 script Time-Space Gap#edq CLEAR_NPC,1,1,{
next;
mes "You stretch your hand and pick up a lusterless fragment.";
getitem 7820,1; //Morroc_Skin
- set rebirth_moc_edq,6;
+ rebirth_moc_edq = 6;
changequest 3053,3055;
close;
}
@@ -1968,16 +1968,16 @@ OnDisable:
stopnpctimer;
disablenpc "Time-Space Gap#edq";
donpcevent "Group of Evil#edq::OnEnable";
- set $@re_moc,0;
+ $@re_moc = 0;
end;
OnTimer1800000:
- set $@re_moc,4;
+ $@re_moc = 4;
end;
OnTimer21600000:
stopnpctimer;
- set $@re_moc,0;
+ $@re_moc = 0;
donpcevent "Time-Space Gap#edq::OnDisable";
end;
}
@@ -1996,13 +1996,13 @@ OnEnable:
OnDisable:
stopnpctimer;
killmonster "moc_fild21","Satan Summon#edq::OnMyMobDead";
- set $@re_moc,0;
+ $@re_moc = 0;
disablenpc "Satan Summon#edq";
end;
OnMyMobDead:
- set $@re_moc,3;
- set $@re_moc_time$, gettimestr("%H%M%S",7);
+ $@re_moc = 3;
+ $@re_moc_time$ = gettimestr("%H%M%S",7);
mapannounce "moc_fild21","I'll let live just a little longer. You'll never find me through this time-space gap!",bc_map,"0xFFFF00";
donpcevent "Time-Space Gap#edq::OnEnable";
donpcevent "Satan Broadcast#edq::OnDisable";
@@ -2018,7 +2018,7 @@ OnTimer5415000:
mapannounce "moc_fild21","I don't have time for this! Go away!",bc_map,"0xFFFF00";
stopnpctimer;
killmonster "moc_fild21","Satan Summon#edq::OnMyMobDead";
- set $@re_moc,0;
+ $@re_moc = 0;
donpcevent "Satan Summon#edq::OnDisable";
end;
}
@@ -2235,7 +2235,7 @@ moc_ruins,137,70,3 script Book-Touching Man#garas 1_M_02,{
mes "[Benjamin]";
mes "Thank you so much! Then remember this title: 'The Crow of the Fate' written by 'Oliver Hilpert.' I'm sure you can find it in Prontera Library.";
mes "Hehehe, Mammi! I'm almost there!";
- set barmunt_crow,1;
+ barmunt_crow = 1;
setquest 2063;
close;
case 2:
@@ -2337,7 +2337,7 @@ moc_ruins,137,70,3 script Book-Touching Man#garas 1_M_02,{
}
mes "^660000Quickly blinking his eyes, he made you take Mammi's picture book in your arms";
mes "demanding that you must encase the book so it would not be damaged.^000000";
- set barmunt_crow,11;
+ barmunt_crow = 11;
getitem 7795,1; //Mami_Photo_Album
next;
mes "[Benjamin]";
@@ -2395,7 +2395,7 @@ moc_ruins,137,70,3 script Book-Touching Man#garas 1_M_02,{
mes "I'm going to see her tomorrow as soon as the morning comes! Mammi, I'm coming!";
delitem 7797,1; //Author_Memo
delitem 7796,1; //Author_Autograph
- set barmunt_crow,16;
+ barmunt_crow = 16;
if (checkre(3))
getexp 90000,90000;
else
@@ -2528,7 +2528,7 @@ prt_in,179,92,3 script Library Curator#garas 1_M_LIBRARYMASTER,{
mes "Well, Juno is quite far from here, but if you're really enthusiastic about reading such a popular book, it should be worthwile.";
next;
mes "^660000The book isn't for you, but you believe in 100% customer satisfaction. Let's go to Juno Library now.^000000";
- set barmunt_crow,2;
+ barmunt_crow = 2;
changequest 2063,2064;
close;
case 2:
@@ -2644,7 +2644,7 @@ yuno,333,210,5 script Library Master#garas 1_M_LIBRARYMASTER,{
next;
mes "^660000He sounded sincere, but it doesn't sound like that kind of broth would even be effective...^000000";
emotion e_dots,1;
- set barmunt_crow,3;
+ barmunt_crow = 3;
close;
}
else {
@@ -2744,7 +2744,7 @@ OnTouch:
next;
mes "^660000He sounded sincere, but it doesn't sound like that kind of broth would even be effective...^000000";
emotion e_dots,1;
- set barmunt_crow,3;
+ barmunt_crow = 3;
close;
}
end;
@@ -2864,7 +2864,7 @@ yuno_in04,100,5,3 script Hot Bestseller Corner HIDDEN_NPC,{
mes "^FF0000-- BEEP --^000000";
next;
mes "^660000You were about to pull out the book, complaining and grumbling, when suddenly it felt as if your brain exploded. You black out...^000000";
- set barmunt_crow,4;
+ barmunt_crow = 4;
close2;
specialeffect2 EF_BASH3D2;
warp "que_ba",247,33;
@@ -2969,7 +2969,7 @@ OnTouch2:
next;
mes "'^660000Now I wonder if the scene is describing an accident that really happened in the past. If there was such big fire, I'm sure I can verify it in a newspaper.";
mes "...I just want to know it out of curiosity...^000000'";
- set barmunt_crow,7;
+ barmunt_crow = 7;
changequest 2064,2065;
close;
}
@@ -2992,7 +2992,7 @@ yuno_in04,117,102,3 script Old News Scrapbook CLEAR_NPC,{
next;
mes "...................................";
next;
- set .@newspp,rand(1,10);
+ .@newspp = rand(1,10);
if ((.@newspp == 1) || (.@newspp == 2)) {
mes "- Page 1 -";
mes "Renowned Assassin Sieglinde: 'I serve you only.'";
@@ -3072,7 +3072,7 @@ yuno_in04,117,102,3 script Old News Scrapbook CLEAR_NPC,{
mes "["+ strcharinfo(0) +"]";
mes "I can't believe this is happening!";
mes "Think hard... It was ^FF0000an area connected to a northern cave^000000.";
- set barmunt_crow,8;
+ barmunt_crow = 8;
changequest 2065,2066;
close;
}
@@ -3195,7 +3195,7 @@ yuno_in04,169,123,3 script Suspicious Man#oliver_h 4_M_ATEIL,{
close2;
specialeffect2 EF_ENHANCE;
delitem 7795,1; //Mami_Photo_Album
- set barmunt_crow,14;
+ barmunt_crow = 14;
getitem 7796,1; //Author_Autograph
getitem 7797,1; //Author_Memo
getitem 617,1; //Old_Violet_Box
@@ -3321,7 +3321,7 @@ yuno_in04,169,123,3 script Suspicious Man#oliver_h 4_M_ATEIL,{
next;
mes "["+ strcharinfo(0) +"]";
mes "That was pretty fun, but also pretty tiring. Where should I head for my next adventure?";
- set barmunt_crow,15;
+ barmunt_crow = 15;
completequest 2068;
close2;
cutin "",255;
@@ -3527,7 +3527,7 @@ yuno_in04,167,120,3 script Worn-out Book#garas HIDDEN_NPC,{
mes "[Oliver Hilpert]";
mes "Okay... I see...";
emotion e_sob;
- set barmunt_crow,13;
+ barmunt_crow = 13;
close2;
cutin "",255;
end;
@@ -3565,7 +3565,7 @@ yuno_in04,167,120,3 script Worn-out Book#garas HIDDEN_NPC,{
close2;
specialeffect2 EF_ENHANCE;
delitem 7795,1; //Mami_Photo_Album
- set barmunt_crow,14;
+ barmunt_crow = 14;
getitem 7796,1; //Author_Autograph
getitem 7797,1; //Author_Memo
getitem 617,1; //Old_Violet_Box
@@ -3699,7 +3699,7 @@ OnTouch:
mes "[Male]";
mes "Eva!! We don't have time to save all of them! Come here!";
if (barmunt_crow == 4) {
- set barmunt_crow,5;
+ barmunt_crow = 5;
}
sc_start SC_BLIND,600000,0,10000;
close2;
@@ -3743,7 +3743,7 @@ OnTouch:
mes "^660000They seemed completely oblivious of your presence, and headed north.^000000";
next;
mes "^660000You were looking at their backs as they left, and then noticed that you were holding the book you were reading in your hands. Then....^000000";
- set barmunt_crow,6;
+ barmunt_crow = 6;
specialeffect2 EF_FLASHER;
close2;
warp "yuno_in04",100,3;
@@ -3790,7 +3790,7 @@ OnTouch:
next;
mes "^660000He could not finish his words before flames swallowed him up. At the same time, you were...^000000";
specialeffect EF_METEORSTORM;
- set barmunt_crow,12;
+ barmunt_crow = 12;
close2;
warp "yuno_in04",108,57;
}
@@ -3959,7 +3959,7 @@ cave,82,97,3 script Cave Settler#g1 4_M_CAVE1,3,3,{
next;
mes "^660000The stern-looking man examined you, and then stepped to the side, allowing you to pass.";
mes "You clenched your fists in nervousness, and then started up the dark stairwell.^000000";
- set barmunt_crow,9;
+ barmunt_crow = 9;
close2;
warp "cave",82,105;
end;
@@ -4048,7 +4048,7 @@ OnTouch:
next;
mes "^660000The stern-looking man examined you, and then stepped to the side, allowing you to pass.";
mes "You clenched your fists in nervousness, and then started up the dark stairwell.^000000";
- set barmunt_crow,9;
+ barmunt_crow = 9;
close2;
warp "cave",82,105;
end;
@@ -4200,7 +4200,7 @@ cave,22,186,3 script Monsterous Man#zid 4_M_MUT1,{
next;
break;
case 4:
- set .@exitloop,1;
+ .@exitloop = 1;
break;
}
if (.@exitloop) break;
@@ -4247,7 +4247,7 @@ cave,22,186,3 script Monsterous Man#zid 4_M_MUT1,{
mes "^660000Zid turned his head away from you. You're still not sure if all of this is really happening. It's all so surreal...^000000";
next;
mes "^660000Frustrated by the conversation with Zid, you have decided to go back to Morroc and forget everything.^000000";
- set barmunt_crow,10;
+ barmunt_crow = 10;
changequest 2066,2067;
close;
}
@@ -4354,7 +4354,7 @@ prontera,153,353,4 script Messenger#prince1 8W_SOLDIER,{
mes "The King's position cannot";
mes "be empty for too long.";
mes "Now, the debate over selecting our next King is actively in progress. Please give us a hand with this, for the tomorrow of Rune Midgarts.";
- set nk_prince,1;
+ nk_prince = 1;
setquest 10000;
close;
case 2:
@@ -4386,7 +4386,7 @@ prontera,153,353,4 script Messenger#prince1 8W_SOLDIER,{
mes "Please...Please...";
mes "Lend a hand for the future";
mes "of the Rune Midgarts kingdom.";
- set nk_prince,1;
+ nk_prince = 1;
setquest 10000;
close;
}
@@ -4421,7 +4421,7 @@ prontera,153,353,4 script Messenger#prince1 8W_SOLDIER,{
mes "you have to do in court.";
mes "I hope you will help bring";
mes "peace to Rune Midgarts.";
- set nk_prince,1;
+ nk_prince = 1;
setquest 10000;
close;
}
@@ -4453,7 +4453,7 @@ prontera,153,353,4 script Messenger#prince1 8W_SOLDIER,{
}
prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
- if (checkquest(10004) == 0 || checkquest(10004) == 1) {
+ if (questprogress(10004) == 1) {
mes "[Inspector]";
mes "Judge!";
mes "How goes it? I don't think it is easy to meet seven candidates and appraise them.";
@@ -4549,13 +4549,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Strength and characteristics of the monster.:Efficiency of the hunt.:What we can get from the hunt.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4564,13 +4564,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Keep fighting until we can do it.:Find a new place and try differently.:Stop hunting and replenish.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4578,13 +4578,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Share it as agreed prior.:I don't want to care for sharing.:Give it to the member that needs it.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4593,13 +4593,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Priest, healer class.:Hunter, damage dealer.:Lord Knight, tanker.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4607,13 +4607,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("A strong person.:An experienced person.:A kind person.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4622,13 +4622,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Relationships with people.:Plenty of information gathering.:Discernment and driving force.")) {
case 1:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4636,13 +4636,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Refer to a past failure.:Hesitating is the worst thing.:You are not alone.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4651,13 +4651,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Growth of oneself.:World peace.:The pursuit of truth.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@int,.@int+10;
+ .@int += 10;
break;
}
mes "[Inspector]";
@@ -4667,13 +4667,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Map:Flint:Weapon")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4681,13 +4681,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Love story.:Heroic epic.:Religious tale.")) {
case 1:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@int,.@int+10;
+ .@int += 10;
break;
}
mes "[Inspector]";
@@ -4697,13 +4697,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Attack first.:Observe from a distance.:Flee away.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4712,13 +4712,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Dominate countries by reinforcing militia.:Advancement of economy and technology.:Keep public security firm.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4803,7 +4803,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "[Inspector]";
mes "Ah, you've spent a long time with me. You must be very tired. Before starting work, if you need some preparation, take off now and come back to me later. I will be waiting here for you.";
next;
- set nk_prince,4;
+ nk_prince = 4;
changequest 10000,10003;
close;
}
@@ -4824,7 +4824,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "bring 2 ^ff0000Reins^000000.";
mes "If you can do this mission,";
mes "I will respect your strength.";
- set nk_prince,2;
+ nk_prince = 2;
changequest 10000,10001;
next;
mes "[Inspector]";
@@ -4850,7 +4850,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "[Inspector]";
mes "Alright, good. You proved your strength for yourself. Now you passed one exam. All but one.";
delitem 1064,2; //Reins
- set nk_prince,3;
+ nk_prince = 3;
changequest 10001,10002;
next;
mes "[Inspector]";
@@ -4887,13 +4887,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Strength and characteristics of the monster.:Efficiency of the hunt.:What we can get from the hunt.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4902,13 +4902,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Keep fighting until we can do it.:Find a new place and try differently.:Stop hunting and replenish.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4916,13 +4916,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Share it as agreed prior.:I don't want to care for sharing.:Give it to the member that needs it.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4931,13 +4931,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Priest, healer class.:Hunter, damage dealer.:Lord Knight, tanker.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4945,13 +4945,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("A strong person.:An experienced person.:A kind person.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4960,13 +4960,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Relationships with people.:Plenty of information gathering.:Discernment and driving force.")) {
case 1:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -4974,13 +4974,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Refer to a past failure.:Hesitating is the worst thing.:You are not alone.")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -4989,13 +4989,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Growth of oneself.:World peace.:The pursuit of truth.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@int,.@int+10;
+ .@int += 10;
break;
}
mes "[Inspector]";
@@ -5005,13 +5005,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Map:Flint:Weapon")) {
case 1:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 2:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 3:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
}
mes "[Inspector]";
@@ -5019,13 +5019,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Love story.:Heroic epic.:Religious tale.")) {
case 1:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
case 2:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 3:
- set .@int,.@int+10;
+ .@int += 10;
break;
}
mes "[Inspector]";
@@ -5035,13 +5035,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Attack first.:Observe from a distance.:Flee away.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -5050,13 +5050,13 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Dominate countries by reinforcing militia.:Advancement of economy and technology.:Keep public security firm.")) {
case 1:
- set .@brave,.@brave+10;
+ .@brave += 10;
break;
case 2:
- set .@int,.@int+10;
+ .@int += 10;
break;
case 3:
- set .@solid,.@solid+10;
+ .@solid += 10;
break;
}
mes "[Inspector]";
@@ -5141,7 +5141,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "[Inspector]";
mes "Ah, you've spent a long time with me. You must be very tired. Before starting work, if you need some preparation, take off now and come back to me later. I will be waiting here for you.";
next;
- set nk_prince,4;
+ nk_prince = 4;
changequest 10002,10003;
close;
}
@@ -5176,7 +5176,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "[Inspector]";
mes "So this time, the Court decided to change its ways, giving the opportunity to appraise the candidates to famous and devoted adventurers like yourself. That's why you are here.";
next;
- set .@prince,1;
+ .@prince = 1;
break;
case 2:
mes "[Inspector]";
@@ -5215,7 +5215,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "[Inspector]";
mes "Please behave accordingly.";
mes "Thanks for your effort.";
- set nk_prince,5;
+ nk_prince = 5;
completequest 10003;
setquest 10005;
setquest 10006;
@@ -5243,7 +5243,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
mes "How is it going?";
mes "Grading someone is not a piece of cake. It's real hard work indeed. You do the hard work for our country.";
next;
- if ((nkprince_eisen == 15) && (checkquest(10025) == 0 || checkquest(10025) == 1)) {
+ if (nkprince_eisen == 15 && questprogress(10025) == 1) {
mes "-I tell him about the Ahrum and Ernst accident.-";
next;
mes "[Inspector]";
@@ -5283,7 +5283,7 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
else if (BaseLevel >= 99) getexp 1100000,0;
else getexp 300000,0;
}
- set nk_prince,8;
+ nk_prince = 8;
completequest 10025;
close;
}
@@ -5308,14 +5308,8 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
next;
switch(select("Yes.:No.")) {
case 1:
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if (.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7 == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
mes "[Inspector]";
mes "Very well.";
mes "I like hearing about the princes.";
@@ -5328,14 +5322,8 @@ prt_castle,117,163,5 script Inspector#prince 4_M_SAGE_C,{
}
close;
case 2:
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if (.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7 == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
mes "[Inspector]";
mes "Don't be coy. I'm sure you have done it already.";
completequest 10004;
@@ -5355,13 +5343,13 @@ prt_castle,272,375,4 script Prince 4_M_SITDOWN,{
mes "lock and key.-";
close;
}
- if (checkquest(10020) == 2) {
+ if (questprogress(10020) == 2) {
mes "[Erich]";
mes "...What bad luck I have!";
mes "But he insists me to be corrupted, knowing how it would be...";
close;
}
- else if (checkquest(10020) == 0 || checkquest(10020) == 1) {
+ else if (questprogress(10020) == 1) {
mes "[Erich]";
mes "These days, I have bad luck... Only harrassments happen to me...";
close;
@@ -5392,16 +5380,10 @@ prt_castle,272,375,4 script Prince 4_M_SITDOWN,{
mes "[Erich]";
mes "That's enough.";
mes "You can ask information about me to my servant. I will take a rest.";
- set nk_prince,6;
+ nk_prince = 6;
completequest 10011;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -5417,7 +5399,7 @@ prt_castle,272,375,4 script Prince 4_M_SITDOWN,{
}
prt_castle,274,372,4 script Servant#hans 1_M_02,{
- if (checkquest(10020) == 2) {
+ if (questprogress(10020) == 2) {
mes "[Hans]";
mes "Ahh... mmm... I...";
mes "I... am so, sorry!";
@@ -5427,7 +5409,7 @@ prt_castle,274,372,4 script Servant#hans 1_M_02,{
mes "My prince didn't do anything wrong but, anyways, I apologize for anything to you!";
close;
}
- else if (checkquest(10020) == 0 || checkquest(10020) == 1) {
+ else if (questprogress(10020) == 1) {
mes "Incessantly...-";
mes "-He has jitters whenever I react to him. His actions give me a feeling of pity.-";
close;
@@ -5507,7 +5489,7 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
mes "It discomforts me...";
close;
}
- if (checkquest(10021) == 2) {
+ if (questprogress(10021) == 2) {
mes "[Urugen]";
mes " feel very much displeased. Hey, what are you looking at? Get out!";
next;
@@ -5515,7 +5497,7 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
mes "My beautiful body isn't in perfect condition right now. I don't want to show it to anyone today.";
close;
}
- else if (checkquest(10021) == 0 || checkquest(10021) == 1) {
+ else if (questprogress(10021) == 1) {
mes "[Urugen]";
mes "...What? What did you...";
mes "just say to me?... Huh?";
@@ -5559,7 +5541,7 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
next;
mes "[Urugen]";
mes "I became timid, gradually, in phases. I feel awe from men and women both, regardless of sexuality.";
- set .@p_a,1;
+ .@p_a = 1;
next;
break;
case 2:
@@ -5568,7 +5550,7 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
next;
mes "[Urugen]";
mes "The presence of such a gorgeous king like me will be the light for people and the hope and reason for their lives.";
- set .@p_b,1;
+ .@p_b = 1;
next;
break;
case 3:
@@ -5577,7 +5559,7 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
next;
mes "[Urugen]";
mes "In every case, there is an exception, like you in this court. Can you stand away from me a bit more? Because of your odor, I can hardly breathe.";
- set .@p_c,1;
+ .@p_c = 1;
next;
break;
case 4:
@@ -5587,14 +5569,8 @@ prt_castle,339,202,3 script Prince#urgen 4_M_4THPRIN1,{
completequest 10009;
}
completequest 10011;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -5609,14 +5585,14 @@ prt_castle,289,201,3 script Prince#helmut 4_M_5THPRIN1,{
mes "Such an idiot. I should have killed him earlier. Now I feel relieved.";
close;
}
- if (checkquest(10022) == 2) {
+ if (questprogress(10022) == 2) {
mes "[Helmut]";
mes "Damn... Damn it!";
mes "Novice of Walter!!";
mes "How can I deal with this stress? Damn! Hell!";
close;
}
- else if (checkquest(10022) == 0 || checkquest(10022) == 1) {
+ else if (questprogress(10022) == 1) {
mes "-He is so blushed,";
mes "evidently shown on his face.-";
close;
@@ -5668,14 +5644,8 @@ prt_castle,289,201,3 script Prince#helmut 4_M_5THPRIN1,{
mes "[" + strcharinfo(0) + "]";
mes "......";
completequest 10010;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -5713,14 +5683,8 @@ prt_castle,289,201,3 script Prince#helmut 4_M_5THPRIN1,{
mes "[" + strcharinfo(0) + "]";
mes "......";
completequest 10010;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -5758,14 +5722,8 @@ prt_castle,289,201,3 script Prince#helmut 4_M_5THPRIN1,{
mes "[" + strcharinfo(0) + "]";
mes "......";
completequest 10010;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -5806,12 +5764,12 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "Whatever the condition is, he is just a loser in the match of life.";
close;
}
- if (checkquest(10018) == 2) {
+ if (questprogress(10018) == 2) {
mes "[Poe]";
mes "He gave up without any challenge. That's not what the man has to do. He is not as good as me. But okay. I am disappointed in him. Eigen Ahrum.";
close;
}
- else if (checkquest(10018) == 0 || checkquest(10018) == 1) {
+ else if (questprogress(10018) == 1) {
mes "[Poe]";
mes "......";
close;
@@ -5851,7 +5809,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "Ah, of course, 7 is the middle number. 7 means no success or no failure. The goal of this game is to give the right answer 2 times in a row. Let's begin!";
next;
while(.@wincount < 2) {
- set .@card,rand(1,13);
+ .@card = rand(1,13);
mes "[Poe]";
mes "Yes, now choose one";
mes "from higher and lower.";
@@ -5867,7 +5825,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "It is..." + .@card + "!!";
next;
if (.@card > 7) {
- set .@wincount,.@wincount+1;
+ ++.@wincount;
mes "[Poe]";
mes "Whooah, you gave the right answer!";
if (.@wincount == 2) {
@@ -5902,7 +5860,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "It is..." + .@card + "!!";
next;
if (.@card < 7) {
- set .@wincount,.@wincount+1;
+ ++.@wincount;
mes "[Poe]";
mes "Whooah, you gave the right answer!";
if (.@wincount == 2) {
@@ -5962,7 +5920,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "[Poe]";
mes "Hey it's cool, huh?";
mes "We have same tastes, haven't we?";
- set .@p_a,1;
+ .@p_a = 1;
next;
break;
case 2:
@@ -5985,7 +5943,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
mes "Ah, those last words";
mes "are off-the-record.";
mes "I don't want to be bothered by my family.";
- set .@p_b,1;
+ .@p_b = 1;
next;
break;
case 3:
@@ -5998,7 +5956,7 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
next;
mes "[Poe]";
mes "But many say, about my character, that I am addicted to gambling. I am just full of a challenging spirit and I like raking in money! I am a free-spirited normal man.";
- set .@p_c,1;
+ .@p_c = 1;
next;
break;
case 4:
@@ -6008,14 +5966,8 @@ prt_castle,391,205,3 script Prince#poe 4_M_6THPRIN1,{
if (.@p_a + .@p_b + .@p_c == 3) {
completequest 10007;
}
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -6032,7 +5984,7 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
next;
switch(select("Yes, I saw her for you.:No, I don't want to.")) {
case 1:
- if (checkquest(10014) == 0 || checkquest(10014) == 1) {
+ if (questprogress(10014) == 1) {
mes "[Peter]";
mes "I am glad that the girl liked it. Once I got cured, I wanted to go meet with her.";
next;
@@ -6046,7 +5998,7 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
mes "Thinking about the little girl calms me. I still can't believe my eyes. My prince Ahrum who just passed away...~";
close;
case 2:
- if (checkquest(10014) == 0 || checkquest(10014) == 1) {
+ if (questprogress(10014) == 1) {
mes "[Peter]";
mes "As you said.";
mes "I've heard that her life is like a flower when I lost it.";
@@ -6064,25 +6016,25 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
close;
}
}
- if (checkquest(10019) == 2) {
+ if (questprogress(10019) == 2) {
mes "[Peter]";
mes "Child... What the heck happened to you?...";
close;
}
- else if (checkquest(10019) == 0 || checkquest(10019) == 1) {
+ else if (questprogress(10019) == 1) {
mes "[Peter]";
mes "......";
close;
}
- if (checkquest(10008) == 2) {
- set .@quest, checkquest(10014);
+ if (questprogress(10008) == 2) {
+ .@quest = questprogress(10014);
if (.@quest == 2) {
mes "[Peter]";
mes "I really appreciate it.";
mes "You are so kind.";
close;
}
- else if (.@quest == 0 || .@quest == 1) {
+ else if (.@quest == 1) {
mes "[Peter]";
mes "I am glad that the girl liked it. Once I got cured, I wanted to go meet with her.";
next;
@@ -6172,14 +6124,8 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
mes "Please take care.";
getitem 744,1; //Bunch_Of_Flowers
setquest 10013;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -6189,14 +6135,8 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
mes "I know you have your";
mes "own business.";
setquest 10013;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -6208,7 +6148,7 @@ prt_castle,364,375,4 script Prince#peter 4_M_3RDPRIN1,{
}
aldebaran,132,184,3 script Girl#prince 4W_KID,{
- if (checkquest(10013) == 0 || checkquest(10013) == 1) {
+ if (questprogress(10013) == 1) {
if (countitem(744) > 0) {
mes "[Girl]";
mes "Wooah, Uncle Peter sent these flowers";
@@ -6252,7 +6192,7 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
next;
mes "[Ahrum]";
mes "We were close friends. Unlike me, he is kind and compassionate; a distinct official of public affairs. When he has to be strict, he turns strict with everyone.";
- set nkprince_eisen,4;
+ nkprince_eisen = 4;
close;
}
else if (nkprince_eisen == 4) {
@@ -6316,7 +6256,7 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
mes "[Ernst]";
mes "Now, let me return to my room. Keep up the good work, appraiser.";
donpcevent "Prince#another_ern::OnDisable";
- set nkprince_eisen,6;
+ nkprince_eisen = 6;
close;
}
else if (nkprince_eisen == 6) {
@@ -6328,7 +6268,7 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
mes "I worry about your words...";
mes "What do you want to say this time?...";
mes "Have you seen him, appraiser?";
- set nkprince_eisen,7;
+ nkprince_eisen = 7;
changequest 10012,10016;
close;
}
@@ -6366,7 +6306,7 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
next;
mes "[Ahrum]";
mes "I am very sorry, but I want to be left alone. Leave me alone, right now!";
- set nkprince_eisen,9;
+ nkprince_eisen = 9;
close2;
warp "prt_castle",318,273;
end;
@@ -6447,7 +6387,7 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
next;
mes "(dagger thrusting sound)";
specialeffect EF_HIT2;
- set nkprince_eisen,14;
+ nkprince_eisen = 14;
donpcevent "Prince#another_ern::OnDisable";
donpcevent "Prince#another_ern1::OnEnable";
close;
@@ -6536,8 +6476,8 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
mes "[Ernst]";
mes "Brotherrrrrrrr!!!";
next;
- set nkprince_eisen,15;
- set nk_prince,7;
+ nkprince_eisen = 15;
+ nk_prince = 7;
donpcevent "Prince#another_ern1::OnDisable";
changequest 10024,10025;
close2;
@@ -6675,20 +6615,14 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
mes "Okay...";
mes "as you please.";
if (nkprince_eisen == 2) {
- set nkprince_eisen,3;
+ nkprince_eisen = 3;
}
else {
- set nkprince_eisen,1;
+ nkprince_eisen = 1;
}
completequest 10005;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -6698,14 +6632,14 @@ prt_castle,314,373,4 script Prince#eisen 4_M_1STPRIN1,{
}
prt_castle,368,312,4 script Prince#ern 4_M_2NDPRIN1,{
- if (checkquest(10024) == 2) {
+ if (questprogress(10024) == 2) {
mes "[Ernst]";
mes "...brother, if you want...";
mes "...Ah, please leave here.";
mes "I don't want to see anyone.";
close;
}
- else if (checkquest(10024) == 0 || checkquest(10024) == 1) {
+ else if (questprogress(10024) == 1) {
mes "[Ernst]";
mes "...Brother Ahrum...";
close;
@@ -6740,7 +6674,7 @@ prt_castle,368,312,4 script Prince#ern 4_M_2NDPRIN1,{
next;
mes "[Ernst]";
mes "It seems that even brother Ahrum hasn't met with him. Hmm...";
- set nkprince_eisen,7;
+ nkprince_eisen = 7;
changequest 10012,10016;
close;
}
@@ -6752,7 +6686,7 @@ prt_castle,368,312,4 script Prince#ern 4_M_2NDPRIN1,{
next;
mes "[Ernst]";
mes "Hmm...I don't have any more words to say. Moreover, Ahrum seems to be strange these days. I worry about that. I hope it's not a big deal.";
- set nkprince_eisen,10;
+ nkprince_eisen = 10;
changequest 10017,10004;
close;
}
@@ -6868,20 +6802,14 @@ prt_castle,368,312,4 script Prince#ern 4_M_2NDPRIN1,{
mes "[Ernst]";
mes "Yes, then, see you later.";
if (nkprince_eisen == 1) {
- set nkprince_eisen,3;
+ nkprince_eisen = 3;
}
else {
- set nkprince_eisen,2;
+ nkprince_eisen = 2;
}
completequest 10006;
- set .@prin1,checkquest(10005);
- set .@prin2,checkquest(10006);
- set .@prin3,checkquest(10007);
- set .@prin4,checkquest(10008);
- set .@prin5,checkquest(10009);
- set .@prin6,checkquest(10010);
- set .@prin7,checkquest(10011);
- if ((.@prin1 + .@prin2 + .@prin3 + .@prin4 + .@prin5 + .@prin6 + .@prin7) == 14) {
+ if (questprogress(10005) == 2 && questprogress(10006) == 2 && questprogress(10007) == 2 && questprogress(10008) == 2
+ && questprogress(10009) == 2 && questprogress(10010) == 2 && questprogress(10011) == 2) {
setquest 10012;
}
close;
@@ -6960,7 +6888,7 @@ OnTouch:
mes "[" + strcharinfo(0) + "]";
mes "(Is this the conspiracy of two families? What the hell..)";
changequest 10016,10017;
- set nkprince_eisen,8;
+ nkprince_eisen = 8;
close;
}
}
@@ -7068,7 +6996,7 @@ prt_castle,314,371,0 script Prince#another_ern 4_M_2NDPRIN1,{
next;
mes "(dagger thrusting sound)";
specialeffect EF_HIT2;
- set nkprince_eisen,14;
+ nkprince_eisen = 14;
donpcevent "Prince#another_ern::OnDisable";
donpcevent "Prince#another_ern1::OnEnable";
close;
@@ -7135,7 +7063,7 @@ prt_castle,314,371,0 script Prince#another_ern 4_M_2NDPRIN1,{
mes "[Ernst]";
mes "Now, let me return to my room. Keep up the good work, appraiser.";
donpcevent "Prince#another_ern::OnDisable";
- set nkprince_eisen,6;
+ nkprince_eisen = 6;
close;
}
@@ -7235,8 +7163,8 @@ prt_castle,314,372,0 script Prince#another_ern1 4_M_2NDPRIN1,{
mes "[Ernst]";
mes "Brotherrrrrrrr!!!";
next;
- set nkprince_eisen,15;
- set nk_prince,7;
+ nkprince_eisen = 15;
+ nk_prince = 7;
donpcevent "Prince#another_ern1::OnDisable";
changequest 10024,10025;
close2;
@@ -7290,14 +7218,10 @@ prt_castle,272,372,1 script Prince#eisen1 4_M_1STPRIN1,{
mes "[Erich]";
mes "...Nuts.";
completequest 10020;
- set .@er1,checkquest(10018);
- set .@er2,checkquest(10019);
- set .@er3,checkquest(10020);
- set .@er4,checkquest(10021);
- set .@er5,checkquest(10022);
- if ((.@er1 + .@er2 + .@er3 + .@er4 + .@er5) == 10) {
+ if (questprogress(10018) == 2 && questprogress(10019) == 2 && questprogress(10020) == 2
+ && questprogress(10021) == 2 && questprogress(10022) == 2) {
setquest 10023;
- set nkprince_eisen,11;
+ nkprince_eisen = 11;
}
donpcevent "Prince#eisen1::OnDisable";
close;
@@ -7348,14 +7272,10 @@ prt_castle,336,202,7 script Prince#eisen2 4_M_1STPRIN1,{
mes "[Urugen]";
mes "...You are so low. I misjudged you. You are not of the few that have an artistic view. I totally saw you the wrong way.";
completequest 10021;
- set .@er1,checkquest(10018);
- set .@er2,checkquest(10019);
- set .@er3,checkquest(10020);
- set .@er4,checkquest(10021);
- set .@er5,checkquest(10022);
- if ((.@er1 + .@er2 + .@er3 + .@er4 + .@er5) == 10) {
+ if (questprogress(10018) == 2 && questprogress(10019) == 2 && questprogress(10020) == 2
+ && questprogress(10021) == 2 && questprogress(10022) == 2) {
setquest 10023;
- set nkprince_eisen,11;
+ nkprince_eisen = 11;
}
donpcevent "Prince#eisen2::OnDisable";
close;
@@ -7403,14 +7323,10 @@ prt_castle,286,201,7 script Prince#eisen3 4_M_1STPRIN1,{
mes "[Helmut]";
mes "That is... such a villain!!!";
completequest 10022;
- set .@er1,checkquest(10018);
- set .@er2,checkquest(10019);
- set .@er3,checkquest(10020);
- set .@er4,checkquest(10021);
- set .@er5,checkquest(10022);
- if ((.@er1 + .@er2 + .@er3 + .@er4 + .@er5) == 10) {
+ if (questprogress(10018) == 2 && questprogress(10019) == 2 && questprogress(10020) == 2
+ && questprogress(10021) == 2 && questprogress(10022) == 2) {
setquest 10023;
- set nkprince_eisen,11;
+ nkprince_eisen = 11;
}
donpcevent "Prince#eisen3::OnDisable";
close;
@@ -7467,14 +7383,10 @@ prt_castle,388,205,6 script Prince#eisen4 4_M_1STPRIN1,{
mes "What... What. It's not fun.";
mes "I totally couldn't get him.";
completequest 10018;
- set .@er1,checkquest(10018);
- set .@er2,checkquest(10019);
- set .@er3,checkquest(10020);
- set .@er4,checkquest(10021);
- set .@er5,checkquest(10022);
- if ((.@er1 + .@er2 + .@er3 + .@er4 + .@er5) == 10) {
+ if (questprogress(10018) == 2 && questprogress(10019) == 2 && questprogress(10020) == 2
+ && questprogress(10021) == 2 && questprogress(10022) == 2) {
setquest 10023;
- set nkprince_eisen,11;
+ nkprince_eisen = 11;
}
donpcevent "Prince#eisen4::OnDisable";
close;
@@ -7531,14 +7443,10 @@ prt_castle,364,372,1 script Prince#eisen5 4_M_1STPRIN1,{
mes "[Peter]";
mes "......";
completequest 10019;
- set .@er1,checkquest(10018);
- set .@er2,checkquest(10019);
- set .@er3,checkquest(10020);
- set .@er4,checkquest(10021);
- set .@er5,checkquest(10022);
- if ((.@er1 + .@er2 + .@er3 + .@er4 + .@er5) == 10) {
+ if (questprogress(10018) == 2 && questprogress(10019) == 2 && questprogress(10020) == 2
+ && questprogress(10021) == 2 && questprogress(10022) == 2) {
setquest 10023;
- set nkprince_eisen,11;
+ nkprince_eisen = 11;
}
donpcevent "Prince#eisen5::OnDisable";
close;
@@ -7626,7 +7534,7 @@ prt_castle,368,310,1 script Prince#eisen6 4_M_1STPRIN1,{
mes "[Ernst]";
mes "Ahrum... Ahrum...";
changequest 10023,10024;
- set nkprince_eisen,13;
+ nkprince_eisen = 13;
donpcevent "Prince#eisen6::OnDisable";
close;
@@ -7647,11 +7555,11 @@ prt_castle,318,276,0 script #eisen WARPNPC,1,1,{
OnTouch:
if ((nkprince_eisen == 4) || (nkprince_eisen == 5)) {
donpcevent "Prince#another_ern::OnEnable";
- set nkprince_eisen,5;
+ nkprince_eisen = 5;
warp "prt_castle",318,368;
}
else if ((nkprince_eisen == 9) || (nkprince_eisen == 10) || (nkprince_eisen == 11) || (nkprince_eisen == 12)) {
- set .@armkoe,rand(1,4);
+ .@armkoe = rand(1,4);
if (.@armkoe == 1) {
mes "-You can hear Ahrum's voice";
mes "before going into his room";
@@ -7737,7 +7645,7 @@ OnTouch:
prt_castle,336,276,0 script #ern WARPNPC,1,1,{
OnTouch:
- if (checkquest(10023) == 0 || checkquest(10023) == 1) {
+ if (questprogress(10023) == 1) {
donpcevent "Prince#eisen6::OnEnable";
}
warp "prt_castle",368,308;
@@ -7746,7 +7654,7 @@ OnTouch:
prt_castle,300,276,0 script #erich WARPNPC,1,1,{
OnTouch:
- if (checkquest(10020) == 0 || checkquest(10020) == 1) {
+ if (questprogress(10020) == 1) {
donpcevent "Prince#eisen1::OnEnable";
}
warp "prt_castle",274,368;
@@ -7755,7 +7663,7 @@ OnTouch:
prt_castle,330,271,0 script #helmut WARPNPC,1,1,{
OnTouch:
- if (checkquest(10022) == 0 || checkquest(10022) == 1) {
+ if (questprogress(10022) == 1) {
donpcevent "Prince#eisen3::OnEnable";
}
warp "prt_castle",290,208;
@@ -7764,7 +7672,7 @@ OnTouch:
prt_castle,348,271,0 script #poe WARPNPC,1,1,{
OnTouch:
- if (checkquest(10018) == 0 || checkquest(10018) == 1) {
+ if (questprogress(10018) == 1) {
donpcevent "Prince#eisen4::OnEnable";
}
warp "prt_castle",390,208;
@@ -7773,7 +7681,7 @@ OnTouch:
prt_castle,354,276,0 script #peter WARPNPC,1,1,{
OnTouch:
- if (checkquest(10019) == 0 || checkquest(10019) == 1) {
+ if (questprogress(10019) == 1) {
donpcevent "Prince#eisen5::OnEnable";
}
warp "prt_castle",366,368;
@@ -7782,7 +7690,7 @@ OnTouch:
prt_castle,310,271,0 script #urgen WARPNPC,1,1,{
OnTouch:
- if (checkquest(10021) == 0 || checkquest(10021) == 1) {
+ if (questprogress(10021) == 1) {
donpcevent "Prince#eisen2::OnEnable";
}
warp "prt_castle",340,208;
@@ -7837,7 +7745,7 @@ OnTouch:
mes "[" + strcharinfo(0) + "]";
mes "Who is going to have the throne instead of him?";
next;
- set nk_prince,9;
+ nk_prince = 9;
mes "[" + strcharinfo(0) + "]";
mes "Oh no...";
close;
diff --git a/npc/quests/quests_moscovia.txt b/npc/quests/quests_moscovia.txt
index 685010f1a..eeaa34276 100644
--- a/npc/quests/quests_moscovia.txt
+++ b/npc/quests/quests_moscovia.txt
@@ -174,10 +174,10 @@ moscovia,171,71,3 script Berbayeff#npc 4_M_RUSMAN2,{
mes "And on that day,";
mes "I'll definitely go up to that";
mes "island... and verify it with my own eyes!";
- set mos_whale_edq,1;
+ mos_whale_edq = 1;
close;
} else if (mos_whale_edq == 1) {
- set .@speak,rand(1,5);
+ .@speak = rand(1,5);
if (.@speak < 3) {
mes "[Berbayeff]";
mes "Clearly, I want to prove";
@@ -388,7 +388,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "adventure story... eh? ~";
mes "If you ever need anything,";
mes "come talk to me whenever, hahaha!";
- set mos_whale_edq,2;
+ mos_whale_edq = 2;
close;
}
if (mos_whale_edq == 2) {
@@ -441,7 +441,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "When you've prepared all the";
mes "materials, bring them to me. I'll";
mes "repair the ship.";
- set mos_whale_edq,3;
+ mos_whale_edq = 3;
close;
}
emotion e_ag;
@@ -472,7 +472,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
delitem 7317,10; //Screw
delitem 7325,5; //Tube
delitem 7312,10; //Jubilee
- set mos_whale_edq,4;
+ mos_whale_edq = 4;
mes "[Mr. Ibanoff]";
mes "Okay, we are at the ready.";
mes "When would you like to depart?";
@@ -592,7 +592,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "And if you have any plans to go";
mes "back to the island, I want to go";
mes "together with you! Eh? Hahaha!";
- set mos_whale_edq,16;
+ mos_whale_edq = 16;
close;
} else if (mos_whale_edq < 18) {
mes "[Mr. Ibanoff]";
@@ -629,7 +629,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
next;
mes "[Mr. Ibanoff]";
mes "Again, let's get the ship ready and sail before the sun sets!";
- set mos_whale_edq,19;
+ mos_whale_edq = 19;
close;
}
mes "[Mr. Ibanoff]";
@@ -665,7 +665,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "I don't care... Wherever you have";
mes "been, it's very good to see you";
mes "again.";
- set mos_whale_edq,19;
+ mos_whale_edq = 19;
next;
mes "[Mr. Ibanoff]";
mes "I can guess you'd like to go to";
@@ -691,7 +691,7 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "directions. Let's leave";
mes "immediately, as soon as you are";
mes "ready.";
- set mos_whale_edq,33;
+ mos_whale_edq = 33;
close;
} else if (mos_whale_edq < 39) {
mes "[Mr. Ibanoff]";
@@ -743,13 +743,13 @@ moscovia,135,49,5 script Mr. Ibanoff#npc 4_M_RUSBALD,{
mes "[Mr. Ibanoff]";
mes "What's going on?";
mes "You should ride a ship now? Let's ready to leave hurry up.";
- set mos_whale_edq,4;
+ mos_whale_edq = 4;
close;
} else if (mos_whale_edq > 200 && mos_whale_edq < 300) {
mes "[Mr. Ibanoff]";
mes "What's going on?";
mes "You should ride a ship now? Let's ready to leave hurry up.";
- set mos_whale_edq,19;
+ mos_whale_edq = 19;
close;
}
if ((gettime(3) >= 0 && gettime(3) < 3) || (gettime(3) >= 6 && gettime(3) < 9) || (gettime(3) >= 12 && gettime(3) < 15) || (gettime(3) >= 18 && gettime(3) < 21)) {
@@ -809,7 +809,7 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
mes "[Mr. Ibanoff]";
mes "At first, hold the rudder to go";
mes "forward, to the east.";
- set mos_whale_edq,5;
+ mos_whale_edq = 5;
close;
} else if (mos_whale_edq == 5) {
mes "[Mr. Ibanoff]";
@@ -818,13 +818,13 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
mes "East.";
close;
} else if (mos_whale_edq == 6 || mos_whale_edq == 21) {
- set .@r,(mos_whale_edq == 21)?3:4;
+ .@r = (mos_whale_edq == 21)?3:4;
if (rand(1,.@r) == 3) {
mes "[Mr. Ibanoff]";
mes "Hm. The sea currents have changed.";
mes "Adjust the rudder forward to the";
mes "North, to follow the currents.";
- set mos_whale_edq,mos_whale_edq+1;
+ ++mos_whale_edq;
close;
}
mes "[Mr. Ibanoff]";
@@ -862,7 +862,7 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
mes "that... Hey! You...";
mes "Go around the deck to look more";
mes "carefully! Go!";
- set mos_whale_edq,12;
+ mos_whale_edq = 12;
donpcevent "#findship::OnEnable";
close;
} else if (mos_whale_edq == 12) {
@@ -892,7 +892,7 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
mes "[Mr. Ibanoff]";
mes "At first, hold the rudder to go";
mes "forward, to the east.";
- set mos_whale_edq,20;
+ mos_whale_edq = 20;
close;
} else if (mos_whale_edq == 20) {
mes "[Mr. Ibanoff]";
@@ -936,7 +936,7 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
mes "can return without problems.";
mes "I will pray for you.";
mes "See you next time.";
- set mos_whale_edq,30;
+ mos_whale_edq = 30;
close2;
warp "mosk_fild01",93,94;
end;
@@ -952,13 +952,13 @@ mosk_ship,98,110,3 script Mr. Ibanoff#npc2 4_M_RUSBALD,{
S_D_1:
if (rand(1,getarg(0)) == 3) {
- set .@ship2,rand(4);
+ .@ship2 = rand(4);
setarray .@d$[0],"East","West","South","North";
mes "[Mr. Ibanoff]";
mes "Hm. The sea currents have changed.";
mes "Adjust the rudder forward to the";
mes .@d$[.@ship2]+", to follow the currents.";
- set mos_whale_edq,getarg(.@ship2+1);
+ mos_whale_edq = getarg(.@ship2+1);
close;
}
mes "[Mr. Ibanoff]";
@@ -969,7 +969,7 @@ S_D_1:
mes "[Mr. Ibanoff]";
mes "We had better keep sailing on this heading for now.";
close;
-
+
S_D_2:
setarray .@d$[0],"East","West","South","North";
mes "[Mr. Ibanoff]";
@@ -1117,22 +1117,22 @@ mosk_ship,101,111,4 script rudder#ship HIDDEN_NPC,{
mes "I'll forgive you this once, but go";
mes "back now.";
close2;
- //set mos_whale_edq,4; lol, why is this here?
+ //mos_whale_edq = 4; lol, why is this here?
warp "moscovia",162,56;
end;
-
+
S_Rud1:
mes "Which way?";
next;
setarray .@d$[1],"East","West","South","North";
- set .@j, select(implode(.@d$,":")) - 1;
+ .@j = select(implode(.@d$,":")) - 1;
if (.@j == getarg(0)) {
mes "[Mr. Ibanoff]";
mes "Good. Firstly, we should";
mes "keep heading "+strtolower(.@d$[getarg(0)])+" this way.";
mes "When I give the order,";
mes "please adjust the rudder again.";
- if (getarg(1) == 2) set .@r,rand(1,4);
+ if (getarg(1) == 2) .@r = rand(1,4);
if (getarg(1) == 2 && .@r == 3) {
next;
mes "[Mr. Ibanoff]";
@@ -1145,10 +1145,10 @@ S_Rud1:
mes "These monsters are like none I have";
mes "ever encountered! Be careful! We";
mes "must repulse these monsters!";
- set $@mos1_edq,$@mos1_edq+1;
+ ++$@mos1_edq;
donpcevent "Baehideun3#ship::OnEnable";
}
- set mos_whale_edq,(getarg(1) == 2)?((mos_whale_edq >= 241)?((.@r != 3)?26:25):((.@r != 3)?10:11)):mos_whale_edq + 1;
+ mos_whale_edq = (getarg(1) == 2)?((mos_whale_edq >= 241)?((.@r != 3)?26:25):((.@r != 3)?10:11)):mos_whale_edq + 1;
close;
}
mes "[Mr. Ibanoff]";
@@ -1156,13 +1156,13 @@ S_Rud1:
mes "You should sail in the right";
mes "direction! To the "+strtolower(.@d$[getarg(0)])+"!";
if (getarg(1) >= 1) {
- set .@r,(getarg(1) == 1)?5:4;
+ .@r = (getarg(1) == 1)?5:4;
if (rand(1,.@r) <= 2) {
next;
mes "[Mr. Ibanoff]";
mes "Oh no! Monsters have appeared!";
mes "Let's get ready to fight! Hurry!";
- set $@mos1_edq,$@mos1_edq+1;
+ ++$@mos1_edq;
donpcevent "Baehideun1#ship::OnEnable";
}
}
@@ -1261,14 +1261,14 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
mes "You can relax.";
next;
callsub S_AS_3;
- set mos_whale_edq,14;
+ mos_whale_edq = 14;
close2;
sleep2 20000;
- set mos_whale_edq,15;
+ mos_whale_edq = 15;
end;
} else if (mos_whale_edq == 14) {
callsub S_AS_3;
- set mos_whale_edq,15;
+ mos_whale_edq = 15;
close;
} else if (mos_whale_edq == 15) {
mes "[Aged Stranger]";
@@ -1403,7 +1403,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
mes "Tell me whenever you're ready, and";
mes "I'll send you back to the";
mes "mainland.";
- set mos_whale_edq,31;
+ mos_whale_edq = 31;
close;
} else if (mos_whale_edq == 31) {
mes "[Aged Stranger]";
@@ -1421,7 +1421,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
mes "[Aged Stranger]";
mes "I see. If so, let's go.";
next;
- set mos_whale_edq,32;
+ mos_whale_edq = 32;
callsub S_AS_3;
close2;
warp "moscovia",162,56;
@@ -1441,7 +1441,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
delitem 7197,20; //Tough_Vines
delitem 7106,20; //Goat's_Horn
delitem 7065,10; //Sea_Otter_Leather
- set mos_whale_edq,34;
+ mos_whale_edq = 34;
mes "[Aged Stranger]";
mes "Wait for a moment until I make the";
mes "instrument successfully.";
@@ -1487,7 +1487,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
mes "which comes from a faraway land of";
mes "the ancestors of Moscovia.";
getitem GUSLI, 1;
- set mos_whale_edq,35;
+ mos_whale_edq = 35;
next;
mes "[Aged Stranger]";
mes "I am the last person who has";
@@ -1665,7 +1665,7 @@ mosk_fild01,86,104,3 script Aged Stranger#npc 4_M_GUSLIMAN,{
end;
}
end;
-
+
S_AS_1:
if (rand(1,3) == 2) {
soundeffect "mos_gusli1.wav",0;
@@ -1688,7 +1688,7 @@ S_AS_1:
mes "[Aged Stranger]";
mes "With your ability to play, surely";
mes "you can win the admiration of all.";
- set mos_whale_edq,38;
+ mos_whale_edq = 38;
close;
}
mes "[Aged Stranger]";
@@ -1702,9 +1702,9 @@ S_AS_1:
mes "I will check on you again.";
mes "If you practice, you will be good";
mes "at it in no time.";
- set mos_whale_edq,37;
+ mos_whale_edq = 37;
close;
-
+
S_AS_2:
mes "[Aged Stranger]";
mes "So, what will you do now?";
@@ -1756,7 +1756,7 @@ S_AS_2:
mes "[Aged Stranger]";
mes "Okay. If you are ready to play the";
mes "Gusli, let me know.";
- set mos_whale_edq,36;
+ mos_whale_edq = 36;
close;
case 3:
mes "[Aged Stranger]";
@@ -1794,7 +1794,7 @@ S_AS_2:
warp "moscovia",162,56;
end;
}
-
+
S_AS_3:
soundeffect "mos_gusli1.wav",0;
mes "-The old man starts to play";
@@ -1885,7 +1885,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "And, when you succeed in";
mes "banishing winter with magic,";
mes "announce that to me immediately.";
- set mos_nowinter,14;
+ mos_nowinter = 14;
close;
}
}
@@ -1893,7 +1893,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "I said to bring me";
mes "40 Yaga's Pestles";
mes "from the Baba Yaga.";
- set mos_nowinter,13;
+ mos_nowinter = 13;
close;
} else if (mos_nowinter == 13) {
mes "[Csar Alexsay III]";
@@ -1928,7 +1928,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "[Csar Alexsay III]";
mes "If you do that, I will arrest you immediately!";
mes "So take care of yourself.";
- set mos_nowinter,14;
+ mos_nowinter = 14;
close;
}
mes "[Csar Alexsay III]";
@@ -1998,7 +1998,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "Here, take it.";
mes "I give it as an atonement";
mes "to make my people happy.";
- set mos_nowinter,21;
+ mos_nowinter = 21;
getitem 603,1;
next;
mes "[Csar Alexsay III]";
@@ -2105,7 +2105,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "You got it, traveler?";
mes "You have a heavy responsibility.";
mes "Bring evidence of this whale island to me, to provide me with some relief. Now go.";
- set mos_whale_edq,18;
+ mos_whale_edq = 18;
close;
} else if (mos_whale_edq > 17 && mos_whale_edq < 35) {
mes "[Csar Alexsay III]";
@@ -2191,7 +2191,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "Even though I regard as your effort for the time so, award you. Take it and go out.";
getitem 12702,1; //Old_Bleu_Box
getexp (checkre(3))?50000:500000,0;
- set mos_whale_edq,39;
+ mos_whale_edq = 39;
close;
}
mes "[Csar Alexsay III]";
@@ -2219,7 +2219,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "Even though I regard as your effort for the time so, award you. Take it.";
getitem 12702,1; //Old_Bleu_Box
getexp (checkre(3))?70000:700000,0;
- set mos_whale_edq,40;
+ mos_whale_edq = 40;
close;
}
mes "[Csar Alexsay III]";
@@ -2301,7 +2301,7 @@ mosk_in,131,92,3 script Csar Alexsay III#npc 4_M_RUSKING,{
mes "efforts, in the name of the Csar.";
getitem 617,1; //Old_Violet_Box
getexp (checkre(3))?100000:1200000,0;
- set mos_whale_edq,41;
+ mos_whale_edq = 41;
close;
}
mes "[Csar Alexsay III]";
@@ -2424,7 +2424,7 @@ mosk_in,127,89,3 script Prime Minister Dmitree#m 4_M_RUSMAN1,{
next;
mes "[Prime Minister Dmitree]";
mes "I will admit you. If our dear Csar is satisfied with your story, he will give you a big prize.";
- set mos_whale_edq,17;
+ mos_whale_edq = 17;
close;
} else if (mos_whale_edq == 17) {
mes "[Prime Minister Dmitree]";
@@ -2522,7 +2522,7 @@ OnTouch:
mosk_ship,1,1,4 script Baehideun#ship -1,{
OnInit:
- set $@mos1_edq,0;
+ $@mos1_edq = 0;
end;
}
@@ -2539,7 +2539,7 @@ OnEnable:
OnDisable:
disablenpc "#findship";
- set $@mos1_edq,0;
+ $@mos1_edq = 0;
end;
OnTouch:
@@ -2559,7 +2559,7 @@ OnTouch:
mes "[Mr. Ibanoff]";
mes "Watch out! "+strcharinfo(0)+"!";
mes "Ah... That... That is... What...";
- set mos_whale_edq,13;
+ mos_whale_edq = 13;
close2;
warp "mosk_fild01",95,93;
end;
@@ -2575,40 +2575,40 @@ OnInit:
disablenpc strnpcinfo(0);
stopnpctimer;
end;
-
+
OnEnable:
enablenpc strnpcinfo(0);
- set .@c,charat(strnpcinfo(0),9);
+ .@c = charat(strnpcinfo(0),9);
switch (.@c) {
case 1: setarray .@m, 89,112,1425,85,110,1425; break;
case 2: setarray .@m, 89,112,1425,80,110,1426,83,114,1426,85,110,1425; break;
case 3: setarray .@m, 85,111,1451,89,112,1543,90,106,1543; break;
case 4: setarray .@m, 85,111,1451,89,112,1543,90,106,1543; break;
}
- for (set .@i, 0; .@i < getarraysize(.@m); set .@i, .@i + 3)
+ for (.@i = 0; .@i < getarraysize(.@m); .@i += 3)
monster "mosk_ship",.@m[.@i],.@m[.@i+1],"Sea Monster",.@m[.@i+2],1,strnpcinfo(0)+"::OnMyMobDead";
initnpctimer;
end;
OnDisable:
- set $@mos1_edq,0;
+ $@mos1_edq = 0;
stopnpctimer;
disablenpc strnpcinfo(0);
end;
OnMyMobDead:
if (!mobcount("mosk_ship",strnpcinfo(0)+"::OnMyMobDead")) {
- set $@mos1_edq,0;
+ $@mos1_edq = 0;
mes "[Mr. Ibanoff]";
mes "Now that all the monsters are gone,";
mes "we can start sailing again";
mes "normally.";
- set .@c,charat(strnpcinfo(0),9);
+ .@c = charat(strnpcinfo(0),9);
switch (.@c) {
case 1: break;
case 2: break;
- case 3: set mos_whale_edq,11; break;
- case 4: set mos_whale_edq,26; break;
+ case 3: mos_whale_edq = 11; break;
+ case 4: mos_whale_edq = 26; break;
}
donpcevent strnpcinfo(0)+"::OnDisable";
close;
@@ -2617,7 +2617,7 @@ OnMyMobDead:
OnTimer300000:
killmonster "mosk_ship",strnpcinfo(0)+"::OnMyMobDead";
- set $@mos1_edq,0;
+ $@mos1_edq = 0;
donpcevent strnpcinfo(0)+"::OnDisable";
end;
}
@@ -2701,7 +2701,7 @@ function script F_MOS_1 {
mes "Oh, God, You're so kind";
mes "Mikhail is such a timid boy. I guess he didn't leave this village.";
mes "Please bring him to me, then~";
- set mos_swan,1;
+ mos_swan = 1;
close;
}
@@ -2755,7 +2755,7 @@ mosk_in,144,279,5 script Gallina#mos 4_F_RUSWOMAN1,{
mes "[Gallina]";
mes "Well, now I have to get to work!";
mes "I'll make you my hotcakes someday. Please visit me later";
- set mos_swan,100;
+ mos_swan = 100;
getexp (checkre(3))?90000:1000000,0;
close;
}
@@ -2870,7 +2870,7 @@ mosk_in,148,274,1 script Anna#mos 4_F_RUSCHILD,{
next;
mes "["+strcharinfo(0)+"]";
mes "It's the only clue, I guess I'll go to ^3131FFInn 'Sticky Herb Tree'^000000?";
- if (mos_swan == 2) set mos_swan,3;
+ if (mos_swan == 2) mos_swan = 3;
next;
break;
case 4:
@@ -2962,9 +2962,9 @@ mosk_in,136,279,3 script Bed#mos1 HIDDEN_NPC,{
mes "- You come near the bed to look it over. -";
next;
while (.@c < 2) {
- for (set .@i, 0; .@i < 4; set .@i, .@i + 1)
+ for (.@i = 0; .@i < 4; ++.@i)
mes " .............. ";
- set .@c, .@c + 1;
+ ++.@c;
next;
}
mes "- You didn't find anything -";
@@ -2984,7 +2984,7 @@ mosk_in,205,268,3 script Fire pot#mos HIDDEN_NPC,{
mes "- It's a fire pot that is used when Gallina bakes hotcakes.";
mes "It seems that this has not been used for a long time.";
mes "I think I should ask his family where he might have fun off to -";
- set mos_swan,2;
+ mos_swan = 2;
close;
} else if (mos_swan > 1 && mos_swan < 11) {
mes "- It's a fire pot that is used when Gallina bakes hotcakes.";
@@ -3001,9 +3001,9 @@ mosk_in,205,268,3 script Fire pot#mos HIDDEN_NPC,{
mes "- You come near the pot to look it over. -";
next;
while (.@c < 2) {
- for (set .@i, 0; .@i < 4; set .@i, .@i + 1)
+ for (.@i = 0; .@i < 4; ++.@i)
mes " .............. ";
- set .@c, .@c + 1;
+ .@c += 1;
next;
}
mes "- As you look it over very carefully, you find some pieces of bread on the floor around the fire pot! -";
@@ -3094,7 +3094,7 @@ mosk_in,205,268,3 script Fire pot#mos HIDDEN_NPC,{
next;
mes "- I need to know what's required for the paste.";
mes "I'll ask that guy ^3131FFMr. Victor^000000 about them. -";
- set mos_swan,12;
+ mos_swan = 12;
close;
break;
case 2:
@@ -3149,7 +3149,7 @@ mosk_in,205,268,3 script Fire pot#mos HIDDEN_NPC,{
mes "[Mikhail]";
mes "Now I'm gonna give this back to Mom.";
donpcevent "Mikhail#mos::OnInit";
- set mos_swan,25;
+ mos_swan = 25;
delitem 7764,1;
close;
}
@@ -3242,7 +3242,7 @@ mosk_in,135,191,5 script Landlord#mos 4_F_RUSWOMAN3,{
mes "Come on, please follow me with your luggage.";
mes "Oh, let me carry them. Hohoho, you must be exhausted.";
mes "I wish you a good night's rest. Hohoho.";
- set mos_swan,4;
+ mos_swan = 4;
close2;
Zeny -= 5000;
percentheal 100,100;
@@ -3309,7 +3309,7 @@ mosk_in,135,191,5 script Landlord#mos 4_F_RUSWOMAN3,{
mes "[Landlord]";
mes "I was unkind to make you stay here but wasn't it easier for you? hoho.";
mes "When it gets dark, promise me to come here again. Hoho";
- set mos_swan,7;
+ mos_swan = 7;
close;
break;
case 3:
@@ -3387,14 +3387,14 @@ mosk_in,141,212,3 script Pub Owner#mos 4_M_RUSBALD,{
next;
mes "[Pub Owner]";
mes "You're welcome.";
- set mos_swan,8;
+ mos_swan = 8;
close;
}
mes "[Pub Owner]";
mes "Although you may be an experienced adventurer, you look so young.";
mes "I recommend you these drinks. Which one will you take?";
next;
- set .@j, select("Milk - 1000z:Sticky_Herb juice - 1000z:They are all expensive!") - 1;
+ .@j = select("Milk - 1000z:Sticky_Herb juice - 1000z:They are all expensive!") - 1;
if (.@j == 2) {
mes "[Pub Owner]";
mes "Hahaha, too much for you eh cheapskate.";
@@ -3402,7 +3402,7 @@ mosk_in,141,212,3 script Pub Owner#mos 4_M_RUSBALD,{
}
if (Zeny > 999) {
Zeny -= 1000;
- set mos_swan,9;
+ mos_swan = 9;
if (!.@j) getitem 519,1; else getitem 531,1;
mes "[Pub Owner]";
mes "Here you are. This is what you ordered.";
@@ -3465,7 +3465,7 @@ mosk_in,141,212,3 script Pub Owner#mos 4_M_RUSBALD,{
case 1:
if (Zeny > 999) {
Zeny -= 1000;
- set mos_swan,9;
+ mos_swan = 9;
getitem 519,1;
mes "[Pub Owner]";
mes "Here you are. This is what you ordered.";
@@ -3479,7 +3479,7 @@ mosk_in,141,212,3 script Pub Owner#mos 4_M_RUSBALD,{
case 2:
if (Zeny > 999) {
Zeny -= 1000;
- set mos_swan,9;
+ mos_swan = 9;
getitem 531,1;
mes "[Pub Owner]";
mes "Here you are. This is what you ordered.";
@@ -3603,7 +3603,7 @@ mosk_in,147,202,3 script Victor#mos 4_M_RUSMAN2,{
next;
mes "[Victor]";
mes "He might've just hidden himself somewhere, haha!";
- set mos_swan,10;
+ mos_swan = 10;
close;
} else if (mos_swan == 10 || mos_swan == 11) {
mes "[Victor]";
@@ -3640,7 +3640,7 @@ mosk_in,147,202,3 script Victor#mos 4_M_RUSMAN2,{
next;
mes "[Victor]";
mes "You should bring ^3131FF'10 sticky herbs'^000000 and ^3131FF 1 medicine bowl^000000 to me.";
- set mos_swan,13;
+ mos_swan = 13;
close;
} else if (mos_swan > 12 && mos_swan < 23) {
mes "[Victor]";
@@ -3659,10 +3659,10 @@ mosk_in,147,202,3 script Victor#mos 4_M_RUSMAN2,{
mes "[Victor]";
mes "Give me the stuff! I'll make it quickly. You're annoying me!";
next;
- for (set .@i, 0; .@i < 3; set .@i, .@i + 1)
+ for (.@i = 0; .@i < 3; ++.@i)
mes "- He's making adhesive with a crunching sound -";
next;
- for (set .@i, 0; .@i < 4; set .@i, .@i + 1)
+ for (.@i = 0; .@i < 4; ++.@i)
mes "- And he may be rubbing something -";
next;
mes "[Victor]";
@@ -3671,7 +3671,7 @@ mosk_in,147,202,3 script Victor#mos 4_M_RUSMAN2,{
mes "Please leave!";
delitem 7763,10;
delitem 7134,1;
- set mos_swan,24;
+ mos_swan = 24;
getitem 7764,1;
close;
}
@@ -3720,7 +3720,7 @@ OnTouch:
next;
mes "["+strcharinfo(0)+"]";
mes "Ok, I guess I will go to the landlord to get some info.";
- set mos_swan,5;
+ mos_swan = 5;
close;
}
@@ -3739,7 +3739,7 @@ mosk_dun03,153,90,3 script Bubbling Swamp#mos1 CLEAR_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "I don't see any traces of Mikhail. I think I should go back and check his house one more time.";
- set mos_swan,11;
+ mos_swan = 11;
close;
} else if (mos_swan == 11 && mos_swan == 12) {
mes "- You can see a small muddy swamp -";
@@ -3757,11 +3757,11 @@ mosk_dun03,153,90,3 script Bubbling Swamp#mos1 CLEAR_NPC,{
mes "- You have pricked your finger on a Sticky Herb. -";
if (mos_swan == 22) {
getitem 7763,1;
- set mos_swan,23;
+ mos_swan = 23;
close;
}
getitem 7763,1;
- set mos_swan,mos_swan+1;
+ ++mos_swan;
close;
}
mes "- You have pricked your finger on a Green Herb. -";
@@ -3794,7 +3794,7 @@ mosk_in,211,259,5 script Larissa#mos_01 4_F_RUSWOMAN2,{
mes "[Larissa]";
mes "Here you are. This special pancake is for you.";
mes "It will be very delicious.";
- set mos_swan,101;
+ mos_swan = 101;
getitem 592,5;
getitem 593,5;
next;
@@ -3915,7 +3915,7 @@ mosk_in,211,259,5 script Larissa#mos_01 4_F_RUSWOMAN2,{
break;
}
setarray .@di,7031,1,519,2,504,2,548,1,1019,1,518,1;
- for (set .@i, 0; .@i < getarraysize(.@di); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@di); .@i += 2)
delitem .@n[.@i],.@n[.@i+1];
getitem .@n,.@n[1];
close;
@@ -3980,7 +3980,6 @@ moscovia,208,182,7 script Acorn Dealer#mos 4_M_RUSMAN1,{
mes "You can't buy more than 500.";
next;
}
-
}
if (!checkweight(1026, .@input)) {
mes "[Acorn Dealer]";
@@ -3991,7 +3990,7 @@ moscovia,208,182,7 script Acorn Dealer#mos 4_M_RUSMAN1,{
mes "right here.";
close;
}
- set .@price, .@input * 100;
+ .@price = .@input * 100;
if (Zeny < .@price) {
mes "[Acorn Dealer]";
mes "Hello? You've turned pale! Are you ok??";
@@ -4036,8 +4035,8 @@ OnTouch:
next;
mes "- After eating the acorn up, the squirrel dances around wildly. Suddenly it curls its body and throws something up with a spit-spit sound -";
delitem 1026,20;
- set .@cyworld,rand(1,1000);
- set .@stworld,rand(1,150);
+ .@cyworld = rand(1,1000);
+ .@stworld = rand(1,150);
if (.@cyworld > 0 && .@cyworld < 100) getitem 733,1;
else if (.@cyworld == 100) {
if (.@stworld > 0 && .@stworld < 90) callsub S_BS_1,.@stworld;
@@ -4046,14 +4045,14 @@ OnTouch:
} else if (.@cyworld == 200) {
if (.@stworld > 0 && .@stworld < 90) callsub S_BS_1,.@stworld;
else if (.@stworld > 89 && .@stworld < 100) getitem 731,1;
- else set .@stonez1,rand(1,10);
+ else .@stonez1 = rand(1,10);
if (.@stonez1 < 6) getitem 7290,1;
else if (.@stonez1 > 5 && .@stonez1 < 8) getitem 7297,1;
else getitem 7292,1;
} else if (.@cyworld == 300) {
if (.@stworld > 0 && .@stworld < 90) callsub S_BS_1,.@stworld;
else if (.@stworld > 89 && .@stworld < 100) getitem 732,1;
- else set .@stonez2,rand(1,10);
+ else .@stonez2 = rand(1,10);
if (.@stonez2 < 6) getitem 7291,1;
else getitem 7294,1;
} else if (.@cyworld == 400) {
@@ -4105,9 +4104,9 @@ OnTouch:
}
mes "- The squirrel looks at the acorn which you held for a while but it turned its head with indifference. -";
close;
-
+
S_BS_1:
- set .@stworld, getarg(0);
+ .@stworld = getarg(0);
if (.@stworld < 10) getitem 718,1;
else if (.@stworld < 20) getitem 719,1;
else if (.@stworld < 30) getitem 720,1;
@@ -4133,7 +4132,7 @@ mosk_in,215,46,5 script #babayaga -1,7,7,{
OnTouch:
if (!mos_nowinter) {
if (countitem(7762) > 39 && BaseLevel > 59) {
- set mos_nowinter,2;
+ mos_nowinter = 2;
mes "[Baba Yaga, the Horrible]";
mes "Who the hell are you?";
mes "You want me to kick your ass!";
@@ -4155,8 +4154,8 @@ OnTouch:
mes "I don't know where you got";
mes "those Yaga Pestles, but";
mes "give them back to me!";
- set mos_nowinter,1;
- set .@getback,rand(1,20);
+ mos_nowinter = 1;
+ .@getback = rand(1,20);
delitem 7762,.@getback;
close2;
warp "mosk_dun02",53,217;
@@ -4165,13 +4164,13 @@ OnTouch:
mes "[Baba Yaga, the Horrible]";
mes "Who the hell are you?";
mes "You want me to kick your ass!";
- set mos_nowinter,1;
+ mos_nowinter = 1;
close2;
warp "mosk_dun02",53,217;
end;
} else if (mos_nowinter == 1) {
if (countitem(7762) > 39 && BaseLevel > 59) {
- set mos_nowinter,2;
+ mos_nowinter = 2;
mes "[Baba Yaga, the Horrible]";
mes "Who the hell are you.";
mes "You want me to kick your ass!";
@@ -4305,14 +4304,14 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "Please, don't kill me...";
next;
mes "'Hmmm, what should I do...'";
- set mos_nowinter,4;
+ mos_nowinter = 4;
close;
}
mes "[Baba Yaga, the Horrible]";
mes "Akkk... What on earth did you do to me...";
next;
mes "Hmm... What do you want...";
- set mos_nowinter,3;
+ mos_nowinter = 3;
close;
} else if (mos_nowinter == 3) {
mes "[Baba Yaga, the Horrible]";
@@ -4357,7 +4356,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "Please, don't kill me...";
next;
mes "'Hmm... what should I do...'";
- set mos_nowinter,4;
+ mos_nowinter = 4;
close;
}
mes "[Baba Yaga, the Horrible]";
@@ -4423,7 +4422,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "Cough, cough,";
mes "I am coughing now, so do not disturb me,";
mes "you write them down.";
- set .@plus1,1;
+ .@plus1 = 1;
next;
} else {
mes "[Baba Yaga, the Horrible]";
@@ -4481,7 +4480,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "10 Burning Heart^000000 and,";
mes "a 1, 2, or 3 carat";
mes "^ff00001 Diamond^000000.";
- set mos_nowinter,6;
+ mos_nowinter = 6;
next;
} else {
mes "[Baba Yaga, the Horrible]";
@@ -4501,7 +4500,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "10 Burning Heart^000000 and,";
mes "a 1, 2, or 3 carat";
mes "^ff0000Diamond^000000.";
- set mos_nowinter,7;
+ mos_nowinter = 7;
next;
}
mes "[Baba Yaga, the Horrible]";
@@ -4518,19 +4517,19 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "all of the items?";
next;
setarray .@n, 940,20,908,5,7006,20,1061,10,7041,10,938,10,1051,1,990,5,7097,10;
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2) {
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2) {
if (countitem(.@n[.@i]) < .@n[.@i+1]) {
- set .@f, 1;
+ .@f = 1;
break;
}
}
if (!.@f && (countitem(730) || countitem(731) || countitem(732))) {
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
delitem .@n[.@i],.@n[.@i+1];
if (countitem(730)) delitem 730,1;
else if (countitem(731)) delitem 731,1;
else if (countitem(732)) delitem 732,1;
- set mos_nowinter,8;
+ mos_nowinter = 8;
mes "[Baba Yaga, the Horrible]";
mes "Right, you got them all.";
mes "With this amount.. For some time...";
@@ -4613,19 +4612,19 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "all of them?";
next;
setarray .@n, 940,20,908,5,7006,20,1061,10,7041,10,1051,1,990,5,7097,10;
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2) {
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2) {
if (countitem(.@n[.@i]) < .@n[.@i+1]) {
- set .@f, 1;
+ .@f = 1;
break;
}
}
if (!.@f && (countitem(730) || countitem(731) || countitem(732))) {
- for (set .@i, 0; .@i < getarraysize(.@n); set .@i, .@i + 2)
+ for (.@i = 0; .@i < getarraysize(.@n); .@i += 2)
delitem .@n[.@i],.@n[.@i+1];
if (countitem(730)) delitem 730,1;
else if (countitem(731)) delitem 731,1;
else if (countitem(732)) delitem 732,1;
- set mos_nowinter,8;
+ mos_nowinter = 8;
mes "[Baba Yaga, the Horrible]";
mes "Right, you got them all.";
mes "With this amount.. For some time......";
@@ -4762,7 +4761,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
next;
mes "[Baba Yaga, the Horrible]";
mes "Take care of yourself, cough, cough.";
- set mos_nowinter,10;
+ mos_nowinter = 10;
close;
}
mes "[Baba Yaga, the Horrible]";
@@ -4860,7 +4859,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "The magic is complete.";
mes "Do your best,";
mes "Cough!";
- set mos_nowinter,15;
+ mos_nowinter = 15;
close;
} else if (mos_nowinter == 15 || mos_nowinter == 16) {
mes "[Baba Yaga, the Horrible]";
@@ -4888,7 +4887,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "[Baba Yaga, the Horrible]";
mes "Well, try it again.";
mes "We still have enough materials.";
- set mos_nowinter,16;
+ mos_nowinter = 16;
close;
} else if (mos_nowinter == 18) {
mes "[Baba Yaga, the Horrible]";
@@ -4910,7 +4909,7 @@ mosk_in,215,46,5 script Baba Yaga, the Horrible 4_F_BABAYAGA,{
mes "will be happening,";
mes "forever.";
getitem 7765,1;
- set mos_nowinter,19;
+ mos_nowinter = 19;
close;
} else if (mos_nowinter == 19) {
mes "[Baba Yaga, the Horrible]";
@@ -4955,7 +4954,7 @@ S_BY_1:
mes "I don't remember";
mes "where it is.";
mes "Could you please come back later?";
- set mos_nowinter,5;
+ mos_nowinter = 5;
close;
}
@@ -5026,7 +5025,7 @@ mosk_in,217,45,0 script #book_russia HIDDEN_NPC,{
mes "I'll mark this spot.";
mes "so I can easily find the mixing";
mes "process next time...";
- set mos_nowinter,16;
+ mos_nowinter = 16;
next;
mes "^0000ffSeasonal Magic^000000:^ff0000Eternal Summer^000000";
mes "First of all, you need to put and";
@@ -5224,24 +5223,24 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
switch(select("Put the materials in it.:Pour water in it.:Stir it up.:It is over!")) {
case 1:
- set .@m, select (implode(.@m$,":")) - 1;
+ .@m = select (implode(.@m$,":")) - 1;
if ((!.@m && .@bat) || (.@m == 1 && .@mush) || (.@m == 2 && .@locker)) specialeffect EF_POISONHIT;
else {
specialeffect EF_SMOKE;
- if (!.@m) set .@bat,.@bat+1;
- if (.@m == 1) set .@mush,.@mush+1;
- if (.@m == 2) set .locker,.@locker+1;
- set .@maho,.@maho+1;
+ if (!.@m) .@bat += 1;
+ if (.@m == 1) .@mush += 1;
+ if (.@m == 2) .@locker += 1;
+ ++.@maho;
}
if (.@m >= 3) specialeffect EF_POISONHIT;
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I put the "+.@m$[.@m]+" in the pot.";
mes "Its smell slightly changes.-";
next;
break;
case 2:
specialeffect EF_POISONHIT;
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I pour water in the pot a little.";
mes "The liquid has become thin.";
mes "No other remarkable changes";
@@ -5250,7 +5249,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
break;
case 3:
specialeffect EF_POISONHIT;
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I stir it up";
mes "with a stick several times.";
mes "No other remarkable changes";
@@ -5262,7 +5261,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "["+strcharinfo(0)+"]";
mes "I will tell Baba Yaga that";
mes "the work has been done.";
- set mos_nowinter,17;
+ mos_nowinter = 17;
close;
}
if (.@nankai == 3) break;
@@ -5281,25 +5280,25 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
switch(select("Put the materials in it.:Pour water in it.:Stir it up.:It is over!")) {
case 1:
- set .@m, select (implode(.@m$,":")) - 1;
+ .@m = select (implode(.@m$,":")) - 1;
if (.@m >= 3) {
if (.@nankai == 5 || .@nankai == 6) {
if ((.@m == 3 && .@star) || (.@m == 4 && .@sand)) specialeffect EF_POISONHIT;
else {
specialeffect EF_SMOKE;
- set .@maho,.@maho+1;
- if (.@m == 3) set .@star,.@star+1;
- if (.@m == 4) set .@sand,.@sand+1;
- set .@w, 1;
+ ++.@maho;
+ if (.@m == 3) .@star += 1;
+ if (.@m == 4) .@sand += 1;
+ .@w = 1;
}
} else {
specialeffect EF_POISONHIT;
- if (.@m == 3) set .@star,.@star+1;
- if (.@m == 4) set .@sand,.@sand+1;
+ if (.@m == 3) .@star += 1;
+ if (.@m == 4) .@sand += 1;
}
next;
} else specialeffect EF_POISONHIT;
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I put the "+.@m$[.@m]+" in the pot.";
mes (.@m <= 2)?"It's smell drastically changes.-":"Its "+((.@w)?"smell":"color")+" slightly changes.-";
break;
@@ -5310,13 +5309,13 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "something in the cloudy liquid";
mes "has changed.-";
specialeffect EF_DRAGONSMOKE;
- set .@maho,.@maho+1;
- set .@nankai,.@nankai+1;
+ ++.@maho;
+ ++.@nankai;
next;
} else {
specialeffect EF_POISONHIT;
mes "-I pour water in the pot and, the liquid gets thin.-";
- set .@nankai,.@nankai+1;
+ ++.@nankai;
next;
}
break;
@@ -5335,8 +5334,8 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "brighter and";
mes "its smell gets";
mes "more bearable.";
- set .@maho,.@maho+1;
- set .@nankai,.@nankai+1;
+ ++.@maho;
+ ++.@nankai;
next;
} else if (!.@input) {
mes "-I won't stir it up.-";
@@ -5351,7 +5350,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
mes "-I stir it up really hard.";
mes "It is boiled.-";
- set .@nankai,.@nankai+1;
+ ++.@nankai;
next;
}
} else {
@@ -5359,7 +5358,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "Something changed?";
- set .@nankai,.@nankai+1;
+ ++.@nankai;
next;
}
break;
@@ -5367,7 +5366,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "["+strcharinfo(0)+"]";
mes "I will tell Baba Yaga that";
mes "it has been done.";
- set mos_nowinter,17;
+ mos_nowinter = 17;
specialeffect EF_POISONATTACK;
close;
}
@@ -5384,7 +5383,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "the pot has changed enough.";
mes "Let's go on to the next stage.-";
next;
- set .@w, 0;
+ .@w = 0;
while(1) {
mes "-Well, What am I going to do?-";
next;
@@ -5392,34 +5391,34 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
case 1:
if (.@nankai != 11) {
setarray .@m2$, "Witched Starsand","Fine Grit","Detonator","Red Blood","Burning Heart";
- set .@m, select (implode(.@m2$,":")) - 1;
+ .@m = select (implode(.@m2$,":")) - 1;
if ((.@m == 2 && .@nankai == 9) || (.@m == 3 && .@nankai == 8) || (.@m == 4 && .@nankai == 10)) {
specialeffect EF_SMOKE;
- set .@maho,.@maho+1;
+ ++.@maho;
} else {
specialeffect EF_POISONHIT;
- set .@w, 1;
+ .@w = 1;
}
if (.@m <= 1) specialeffect EF_POISONHIT;
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I put the "+.@m2$[.@m]+" in the pot.";
mes (.@m <= 1)?"Its smell slightly changes.-":((.@w)?"The smell gets worse.-":"The smell has been changed a little.-");
} else {
setarray .@m3$, "Witched Starsand","Fine Grit","Detonator","Red Blood","Burning Heart","Piece Of Diamond";
- set .@m, select (implode(.@m3$,":")) - 1;
+ .@m = select (implode(.@m3$,":")) - 1;
if (.@m != 5) specialeffect EF_POISONHIT;
else {
- set .@maho,.@maho+1;
+ ++.@maho;
specialeffect EF_SMOKE;
}
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I put "+((.@m == 5)?"a":"the")+" "+.@m3$[.@m]+" in the pot.";
mes (.@m == 5)?"The solution alters in color.-":"The smell gets worse.-";
}
next;
break;
case 2:
- set .@nankai,.@nankai+1;
+ ++.@nankai;
mes "-I pour water in the pot a little.";
mes "The smell gets better.-";
next;
@@ -5437,8 +5436,8 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
specialeffect EF_WIND;
mes "-Stirring up makes it";
mes "brighter.-";
- set .@maho,.@maho+1;
- set .@nankai,.@nankai+1;
+ ++.@maho;
+ ++.@nankai;
next;
} else if (.@input == 0) {
mes "-I won't stir it up.-";
@@ -5453,7 +5452,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
mes "-I stir it up really hard.";
mes "It is boiled.-";
- set .@nankai,.@nankai+1;
+ ++.@nankai;
next;
}
} else {
@@ -5461,7 +5460,7 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "Something changed?";
- set .@nankai,.@nankai+1;
+ ++.@nankai;
next;
}
break;
@@ -5469,12 +5468,12 @@ mosk_in,221,43,0 script #bowl HIDDEN_NPC,{
mes "-It seems that the work is over.";
mes "I need to show this to Baba Yaga.-";
if (.@maho == 12) {
- set mos_nowinter,18;
+ mos_nowinter = 18;
specialeffect EF_GASPUSH;
close;
}
specialeffect EF_POISONATTACK;
- set mos_nowinter,17;
+ mos_nowinter = 17;
close;
}
}
@@ -5498,7 +5497,7 @@ moscovia,224,190,0 script #nowinterplz CLEAR_NPC,{
mes "Secret Medicine.-";
delitem 7765,1;
specialeffect EF_BARRIER;
- set mos_nowinter,20;
+ mos_nowinter = 20;
next;
mes "-You feel like your";
mes "body is heating up.";
@@ -5535,15 +5534,15 @@ moscovia,252,203,5 script A Little Girl#mos1 4_F_RUSCHILD,{
mes "that she is real.";
close;
}
- set .@kid,rand(1,100);
+ .@kid = rand(1,100);
select("Do you like the warm weather, little girl?");
if (.@kid > 70) {
mes "[Yosefina]";
mes "Yes, I like it very much~";
mes "I never want it to leave. I don't want winter to come.";
specialeffect2 EF_SUMMONSLAVE;
- set mos_kid,1;
- if (mos_middle == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_kid = 1;
+ if (mos_middle == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Yosefina]";
@@ -5576,15 +5575,15 @@ moscovia,233,204,3 script A Young Man#mos2 4_M_RUSMAN2,{
close;
}
select("You don't like winter, do you?");
- set .@kid,rand(1,100);
+ .@kid = rand(1,100);
if (.@kid > 70) {
mes "[Fedor]";
mes "No, I don't like the cold winter.";
mes "And I get angry when";
mes "seeing couples.";
specialeffect2 EF_SUMMONSLAVE;
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Fedor]";
@@ -5624,8 +5623,8 @@ moscovia,219,229,5 script A Middle-Aged Man#mos3 4_M_RUSBALD,{
mes "when it comes again.";
mes "I don't want winter to come.";
specialeffect2 EF_SUMMONSLAVE;
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Viktor]";
@@ -5688,8 +5687,8 @@ moscovia,255,203,3 script A Little Boy#mos4 4_M_RUSCHILD,{
mes "[Vasili]";
mes "If winter is gone,";
mes "it is much easier to go on adventures.";
- set mos_kid,1;
- if (mos_middle == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_kid = 1;
+ if (mos_middle == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Vasili]";
@@ -5737,8 +5736,8 @@ moscovia,204,188,5 script A Lady#mos5 4_F_RUSWOMAN1,{
mes "[Katya]";
mes "I wish that winter never comes back and";
mes "I could see sunflowers everyday.";
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Katya]";
@@ -5778,8 +5777,8 @@ moscovia,167,97,3 script A Lady#mos6 4_F_RUSWOMAN3,{
mes "[Roza]";
mes "Whoever likes the cold and dark winter?";
mes "I hope this weather last forever.";
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Roza]";
@@ -5836,9 +5835,9 @@ moscovia,202,102,3 script A Little Boy#mos7 4_M_RUSCHILD,{
mes "If winter never comes";
mes "I can have";
mes "fun all the time...";
- set mos_kid,1;
+ mos_kid = 1;
if (mos_middle == 1 && mos_elder == 1) {
- set mos_nowinter,11;
+ mos_nowinter = 11;
}
close;
}
@@ -5894,8 +5893,8 @@ moscovia,220,172,3 script A Young Man#mos8 4_M_RUSMAN2,{
mes "Hu, if the weather everday was as good as lately,";
mes "I would like to go out a lot more.";
mes "I hate winter...";
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Ilyav]";
@@ -5933,8 +5932,8 @@ moscovia,253,175,3 script A Man#mos9 4_M_RUSBALD,{
mes "In winter, fishing is more difficult,";
mes "anyway, it is bad for us.";
mes "I think it would be ok if we never had winter again.";
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Orek]";
@@ -5989,8 +5988,8 @@ moscovia,168,135,3 script A Lady#mos10 4_F_RUSWOMAN3,{
mes "[Kyra]";
mes "It is good to stay with my family, but";
mes "nobody likes the cold winter.";
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Kyra]";
@@ -6038,8 +6037,8 @@ moscovia,192,80,3 script A Lady#mos11 4_F_RUSWOMAN1,{
mes "If the summer continues to last,";
mes "I can see them all the time...";
specialeffect2 EF_SUMMONSLAVE;
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Sabina]";
@@ -6094,8 +6093,8 @@ moscovia,211,215,5 script A Young Man#mos12 4_M_RUSMAN1,{
mes "my life will be in an amorous mood.";
mes "Hahaha!";
mes "I don't want winter to come.";
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Izlof]";
@@ -6143,8 +6142,8 @@ moscovia,149,112,3 script A Man#mos13 4_M_RUSBALD,{
mes "I hope that this warm weather";
mes "will last forever.";
mes "I hate the cold winter.";
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Lev]";
@@ -6194,8 +6193,8 @@ moscovia,196,71,3 script A Young Man#mos14 4_M_RUSMAN2,{
mes "[Fredek]";
mes "I hope that winter never comes.";
mes "It is my dream.";
- set mos_middle,1;
- if (mos_kid == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_middle = 1;
+ if (mos_kid == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Fredek]";
@@ -6245,8 +6244,8 @@ moscovia,234,168,5 script A Man#mos15 4_M_RUSBALD,{
mes "if winter never came again.";
mes "But, design of coldness is";
mes "winter itself, isn't it?";
- set mos_elder,1;
- if (mos_kid == 1 && mos_middle == 1) set mos_nowinter,11;
+ mos_elder = 1;
+ if (mos_kid == 1 && mos_middle == 1) mos_nowinter = 11;
close;
}
mes "[Gavrel]";
@@ -6295,8 +6294,8 @@ moscovia,228,80,3 script A Little Boy#mos16 4_M_RUSCHILD,{
mes "It is natural to like the summer.";
mes "Do you think";
mes "the winter should come again?";
- set mos_kid,1;
- if (mos_middle == 1 && mos_elder == 1) set mos_nowinter,11;
+ mos_kid = 1;
+ if (mos_middle == 1 && mos_elder == 1) mos_nowinter = 11;
close;
}
mes "[Rurik]";
@@ -6359,7 +6358,7 @@ OnTouch:
mes "["+strcharinfo(0)+"]";
mes "Here it is.";
mes "That was easy to find.";
- set mos_nowinter,9;
+ mos_nowinter = 9;
getitem 7761,1;
close;
}
@@ -6367,7 +6366,7 @@ OnTouch:
mes "["+strcharinfo(0)+"]";
mes "Ah, I got it!";
mes "I better get out of here quickly.";
- set mos_nowinter,9;
+ mos_nowinter = 9;
getitem 7761,1;
close;
}
@@ -6459,21 +6458,21 @@ mosk_in,131,92,3 script #Csar -1,7,7,{
mes "And, when you succeed in";
mes "banishing winter with magic,";
mes "announce that to me immediately.";
- set mos_nowinter,14;
+ mos_nowinter = 14;
close;
}
mes "[Csar Alexsay III]";
mes "I said to bring me";
mes "40 Yaga's Pestles";
mes "from the Baba Yaga.";
- set mos_nowinter,13;
+ mos_nowinter = 13;
close;
}
mes "[Csar Alexsay III]";
mes "I said to bring me";
mes "40 Yaga's Pestles";
mes "from the Baba Yaga.";
- set mos_nowinter,13;
+ mos_nowinter = 13;
close;
}
end;
@@ -6659,7 +6658,7 @@ mosk_fild02,198,252,3 script Sage#rus01 4_M_SAGE_C,{
next;
mes "[Sage]";
mes "But, don't worry about me. I know my way around here and am not afraid of monsters, haha.";
- set rhea_rus_main,1;
+ rhea_rus_main = 1;
close;
}
mes "[Sage]";
@@ -6716,7 +6715,7 @@ mosk_dun01,169,162,0 script Mysterious Stone#rus02 HIDDEN_NPC,{
warp "mosk_dun01",190,47;
end;
case 2:
- if (!checkriding()) {
+ if (checkmount() != MOUNT_PECO) {
mes "["+ strcharinfo(0) +"]";
mes "...What about the left...?";
next;
@@ -6744,7 +6743,7 @@ mosk_dun01,169,162,0 script Mysterious Stone#rus02 HIDDEN_NPC,{
mes "- an unknown force and tries -";
mes "- to run away!! -";
sc_start SC_CURSE,60000,0;
- setriding 0;
+ setmount(MOUNT_NONE);
close2;
warp "mosk_dun01",190,47;
end;
@@ -6758,7 +6757,7 @@ mosk_dun01,169,162,0 script Mysterious Stone#rus02 HIDDEN_NPC,{
mes "- !!!!!! -";
emotion e_omg,1;
donpcevent "Gray Wolf#rus03::OnEnable";
- set rhea_rus_main,2;
+ rhea_rus_main = 2;
close;
}
} else if (rhea_rus_main == 3 || rhea_rus_main == 4) {
@@ -6771,7 +6770,7 @@ mosk_dun01,169,162,0 script Mysterious Stone#rus02 HIDDEN_NPC,{
next;
mes "- You carefully read the stone -";
mes "- and decide to wait -";
- if (rhea_rus_main == 3) set rhea_rus_main,4;
+ if (rhea_rus_main == 3) rhea_rus_main = 4;
donpcevent "Gray Wolf#rus03::OnEnable";
close;
}
@@ -6810,7 +6809,7 @@ mosk_dun01,167,160,3 script Gray Wolf#rus03 4_RUS_DWOLF,{
mes "[Gray Wolf]";
mes "I'm warning you again!";
mes "Unless you want to be killed, leave now.";
- set rhea_rus_main,3;
+ rhea_rus_main = 3;
emotion e_omg,1;
specialeffect2 EF_HIT2;
percentheal -50,0;
@@ -6873,7 +6872,7 @@ mosk_dun01,167,160,3 script Gray Wolf#rus03 4_RUS_DWOLF,{
next;
mes "- He turns his back to me -";
mes "- I jump up and suddenly -";
- set rhea_rus_main,5;
+ rhea_rus_main = 5;
donpcevent "Gray Wolf#rus03::OnDisable";
close2;
warp "mosk_dun01",46,253;
@@ -6910,7 +6909,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
emotion e_what,1;
close;
} else if (rhea_rus_main == 5) {
- set .@speak01,rand(1,3);
+ .@speak01 = rand(1,3);
if (.@speak01 == 3) {
mes "["+ strcharinfo(0) +"]";
mes "...?!";
@@ -6960,7 +6959,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "[Girl's Voice]";
mes "Please don't forget about me.";
donpcevent "Gray Wolf#rus05::OnDisable";
- set rhea_rus_main,6;
+ rhea_rus_main = 6;
close;
} else if (rhea_rus_main > 5 && rhea_rus_main < 8) {
mes "[Girl's Voice]";
@@ -7038,7 +7037,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "I can feel Koshei's energy.. It is not a time to use the key...";
close;
}
- set $@rus_req02,1;
+ $@rus_req02 = 1;
mes "[Girl's Voice]";
mes "Did you get the key?";
next;
@@ -7069,7 +7068,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
next;
mes "[Girl's Voice]";
mes "You must've said it wrong...";
- set $@rus_req02,0;
+ $@rus_req02 = 0;
close;
}
mes "- The wind disappears and -";
@@ -7126,7 +7125,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
mes "[Koshei, the Immortal]";
mes "Stop! Where do you think you're going?!!!";
delitem 7876,1;
- set rhea_rus_main,48;
+ rhea_rus_main = 48;
monster "mosk_dun01",45,256,"Koshei, the Immortal",1890,1,"Wall#rus04::OnMyMobDead";
donpcevent "Koshei#rus47::OnEnable";
close;
@@ -7166,7 +7165,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
next;
mes "[Gray Wolf]";
mes "I can't keep her alive for much longer. You must find Baba Yaga.";
- set rhea_rus_main,49;
+ rhea_rus_main = 49;
close2;
donpcevent "Gray Wolf#rus05::OnDisable";
end;
@@ -7300,8 +7299,8 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
next;
mes "[Maria Morebna]";
mes "It's been a long time since I've felt the sunlight, fresh wind and the scent of grass. I'm so grateful.";
- set rhea_rus_main,52;
- set .@rus_food,rand(1,6);
+ rhea_rus_main = 52;
+ .@rus_food = rand(1,6);
switch (rand(1,6)) {
case 1: getitem 12093,1; break;
case 2: getitem 12088,1; break;
@@ -7356,7 +7355,7 @@ mosk_dun01,45,259,0 script Wall#rus04 HIDDEN_NPC,{
OnInit:
enablenpc "Wall#rus04";
- set $@rus_req02,0;
+ $@rus_req02 = 0;
end;
OnEnable:
@@ -7369,7 +7368,7 @@ OnDisable:
OnMyMobDead:
donpcevent "Koshei#rus47::OnDisable";
- set $@rus_req02,0;
+ $@rus_req02 = 0;
stopnpctimer;
announce "Koshei, the Immortal : Keeeek, you, cursed human.. I'll never give up!!! We'll see who's smiling in the end!!!",bc_map,0xCE3131;
end;
@@ -7523,7 +7522,7 @@ moscovia,178,127,0 script The Blacksmith#rus06 1_M_SMITH,{
mes "[The Blacksmith]";
mes "Bahahaha~";
mes "I promise you, I'll explain when you bring the ^0000ff25 Steel^000000 to me. Please just get the Steel and come back.";
- set rhea_rus_main,7;
+ rhea_rus_main = 7;
close;
} else if (rhea_rus_main == 7) {
if (countitem(999) > 24) {
@@ -7572,7 +7571,7 @@ moscovia,178,127,0 script The Blacksmith#rus06 1_M_SMITH,{
mes "Bahahaha~";
mes "And don't forget to wear these!";
delitem 999,25;
- set rhea_rus_main,8;
+ rhea_rus_main = 8;
if (BaseClass == Job_Merchant || BaseClass == Job_Swordman || BaseClass == Job_Thief || BaseClass == Job_Archer || BaseClass == Job_Ninja || BaseClass == Job_Gunslinger) getitem 2429,1; else getitem 2430,1; close;
}
mes "[The Blacksmith]";
@@ -7633,7 +7632,7 @@ moscovia,178,127,0 script The Blacksmith#rus06 1_M_SMITH,{
mes "The forest is dangerous. Be very careful in there!";
mes "Ah and you shouldn't be needing those Steel Boots anymore. Good luck!";
if (countitem(2429)) delitem 2429,1; else delitem 2430,1;
- set rhea_rus_main,9;
+ rhea_rus_main = 9;
close;
}
mes "[The Blacksmith]";
@@ -7803,7 +7802,7 @@ moscovia,206,81,0 script Vassili Grandpapa#rus07 4_M_05,{
next;
mes "[Vassili Grandpapa]";
mes "She disappeared soon... after Now all I have is Ryubaba. She is also pretty and smart but nothing can relieve the sadnesss in my heart from losing Mashenka...";
- set rhea_rus_ring,1;
+ rhea_rus_ring = 1;
close;
} else if (rhea_rus_ring && rhea_rus_ring < 8) {
mes "[Vassili Grandpapa]";
@@ -7929,7 +7928,7 @@ moscovia,206,81,0 script Vassili Grandpapa#rus07 4_M_05,{
mes "[Vassili Grandpapa]";
mes "...It is my fault that this tragedy between my daughters happened. I will spend the rest of my life trying to make up for it...";
delitem 7883,1; //Pointed_Wooden_Flute
- set rhea_rus_ring,10;
+ rhea_rus_ring = 10;
getitem 7877,1; //Red_Ring
if (checkre(3)) {
if (BaseLevel < 56) getexp 470,0;
@@ -8040,7 +8039,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
mes "[Ryubaba]";
mes "What!? You bastard!!";
mes "I hate you! Get out of my face!";
- set rhea_rus_ring,2;
+ rhea_rus_ring = 2;
close2;
warp "moscovia",220,210;
end;
@@ -8051,7 +8050,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
next;
mes "[Ryubaba]";
mes "Huhu, oh you jest. You know what you're talking about. Ah, this is a Choco drink that I have made. Give it a taste, isn't it good?";
- set rhea_rus_ring,4;
+ rhea_rus_ring = 4;
getitem 573,1;
close;
} else if (rhea_rus_ring == 2) {
@@ -8073,7 +8072,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
mes "[Ryubaba]";
mes "Ok. Well, I forgive you.";
if (countitem(748)) delitem 748,1; else delitem 749,1;
- set rhea_rus_ring,4;
+ rhea_rus_ring = 4;
close;
}
mes "[Ryubaba]";
@@ -8125,7 +8124,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
next;
mes "[Ryubaba]";
mes "Right... Let me finish talking. We tried searching for her but we couldn't find her. She must have been wearing the ring when she disappeared around the marsh.";
- set rhea_rus_ring,5;
+ rhea_rus_ring = 5;
close;
} else if (rhea_rus_ring > 4 && rhea_rus_ring < 7) {
mes "[Ryubaba]";
@@ -8236,7 +8235,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
next;
mes "[Ryubaba]";
mes "W, wait!!!";
- set rhea_rus_ring,8;
+ rhea_rus_ring = 8;
close2;
warp "moscovia",203,80;
end;
@@ -8247,7 +8246,7 @@ moscovia,213,216,3 script Ryubaba#rus08 4_F_RUSWOMAN2,{
mes "[Ryubaba]";
mes "I have to repent for my sins and atone for them for the rest of my life.";
delitem 7883,1; //Pointed_Wooden_Flute
- set rhea_rus_ring,9;
+ rhea_rus_ring = 9;
getitem 7877,1; //Red_Ring
if (checkre(3)) {
if (BaseLevel < 56) getexp 470,0;
@@ -8353,7 +8352,7 @@ moscovia,223,210,3 script Little Boy#rus09 4_M_RUSCHILD,{
mes "[Little Boy]";
mes "Sister Ryubaba likes presents! Especially flowers such as roses. She believes that they resemble her.";
if (countitem(529)) delitem 529,1; else delitem 538,1;
- set rhea_rus_ring,3;
+ rhea_rus_ring = 3;
close;
}
mes "[Little Boy]";
@@ -8423,7 +8422,7 @@ mosk_fild02,157,233,0 script Shepherdess#rus10 1_F_04,{
next;
mes "[Shepherdess]";
mes "I am an excellent flute player! If you get me enough Pointed Branches, I will make a flute from them and play beautiful music for you. Please~!";
- set rhea_rus_ring,6;
+ rhea_rus_ring = 6;
close;
} else if (rhea_rus_ring == 6) {
if (countitem(7882) > 24) {
@@ -8477,7 +8476,7 @@ mosk_fild02,157,233,0 script Shepherdess#rus10 1_F_04,{
mes "- ^0000ffShepherdess gives me the^000000 -";
mes "- ^0000ff'Pointed Wooden Flute'!!^000000 -";
delitem 7882,25;
- set rhea_rus_ring,7;
+ rhea_rus_ring = 7;
getitem 7883,1;
close;
}
@@ -8604,7 +8603,7 @@ moscovia,166,145,1 script Worried Mother#rus19 4_F_RUSWOMAN3,{
next;
mes "[Worried Mother]";
mes "Please, please find my daughter.";
- set rhea_rus_hair,1;
+ rhea_rus_hair = 1;
close;
} else if (rhea_rus_hair == 1) {
mes "[Worried Mother]";
@@ -8627,7 +8626,7 @@ moscovia,166,145,1 script Worried Mother#rus19 4_F_RUSWOMAN3,{
next;
mes "[Worried Mother]";
mes "I'm not sure where she would be but it has to be somewhere near water. Please, find where my daughter is. I beg of you.";
- set rhea_rus_hair,2;
+ rhea_rus_hair = 2;
close;
} else if (rhea_rus_hair > 1 && rhea_rus_hair < 9) {
mes "[Worried Mother]";
@@ -8732,7 +8731,7 @@ OnTouch:
mes "- As soon as you touch the -";
mes "- cool damp hair, you seem -";
mes "- the feel the sadness within -";
- set rhea_rus_hair,9;
+ rhea_rus_hair = 9;
getitem 7878,2;
close;
} else if (rhea_rus_hair > 8) {
@@ -8846,7 +8845,7 @@ mosk_fild02,124,202,3 script Lusalka#rus23 4_F_RUSGREEN,{
mes "- ^0000ffI recieve the^000000 -";
mes "- ^0000ffgolden earrings^000000 -";
mes "- ^0000fffrom Lusalka!^000000 -";
- set rhea_rus_hair,3;
+ rhea_rus_hair = 3;
donpcevent "Lusalka#rus23::OnDisable";
close;
} else if (rhea_rus_hair > 2 && rhea_rus_hair < 7) {
@@ -8926,7 +8925,7 @@ mosk_fild02,124,202,3 script Lusalka#rus23 4_F_RUSGREEN,{
mes "["+ strcharinfo(0) +"]";
mes "W, who are you!? Ahkkk!!";
sc_start SC_BLIND,10000,0;
- set rhea_rus_hair,8;
+ rhea_rus_hair = 8;
donpcevent "Lusalka#rus23::OnDisable";
close;
} else if (rhea_rus_hair > 7) {
@@ -9058,7 +9057,7 @@ prontera,228,279,3 script Wanderer#rus24 4_M_RUSMAN2,{
mes "Though, he did tell";
mes "me that he wanted";
mes "to travel to a desert.";
- set rhea_rus_hair,4;
+ rhea_rus_hair = 4;
close;
} else if (rhea_rus_hair > 3 && rhea_rus_hair < 7) {
mes "[A Wanderer from a strange land]";
@@ -9138,7 +9137,7 @@ morocc,165,82,0 script Morroc Villager#rus25 1_M_02,{
next;
mes "[Morroc Villager]";
mes "Yep that's gotta be who you're looking for. I can see his gloomy face right now... that poor sad man.";
- set rhea_rus_hair,5;
+ rhea_rus_hair = 5;
close;
} else if (rhea_rus_hair > 4 && rhea_rus_hair < 7) {
mes "[Morroc Villager]";
@@ -9242,7 +9241,7 @@ moc_pryd04,126,120,0 script Soldier#rus26 4_M_RUSMAN1,{
mes "[A gloomy looking soldier]";
mes "I, I was a coward. I was too afraid of drowning to pull her out of the marsh. Too afraid of....";
mes "Oh... Svetlana!!!";
- set rhea_rus_hair,6;
+ rhea_rus_hair = 6;
close;
} else if (rhea_rus_hair == 6) {
if (getequipid(EQI_SHOES) != 2429) {
@@ -9278,7 +9277,7 @@ moc_pryd04,126,120,0 script Soldier#rus26 4_M_RUSMAN1,{
next;
mes "[A gloomy looking soldier]";
mes "Before the full moon, I will be back to Moscovia and meet her. I will come back so strong and happy that when I go to see her she will not suffer anymore.";
- set rhea_rus_hair,7;
+ rhea_rus_hair = 7;
close;
} else if (rhea_rus_hair == 7) {
mes "[A gloomy looking soldier]";
@@ -9364,7 +9363,7 @@ OnTouch:
next;
mes "[Voice unidentified]";
mes "Show me what you can do.";
- set rhea_rus_quiz,1;
+ rhea_rus_quiz = 1;
close;
}
}
@@ -9411,16 +9410,16 @@ mosk_que,45,131,0 script Stone Furnace#rus28 HIDDEN_NPC,{
mes "[Marozka's Guard]";
mes "How did this rat get inside the cave?!";
announce "Marozka's Guard : Invader! Search the whole cave!!",bc_map,0x87CEEB;
- set rhea_rus_quiz,2;
+ rhea_rus_quiz = 2;
initnpctimer;
monster "mosk_que",49,156,"Marozka's Guard",1889,1,"Stone Furnace#rus28::OnMyMobDead";
- set $@rus_req01,1;
+ $@rus_req01 = 1;
close;
}
mes "[Marozka's Guard]";
mes "How did this rat get inside the cave?!";
announce "Marozka's Guard : Invader! Search the whole cave!!",bc_map,0x87CEEB;
- set rhea_rus_quiz,2;
+ rhea_rus_quiz = 2;
close;
}
}
@@ -9428,17 +9427,17 @@ mosk_que,45,131,0 script Stone Furnace#rus28 HIDDEN_NPC,{
close;
OnInit:
- set $@rus_req01,0;
+ $@rus_req01 = 0;
end;
OnMyMobDead:
stopnpctimer;
- set $@rus_req01,0;
+ $@rus_req01 = 0;
announce "Mazroka : You are truly brave. When you get the cookies and apples, come to see me.",bc_map,0x87CEEB;
end;
OnTimer300000:
- set $@rus_req01,0;
+ $@rus_req01 = 0;
killmonster "mosk_que","Stone Furnace#rus28::OnMyMobDead";
end;
}
@@ -9473,7 +9472,7 @@ mosk_que,56,202,0 script Occult Apple Tree#rus29 HIDDEN_NPC,{
}
mes "- ^0000ff You get 100 Apples !!^000000 -";
announce "Mazroka : You are truly brave. When you get the cookies and apples, come to see me.",bc_map,0x87CEEB;
- set rhea_rus_quiz,3;
+ rhea_rus_quiz = 3;
close;
}
}
@@ -9520,16 +9519,16 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
next;
mes "[Marozka]";
mes "I will begin making it now... let me see... Could you please come back to me in an hour?";
- set rhea_rus_quiz,4;
- set rus_time01,gettime(3);
- set rus_time02,gettime(4);
+ rhea_rus_quiz = 4;
+ rus_time01 = gettime(3);
+ rus_time02 = gettime(4);
close;
} else if (rhea_rus_quiz == 4) {
if (rus_time01 < gettime(3) || rus_time02 < gettime(4) || (rus_time02 == 6 && gettime(4) == 0)) {
mes "[Marozka]";
mes "Ah, just in time.";
mes "I have finally finished making the 'Golden Thread'. Just wait one more second and it'll be ready.";
- set rhea_rus_quiz,28;
+ rhea_rus_quiz = 28;
close;
}
mes "[Marozka]";
@@ -9561,7 +9560,7 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
next;
mes "[Marozka]";
mes "That was a test of your strength. Now you must pass the test of mind and wisdom.";
- set rhea_rus_quiz,29;
+ rhea_rus_quiz = 29;
close;
} else if (rhea_rus_quiz == 29) {
if (getequipid(EQI_SHOES) != 2429) {
@@ -9582,32 +9581,32 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
mes "[Marozka]";
mes "You will... Ok, let's get to it. You must answer all of these questions correctly in order to pass the test.";
next;
- set .@rus_quiz01,0;
+ .@rus_quiz01 = 0;
mes "[Marozka]";
mes "What is deaf, dumb, and blind and always tells the truth?";
next;
- set .@j,select("A Poring:A Picky:A Mirror:A Tree");
- set .@rus_quiz01,(.@j==3)?.@rus_quiz01+1:.@rus_quiz01;
+ .@j = select("A Poring:A Picky:A Mirror:A Tree");
+ .@rus_quiz01 = (.@j==3)?.@rus_quiz01+1:.@rus_quiz01;
mes "[Marozka]";
mes "If 4 cats can catch 4 mice every 4 minutes, what is the minimum number of cats needed to get 10 mice in 10 minutes?";
next;
- set .@j,select("4:5:6:10");
- set .@rus_quiz01,(.@j==1)?.@rus_quiz01+1:.@rus_quiz01;
+ .@j = select("4:5:6:10");
+ .@rus_quiz01 = (.@j==1)?.@rus_quiz01+1:.@rus_quiz01;
mes "[Marozka]";
mes "Which of these gets shorter during winter and longer during summer?";
next;
- set .@j,select("Sky:Day:Waves:Wind");
- set .@rus_quiz01,(.@j==2)?.@rus_quiz01+1:.@rus_quiz01;
+ .@j = select("Sky:Day:Waves:Wind");
+ .@rus_quiz01 = (.@j==2)?.@rus_quiz01+1:.@rus_quiz01;
mes "[Marozka]";
mes "Doris Etticoat, wears a petticoat and has a red nose; the longer she stands, the shorter she grows. What is she?";
next;
- set .@j,select("A Star:A Candle:A Sword:The Moon");
- set .@rus_quiz01,(.@j==2)?.@rus_quiz01+1:.@rus_quiz01;
+ .@j = select("A Star:A Candle:A Sword:The Moon");
+ .@rus_quiz01 = (.@j==2)?.@rus_quiz01+1:.@rus_quiz01;
mes "[Marozka]";
mes "My top and bottom are twins of a kind. The middle of me makes one body combined. If I stand tall and still, run faster I will. What am I?";
next;
- set .@j,select("A Woman:Valkyrie:The Moon:An Hourglass");
- set .@rus_quiz01,(.@j==4)?.@rus_quiz01+1:.@rus_quiz01;
+ .@j = select("A Woman:Valkyrie:The Moon:An Hourglass");
+ .@rus_quiz01 = (.@j==4)?.@rus_quiz01+1:.@rus_quiz01;
mes "[Marozka]";
mes "Now let's see how you did.";
next;
@@ -9628,7 +9627,7 @@ mosk_fild02,243,270,0 script Marozka#rus31 4_M_LGTGRAND,{
next;
mes "[Marozka]";
mes "I hope you help Maria with your strength and kindness.";
- set rhea_rus_quiz,30;
+ rhea_rus_quiz = 30;
getitem 7879,10;
close;
}
@@ -9743,7 +9742,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
delitem 7877,1;
delitem 7878,2;
delitem 7879,10;
- set rhea_rus_main,10;
+ rhea_rus_main = 10;
close;
} else if (rhea_rus_main == 10) {
mes "[Baba Yaga]";
@@ -9761,7 +9760,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,11;
+ rhea_rus_main = 11;
close;
} else if (BaseClass == Job_Acolyte) {
mes "[Baba Yaga]";
@@ -9769,7 +9768,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,16;
+ rhea_rus_main = 16;
close;
} else if (BaseClass == Job_Thief) {
mes "[Baba Yaga]";
@@ -9777,7 +9776,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,21;
+ rhea_rus_main = 21;
close;
} else if (BaseClass == Job_Mage) {
mes "[Baba Yaga]";
@@ -9785,7 +9784,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,26;
+ rhea_rus_main = 26;
close;
} else if (BaseClass == Job_Swordman) {
mes "[Baba Yaga]";
@@ -9793,7 +9792,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,31;
+ rhea_rus_main = 31;
close;
}
mes "[Baba Yaga]";
@@ -9801,7 +9800,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Ok! Move, move! You better be quick or I will find a way to punish you. Ehehehehehe.";
- set rhea_rus_main,36;
+ rhea_rus_main = 36;
close;
} else if (rhea_rus_main > 10 && rhea_rus_main < 16) {
mes "[Baba Yaga]";
@@ -9845,7 +9844,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
mes "'Keep off the grass!!!'";
specialeffect EF_BEGINSPELL4;
delitem 7881,1;
- set rhea_rus_main,28;
+ rhea_rus_main = 28;
monster "mosk_dun02",52,210,"Violent Gardener",1493,1,"Baba Yaga#rus32::OnMyMobDead";
monster "mosk_dun02",53,210,"Dangerous Gardener",1500,1,"Baba Yaga#rus32::OnMyMobDead";
monster "mosk_dun02",54,210,"Brutal Gardener",1497,1,"Baba Yaga#rus32::OnMyMobDead";
@@ -9871,7 +9870,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
mes "[Baba Yaga]";
mes "'There is an order for you to open your eyes!!!'";
specialeffect2 EF_BEGINSPELL3;
- set rhea_rus_main,29;
+ rhea_rus_main = 29;
monster "mosk_dun02",52,210,"Alarm to 5 minutes",1193,1,"Baba Yaga#rus32::OnMyMobDead";
monster "mosk_dun02",53,210,"Alarm on time",1193,1,"Baba Yaga#rus32::OnMyMobDead";
monster "mosk_dun02",54,210,"Alarm past 5 minutes",1193,1,"Baba Yaga#rus32::OnMyMobDead";
@@ -9903,7 +9902,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Huh, I can make it for you right now. You have a violent temper.";
- set rhea_rus_main,44;
+ rhea_rus_main = 44;
close;
} else if (rhea_rus_main > 30 && rhea_rus_main < 36) {
mes "[Baba Yaga]";
@@ -9928,7 +9927,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
} else if (rhea_rus_main == 42) {
@@ -9943,7 +9942,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
} else if (rhea_rus_main == 43) {
@@ -9960,7 +9959,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
delitem 7880,1;
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
}
@@ -9985,7 +9984,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
} else if (rhea_rus_main == 45) {
@@ -10000,7 +9999,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
} else if (rhea_rus_main == 46) {
@@ -10015,7 +10014,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Here, help Maria with this key and watch out for Koshei. He is very dangerous. Kehehehehehe.";
- set rhea_rus_main,47;
+ rhea_rus_main = 47;
getitem 7876,1;
close;
} else if (rhea_rus_main > 46 && rhea_rus_main < 49) {
@@ -10053,7 +10052,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Bring them to me quickly! Time is running out!";
- set rhea_rus_main,50;
+ rhea_rus_main = 50;
close;
} else if (rhea_rus_main == 50) {
if (countitem(523) && countitem(12020) && countitem(610) > 1 && countitem(520) > 9) {
@@ -10105,7 +10104,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
delitem 12020,1;
delitem 610,2;
delitem 520,10;
- set rhea_rus_main,51;
+ rhea_rus_main = 51;
close;
}
mes "[Baba Yaga]";
@@ -10157,7 +10156,7 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
mes "[Baba Yaga]";
mes "Whenever you come to me, I will make you potions with just a few materials and a small fee. I hope that this will be of help to you. Kehehehehehe.";
- set rhea_rus_main,53;
+ rhea_rus_main = 53;
close;
} else if (rhea_rus_main > 52) {
mes "[Baba Yaga]";
@@ -10167,25 +10166,25 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
case 1:
if (countitem(501) > 0 && countitem(1092) > 0 && countitem(7134) > 0 && countitem(512) > 4) {
if (Zeny > 19) {
- set .@red_potion01,countitem(501);
- set .@red_tube01,countitem(1092);
- set .@red_cup01,countitem(7134);
- set .@red_apple01,countitem(512);
- set .@red_zeny01,Zeny;
+ .@red_potion01 = countitem(501);
+ .@red_tube01 = countitem(1092);
+ .@red_cup01 = countitem(7134);
+ .@red_apple01 = countitem(512);
+ .@red_zeny01 = Zeny;
while(1) {
if (!.@red_potion01 || !.@red_tube01 || !.@red_cup01 || .@red_apple01 < 5 || .@red_zeny01 < 20) break;
else {
- set .@red_slim01,.@red_slim01+1;
- set .@red_potion01,.@red_potion01-1;
- set .@redpotion_send,.@redpotion_send+1;
- set .@red_tube01,.@red_tube01-1;
- set .@redtube_send,.@redtube_send+1;
- set .@red_cup01,.@red_cup01-1;
- set .@redcup_send,.@redcup_send+1;
- set .@red_apple01,.@red_apple01-5;
- set .@redapple_send,.@redapple_send+5;
- set .@red_zeny01,.@red_zeny01-20;
- set .@redzeny_sen,.@redzeny_send+20;
+ .@red_slim01 += 1;
+ .@red_potion01 -= 1;
+ .@redpotion_send += 1;
+ .@red_tube01 -= 1;
+ .@redtube_send += 1;
+ .@red_cup01 -= 1;
+ .@redcup_send += 1;
+ .@red_apple01 -= 5;
+ .@redapple_send += 5;
+ .@red_zeny01 -= 20;
+ .@redzeny_send += 20;
}
}
mes "[Baba Yaga]";
@@ -10212,12 +10211,12 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
} else break;
}
- set .@redpotion_send,.@input;
- set .@redtube_send,.@input;
- set .@redcup_send,.@input;
- set .@redapple_send,.@input * 5;
- set .@redzeny_send,.@input * 20;
- set .@total_red01,.@input;
+ .@redpotion_send = .@input;
+ .@redtube_send = .@input;
+ .@redcup_send = .@input;
+ .@redapple_send = .@input * 5;
+ .@redzeny_send = .@input * 20;
+ .@total_red01 = .@input;
if (countitem(501) < .@redpotion_send || countitem(1092) < .@redtube_send || countitem(7134) < .@redcup_send || countitem(512) < .@redapple_send || Zeny < .@redzeny_send) {
mes "[Baba Yaga]";
mes "Where are the materials?";
@@ -10254,25 +10253,25 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
case 2:
if (countitem(503) && countitem(1092) && countitem(7134) && countitem(513) > 9) {
if (Zeny > 49) {
- set .@yell_potion01,countitem(503);
- set .@yell_tube01,countitem(1092);
- set .@yell_cup01,countitem(7134);
- set .@yell_banana01,countitem(513);
- set .@yell_zeny01,Zeny;
+ .@yell_potion01 = countitem(503);
+ .@yell_tube01 = countitem(1092);
+ .@yell_cup01 = countitem(7134);
+ .@yell_banana01 = countitem(513);
+ .@yell_zeny01 = Zeny;
while(1) {
if (!.@yell_potion01 || !.@yell_tube01 || !.@yell_cup01 || .@yell_banana01 < 10 || .@yell_zeny01 < 50) break;
else {
- set .@yell_slim01,.@yell_slim01+1;
- set .@yell_potion01,.@yell_potion01-1;
- set .@yellpotion_send,.@yellpotion_send+1;
- set .@yell_tube01,.@yell_tube01-1;
- set .@yelltube_send,.@yelltube_send+1;
- set .@yell_cup01,.@yell_cup01-1;
- set .@yellcup_send,.@yellcup_send+1;
- set .@yell_banana01,.@yell_banana01-10;
- set .@yellbanana_send,.@yellbanana_send+10;
- set .@yell_zeny01,.@yell_zeny01-50;
- set .@yellzeny_send,.@yellzeny_send+50;
+ ++.@yell_slim01;
+ --.@yell_potion01;
+ ++.@yellpotion_send;
+ --.@yell_tube01;
+ ++.@yelltube_send;
+ --.@yell_cup01;
+ ++.@yellcup_send;
+ .@yell_banana01 -= 10;
+ .@yellbanana_send += 10;
+ .@yell_zeny01 -= 50;
+ .@yellzeny_send += 50;
}
}
mes "[Baba Yaga]";
@@ -10299,12 +10298,12 @@ mosk_dun02,48,214,5 script Baba Yaga#rus32 4_F_BABAYAGA,{
next;
} else break;
}
- set .@yellpotion_send,.@input;
- set .@yelltube_send,.@input;
- set .@yellcup_send,.@input;
- set .@yellbanana_send,.@input*10;
- set .@yellzeny_send,.@input*50;
- set .@total_yell01,.@input;
+ .@yellpotion_send = .@input;
+ .@yelltube_send = .@input;
+ .@yellcup_send = .@input;
+ .@yellbanana_send = .@input*10;
+ .@yellzeny_send = .@input*50;
+ .@total_yell01 = .@input;
if (countitem(503) < .@yellpotion_send || countitem(1092) < .@yelltube_send || countitem(7134) < .@yellcup_send || countitem(513) < .@yellbanana_send || Zeny < .@yellzeny_send) {
mes "[Baba Yaga]";
mes "Where are the materials?";
@@ -10459,7 +10458,7 @@ OnTouch:
next;
mes "["+ strcharinfo(0) +"]";
mes "Ok, then. Let's get back to Baba Yaga...";
- set rhea_rus_main,41;
+ rhea_rus_main = 41;
close;
} else if (rhea_rus_main == 41) {
mes "[Cow]";
@@ -10558,7 +10557,7 @@ OnTouch:
next;
mes "["+ strcharinfo(0) +"]";
mes "Ok, then. Let's get back to Baba Yaga...";
- set rhea_rus_main,41;
+ rhea_rus_main = 41;
close;
} else if (rhea_rus_main == 41) {
mes "[Cow]";
@@ -10646,7 +10645,7 @@ OnTouch:
next;
mes "["+ strcharinfo(0) +"]";
mes "Ok, then. Let's get back to Baba Yaga...";
- set rhea_rus_main,41;
+ rhea_rus_main = 41;
close;
} else if (rhea_rus_main == 41) {
mes "[Cow]";
@@ -10701,7 +10700,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
next;
mes "[Noisy Coffin]";
mes "Heek, heeee! Heeeeeek!";
- set rhea_rus_main,18;
+ rhea_rus_main = 18;
next;
} else {
mes "["+ strcharinfo(0) +"]";
@@ -10732,7 +10731,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
next;
mes "[Noisy Coffin]";
mes "Heek, heeee! Heeeeeek!";
- set rhea_rus_main,19;
+ rhea_rus_main = 19;
next;
} else {
mes "["+ strcharinfo(0) +"]";
@@ -10764,7 +10763,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
mes "[Noisy Coffin]";
mes "Heek, heeee! Heeeeeek!";
delitem 523,1;
- set rhea_rus_main,17;
+ rhea_rus_main = 17;
next;
} else {
mes "["+ strcharinfo(0) +"]";
@@ -10804,7 +10803,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
mes "[Noisy Coffin]";
mes "Heeeek! Heeeeeee!!!! I am scared! Stop it!!";
specialeffect EF_HOLYHIT;
- set rhea_rus_main,20;
+ rhea_rus_main = 20;
next;
} else {
mes "["+ strcharinfo(0) +"]";
@@ -10827,7 +10826,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
if (rhea_rus_main < 20) {
mes "["+ strcharinfo(0) +"]";
mes "... Not effective...";
- set rhea_rus_main,16;
+ rhea_rus_main = 16;
close;
}
mes "["+ strcharinfo(0) +"]";
@@ -10840,7 +10839,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
mes "["+ strcharinfo(0) +"]";
mes "Hu, the job has been done.";
mes "Let's get back to Baba Yaga.";
- set rhea_rus_main,42;
+ rhea_rus_main = 42;
close;
} else if (rhea_rus_main == 20) {
mes "["+ strcharinfo(0) +"]";
@@ -10853,7 +10852,7 @@ mosk_dun02,65,232,0 script Noisy Coffin#rus36 4_NFCOFFIN,{
mes "["+ strcharinfo(0) +"]";
mes "Hu, the job has been done.";
mes "Let's get back to Baba Yaga.";
- set rhea_rus_main,42;
+ rhea_rus_main = 42;
close;
} else if (rhea_rus_main == 42) {
mes "["+ strcharinfo(0) +"]";
@@ -10911,7 +10910,7 @@ treasure01,165,58,0 script Old Treasure Box#rus37 HIDDEN_NPC,{
mes "- The light reflected goes to the woman shape and fumes comes from the box and it opens !! -";
next;
mes "- ^0000ff You find Baba Yaga's spoon !!^000000 -";
- set rhea_rus_main,43;
+ rhea_rus_main = 43;
getitem 7880,1;
close;
} else if (rhea_rus_main == 43) {
@@ -11008,7 +11007,7 @@ treasure01,24,39,0 script Old Bed#rus38 HIDDEN_NPC,{
next;
mes "["+ strcharinfo(0) +"]";
mes "Eek, it would be best to run away now!";
- set rhea_rus_main,22;
+ rhea_rus_main = 22;
close2;
warp "treasure01",68,28;
end;
@@ -11051,7 +11050,7 @@ treasure01,98,119,0 script Dirty Wall#rus39 HIDDEN_NPC,{
next;
mes "["+ strcharinfo(0) +"]";
mes "...What is this talking about...?";
- if (rhea_rus_main == 22) set rhea_rus_main,23;
+ if (rhea_rus_main == 22) rhea_rus_main = 23;
close;
}
end;
@@ -11066,7 +11065,7 @@ treasure01,61,183,0 script Old_Wooden_Box#rus40 HIDDEN_NPC,{
mes "- You take out something glimmering from the box -";
next;
mes "- ^0000ffYou find the handle of a broken key !!^000000 -";
- set rhea_rus_main,24;
+ rhea_rus_main = 24;
close;
}
mes "- You try to put your hand inside it but the gap is too small to do it -";
@@ -11092,7 +11091,7 @@ treasure01,27,115,0 script Opened Treasure Chest#41 HIDDEN_NPC,{
mes "["+ strcharinfo(0) +"]";
mes "...!? What is this?!";
next;
- set .@russ_key02,rand(1,7);
+ .@russ_key02 = rand(1,7);
if (rand(1,7) == 3) {
mes "- ^0000ffYou find the handle of a broken key in the junk !!^000000 -";
next;
@@ -11115,7 +11114,7 @@ treasure01,27,115,0 script Opened Treasure Chest#41 HIDDEN_NPC,{
mes "Eh, this may be...";
next;
mes "- You adjust the piece of the broken key with the its handle and they make a sound and become a key !!-";
- set rhea_rus_main,25;
+ rhea_rus_main = 25;
close;
} else if (rhea_rus_main > 24 && rhea_rus_main < 26) {
mes "- The junk box containig the piece of the broken key -";
@@ -11187,7 +11186,7 @@ amatsu,233,234,3 script Momotoro Publisher#rus42 4_F_JPN2,{
mes "[Momotoro Publisher]";
mes "Thank you for buying our books. If you need more books, contact us please.";
Zeny -= 5000;
- set rhea_rus_main,27;
+ rhea_rus_main = 27;
getitem 7881,1;
close;
} else if (rhea_rus_main > 26 && rhea_rus_main < 31) {
@@ -11223,7 +11222,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "- You kick the jar -";
mes "- it rolls to the floor -";
mes "- as bugs come out!! -";
- set rhea_rus_main,32;
+ rhea_rus_main = 32;
monster "mosk_dun02",58,220,"Thief Bug Male",1054,1,"House Ghost Jar#rus43::OnMyMobDead";
monster "mosk_dun02",59,220,"Ancient Worm",1305,1,"House Ghost Jar#rus43::OnMyMobDead";
monster "mosk_dun02",60,220,"Thief Bug Male",1054,1,"House Ghost Jar#rus43::OnMyMobDead";
@@ -11261,7 +11260,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
}
mes "[House Ghost]";
mes "What about a card game? I was good at those games! Ah, where are my cards? Wait here! I'll find them!";
- set rhea_rus_main,33;
+ rhea_rus_main = 33;
close;
} else if (rhea_rus_main == 33) {
mes "[House Ghost]";
@@ -11274,8 +11273,8 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "["+ strcharinfo(0) +"]";
mes "Ok! It will be fun. Let's do it.";
next;
- set .@rugame_turn01,0;
- set .@ruuser_score01,0;
+ .@rugame_turn01 = 0;
+ .@ruuser_score01 = 0;
while(.@rugame_turn01 != 5) {
mes "[House Ghost]";
mes "Ok, first let me shuffle these cards around.";
@@ -11303,7 +11302,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "What is this card?";
cutin "sorry.bmp",4;
next;
- set .@rucard_game01,rand(1,3);
+ .@rucard_game01 = rand(1,3);
switch(select("Poring:Angeling:Ghostring")) {
case 1:
mes "["+ strcharinfo(0) +"]";
@@ -11321,8 +11320,8 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "You got it right. You are good.";
mes "Can you do it next time?";
- set .@rugame_turn01,.@rugame_turn01+1;
- set .@ruuser_score01,.@ruuser_score01+1;
+ ++.@rugame_turn01;
+ ++.@ruuser_score01;
cutin "",255;
next;
} else {
@@ -11336,7 +11335,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "Huuu...";
mes "Better luck next time!";
- set .@rugame_turn01,.@rugame_turn01+1;
+ ++.@rugame_turn01;
cutin "",255;
next;
}
@@ -11357,8 +11356,8 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "You got it right. You are good.";
mes "Can you do it next time?";
- set .@rugame_turn01,.@rugame_turn01+1;
- set .@ruuser_score01,.@ruuser_score01+1;
+ ++.@rugame_turn01;
+ ++.@ruuser_score01;
cutin "",255;
next;
} else {
@@ -11372,7 +11371,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "Huuu...";
mes "Better luck next time!";
- set .@rugame_turn01,.@rugame_turn01+1;
+ ++.@rugame_turn01;
cutin "",255;
next;
}
@@ -11393,8 +11392,8 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "You got it right. You are good.";
mes "Can you do it next time?";
- set .@rugame_turn01,.@rugame_turn01+1;
- set .@ruuser_score01,.@ruuser_score01+1;
+ ++.@rugame_turn01;
+ ++.@ruuser_score01;
cutin "",255;
next;
} else {
@@ -11408,7 +11407,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
mes "[House Ghost]";
mes "Huuu...";
mes "Better luck next time!";
- set .@rugame_turn01,.@rugame_turn01+1;
+ ++.@rugame_turn01;
cutin "",255;
next;
}
@@ -11417,7 +11416,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
if (.@ruuser_score01 == 3) {
mes "[House Ghost]";
mes "You are better than I thought.";
- set rhea_rus_main,34;
+ rhea_rus_main = 34;
close;
}
mes "["+ strcharinfo(0) +"]";
@@ -11457,7 +11456,7 @@ mosk_dun02,57,220,0 script House Ghost Jar#rus43 HIDDEN_NPC,{
next;
mes "[House Ghost]";
mes "I will never forget your kindness of entertaining me.";
- set rhea_rus_main,45;
+ rhea_rus_main = 45;
close;
} else if (rhea_rus_main == 45) {
mes "[House Ghost]";
@@ -11523,7 +11522,7 @@ payon,65,119,0 script Broom Grandma#rus44 1_F_ORIENT_04,{
next;
mes "[Broom Grandma]";
mes "Ah.. What should I do...";
- set rhea_rus_main,37;
+ rhea_rus_main = 37;
close;
} else if (rhea_rus_main > 36 && rhea_rus_main < 41) {
mes "[Broom Grandma]";
@@ -11579,7 +11578,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
mes "[Ghost Tree]";
mes "Eh.. Let's see. This will be a good start! Let's get started if you are ready!";
- set rhea_rus_main,38;
+ rhea_rus_main = 38;
close;
} else if (rhea_rus_main == 38) {
mes "[Ghost Tree]";
@@ -11609,15 +11608,15 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "[Ghost Tree]";
mes "Ok then, who was the first?!";
next;
- set .@rus_kafra01,0;
+ .@rus_kafra01 = 0;
input .@input$;
if (.@input$ == "Curly Sue") {
- set .@rus_kafra01,.@rus_kafra01+1;
+ ++.@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +" !!";
next;
} else {
- set .@rus_kafra01,.@rus_kafra01;
+ //.@rus_kafra01 = .@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +"!!";
next;
@@ -11627,12 +11626,12 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
input .@input$;
if (.@input$ == "Jasmine") {
- set .@rus_kafra01,.@rus_kafra01+1;
+ ++.@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +" !!";
next;
} else {
- set .@rus_kafra01,.@rus_kafra01;
+ //.@rus_kafra01 = .@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +"!!";
next;
@@ -11642,12 +11641,12 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
input .@input$;
if (.@input$ == "Roxie") {
- set .@rus_kafra01,.@rus_kafra01+1;
+ ++.@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +" !!";
next;
} else {
- set .@rus_kafra01,.@rus_kafra01;
+ //.@rus_kafra01 = .@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +"!!";
next;
@@ -11657,12 +11656,12 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
input .@input$;
if (.@input$ == "Pavianne") {
- set .@rus_kafra01,.@rus_kafra01+1;
+ ++.@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +" !!";
next;
} else {
- set .@rus_kafra01,.@rus_kafra01;
+ //.@rus_kafra01 = .@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +"!!";
next;
@@ -11672,12 +11671,12 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
input .@input$;
if (.@input$ == "Blossom") {
- set .@rus_kafra01,.@rus_kafra01+1;
+ ++.@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +" !!";
next;
} else {
- set .@rus_kafra01,.@rus_kafra01;
+ //.@rus_kafra01 = .@rus_kafra01;
mes "["+ strcharinfo(0) +"]";
mes ""+ .@input$ +"!!";
next;
@@ -11701,7 +11700,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "[Ghost Tree]";
mes "Ok, let's see if you are good next time.";
mes "Gear yourself up!";
- set rhea_rus_main,39;
+ rhea_rus_main = 39;
close;
} else if (rhea_rus_main == 39) {
mes "[Ghost Tree]";
@@ -11761,7 +11760,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
mes "[Ghost Tree]";
mes "Gear yourself up and come to me again!";
- set rhea_rus_main,40;
+ rhea_rus_main = 40;
close;
} else if (rhea_rus_main == 40) {
mes "[Ghost Tree]";
@@ -11776,8 +11775,8 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "["+ strcharinfo(0) +"]";
mes "Ok! I will do it!";
next;
- set .@rustree_turn01,0;
- set .@rususer_score01,0;
+ .@rustree_turn01 = 0;
+ .@rususer_score01 = 0;
while(.@rustree_turn01 != 3) {
mes "[Ghost Tree]";
mes "I cast first.";
@@ -11785,7 +11784,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "- Ghost Tree casts a dice. The dice falls down, rotates and stops there-";
specialeffect EF_STUNATTACK;
next;
- set .@tree_dice01,rand(1,6);
+ .@tree_dice01 = rand(1,6);
setarray .@emo[1], 58,59,60,61,62,63;
mes "[Ghost Tree]";
mes "I've got ^0000ffNumber "+.@tree_dice01+"^000000.";
@@ -11797,7 +11796,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "-You cast a dice. The dice falls down, rotates and stops there-";
specialeffect2 EF_STUNATTACK;
next;
- set .@rus_dice01,rand(1,6);
+ .@rus_dice01 = rand(1,6);
mes "["+ strcharinfo(0) +"]";
mes "Let's see...";
next;
@@ -11809,15 +11808,15 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
next;
mes "[Ghost Tree]";
mes "You seem lucky...";
- set .@rustree_turn01,.@rustree_turn01+1;
- set .@rususer_score01,.@rususer_score01+1;
+ ++.@rustree_turn01;
+ ++.@rususer_score01;
next;
} else {
mes "Let's see................... It is ^0000ff "+.@rus_dice01+" ^000000...";
mes "[Ghost Tree]";
mes "Huuu...";
emotion e_heh;
- set .@rustree_turn01,.@rustree_turn01+1;
+ ++.@rustree_turn01;
next;
}
}
@@ -11832,7 +11831,7 @@ pay_dun04,163,186,0 script Ghost Tree#rus45 HIDDEN_NPC,{
mes "I can say that you are fun. If possible, play with me again. And take them.";
next;
mes "- ^0000ff You receive the best broom from Payon !!^000000 - ";
- set rhea_rus_main,46;
+ rhea_rus_main = 46;
close;
}
mes "[Ghost Tree]";
@@ -11856,7 +11855,7 @@ mosk_dun01,3,3,3 script Koshei GlobalVar#admin 4_F_RUSCHILD,{
callfunc "F_GM_NPC";
mes "[Koshei GlobalVar]";
mes "Please enter the password";
- set .@i, callfunc("F_GM_NPC","orchid",1);
+ .@i = callfunc("F_GM_NPC","orchid",1);
next;
if (.@i == 0) {
mes "[Koshei GlobalVar]";
@@ -11890,13 +11889,13 @@ mosk_dun01,3,3,3 script Koshei GlobalVar#admin 4_F_RUSCHILD,{
case 1:
mes "[Koshei GlobalVar]";
mes "GlobalVar $@rus_req02 will now be set to '0'";
- set $@rus_req02,0;
+ $@rus_req02 = 0;
donpcevent "Koshei#rus47::OnDisable";
close;
case 2:
mes "[Koshei GlobalVar]";
mes "GlobalVar $@rus_req02 will now be set to '1'";
- set $@rus_req02,1;
+ $@rus_req02 = 1;
donpcevent "Koshei#rus47::OnEnable";
close;
case 3:
diff --git a/npc/quests/quests_nameless.txt b/npc/quests/quests_nameless.txt
index 109a97f7e..55d689ec5 100644
--- a/npc/quests/quests_nameless.txt
+++ b/npc/quests/quests_nameless.txt
@@ -78,7 +78,7 @@ OnTouch:
mes "your arrival at ^6B8E23Prontera";
mes "Church^000000. Please visit him";
mes "as soon as you can.";
- set aru_monas,1;
+ aru_monas = 1;
setquest 17000;
close2;
hideonnpc "Agent#pc1";
@@ -132,7 +132,7 @@ cmd_in02,174,89,7 script Ordinary Man#pc1 4W_M_01,{
mes "want anyone else to";
mes "overhear us talking.";
close2;
- set aru_monas,3;
+ aru_monas = 3;
warp "cmd_in02",110,53;
end;
}
@@ -193,7 +193,7 @@ cmd_in02,111,52,3 script Ordinary Man#pc2 4W_M_01,{
mes "I'm prohibited from entering";
mes "Arunafeltz so I wasn't able";
mes "to investigate any further.";
- set aru_monas,4;
+ aru_monas = 4;
changequest 17001,17002;
close;
}
@@ -234,7 +234,7 @@ ra_in01,308,59,1 script Waiter#pc 4_M_RACHMAN2,{
mes "[Waiter]";
mes "Right this way.";
close2;
- set aru_monas,7;
+ aru_monas = 7;
switch(rand(1,4)) {
case 1: warp "ra_in01",303,43; end;
case 2: warp "ra_in01",304,43; end;
@@ -434,7 +434,7 @@ OnTouch:
mes "I've never tasted anything";
mes "like it! It's almost like";
mes "a dessert. God, it's good!";
- set aru_monas,8;
+ aru_monas = 8;
changequest 17003,17004;
if (Zeny > 3000) {
Zeny -= 3000;
@@ -471,7 +471,7 @@ ve_in,78,314,5 script Magistrate#Aru 4_M_DST_GRAND,{
mes "concern, but I'm really not";
mes "comfortable talking to complete";
mes "strangers about my problems.";
- set aru_monas,9;
+ aru_monas = 9;
changequest 17004,17005;
close;
}
@@ -515,7 +515,7 @@ ve_in,78,314,5 script Magistrate#Aru 4_M_DST_GRAND,{
mes "from a higher ranking officer.^000000";
mes "Oh, and you're prohibited";
mes "asking anyone else, so behave.";
- set aru_monas,11;
+ aru_monas = 11;
changequest 17006,17007;
close;
}
@@ -611,7 +611,7 @@ ve_in,78,314,5 script Magistrate#Aru 4_M_DST_GRAND,{
mes "we have to capture the";
mes "smugglers again? I don't";
mes "know what's going on...";
- set aru_monas,14;
+ aru_monas = 14;
changequest 17009,17010;
next;
mes "[Al Hamad]";
@@ -681,7 +681,7 @@ ve_in,81,296,3 script Soldier#Aru 4_M_DST_MASTER,{
mes "know if he was able to finish";
mes "interrogating the smugglers.";
mes "I'm not sure if he did since the smugglers were taken away.";
- set aru_monas,10;
+ aru_monas = 10;
changequest 17005,17006;
close;
}
@@ -723,7 +723,7 @@ ve_in,239,115,0 script Drunkard#Aru 4_M_DESERT,{
mes "Hah hah! He--*Hic*";
mes "He thought he saw a ^DBDB70ghost^000000!";
mes "Bwah hah hah! Oooog... Hey...";
- set aru_monas,15;
+ aru_monas = 15;
changequest 17010,17011;
next;
mes "["+strcharinfo(0)+"]";
@@ -834,7 +834,7 @@ ve_fild07,125,128,0 script Boat#Aru HIDDEN_NPC,{
mes "Hold on to something:";
mes "this will probably be";
mes "a pretty rocky ride...";
- set aru_monas,17;
+ aru_monas = 17;
changequest 17012,17013;
close2;
hideonnpc "Secret Agent#Aru";
@@ -902,7 +902,7 @@ ve_fild07,128,130,1 script Secret Agent#Aru 4W_M_01,{
mes "Hold on to something:";
mes "this will probably be";
mes "a pretty rocky ride...";
- set aru_monas,17;
+ aru_monas = 17;
changequest 17012,17013;
close2;
hideonnpc "Secret Agent#Aru";
@@ -1012,7 +1012,7 @@ nameless_i,127,207,0 script Dead Crow#Aru HIDDEN_NPC,{
mes "assails the back of your";
mes "head as you fall into";
mes "unconsciousness...^000000";
- set aru_monas,18;
+ aru_monas = 18;
close2;
warp "nameless_in",15,60;
end;
@@ -1093,7 +1093,7 @@ OnTouch:
mes "[" +strcharinfo(0)+ "]";
mes "I guess you'll have to go";
mes "right up to him and ask.";
- set aru_monas,19;
+ aru_monas = 19;
close;
}
}
@@ -1127,7 +1127,7 @@ OnTouch:
end;
OnMyMobDead:
- set @aru_monas_kill,1;
+ @aru_monas_kill = 1;
enablenpc "Out_from_Monastery";
end;
}
@@ -1137,7 +1137,7 @@ nameless_in,12,37,0 script Out_from_Monastery WARPNPC,1,1,{
OnTouch:
if (aru_monas == 19) {
- set aru_monas,20;
+ aru_monas = 20;
warp "nameless_n",168,252;
end;
}
@@ -1181,7 +1181,7 @@ OnTouch:
mes "like this. I'm going to wait";
mes "for you in the boat. Learn";
mes "what you need to learn, and then come back safe, "+strcharinfo(0)+".";
- set aru_monas,21;
+ aru_monas = 21;
changequest 17013,17014;
close2;
hideonnpc "Larjes#Monastery2";
@@ -1294,7 +1294,7 @@ nameless_n,259,218,3 script Larjes#Boat1 4W_M_01,{
mes "Anyway, we better get";
mes "going... This is huge!";
delitem 7726,1; //Token_Of_King
- set aru_monas,25;
+ aru_monas = 25;
changequest 17016,17017;
getexp (checkre(3))?100000:1000000,0;
close;
@@ -1341,7 +1341,7 @@ abbey02,224,70,0 script Books#Mona1 HIDDEN_NPC,{
mes "these old, moldy books.^000000";
next;
if(select("Examine Book:Ignore")==1) {
- set aru_monas,22;
+ aru_monas = 22;
changequest 17014,17015;
getitem 7755,1; // Reasearch_Note
readbook 7755,1;
@@ -1390,7 +1390,7 @@ abbey03,232,233,4 script Man#King 4_M_TRISTAN,{
mes "^3355FFAs you touch him, the";
mes "man suddenly jumps";
mes "up with a crazed yowl.^000000";
- set aru_monas,23;
+ aru_monas = 23;
monster "abbey03",232,232,"Dead King",1875,1,"Man#King::OnMyMobDead";
initnpctimer;
hideonnpc "Man#King";
@@ -1439,7 +1439,7 @@ abbey03,232,232,4 script Dead Man#King 4_M_TRISTAN,{
mes "This medal...";
mes "This means that";
mes "this man is...!";
- set aru_monas,24;
+ aru_monas = 24;
getitem 7726,1; //Token_of_King
changequest 17015,17016;
hideonnpc "Dead Man#King";
@@ -1499,21 +1499,21 @@ sec_in02,15,15,4 script boss::boss_aru_monas 1_M_SIGNMONK,{
close;
case 2:
input .@input,0,1000;
- set aru_monas, .@input;
+ aru_monas = .@input;
mes " ";
mes ""+aru_monas;
close;
case 3:
input .@input,0,1000;
- set prt_curse, .@input;
+ prt_curse = .@input;
mes " ";
mes ""+prt_curse;
close;
case 4:
- set prt_curse,61;
- set ra_tem_q,12; //TODO: Doesn't match Athena's current script.
- set rachel_camel,25;
- set lost_boy,0;
+ prt_curse = 61;
+ ra_tem_q = 12; //TODO: Doesn't match Athena's current script.
+ rachel_camel = 25;
+ lost_boy = 0;
close;
}
}
@@ -1641,7 +1641,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "position. I'm sorry. Please";
mes "come back and tell me if";
mes "you learn anything there.";
- set aru_monas,13;
+ aru_monas = 13;
changequest 17008,17009;
next;
mes "[Niren]";
@@ -1709,7 +1709,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "to handle it if another threat";
mes "comes from that place.";
delitem 7755,1; //Research_Note
- set aru_monas,26;
+ aru_monas = 26;
completequest 17017;
getexp (checkre(3))?50000:500000,0;
close2;
@@ -1798,7 +1798,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "Priestess Niren's mind.";
mes "For now, you'd better talk";
mes "to High Priest Zhed.^000000";
- set aru_em,11;
+ aru_em = 11;
changequest 2132,2133;
close2;
}
@@ -1863,7 +1863,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "Would you give me some";
mes "time to myself? I'll let you";
mes "know once I've made a decision.";
- set aru_em,14;
+ aru_em = 14;
close2;
}
else if (aru_em == 14) {
@@ -1949,7 +1949,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "Sure thing. You";
mes "can count on me!";
emotion e_no1,1;
- set aru_em,15;
+ aru_em = 15;
changequest 2134,2135;
close2;
}
@@ -2062,7 +2062,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "a girl named Ishmael in a";
mes "village in North Rachel.";
mes "I hope she'll help us...";
- set aru_em,17;
+ aru_em = 17;
getitem 7343,1; //File02
changequest 2136,2137;
close2;
@@ -2132,7 +2132,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "Priest Vildt realizes";
mes "what we are doing.";
delitem 7343,1; //File02
- set aru_em,20;
+ aru_em = 20;
changequest 2139,2140;
close2;
}
@@ -2183,7 +2183,7 @@ ra_temple,165,57,5 script Niren#ss 4_F_MADAME,{
mes "that it's the first time";
mes "that you've seen that";
mes "expression on her face.^000000";
- set aru_em,23;
+ aru_em = 23;
getexp (checkre(3))?100000:1000000,0;
changequest 2141,2142;
close2;
@@ -2304,7 +2304,7 @@ moc_ruins,77,167,4 script Foreign Merchant#aru1 4_M_MASKMAN,5,5,{
mes "near the pond in the middle";
mes "of Morroc? Before I leave,";
mes "I want to taste that drink...";
- set aru_em,1;
+ aru_em = 1;
setquest 2129;
close;
}
@@ -2402,7 +2402,7 @@ moc_ruins,77,167,4 script Foreign Merchant#aru1 4_M_MASKMAN,5,5,{
mes "Now why don't you";
mes "speak to him now?";
mes "Good luck!";
- set aru_em,8;
+ aru_em = 8;
changequest 2130,2131;
close;
case 2:
@@ -2449,7 +2449,7 @@ OnTouch:
moc_ruins,86,149,0 script #ForeignMerchant1 -1,3,3,{
OnTouch:
if (aru_em == 4) {
- set aru_em,5;
+ aru_em = 5;
}
end;
}
@@ -2457,15 +2457,15 @@ OnTouch:
moc_ruins,88,136,0 script #ForeignMerchant2 -1,3,3,{
OnTouch:
if (aru_em == 1) {
- set aru_em,2;
+ aru_em = 2;
}
else if (aru_em == 5) {
- set .@nawara,rand(1,10);
+ .@nawara = rand(1,10);
if (.@nawara < 5) {
hideoffnpc "Foreign Merchant#aru2";
}
else {
- set aru_em,2;
+ aru_em = 2;
}
}
end;
@@ -2474,7 +2474,7 @@ OnTouch:
moc_ruins,106,133,0 script #ForeignMerchant3 -1,3,3,{
OnTouch:
if (aru_em == 2) {
- set aru_em,3;
+ aru_em = 3;
}
end;
}
@@ -2482,7 +2482,7 @@ OnTouch:
moc_ruins,115,147,0 script #ForeignMerchant4 -1,3,3,{
OnTouch:
if (aru_em == 3) {
- set aru_em,4;
+ aru_em = 4;
}
end;
}
@@ -2552,7 +2552,7 @@ moc_ruins,101,133,7 script Foreign Merchant#aru2 4_M_MIDDLE,{
mes "of the famous fruit wine";
mes "from the old man. That";
mes "guy's pretty nice!^000000";
- set aru_em,7;
+ aru_em = 7;
hideonnpc "Foreign Merchant#aru2";
changequest 2129,2130;
close;
@@ -2633,7 +2633,7 @@ ra_temin,103,151,7 script Female Follower#em 4_F_MASK,{
mes "be best if you catch her";
mes "before she's surrounded";
mes "by Freya's followers.";
- set aru_em,10;
+ aru_em = 10;
close;
}
else if (aru_em == 10) {
@@ -2743,7 +2743,7 @@ ra_fild03,139,355,5 script Ishmael#em 4_F_CHILD,{
mes "High Priestess Niren...";
mes "I can't let her down after";
mes "she's been so good to us...";
- set aru_em,18;
+ aru_em = 18;
delitem 7343,1; //File02
changequest 2137,2138;
close;
@@ -2831,7 +2831,7 @@ ra_fild03,139,355,5 script Ishmael#em 4_F_CHILD,{
mes "written approval for";
mes "vacation from Ishmael.^000000";
delitem 725,1; //Red_Jewel
- set aru_em,19;
+ aru_em = 19;
getitem 7343,1; //File02
changequest 2138,2139;
close;
@@ -3142,7 +3142,7 @@ OnTouch:
mes "for you, and you feel a strong";
mes "aura of warmth and kindness";
mes "permeate your entire being.^000000";
- set aru_em,22;
+ aru_em = 22;
changequest 2140,2141;
close2;
warp "rachel",142,136;
@@ -3239,7 +3239,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "asking you for help,";
mes "but you don't look like";
mes "you could handle it. Sorry.";
- set diamond_edq,3;
+ diamond_edq = 3;
close;
}
else {
@@ -3297,7 +3297,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "to repay you. Please";
mes "help me if you can!";
setquest 3100;
- set diamond_edq,1;
+ diamond_edq = 1;
close;
case 2:
mes "[Muff]";
@@ -3399,7 +3399,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "of debt to get my collateral";
mes "back from that Belder.";
setquest 3100;
- set diamond_edq,1;
+ diamond_edq = 1;
close;
case 2:
mes "[Muff]";
@@ -3481,7 +3481,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "debt. I'll be waiting for";
mes "you right here, okay?";
changequest 3102,3103;
- set diamond_edq,6;
+ diamond_edq = 6;
close;
case 2:
mes "[Muff]";
@@ -3491,7 +3491,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "I'm sure you've got other";
mes "problems. If you change your";
mes "mind, though, just come back.";
- set diamond_edq,5;
+ diamond_edq = 5;
close;
}
}
@@ -3513,7 +3513,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "debt. I'll be waiting for";
mes "you right here, okay?";
changequest 3102,3103;
- set diamond_edq,6;
+ diamond_edq = 6;
close;
case 2:
mes "[Muff]";
@@ -3551,7 +3551,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "Here, please take these as";
mes "a meager reward for your help.";
completequest 3109;
- set diamond_edq,14;
+ diamond_edq = 14;
getitem 603,1; //Old_Blue_Box
getitem 608,4; //Seed_Of_Yggdrasil
next;
@@ -3571,7 +3571,7 @@ comodo,224,187,3 script Muff 4_M_04,{
mes "You'd better go back";
mes "to Dorian... Hopefully";
mes "you left it with him!";
- set diamond_edq,10;
+ diamond_edq = 10;
close;
}
if (diamond_edq > 13) {
@@ -3731,7 +3731,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "I dropped it! I have to";
mes "try to dig it up again...";
changequest 3100,3101;
- set diamond_edq,2;
+ diamond_edq = 2;
close;
case 2:
mes "[" + strcharinfo(0) + "]";
@@ -3756,7 +3756,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "I can for now. I should";
mes "bring this back to Muff.";
changequest 3101,3102;
- set diamond_edq,4;
+ diamond_edq = 4;
close;
}
if (diamond_edq > 3) {
@@ -3922,7 +3922,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "repair the Mystic";
mes "Dryer de Elegance.";
changequest 3103,3104;
- set diamond_edq,9;
+ diamond_edq = 9;
close;
}
else {
@@ -3942,7 +3942,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "Ah! This wound! It's so...";
mes "Alas! It's too emotional!";
mes "I am seriously hurt!";
- set diamond_edq,7;
+ diamond_edq = 7;
//PushPC 4 3
close;
}
@@ -3955,7 +3955,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "Your comment offends me!";
mes "I'm no mere engineer...";
mes "I'm a true virtuoso!";
- set diamond_edq,7;
+ diamond_edq = 7;
//PushPC 4 3
close;
case 3:
@@ -4053,7 +4053,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "and don't insult my pride";
mes "again. When you are ready,";
mes "please come talk to me.";
- set diamond_edq,6;
+ diamond_edq = 6;
close;
}
if (diamond_edq) == 9 {
@@ -4077,7 +4077,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
delitem 723,2; //Cardinal_Jewel
delitem 716,5; //Red_Gemstone
changequest 3104,3105;
- set diamond_edq,10;
+ diamond_edq = 10;
mes "[Dorian]";
mes "I expect you to fail";
mes "a few times, but the";
@@ -4222,7 +4222,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "I didn't really design it for the^FFFFFF ^000000 common user in mind. Well,";
mes "why don't you try it again?";
erasequest 3106;
- set diamond_edq,10;
+ diamond_edq = 10;
close;
}
if (diamond_edq) == 12 {
@@ -4241,7 +4241,7 @@ cmd_fild01,55,160,0 script Heap of Earth CLEAR_NPC,{
mes "switch. Simple, yes?";
erasequest 3106;
changequest 3105,3108;
- set diamond_edq,13;
+ diamond_edq = 13;
next;
mes "[Dorian]";
mes "Well, I'm afraid my";
@@ -4294,13 +4294,13 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
close;
}
if (diamond_edq) == 10 {
- set .@bolt_rand,rand(2,5);
+ .@bolt_rand = rand(2,5);
mes "^3355FFThis must be Dorian's";
mes "Mystic Dryer de Elegance.";
mes "What do you want to do?^000000";
next;
while(1) {
- set .@switch_sound,rand(1,4);
+ .@switch_sound = rand(1,4);
switch(select("Check the Machine:Replace the Engine:Tighten the Screw:Press a Switch")) {
case 1:
if (.@hit_status == 0) {
@@ -4318,7 +4318,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "It clicks into place";
mes "inside the engine core.^000000";
next;
- set .@engine,.@engine+1;
+ ++.@engine;
}
else if (engine > 0) {
mes "^3355FFThe ruby in the";
@@ -4338,14 +4338,14 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "^3355FF*Krrrr-Krrrrr*^000000";
mes "^3355FF*Krrrr-Krrrrr*^000000";
next;
- set .@bolt,.@bolt+1;
+ ++.@bolt;
}
else if ((.@engine == 1) && (.@bolt == .@bolt_rand)) {
mes "^3355FF*Krrrr-Krrrrr*^000000";
mes "^0000FF*Click*^000000";
next;
- set .@bolt,.@bolt+1;
- set .@bolt_suc,.@bolt_suc+1;
+ ++.@bolt;
+ ++.@bolt_suc;
}
else if ((.@engine == 1) && (.@bolt > .@bolt_rand)) {
mes "^3355FF*Krrrr-Krrrrr*^000000";
@@ -4357,7 +4357,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "You should go back";
mes "to Dorian for help.^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
}
else {
@@ -4395,7 +4395,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "first so that you can";
mes "use this machine.^000000";
setquest 3107;
- set diamond_edq,12;
+ diamond_edq = 12;
close;
}
else if ((.@engine == 1) && (.@bolt_suc == 1)) {
@@ -4419,7 +4419,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
case 1:
if (.@red >= 0) {
@@ -4432,7 +4432,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "It looks like you";
mes "chose the right switch.^000000";
next;
- set .@red,.@red+1;
+ ++.@red;
}
else {
mes "^3355FF*Whiz Whiz*^000000";
@@ -4445,7 +4445,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
}
break;
@@ -4471,7 +4471,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
case 2:
if (.@blue >= 0) {
@@ -4484,7 +4484,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "It looks like you";
mes "chose the right switch.^000000";
next;
- set .@blue,.@blue+1;
+ ++.@blue;
}
else {
mes "^3355FF*Whiz Whiz*^000000";
@@ -4497,7 +4497,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
}
break;
@@ -4522,7 +4522,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
case 3:
if (.@yellow >= 0) {
@@ -4535,7 +4535,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "It looks like you";
mes "chose the right switch.^000000";
next;
- set .@yellow,.@yellow+1;
+ ++.@yellow;
}
else {
mes "^3355FF*Whiz Whiz*^000000";
@@ -4548,7 +4548,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
}
break;
@@ -4574,7 +4574,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
case 4:
if (.@green >= 0) {
@@ -4587,7 +4587,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "It looks like you";
mes "chose the right switch.^000000";
next;
- set .@green,.@green+1;
+ ++.@green;
}
else {
mes "^3355FF*Whiz Whiz*^000000";
@@ -4600,7 +4600,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{
mes "stop. That was the wrong";
mes "switch. You'd better ask Dorian... ^FFFFFF ^000000";
setquest 3106;
- set diamond_edq,11;
+ diamond_edq = 11;
close;
}
break;
@@ -4765,7 +4765,7 @@ moc_ruins,152,147,5 script Ibrahim 4_M_JOB_HUNTER,3,3,{
mes "here. I hope you come";
mes "back with some good news.";
setquest 3110;
- set diamond_edq,15;
+ diamond_edq = 15;
close;
case 2:
mes "[Ibrahim]";
@@ -4964,7 +4964,7 @@ moc_ruins,152,147,5 script Ibrahim 4_M_JOB_HUNTER,3,3,{
mes "it's enough for what you";
mes "did, but I hope you like it.";
completequest 3118;
- set diamond_edq,26;
+ diamond_edq = 26;
getitem 732,2; //Crystal_Jewel__
getitem 603,1; //Old_Blue_Box
next;
@@ -5041,7 +5041,7 @@ moc_ruins,152,147,5 script Ibrahim 4_M_JOB_HUNTER,3,3,{
mes "dimaond. Why don't you ask";
mes "them if they'll buy that";
mes "Unlucky Emerald from you?";
- set jewel_nd,1;
+ jewel_nd = 1;
close;
case 2:
mes "[Ibrahim]";
@@ -5059,7 +5059,7 @@ moc_ruins,152,147,5 script Ibrahim 4_M_JOB_HUNTER,3,3,{
mes "I highly recommend consulting";
mes "him since he's been invaluable";
mes "in my own jewel research.";
- set jewel_nd,10;
+ jewel_nd = 10;
close;
}
}
@@ -5140,7 +5140,7 @@ moc_ruins,152,147,5 script Ibrahim 4_M_JOB_HUNTER,3,3,{
mes "him a message ahead of";
mes "time so that he'll know to";
mes "expect your arrival, okay?";
- set jewel_nd,9;
+ jewel_nd = 9;
close;
}
else if ((jewel_nd == 9) || (jewel_nd == 10)) {
@@ -5304,7 +5304,7 @@ alberta,102,80,3 script Jhonnita 4_M_04,{
mes "shop! Go... Go to Payon";
mes "and talk to Kimeunbang!";
mes "Y-yeah, and don't come back!";
- set jewel_nd,2;
+ jewel_nd = 2;
close;
}
else {
@@ -5388,7 +5388,7 @@ payon,69,65,5 script Kimeunbang 4_M_ORIENT02,{
mes "jewelers are as greedy";
mes "as you think we are. Heh.";
getitem 722,1; //Scarlet_Jewel
- set diamond_edq,16;
+ diamond_edq = 16;
close;
case 2:
mes "[Kimeunbang]";
@@ -5431,7 +5431,7 @@ payon,69,65,5 script Kimeunbang 4_M_ORIENT02,{
mes "It's... It's too big of";
mes "a risk. The rumors I keep";
mes "hearing, they're just horrible.";
- set jewel_nd,2;
+ jewel_nd = 2;
close;
}
else {
@@ -5522,7 +5522,7 @@ geffen,128,153,3 script Leblo 4_M_ALCHE_D,{
mes "I hope. Anyway, her name is";
mes "^0000FFWola^000000, and she's in Payon.";
changequest 3110,3111;
- set diamond_edq,17;
+ diamond_edq = 17;
close;
case 2:
mes "[Leblo]";
@@ -5599,7 +5599,7 @@ geffen,128,153,3 script Leblo 4_M_ALCHE_D,{
mes "Pretty useful info, huh?";
mes "Take care, my friend.";
changequest 3114,3115;
- set diamond_edq,22;
+ diamond_edq = 22;
close;
}
if (diamond_edq == 22) {
@@ -5644,7 +5644,7 @@ geffen,128,153,3 script Leblo 4_M_ALCHE_D,{
mes "break it to you, but I hear";
mes "that thing has an awful curse.";
mes "See what you can do about that!";
- set jewel_nd,2;
+ jewel_nd = 2;
close;
}
else {
@@ -5795,7 +5795,7 @@ payon_in03,167,149,3 script Wola 1_F_ORIENT_01,2,2,{
mes "["+ strcharinfo(0) +"]";
mes "You... You got it.";
changequest 3111,3112;
- set diamond_edq,19;
+ diamond_edq = 19;
close;
}
if (diamond_edq == 19) {
@@ -5850,7 +5850,7 @@ payon_in03,167,149,3 script Wola 1_F_ORIENT_01,2,2,{
mes "forgot about that for a while.";
mes "What did you say exactly?";
changequest 3112,3113;
- set diamond_edq,20;
+ diamond_edq = 20;
next;
switch(select("Will you go out with me?:Leblo's back medicine?")) {
case 1:
@@ -5916,7 +5916,7 @@ payon_in03,167,149,3 script Wola 1_F_ORIENT_01,2,2,{
mes "to get back to work: please";
mes "take care of yourself!";
changequest 3113,3114;
- set diamond_edq,21;
+ diamond_edq = 21;
close;
}
}
@@ -6004,7 +6004,7 @@ payon_in03,167,149,3 script Wola 1_F_ORIENT_01,2,2,{
mes "to get back to work: please";
mes "take care of yourself!";
changequest 3113,3114;
- set diamond_edq,21;
+ diamond_edq = 21;
close;
}
}
@@ -6028,7 +6028,7 @@ OnTouch:
mes "Oh, how can this be";
mes "happening? What ";
mes "should I do?";
- set diamond_edq,18;
+ diamond_edq = 18;
close;
}
end;
@@ -6129,7 +6129,7 @@ in_rogue,366,46,3 script Rogue Investigator 4_M_ROGUE,{
mes "find anything there, but";
mes "you can go check it out. ";
changequest 3115,3116;
- set diamond_edq,23;
+ diamond_edq = 23;
close;
}
else {
@@ -6201,7 +6201,7 @@ in_rogue,366,46,3 script Rogue Investigator 4_M_ROGUE,{
mes "Comodo where I doubt you'll";
mes "find anything. But who knows? ";
changequest 3115,3116;
- set diamond_edq,23;
+ diamond_edq = 23;
close;
}
else {
@@ -6312,7 +6312,7 @@ cmd_in02,69,188,1 script Small Safe CLEAR_NPC,{
mes "return this big diamond";
mes "to Ibrahim as soon as I can.";
changequest 3117,3118;
- set diamond_edq,25;
+ diamond_edq = 25;
close;
}
if ((diamond_edq < 22) && (diamond_edq > 24)) {
@@ -6372,7 +6372,7 @@ cmd_in02,80,189,0 script Odd Switch#Switch2 CLEAR_NPC,{
mes "^3355FF*Click Click*^000000";
next;
changequest 3116,3117;
- set diamond_edq,24;
+ diamond_edq = 24;
mes "[" + strcharinfo(0) + "]";
mes "That sound...!";
mes "Something happened,";
@@ -6418,7 +6418,7 @@ prontera,150,326,0 script Wanted Notice#edq HIDDEN_NPC,{
mes "of Forbidden Mystery, one";
mes "of the kingdom's treasures.";
setquest 3119;
- set zdan_edq,1;
+ zdan_edq = 1;
close;
}
else if (zdan_edq > 18) {
@@ -6512,7 +6512,7 @@ prontera,148,326,3 script Chief Officer#edq 4_M_JOB_KNIGHT2,{
mes "Martha, and Catfoii a.k.a.";
mes "Catfoii must be captured!";
changequest 3119,3120;
- set zdan_edq,2;
+ zdan_edq = 2;
close;
}
if ((zdan_edq == 1) && (BaseLevel < 70)) {
@@ -6686,7 +6686,7 @@ prontera,148,326,3 script Chief Officer#edq 4_M_JOB_KNIGHT2,{
mes "of Rune-Midgarts history.";
mes "Congratulations! ";
completequest 3134;
- set zdan_edq,19;
+ zdan_edq = 19;
getexp (checkre(3))?100000:1000000,0;
close;
}
@@ -6750,7 +6750,7 @@ prt_in,168,18,1 script Valdes 1_M_YOUNGKNIGHT,2,2,{
mes "I'll tell you want you really";
mes "wanna know. Heh heh~ ^666666*Hic!*^000000";
changequest 3120,3121;
- set zdan_edq,3;
+ zdan_edq = 3;
close;
case 2:
mes "[Valdes]";
@@ -6840,7 +6840,7 @@ prt_in,168,18,1 script Valdes 1_M_YOUNGKNIGHT,2,2,{
mes "^666666*Sigh*^000000 I think I'll go rest";
mes "a bit now. Good luck!";
changequest 3121,3122;
- set zdan_edq,4;
+ zdan_edq = 4;
close;
}
else {
@@ -6934,7 +6934,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "investigating the Z Gang for";
mes "the Rogue Guild and Valdes.";
changequest 3122,3123;
- set zdan_edq,5;
+ zdan_edq = 5;
break;
case 2:
mes "[Marybell]";
@@ -6997,7 +6997,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "on your arm... You really";
mes "beat him? How the hell--?";
next;
- set zdan_edq,8;
+ zdan_edq = 8;
mes "[Marybell]";
mes "Wait, lemme check";
mes "and make sure. Yeap.";
@@ -7046,7 +7046,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "but I don't think they're";
mes "that... Calculating.";
next;
- set .@a,.@a+1;
+ ++.@a;
break;
case 2:
mes "[Marybell]";
@@ -7057,7 +7057,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "like diamonds, rubies,";
mes "emeralds. Not sure why...";
next;
- set .@b,.@b+1;
+ ++.@b;
break;
case 3:
mes "[Marybell]";
@@ -7084,7 +7084,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "on where the Z Gang is";
mes "hiding. Worth a shot, yeah?";
next;
- set .@c,.@c+1;
+ ++.@c;
break;
case 4:
if ((.@a > 0) && (.@b > 0) && (.@c > 0)) {
@@ -7102,7 +7102,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "luck finding those Z Gang";
mes "guys. And take care!";
changequest 3125,3126;
- set zdan_edq,9;
+ zdan_edq = 9;
close;
}
else {
@@ -7184,7 +7184,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "Would you talk to Gooho";
mes "Ahn and see what he found?";
changequest 3128,3129;
- set zdan_edq,12;
+ zdan_edq = 12;
close;
}
if ((zdan_edq > 11) && (zdan_edq < 14)) {
@@ -7228,7 +7228,7 @@ in_rogue,359,116,3 script Marybell 4_F_ROGUE,{
mes "whoever finds 'em first gets";
mes "dibs on beating them up!";
changequest 3131,3132;
- set zdan_edq,15;
+ zdan_edq = 15;
close;
}
if ((zdan_edq > 14) && (zdan_edq < 18)) {
@@ -7378,7 +7378,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "game? When you return,";
mes "we'll be ready to play~";
changequest 3123,3124;
- set zdan_edq,6;
+ zdan_edq = 6;
close;
}
}
@@ -7400,10 +7400,10 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "Odd or Even?";
next;
while(1) {
- set .@number,rand(1,2);
+ .@number = rand(1,2);
input .@input$;
if (((.@input$ == "Odd") && (.@number == 1)) || ((.@input$ == "Even") && (.@number == 2))) {
- set .@number_right,.@number_right+1;
+ ++.@number_right;
mes "[Moonho Ahn]";
mes "^0000ff"+.@input$+"^000000?";
mes "Okay, you won.";
@@ -7416,7 +7416,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
}
}
else if (((.@input$ == "Odd") && (.@number == 2)) || ((.@input$ == "Even") && (.@number == 1))) {
- set .@number_false,.@number_false+1;
+ ++.@number_false;
mes "[Moonho Ahn]";
mes "Well, it's ^0000FFEven^000000.";
mes "I won.";
@@ -7434,7 +7434,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "However, the game has";
mes "just started. The next";
mes "round will be mine~";
- set .@win,.@win+1;
+ ++.@win;
next;
break;
}
@@ -7444,7 +7444,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "this round. I guess";
mes "my gambling skills";
mes "haven't left me yet~";
- set .@lose,.@lose+1;
+ ++.@lose;
next;
break;
}
@@ -7467,10 +7467,10 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "["+ strcharinfo(0) +"]";
mes "(^666666What should I guess?^000000)";
next;
- set .@amuro,rand(1,2);
+ .@amuro = rand(1,2);
if (select("Odd:Even") == 1) {
if (.@amuro == 1) {
- set .@number_false_2,.@number_false_2+1;
+ ++.@number_false_2;
mes "[Moonho Ahn]";
mes "Let's see...";
mes "It's ^0000FFOdd^000000, isn't it?";
@@ -7481,7 +7481,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
next;
}
else if (.@amuro == 2) {
- set .@number_right_2,.@number_right_2+1;
+ ++.@number_right_2;
mes "[Moonho Ahn]";
mes "Let's see...";
mes "It's Even, isn't it?";
@@ -7492,7 +7492,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
next;
}
if (.@number_right_2 == 2) {
- set .@win,.@win+1;
+ ++.@win;
mes "[Moonho Ahn]";
mes "Nice job. I didn't";
mes "expect for you to";
@@ -7502,7 +7502,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
break;
}
else if (.@number_false_2 == 2) {
- set .@lose,.@lose+1;
+ ++.@lose;
mes "[Moonho Ahn]";
mes "Hahaha! I'm sorry, but";
mes "I won. I guess I still got it!";
@@ -7512,7 +7512,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
}
else {
if (.@amuro == 1) {
- set .@number_right_2,.@number_right_2+1;
+ ++.@number_right_2;
mes "[Moonho Ahn]";
mes "Let's see...";
mes "It's odd, isn't it?";
@@ -7523,7 +7523,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
next;
}
else if (.@amuro == 2) {
- set .@number_false_2,.@number_false_2+1;
+ ++.@number_false_2;
mes "[Moonho Ahn]";
mes "Let's see...";
mes "It's ^0000FFEven^000000, isn't it?";
@@ -7534,7 +7534,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
next;
}
if (.@number_right_2 == 2) {
- set .@win,.@win+1;
+ ++.@win;
mes "[Moonho Ahn]";
mes "Nice job. I didn't";
mes "expect for you to";
@@ -7544,7 +7544,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
break;
}
else if (.@number_false_2 == 2) {
- set .@lose,.@lose+1;
+ ++.@lose;
mes "[Moonho Ahn]";
mes "Hahaha! I'm sorry, but";
mes "I won. I guess I still got it!";
@@ -7601,7 +7601,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "played with a worthy";
mes "opponent. Thank you~";
changequest 3124,3125;
- set zdan_edq,7;
+ zdan_edq = 7;
close;
}
else if (.@lose == 2) {
@@ -7639,10 +7639,10 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "Odd or Even?^000000";
next;
while(1) {
- set .@number,rand(1,2);
+ .@number = rand(1,2);
input .@input$;
if (((.@input$ == "Odd") && (.@number == 1)) || ((.@input$ == "Even") && (.@number == 2))) {
- set .@number_right_3,.@number_right_3+1;
+ ++.@number_right_3;
mes "[Moonho Ahn]";
mes "^0000FF"+.@input$+"^000000?";
mes "Okay, you won.";
@@ -7655,7 +7655,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
}
}
else if (((.@input$ == "Odd") && (.@number == 2)) || ((.@input$ == "Even") && (.@number == 1))) {
- set .@number_false_3,.@number_false_3+1;
+ ++.@number_false_3;
mes "[Moonho Ahn]";
mes "Well, it's ^0000FF"+.@input$+"^000000.";
mes "Looks like I won.";
@@ -7670,7 +7670,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
if (.@number_right_3 == 2) {
mes "[Moonho Ahn]";
mes "Oh... You won...";
- set .@win,.@win+1;
+ ++.@win;
next;
break;
}
@@ -7678,7 +7678,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "[Moonho Ahn]";
mes "Hahaha! I'm sorry, but";
mes "I won. I guess I still got it!";
- set .@lose,.@lose+1;
+ ++.@lose;
next;
break;
}
@@ -7738,7 +7738,7 @@ payon,244,62,3 script Moonho Ahn 4_M_HUGRANFA,{
mes "played with a worthy";
mes "opponent. Thank you~";
changequest 3124,3125;
- set zdan_edq,7;
+ zdan_edq = 7;
close;
}
else if (.@lose == 2) {
@@ -7891,7 +7891,7 @@ payon,192,176,3 script Gooho Ahn 4_M_KHKYEL,{
mes "to decrypt the rest of";
mes "this secret Z Gang letter.";
changequest 3129,3130;
- set zdan_edq,13;
+ zdan_edq = 13;
close;
}
}
@@ -7994,7 +7994,7 @@ payon,192,176,3 script Gooho Ahn 4_M_KHKYEL,{
mes "^0000ffAynoen hwo sspotp uys^000000";
mes "^0000ffwlil eb kckide on htier ssa!^000000";
changequest 3130,3131;
- set zdan_edq,14;
+ zdan_edq = 14;
close;
}
else {
@@ -8046,7 +8046,7 @@ payon,192,176,3 script Gooho Ahn 4_M_KHKYEL,{
moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
if ((zdan_edq == 9) && ($@zdan == 0)) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "I know you've";
@@ -8063,7 +8063,7 @@ moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
mes "Run awaaaaay!";
hideoffnpc "Suspicious Man#2";
hideonnpc "Suspicious Man#1";
- set $@zdan,0;
+ $@zdan = 0;
stopnpctimer;
next;
mes "[" + strcharinfo(0) + "]";
@@ -8087,7 +8087,7 @@ moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
mes "He can't have gotten too far:";
mes "I have a chance to catch him!";
changequest 3126,3127;
- set zdan_edq,10;
+ zdan_edq = 10;
close;
}
if ((zdan_edq == 9) && ($@zdan > 0)) {
@@ -8114,7 +8114,7 @@ moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
close;
}
if ((zdan_edq == 10) && ($@zdan == 0 )) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "Eeek...!";
@@ -8200,8 +8200,8 @@ moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
mes "Marybell, and see if she's";
mes "learned any new information.";
changequest 3127,3128;
- set zdan_edq,11;
- set $@zdan,0;
+ zdan_edq = 11;
+ $@zdan = 0;
stopnpctimer;
close;
}
@@ -8238,12 +8238,12 @@ moc_ruins,90,67,3 script Suspicious Man#1 4W_M_03,2,2,{
close;
OnTimer30000:
- set $@zdan,0;
+ $@zdan = 0;
end;
OnTouch:
if ((zdan_edq == 9) && ($@zdan == 0)) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "I know you've";
@@ -8260,7 +8260,7 @@ OnTouch:
mes "Run awaaaaay!";
hideoffnpc "Suspicious Man#2";
hideonnpc "Suspicious Man#1";
- set $@zdan,0;
+ $@zdan = 0;
stopnpctimer;
next;
mes "[" + strcharinfo(0) + "] ";
@@ -8284,7 +8284,7 @@ OnTouch:
mes "He can't have gotten too far:";
mes "I have a chance to catch him!";
changequest 3126,3127;
- set zdan_edq,10;
+ zdan_edq = 10;
close;
}
end;
@@ -8293,7 +8293,7 @@ OnTouch:
//Incorrect position.
moc_ruins,78,167,3 script Suspicious Man#2 4W_M_03,2,2,{
if ((zdan_edq == 9) && ($@zdan == 0)) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "I know you've";
@@ -8310,7 +8310,7 @@ moc_ruins,78,167,3 script Suspicious Man#2 4W_M_03,2,2,{
mes "Run awaaaaay!";
hideoffnpc "Suspicious Man#1";
hideonnpc "Suspicious Man#2";
- set $@zdan,0;
+ $@zdan = 0;
stopnpctimer;
next;
mes "[" + strcharinfo(0) + "] ";
@@ -8334,11 +8334,11 @@ moc_ruins,78,167,3 script Suspicious Man#2 4W_M_03,2,2,{
mes "He can't have gotten too far:";
mes "I have a chance to catch him!";
changequest 3126,3127;
- set zdan_edq,10;
+ zdan_edq = 10;
close;
}
if ((zdan_edq == 10) && ($@zdan == 0)) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "Eeek...!";
@@ -8424,8 +8424,8 @@ moc_ruins,78,167,3 script Suspicious Man#2 4W_M_03,2,2,{
mes "Marybell, and see if she's";
mes "learned any new information.";
changequest 3127,3128;
- set zdan_edq,11;
- set $@zdan,0;
+ zdan_edq = 11;
+ $@zdan = 0;
stopnpctimer;
close;
}
@@ -8487,12 +8487,12 @@ OnInit:
end;
OnTimer30000:
- set $@zdan,0;
+ $@zdan = 0;
end;
OnTouch:
if ((zdan_edq == 9) && ($@zdan == 0)) {
- set $@zdan,1;
+ $@zdan = 1;
initnpctimer;
mes "[????]";
mes "I know you've";
@@ -8509,7 +8509,7 @@ OnTouch:
mes "Run awaaaaay!";
hideoffnpc "Suspicious Man#1";
hideonnpc "Suspicious Man#2";
- set $@zdan,0;
+ $@zdan = 0;
stopnpctimer;
next;
mes "[" + strcharinfo(0) + "] ";
@@ -8533,7 +8533,7 @@ OnTouch:
mes "He can't have gotten too far:";
mes "I have a chance to catch him!";
changequest 3126,3127;
- set zdan_edq,10;
+ zdan_edq = 10;
close;
}
end;
@@ -8605,7 +8605,7 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
mes "Um... Now what...?";
next;
if ($@door2 == 0) {
- set $@door2,1;
+ $@door2 = 1;
mes "Waaaah! Waaah!";
next;
mes "[" + strcharinfo(0) + "]";
@@ -8613,7 +8613,7 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
mes "happening?! I'm being";
mes "sucked away somewhere!";
changequest 3132,3133;
- set zdan_edq,16;
+ zdan_edq = 16;
close2;
warp "z_agit",98,40;
end;
@@ -8646,7 +8646,7 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
mes "thing isn't working now.";
mes "Hello? What happened to you?";
mes "Hey! Talk to me, will you?";
- set $@door2,0;
+ $@door2 = 0;
close;
}
}
@@ -8659,7 +8659,7 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
mes "thing isn't working now.";
mes "Hello? What happened to you?";
mes "Hey! Talk to me, will you?";
- set $@door2,0;
+ $@door2 = 0;
close;
}
}
@@ -8672,7 +8672,7 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
mes "thing isn't working now.";
mes "Hello? What happened to you?";
mes "Hey! Talk to me, will you?";
- set $@door2,0;
+ $@door2 = 0;
close;
}
}
@@ -8708,9 +8708,9 @@ moc_fild17,209,235,0 script Odd Slab HIDDEN_NPC,4,4,{
close;
OnInit:
- set $@zdan,0;
- set $@door2,0;
- set $@mosnter,0;
+ $@zdan = 0;
+ $@door2 = 0;
+ $@mosnter = 0;
end;
//OnTouch2:
@@ -8730,7 +8730,7 @@ OnTouch:
z_agit,98,44,0 script EntranceCheck#1 -1,10,10,{
OnTouch:
if (((zdan_edq == 15) || (zdan_edq == 16)) && ($@monster_zgang == 0)) {
- set $@monster_zgang,1;
+ $@monster_zgang = 1;
donpcevent "#zdan_broad::OnEnable";
}
else if (((zdan_edq == 15) || (zdan_edq == 16)) && ($@monster_zgang > 0)) {
@@ -8749,8 +8749,8 @@ OnTouch:
mes "terribly wrong, hasn't";
mes "it? Let me go baaaack~!";
close2;
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
warp "moc_fild17",209,235;
}
end;
@@ -8759,7 +8759,7 @@ OnTouch:
z_agit,98,92,0 script EntranceCheck#2 -1,10,10,{
OnTouch:
if (((zdan_edq == 15) || (zdan_edq == 16)) && ($@monster_zgang == 0)) {
- set $@monster_zgang,1;
+ $@monster_zgang = 1;
donpcevent "#zdan_broad::OnEnable";
}
else if (((zdan_edq == 15) || (zdan_edq == 16)) && ($@monster_zgang > 0)) {
@@ -8778,8 +8778,8 @@ OnTouch:
mes "terribly wrong, hasn't";
mes "it? Let me go baaaack~! ";
close2;
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
warp "moc_fild17",209,235;
}
end;
@@ -8844,8 +8844,8 @@ OnTimer21000:
OnTimer300000:
killmonster "z_agit","#ZGuard::OnMyMobDead";
donpcevent "#zdan_broad::OnDisable";
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
end;
OnTimer350000:
@@ -8853,8 +8853,8 @@ OnTimer350000:
hideonnpc "Louis";
hideonnpc "Martha";
hideonnpc "Catfoii";
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
end;
}
@@ -8878,7 +8878,7 @@ OnDisable:
OnReset:
killmonster "z_agit","#ZGuard::OnMyMobDead";
- set $@monster_zgang,0;
+ $@monster_zgang = 0;
end;
OnMyMobDead:
@@ -8910,7 +8910,7 @@ OnMyMobDead:
mes "[Louis]";
mes "Huh? Why...?";
next;
- set zdan_edq,17;
+ zdan_edq = 17;
donpcevent "#ZGuard::OnDisable";
hideoffnpc "Louis";
hideoffnpc "Martha";
@@ -8923,8 +8923,8 @@ OnTimer300000:
mapwarp "z_agit","moc_fild17",209,235;
donpcevent "#zdan_broad::OnDisable";
killmonster "z_agit","#ZGuard::OnMyMobDead";
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
donpcevent "#ZGuard::OnDisable";
stopnpctimer;
end;
@@ -9021,10 +9021,10 @@ z_agit,97,101,3 script Louis 4_M_RACHMAN1,{
close2;
getitem 7724,1; //Forbidden_Secret_Art
changequest 3133,3134;
- set zdan_edq,18;
+ zdan_edq = 18;
mapwarp "z_agit","moc_fild17",209,235;
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
hideonnpc "Louis";
hideonnpc "Martha";
hideonnpc "Catfoii";
@@ -9037,9 +9037,9 @@ z_agit,97,101,3 script Louis 4_M_RACHMAN1,{
mes "Something has gone";
mes "terribly wrong, hasn't";
mes "it? Let me go baaaack~! ";
- set zdan_edq,15;
- set $@monster_zgang,0;
- set $@door2,0;
+ zdan_edq = 15;
+ $@monster_zgang = 0;
+ $@door2 = 0;
close2;
warp "moc_fild17",209,235;
end;
@@ -9144,10 +9144,10 @@ z_agit,99,101,3 script Martha 4W_F_01,{
close2;
getitem 7724,1; //Forbidden_Secret_Art
changequest 3133,3134;
- set zdan_edq,18;
+ zdan_edq = 18;
mapwarp "z_agit","moc_fild17",209,235;
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
hideonnpc "Louis";
hideonnpc "Martha";
hideonnpc "Catfoii";
@@ -9161,9 +9161,9 @@ z_agit,99,101,3 script Martha 4W_F_01,{
mes "Something has gone";
mes "terribly wrong, hasn't";
mes "it? Let me go baaaack~! ";
- set zdan_edq,15;
- set $@monster_zgang,0;
- set $@door2,0;
+ zdan_edq = 15;
+ $@monster_zgang = 0;
+ $@door2 = 0;
close2;
warp "moc_fild17",209,235;
end;
@@ -9264,10 +9264,10 @@ z_agit,95,101,3 script Catfoii 4_CAT,{
close2;
getitem 7724,1; //Forbidden_Secret_Art
changequest 3133,3134;
- set zdan_edq,18;
+ zdan_edq = 18;
mapwarp "z_agit","moc_fild17",209,235;
- set $@monster_zgang,0;
- set $@door2,0;
+ $@monster_zgang = 0;
+ $@door2 = 0;
hideonnpc "Louis";
hideonnpc "Martha";
hideonnpc "Catfoii";
@@ -9281,9 +9281,9 @@ z_agit,95,101,3 script Catfoii 4_CAT,{
mes "Something has gone";
mes "terribly wrong, hasn't";
mes "it? Let me go baaaack~! ";
- set zdan_edq,15;
- set $@monster_zgang,0;
- set $@door2,0;
+ zdan_edq = 15;
+ $@monster_zgang = 0;
+ $@door2 = 0;
close2;
warp "moc_fild17",209,235;
end;
@@ -9355,7 +9355,7 @@ morocc,143,63,3 script Ragged Man#nd 4_M_MIDDLE,{
mes "that I was going to let you";
mes "in on, but if you don't want";
mes "to share, then neither do I!";
- set treasure_nd,1;
+ treasure_nd = 1;
close;
case 2:
mes "[Ragged Man]";
@@ -9376,7 +9376,7 @@ morocc,143,63,3 script Ragged Man#nd 4_M_MIDDLE,{
mes "If you had given me 1,200";
mes "zeny, I would have tipped";
mes "you off to something big...";
- set treasure_nd,1;
+ treasure_nd = 1;
close;
}
else {
@@ -9417,7 +9417,7 @@ morocc,143,63,3 script Ragged Man#nd 4_M_MIDDLE,{
mes "easily, but who knows? Maybe";
mes "he might slip, and accidentally";
mes "give you some kind of clue.";
- set treasure_nd,2;
+ treasure_nd = 2;
close;
}
}
@@ -9488,7 +9488,7 @@ morocc,143,63,3 script Ragged Man#nd 4_M_MIDDLE,{
mes "easily, but who knows? Maybe";
mes "he might slip, and accidentally";
mes "give you some kind of clue.";
- set treasure_nd,2;
+ treasure_nd = 2;
close;
}
case 2:
@@ -9603,7 +9603,7 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
mes "you to trust me now,";
mes "I suppose. But what can";
mes "you gain by walking away?";
- set treasure_nd,3;
+ treasure_nd = 3;
close;
case 2:
mes "[Man]";
@@ -9636,7 +9636,7 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
mes "^FF00002 Pearls^000000, and";
mes "^FF00002 Zargons^000000, we can talk";
mes "business further. Got it?";
- set treasure_nd,4;
+ treasure_nd = 4;
next;
mes "[Man]";
mes "Hey, I might be losing out";
@@ -9701,7 +9701,7 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
mes "^FF00002 Pearls^000000, and";
mes "^FF00002 Zargons^000000, we can talk";
mes "business further. Got it?";
- set treasure_nd,4;
+ treasure_nd = 4;
next;
mes "[Man]";
mes "Hey, I might be losing out";
@@ -9726,7 +9726,7 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
delitem 722,2; //Scarlet_Jewel
delitem 912,2; //Zargon
delitem 934,20; //Mementos
- set treasure_nd,5;
+ treasure_nd = 5;
next;
mes "[Man]";
mes "The treasure is buried";
@@ -9821,7 +9821,7 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
mes "a bit from the west. Maybe";
mes "he's over in Comodo?";
next;
- set .@joho1,1;
+ .@joho1 = 1;
break;
case 2:
if (treasure_nd == 7) {
@@ -9851,15 +9851,15 @@ morocc,102,298,3 script Man#zgang 4W_M_02,{
mes "^3355FFThe torn document";
mes "is labeled ''^FF0000[Open^3355FF.''^000000";
next;
- set treasure_nd,7;
- set .@joho2,1;
+ treasure_nd = 7;
+ .@joho2 = 1;
}
else {
mes "^3355FFThe torn document";
mes "is labeled ''^FF0000[Unlock^3355FF.''^000000";
next;
- set treasure_nd,8;
- set .@joho2,1;
+ treasure_nd = 8;
+ .@joho2 = 1;
}
}
}
@@ -9985,14 +9985,14 @@ comodo,339,224,3 script Man in Hiding#nd 4_M_SITDOWN,{
mes "^3355FFYou received a torn";
mes "document that reads";
mes "''^FF0000Seseame]^000000.''";
- set treasure_nd,10;
+ treasure_nd = 10;
next;
}
else {
mes "^3355FFYou received a torn";
mes "document that reads";
mes "''^FF0000Treasure]^000000.''";
- set treasure_nd,9;
+ treasure_nd = 9;
next;
}
mes "[Man in Hiding]";
@@ -10052,14 +10052,14 @@ comodo,339,224,3 script Man in Hiding#nd 4_M_SITDOWN,{
mes "^3355FFYou received a torn";
mes "document that reads";
mes "''^FF0000Sesame]^000000.''";
- set treasure_nd,10;
+ treasure_nd = 10;
next;
}
else {
mes "^3355FFYou received a torn";
mes "document that reads";
mes "''^FF0000Treasure]^000000.''";
- set treasure_nd,9;
+ treasure_nd = 9;
next;
}
mes "[Man in Hiding]";
@@ -10158,7 +10158,7 @@ moc_fild18,108,116,0 script #treasure CLEAR_NPC,{
mes "There's some magical";
mes "aura surrounding the chest";
mes "that might be stopping you.^000000";
- set treasure_nd,6;
+ treasure_nd = 6;
close;
}
else if (treasure_nd == 6) {
@@ -10187,7 +10187,7 @@ moc_fild18,108,116,0 script #treasure CLEAR_NPC,{
next;
input .@input$;
getpartymember(getcharid(1));
- set .@partymembercount,$@partymembercount;
+ .@partymembercount = $@partymembercount;
if (.@partymembercount > 1) {
if (((.@input$ == "OpenSesame") && (treasure_nd == 9)) || ((.@input$ == "UnlockTreasure") && (treasure_nd == 10))) {
mes "^3355FFThe Z Gang must have split";
@@ -10201,10 +10201,10 @@ moc_fild18,108,116,0 script #treasure CLEAR_NPC,{
mes "the chest opens, and";
mes "you grab all the loot inside.^000000";
if (zdan_edq == 0) {
- set treasure_nd,11;
+ treasure_nd = 11;
}
else {
- set treasure_nd,12;
+ treasure_nd = 12;
}
getitem 7725,1; //Unlucky_Emerald
getitem 604,1; //Branch_Of_Dead_Tree
@@ -10242,7 +10242,7 @@ moc_fild18,108,116,0 script #treasure CLEAR_NPC,{
mes "whoever it was left";
mes "telltale signs of";
mes "his presence.^000000";
- set treasure_nd,12;
+ treasure_nd = 12;
close;
}
}
@@ -10273,7 +10273,7 @@ comodo,139,184,3 script Scholar#zgang 2_M_SAGE_B,{
mes "to just the right person if you";
mes "wanted to learn more about";
mes "the emerald that you found.";
- set jewel_nd,11;
+ jewel_nd = 11;
close;
}
else if (jewel_nd == 10) {
@@ -10303,7 +10303,7 @@ comodo,139,184,3 script Scholar#zgang 2_M_SAGE_B,{
mes "Would you mind coming";
mes "back later? I'm not sure";
mes "where I misplaced my notes...";
- set jewel_nd,11;
+ jewel_nd = 11;
close;
}
else if (jewel_nd == 11) {
@@ -10376,7 +10376,7 @@ comodo,139,184,3 script Scholar#zgang 2_M_SAGE_B,{
mes "And I'm sure he'll be pretty";
mes "excited to see that you have";
mes "the Unlucky Emerald with you.";
- set jewel_nd,12;
+ jewel_nd = 12;
close;
}
else if (jewel_nd == 12) {
@@ -10468,7 +10468,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "200,000 zeny for the service.";
mes "It's expensive, but I'm saving";
mes "your life and risking mine.";
- set jewel_nd,13;
+ jewel_nd = 13;
close;
}
else {
@@ -10500,7 +10500,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "free of your curse, and I can";
mes "buy some Prontera real estate.";
Zeny -= 200000;
- set jewel_nd,14;
+ jewel_nd = 14;
next;
mes "[Shaman]";
mes "Please come back soon";
@@ -10533,7 +10533,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "200,000 zeny. I think...";
mes "I think I need 100,000 zeny";
mes "more for this to be effective.";
- set jewel_nd,15;
+ jewel_nd = 15;
close;
}
else if (jewel_nd == 15) {
@@ -10551,7 +10551,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "spirits will be more";
mes "cooperative this time.";
Zeny -= 100000;
- set jewel_nd,16;
+ jewel_nd = 16;
next;
mes "[Shaman]";
mes "Yes, the vindictive";
@@ -10615,7 +10615,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "to be kept waiting! Don't";
mes "question this great irony,";
mes "and get those items now!";
- set jewel_nd,17;
+ jewel_nd = 17;
close;
}
else if (jewel_nd == 17) {
@@ -10661,7 +10661,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "might know more about this";
mes "specific jewel. Hopefully,";
mes "he will have the answer.";
- set jewel_nd,18;
+ jewel_nd = 18;
next;
mes "[Shaman]";
mes "For now, the jewel's";
@@ -10724,7 +10724,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "the spirit realm. However,";
mes "I wasn't lying. My honor";
mes "as a shaman is at stake!";
- set jewel_nd,20;
+ jewel_nd = 20;
next;
mes "[Shaman]";
mes "In fact, I'll prove it to you";
@@ -10776,7 +10776,7 @@ alberta_in,70,109,5 script Shaman 4_M_UMOLDMAN,{
mes "Hmpf! That arrogant";
mes "archaeologist! He doesn't";
mes "know what he's talking about!";
- set jewel_nd,21;
+ jewel_nd = 21;
close;
}
else {
@@ -10887,7 +10887,7 @@ yuno_in04,38,48,3 script Archeologist 1_M_JOBTESTER,{
mes "but that happens to be my";
mes "professional opinion,";
mes "based on my research.";
- set jewel_nd,19;
+ jewel_nd = 19;
close;
case 2:
mes "[Archeologist]";
@@ -10949,7 +10949,7 @@ yuno_in04,38,48,3 script Archeologist 1_M_JOBTESTER,{
mes "in the field west of Geffen";
mes "that you were talking about.";
mes "Let me see if I can find them.";
- set jewel_nd,24;
+ jewel_nd = 24;
close;
}
else if (jewel_nd == 24) {
@@ -10984,7 +10984,7 @@ yuno_in04,38,48,3 script Archeologist 1_M_JOBTESTER,{
mes "that lives in Prontera now.";
mes "It might be a good idea to";
mes "see if you can talk to him.";
- set jewel_nd,25;
+ jewel_nd = 25;
close;
}
else if (jewel_nd == 25) {
@@ -11097,7 +11097,7 @@ prontera,140,304,5 script Old Soldier 4_M_HUOLDARMY,{
mes "about this story. There's";
mes "much you can learn from";
mes "other people's experiences.";
- set jewel_nd,26;
+ jewel_nd = 26;
close;
}
}
@@ -11177,7 +11177,7 @@ prontera,140,304,5 script Old Soldier 4_M_HUOLDARMY,{
mes "fight temptation, to keep";
mes "their focus. That guy...";
mes "He wasn't cut out to fight.";
- set jewel_nd,30;
+ jewel_nd = 30;
next;
if (countitem(7725) > 0) {
mes "[Retired Soldier]";
@@ -11196,7 +11196,7 @@ prontera,140,304,5 script Old Soldier 4_M_HUOLDARMY,{
mes "to resist its curse, you know,";
mes "if it actually exists.";
delitem 7725,1; //Unlucky_Emerald
- set jewel_nd,31;
+ jewel_nd = 31;
getitem 603,1; //Old_Blue_Box
if (checkre(3)) {
if (BaseLevel < 66) getitem 607,1; //Yggdrasilberry
@@ -11251,7 +11251,7 @@ prontera,140,304,5 script Old Soldier 4_M_HUOLDARMY,{
else if (jewel_nd == 30) {
if (countitem(7725) > 0) {
delitem 7725,1; //Unlucky_Emerald
- set jewel_nd,31;
+ jewel_nd = 31;
getitem 603,1; //Old_Blue_Box
if (checkre(3)) {
if (BaseLevel < 66) getitem 607,1; //Yggdrasilberry
@@ -11361,7 +11361,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "And then... We... We...";
mes "I... It hurts too much";
mes "to recall what happened...";
- set jewel_nd,22;
+ jewel_nd = 22;
hideonnpc "The Wanderer";
stopnpctimer;
close;
@@ -11388,7 +11388,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "[The Wanderer]";
mes "Just let me return";
mes "to my slumber.";
- set jewel_nd,23;
+ jewel_nd = 23;
close;
}
else if (jewel_nd == 25) {
@@ -11428,7 +11428,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "adventurer, and don't";
mes "reopen the wounds of";
mes "the past anymore.";
- set jewel_nd,27;
+ jewel_nd = 27;
next;
while(1) {
if (select("You killed your comrades!:Do you remember your last moment?") == 1) {
@@ -11459,7 +11459,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "[The Wanderer]";
mes "No, it can't have been.";
mes "A human soldier like me?";
- set jewel_nd,28;
+ jewel_nd = 28;
next;
break;
}
@@ -11500,7 +11500,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "Stop it! I couldn't...";
mes "Get out of here now!";
mes "You're trying to trick me!";
- set jewel_nd,29;
+ jewel_nd = 29;
hideonnpc "The Wanderer";
stopnpctimer;
close;
@@ -11541,7 +11541,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "[The Wanderer]";
mes "No, it can't have been.";
mes "A human soldier like me?";
- set jewel_nd,28;
+ jewel_nd = 28;
next;
break;
}
@@ -11582,7 +11582,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "Stop it! I couldn't...";
mes "Get out of here now!";
mes "You're trying to trick me!";
- set jewel_nd,29;
+ jewel_nd = 29;
hideonnpc "The Wanderer";
stopnpctimer;
close;
@@ -11619,7 +11619,7 @@ gef_fild08,182,185,0 script The Wanderer 8_DOPPEL,{
mes "Stop it! I couldn't...";
mes "Get out of here now!";
mes "You're trying to trick me!";
- set jewel_nd,29;
+ jewel_nd = 29;
hideonnpc "The Wanderer";
stopnpctimer;
close;
@@ -11721,7 +11721,7 @@ prontera,163,204,3 script Man from Morroc 4W_M_03,{
mes "of the Rogue agents dispatched";
mes "in the other towns? Then you'll";
mes "know what I'm talking about!";
- set rumour_nd,1;
+ rumour_nd = 1;
close;
}
else if (rumour_nd == 1) {
@@ -11826,7 +11826,7 @@ in_rogue,355,28,5 script Rogue Agent 2_M_THIEFMASTER,{
mes "I need you to go on a bit";
mes "of a trip for me, so get";
mes "some provisions ready, yeah?";
- set rumour_nd,2;
+ rumour_nd = 2;
}
close;
}
@@ -11853,7 +11853,7 @@ in_rogue,355,28,5 script Rogue Agent 2_M_THIEFMASTER,{
mes "not enough instruction,";
mes "but that's just the first";
mes "step, anyway. Good luck.";
- set rumour_nd,3;
+ rumour_nd = 3;
close;
}
else if (rumour_nd == 3) {
@@ -11888,7 +11888,7 @@ in_rogue,355,28,5 script Rogue Agent 2_M_THIEFMASTER,{
next;
mes "^3355FFYou received";
mes "another folded note.^000000";
- set rumour_nd,25;
+ rumour_nd = 25;
close;
}
else if (rumour_nd == 25) {
@@ -11918,7 +11918,7 @@ in_rogue,355,28,5 script Rogue Agent 2_M_THIEFMASTER,{
mes "gift, but maybe you'll";
mes "like it. If not, don't";
mes "lemme know. Got it?";
- set rumour_nd,22;
+ rumour_nd = 22;
getitem 644,1; //Gift_Box
close;
}
@@ -11930,7 +11930,7 @@ in_rogue,355,28,5 script Rogue Agent 2_M_THIEFMASTER,{
mes "gift, but maybe you'll";
mes "like it. If not, don't";
mes "lemme know. Got it?";
- set rumour_nd,22;
+ rumour_nd = 22;
getitem 644,1; //Gift_Box
close;
}
@@ -11992,7 +11992,7 @@ aldebaran,114,56,5 script Rogue Agent#nd0 4_M_ROGUE,{
next;
mes "^3355FFYou received a";
mes "tightly folded note.^000000";
- set rumour_nd,4;
+ rumour_nd = 4;
close;
}
else {
@@ -12025,7 +12025,7 @@ aldebaran,114,56,5 script Rogue Agent#nd0 4_M_ROGUE,{
next;
mes "^3355FFYou received a";
mes "tightly folded note.^000000";
- set rumour_nd,24;
+ rumour_nd = 24;
close;
}
}
@@ -12057,7 +12057,7 @@ aldebaran,114,56,5 script Rogue Agent#nd0 4_M_ROGUE,{
mes "this is for me. You might";
mes "wanna try one of the other";
mes "Rogue agents around, okay?";
- set rumour_nd,17;
+ rumour_nd = 17;
close;
}
else if (rumour_nd > 21) {
@@ -12145,7 +12145,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
mes "calm down, and not panick.";
mes "Hurry it up before a riot";
mes "breaks out or somethin'.";
- set rumour_nd,5;
+ rumour_nd = 5;
close;
}
else {
@@ -12174,7 +12174,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
delitem 1038,1; //Petite_DiablOfs_Horn
delitem 1060,1; //Golden_Hair
delitem 1059,1; //Transparent_Cloth
- set rumour_nd,6;
+ rumour_nd = 6;
mes "[Agent]";
mes "Thanks. This stuff";
mes "should help the people";
@@ -12270,7 +12270,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
mes "calm down, and not panick.";
mes "Hurry it up before a riot";
mes "breaks out or somethin'.";
- set rumour_nd,5;
+ rumour_nd = 5;
close;
}
else {
@@ -12305,7 +12305,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
mes "calm down, and not panick.";
mes "Hurry it up before a riot";
mes "breaks out or somethin'.";
- set rumour_nd,26;
+ rumour_nd = 26;
close;
}
}
@@ -12333,7 +12333,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
delitem 1038,2; //Petite_DiablOfs_Horn
delitem 1060,3; //Golden_Hair
delitem 1059,1; //Transparent_Cloth
- set rumour_nd,6;
+ rumour_nd = 6;
mes "[Agent]";
mes "Thanks. This stuff";
mes "should help the people";
@@ -12394,7 +12394,7 @@ geffen,91,36,5 script Rogue Guild Agent#nd1 4_M_ROGUE,{
delitem 1038,2; //Petite_DiablOfs_Horn
delitem 1060,3; //Golden_Hair
delitem 1059,1; //Transparent_Cloth
- set rumour_nd,6;
+ rumour_nd = 6;
mes "[Agent]";
mes "Thanks. This stuff";
mes "should help the people";
@@ -12538,7 +12538,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "Uh...";
mes "You mind reading";
mes "this note to me?";
- set rumour_nd,7;
+ rumour_nd = 7;
next;
mes "[" + strcharinfo(0) + "]";
mes "Let's see,";
@@ -12552,7 +12552,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "I'm the Payon agent.";
mes "I guess we gotta work";
mes "together from now on.";
- set rumour_nd,8;
+ rumour_nd = 8;
close;
case 2:
mes "[Agent]";
@@ -12566,7 +12566,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "When you're ready to get";
mes "to business, come back";
mes "and we'll talk, okay?";
- set rumour_nd,8;
+ rumour_nd = 8;
close;
}
}
@@ -12589,7 +12589,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "I'm the Payon agent.";
mes "I guess we gotta work";
mes "together from now on.";
- set rumour_nd,8;
+ rumour_nd = 8;
close;
case 2:
mes "[Agent]";
@@ -12603,7 +12603,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "When you're ready to get";
mes "to business, come back";
mes "and we'll talk, okay?";
- set rumour_nd,8;
+ rumour_nd = 8;
close;
}
}
@@ -12636,7 +12636,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "I meant to say ^0000FFGreen";
mes "Herbs^000000. Bring me ^0000FF1 Green";
mes "Herb^000000, okay? *Phew~*";
- set rumour_nd,9;
+ rumour_nd = 9;
close;
}
else {
@@ -12647,7 +12647,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "deadly now. I want you";
mes "to bring me a ^FF0000Red Herb^000000";
mes "so that we can fix this!";
- set rumour_nd,10;
+ rumour_nd = 10;
close;
}
}
@@ -12659,7 +12659,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
next;
if (countitem(511) > 0) {
delitem 511,1; //Green_Herb
- set rumour_nd,11;
+ rumour_nd = 11;
mes "[Agent]";
mes "Alright, it's gonna take";
mes "a while to neutralize all";
@@ -12700,7 +12700,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "some time to draw a report,";
mes "and then come back later, 'kay?";
delitem 511,1; //Green_Herb
- set rumour_nd,11;
+ rumour_nd = 11;
close;
}
else {
@@ -12715,7 +12715,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "biggie. Hey, bring me";
mes "a Green Herb, will you?";
mes "That's the one I wanted.";
- set rumour_nd,9;
+ rumour_nd = 9;
close;
}
}
@@ -12729,7 +12729,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "some time to draw a report,";
mes "and then come back later, 'kay?";
delitem 511,1; //Green_Herb
- set rumour_nd,11;
+ rumour_nd = 11;
close;
}
else {
@@ -12784,7 +12784,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "Don't worry, I got";
mes "that one too! All you";
mes "gotta do is bring Alcohol~";
- set rumour_nd,12;
+ rumour_nd = 12;
close;
}
else {
@@ -12792,7 +12792,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "Alright, just bring";
mes "me an Alcohol, and";
mes "I'll take care of the rest.";
- set rumour_nd,13;
+ rumour_nd = 13;
close;
}
}
@@ -12808,7 +12808,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "have to do is wait.";
mes "Nice work, partner.";
delitem 970,1; //Alchol
- set rumour_nd,15;
+ rumour_nd = 15;
close;
}
else {
@@ -12831,7 +12831,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "have to do is wait.";
mes "Nice work, partner.";
delitem 970,1; //Alchol
- set rumour_nd,14;
+ rumour_nd = 14;
close;
}
else {
@@ -12864,7 +12864,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "I won't screw it up";
mes "this time. We'll";
mes "do this for sure~";
- set rumour_nd,12;
+ rumour_nd = 12;
close;
}
else if (rumour_nd == 15) {
@@ -12892,7 +12892,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "^3355FFYou received a note that";
mes "communicates solely";
mes "through doodles.^000000";
- set rumour_nd,18;
+ rumour_nd = 18;
close;
}
else {
@@ -12904,7 +12904,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "^3355FFYou received a note that";
mes "communicates solely";
mes "through doodles.^000000";
- set rumour_nd,16;
+ rumour_nd = 16;
emotion e_heh;
close;
}
@@ -12924,7 +12924,7 @@ payon,209,44,5 script Rogue Guild Agent#nd2 4_M_ROGUE,{
mes "take it? Oh! That's why!";
mes "I meant Comodo! You gotta";
mes "go to Comodo! Heh, my bad~";
- set rumour_nd,18;
+ rumour_nd = 18;
close;
}
else if (rumour_nd == 18) {
@@ -13036,7 +13036,7 @@ comodo,233,199,5 script Rogue Guild Agent#nd3 1_M_SIGNROGUE,{
mes "monster masks^000000.";
mes "Just 2, and make";
mes "sure they're scary.";
- set rumour_nd,19;
+ rumour_nd = 19;
close;
case 2:
mes "[Agent]";
@@ -13142,7 +13142,7 @@ comodo,233,199,5 script Rogue Guild Agent#nd3 1_M_SIGNROGUE,{
mes "agent over there, will you?";
mes "Oh, and take this food";
mes "with my apologies, 'kay?";
- set .@sorry_item,rand(1,6);
+ .@sorry_item = rand(1,6);
if (.@sorry_item == 1) {
getitem 12044,1; //Str_Dish04
}
@@ -13177,7 +13177,7 @@ comodo,233,199,5 script Rogue Guild Agent#nd3 1_M_SIGNROGUE,{
mes "Rogue agent over there.";
mes "Oh, and mum's the word";
mes "on my little mistake~";
- set rumour_nd,20;
+ rumour_nd = 20;
close;
}
else {
@@ -13277,7 +13277,7 @@ morocc,116,39,3 script Rogue Guild Agent#nd4 4_M_YOYOROGUE,{
mes "[Agent]";
mes "Heh! Keep up";
mes "the good work~";
- set rumour_nd,21;
+ rumour_nd = 21;
close;
}
else {
@@ -13299,7 +13299,7 @@ morocc,116,39,3 script Rogue Guild Agent#nd4 4_M_YOYOROGUE,{
mes "[Agent]";
mes "Heh! Keep up";
mes "the good work~";
- set rumour_nd,21;
+ rumour_nd = 21;
close;
}
}
diff --git a/npc/quests/quests_niflheim.txt b/npc/quests/quests_niflheim.txt
index b2cda90e8..8020e9db5 100644
--- a/npc/quests/quests_niflheim.txt
+++ b/npc/quests/quests_niflheim.txt
@@ -30,7 +30,7 @@
// Piano Quest :: nif_ryu
//============================================================
niflheim,224,243,3 script Alreg#nif 4_M_NFDEADMAN,{
- if (nif_piano) set nif_piano,0;
+ if (nif_piano) nif_piano = 0;
mes "[Alreg]";
mes "Me like meat, muheh.";
mes "You! Look tempting.";
@@ -51,7 +51,7 @@ niflheim,224,243,3 script Alreg#nif 4_M_NFDEADMAN,{
mes "good. Alreg give you this";
mes "for payback. Present!";
mes "*Burrrp*";
- set nif_esc,rand(1,2);
+ nif_esc = rand(1,2);
getitem 7184,1; //Piano_Keyboard
close;
}
@@ -86,19 +86,19 @@ nif_in,105,81,3 script Crayu#nif 4_M_NFDEADMAN2,{
mes "Okay, wait! Here's a test for you!";
switch(rand(1,4)) {
case 1:
- set .@songline$,"Mountain sunset to the west";
+ .@songline$ = "Mountain sunset to the west";
mes "Write down the first line of the song.";
break;
case 2:
- set .@songline$,"Where the purple dusk falls";
+ .@songline$ = "Where the purple dusk falls";
mes "Write down the second line of the song.";
break;
case 3:
- set .@songline$,"Surrounded by beautiful melody";
+ .@songline$ = "Surrounded by beautiful melody";
mes "Write down the third line of the song.";
break;
case 4:
- set .@songline$,"You become the key that ignores its master";
+ .@songline$ = "You become the key that ignores its master";
mes "Write down the fourth line of the song.";
break;
}
@@ -112,8 +112,8 @@ nif_in,105,81,3 script Crayu#nif 4_M_NFDEADMAN2,{
mes "favorite guests. Here's a";
mes "little reward for you.";
next;
- if (nif_esc == 1) set nif_esc,3;
- else set nif_esc,6;
+ if (nif_esc == 1) nif_esc = 3;
+ else nif_esc = 6;
getitem 7184,1; //Piano_Keyboard
mes "[Crayu]";
mes "Lastly, I hope you will show your";
@@ -153,7 +153,7 @@ nif_in,31,20,3 script Kuzkahina#nif 4_M_NFDEADMAN2,{
mes "[Kuzkahina]";
mes "Hey you! Make yourself useful";
mes "and throw this away when you leave.";
- set nif_esc,nif_esc+2;
+ nif_esc += 2;
getitem 7184,1; //Piano_Keyboard
next;
mes "[Kuzkahina]";
@@ -185,9 +185,9 @@ OnTouch:
mes "^3355FFWould you like to pick it up?^000000";
if (select("Yes:No") == 1) {
if (nif_esc < 10)
- set nif_esc,nif_esc+2;
+ nif_esc += 2;
else if (nif_esc == 10)
- set nif_esc,11;
+ nif_esc = 11;
getitem 7184,1; //Piano_Keyboard
}
close;
@@ -206,7 +206,7 @@ OnTouch:
next;
mes "^3355FFWould you like to pick it up?^000000";
if (select("Yes:No") == 1) {
- set nif_esc,nif_esc+2;
+ nif_esc += 2;
getitem 7184,1; //Piano_Keyboard
}
close;
@@ -232,7 +232,7 @@ OnTouch:
close;
}
if (nif_esc == 11 && countitem(7184) > 5) {
- set nif_esc,12;
+ nif_esc = 12;
delitem 7184,6; //Piano_Keyboard
mes "^3355FFYou took the keys you've found";
mes "and inserted them into";
@@ -259,8 +259,8 @@ OnTouch:
soundeffect "complete.wav",0;
next;
if (nif_esc == 12) {
- set MISC_QUEST,MISC_QUEST | 32;
- set nif_piano, 0;
+ MISC_QUEST |= 32;
+ nif_piano = 0;
}
mes "^3355FFYou begin to feel dizzy and";
mes "your body feels as if it were";
@@ -353,7 +353,7 @@ prt_in,161,20,3 script Erious#nif 4_F_03,{
mes "a month ago was all my fault.";
mes "Thank you for your help,";
mes "and please take care.";
- set nif_revive,1;
+ nif_revive = 1;
setquest 11038;
close;
}
@@ -432,8 +432,8 @@ prt_in,161,20,3 script Erious#nif 4_F_03,{
mes "as a token of my gratitute.";
next;
if (checkweight(610,26)) {
- set MISC_QUEST,MISC_QUEST | 16384;
- set nif_revive,0;
+ MISC_QUEST |= 16384;
+ nif_revive = 0;
completequest 11043;
getitem 607,2; //Yggdrasilberry
getitem 608,2; //Seed_Of_Yggdrasil
@@ -477,8 +477,8 @@ prt_in,161,20,3 script Erious#nif 4_F_03,{
mes "gratitute.";
next;
if (checkweight(610,10)) {
- set MISC_QUEST,MISC_QUEST | 16384;
- set nif_revive,0;
+ MISC_QUEST |= 16384;
+ nif_revive = 0;
completequest 11042;
getitem 610,10; //Leaf_Of_Yggdrasil
mes "[Erious]";
@@ -542,7 +542,7 @@ umbala,215,181,3 script Billik 4_M_JOB_KNIGHT1,{
mes "likes roses a lot, so bring a rose";
mes "for him. That way, he'll know for";
mes "sure that I've sent you.";
- set nif_revive,2;
+ nif_revive = 2;
changequest 11038,11039;
next;
mes "[Billik]";
@@ -602,7 +602,7 @@ niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{
mes "you came here for nothing. I hope";
mes "you go back to where you came";
mes "from before it's too late.";
- set nif_revive,3;
+ nif_revive = 3;
changequest 11039,11040;
close;
}
@@ -626,7 +626,7 @@ niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{
mes "But I surely wouldn't have told";
mes "you. Besides, speaking about";
mes "such things is taboo.";
- set nif_revive,4;
+ nif_revive = 4;
changequest 11040,11041;
close;
}
@@ -671,7 +671,7 @@ niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{
mes "Woombah woombah hoombabah!";
mes "Yeeeeep!";
next;
- set .@nif_revive1,rand(1,100);
+ .@nif_revive1 = rand(1,100);
if (.@nif_revive1 > 0) && (.@nif_revive1 < 88) {
mes "[Feylin]";
mes "...I am sorry.";
@@ -681,7 +681,7 @@ niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{
emotion e_omg;
delitem 748,1; //Witherless_Rose
delitem 610,10; //Leaf_Of_Yggdrasil
- set nif_revive,5;
+ nif_revive = 5;
changequest 11041,11042;
percentheal -99,0;
next;
@@ -725,7 +725,7 @@ niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{
mes "live the rest of his life happily";
mes "with someone else. Oh, also let";
mes "him know that I forgive him.";
- set nif_revive,6;
+ nif_revive = 6;
changequest 11040,11043;
getitem 934,1; //Mementos
next;
diff --git a/npc/quests/quests_prontera.txt b/npc/quests/quests_prontera.txt
index d4588e5c5..1258b2876 100644
--- a/npc/quests/quests_prontera.txt
+++ b/npc/quests/quests_prontera.txt
@@ -124,7 +124,7 @@ prt_in,88,105,2 script Recruiter 8W_SOLDIER,{
}
S_Volunteer:
- set MISC_QUEST,MISC_QUEST | 8;
+ MISC_QUEST |= 8;
mes "[Recruiter]";
mes "Your registration...";
mes "is now complete.";
@@ -396,7 +396,7 @@ prontera,248,212,3 script Busy Boy#prt 4_M_KID1,3,3,{
mes "business, I know, but";
mes "I'm just so desperate...";
emotion e_sob;
- set prt_curse,2;
+ prt_curse = 2;
close;
}
else if (prt_curse == 2) {
@@ -482,7 +482,7 @@ OnTouch:
mes "might really break";
mes "something if you're";
mes "always that careless!";
- set prt_curse,1;
+ prt_curse = 1;
close;
}
mes "[Busy-Looking Boy]";
@@ -530,7 +530,7 @@ OnTouch:
mes "business, I know, but";
mes "I'm just so desperate...";
emotion e_sob;
- set prt_curse,2;
+ prt_curse = 2;
close;
}
else if (prt_curse == 3) {
@@ -562,7 +562,7 @@ S_GetBooks:
mes "careful with them! Anyway,";
mes "thanks for doing this for me.";
mes "I was really at my wit's end...";
- set prt_curse,3;
+ prt_curse = 3;
getitem 7431,1; //Books
close;
}
@@ -713,7 +713,7 @@ yuno,311,195,3 script Historian#prt01 4_M_SAGE_A,{
mes "to stay and chat for a bit?";
mes "Just give me a minute to get";
mes "a cool drink of water first~";
- set prt_curse,4;
+ prt_curse = 4;
delitem 7431,1; //Books
close;
}
@@ -834,7 +834,7 @@ yuno,311,195,3 script Historian#prt01 4_M_SAGE_A,{
mes "praise the 7 warriors' exploits";
mes "through this song. Isn't that";
mes "interesting to know about?";
- set prt_curse,5;
+ prt_curse = 5;
close;
}
else if (prt_curse == 5) {
@@ -860,7 +860,7 @@ yuno,311,195,3 script Historian#prt01 4_M_SAGE_A,{
mes "Ah, her name is Rodafrian.";
mes "I'm certain you can find her";
mes "somewhere in that desert town.";
- set prt_curse,6;
+ prt_curse = 6;
getitem 7342,1; //File01
close;
}
@@ -1064,7 +1064,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
mes "right at all. Are you sure";
mes "that's the lyric you heard?";
delitem 7342,1; //File01
- set prt_curse,7;
+ prt_curse = 7;
close;
}
@@ -1083,7 +1083,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
mes "["+strcharinfo(0)+"]";
input .@line$;
if (.@line$ == "The great serpent swallowed the sea.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*The great serpent*";
mes "*swallowed the sea.*";
}
@@ -1091,7 +1091,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
input .@line$;
if (.@line$ == "The eagle of the rainbow swallowed the serpent.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*The eagle of the rainbow*";
mes "*swallowed the serpent.*";
}
@@ -1099,14 +1099,14 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
input .@line$;
if (.@line$ == "Then the eagle built its nest.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*Then the eagle built its nest.*";
}
else mes "*"+.@line$+"*";
input .@line$;
if (.@line$ == "A nest upon the swallowed sea.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*A nest upon the swallowed sea.*";
}
else mes "*"+.@line$+"*";
@@ -1128,7 +1128,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
mes "at all. Are you sure those";
mes "are the lyrics you heard?";
delitem 7342,1; //File01
- set prt_curse,7;
+ prt_curse = 7;
close;
}
@@ -1251,10 +1251,10 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
mes "Oh well, I guess I better head";
mes "back to the priests...)^000000";
if (prt_curse == 30) {
- set prt_curse,31;
+ prt_curse = 31;
changequest 18042,18044;
} else {
- set prt_curse,60;
+ prt_curse = 60;
changequest 18051,18052;
}
close;
@@ -1282,10 +1282,10 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{
mes "For now, it would be best";
mes "to return to Father Bamph.^000000";
if (prt_curse == 30) {
- set prt_curse,40;
+ prt_curse = 40;
changequest 18042,18045;
} else {
- set prt_curse,56;
+ prt_curse = 56;
completequest 18051;
}
close;
@@ -1361,7 +1361,7 @@ S_GiveName:
mes "need to know this song's lyrics";
mes "for the sake of my research...";
if (getarg(0) == 1) delitem 7342,1; //File01
- set prt_curse,8;
+ prt_curse = 8;
changequest 18031,18032;
close;
}
@@ -1500,7 +1500,7 @@ mjolnir_01,135,168,3 script Historian#prt03 4_M_SAGE_A,{
mes "find what you're looking";
mes "for. Good luck in your";
mes "travels, adventurer.";
- set prt_curse,11;
+ prt_curse = 11;
changequest 18032,18033;
close;
}
@@ -1519,7 +1519,7 @@ S_Song:
mes "["+strcharinfo(0)+"]";
input .@line$;
if (.@line$ == "The great serpent swallowed the sea.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*The great serpent*";
mes "*swallowed the sea.*";
}
@@ -1527,21 +1527,21 @@ S_Song:
input .@line$;
if (.@line$ == "The eagle of the rainbow swallowed the serpent.") {
- set .@total,.@total+1;
+ .@total += 1;
mes "*The eagle of the rainbow*";
mes "*swallowed the serpent.*";
}
else mes "*"+.@line$+"*";
input .@line$;
- if (.@line$ == "Then the eagle built its nest.") set .@total,.@total+1;
+ if (.@line$ == "Then the eagle built its nest.") .@total += 1;
mes "*"+.@line$+"*";
input .@line$;
- if (.@line$ == "A nest upon the swallowed sea.") set .@total,.@total+1;
+ if (.@line$ == "A nest upon the swallowed sea.") .@total += 1;
mes "*"+.@line$+"*";
- if (.@total == 4) set prt_curse,10;
+ if (.@total == 4) prt_curse = 10;
else {
next;
mes "["+strcharinfo(0)+"]";
@@ -1549,7 +1549,7 @@ S_Song:
mes "I think I messed up!";
mes "(Those weren't the";
mes "correct lyrics...)";
- set prt_curse,9;
+ prt_curse = 9;
}
close;
}
@@ -1692,7 +1692,7 @@ mjolnir_01,313,269,5 script Dazed Boy#prt 4_M_KID1,{
next;
mes "[Exhausted-Looking Woman]";
mes "........";
- set prt_curse,12;
+ prt_curse = 12;
close;
}
mes "[Exhausted-Looking Woman]";
@@ -1710,7 +1710,7 @@ mjolnir_01,313,269,5 script Dazed Boy#prt 4_M_KID1,{
mes "swallowed the serpent.";
mes "Then snake scales grew on";
mes "the eagle, and it slowly died.";
- set prt_curse,12;
+ prt_curse = 12;
close;
}
mes "[Absent-Minded Boy]";
@@ -1849,7 +1849,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 4_F_CAPEGIRL,{
next;
mes "[Exhausted-Looking Woman]";
mes "........";
- set prt_curse,12;
+ prt_curse = 12;
close;
}
mes "[Exhausted-Looking Woman]";
@@ -1867,7 +1867,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 4_F_CAPEGIRL,{
mes "swallowed the serpent.";
mes "Then snake scales grew on";
mes "the eagle, and it slowly died.";
- set prt_curse,12;
+ prt_curse = 12;
close;
}
mes "[Exhausted-Looking Woman]";
@@ -1943,7 +1943,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 4_F_CAPEGIRL,{
mes "herbs to Prontera Church";
mes "before I talk to Rodafrian.)^000000";
getitem 7432,1; //Leather_Pouch
- set prt_curse,13;
+ prt_curse = 13;
changequest 18033,18034;
close;
}
@@ -2042,7 +2042,7 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 4_F_CAPEGIRL,{
mes "to Prontera Church";
mes "and let Father Bamph";
mes "know about this information.)^000000";
- set prt_curse,17;
+ prt_curse = 17;
changequest 18035,18036;
close;
}
@@ -2119,17 +2119,17 @@ mjolnir_01,316,268,3 script Exhausted-Looking Woman 4_F_CAPEGIRL,{
mes "this burdensome guilt...";
mes "Thank you, kind adventurer~";
if (prt_curse == 35) {
- set prt_curse,36;
+ prt_curse = 36;
completequest 18050;
} else if (prt_curse == 44) {
- set prt_curse,45;
+ prt_curse = 45;
completequest 18049;
} else {
next;
mes "^3355FFNow, you can return to";
mes "Rodafrian, the historian";
mes "stationed in Morroc.^000000";
- set prt_curse,55;
+ prt_curse = 55;
changequest 18049,18051;
}
@@ -2271,7 +2271,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Well then, adventurer, give";
mes "me the opportunity to tell you";
mes "something very important. But, you must not tell anyone else...";
- set prt_curse,14;
+ prt_curse = 14;
delitem 7432,1; //Leather_Pouch
close;
}
@@ -2377,7 +2377,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "listen to what we have";
mes "to ask from here on...";
emotion e_dots;
- set prt_curse,15;
+ prt_curse = 15;
close;
}
else if (prt_curse == 15) {
@@ -2456,7 +2456,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "and the song, or if she can";
mes "remember anything that happened";
mes "after the exorcism failed...";
- set prt_curse,16;
+ prt_curse = 16;
changequest 18034,18035;
close;
}
@@ -2497,7 +2497,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Just use the switch hidden";
mes "within the bookshelf and";
mes "I will meet you there.";
- set prt_curse,18;
+ prt_curse = 18;
changequest 18036,18037;
close;
}
@@ -2534,7 +2534,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "can learn anything about how";
mes "we can verify whether poison";
mes "was used to kill the princes?";
- set prt_curse,23;
+ prt_curse = 23;
changequest 18039,18040;
close;
}
@@ -2568,7 +2568,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Gemstone and 1 Green Potion";
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
- set prt_curse,32;
+ prt_curse = 32;
changequest 18044,18046;
close;
}
@@ -2609,7 +2609,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "that I cannot personally thank";
mes "you for all of your help. I'm very grateful for what you have done,";
mes "adventurer. May safety accompany you on all of your journeys.";
- set prt_curse,35;
+ prt_curse = 35;
changequest 18047,18050;
close;
}
@@ -2642,7 +2642,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Gemstone^000000 and ^3131FF1 Green Potion^000000";
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
- set prt_curse,41;
+ prt_curse = 41;
changequest 18045,18046;
close;
}
@@ -2682,9 +2682,9 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "you for all of your help. I'm very grateful for what you have done,";
mes "adventurer. May safety accompany you on all of your journeys.";
if (prt_curse == 43)
- set prt_curse,44;
+ prt_curse = 44;
else
- set prt_curse,54;
+ prt_curse = 54;
changequest 18047,18049;
getexp (checkre(3))?90000:1600000,0;
close;
@@ -2720,7 +2720,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Gemstone^000000 and ^3131FF1 Green Potion^000000";
mes "to the secret ceremonial grounds as soon as you can? I will wait";
mes "over there for you once again.";
- set prt_curse,51;
+ prt_curse = 51;
changequest 18043,18046;
close;
}
@@ -2775,7 +2775,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "you refrain from entering the";
mes "secret ceremonial grounds";
mes "from now on. Thanks again for your help, "+strcharinfo(0)+".";
- set prt_curse,61;
+ prt_curse = 61;
completequest 18052;
close;
}
@@ -2819,7 +2819,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "speak to our informant, ^6B8E23Larjes^000000,";
mes "and he will assist you in your";
mes "search for the lost official.";
- set aru_monas,2;
+ aru_monas = 2;
changequest 17000,17001;
close;
}
@@ -2849,7 +2849,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "think they would make";
mes "their move so soon. Hmm...";
mes "Give me a moment to think.";
- set aru_monas,5;
+ aru_monas = 5;
close;
}
else if (aru_monas == 5) {
@@ -2893,7 +2893,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{
mes "Please accept this money";
mes "to cover your Airship fee.";
mes "Thank you, and good luck.";
- set aru_monas,6;
+ aru_monas = 6;
Zeny += (checkre(0)?5000:1500);
changequest 17002,17003;
close;
@@ -3010,7 +3010,7 @@ prt_church,184,110,3 script Father Biscuss 1_M_PASTOR,{
mes "on behalf of the Prontera";
mes "Church, I want to thank";
mes "you for all of your help.";
- set prt_curse,36;
+ prt_curse = 36;
completequest 18048;
getexp (checkre(3))?90000:1600000,0;
close;
@@ -3076,7 +3076,7 @@ prt_church,16,114,4 script Father Bamph#tomb 1_M_PASTOR,{
mes "that were killed during";
mes "the exorcism. Please take";
mes "a look at the body to the left.";
- set prt_curse,19;
+ prt_curse = 19;
close;
}
else if (prt_curse == 19) {
@@ -3137,9 +3137,9 @@ prt_church,16,114,4 script Father Bamph#tomb 1_M_PASTOR,{
mes "and to think about all of";
mes "this carefully. For now,";
mes "let's go back upstairs.";
- if (prt_curse == 33) set prt_curse,34;
- else if (prt_curse == 42) set prt_curse,43;
- else set prt_curse,53;
+ if (prt_curse == 33) prt_curse = 34;
+ else if (prt_curse == 42) prt_curse = 43;
+ else prt_curse = 53;
close;
}
else if (prt_curse == 43 || prt_curse == 53) {
@@ -3169,7 +3169,7 @@ prt_church,19,111,5 script #prince1 4_M_LIEMAN,{
mes "pulling up the sleeve, you";
mes "note that the mark resembles";
mes "the scales of a serpent.^000000";
- set prt_curse,20;
+ prt_curse = 20;
changequest 18037,18038;
close;
}
@@ -3230,7 +3230,7 @@ prt_church,21,111,5 script #prince2 4_M_LIEMAN,{
mes "that a conspiracy may be";
mes "involved. Let's go check";
mes "the body of the third prince.";
- set prt_curse,21;
+ prt_curse = 21;
changequest 18038,18039;
close;
}
@@ -3307,7 +3307,7 @@ prt_church,24,111,5 script #prince3 4_M_LIEMAN,{
mes "continue this conversation";
mes "outside, shall we? I'd prefer";
mes "not to disturb these bodies...";
- set prt_curse,22;
+ prt_curse = 22;
close;
}
else if (prt_curse == 22) {
@@ -3339,9 +3339,9 @@ prt_church,24,111,5 script #prince3 4_M_LIEMAN,{
mes "fade until they disappear.^000000";
delitem 506,1; //Green_Potion
delitem 715,1; //Yellow_Gemstone
- if (prt_curse == 32) set prt_curse,33;
- else if (prt_curse == 41) set prt_curse,42;
- else set prt_curse,52;
+ if (prt_curse == 32) prt_curse = 33;
+ else if (prt_curse == 41) prt_curse = 42;
+ else prt_curse = 52;
changequest 18046,18047;
close;
}
@@ -3390,7 +3390,7 @@ moc_fild16,201,295,5 script Assassin Guildsman#poiso 4_M_ACROSS,{
mes "......";
mes ".........";
next;
- mes "[Assassin Guildsman";
+ mes "[Assassin Guildsman]";
mes "Listen carefully.";
mes "I will only tell this";
mes "to you one time.";
@@ -3401,7 +3401,7 @@ moc_fild16,201,295,5 script Assassin Guildsman#poiso 4_M_ACROSS,{
mes "in the 7 o'clock direction";
mes "in Morroc. Go find someone";
mes "named ^3131FFMarjana^000000 inside.";
- set prt_curse,24;
+ prt_curse = 24;
changequest 18040,18041;
close;
}
@@ -3525,7 +3525,7 @@ que_job01,10,16,5 script Marjana#poison 4_F_ACROSS,{
mes "won't work if too much time";
mes "has passed after the murder.";
mes "You better try this soon...";
- set prt_curse,25;
+ prt_curse = 25;
close;
}
@@ -3588,7 +3588,7 @@ OnTouch:
mes "She's much closer than";
mes "Father Bamph, so I guess";
mes "that I'll go talk to her first.";
- set prt_curse,30;
+ prt_curse = 30;
changequest 18041,18042;
close;
}
@@ -3598,7 +3598,7 @@ OnTouch:
mes "and investigate the princes'";
mes "bodies. I better head over";
mes "to Prontera right away.";
- set prt_curse,50;
+ prt_curse = 50;
changequest 18041,18043;
close;
}
diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt
index a450ee8b0..935568c28 100644
--- a/npc/quests/quests_rachel.txt
+++ b/npc/quests/quests_rachel.txt
@@ -106,7 +106,7 @@ ra_in01,384,246,3 script Vincent#ra_in01 1_M_01,{
mes "he has run away somewhere.";
mes "You might want to question the";
mes "other servants of his whereabouts. Thanks again for your help.";
- set lost_boy,1;
+ lost_boy = 1;
setquest 8089;
close;
}
@@ -261,7 +261,7 @@ ra_in01,384,246,3 script Vincent#ra_in01 1_M_01,{
mes "job. Besides, Phobe is";
mes "just a kid, so he's probably";
mes "hiding somewhere in town.";
- set lost_boy,8;
+ lost_boy = 8;
changequest 8094,8095;
close;
}
@@ -347,7 +347,7 @@ ra_in01,384,246,3 script Vincent#ra_in01 1_M_01,{
mes "You want me to tell";
mes "Jenny about Phobe?";
mes "Sure, sure, I'll do that.";
- set lost_boy,10;
+ lost_boy = 10;
changequest 8097,8097;
close;
}
@@ -408,7 +408,7 @@ ra_in01,384,246,3 script Vincent#ra_in01 1_M_01,{
mes "I don't know what's inside,";
mes "but I know these items are";
mes "quite valuable nowadays...";
- set lost_boy,12;
+ lost_boy = 12;
changequest 8098,8099;
getitem 617,1; //Old_Violet_Box
next;
@@ -491,7 +491,7 @@ rachel,114,232,3 script Logan#ra_in01 4_M_LGTMAN,{
mes "You could ask Mr. Manson";
mes "inside the mansion. He's";
mes "been working here for a while.";
- set lost_boy,2;
+ lost_boy = 2;
changequest 8089,8090;
close;
}
@@ -589,7 +589,7 @@ ra_in01,372,200,3 script Manson#ra_in01 4_M_MIDDLE,{
mes "She's working in the garden";
mes "now, and she'd appreciate";
mes "your help in finding Phobe.";
- set lost_boy,3;
+ lost_boy = 3;
changequest 8090,8091;
close;
}
@@ -672,7 +672,7 @@ rachel,48,237,3 script Jenny#ra_in01 4_F_KHELLISIA,{
mes "Oh... That's a good idea.";
mes "Alright, I guess I can go";
mes "to the market and ask around.";
- set lost_boy,4;
+ lost_boy = 4;
changequest 8091,8092;
close;
}
@@ -768,7 +768,7 @@ rachel,48,237,3 script Jenny#ra_in01 4_F_KHELLISIA,{
mes "this way, I couldn't be";
mes "happier. Thank you for";
mes "all of your help, adventurer~";
- set lost_boy,11;
+ lost_boy = 11;
changequest 8097,8098;
}
close;
@@ -873,7 +873,7 @@ rachel,138,73,5 script Idle Merchant#ra_in01 4_M_03,{
mes "merchants about that";
mes "missing boy. Er, but";
mes "good luck selling that.";
- set lost_boy,5;
+ lost_boy = 5;
close;
}
else if (lost_boy >= 5) {
@@ -944,7 +944,7 @@ rachel,120,47,3 script Idle Merchant#ra_in01_2 4_M_03,{
mes "him. Oh, and be careful";
mes "in that ice cave. That place";
mes "can be plenty dangerous.";
- set lost_boy,6;
+ lost_boy = 6;
changequest 8092,8093;
close;
}
@@ -1071,7 +1071,7 @@ ra_fild01,245,325,3 script Suspicious Man#ra_in01 4_M_RASWORD,{
mes "I'm going to talk";
mes "to Vincent and make";
mes "him explain everything.";
- set lost_boy,7;
+ lost_boy = 7;
changequest 8093,8094;
close;
}
@@ -1182,7 +1182,7 @@ rachel,263,32,3 script Kid#ra_in01 4_M_RACHMAN1,{
mes "return home for now, so";
mes "you should bring this red";
mes "jewel back to Vincent.^000000";
- set lost_boy,9;
+ lost_boy = 9;
changequest 8095,8096;
close;
}
@@ -1247,7 +1247,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "in the past. If you want to";
mes "turn me in, go ahead...";
delitem 1201,1; //Knife
- set rach_vice,22;
+ rach_vice = 22;
changequest 8121,8122;
close;
}
@@ -1306,7 +1306,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "unbearable! I haven't been";
mes "able to sleep... That's why";
mes "I had to leave Lighthalzen.";
- set rach_vice,21;
+ rach_vice = 21;
next;
mes "[" + strcharinfo(0) + "]";
mes "......";
@@ -1408,7 +1408,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "my fault! I was desperate!";
mes "You don't understand how";
mes "I used to live, you d-don't--!";
- set rach_vice,21;
+ rach_vice = 21;
next;
mes "[" + strcharinfo(0) + "]";
mes "Huh...?";
@@ -1433,7 +1433,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "[Katinshuell]";
mes "I... I don't have";
mes "to tell you anything!";
- set rach_vice,20;
+ rach_vice = 20;
changequest 8120,8121;
next;
mes "[" + strcharinfo(0) + "]";
@@ -1500,7 +1500,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "What happened when";
mes "Bruspetti confronted";
mes "you at Freya's Spring?";
- set rach_vice,19;
+ rach_vice = 19;
next;
mes "[Katinshuell]";
mes ".........";
@@ -1522,7 +1522,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "Fine, if you're not going to";
mes "talk, then I'm going to flip";
mes "through this diary for answers.";
- set rach_vice,18;
+ rach_vice = 18;
close;
}
else if (rach_vice == 16) {
@@ -1679,7 +1679,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "you became worried about another possibility.";
mes "So you were plotting to get rid of the possibility, too.";
next;
- set rach_vice,17;
+ rach_vice = 17;
mes "[Katinshuell]";
mes "No! Stop it! Stop!";
mes "Are you implying that";
@@ -1781,7 +1781,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "[Katinshuell]";
mes "......!";
delitem 7571,1; //Diary_Of_Blue
- set rach_vice,16;
+ rach_vice = 16;
changequest 8119,8120;
close;
}
@@ -1829,7 +1829,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "What? I don't understand you...";
close;
}
- set rach_vice,11;
+ rach_vice = 11;
changequest 8114,8115;
mes "[Katinshuell]";
mes "You happy, now?";
@@ -1864,7 +1864,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "can't handle. Me and my";
mes "girlfriend are history now.";
mes "It's over between us.";
- set rach_vice,4;
+ rach_vice = 4;
changequest 8107,8108;
close;
}
@@ -1915,7 +1915,7 @@ ra_in01,235,194,5 script Katinshuell 4_M_RACHMAN1,{
mes "away from other people,";
mes "and to be left all alone for";
mes "some semblance of peace.";
- if (friendship > 10) set rach_vice,1;
+ if (friendship > 10) rach_vice = 1;
close;
}
mes "[Katinshuell]";
@@ -2055,7 +2055,7 @@ ra_in01,250,19,3 script Mr. Shendar 4_M_MIDDLE,{
mes "father. Besides, adventurers";
mes "like you can offer her the";
mes "best protection...";
- set rach_vice,14;
+ rach_vice = 14;
changequest 8117,8118;
close;
}
@@ -2105,7 +2105,7 @@ ra_in01,250,19,3 script Mr. Shendar 4_M_MIDDLE,{
mes "Oh, but how a father";
mes "worries. Will my sweet,";
mes "darling Bruspetti be alright?";
- set rach_vice,9;
+ rach_vice = 9;
changequest 8112,8113;
close;
}
@@ -2124,7 +2124,7 @@ ra_in01,250,19,3 script Mr. Shendar 4_M_MIDDLE,{
mes "distinctively pleasant";
mes "scent about them. I guess";
mes "it must be pheremonal?";
- set rach_vice,5;
+ rach_vice = 5;
changequest 8108,8109;
close;
}
@@ -2170,7 +2170,7 @@ ra_in01,250,19,3 script Mr. Shendar 4_M_MIDDLE,{
mes "awful long time, but she's";
mes "also an adult now. I... I guess";
mes "she should be just fine.";
- set rach_vice,2;
+ rach_vice = 2;
setquest 8106;
close;
}
@@ -2246,7 +2246,7 @@ rachel,73,244,3 script Lachellen 4_F_SHABBY,{
mes "so you look like a real loser";
mes "if you go there alone. That's";
mes "why I want a boyfriend now...";
- set rach_vice,12;
+ rach_vice = 12;
changequest 8115,8116;
next;
}
@@ -2316,7 +2316,7 @@ rachel,73,244,3 script Lachellen 4_F_SHABBY,{
mes "and her boyfriend usually";
mes "went on dates, you might";
mes "be able to find something.";
- set rach_vice,7;
+ rach_vice = 7;
changequest 8110,8111;
close;
}
@@ -2335,7 +2335,7 @@ rachel,73,244,3 script Lachellen 4_F_SHABBY,{
mes "she's also admitted that";
mes "she doesn't know much about";
mes "him. Let's see... He grew up in Lighthalzen? That's all she knows.";
- set rach_vice,3;
+ rach_vice = 3;
changequest 8106,8107;
close;
}
@@ -2452,7 +2452,7 @@ rachel,266,35,3 script Grandma#rachel 4_F_RACHOLD,{
mes "to let go of whatever's";
mes "bothering you, and just";
mes "enjoy life as it is now.";
- set rach_vice,13;
+ rach_vice = 13;
changequest 8116,8117;
close;
}
@@ -2484,7 +2484,7 @@ OnTouch:
mes "Wait, could this be";
mes "the scent that Bruspetti's";
mes "father mentioned earlier?";
- set rach_vice,6;
+ rach_vice = 6;
changequest 8109,8110;
close;
}
@@ -2526,7 +2526,7 @@ OnTouch:
mes "anyone accountable for this?";
mes "Who would be to blame?";
next;
- set rach_vice,24;
+ rach_vice = 24;
completequest 8122;
if (checkre(3)) {
if (BaseLevel > 90) getexp 130000,0;
@@ -2563,7 +2563,7 @@ OnTouch:
mes "Yes, I wouldn't want";
mes "to get myself drowned.";
next;
- set rach_vice,23;
+ rach_vice = 23;
mes "[Grandma]";
mes "Drowned...? I just";
mes "wouldn't want you to";
@@ -2603,7 +2603,7 @@ OnTouch:
next;
mes "[" + strcharinfo(0) + "]";
mes "Ah, I see.";
- set rach_vice,8;
+ rach_vice = 8;
changequest 8111,8112;
close;
}
@@ -2620,7 +2620,7 @@ ra_in01,255,25,0 script Book#ra_in HIDDEN_NPC,{
close;
}
else if (rach_vice == 14) {
- set rach_vice,15;
+ rach_vice = 15;
changequest 8118,8119;
getitem 7571,1; //Diary_Of_Blue
mes "^3355FFThis must be";
@@ -2638,7 +2638,7 @@ ra_in01,255,25,0 script Book#ra_in HIDDEN_NPC,{
mes "would make you feel";
mes "like a real creep.";
mes "So don't touch it.^000000";
- set rach_vice,10;
+ rach_vice = 10;
changequest 8113,8114;
close;
}
@@ -2796,7 +2796,7 @@ rachel,157,183,3 script Sincere Follower Urstia 4_F_MASK1,{
mes "our loving goddess Freya.";
setquest 2109;
getitem 7572,1; //Magic_Necklace
- set ice_necklace_q,1;
+ ice_necklace_q = 1;
close2;
cutin "",255;
end;
@@ -2834,7 +2834,7 @@ rachel,157,183,3 script Sincere Follower Urstia 4_F_MASK1,{
mes " what you have done for me.";
delitem 7573,1; //Magic_Necklace_
getexp (checkre(3))?90000:700000,0;
- set ice_necklace_q,6;
+ ice_necklace_q = 6;
completequest 2113;
next;
mes "["+strcharinfo(0)+"]";
@@ -3062,7 +3062,7 @@ ice_dun02,120,105,3 script Man Stuck in Ice#cave 4_M_FROZEN1,5,5,{
mes "this prison of ice. He can";
mes "be found near Freya's Spring:";
mes "beseech him on my behalf!";
- set ice_necklace_q,2;
+ ice_necklace_q = 2;
changequest 2109,2110;
close2;
cutin "",255;
@@ -3185,7 +3185,7 @@ ice_dun02,120,105,3 script Man Stuck in Ice#cave 4_M_FROZEN1,5,5,{
mes "And please don't mention";
mes "the fact that I trapped myself";
mes "in ice to anyone else, okay?";
- set ice_necklace_q,5;
+ ice_necklace_q = 5;
changequest 2112,2113;
delitem 7569,1; //Hammer_Of_Wind
delitem 7572,1; //Magic_Necklace
@@ -3295,7 +3295,7 @@ rachel,265,98,3 script Hamion#aru 4_M_RACHMAN2,{
mes "not one of those smithing tools.";
mes "I'd help you if I could, but...";
mes "I'm just smart, not strong.";
- set ice_necklace_q,3;
+ ice_necklace_q = 3;
changequest 2110,2111;
close;
}
@@ -3365,7 +3365,7 @@ rachel,265,98,3 script Hamion#aru 4_M_RACHMAN2,{
delitem 1354,1; //Hammer
delitem 996,5; //Rough_Wind
delitem 7433,1; //Scroll
- set ice_necklace_q,4;
+ ice_necklace_q = 4;
changequest 2111,2112;
getitem 7569,1; //Hammer_of_Wind
close;
@@ -3441,7 +3441,7 @@ rachel,113,96,5 script Mohadian 4_M_MIDDLE,10,10,{
mes "by hunting the snow monsters";
mes "in the Ice Cave. Remember, I'll";
mes "pay you 375 zeny for each one!";
- set ice_necklace_q,7;
+ ice_necklace_q = 7;
close;
}
else if (ice_necklace_q == 7) {
@@ -3468,8 +3468,8 @@ rachel,113,96,5 script Mohadian 4_M_MIDDLE,10,10,{
mes "Wine. Anyway, let me see";
mes "how many you've brought me.";
next;
- set .@hearts,countitem(7561);
- set .@totalprice,375*.@hearts;
+ .@hearts = countitem(7561);
+ .@totalprice = 375*.@hearts;
mes "[Mohadian]";
mes .@hearts +" Glacial Hearts";
mes "at 375 zeny each...";
@@ -3509,7 +3509,7 @@ ice_dun03,126,126,3 script Blazing Fire#ice1 4_NFWISP,{
mes "flickers before extinguising.^000000";
delitem 7574,1; //Freezing Snow Powder
hideonnpc "Blazing Fire#ice1";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
}
else if (countitem(7562) > 0) {
@@ -3520,7 +3520,7 @@ ice_dun03,126,126,3 script Blazing Fire#ice1 4_NFWISP,{
mes "extinguising.^000000";
delitem 7562,1; //Ice Scale
hideonnpc "Blazing Fire#ice1";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
close;
}
@@ -3546,7 +3546,7 @@ ice_dun03,172,126,0 script Blazing Fire#ice2 4_NFWISP,{
mes "flickers before extinguising.^000000";
delitem 7574,1; //Freezing Snow Powder
hideonnpc "Blazing Fire#ice2";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
}
else if (countitem(7562) > 0) {
@@ -3557,7 +3557,7 @@ ice_dun03,172,126,0 script Blazing Fire#ice2 4_NFWISP,{
mes "extinguising.^000000";
delitem 7562,1; //Ice Scale
hideonnpc "Blazing Fire#ice2";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
close;
}
@@ -3582,7 +3582,7 @@ ice_dun03,172,172,0 script Blazing Fire#ice3 4_NFWISP,{
mes "flickers before extinguising.^000000";
delitem 7574,1; //Freezing Snow Powder
hideonnpc "Blazing Fire#ice3";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
}
else if (countitem(7562) > 0) {
@@ -3593,7 +3593,7 @@ ice_dun03,172,172,0 script Blazing Fire#ice3 4_NFWISP,{
mes "extinguising.^000000";
delitem 7562,1; //Ice Scale
hideonnpc "Blazing Fire#ice3";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
close;
}
@@ -3618,7 +3618,7 @@ ice_dun03,127,172,0 script Blazing Fire#ice4 4_NFWISP,{
mes "flickers before extinguising.^000000";
delitem 7574,1; //Freezing Snow Powder
hideonnpc "Blazing Fire#ice4";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
}
else if (countitem(7562) > 0) {
@@ -3629,7 +3629,7 @@ ice_dun03,127,172,0 script Blazing Fire#ice4 4_NFWISP,{
mes "extinguising.^000000";
delitem 7562,1; //Ice Scale
hideonnpc "Blazing Fire#ice4";
- set $@ktullanux_summon,$@ktullanux_summon+1;
+ ++$@ktullanux_summon;
if ($@ktullanux_summon == 4) donpcevent "ice_boss#broad::OnStart";
close;
}
@@ -3699,14 +3699,14 @@ OnMyMobDead:
OnTimer7200000:
stopnpctimer;
- set $@ktullanux_summon,0;
+ $@ktullanux_summon = 0;
hideoffnpc "Blazing Fire#ice1";
hideoffnpc "Blazing Fire#ice2";
hideoffnpc "Blazing Fire#ice3";
hideoffnpc "Blazing Fire#ice4";
end;
}
-
+
ice_dun03,1,175,3 script #ice_sec -1,{
OnStart:
initnpctimer;
@@ -4002,7 +4002,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "this long, and I really need";
mes "to go inside. ^333333*Sob*^000000 P-Panno!";
mes "Panno, I neeeed heeeeelp~!";
- set ra_tem_q,1;
+ ra_tem_q = 1;
goto L_End;
}
else if ((ra_tem_q >= 1) && (ra_tem_q < 10)) {
@@ -4082,7 +4082,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
mes "a lot of Firecrackers,";
mes "like, ^FF000020 of them^000000! Thank";
mes "you thank you thank you!";
- set ra_tem_q,13;
+ ra_tem_q = 13;
goto L_End;
}
else if (ra_tem_q == 13) {
@@ -4099,7 +4099,7 @@ ra_temple,116,174,3 script Nemma#ra_temple 4_F_TRAINEE,{
cutin "ra_nemma04",2;
delitem 12018,20; //Fire_Cracker
getexp (checkre(3))?50000:200000,0;
- set ra_tem_q,14;
+ ra_tem_q = 14;
mes "[Priestess Nemma]";
mes "Yay!";
mes "Firecrackers!";
@@ -4192,10 +4192,10 @@ S_Donate:
mes "donate if you can, okay?";
return;
}
- set $rachel_donate,$rachel_donate+getarg(0);
+ $rachel_donate += getarg(0);
getitem 7570,getarg(0); //Temple_Lottery_Ticket
Zeny -= getarg(0)*50000;
- set ra_have_donated,1;
+ ra_have_donated = 1;
if ($rachel_donate > 9999) {
cutin "ra_nemma03",2;
mes "[Priestess Nemma]";
@@ -4208,7 +4208,7 @@ S_Donate:
return;
}
else {
- set .@Remaining,10000-$rachel_donate;
+ .@Remaining = 10000-$rachel_donate;
cutin "ra_nemma03",2;
mes "[Priestess Nemma]";
mes "Thank you so much! We'll be";
@@ -4370,7 +4370,7 @@ rachel,243,37,3 script Kid#Candy Addict 4_M_CHILD1,{
mes "[Kid]";
mes "Oooh, I hate you";
mes "now! Leave me alone!";
- set ra_tem_q,2;
+ ra_tem_q = 2;
close;
}
mes "[Kid]";
@@ -4454,7 +4454,7 @@ rachel,243,37,3 script Kid#Candy Addict 4_M_CHILD1,{
mes "If you're not,";
mes "then I'm gonna";
mes "be madder at you!";
- set ra_tem_q,2;
+ ra_tem_q = 2;
break;
}
}
@@ -4545,7 +4545,7 @@ OnTouch:
if (ra_tem_q == 2) {
mes "^3355FFIt's strangely";
mes "dark in here.^000000";
- set ra_tem_q,3;
+ ra_tem_q = 3;
close;
}
end;
@@ -4559,7 +4559,7 @@ OnTouch:
mes "towards the chapel. It";
mes "sounds like there are";
mes "several other people here.^000000";
- set ra_tem_q,4;
+ ra_tem_q = 4;
close;
}
end;
@@ -4570,7 +4570,7 @@ OnTouch:
if (ra_tem_q == 4) {
mes "^3355FFYou hear noises of some";
mes "commotion from the stairs.^000000";
- set ra_tem_q,5;
+ ra_tem_q = 5;
close;
}
end;
@@ -4587,7 +4587,7 @@ OnTouch:
mes "fall from the stairs,";
mes "followed by noises that";
mes "sound like a scuffle.^000000";
- set ra_tem_q,6;
+ ra_tem_q = 6;
close;
}
end;
@@ -4611,7 +4611,7 @@ OnTouch:
mes "^3355FFIt smells a little bit";
mes "like copper or iron. Blood";
mes "has probably been spilled here.^000000";
- set ra_tem_q,7;
+ ra_tem_q = 7;
close;
}
else {
@@ -4641,7 +4641,7 @@ OnTouch:
mes "than can be contained in just";
mes "one person. You'd better get";
mes "out of here before it's too late.^000000";
- set ra_tem_q,8;
+ ra_tem_q = 8;
close;
}
else {
@@ -4686,7 +4686,7 @@ OnTouch:
mes "Panno's voice! But isn't";
mes "she just outside the door?";
mes "What exactly was she saying?";
- set ra_tem_q,9;
+ ra_tem_q = 9;
close;
}
end;
@@ -4706,7 +4706,7 @@ que_rachel,169,18,0 script Quest Temple Exit#ra_tem WARPNPC,2,2,{
mes "with all of your might...";
if (ra_tem_q == 9) {
close2;
- set ra_tem_q,10;
+ ra_tem_q = 10;
warp "ra_temple",119,175;
end;
}
@@ -4724,7 +4724,7 @@ que_rachel,169,18,0 script Quest Temple Exit#ra_tem WARPNPC,2,2,{
mes "^3355FFYou angrily kick the gate...";
if (ra_tem_q == 9) {
close2;
- set ra_tem_q,10;
+ ra_tem_q = 10;
warp "ra_temple",119,175;
end;
}
@@ -4746,7 +4746,7 @@ que_rachel,169,18,0 script Quest Temple Exit#ra_tem WARPNPC,2,2,{
}
ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
- if ((ra_tem_q > 14) || (MISC_QUEST&8192)) set lost_boy,14;
+ if ((ra_tem_q > 14) || (MISC_QUEST&8192)) lost_boy = 14;
if (checkweight(908,200) == 0) {
mes "^3355FFWait a second!";
mes "Right now, you're carrying";
@@ -4838,7 +4838,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "be with you, "+strcharinfo(0)+".";
close2;
cutin "",255;
- set lost_boy,13;
+ lost_boy = 13;
completequest 8099;
specialeffect2 EF_ABSORBSPIRITS;
getexp (checkre(3))?90000:900000,0;
@@ -5005,8 +5005,8 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "Priest's recommendation.^000000";
close2;
cutin "",255;
- set ra_tem_q,15;
- set lost_boy,14;
+ ra_tem_q = 15;
+ lost_boy = 14;
setquest 8100;
end;
}
@@ -5090,7 +5090,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
close2;
cutin "",255;
select("Okay.");
- set ra_tem_q,18;
+ ra_tem_q = 18;
warp "ra_temin",297,156;
end;
}
@@ -5161,7 +5161,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "just go there. Who'll stop you?^000000";
close2;
cutin "",255;
- set ra_tem_q,20;
+ ra_tem_q = 20;
changequest 8103,8104;
end;
}
@@ -5261,8 +5261,8 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "I need to go lay down now,";
mes "so if you'll let me rest...";
close2;
- set MISC_QUEST,MISC_QUEST | 8192;
- set ra_tem_q,0;
+ MISC_QUEST |= 8192;
+ ra_tem_q = 0;
cutin "",255;
completequest 8105;
specialeffect2 EF_ABSORBSPIRITS;
@@ -5336,7 +5336,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "Why don't you speak to Niren?";
mes "I'm sure that she can tell you";
mes "more about what happened.";
- set aru_monas,12;
+ aru_monas = 12;
changequest 17007,17008;
next;
mes "[High Priest Zhed]";
@@ -5576,7 +5576,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "of a really good way";
mes "for you to infiltrate";
mes "that place. Hmmmm...";
- set aru_vol,1;
+ aru_vol = 1;
setquest 2114;
close2;
cutin "",255;
@@ -5749,7 +5749,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "best chance of entering the Thor";
mes "Volcano camp without suspicion.";
delitem 7342,1; //File01
- set aru_vol,6;
+ aru_vol = 6;
changequest 2115,2116;
}
else {
@@ -5824,7 +5824,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "I will be contacting you again.";
mes "Together, we can protect";
mes "peace between our nations.";
- set aru_vol,27;
+ aru_vol = 27;
completequest 60213;
getexp (checkre(3))?20000:200000,0;
close2;
@@ -6079,7 +6079,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "she is away somewhere";
mes "on business. She is highly";
mes "loved by the people, you know.";
- set aru_em,9;
+ aru_em = 9;
}
else if ((aru_em == 9) || (aru_em == 10)) {
mes "[High Priest Zhed]";
@@ -6126,7 +6126,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "I'm going to write";
mes "a letter that I want";
mes "you to give to Niren.";
- set aru_em,12;
+ aru_em = 12;
}
else if(aru_em == 12) {
cutin "ra_gman",2;
@@ -6139,7 +6139,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
next;
mes "^3355FFYou received a letter for";
mes "Niren from High Priest Zhed.^000000";
- set aru_em,13;
+ aru_em = 13;
}
else if((aru_em == 13) || (aru_em == 14)) {
mes "[High Priest Zhed]";
@@ -6188,7 +6188,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "Let's receive an";
mes "audience with the";
mes "pope, shall we?";
- set aru_em,21;
+ aru_em = 21;
}
else if(aru_em == 21) {
mes "[High Priest Zhed]";
@@ -6265,7 +6265,7 @@ ra_temin,277,159,3 script High Priest Zhed#rachel 4_M_RACHOLD1,{
mes "thank you for your heroism.";
mes "Your place in Valhalla is";
mes "already assured, I'm sure.";
- set aru_em,24;
+ aru_em = 24;
getexp (checkre(3))?150000:1500000,0;
}
else {
@@ -6514,7 +6514,7 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
next;
mes "[Priestess Panno]";
mes ".........";
- set ra_tem_q,11;
+ ra_tem_q = 11;
goto L_End;
}
}
@@ -6649,7 +6649,7 @@ ra_temin,170,46,3 script Panno#rachel 4_F_TRAINEE,{
mes "sure we'll end up dead.";
mes "Excuse me now, I need";
mes "to get back to work.";
- set ra_tem_q,12;
+ ra_tem_q = 12;
goto L_End;
}
cutin "ra_fano02",2;
@@ -6690,9 +6690,9 @@ L_Lottery:
mes "gratitude. May Freya smile";
mes "upon you for your generosity...";
delitem 7570,1;
- set .@bonus_donate,rand(100);
+ .@bonus_donate = rand(100);
if (.@bonus_donate == 99) {
- set .@bonus_donate2,rand(100);
+ .@bonus_donate2 = rand(100);
if (.@bonus_donate2 > 0 && .@bonus_donate2 < 11) getitem 616,1; //Old Card Album 0.1%
else if (.@bonus_donate2 > 10 && .@bonus_donate2 < 31) getitem 617,1; //Old Violet Box 0.2%
else if (.@bonus_donate2 > 30 && .@bonus_donate2 < 61) getitem 603,1; //Old Blue Box 0.3%
@@ -6750,7 +6750,7 @@ ra_temin,134,128,3 script Pope's Office Guard#rac::raofficeguard 4_M_MASK1,{
mes "enter and see the pope";
mes "Welcome, brave "+strcharinfo(0)+".";
close2;
- set ra_tem_q,16;
+ ra_tem_q = 16;
delitem 7561,40; //Ice_Heart
end;
}
@@ -6955,7 +6955,7 @@ ra_temsky,99,99,5 script Pope#rachel 4_F_ARUNA_POP,{
mes "This is goodbye for now...";
close2;
cutin "",255;
- set ra_tem_q,17;
+ ra_tem_q = 17;
changequest 8100,8101;
end;
}
@@ -7013,7 +7013,7 @@ ra_temsky,99,99,5 script Pope#rachel 4_F_ARUNA_POP,{
mes "like that. ^666666*Sigh*^000000 I'm feeling";
mes "pretty exhausted. I better...";
mes "I better get some rest...";
- set aru_em,16;
+ aru_em = 16;
close2;
cutin "",255;
end;
@@ -7236,7 +7236,7 @@ OnTouch:
mes "What could she possibly mean?";
mes "For now, you may as well";
mes "talk to High Priest Zhed.^000000";
- set ra_tem_q,19;
+ ra_tem_q = 19;
changequest 8102,8103;
close;
}
@@ -7262,7 +7262,7 @@ OnTouch:
mes "identify it as a small key.";
mes "Perhaps you can use it to";
mes "open some kind of lock.";
- set ra_tem_q,21;
+ ra_tem_q = 21;
close;
}
end;
@@ -7386,7 +7386,7 @@ OnTouch:
close2;
cutin "",255;
hideonnpc "High Priestess Niren#r2";
- set ra_tem_q,22;
+ ra_tem_q = 22;
changequest 8104,8105;
warp "rachel",163,152;
end;
@@ -7424,7 +7424,7 @@ OnTouch:
mes "^3355FFIt would be best to";
mes "ask High Priest Zhed";
mes "about what had happened.^000000";
- set ra_tem_q,23;
+ ra_tem_q = 23;
close;
}
end;
diff --git a/npc/quests/quests_umbala.txt b/npc/quests/quests_umbala.txt
index e160e84a8..0ce3aba39 100644
--- a/npc/quests/quests_umbala.txt
+++ b/npc/quests/quests_umbala.txt
@@ -106,7 +106,7 @@ um_in,39,122,5 script Utan Chief 4_M_UMCHIEF,{
mes "local people. When you think";
mes "you understand enough about Utan";
mes "culture, come back to me and show me what you have learned.";
- set event_umbala,1;
+ event_umbala = 1;
close;
}
else if (event_umbala == 1) {
@@ -167,7 +167,7 @@ um_in,39,122,5 script Utan Chief 4_M_UMCHIEF,{
mes "^3377FF1 Feather of Birds^000000.";
mes "Please bring me those, and I will";
mes "teach you when you're ready.";
- set event_umbala,2;
+ event_umbala = 2;
close;
}
else {
@@ -264,7 +264,7 @@ um_in,39,122,5 script Utan Chief 4_M_UMCHIEF,{
delitem 7111,5; //Smooth_Paper
delitem 1024,1; //Chinese_Ink
delitem 916,1; //Feather_Of_Birds
- set event_umbala,3;
+ event_umbala = 3;
next;
mes "[Karkatan]";
mes "Okay, if you have any business";
@@ -311,7 +311,7 @@ um_in,39,122,5 script Utan Chief 4_M_UMCHIEF,{
mes "present is considered an";
mes "honor. Maybe Puchuchartan";
mes "wants you to show us your respect by doing so.";
- set event_umbala,5;
+ event_umbala = 5;
close;
}
else if (event_umbala == 5) {
@@ -330,7 +330,7 @@ um_in,39,122,5 script Utan Chief 4_M_UMCHIEF,{
mes "am not sure what help she can give";
mes "you, I hope we will be able to return this favor.";
delitem 2278,1; //Mr_Smile
- set event_umbala,6;
+ event_umbala = 6;
close;
}
else {
@@ -423,7 +423,7 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
mes "outsiders talking to the tribe";
mes "more than they have to...";
mes "We want to live a peaceful life, so do not disturb us.";
- set event_umbala,4;
+ event_umbala = 4;
close;
case 4:
case 5:
@@ -456,15 +456,15 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
mes "So come and speak to me when";
mes "you think my power may be";
mes "of service to you.";
- set event_umbala,7;
+ event_umbala = 7;
close;
case 7:
- mes "[Putsuchiritan]";
+ mes "[Puchuchartan]";
mes "I don't know whether my talents";
mes "will be useful to you, but I'll";
mes "help you anyway.";
next;
- mes "[Putsuchiritan]";
+ mes "[Puchuchartan]";
mes "I can create elemental essence from natural objects,";
mes "or, dismantle elemental stones into their component essences.";
mes "Which would you like to do?";
@@ -512,24 +512,24 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
next;
switch (select("Earth:Water:Fire:Wind")) {
case 1:
- set .@consume,947; //Horn
- set .@amount,15;
- set .@success,993; //Yellow_Live
+ .@consume = 947; //Horn
+ .@amount = 15;
+ .@success = 993; //Yellow_Live
break;
case 2:
- set .@consume,946; //Snail's_Shell
- set .@amount,20;
- set .@success,991; //Crystal_Blue
+ .@consume = 946; //Snail's_Shell
+ .@amount = 20;
+ .@success = 991; //Crystal_Blue
break;
case 3:
- set .@consume,904; //Scorpion's_Tail
- set .@amount,20;
- set .@success,990; //Boody_Red
+ .@consume = 904; //Scorpion's_Tail
+ .@amount = 20;
+ .@success = 990; //Boody_Red
break;
case 4:
- set .@consume,1013; //Colorful_Shell
- set .@amount,25;
- set .@success,992; //Wind_Of_Verdure
+ .@consume = 1013; //Colorful_Shell
+ .@amount = 25;
+ .@success = 992; //Wind_Of_Verdure
break;
}
if (countitem(.@consume) >= .@amount) {
@@ -676,16 +676,16 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
next;
switch(select("Earth:Water:Fire:Wind")) {
case 1:
- set .@divide,997; //Great_Nature
+ .@divide = 997; //Great_Nature
break;
case 2:
- set .@divide,995; //Mistic_Frozen
+ .@divide = 995; //Mistic_Frozen
break;
case 3:
- set .@divide,994; //Flame_Heart
+ .@divide = 994; //Flame_Heart
break;
case 4:
- set .@divide,996; //Rough_Wind
+ .@divide = 996; //Rough_Wind
break;
}
mes "[Puchuchartan]";
@@ -756,8 +756,8 @@ um_in,44,71,2 script Utan Shaman 4_F_UMOLDWOMAN,{
break;
}
else {
- set .@shaman_max,.@shaman_max + rand(6,10);
- set .@sha_man,.@sha_man + 1;
+ .@shaman_max += rand(6,10);
+ ++.@sha_man;
}
}
switch(.@divide) {
@@ -850,13 +850,13 @@ umbala,221,193,1 script #Skulldoor HIDDEN_NPC,{
next;
break;
case 2:
- set .@insert,717;
+ .@insert = 717;
break;
case 3:
- set .@insert,715;
+ .@insert = 715;
break;
case 4:
- set .@insert,716;
+ .@insert = 716;
break;
}
if (.@insert) {
@@ -866,11 +866,11 @@ umbala,221,193,1 script #Skulldoor HIDDEN_NPC,{
next;
mes "^3355FFThe gemstone rolled back out of";
mes "the mouth of the skull.^000000";
- set .@skulldoor,.@skulldoor+1;
+ ++.@skulldoor;
switch (.@insert) {
- case 715: set .@skull,2; break;
- case 716: set .@skull,3; break;
- case 717: set .@skull,1; break;
+ case 715: .@skull = 2; break;
+ case 716: .@skull = 3; break;
+ case 717: .@skull = 1; break;
}
delitem .@insert,1;
getitem .@insert,1;
@@ -892,13 +892,13 @@ umbala,221,193,1 script #Skulldoor HIDDEN_NPC,{
next;
break;
case 2:
- set .@insert2,717;
+ .@insert2 = 717;
break;
case 3:
- set .@insert2,715;
+ .@insert2 = 715;
break;
case 4:
- set .@insert2,716;
+ .@insert2 = 716;
break;
}
if (.@insert2) {
@@ -909,10 +909,10 @@ umbala,221,193,1 script #Skulldoor HIDDEN_NPC,{
mes "^3355FFThe gemstone rolled back out of";
mes "the mouth of the skull.^000000";
if (.@insert2 == .@insert) {
- set .@skulldoor,.@skulldoor+1;
+ .@skulldoor += 1;
}
else {
- set .@skulldoor,.@skulldoor+2;
+ .@skulldoor += 2;
}
delitem .@insert2,1;
getitem .@insert2,1;
@@ -937,17 +937,17 @@ umbala,221,193,1 script #Skulldoor HIDDEN_NPC,{
switch(.@skulldoor) {
case 3:
if (rand(1,4) != 1) {
- set .@skullopen,1;
+ .@skullopen = 1;
}
break;
case 2:
if (rand(1,2) == 2) {
- set .@skullopen,1;
+ .@skullopen = 1;
}
break;
case 1:
if (rand(1,4) == 1) {
- set .@skullopen,1;
+ .@skullopen = 1;
}
break;
default:
@@ -1001,7 +1001,7 @@ um_in,139,48,5 script Phrenetan 4_F_UMWOMAN,{
close;
}
if (um_wind <= 3 && (MISC_QUEST & 32768) == 0) {
- if (um_wind) set um_wind,1;
+ if (um_wind) um_wind = 1;
emotion e_an;
mes "[Phrenetan]";
mes "Umbaumbah wooga wooga";
@@ -1127,7 +1127,7 @@ um_in,101,73,3 script Wainatan 4_F_UMWOMAN,{
}
if (um_wind == 1) {
if (gettime(3) > 18) {
- set um_wind,2;
+ um_wind = 2;
emotion e_an;
mes "[Wainatan]";
mes "Umbaumbah umgagaga.";
@@ -1171,7 +1171,7 @@ um_in,94,123,5 script Bertztan 4_F_UMWOMAN,{
}
if (um_wind == 2) {
if (gettime(3) > 18) {
- set um_wind,3;
+ um_wind = 3;
emotion e_an;
mes "[Bertztan]";
mes "Umbaumbah umgagaga.";
@@ -1223,7 +1223,7 @@ umbala,145,217,3 script Chabimatan 4_F_UMWOMAN,{
}
if (um_wind == 3) {
if (gettime(3) > 18) {
- set um_wind,4;
+ um_wind = 4;
emotion e_an;
mes "[Chabimatan]";
mes "Umbabah umbarbar woogawooga um";
@@ -1267,7 +1267,7 @@ OnInit:
OnTouch:
if (um_wind == 4) {
- set um_wind,5;
+ um_wind = 5;
mes "^3355FFAs you enter the house";
mes "you happen to witness";
mes "Phrenetan beating a guy";
@@ -1303,14 +1303,14 @@ OnTouch:
next;
if (select("Take it.:Leave it.") == 1) {
close2;
- set um_wind,0;
- set MISC_QUEST,MISC_QUEST | 32768;
+ um_wind = 0;
+ MISC_QUEST |= 32768;
getitem 610,1; //Leaf_Of_Yggdrasil
disablenpc "#unpc";
end;
}
- set um_wind,0;
- set MISC_QUEST,MISC_QUEST | 32768;
+ um_wind = 0;
+ MISC_QUEST |= 32768;
mes "[" + strcharinfo(0) + "]";
mes "I am not supposed to take";
mes "what may belong to other people.";
diff --git a/npc/quests/quests_veins.txt b/npc/quests/quests_veins.txt
index cd57c9945..b4416da15 100644
--- a/npc/quests/quests_veins.txt
+++ b/npc/quests/quests_veins.txt
@@ -187,7 +187,7 @@
mes "in the Tool Shop, then";
mes "you might want to stop";
mes "by the Tavern. A-auuugh!";
- set veins_stone,1;
+ veins_stone = 1;
close;
}
}
@@ -262,7 +262,7 @@
mes "to the factory in town? It's";
mes "near the airport or airship or";
mes "something. It won't take long.";
- set veins_stone,5;
+ veins_stone = 5;
close;
}
else if (veins_stone > 4 && veins_stone < 7) {
@@ -290,7 +290,7 @@
mes "I was told that adventurers";
mes "find these useful. Anyway,";
mes "I hope you like these rocks...";
- set veins_stone,8;
+ veins_stone = 8;
getexp (checkre(3))?30000:300000,0;
getitem 985,3; //Elunium
close;
@@ -399,7 +399,7 @@ ve_in,169,310,6 script Strange Old Man#ve 2_M_MOLGENSTEIN,{
mes "come back soon, then";
mes "I won't help you. I've got";
mes "projects I'm working on!";
- set veins_stone,2;
+ veins_stone = 2;
close;
}
else if (veins_stone == 2) {
@@ -419,7 +419,7 @@ ve_in,169,310,6 script Strange Old Man#ve 2_M_MOLGENSTEIN,{
delitem 999,5; //Steel
delitem 1033,5; //Root_Of_Maneater
delitem 7561,2; //Ice_Heart
- set veins_stone,3;
+ veins_stone = 3;
close2;
specialeffect EF_FIRESPLASHHIT;
end;
@@ -456,7 +456,7 @@ ve_in,169,310,6 script Strange Old Man#ve 2_M_MOLGENSTEIN,{
mes "that he doesn't owe me";
mes "anything anymore. He'll...";
mes "He'll know what I mean...";
- set veins_stone,4;
+ veins_stone = 4;
close;
}
mes "[Absar]";
@@ -513,7 +513,7 @@ ve_in02,37,28,4 script Factory Manager 4_M_HUMAN_01,{
mes "Bring those rocks over";
mes "to Bahed over there.";
mes "He'll take care of them.";
- set veins_stone,6;
+ veins_stone = 6;
close;
}
mes "[Mirhen]";
@@ -622,7 +622,7 @@ ve_in02,54,49,2 script Factory Worker#ve1 4_M_DESERT,{
mes "to those hearts. That's";
mes "all I know. Anyway, please";
mes "leave the stones over there~";
- set veins_stone,7;
+ veins_stone = 7;
close;
}
mes "[Bahed]";
@@ -690,7 +690,7 @@ prontera,202,122,0 script Kid#sch 4_F_KID2,{
mes "looks like a Bard, but I'm";
mes "not having any luck. If you";
mes "find him, would you tell me?";
- set que_sch,1;
+ que_sch = 1;
close;
}
else if (que_sch == 1) {
@@ -723,7 +723,7 @@ prontera,202,122,0 script Kid#sch 4_F_KID2,{
mes "Hey, alright! Thanks";
mes "for the cash! Heh heh~";
Zeny -= 100;
- set que_sch,3;
+ que_sch = 3;
close;
}
mes "[Rooney]";
@@ -817,7 +817,7 @@ prt_church,89,108,6 script Bard#sch 2_M_BARD_ORIENT,{
mes "this money to that";
mes "kid that was supposed";
mes "to come find me here.";
- set que_sch,2;
+ que_sch = 2;
Zeny += 100;
next;
mes "[Lasda]";
@@ -865,7 +865,7 @@ prt_church,89,108,6 script Bard#sch 2_M_BARD_ORIENT,{
mes "my friend in a prison in";
mes "^FF0000Morroc^000000, and see what";
mes "you can do to help him..";
- set que_sch,4;
+ que_sch = 4;
close;
}
mes "[Lasda]";
@@ -905,7 +905,7 @@ prt_church,89,108,6 script Bard#sch 2_M_BARD_ORIENT,{
mes "you a letter or recommendation.";
mes "Hopefully, it'll be enough to";
mes "let you enter the prison.";
- set que_sch,9;
+ que_sch = 9;
close;
}
else if (que_sch == 9) {
@@ -973,7 +973,7 @@ prt_church,89,108,6 script Bard#sch 2_M_BARD_ORIENT,{
mes "couldn't have done it without";
mes "your help. Please take this";
mes "reward with our sincere thanks.";
- set que_sch,26;
+ que_sch = 26;
getitem 12106,1; //Accessory_Box
getexp (checkre(3))?60000:600000,0;
close;
@@ -1008,7 +1008,7 @@ morocc,53,87,7 script Prison Ward#sch 4_M_MOC_SOLDIER,{
mes "see anyone since he was";
mes "arrested on suspicion";
mes "of espionage.";
- set que_sch,5;
+ que_sch = 5;
close;
}
else if (que_sch == 5) {
@@ -1025,7 +1025,7 @@ morocc,53,87,7 script Prison Ward#sch 4_M_MOC_SOLDIER,{
mes "actually let you meet the";
mes "prisoner is another matter.";
mes "So do we have a deal?";
- set que_sch,6;
+ que_sch = 6;
close;
}
else if (que_sch == 6) {
@@ -1038,7 +1038,7 @@ morocc,53,87,7 script Prison Ward#sch 4_M_MOC_SOLDIER,{
mes "Morroc Castle. Get his";
mes "approval, and I'll let you in.";
delitem 12066,1; //Luk_Dish01
- set que_sch,7;
+ que_sch = 7;
close;
}
mes "[Jesse]";
@@ -1142,7 +1142,7 @@ morocc_in,79,163,0 script Public Security Officer 4_M_ALCHE_A,{
mes "reconsider letting you";
mes "meet Vitre. Otherwise,";
mes "I just can't do it.";
- set que_sch,8;
+ que_sch = 8;
close;
}
else if (que_sch == 8) {
@@ -1172,7 +1172,7 @@ morocc_in,79,163,0 script Public Security Officer 4_M_ALCHE_A,{
mes "Vitre. I'll send a message";
mes "to the prison ward so that";
mes "he'll let you talk to him.";
- set que_sch,10;
+ que_sch = 10;
close;
}
else if (que_sch < 26) {
@@ -1271,7 +1271,7 @@ ra_in01,50,387,4 script Upset Looking Bard#sch 1_M_BARD,{
mes "I wonder how the lady";
mes "in the Dancer Job Change";
mes "place is doing by now...";
- set que_sch,11;
+ que_sch = 11;
close;
}
}
@@ -1343,7 +1343,7 @@ ra_in01,50,387,4 script Upset Looking Bard#sch 1_M_BARD,{
next;
delitem 1901,1; //Violin
delitem 7040,1; //Megaphone
- set que_sch,19;
+ que_sch = 19;
close2;
disablenpc "Jesse#sch";
warp "morocc",294,153;
@@ -1535,7 +1535,7 @@ job_duncer,93,106,6 script Dance Instructor#sch 4_F_HUGRANMA,{
mes "so bring them over to the";
mes "Schwaltzvalt Republic as";
mes "soon as you're ready.";
- set que_sch,12;
+ que_sch = 12;
close;
}
mes "[Hianna]";
@@ -1582,7 +1582,7 @@ job_duncer,93,106,6 script Dance Instructor#sch 4_F_HUGRANMA,{
mes "for everything, and I'll see";
mes "you around, adventurer~";
Zeny -= 500000;
- set que_sch,18;
+ que_sch = 18;
getitem 7040,1; //Megaphone
close;
}
@@ -1670,7 +1670,7 @@ job_duncer,85,49,0 script Young Dancer#sch1 4_F_07,{
mes "[Dancer]";
mes "Alright, then.";
mes "Here we go~";
- set que_sch,13;
+ que_sch = 13;
close2;
warp "airplane",75,55;
end;
@@ -1708,7 +1708,7 @@ job_duncer,83,52,6 script Cheerful Dancer#sch1 4_F_07,{
mes "[Dancer]";
mes "Alright, then.";
mes "Here we go~";
- set que_sch,13;
+ que_sch = 13;
close2;
warp "airplane",75,55;
end;
@@ -1745,7 +1745,7 @@ job_duncer,87,50,2 script Mature Looking Dancer#s1 4_F_07,{
mes "[Dancer]";
mes "Alright, then.";
mes "Here we go~";
- set que_sch,13;
+ que_sch = 13;
close2;
warp "airplane",75,55;
end;
@@ -1841,7 +1841,7 @@ airplane,79,55,2 script Mature Looking Dancer#s2 4_F_07,{
mes "Alright, I'll give this next";
mes "performance my all!";
close2;
- set que_sch,14;
+ que_sch = 14;
warp "ein_in01",278,223;
end;
}
@@ -1960,7 +1960,7 @@ ein_in01,279,221,0 script Hotel Manager#sch 4_M_KHKYEL,5,5,{
mes "have one of my employees";
mes "send you your payment";
mes "Have a safe trip back~";
- set que_sch,17;
+ que_sch = 17;
close;
}
end;
@@ -1974,7 +1974,7 @@ OnTouch:
mes "safely. The dinner party";
mes "will start shortly, so";
mes "please get ready~";
- set que_sch,15;
+ que_sch = 15;
close;
}
end;
@@ -2089,7 +2089,7 @@ OnTouch:
mes "Please follow me,";
mes "I already have";
mes "a place prepared.";
- set que_sch,16;
+ que_sch = 16;
close2;
disablenpc "Corporate Figure";
disablenpc "Arunafeltz Figure";
@@ -2189,7 +2189,7 @@ morocc,297,154,0 script Thin-Faced Bard#sch 1_M_BARD,{
mes "songs when you come back.";
mes "Thanks, you have no idea how";
mes "much I appreciate your help.";
- set que_sch,20;
+ que_sch = 20;
close;
}
else if (que_sch == 20) {
@@ -2232,7 +2232,7 @@ morocc,297,154,0 script Thin-Faced Bard#sch 1_M_BARD,{
mes "Perfect~ Here's a little";
mes "something to show my";
mes "gratitude. Hope you like it.";
- set que_sch,24;
+ que_sch = 24;
getitem 603,1; //Old_Blue_Box
next;
mes "[Vitre]";
@@ -2298,7 +2298,7 @@ morocc,297,154,0 script Thin-Faced Bard#sch 1_M_BARD,{
mes "but I better dispose of";
mes "this trash with the rest of";
mes "his scum buddies... in jail!";
- set que_sch,25;
+ que_sch = 25;
close2;
disablenpc "????#sch1";
disablenpc "????#sch2";
@@ -2376,7 +2376,7 @@ morocc,297,154,0 script Thin-Faced Bard#sch 1_M_BARD,{
mes "but I better dispose of";
mes "this trash with the rest of";
mes "his scum buddies... in jail!";
- set que_sch,25;
+ que_sch = 25;
close2;
disablenpc "????#sch1";
disablenpc "????#sch2";
@@ -2453,7 +2453,7 @@ prontera,109,161,6 script Young Man#sch 4_M_01,{
mes "such a wonderful song?";
mes "Let Vitre know each and";
mes "every word to it, okay?";
- set que_sch,21;
+ que_sch = 21;
close;
}
else if (que_sch < 30) {
@@ -2520,7 +2520,7 @@ geffen,196,167,4 script Young Woman#sch 4W_F_01,{
mes "Wasn't that poetic?";
mes "Now sing that song exactly";
mes "as you heard it to Vitre.";
- set que_sch,22;
+ que_sch = 22;
close;
}
else if (que_sch < 30) {
@@ -2604,7 +2604,7 @@ comodo,135,299,0 script Young Man#sch2 1_M_SIGNMONK,{
mes "artistic quirk I guess.";
mes "Oh, please sing that song";
mes "to Vitre for me, okay?";
- set que_sch,23;
+ que_sch = 23;
close;
}
else if (que_sch < 30) {
@@ -2655,7 +2655,7 @@ sec_in02,10,43,4 script Extra Story Patch 1_M_SIGNMONK,{
next;
if(select("Now:How many?") == 2) {
input .@input,0,1000;
- set que_sch, .@input;
+ que_sch = .@input;
}
mes " ";
mes ""+que_sch;
@@ -2801,7 +2801,7 @@ veins,327,185,3 script Kid#camelcamel 4_M_DST_CHILD,{
mes "Volcano to find your";
mes "little sister Curdie.";
setquest 3060;
- set rachel_camel,1;
+ rachel_camel = 1;
close;
}
}
@@ -2841,7 +2841,7 @@ veins,327,185,3 script Kid#camelcamel 4_M_DST_CHILD,{
mes "street! You can ask him";
mes "to help free Curdie!";
changequest 3061,3062;
- set rachel_camel,3;
+ rachel_camel = 3;
close;
}
else if (rachel_camel == 3) {
@@ -3056,7 +3056,7 @@ veins,327,185,3 script Kid#camelcamel 4_M_DST_CHILD,{
mes "It's a promise, then.";
mes "I'll see you later~";
completequest 3083;
- set rachel_camel,25;
+ rachel_camel = 25;
specialeffect2 EF_ABSORBSPIRITS;
if (checkre(3))
getexp 100000,50000;
@@ -3144,7 +3144,7 @@ veins,327,185,3 script Kid#camelcamel 4_M_DST_CHILD,{
mes "Heh heh! Thanks!";
mes "I'm happy that";
mes "I can help you too!";
- set aru_monas,16;
+ aru_monas = 16;
changequest 17011,17012;
close;
}
@@ -3257,7 +3257,7 @@ que_thor,36,66,5 script Little Curdie 4_F_DST_CHILD,{
mes "to unlock your shackles.";
mes "I'll be back as soon as I can!";
changequest 3060,3061;
- set rachel_camel,2;
+ rachel_camel = 2;
close;
}
else if (rachel_camel == 2) {
@@ -3440,7 +3440,7 @@ que_thor,36,66,5 script Little Curdie 4_F_DST_CHILD,{
mes "the mold back to town";
mes "to Mr. Lockenlock.^000000";
changequest 3079,3080;
- set rachel_camel,21;
+ rachel_camel = 21;
close;
}
else if (rachel_camel == 21) {
@@ -3505,7 +3505,7 @@ que_thor,36,66,5 script Little Curdie 4_F_DST_CHILD,{
mes "dangerous... Something";
mes "related to the Rachel Army...";
changequest 3082,3083;
- set rachel_camel,24;
+ rachel_camel = 24;
close;
}
else {
@@ -3656,7 +3656,7 @@ veins,181,166,3 script Lockenlock 4_M_HUMERCHANT,{
mes "...........";
delitem 503,1; //Yellow_Potion
changequest 3063,3064;
- set rachel_camel,5;
+ rachel_camel = 5;
close;
}
else {
@@ -3839,7 +3839,7 @@ veins,181,166,3 script Lockenlock 4_M_HUMERCHANT,{
mes "["+strcharinfo(0)+"]";
mes "Alright.";
changequest 3078,3079;
- set rachel_camel,20;
+ rachel_camel = 20;
close;
}
else if (rachel_camel == 20) {
@@ -3886,7 +3886,7 @@ veins,181,166,3 script Lockenlock 4_M_HUMERCHANT,{
mes "as soon as you can bring";
mes "me the Steel. I'll be waiting.";
changequest 3080,3081;
- set rachel_camel,22;
+ rachel_camel = 22;
close;
}
else if (rachel_camel == 22) {
@@ -3980,7 +3980,7 @@ veins,181,166,3 script Lockenlock 4_M_HUMERCHANT,{
mes "bring that child back";
mes "safe to her family!";
changequest 3081,3082;
- set rachel_camel,23;
+ rachel_camel = 23;
close;
}
else {
@@ -4160,7 +4160,7 @@ veins,227,127,5 script Ivory 4_F_DESERT,{
mes "Then we can move";
mes "on to the hard part.";
changequest 3064,3065;
- set rachel_camel,6;
+ rachel_camel = 6;
close;
}
else if (rachel_camel == 6) {
@@ -4206,7 +4206,7 @@ veins,227,127,5 script Ivory 4_F_DESERT,{
mes "him if I really need you";
mes "to make the soap...";
changequest 3065,3066;
- set rachel_camel,7;
+ rachel_camel = 7;
close;
}
else {
@@ -4367,7 +4367,7 @@ veins,227,127,5 script Ivory 4_F_DESERT,{
mes "you should bring it";
mes "to Mr. Lockenlock.^000000";
changequest 3077,3078;
- set rachel_camel,19;
+ rachel_camel = 19;
close;
}
else if (rachel_camel == 19) {
@@ -4513,7 +4513,7 @@ veins,115,59,5 script Saraman 4_M_EINOLD,{
mes "^4D4DFF1 Empty Bottle^000000, and";
mes "^4D4DFF1 Yellow Potion^000000.";
changequest 3066,3067;
- set rachel_camel,8;
+ rachel_camel = 8;
close;
}
else if (rachel_camel == 8) {
@@ -4558,7 +4558,7 @@ veins,115,59,5 script Saraman 4_M_EINOLD,{
delitem 619,1; //Unripe_Apple
delitem 713,1; //Empty_Bottle
changequest 3067,3068;
- set rachel_camel,9;
+ rachel_camel = 9;
close;
}
else {
@@ -4641,7 +4641,7 @@ veins,115,59,5 script Saraman 4_M_EINOLD,{
mes "here. Please find my camel";
mes "Soony as soon as you can!";
changequest 3069,3070;
- set rachel_camel,11;
+ rachel_camel = 11;
close;
}
else if (rachel_camel == 11) {
@@ -4712,7 +4712,7 @@ veins,115,59,5 script Saraman 4_M_EINOLD,{
mes "that soap you want made.";
changequest 3076,3077;
getitem 617,1; //Old_Violet_Box
- set rachel_camel,18;
+ rachel_camel = 18;
close;
}
else if (rachel_camel == 18) {
@@ -4750,7 +4750,7 @@ veins,78,226,5 script Camel#camelcc1::VeinsCamel 4_DST_CAMEL,{
mes "brusquely turned its";
mes "nose away from it.^000000";
changequest 3068,3069;
- set rachel_camel,10;
+ rachel_camel = 10;
close;
}
else if (rachel_camel == 10) {
@@ -4802,7 +4802,7 @@ ve_fild07,235,42,3 script Silk Sand Camel 4_DST_CAMEL,{
mes "do is collect some of";
mes "that precious camel dung.";
changequest 3070,3071;
- set rachel_camel,12;
+ rachel_camel = 12;
close;
}
else if (rachel_camel > 11 && rachel_camel < 17) {
@@ -4854,14 +4854,14 @@ ve_fild07,235,42,3 script Silk Sand Camel 4_DST_CAMEL,{
mes "Now all I need is";
mes "just 4 more lumps";
mes "of this nasty old dung.";
- set rachel_camel, 13;
+ rachel_camel = 13;
changequest 3071,3072;
}
else if (rachel_camel == 13) {
mes "Awesome! I got";
mes "2 glorious camel dung";
mes "lumps! Only 3 more to go!";
- set rachel_camel, 14;
+ rachel_camel = 14;
changequest 3072,3073;
}
else if (rachel_camel == 14) {
@@ -4869,7 +4869,7 @@ ve_fild07,235,42,3 script Silk Sand Camel 4_DST_CAMEL,{
mes "3 camel dung lumps.";
mes "Just 2 more... I'm more";
mes "than halfway done!";
- set rachel_camel, 15;
+ rachel_camel = 15;
changequest 3073,3074;
}
else if (rachel_camel == 15) {
@@ -4877,7 +4877,7 @@ ve_fild07,235,42,3 script Silk Sand Camel 4_DST_CAMEL,{
mes "Heh heh! This is going";
mes "better than I thought!";
mes "Only 1 more to go!";
- set rachel_camel, 16;
+ rachel_camel = 16;
changequest 3074,3075;
}
else if (rachel_camel == 16) {
@@ -4904,7 +4904,7 @@ ve_fild07,235,42,3 script Silk Sand Camel 4_DST_CAMEL,{
next;
mes "^3355FFIt's time for you to";
mes "return to Mr. Saraman.^000000";
- set rachel_camel, 17;
+ rachel_camel = 17;
changequest 3075,3076;
}
delitem 519,2; //Milk
@@ -5035,7 +5035,7 @@ veins,221,120,5 script Young Town Native 4_M_DESERT,{
mes "in the market street, and";
mes "bring him a Yellow Potion.^000000";
changequest 3062,3063;
- set rachel_camel,4;
+ rachel_camel = 4;
close;
}
else if (rachel_camel == 4) {
@@ -5164,7 +5164,7 @@ ra_temin,87,133,1 script Rachel Guard#vol1 4_M_RASWORD,5,2,{
mes "I've made my choice, and";
mes "I choose true love! I can't";
mes "keep Lamir waiting any longer!";
- set aru_vol,3;
+ aru_vol = 3;
donpcevent "vol_time::OnEnable";
close2;
disablenpc "Rachel Guard#vol1";
@@ -5250,7 +5250,7 @@ ra_temin,115,140,1 script Flower Vase#vol HIDDEN_NPC,{
disablenpc "Rachel Guard#vol2";
enablenpc "Rachel Guard#vol2_1";
donpcevent "vol_time2::OnEnable";
- set aru_vol,4;
+ aru_vol = 4;
disablenpc "Flower Vase#vol";
close;
}
@@ -5329,7 +5329,7 @@ ra_temin,40,124,3 script Female Follower#vol 4_F_TRAINEE,{
mes "office, but come on! Why can't";
mes "he bother another girl?";
if (aru_vol == 1) {
- set aru_vol,2;
+ aru_vol = 2;
}
close;
}
@@ -5475,7 +5475,7 @@ ra_temin,85,118,3 script Drawer#vol3 HIDDEN_NPC,{
mes "the cover, and then you";
mes "close the drawer.^000000";
changequest 2114,2115;
- set aru_vol,5;
+ aru_vol = 5;
getitem 7342,1; //File01
close;
}
@@ -5565,7 +5565,7 @@ OnTouch:
mes "I can guess who wrote it. ";
mes "Speaking of which...";
mes "Where's the geologist?";
- set aru_vol,7;
+ aru_vol = 7;
close;
}
else if (aru_vol < 6) {
@@ -5835,7 +5835,7 @@ ve_in,233,116,3 script Drunken Man#vol 4_M_HUOLDARMY,{
mes "all turn out in your favor.";
mes "You know that feeling, right?^000000";
changequest 2116,2117;
- set aru_vol,8;
+ aru_vol = 8;
getitem 7705,1; //Note_Of_Geologist
close;
}
@@ -5958,7 +5958,7 @@ ve_in,233,116,3 script Drunken Man#vol 4_M_HUOLDARMY,{
mes "I expected nothing less";
mes "from my star pupil!";
changequest 60211,60212;
- set aru_vol,25;
+ aru_vol = 25;
delitem 7342,1; //File01
delitem 7704,1; //Broken_Thermometer
delitem 7705,1; //Note_Of_Geologist
@@ -6086,8 +6086,8 @@ ve_in,281,214,3 script Bookshelf#vol HIDDEN_NPC,{
mes "Gio's purple box of goodies.^000000";
next;
changequest 60212,60213;
- set aru_vol,26;
- set .@box_box,rand(1,20);
+ aru_vol = 26;
+ .@box_box = rand(1,20);
if (.@box_box < 7) {
getitem 12104,1; //Random_Quiver
}
@@ -6130,7 +6130,7 @@ thor_v01,37,234,3 script Hot Land Surface#1 HIDDEN_NPC,{
mes "temperature in";
mes "your report.^000000";
changequest 2117,2118;
- set aru_vol,9;
+ aru_vol = 9;
next;
mes "["+strcharinfo(0)+"]";
mes "I should take a few more";
@@ -6168,7 +6168,7 @@ thor_v02,165,37,3 script Hot Land Surface#2 HIDDEN_NPC,{
mes "temperature in";
mes "your report.^000000";
changequest 2118,2119;
- set aru_vol,10;
+ aru_vol = 10;
close;
}
mes "^3355FFYou need both the";
@@ -6206,7 +6206,7 @@ thor_v02,170,100,3 script Hot Land Surface#3 HIDDEN_NPC,{
mes "submit this report to the";
mes "geological camp now~";
changequest 2119,2120;
- set aru_vol,11;
+ aru_vol = 11;
close;
}
mes "^3355FFYou need both the";
@@ -6253,7 +6253,7 @@ que_thor,145,66,3 script Guard#vol::VeinsGuard 4_DST_SOLDIER,{
mes "He's at the airship just";
mes "south of the train station.";
changequest 2120,2121;
- set aru_vol,12;
+ aru_vol = 12;
close2;
warp "thor_camp",248,190;
end;
@@ -6366,7 +6366,7 @@ thor_camp,250,104,3 script Sahedi#vol 4_M_RASWORD,{
mes "see if this camp will be";
mes "safe from any disaster.";
changequest 2121,2122;
- set aru_vol,13;
+ aru_vol = 13;
delitem 7342,1; //File01
close;
}
@@ -6481,7 +6481,7 @@ thor_camp,250,104,3 script Sahedi#vol 4_M_RASWORD,{
mes "advice for what we can";
mes "do about this disaster...";
changequest 2128,60211;
- set aru_vol,24;
+ aru_vol = 24;
getitem 7342,1; //File01
close;
}
@@ -6526,7 +6526,7 @@ OnTouch:
mes "you into a true warrior for";
mes "Freya! Now follow me!";
changequest 2122,2123;
- set aru_vol,14;
+ aru_vol = 14;
close2;
disablenpc "Colonel Vito#1";
warp "thor_camp",156,68;
@@ -6581,7 +6581,7 @@ OnTouch:
mes "you into a true warrior for";
mes "Freya! Now follow me!";
changequest 2122,2123;
- set aru_vol,14;
+ aru_vol = 14;
disablenpc "Colonel Vito#2";
close2;
warp "thor_camp",156,68;
@@ -6642,7 +6642,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "Take a break first, and";
mes "prepare yourself. We will";
mes "begin as soon as you're ready.";
- set aru_vol,15;
+ aru_vol = 15;
close;
}
else if (aru_vol == 15) {
@@ -6726,7 +6726,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "of Goddess Freya";
next;
input .@input$;
- set .@answer$,"as a devoted servant of Goddess Freya";
+ .@answer$ = "as a devoted servant of Goddess Freya";
if (.@input$ == .@answer$) {
mes "["+strcharinfo(0)+"]";
mes "as a devoted servant";
@@ -6748,7 +6748,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "overthrow our mortal enemy";
next;
input .@input$;
- set .@answer$,"I pledge my honor to overthrow our mortal enemy";
+ .@answer$ = "I pledge my honor to overthrow our mortal enemy";
if (.@input$ == .@answer$) {
mes "["+strcharinfo(0)+"]";
mes "I pledge my honor to";
@@ -6768,7 +6768,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "^FF0000I will show no mercy^000000";
next;
input .@input$;
- set .@answer$,"I will show no mercy";
+ .@answer$ = "I will show no mercy";
if (.@input$ == .@answer$) {
mes "["+strcharinfo(0)+"]";
mes "I will show no mercy.";
@@ -6788,7 +6788,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "my entire life^000000";
next;
input .@input$;
- set .@answer$,"I shall devote my entire life";
+ .@answer$ = "I shall devote my entire life";
if (.@input$ == .@answer$) {
mes "["+strcharinfo(0)+"]";
mes "I shall devote my";
@@ -6810,7 +6810,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "Rune-Midgarts Kingdom!^000000";
next;
input .@input$;
- set .@answer$,"Down with the Rune-Midgarts Kingdom!";
+ .@answer$ = "Down with the Rune-Midgarts Kingdom!";
if (.@input$ == .@answer$) {
mes "["+strcharinfo(0)+"]";
mes "Down with the";
@@ -6832,7 +6832,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "is all for the first exercise,";
mes "but there's one more left.";
changequest 2123,2124;
- set aru_vol,16;
+ aru_vol = 16;
close;
}
else if (aru_vol == 16) {
@@ -6843,7 +6843,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "you. Find the huge pipe zone";
mes "to the north of this building";
mes "and find any broken machines.";
- set aru_vol,17;
+ aru_vol = 17;
close;
}
else if (aru_vol == 17) {
@@ -6874,7 +6874,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "front of you? Practice by";
mes "chopping it 10 times. Go!";
changequest 2125,2126;
- set aru_vol,19;
+ aru_vol = 19;
next;
if (select("Yes, sir!:What do you mean by chop?") == 1) {
mes "[Colonel Vito]";
@@ -6925,7 +6925,7 @@ thor_camp,159,74,3 script Colonel Vito#3 4_M_DST_MASTER,{
mes "a geological researcher";
mes "instead of as a soldier.^000000)";
changequest 2126,2127;
- set aru_vol,21;
+ aru_vol = 21;
close;
}
mes "[Colonel Vito]";
@@ -6959,7 +6959,7 @@ OnTouch:
mes "sound of hammering, as if";
mes "iron was being manufactured";
mes "from deep underground.^000000";
- set aru_vol,22;
+ aru_vol = 22;
close;
}
end;
@@ -6979,7 +6979,7 @@ OnTouch:
mes "I should go back";
mes "to Sahedi now.";
changequest 2127,2128;
- set aru_vol,23;
+ aru_vol = 23;
close;
}
end;
@@ -7035,7 +7035,7 @@ thor_camp,109,167,3 script Control Panel#vol HIDDEN_NPC,{
mes "I guess I can go";
mes "back to that colonel.";
changequest 2124,2125;
- set aru_vol,18;
+ aru_vol = 18;
close;
}
end;
@@ -7105,7 +7105,7 @@ thor_camp,150,65,3 script Dummy#1::VeinsDummy HIDDEN_NPC,{
specialeffect EF_HIT2;
mes "["+strcharinfo(0)+"]";
mes "Ten!";
- set aru_vol,20;
+ aru_vol = 20;
close;
}
else if (aru_vol == 20) {
@@ -7135,7 +7135,7 @@ thor_camp,150,65,3 script Dummy#1::VeinsDummy HIDDEN_NPC,{
mes "Listen to your orders";
mes "this time, and do it";
mes "again properly!";
- set aru_vol,19;
+ aru_vol = 19;
close;
}
}
diff --git a/npc/quests/quests_yuno.txt b/npc/quests/quests_yuno.txt
index d0544a5b7..f7edb9844 100644
--- a/npc/quests/quests_yuno.txt
+++ b/npc/quests/quests_yuno.txt
@@ -48,7 +48,7 @@ yuno_in03,26,39,3 script Metto#juno 4_M_SEAMAN,{
close;
}
else if (metto_q == 1) {
- set metto_q,2;
+ metto_q = 2;
mes "I'm going to ask my colleague ^FF0000Stangckle^000000 to help me. I am sure he will be more than willing to help out an old friend.";
next;
mes "[Metto]";
@@ -56,7 +56,7 @@ yuno_in03,26,39,3 script Metto#juno 4_M_SEAMAN,{
close;
}
else if (metto_q == 3) {
- set metto_q,4;
+ metto_q = 4;
mes "What? That punk Stangckle said he doesn't want to help me?! This is not good. This will slow my research considerably.";
next;
mes "[Metto]";
@@ -78,7 +78,7 @@ yuno_in03,26,39,3 script Metto#juno 4_M_SEAMAN,{
close;
}
else if (metto_q == 5) {
- set metto_q,6;
+ metto_q = 6;
mes "What? You mean to tell me that the very thing I need to continue my research, the mighty Great Z, has been destroyed?!!";
next;
mes "[Metto]";
@@ -98,7 +98,7 @@ yuno_in03,26,39,3 script Metto#juno 4_M_SEAMAN,{
close;
}
else if (metto_q == 7) {
- set metto_q,8;
+ metto_q = 8;
mes "...";
next;
mes "[Metto]";
@@ -180,7 +180,7 @@ yuno_in01,17,30,5 script Wagan#juno 4_M_03,{
mes "offended by this.";
close;
}
- set metto_q,1;
+ metto_q = 1;
mes "[Wagan]";
mes "Oh, are you going to take care of this for us? We would be very grateful.";
next;
@@ -231,7 +231,7 @@ yuno_in01,17,30,5 script Wagan#juno 4_M_03,{
mes "Oh no, it seems that you are carrying too much stuff! Would you make some room?";
close;
}
- set metto_q,9;
+ metto_q = 9;
mes "I wish you luck in your future endeavors...";
getitem 715,10; //Yellow_Gemstone
close;
@@ -240,7 +240,7 @@ yuno_in01,17,30,5 script Wagan#juno 4_M_03,{
mes "Oh no, it seems that you are carrying too much! Would you make some room?";
close;
}
- set metto_q,9;
+ metto_q = 9;
mes "I wish you luck in your future endeavors...";
getitem 717,5; //Blue_Gemstone
close;
@@ -261,7 +261,7 @@ yuno_in01,17,95,5 script Stangckle#juno 4W_M_03,{
mes "What can I do for you? My colleague Metto is coming here soon, so I don't have much time. So what did you say you needed?";
next;
if (select("I'm here to stop your research.:I don't need anything.") == 1) {
- set metto_q,3;
+ metto_q = 3;
mes "[Stangckle]";
mes "...";
next;
@@ -326,7 +326,7 @@ yuno_in01,19,183,5 script Kato#juno 1_M_JOBTESTER,{
mes "Of course, my research is private and confidential. But is there anything I can do for you?";
next;
if (select("I want to stop you from making a mistake.:Just saying hello.") == 1) {
- set metto_q,5;
+ metto_q = 5;
mes "[Kato]";
mes "What? Metto said, my Great Z is inferior to Stangckles research?!";
next;
@@ -378,7 +378,7 @@ yuno_in03,178,43,0 script CiCi#juno 2_M_MOLGENSTEIN,{
next;
switch(select("I want to warn you.:Nothing, just saying Hi.")) {
case 1:
- set metto_q,7;
+ metto_q = 7;
mes "[CiCi]";
mes "Hm? Metto said that he doesn't need my Riding Engine theory?! Hmpf, what an ingrate!";
next;
@@ -432,8 +432,8 @@ yuno_in01,103,157,3 script Bain#juno 4W_M_02,{
close;
}
if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
- if (ALCH_Q == 23) set ALCH_Q,24;
- set .@kyulkwa,rand(1,10);
+ if (ALCH_Q == 23) ALCH_Q = 24;
+ .@kyulkwa = rand(1,10);
mes "[Bain]";
mes "Oh ho ho... These are the parts that I needed. Thank you so much.";
next;
@@ -493,7 +493,7 @@ yuno_in01,103,157,3 script Bain#juno 4W_M_02,{
mes "powerful. How will I continue my research?";
next;
if (select("I'll get them for you.:Good luck.") == 1) {
- set bros_q,1;
+ bros_q = 1;
mes "[Bain]";
mes "Really? Such benevolence is rare";
mes "in this day and age. We would be";
@@ -553,7 +553,7 @@ S_DelItems:
mes "I wish you luck in your journeys!";
close;
}
-
+
yuno_in01,100,153,7 script Bajin 1_M_01,0,0,{
if (checkweight(1201,1) == 0) {
mes "- Wait a minute !! -";
@@ -564,8 +564,8 @@ yuno_in01,100,153,7 script Bajin 1_M_01,0,0,{
close;
}
if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
- if (ALCH_Q == 23) set ALCH_Q,24;
- set .@kyulkwa,rand(1,10);
+ if (ALCH_Q == 23) ALCH_Q = 24;
+ .@kyulkwa = rand(1,10);
mes "[Bajin]";
mes "Oh ho ho... These are the parts";
mes "that I needed. Thank you so much.";
@@ -626,7 +626,7 @@ yuno_in01,100,153,7 script Bajin 1_M_01,0,0,{
mes "powerful. How will I continue my research?";
next;
if (select("I'll get them for you.:Good luck.") == 1) {
- set bros_q,1;
+ bros_q = 1;
mes "[Bajin]";
mes "Oh, you are too kind.";
mes "We would be grateful for your assistance.";
@@ -762,7 +762,7 @@ yuno,261,99,4 script Sage Yklah#juno 4_M_JOB_WIZARD,{
next;
mes "[Yklah]";
mes "As you already possess the Stamp of Muriniel, I am more than willing to help you.";
- set dmdswrd_Q,24;
+ dmdswrd_Q = 24;
close;
case 2:
mes "[Yklah]";
@@ -817,7 +817,7 @@ yuno,261,99,4 script Sage Yklah#juno 4_M_JOB_WIZARD,{
next;
mes "^3355FFYou got the";
mes "True Stamp of Muriniel.^000000";
- set dmdswrd_Q,25;
+ dmdswrd_Q = 25;
next;
mes "[Yklah]";
mes "Oh? This pattern is...!! Ah, now I see how it works. Now, please listen...";
@@ -919,7 +919,7 @@ yuno,261,99,4 script Sage Yklah#juno 4_M_JOB_WIZARD,{
close;
}
}
-
+
yuno,305,207,4 script Sage Syklah#juno 4_M_JOB_WIZARD,{
if (dmdswrd_Q == 25 || dmdswrd_Q == 26 || dmdswrd_Q == 27) {
switch(dmdswrd_Q) {
@@ -969,7 +969,7 @@ yuno,305,207,4 script Sage Syklah#juno 4_M_JOB_WIZARD,{
next;
mes "[Syklah]";
mes "I think that's all I need. Anyway, I believe that gathering these items shouldn't be a difficult task for you. Good luck to you.";
- set dmdswrd_Q,26;
+ dmdswrd_Q = 26;
close;
case 26:
if (countitem(7049) > 4 && countitem(953) > 0 && countitem(507) > 19) {
@@ -992,7 +992,7 @@ yuno,305,207,4 script Sage Syklah#juno 4_M_JOB_WIZARD,{
mes "- Pah ahhhh !! -";
next;
mes "^3355FFThe Stamping Ink of Muriniel has been created, and has been given to you by the sage Syklah.^000000";
- set dmdswrd_Q,27;
+ dmdswrd_Q = 27;
next;
mes "[Syklah]";
mes "Now, with this stamping ink, you are able to use the Stamp of Muriniel.";
@@ -1042,7 +1042,7 @@ yuno,305,207,4 script Sage Syklah#juno 4_M_JOB_WIZARD,{
close;
}
}
-
+
yuno,213,298,4 script Sage Esklah#juno 4_M_JOB_WIZARD,{
if (dmdswrd_Q == 27 || dmdswrd_Q == 28 || dmdswrd_Q == 29 || dmdswrd_Q == 30) {
switch(dmdswrd_Q) {
@@ -1095,7 +1095,7 @@ yuno,213,298,4 script Sage Esklah#juno 4_M_JOB_WIZARD,{
next;
mes "[Esklah]";
mes "For someone seeking the doomed sword, this should be a relatively simple task. Now go, and bring me what I have asked.";
- set dmdswrd_Q,28;
+ dmdswrd_Q = 28;
close;
case 28:
if (countitem(1002) > 1 && countitem(1026) > 9 && countitem(957) > 4) {
@@ -1122,7 +1122,7 @@ yuno,213,298,4 script Sage Esklah#juno 4_M_JOB_WIZARD,{
mes "^3355FF1 Phracon^000000.";
mes "Now isn't that simple?";
mes "Muhahahaha!!";
- set dmdswrd_Q,29;
+ dmdswrd_Q = 29;
close;
}
mes "[Esklah]";
@@ -1160,7 +1160,7 @@ yuno,213,298,4 script Sage Esklah#juno 4_M_JOB_WIZARD,{
next;
mes "[Esklah]";
mes "Look at the middle of compass carefully to find the place you must use the stamp. I wish you the best of luck in your journey.";
- set dmdswrd_Q,30;
+ dmdswrd_Q = 30;
close;
}
mes "[Esklah]";
@@ -1199,7 +1199,7 @@ yuno,213,298,4 script Sage Esklah#juno 4_M_JOB_WIZARD,{
close;
}
}
-
+
mjolnir_02,170,193,4 script Muriniel's Cottage#juno HIDDEN_NPC,{
if (dmdswrd_Q == 30 || dmdswrd_Q == 31) {
switch(dmdswrd_Q) {
@@ -1242,7 +1242,7 @@ mjolnir_02,170,193,4 script Muriniel's Cottage#juno HIDDEN_NPC,{
mes "^3355FFSuddenly, the Stamp of Muriniel and the Compass of Muriniel break open to reveal a small, shining object.^000000";
next;
mes "^3355FFYou have received the ^9999FFDignity of Muriniel^000000.";
- set dmdswrd_Q,31;
+ dmdswrd_Q = 31;
close;
case 31:
mes "^3355FFYou can faintly hear someone's voice coming from somewhere...^000000";
diff --git a/npc/quests/seals/brisingamen_seal.txt b/npc/quests/seals/brisingamen_seal.txt
index a519a5e62..34e1a76b0 100644
--- a/npc/quests/seals/brisingamen_seal.txt
+++ b/npc/quests/seals/brisingamen_seal.txt
@@ -440,7 +440,7 @@ prt_fild08,175,374,3 script Bard#brising 1_M_BARD,{
next;
mes "[Nelliorde]";
mes "Alright, I shall contact him right away! Oh, and you can find the Monster Organization west of Juno's central plaza. It shouldn't be hard to find. Good luck!";
- set god_brising,1;
+ god_brising = 1;
close2;
break;
case 2:
@@ -888,7 +888,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "[Enrico Kaili]";
mes "Please...";
mes "Take this.";
- set god_brising,50;
+ god_brising = 50;
getitem 616,1; // Old_Card_Album
getexp (checkre(3))?60000:600000,0;
next;
@@ -896,7 +896,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "Please accept this as my way of thanking you for assisting in my";
mes "research. If the opportunity arises, I would like to ask you for your help once again. Now please, take care.";
if ($God3 < $@god_check2)
- set $God3,$God3 +1;
+ $God3 += 1;
if ($God3 == $@god_check1)
announce "The 3rd Seal of [Brisingamen] has appeared.",bc_all;
else if ($God3 == $@god_check2) {
@@ -961,7 +961,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "waiting for? Please";
mes "come back as soon";
mes "as possible.";
- set god_brising,48;
+ god_brising = 48;
close;
case 2:
mes "[" + strcharinfo(0) + "]";
@@ -981,7 +981,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "Hurry and seek him";
mes "out! And I thank you";
mes "in advance.";
- set god_brising,48;
+ god_brising = 48;
close;
}
}
@@ -1192,7 +1192,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "able to learn what";
mes "the goddess Freya has";
mes "left behind in Rune-Midgard...";
- set god_brising,40;
+ god_brising = 40;
close;
case 2:
mes "[Enrico Kaili]";
@@ -1211,7 +1211,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "able to learn what";
mes "the goddess Freya has";
mes "left behind in Rune-Midgard...";
- set god_brising,40;
+ god_brising = 40;
close;
}
}
@@ -1306,7 +1306,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "letter addressed to Hermite";
mes "Charles that is sealed with";
mes "red wax.^000000";
- set god_brising,3;
+ god_brising = 3;
close;
}
}
@@ -1329,7 +1329,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
next;
mes "[Enrico Kaili]";
mes "I suppose I can try to find another adventurer to help me. But if you change your mind later, please do not hesitate to lend me your assistance.";
- set god_brising,2;
+ god_brising = 2;
close;
case 2:
mes "[Enrico Kaili]";
@@ -1363,7 +1363,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
mes "letter addressed to Hermite";
mes "Charles that is sealed with";
mes "red wax.^000000";
- set god_brising,3;
+ god_brising = 3;
close;
}
}
@@ -1395,7 +1395,7 @@ yuno_in04,47,113,1 script Studying Scholar#1 4_M_ALCHE_B,{
}
prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
- if ($God2 < $@god_check1) {
+ if ($God2 < $@god_check1) {
mes "[Praying Man]";
mes "Let everyone live a life";
mes "of happiness. Let there be";
@@ -1475,7 +1475,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "You know everything now.";
mes "Please leave me alone.";
mes "^333333*Sigh...*^000000";
- set god_brising,35;
+ god_brising = 35;
close;
}
else if (god_brising > 19 && god_brising < 34) {
@@ -1495,7 +1495,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "for the trouble,";
mes "but I think you";
mes "better try again.";
- set god_brising,10;
+ god_brising = 10;
close;
}
else if (god_brising == 11) {
@@ -1519,7 +1519,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "killed her?!";
mes "Don't you understand";
mes "the way I feel?";
- set god_brising,20;
+ god_brising = 20;
close;
}
else if (god_brising == 10) {
@@ -1629,14 +1629,14 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "anything that";
mes "you can. I beg";
mes "of you...";
- set god_brising,10;
+ god_brising = 10;
close;
case 2:
mes "[Hermite Charles]";
mes "^333333*Sigh*^000000";
mes "I understand.";
mes "But if you don't help me, then Kaili won't get the help he needs...";
- set god_brising,9;
+ god_brising = 9;
close;
}
case 2:
@@ -1649,7 +1649,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
next;
mes "[Hermite Charles]";
mes "All I can do for her is just earnestly pray. I had no idea it'd be so horrible not to be able to see her anymore...";
- set god_brising,9;
+ god_brising = 9;
close;
case 3:
mes "[Hermite Charles]";
@@ -1674,7 +1674,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "That was the last time...";
mes "Please find out anything";
mes "you can. I beg you...";
- set god_brising,10;
+ god_brising = 10;
close;
}
case 2:
@@ -1686,7 +1686,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "I won't waste any more of";
mes "your time. I'll accept Kaili's letter and wait until I find someone who'll listen to";
mes "my story and help me.";
- set god_brising,5;
+ god_brising = 5;
close;
}
}
@@ -1715,7 +1715,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
switch(select("Leave him alone.:Give him Kaili's Letter.")) {
case 1:
mes "^3355FFYou're not sure why he's so upset, but it doesn't seem to be the best time to try to speak with him. Perhaps later would be better...^000000";
- set god_brising,4;
+ god_brising = 4;
close;
case 2:
mes "[Hermite Charles]";
@@ -1818,14 +1818,14 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "anything that";
mes "you can. I beg";
mes "of you...";
- set god_brising,10;
+ god_brising = 10;
close;
case 2:
mes "[Hermite Charles]";
mes "^333333*Sigh*^000000";
mes "I understand.";
mes "But if you don't help me, then Kaili won't get the help he needs...";
- set god_brising,9;
+ god_brising = 9;
close;
}
case 2:
@@ -1838,7 +1838,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
next;
mes "[Hermite Charles]";
mes "All I can do for her is just earnestly pray. I had no idea it'd be so horrible not to be able to see her anymore...";
- set god_brising,9;
+ god_brising = 9;
close;
case 3:
mes "[Hermite Charles]";
@@ -1863,7 +1863,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "That was the last time...";
mes "Please find out anything";
mes "you can. I beg you...";
- set god_brising,10;
+ god_brising = 10;
close;
}
case 2:
@@ -1875,7 +1875,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "I won't waste any more of";
mes "your time. I'll accept Kaili's letter and wait until I find someone who'll listen to";
mes "my story and help me.";
- set god_brising,5;
+ god_brising = 5;
close;
}
}
@@ -1903,7 +1903,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
switch(select("Leave him alone.:Give him Kaili's Letter.")) {
case 1:
mes "^3355FFYou're not sure why he's so upset, but it doesn't seem to be the best time to try to speak with him. Perhaps later would be better...^000000";
- set god_brising,4;
+ god_brising = 4;
close;
case 2:
mes "[Hermite Charles]";
@@ -2006,14 +2006,14 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "anything that";
mes "you can. I beg";
mes "of you...";
- set god_brising,10;
+ god_brising = 10;
close;
case 2:
mes "[Hermite Charles]";
mes "^333333*Sigh*^000000";
mes "I understand.";
mes "But if you don't help me, then Kaili won't get the help he needs...";
- set god_brising,9;
+ god_brising = 9;
close;
}
case 2:
@@ -2026,7 +2026,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
next;
mes "[Hermite Charles]";
mes "All I can do for her is just earnestly pray. I had no idea it'd be so horrible not to be able to see her anymore...";
- set god_brising,9;
+ god_brising = 9;
close;
case 3:
mes "[Hermite Charles]";
@@ -2051,7 +2051,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "That was the last time...";
mes "Please find out anything";
mes "you can. I beg you...";
- set god_brising,10;
+ god_brising = 10;
close;
}
case 2:
@@ -2063,7 +2063,7 @@ prt_church,113,103,1 script Praying Man 4_M_NFMAN,{
mes "I won't waste any more of";
mes "your time. I'll accept Kaili's letter and wait until I find someone who'll listen to";
mes "my story and help me.";
- set god_brising,5;
+ god_brising = 5;
close;
}
}
@@ -2110,7 +2110,7 @@ prt_castle,80,52,0 script Personnel Record#book1 HIDDEN_NPC,{
mes "saying anything. Huh.";
mes "Now let's see...";
next;
- set .@bookrand,rand(1,3);
+ .@bookrand = rand(1,3);
if (.@bookrand == 1) {
mes "[Personnel Record]";
mes "^663300Lowen, of the 2nd squad, returned to her detachment 3 days after the incident. A trial was held, and she was judged guilty of fleeing when ordered to fight.^000000";
@@ -2145,7 +2145,7 @@ prt_castle,80,52,0 script Personnel Record#book1 HIDDEN_NPC,{
mes "who are you!";
mes "Get the hell";
mes "out of here!";
- set god_brising,30;
+ god_brising = 30;
close2;
warp "prt_castle",94,37;
end;
@@ -2178,7 +2178,7 @@ prt_castle,80,52,0 script Personnel Record#book1 HIDDEN_NPC,{
mes "information the";
mes "Librarian told me!";
next;
- set .@bookrand,rand(1,3);
+ .@bookrand = rand(1,3);
if (.@bookrand == 1) {
mes "[" + strcharinfo(0) + "]";
mes "I should read this";
@@ -2230,7 +2230,7 @@ prt_castle,80,52,0 script Personnel Record#book1 HIDDEN_NPC,{
mes "who are you!";
mes "Get the hell";
mes "out of here!";
- set god_brising,30;
+ god_brising = 30;
close2;
warp "prt_castle",94,37;
end;
@@ -2242,7 +2242,7 @@ prt_castle,80,52,0 script Personnel Record#book1 HIDDEN_NPC,{
mes "who are you!";
mes "Get the hell";
mes "out of here!";
- set god_brising,26;
+ god_brising = 26;
next;
mes "["+ strcharinfo(0) +"]";
mes "(Nuts...!";
@@ -2269,13 +2269,13 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
mes "Don't touch anything!";
close;
}
- if ($God3 >= $@god_check2) {
+ if ($God3 >= $@god_check2) {
mes "[Librarian]";
mes "What are you doing here?";
mes "Don't touch anything!";
close;
}
- if (god_brising > 24 && god_brising < 27) {
+ if (god_brising > 24 && god_brising < 27) {
mes "[Librarian]";
mes "Zzzzz...";
mes "...Zzzzz...";
@@ -2283,8 +2283,7 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
next;
mes "^3355FFThis librarian seems to be deeply asleep. It'd be smarter not to wake him if you want to check the Crusader Personnel Records.^000000";
close;
- }
- else if (god_brising == 10) {
+ } else if (god_brising == 10) {
mes "[Librarian]";
mes "All confidential personnel records are kept here in the royal library. However, you need authorization";
mes "for full access.";
@@ -2341,7 +2340,7 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
mes "I'm sorry, but";
mes "that's all I know.";
mes "Thank you...";
- set god_brising,11;
+ god_brising = 11;
close;
}
case 2:
@@ -2369,7 +2368,7 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
mes "information I have,";
mes "sir. I'm truly sorry";
mes "for your loss.";
- set god_brising,11;
+ god_brising = 11;
close;
}
else {
@@ -2416,7 +2415,7 @@ prt_castle,84,51,5 script Librarian#2 8W_SOLDIER,{
next;
mes "[Librarian]";
mes "He retired from the service a few years ago. I'd like to give you his address, but we don't have any of that information.";
- set god_brising,12;
+ god_brising = 12;
close;
}
}
@@ -2526,10 +2525,9 @@ prontera,260,354,4 script Woman#Rosa Ellenen 4W_F_01,{
mes "Crusader Personnel";
mes "Records that might";
mes "explain something?";
- set god_brising,25;
+ god_brising = 25;
close;
- }
- else if ((god_brising) > 9 && (god_brising < 20)) {
+ } else if ((god_brising) > 9 && (god_brising < 20)) {
mes "[Rosa Ellenen]";
mes "This is my little";
mes "sister's grave...";
@@ -2548,10 +2546,9 @@ prontera,260,354,4 script Woman#Rosa Ellenen 4W_F_01,{
mes "[Rosa Ellenen]";
mes "Anyway, thank you for visiting";
mes "my little sister. It's good to know she has friends, even after she's passed on.";
- set god_brising,11;
+ god_brising = 11;
close;
- }
- else {
+ } else {
mes "[Rosa Ellenen]";
mes "Oh hello...";
mes "Have you come";
@@ -2588,7 +2585,7 @@ prontera,262,353,0 script Gravestone HIDDEN_NPC,{
close;
}
}
-
+
gef_dun01,89,192,0 script #lowentrace HIDDEN_NPC,3,3,{
if ($God2 < $@god_check1) {
mes "^3355FFIt's just an old,";
@@ -2694,7 +2691,7 @@ gef_dun01,89,192,0 script #lowentrace HIDDEN_NPC,3,3,{
mes "[The voice of a female]";
mes "^6E7B8BUm...";
mes "If you want to meet me again, just say my name out loud. '^000000Lowen^6E7B8B.'^000000";
- set god_brising,21;
+ god_brising = 21;
close;
}
}
@@ -2826,7 +2823,7 @@ gef_dun01,203,48,0 script #lowentrace1 HIDDEN_NPC,3,3,{
mes "[The voice of a female]";
mes "^6E7B8BUm...";
mes "If you want to meet me again, just say my name out loud. '^000000Lowen^6E7B8B.'^000000";
- set god_brising,21;
+ god_brising = 21;
close;
}
}
@@ -2929,7 +2926,7 @@ que_god02,48,55,3 script Lowen Ellenen 4_F_CRU,{
mes "[" + strcharinfo(0) + "]";
mes "Now,";
mes "shall we go in?";
- set god_brising,31;
+ god_brising = 31;
close;
}
}
@@ -2952,7 +2949,7 @@ que_god02,48,55,3 script Lowen Ellenen 4_F_CRU,{
}
que_god02,54,64,4 script Soldier#1_brising 8W_SOLDIER,1,1,{
- if (god_brising == 31) {
+ if (god_brising == 31) {
mes "[Soldier]";
mes "Have you volunteered for monster subjugation? Would you like to start the mission now?";
next;
@@ -3040,7 +3037,7 @@ OnTimer550500:
end;
}
-
+
que_god02,1,1,1 script #brisinsummon -1,{
OnInit:
@@ -3111,7 +3108,7 @@ OnLowen2Off:
end;
OnSummon:
- set .brisinmobdead,9;
+ .brisinmobdead = 9;
monster "que_god02",34,128,"",1015,1,"#brisinsummon::OnMobDeath";
monster "que_god02",34,127,"",1015,1,"#brisinsummon::OnMobDeath";
monster "que_god02",80,127,"",1015,1,"#brisinsummon::OnMobDeath";
@@ -3124,9 +3121,9 @@ OnSummon:
end;
OnMobDeath:
- set .brisinmobdead,.brisinmobdead -1;
+ --.brisinmobdead;
if (.brisinmobdead > 0) end;
- set god_brising,31;
+ god_brising = 31;
hideoffnpc "Valkyrie#1";
end;
@@ -3237,7 +3234,7 @@ OnTouch:
}
que_god02,124,59,7 script #hermite 4_M_NFMAN,{ end; }
-
+
que_god02,120,52,0 script #monologue HIDDEN_WARP_NPC,0,0,{
OnTouch:
@@ -3400,7 +3397,7 @@ que_god02,178,127,3 script Valkyrie#1 4_F_VALKYRIE,{
mes "I shall send you";
mes "back to where you";
mes "belong.";
- set god_brising,34;
+ god_brising = 34;
next;
mes "[Valkyrie]";
mes "For Odin's honor...";
@@ -3484,7 +3481,7 @@ que_god02,178,127,3 script Valkyrie#1 4_F_VALKYRIE,{
mes "I shall send you";
mes "back to where you";
mes "belong.";
- set god_brising,34;
+ god_brising = 34;
next;
mes "[Valkyrie]";
mes "For Odin's honor...";
@@ -3553,7 +3550,7 @@ xmas,38,105,0 script #brisindwarf1 HIDDEN_NPC,3,3,{
case 4:
mes "[" + strcharinfo(0) + "]";
mes "The beauty of the stars";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 5:
mes "[" + strcharinfo(0) + "]";
@@ -3566,7 +3563,7 @@ xmas,38,105,0 script #brisindwarf1 HIDDEN_NPC,3,3,{
break;
case 2:
mes "Wanes in comparison.";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 3:
mes "All of our hearts in";
@@ -3593,13 +3590,13 @@ xmas,38,105,0 script #brisindwarf1 HIDDEN_NPC,3,3,{
break;
case 5:
mes "We lost our hearts";
- set .@point,.@point + 10;
+ .@point += 10;
break;
}
switch(select("To that golden hair:To that beautiful hair:All of our hearts in:To the steps in:To those dazzling eyes")) {
case 1:
mes "To that golden hair";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 2:
mes "To that beautiful hair";
@@ -3623,7 +3620,7 @@ xmas,38,105,0 script #brisindwarf1 HIDDEN_NPC,3,3,{
break;
case 3:
mes "And those dazzling eyes.";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 4:
mes "To the steps in";
@@ -3736,7 +3733,7 @@ xmas,36,103,4 script Alfrik#1 4_M_DWARF,{
mes "Now...";
mes "Leave me";
mes "in peace.";
- set god_brising,49;
+ god_brising = 49;
close2;
hideonnpc "Alfrik#1";
end;
@@ -3801,7 +3798,7 @@ xmas,36,103,4 script Alfrik#1 4_M_DWARF,{
mes "[Alfrik]";
mes "Go wake all my brothers!";
mes "Let's see if the Brisingamen can be made once again! First, go and wake Dvalin before the gods and giants find out!";
- set god_brising,41;
+ god_brising = 41;
close2;
hideonnpc "Alfrik#1";
end;
@@ -3855,7 +3852,7 @@ xmas,36,103,4 script Alfrik#1 4_M_DWARF,{
mes "[Alfrik]";
mes "Go wake all my brothers!";
mes "Let's see if the Brisingamen can be made once again! First, go and wake Dvalin before the gods and giants find out!";
- set god_brising,41;
+ god_brising = 41;
close2;
hideonnpc "Alfrik#1";
end;
@@ -3893,7 +3890,7 @@ xmas,36,103,4 script Alfrik#1 4_M_DWARF,{
mes "We surrendered our hearts";
mes "To those tender teardrops";
mes "Those seductive red lips.^000000";
- set god_brising,42;
+ god_brising = 42;
close2;
hideonnpc "Alfrik#1";
end;
@@ -3931,7 +3928,7 @@ xmas,36,103,4 script Alfrik#1 4_M_DWARF,{
mes "We surrendered our hearts";
mes "To those tender teardrops";
mes "Those seductive red lips.^000000";
- set god_brising,42;
+ god_brising = 42;
close2;
hideonnpc "Alfrik#1";
end;
@@ -4021,7 +4018,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
mes "[" + strcharinfo(0) + "]";
mes "Another puzzle?";
mes "This was just like when I had to give Alfrik's password. Okay, let me see...";
- set .@point,0;
+ .@point = 0;
next;
switch(select("To the tear drops dripping on the way:Her lovely scent:We gave:To the seducing red lips:Our hearts in")) {
case 1:
@@ -4031,7 +4028,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
case 2:
mes "["+ strcharinfo(0) +"]";
mes "Her lovely scent";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 3:
mes "["+ strcharinfo(0) +"]";
@@ -4049,7 +4046,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
switch(select("Still lingers in the wind.:To the scent drifted in the wind:We gave:To the seducing red lips:Our hearts in")) {
case 1:
mes "Still lingers in the wind.";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 2:
mes "To the scent drifted in the wind";
@@ -4075,7 +4072,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
break;
case 4:
mes "We surrendered our hearts";
- set .@point,.@point + 10;
+ .@point += 10;
case 5:
mes "Our hearts in";
break;
@@ -4089,7 +4086,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
break;
case 3:
mes "To those tender teardrops";
- set .@point,.@point + 10;
+ .@point += 10;
break;
case 4:
mes "To the seducing red lips";
@@ -4113,7 +4110,7 @@ prt_fild02,185,269,0 script #brisindwarf2 HIDDEN_NPC,3,3,{
break;
case 5:
mes "Those seductive red lips";
- set .@point,.@point + 10;
+ .@point += 10;
break;
}
next;
@@ -4245,7 +4242,7 @@ prt_fild02,185,270,3 script Dvalin#1 4_M_DWARF,{
mes "you are the one who";
mes "can answer the question.";
mes "Hahahaha!";
- set god_brising,43;
+ god_brising = 43;
close2;
hideonnpc "Dvalin#1";
end;
@@ -4429,7 +4426,7 @@ mjolnir_09,87,129,3 script Berling#1 4_M_DWARF,{
mes "[Berling]";
mes "Memorize all five lines of this song exactly. Now take this golden teardrop and please seek out Grer.";
specialeffect2 EF_IMPOSITIO;
- set god_brising,44;
+ god_brising = 44;
close2;
hideonnpc "Berling#1";
end;
@@ -4509,35 +4506,35 @@ mjo_dun02,126,36,0 script #brisindwarf4 HIDDEN_NPC,3,3,{
mes "What was the first line...?";
next;
input @dwarfsong1$;
- if (@dwarfsong1$ == "No jewel in the world can compare.") set @point,@point +1;
+ if (@dwarfsong1$ == "No jewel in the world can compare.") @point += 1;
mes "[" + strcharinfo(0) + "]";
mes " " + @dwarfsong1$ + "";
mes "Then...ummm..";
mes "The second line?";
next;
input @dwarfsong2$;
- if (@dwarfsong2$ == "Our masterpiece made from love.") set @point,@point +1;
+ if (@dwarfsong2$ == "Our masterpiece made from love.") @point += 1;
mes "[" + strcharinfo(0) + "]";
mes " " + @dwarfsong2$ + "";
mes "Now, what was";
mes "the third line...?";
next;
input @dwarfsong3$;
- if (@dwarfsong3$ == "She wanted the dazzling necklace.") set @point,@point +1;
+ if (@dwarfsong3$ == "She wanted the dazzling necklace.") @point += 1;
mes "[" + strcharinfo(0) + "]";
mes " " + @dwarfsong3$ + "";
mes "Now, the fourth";
mes "line after that...";
next;
input @dwarfsong4$;
- if (@dwarfsong4$ == "We wanted the goddess of beauty.") set @point,@point +1;
+ if (@dwarfsong4$ == "We wanted the goddess of beauty.") @point += 1;
mes "[" + strcharinfo(0) + "]";
mes " " + @dwarfsong4$ + "";
mes "Alright, now";
mes "for the last line...";
next;
input @dwarfsong5$;
- if (@dwarfsong5$ == "Our happiest times were with her.") set @point,@point +1;
+ if (@dwarfsong5$ == "Our happiest times were with her.") @point += 1;
mes "[" + strcharinfo(0) + "]";
mes " " + @dwarfsong5$ + "";
mes "Alright, let's give it a try.";
@@ -4555,7 +4552,7 @@ mjo_dun02,126,36,0 script #brisindwarf4 HIDDEN_NPC,3,3,{
mes "Wha--?";
mes "Berling";
mes "did send you!";
- set god_brising,46;
+ god_brising = 46;
stopnpctimer;
close;
}
@@ -4599,7 +4596,7 @@ OnTouch:
mes "Lies! Lies!";
mes "Prove it!";
mes "Prove yourself!";
- set god_brising,45;
+ god_brising = 45;
initnpctimer;
close;
case 2:
@@ -4691,7 +4688,7 @@ mjo_dun02,126,34,1 script Grer#1 4_M_DWARF,{
mes "Okay, you";
mes "may go back now!";
mes "Farewell.";
- set god_brising,47;
+ god_brising = 47;
close2;
hideonnpc "Grer#1";
end;
diff --git a/npc/quests/seals/god_global.txt b/npc/quests/seals/god_global.txt
index c9daa613e..daeb6ddae 100644
--- a/npc/quests/seals/god_global.txt
+++ b/npc/quests/seals/god_global.txt
@@ -42,10 +42,10 @@ sec_in02,15,170,0 script Golbal var 4_F_CHNDRESS3,{
mes "[Check]";
mes "Now, the entire list of God Globalvar is being reset.";
next;
- set $God1,0;
- set $God2,0;
- set $God3,0;
- set $God4,0;
+ $God1 = 0;
+ $God2 = 0;
+ $God3 = 0;
+ $God4 = 0;
mes "^0000FF$God1^000000 = ^FF0000" + $God1 + "^000000.";
mes "^0000FF$God2^000000 = ^FF0000" + $God2 + "^000000.";
mes "^0000FF$God3^000000 = ^FF0000" + $God3 + "^000000.";
@@ -101,11 +101,11 @@ L_Var:
OnInit:
// Seals roll at 25/50 in Renewal and 50/100 in Pre-Renewal.
if (checkre(0)) {
- set $@god_check1,25;
- set $@god_check2,50;
+ $@god_check1 = 25;
+ $@god_check2 = 50;
} else {
- set $@god_check1,50;
- set $@god_check2,100;
+ $@god_check1 = 50;
+ $@god_check2 = 100;
}
end;
}
diff --git a/npc/quests/seals/god_weapon_creation.txt b/npc/quests/seals/god_weapon_creation.txt
index 16494cd5f..2fc778eaa 100644
--- a/npc/quests/seals/god_weapon_creation.txt
+++ b/npc/quests/seals/god_weapon_creation.txt
@@ -68,7 +68,7 @@ gld_dun01,28,85,0 script Grunburti#1::GodDwarf 4_M_DWARF,{
mes "At least I was fortunate enough to find this cave. We Dwarves are most cozy living underground, after all.";
close;
case 3:
- set .@GID,getcharid(2);
+ .@GID = getcharid(2);
if (($God1 < $@god_check2) || ($God2 < $@god_check2) || ($God3 < $@god_check2) || ($God4 < $@god_check2)){
if (($God1 >= $@god_check1) && ($God2 >= $@god_check1) && ($God3 >= $@god_check1) && ($God4 >= $@god_check1) && (strcharinfo(0) == getguildmaster(.@GID))) {
mes "[Dwarf Grunburti]";
@@ -391,7 +391,7 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
mes "pity for you~";
close;
}
- set .@GID,getcharid(2);
+ .@GID = getcharid(2);
if (strcharinfo(0) != getguildmaster(.@GID)) {
mes "[Dwarf Grunburti]";
mes "How in the...";
@@ -490,10 +490,10 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
delitem 969,20; //Gold
delitem 2603,1; //Necklace
getitem 2630,1; // Brysinggamen
- set $God1,0;
- set $God2,0;
- set $God3,0;
- set $God4,0;
+ $God1 = 0;
+ $God2 = 0;
+ $God3 = 0;
+ $God4 = 0;
announce "[Brisingamen] has come into the hands of [" + strcharinfo(0) + "], master of the [" + getguildname(.@GID) + "] guild.",bc_all;
mes "[Dwarf Grunburti]";
mes "Ah, just look at this dazzling beauty. No other piece of jewelry complemented Freya as well as Brisingamen.";
@@ -564,10 +564,10 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
delitem 984,10; //Oridecon
delitem 2627,1; //Belt
getitem 2629,1; // Magingiorde
- set $God1,0;
- set $God2,0;
- set $God3,0;
- set $God4,0;
+ $God1 = 0;
+ $God2 = 0;
+ $God3 = 0;
+ $God4 = 0;
announce "[Megingjard] the godly item has been given to [" + strcharinfo(0) + "], the master of the guild [" + getguildname(.@GID) + "].",bc_all;
mes "[Dwarf Grunburti]";
mes "Here...";
@@ -654,10 +654,10 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
delitem 985,10; //Elunium
delitem 2406,1; //Boots_
getitem 2410,1; // Sleipnir
- set $God1,0;
- set $God2,0;
- set $God3,0;
- set $God4,0;
+ $God1 = 0;
+ $God2 = 0;
+ $God3 = 0;
+ $God4 = 0;
announce "[Sleipnir] the godly item has been given to [" + strcharinfo(0) + "], the master of the guild [" + getguildname(.@GID) + "].",bc_all;
mes "[Dwarf Grunburti]";
mes "There...";
@@ -743,10 +743,10 @@ que_god01,154,112,4 script Grunburti#god 4_M_DWARF,{
delitem 969,40; //Gold
delitem 1522,1; //Stunner
getitem 1530,1; // Mjolnir
- set $God1,0;
- set $God2,0;
- set $God3,0;
- set $God4,0;
+ $God1 = 0;
+ $God2 = 0;
+ $God3 = 0;
+ $God4 = 0;
announce "[Mjolnir] has been bestowed to [" + strcharinfo(0) + "], the master of the [" + getguildname(.@GID) + "] guild.",bc_all;
mes "[Dwarf Grunburti]";
mes "It's done.";
@@ -798,11 +798,11 @@ OnTimer615000:
que_god01,169,82,0 script god_wep_warpmaster -1,{
OnEnable:
- for(set .@i,1; .@i<=6; set .@i,.@i+1)
+ for(.@i = 1; .@i<=6; ++.@i)
enablenpc "god_failwarp#"+.@i;
end;
OnDisable:
- for(set .@i,1; .@i<=6; set .@i,.@i+1)
+ for(.@i = 1; .@i<=6; ++.@i)
disablenpc "god_failwarp#"+.@i;
end;
}
@@ -828,7 +828,7 @@ que_god01,293,3,0 script Godly Item Quests#god 4_F_01,{
mes "Please enter password.";
mes "If you wish to cancel, please enter 0.";
next;
- set .@i, callfunc("F_GM_NPC",1854,0,0,4000);
+ .@i = callfunc("F_GM_NPC",1854,0,0,4000);
if (.@i == -2) {
mes "[Use in case of emergency]";
mes "Password is incorrect.";
diff --git a/npc/quests/seals/megingard_seal.txt b/npc/quests/seals/megingard_seal.txt
index 4ca899621..bb0d35f6c 100644
--- a/npc/quests/seals/megingard_seal.txt
+++ b/npc/quests/seals/megingard_seal.txt
@@ -225,7 +225,7 @@ prt_castle,44,151,0 script Rebarev Doug 1_M_KNIGHTMASTER,{
mes "My old comrades in arms.";
mes "You have no idea how much";
mes "I miss them...";
- set god_eremes,1;
+ god_eremes = 1;
break;
case 2:
mes "[Rebarev Doug]";
@@ -324,7 +324,7 @@ prt_castle,44,151,0 script Rebarev Doug 1_M_KNIGHTMASTER,{
next;
mes "[Rebarev Doug]";
mes "Let's not talk about that. What's important that our squad was disbanded because of we failed our final mission. Now, will you please go find ^0000FFThe 3rd Platoon Records^000000 in the Prontera Library for me?";
- set god_eremes,3;
+ god_eremes = 3;
next;
mes "[Rebarev Doug]";
mes "Remember, it might be helpful to ask the librarian for the file with a record on ^660000the 1st squad's final mission^000000.";
@@ -359,7 +359,7 @@ prt_castle,44,151,0 script Rebarev Doug 1_M_KNIGHTMASTER,{
mes "I wonder what they";
mes "have been doing since";
mes "our ^0000FFfinal mission^000000...";
- set god_eremes,2;
+ god_eremes = 2;
break;
}
}
@@ -451,7 +451,7 @@ prt_castle,44,151,0 script Rebarev Doug 1_M_KNIGHTMASTER,{
mes "[Rebarev Doug]";
mes "I appreciate that you've delivered news of my old comrades to me.";
mes "Now, I need to continue my research under the command of his Majesty.";
- set god_eremes,21;
+ god_eremes = 21;
break;
case 2:
mes "^3355FFYou keep your suspicions to yourself and tell Rebarev Doug about the members of";
@@ -468,7 +468,7 @@ prt_castle,44,151,0 script Rebarev Doug 1_M_KNIGHTMASTER,{
mes "[Rebarev Doug]";
mes "I appreciate that you've delivered news of my old comrades to me.";
mes "Now, I need to continue my research under the command of his Majesty. Once again, thank you for your help.";
- set god_eremes,22;
+ god_eremes = 22;
break;
}
}
@@ -560,7 +560,7 @@ prt_castle,48,164,0 script Crusader#God 4_M_JOB_KNIGHT2,{
next;
mes "[Max Von Shedough]";
mes "However, as of now, the petition you've just given me is considered classified information. Please keep this a military secret.";
- set $God2,$God2+1;
+ ++$God2;
if ($God2 == $@god_check1) {
announce "The 2nd seal of [Megingjard] has appeared.",bc_all;
}
@@ -571,10 +571,10 @@ prt_castle,48,164,0 script Crusader#God 4_M_JOB_KNIGHT2,{
announce "The 2nd seal of [Megingjard] has been released.",bc_all;
}
if (god_eremes == 23) {
- set god_eremes,25;
+ god_eremes = 25;
}
else if (god_eremes == 24) {
- set god_eremes,26;
+ god_eremes = 26;
}
close;
}
@@ -624,7 +624,7 @@ prt_in,172,109,0 script A File#megin1 HIDDEN_NPC,{
else if (god_eremes > 6 && god_eremes < 12) {
if (rand(1,10) > 6 && god_eremes > 6) {
mes "^3355FFYou see a shelf filled with many files. You begin searching through them, one by one.^000000";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
close;
}
else {
@@ -655,7 +655,7 @@ prt_in,170,109,0 script A File#megin2 HIDDEN_NPC,{
else if (god_eremes > 6 && god_eremes < 12) {
if (rand(1,10) > 6 && god_eremes > 6) {
mes "^3355FFYou see a shelf filled with many files. You begin searching through them, one by one.^000000";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
close;
}
else {
@@ -688,7 +688,7 @@ prt_in,168,109,0 script A File#megin3 HIDDEN_NPC,{
else if (god_eremes > 6 && god_eremes < 12) {
if (rand(1,10) > 6 && god_eremes > 6) {
mes "^3355FFYou see a shelf filled with many files. You begin searching through them, one by one.^000000";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
close;
}
else {
@@ -720,7 +720,7 @@ prt_in,169,109,0 script A File#megin4 HIDDEN_NPC,{
else if (god_eremes > 6 && god_eremes < 12) {
if (rand(1,10) > 6 && god_eremes > 6) {
mes "^3355FFYou see a shelf filled with many files. You begin searching through them, one by one.^000000";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
close;
}
else {
@@ -753,7 +753,7 @@ prt_in,166,109,0 script A File#megin5 HIDDEN_NPC,{
else if (god_eremes > 6 && god_eremes < 12) {
if (rand(1,10) > 6 && god_eremes > 6) {
mes "^3355FFYou see a shelf filled with many files. You begin searching through them, one by one.^000000";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
close;
}
else {
@@ -837,7 +837,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
else if (countitem(1041)) {
delitem 1041,countitem(1041);
}
- set god_eremes,6;
+ god_eremes = 6;
next;
mes "[Librarian Jekan]";
mes "Thank you...";
@@ -882,7 +882,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "classified file as soon";
mes "as I can!";
close2;
- set god_eremes,7;
+ god_eremes = 7;
end;
}
else {
@@ -910,7 +910,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "[Librarian Jekan]";
mes "Damn, my eyes are sore.";
mes "Working as a government official is easy except for the times when the beaucrats make you do stuff like this.";
- set god_eremes,5;
+ god_eremes = 5;
}
else if (god_eremes > 4) {
mes "[Librarian Jekan]";
@@ -946,7 +946,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "Hmm...?";
mes "How did you";
mes "know about that?";
- set god_eremes,4;
+ god_eremes = 4;
}
else {
mes "[Librarian Jekan]";
@@ -1055,7 +1055,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "Okay, now...";
mes "Come back here";
mes "as soon as you can.";
- set god_eremes,13;
+ god_eremes = 13;
close;
}
else if (god_eremes == 13) {
@@ -1074,7 +1074,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
delitem 1024,3; //Chinese_Ink
delitem 916,3; //Feather_Of_Birds
delitem 717,20; //Blue_Gemstone
- set god_eremes,14;
+ god_eremes = 14;
next;
mes "[Librarian Jekan]";
mes "Alright then...";
@@ -1110,7 +1110,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
else {
mes "[Librarian Jekan]";
mes "Let me go over and review the document before I make a copy...";
- set god_eremes,god_eremes+1;
+ ++god_eremes;
}
close;
}
@@ -1120,7 +1120,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
next;
mes "[Librarian Jekan]";
mes "Just remember, this copy needs to stay in the Prontera Library. That means you have to come back if you need to read the document again.";
- set god_eremes,17;
+ god_eremes = 17;
close;
}
else if (god_eremes > 16) {
@@ -1174,7 +1174,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes " : Royal Myst";
mes " : The Nineball^000000";
if (god_eremes == 17) {
- set god_eremes,18;
+ god_eremes = 18;
}
close2;
if (compare(.@input$,"record") == 1) {
@@ -1197,7 +1197,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "Most of the members of the 1st Squad were transferred to other squads or retired. Their former leader, Rebarev Doug, is currently in charge of researching godly artifacts under royal edict.^000000";
close2;
if (god_eremes == 18) {
- set god_eremes,19;
+ god_eremes = 19;
}
}
}
@@ -1267,7 +1267,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes " : The Nineball^000000";
close2;
if (god_eremes == 17) {
- set god_eremes,18;
+ god_eremes = 18;
}
if (compare(.@input$,"record") == 1) {
mes "^663300[Keyword: ^9966331st Squad Record^663300]";
@@ -1289,7 +1289,7 @@ prt_in,172,106,0 script Librarian#megin 4_M_ZONDAOYAJI,{
mes "Most of the members of the 1st Squad were transferred to other squads or retired. Their former leader, Rebarev Doug, is currently in charge of researching godly artifacts under royal edict.^000000";
close2;
if (god_eremes == 18) {
- set god_eremes,19;
+ god_eremes = 19;
}
}
}
@@ -1597,7 +1597,7 @@ geffen_in,109,161,3 script Crusader#God1 4_M_CRU,{
mes "[Zan.Huadoku]";
mes "^3355FFZan looks very confused and his eyes begin to glaze with a dazed look. You try speaking to him again, but he doesn't respond at all.^000000";
if (!god_megin_1) {
- set god_megin_1,1;
+ god_megin_1 = 1;
}
close;
}
@@ -1668,7 +1668,7 @@ geffen_in,109,161,3 script Crusader#God1 4_M_CRU,{
next;
mes "^3355FFZan stood still in silence, with a pained look on his face.^000000";
if (god_megin_1 == 1) {
- set god_megin_1,2;
+ god_megin_1 = 2;
}
close;
}
@@ -1707,7 +1707,7 @@ geffen_in,109,161,3 script Crusader#God1 4_M_CRU,{
mes "I can't think about anything further than that. I can't even remember what we found. Three months after that all happened, I've had these head problems...";
next;
mes "^3355FFZan stood still in silence, with a pained look on his face.^000000";
- set god_megin_1,3;
+ god_megin_1 = 3;
close;
}
else if (god_megin_1 > 2) {
@@ -1861,7 +1861,7 @@ morocc_in,146,179,0 script Employee#megin1 1_F_01,{
mes "and I'm saying it just once...";
mes "^0000FFAragham never hoarded";
mes "upgrade items.^000000";
- set god_megin_2,1;
+ god_megin_2 = 1;
close;
}
case 2:
@@ -1903,7 +1903,7 @@ morocc_in,146,179,0 script Employee#megin1 1_F_01,{
mes "you this hint once...";
mes "^0000FFAragham never hoarded";
mes "upgrade items.^000000";
- set god_megin_2,1;
+ god_megin_2 = 1;
close;
}
case 3:
@@ -1941,7 +1941,7 @@ morocc_in,146,179,0 script Employee#megin1 1_F_01,{
mes "^0000FFAragham never";
mes "hoarded upgrade items.^000000";
mes "Now, don't forget!";
- set god_megin_2,1;
+ god_megin_2 = 1;
close;
}
}
@@ -2018,37 +2018,37 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
next;
if ((countitem(740) > 0) || (countitem(741) > 0) || (countitem(742) > 0) || (countitem(743) > 0) || (countitem(750) > 0) || (countitem(751) > 0) || (countitem(752) > 0) || (countitem(753) > 0) || (countitem(754) > 0) || (countitem(7206) > 0) || (countitem(7212) > 0)){
if (countitem(740) > 0) {
- set .@toy$,"Puppet";
+ .@toy$ = "Puppet";
}
else if (countitem(741) > 0) {
- set .@toy$,"Poring Doll";
+ .@toy$ = "Poring Doll";
}
else if (countitem(742) > 0) {
- set .@toy$,"Chonchon Doll";
+ .@toy$ = "Chonchon Doll";
}
else if (countitem(743) > 0) {
- set .@toy$,"Spore Doll";
+ .@toy$ = "Spore Doll";
}
else if (countitem(744) > 0) {
- set .@toy$,"Baphomet Doll";
+ .@toy$ = "Baphomet Doll";
}
else if (countitem(751) > 0) {
- set .@toy$,"Osiris Doll";
+ .@toy$ = "Osiris Doll";
}
else if (countitem(752) > 0) {
- set .@toy$,"Rocker Doll";
+ .@toy$ = "Rocker Doll";
}
else if (countitem(753) > 0) {
- set .@toy$,"Yoyo Doll";
+ .@toy$ = "Yoyo Doll";
}
else if (countitem(754) > 0) {
- set .@toy$,"Racoon Doll";
+ .@toy$ = "Racoon Doll";
}
else if (countitem(7206) > 0) {
- set .@toy$,"Black Cat Doll";
+ .@toy$ = "Black Cat Doll";
}
else {
- set .@toy$,"Hung Doll";
+ .@toy$ = "Hung Doll";
}
mes "^3355FFYou pulled out a "+ .@toy$ +"";
mes "to cover your face, and wiggled its arms as if it were talking.^000000";
@@ -2127,7 +2127,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
next;
mes "[Cuaque Donon]";
mes "^666666Still, this is the safest place for me for a while. But I'm always ready to run away if I have to.^000000";
- set god_megin_2,3;
+ god_megin_2 = 3;
}
close;
case 2:
@@ -2150,7 +2150,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "[Cuaque Donon]";
mes "Like anyone who works as a Crusader under my old boss will end up like me. You know... broken.";
if (god_megin_2 == 1) {
- set god_megin_2,2;
+ god_megin_2 = 2;
}
close;
case 3:
@@ -2174,7 +2174,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "You're the same";
mes "as all the others!";
mes "Go away from me!";
- set god_megin_2,0;
+ god_megin_2 = 0;
close;
case 2:
mes "[Cuaque Donon]";
@@ -2184,7 +2184,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "Ergh...";
mes "I can't remember";
mes "more than that...";
- set god_megin_2,4;
+ god_megin_2 = 4;
close;
}
}
@@ -2196,7 +2196,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "You're the same";
mes "as all the others!";
mes "Go away from me!";
- set god_megin_2,0;
+ god_megin_2 = 0;
close;
case 2:
mes "[Cuaque Donon]";
@@ -2204,7 +2204,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "You're the same";
mes "as all the others!";
mes "Go away from me!";
- set god_megin_2,0;
+ god_megin_2 = 0;
close;
case 3:
mes "[Cuaque Donon]";
@@ -2214,7 +2214,7 @@ in_rogue,243,61,0 script Suspicious Man#megin 4_M_ALCHE_A,{
mes "Ergh...";
mes "I can't remember";
mes "more than that...";
- set god_megin_2,4;
+ god_megin_2 = 4;
close;
}
}
@@ -2347,7 +2347,7 @@ alberta,196,146,0 script Crusader#megin2 4_M_CRU,{
mes "[Jack O]";
mes "That's all I can remember.";
mes "I better take some Green Herbs now. My head throbs like crazy whenever I think about that time.";
- set god_megin_3,2;
+ god_megin_3 = 2;
close;
}
else {
@@ -2373,7 +2373,7 @@ alberta,196,146,0 script Crusader#megin2 4_M_CRU,{
mes "I might not be able to remember";
mes "a whole lot from back then, but the part about ^0000FFinsubordination^000000 can't be right. I'm sure of that.";
if (god_megin_3 == 0) {
- set god_megin_3,1;
+ god_megin_3 = 1;
}
close;
}
@@ -2548,7 +2548,7 @@ aldebaran,66,213,0 script Lady#megin 1_F_04,{
mes "I think I can";
mes "try to remember";
mes "my comrades...";
- set god_megin_4,1;
+ god_megin_4 = 1;
close;
}
else {
@@ -2601,7 +2601,7 @@ aldebaran,66,213,0 script Lady#megin 1_F_04,{
mes "have, no, was there someone";
mes "named that with us?";
close2;
- set god_megin_4,2;
+ god_megin_4 = 2;
end;
}
else {
@@ -2650,7 +2650,7 @@ aldebaran,66,213,0 script Lady#megin 1_F_04,{
next;
mes "[Emma Searth]";
mes "I really appreciate you coming here to talk to me about the old days. I, I want you to have this.";
- set god_eremes,28;
+ god_eremes = 28;
getitem 603,1; // Old_Blue_Box
if (checkre(3)) {
if (BaseLevel < 56) getexp 2700,0;
@@ -2780,7 +2780,7 @@ cmd_in02,190,94,3 script Man#megin 4_M_ROGUE,{
if (god_megin_6 == 0) {
mes "[Royal Myst]";
mes "Huh? What's that old geezer want this time? Tell 'em I'm fine, dandy even! Why the hell does he keep sending people...";
- set god_megin_6,1;
+ god_megin_6 = 1;
close;
}
else if (god_megin_6 > 0 && god_megin_6 < 15) {
@@ -2837,7 +2837,7 @@ cmd_in02,190,94,3 script Man#megin 4_M_ROGUE,{
next;
mes "[Royal Myst]";
mes "Hey, what do you think happens to Crusaders when they're framed and killed, huh? Where exactly do they go? Niflheim, Vahalla...?";
- set god_eremes,20;
+ god_eremes = 20;
close;
}
case 4:
@@ -2864,7 +2864,7 @@ cmd_in02,190,94,3 script Man#megin 4_M_ROGUE,{
mes "^3355FFBefore you can even think,";
mes "Royal Myst dips his hand into your inventory and helps himself to an Alcohol.^000000";
delitem 970,1;
- set god_megin_6,god_megin_6 +2;
+ god_megin_6 += 2;
close;
}
else {
@@ -2935,7 +2935,7 @@ jawaii_in,44,110,0 script Security Officer#megin 4_M_JOB_KNIGHT2,{
mes "[The Nineball]";
mes "I've been told that there have";
mes "been many unruly drunkards here lately, but it is in our best interest to make your experience here as enjoyable as possible.";
- set god_megin_5,god_megin_5 +1;
+ ++god_megin_5;
close;
}
else if (god_megin_5 == 5) {
@@ -3146,10 +3146,10 @@ niflheim,109,254,0 script Egnigem 4_M_NFDEADSWDMAN,{
mes "Thank you for";
mes "listening to me...";
if (god_eremes == 21) {
- set god_eremes,23;
+ god_eremes = 23;
}
else if (god_eremes == 22) {
- set god_eremes,24;
+ god_eremes = 24;
}
close;
}
@@ -3190,7 +3190,7 @@ niflheim,109,254,0 script Egnigem 4_M_NFDEADSWDMAN,{
mes "invested in me, I humbly bestow upon you my remaining strength. Fight honorably, and do not lose sight of righteousness.";
specialeffect EF_LOCKON;
specialeffect2 EF_HOLYCROSS;
- set god_eremes,27;
+ god_eremes = 27;
if (checkre(3)) {
if (BaseLevel < 56) getexp 2700,0;
else if ((BaseLevel > 55) && (BaseLevel < 61)) getexp 3000,0;
@@ -3248,7 +3248,7 @@ niflheim,109,254,0 script Egnigem 4_M_NFDEADSWDMAN,{
mes "invested in me, I humbly bestow upon you my remaining strength. Fight honorably, and do not lose sight of righteousness.";
specialeffect EF_LOCKON;
specialeffect2 EF_HOLYCROSS;
- set god_eremes,27;
+ god_eremes = 27;
if (checkre(3)) {
if (BaseLevel < 56) getexp 2700,0;
else if ((BaseLevel > 55) && (BaseLevel < 61)) getexp 3000,0;
diff --git a/npc/quests/seals/mjolnir_seal.txt b/npc/quests/seals/mjolnir_seal.txt
index edaf442d7..4af71e2e1 100644
--- a/npc/quests/seals/mjolnir_seal.txt
+++ b/npc/quests/seals/mjolnir_seal.txt
@@ -47,48 +47,48 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
else if (god_mjo_1 == 2 && god_mjo_2 == 2 && god_mjo_3 == 2 && god_mjo_4 == 2) {
if (god_mjo_0 == 10) {
if ((countitem(756) > 49) && (countitem(757) > 49)) {
- set .@gift,0;
+ .@gift = 0;
if (BaseJob == Job_Knight) {
- set .@gift,1;
+ .@gift = 1;
}
else if (BaseJob == Job_Priest) {
- set .@gift,2;
+ .@gift = 2;
}
else if (BaseJob == Job_Wizard){
- set .@gift,3;
+ .@gift = 3;
}
else if (BaseJob == Job_Blacksmith){
- set .@gift,4;
+ .@gift = 4;
}
else if (BaseJob == Job_Hunter){
- set .@gift,5;
+ .@gift = 5;
}
else if (BaseJob == Job_Assassin){
- set .@gift,6;
+ .@gift = 6;
}
else if (BaseJob == Job_Crusader){
- set .@gift,7;
+ .@gift = 7;
}
else if (BaseJob == Job_Monk){
- set .@gift,8;
+ .@gift = 8;
}
else if (BaseJob == Job_Sage){
- set .@gift,9;
+ .@gift = 9;
}
else if (BaseJob == Job_Alchemist){
- set .@gift,10;
+ .@gift = 10;
}
else if (BaseJob == Job_Rogue){
- set .@gift,11;
+ .@gift = 11;
}
else if (BaseJob == Job_Bard){
- set .@gift,12;
+ .@gift = 12;
}
else if (BaseJob == Job_Hunter){
- set .@gift,13;
+ .@gift = 13;
}
else {
- set .@gift,rand(1,13);
+ .@gift = rand(1,13);
}
cutin "god_tialpi01",2;
mes "[Tialfi]";
@@ -111,7 +111,7 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
mes "item for you.";
break;
case 2:
- set .@gift,rand(1,13);
+ .@gift = rand(1,13);
mes "[Tialfi]";
mes "I see...";
mes "Give me a moment";
@@ -128,7 +128,7 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
next;
delitem 756,50; //Oridecon_Stone
delitem 757,50; //Elunium_Stone
- set god_mjo_0,11;
+ god_mjo_0 = 11;
if (.@gift == 1) {
getitem 1471,1; // Hell_Fire
}
@@ -205,7 +205,7 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
mes "I think we'd better wait and see what's happening. Someone will deliver the news to us. Though, I am unsure of whether or not it will be good news or bad...";
}
else {
- set $God4,$God4 +1;
+ ++$God4;
if ($God4 == $@god_check1)
announce "The 4th seal of [Mjolnir] has appeared.",bc_all;
else if ($God4 == $@god_check2) {
@@ -214,7 +214,7 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
else
announce "The 4th seal of [Mjolnir] has been released.",bc_all;
}
- set god_mjo_0,10;
+ god_mjo_0 = 10;
mes "[Tialfi]";
mes "You've met the four Dwarven Blacksmiths. I've heard that they rarely speak to humans. So you must be special if you were able to talk to them.";
next;
@@ -254,10 +254,10 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
mes "of respect lest they";
mes "be insulted.";
next;
- set god_mjo_1,0;
- set god_mjo_2,0;
- set god_mjo_3,0;
- set god_mjo_4,0;
+ god_mjo_1 = 0;
+ god_mjo_2 = 0;
+ god_mjo_3 = 0;
+ god_mjo_4 = 0;
mes "[Tialfi]";
mes "You should be okay now.";
mes "By this time, they've probably forgotten the insult. But make sure you speak to my sister for advice first.";
@@ -349,7 +349,7 @@ prontera,124,297,3 script Tialfi 4_M_KID1,{
mes "I'm sure that she can";
mes "give you useful information if you're fortunate enough to encounter the Dwarves.";
next;
- set god_mjo_0,rand(1,2);
+ god_mjo_0 = rand(1,2);
mes "[Tialfi]";
mes "I'm truly lucky to meet such an adventurer like yourself. I wish you the best of luck.";
}
@@ -472,7 +472,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "...";
close;
case 2:
- set god_mjo_1,3;
+ god_mjo_1 = 3;
mes "[Austri]";
mes "What...?!";
mes "Do not greet the";
@@ -505,7 +505,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:About Mjolnir.")) {
case 1:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -525,7 +525,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes, sir!:Huh?")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -541,7 +541,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Boooring!:Oh, wow.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -559,7 +559,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Epito--what?:Yes sir, I agree.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -577,7 +577,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:I agree, sir!:Um, yeah.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -597,7 +597,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Wah wah wah~!:Ah, I understand sir!")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -613,7 +613,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes, sir!:Yeah, whatever.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -634,14 +634,14 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes?:Yes, sir!")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
}
}
else if (.@talk_to == 8) {
- set god_mjo_1,2;
+ god_mjo_1 = 2;
mes "[Austri]";
mes "Alright then...";
mes "If you wish to learn more, you should speak to my brothers.";
@@ -649,7 +649,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
close;
}
if (.@talk_not == 1) {
- set god_mjo_1,3;
+ god_mjo_1 = 3;
mes "[Austri]";
mes "Grrr...!";
mes "You're not listening, are you?! What a waste of my time!";
@@ -659,7 +659,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
close;
}
else {
- set .@talk_to,.@talk_to + 1;
+ ++.@talk_to;
}
}
}
@@ -689,7 +689,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "[Austri]";
mes "When it comes to humans, I believe the ones who can appreciate my line of work are the only ones worth talking to.";
next;
- set god_mjo_1,1;
+ god_mjo_1 = 1;
mes "[Austri]";
mes "Every good blacksmith knows the value of a good hammer. If you can understand that, I shall consider speaking with you.";
next;
@@ -730,7 +730,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "...";
close;
case 2:
- set god_mjo_4,3;
+ god_mjo_4 = 3;
mes "[Austri]";
mes "What?!";
mes "Leave immediately and go study your english properly!";
@@ -761,7 +761,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:About Mjolnir.")) {
case 1:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -781,7 +781,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes, sir!:Huh?")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -797,10 +797,10 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Boooring!:Oh, wow.")) {
case 1:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -818,7 +818,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Epito--what?:Yes sir, I agree.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -836,7 +836,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:I agree, sir!:Um, yeah.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -856,7 +856,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Wah wah wah~!:Ah, I understand sir!")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -872,7 +872,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes, sir!:Yeah, whatever.")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -893,14 +893,14 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
next;
switch(select("...:Yes?:Yes, sir!")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
}
}
else if (.@talk_to == 8) {
- set god_mjo_4,2;
+ god_mjo_4 = 2;
mes "[Austri]";
mes "Alright then...";
mes "Take care of";
@@ -908,7 +908,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
close;
}
if (.@talk_not == 1) {
- set god_mjo_4,3;
+ god_mjo_4 = 3;
mes "[Austri]";
mes "Grrr...!";
mes "You're not listening, are you?! What a waste of my time!";
@@ -917,7 +917,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "This is why I don't want to associate with humans. They always shut me out when I'm talking!";
close;
} else {
- set .@talk_to,.@talk_to + 1;
+ ++.@talk_to;
}
}
}
@@ -946,7 +946,7 @@ mjolnir_11,149,247,5 script Dwarf Blacksmith#east 4_M_DWARF,{
mes "[Austri]";
mes "When it comes to humans, I believe the ones who can appreciate my line of work are the only ones worth talking to.";
next;
- set god_mjo_4,1;
+ god_mjo_4 = 1;
mes "[Austri]";
mes "Every good blacksmith knows the value of a good hammer. If you can understand that, I shall consider speaking with you.";
next;
@@ -1042,7 +1042,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
mes "You have too much time on your hands. Why don't you log out and hang out with your friends instead?";
close;
case 2:
- set god_mjo_2,3;
+ god_mjo_2 = 3;
mes "[Sudri]";
mes "Why should";
mes "I excuse you?";
@@ -1057,8 +1057,8 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
}
else if (god_mjo_2 == 1) {
- set .@n_vit,200;
- set .@p_vit,100;
+ .@n_vit = 200;
+ .@p_vit = 100;
while(1) {
mes "Sudri : " + .@n_vit + " HP";
mes "" + strcharinfo(0) + " : " + .@p_vit + " HP";
@@ -1069,23 +1069,23 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...?!:Strike Head!:Strike Chest!:Strike Legs!:Take a break.")) {
case 1:
- set .@p_atk,0;
+ .@p_atk = 0;
break;
case 2:
- set .@p_atk,1;
+ .@p_atk = 1;
break;
case 3:
- set .@p_atk,2;
+ .@p_atk = 2;
break;
case 4:
- set .@p_atk,3;
+ .@p_atk = 3;
break;
case 5:
- set .@p_atk,4;
+ .@p_atk = 4;
break;
}
- set .@n_def,rand(1,3);
- set .@damage,rand(15,25);
+ .@n_def = rand(1,3);
+ .@damage = rand(15,25);
if (.@p_atk == 1) {
mes "" + strcharinfo(0) + "";
mes "attacks Sudri's head!";
@@ -1135,14 +1135,14 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 4) {
specialeffect2 EF_HEAL;
- set .@p_vit,.@p_vit + 10;
+ .@p_vit += 10;
mes "--------------------";
mes "" + strcharinfo(0) + "";
mes "has gained 10 HP!";
}
else if (.@p_atk == 1) {
specialeffect EF_HIT5;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the head!";
@@ -1151,7 +1151,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 2) {
specialeffect EF_HIT2;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the chest!";
@@ -1161,7 +1161,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 3) {
specialeffect EF_HIT4;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the legs!";
@@ -1171,7 +1171,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 0) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - 10;
+ .@p_vit -= 10;
mes "--------------------";
mes "You were hit by";
mes "Sudri's counter attack!";
@@ -1202,23 +1202,23 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...?!:Dodge!:Block!:Jump!:Counter back!")) {
case 1:
- set .@p_def,0;
+ .@p_def = 0;
break;
case 2:
- set .@p_def,1;
+ .@p_def = 1;
break;
case 3:
- set .@p_def,2;
+ .@p_def = 2;
break;
case 4:
- set .@p_def,3;
+ .@p_def = 3;
break;
case 5:
- set .@p_def,4;
+ .@p_def = 4;
break;
}
- set .@n_atk,rand(1,3);
- set .@damage,rand(20,25);
+ .@n_atk = rand(1,3);
+ .@damage = rand(20,25);
if (.@n_atk == 1) {
mes "Sudri aims for the head!";
}
@@ -1256,14 +1256,14 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
}
else if (.@p_def == 4) {
- set .@count,rand(1,4);
+ .@count = rand(1,4);
mes "--------------------";
mes "" + strcharinfo(0) + "";
mes "counters!";
if (.@count == 1) {
specialeffect2 EF_AUTOCOUNTER;
specialeffect EF_MAGNUMBREAK;
- set .@n_vit,.@n_vit - 20;
+ .@n_vit -= 20;
mes "You successfully";
mes "counter attacked!";
mes "--------------------";
@@ -1276,7 +1276,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else {
specialeffect2 EF_CRASHEARTH;
- set .@p_vit,.@p_vit - 30;
+ .@p_vit -= 30;
mes "You've taken";
mes "critical damage";
mes "on your weak spot!";
@@ -1286,7 +1286,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 1) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1296,7 +1296,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 2) {
specialeffect2 EF_HIT2;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1306,7 +1306,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 3) {
specialeffect2 EF_HIT4;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1316,7 +1316,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 0) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hits "+ strcharinfo(0) +"";
@@ -1349,7 +1349,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
close;
}
else if (.@n_vit < p_vit) {
- set god_mjo_2,2;
+ god_mjo_2 = 2;
mes "[Sudri]";
mes "You're stronger than me. I never thought I'd meet a human as strong as you.";
next;
@@ -1392,19 +1392,19 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...:Yes, I accept your challenge.:No, I'm scared!")) {
case 1:
- set god_mjo_2,3;
+ god_mjo_2 = 3;
mes "[Sudri]";
mes "You didn't";
mes "even answer me!";
mes "Fine! Whatever!";
close;
case 2:
- set god_mjo_2,1;
+ god_mjo_2 = 1;
mes "[Sudri]";
mes "Ah, I like you already, human! Now why don't you go do some warm ups, and we'll fight when you're ready.";
close;
case 3:
- set god_mjo_2,1;
+ god_mjo_2 = 1;
mes "[Sudri]";
mes "Eh...?";
mes "Why are you being";
@@ -1452,7 +1452,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
mes "Why don't you log out and go out with your friends instead?";
close;
case 2:
- set god_mjo_3,3;
+ god_mjo_3 = 3;
mes "[Sudri]";
mes "Why should";
mes "I excuse you?";
@@ -1465,8 +1465,8 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
mes "[Sudri]";
mes "Cool, let's fight!";
next;
- set .@n_vit,200;
- set .@p_vit,100;
+ .@n_vit = 200;
+ .@p_vit = 100;
while(1) {
mes "Sudri : " + .@n_vit + " HP";
mes "" + strcharinfo(0) + " : " + .@p_vit + " HP";
@@ -1477,23 +1477,23 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...?!:Strike Head!:Strike Chest!:Strike Legs!:Take a break.")) {
case 1:
- set .@p_atk,0;
+ .@p_atk = 0;
break;
case 2:
- set .@p_atk,1;
+ .@p_atk = 1;
break;
case 3:
- set .@p_atk,2;
+ .@p_atk = 2;
break;
case 4:
- set .@p_atk,3;
+ .@p_atk = 3;
break;
case 5:
- set .@p_atk,4;
+ .@p_atk = 4;
break;
}
- set .@n_def,rand(1,3);
- set .@damage,rand(15,25);
+ .@n_def = rand(1,3);
+ .@damage = rand(15,25);
if (.@p_atk == 1) {
mes "" + strcharinfo(0) + "";
mes "attacks Sudri's head!";
@@ -1543,14 +1543,14 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 4) {
specialeffect2 EF_HEAL;
- set .@p_vit,.@p_vit + 10;
+ .@p_vit += 10;
mes "--------------------";
mes "" + strcharinfo(0) + "";
mes "has gained 10 HP!";
}
else if (.@p_atk == 1) {
specialeffect EF_HIT5;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the head!";
@@ -1559,7 +1559,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 2) {
specialeffect EF_HIT2;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the chest!";
@@ -1569,7 +1569,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 3) {
specialeffect EF_HIT4;
- set .@n_vit,.@n_vit - .@damage;
+ .@n_vit -= .@damage;
mes "--------------------";
mes "You successfully hit";
mes "Sudri on the legs!";
@@ -1579,7 +1579,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@p_atk == 0) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - 10;
+ .@p_vit -= 10;
mes "--------------------";
mes "You were hit by";
mes "Sudri's counter attack!";
@@ -1610,23 +1610,23 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...?!:Dodge!:Block!:Jump!:Counter back!")) {
case 1:
- set .@p_def,0;
+ .@p_def = 0;
break;
case 2:
- set .@p_def,1;
+ .@p_def = 1;
break;
case 3:
- set .@p_def,2;
+ .@p_def = 2;
break;
case 4:
- set .@p_def,3;
+ .@p_def = 3;
break;
case 5:
- set .@p_def,4;
+ .@p_def = 4;
break;
}
- set .@n_atk,rand(1,3);
- set .@damage,rand(20,25);
+ .@n_atk = rand(1,3);
+ .@damage = rand(20,25);
if (.@n_atk == 1) {
mes "Sudri aims for the head!";
}
@@ -1663,14 +1663,14 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
}
else if (.@p_def == 4) {
- set .@count,rand(1,4);
+ .@count = rand(1,4);
mes "--------------------";
mes "" + strcharinfo(0) + "";
mes "counters!";
if (.@count == 1) {
specialeffect2 EF_AUTOCOUNTER;
specialeffect EF_MAGNUMBREAK;
- set .@n_vit,.@n_vit - 20;
+ .@n_vit -= 20;
mes "You successfully";
mes "counter attacked!";
mes "--------------------";
@@ -1683,7 +1683,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else {
specialeffect2 EF_CRASHEARTH;
- set .@p_vit,.@p_vit - 30;
+ .@p_vit -= 30;
mes "You've taken";
mes "critical damage";
mes "on your weak spot!";
@@ -1693,7 +1693,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 1) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1703,7 +1703,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 2) {
specialeffect2 EF_HIT2;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1713,7 +1713,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 3) {
specialeffect2 EF_HIT4;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hit " + strcharinfo(0) + "";
@@ -1723,7 +1723,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
}
else if (.@n_atk == 0) {
specialeffect2 EF_HIT5;
- set .@p_vit,.@p_vit - .@damage;
+ .@p_vit -= .@damage;
mes "--------------------";
mes "Sudri successfully";
mes "hits "+ strcharinfo(0) +"";
@@ -1756,7 +1756,7 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
close;
}
else if (.@n_vit < .@p_vit) {
- set god_mjo_3,2;
+ god_mjo_3 = 2;
mes "[Sudri]";
mes "You're stronger than me. I never thought I'd meet a human as strong as you.";
next;
@@ -1799,19 +1799,19 @@ mjolnir_09,209,341,3 script Dwarf Blacksmith#south 4_M_DWARF,{
next;
switch(select("...:Yes, I accept your challenge.:No, I'm scared!")) {
case 1:
- set god_mjo_3,3;
+ god_mjo_3 = 3;
mes "[Sudri]";
mes "You didn't";
mes "even answer me!";
mes "Fine! Whatever!";
close;
case 2:
- set god_mjo_3,1;
+ god_mjo_3 = 1;
mes "[Sudri]";
mes "Ah, I like you already, human! Now why don't you go do some warm ups, and we'll fight when you're ready.";
close;
case 3:
- set god_mjo_3,1;
+ god_mjo_3 = 1;
mes "[Sudri]";
mes "Eh...?";
mes "Why are you being";
@@ -1927,7 +1927,7 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "No matter what other people say, if you're confident and your will is unwavering, you'll always be satisfied with the results.";
close;
case 2:
- set god_mjo_3,3;
+ god_mjo_3 = 3;
mes "[Vestri]";
mes "You didn't answer the question! Now, you've probably got the wrong Dwarf here...";
next;
@@ -1944,13 +1944,13 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
next;
setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i <= 10; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 1; .@i <= 10; ++.@i) {
if (getequipisequiped(.@i))
- set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- set .@menu$, .@menu$ + ":";
+ .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ .@menu$ += ":";
}
- set .@part,select(.@menu$);
+ .@part = select(.@menu$);
if (getequipisequiped(.@part) == 0)
close;
@@ -2068,7 +2068,7 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "Yeah, no regrets!";
next;
}
- set god_mjo_3,2;
+ god_mjo_3 = 2;
mes "[Vestri]";
mes "Well, my friend,";
mes "if you ever visit my brothers, please give them my regards.";
@@ -2101,7 +2101,7 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "[Vestri]";
mes "Alright. Perhaps I'm meant to help you out, so I'll upgrade a weapon for you. All you need to do is bring me the weapon and material.";
next;
- set god_mjo_3,1;
+ god_mjo_3 = 1;
mes "[Vestri]";
mes "Here's the condition: You've got to bring me a Level 4 Weapon that's been upgraded to the point where it might break. Oh, and bring an Oridecon!";
close;
@@ -2143,9 +2143,8 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "[Vestri]";
mes "No matter what other people say, if you're confident and your will is unwavering, you'll always be satisfied with the results.";
close;
-
case 2:
- set god_mjo_2,3;
+ god_mjo_2 = 3;
mes "[Vestri]";
mes "You didn't answer the question! Now, you've probably got the wrong Dwarf here...";
next;
@@ -2160,15 +2159,14 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "Great...!";
mes "Which one should I upgrade first, huh? My heart is pounding with anticipation...";
next;
-
setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i <= 10; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 1; .@i <= 10; ++.@i) {
if (getequipisequiped(.@i))
- set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- set .@menu$, .@menu$ + ":";
+ .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ .@menu$ += ":";
}
- set .@part,select(.@menu$);
+ .@part = select(.@menu$);
if (getequipisequiped(.@part) == 0)
close;
@@ -2280,7 +2278,7 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "Yeah, no regrets!";
next;
}
- set god_mjo_2,2;
+ god_mjo_2 = 2;
mes "[Vestri]";
mes "Well, my friend,";
mes "if you ever visit my brothers, please give them my regards.";
@@ -2313,7 +2311,7 @@ mjolnir_01,35,136,7 script Dwarf Blacksmith#west 4_M_DWARF,{
mes "[Vestri]";
mes "Alright. Perhaps I'm meant to help you out, so I'll upgrade a weapon for you. All you need to do is bring me the weapon and material.";
next;
- set god_mjo_2,1;
+ god_mjo_2 = 1;
mes "[Vestri]";
mes "Here's the condition: You've got to bring me a Level 4 Weapon that's been upgraded to the point where it might break. Oh, and bring an Oridecon!";
close;
@@ -2409,7 +2407,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "then leave me alone.";
close;
case 2:
- set god_mjo_4,3;
+ god_mjo_4 = 3;
mes "[Nordri]";
mes "Huh.";
mes "That's fine. Still...";
@@ -2448,7 +2446,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Greed:Sea:Blaze:Hog")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -2468,7 +2466,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Language:Thoughts:Turtle:Wolf")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -2487,7 +2485,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Curse:Earth:Heart:Old Age")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 4:
break;
@@ -2511,7 +2509,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "[Nordri]";
mes "Try to live as good a life as you can. Remember that you can't have everything that you want. Obssession and irrationality go hand in hand.";
next;
- set god_mjo_4,2;
+ god_mjo_4 = 2;
mes "[Nordri]";
mes "Thank you for listening to my long story. If you meet someone with a dangerous obsession, please tell this story of Thor and the illusions of the giant king.";
close;
@@ -2526,7 +2524,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
close;
}
else {
- set .@talk_to,.@talk_to + 1;
+ ++.@talk_to;
}
}
}
@@ -2557,7 +2555,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "[Nordri]";
mes "Odd. Recently, too many humans have been interested in meeting with me and my brothers. Still, I cannot say their visits have been unpleasant.";
next;
- set god_mjo_4,1;
+ god_mjo_4 = 1;
mes "[Nordri]";
mes "I'm a little thirsty. Would you bring me a Red Potion. If you do that for me, I will tell you an important story. Heh heh heh~";
close;
@@ -2598,7 +2596,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "then leave me alone.";
close;
case 2:
- set god_mjo_1,3;
+ god_mjo_1 = 3;
mes "[Nordri]";
mes "Huh.";
mes "That's fine. Still...";
@@ -2636,7 +2634,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Ymir's body:Earth:Lane:Universe")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 2:
break;
@@ -2651,7 +2649,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Ymir's Head:Sky:Cloud Factory:High House")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 4:
break;
@@ -2666,7 +2664,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
next;
switch(select("Circling Wheel:Moon:False Sun:Fast Stranger")) {
default:
- set .@talk_not,1;
+ .@talk_not = 1;
break;
case 3:
break;
@@ -2697,7 +2695,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "important to live a";
mes "good and virtuous life. It's great to achieve your desires, but be aware that some desires are not meant to be fulfilled.";
next;
- set god_mjo_1,2;
+ god_mjo_1 = 2;
mes "[Nordri]";
mes "Thank you for listening to my long story. If you meet anyone afflicted with an insatiable desire, please tell him this story of Thor and Alvis, a brave yet very defiant Dwarf.";
close;
@@ -2712,7 +2710,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
close;
}
else {
- set .@talk_to,.@talk_to + 1;
+ ++.@talk_to;
}
}
}
@@ -2741,7 +2739,7 @@ mjolnir_12,18,18,7 script Dwarf Blacksmith#north 4_M_DWARF,{
mes "[Nordri]";
mes "Odd. Recently, too many humans have been interested in meeting with me and my brothers. Still, I cannot say their visits have been unpleasant.";
next;
- set god_mjo_1,1;
+ god_mjo_1 = 1;
mes "[Nordri]";
mes "I'm a little thirsty. Would you bring me a Red Potion. If you do that for me, I will tell you an important story. Heh heh heh~";
close;
diff --git a/npc/quests/seals/seal_status.txt b/npc/quests/seals/seal_status.txt
index 4809f6b7d..6c16d01b5 100644
--- a/npc/quests/seals/seal_status.txt
+++ b/npc/quests/seals/seal_status.txt
@@ -16,16 +16,16 @@
prontera,113,294,3 script Sign Post#god 2_BULLETIN_BOARD,{
mes "======== God Seal Status ========";
setarray .@seal$[1], "Sleipnir","Megingjard","Brisingamen","Mjolnir";
- for(set .@i,1; .@i<=4; set .@i,.@i+1) {
- set .@val, getd("$God"+.@i);
+ for(.@i = 1; .@i<=4; ++.@i) {
+ .@val = getd("$God"+.@i);
if (.@val == 0)
- set .@status$,"Unseen";
+ .@status$ = "Unseen";
else if (.@val < $@god_check1)
- set .@status$,"Active";
+ .@status$ = "Active";
else if (.@val < $@god_check2)
- set .@status$,"Appeared";
+ .@status$ = "Appeared";
else
- set .@status$,"Released";
+ .@status$ = "Released";
mes .@seal$[.@i]+" Seal: "+.@status$;
}
mes " ";
diff --git a/npc/quests/seals/sleipnir_seal.txt b/npc/quests/seals/sleipnir_seal.txt
index 85005a4fd..54587ae94 100644
--- a/npc/quests/seals/sleipnir_seal.txt
+++ b/npc/quests/seals/sleipnir_seal.txt
@@ -53,7 +53,7 @@ yuno,164,200,4 script Noyee#G 4W_F_01,{
mes "Anyway, no one is really sure if it is or not. Recently, it's been the focus of many rumors. I have no idea if any of them are true though.";
close2;
if (god_sl_1 == 0) {
- set god_sl_1,1;
+ god_sl_1 = 1;
}
}
}
@@ -134,7 +134,7 @@ que_god01,98,98,4 script Manager#G 1_F_04,{
mes "^3355FFYou've received";
mes "a temporary";
mes "admission pass.^000000";
- set god_sl_1,2;
+ god_sl_1 = 2;
close2;
break;
}
@@ -196,7 +196,7 @@ que_god01,98,98,4 script Manager#G 1_F_04,{
mes "Ah, there it is.";
mes "It might not be much, but I hope you accept it as a token of my gratitude. Good luck on your travels!";
if ($God1 < $@god_check2)
- set $God1,$God1+1;
+ $God1 += 1;
if ($God1 == $@god_check1)
announce "The 1st seal of [Sleipnir] has appeared.",bc_all;
else if ($God1 == $@god_check2) {
@@ -205,9 +205,9 @@ que_god01,98,98,4 script Manager#G 1_F_04,{
else
announce "The 1st seal of [Sleipnir] has been released.",bc_all;
}
- set god_sl_1,51;
- set .@god_treasure,rand(1,900);
- set .@god_treasure1,rand(1,1000);
+ god_sl_1 = 51;
+ .@god_treasure = rand(1,900);
+ .@god_treasure1 = rand(1,1000);
if (checkre(0)) {
if (.@god_treasure < 101) {
if (.@god_treasure1 < 210) getitem 2102,1; //Guard_
@@ -508,7 +508,7 @@ que_god01,98,98,4 script Manager#G 1_F_04,{
que_god01,66,125,6 script Researcher#G1 4_M_ORIENT02,{
if ($God1 < $@god_check2) {
if (god_sl_1 == 2) {
- set god_sl_1,11;
+ god_sl_1 = 11;
}
if ((god_sl_1 == 11) || (god_sl_1 == 22) || (god_sl_1 == 33) || (god_sl_1 == 44)) {
if (god_sl_2 == 0) {
@@ -534,7 +534,7 @@ que_god01,66,125,6 script Researcher#G1 4_M_ORIENT02,{
next;
mes "[Hallandaute]";
mes "Since he's working on a project similar to mine, he might be in a position to help me. Metto lives in Juno, so you can easily find me.";
- set god_sl_2,1;
+ god_sl_2 = 1;
close;
}
else if (god_sl_2 == 1) {
@@ -571,7 +571,7 @@ que_god01,66,125,6 script Researcher#G1 4_M_ORIENT02,{
mes "Huh. That's...";
mes "That's too bad. I don't know what to say. We used to go watch movies and celebrate our birthdays together. P-please give me a moment...";
emotion e_dots;
- set god_sl_2,2;
+ god_sl_2 = 2;
close;
}
}
@@ -605,18 +605,18 @@ que_god01,66,125,6 script Researcher#G1 4_M_ORIENT02,{
next;
mes "[Hallandaute]";
mes "Anyway, I thank you for helping me out earlier. That's basically all I needed, so please talk to the other researchers and see if they need any assistance.";
- set god_sl_2,0;
+ god_sl_2 = 0;
if (god_sl_1 == 11) {
- set god_sl_1,12;
+ god_sl_1 = 12;
}
if (god_sl_1 == 22) {
- set god_sl_1,23;
+ god_sl_1 = 23;
}
if (god_sl_1 == 33) {
- set god_sl_1,34;
+ god_sl_1 = 34;
}
if (god_sl_1 == 44) {
- set god_sl_1,50;
+ god_sl_1 = 50;
}
close;
}
@@ -674,7 +674,7 @@ que_god01,66,125,6 script Researcher#G1 4_M_ORIENT02,{
que_god01,11,136,6 script Researcher#G2 2_M_SAGE_B,{
if ($God1 < $@god_check2) {
if (god_sl_1 == 2) {
- set god_sl_1,21;
+ god_sl_1 = 21;
}
if ((god_sl_1 == 21) || (god_sl_1 == 32) || (god_sl_1 == 43) || (god_sl_1 == 14)) {
if (god_sl_2 == 0) {
@@ -724,7 +724,7 @@ que_god01,11,136,6 script Researcher#G2 2_M_SAGE_B,{
next;
mes "[Aadin]";
mes "Have a safe trip~";
- set god_sl_2,1;
+ god_sl_2 = 1;
close;
}
else if (god_sl_2 == 1) {
@@ -776,7 +776,7 @@ que_god01,11,136,6 script Researcher#G2 2_M_SAGE_B,{
next;
mes "[Aadin]";
mes "Are you sure you've listened to the tale in its entirety? I'm sorry to ask this of you, but would you go to Payon and listen to this story once more?";
- set god_sl_2,3;
+ god_sl_2 = 3;
close;
}
else if (god_sl_2 == 3) {
@@ -855,18 +855,18 @@ que_god01,11,136,6 script Researcher#G2 2_M_SAGE_B,{
next;
mes "[Aadin]";
mes "After all, finding answers tends to cause new questions to arise. Nonetheless, I thank you for your help.";
- set god_sl_2,0;
+ god_sl_2 = 0;
if (god_sl_1 == 21) {
- set god_sl_1,22;
+ god_sl_1 = 22;
}
if (god_sl_1 == 32) {
- set god_sl_1,33;
+ god_sl_1 = 33;
}
if (god_sl_1 == 43) {
- set god_sl_1,44;
+ god_sl_1 = 44;
}
if (god_sl_1 == 14) {
- set god_sl_1,50;
+ god_sl_1 = 50;
}
close;
}
@@ -893,7 +893,7 @@ que_god01,11,136,6 script Researcher#G2 2_M_SAGE_B,{
que_god01,55,47,3 script Researcher#G3 1_F_SIGNZISK,{
if ($God1 < $@god_check2) {
if (god_sl_1 == 2) {
- set god_sl_1,31;
+ god_sl_1 = 31;
}
if ((god_sl_1 == 31) || (god_sl_1 == 42) || (god_sl_1 == 13) || (god_sl_1 == 24)) {
if (god_sl_2 == 0) {
@@ -933,7 +933,7 @@ que_god01,55,47,3 script Researcher#G3 1_F_SIGNZISK,{
next;
mes "[Kurdt]";
mes "Anyway, I hope you don't run into too much trouble finding what I need for this experiment. Good luck~";
- set god_sl_2,1;
+ god_sl_2 = 1;
close;
}
else if (god_sl_2 == 1) {
@@ -949,64 +949,64 @@ que_god01,55,47,3 script Researcher#G3 1_F_SIGNZISK,{
mes "You adventurers carry";
mes "a lot of things, don't you?";
if (countitem(918) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(950) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(951) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(956) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(959) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(960) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(961) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(962) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(963) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(964) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(965) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(966) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(7013) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1054) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1053) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1052) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1051) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1050) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1024) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
if (countitem(1023) > 8) {
- set .@count_sl_1,.@count_sl_1 + 1;
+ ++.@count_sl_1;
}
next;
if (.@count_sl_1 > 14) {
@@ -1088,18 +1088,18 @@ que_god01,55,47,3 script Researcher#G3 1_F_SIGNZISK,{
if (countitem(7013) > 8) {
delitem 7013,9; //Coral_Reef
}
- set god_sl_2,0;
+ god_sl_2 = 0;
if (god_sl_1 ==31) {
- set god_sl_1,32;
+ god_sl_1 = 32;
}
if (god_sl_1 == 42) {
- set god_sl_1,43;
+ god_sl_1 = 43;
}
if (god_sl_1 == 13) {
- set god_sl_1,14;
+ god_sl_1 = 14;
}
if (god_sl_1 == 24) {
- set god_sl_1,50;
+ god_sl_1 = 50;
}
close;
}
@@ -1159,7 +1159,7 @@ que_god01,55,47,3 script Researcher#G3 1_F_SIGNZISK,{
que_god01,14,47,3 script Researcher#G4 4_M_06,{
if ($God1 < $@god_check2) {
if (god_sl_1 == 2) {
- set god_sl_1,41;
+ god_sl_1 = 41;
}
if ((god_sl_1 == 41) || (god_sl_1 == 12) || (god_sl_1 == 23) || (god_sl_1 == 34)) {
if (god_sl_2 == 0) {
@@ -1177,7 +1177,7 @@ que_god01,14,47,3 script Researcher#G4 4_M_06,{
next;
mes "[Pavel]";
mes "Anyway, go look at --^333333*Aaachooo!*^000000 that ^333333*Achoooo!*^000000 thing... ^333333*Sniff sniff*^000000";
- set god_sl_2,1;
+ god_sl_2 = 1;
close;
}
else if (god_sl_2 == 1) {
@@ -1210,7 +1210,7 @@ que_god01,14,47,3 script Researcher#G4 4_M_06,{
mes "[Pavel]";
mes "^333333*Sniff sniff*^000000";
mes "So I hope you don't mind ^333333*Achoo!*^000000 helping me remove ^333333*Cough*^000000 the device. Thank you so much. ^333333*Sniff*^000000";
- set god_sl_2,3;
+ god_sl_2 = 3;
close;
}
else if (god_sl_2 == 3) {
@@ -1233,18 +1233,18 @@ que_god01,14,47,3 script Researcher#G4 4_M_06,{
mes "[Pavel]";
mes "Great job~";
mes "You did some ^333333*Sniff*^000000 good work. Thank you so much for helping me. ^333333*Achoo! Achoo!*^000000";
- set god_sl_2,0;
+ god_sl_2 = 0;
if (god_sl_1 == 41) {
- set god_sl_1,42;
+ god_sl_1 = 42;
}
if (god_sl_1 == 12) {
- set god_sl_1,13;
+ god_sl_1 = 13;
}
if (god_sl_1 == 23) {
- set god_sl_1,24;
+ god_sl_1 = 24;
}
if (god_sl_1 == 34) {
- set god_sl_1,50;
+ god_sl_1 = 50;
}
close;
}
@@ -1272,7 +1272,7 @@ que_god01,20,48,0 script Slab#G HIDDEN_NPC,{
mes "wkdusgks ^ff00fftkaryf^000000dnl durjfflrhsjs wkrdjswhgks ......";
mes "wkrdjswhgks shfh wkrdjswhgks wkdus wkr...";
mes "^ff00ffghswka^000000gks ........fusjs tmld.........";
- set god_sl_2,2;
+ god_sl_2 = 2;
next;
mes "^3355FFThere is some writing engraved on this slab of stone. Since you can't read it and the stone looks weathered with time, it seems to be written in an ancient language.^000000";
next;
@@ -1369,7 +1369,7 @@ que_god01,20,48,0 script Slab#G HIDDEN_NPC,{
mes "^3355FFYou still don't";
mes "understand what is";
mes "written on the slab.^000000";
- set god_sl_2,4;
+ god_sl_2 = 4;
next;
mes "After a while, the original engraving on the slab re-appeared, once again concealing the writing underneath. It seems you can only reveal the hidden letters temporarily.";
close;
@@ -1772,9 +1772,9 @@ payon,79,171,4 script Friar#G5 4_F_SISTER,{
mes "If you wish to listen to this story again, you're always welcome.";
mes "Be safe on your adventures~";
if (god_sl_2 == 1) {
- set god_sl_2,2;
+ god_sl_2 = 2;
} else if (god_sl_2 == 3) {
- set god_sl_2,4;
+ god_sl_2 = 4;
}
close;
}
diff --git a/npc/quests/skills/alchemist_skills.txt b/npc/quests/skills/alchemist_skills.txt
index 2add112c4..66673411b 100644
--- a/npc/quests/skills/alchemist_skills.txt
+++ b/npc/quests/skills/alchemist_skills.txt
@@ -35,7 +35,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "worse than working when";
mes "you're supposed to be resting.";
mes "H-hey! Um, what are you doing?";
- set ALCHE_SK,1;
+ ALCHE_SK = 1;
next;
mes "[Pisruik]";
mes "Q-quit looking at";
@@ -104,7 +104,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "["+ strcharinfo(0) +"]";
mes "I am called "+ strcharinfo(0) +".";
next;
- set ALCHE_SK,2;
+ ALCHE_SK = 2;
mes "[Pisruik]";
mes "Ah, "+ strcharinfo(0) +".";
mes "Would you please bring";
@@ -195,7 +195,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
delitem 1093,4; //Empty_Potion
delitem 950,10; //Heart_Of_Mermaid
delitem 1057,10; //Moth_Dust
- set ALCHE_SK,3;
+ ALCHE_SK = 3;
mes "[Pisruik]";
mes "Great, it looks like";
mes "everything is here.";
@@ -206,14 +206,14 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
next;
switch(select("Medicine?:Bomb?")) {
case 1:
- set ALCHE_SK,4;
+ ALCHE_SK = 4;
mes "[Pisruik]";
mes "Hahahah, that's right!";
mes "I'm working on making";
mes "a new form of medicine.";
break;
case 2:
- set ALCHE_SK,4;
+ ALCHE_SK = 4;
mes "[Pisruik]";
mes "A bomb? Do I look like";
mes "a nutcase to you? No, no...";
@@ -257,7 +257,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
next;
switch(select("Nope, I'm too busy!:Sure, I'll help you.:What's in it for me?")) {
case 1:
- set ALCHE_SK,5;
+ ALCHE_SK = 5;
mes "[Pisruik]";
mes "I guess I'll have to gather";
mes "those on my own. Alright, well,";
@@ -266,7 +266,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "your business with me is done.";
close;
case 2:
- set ALCHE_SK,6;
+ ALCHE_SK = 6;
mes "[Pisruik]";
mes "Thanks, I really";
mes "appreciate it. While";
@@ -318,7 +318,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "the results of my research.";
next;
if (select("Nah, I'm too busy.:Alright, I'll help you.") == 1) {
- set ALCHE_SK,5;
+ ALCHE_SK = 5;
mes "[Pisruik]";
mes "I guess I'll have to gather";
mes "those on my own. Alright, well,";
@@ -327,7 +327,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "your business with me is done.";
close;
}
- set ALCHE_SK,6;
+ ALCHE_SK = 6;
mes "[Pisruik]";
mes "Thanks, I really";
mes "appreciate it. While";
@@ -435,7 +435,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "maybe it's not your fault.";
mes "Anyway, just so you know,";
mes "I'm developing a new medicine.";
- set ALCHE_SK,4;
+ ALCHE_SK = 4;
close;
}
else if (ALCHE_SK == 4) {
@@ -497,7 +497,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
next;
switch(select("Nope, I'm too busy!:Sure, I'll help you.:What's in it for me?")) {
case 1:
- set ALCHE_SK,5;
+ ALCHE_SK = 5;
mes "[Pisruik]";
mes "I guess I'll have to gather";
mes "those on my own. Alright, well,";
@@ -506,7 +506,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "your business with me is done.";
close;
case 2:
- set ALCHE_SK,6;
+ ALCHE_SK = 6;
mes "[Pisruik]";
mes "Thanks, I really";
mes "appreciate it. While";
@@ -558,7 +558,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "the results of my research.";
next;
if (select("Nah, I'm too busy.:Alright, I'll help you.") == 1) {
- set ALCHE_SK,5;
+ ALCHE_SK = 5;
mes "[Pisruik]";
mes "I guess I'll have to gather";
mes "those on my own. Alright, well,";
@@ -567,7 +567,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "your business with me is done.";
close;
}
- set ALCHE_SK,6;
+ ALCHE_SK = 6;
mes "[Pisruik]";
mes "Thanks, I really";
mes "appreciate it. While";
@@ -641,7 +641,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "If I weren't so sickly, I'd get";
mes "them myself, but--*Cough* as";
mes "you can see, I don't feel so well. ^FFFFFF ^000000";
- set ALCHE_SK,6;
+ ALCHE_SK = 6;
next;
mes "[Pisruik]";
if (Sex == 0) {
@@ -661,7 +661,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
else if (ALCHE_SK == 6) {
if (countitem(1032) > 19) {
delitem 1032,20; //Blossom_Of_Maneater
- set ALCHE_SK,7;
+ ALCHE_SK = 7;
mes "[Pisruik]";
mes "Thanks so much for";
mes "bringing me these";
@@ -676,7 +676,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "Clover extract I prepared.";
}
next;
- set ALCHE_SK,9;
+ ALCHE_SK = 9;
specialeffect EF_SUI_EXPLOSION;
mes "[Pisruik]";
mes "Ah!";
@@ -753,7 +753,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
}
}
else if (ALCHE_SK == 7) {
- set ALCHE_SK,8;
+ ALCHE_SK = 8;
mes "[Pisruik]";
mes "Hmmm...";
mes "Actually, I miscalculated";
@@ -765,7 +765,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
else if (ALCHE_SK == 8) {
if (countitem(1032) > 0) {
delitem 1032,1; //Blossom_Of_Maneater
- set ALCHE_SK,7;
+ ALCHE_SK = 7;
mes "[Pisruik]";
mes "Thanks so much!";
mes "Now I finally have the";
@@ -780,7 +780,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "exciting part of this project!";
}
next;
- set ALCHE_SK,9;
+ ALCHE_SK = 9;
specialeffect EF_SUI_EXPLOSION;
mes "[Pisruik]";
mes "Ah!";
@@ -866,7 +866,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
if (select("Let him try a pair of your glasses:Don't give him anything") == 1) {
if (countitem(2243) > 0) {
delitem 2243,1; //Spinning_Eyes
- set ALCHE_SK,10;
+ ALCHE_SK = 10;
//changes the quest steps by deicision.
mes "["+ strcharinfo(0) +"]";
mes "Here, why don't you";
@@ -922,7 +922,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "well as a few warnings about";
mes "the medicine's side effects.^000000";
next;
- set ALCHE_SK,11;
+ ALCHE_SK = 11;
getitem 7434,1; //Elemental_Create_Book
mes "[Pisruik]";
mes "Well, you should be";
@@ -1009,7 +1009,7 @@ yuno_in04,33,108,4 script Pisruik#qsk_al 4_M_ALCHE_D,{
mes "well as a few warnings about";
mes "the medicine's side effects.^000000";
next;
- set ALCHE_SK,11;
+ ALCHE_SK = 11;
getitem 7434,1; //Elemental_Create_Book
mes "[Pisruik]";
mes "Well, you should be";
@@ -1202,7 +1202,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "My name is...";
mes "" + strcharinfo(0) + ".";
next;
- set bioeth,13;
+ bioeth = 13;
skill "AM_BIOETHICS",1,0;
mes "[Kellasus]";
mes "Ah...";
@@ -1249,7 +1249,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "people. It's not like I can force you to forget once you know how";
mes "to make Homunculi, understand?";
next;
- set bioeth,12;
+ bioeth = 12;
mes "[Kellasus]";
mes "Please give me a little";
mes "time to prepare my lesson";
@@ -1258,7 +1258,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
close;
}
if (BaseJob == Job_Alchemist && bioeth == 10) {
- set bioeth,11;
+ bioeth = 11;
mes "[Kellasus]";
mes "^333333*Sigh*^000000";
mes "I'm so confused...";
@@ -1361,7 +1361,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "hope to someone's";
mes "hopeless situation...";
next;
- set bioeth,10;
+ bioeth = 10;
mes "[Kellasus]";
mes "I've never...";
mes "I never thought...";
@@ -1460,7 +1460,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "of what I believe to be an";
mes "abuse of the gift of life.";
next;
- set bioeth,8;
+ bioeth = 8;
mes "[Kellasus]";
mes "There's just so much";
mes "risk! I don't think I can";
@@ -1559,7 +1559,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "learn those skills. Yes, it's";
mes "true that I could teach you...";
next;
- set bioeth,4;
+ bioeth = 4;
mes "[Kellasus]";
mes "But I refuse to pass down";
mes "my knowledge of Homunculi";
@@ -1632,7 +1632,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "curiosity to reveal the unknown,^FFFFFF ^000000 may lead you on the path of the";
mes "Homunculus. For your own sake,^FFFFFF ^000000 don't bother considering the idea.";
next;
- set bioeth,3;
+ bioeth = 3;
mes "[Kellasus]";
mes "Remember that all life is";
mes "precious. If your motives";
@@ -1680,7 +1680,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "Philosophy must all be learned";
mes "by the competent Alchemist.";
next;
- set bioeth,2;
+ bioeth = 2;
mes "[Kellasus]";
mes "Once you've entered the";
mes "exciting vastness of Alchemy,";
@@ -1714,7 +1714,7 @@ lhz_in01,224,140,3 script Kellasus#qsk_al 1_M_LIBRARYMASTER,{
mes "Do not be so proud as to";
mes "seek out forbidden truths.";
next;
- set bioeth,1;
+ bioeth = 1;
mes "[Kellasus]";
mes "Good luck in your";
mes "studies, and I hope";
@@ -1828,7 +1828,7 @@ lhz_in01,225,122,5 script Skrajjad#qsk_al 4_M_SAGE_A,{
mes "so that he can teach you";
mes "the Call Homunculus skill.";
next;
- set bioeth,5;
+ bioeth = 5;
mes "[Skrajjad]";
mes "Good luck in";
mes "your studies";
@@ -1940,7 +1940,7 @@ lhz_in01,204,138,5 script Keshibien#qsk_al 4_M_ALCHE_C,{
mes "find him somewhere in town,";
mes "though I'm unsure where...";
next;
- set bioeth,6;
+ bioeth = 6;
mes "[Keshibien]";
mes "Anyway, it was really";
mes "nice to meet you. Hopefully,";
@@ -2031,7 +2031,7 @@ lhz_in02,278,273,3 script Broncher#qsk_al 4_M_SEAMAN,{
mes "Homunculus Resurrection.";
mes "But you still need Kellasus";
mes "to teach you the fundamentals.";
- set bioeth,7;
+ bioeth = 7;
next;
mes "[Broncher]";
mes "Without those basic";
@@ -2087,7 +2087,7 @@ lhz_in03,106,34,3 script Koring#qsk_al 4_M_KID1,{
mes "a while, I was really scared,";
mes "but my Daddy never gave up.";
next;
- if (bioeth == 8) set bioeth,9;
+ if (bioeth == 8) bioeth = 9;
mes "[Koring]";
mes "He might be a little";
mes "grumpy now, but my ";
diff --git a/npc/quests/skills/assassin_skills.txt b/npc/quests/skills/assassin_skills.txt
index d551b83bb..62fa55934 100644
--- a/npc/quests/skills/assassin_skills.txt
+++ b/npc/quests/skills/assassin_skills.txt
@@ -232,8 +232,8 @@ in_moc_16,14,27,5 script Assassin#realman 4_M_ACROSS,{
mes "of this skill, but for the most";
mes "part, you can use Venom";
mes "Knife pretty easily in battle.";
- set ASSN_SK2,1;
- set ASSN_SK,1;
+ ASSN_SK2 = 1;
+ ASSN_SK = 1;
skill "AS_VENOMKNIFE",1,0;
next;
mes "[Killtin]";
@@ -359,7 +359,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "Very well executed.";
mes "Good work, "+ strcharinfo(0) +".";
skill "AS_SONICACCEL",1,0;
- set ASSN_SK,7;
+ ASSN_SK = 7;
next;
mes "[Esmille]";
mes "Do you understand now?";
@@ -456,7 +456,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "Very well executed.";
mes "Good work, "+ strcharinfo(0) +".";
skill "AS_SONICACCEL",1,0;
- set ASSN_SK,7;
+ ASSN_SK = 7;
next;
mes "[Esmille]";
mes "Do you understand now?";
@@ -488,7 +488,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "to keep. In truth, I don't";
mes "really need any treasure, just^FFFFFF ^000000 some proof of your qualification.";
mes "It looks like you're ready for me^FFFFFF ^000000 to teach you Sonic Acceleration.";
- set ASSN_SK,6;
+ ASSN_SK = 6;
next;
mes "[Esmille]";
mes "Now, right before you";
@@ -539,7 +539,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "Very well executed.";
mes "Good work, "+ strcharinfo(0) +".";
skill 1003,1,0;
- set ASSN_SK,7;
+ ASSN_SK = 7;
next;
mes "[Esmille]";
mes "Do you understand now?";
@@ -662,7 +662,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "are there for precious";
mes "valuables. Consider this";
mes "a test of your strength.";
- set ASSN_SK,2;
+ ASSN_SK = 2;
next;
mes "[Esmille]";
mes "Whether you can complete";
@@ -678,7 +678,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "there for precious valuables.";
mes "Consider this excursion as";
mes "a test of your strength.";
- set ASSN_SK,3;
+ ASSN_SK = 3;
next;
mes "[Esmille]";
mes "Whether you can complete";
@@ -694,7 +694,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 4_F_ACROSS,{
mes "the bottom floor for precious";
mes "valuables^000000. Consider this as";
mes "a test of your strength.";
- set ASSN_SK,4;
+ ASSN_SK = 4;
next;
mes "[Esmille]";
mes "Whether you can complete";
@@ -842,7 +842,7 @@ OnTouch:
mes "that you pull out of the";
mes "coffin. You have obtained";
mes "a Sapphire for Esmille.^000000";
- set ASSN_SK,5;
+ ASSN_SK = 5;
getitem 726,1; //Blue_Jewel
close;
}
@@ -911,7 +911,7 @@ OnTouch:
mes "all gas in your lungs in time";
mes "to escape its effects. You've";
mes "retrieved a Ruby for Esmille.^000000";
- set ASSN_SK,5;
+ ASSN_SK = 5;
getitem 723,1; //Cardinal_Jewel
}
close;
@@ -981,7 +981,7 @@ OnTouch:
mes "before the water can";
mes "freeze you. You obtained";
mes "an Aquamarine for Esmille.^000000";
- set ASSN_SK,5;
+ ASSN_SK = 5;
getitem 720,1; //Skyblue_Jewel
}
close;
diff --git a/npc/quests/skills/bard_skills.txt b/npc/quests/skills/bard_skills.txt
index 012a9445f..06c3c8f07 100644
--- a/npc/quests/skills/bard_skills.txt
+++ b/npc/quests/skills/bard_skills.txt
@@ -202,7 +202,7 @@ prontera,174,328,3 script Young Man#bard_q1 4_M_ORIENT02,3,3,{
mes "stop you. Thankfully, nobody";
mes "has any idea of where he is~";
delitem 12112,1; //Tropical_Sograt
- set qskill_bard,1;
+ qskill_bard = 1;
}
else {
mes "[Timid Young Man]";
@@ -296,7 +296,7 @@ prontera,174,328,3 script Young Man#bard_q1 4_M_ORIENT02,3,3,{
mes "stop you. Thankfully, nobody";
mes "has any idea of where he is~";
delitem 12112,1; //Tropical_Sograt
- set qskill_bard,1;
+ qskill_bard = 1;
}
else {
mes "[Timid Young Man]";
@@ -488,7 +488,7 @@ morocc_in,169,72,7 script Spiteful-Looking Bard#bs 2_M_BARD_ORIENT,3,3,{
specialeffect2 EF_TALK_FROSTJOKE;
delitem 7277,1; //Munak_Doll
skill "BA_PANGVOICE",1,0;
- set qskill_bard,9;
+ qskill_bard = 9;
next;
mes "[Riott]";
mes "Remember, it doesn't matter";
@@ -570,7 +570,7 @@ morocc_in,169,72,7 script Spiteful-Looking Bard#bs 2_M_BARD_ORIENT,3,3,{
specialeffect2 EF_TALK_FROSTJOKE;
delitem 574,5; //Egg
skill 1010,1,0;
- set qskill_bard,9;
+ qskill_bard = 9;
next;
mes "[Riott]";
mes "Remember, it doesn't matter";
@@ -634,7 +634,7 @@ morocc_in,169,72,7 script Spiteful-Looking Bard#bs 2_M_BARD_ORIENT,3,3,{
mes "Bweh heh heh heh heh!";
delitem 574,countitem(574); //Egg
}
- set qskill_bard,8;
+ qskill_bard = 8;
close;
}
}
@@ -788,7 +788,7 @@ morocc_in,169,72,7 script Spiteful-Looking Bard#bs 2_M_BARD_ORIENT,3,3,{
mes "to come back here";
mes "and bring me back";
mes "^4D4DFF5 Yhelle's Eggs^000000, alright?";
- set qskill_bard,2;
+ qskill_bard = 2;
close;
}
mes "[Riott]";
@@ -1268,7 +1268,7 @@ function script F_BardSkillYhelle {
mes "^3355FFYou found ^3333331 Egg^3355FF in the";
mes "place where Yhelle the";
mes "Hen was roosting.^000000";
- set qskill_bard,qskill_bard+1;
+ ++qskill_bard;
getitem 574,1; //Egg
}
}
diff --git a/npc/quests/skills/blacksmith_skills.txt b/npc/quests/skills/blacksmith_skills.txt
index 4ec509b3b..dce9ff6f5 100644
--- a/npc/quests/skills/blacksmith_skills.txt
+++ b/npc/quests/skills/blacksmith_skills.txt
@@ -28,7 +28,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "zeny that we made the last time.^FFFFFF ^000000 Do you remember how to perform";
mes "Dubious Salesmanship? You";
mes "should be able to use it now...";
- set BLACK_SK,8;
+ BLACK_SK = 8;
skill "BS_UNFAIRLYTRICK",1,0;
close;
}
@@ -151,7 +151,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "I promise! This skill is sooo";
mes "useful! So just bring me those";
mes "materials soon, alright?";
- set BLACK_SK,1;
+ BLACK_SK = 1;
close;
}
mes "[Akkie]";
@@ -185,7 +185,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
delitem 971,1; //Detrimindexta
delitem 613,1; //Iron_Hammer
Zeny -= 500;
- set BLACK_SK,2;
+ BLACK_SK = 2;
close;
}
else {
@@ -264,7 +264,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "you for being so generous!";
mes "Just bring me ^FF00001 Steel^000000 and";
mes "^FF00003 Coals^000000 and we'll try again!";
- set BLACK_SK,3;
+ BLACK_SK = 3;
close;
}
else if (BLACK_SK == 3) {
@@ -278,7 +278,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "a minute to prepare...";
delitem 999,1; //Steel
delitem 1003,3; //Coal
- set BLACK_SK,4;
+ BLACK_SK = 4;
close;
}
else {
@@ -316,7 +316,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "really bring her a new";
mes "^FF0000Iron Hammer^333333, or else";
mes "I'll never learn this skill!)^000000";
- set BLACK_SK,5;
+ BLACK_SK = 5;
close;
}
else if (BLACK_SK == 5) {
@@ -334,7 +334,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "I'm going to try";
mes "one more time.";
delitem 613,1; //Iron_Hammer
- set BLACK_SK,6;
+ BLACK_SK = 6;
close;
}
else {
@@ -368,7 +368,7 @@ geffen,178,72,3 script Akkie#qsk_bs 4_F_JOB_BLACKSMITH,{
mes "is making this fake zeny. Watch";
mes "this... Isn't it easy? Of course, you can only use this in battle to";
mes "reduce Mammonite's zeny cost...";
- set BLACK_SK,7;
+ BLACK_SK = 7;
skill "BS_UNFAIRLYTRICK",1,0;
next;
mes "[Akkie]";
@@ -489,7 +489,7 @@ geffen,172,52,1 script Goodman#qsk_bs 4_M_DWARF,{
mes "jog the memories you require";
mes "to use this skill once again~";
skill "BS_GREED",1,0;
- set BLACK_SK2,3;
+ BLACK_SK2 = 3;
close;
}
else if (BLACK_SK2 == 3) {
@@ -549,7 +549,7 @@ geffen,172,52,1 script Goodman#qsk_bs 4_M_DWARF,{
mes "task, come back and";
mes "talk to me. Alright";
mes "then, good luck~";
- set BLACK_SK2,1;
+ BLACK_SK2 = 1;
close;
}
mes "[Goodman]";
@@ -607,7 +607,7 @@ geffen,172,52,1 script Goodman#qsk_bs 4_M_DWARF,{
mes "Don't forget that, and I hope";
mes "you craft true masterpieces.";
skill "BS_GREED",1,0;
- set BLACK_SK2,2;
+ BLACK_SK2 = 2;
close;
}
else {
diff --git a/npc/quests/skills/crusader_skills.txt b/npc/quests/skills/crusader_skills.txt
index 8b15136fe..327e9ca18 100644
--- a/npc/quests/skills/crusader_skills.txt
+++ b/npc/quests/skills/crusader_skills.txt
@@ -13,7 +13,7 @@
geffen,110,117,3 script Ford#11 4_M_CRU_OLD,{
if (BaseJob == Job_Crusader) {
- if (CRUS_SK == 8 && getskilllv("CR_SHRINK") == 0) {
+ if (CRUS_SK == 8 && getskilllv(CR_SHRINK) == 0) {
mes "[Ford]";
mes "Hey, it's been a while~";
mes "And you even managed to";
@@ -21,7 +21,7 @@ geffen,110,117,3 script Ford#11 4_M_CRU_OLD,{
mes "have forgotten how to perform";
mes "the Shrink skill, so I'll teach";
mes "it to you real quick... There!";
- set CRUS_SK,10;
+ CRUS_SK = 10;
skill "CR_SHRINK",1,0;
close;
}
@@ -100,7 +100,7 @@ geffen,110,117,3 script Ford#11 4_M_CRU_OLD,{
mes "stationed south of Geffen,";
mes "and deliver his report to me.";
mes "Your help is a great relief...";
- set CRUS_SK,1;
+ CRUS_SK = 1;
close;
case 2:
mes "[Ford]";
@@ -176,7 +176,7 @@ geffen,110,117,3 script Ford#11 4_M_CRU_OLD,{
mes "antidote for Goblin Poison.";
mes "If you don't hurry, it might";
mes "be too late for Sloutii--!";
- set CRUS_SK,4;
+ CRUS_SK = 4;
close;
}
else if (CRUS_SK == 4) {
@@ -352,7 +352,7 @@ gef_fild13,297,242,3 script Soldier#277 4_M_CRU,{
mes "give me his report. I better";
mes "bring him a Red Potion to";
mes "alleviate his suffering...)^000000";
- set CRUS_SK,2;
+ CRUS_SK = 2;
close;
}
else if (CRUS_SK == 2) {
@@ -383,7 +383,7 @@ gef_fild13,297,242,3 script Soldier#277 4_M_CRU,{
mes "pages are smudged with";
mes "the blood from his wound.^000000";
delitem 501,1; //Red_Potion
- set CRUS_SK,3;
+ CRUS_SK = 3;
close;
}
else {
@@ -461,7 +461,7 @@ gef_fild13,297,242,3 script Soldier#277 4_M_CRU,{
close;
}
else if (CRUS_SK == 7) {
- set .@rand,rand(1,5);
+ .@rand = rand(1,5);
if (.@rand == 1 || .@rand == 5) {
mes "^3355FFYou carefully pour the";
mes "Goblin poison antidote";
@@ -516,7 +516,7 @@ gef_fild13,297,242,3 script Soldier#277 4_M_CRU,{
mes "this ability to combat evil";
mes "and protect the weak. Ah, and";
mes "if I learn any new skills, I'll be sure to teach you right away.";
- set CRUS_SK,8;
+ CRUS_SK = 8;
skill "CR_SHRINK",1,0;
close;
}
@@ -534,7 +534,7 @@ gef_fild13,297,242,3 script Soldier#277 4_M_CRU,{
mes "from Father Arthur to Sloutii.";
mes "You've got to return to Father";
mes "Arthur and make another one.^000000";
- set CRUS_SK,9;
+ CRUS_SK = 9;
close;
}
else if (CRUS_SK == 8 || CRUS_SK == 10) {
@@ -645,7 +645,7 @@ prt_church,87,127,3 script Pastor#1011 4_M_SAGE_C,{
mes "^0000FF1 Unripe Apple^000000.";
mes "Now hurry, he won't";
mes "last long if he's poisoned!";
- set CRUS_SK,5;
+ CRUS_SK = 5;
close;
}
else if (CRUS_SK == 5) {
@@ -686,7 +686,7 @@ prt_church,87,127,3 script Pastor#1011 4_M_SAGE_C,{
delitem 1003,1; //Coal
delitem 7053,3; //Cyfar
delitem 713,3; //Empty_Bottle
- set CRUS_SK,6;
+ CRUS_SK = 6;
close;
}
else {
@@ -740,7 +740,7 @@ prt_church,87,127,3 script Pastor#1011 4_M_SAGE_C,{
mes "Here, take the";
mes "antidote. Now go!";
mes "Godspeed, adventurer!";
- set CRUS_SK,7;
+ CRUS_SK = 7;
close;
}
else if (CRUS_SK == 7) {
@@ -776,7 +776,7 @@ prt_church,87,127,3 script Pastor#1011 4_M_SAGE_C,{
mes "antidote and run as";
mes "fast as you can to";
mes "the wounded! Go!";
- set CRUS_SK,7;
+ CRUS_SK = 7;
close;
}
else if (CRUS_SK == 10) {
diff --git a/npc/quests/skills/dancer_skills.txt b/npc/quests/skills/dancer_skills.txt
index de72a6fe7..e8e348cc7 100644
--- a/npc/quests/skills/dancer_skills.txt
+++ b/npc/quests/skills/dancer_skills.txt
@@ -101,7 +101,7 @@ comodo,204,172,5 script Canell#qsk_dan01 4_F_07,{
mes "This tool is imperative";
mes "to the lesson, so fetch it";
mes "and bring it to me quickly!";
- set DANCER_SK,1;
+ DANCER_SK = 1;
close;
}
else if (DANCER_SK == 1) {
@@ -149,7 +149,7 @@ comodo,204,172,5 script Canell#qsk_dan01 4_F_07,{
mes "you've managed to avoid";
mes "becoming a prima donna.^000000";
delitem 747,1; //Crystal_Mirror
- set DANCER_SK,2;
+ DANCER_SK = 2;
close;
}
else {
@@ -190,7 +190,7 @@ comodo,204,172,5 script Canell#qsk_dan01 4_F_07,{
mes "^3355FFIt figures that she'd";
mes "keep your mirror.^000000";
emotion e_ag,1;
- set DANCER_SK,3;
+ DANCER_SK = 3;
close;
}
else if (DANCER_SK > 2 && DANCER_SK < 7) {
@@ -248,7 +248,7 @@ comodo,204,172,5 script Canell#qsk_dan01 4_F_07,{
mes "But she just hit you!";
mes "Lightly, of course, but";
mes "still, a smack is a smack.^000000";
- set DANCER_SK,8;
+ DANCER_SK = 8;
close;
}
else if (DANCER_SK == 8) {
@@ -313,7 +313,7 @@ comodo,204,172,5 script Canell#qsk_dan01 4_F_07,{
next;
mes "^3355FFYou have finally learned";
mes "the Charming Wink skill.^000000";
- set DANCER_SK,9;
+ DANCER_SK = 9;
specialeffect2 EF_ABSORBSPIRITS;
skill "DC_WINKCHARM",1,0;
close;
@@ -430,7 +430,7 @@ prontera,183,333,1 script Aelle#qsk_dan02 1_F_PRIEST,{
mes "So... You didn't come";
mes "here to buy these warps?";
mes "You sure you don't want any?";
- set DANCER_SK,4;
+ DANCER_SK = 4;
close;
}
else if (DANCER_SK == 4) {
@@ -485,7 +485,7 @@ prontera,183,333,1 script Aelle#qsk_dan02 1_F_PRIEST,{
mes "in the church know what";
mes "we're doing. I don't wanna";
mes "get in too much trouble!";
- set DANCER_SK,5;
+ DANCER_SK = 5;
close;
}
else if (DANCER_SK == 5) {
@@ -567,7 +567,7 @@ prontera,183,333,1 script Aelle#qsk_dan02 1_F_PRIEST,{
delitem 513,3; //Banana
delitem 538,5; //Well_Baked_Cookie
delitem 736,1; //White_Platter
- set DANCER_SK,6;
+ DANCER_SK = 6;
close;
}
else {
@@ -615,7 +615,7 @@ prontera,183,333,1 script Aelle#qsk_dan02 1_F_PRIEST,{
mes "G-go away. Talk to";
mes "Canell, my sister...";
mes "...ZzzzzZzZZZzzzZZ....";
- set DANCER_SK,7;
+ DANCER_SK = 7;
close2;
warp "prontera",156,272;
end;
diff --git a/npc/quests/skills/hunter_skills.txt b/npc/quests/skills/hunter_skills.txt
index d2c1a1204..b85aa3d42 100644
--- a/npc/quests/skills/hunter_skills.txt
+++ b/npc/quests/skills/hunter_skills.txt
@@ -210,7 +210,7 @@ pay_arche,109,169,3 script Arpesto 4_M_05,{
delitem 724,5; //Cardinal_Jewel_
delitem 7115,5; //Harpy's_Feather
delitem 537,30; //Pet_Food
- set qskill_hunter,100;
+ qskill_hunter = 100;
skill "HT_PHANTASMIC",1,0;
close;
} else {
@@ -233,7 +233,7 @@ pay_arche,109,169,3 script Arpesto 4_M_05,{
mes "was perfect. But next time, use";
mes "the skill on foes that deserve";
mes "to be beaten, alright? Good.";
- set qskill_hunter,100;
+ qskill_hunter = 100;
close;
}
if (BaseJob == Job_Hunter && JobLevel < 40) {
@@ -340,7 +340,7 @@ pay_arche,109,169,3 script Arpesto 4_M_05,{
mes ".........";
mes "......Riiiight.";
emotion e_dots,"Reidin Corse#tu";
- set qskill_hunter,1;
+ qskill_hunter = 1;
close;
case 2:
mes "[Arpesto]";
diff --git a/npc/quests/skills/knight_skills.txt b/npc/quests/skills/knight_skills.txt
index aca35e860..1162301ec 100644
--- a/npc/quests/skills/knight_skills.txt
+++ b/npc/quests/skills/knight_skills.txt
@@ -59,7 +59,7 @@ prt_in,85,99,3 script Knight#kabuto 4_M_JOB_KNIGHT2,{
mes "the cost of increased damage";
mes "is greater risk to yourself.";
mes "For now, it would be best to practice this skill on your own.";
- set KNGT_SK,10;
+ KNGT_SK = 10;
skill "KN_CHARGEATK",1,0;
next;
mes "[Essofeit]";
@@ -109,7 +109,7 @@ prt_in,85,99,3 script Knight#kabuto 4_M_JOB_KNIGHT2,{
mes "the cost of increased damage";
mes "is greater risk to yourself.";
mes "For now, it would be best to practice this skill on your own.";
- set KNGT_SK,9;
+ KNGT_SK = 9;
skill "KN_CHARGEATK",1,0;
next;
mes "[Essofeit]";
@@ -178,7 +178,7 @@ prt_in,85,99,3 script Knight#kabuto 4_M_JOB_KNIGHT2,{
mes "completed the preparations?";
delitem 530,5; //Candy_Striper
delitem 748,3; //Witherless_Rose
- set KNGT_SK,8;
+ KNGT_SK = 8;
close;
}
mes "[Essofeit]";
@@ -228,7 +228,7 @@ prt_in,85,99,3 script Knight#kabuto 4_M_JOB_KNIGHT2,{
mes "wonderful battles, that glorious camaraderie forged between";
mes "rivals... It's all in the past.";
next;
- set KNGT_SK,7;
+ KNGT_SK = 7;
mes "[Essofeit]";
mes "Maybe it's better that";
mes "I forget all about my old";
@@ -284,7 +284,7 @@ prt_in,85,99,3 script Knight#kabuto 4_M_JOB_KNIGHT2,{
mes "for yourself and speak to the";
mes "other Knights that are training. Hopefully, you will see what";
mes "I have seen for a long time...";
- set KNGT_SK,1;
+ KNGT_SK = 1;
close;
}
}
@@ -328,7 +328,7 @@ OnTouch:
mes "training. But as you listen";
mes "a little more closely, their";
mes "screams seem a bit dramatized.^000000";
- if (KNGT_SK == 1) set KNGT_SK,2;
+ if (KNGT_SK == 1) KNGT_SK = 2;
close;
}
mes "^3355FFThis group of Knights";
@@ -356,7 +356,7 @@ prontera,72,352,7 script Grand Master 4_M_JOB_KNIGHT1,{
mes "and make sure that you";
mes "don't pull a muscle.";
mes "Um, that's an order!";
- if (KNGT_SK == 2) set KNGT_SK,3;
+ if (KNGT_SK == 2) KNGT_SK = 3;
close;
}
mes "Put your backs into it,";
@@ -397,7 +397,7 @@ prontera,78,354,3 script Knight#zabii 4_M_JOB_KNIGHT2,{
mes "talkin' to me and let me";
mes "grunt like I've got a hernia.";
mes "Hooooo-AH! BWAH! HAI-YAH!";
- if (KNGT_SK == 3) set KNGT_SK,4;
+ if (KNGT_SK == 3) KNGT_SK = 4;
close;
}
mes "[A Knight]";
@@ -419,7 +419,7 @@ prontera,73,357,5 script Knight#drake 4_M_JOB_KNIGHT2,{
mes "necklace for my wife.";
mes "I just know she'll love it!";
next;
- if (KNGT_SK == 4) set KNGT_SK,5;
+ if (KNGT_SK == 4) KNGT_SK = 5;
mes "[Gon]";
mes "Let's see, how many";
mes "more days until payday?";
@@ -454,7 +454,7 @@ prontera,78,357,3 script Knight#sasword 4_M_JOB_KNIGHT2,{
mes "second rate, except maybe";
mes "for that one guy, Essofeit.";
next;
- set KNGT_SK,6;
+ KNGT_SK = 6;
mes "[Jiya]";
mes "As for me, I don't have too";
mes "much in the way of ambition.";
diff --git a/npc/quests/skills/merchant_skills.txt b/npc/quests/skills/merchant_skills.txt
index 592c6b9dd..dc34b89c9 100644
--- a/npc/quests/skills/merchant_skills.txt
+++ b/npc/quests/skills/merchant_skills.txt
@@ -356,7 +356,7 @@ alberta,119,221,6 script Charlron 1_M_PAY_ELDER,{
next;
switch (select("Hey~ that's why I came.:What's that?")) {
case 1:
- set .@care_random,rand(1,3);
+ .@care_random = rand(1,3);
if (.@care_random == 1) {
if ((countitem(533) > 1) && (countitem(998) > 19) && (countitem(938) > 29) && (countitem(601) > 19) && (countitem(962) > 4)) {
mes "[Gershaun]";
diff --git a/npc/quests/skills/monk_skills.txt b/npc/quests/skills/monk_skills.txt
index f4788e12d..6ba28164a 100644
--- a/npc/quests/skills/monk_skills.txt
+++ b/npc/quests/skills/monk_skills.txt
@@ -56,7 +56,7 @@ prt_monk,270,198,3 script Apprentice Monk#qsk_mo 4_M_MONK,{
mes "tap-tap-tap-tap-tap-tap-tap-tap- tap-tap-tap-tap-tap-tap-tap-tap-";
mes "tap-tap-tap-tap-tap-tap-tap-tap- tap-tap-tap-tap-tap-tap-tap-tap-";
mes "tap-tap-tap-tap-tap-tap* *POKE*^000000";
- set MONK_SK,7;
+ MONK_SK = 7;
skill "MO_KITRANSLATION",1,0;
skill "MO_BALKYOUNG",1,0;
next;
@@ -144,7 +144,7 @@ prt_monk,270,198,3 script Apprentice Monk#qsk_mo 4_M_MONK,{
mes "fighting may be necessary at";
mes "times, but it is a means to an";
mes "end, and not an end in itself.";
- set MONK_SK,3;
+ MONK_SK = 3;
skill "MO_KITRANSLATION",1,0;
next;
mes "[Monk]";
@@ -195,7 +195,7 @@ prt_monk,270,198,3 script Apprentice Monk#qsk_mo 4_M_MONK,{
mes "the skills I teach you for";
mes "peace and justice. Prove that";
mes "you are free from selfishness.";
- set MONK_SK,2;
+ MONK_SK = 2;
close;
}
}
@@ -249,7 +249,7 @@ monk_test,316,69,5 script Monk#qsk_mo 4_M_CHNMONK,{
mes "You should definitely be able";
mes "to do it since you've learned";
mes "Spiritual Endowment.";
- set MONK_SK,6;
+ MONK_SK = 6;
skill "MO_BALKYOUNG",1,0;
next;
mes "[Monk]";
@@ -278,7 +278,7 @@ monk_test,316,69,5 script Monk#qsk_mo 4_M_CHNMONK,{
mes "that I can finish preparations.";
delitem 905,20; //Stem
delitem 711,3; //Shoot
- set MONK_SK,5;
+ MONK_SK = 5;
close;
}
if (MONK_SK == 4) {
@@ -355,7 +355,7 @@ monk_test,316,69,5 script Monk#qsk_mo 4_M_CHNMONK,{
mes "if you do not first learn the";
mes "Spiritual Bestowment skill.";
mes "I wish you luck with that...";
- set MONK_SK,4;
+ MONK_SK = 4;
close;
}
if (MONK_SK == 1) {
@@ -411,7 +411,7 @@ monk_test,316,69,5 script Monk#qsk_mo 4_M_CHNMONK,{
mes "that he should popularize his";
mes "teaching of that skill, I must respect his decision. Still, you";
mes "may try talking to him if you wish to try to learn some new skills.";
- set MONK_SK,1;
+ MONK_SK = 1;
next;
mes "[Monk]";
mes "To find him, simply seek";
diff --git a/npc/quests/skills/novice_skills.txt b/npc/quests/skills/novice_skills.txt
index c7512b38b..4e688f639 100644
--- a/npc/quests/skills/novice_skills.txt
+++ b/npc/quests/skills/novice_skills.txt
@@ -76,7 +76,7 @@ prt_in,234,133,4 script Nami 1_F_01,{
mes "If you go and find these items, ";
mes "I will be happy to teach you this skill.";
mes "Well, I will be awaiting your return.";
- set skill_nov,1;
+ skill_nov = 1;
close;
case 1:
mes "[Nami]";
@@ -136,7 +136,7 @@ prt_in,234,133,4 script Nami 1_F_01,{
mes "Presto !!";
next;
skill "NV_FIRSTAID",1,0;
- set skill_nov,3;
+ skill_nov = 3;
mes "[Nami]";
mes "Yes yes, that's right!";
mes "Now that you have this";
@@ -282,7 +282,7 @@ prt_in,73,87,4 script Chivalry Member 1_M_YOUNGKNIGHT,{
mes "If you are late, you have to do it again! !";
mes "Now GO ! GO ! GO !";
mes "Run ~~~~~!!!!";
- set skill_nov, 4;
+ skill_nov = 4;
close;
case 4:
mes "[Bulma]";
@@ -310,7 +310,7 @@ prt_in,73,87,4 script Chivalry Member 1_M_YOUNGKNIGHT,{
mes "use this skill as you see fit.";
mes " ' Play Dead ' ";
mes "Okay okay, See you around ! ! !";
- set skill_nov,6;
+ skill_nov = 6;
delitem 7039,1; //Novice_Nametag
skill "NV_TRICKDEAD",1,0;
close;
@@ -330,7 +330,7 @@ prt_in,73,87,4 script Chivalry Member 1_M_YOUNGKNIGHT,{
mes "In order for you to have another chance,";
mes "you must start from the beginning. . .";
mes "Do it right this time ! ! ! !";
- set skill_nov,4;
+ skill_nov = 4;
close;
}
}
@@ -413,7 +413,7 @@ prt_castle,175,146,4 script Nursing Instructor 1_M_04,{
mes "go and get killed, be careful. -";
next;
mes "^3355FF- Got 1 Sterilized Bandages -^000000";
- set skill_nov,2;
+ skill_nov = 2;
close;
case 2:
mes "[Dread Lord]";
@@ -441,7 +441,7 @@ prt_castle,175,146,4 script Nursing Instructor 1_M_04,{
mes "-woosh - *storms away*";
next;
mes "^3355FF- Got 1 Newbie Tag -^000000";
- set skill_nov,5;
+ skill_nov = 5;
getitem 7039,1; //Novice_Nametag
close;
}
diff --git a/npc/quests/skills/priest_skills.txt b/npc/quests/skills/priest_skills.txt
index 68da2767e..cdea7b69b 100644
--- a/npc/quests/skills/priest_skills.txt
+++ b/npc/quests/skills/priest_skills.txt
@@ -59,7 +59,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
}
}
else if (PRIEST_SK == 0) {
- set redemp,1014;
+ redemp = 1014;
if (getskilllv("PR_REDEMPTIO")) {
mes "[Sister Linus]";
mes "I'll always be praying";
@@ -67,7 +67,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
mes "and I hope that you can bring";
mes "love and compassion to all";
mes "whom you meet in your travels.";
- set PRIEST_SK,100;
+ PRIEST_SK = 100;
close;
}
mes "[Sister Linus]";
@@ -209,7 +209,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
mes "happen to find her, please";
mes "let her know that I am";
mes "praying for her safety.";
- set PRIEST_SK,1;
+ PRIEST_SK = 1;
close;
}
else if (PRIEST_SK == 1) {
@@ -240,7 +240,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
mes "20 Blue Gemstones^000000";
mes "so you can attempt";
mes "to learn the skill.";
- set PRIEST_SK,2;
+ PRIEST_SK = 2;
next;
mes "[Sister Linus]";
mes "Um, but if you fail to";
@@ -283,17 +283,17 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
mes "strength to walk the path of";
mes "love and sacrifice. Redemptio!^000000";
next;
- set .@redem_s,JobLevel+getskilllv("ALL_RESURRECTION");
- set .@red_suc,rand(1,100);
+ .@redem_s = JobLevel+getskilllv("ALL_RESURRECTION");
+ .@red_suc = rand(1,100);
if( .@redem_s < 31 ) {
if( .@red_suc > 20 && .@red_suc < 41 )
- set .@success,1;
+ .@success = 1;
} else if( .@redem_s < 41 ) {
if( .@red_suc > 10 && .@red_suc < 41 )
- set .@success,1;
+ .@success = 1;
} else {
if( .@red_suc > 10 && .@red_suc < 51 )
- set .@success,1;
+ .@success = 1;
}
if (.@success) {
@@ -307,7 +307,7 @@ prt_church,111,112,1 script Sister Linus 1_F_PRIEST,{
mes "critical situations.";
delitem 717,20; //Blue_Gemstone
delitem 523,30; //Holy_Water
- set PRIEST_SK,100;
+ PRIEST_SK = 100;
skill "PR_REDEMPTIO",1,0;
close;
}
diff --git a/npc/quests/skills/rogue_skills.txt b/npc/quests/skills/rogue_skills.txt
index cde8fc2d9..0f553ffab 100644
--- a/npc/quests/skills/rogue_skills.txt
+++ b/npc/quests/skills/rogue_skills.txt
@@ -56,7 +56,7 @@ OnTouch:
specialeffect2 EF_CHANGECOLD;
specialeffect EF_CHANGEWIND;
specialeffect2 EF_LIGHTSPHERE;
- set ROG_SK,11;
+ ROG_SK = 11;
mes "[Killer]";
mes "Wh-what have";
mes "you done to me?!";
@@ -85,8 +85,8 @@ OnTouch:
mes "backward, it will be pale red.";
next;
setarray .@Effects[1],EF_CHANGECOLD,EF_CHANGEWIND,EF_CHANGEEARTH;
- for(set .@lim_1,0; .@lim_1<10; set .@lim_1,.@lim_1+1) {
- set .@move_1,rand(1,3);
+ for(.@lim_1 = 0; .@lim_1<10; ++.@lim_1) {
+ .@move_1 = rand(1,3);
specialeffect .@Effects[.@move_1];
if (select("Block him to the Left:Block him to the Right:Block his Retreat") == .@move_1) {
mes "^3355FFThe killer remains";
@@ -139,7 +139,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "Close Confine skill once again.";
specialeffect2 EF_LIGHTSPHERE;
skill 1005,1,0;
- set ROG_SK,13;
+ ROG_SK = 13;
close;
}
else if (ROG_SK == 13 && Upper == 1) {
@@ -238,7 +238,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "this letter to my youngest";
mes "son, ^FF0000Louis Greg^000000? Hurry,";
mes "there's not much time left!";
- set ROG_SK,2;
+ ROG_SK = 2;
close;
}
mes "[Haijara Greg]";
@@ -264,7 +264,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "this letter to my youngest";
mes "son, ^FF0000Louis Greg^000000? Hurry,";
mes "there's not much time left!";
- set ROG_SK,2;
+ ROG_SK = 2;
close;
}
mes "[Haijara Greg]";
@@ -304,7 +304,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "face in front of me again.";
mes "And just be happy that";
mes "I haven't killed you!";
- set ROG_SK,1;
+ ROG_SK = 1;
close;
}
else if (ROG_SK == 2) {
@@ -342,7 +342,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "a letter from Jay.";
mes "Good, good, let me";
mes "read what he has to say...";
- set ROG_SK,6;
+ ROG_SK = 6;
next;
mes "[Haijara Greg]";
mes "Ah, great news! He's";
@@ -410,7 +410,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "him steal that book!";
specialeffect EF_COMBOATTACK5;
donpcevent "Killer#Rogueguild::OnEnable";
- set ROG_SK,10;
+ ROG_SK = 10;
close;
}
else if (ROG_SK == 10) {
@@ -490,7 +490,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "I hope that you can learn";
mes "more about this skill through";
mes "practice, and that you become^FFFFFF ^000000 as great a legend as Chae Takbae.";
- set ROG_SK,12;
+ ROG_SK = 12;
skill 1005,1,0;
specialeffect2 EF_LIGHTSPHERE;
close;
@@ -502,7 +502,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 1_ETC_01,{
mes "Confine through diligent";
mes "practice. Good luck, and";
mes "thanks again for your help.";
- set ROG_SK,12;
+ ROG_SK = 12;
skill 1005,1,0;
specialeffect2 EF_LIGHTSPHERE;
close;
@@ -556,7 +556,7 @@ in_rogue,152,29,0 script Louis Greg#rogueguild 4_M_02,{
mes "room in the Rogue Guild, but";
mes "even I don't know where to find";
mes "it. I hope everything's okay...";
- set ROG_SK,1;
+ ROG_SK = 1;
close;
}
else if (ROG_SK == 1) {
@@ -576,7 +576,7 @@ in_rogue,152,29,0 script Louis Greg#rogueguild 4_M_02,{
mes "father? Oh, he must";
mes "be alright! Quick, let";
mes "me read it right away!";
- set ROG_SK,3;
+ ROG_SK = 3;
next;
mes "[Louis Greg]";
mes "Oh no, he may be safe for";
@@ -703,7 +703,7 @@ in_rogue,268,125,2 script Thor Greg#rogueguild 4_M_04,{
mes "didn't get to him. With";
mes "any luck, he's hidden in";
mes "the panic room, but still...";
- set ROG_SK,1;
+ ROG_SK = 1;
close;
}
else if (ROG_SK == 1) {
@@ -731,7 +731,7 @@ in_rogue,268,125,2 script Thor Greg#rogueguild 4_M_04,{
mes "What's this you're";
mes "giving me? A letter";
mes "from Louis? Let's see...";
- set ROG_SK,4;
+ ROG_SK = 4;
next;
mes "[Thor Greg]";
mes "Oh God, father's in";
@@ -822,7 +822,7 @@ in_rogue,268,125,2 script Thor Greg#rogueguild 4_M_04,{
mes "closely and make sure that you";
mes "predict and block her movements";
mes "to the left, right or backward.^FFFFFF ^000000 Get ready, I'm sending you now...";
- set ROG_SK,6;
+ ROG_SK = 6;
close2;
warp "in_rogue",89,114;
end;
@@ -842,7 +842,7 @@ in_rogue,268,125,2 script Thor Greg#rogueguild 4_M_04,{
mes "training. Congratulations!";
mes "Now, please speak to my";
mes "father so that he can explain^FFFFFF ^000000 the Close Confine skill in detail.";
- set ROG_SK,9;
+ ROG_SK = 9;
close;
}
else if (ROG_SK == 9) {
@@ -895,7 +895,7 @@ in_rogue,181,114,3 script Jay Greg#rogueguild 4_M_03,{
mes "room. Strangely, my brothers";
mes "and I can never find it and";
mes "figure out whether he's safe...";
- set ROG_SK,1;
+ ROG_SK = 1;
next;
mes "[Jay Greg]";
mes "Recently, he's been pursued";
@@ -940,7 +940,7 @@ in_rogue,181,114,3 script Jay Greg#rogueguild 4_M_03,{
mes "Ah, it's from Thor, so";
mes "I guess I better read";
mes "it right away. Hmmm...";
- set ROG_SK,5;
+ ROG_SK = 5;
next;
mes "[Jay Greg]";
mes "I see... I must report";
@@ -1175,10 +1175,10 @@ function script F_Kienna {
mes "going to move and block";
mes "me from moving, essentially";
mes "immobilizing me. Get ready~";
- set ROG_SK,7;
+ ROG_SK = 7;
next;
- for(set .@lim_1,0; .@lim_1<10; set .@lim_1,.@lim_1+1) {
- set .@move_1,rand(1,3);
+ for(.@lim_1 = 0; .@lim_1<10; ++.@lim_1) {
+ .@move_1 = rand(1,3);
if (select("Block her to the Left:Block her to the Right:Block her retreat") == .@move_1) {
mes "[Kienna]";
mes "Huh...?";
@@ -1186,7 +1186,7 @@ function script F_Kienna {
mes "Very nice work~";
specialeffect EF_POTION1;
specialeffect2 EF_POTION7;
- set .@suc_1,.@suc_1 + 1;
+ ++.@suc_1;
}
else {
mes "[Kienna]";
@@ -1251,7 +1251,7 @@ function script F_Kienna {
mes "you back to Thor Greg";
mes "now so that you can finish";
mes "learning ^FF0000Close Confine^000000.";
- set ROG_SK,8;
+ ROG_SK = 8;
disablenpc "Kienna#"+getarg(0);
donpcevent "#1st5min::OnDisable";
enablenpc "#1strecog";
@@ -1272,14 +1272,14 @@ function script F_Kienna {
if (select("Yes!:No, thanks.") == 1) {
disablenpc "Kienna#"+getarg(0);
donpcevent "#1stmove::OnEnable";
- set ROG_SK,6;
+ ROG_SK = 6;
warp "prt_are01",150,150;
end;
}
disablenpc "Kienna#"+getarg(0);
donpcevent "#1st5min::OnDisable";
enablenpc "#1strecog";
- set ROG_SK,6;
+ ROG_SK = 6;
donpcevent "Waiting Room#rogue10::OnEnable";
warp "in_rogue",264,124;
end;
@@ -1293,7 +1293,7 @@ function script F_Kienna {
mes "but you'll have to start";
mes "from the very beginning";
mes "of this training.";
- set ROG_SK,6;
+ ROG_SK = 6;
close2;
disablenpc "Kienna#"+getarg(0);
donpcevent "#1stmove::OnEnable";
diff --git a/npc/quests/skills/sage_skills.txt b/npc/quests/skills/sage_skills.txt
index 5f065a892..55fd0a824 100644
--- a/npc/quests/skills/sage_skills.txt
+++ b/npc/quests/skills/sage_skills.txt
@@ -36,8 +36,8 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
close;
}
if(SAG_SK == 100) {
- set .@Element, getskilllv("SA_ELEMENTFIRE") + getskilllv("SA_ELEMENTGROUND") + getskilllv("SA_ELEMENTWIND") + getskilllv("SA_ELEMENTWATER");
- set .@Convert, getskilllv("SA_CREATECON");
+ .@Element = getskilllv(SA_ELEMENTFIRE) + getskilllv(SA_ELEMENTGROUND) + getskilllv(SA_ELEMENTWIND) + getskilllv(SA_ELEMENTWATER);
+ .@Convert = getskilllv(SA_CREATECON);
if(.@Element && .@Convert) {
mes "[Mishuna]";
mes "If you have any Sage or";
@@ -83,7 +83,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
setarray .@skill[0],1018,1017,1019,1008;
setarray .@skill$[0],"Fire","Earth","Wind","Water";
while(1) {
- set .@i, select("Fire Elemental Change:Earth Elemental Change:Wind Elemental Change:Water Elemental Change")-1;
+ .@i = select("Fire Elemental Change:Earth Elemental Change:Wind Elemental Change:Water Elemental Change")-1;
if(getskilllv(.@ReqSkill[.@i]) == 0) {
mes "[Mishuna]";
mes "I'm sorry, but you haven't";
@@ -237,7 +237,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
mes "return. Remember that we";
mes "need these items to create";
mes "a converter so that you can^FFFFFF ^000000 learn the skill from my example...";
- set SAG_SK,1;
+ SAG_SK = 1;
close;
}
else if(SAG_SK == 1) {
@@ -313,7 +313,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
delitem 1013,12; // Rainbow_Shell
delitem 946,10; // Snail's_Shell
delitem 7433,4; // Blank_Scroll
- set SAG_SK,2;
+ SAG_SK = 2;
skill "SA_CREATECON",1,0;
next;
mes "[Mishuna]";
@@ -358,7 +358,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
setarray .@ReqItem$[0],"Red Bloods","Green Lives","Wind of Verdure","Crystal Blues";
setarray .@skill$[0],"Fire","Earth","Wind","Water";
while(1) {
- set .@i, select("Fire Elemental Change:Earth Elemental Change:Wind Elemental Change:Water Elemental Change")-1;
+ .@i = select("Fire Elemental Change:Earth Elemental Change:Wind Elemental Change:Water Elemental Change")-1;
if(getskilllv(.@ReqSkill[.@i]) == 0) {
mes "[Mishuna]";
mes "I'm sorry, but you have not";
@@ -380,7 +380,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
mes "^FF00001 Morroc Solution^000000. Please";
mes "return to me once you have";
mes "all the materials ready.";
- set SAG_SK, 10 * (.@i+1); //10,20,30,40
+ SAG_SK = 10 * (.@i+1); //10,20,30,40
close;
}
}
@@ -391,7 +391,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
mes "- I recalled ^ff0000Elemental Converter Creation skill^000000 While I talk to Mishuna! -";
next;
}
- set .@i, (SAG_SK/10) - 1;
+ .@i = (SAG_SK/10) - 1;
setarray .@ReqItem[0],990,993,992,991;
setarray .@ReqItem$[0],"Red Bloods","Green Lives","Wind of Verdure","Crystal Blues";
setarray .@skill[0],1018,1017,1019,1008;
@@ -449,7 +449,7 @@ yuno_in03,176,24,3 script Mischna 4_M_SAGE_C,{
delitem .@ReqItem[.@i],20;
delitem 1089,1; // Payon Potion
delitem 1088,1; // Morocc Potion
- set SAG_SK,100;
+ SAG_SK = 100;
skill .@skill[.@i],1,0;
next;
mes "[Mishuna]";
diff --git a/npc/quests/skills/swordman_skills.txt b/npc/quests/skills/swordman_skills.txt
index 8f57af3c4..c9b56f7d6 100644
--- a/npc/quests/skills/swordman_skills.txt
+++ b/npc/quests/skills/swordman_skills.txt
@@ -65,7 +65,7 @@ izlude_in,118,175,4 script Knight De Thomas 4W_M_02,{
mes "Don't you think it is pitiful that I have to stay in once place everyday, not being able to go outside?";
mes "Please, find me one...*sniffsniff*";
mes "If you don't...";
- set sm_movingrecovery_x,1;
+ sm_movingrecovery_x = 1;
mes "You won't get anything! Muahahaha.";
close;
case 2:
@@ -101,7 +101,7 @@ izlude_in,118,175,4 script Knight De Thomas 4W_M_02,{
delitem 713,200; //Empty_Bottle
delitem 1058,1; //Wing_Of_Moth
skill "SM_MOVINGRECOVERY",1,0;
- set sm_movingrecovery_x,2;
+ sm_movingrecovery_x = 2;
mes "[De Thomas]";
mes "There you go!";
mes "Try it yourself.";
diff --git a/npc/quests/skills/thief_skills.txt b/npc/quests/skills/thief_skills.txt
index 0f31c7c5e..277c5aaed 100644
--- a/npc/quests/skills/thief_skills.txt
+++ b/npc/quests/skills/thief_skills.txt
@@ -58,7 +58,7 @@ moc_prydb1,154,128,4 script Alcouskou 2_M_THIEFMASTER,{
mes "west Payon. That is where I";
mes "heard he is these days.";
delitem 7041,5; //Fine_Grit
- set skill_thief_1,1;
+ skill_thief_1 = 1;
close;
}
mes "[Alcouskou]";
@@ -468,7 +468,7 @@ payon,91,77,3 script Bag Seller 4W_M_03,{
delitem 952,1; //Cactus_Needle
delitem 1055,1; //Earthworm_Peeling
delitem 1025,1; //Spiderweb
- set skill_thief_1,2;
+ skill_thief_1 = 2;
getitem 7042,1; //Leather_Bag_Of_Infinity
close;
}
diff --git a/npc/quests/skills/wizard_skills.txt b/npc/quests/skills/wizard_skills.txt
index 9947c3ad0..3ada09290 100644
--- a/npc/quests/skills/wizard_skills.txt
+++ b/npc/quests/skills/wizard_skills.txt
@@ -171,7 +171,7 @@ gef_tower,115,36,4 script Meow#q_wiz 4_CAT,{
mes "Chivalry. Someone there should";
mes "be willing to teach you more";
mes "about Push Backs in skills...";
- set WIZ_SK,1;
+ WIZ_SK = 1;
close;
}
else if (WIZ_SK == 1) {
@@ -212,7 +212,7 @@ gef_tower,115,36,4 script Meow#q_wiz 4_CAT,{
mes "come back as soon as you";
mes "can. While you're out there,";
mes "I'm going to take another nap~";
- set WIZ_SK,3;
+ WIZ_SK = 3;
close;
}
else if (WIZ_SK == 3) {
@@ -292,7 +292,7 @@ gef_tower,115,36,4 script Meow#q_wiz 4_CAT,{
delitem 993,10; //Yellow_Live
delitem 990,10; //Boody_Red
delitem 992,10; //Wind_Of_Verdure
- set WIZ_SK,100;
+ WIZ_SK = 100;
skill "WZ_SIGHTBLASTER",1,0;
next;
mes "[Meow]";
@@ -417,7 +417,7 @@ prt_in,82,98,3 script Simon Mayace#q_wiz 1_ETC_01,{
mes "Concentrate and practice the";
mes "theory on your own, and you";
mes "should be able to do it. Good^FFFFFF ^000000luck on your travels, adventurer~";
- set WIZ_SK,2;
+ WIZ_SK = 2;
close;
}
else {
diff --git a/npc/quests/thana_quest.txt b/npc/quests/thana_quest.txt
index 408a200ce..ec925a6a7 100644
--- a/npc/quests/thana_quest.txt
+++ b/npc/quests/thana_quest.txt
@@ -392,7 +392,7 @@ L_Contract:
mes "to the 2nd Floor Guide.";
mes "Thank you, and welcome";
mes "to the Rekenber Corporation~";
- set thana_tower, 1;
+ thana_tower = 1;
close;
case 2:
mes "[Ditze]";
@@ -456,7 +456,7 @@ tha_t01,140,78,4 script Guide#reward 4_F_ZONDAGIRL,{
mes "of mission proof you brought?";
next;
setarray .@items[1],7435,7440,7441,7442;
- set .@i, select("Golden Ornament:Red Feather:Blue Feather:Cursed Seal");
+ .@i = select("Golden Ornament:Red Feather:Blue Feather:Cursed Seal");
mes "[Liei]";
if (!countitem(.@items[.@i])) {
mes "I'm sorry, but you are not";
@@ -473,8 +473,8 @@ tha_t01,140,78,4 script Guide#reward 4_F_ZONDAGIRL,{
mes "1,000 zeny";
//mes "2,000 EXP";
next;
- set .@zeny_tt,(countitem(.@items[.@i]) * 1000);
- //set .@exp_tt,(countitem(.@items[.@i]) * 2000);
+ .@zeny_tt = (countitem(.@items[.@i]) * 1000);
+ //.@exp_tt = (countitem(.@items[.@i]) * 2000);
mes "[Liei]";
mes countitem(.@items[.@i])+" "+getitemname(.@items[.@i])+"s, then";
mes "you will receive a total of...";
@@ -693,7 +693,7 @@ tha_t02,231,161,5 script Entrance Guide 4_M_ZONDAMAN,{
mes "I talked a lot.";
mes "Sorry, I am not supposed to talk about this case like this...";
mes "I've been quite concerned about it, that's all.";
- set thana_tower, 3;
+ thana_tower = 3;
close;
case 2:
mes "[Burled]";
@@ -809,7 +809,7 @@ tha_t02,231,161,5 script Entrance Guide 4_M_ZONDAMAN,{
mes " ";
mes "^4d4dffYou acquire one Old Violet Box,";
mes "as well as a little EXP.^000000";
- set thana_tower, 10;
+ thana_tower = 10;
completequest 7053;
getexp 120000,10000;
getitem 617,1; //Old_Violet_Box
@@ -863,7 +863,7 @@ L_Request:
mes "He seriously wants to know about it.";
mes "His hands are trembling now...";
mes "I nodd without answering.";
- set thana_tower, 4;
+ thana_tower = 4;
setquest 7048;
return;
}
@@ -998,7 +998,7 @@ L_Key:
next;
mes "That's all.";
mes "The letters fly away in the form of a red key...";
- set thana_tower, 5;
+ thana_tower = 5;
changequest 7048,7049;
specialeffect2 EF_COMBOATTACK1;
close;
@@ -1021,9 +1021,9 @@ tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
mes "once or use the number 0.";
next;
while (1) {
- set .@yagu100, rand(1,9);
- set .@yagu10, rand(1,9);
- set .@yagu1, rand(1,9);
+ .@yagu100 = rand(1,9);
+ .@yagu10 = rand(1,9);
+ .@yagu1 = rand(1,9);
if (((.@yagu100 != .@yagu10) && (.@yagu100 != .@yagu1)) && (.@yagu10 != .@yagu1))
break;
}
@@ -1039,8 +1039,8 @@ tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
mes "3 digit number.";
close;
}
- set .@input100, .@input / 100;
- set .@input10, (.@input % 100) / 10;
+ .@input100 = .@input / 100;
+ .@input10 = (.@input % 100) / 10;
if (((.@input100 > 0) && (.@input10 > 0)) && (.@input % 10 > 0)) {
if (((.@input100 != .@input10) && (.@input100 != .@input % 10)) && (.@input10 != .@input % 10))
break;
@@ -1053,7 +1053,7 @@ tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
next;
}
}
- set .@retry, .@retry + 1;
+ ++.@retry;
mes "[Screen]";
mes "You have input...";
mes "^0000ff" + .@input100 + "^000000, ^0000ff" + .@input10 + "^000000, ^0000ff" + (.@input % 10) + "^000000";
@@ -1061,14 +1061,14 @@ tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
mes "Calculating Results...";
mes "Please wait a moment...";
next;
- set .@strike, 0;
- set .@ball, 0;
- if (.@yagu100 == .@input100) set .@strike, .@strike + 1;
- if (.@yagu10 == .@input10) set .@strike, .@strike + 1;
- if (.@yagu1 == .@input % 10) set .@strike, .@strike + 1;
- if ((.@yagu100 == .@input10) || (.@yagu100 == .@input % 10)) set .@ball, .@ball + 1;
- if ((.@yagu10 == .@input100) || (.@yagu10 == .@input % 10)) set .@ball, .@ball + 1;
- if ((.@yagu1 == .@input100) || (.@yagu1 == .@input10)) set .@ball, .@ball + 1;
+ .@strike = 0;
+ .@ball = 0;
+ if (.@yagu100 == .@input100) .@strike += 1;
+ if (.@yagu10 == .@input10) .@strike += 1;
+ if (.@yagu1 == .@input % 10) .@strike += 1;
+ if ((.@yagu100 == .@input10) || (.@yagu100 == .@input % 10)) .@ball += 1;
+ if ((.@yagu10 == .@input100) || (.@yagu10 == .@input % 10)) .@ball += 1;
+ if ((.@yagu1 == .@input100) || (.@yagu1 == .@input10)) .@ball += 1;
if (.@strike == 3) {
mes "[Screen]";
mes "Input number accepted.";
@@ -1115,7 +1115,7 @@ tha_t04,195,195,0 script Rune Device#tt2 HIDDEN_NPC,3,3,{
mes "^b22222This tower set up for...^000000";
next;
mes "It suddenly shakes, then disappears.";
- set thana_tower, 6;
+ thana_tower = 6;
changequest 7049,7050;
specialeffect2 EF_COMBOATTACK1;
close;
@@ -1220,7 +1220,7 @@ tha_t05,62,179,0 script Brilliant Statue#tt3 HIDDEN_NPC,3,3,{
mes "The truth is..........^000000";
next;
mes "The illusion shakes, then melts on the surface of the key as light.";
- set thana_tower, 7;
+ thana_tower = 7;
changequest 7050,7051;
specialeffect2 EF_COMBOATTACK1;
close;
@@ -1270,11 +1270,11 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
mes "is still blank and deactivated.^000000";
close;
case 2:
- set .@small_1, 0;
- set .@small_2, 0;
- set .@big_1, 0;
- set .@big_2, 0;
- set .@big_3, 0;
+ .@small_1 = 0;
+ .@small_2 = 0;
+ .@big_1 = 0;
+ .@big_2 = 0;
+ .@big_3 = 0;
mes "^3355FFYou touch the wheels and";
mes "find that they are actually";
mes "moving very slowly. You note";
@@ -1302,17 +1302,17 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
switch(select("Raise Wheel:Lower Wheel:Press Wheel")) {
case 1:
mes "^EE0000*Choom*^000000";
- set .@small_1, 2;
+ .@small_1 = 2;
if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break;
continue;
case 2:
mes "^00B2EE*Sneeeep*^000000";
- set .@small_1, 1;
+ .@small_1 = 1;
if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break;
continue;
case 3:
mes "^5C246E*Mrreeem*^000000";
- set .@small_1, 3;
+ .@small_1 = 3;
if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break;
continue;
}
@@ -1321,17 +1321,17 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
switch(select("Raise Wheel:Lower Wheel:Press Wheel")) {
case 1:
mes "^5C246E*Mrreeem*^000000";
- set .@small_2, 3;
+ .@small_2 = 3;
if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break;
continue;
case 2:
mes "^EE0000*Choom*^000000";
- set .@small_2, 2;
+ .@small_2 = 2;
if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break;
continue;
case 3:
mes "^00B2EE*Sneeeep*^000000";
- set .@small_2, 1;
+ .@small_2 = 1;
if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break;
continue;
}
@@ -1340,17 +1340,17 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) {
case 1:
mes "^00B2EE*Sneeeep*^000000";
- set .@big_1, 1;
+ .@big_1 = 1;
if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break;
continue;
case 2:
mes "^5C246E*Mrreeem*^000000";
- set .@big_1, 3;
+ .@big_1 = 3;
if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break;
continue;
case 3:
mes "^EE0000*Choom*^000000";
- set .@big_1, 2;
+ .@big_1 = 2;
if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break;
continue;
}
@@ -1359,17 +1359,17 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) {
case 1:
mes "^EE0000*Choom*^000000";
- set .@big_2, 2;
+ .@big_2 = 2;
if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break;
continue;
case 2:
mes "^5C246E*Mrreeem*^000000";
- set .@big_2, 3;
+ .@big_2 = 3;
if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break;
continue;
case 3:
mes "^00B2EE*Sneeeep*^000000";
- set .@big_2, 1;
+ .@big_2 = 1;
if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break;
continue;
}
@@ -1378,17 +1378,17 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
switch(select("Raise Wheel:Lower Wheel:Vertically Shift Wheel")) {
case 1:
mes "^EE0000*Choom*^000000";
- set .@big_3, 2;
+ .@big_3 = 2;
if ((.@small_1 == 2) && (.@small_2 == 2) && (.@big_1 == 2) && (.@big_2 == 2) && (.@big_3 == 2)) break;
continue;
case 2:
mes "^00B2EE*Sneeeep*^000000";
- set .@big_3, 1;
+ .@big_3 = 1;
if ((.@small_1 == 1) && (.@small_2 == 1) && (.@big_1 == 1) && (.@big_2 == 1) && (.@big_3 == 1)) break;
continue;
case 3:
mes "^5C246E*Mrreeem*^000000";
- set .@big_3, 3;
+ .@big_3 = 3;
if ((.@small_1 == 3) && (.@small_2 == 3) && (.@big_1 == 3) && (.@big_2 == 3) && (.@big_3 == 3)) break;
continue;
}
@@ -1420,11 +1420,11 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
else mes "3rd Big Wheel: Moved";
continue;
case 7:
- set .@small_1, 0;
- set .@small_2, 0;
- set .@big_1, 0;
- set .@big_2, 0;
- set .@big_3, 0;
+ .@small_1 = 0;
+ .@small_2 = 0;
+ .@big_1 = 0;
+ .@big_2 = 0;
+ .@big_3 = 0;
continue;
}
break;
@@ -1487,7 +1487,7 @@ tha_t06,226,230,0 script Brilliant Statue#tt4 HIDDEN_NPC,3,3,{
next;
mes "The hallucination wobbles";
mes "and fades into the key.";
- set thana_tower, 8;
+ thana_tower = 8;
changequest 7051,7052;
specialeffect2 EF_BEGINSPELL6;
specialeffect2 EF_SPELLBREAKER;
@@ -1573,7 +1573,7 @@ tha_t06,204,181,0 script Splendid Sword#tt5 HIDDEN_NPC,3,3,{
next;
mes "^4d4dffYou decide to show the notebook and the keys to Burled.";
mes "You received Varmunt's Journal.^000000";
- set thana_tower, 9;
+ thana_tower = 9;
changequest 7052,7053;
getitem 11011,1; //Barmund_Note
close;
@@ -1804,7 +1804,7 @@ tha_t12,161,57,0 script Gold Religious Statue#tt HIDDEN_NPC,{
mes "After inserting the Yellow Charm Stone into the sword, the statue begins to react.";
specialeffect EF_BEGINSPELL5;
delitem 7427,1; //Magic_Gem_Yellow
- set $@thana_summon, 1;
+ $@thana_summon = 1;
donpcevent "#tteffect01::OnEnable";
mapannounce "tha_t12","The golden magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
close;
@@ -1834,7 +1834,7 @@ tha_t12,154,17,0 script Green Wiseman Statue#tt HIDDEN_NPC,{
mes "After inserting the Green Charm Stone into the wand, the statue begins to react.";
specialeffect EF_BEGINSPELL4;
delitem 7429,1; //Magic_Gem_Green
- set $@thana_summon, 2;
+ $@thana_summon = 2;
donpcevent "#tteffect02::OnEnable";
mapannounce "tha_t12","The green magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
close;
@@ -1864,7 +1864,7 @@ tha_t12,103,17,0 script Blue Angel Statue#tt HIDDEN_NPC,{
mes "After inserting the Blue Charm Stone into the belt, the statue begins to react.";
specialeffect EF_BEGINSPELL2;
delitem 7428,1; //Magic_Gem_Blue
- set $@thana_summon, 3;
+ $@thana_summon = 3;
donpcevent "#tteffect03::OnEnable";
mapannounce "tha_t12","The blue magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
close;
@@ -1894,7 +1894,7 @@ tha_t12,96,57,0 script Bloody Knight Statue#tt HIDDEN_NPC,{
mes "After inserting the Red Charm Stone into the armor, the statue begins to react.";
specialeffect EF_BEGINSPELL3;
delitem 7426,1; //Magic_Gem_Red
- set $@thana_summon, 4;
+ $@thana_summon = 4;
donpcevent "#tteffect04::OnEnable";
mapannounce "tha_t12","The red magic power has released part of the seal.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
close;
@@ -1924,7 +1924,7 @@ tha_t12,129,86,0 script Dark Devil Statue#tt HIDDEN_NPC,{
mes "After inserting the Red Charm Stone into the eye socket, the statue begins to react.";
specialeffect EF_BEGINSPELL7;
delitem 7430,1; //Magic_Gem_Black
- set $@thana_summon, 5;
+ $@thana_summon = 5;
donpcevent "#gateto_thanatos::OnEnable";
donpcevent "#tteffect01::OnStop";
donpcevent "#tteffect02::OnStop";
@@ -2055,7 +2055,7 @@ OnOn2:
initnpctimer;
end;
OnTouch:
- set .@touch,1;
+ .@touch = 1;
OnTimer6000:
if (($@thana_summon == 0) || ($@thana_summon == 6)) {
disablenpc "#gateto_thanatos";
@@ -2067,7 +2067,7 @@ OnTimer6000:
end;
OnTimer1000:
OnTimer5000:
- set .@pillar,1;
+ .@pillar = 1;
OnTimer3000:
specialeffect EF_BEGINSPELL7,AREA,"#tteffect05";
specialeffect EF_BEGINSPELL3,AREA,"#tteffect04";
@@ -2082,14 +2082,14 @@ thana_boss,217,167,3 script Memory Seal#tt1 G_THA_MAERO,3,3,{
end;
OnEnable:
hideoffnpc strnpcinfo(0);
- set .hide,0;
+ .hide = 0;
end;
OnDisable:
hideonnpc strnpcinfo(0);
- set .hide,0;
+ .hide = 0;
end;
OnTouch:
- set .@seal, atoi(charat(strnpcinfo(2),2));
+ .@seal = atoi(charat(strnpcinfo(2),2));
if (.hide & (1<<.@seal)) end;
// .@i: ItemID,MobID,MapX,MapY,EffectNum
@@ -2097,19 +2097,19 @@ OnTouch:
switch(.@seal) {
case 1:
setarray .@i[0],7437,1711,217,167,238;
- set .@j$,"Misery";
+ .@j$ = "Misery";
break;
case 2:
setarray .@i[0],7436,1712,202,75,102;
- set .@j$,"Agony";
+ .@j$ = "Agony";
break;
case 3:
setarray .@i[0],7438,1709,80,76,101;
- set .@j$,"Hatred";
+ .@j$ = "Hatred";
break;
case 4:
setarray .@i[0],7439,1710,62,171,100;
- set .@j$,"Despair";
+ .@j$ = "Despair";
break;
}
@@ -2125,7 +2125,7 @@ OnTouch:
mes "Surely I saw a familiar fragment before...";
next;
input .@inputstr$;
- set .@exact_tt$, "Fragment of "+.@j$;
+ .@exact_tt$ = "Fragment of "+.@j$;
if (countitem(.@i[0]) > 0 && .@exact_tt$ == .@inputstr$) {
mes "^3355FFYou insert the";
mes .@exact_tt$;
@@ -2133,15 +2133,15 @@ OnTouch:
mes "its glow to intensify.^000000";
close2;
hideonnpc strnpcinfo(0);
- set .hide, .hide | (1<<.@seal);
+ .hide |= (1<<.@seal);
delitem .@i[0],1;
specialeffect .@i[4];
monster "thana_boss",.@i[2],.@i[3],.@j$,.@i[1],1,strnpcinfo(0)+"::OnMyMobDead";
switch($@thana_summon2) {
- case 0: set .@str$,"... who... released... the... Memory... of... "+.@j$+"...?"; break;
- case 1: set .@str$,"... why... did you... release... the... Memory... of... "+.@j$+"...?"; break;
- case 2: set .@str$,"... ugh... stop it... the Memory of "+.@j$+"..."; break;
- default: set .@str$,"... finally... you released the last piece of Memory..."; break;
+ case 0: .@str$ = "... who... released... the... Memory... of... "+.@j$+"...?"; break;
+ case 1: .@str$ = "... why... did you... release... the... Memory... of... "+.@j$+"...?"; break;
+ case 2: .@str$ = "... ugh... stop it... the Memory of "+.@j$+"..."; break;
+ default: .@str$ = "... finally... you released the last piece of Memory..."; break;
}
mapannounce "thana_boss",.@str$,bc_map,"0x7b68ee"; //FW_NORMAL 12 0 0
end;
@@ -2152,7 +2152,7 @@ OnTouch:
close;
OnMyMobDead:
- set $@thana_summon2, $@thana_summon2+1;
+ ++$@thana_summon2;
if ($@thana_summon2 == 4)
mapwarp "thana_boss","thana_boss",141,228;
end;
@@ -2195,7 +2195,7 @@ OnTimer16000:
mapannounce "thana_boss","Thanatos : Come, be the first to fall before my might!",bc_map,"0xff0000"; //FW_NORMAL 12 0 0
donpcevent "Memory Seal#tt5::OnDisable";
donpcevent "#sommon_thanatos::OnEnable";
- set $@thana_summon2, 5;
+ $@thana_summon2 = 5;
stopnpctimer;
end;
}
@@ -2224,7 +2224,7 @@ OnMyMobDead:
if (mobcount("thana_boss","#sommon_thanatos::OnMyMobDead") < 1) {
mapannounce "thana_boss","RAWWWWWWWWWWR........ This can't be.........................",bc_map,"0xff0000"; //FW_NORMAL 12 0 0
donpcevent "#cooltime_thana::OnEnable";
- set $@thana_summon, 6;
+ $@thana_summon = 6;
}
end;
}
@@ -2232,8 +2232,8 @@ OnMyMobDead:
thana_boss,1,1,0 script #cooltime_thana CLEAR_NPC,{
end;
OnInit:
- set $@thana_summon, 0;
- set $@thana_summon2, 0;
+ $@thana_summon = 0;
+ $@thana_summon2 = 0;
end;
OnEnable:
initnpctimer;
@@ -2273,8 +2273,8 @@ OnTimer37000:
mapwarp "thana_boss","tha_t12",130,52;
end;
OnTimer7200000:
- set $@thana_summon, 0;
- set $@thana_summon2, 0;
+ $@thana_summon = 0;
+ $@thana_summon2 = 0;
donpcevent "Memory Seal#tt1::OnEnable";
donpcevent "Memory Seal#tt2::OnEnable";
donpcevent "Memory Seal#tt3::OnEnable";
diff --git a/npc/quests/the_sign_quest.txt b/npc/quests/the_sign_quest.txt
index f58fd574d..be630c202 100644
--- a/npc/quests/the_sign_quest.txt
+++ b/npc/quests/the_sign_quest.txt
@@ -46,7 +46,7 @@
next;
cutin "sign_03",255;
cutin "sign_04",4;
- if (!sign_q) set sign_q,1;
+ if (!sign_q) sign_q = 1;
mes "^3355FFClose^000000";
close2;
cutin "sign_04",255;
@@ -54,12 +54,11 @@
OnInit:
// Remove old depreciated settings.
- set $signbmps,0;
- set $signmazemonster,0;
-
+ $signbmps = 0;
+ $signmazemonster = 0;
// Set the time zone of the server.
// - Not official but seemed like a nice way to handle it.
- set $timezonestring$,"^FF0000GMT^000000";
+ $timezonestring$ = "^FF0000GMT^000000";
end;
}
@@ -108,7 +107,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "me your name? "+ strcharinfo(0) +"?";
mes "Okay then, I'll remember that.";
mes "Talk to you later, alright?";
- set sign_q,2;
+ sign_q = 2;
break;
}
case 2:
@@ -154,7 +153,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "unless he knows them or";
mes "receives a message from me.";
mes "So if he's snubbed you in the past, just understand that's his way.";
- set sign_q,3;
+ sign_q = 3;
break;
case 3:
mes "Hm...?";
@@ -290,7 +289,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "skill for this task. Once";
mes "know right away. For now,";
mes "please hold on to these pieces.";
- set sign_q,54;
+ sign_q = 54;
getitem 7177,1; //Part_Of_Star's_Sob
}
else if (sign_q == 54) {
@@ -363,7 +362,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "Tower. There's someone I know";
mes "there who might just be up for";
mes "this task...";
- set sign_q,72;
+ sign_q = 72;
}
else if (sign_q == 72) {
mes "Now that the";
@@ -441,7 +440,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "where he devotes his time";
mes "to his research. He may not";
mes "always be home though...";
- set sign_q,77;
+ sign_q = 77;
next;
break;
case 3:
@@ -553,81 +552,81 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "Please let me handle";
mes "this and come back later~";
delitem 7314,1; //The_Sign
- set sign_q,138;
- set .@stime_s,gettime(3);
- if (.@stime_s < 1) set sign_sq,1;
- else if (.@stime_s < 3) set sign_sq,2;
- else if (.@stime_s < 5) set sign_sq,3;
- else if (.@stime_s < 7) set sign_sq,4;
- else if (.@stime_s < 9) set sign_sq,5;
- else if (.@stime_s < 11) set sign_sq,6;
- else if (.@stime_s < 13) set sign_sq,7;
- else if (.@stime_s < 15) set sign_sq,8;
- else if (.@stime_s < 17) set sign_sq,9;
- else if (.@stime_s < 19) set sign_sq,10;
- else if (.@stime_s < 21) set sign_sq,11;
- else set sign_sq,12;
+ sign_q = 138;
+ .@stime_s = gettime(3);
+ if (.@stime_s < 1) sign_sq = 1;
+ else if (.@stime_s < 3) sign_sq = 2;
+ else if (.@stime_s < 5) sign_sq = 3;
+ else if (.@stime_s < 7) sign_sq = 4;
+ else if (.@stime_s < 9) sign_sq = 5;
+ else if (.@stime_s < 11) sign_sq = 6;
+ else if (.@stime_s < 13) sign_sq = 7;
+ else if (.@stime_s < 15) sign_sq = 8;
+ else if (.@stime_s < 17) sign_sq = 9;
+ else if (.@stime_s < 19) sign_sq = 10;
+ else if (.@stime_s < 21) sign_sq = 11;
+ else sign_sq = 12;
}
else if (sign_q == 138) {
- set .@stime_s1,gettime(3);
+ .@stime_s1 = gettime(3);
if (.@stime_s1 < 1) {
if (sign_sq == 11) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 3) {
if (sign_sq == 12) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 5) {
if (sign_sq == 1) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 7) {
if (sign_sq == 2) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 9) {
if (sign_sq == 3) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 11) {
if (sign_sq == 4) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 13) {
if (sign_sq == 5) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 15) {
if (sign_sq == 6) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 17) {
if (sign_sq == 7) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 19) {
if (sign_sq == 8) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else if (.@stime_s1 < 21) {
if (sign_sq == 9) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
else {
if (sign_sq == 10) {
- set .@pass_s,1;
+ .@pass_s = 1;
}
}
if (.@pass_s == 1) {
@@ -657,8 +656,8 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "this: Engel Howard,";
mes "Rune-Midgard's best";
mes "Blacksmith.";
- set sign_q,139;
- set sign_sq,0;
+ sign_q = 139;
+ sign_sq = 0;
getitem 7314,1; //The_Sign
}
else {
@@ -694,7 +693,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
mes "[Metz]";
mes "You may have had your doubts,";
mes "but I'm happy enough to confirm that the Sign really exists. Thanks again, and I hope you stop by and chat from time to time.";
- set sign_q,142;
+ sign_q = 142;
getexp (checkre(3))?200000:2000000,0;
}
else {
@@ -727,7 +726,7 @@ prt_in,227,45,0 script Archeologist#sign 1_M_SIGN1,{
close;
}
delitem 7178,1; //Star's_Sob
- set sign_q,202;
+ sign_q = 202;
getexp (checkre(3))?10000:100000,0;
getitem 617,1; //Old_Violet_Box
}
@@ -1262,7 +1261,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "Bring that and I'll";
mes "tell you what to";
mes "bring next.";
- set sign_q,4;
+ sign_q = 4;
close;
case 3:
mes "[Arian]";
@@ -1312,7 +1311,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "Alright, that looks like";
mes "enough Fluff. Now, go and";
mes "get me ^FF000050 Poison Spores^000000.";
- set sign_q,5;
+ sign_q = 5;
close;
case 5:
mes "[Arian]";
@@ -1343,7 +1342,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "got here with those";
mes "Poison Spores. Now, go";
mes "and get ^FF000030 Scorpion Tails^000000.";
- set sign_q,6;
+ sign_q = 6;
close;
case 6:
mes "[Arian]";
@@ -1371,7 +1370,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "sweet time bringing over this";
mes "over this crap. Okay, now bring";
mes "^FF000020 Rotten Bandages^000000.";
- set sign_q,7;
+ sign_q = 7;
close;
case 7:
mes "[Arian]";
@@ -1397,7 +1396,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "me ^FF000015 Little Evil Horn^000000. What";
mes "are you waiting for, a memo?";
mes "Get outta here~!";
- set sign_q,8;
+ sign_q = 8;
close;
case 8:
mes "[Arian]";
@@ -1427,7 +1426,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "it tookyou to come back.";
mes "Now hurry it up and get";
mes "me ^FF000010 Coral Reefs^000000!";
- set sign_q,9;
+ sign_q = 9;
close;
case 9:
mes "[Arian]";
@@ -1449,7 +1448,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "sure you're not trying to";
mes "cheat. God help you if you";
mes "try to pull a fast one on me...!";
- set sign_q,10;
+ sign_q = 10;
close;
case 10:
mes "[Arian]";
@@ -1458,7 +1457,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "to the guy to my left.";
mes "The dude at the counter.";
mes "What's-his-face, Ganaan.";
- set sign_q,11;
+ sign_q = 11;
close;
case 11:
mes "[Arian]";
@@ -1488,7 +1487,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
mes "You're givin' Ganaan";
mes "a hard time. You hear";
mes "me? That's my job!";
- set sign_q,11;
+ sign_q = 11;
close;
case 13:
mes "[Arian]";
@@ -1509,7 +1508,7 @@ morocc_in,115,154,5 script Rogue#sign 1_M_SIGNROGUE,{
else if (BaseLevel < 90) getexp 13000,0;
else getexp 18000,0;
}
- set sign_q,14;
+ sign_q = 14;
getitem 7177,1; //Part_Of_Star's_Sob
close;
case 14:
@@ -1571,16 +1570,16 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
next;
switch(select("Look for fresh water.:Just wait for rescue.:Forage for food.:Explore the island.")) {
case 1:
- set .@point_s,.@point_s+7;
+ .@point_s += 7;
break;
case 2:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
case 3:
- set .@point_s,.@point_s+4;
+ .@point_s += 4;
break;
case 4:
- set .@point_s,.@point_s+10;
+ .@point_s += 10;
break;
}
mes "[Gaanan]";
@@ -1592,16 +1591,16 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
next;
switch(select("Scream for help.:Stay quiet.:Wait for death to come.:Find a way out.")) {
case 1:
- set .@point_s,.@point_s+3;
+ .@point_s += 3;
break;
case 2:
- set .@point_s,.@point_s+7;
+ .@point_s += 7;
break;
case 3:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
case 4:
- set .@point_s,.@point_s+7;
+ .@point_s += 7;
break;
}
mes "[Gaanan]";
@@ -1615,13 +1614,13 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
case 1:
break;
case 2:
- set .@point_s,.@point_s+5;
+ .@point_s += 5;
break;
case 3:
- set .@point_s,.@point_s+10;
+ .@point_s += 10;
break;
case 4:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
}
mes "[Ganaan]";
@@ -1632,19 +1631,19 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
next;
switch(select("Wait for the case to get solved.:Try to find my friends first.:Find a way out.:Solve the murder case on my own.:Kill the others before they kill me.")) {
case 1:
- set .@point_s,.@point_s+5;
+ .@point_s += 5;
break;
case 2:
- set .@point_s,.@point_s+7;
+ .@point_s += 7;
break;
case 3:
- set .@point_s,.@point_s+3;
+ .@point_s += 3;
break;
case 4:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
case 5:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
}
mes "[Gaanan]";
@@ -1656,19 +1655,19 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
next;
switch(select("Wait to see the end.:Plant an apple tree.:Look to move to a different world.:What else? Save the world.:What else? Go on a crime spree.")) {
case 1:
- set .@point_s,.@point_s+5;
+ .@point_s += 5;
break;
case 2:
- set .@point_s,.@point_s+3;
+ .@point_s += 3;
break;
case 3:
- set .@point_s,.@point_s+7;
+ .@point_s += 7;
break;
case 4:
- set .@point_s,.@point_s+10;
+ .@point_s += 10;
break;
case 5:
- set .@point_s,.@point_s+1;
+ .@point_s += 1;
break;
}
mes "[Gaanan]";
@@ -1678,8 +1677,8 @@ morocc_in,114,162,4 script Young Man#sign 2_M_THIEFMASTER,{
mes "Sooo... Talk to him and";
mes "he'll let you know how";
mes "you did.";
- if (.@point_s > 33) set sign_q,13;
- else set sign_q,12;
+ if (.@point_s > 33) sign_q = 13;
+ else sign_q = 12;
close;
}
else if (sign_q < 14) {
@@ -1895,7 +1894,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
}
next;
if (countitem(7177) > 0) {
- set .@pay_point,1;
+ .@pay_point = 1;
mes "["+ strcharinfo(0) +"]";
mes "Sure...";
mes "But first, would you";
@@ -1937,7 +1936,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
switch(select("It's handy.:I actually don't know...")) {
case 1:
- set .@pay_point,.@pay_point+2;
+ .@pay_point += 2;
mes "[Daewoon]";
emotion e_dots;
mes "Mmm...?";
@@ -1948,7 +1947,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 2:
- set .@pay_point,.@pay_point+4;
+ .@pay_point += 4;
emotion e_pif;
mes "[Daewoon]";
mes "Really?";
@@ -1969,7 +1968,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 3:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
mes "[Daewoon]";
mes "Didn't Arian tell you";
mes "anything? I appreciate";
@@ -2002,7 +2001,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
switch(select("I'M READY! YEEAH!:I'll do my best!:To hell with this!:Fine. Let's get it over with.")) {
case 1:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
mes "[Daewoon]";
mes "Ooh~";
mes "Such unbridled";
@@ -2011,7 +2010,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 2:
- set .@pay_point,.@pay_point+7;
+ .@pay_point += 7;
emotion e_ok;
mes "[Daewoon]";
mes "Mwah ah hah!";
@@ -2024,7 +2023,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
break;
case 3:
emotion e_an;
- set .@pay_point,.@pay_point+2;
+ .@pay_point += 2;
mes "[Daewoon]";
mes "E...";
mes "Excuse me?";
@@ -2041,7 +2040,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 4:
- set .@pay_point,.@pay_point+4;
+ .@pay_point += 4;
emotion e_dots;
mes "[Daewoon]";
mes "Hmm. That kind of half-hearted";
@@ -2065,7 +2064,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
switch(select("Yes, I do.:I prefer soloing.:I am lonely.")) {
case 1:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
emotion e_omg;
mes "[Daewoon]";
mes "Oh, that's great~!";
@@ -2084,7 +2083,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 2:
- set .@pay_point,.@pay_point+4;
+ .@pay_point += 4;
mes "[Daewoon]";
mes "Well, everybody";
mes "needs to be alone once";
@@ -2102,7 +2101,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 3:
- set .@pay_point,.@pay_point+3;
+ .@pay_point += 3;
mes "[Daewoon]";
mes "You don't have any";
mes "friends at all? Well,";
@@ -2140,7 +2139,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 2:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
mes "[Daewoon]";
mes "Really?";
mes "I do too!";
@@ -2166,7 +2165,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
break;
case 3:
- set .@pay_point,.@pay_point+3;
+ .@pay_point += 3;
mes "[Daewoon]";
mes "At least you're honest.";
mes "But let me say that I cannot";
@@ -2216,7 +2215,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
switch(select("Destroy it!:I can't destroy such beauty...:I'd close my eyes, then destroy it.")) {
case 1:
- set .@pay_point,.@pay_point+3;
+ .@pay_point += 3;
mes "[Daewoon]";
mes "Hmm. You have a truly";
mes "strong will. Then again,";
@@ -2233,13 +2232,13 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
}
break;
case 2:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
mes "[Daewoon]";
mes "Ah yes! I felt you would answer that way! We must cherish and protect what is beautiful in this world. I would never be able to harm a Priestess, even in";
mes "statue form...";
break;
case 3:
- set .@pay_point,.@pay_point+6;
+ .@pay_point += 6;
mes "[Daewoon]";
mes "Interesting...!";
mes "Although you cherish";
@@ -2276,14 +2275,14 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
next;
switch(select("Yes, of course!:I'd pretend not to hear anything.:I'd make fun of him, then run off.")) {
case 1:
- set .@pay_point,.@pay_point+6;
+ .@pay_point += 6;
mes "[Daewoon]";
mes "Ah, you would help him!";
mes "Good, good. I'm glad to see";
mes "that you understand that such pettiness should not get in the way of doing what is good and right.";
break;
case 2:
- set .@pay_point,.@pay_point+5;
+ .@pay_point += 5;
mes "[Daewoon]";
mes "True, you're not really";
mes "obligated to help your";
@@ -2293,7 +2292,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
mes "depend on his rival for help.";
break;
case 3:
- set .@pay_point,.@pay_point+4;
+ .@pay_point += 4;
mes "[Daewoon]";
mes "Even though he is";
mes "your enemy, I still";
@@ -2364,7 +2363,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
break;
}
if (.@pay_point > 29) {
- set sign_q,15;
+ sign_q = 15;
getitem 7177,1; //Part_Of_Star's_Sob
if (checkre(3)) {
if (BaseLevel < 60) getexp 300,0;
@@ -2408,7 +2407,7 @@ payon_in03,11,31,4 script Daewoon#sign 1_M_SIGNMONK2,{
close;
}
else if ((.@pay_point > 26) && (.@pay_point < 30)) {
- set sign_q,15;
+ sign_q = 15;
getitem 7177,1; //Part_Of_Star's_Sob
if (checkre(3)) {
if (BaseLevel < 60) getexp 300,0;
@@ -2659,7 +2658,7 @@ aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
mes "five hours part that's";
mes "hard. Now, let's see...";
next;
- set sign_q,16;
+ sign_q = 16;
mes "[Sir Jore]";
mes "Just bring me";
mes "10 Empty Test Tubes,";
@@ -2699,7 +2698,7 @@ aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
delitem 1092,10; //Empty_Cylinder
delitem 610,2; //Leaf_Of_Yggdrasil
delitem 511,10; //Green_Herb
- set sign_q,17;
+ sign_q = 17;
emotion e_thx;
mes "[Sir Jore]";
mes "Ah! Th-thank you for";
@@ -2722,7 +2721,7 @@ aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
mes "feeling that I need it to bring";
mes "my Biology research to the next step. This is how you'll help me.";
next;
- set sign_q,17;
+ sign_q = 17;
mes "[Sir Jore]";
mes "I need you to investigate";
mes "this Stone of Sage by finding";
@@ -2809,7 +2808,7 @@ aldeba_in,155,101,3 script Sir Jore#sign 1_M_SIGNALCHE,7,7,{
mes "Still, I'm so ashamed of";
mes "relying on a rumor...";
next;
- set sign_q,20;
+ sign_q = 20;
getitem 7177,1; //Part_Of_Star's_Sob
mes "[Sir Jore]";
mes "Thank you very much";
@@ -3064,7 +3063,7 @@ prt_maze02,57,151,1 script Pleur#warp 4_F_02,{
mes "to follow her and see if you can";
mes "learn more.^000000";
close2;
- set .@warp_s,rand(1,10);
+ .@warp_s = rand(1,10);
if (.@warp_s < 5) warp "prt_maze02",11,146;
if (.@warp_s > 7) warp "prt_maze03",55,8;
if ((.@warp_s > 4) && (.@warp_s < 8)) warp "prt_maze01",62,129;
@@ -3079,7 +3078,7 @@ OnTouch:
mes "to follow her and see if you can";
mes "learn more.^000000";
close2;
- set .@warp_s,rand(1,10);
+ .@warp_s = rand(1,10);
if (.@warp_s < 5) warp "prt_maze02",11,146;
if (.@warp_s > 7) warp "prt_maze03",55,8;
if ((.@warp_s > 4) && (.@warp_s < 8)) warp "prt_maze01",62,129;
@@ -3180,7 +3179,7 @@ prt_maze02,14,183,4 script Gordon#sign 1_M_BARD,{
next;
switch(select("Roar~!:Excuse me.")) {
case 1:
- set sign_q,18;
+ sign_q = 18;
donpcevent "#skill::OnEnable";
emotion e_omg;
donpcevent "Pleur#sign::OnOMG";
@@ -3218,7 +3217,7 @@ prt_maze02,14,183,4 script Gordon#sign 1_M_BARD,{
next;
switch(select("Ask about Stone of Sage:Ask about Alchemy:Quit")) {
case 1:
- set sign_q,19;
+ sign_q = 19;
mes "[Gordon]";
mes "Stone of Sage?";
mes "Huh. To be honest,";
@@ -3324,7 +3323,7 @@ prt_maze02,14,183,4 script Gordon#sign 1_M_BARD,{
next;
switch(select("Ask about Stone of Sage:Ask about Alchemy:Quit")) {
case 1:
- set sign_q,19;
+ sign_q = 19;
mes "[Gordon]";
mes "Stone of Sage?";
mes "Huh. To be honest,";
@@ -3555,7 +3554,7 @@ geffen_in,59,74,4 script Jesqurienne#sign 1_F_SIGNZISK,{
mes "I believe I can be";
mes "of assistance.";
next;
- set sign_q,21;
+ sign_q = 21;
emotion e_gg;
mes "[Jesqurienne]";
mes "Professor Aaron?";
@@ -3620,7 +3619,7 @@ geffen_in,59,74,4 script Jesqurienne#sign 1_F_SIGNZISK,{
next;
switch(select("I can't let you win!:Darn it...")) {
case 1:
- set sign_q,22;
+ sign_q = 22;
mes "[Jesqurienne]";
mes "You're a slow learner,";
mes "aren't you? Well, I welcome";
@@ -3662,7 +3661,7 @@ geffen_in,59,74,4 script Jesqurienne#sign 1_F_SIGNZISK,{
mes "I will remember that.";
next;
mes "[Jesqurienne]";
- set sign_q,25;
+ sign_q = 25;
getitem 7177,1; //Part_Of_Star's_Sob
mes "Here...";
mes "My old friend, Metz, told";
@@ -3731,7 +3730,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "use questions that I use";
mes "in teaching my class.";
next;
- set sign_q,22;
+ sign_q = 22;
mes "[Aaron]";
mes "Alright...";
mes "I'm almost finished";
@@ -3747,14 +3746,14 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "not relevant to the";
mes "Blacksmith Job Quest?";
next;
- if (select("Baisulist:Wickebine:Barcardi:Krongast") == 3) set .@user_p,.@user_p+1;
+ if (select("Baisulist:Wickebine:Barcardi:Krongast") == 3) .@user_p += 1;
break;
case 2:
mes "1. Which item is not";
mes "relevant to the creation";
mes "of a Counteragent?";
next;
- if (select("Karvodailnirol:Detrimindexta:Alcohol") != 1) set .@user_p,.@user_p+1;
+ if (select("Karvodailnirol:Detrimindexta:Alcohol") != 1) .@user_p += 1;
break;
case 3:
mes "1. Choose the";
@@ -3762,7 +3761,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "a different size";
mes "than the others.";
next;
- if (select("Giant Whisper:Marine:Cornutus:Kobold Archer") == 2) set .@user_p,.@user_p+1;
+ if (select("Giant Whisper:Marine:Cornutus:Kobold Archer") == 2) .@user_p += 1;
break;
}
if (rand(1,10) < 9 ) {
@@ -3771,7 +3770,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Heh heh...";
mes "The first question";
mes "is always too easy!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -3789,7 +3788,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "B.S. Sacramenti from the";
mes "ones displayed in the list.";
next;
- if (select("Lex Divina:Gloria:Recovery:Sanctuary") == 2) set .@user_p,.@user_p+1;
+ if (select("Lex Divina:Gloria:Recovery:Sanctuary") == 2) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -3797,7 +3796,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "is not related to the creation";
mes "of a Condensed White Potion.";
next;
- if (select("Medicine Bowl:Witch Starsand:Empty Bottle:Empty Potion Bottle") == 3) set .@user_p,.@user_p+1;
+ if (select("Medicine Bowl:Witch Starsand:Empty Bottle:Empty Potion Bottle") == 3) .@user_p += 1;
break;
case 3:
mes "[Aaron]";
@@ -3805,7 +3804,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "necessary for a Blacksmith";
mes "to create a Gladius.";
next;
- if (select("Sapphire:Zircon:Topaz:Cursed Ruby") == 1) set .@user_p,.@user_p+1;
+ if (select("Sapphire:Zircon:Topaz:Cursed Ruby") == 1) .@user_p += 1;
break;
}
if (rand(1,10) < 8 ) {
@@ -3815,7 +3814,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "I know the answer.";
mes "Any fool should know";
mes "this. But do you?";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -3834,7 +3833,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "unrelated to the";
mes "Mage's Bolt type skills.";
next;
- if (select("Water:Earth:Fire:Wind") == 2) set .@user_p,.@user_p+1;
+ if (select("Water:Earth:Fire:Wind") == 2) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -3842,7 +3841,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Bunny Band's DEF";
mes "and its added ability?";
next;
- if (select("1 / LUK +2:1 / LUK +5:2 / LUK +2:2 / LUK +5") == 3) set .@user_p,.@user_p+1;
+ if (select("1 / LUK +2:1 / LUK +5:2 / LUK +2:2 / LUK +5") == 3) .@user_p += 1;
break;
case 3:
mes "[Aaron]";
@@ -3851,7 +3850,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "matched with its Monster";
mes "Card name.";
next;
- if (select("Hornet Card - Martyr:Requiem - Chaos:Wormtail - Clever:Golem - Immortal") == 4) set .@user_p,.@user_p+1;
+ if (select("Hornet Card - Martyr:Requiem - Chaos:Wormtail - Clever:Golem - Immortal") == 4) .@user_p += 1;
break;
}
if (rand(1,10) < 8 ) {
@@ -3860,7 +3859,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Ah...";
mes "That's another";
mes "point for me!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -3911,7 +3910,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "name of the ruler of the";
mes "Rune-Midgarts Kingdom.";
next;
- if (select("Tristan lll:Tristram lll:Tristar lll:Trust lll") == 2) set .@user_p,.@user_p+1;
+ if (select("Tristan lll:Tristram lll:Tristar lll:Trust lll") == 2) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -3919,7 +3918,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "that is a different type";
mes "than the others.";
next;
- if (select("Penomena:Hatii:Pest:Explosion") == 1) set .@user_p,.@user_p+1;
+ if (select("Penomena:Hatii:Pest:Explosion") == 1) .@user_p += 1;
break;
}
if (rand(1,10) < 8 ) {
@@ -3928,7 +3927,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "That counts as";
mes "a question? You're";
mes "being too easy!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -3971,14 +3970,14 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "which does not drop the";
mes "'Yggdrasil Leaf' item.";
next;
- if (select("Marduk:Baphomet Jr.:Angeling:Wanderer") == 1) set .@user_p,.@user_p+1;
+ if (select("Marduk:Baphomet Jr.:Angeling:Wanderer") == 1) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
mes "5. Choose the job class";
mes "that cannot equip Silk Robe.";
next;
- if (select("Swordman:Merchant:Hunter:Mage") == 3) set .@user_p,.@user_p+1;
+ if (select("Swordman:Merchant:Hunter:Mage") == 3) .@user_p += 1;
break;
case 3:
mes "[Aaron]";
@@ -3986,10 +3985,10 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "requirement for entering";
mes "the PvP Room.";
next;
- if (select("30:31:32:33") == 2) set .@user_p,.@user_p+1;
+ if (select("30:31:32:33") == 2) .@user_p += 1;
break;
}
- set zis_5,rand(1,10);
+ zis_5 = rand(1,10);
if (rand(1,10) < 9 ) {
donpcevent "Jesqurienne#sign::OnHo";
mes "[Jesqurienne]";
@@ -3998,7 +3997,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "to know the answer.";
mes "Are you still thinking?";
mes "I wouldn't think you'd know!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4040,7 +4039,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "correct weight";
mes "for 1 Empty Bottle?";
next;
- if (select("1:2:3") == 2) set .@user_p,.@user_p+1;
+ if (select("1:2:3") == 2) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -4048,7 +4047,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "correct DEF for";
mes "the Indian Filet item.";
next;
- if (select("0:1:2:3") == 4) set .@user_p,.@user_p+1;
+ if (select("0:1:2:3") == 4) .@user_p += 1;
break;
case 3:
mes "[Aaron]";
@@ -4056,7 +4055,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "city closest to";
mes "Turtle Island?";
next;
- if (select("Al De Baran:Alberta:Comodo:Izlude") == 2) set .@user_p,.@user_p+1;
+ if (select("Al De Baran:Alberta:Comodo:Izlude") == 2) .@user_p += 1;
break;
}
if (rand(1,10) < 9 ) {
@@ -4066,7 +4065,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Simple questions,";
mes "simple answers.";
mes "Did you get it?";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4108,20 +4107,20 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "by fifteen, divided by three,";
mes "plus five is equal to...?";
next;
- if (select("250:255:260:265") == 3) set .@user_p,.@user_p+1;
+ if (select("250:255:260:265") == 3) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
mes "7. Four thousand five hundred sixty divided by four, divided by two, plus three is equal to...?";
next;
- if (select("573:574:575:576") == 1) set .@user_p,.@user_p+1;
+ if (select("573:574:575:576") == 1) .@user_p += 1;
break;
case 3:
mes "[Aaron]";
mes "7. Three thousand one hundred";
mes "two added to five hundred, plus four, divided by six equals...";
next;
- if (select("600:601:602") == 2) set .@user_p,.@user_p+1;
+ if (select("600:601:602") == 2) .@user_p += 1;
break;
}
if (rand(1,10) < 9 ) {
@@ -4132,7 +4131,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "a veritable";
mes "calculator!";
mes "Ho ho ho~!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4178,7 +4177,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "that is the closest to the";
mes "Item Upgrade Place in Juno.";
next;
- if (select("Tavern:Monster Library:Tool Shop:Weapon Shop") == 4) set .@user_p,.@user_p+1;
+ if (select("Tavern:Monster Library:Tool Shop:Weapon Shop") == 4) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -4186,7 +4185,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Trap skill which does not";
mes "inflict Property Damage.";
next;
- if (select("Claymore Trap:Freezing Trap:Shockwave Trap:Land Mine") == 3) set .@user_p,.@user_p+1;
+ if (select("Claymore Trap:Freezing Trap:Shockwave Trap:Land Mine") == 3) .@user_p += 1;
break;
}
if ( rand(1,10) < 9 ) {
@@ -4195,7 +4194,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Hah hah~!";
mes "That was a";
mes "piece of cake!";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4239,7 +4238,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "receive the most damage";
mes "from a Fire Property Dagger?";
next;
- if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4) set .@user_p,.@user_p+1;
+ if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -4247,7 +4246,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "on which the Mage skill,";
mes "''Stone Curse,'' is ineffective. ^FFFFFFaaaaaa aaaaaaa aaaaaa aaaaaaa aaaaaaaaa^000000";
next;
- if (select("Elder Willow:Evil Druid:Magnolia:Marc") == 2) set .@user_p,.@user_p+1;
+ if (select("Elder Willow:Evil Druid:Magnolia:Marc") == 2) .@user_p += 1;
break;
}
if ( rand(1,10) < 9 ) {
@@ -4257,7 +4256,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "I'm just breezing";
mes "through this Quiz Challenge!";
mes "Aren't you having a hard time?";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4297,7 +4296,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "that looks different";
mes "than all the others.";
next;
- if (select("Prontera Hollgrehenn:Prontera Doll Merchant:Izlude Meat Merchant:Morroc Meat Merchant") == 3) set .@user_p,.@user_p+1;
+ if (select("Prontera Hollgrehenn:Prontera Doll Merchant:Izlude Meat Merchant:Morroc Meat Merchant") == 3) .@user_p += 1;
break;
case 2:
mes "[Aaron]";
@@ -4305,7 +4304,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "that cannot be equipped";
mes "by Novice class characters.";
next;
- if (select("Funeral Hat:Shackles:Wooden Mail:Pantie") == 3) set .@user_p,.@user_p+1;
+ if (select("Funeral Hat:Shackles:Wooden Mail:Pantie") == 3) .@user_p += 1;
break;
}
if ( rand(1,10) < 9 ) {
@@ -4314,7 +4313,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "As usual, I got";
mes "the last question";
mes "absolutely right~";
- set .@npc_p,.@npc_p+1;
+ ++.@npc_p;
}
else {
donpcevent "Jesqurienne#sign::OnOmg";
@@ -4341,7 +4340,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes ""+.@npc_p+" points!";
next;
if (.@npc_p > .@user_p) {
- set sign_q,23;
+ sign_q = 23;
emotion e_gg;
mes "[Jesqurienne]";
mes "Bwahahaha!";
@@ -4349,7 +4348,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "Ho ho ho ho ho ho~";
}
else if (.@npc_p == .@user_p) {
- set sign_q,24;
+ sign_q = 24;
mes "[Jesqurienne]";
mes "Tied?! ";
mes "Alright, I'm impressed.";
@@ -4357,7 +4356,7 @@ geffen_in,61,72,7 script Aaron#sign 4_M_SAGE_A,{
mes "smarter than I thought...";
}
else {
- set sign_q,24;
+ sign_q = 24;
mes "[Jesqurienne]";
mes "No...!";
mes "I can't...";
@@ -4484,7 +4483,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "of the fee as a preliminary";
mes "for my test. You know, to";
mes "weed out the riffraff.";
- set sign_q,26;
+ sign_q = 26;
close;
}
case 2:
@@ -4519,7 +4518,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "alright! Okay, come back";
mes "to me tomorrow night and";
mes "we'll start your test...";
- set sign_q,27;
+ sign_q = 27;
Zeny -= 30000;
}
close;
@@ -4547,7 +4546,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "business. I guess I gotta keep";
mes "this promise to him, so when";
mes "you're ready, say the word.";
- set sign_q,28;
+ sign_q = 28;
close;
}
else {
@@ -4586,7 +4585,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "standin' around";
mes "waiting for? Bring";
mes "those collection items!";
- set sign_q,29;
+ sign_q = 29;
close;
}
else if (sign_q < 35) {
@@ -4595,21 +4594,21 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "Ah, so is this";
mes "the stuff you brought?";
mes "Lemme take a look-see...";
- if (countitem(734)) set .@diaris_t,.@diaris_t+1;
- if (countitem(735)) set .@diaris_t,.@diaris_t+1;
- if (countitem(736)) set .@diaris_t,.@diaris_t+1;
- if (countitem(7149)) set .@diaris_t,.@diaris_t+1;
- if (countitem(747)) set .@diaris_t,.@diaris_t+2;
- if (countitem(749)) set .@diaris_t,.@diaris_t+4;
- if (countitem(740)) set .@diaris_t,.@diaris_t+1;
- if (countitem(741)) set .@diaris_t,.@diaris_t+1;
- if (countitem(742)) set .@diaris_t,.@diaris_t+2;
- if (countitem(743)) set .@diaris_t,.@diaris_t+3;
- if (countitem(752)) set .@diaris_t,.@diaris_t+3;
- if (countitem(753)) set .@diaris_t,.@diaris_t+4;
- if (countitem(754)) set .@diaris_t,.@diaris_t+4;
- if (countitem(750)) set .@diaris_t,.@diaris_t+7;
- if (countitem(751)) set .@diaris_t,.@diaris_t+7;
+ if (countitem(734)) .@diaris_t += 1;
+ if (countitem(735)) .@diaris_t += 1;
+ if (countitem(736)) .@diaris_t += 1;
+ if (countitem(7149)) .@diaris_t += 1;
+ if (countitem(747)) .@diaris_t += 2;
+ if (countitem(749)) .@diaris_t += 4;
+ if (countitem(740)) .@diaris_t += 1;
+ if (countitem(741)) .@diaris_t += 1;
+ if (countitem(742)) .@diaris_t += 2;
+ if (countitem(743)) .@diaris_t += 3;
+ if (countitem(752)) .@diaris_t += 3;
+ if (countitem(753)) .@diaris_t += 4;
+ if (countitem(754)) .@diaris_t += 4;
+ if (countitem(750)) .@diaris_t += 7;
+ if (countitem(751)) .@diaris_t += 7;
next;
if (.@diaris_t > 10) {
mes "[Dearles]";
@@ -4639,7 +4638,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
if (countitem(754)) delitem 754,1; //Raccoondog_Doll
if (countitem(750)) delitem 750,1; //Baphomet_Doll
if (countitem(751)) delitem 751,1; //Osiris_Doll
- set sign_q,30;
+ sign_q = 30;
if (checkre(3)) {
if (BaseLevel < 60) getexp 300,0;
else if (BaseLevel < 70) getexp 500,0;
@@ -4729,7 +4728,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "of Sobbing Starlight and";
mes "go find someone named,";
mes "um, ''Bakerlan'' in Alberta.";
- set sign_q,35;
+ sign_q = 35;
getitem 7177,1; //Part_Of_Star's_Sob
if (checkre(3)) {
if (BaseLevel < 60) getexp 300,0;
@@ -4766,7 +4765,7 @@ cmd_in02,88,51,4 script Strange Guy#sign 1_M_SIGNART,{
mes "of Sobbing Starlight and";
mes "go find someone named,";
mes "um, ''Bakerlan'' in Alberta.";
- set sign_q,35;
+ sign_q = 35;
getitem 7177,1; //Part_Of_Star's_Sob
Zeny += 20000;
if (checkre(3)) {
@@ -4906,7 +4905,7 @@ cmd_in01,33,25,5 script Examiner#sign 4_F_07,{
close;
}
else if (sign_q == 31) {
- set sign_q,30;
+ sign_q = 30;
mes "Please click on the";
mes "Chat Room to enter the";
mes "Standby Room. When it's";
@@ -4946,7 +4945,7 @@ cmd_in01,33,25,5 script Examiner#sign 4_F_07,{
mes "try again whenever";
mes "you want, alright?";
mes "Thank you~";
- set sign_q,30;
+ sign_q = 30;
close;
}
else if (sign_q == 33) {
@@ -5159,11 +5158,11 @@ OnDisable:
end;
OnUp:
- set .s_up,.s_up + 1;
+ ++.s_up;
end;
OnReset:
- set .s_up,0;
+ .s_up = 0;
end;
OnTouch:
@@ -5215,11 +5214,11 @@ OnDisable:
end;
OnUp:
- set .s_down,.s_down + 1;
+ ++.s_down;
end;
OnReset:
- set .s_down,0;
+ .s_down = 0;
end;
OnTouch:
@@ -5292,11 +5291,11 @@ OnDisable:
end;
OnUp:
- set .s_left,.s_left + 1;
+ ++.s_left;
end;
OnReset:
- set .s_left,0;
+ .s_left = 0;
end;
OnTouch:
@@ -5360,11 +5359,11 @@ OnDisable:
end;
OnUp:
- set .s_right,.s_right + 1;
+ ++.s_right;
end;
OnReset:
- set .s_right,0;
+ .s_right = 0;
end;
OnTouch:
@@ -5432,13 +5431,13 @@ OnDisable:
//specialeffect EF_SUMMONSLAVE;
disablenpc "s_dance#cen";
end;
-
+
OnUp:
- set .s_center,.s_center + 1;
+ ++.s_center;
end;
OnReset:
- set .s_center,0;
+ .s_center = 0;
end;
OnTouch:
@@ -5474,17 +5473,17 @@ OnInit:
OnTouch:
if (.s_check < 30) {
if (sign_q == 30) {
- set sign_q,32;
+ sign_q = 32;
}
}
else if (.s_check < 34) {
if (sign_q == 30) {
- set sign_q,33;
+ sign_q = 33;
}
}
else if (.s_check == 34) {
if (sign_q == 30) {
- set sign_q,34;
+ sign_q = 34;
}
}
warp "cmd_in01",29,33;
@@ -5492,11 +5491,11 @@ OnTouch:
end;
OnUp:
- set .s_check,.s_check + 1;
+ ++.s_check;
end;
OnDisable:
- set .s_check,0;
+ .s_check = 0;
disablenpc "Examiner#sd";
end;
}
@@ -5534,7 +5533,7 @@ alberta_in,125,101,5 script Wealthy-looking Merchant 1_M_SIGNMCNT,{
mes "Unfortunately I am kind of busy...";
mes "will you please come back later?";
mes "Thank you.";
- set sign_q,36;
+ sign_q = 36;
close;
}
}
@@ -5573,7 +5572,7 @@ alberta_in,125,101,5 script Wealthy-looking Merchant 1_M_SIGNMCNT,{
mes "[Bakerlan]";
mes "First, I wish for you to make";
mes "a delivery. The object I want you to deliver is expensive and must be handled with care. Don't lose it or you will fail. Now, speak to my steward for more information.";
- set sign_q,37;
+ sign_q = 37;
close;
}
else {
@@ -5602,7 +5601,7 @@ alberta_in,125,101,5 script Wealthy-looking Merchant 1_M_SIGNMCNT,{
mes "has another assignment for";
mes "for you to complete. So";
mes "please talk to him again.";
- set sign_q,41;
+ sign_q = 41;
close;
}
else if (sign_q < 52) {
@@ -5638,7 +5637,7 @@ alberta_in,125,101,5 script Wealthy-looking Merchant 1_M_SIGNMCNT,{
mes "I am the last one who tested your qualification.";
mes "Now bring all of the stone pieces to Metz.";
mes "He will tell you what you need to do next.";
- set sign_q,53;
+ sign_q = 53;
getitem 7177,1; //Part_Of_Star's_Sob
if (checkre(3)) {
if (BaseLevel < 60) getexp 500,0;
@@ -5734,7 +5733,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "I was just thinking";
mes "about something. I hope";
mes "I didn't bother you. ^333333*Sigh*^000000";
- set sign_q,43;
+ sign_q = 43;
close;
}
else if (sign_q < 51) {
@@ -5795,7 +5794,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "understand. I'm";
mes "very sorry to bother";
mes "you with my problems.";
- set sign_q,44;
+ sign_q = 44;
close;
case 2:
mes "[Seylin]";
@@ -5804,7 +5803,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "If you can help";
mes "me, I'd really";
mes "appreciate it~";
- set sign_q,45;
+ sign_q = 45;
close;
case 3:
mes "[Seylin]";
@@ -5822,7 +5821,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "it makes men feel young again.";
mes "So that must be good, right?";
mes "Thanks again for your help~";
- set sign_q,46;
+ sign_q = 46;
close;
}
}
@@ -5861,7 +5860,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "it makes men feel young again.";
mes "So that must be good, right?";
mes "Thanks again for your help~";
- set sign_q,46;
+ sign_q = 46;
close;
}
case 45:
@@ -5895,7 +5894,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "it makes men feel young again.";
mes "So that must be good, right?";
mes "Thanks again for your help~";
- set sign_q,46;
+ sign_q = 46;
close;
}
case 46:
@@ -5940,7 +5939,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "him this letter, so would";
mes "you also make sure he gets";
mes "this? Thank you so much!";
- set sign_q,49;
+ sign_q = 49;
getitem 7183,1; //Sister_Letter
close;
}
@@ -5957,7 +5956,7 @@ alberta_in,154,171,5 script Maid#s10 4_F_JPN,{
mes "I want you to have this";
mes "as a token of my gratitude.";
mes "You really are a kind person~";
- set sign_q,51;
+ sign_q = 51;
getitem 525,3; //Panacea
next;
emotion e_kis2;
@@ -6082,7 +6081,7 @@ prt_castle,107,58,5 script Soldier#s11 8W_SOLDIER,{
mes "but no one will say anything.";
delitem 7044,1; //Vigorgra
delitem 7183,1; //Sister_Letter
- set sign_q,50;
+ sign_q = 50;
percentheal 100,100;
next;
mes "[Maruin]";
@@ -6220,7 +6219,7 @@ alde_alche,169,162,7 script Alchemist#sign 4_M_ALCHE_B,{
mes "bring all those";
mes "items to me. I'll";
mes "be seeing you later.";
- set sign_q,47;
+ sign_q = 47;
close;
}
case 2:
@@ -6346,7 +6345,7 @@ alde_alche,169,162,7 script Alchemist#sign 4_M_ALCHE_B,{
delitem 520,1; //Leaflet_Of_Hinal
delitem 708,1; //Ment
delitem 713,1; //Empty_Bottle
- set sign_q,48;
+ sign_q = 48;
getitem 7044,1; //Vigorgra
mes "[Melkaba]";
mes "Um, just remember";
@@ -6481,7 +6480,7 @@ alberta_in,114,178,5 script Refined Steward 4_M_MANAGER,{
mes "^3355FFMahatra gives you";
mes "a unique stone that has";
mes "your name attached to it.^000000";
- set sign_q,38;
+ sign_q = 38;
getnameditem 7049,strcharinfo(0);
close;
}
@@ -6502,7 +6501,7 @@ alberta_in,114,178,5 script Refined Steward 4_M_MANAGER,{
mes "message to the master, so";
mes "please visit him later.";
delitem 7181,1; //Receipt_01
- set sign_q,40;
+ sign_q = 40;
close;
}
else if (sign_q == 40) {
@@ -6532,7 +6531,7 @@ alberta_in,114,178,5 script Refined Steward 4_M_MANAGER,{
mes "leave me any instructions.";
mes "Hmmm. Oh, I know what you can";
mes "do! Why don't you help ^FF0000Seylin^000000? She seems bothered by something...";
- set sign_q,42;
+ sign_q = 42;
close;
}
}
@@ -6556,7 +6555,7 @@ alberta_in,114,178,5 script Refined Steward 4_M_MANAGER,{
mes "Mahatra]";
mes "If there is anything else, he will let you pass the test.";
mes "Good luck.";
- set sign_q,52;
+ sign_q = 52;
close;
}
else if (sign_q == 98) {
@@ -6820,11 +6819,11 @@ yuno,330,100,4 script Knight#ss 4_M_JOB_KNIGHT2,{
}
}
else {
- set .@signid,getcharid(0,strcharinfo(0));
- set .@sign3, .@signid & 65535;
- set .@sign4, .@signid >> 16;
- set .@sign1,254;
- set .@sign2,0;
+ .@signid = getcharid(0,strcharinfo(0));
+ .@sign3 = .@signid & 65535;
+ .@sign4 = .@signid >> 16;
+ .@sign1 = 254;
+ .@sign2 = 0;
if (!countitem2(7049,1,0,0,.@sign1,.@sign2,.@sign3,.@sign4)) {
mes "Hm...?";
mes "There must be some";
@@ -6852,7 +6851,7 @@ yuno,330,100,4 script Knight#ss 4_M_JOB_KNIGHT2,{
mes "a good job for me.";
mes "Thanks again!";
delitem2 7049,1,1,0,0,.@sign1,.@sign2,.@sign3,.@sign4;
- set sign_q,39;
+ sign_q = 39;
getitem 7181,1; //Receipt_01
if (checkre(3)) {
if (BaseLevel < 60) getexp 100,0;
@@ -6962,7 +6961,7 @@ geffen_in,159,48,5 script Lonely-looking Woman 4_F_05,{
mes "[Brenda Howard]";
mes "Oh, and if you're going to look";
mes "for my husband, please talk to my daughter before you go. I think she has something that she wants to give to her father...";
- set sign_q,55;
+ sign_q = 55;
close;
}
}
@@ -7000,7 +6999,7 @@ geffen_in,159,48,5 script Lonely-looking Woman 4_F_05,{
mes "him know that I want him to spend";
mes "a little more time at home. Oh, and why don't you talk to Liana? She's been waiting to tell you something.";
delitem 7278,1; //Wellbeing_Letter
- set sign_q,sign_q+4;
+ sign_q += 4;
close;
}
else {
@@ -7103,7 +7102,7 @@ geffen_in,171,42,3 script Cute Girl 4_F_KID2,{
mes "forget to give this to";
mes "my dad, okay? Promise?";
emotion e_ho;
- set sign_q,56;
+ sign_q = 56;
getitem 7276,1; //Picture_Letter
close;
case 2:
@@ -7134,7 +7133,7 @@ geffen_in,171,42,3 script Cute Girl 4_F_KID2,{
mes "Yay~!";
mes "Thank you for bringing my letter to my dad. Here, here!";
mes "You have to share my treasure with me, 'kay?";
- set sign_q,sign_q+4;
+ sign_q += 4;
getitem 529,10; //Candy
close;
}
@@ -7265,7 +7264,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "Right. Let me guide you to a shortcut to the exit of these mines, just in case you don't know your way out of here. Good luck~";
delitem 7276,1; //Picture_Letter
delitem 7177,7; //Part_Of_Star's_Sob
- set sign_q,57;
+ sign_q = 57;
close2;
warp "mjo_dun02",371,344;
end;
@@ -7302,7 +7301,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "Regular Anvil?";
mes "Alright, I guess I'll try it.";
mes "But I can't guarantee success.";
- set .@anvil,0;
+ .@anvil = 0;
}
else if (countitem(987) > 0) {
mes "Ah...";
@@ -7310,18 +7309,18 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "This isn't too bad,";
mes "but there's a good risk";
mes "that this might not work.";
- set .@anvil,1;
+ .@anvil = 1;
}
else if (countitem(988) > 0) {
mes "Ah...";
mes "A Golden Anvil.";
mes "This just might be able to do the job. This might take a while, so I have something to ask of you.";
- set .@anvil,2;
+ .@anvil = 2;
}
else if (countitem(989) > 0) {
mes "Oh wow, an Emperium Anvil!";
mes "And this looks like one I might have actually made. Great, I should be able to do this so long as I don't make any critical mistakes~";
- set .@anvil,3;
+ .@anvil = 3;
}
next;
mes "[Engel]";
@@ -7334,7 +7333,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
delitem 612,5; //Portable_Furnace
delitem 615,2; //Oridecon_Hammer
delitem (986+.@anvil),1; //Anvil-Oridecon_Anvil-Golden_Anvil-Emperium_Anvil
- set sign_q, (58+.@anvil);
+ sign_q = (58+.@anvil);
getitem 7278,1; //Wellbeing_Letter
close;
}
@@ -7370,7 +7369,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "Are you back already?";
mes "While you were gone, I managed to restore this Sobbing Starlight. Why don't you go ahead and take a look?";
next;
- set sign_q,71;
+ sign_q = 71;
getitem 7178,1; //Star's_Sob
specialeffect2 EF_YUFITELHIT;
next;
@@ -7409,7 +7408,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
next;
mes "[Engel]";
mes "Although it'd be perfect if I had an Emperium Anvil, I'm pretty sure it'll be alright if we used a Golden Anvil.";
- set sign_q,70;
+ sign_q = 70;
close;
case 68:
mes "Oh good, you're back.";
@@ -7432,7 +7431,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "^FF00005 Mini Furnace^000000 and";
mes "^FF00002 Oridecon Hammer^000000.";
mes "Don't forget the ^FF0000Golden Anvil^000000! But if you can get your hands on one, an ^FF0000Emperium Anvil^000000 would be better.";
- set sign_q,70;
+ sign_q = 70;
close;
}
}
@@ -7490,7 +7489,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "We've both gone through a lot of trouble to make this, so I hope you treasure your Sobbing Starlight. Good luck on your adventures...";
if (countitem(988) > 0) delitem 988,1; //Golden_Anvil
else if (countitem(989) > 0) delitem 989,1; //Emperium_Anvil
- set sign_q,71;
+ sign_q = 71;
getitem 7178,1; //Star's_Sob
specialeffect2 EF_YUFITELHIT;
close;
@@ -7550,82 +7549,82 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "give you a time estimate...";
mes "But I'll do my best for you.";
delitem 7314,1; //The_Sign
- set sign_q,140;
- set .@stime_e,gettime(3);
- if (.@stime_e < 2) set sign_sq,1;
- else if (.@stime_e < 4) set sign_sq,2;
- else if (.@stime_e < 6) set sign_sq,3;
- else if (.@stime_e < 8) set sign_sq,4;
- else if (.@stime_e < 10) set sign_sq,5;
- else if (.@stime_e < 12) set sign_sq,6;
- else if (.@stime_e < 14) set sign_sq,7;
- else if (.@stime_e < 16) set sign_sq,8;
- else if (.@stime_e < 18) set sign_sq,9;
- else if (.@stime_e < 20) set sign_sq,10;
- else if (.@stime_e < 22) set sign_sq,11;
- else set sign_sq,12;
+ sign_q = 140;
+ .@stime_e = gettime(3);
+ if (.@stime_e < 2) sign_sq = 1;
+ else if (.@stime_e < 4) sign_sq = 2;
+ else if (.@stime_e < 6) sign_sq = 3;
+ else if (.@stime_e < 8) sign_sq = 4;
+ else if (.@stime_e < 10) sign_sq = 5;
+ else if (.@stime_e < 12) sign_sq = 6;
+ else if (.@stime_e < 14) sign_sq = 7;
+ else if (.@stime_e < 16) sign_sq = 8;
+ else if (.@stime_e < 18) sign_sq = 9;
+ else if (.@stime_e < 20) sign_sq = 10;
+ else if (.@stime_e < 22) sign_sq = 11;
+ else sign_sq = 12;
close;
}
else if (sign_q == 140) {
- set .@stime_e1,gettime(3);
+ .@stime_e1 = gettime(3);
if (.@stime_e1 < 2) {
if (sign_sq == 11) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 4) {
if (sign_sq == 12) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 6) {
if (sign_sq == 1) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 8) {
if (sign_sq == 2) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 10) {
if (sign_sq == 3) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 12) {
if (sign_sq == 4) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 14) {
if (sign_sq == 5) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 16) {
if (sign_sq == 6) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 18) {
if (sign_sq == 7) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 20) {
if (sign_sq == 8) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else if (.@stime_e1 < 22) {
if (sign_sq == 9) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
else {
if (sign_sq == 10) {
- set .@pass_s1,1;
+ .@pass_s1 = 1;
}
}
if (.@pass_s1 == 1) {
@@ -7643,7 +7642,7 @@ mjo_dun02,88,295,4 script Flaming Spirit Man 4_M_03,{
mes "Thank you for giving me the";
mes "honor of working on a worthy";
mes "smithing challenge.";
- set sign_q,141;
+ sign_q = 141;
getitem 2644,1; //The_Sign_
close;
}
@@ -7720,7 +7719,7 @@ gef_tower,118,36,4 script Annoyed Man 1_M_WIZARD,{
mes "here right now. Went somewhere";
mes "near Comodo to investigate some";
mes "tribal people or whatever.";
- set sign_q,73;
+ sign_q = 73;
emotion e_pif;
close;
}
@@ -7783,7 +7782,7 @@ umbala,163,256,3 script Native#_s 4_F_UMGIRL,{
mes "Oh right~!";
mes "The weird man in the funny clothes was in our village for a while, but ever since he went into that big tree, nobody's seen him!";
delitem 2278,1; //Mr_Smile
- set sign_q,74;
+ sign_q = 74;
close;
case 2:
mes "[Laotan]";
@@ -7912,7 +7911,7 @@ um_in,27,23,3 script Fastidious-Looking Guy 2_M_MOLGENSTEIN,{
mes "what's written in the Sobbing";
mes "Starlight, we'd need at least";
mes "10 ancient pieces of paper...";
- set sign_q,75;
+ sign_q = 75;
close;
case 4:
specialeffect EF_VENOMDUST;
@@ -7956,7 +7955,7 @@ um_in,27,23,3 script Fastidious-Looking Guy 2_M_MOLGENSTEIN,{
mes "The Sobbing Starlight is responding to these Worn Out Pages! Excellent! I've finally fulfilled my promise to Metz! Now he can leave";
mes "me alone!";
delitem 1097,10; //Worn_Out_Page
- set sign_q,76;
+ sign_q = 76;
getitem 7275,1; //Ancient_Document
close;
}
@@ -8033,7 +8032,7 @@ alberta,165,83,4 script Fastidious Old Man 4_M_SAGE_C,{
mes "when I read. I guess this old";
mes "man's got no choice but to get";
mes "some sort of seeing aid...";
- set sign_q,78;
+ sign_q = 78;
close;
}
else if (sign_q == 78) {
@@ -8086,7 +8085,7 @@ alberta,165,83,4 script Fastidious Old Man 4_M_SAGE_C,{
mes "Hmm, as far as I can tell, this is a sophisticated language spoken by the ancient gods. It's complex and confusing, but I'll do my best for you. Come back to me later, and I'll what I've learned.";
delitem 2203,1; //Glasses
delitem 7275,1; //Ancient_Document
- set sign_q,79;
+ sign_q = 79;
close;
}
}
@@ -8117,7 +8116,7 @@ alberta,165,83,4 script Fastidious Old Man 4_M_SAGE_C,{
mes "[Frank]";
mes "Well, I've written down the best translation that I could for you. It's been a long time since I've had this kind of challenge. Thanks, youngster.";
mes "Ha ha ha~";
- set sign_q,80;
+ sign_q = 80;
getitem 7274,1; //Ancient_Translator
close;
}
@@ -8172,7 +8171,7 @@ OnTouch:
delitem 907,4; //Resin
delitem 953,12; //Stone_Heart
delitem 7013,365; //Coral_Reef
- set sign_q,81;
+ sign_q = 81;
warp "himinn",49,10;
end;
}
@@ -8243,7 +8242,7 @@ himinn,48,86,5 script Valkyrie#sign 4_F_VALKYRIE,{
mes "travel there and ferret";
mes "out true darkness from";
mes "one of the hearts there...";
- set sign_q,82;
+ sign_q = 82;
percentheal 100,100;
if (checkre(3)) {
if (BaseLevel < 56) getexp 900,0;
@@ -8295,7 +8294,7 @@ himinn,48,86,5 script Valkyrie#sign 4_F_VALKYRIE,{
mes "Always step forward";
mes "with wisdom and courage.";
mes "That is all I can tell you.";
- set sign_q,96;
+ sign_q = 96;
close;
}
else if ((sign_q == 129) || (sign_q == 130)) {
@@ -8313,7 +8312,7 @@ himinn,48,86,5 script Valkyrie#sign 4_F_VALKYRIE,{
mes ""+ strcharinfo(0) +". Verily,";
mes "you are an honorable";
mes "hero worthy of praise!";
- set sign_q,137;
+ sign_q = 137;
getitem 7314,1; //The_Sign
close;
}
@@ -8344,7 +8343,7 @@ himinn,48,86,5 script Valkyrie#sign 4_F_VALKYRIE,{
mes "I hope that you find your";
mes "another way to win back";
mes "the favor of the gods...";
- set sign_q,203;
+ sign_q = 203;
close;
}
else {
@@ -8449,7 +8448,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "pretty dangerous";
mes "so please step back...";
delitem 7305,1; //Authority_Of_Nine_World
- set sign_q,133;
+ sign_q = 133;
donpcevent "Serin#dummy::OnEnable";
donpcevent "Serin#dummy::OnStart";
donpcevent "Serin#serin::OnDisable";
@@ -8522,7 +8521,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "stopping me? Hmpf.";
mes "Every fool must learn.";
mes "Prepare to die!^000000";
- set sign_q,134;
+ sign_q = 134;
donpcevent "Serin#serin::OnDisable";
donpcevent "Dark Lord#serin::OnDisable";
donpcevent "CallMonster#serin::OnCall";
@@ -8534,9 +8533,9 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "to Rune-Midgard and";
mes "ask the Dark Lord to spare";
mes "you. Thank you so much...";
- set sign_q,200;
+ sign_q = 200;
getexp (checkre(3))?20000:200000,0;
- set $@sign_w2,0;
+ $@sign_w2 = 0;
donpcevent "Dark Lord#serin::OnDisable";
close2;
warp "umbala",132,203;
@@ -8556,7 +8555,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "stopping me? Hmpf.";
mes "Every fool must learn.";
mes "Prepare to die!^000000";
- set sign_q,134;
+ sign_q = 134;
donpcevent "Serin#serin::OnDisable";
donpcevent "Dark Lord#serin::OnDisable";
donpcevent "CallMonster#serin::OnCall";
@@ -8603,7 +8602,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "Farewell, now.";
mes "And good luck on";
mes "your travels, my friend...";
- set sign_q,135;
+ sign_q = 135;
close;
}
else if (sign_q == 135) {
@@ -8611,20 +8610,20 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "unconscious Serin";
mes "and returned to Niflheim.^000000";
close2;
- set sign_q,136;
- set $@sign_w2,0;
+ sign_q = 136;
+ $@sign_w2 = 0;
warp "que_sign01",117,137;
end;
}
else if (sign_q == 199) {
- set .@fail_s1,rand(1,800);
- set .@fail_s2,rand(1,700);
- set .@fail_s3,rand(1,600);
- set .@fail_s4,rand(1,500);
- set .@fail_s5,rand(1,400);
+ .@fail_s1 = rand(1,800);
+ .@fail_s2 = rand(1,700);
+ .@fail_s3 = rand(1,600);
+ .@fail_s4 = rand(1,500);
+ .@fail_s5 = rand(1,400);
if (countitem(2643) == 1) {
if (((sign_sq == 0) && (.@fail_s3 == 356)) || ((sign_sq == 1) && (.@fail_s2 == 356)) || (.@fail_s1 == 356)) {
- set sign_q,200;
+ sign_q = 200;
mes "[Serin]";
mes "Even though you tried";
mes "to stop me, I still don't wish";
@@ -8643,7 +8642,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "[Serin]";
mes "Farewell...";
close2;
- set $@sign_w2,0;
+ $@sign_w2 = 0;
warp "niflheim",30,156;
end;
}
@@ -8654,7 +8653,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "Please don't";
mes "try to stop me!";
close2;
- set sign_q,134;
+ sign_q = 134;
donpcevent "Serin#serin::OnDisable";
donpcevent "Dark Lord#serin::OnDisable";
donpcevent "CallMonster#serin::OnCall";
@@ -8663,7 +8662,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
}
else {
if (((sign_sq == 0) && (.@fail_s5 == 356)) || ((sign_sq == 1) && (.@fail_s4 == 356)) || (.@fail_s3 == 356)) {
- set sign_q,200;
+ sign_q = 200;
mes "[Serin]";
mes "Even though you tried";
mes "to stop me, I still don't wish";
@@ -8682,7 +8681,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "[Serin]";
mes "Farewell...";
close2;
- set $@sign_w2,0;
+ $@sign_w2 = 0;
warp "niflheim",30,156;
end;
}
@@ -8693,7 +8692,7 @@ que_sign01,196,39,4 script Serin#serin 4_F_01,{
mes "Please don't";
mes "try to stop me!";
close2;
- set sign_q,134;
+ sign_q = 134;
donpcevent "Serin#serin::OnDisable";
donpcevent "Dark Lord#serin::OnDisable";
donpcevent "CallMonster#serin::OnCall";
@@ -8785,7 +8784,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
next;
switch(select("I can't let you do this!:Okay, have it your way.")) {
case 1:
- set sign_q,125;
+ sign_q = 125;
close;
case 2:
mes "[Serin]";
@@ -8796,7 +8795,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
next;
switch(select("I changed my mind for Rune-Midgard.:I do, and it's alright...")) {
case 1:
- set sign_q,125;
+ sign_q = 125;
close;
case 2:
mes "[Serin]";
@@ -8805,9 +8804,9 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "to Rune-Midgard and";
mes "ask the Dark Lord to spare";
mes "you. Thank you so much...";
- set sign_q,200;
+ sign_q = 200;
getexp (checkre(3))?20000:200000,0;
- set $@sign_w1,0;
+ $@sign_w1 = 0;
close2;
warp "umbala,",132,203;
end;
@@ -8856,7 +8855,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "human again so I can't give up";
mes "now! We'll have to battle!";
close2;
- set sign_q,126;
+ sign_q = 126;
donpcevent "CallMonster#witch::OnCall";
donpcevent "Serin#witch::OnDisable";
end;
@@ -8897,7 +8896,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "human again so I can't give up";
mes "now! We'll have to battle!";
close2;
- set sign_q,126;
+ sign_q = 126;
donpcevent "CallMonster#witch::OnCall";
donpcevent "Serin#witch::OnDisable";
end;
@@ -8944,7 +8943,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "And good luck on";
mes "your travels, my friend...";
delitem 7308,1; //Witch's_Potion
- set sign_q,127;
+ sign_q = 127;
close;
}
else if (sign_q == 127) {
@@ -8952,21 +8951,21 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "unconscious Serin";
mes "and returned to Niflheim.^000000";
close2;
- set sign_q,128;
- set $@sign_w1,0;
+ sign_q = 128;
+ $@sign_w1 = 0;
warp "que_sign01",117,137;
end;
}
else if (sign_q == 198) {
- set .@fail_s1,rand(1,1000);
- set .@fail_s2,rand(1,900);
- set .@fail_s3,rand(1,800);
- set .@fail_s4,rand(1,700);
- set .@fail_s5,rand(1,600);
+ .@fail_s1 = rand(1,1000);
+ .@fail_s2 = rand(1,900);
+ .@fail_s3 = rand(1,800);
+ .@fail_s4 = rand(1,700);
+ .@fail_s5 = rand(1,600);
if (countitem(2643) == 1) {
if (((sign_sq == 0) && (.@fail_s3 == 356)) || ((sign_sq == 1) && (.@fail_s2 == 356)) || (.@fail_s1 == 356)) {
delitem 7308,1; //Witch's_Potion
- set sign_q,200;
+ sign_q = 200;
mes "[Serin]";
mes "Even though you tried";
mes "to stop me, I still don't wish";
@@ -8993,7 +8992,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "to help me summon";
mes "Dark Lord. Farewell...";
close2;
- set $@sign_w1,0;
+ $@sign_w1 = 0;
warp "niflheim",30,156;
end;
}
@@ -9004,7 +9003,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "Please don't";
mes "try to stop me!";
close2;
- set sign_q,126;
+ sign_q = 126;
donpcevent "Serin#witch::OnDisable";
donpcevent "CallMonster#witch::OnCall";
end;
@@ -9013,7 +9012,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
else {
if (((sign_sq == 0) && (.@fail_s5 == 356)) || ((sign_sq == 1) && (.@fail_s4 == 356)) || (.@fail_s3 == 356)) {
delitem 7308,1; //Witch's_Potion
- set sign_q,200;
+ sign_q = 200;
mes "[Serin]";
mes "Even though you tried";
mes "to stop me, I still don't wish";
@@ -9040,7 +9039,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "to help me summon";
mes "Dark Lord. Farewell...";
close2;
- set $@sign_w1,0;
+ $@sign_w1 = 0;
warp "niflheim",30,156;
end;
}
@@ -9051,7 +9050,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "Please don't";
mes "try to stop me!";
close2;
- set sign_q,126;
+ sign_q = 126;
donpcevent "Serin#witch::OnDisable";
donpcevent "CallMonster#witch::OnCall";
end;
@@ -9065,7 +9064,7 @@ que_sign01,197,195,4 script Serin#witch 4_F_01,{
mes "you belong.";
mes ".......";
close2;
- set $@sign_w1,0;
+ $@sign_w1 = 0;
warp "umbala",132,203;
end;
}
@@ -9160,14 +9159,14 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "You really are a kind person.";
mes "Now, in order to help the other";
mes "misfortunate in Niflheim, you've got to remember to gain their trust first and get close to them, okay?";
- set sign_q,83;
+ sign_q = 83;
close;
case 2:
mes "[Serin]";
mes "I... I understand.";
mes "Although I asked too much in asking you to help the other people here, I was hoping you'd realize that";
mes "would be the best way to learn clues for a way to escape for now.";
- set sign_q,84;
+ sign_q = 84;
close;
}
}
@@ -9205,8 +9204,8 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "your help. This is all I have,";
mes "and it means a lot to me, but";
mes "I want you to have this ring. It's the only way I can properly express my gratitude for your aid so far.";
- set sign_q,85;
- set sign_sq,0;
+ sign_q = 85;
+ sign_sq = 0;
getitem 2642,1; //Serin's_Gold_Ring
close;
}
@@ -9231,7 +9230,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "Niflheim, you'll find that";
mes "some of the deceased here are";
mes "different than most of the others in this town. Please talk to them and see if you can be of any help.";
- set sign_q,87;
+ sign_q = 87;
close;
}
else if (sign_q == 85) {
@@ -9247,7 +9246,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "some useful information,";
mes "so it might be a good";
mes "idea to speak with him.";
- set sign_q,86;
+ sign_q = 86;
close;
}
else if (sign_q < 92) {
@@ -9350,7 +9349,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "somehow I don't really belong";
mes "here in Niflheim.";
emotion e_dots;
- set sign_q,93;
+ sign_q = 93;
close;
}
}
@@ -9373,7 +9372,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "has been sealed away in the";
mes "world of Rune-Midgard...";
emotion e_dots;
- set sign_q,94;
+ sign_q = 94;
close;
}
else if (sign_q == 94) {
@@ -9422,13 +9421,13 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "[Serin]";
mes "Then I will";
mes "wait for you here.";
- set sign_q,95;
+ sign_q = 95;
close;
case 2:
mes "[Serin]";
mes "Alright...";
mes "It's your decision.";
- set sign_q,95;
+ sign_q = 95;
close;
}
case 2:
@@ -9439,7 +9438,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "of obtaining the symbol,";
mes "you should also be able";
mes "to protect it from abuse.";
- set sign_q,95;
+ sign_q = 95;
close;
}
}
@@ -9493,7 +9492,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "There is this rumor";
mes "going around, but I don't";
mes "know if you want to hear it...";
- set sign_q,131;
+ sign_q = 131;
close;
case 2:
mes "[Serin]";
@@ -9647,7 +9646,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "do it somewhere inside town";
mes "to avoid attention. Hmmm...";
mes "I'll send you there once I figure out where the circle might be.";
- set sign_q,132;
+ sign_q = 132;
close;
}
else if (sign_q == 132) {
@@ -9670,7 +9669,7 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
mes "Okay~";
mes "Let's go...";
close2;
- set $@sign_w2,1;
+ $@sign_w2 = 1;
warp "que_sign01",199,36;
end;
case 2:
@@ -9694,8 +9693,8 @@ niflheim,313,70,4 script Pleasant-Featured Lady#s 4_F_01,{
switch(select("Follow the trace.:Ignore it.")) {
case 1:
close2;
- set sign_q,199;
- set $@sign_w2,1;
+ sign_q = 199;
+ $@sign_w2 = 1;
warp "que_sign01",199,36;
end;
case 2:
@@ -9809,7 +9808,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "retrieve my other";
mes "spell book for me,";
mes "adventurer?";
- set sign_sq,0;
+ sign_sq = 0;
close;
}
else {
@@ -9901,7 +9900,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "is searching for her lost mother, Angrboda. Now, if you could find where Angrboda has been";
mes "sealed away...";
delitem 7304,1; //Witch's_Spell_Book
- set sign_q,92;
+ sign_q = 92;
close;
}
else {
@@ -9996,7 +9995,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "if you can find any remaining";
mes "trace of her.";
delitem 7305,1; //Authority_Of_Nine_World
- set sign_q,119;
+ sign_q = 119;
close;
case 2:
mes "[Kirkena]";
@@ -10017,7 +10016,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "strongly infused with her";
mes "vibes. It's really tough to find something like this that resonates so strongly with its owner.";
delitem 2642,1; //Serin's_Gold_Ring
- set sign_q,120;
+ sign_q = 120;
close;
}
else {
@@ -10026,7 +10025,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "This isn't good. She's hid";
mes "herself already and it might";
mes "be too late to find any trace of her. I'll have to do something...";
- set sign_q,121;
+ sign_q = 121;
close;
}
}
@@ -10077,10 +10076,10 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "command the guards of Niflheim";
mes "to just let her pass and re-enter the world of the living. But your symbol can be used just once...";
next;
- set .@kir_talk1,1;
+ .@kir_talk1 = 1;
if ((.@kir_talk1 == 1) && (.@kir_talk2 == 1) && (.@kir_talk3 == 1)) {
- if (sign_q == 120) set sign_q,122;
- else if (sign_q == 121) set sign_q,123;
+ if (sign_q == 120) sign_q = 122;
+ else if (sign_q == 121) sign_q = 123;
}
break;
case 2:
@@ -10130,10 +10129,10 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "sphere of influence. I don't think she'll help Dark Lord, but she";
mes "also won't get in his way.";
next;
- set .@kir_talk2,1;
+ .@kir_talk2 = 1;
if ((.@kir_talk1 == 1) && (.@kir_talk2 == 1) && (.@kir_talk3 == 1)) {
- if (sign_q == 120) set sign_q,122;
- else if (sign_q == 121) set sign_q,123;
+ if (sign_q == 120) sign_q = 122;
+ else if (sign_q == 121) sign_q = 123;
}
break;
case 3:
@@ -10157,10 +10156,10 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "to avoid drinking this";
mes "for quite a while now...";
next;
- set .@kir_talk3,1;
+ .@kir_talk3 = 1;
if ((.@kir_talk1 == 1) && (.@kir_talk2 == 1) && (.@kir_talk3 == 1)) {
- if (sign_q == 120) set sign_q,122;
- else if (sign_q == 121) set sign_q,123;
+ if (sign_q == 120) sign_q = 122;
+ else if (sign_q == 121) sign_q = 123;
}
}
if ((sign_q == 122) || (sign_q == 123)) close;
@@ -10192,7 +10191,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "forget to bring back all";
mes "of the vouchers I've";
mes "given you, alright?";
- set sign_q,124;
+ sign_q = 124;
getitem 7308,1; //Witch's_Potion
getitem 2643,1; //Serin's_Gold_Ring_
getitem 7313,5; //Seal_Of_Witch
@@ -10228,7 +10227,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "forget to bring back all of";
mes "the Witch's Medals that";
mes "I've lent to you, alright?";
- set sign_q,124;
+ sign_q = 124;
getitem 7308,1; //Witch's_Potion
getitem 7313,5; //Seal_Of_Witch
close;
@@ -10252,7 +10251,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
switch(select("Yes:No")) {
case 1:
close2;
- set $@sign_w1,1;
+ $@sign_w1 = 1;
warp "que_sign01",195,189;
end;
case 2:
@@ -10313,7 +10312,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "help. Once you finish here,";
mes "please visit our queen, Lady Hell. I believe she wants to see you for some reason, "+strcharinfo(0)+"...";
delitem 7313,5; //Seal_Of_Witch
- set sign_q,129;
+ sign_q = 129;
getexp (checkre(3))?50000:500000,0;
close;
}
@@ -10342,7 +10341,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "help. Once you finish here,";
mes "please visit our queen, Lady Hell. I believe she wants to see you for some reason...";
delitem 7313,5; //Seal_Of_Witch
- set sign_q,130;
+ sign_q = 130;
getexp (checkre(3))?30000:300000,0;
close;
}
@@ -10367,8 +10366,8 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "you so much for your";
mes "help. Once you finish here,";
mes "please visit our queen, Lady Hell. I believe she wants to see you for some reason...";
- if (countitem(2643) == 1) set sign_q,129;
- else set sign_q,130;
+ if (countitem(2643) == 1) sign_q = 129;
+ else sign_q = 130;
getexp (checkre(3))?30000:300000,0;
close;
}
@@ -10398,7 +10397,7 @@ que_sign01,122,141,4 script Witch#s 4_F_NFDEADMGCIAN,{
mes "ordeals for her sake...";
if (countitem(2642) > 0) delitem 2642,1; //Serin's_Gold_Ring
if (countitem(7308) > 0) delitem 7308,1; //Witch's_Potion
- set sign_q,201;
+ sign_q = 201;
getexp (checkre(3))?20000:200000,0;
close;
}
@@ -10469,7 +10468,7 @@ OnTouch:
mes "a living human back to one";
mes "of the towns in your realm.";
delitem 7304,1; //Witch's_Spell_Book
- set sign_sq,3;
+ sign_sq = 3;
getitem 7309,1; //Wing_Of_Crow
close;
}
@@ -10502,7 +10501,7 @@ OnTouch:
mes "Here, let me give you";
mes "my last one. Now, hurry";
mes "up and save that lost child!";
- set sign_sq,4;
+ sign_sq = 4;
getitem 7309,1; //Wing_Of_Crow
close;
}
@@ -10538,7 +10537,7 @@ OnTouch:
mes "That's impossible!";
mes "Wait, give me a moment to";
mes "think. What could be wrong?";
- set sign_sq,7;
+ sign_sq = 7;
close;
}
else if (sign_sq == 7) {
@@ -10554,7 +10553,7 @@ OnTouch:
mes "that she's dead. It's tragic,";
mes "but there's no way for her";
mes "to get out of here...";
- set sign_sq,8;
+ sign_sq = 8;
close;
}
else {
@@ -10620,7 +10619,7 @@ OnTouch:
next;
switch(select("Alright, I understand.:How am I supposed to get the symbol?")) {
case 1:
- set sign_q,89;
+ sign_q = 89;
close;
case 2:
mes "[Kirkena]";
@@ -10650,7 +10649,7 @@ OnTouch:
mes "through the right side of the";
mes "portrait on the second floor^000000";
mes "of this castle, "+strcharinfo(0)+".";
- set sign_q,92;
+ sign_q = 92;
next;
mes "[Kirkena]";
mes "If you use that piano";
@@ -10695,7 +10694,7 @@ OnTouch:
mes "to see me, go ahead and use";
mes "the passage to the right of the portrait on the second floor";
mes "of the castle.";
- set sign_q,90;
+ sign_q = 90;
close;
}
}
@@ -10735,7 +10734,7 @@ OnTouch:
mes "through the right side of the";
mes "portrait on the second";
mes "floor of this castle.";
- set sign_q,92;
+ sign_q = 92;
close;
}
end;
@@ -10796,7 +10795,7 @@ que_sign01,45,227,4 script Queen of the Dead 2_F_SIGN1,{
mes "^3355FFYou received the";
mes "Symbol of the Nine Realms.^000000";
delitem 7307,1; //Whisper_Of_Soul
- set sign_q,118;
+ sign_q = 118;
getitem 7305,1; //Authority_Of_Nine_World
close;
}
@@ -10854,7 +10853,7 @@ que_sign01,45,227,4 script Queen of the Dead 2_F_SIGN1,{
mes "you something truly";
mes "interesting...^000000";
delitem 7178,1; //Star's_Sob
- set sign_q,143;
+ sign_q = 143;
close;
case 2:
mes "[Lady Hell]";
@@ -10900,7 +10899,7 @@ que_sign01,45,227,4 script Queen of the Dead 2_F_SIGN1,{
mes "you humans call the";
mes "Sobbing Starlight.^000000";
next;
- set sign_q,144;
+ sign_q = 144;
getitem 7025,1; //Lucifer's_Lament
mes "[Lady Hell]";
mes "^8C1717Although you may also know";
@@ -10965,8 +10964,8 @@ niflheim,146,241,0 script Depressing Man 4_M_JOB_WIZARD,{
next;
switch(select("To prove my courage:For honor:To help people")) {
case 1:
- if (sign_sq > 2) set sign_sq,0;
- else set sign_sq,sign_sq+1;
+ if (sign_sq > 2) sign_sq = 0;
+ else sign_sq += 1;
case 2:
break;
}
@@ -10988,7 +10987,7 @@ niflheim,146,241,0 script Depressing Man 4_M_JOB_WIZARD,{
mes "I think you should be";
mes "really careful if you find";
mes "yourself dealing with Serin...";
- set sign_q,88;
+ sign_q = 88;
close;
case 2:
mes "[Gen]";
@@ -11022,7 +11021,7 @@ niflheim,146,241,0 script Depressing Man 4_M_JOB_WIZARD,{
mes "and the fact that she used";
mes "to be a great wizard when she";
mes "was alive bothers me. She's a lot different than the rest of the guys stuck in Niflheim...";
- set sign_q,88;
+ sign_q = 88;
close;
}
}
@@ -11049,7 +11048,7 @@ niflheim,146,241,0 script Depressing Man 4_M_JOB_WIZARD,{
mes "too much. First, go and see";
mes "the witch and ask her to";
mes "help you out, okay?";
- set sign_q,88;
+ sign_q = 88;
close;
}
}
@@ -11202,7 +11201,7 @@ nif_in,140,177,0 script #Switch HIDDEN_NPC,{
end;
}
if (sign_q > 89) {
- if (sign_q == 126) set sign_q,198;
+ if (sign_q == 126) sign_q = 198;
warp "que_sign01",115,135;
end;
}
@@ -11309,7 +11308,7 @@ niflheim,102,54,4 script Mad Man#s 8_DOPPEL,{
mes "lowest part of Glast Heim to";
mes "find Angrboda's soul pieces.";
next;
- set .@select_s,rand(1,5);
+ .@select_s = rand(1,5);
if (.@select_s == 1) {
mes "[Laichin]";
mes "Check out the";
@@ -11361,10 +11360,10 @@ niflheim,102,54,4 script Mad Man#s 8_DOPPEL,{
mes "[Laichin]";
mes "Alright, kid.";
mes "Have fun!";
- if (.@select_s == 1) set sign_q,97;
- else if (.@select_s == 2) set sign_q,98;
- else if (.@select_s == 3) set sign_q,99;
- else if (.@select_s == 4) set sign_q,100;
+ if (.@select_s == 1) sign_q = 97;
+ else if (.@select_s == 2) sign_q = 98;
+ else if (.@select_s == 3) sign_q = 99;
+ else if (.@select_s == 4) sign_q = 100;
else {
mes "[Laichin]";
mes "Heh heh!";
@@ -11390,10 +11389,10 @@ niflheim,102,54,4 script Mad Man#s 8_DOPPEL,{
mes "you can't figure out";
mes "where the soul pieces are!";
Zeny -= 40000;
- if (.@select_s == 1) set sign_q,97;
- else if (.@select_s == 2) set sign_q,98;
- else if (.@select_s == 3) set sign_q,99;
- else if (.@select_s == 4) set sign_q,100;
+ if (.@select_s == 1) sign_q = 97;
+ else if (.@select_s == 2) sign_q = 98;
+ else if (.@select_s == 3) sign_q = 99;
+ else if (.@select_s == 4) sign_q = 100;
else {
mes "[Laichin]";
mes "Hehehehe~";
@@ -11426,10 +11425,10 @@ niflheim,102,54,4 script Mad Man#s 8_DOPPEL,{
mes "For very small, you gotta";
mes "look near the center. Got it?";
Zeny -= 60000;
- if (.@select_s == 1) set sign_q,101;
- else if (.@select_s == 2) set sign_q,102;
- else if (.@select_s == 3) set sign_q,103;
- else if (.@select_s == 4) set sign_q,104;
+ if (.@select_s == 1) sign_q = 101;
+ else if (.@select_s == 2) sign_q = 102;
+ else if (.@select_s == 3) sign_q = 103;
+ else if (.@select_s == 4) sign_q = 104;
else {
mes "[Laichin]";
mes "Eh heh";
@@ -11487,10 +11486,10 @@ niflheim,102,54,4 script Mad Man#s 8_DOPPEL,{
mes "For very small, you gotta";
mes "look near the center. Got it?";
Zeny -= 20000;
- if (sign_q == 97) set sign_q,101;
- else if (sign_q == 98) set sign_q,102;
- else if (sign_q == 99) set sign_q,103;
- else if (sign_q == 100) set sign_q,104;
+ if (sign_q == 97) sign_q = 101;
+ else if (sign_q == 98) sign_q = 102;
+ else if (sign_q == 99) sign_q = 103;
+ else if (sign_q == 100) sign_q = 104;
else {
mes "[Laichin]";
mes "Bwahahaha!";
@@ -11698,9 +11697,9 @@ OnTouch:
mes "a fighting chance and let";
mes "you cast a spell.";
next;
- if (select("Clover:Klaatu:Kleitos") == 2) set .@spell,.@spell+1;
- if (select("Verit:Veritas:Verata") == 3) set .@spell,.@spell+1;
- if (select("Necktie:Necklace:Nero:^FFFFFFNictu^000000") == 4) set .@spell,.@spell+1;
+ if (select("Clover:Klaatu:Kleitos") == 2) .@spell += 1;
+ if (select("Verit:Veritas:Verata") == 3) .@spell += 1;
+ if (select("Necktie:Necklace:Nero:^FFFFFFNictu^000000") == 4) .@spell += 1;
if (.@spell == 3) {
if (rand(1,5) == 5) {
mes "[Ashe Bruce]";
@@ -11723,12 +11722,12 @@ OnTouch:
mes "weak, pathetic witch!";
if (sign_q == 83) {
if(sign_sq == 0) {
- set sign_sq,1;
+ sign_sq = 1;
getitem 7304,1; //Witch's_Spell_Book
}
}
else if (sign_q == 90) {
- set sign_q,91;
+ sign_q = 91;
getitem 7304,1; //Witch's_Spell_Book
}
close;
@@ -11797,8 +11796,8 @@ OnTouch:
next;
switch(select("Just my opinion.:It's the truth!")) {
case 1:
- if (sign_sq > 1) set sign_sq,0;
- else set sign_sq,sign_sq+1;
+ if (sign_sq > 1) sign_sq = 0;
+ else sign_sq += 1;
case 2:
break;
}
@@ -11841,7 +11840,7 @@ OnTouch:
mes "be a good idea if";
mes "you talk to someone";
mes "in Niflheim named ^FF0000Gen^000000.";
- set sign_q,87;
+ sign_q = 87;
close;
}
}
@@ -11883,7 +11882,7 @@ OnTouch:
mes "singing man told me to";
mes "go meet a witch, but it's";
mes "too scary to go outside...";
- set sign_sq,2;
+ sign_sq = 2;
close;
case 2:
mes "[Alakina Ann]";
@@ -11910,7 +11909,7 @@ OnTouch:
mes "this to go back home?";
mes "Thank you! Thank you so much!";
delitem 7309,countitem(7309); //Wing_Of_Crow
- set sign_sq,5;
+ sign_sq = 5;
close;
}
else {
@@ -11931,7 +11930,7 @@ OnTouch:
mes "This wing doesn't do";
mes "anything! I-I'm still here";
mes "in this scary place! ^333333*Cries*^000000";
- set sign_sq,6;
+ sign_sq = 6;
emotion e_sob;
close;
}
@@ -12024,7 +12023,7 @@ function script F_SignSeal {
mes "with you. Please guide";
mes "me to the queen of the dead...^000000";
delitem 7306,3; //Fragment_Of_Soul
- set sign_q,117;
+ sign_q = 117;
getitem 7307,1; //Whisper_Of_Soul
}
else {
@@ -12041,10 +12040,10 @@ function script F_SignSeal {
gl_dun02,262,265,0 script Mysterious Energy#1 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if (sign_q == 101) {
callfunc "F_SignSeal",.@crash_s;
- set sign_q,105;
+ sign_q = 105;
close;
}
else {
@@ -12057,11 +12056,11 @@ gl_dun02,262,265,0 script Mysterious Energy#1 HIDDEN_NPC,{
// Angrboda's Seal 2 big 4 O'clock 270 198
gl_dun02,271,100,0 script Mysterious Energy#2 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if ((sign_q == 102) || (sign_q == 104)) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 102) set sign_q,106;
- else if (sign_q == 104) set sign_q,108;
+ if (sign_q == 102) sign_q = 106;
+ else if (sign_q == 104) sign_q = 108;
close;
}
else {
@@ -12074,12 +12073,12 @@ gl_dun02,271,100,0 script Mysterious Energy#2 HIDDEN_NPC,{
// Angrboda's Seal 3 big 5 O'clock 268 32
gl_dun02,268,32,0 script Mysterious Energy#3 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if ((sign_q == 103) || (sign_q == 105) || (sign_q == 108)) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 103) set sign_q,107;
- else if (sign_q == 105) set sign_q,109;
- else if (sign_q == 108) set sign_q,112;
+ if (sign_q == 103) sign_q = 107;
+ else if (sign_q == 105) sign_q = 109;
+ else if (sign_q == 108) sign_q = 112;
close;
}
else {
@@ -12092,10 +12091,10 @@ gl_dun02,268,32,0 script Mysterious Energy#3 HIDDEN_NPC,{
// Angrboda's Seal 4 big 7 O'clock 16 26
gl_dun02,16,26,0 script Mysterious Energy#4 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if (sign_q == 109) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 109) set sign_q,113;
+ if (sign_q == 109) sign_q = 113;
close;
}
else {
@@ -12108,11 +12107,11 @@ gl_dun02,16,26,0 script Mysterious Energy#4 HIDDEN_NPC,{
// Angrboda's Seal 5 big 11 O'clock 42 251
gl_dun02,42,251,0 script Mysterious Energy#5 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if ((sign_q == 106) || (sign_q == 112)) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 106) set sign_q,110;
- else if (sign_q == 112) set sign_q,116;
+ if (sign_q == 106) sign_q = 110;
+ else if (sign_q == 112) sign_q = 116;
close;
}
else {
@@ -12125,10 +12124,10 @@ gl_dun02,42,251,0 script Mysterious Energy#5 HIDDEN_NPC,{
// Angrboda's Seal 6 small 11 O'clock 123 234
gl_dun02,123,234,0 script Mysterious Energy#6 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if (sign_q == 107) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 107) set sign_q,111;
+ if (sign_q == 107) sign_q = 111;
close;
}
else if (sign_q == 116) {
@@ -12145,11 +12144,11 @@ gl_dun02,123,234,0 script Mysterious Energy#6 HIDDEN_NPC,{
// Angrboda's Seal 7 small 6 O'clock 140 72
gl_dun02,140,72,0 script Mysterious Energy#7 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if ((sign_q == 110) || (sign_q == 111)) {
callfunc "F_SignSeal",.@crash_s;
- if (sign_q == 110) set sign_q,114;
- else if (sign_q == 111) set sign_q,115;
+ if (sign_q == 110) sign_q = 114;
+ else if (sign_q == 111) sign_q = 115;
close;
}
else if (sign_q == 113) {
@@ -12166,7 +12165,7 @@ gl_dun02,140,72,0 script Mysterious Energy#7 HIDDEN_NPC,{
// Angrboda's Seal 8 very small 119 182
gl_dun02,119,182,0 script Mysterious Energy#8 HIDDEN_NPC,{
callfunc "F_UpdateSignVars";
- set .@crash_s,rand(1,1000);
+ .@crash_s = rand(1,1000);
if ((sign_q == 114) || (sign_q == 115)) {
callfunc "F_SignSeal",.@crash_s,1;
close;
@@ -12237,7 +12236,7 @@ OnInit:
end;
OnTouch:
- set geffenia_warp,rand(1,4);
+ geffenia_warp = rand(1,4);
if (geffenia_warp == 1) warp "gefenia01",58,169;
else if (geffenia_warp == 2) warp "gefenia02",116,115;
else if (geffenia_warp == 3) warp "gefenia03",130,206;
@@ -12336,7 +12335,7 @@ OnTimer600000:
end;
OnTimer620000:
- set $@sign_w2,0;
+ $@sign_w2 = 0;
donpcevent "Starter#serin::OnEnable";
donpcevent "Warp#serin::OnDisable";
donpcevent "Serin#serin::OnEnable";
@@ -12386,7 +12385,7 @@ OnTimer620000:
donpcevent "Warp#witch::OnDisable";
donpcevent "CallMonster#witch::OnReset";
donpcevent "Serin#witch::OnEnable";
- set $@sign_w1,0;
+ $@sign_w1 = 0;
stopnpctimer;
end;
}
@@ -12456,7 +12455,7 @@ OnTouch:
close;
}
else {
- set $@sign_w1,1;
+ $@sign_w1 = 1;
warp "que_sign01",197,190;
end;
}
@@ -12468,89 +12467,89 @@ function script F_UpdateSignVars {
// P.S. I want to slit someone's throat.
// Attmept to save using the main (old) tracting variable
- if (signquest <= 4) { set sign_q,signquest; }
+ if (signquest <= 4) { sign_q = signquest; }
// ariantest = 5-11
// gaanantest = 12 & 13
- else if (signquest == 5) { set sign_q,14; }
- else if (signquest == 6) { set sign_q,15; }
+ else if (signquest == 5) { sign_q = 14; }
+ else if (signquest == 6) { sign_q = 15; }
// SighJore = 16
- else if (signquest == 7) { set sign_q,17; }
+ else if (signquest == 7) { sign_q = 17; }
// ScareAlchSign = 18
- else if (signquest == 8) { set sign_q,19; }
- else if (signquest == 9) { set sign_q,20; }
+ else if (signquest == 8) { sign_q = 19; }
+ else if (signquest == 9) { sign_q = 20; }
// There is noequivilent for sign_q 21-24
- else if (signquest == 10) { set sign_q,25; }
+ else if (signquest == 10) { sign_q = 25; }
// There is noequivilent for sign_q 26
- else if (signquest == 11) { set sign_q,27; }
+ else if (signquest == 11) { sign_q = 27; }
// deales_test = 28-30
// 31 is not used.
// SignDance = 32 & 33
// there is no equivilent to sign_q 34
- else if (signquest == 12) { set sign_q,35; }
+ else if (signquest == 12) { sign_q = 35; }
// bakerlan_test - 36-42
// there is no equivilent to sign_q 43-45
// bakerlan_test - 46-52
- else if (signquest == 13) { set sign_q,53; }
- else if ((signquest >= 14) && (signquest <= 15)) { set sign_q,54; }
- else if ((signquest >= 16) && (signquest <= 18)) { set sign_q,signquest+39; }
+ else if (signquest == 13) { sign_q = 53; }
+ else if ((signquest >= 14) && (signquest <= 15)) { sign_q = 54; }
+ else if ((signquest >= 16) && (signquest <= 18)) { sign_q = signquest+39; }
// signanvil = 58-61
- else if ((signquest == 19) && (countitem(7278))) { set sign_q,61; }
+ else if ((signquest == 19) && (countitem(7278))) { sign_q = 61; }
// there is no equivilent to sign_q 62-64
- else if (signquest == 20) { set sign_q,65; }
+ else if (signquest == 20) { sign_q = 65; }
// there is no equivilent to sign_q 66-68
- else if (signquest == 21) { set sign_q,69; }
- else if ((signquest >= 22) && (signquest <= 28)) { set sign_q,signquest+48; } // 70-76
+ else if (signquest == 21) { sign_q = 69; }
+ else if ((signquest >= 22) && (signquest <= 28)) { sign_q = signquest+48; } // 70-76
// there is no equivilent to sign_q 77
- else if ((signquest >= 29) && (signquest <= 34)) { set sign_q,signquest+49; } // 78-83
- else if (signquest == 35) { set sign_q,83; set sign_sq,1; }
- else if (signquest == 36) { set sign_q,83; set sign_sq,1; }
- else if (signquest == 37) { set sign_q,83; set sign_sq,2; }
- else if (signquest == 38) { set sign_q,83; set sign_sq,3; }
+ else if ((signquest >= 29) && (signquest <= 34)) { sign_q = signquest+49; } // 78-83
+ else if (signquest == 35) { sign_q = 83; sign_sq = 1; }
+ else if (signquest == 36) { sign_q = 83; sign_sq = 1; }
+ else if (signquest == 37) { sign_q = 83; sign_sq = 2; }
+ else if (signquest == 38) { sign_q = 83; sign_sq = 3; }
// there is no equivilent to sign_sq 4
- else if (signquest == 39) { set sign_q,83; set sign_sq,5; }
- else if (signquest == 40) { set sign_q,83; set sign_sq,6; }
- else if (signquest == 41) { set sign_q,83; set sign_sq,7; }
- else if (signquest == 42) { set sign_q,83; set sign_sq,8; }
+ else if (signquest == 39) { sign_q = 83; sign_sq = 5; }
+ else if (signquest == 40) { sign_q = 83; sign_sq = 6; }
+ else if (signquest == 41) { sign_q = 83; sign_sq = 7; }
+ else if (signquest == 42) { sign_q = 83; sign_sq = 8; }
// there is no equivilent to sign_q 84
- else if ((signquest >= 43) && (signquest <= 48)) { set sign_q,signquest+42; } // 85-90
+ else if ((signquest >= 43) && (signquest <= 48)) { sign_q = signquest+42; } // 85-90
// 91-92
- else if ((signquest >= 49) && (signquest <= 52)) { set sign_q,signquest+44; } // 93-96
+ else if ((signquest >= 49) && (signquest <= 52)) { sign_q = signquest+44; } // 93-96
// signlaichin97-99
- else if (signquest == 53) { set sign_q,100; }
+ else if (signquest == 53) { sign_q = 100; }
// 101-116
- else if (signquest == 54) { set sign_q,117; }
- else if (signquest == 55) { set sign_q,118; }
+ else if (signquest == 54) { sign_q = 117; }
+ else if (signquest == 55) { sign_q = 118; }
// 119-126
- else if (signquest == 56) { set sign_q,127; }
+ else if (signquest == 56) { sign_q = 127; }
// 128
- else if (signquest == 57) { set sign_q,129; }
- else if (signquest == 58) { set sign_q,130; }
+ else if (signquest == 57) { sign_q = 129; }
+ else if (signquest == 58) { sign_q = 130; }
// 131-136
- else if ((signquest >= 59) && (signquest <= 66)) { set sign_q,signquest+78; } // 137-144
+ else if ((signquest >= 59) && (signquest <= 66)) { sign_q = signquest+78; } // 137-144
// 144-199
// Attmept to save using the intermediate variables.
- if (sign_fail == 1) { set sign_q,200; }
- else if (sign_fail >= 2) { set sign_q,201; }
+ if (sign_fail == 1) { sign_q = 200; }
+ else if (sign_fail >= 2) { sign_q = 201; }
- if (ariantest >= 2) { set sign_q,ariantest+3; }
- if (gaanantest == 1) { set sign_q,12; }
+ if (ariantest >= 2) { sign_q = ariantest+3; }
+ if (gaanantest == 1) { sign_q = 12; }
- if (SignJore == 1) { set sign_q,16; }
- if (ScareAlchSign == 1) { set sign_q,18; }
+ if (SignJore == 1) { sign_q = 16; }
+ if (ScareAlchSign == 1) { sign_q = 18; }
- if (dearles_test == 1) { set sign_q,28; }
- else if (dearles_test == 2) { set sign_q,29; }
- else if (dearles_test == 3) { set sign_q,30; }
+ if (dearles_test == 1) { sign_q = 28; }
+ else if (dearles_test == 2) { sign_q = 29; }
+ else if (dearles_test == 3) { sign_q = 30; }
- if (SignDance == 1) { set sign_q,32; }
- else if (SignDance == 2) { set sign_q,33; }
+ if (SignDance == 1) { sign_q = 32; }
+ else if (SignDance == 2) { sign_q = 33; }
- if ((bakerlan_test >= 1) && (bakerlan_test <= 3)) { set sign_q,bakerlan_test+35; }
- else if ((bakerlan_test >= 4) && (bakerlan_test <= 6)) { set sign_q,bakerlan_test+36; }
- else if ((bakerlan_test >= 7) && (bakerlan_test <= 13)) { set sign_q,bakerlan_test+39; }
+ if ((bakerlan_test >= 1) && (bakerlan_test <= 3)) { sign_q = bakerlan_test+35; }
+ else if ((bakerlan_test >= 4) && (bakerlan_test <= 6)) { sign_q = bakerlan_test+36; }
+ else if ((bakerlan_test >= 7) && (bakerlan_test <= 13)) { sign_q = bakerlan_test+39; }
- if ((signanvil >= 1) && (signanvil <= 4)) { set sign_sq,signanvil+57; }
+ if ((signanvil >= 1) && (signanvil <= 4)) { sign_sq = signanvil+57; }
// Because of the horrible way this was scripted, it's incompatable
// With the new script, So I am resetting the quest to the start
@@ -12569,69 +12568,69 @@ function script F_UpdateSignVars {
mes "^FF0000pieces on the ground and they vanish! Perhaps you should talk to Lachin.^000000";
delitem 7306,countitem(7306); //Fragment_Of_Soul
delitem 7307,countitem(7307); //Whisper_Of_Soul
- set sign_q,rand(97,100);
+ sign_q = rand(97,100);
}
// Same BS as above, unable to save pickup time for 'The Sign' from Engel.
if (signengelhour) {
mes "^FF0000You see that Engel has forgotten to look at 'The Sign', how you got it back is a mystery too you, but you should remind Engel that he needs to look at it.^000000";
getitem 7314,1; //The_Sign
- set sign_q,139;
+ sign_q = 139;
}
- if (Sign_Branch8A == 1) { set sign_q,119; }
- else if (Sign_Branch8A == 2) { set sign_q,120; }
- else if (Sign_Branch8A == 3) { set sign_q,122; }
- else if (Sign_Branch8A == 4) { set sign_q,124; }
- else if (Sign_Branch8A == 5) { set sign_q,134; }
- else if ((Sign_Branch8A == 7) || (Sign_Branch8A == 8)) { set sign_q,126; }
+ if (Sign_Branch8A == 1) { sign_q = 119; }
+ else if (Sign_Branch8A == 2) { sign_q = 120; }
+ else if (Sign_Branch8A == 3) { sign_q = 122; }
+ else if (Sign_Branch8A == 4) { sign_q = 124; }
+ else if (Sign_Branch8A == 5) { sign_q = 134; }
+ else if ((Sign_Branch8A == 7) || (Sign_Branch8A == 8)) { sign_q = 126; }
// Incompatable with the new version.
if (Sign_Branch8B > 0) {
mes "^FF0000Something is wrong, perhaps you should go talk to Serin again.^000000";
- set sign_q,132;
+ sign_q = 132;
}
// Incompatable with the new version. Again.
if (Sign_Branch2B) {
- set sign_q,91;
+ sign_q = 91;
}
// Unable to save when the Sign should be picked up from Metz
if (signmetzhour) {
mes "^FF0000You see that Metz has forgotten to look at 'The Sign', how you got it back is a mystery too you, but you should remind Metz that he needs to look at it.^000000";
getitem 7314,1; //The_Sign
- set sign_q,138;
+ sign_q = 138;
}
// Clear old variables.
- set signquest,0;
- set sign_fail,0;
- set gaananpoint,0;
- set gaanantest,0;
- set arianstest,0;
- set SignJore,0;
- set ScareAlchSign,0;
- set dearles_test,0;
- set SignDance,0;
- set bakerlan_test,0;
- set signanvil,0;
- set signengelhour,0;
- set signlaichin,0;
- set Sign_Seal1,0;
- set Sign_Seal2,0;
- set Sign_Seal3,0;
- set Sign_Seal4,0;
- set Sign_Seal1$,"";
- set Sign_Seal2$,"";
- set Sign_Seal3$,"";
- set Sign_Seal4$,"";
- set brokenseal,0;
- set Sign_Branch8A,0;
- set Sign_Branch8B,0;
- set Sign_Branch2B,0;
- set serinring,0;
- set signmetzhour,0;
+ signquest = 0;
+ sign_fail = 0;
+ gaananpoint = 0;
+ gaanantest = 0;
+ arianstest = 0;
+ SignJore = 0;
+ ScareAlchSign = 0;
+ dearles_test = 0;
+ SignDance = 0;
+ bakerlan_test = 0;
+ signanvil = 0;
+ signengelhour = 0;
+ signlaichin = 0;
+ Sign_Seal1 = 0;
+ Sign_Seal2 = 0;
+ Sign_Seal3 = 0;
+ Sign_Seal4 = 0;
+ Sign_Seal1$ = "";
+ Sign_Seal2$ = "";
+ Sign_Seal3$ = "";
+ Sign_Seal4$ = "";
+ brokenseal = 0;
+ Sign_Branch8A = 0;
+ Sign_Branch8B = 0;
+ Sign_Branch2B = 0;
+ serinring = 0;
+ signmetzhour = 0;
}
return;
}
diff --git a/npc/re/cities/brasilis.txt b/npc/re/cities/brasilis.txt
index 405ce486c..417dc87b8 100644
--- a/npc/re/cities/brasilis.txt
+++ b/npc/re/cities/brasilis.txt
@@ -132,7 +132,7 @@ brasilis,137,77,5 script Ice-Cream Maker 4_M_03,{
else
break;
}
- set .@icecream_hap,.@input*100;
+ .@icecream_hap = .@input*100;
if (Zeny < .@icecream_hap) {
mes "[Ice Cream Maker]";
mes "Dood~! You don't have enough money.";
diff --git a/npc/re/cities/dewata.txt b/npc/re/cities/dewata.txt
index 1205a4de1..022d3d715 100644
--- a/npc/re/cities/dewata.txt
+++ b/npc/re/cities/dewata.txt
@@ -278,12 +278,12 @@ dewata,146,109,5 script Restauranteur#dew 4_COOK,{
case 1:
mes "[Restauranteur]";
mes "This is Nasi Goreng fried with my special sauce plus egg fry on the top. It only costs ^0000FF5000^000000 Zeny.";
- set .@food,11532;
+ .@food = 11532;
break;
case 2:
mes "[Restauranteur]";
mes "This is the Satay, a slice of meat skewered and grilled over Palm fruit charcoal. It costs only ^0000FF5000^000000 Zeny.";
- set .@food,11533;
+ .@food = 11533;
break;
}
next;
@@ -474,9 +474,9 @@ dewata,89,191,6 script Small Shrine#dew1 CLEAR_NPC,{
mes "- Cancelled. -";
close;
} else if (.@input <= 50000)
- set .@good_luck, rand(1,10000);
+ .@good_luck = rand(1,10000);
else
- set .@good_luck, rand(1,5000);
+ .@good_luck = rand(1,5000);
if (.@input > Zeny) {
mes "- Not enough Zeny. -";
close;
@@ -498,10 +498,10 @@ dewata,89,191,6 script Small Shrine#dew1 CLEAR_NPC,{
1,1,2,2,2,2,4,4,8,8,8,16,16,16,16,16,32,32,32,32,32,32,64,64,64,128,128,128;
if (.@good_luck == 7 || .@good_luck == 77 || .@good_luck == 777 || .@good_luck == 7777)
- set .@bonus,1;
- for(set .@i,0; .@i<getarraysize(.@wishes$); set .@i,.@i+1) {
+ .@bonus = 1;
+ for(.@i = 0; .@i<getarraysize(.@wishes$); ++.@i) {
if (compare(.@wish$,.@wishes$[.@i])) {
- set .@stat, .@stat | .@index[.@i];
+ .@stat |= .@index[.@i];
break;
}
}
diff --git a/npc/re/cities/izlude.txt b/npc/re/cities/izlude.txt
index 7e37f9de2..6c6734cd1 100644
--- a/npc/re/cities/izlude.txt
+++ b/npc/re/cities/izlude.txt
@@ -89,7 +89,7 @@ function script F_IzludeChannel {
mes "I can send you to another copy of Izlude.";
mes "Do you want to go to another copy?";
next;
- set .@i, select(getarg(0)+":Never mind");
+ .@i = select(getarg(0)+":Never mind");
if (.@i < 6) {
setarray .@maps$[1],"izlude","izlude_a","izlude_b","izlude_c","izlude_d";
savepoint .@maps$[.@i],128,98;
diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt
index e8cfdb615..7e597a140 100644
--- a/npc/re/cities/malangdo.txt
+++ b/npc/re/cities/malangdo.txt
@@ -19,7 +19,7 @@
// Malangdo Transportation :: malangdo_go
//============================================================
- script Dolangmal -1,{
- if (checkquest(5091) == -1) {
+ if (!questprogress(5091)) {
mes "[Dolangmal]";
mes "Hey~! Hi human~ This is Mr. Dolangmal. kakaka~";
next;
@@ -27,7 +27,7 @@
mes "We are sent to here to take you to the heaven of cats, ^A2314BMalangdo^000000.";
next;
mes "[Dolangmal]";
- set .@s$,"Why don't you go to ^A2314BMalangdo^000000?";
+ .@s$ = "Why don't you go to ^A2314BMalangdo^000000?";
switch(atoi(strnpcinfo(2))) {
case 1: mes "How is that? The crowded city of Prontera is good, but why don't you go our heaven of the cats, ^A2314BMalangdo^000000?"; break;
case 2: mes "Why don't you go to ^A2314BMalangdo^000000? That place is better than Geffen, where there are only crowds of simple honest wizards."; break;
@@ -165,17 +165,17 @@ mora,57,150,4 duplicate(Dolangmal) Dolangmal#9 4_CAT_DOWN
mes "Meow? Huh?";
next;
if (ep13_yong1 == 0) {
- set .@price,1000;
- set .@s1$,"Huh! You are so annoying. Let me send you to ^A2314BMalangdo^000000 for ^0000FF1000 Zeny^000000.";
- set .@s2$,"Money? Where is the money? You can't go anywhere without the money. Shame on you.";
+ .@price = 1000;
+ .@s1$ = "Huh! You are so annoying. Let me send you to ^A2314BMalangdo^000000 for ^0000FF1000 Zeny^000000.";
+ .@s2$ = "Money? Where is the money? You can't go anywhere without the money. Shame on you.";
} else if (ep13_yong1 < 60) {
- set .@price,999;
- set .@s1$,"You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to ^A2314BMalangdo^000000, because you have relationship with fleet.";
- set .@s2$,"Where is the money? You don't have a sense of honor.";
+ .@price = 999;
+ .@s1$ = "You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to ^A2314BMalangdo^000000, because you have relationship with fleet.";
+ .@s2$ = "Where is the money? You don't have a sense of honor.";
} else if (ep13_yong1 > 59 && ep13_yong1 < 80) {
- set .@price,500;
- set .@s1$,"You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to ^A2314BMalangdo^000000.";
- set .@s2$,"You don't have any money for paying 50% discount price? I can't believe it.";
+ .@price = 500;
+ .@s1$ = "You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to ^A2314BMalangdo^000000.";
+ .@s2$ = "You don't have any money for paying 50% discount price? I can't believe it.";
} else {
mes "[Odgnalam]";
mes "You are a hero of cat's fleet. Your activity is the legend between us.";
@@ -218,36 +218,36 @@ malangdo,219,86,4 script Kong#malang 4_CAT_SAILOR2,{
mes "The fleet has a service to Izlude and Alberta.";
next;
if (ep13_yong1 == 0) {
- set .@price,1000;
- set .@s1$, "1000 zeny";
- set .@s2$, "Have a nice day in Malangdo.";
- set .@no_money$, "It is difficult for free.";
- set .@yes_money$, "Have a nice trip.";
+ .@price = 1000;
+ .@s1$ = "1000 zeny";
+ .@s2$ = "Have a nice day in Malangdo.";
+ .@no_money$ = "It is difficult for free.";
+ .@yes_money$ = "Have a nice trip.";
mes "[Kong]";
mes "The fee of ship is only 1000 zeny, where do you want to go?";
next;
} else if (ep13_yong1 < 60) {
- set .@price,999;
- set .@s1$,"999 zeny";
- set .@s2$, "Have a full of fortune day in Malangdo...";
- set .@no_money$, "It is difficult even though you have a relationship with the fleet.";
- set .@yes_money$, "Thanks, have a wonderful trip.";
+ .@price = 999;
+ .@s1$ = "999 zeny";
+ .@s2$ = "Have a full of fortune day in Malangdo...";
+ .@no_money$ = "It is difficult even though you have a relationship with the fleet.";
+ .@yes_money$ = "Thanks, have a wonderful trip.";
mes "[Kong]";
mes "You have a connection with our fleet. Apply special price 999 zeny. Where do you want to go?";
next;
} else if (ep13_yong1 > 59 && ep13_yong1 < 80) {
- set .@price,500;
- set .@s1$,"500 zeny";
- set .@s2$, "There are full of fortune and jackpot in Malangdo.";
- set .@no_money$, "Oh my god. You don't have 500 zeny? It is difficult for free.";
- set .@yes_money$, "Have a nice trip and come again.";
+ .@price = 500;
+ .@s1$ = "500 zeny";
+ .@s2$ = "There are full of fortune and jackpot in Malangdo.";
+ .@no_money$ = "Oh my god. You don't have 500 zeny? It is difficult for free.";
+ .@yes_money$ = "Have a nice trip and come again.";
mes "[Kong]";
mes "Wow~ You contributed to our fleet a lot. Alright!! Special discount price 500 zeny. Where do you want to go?";
next;
} else {
- set .@price,0;
- set .@s1$,"Free for the hero of our fleet!!";
- set .@s2$, "No one objects to the hero of our fleet staying in Malangdo...";
+ .@price = 0;
+ .@s1$ = "Free for the hero of our fleet!!";
+ .@s2$ = "No one objects to the hero of our fleet staying in Malangdo...";
mes "[Kong]";
mes "Ah... You are the legendary hero of our cat's fleet.";
next;
@@ -255,7 +255,7 @@ malangdo,219,86,4 script Kong#malang 4_CAT_SAILOR2,{
mes "We can't charge the hero of our fleet. What is your destination?";
next;
}
- set .@i, select("- Izlude destination --- "+.@s1$+":- Alberta destination --- "+.@s1$+":- Stay on Malangdo");
+ .@i = select("- Izlude destination --- "+.@s1$+":- Alberta destination --- "+.@s1$+":- Stay on Malangdo");
mes "[Kong]";
if (.@i == 3) {
mes .@s2$;
diff --git a/npc/re/cities/malaya.txt b/npc/re/cities/malaya.txt
index da19e67c5..f806d4908 100644
--- a/npc/re/cities/malaya.txt
+++ b/npc/re/cities/malaya.txt
@@ -142,9 +142,9 @@ OnInit:
case 9: setarray .@npc$,"09","10","11"; break;
default: end;
}
- set .@size, getarraysize(.@npc$);
- set .@rand, rand(.@size);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ .@size = getarraysize(.@npc$);
+ .@rand = rand(.@size);
+ for(.@i = 0; .@i<.@size; ++.@i)
donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
end;
OnEnable:
@@ -159,9 +159,9 @@ OnBingx2:
case 5: setarray .@npc$,"06","07","08"; break;
case 9: setarray .@npc$,"10","11"; break;
}
- set .@size, getarraysize(.@npc$);
- set .@rand, rand(.@size);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ .@size = getarraysize(.@npc$);
+ .@rand = rand(.@size);
+ for(.@i = 0; .@i<.@size; ++.@i)
donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
donpcevent strnpcinfo(0)+"::OnDisable";
end;
@@ -174,9 +174,9 @@ OnTouch:
}
if (rand(1,5)%2) {
switch(atoi(strnpcinfo(2))) {
- case 1: set $ma_name04$,strcharinfo(0); break;
- case 5: set $ma_name05$,strcharinfo(0); break;
- case 9: set $ma_name06$,strcharinfo(0); break;
+ case 1: $ma_name04$ = strcharinfo(0); break;
+ case 5: $ma_name05$ = strcharinfo(0); break;
+ case 9: $ma_name06$ = strcharinfo(0); break;
}
}
donpcevent strnpcinfo(0)+"::OnBingx2";
@@ -210,23 +210,23 @@ OnBingx2:
case 10: setarray .@npc$,"09","11"; break;
case 11: setarray .@npc$,"09","10"; break;
}
- set .@size, getarraysize(.@npc$);
- set .@rand, rand(.@size);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
+ .@size = getarraysize(.@npc$);
+ .@rand = rand(.@size);
+ for(.@i = 0; .@i<.@size; ++.@i)
donpcevent "Unidentified Creature#"+.@npc$[.@i]+"::"+((.@i == .@rand)?"OnEnable":"OnDisable");
donpcevent strnpcinfo(0)+"::OnDisable";
end;
OnTouch:
- set .@i, atoi(strnpcinfo(2));
+ .@i = atoi(strnpcinfo(2));
if (.@i%4 == 2) {
if (getcharid(0) == getpartyleader(getcharid(1),2))
- set .@pass,1;
+ .@pass = 1;
} else if (.@i%4 == 3) {
- if (checkquest(4229,PLAYTIME) > -1 && checkquest(9223,PLAYTIME) > -1 && checkquest(12278,PLAYTIME) > -1)
- set .@pass,1;
+ if (questprogress(4229,PLAYTIME) && questprogress(9223,PLAYTIME) && questprogress(12278,PLAYTIME))
+ .@pass = 1;
} else if (.@i%4 == 0) {
if (rand(1,100)%10 == 7)
- set .@pass,1;
+ .@pass = 1;
}
if (.@pass) {
if ($ma_name04$ == strcharinfo(0) || $ma_name05$ == strcharinfo(0) || $ma_name06$ == strcharinfo(0)) {
@@ -239,16 +239,16 @@ OnTouch:
case 2:
case 3:
case 4:
- set $ma_name04$,strcharinfo(0);
+ $ma_name04$ = strcharinfo(0);
break;
case 6:
case 7:
case 8:
- set $ma_name05$,strcharinfo(0);
+ $ma_name05$ = strcharinfo(0);
break;
case 10:
case 11:
- set $ma_name06$,strcharinfo(0);
+ $ma_name06$ = strcharinfo(0);
break;
}
}
@@ -438,7 +438,7 @@ malaya,88,252,4 script Little Girl#ma04 4_F_BARYO_GIRL,{
close;
}
if (rand(1,3) == 2) {
- set .@name$, getd("$ma_name0"+rand(1,6)+"$");
+ .@name$ = getd("$ma_name0"+rand(1,6)+"$");
mes "[Little Girl]";
mes "A little while ago "+.@name$+" came and told me a fun story.";
next;
@@ -513,7 +513,7 @@ malaya,363,283,4 script Local#ma06 4_M_MALAYA,{
mes "The village is chaotic these days. If you see someone with red eyes, try not to stare at their eyes.";
close;
}
- set .@name$, getd("$ma_name0"+rand(1,6)+"$");
+ .@name$ = getd("$ma_name0"+rand(1,6)+"$");
switch(rand(1,6)) {
case 1:
mes "[Local]";
@@ -611,8 +611,8 @@ malaya,63,185,4 script Woman#ma08 4_F_MALAYA,{
close;
}
if (rand(1,3) == 2) {
- set .@name$, getd("$ma_name0"+rand(1,6)+"$");
- set .@rand, rand(1,10);
+ .@name$ = getd("$ma_name0"+rand(1,6)+"$");
+ .@rand = rand(1,10);
if (.@rand < 5) {
mes "[Woman]";
mes "I like fun stories. Not so long ago, "+.@name$+" came and told me a funny story.";
@@ -747,19 +747,19 @@ function script F_Malaya_Jeepney {
viewpoint 1, 237, 240, 1, 0xF7E009;
viewpoint 1, 67 , 44 , 2, 0xF7E009;
viewpoint 1, 282, 129, 3, 0xF7E009;
- set .@zif_in, 12;
+ .@zif_in = 12;
break;
case 2:
viewpoint 1, 134, 250, 4, 0xF7E009;
viewpoint 1, 341, 153, 5, 0xF7E009;
viewpoint 1, 293, 290, 6, 0xF7E009;
- set .@zif_in, 30;
+ .@zif_in = 30;
break;
case 3:
viewpoint 1, 242, 221, 7, 0xF7E009;
viewpoint 1, 62 , 245, 8, 0xF7E009;
viewpoint 1, 257, 58 , 9, 0xF7E009;
- set .@zif_in, 60;
+ .@zif_in = 60;
break;
}
mes "[Jeepney Driver]";
diff --git a/npc/re/events/halloween_2014.txt b/npc/re/events/halloween_2014.txt
new file mode 100644
index 000000000..1a9635258
--- /dev/null
+++ b/npc/re/events/halloween_2014.txt
@@ -0,0 +1,2556 @@
+//===== Hercules Script ========================================================
+//= Halloween Event (2014)
+//===== By: ====================================================================
+//= Kisuka
+//===== Current Version: =======================================================
+//= 1.0.0
+//===== File Encoding ==========================================================
+//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
+//===== Description: ===========================================================
+//= The Official 2014 Halloween Event
+//=
+//= Help an Exhausted Priest collect souls in exchange for Candy Holders.
+//= Help some spirits in Niflheim figure out which one among them isn't dead.
+//= Collect 10 Red Scarf and 10 Hanging Doll for a spirit by the name of Loru.
+//= Hunt 20 Hylozoists and 20 Bloody Murderers for a spirit by the name of Devi.
+//===== Additional Comments: ===================================================
+//= 1.0.0 Initial Release. [Kisuka]
+//==============================================================================
+
+//= Exhausted Priest
+//==============================================================================
+- script Exhausted Priest#14hal::Hal14Priest 4_M_MINISTER,{
+ if (!checkweight("Orcish_Axe", 3)) {
+ mes "[Exhausted Priest]";
+ mes "Why don't you reduce your weight to catch the soul?";
+ mes "They are faster than you think.";
+ close;
+ }
+ if (BaseLevel < 50) {
+ mes "[Mighty Priest]";
+ mes "I..I am too exhausted!";
+ mes "Oh..Dear Odin, why have you caused this pain for me...";
+ next;
+ mes "[Mighty Priest]";
+ mes "I hope that someone very strong and patient will help me..";
+ close;
+ } else {
+ if (questprogress(14450) == 2) {
+ mes "[Mighty Priest]";
+ mes ""+(Sex ? "Brother" : "Sister")+", it's good to see you again!";
+ mes "came here to see me because of that?";
+ next;
+ mes "[Mighty Priest]";
+ mes "You brought the Soul, right?";
+ mes "Let's take a look at it.";
+ next;
+ if (countitem("Captured_Soul") > 4 && countitem("Black_Soul") > 0) {
+
+ mes "[Mighty Priest]";
+ mes "Wow, this is so strong!";
+ mes "You may be better than our priests!";
+ next;
+ mes "[Mighty Priest]";
+ mes "Let's keep doing this!";
+ mes "Here you are. See you next time!";
+ close2;
+ delitem Captured_Soul, 5;
+ delitem Black_Soul, 1;
+ getitem Something_Candy_Holder, 1;
+ getitem DARK_INVITATION, 1;
+ end;
+ } else {
+ mes "[Mighty Priest]";
+ mes "oh.. it's weird... Did they run away??";
+ mes "You should hold them firmly, or else they will get away.";
+ next;
+ mes "[Mighty Priest]";
+ mes "Well, can you catch them again?";
+ mes "You need to bring ^0000cd5 Captured Souls^000000 from Wandering Soul, and ^0000cd1 Black Soul^000000 from Dark Soul.";
+ next;
+ mes "[Mighty Priest]";
+ mes "How is that?";
+ mes "Too easy, huh?";
+ close;
+ }
+ } else if (questprogress(14450) == 1) {
+ if (countitem("Captured_Soul") > 2 && countitem("Black_Soul") > 0) {
+ mes "[Mighty Priest]";
+ mes "Welcome! Did you bring the soul?";
+ mes "Let me see~";
+ next;
+ mes "[Mighty Priest]";
+ mes "Wow, you captured a crucial one!";
+ mes "I knew you would do well!";
+ next;
+ mes "[Mighty Priest]";
+ mes "Didn't I say I would give you some gift?";
+ mes "Let me give you some snacks from the Order...";
+ next;
+ mes "[Mighty Priest]";
+ mes "I feel a bit uncomfortable for this though... oops.. no! It got a lot of sweets!!";
+ mes "Please take this invitation too. This is a Niflheim Express Ticket.";
+ next;
+ mes "[Mighty Priest]";
+ mes "It would be a great chance to go sight seeing there.";
+ mes "However, I'm too busy to go there myself.";
+ next;
+ mes "[Mighty Priest]";
+ mes "Oops! I almost forgot to say this.";
+ mes "If you bring 5 Captured Souls and 1 Black Soul next time, I will give you another invitation and Candy Holder.";
+ next;
+ mes "[Mighty Priest]";
+ mes "You might think that you got more gifts next time, but it's just not, actually!";
+ emotion e_heh, "Exhausted Priest#pron14hal";
+ next;
+ mes "[Mighty Priest]";
+ mes "You can get them from any of the other priests in town.";
+ mes "See you next time!";
+ close2;
+ delitem Captured_Soul, 3;
+ delitem Black_Soul, 1;
+ getitem Something_Candy_Holder, 1;
+ getitem DARK_INVITATION, 1;
+ completequest 14450;
+ end;
+ } else {
+ mes "[Mighty Priest]";
+ mes "Welcome! Did you bring the soul?";
+ mes "Let me see~";
+ next;
+ mes "[Mighty Priest]";
+ mes "oh.. it's weird... Did they run away??";
+ mes "You should hold them firmly, or else they will get away.";
+ next;
+ mes "[Mighty Priest]";
+ mes "Well, can you catch them again?";
+ mes "You need to bring ^0000cd5 Captured Souls^000000 from Wandering Soul, and ^0000cd 1 Black Soul^000000 from Dark Soul.";
+ next;
+ mes "[Mighty Priest]";
+ mes "How is that?";
+ mes "Too easy, huh?";
+ close;
+ }
+ } else if (!questprogress(14450)) {
+ mes "[Mighty Priest]";
+ mes "Ha... no time to rest!";
+ mes "My arms and legs hurt~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "If you're so tired... why don't you heal?";
+ next;
+ mes "[Mighty Priest]";
+ mes "Wow!! You're a genius!!!";
+ mes "Hold on...";
+ next;
+ mes "[Mighty Priest]";
+ mes "Dear Odin, show me your love!";
+ mes "Heal me with your love! Great!! Bam!!!!!";
+ specialeffect EF_HEAL2,AREA,"Exhausted Priest#pron14hal";
+ emotion e_swt, 1;
+ next;
+ mes "[Mighty Priest]";
+ mes "I feel much better now!";
+ mes ""+(Sex ? "Brother" : "Sister")+", thank you so much for waking me up.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What made you so tired?";
+ next;
+ mes "[Mighty Priest]";
+ mes ""+(Sex ? "Brother" : "Sister")+", you didn't have any damage yet?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What happened to you?";
+ next;
+ mes "[Mighty Priest]";
+ mes "Ha? You don't know?";
+ mes "You don't know about the power of the dead in Niflheim during Halloween?";
+ next;
+ mes "[Mighty Priest]";
+ mes "It doesn't matter if just normal dead people came here...";
+ next;
+ mes "[Mighty Priest]";
+ mes "But the problem is... dangerous people are coming here too.";
+ next;
+ mes "[Mighty Priest]";
+ mes "We priests have been given an order to capture all the dangerous one.";
+ next;
+ mes "[Mighty Priest]";
+ mes "However, our forces are so limited. We're getting very exhausted.";
+ next;
+ mes "[Mighty Priest]";
+ mes "Oh, right!!";
+ mes "Could you maybe help me out?";
+ next;
+ mes "[Mighty Priest]";
+ mes "They would not damage you at all, "+(Sex ? "brother" : "sister")+".";
+ mes "I would also give you a reward for the trouble.";
+ next;
+ mes "[Mighty Priest]";
+ mes "What do you think?";
+ mes "Do you want to help out this pitiful priest?";
+ next;
+ if(select("Yes I want to help.", "No, I don't think so.") == 2) {
+ emotion e_sob, "Exhausted Priest#pron14hal";
+ mes "[Mighty Priest]";
+ mes "Well now...";
+ mes "You could have said it more kindly... even if you don't want to...";
+ next;
+ mes "[Mighty Priest]";
+ mes "I'm sorry for disturbing you.";
+ mes "Excuse me while I go capture more dangerous dead people now.";
+ close;
+ }
+ mes "[Mighty Priest]";
+ mes "Faith in humanity restored!!";
+ mes "So, may I ask a favor of you?";
+ next;
+ mes "[Mighty Priest]";
+ mes "Can you find ^0000cdWandering Souls^000000 in the fields? They should not be here.";
+ next;
+ mes "[Mighty Priest]";
+ mes "They got the fake skin to come to land of the living, so you don't have to capture them directly.";
+ next;
+ mes "[Mighty Priest]";
+ mes "If you killed them, they will drop a Captured Soul. You need to bring the ^0000cdCaptured Souls^000000.";
+ mes "Also, if you kill any Black Souls, then you should bring ^0000cdBlack Souls^000000 too.";
+ next;
+ mes "[Mighty Priest]";
+ mes "Let me see... since this is your first attempt, I want you to bring back only a small amount.";
+ mes "^0000cd3 Captured Souls, 1 Black Soul^000000!";
+ mes "How is that? Can you do this??";
+ next;
+ mes "[Mighty Priest]";
+ mes "See you soon! I will wait for your return.";
+ close2;
+ setquest 14450;
+ end;
+ }
+ }
+}
+
+alberta,114,66,5 duplicate(Hal14Priest) Exhausted Priest#albe14h 4_M_MINISTER
+aldebaran,147,117,3 duplicate(Hal14Priest) Exhausted Priest#alde14h 4_M_MINISTER
+geffen,123,75,3 duplicate(Hal14Priest) Exhausted Priest#gef14h 4_M_MINISTER
+morocc,150,103,5 duplicate(Hal14Priest) Exhausted Priest#moc14h 4_M_MINISTER
+payon,179,107,3 duplicate(Hal14Priest) Exhausted Priest#pay14h 4_M_MINISTER
+prontera,156,194,3 duplicate(Hal14Priest) Exhausted Priest#pron14h 4_M_MINISTER
+yuno,162,192,3 duplicate(Hal14Priest) Exhausted Priest#yuno14h 4_M_MINISTER
+
+//= Bolak
+//==============================================================================
+niflheim,196,185,3 script Bolak#14hal 4_M_DRAKE,{
+ if (!checkweight("Orcish_Axe", 3)) {
+ mes "[Bolak]";
+ mes "You have too many items.";
+ mes "Please come back after making space in your inventory!";
+ close;
+ }
+ if (BaseLevel < 50) {
+ mes "[Bolak]";
+ mes "Only dead people can be here.";
+ mes "Or someone strong...";
+ next;
+ mes "[Bolak]";
+ mes "It seems you are neither.";
+ close;
+ } else {
+ if (questprogress(14457) == 2) {
+ mes "[Bolak]";
+ mes "Are you enjoying the festival?";
+ mes "Maybe it's too hard for you to enjoy?";
+ next;
+ mes "[Bolak]";
+ mes "If you come back again later, come and find me.";
+ mes "I will give you a job.";
+ close;
+ } else if (questprogress(14457) == 1) {
+ mes "[Jack]";
+ mes "Someone's Coming!";
+ next;
+ mes "[Bolak]";
+ mes "Who?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I came back!";
+ next;
+ mes "[Bolak]";
+ mes "Oh, have you arrived?";
+ next;
+ mes "[Loru]";
+ mes "You know, that guy, fake-dead man, he suddenly-";
+ next;
+ mes "[Devi]";
+ mes "disappeared.";
+ next;
+ mes "[Loru]";
+ mes "I was going to say that!";
+ mes "Don't interrupt me when I'm speaking!";
+ next;
+ mes "[Jack]";
+ mes "I am wondering what have done-";
+ next;
+ mes "[Bolak]";
+ mes "yeah, you've done it? right??";
+ next;
+ mes "[Nathan]";
+ mes "Aww~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes, I've had help from church this time as well.";
+ mes "His body is still alive. His soul is not supposed to come here yet.";
+ next;
+ mes "[Bolak]";
+ mes "Huh, that is great!";
+ next;
+ mes "[Nathan]";
+ mes "Mama~";
+ next;
+ mes "[Loru]";
+ mes "Are you jealous??";
+ next;
+ mes "[Bolak]";
+ mes "No way!";
+ next;
+ mes "[Jack]";
+ mes "The suffering continues day in, and day out";
+ next;
+ mes "[Bolak]";
+ mes "I like this place, look how peaceful and joyful this place is!";
+ next;
+ mes "[Devi]";
+ mes "It seems like you're jealous.";
+ next;
+ mes "[Bolak]";
+ mes "No, I said no! Anyway, maybe having hard time for good deed.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "By the way, that guy.. Richard? Why is he still here?";
+ next;
+ mes "[Loru]";
+ mes "Ah.. No need to bother.";
+ mes "Ah.. Bolak put that thing there, he feels like it is a bit weird without having Richard around here.";
+ next;
+ mes "[Devi]";
+ mes "He complains that he's fake, but he seems to be attached to him a lot.";
+ next;
+ mes "[Jack]";
+ mes "Hmm, it is weird-";
+ next;
+ mes "[Bolak]";
+ mes "Ah you know, look at us standing now, in a perfect circle.";
+ mes "If one person is missing, the shape would look weird!!!";
+ next;
+ mes "[Loru]";
+ mes "We would just need to move a bit...";
+ mes "Don't make excuses.";
+ next;
+ mes "[Bolak]";
+ mes "Stop saying nonsense!";
+ mes "Hey! Give me something of yours!";
+ next;
+ mes "[Loru]";
+ mes "Why??";
+ next;
+ mes "[Bolak]";
+ mes "We, of course, need to give a reward to this person who had a hard time!";
+ next;
+ mes "[Loru]";
+ mes "Are you blackmailing us??";
+ next;
+ mes "[Devi]";
+ mes "I don't have much...";
+ next;
+ mes "[Jack]";
+ mes "Come empty.. return empty...-";
+ next;
+ mes "[Nathan]";
+ mes "Bba...bba...";
+ next;
+ mes "[Bolak]";
+ mes "Nathan you are okay, I will do it for you.";
+ mes "Hey, show what you have!";
+ next;
+ mes "[Loru]";
+ mes "The only thing I have is this. Take it.";
+ next;
+ mes "[Devi]";
+ mes "Yeah, me too.";
+ next;
+ mes "[Bolak]";
+ mes "Sorry to give you such a small gift, please take this as a sign of our gratitude.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "wow... I don't know what to say...";
+ next;
+ mes "[Bolak]";
+ mes "It's nothing special, just take it!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Thank you so much, see you around.";
+ next;
+ mes "[Loru]";
+ mes "Hey, wait!";
+ mes "Before you go ^0000cdCome here and talk with me.^000000";
+ next;
+ mes "[Devi]";
+ mes "^0000cdYeah, talk with me as well!^000000";
+ next;
+ mes "[Bolak]";
+ mes "what are you guys going to talk about?!";
+ next;
+ mes "[Jack]";
+ mes "The suffering continues day in, and day out...";
+ getitem Something_Candy_Holder, 7;
+ getitem Trans_Candy_Red, 5;
+ getitem Trans_Candy_Blue, 5;
+ getitem Trans_Candy_Yellow, 5;
+ getitem Trans_Candy_Green, 5;
+ completequest 14457;
+ setquest 14458;
+ setquest 14459;
+ close;
+ } else if (questprogress(14456) == 1 || questprogress(14455) == 1 || questprogress(14454) == 1) {
+ mes "[Bolak]";
+ mes "How's it going with the thing?";
+ mes "You are not going to run away, are you?";
+ next;
+ mes "[Bolak]";
+ mes "I prefer a person who has done their work well.";
+ mes "and don't want to be in chaos anymore.";
+ close;
+ } else if (questprogress(14453) == 1) {
+ if (countitem("Sacred_Rosary") > 0) {
+ mes "["+strcharinfo(0)+"]";
+ mes "Will this really work...?";
+ next;
+ mes "[Jack]";
+ mes "Something is coming.. something fierce..!";
+ next;
+ mes "[Bolak]";
+ mes "What is coming?";
+ next;
+ mes "[Nathan]";
+ mes "Aww!!!";
+ next;
+ mes "[Bolak]";
+ mes "Huh???";
+ next;
+ mes "[Loru]";
+ mes "Ah, There! There! that thing working off something weird spirit!";
+ next;
+ mes "[Devi]";
+ mes "Go away!! They've brought a ^0000cdhalidom^000000 to kill us!!!";
+ mes "Go away!!!";
+ emotion e_omg, "Bolak#14hal";
+ emotion e_an, "Devi#14hal";
+ emotion e_omg, "Nathan#14hal";
+ emotion e_omg, "Loru#14hal";
+ emotion e_what, "Richard#14hal01";
+ emotion e_omg, "Jack#14hal";
+ next;
+ mes "[Bolak]";
+ mes "What is your intention bringing us a halidom?!";
+ mes "I asked you to way to distinguish dead men with living one!! You are going to kill us!!!";
+ next;
+ mes "[Jack]";
+ mes "Dead men are already dead-";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "W..Wait, There's a situation!!";
+ mes "Calm down..!";
+ next;
+ mes "[Nathan]";
+ mes "Aww....A..h....bba..bba!!";
+ next;
+ mes "[Bolak]";
+ mes "Whatever situation it is, get that thing out of my sight!!";
+ next;
+ mes "[Richard]";
+ mes "What is going on? what happened?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "^0000cdThat man is a living man^000000!!!";
+ mes "Living men don't react to a halidom!";
+ next;
+ mes "[Loru]";
+ mes "Anyway, get that thing out of my sight!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Okay.";
+ mes "I will get that thing away from here.";
+ specialeffect2 EF_SPRINKLESAND;
+ next;
+ mes "[Bolak]";
+ mes "Much better.";
+ mes "Anyway, I knew this man was living!";
+ next;
+ mes "[Loru]";
+ mes "Well.. that's why he is a bit weird.";
+ mes "Are you showing off that you are living man?";
+ next;
+ mes "[Devi]";
+ mes "Execute him!!!";
+ mes "Make him a dead man!!!";
+ next;
+ mes "[Jack]";
+ mes "Hey guys, let him talk.";
+ next;
+ mes "[Nathan]";
+ mes "Mamang.....";
+ next;
+ mes "[Richard]";
+ mes "This is unfair!!!";
+ mes "I.. I came here yesterday!";
+ next;
+ mes "[Richard]";
+ mes "Ah... I... I... was dead...";
+ mes "I died for sure... I came here... Where strong warriors go...";
+ next;
+ mes "[Richard]";
+ mes "I died!! The fact that I am here is proof!";
+ mes "Isn't that a fake halidom?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hey, calm down. Thaink clearly.";
+ next;
+ mes "[Richard]";
+ mes "I was really a dead man..?";
+ mes "But how come I died?";
+ next;
+ mes "[Jack]";
+ mes "He's speaking nonsense.";
+ next;
+ mes "[Bolak]";
+ mes "Hey, Do you really think we believe in your poor acting?";
+ mes "Do you think we haven't seen a guy like you?";
+ next;
+ mes "[Richard]";
+ mes "Really... It's true! Why would I lie to you guys?!";
+ mes "I died!!! I'm dead... I came here yesterday!";
+ next;
+ mes "[Jack]";
+ mes "If you came here yesterday, there would be ^0000cd someone you might know in living man's country^000000, is that so?";
+ next;
+ mes "[Bolak]";
+ mes "True, if you were dead and came here yesterday, there must be, ^0000cdsomeone who knows about you^000000.";
+ mes "It will be more clear once we ask them.";
+ next;
+ mes "[Bolak]";
+ mes "But in any case, I am not going to the world of the living.";
+ mes "Neither is Nathan.";
+ next;
+ mes "[Nathan]";
+ mes "Da..d?";
+ next;
+ mes "[Loru]";
+ mes "Me neither.";
+ next;
+ mes "[Devi]";
+ mes "Me neither!";
+ next;
+ mes "[Richard]";
+ mes "I won't go either! You guys just want to kick me out of this place!!!";
+ next;
+ mes "[Jack]";
+ mes "There may be someone we can ask a favor from...";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Why... why are you guys looking at me like that?";
+ next;
+ mes "[Bolak]";
+ mes "I am sorry but, you should go there for us.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Why should I?";
+ next;
+ mes "[Loru]";
+ mes "Which makes more sense? A living soul goes to the world of the living, or a dead man?";
+ next;
+ mes "[Devi]";
+ mes "Totally.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hold on! I am here traveling.";
+ mes "I'm just trying to have fun!";
+ next;
+ mes "[Jack]";
+ mes "You will come here again anyway once you die...";
+ next;
+ mes "[Nathan]";
+ mes "Aww~";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm... it seems like I have no choice. I'll go, but where am I going?";
+ next;
+ mes "[Richard]";
+ mes "I... I... died.";
+ next;
+ mes "[Bolak]";
+ mes "Hey, you are asking us where to go?";
+ mes "Where did you live when you were alive?";
+ next;
+ mes "[Jack]";
+ mes "It's ruined...";
+ next;
+ mes "[Richard]";
+ mes "a cold place... snow all year long...";
+ mes "^0000cdWarm place... behind Lutie Santa Clause..^000000";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I will go find it.";
+ next;
+ mes "[Jack]";
+ mes "Hey babe, I will be waiting for you~";
+ next;
+ mes "[Loru]";
+ mes "What kind of joke is that?";
+ next;
+ mes "[Jack]";
+ mes "Just kidding.";
+ delitem Sacred_Rosary, 1;
+ erasequest 14453;
+ setquest 14454;
+ close;
+ } else {
+ mes "[Bolak]";
+ mes "Have you been there? Did you find a solution?";
+ mes "What have you brought? Nothing?";
+ next;
+ mes "[Bolak]";
+ mes "How can you figure out? huh? Is there any way to figure out?";
+ close;
+ }
+ } else if (questprogress(14452) == 1 || questprogress(14451) == 1) {
+ mes "[Bolak]";
+ mes "Have you been there? did you find a solution?";
+ next;
+ mes "[Jack]";
+ mes "I saw... They didn't go any where, they've just been wandering around...";
+ next;
+ mes "[Devi]";
+ mes "Don't go to the cathedral but stay here.";
+ next;
+ mes "[Bolak]";
+ mes "What are you talking about?";
+ mes "Go there! I want to have fun at the festival!";
+ close;
+ } else if (!questprogress(14451)) {
+ mes "[Bolak]";
+ mes "Is that you?";
+ next;
+ emotion e_an, "Devi#14hal";
+ mes "[Devi]";
+ mes "I am not!!! ^0000cdI am not!!!^000000";
+ mes "How dare you!";
+ next;
+ mes "[Bolak]";
+ mes "Then is that you?";
+ next;
+ emotion e_pif, "Richard#14hal01";
+ mes "[Richard]";
+ mes "Huh.. I think it's you. I am suspicious when I see someone fussing around all the time.";
+ next;
+ emotion e_ok, "Loru#14hal";
+ mes "[Loru]";
+ mes "That is true!!!";
+ next;
+ mes "[Bolak]";
+ mes "It's impossible I am a dead man. I've been dead for ^0000cd568 years^000000!";
+ mes "You've been with me this entire time! You know that.";
+ next;
+ mes "[Loru]";
+ mes "You could be a 'fake'!";
+ next;
+ mes "[Nathan]";
+ mes "Da...d¡¦?";
+ next;
+ mes "[Bolak]";
+ mes "Nathan!! Even you doubt your own father?";
+ mes "Come on!";
+ next;
+ mes "[Nathan]";
+ mes "Ma..ma...?";
+ next;
+ mes "[Bolak]";
+ mes "No, I am not your mother!";
+ mes "I am your father!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What is all this about?";
+ next;
+ mes "[Loru]";
+ mes "Wow, a living man! Isn't that him?";
+ next;
+ mes "[Devi]";
+ mes "No, he is different.";
+ next;
+ mes "[Bolak]";
+ mes "Ah yeah, we can ask to him!";
+ mes "As you can see, this place is ^0000cdthe land of the dead^000000.";
+ next;
+ mes "[Bolak]";
+ mes "During this time of year, there's no boundary between the land of the living and the dead.";
+ mes "We can come and go freely, but only dead men are accepted here.";
+ mes "But a foreign substance has come.";
+ next;
+ mes "[Jack]";
+ mes "We don't call people substances.";
+ next;
+ mes "[Devi]";
+ mes "There is a ^0000cdliving man^000000 among us.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Who is that?";
+ next;
+ mes "[Loru]";
+ mes "If we knew, don't you think we would have done something?";
+ next;
+ mes "[Bolak]";
+ mes "Normally it is distinguishable. But we can't figure it out this time.";
+ mes "They all say they are dead men. I really can't find the truth.";
+ next;
+ mes "[Richard]";
+ mes "It's really bizarre that a living man is in a group of dead men.";
+ next;
+ mes "[Nathan]";
+ mes "Aww~";
+ next;
+ mes "[Bolak]";
+ mes "You are not, you are my son. I know you've been a dead man for ^0000cd568 years^000000. I know that.";
+ next;
+ mes "[Loru]";
+ mes "How about that newbie, Richard...?";
+ next;
+ mes "[Richard]";
+ mes "No way... I don't have an arm! You are insulting me! I was fighting with ^0000cd17 men and died^000000!";
+ next;
+ mes "[Devi]";
+ mes "Hmm well, I have a doubt with Loru. You look like a ^0000cdliving man^000000. Don't you?";
+ next;
+ mes "[Loru]";
+ mes "What? Then you are definitely a dead man.";
+ mes "You look like such a mess.";
+ next;
+ mes "[Devi]";
+ mes "Are you insulting me?";
+ next;
+ mes "[Jack]";
+ mes "Well... What do you think about me?";
+ next;
+ mes "[Bolak]";
+ mes "Hey! We've seen each other ^0000cdfor more than 500 years^000000. Come on.";
+ mes "You want to be a newbie?";
+ next;
+ mes "[Jack]";
+ mes "Nah... I am just saying it because nobody has mentioned me..";
+ next;
+ mes "[Bolak]";
+ mes "So who do you think is a living soul among us?";
+ next;
+ switch(select("Bolak", "Jack", "Loru", "Devi", "Richard")) {
+ case 1:
+ mes "[Bolak]";
+ mes "What? You think I am a living soul? This is so humiliating!";
+ next;
+ mes "[Nathan]";
+ mes "Da..d....?";
+ next;
+ mes "[Bolak]";
+ mes "Nathan, I told you already, I am your father!";
+ next;
+ break;
+ case 2:
+ mes "[Jack]";
+ mes "It's such an honor to be chosen as a living soul..";
+ next;
+ mes "[Bolak]";
+ mes "No! He's not! I can guarantee you!!!";
+ next;
+ break;
+ case 3:
+ mes "[Loru]";
+ mes "Wow, you are saying I am living soul? Do you think I look that attractive?";
+ next;
+ mes "[Devi]";
+ mes "Get away from me!!!!";
+ next;
+ break;
+ case 4:
+ mes "[Devi]";
+ mes "I am not a living soul!";
+ next;
+ mes "[Loru]";
+ mes "You really think Devi is living soul? haha!!";
+ next;
+ break;
+ case 5:
+ mes "[Richard]";
+ mes "Look at my arm!!!";
+ next;
+ mes "[Jack]";
+ mes "True... without his arm, he looks like a undead soul.";
+ next;
+ break;
+ }
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm.. everyone.. please calm down.";
+ next;
+ mes "[Loru]";
+ mes "We'll never reach a decision! Never!";
+ next;
+ mes "[Devi]";
+ mes "Halloween will be over by the time we finish arguing about this!";
+ next;
+ mes "[Richard]";
+ mes "Ah.. I expected so much from Halloween. It's my first Halloween.";
+ next;
+ mes "[Nathan]";
+ mes "Mo..m.....";
+ next;
+ mes "[Bolak]";
+ mes "Hey, you adventurer. You figure out how to distinguish ^0000cddead men with living men in living men's country^000000.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Me? why??";
+ next;
+ mes "[Bolak]";
+ mes "Because we don't want to leave here, and you know many things as you are a living soul.";
+ mes "You know many things about the ^0000cdCathedral^000000 as well.";
+ next;
+ mes "[Loru]";
+ mes "Yeah that is true.";
+ next;
+ mes "[Devi]";
+ mes "What? Cathedral? It will kill us all!!!!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm, okay then I will go and figure this out.";
+ next;
+ mes "[Nathan]";
+ mes "D..ad..a..-";
+ next;
+ mes "[Jack]";
+ mes "Such a good boy. Look after yourself.";
+ setquest 14451;
+ close;
+ } else {
+ mes "[Bolak]";
+ mes "Hmm. Some unpleasant smell...";
+ mes "something unpleasant.";
+ close;
+ }
+ }
+}
+
+//= Nathan
+//==============================================================================
+niflheim,195,183,1 script Nathan#14hal 4_LUDE,{
+ mes "[Nathan]";
+ mes "Ma?";
+ mes "Dada!!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "How cute!!~";
+ next;
+ mes "[Nathan]";
+ mes "What are you looking at? Are you look down on me since I look like a baby?";
+ next;
+ mes "[Nathan]";
+ mes "I've been living here much more than you.";
+ next;
+ mes "[Nathan]";
+ mes "Get your hands off and go away before I get really mad.";
+ close;
+}
+
+//= Jack
+//==============================================================================
+niflheim,192,182,7 script Jack#14hal 4_JACK,{
+ mes "[Jack]";
+ mes "Come empty, return empty...";
+ mes "The suffering continues, day in, day out.";
+ next;
+ mes "[Jack]";
+ mes "Don't you want to have a peaceful life here?";
+ close;
+}
+
+//= Richard
+//==============================================================================
+niflheim,190,185,5 script Richard#14hal01 4_M_NFDEADSWDMAN,{
+ if (questprogress(14457) > -1) {
+ mes "A doll which resembles Richard.";
+ } else {
+ mes "[Richard]";
+ mes "Me having only one arm is like a badge of honor!";
+ }
+ close;
+}
+
+//= Loru
+//==============================================================================
+niflheim,194,189,3 script Loru#14hal 4_LOLI_RURI,{
+ if (!checkweight("Orcish_Axe", 3)) {
+ mes "[Loru]";
+ mes "Why are you carrying so much? If you have something good, give it to me~";
+ mes "Or take these things out of my sight!";
+ close;
+ }
+ if (questprogress(14464) == 1) {
+ if (!questprogress(14464, PLAYTIME)) {
+ mes "[Loru]";
+ mes "Hmm, why do you come here?";
+ mes "Time is not over yet?";
+ next;
+ mes "[Loru]";
+ mes "I told you to come again after a day.";
+ mes "Idiot!";
+ close;
+ } else {
+ mes "[Loru]";
+ mes "You've come here again.";
+ mes "Well.. Can I ask you one more favor?";
+ next;
+ if(select("Yes", "No") == 2) {
+ mes "[Loru]";
+ mes "Yeah? okay.";
+ mes "I don't know why you can't accept my favor.. ";
+ next;
+ mes "[Loru]";
+ mes "Come visit me again if you are willing to accept my favor!";
+ close;
+ } else {
+ if (BaseLevel < 100) {
+ mes "[Loru]";
+ mes "Wow!!!";
+ mes "I like you!! you accept all my favors!";
+ next;
+ mes "[Loru]";
+ mes "Then please hunt ^0000cd10 wandering soul^000000!";
+ mes "Once you hunt them all, Niflheim comes along as well. get me 10 of them.";
+ next;
+ mes "[Loru]";
+ mes "Thank you! I will wait for you!";
+ erasequest 14464;
+ setquest 14460;
+ close;
+ } else {
+ mes "[Loru]";
+ mes "Wow!!!";
+ mes "I like you!! you accept all my favors!";
+ next;
+ mes "[Loru]";
+ mes "Please bring me ^0000cd 10 Red Scarf and 10 Hanging Doll!^000000 ?";
+ mes "Thank you! I will wait for you!";
+ erasequest 14464;
+ setquest 14461;
+ close;
+ }
+ }
+ }
+ } else {
+ if (questprogress(14461) == 1 || questprogress(14460) == 1) {
+ if (questprogress(14461) == 1) {
+ mes "[Loru]";
+ mes "Hey you are here. How's going with what I asked??";
+ mes "Huh? You are not going to disappoint me, aren't you?";
+ next;
+ if (countitem("Red_Scarf") > 9 && countitem("Hanging_Doll") > 9) {
+ mes "[Loru]";
+ mes "Hmm, let me see.. wow!";
+ mes "You bring all I asked?";
+ next;
+ mes "[Loru]";
+ mes "In additon, it looks more special and beautiful?";
+ mes "You selected beautiful ones for me? huh??";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm.. no..t.. really...";
+ next;
+ mes "[Loru]";
+ mes "Haha, hey.";
+ mes "You can just say yes! i did.?";
+ next;
+ mes "[Loru]";
+ mes "Anyway, thank you.";
+ mes "Here's your reward. Then, see you ^0000cd tomorrow^000000!.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Tomorrow? again??";
+ next;
+ mes "[Loru]";
+ mes "Ah, you didn't know. Here, we give away decoration when people leave the party.";
+ mes "We should put new decoration everyday.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I've never heard of it..";
+ next;
+ mes "[Loru]";
+ mes "Of course, you haven't. This place is dead man's country.";
+ mes "Keep what I said in your mind as you will come here someday. Bye!~";
+ delitem Red_Scarf, 10;
+ delitem Hanging_Doll, 10;
+ getitem Trans_Candy_Yellow, 10;
+ getitem Trans_Candy_Green, 10;
+ erasequest 14461;
+ setquest 14464;
+ close;
+ } else {
+ mes "[Loru]";
+ mes "You return empty-handed?";
+ mes "Have you forgotten? or are you messing around with me??";
+ next;
+ mes "[Loru]";
+ mes "I want to have joyful and luxurious party~";
+ mes "So, Please bring me ^0000cd 10 Red Scarf and 10 Hanging Doll^000000.";
+ close;
+ }
+ } else {
+ if (questprogress(14460, HUNTING) == 2) {
+ mes "[Loru]";
+ mes "Wow~ Welcome!";
+ mes "The party gets more excited, thank you!!";
+ next;
+ mes "[Loru]";
+ mes "Everyone seems to enjoy the most of it.";
+ mes "So.. I want to repay your effort.";
+ next;
+ mes "[Loru]";
+ mes "It's not much but hope you like it! then see you ^0000cdtomorrow^000000 again!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Tomorrow.. again??";
+ next;
+ mes "[Loru]";
+ mes "Yeah, when the party is over, everyone will leave.";
+ mes "They won't come again voluntarily, so we should make them. Then bye bye~";
+ erasequest 14460;
+ setquest 14464;
+ getitem Trans_Candy_Yellow, 10;
+ getitem Trans_Candy_Green, 10;
+ close;
+ } else {
+ mes "[Loru]";
+ mes "Why so early? you haven't done it yet?";
+ mes "You forget what to do?";
+ next;
+ mes "[Loru]";
+ mes "^0000cd 10 Wandering Soul!^000000";
+ mes "The more people there is, the funnier party will be!";
+ next;
+ mes "[Loru]";
+ mes "Please go and find them.";
+ mes "They will be nice once you hit them a bit.";
+ close;
+ }
+ }
+ } else if (questprogress(14458) == 1) {
+ mes "[Loru]";
+ mes "You didn't forget to come?";
+ mes "Hey.. I have a favor to ask. You seem to be a good. Would you do my favor??";
+ next;
+ if(select("Yes", "No") == 2) {
+ mes "[Loru]";
+ mes "Then why do you come and talk to me?";
+ mes "Go!! go away!!!";
+ close;
+ } else {
+ mes "[Loru]";
+ mes "You know, everyone gets really excited because of Halloween?";
+ mes "And people here are just gathering around and having fun.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes.";
+ next;
+ if (BaseLevel < 100) {
+ mes "[Loru]";
+ mes "But people, who were supposed to have party together, have gone to living man's country.";
+ mes "You know, party is fun when there's many people. so... Could you bring them here.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Who? and how many??";
+ next;
+ mes "[Loru]";
+ mes "Oh, You do my favor?? ^0000cd10 Wandering Soul^000000!";
+ mes "Once you hunt them all, Niflheim comes along as well. get me 10 of them.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I can do that.";
+ next;
+ mes "[Loru]";
+ mes "Thank you so much, i will wait for you!";
+ erasequest 14458;
+ setquest 14460;
+ close;
+ } else {
+ mes "[Loru]";
+ mes "Look around. It looks so empty.";
+ mes "Nobody would dance and have fun in a place like this?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "What can I do for you?";
+ next;
+ mes "[Loru]";
+ mes "^0000cd 10 Red Scarf and 10 Hanging Doll^000000! Could you bring me all this??";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Are you decorating with those? Your taste...seems....";
+ next;
+ mes "[Loru]";
+ mes "What? do you have any problem with that!";
+ mes "You don't know nothing about latest trend. you've been living only for decades!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Sorry, I made a mistake.";
+ mes "so, 10 Red Scarf and 10 Hanging Doll, right??";
+ next;
+ mes "[Loru]";
+ mes "Yes! See you!!!";
+ erasequest 14458;
+ setquest 14461;
+ close;
+ }
+ }
+ } else {
+ mes "[Loru]";
+ mes "Hmm.. I am bored. How come it is so boring! It's Halloween?";
+ mes "Boring! Boring!!!";
+ close;
+ }
+ }
+}
+
+//= Devi
+//==============================================================================
+niflheim,191,188,5 script Devi#14hal 4_DEVIRUCHI,5,5,{
+ if (!checkweight("Orcish_Axe", 3)) {
+ mes "[Devi]";
+ mes "Why do you carry so much? If you have something awesome, give it to me.";
+ mes "Otherwise, go and organize your inventory!";
+ close;
+ }
+ if (questprogress(14465) == 1) {
+ if (!questprogress(14465, PLAYTIME)) {
+ mes "[Devi]";
+ mes "Why? Do you have something to talk about?";
+ mes "Hmm, It's not because of what I said yesterday, is it?";
+ next;
+ mes "[Devi]";
+ mes "Hey, a day hasn't passed yet";
+ mes "I am not a living man but i know what 'a day' means?";
+ next;
+ mes "[Devi]";
+ mes "Come back again when you have time.";
+ close;
+ } else {
+ mes "[Devi]";
+ mes "Oh, you again.";
+ mes "You are going to help me like you did yesterday, aren't you?";
+ next;
+ mes "[Devi]";
+ mes "That's why you are here for, right??";
+ next;
+ if(select("Yes", "No") == 2) {
+ mes "[Devi]";
+ mes "Yeah? Hmm.. okay.";
+ mes "Hmm.. it's a shame.";
+ next;
+ mes "[Devi]";
+ mes "Not me, you! .";
+ close;
+ } else {
+ mes "[Devi]";
+ mes "It seems to be in the middle of chaos, today and yesterday as well.";
+ next;
+ if (BaseLevel < 100) {
+ mes "[Devi]";
+ mes "You escape from here and bring troublemakers in living man's country.";
+ mes "I can't go anywhere as I am too busy.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Okay. I don't want dead men create chaos in living man's country.";
+ next;
+ mes "[Devi]";
+ mes "You got it. Cool.";
+ mes "Then please bring ^0000cd 10 Dark Soul^000000. Once you hunt them, they will come here.";
+ next;
+ mes "[Devi]";
+ mes "Thank you in advance.";
+ erasequest 14465;
+ setquest 14462;
+ close;
+ } else {
+ mes "[Devi]";
+ mes "Please catch them. they are making a chaos.";
+ mes "I can't go anywhere as I am too busy.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Okay.";
+ next;
+ mes "[Devi]";
+ mes "You got it. Cool.";
+ mes "Then, please bring ^0000cd20 Hylozoist and 20 Bloody Murderer^000000.";
+ next;
+ mes "[Devi]";
+ mes "Thank you in advance.";
+ erasequest 14465;
+ setquest 14463;
+ close;
+ }
+ }
+ }
+ } else {
+ if (questprogress(14463) == 1 || questprogress(14462) == 1) {
+ mes "[Devi]";
+ mes "Oh, it's you.";
+ mes "You come here earlier than I thought you would.";
+ next;
+ if (questprogress(14463) == 1) {
+ if (questprogress(14463, HUNTING) == 2) {
+ mes "[Devi]";
+ mes "And you've done when you have to do perfectly.";
+ mes "Good, Very well done.";
+ next;
+ mes "[Devi]";
+ mes "So, if you are not busy, please come again ^0000cdtomorrow^000000.";
+ mes "I want you to do this job.";
+ next;
+ mes "[Devi]";
+ mes "Then, we will see again tomorrow.";
+ mes "See you.";
+ erasequest 14463;
+ setquest 14465;
+ getitem Trans_Candy_Red, 10;
+ getitem Trans_Candy_Blue, 10;
+ close;
+ } else {
+ mes "[Devi]";
+ mes "But you haven't done what I asked as you rush too much?";
+ mes "take your time and get them.";
+ next;
+ mes "[Devi]";
+ mes "^0000cd20 Hylozoist and 20 Bloody Murderer.^000000";
+ mes "It's not a big deal, isn't it?";
+ close;
+ }
+ } else {
+ if (questprogress(14462, HUNTING) == 2) {
+ mes "[Devi]";
+ mes "And you've done when you have to do perfectly.";
+ mes "Good, Very well done.";
+ next;
+ mes "[Devi]";
+ mes "So, if you are not busy, please come again ^0000cdtomorrow^000000.";
+ mes "I want you to do this job.";
+ next;
+ mes "[Devi]";
+ mes "Then, we will see again tomorrow.";
+ mes "See you.";
+ erasequest 14462;
+ setquest 14465;
+ getitem Trans_Candy_Red, 10;
+ getitem Trans_Candy_Blue, 10;
+ close;
+ } else {
+ mes "[Devi]";
+ mes "But you haven't done what I asked as you rush too much?";
+ mes "take your time and get them.";
+ next;
+ mes "[Devi]";
+ mes "^0000cd 10 Black Soul!^000000";
+ mes "It's not a big deal, isn't it?";
+ close;
+ }
+ }
+ } else if (questprogress(14459) == 1) {
+ mes "[Devi]";
+ mes "Oh, you really came back. I didn't expect you to come.";
+ mes "I am just kidding, you know that";
+ next;
+ mes "[Devi]";
+ mes "Yes, I have one favor to ask.";
+ mes "Hope you don't reject it..";
+ next;
+ if(select("Okay", "No, I want to reject.") == 2) {
+ mes "[Devi]";
+ mes "Yeah? Hmm.. okay.";
+ mes "Hmm.. it's a shame.";
+ next;
+ mes "[Devi]";
+ mes "Not me! you!";
+ close;
+ } else {
+ mes "[Devi]";
+ mes "Good, very good.";
+ mes "Apparently, I am kind of a leader here.";
+ next;
+ mes "[Devi]";
+ mes "You know what it takes.";
+ mes "It's hard to control when there are too many people in a group.";
+ next;
+ if (BaseLevel < 100) {
+ mes "[Devi]";
+ mes "You escape from here and bring troublemakers in living man's country.";
+ mes "I can't go anywhere as I am too busy.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Okay. I don't want dead men create chaos in living man's country.";
+ next;
+ mes "[Devi]";
+ mes "You got it. Cool.";
+ mes "Then please bring ^0000cd 10 Dark Soul^000000. Once you hunt them, they will come here.";
+ next;
+ mes "[Devi]";
+ mes "Thank you in advance.";
+ erasequest 14459;
+ setquest 14462;
+ close;
+ } else {
+ mes "[Devi]";
+ mes "Please catch them. they are making a chaos.";
+ mes "I can't go anywhere as I am too busy.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Okay.";
+ next;
+ mes "[Devi]";
+ mes "You got it. Cool.";
+ mes "Then, please bring ^0000cd20 Hylozoist and 20 Bloody Murderer^000000.";
+ next;
+ mes "[Devi]";
+ mes "Thank you in advance.";
+ erasequest 14459;
+ setquest 14463;
+ close;
+ }
+ }
+ } else {
+ mes "[Devi]";
+ mes "It's hard, really hard..";
+ mes "whatever it is,, It is too hard.";
+ close;
+ }
+ }
+}
+
+//= Bonfire
+//==============================================================================
+niflheim,193,186,6 script Bonfire Spirit#14hal 4_TRACE,{
+ mes "[Bonfire Spirit]";
+ mes "Ahahah! Don't touch me with such cold hands!!!";
+ mes "Fire, fire might die!!!";
+ close;
+
+ OnInit:
+ initnpctimer;
+ end;
+
+ OnEnable:
+ stopnpctimer;
+ initnpctimer;
+ end;
+
+ OnTimer1000:
+ OnTimer3000:
+ OnTimer21000:
+ OnTimer23000:
+ OnTimer25000:
+ specialeffect EF_TORCH,AREA,"Bonfire Spirit#14hal";
+ specialeffect EF_DRAGONSMOKE,AREA,"Bonfire Spirit#14hal";
+ end;
+
+ OnTimer5000:
+ OnTimer8000:
+ OnTimer10000:
+ OnTimer13000:
+ OnTimer14000:
+ OnTimer16000:
+ specialeffect EF_DRAGONSMOKE,AREA,"Bonfire Spirit#14hal";
+ end;
+
+ OnTimer19000:
+ npctalk "Oh, No! The fire is dying!!!! Fire!!!!!!!!!!!!";
+ specialeffect EF_DRAGONSMOKE,AREA,"Bonfire Spirit#14hal";
+ end;
+
+ OnTimer20000:
+ specialeffect EF_SIGHTRASHER,AREA,"Bonfire Spirit#14hal";
+ end;
+
+ OnTimer27000:
+ donpcevent "Bonfire Spirit#14hal::OnEnable";
+ end;
+}
+
+//= Sister / Nun
+//==============================================================================
+prt_church,96,91,4 script Spiritual Sister#14hal 1_F_PRIEST,5,5,{
+ if (!checkweight("Orcish_Axe", 3)) {
+ mes "[Spiritual Sister]";
+ mes "What do you carry that so heavily? it looks really heavy.";
+ mes "When you come here you should empty your body and mind.";
+ close;
+ }
+ if (questprogress(14456) == 1) {
+ mes "[Sister Haley]";
+ mes "Oh? Haven't you left yet?";
+ mes "Did you forget what you need to prepare?";
+ next;
+ mes "[Sister Haley]";
+ mes "^0000cd1 of Leaf Of Yggdrasil and 1 Live Coal^000000 should be prepared and breathe in the smoke from burning leaves.";
+ mes "And never forget to pray to the soul to return.";
+ close;
+ } else if (questprogress(14455) == 1) {
+ mes "[Sister Haley]";
+ mes "I hope all is well with everyone visiting here~";
+ mes "Oh! Is it you, "+(Sex ? "brother" : "sister")+"? How is it going with the thing you need to do?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well.. I could identify the live ones.";
+ next;
+ mes "[Sister Haley]";
+ mes "I knew it! Any side effects?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "But then there was another problem.";
+ mes "this is the reason I came here..";
+ next;
+ mes "[Sister Haley]";
+ mes "Oh? What happen?";
+ mes "Tell me anything!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "There was a person who did not react on the halidom, but he insisted that he is dead.";
+ mes "So I went the place he lived, the body is alive. Just in a comma.";
+ next;
+ mes "[I told her what happened in Niflheim and story I heard from Rutie.]";
+ next;
+ mes "[Sister Haley]";
+ mes "Oh, dear, I can't believe it!!";
+ mes "Sometimes the soul is separated from the body if there was some big impact on the body, and ^0000cdsome spirits think they forget they are alive and move to the death's land^000000.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Is there anything I can do about?";
+ next;
+ mes "[Sister Haley]";
+ mes "Simple! ";
+ mes "Make them to realize that they have their living body.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So, How..";
+ mes "They believe they are dead, but I should talk to them to make them return?";
+ next;
+ mes "[Sister Haley]";
+ mes "Of course not. There are secret method in this church.";
+ mes "We have been trough lots of stuff, we have all kinds of solution.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So How..";
+ next;
+ mes "[Sister Haley]";
+ mes "You know Leaf Of Yggdrasil is good for resurrection?";
+ mes "Leaf Of Yggdrasil is a leaf from Yggdrasil and has a strong power of life.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well, That is like common sense, so just tell me the materials and method to do that..";
+ next;
+ mes "[Sister Haley]";
+ mes "There is nothing else than Leaf of Yggdrasil to resurrect the character.";
+ mes "Even our priest used Leaf Of Yggdrasil!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "so, I mean! tell me the material I need and the method!";
+ next;
+ mes "[Sister Haley]";
+ mes "Oh.. My my.";
+ mes "I just want to explain you how good it is.";
+ next;
+ mes "[Sister Haley]";
+ mes "the material and the method is quite simple.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes, I like simple thing, so tell me briefly.";
+ next;
+ mes "[Sister Haley]";
+ mes "^0000cd1 Leaf Of Yggdrasil and 1 live Coal^000000 are what you need.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Only that?";
+ next;
+ mes "[Sister Haley]";
+ mes "Of course not~ ^0000cdyour prayer^000000 that is so desperate to bring the soul near death to here!";
+ mes "Bring these 3 things and burn the Leaf Of Yggdrasil.";
+ next;
+ mes "[Sister Haley]";
+ mes "Once they breathe in the smoke, they will remember where their bodies are and come back to real life.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Is that all?";
+ next;
+ mes "[Sister Haley]";
+ mes "Yes. Indeed~";
+ mes "One think you must remember: The longer the soul left their body, the less chance he will get to come back.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You should have told me earlier!";
+ next;
+ mes "[Sister Haley]";
+ mes "When you need my help, come and visit me anytime~";
+ erasequest 14455;
+ setquest 14456;
+ close;
+ } else if (questprogress(14454) == 1) {
+ mes "[Sister Haley]";
+ mes "Did you experience the holy Rosary effect?";
+ mes "We often use it since it is simple. Of course, it make evils not to approach.";
+ close;
+ } else if (questprogress(14453) == 1) {
+ mes "[Sister Haley]";
+ mes "How is it? the holy Rosary?";
+ mes "did you use it?";
+ next;
+ mes "[Sister Haley]";
+ mes "If you have any problem, please come to me any time.";
+ close;
+ } else if (questprogress(14452) == 1) {
+ if ((countitem("Rosary_") > 0 || countitem("Rosary") > 0) && countitem("Holy_Water") > 5) {
+ mes "[Sister Haley]";
+ mes "Did you prepare all?";
+ mes "Even if you hide it, I can see it~";
+ next;
+ mes "[Sister Haley]";
+ mes "Well.. 6 Rosaries and .... holy .. water..";
+ mes "Oops, you spilled the holy water little bit. but that is fine.";
+ next;
+ mes "[Sister Haley]";
+ mes "This is enough. I can make it soon.";
+ mes "Odin Crystal power! with Holy light!!!!";
+ next;
+ specialeffect EF_HOLYHIT,AREA,"Spiritual Sister#14hal";
+ mes "[Sister Haley]";
+ mes "Whoa~ It's done.";
+ mes "Hold ^0000cd this in your pocket^000000 and go to the crowd with live and dead ones, you will see who is dead or live.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Is that it? Awesome.";
+ mes "But.. Um.. you know.. is.. it affecting to me.. like in bad way?";
+ next;
+ mes "[Sister Haley]";
+ mes "Of course not!";
+ mes "if ^0000cdHoly Rosary^000000 were a dangerous stuff, we would not be alive.";
+ next;
+ mes "[Sister Haley]";
+ mes "But, For those who are dead.. Oh! I don't mean it's deadly threat, but it will give them little bit of pain.";
+ mes "So use it carefully not to damage the good dead people.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Ok.";
+ mes "Thank you for making this!";
+ next;
+ mes "[Sister Haley]";
+ mes "No worries!";
+ mes "Please come back again if you need my help!";
+ if (countitem("Rosary") > 0)
+ delitem Rosary, 1;
+ else
+ delitem Rosary_, 1;
+ delitem Holy_Water, 6;
+ getitem Sacred_Rosary, 1;
+ erasequest 14452;
+ setquest 14453;
+ close;
+ } else {
+ mes "[Sister Haley]";
+ mes "Did you prepare all?";
+ mes "Even if you hide it, I can see it~";
+ next;
+ mes "[Sister Haley]";
+ mes "Oh, Look. You are not ready.";
+ mes "Please bring ^0000cd 1 Rosary and 6 Holy Water^000000.";
+ next;
+ mes "[Sister Haley]";
+ mes "With our church's secret, I will make more holy halidom.";
+ close;
+ }
+ } else if (questprogress(14451) == 1) {
+ mes "[Sister Haley]";
+ mes "I hope all is well with everyone visiting here~";
+ mes "What makes you come here, "+(Sex ? "brother" : "sister")+"?";
+ next;
+ mes "[I told her what happened in Nifflheim.]";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So I came here.";
+ mes "But, I cannot tell who is dead and who is alive, is there any way ^0000cdto check that^000000?";
+ next;
+ mes "[Sister Haley]";
+ mes "Of course, there is. Very ^0000cdgood method^000000!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Really? I was not sure if I found the right place.";
+ mes "I think I found well!";
+ next;
+ mes "[Sister Haley]";
+ mes "We study everything to make dead and live ones to peace.";
+ mes "There is secret way to do that, it kept secretly in our church.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Tell me the way..";
+ next;
+ mes "[Sister Haley]";
+ mes "That is simple! Make ^0000cdspecial halidom^000000!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "S, so how..?";
+ next;
+ mes "[Sister Haley]";
+ mes "How you make it? Bring ^0000cd1 Rosary and 6 Holy Water^000000 to me.";
+ mes "Then I will make it for you. It's simple";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Y, yes!!";
+ erasequest 14451;
+ setquest 14452;
+ close;
+ } else {
+ mes "[Sister Haley]";
+ mes "I hope all is well with everyone visiting here~";
+ close;
+ }
+
+ OnTouch:
+ if (questprogress(14451) == 1) {
+ mes "[Sister Haley]";
+ mes "I hope all is well with everyone visiting here~";
+ mes "If anyone needs help, please come to me~ I will do my best to help you.";
+ close;
+ }
+ end;
+}
+
+//= Richard's Wife
+//==============================================================================
+xmas_in,160,175,1 script Worried Wife#14hal 4_F_05,{
+ if (questprogress(14456) == 1) {
+ if (countitem("Leaf_Of_Yggdrasil") > 0 && countitem("Live_Coal") > 0) {
+ mes "[Richard's Daughter]";
+ mes "Dad, Dad~ Wake up! It's time to wake up!";
+ mes "I even made the stew for you. Wake and eat it.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Everyone, I am here.";
+ next;
+ mes "[Richard's Wife]";
+ mes "Oh, dear, Adventurer! Welcome!";
+ mes "Did you find the way to make him back?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes! But I need your help to do this.";
+ next;
+ mes "[Richard's Wife]";
+ mes "How can I help you?";
+ mes "I will do my best to do it!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Just pray hard to get him back.";
+ next;
+ mes "[Richard's Daughter]";
+ mes "I will do it!";
+ mes "I can do it!!!";
+ next;
+ mes "[Richard's Wife]";
+ mes "I will pray hard!";
+ mes "Please!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Well, So I will burn.. this.";
+ specialeffect2 EF_TORCH;
+ sleep2 1000;
+ specialeffect2 EF_SMOKE;
+ sleep2 1000;
+ specialeffect2 EF_SMOKE;
+ sleep2 1000;
+ specialeffect2 EF_SMOKE;
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "It's almost ran out.. Why not he wakes up..";
+ mes "Oh!!";
+ specialeffect EF_RESURRECTION,AREA,"Richard#14hal02";
+ next;
+ mes "[Richard]";
+ mes "Uhh.. Umm..";
+ mes "My arm.. ugh..";
+ emotion e_an, "Richard#14hal02";
+ next;
+ mes "[Richard's Wife]";
+ mes "Honey!! Can you see me?";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Dad! is it you?";
+ mes "Are you really my dad? Are you alright?";
+ next;
+ mes "[Richard]";
+ mes "I, I was dead.. where..";
+ mes "I was dead.. ..";
+ next;
+ mes "[Richard's Wife]";
+ mes "You didn't die!";
+ mes "This is your house! It's your daughter and I!";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Dad! Your home!";
+ next;
+ mes "[Richard]";
+ mes "H.. ome..? Home..?";
+ mes "am.. I.. alive..?";
+ next;
+ mes "[Richard's Wife]";
+ mes "What?";
+ mes "maybe.. it's like ...a side effect..?";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Dad!!!";
+ specialeffect EF_SONICBLOWHIT,AREA,"Richard#14hal02";
+ next;
+ mes "[Richard]";
+ mes "O, Ouch!!!";
+ mes "I told you not to hit me!";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Do you really see me now?";
+ mes "It's your home!";
+ next;
+ mes "[Richard]";
+ mes "Home.. home!!!";
+ mes "what.. what about my arm??";
+ next;
+ mes "[Richard's Wife]";
+ mes "You have been injured, but it's okay.";
+ mes "I am so happy that you are awake! Really..";
+ next;
+ mes "[Richard]";
+ mes "I.. came back.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Thank god. Seriously.";
+ mes "It would have been really dangerous if I was a little late.";
+ next;
+ mes "[Richard]";
+ mes "You saved me?";
+ mes "Thank you! Thank you!";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Dad! Mom and I also helped!!";
+ next;
+ mes "[Richard]";
+ mes "Yes, yes. You and your mom are the best!";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "You can go to Niflheim later.";
+ mes "Why were you in a rush? You have a family.";
+ next;
+ mes "[Richard]";
+ mes "I know. How could I forget my family?";
+ mes "Anyway I could not even say good bye when I leave..";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I will go and send your regards.";
+ next;
+ mes "[Richard]";
+ mes "Thank you so much!";
+ next;
+ mes "[Richard's Wife]";
+ mes "I am really appreciated. There is no words to thank you on this.";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Thank you!";
+ delitem Live_Coal, 1;
+ delitem Leaf_Of_Yggdrasil, 1;
+ erasequest 14456;
+ setquest 14457;
+ close;
+ } else {
+ mes "[Richard's Daughter]";
+ mes "Dad, Dad~ Wake up! It's time to wake up!";
+ mes "I even made the stew for you. Wake and eat it.";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Everyone, I am here.";
+ next;
+ mes "[Richard's Wife]";
+ mes "Oh, dear, Adventurer! Welcome!";
+ mes "Did you find a way to bring him back?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Yes! Oh, w.wait..";
+ mes "There is something missing. I will get it and come back.";
+ close;
+ }
+ } else if (questprogress(14455) == 1) {
+ mes "[Richard's Wife]";
+ mes "How was the meeting with the sister in Prontera?";
+ mes "My sweet heart.. can he come back?";
+ close;
+ } else if (questprogress(14454) == 1) {
+ mes "["+strcharinfo(0)+"]";
+ mes "If it's correct, it should be around here..";
+ next;
+ mes "[Richard's Wife]";
+ mes "Honey, Wake up.";
+ mes "It's.. time to wake up.";
+ emotion e_sob, "Worried Wife#14hal";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Dad, I want to see your eyes.";
+ mes "Play with me~";
+ emotion e_sob, "Worried Daughter#14hal";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hi, Is this Richard's house?";
+ mes "I think I am right..";
+ next;
+ mes "[Richard's Wife]";
+ mes "Who is this?";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Who..?";
+ next;
+ mes "[Richard's Wife]";
+ mes "Did you find my husband?";
+ mes "But he is right now.. he hasn't waken up since after the accident..";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "So, he is still alive?";
+ mes "And.. his... arm is attached to his body?";
+ next;
+ mes "[Richard's Wife]";
+ mes "Huh? Of course.. he is badly injured but ^0000cddidn't lose his arm.^000000";
+ mes "But for some reason ^0000cdhe won't wake up.^000000";
+ next;
+ mes "[Richard's Daughter]";
+ mes "How can you treat my ^0000cdliving dad^000000 as if he is dead?!";
+ mes "You're mean!";
+ next;
+ mes "[Richard's Wife]";
+ mes "Is there anything I can help you with..?";
+ mes "You seem to know my husband.. Do you know something?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I think we should find out why he is like this.";
+ next;
+ mes "[Richard's Wife]";
+ mes "He used to be a swordsman. He had a dream to become the best swordsman in the world.";
+ mes "But he met me and we had a daughter, so he had to leave his dream for awhile.";
+ next;
+ mes "[Richard's Wife]";
+ mes "Here, he fixes train rails.";
+ mes "Whether it is used or not, he did his best.";
+ next;
+ mes "[Richard's Wife]";
+ mes "But the weather here isn't good.";
+ mes "There was snow storm coming, and he fell off from the rail.";
+ next;
+ mes "[Richard's Wife]";
+ mes "I told him not to go, but he eventually went there and did not come back for long time.";
+ mes "and then..";
+ next;
+ mes "[Richard's Wife]";
+ mes "Luckily he only injured his arm, but otherwise he was fine.";
+ mes "But for some reason, he is not waking up.";
+ mes "The doctor said it's nothing but a concussion and that he'll wake up soon..";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "I see.";
+ mes "His soul is in Niflhiem. He thinks he is dead.";
+ next;
+ mes "[Richard's Daughter]";
+ mes "^0000cdNiflhiem?!^000000";
+ mes "The strong dead soldier's land?!";
+ next;
+ mes "[Richard's Wife]";
+ mes "Oh my god.. Niflhiem.. He always said he want to go there after he died..";
+ next;
+ mes "[Richard's Wife]";
+ mes "He wanted to be a swordsman.. He must have wanted it so deeply.";
+ mes "He never showed it to us..";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "It seems he went there even though he is not dead.";
+ mes "Something must be wrong.";
+ next;
+ mes "[Richard's Wife]";
+ mes "Can.. can he come back?";
+ mes "He is still alive here..";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "Hmm.. what should I do..?";
+ mes "Oh, yes! I should go to ^0000cdProntera Church^000000.";
+ next;
+ mes "[Richard's Daughter]";
+ mes "Prontera?";
+ next;
+ mes "["+strcharinfo(0)+"]";
+ mes "There is ^0000cda nun I get help from sometimes^000000, I should ask if she can help me.";
+ next;
+ mes "[Richard's Wife]";
+ mes "Please bring him back.";
+ mes "Please.";
+ erasequest 14454;
+ setquest 14455;
+ close;
+ } else {
+ mes "[Richard's Wife]";
+ mes "My sweet heart, you are the best husband and dad ever.";
+ mes "I hope he can smile again.";
+ close;
+ }
+}
+
+//= Richard's Daughter
+//==============================================================================
+xmas_in,163,178,3 script Worried Daughter#14hal 4_F_NFLOSTGIRL,{
+ mes "[Richard's Daughter]";
+ if (questprogress(14457)) {
+ mes "Thank you for helping my dad and mom.";
+ mes "You really are a nice person.";
+ } else if (questprogress(14456) || questprogress(14455)) {
+ mes "Can you fix my dad if you go prontera?";
+ mes "I wish he could wake up again.";
+ } else if (questprogress(14454)) {
+ mes "My dad.. he won't wake up.";
+ mes "We are waiting for him to wake up...";
+ } else {
+ mes "Dad, wake up and play with me~";
+ mes "I even made a paper doll for you.";
+ }
+ close;
+}
+
+//= Richard
+//==============================================================================
+xmas_in,160,178,3 script Richard#14hal02 4_M_DIEMAN,{
+ mes "[Richard]";
+ if (questprogress(14457) == 2) {
+ mes "I am happy to hear that everyone is doing well.";
+ mes "I am doing good here as well with my wife and daughter. Thank god to be alive.";
+ } else if (questprogress(14457) || questprogress(14456)) {
+ mes "Please send my regards to everyone in Niflheim.";
+ mes "I feel like I messed up.";
+ } else {
+ mes "......";
+ mes "......";
+ }
+ close;
+}
+
+//= Event Monsters
+//==============================================================================
+gld_dun01_2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld_dun02_2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld_dun03_2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld_dun04_2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld2_ald,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld2_gef,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld2_pay,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld2_prt,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_dun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mal_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dic_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dew_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dew_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dew_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mal_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+man_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+man_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+spl_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+spl_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+man_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+spl_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+nyd_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+bra_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+bra_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+bra_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dic_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dic_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dic_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+dic_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+bif_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+bif_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abbey01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abbey02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abbey03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abyss_01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abyss_02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+abyss_03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+alde_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+alde_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+alde_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+alde_dun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ama_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ama_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ama_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ama_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+anthell01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+anthell02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ayo_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ayo_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ayo_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ayo_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+beach_dun,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+beach_dun2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+beach_dun3,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+c_tower1,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+c_tower2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+c_tower3,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+c_tower4,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+cmd_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ein_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_dun00,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild00,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild11,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gef_fild13,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gefenia01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gefenia02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gefenia03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gefenia04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_cas01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_cas02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_church,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_chyard,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_in01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_knt01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_knt02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_prison,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_prison1,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_sew01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_sew02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_sew03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_sew04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_step,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+glast_01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gon_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gon_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gon_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gon_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+hu_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+hu_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+hu_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+hu_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+hu_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ice_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ice_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ice_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+in_sphinx1,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+in_sphinx2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+in_sphinx3,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+in_sphinx4,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+in_sphinx5,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun00,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+iz_dun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+jupe_core,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+juperos_01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+juperos_02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+kh_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+kh_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lhz_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lou_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lou_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lou_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+lou_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mag_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mag_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+man_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjo_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjo_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjo_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_11,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+mjolnir_12,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild11,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild12,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild13,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild14,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild15,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild16,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild17,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_fild18,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_pryd06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+nameless_n,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+nif_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+nif_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+nyd_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+odin_tem01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+odin_tem02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+odin_tem03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+orcsdun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+orcsdun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_dun00,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_dun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+pay_fild10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild00,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild11,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_maze01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_maze02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_maze03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_sewb1,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_sewb2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_sewb3,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_fild12,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_san01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_san02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_san03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_san04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ra_san05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+spl_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t11,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tha_t12,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+thor_v01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+thor_v02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+thor_v03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+treasure01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+treasure02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tur_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tur_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tur_dun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+tur_dun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+um_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+um_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+um_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+um_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild05,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ve_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+xmas_dun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+xmas_dun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+xmas_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild06,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild07,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild08,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild09,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild10,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+yuno_fild12,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ecl_fild01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ecl_tdun01,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ecl_tdun02,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ecl_tdun03,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+ecl_tdun04,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_prydn1,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+moc_prydn2,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild08a,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild08b,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild08c,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+prt_fild08d,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_chyard_,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gl_cas02_,0,0,0,0 monster Dark Soul 3381,2,5000,0,0
+gld_dun01_2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld_dun02_2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld_dun03_2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld_dun04_2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld2_ald,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld2_gef,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld2_pay,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gld2_prt,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_dun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mal_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dic_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dew_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dew_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dew_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mal_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+man_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+man_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+spl_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+spl_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+man_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+spl_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+nyd_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+bra_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+bra_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+bra_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dic_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dic_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dic_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+dic_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+bif_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+bif_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abbey01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abbey02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abbey03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abyss_01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abyss_02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+abyss_03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+alde_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+alde_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+alde_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+alde_dun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ama_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ama_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ama_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ama_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+anthell01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+anthell02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ayo_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ayo_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ayo_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ayo_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+beach_dun,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+beach_dun2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+beach_dun3,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+c_tower1,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+c_tower2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+c_tower3,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+c_tower4,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+cmd_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ein_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_dun00,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild00,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild11,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gef_fild13,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gefenia01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gefenia02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gefenia03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gefenia04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_cas01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_cas02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_church,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_chyard,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_in01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_knt01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_knt02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_prison,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_prison1,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_sew01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_sew02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_sew03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_sew04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_step,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+glast_01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gon_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gon_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gon_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gon_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+hu_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+hu_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+hu_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+hu_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+hu_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ice_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ice_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ice_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+in_sphinx1,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+in_sphinx2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+in_sphinx3,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+in_sphinx4,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+in_sphinx5,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun00,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+iz_dun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+jupe_core,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+juperos_01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+juperos_02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+kh_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+kh_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lhz_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lou_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lou_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lou_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+lou_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mag_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mag_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+man_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjo_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjo_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjo_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_11,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+mjolnir_12,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild11,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild12,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild13,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild14,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild15,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild16,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild17,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_fild18,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_pryd06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+nameless_n,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+nif_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+nif_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+nyd_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+odin_tem01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+odin_tem02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+odin_tem03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+orcsdun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+orcsdun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_dun00,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_dun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+pay_fild10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild00,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild11,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_maze01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_maze02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_maze03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_sewb1,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_sewb2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_sewb3,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_fild12,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_san01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_san02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_san03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_san04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ra_san05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+spl_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t11,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tha_t12,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+thor_v01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+thor_v02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+thor_v03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+treasure01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+treasure02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tur_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tur_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tur_dun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+tur_dun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+um_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+um_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+um_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+um_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild05,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ve_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+xmas_dun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+xmas_dun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+xmas_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild06,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild07,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild08,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild09,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild10,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+yuno_fild12,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ecl_fild01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ecl_tdun01,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ecl_tdun02,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ecl_tdun03,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+ecl_tdun04,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_prydn1,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+moc_prydn2,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild08a,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild08b,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild08c,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+prt_fild08d,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_chyard_,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
+gl_cas02_,0,0,0,0 monster Wandering Soul 3382,2,5000,0,0
diff --git a/npc/re/guides/guides_alberta.txt b/npc/re/guides/guides_alberta.txt
index 94c95279c..2f7c2320b 100644
--- a/npc/re/guides/guides_alberta.txt
+++ b/npc/re/guides/guides_alberta.txt
@@ -20,11 +20,11 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 8W_SOLDIER,{
mes "Do you need help navigating the city?";
F_Navi("[Alberta Guide]");
next;
- set .@str$,"Would you like to check any other locations?";
+ .@str$ = "Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:[ Destination Ports ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Tool Shop ]:[ Forge ]:[ Weapon & Armor Shop ]:[ Inn ]:[ Beauty Salon ]:[ Merchant Guild ]:Previous Menu")) {
case 1:
@@ -82,13 +82,13 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 8W_SOLDIER,{
next;
break;
case 7:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Cool Event Employee ]:[ Bullet Merchant ]:[ Cooking Ingredient Merchant ]:Previous Menu")) {
case 1:
@@ -138,13 +138,13 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 8W_SOLDIER,{
next;
break;
case 6:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 3:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Port - Northern Dock ]:[ Port - Central Dock ]:[ Port - Southern Dock ]:Previous Menu")) {
case 1:
@@ -172,7 +172,7 @@ alberta,23,238,4 script Guide#01alberta::AlbertaGuide 8W_SOLDIER,{
next;
break;
case 4:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_aldebaran.txt b/npc/re/guides/guides_aldebaran.txt
index ef47d543d..174e14499 100644
--- a/npc/re/guides/guides_aldebaran.txt
+++ b/npc/re/guides/guides_aldebaran.txt
@@ -21,11 +21,11 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 8W_SOLDIER,{
mes "Do you need help navigating the city?";
F_Navi("[Al De Baran Guide]");
next;
- set .@str$,"Would you like to check any other locations?";
+ .@str$ = "Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Kafra Headquarters ]:[ Alchemist Guild ]:[ Clock Tower ]:[ Inn & Tool Shop ]:[ Repair & Buy Equipment ]:[ Tavern ]:Previous Menu")) {
case 1:
@@ -70,13 +70,13 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 8W_SOLDIER,{
next;
break;
case 7:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Mr. Claus ]:[ Chef Assistant ]:Previous Menu")) {
case 1:
@@ -107,7 +107,7 @@ aldebaran,139,63,4 script Guide#01aldebaran::GuideAldearan 8W_SOLDIER,{
next;
break;
case 5:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_ayothaya.txt b/npc/re/guides/guides_ayothaya.txt
index 6d351d4d6..ef3e7bbc7 100644
--- a/npc/re/guides/guides_ayothaya.txt
+++ b/npc/re/guides/guides_ayothaya.txt
@@ -15,9 +15,9 @@
ayothaya,203,169,4 script Ayothaya Guide Noi#01ay 4_F_THAIGIRL,{
if (strnpcinfo(0) == "Ayothaya Guide Noi#01ay")
- set .@n$, "[Noi]";
+ .@n$ = "[Noi]";
else
- set .@n$, "[Noa]";
+ .@n$ = "[Noa]";
mes .@n$;
mes "Hello~";
mes "Welcome to ^8B4513Ayothaya^000000.";
diff --git a/npc/re/guides/guides_comodo.txt b/npc/re/guides/guides_comodo.txt
index 6b584714e..97d2c028a 100644
--- a/npc/re/guides/guides_comodo.txt
+++ b/npc/re/guides/guides_comodo.txt
@@ -23,7 +23,7 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 8_F_GIRL,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel:About ^8B4513Comodo^000000")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Tavern ]:[ Casino ]:[ Weapon & Armor Shop ]:[ Tool Shop ]:[ Campsite ]:[ Souvenir Vendor ]:[ East Cave Mao ]:[ West Cave Karu ]:[ North Cave Ruanda ]:[ Hula Dance Stage ]:[ Kafra Co. Western Branch ]:Previous Menu")) {
case 1:
@@ -86,13 +86,13 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 8_F_GIRL,{
next;
break;
case 12:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Chief's House ]:[ Bor Robin ]:[ Kafra Employee ]:[ Roaming Bard ]:Previous Menu")) {
case 1:
@@ -122,7 +122,7 @@ comodo,322,178,4 script Comodo Guide#01comodo::GuideComodo 8_F_GIRL,{
next;
break;
case 5:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_einbroch.txt b/npc/re/guides/guides_einbroch.txt
index 697450f51..fc52983ca 100644
--- a/npc/re/guides/guides_einbroch.txt
+++ b/npc/re/guides/guides_einbroch.txt
@@ -25,7 +25,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 4_M_EIN_SOLDIER,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Airport ]:[ Factory ]:[ Plaza ]:[ Hotel ]:[ Train Station ]:[ Weapon Shop ]:[ Laboratory ]:[ Monument ]:[ Blacksmith Guild ]:[ Gunslinger Guild ]:Previous Menu")) {
case 1:
@@ -124,13 +124,13 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 4_M_EIN_SOLDIER,{
next;
break;
case 11:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Armsmith ]:[ Kafra Employees ]:[ Eden Teleport Officer ]:Previous Menu")) {
case 1:
@@ -172,7 +172,7 @@ einbroch,72,202,4 script Einbroch Guide#ein01::GuideEinbroch 4_M_EIN_SOLDIER,{
next;
break;
case 4:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_geffen.txt b/npc/re/guides/guides_geffen.txt
index 3bcd4db5b..67985d380 100644
--- a/npc/re/guides/guides_geffen.txt
+++ b/npc/re/guides/guides_geffen.txt
@@ -24,7 +24,7 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 4_M_GEF_SOLDIER,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Magic Academy ]:[ Geffen Tower ]:[ Fountain ]:[ Tool Shop ]:[ Buy & Repair Equipment ]:[ Inn ]:[ Tavern ]:[ Christopher's Forge ]:Previous Menu")) {
case 1:
@@ -84,13 +84,13 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 4_M_GEF_SOLDIER,{
next;
break;
case 9:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Pet Groomer ]:[ Chef Assistant ]:[ Dimensional Arcanist Guide ]:Previous Menu")) {
case 1:
@@ -121,7 +121,7 @@ geffen,203,116,4 script Guide#01geffen::GuideGeffen 4_M_GEF_SOLDIER,{
next;
break;
case 6:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_hugel.txt b/npc/re/guides/guides_hugel.txt
index 0544ead01..7781848ab 100644
--- a/npc/re/guides/guides_hugel.txt
+++ b/npc/re/guides/guides_hugel.txt
@@ -20,11 +20,11 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 4_F_LGTGRAND,{
mes "If this is the first time for you to use the guide services, you should ask a lot of questions.";
F_Navi("[Hugel Guide Granny]");
next;
- set .@str$,"Would you like to know more locations?";
+ .@str$ = "Would you like to know more locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Church ]:[ Inn ]:[ Pub ]:[ Airport ]:[ Weapon Shop ]:[ Tool Shop ]:[ Bingo Game Room ]:[ ^3131FFHunter Guild^000000 ]:[ Party Supplies Shop ]:[ ^3131FFShrine Expedition^000000 ]:Previous Menu")) {
case 1:
@@ -111,13 +111,13 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 4_F_LGTGRAND,{
next;
break;
case 11:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Monster Race Arena ]:[ Cool Event Corp. Staff ]:Previous Menu")) {
case 1:
@@ -138,7 +138,7 @@ hugel,98,56,3 script Hugel Guide Granny#hugel 4_F_LGTGRAND,{
next;
break;
case 3:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
@@ -184,7 +184,7 @@ hugel,187,172,6 script Guide Rich King#hugel 4_M_CRU_KNT,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Church ]:[ Inn ]:[ Pub ]:[ Airport ]:[ Weapon Shop ]:[ Tool Shop ]:[ Bingo Game Room ]:[ Hunter Guild ]:[ Party Supplies Shop ]:[ Shrine Expedition ]:Previous Menu")) {
case 1:
@@ -238,13 +238,13 @@ hugel,187,172,6 script Guide Rich King#hugel 4_M_CRU_KNT,{
next;
break;
case 11:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Monster Race Arena ]:[ Cool Event Corp. Staff ]:Previous Menu")) {
case 1:
@@ -258,7 +258,7 @@ hugel,187,172,6 script Guide Rich King#hugel 4_M_CRU_KNT,{
next;
break;
case 3:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_izlude.txt b/npc/re/guides/guides_izlude.txt
index a3a37537b..87987faad 100644
--- a/npc/re/guides/guides_izlude.txt
+++ b/npc/re/guides/guides_izlude.txt
@@ -24,11 +24,11 @@
mes "Do you need help navigating the town?";
F_Navi("[Izlude Guide]");
next;
- set .@map$, strnpcinfo(4);
+ .@map$ = strnpcinfo(4);
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Cryptura Academy ]:[ Marina ]:[ International Airship ]:[ Arena ]:[ Kit Shop ]:[ Swordsman Guild ]:[ Enchant Association ]:[ Forge ]:Previous Menu")) {
case 1:
@@ -95,13 +95,13 @@
next;
break;
case 9:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Employee ]:[ Hypnotist ]:[ Newlywed Helper ]:[ Mercenary Guildsman ]:[ Pet Groomer ]:Previous Menu")) {
case 1:
@@ -145,7 +145,7 @@
next;
break;
case 7:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_juno.txt b/npc/re/guides/guides_juno.txt
index dc85f0743..f62013147 100644
--- a/npc/re/guides/guides_juno.txt
+++ b/npc/re/guides/guides_juno.txt
@@ -22,7 +22,7 @@ yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 8_F_GIRL,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Tool Shop ]:[ Forge ]:[ Airport ]:[ Government Building ]:[ Street of Book Stores ]:[ Inn & Pub ]:[ Sage Castle ]:[ Monster Academy ]:[ Library of the Republic ]:[ Weapon & Armor Shop ]:[ Juphero Plaza ]:[ Monster Museum ]:[ Schweicherbil Magic Academy ]:Previous Menu")) {
case 1:
@@ -95,13 +95,13 @@ yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 8_F_GIRL,{
next;
break;
case 14:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Kafra Employees ]:[ Eden Teleport Officer ]:Previous Menu")) {
case 1:
@@ -117,7 +117,7 @@ yuno,59,212,4 script Juno Guide#yuno01::GuideJuno 8_F_GIRL,{
next;
break;
case 3:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_lighthalzen.txt b/npc/re/guides/guides_lighthalzen.txt
index d7cd22aae..668ac4d08 100644
--- a/npc/re/guides/guides_lighthalzen.txt
+++ b/npc/re/guides/guides_lighthalzen.txt
@@ -35,7 +35,7 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 4_M_EIN_S
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Hotel ]:[ Bank ]:[ Airport ]:[ Weapon Shop ]:[ Department Store ]:[ Police Station ]:[ Jewelry Store ]:[ Cool Event Corp. ]:[ Somatology Laboratory ]:[ Alchemist Association ]:Previous Menu")) {
case 1:
@@ -89,13 +89,13 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 4_M_EIN_S
next;
break;
case 11:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Armsmith ]:[ Seiayablem ]:[ Pet Groomer ]:[ Kafra Employees ]:[ Cool Event Corp. Staff ]:Previous Menu")) {
case 1:
@@ -136,7 +136,7 @@ lighthalzen,207,310,5 script Lighthalzen Guide#lhz01::GuideLighthazlen 4_M_EIN_S
next;
break;
case 6:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_louyang.txt b/npc/re/guides/guides_louyang.txt
index f79039e32..2e043364a 100644
--- a/npc/re/guides/guides_louyang.txt
+++ b/npc/re/guides/guides_louyang.txt
@@ -26,7 +26,7 @@ louyang,224,104,4 script Louyang Guide#01louyang 4_F_CHNWOMAN,{
mes "^8B4513Louyang^000000 is famous for";
mes "its elaborate history, as well as specialties that are unique to this nation. Please take your time and enjoy your stay.";
F_Navi("[Representative]");
- set .@str$,"Is there anything else I can do for you?";
+ .@str$ = "Is there anything else I can do for you?";
while (1) {
next;
switch(select("[ Dragon Castle ]:[ Doctor's Office ]:[ City Hall ]:[ Weapon Shop ]:[ Tool Shop ]:[ Tavern ]:[ Observatory ]:[ Return to Alberta ]:Remove Marks from Mini-Map:Cancel")) {
diff --git a/npc/re/guides/guides_morroc.txt b/npc/re/guides/guides_morroc.txt
index 55b1ef58e..fb85d97c5 100644
--- a/npc/re/guides/guides_morroc.txt
+++ b/npc/re/guides/guides_morroc.txt
@@ -24,7 +24,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 4_M_MOC_SOLDIER,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Thief Guild ]:[ Sphinx Dungeon ]:[ Oasis Entrance ]:[ Forge ]:[ Weapon & Armor Shop ]:[ Inn ]:[ Tavern ]:Previous Menu")) {
case 1:
@@ -78,13 +78,13 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 4_M_MOC_SOLDIER,{
next;
break;
case 8:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Kafra Employee ]:[ Poison Herb Salesman ]:[ Dye Maker ]:[ Seiyablem ]:Previous Menu")) {
case 1:
@@ -121,7 +121,7 @@ morocc,153,286,6 script Guide#01morocc::GuideMorroc 4_M_MOC_SOLDIER,{
next;
break;
case 5:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
@@ -176,7 +176,7 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 4_M_MOC_SOLDIER,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Thief Guild ]:[ Sphinx Dungeon ]:[ Morroc Entrance ]:Previous Menu")) {
case 1:
@@ -208,13 +208,13 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 4_M_MOC_SOLDIER,{
next;
break;
case 4:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Tool Dealer ]:[ Kafra Employee ]:[ Repairman ]:[ Pet Groomer ]:[ Chef Assistant ]:[ Leablem ]:Previous Menu")) {
case 1:
@@ -265,7 +265,7 @@ moc_ruins,159,53,3 script Guide#01ruins::GuideMocRuins 4_M_MOC_SOLDIER,{
next;
break;
case 8:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_moscovia.txt b/npc/re/guides/guides_moscovia.txt
index 05664c06a..1f8810878 100644
--- a/npc/re/guides/guides_moscovia.txt
+++ b/npc/re/guides/guides_moscovia.txt
@@ -21,7 +21,7 @@ moscovia,161,76,3 script Moscovia Guide#01mosc 4_F_RUSWOMAN1,{
mes "I'm supporting to offer information about here.";
mes "If you want to ask anything just feel free tell me.";
F_Navi("[Moscovia Guide]");
- set .@str$,"Is there anything else I can do for you?";
+ .@str$ = "Is there anything else I can do for you?";
while (1) {
next;
switch(select("[ Kafra Employee ]:[ Palace ]:[ Chapel ]:[ Weapon Shop ]:[ Armor Shop ]:[ Tool Shop ]:[ Inn ]:[ Return to Alberta ]:Remove Marks from Mini-Map:Cancel")) {
diff --git a/npc/re/guides/guides_payon.txt b/npc/re/guides/guides_payon.txt
index a165ad455..b363a1dba 100644
--- a/npc/re/guides/guides_payon.txt
+++ b/npc/re/guides/guides_payon.txt
@@ -24,7 +24,7 @@ payon,163,64,3 script Guide#01payon::GuidePayon 4_M_PAY_SOLDIER,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Archer Village ]:[ Tool Shop ]:[ Weapon & Armor Shop ]:[ Inn & Tavern ]:[ Central Palace ]:[ Palace Court ]:[ Royal Kitchen ]:Previous Menu")) {
case 1:
@@ -67,13 +67,13 @@ payon,163,64,3 script Guide#01payon::GuidePayon 4_M_PAY_SOLDIER,{
next;
break;
case 8:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Kafra Shop ]:[ Repair / Armsmith ]:[ Kafra Employee ]:[ Trap Specialist ]:[ Seiayblem ]:[ Leablem ]:[ Jade ]:[ Pet Groomer ]:[ Chef Assistant ]:Previous Menu")) {
case 1:
@@ -144,7 +144,7 @@ payon,163,64,3 script Guide#01payon::GuidePayon 4_M_PAY_SOLDIER,{
next;
break;
case 11:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
@@ -203,7 +203,7 @@ pay_arche,86,33,4 script Guide#05payon 4_M_PAY_SOLDIER,{
mes "Do you need help navigating the village?";
F_Navi("[Payon Guide]");
next;
- set .@str$,"Would you like to check any other locations?";
+ .@str$ = "Would you like to check any other locations?";
while (1) {
switch(select("[ Payon Dungeon ]:[ Archer Guild ]:[ Tool Shop ]:[ Kafra Employee ]:[ Mercenary Guildsman ]:[ Alchemist Guildsman ]:[ Eden Teleport Officer ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
diff --git a/npc/re/guides/guides_prontera.txt b/npc/re/guides/guides_prontera.txt
index c3ecea92f..58b5eecbe 100644
--- a/npc/re/guides/guides_prontera.txt
+++ b/npc/re/guides/guides_prontera.txt
@@ -22,11 +22,11 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 8W_SOLDIER,{
mes "Do you need help navigating the city?";
F_Navi("[Prontera Guide]");
next;
- set .@str$,"Would you like to check any other locations?";
+ .@str$ = "Would you like to check any other locations?";
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Tool Shop ]:[ Weapon & Armor Shop ]:[ Forge ]:[ Sanctuary ]:[ Chivalry Office ]:[ Inn ]:[ Tavern ]:[ Library ]:[ Prontera Castle ]:[ Job Agency ]:[ City Hall ]:Previous Menu")) {
case 1:
@@ -119,13 +119,13 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 8W_SOLDIER,{
next;
break;
case 12:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Eden Teleport Officer ]:[ Peco Peco Breeder ]:[ Riding Creature Master ]:[ Magic Gear Master ]:[ Peco Peco Remover ]:[ Trading Merchants ]:[ Mercenary Guildsman ]:[ Hypnotist ]:[ Kafra Employee ]:[ Leablem ]:[ Apprentice Craftsman ]:[ Pet Groomer ]:Previous Menu")) {
case 1:
@@ -234,7 +234,7 @@ prontera,154,187,4 script Guide#01prontera::GuideProntera 8W_SOLDIER,{
next;
break;
case 13:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/guides_rachel.txt b/npc/re/guides/guides_rachel.txt
index f7f1a2c87..28a3c1bd6 100644
--- a/npc/re/guides/guides_rachel.txt
+++ b/npc/re/guides/guides_rachel.txt
@@ -21,7 +21,7 @@ rachel,138,146,5 script Rachel Guide#rachel 4_M_RASWORD,{
while (1) {
switch(select("[ Main Facilities ]:[ Merchants & Helpers ]:Remove Marks from Mini-Map:Cancel")) {
case 1:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Inn ]:[ Weapon Shop ]:[ Tool Shop ]:[ Airport ]:[ Cheshrumnir ]:[ Priest Zed's Mansion ]:Previous Menu")) {
case 1:
@@ -70,13 +70,13 @@ rachel,138,146,5 script Rachel Guide#rachel 4_M_RASWORD,{
next;
break;
case 7:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
break;
case 2:
- set .@loop,1;
+ .@loop = 1;
while (.@loop) {
switch(select("[ Cool Event Corp. Staff ]:[ Eden Teleport Officer ]:Previous Menu")) {
case 1:
@@ -98,7 +98,7 @@ rachel,138,146,5 script Rachel Guide#rachel 4_M_RASWORD,{
next;
break;
case 3:
- set .@loop,0;
+ .@loop = 0;
break;
}
}
diff --git a/npc/re/guides/navigation.txt b/npc/re/guides/navigation.txt
index b7bde6aab..b0263c93f 100644
--- a/npc/re/guides/navigation.txt
+++ b/npc/re/guides/navigation.txt
@@ -15,7 +15,7 @@
function script F_Navi {
// Uncomment to disable the navigation system.
- //set .@disabled,1;
+ //.@disabled = 1;
// This function takes 0 ~ 3 parameters.
switch(getargcount()) {
diff --git a/npc/re/guild/invest_main.txt b/npc/re/guild/invest_main.txt
index 50a4e7d35..9ed49ce7a 100644
--- a/npc/re/guild/invest_main.txt
+++ b/npc/re/guild/invest_main.txt
@@ -63,13 +63,13 @@ $@vfund_*_extra
- script #invest_timer -1,{
OnClock0000: // Open investments on Wed (1 hour after WoE)
if (gettime(4) == 3 && !agitcheck()) {
- set $2011_agit_invest,1;
+ $2011_agit_invest = 1;
donpcevent "#fund_master::OnInvest_start";
}
end;
OnClock1200: // Close investments on Fri (60 hours after investments open)
if (gettime(4) == 5 && !agitcheck()) {
- set $2011_agit_invest,2;
+ $2011_agit_invest = 2;
donpcevent "#fund_master::OnInvest_stop";
}
end;
@@ -84,9 +84,9 @@ OnClock2000: // Close dungeons on Tues (1 hour before WoE)
}
function script F_Invest_Status {
- set .@day, gettime(4);
- set .@hour, gettime(3);
- set .@minute, gettime(2);
+ .@day = gettime(4);
+ .@hour = gettime(3);
+ .@minute = gettime(2);
// Inactive.
if (agitcheck())
@@ -123,13 +123,13 @@ function script F_Invest_Abyss {
next;
switch(select("1 unit 10,000 Zeny:10 units 100,000 Zeny:50 units 500,000 Zeny:Another amount:Cancel")) {
case 1:
- set .@units,1;
+ .@units = 1;
break;
case 2:
- set .@units,10;
+ .@units = 10;
break;
case 3:
- set .@units,50;
+ .@units = 50;
break;
case 4:
mes getarg(1);
@@ -154,7 +154,7 @@ function script F_Invest_Abyss {
mes "Canceled.";
close;
}
- set .@zeny, .@units * 10000;
+ .@zeny = .@units * 10000;
if (Zeny < .@zeny) {
mes getarg(1);
mes "You do not have enough money.";
@@ -174,10 +174,10 @@ function script F_Invest_Abyss {
next;
switch(select("1 Investment Certificate:5 Investment Certificates:Another amount:Cancel")) {
case 1:
- set .@tickets,1;
+ .@tickets = 1;
break;
case 2:
- set .@tickets,5;
+ .@tickets = 5;
break;
case 3:
mes getarg(1);
@@ -207,7 +207,7 @@ function script F_Invest_Abyss {
mes "Looks like you have fewer Investment Certificates than you want to submit.";
close;
}
- set .@units, .@tickets * 10;
+ .@units = .@tickets * 10;
mes getarg(1);
mes .@tickets+" Investment Certificate"+((.@tickets == 1)?" is":"s are")+" the same as an investment of "+.@units+" units ("+((.@units < 100)?.@units:insertchar(""+.@units,",",1))+"0,000z)"+getarg(2,"")+".";
mes "Not much but this is a small gift. You can exchange it with items in Malangdo.";
@@ -227,9 +227,9 @@ function script F_Invest_Abyss {
prt_gld,1,1,0 script #fund_master CLEAR_NPC,{
end;
OnInit:
- set .@invest_status, callfunc("F_Invest_Status");
+ .@invest_status = callfunc("F_Invest_Status");
if (.@invest_status == 1) {
- set $2011_agit_invest,1;
+ $2011_agit_invest = 1;
end;
}
if ((.@invest_status == 2 && $2011_agit_invest == 1) ||
@@ -239,22 +239,22 @@ OnInit:
}
end;
OnCalculate_Election:
- set .@force_vote,1;
+ .@force_vote = 1;
OnCalculate:
setarray .@cas$[0],"prt","pay","gef","alde";
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
// All funds per realm are summed.
- set .@funds[.@i], getd("$fund_"+.@cas$[.@i]+"01")+getd("$fund_"+.@cas$[.@i]+"02")+getd("$fund_"+.@cas$[.@i]+"03")+getd("$fund_"+.@cas$[.@i]+"04")+getd("$fund_"+.@cas$[.@i]+"05")+getd("$fund_"+.@cas$[.@i]+"_extra");
+ .@funds[.@i] = getd("$fund_"+.@cas$[.@i]+"01")+getd("$fund_"+.@cas$[.@i]+"02")+getd("$fund_"+.@cas$[.@i]+"03")+getd("$fund_"+.@cas$[.@i]+"04")+getd("$fund_"+.@cas$[.@i]+"05")+getd("$fund_"+.@cas$[.@i]+"_extra");
// 70,000,000z opens Hall of Abyss and F2.
if (.@funds[.@i] >= 7000) {
setd "$"+.@cas$[.@i]+"_invest_result",3;
- set .@total_7000,1;
+ .@total_7000 = 1;
}
// 20,000,000z opens F2 and a chance for Hall of Abyss.
else if (.@funds[.@i] >= 2000) {
setd "$"+.@cas$[.@i]+"_invest_result",2;
- set .@total_2000,1;
+ .@total_2000 = 1;
}
// Anything below that opens nothing.
else
@@ -265,20 +265,20 @@ OnCalculate:
end;
// No further actions if any realm hits 70,000,000z.
if (.@total_7000) {
- set $2011_agit_invest,4;
+ $2011_agit_invest = 4;
end;
}
// Otherwise, highest investment above 20,000,000z opens Hall of Abyss.
- set .@max, .@funds[0];
- for(set .@i,1; .@i<4; set .@i,.@i+1) {
+ .@max = .@funds[0];
+ for(.@i = 1; .@i<4; ++.@i) {
if (.@funds[.@i] > .@max) {
- set .@max, .@funds[.@i];
- set .@ele, .@i;
+ .@max = .@funds[.@i];
+ .@ele = .@i;
deletearray .@rand$[0], getarraysize(.@rand$);
} else if (.@funds[.@i] == .@max && .@funds[.@i] >= 2000) {
if (!getarraysize(.@rand$))
- set .@rand$[0], .@cas$[.@ele];
- set .@rand$[getarraysize(.@rand$)], .@cas$[.@i];
+ .@rand$[0] = .@cas$[.@ele];
+ .@rand$[getarraysize(.@rand$)] = .@cas$[.@i];
}
}
if (.@max < 2000)
@@ -287,62 +287,62 @@ OnCalculate:
// Tie: declare a random winner.
if (!.@force_vote) {
- set .@i, rand(getarraysize(.@rand$));
+ .@i = rand(getarraysize(.@rand$));
setd "$"+.@rand$[.@i]+"_invest_result",3;
- set $2011_agit_invest,4;
+ $2011_agit_invest = 4;
end;
}
// Tie: initiate a 30-minute election.
- set .@str$, implode(.@rand$,"|");
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ .@str$ = implode(.@rand$,"|");
+ for(.@i = 0; .@i<4; ++.@i) {
if (compare(.@str$,.@cas$[.@i]))
- set .@election, .@election | (1<<.@i);
+ .@election = .@election | (1<<.@i);
}
switch(.@election) {
- case 3: set $2011_agit_invest,11; break; //Prontera|Payon
- case 9: set $2011_agit_invest,12; break; //Prontera|Al De Baran
- case 5: set $2011_agit_invest,13; break; //Prontera|Geffen
- case 10: set $2011_agit_invest,14; break; //Al De Baran|Payon
- case 6: set $2011_agit_invest,15; break; //Geffen|Payon
- case 12: set $2011_agit_invest,16; break; //Al De Baran|Geffen
- case 11: set $2011_agit_invest,17; break; //Prontera|Payon|Al De Baran
- case 7: set $2011_agit_invest,18; break; //Prontera|Payon|Geffen
- case 13: set $2011_agit_invest,19; break; //Prontera|Al De Baran|Geffen
- case 14: set $2011_agit_invest,20; break; //Al De Baran|Payon|Geffen
- case 15: set $2011_agit_invest,21; break; //Prontera|Payon|Al De Baran|Geffen
+ case 3: $2011_agit_invest = 11; break; //Prontera|Payon
+ case 9: $2011_agit_invest = 12; break; //Prontera|Al De Baran
+ case 5: $2011_agit_invest = 13; break; //Prontera|Geffen
+ case 10: $2011_agit_invest = 14; break; //Al De Baran|Payon
+ case 6: $2011_agit_invest = 15; break; //Geffen|Payon
+ case 12: $2011_agit_invest = 16; break; //Al De Baran|Geffen
+ case 11: $2011_agit_invest = 17; break; //Prontera|Payon|Al De Baran
+ case 7: $2011_agit_invest = 18; break; //Prontera|Payon|Geffen
+ case 13: $2011_agit_invest = 19; break; //Prontera|Al De Baran|Geffen
+ case 14: $2011_agit_invest = 20; break; //Al De Baran|Payon|Geffen
+ case 15: $2011_agit_invest = 21; break; //Prontera|Payon|Al De Baran|Geffen
}
if ($2011_agit_invest >= 11)
donpcevent "Revoting Manager#Invest1::OnStart";
end;
} else {
setd "$"+.@cas$[.@ele]+"_invest_result",3;
- set $2011_agit_invest,4;
+ $2011_agit_invest = 4;
end;
}
end;
OnInvest_start:
announce "From now on, we are going to start the investments to connect the 'Abyss Gate' in the WOE areas: Valkyrie Realm, Greenwood Lake, Luina, Britoniah.",bc_all,0xFF0000; //FW_NORMAL 10
- set $fund_prt01,0;
- set $fund_prt02,0;
- set $fund_prt03,0;
- set $fund_prt04,0;
- set $fund_prt05,0;
- set $fund_pay01,0;
- set $fund_pay02,0;
- set $fund_pay03,0;
- set $fund_pay04,0;
- set $fund_pay05,0;
- set $fund_gef01,0;
- set $fund_gef02,0;
- set $fund_gef03,0;
- set $fund_gef04,0;
- set $fund_gef05,0;
- set $fund_alde01,0;
- set $fund_alde02,0;
- set $fund_alde03,0;
- set $fund_alde04,0;
- set $fund_alde05,0;
+ $fund_prt01 = 0;
+ $fund_prt02 = 0;
+ $fund_prt03 = 0;
+ $fund_prt04 = 0;
+ $fund_prt05 = 0;
+ $fund_pay01 = 0;
+ $fund_pay02 = 0;
+ $fund_pay03 = 0;
+ $fund_pay04 = 0;
+ $fund_pay05 = 0;
+ $fund_gef01 = 0;
+ $fund_gef02 = 0;
+ $fund_gef03 = 0;
+ $fund_gef04 = 0;
+ $fund_gef05 = 0;
+ $fund_alde01 = 0;
+ $fund_alde02 = 0;
+ $fund_alde03 = 0;
+ $fund_alde04 = 0;
+ $fund_alde05 = 0;
donpcevent "Investment_total#fund00::OnEnable";
end;
OnInvest_stop:
@@ -353,35 +353,35 @@ OnInvest_stop:
OnResult:
announce "We've got the results of the investments for the 'Abyss Gate'. You can check through the Investment Status Board in each WOE area.",bc_all,0xFF0000; //FW_NORMAL 10
if ($2011_agit_invest == 4) {
- set $fund_prt01,0;
- set $fund_prt02,0;
- set $fund_prt03,0;
- set $fund_prt04,0;
- set $fund_prt05,0;
- set $fund_prt_extra,0;
- set $fund_pay01,0;
- set $fund_pay02,0;
- set $fund_pay03,0;
- set $fund_pay04,0;
- set $fund_pay05,0;
- set $fund_pay_extra,0;
- set $fund_gef01,0;
- set $fund_gef02,0;
- set $fund_gef03,0;
- set $fund_gef04,0;
- set $fund_gef05,0;
- set $fund_gef_extra,0;
- set $fund_alde01,0;
- set $fund_alde02,0;
- set $fund_alde03,0;
- set $fund_alde04,0;
- set $fund_alde05,0;
- set $fund_alde_extra,0;
+ $fund_prt01 = 0;
+ $fund_prt02 = 0;
+ $fund_prt03 = 0;
+ $fund_prt04 = 0;
+ $fund_prt05 = 0;
+ $fund_prt_extra = 0;
+ $fund_pay01 = 0;
+ $fund_pay02 = 0;
+ $fund_pay03 = 0;
+ $fund_pay04 = 0;
+ $fund_pay05 = 0;
+ $fund_pay_extra = 0;
+ $fund_gef01 = 0;
+ $fund_gef02 = 0;
+ $fund_gef03 = 0;
+ $fund_gef04 = 0;
+ $fund_gef05 = 0;
+ $fund_gef_extra = 0;
+ $fund_alde01 = 0;
+ $fund_alde02 = 0;
+ $fund_alde03 = 0;
+ $fund_alde04 = 0;
+ $fund_alde05 = 0;
+ $fund_alde_extra = 0;
} else if ($2011_agit_invest == 2)
donpcevent "#fund_master::OnCalculate";
end;
OnReset:
- set $2011_agit_invest,0;
+ $2011_agit_invest = 0;
donpcevent "Investment_total#fund00::OnReset";
end;
}
@@ -412,13 +412,13 @@ OnInit:
initnpctimer;
donpcevent "Investment_total#fund00::OnVarInit";
} else {
- set $agit_result_timer,0;
- set $agit_result_notice,0;
+ $agit_result_timer = 0;
+ $agit_result_notice = 0;
}
end;
OnVarInit:
setarray .@cas$[0],"prt","pay","gef","alde";
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
setd "$@vfund_"+.@cas$[.@i]+"01", getd("$fund_"+.@cas$[.@i]+"01");
setd "$@vfund_"+.@cas$[.@i]+"02", getd("$fund_"+.@cas$[.@i]+"02");
setd "$@vfund_"+.@cas$[.@i]+"03", getd("$fund_"+.@cas$[.@i]+"03");
@@ -428,13 +428,13 @@ OnVarInit:
}
end;
OnEnable:
- set $agit_result_timer,0;
- set $agit_result_notice,0;
+ $agit_result_timer = 0;
+ $agit_result_notice = 0;
initnpctimer;
end;
OnReset:
- set $agit_result_timer,0;
- set $agit_result_notice,0;
+ $agit_result_timer = 0;
+ $agit_result_notice = 0;
stopnpctimer;
end;
OnTimerReset:
@@ -443,11 +443,11 @@ OnTimerReset:
OnTimer3600000:
if (callfunc("F_Invest_Status") == 1) {
if ($agit_result_timer < 59) {
- set $agit_result_timer, $agit_result_timer+1;
+ $agit_result_timer = $agit_result_timer+1;
// Trigger on multiples of 5 up to 55, and 58.
if ($agit_result_timer % 10 == 5 || $agit_result_timer % 10 == 0 || $agit_result_timer == 58) {
- set $agit_result_notice, $agit_result_notice+1;
+ $agit_result_notice = $agit_result_notice+1;
donpcevent "Investment_total#fund00::OnVarInit";
announce "No. "+$agit_result_notice+" Interim statement is now available. You can check through the Investment Status Board in each WOE area.",bc_all,0xFF0000; //FW_NORMAL 10
}
@@ -468,7 +468,7 @@ prt_gld,164,98,3 script Revoting Manager#Invest1 4_M_BOSSCAT,{
mes "Please wait for our results announcement.";
close;
OnInit:
- set .@invest_status, callfunc("F_Invest_Status");
+ .@invest_status = callfunc("F_Invest_Status");
if (.@invest_status == 2 && $2011_agit_invest >= 11 && $agit_revoting_timer < 30) {
donpcevent "Revoting Manager#Invest2::OnEnable";
initnpctimer;
@@ -491,26 +491,26 @@ OnCalculate:
case 21: setarray.@cas$[0],"prt","pay","alde","gef"; break;
default: end;
}
- set .@max, getd("$fund_"+.@cas$[0]+"_extra");
- for(set .@i,1; .@i<getarraysize(.@cas$); set .@i,.@i+1) {
- set .@funds, getd("$fund_"+.@cas$[.@i]+"_extra");
+ .@max = getd("$fund_"+.@cas$[0]+"_extra");
+ for(.@i = 1; .@i<getarraysize(.@cas$); ++.@i) {
+ .@funds = getd("$fund_"+.@cas$[.@i]+"_extra");
if (.@funds > .@max) {
- set .@max, .@funds;
- set .@ele, .@i;
+ .@max = .@funds;
+ .@ele = .@i;
deletearray .@rand$[0], getarraysize(.@rand$);
} else if (.@funds == .@max) {
if (!getarraysize(.@rand$))
- set .@rand$[0], .@cas$[.@ele];
- set .@rand$[getarraysize(.@rand$)], .@cas$[.@i];
+ .@rand$[0] = .@cas$[.@ele];
+ .@rand$[getarraysize(.@rand$)] = .@cas$[.@i];
}
}
if (getarraysize(.@rand$)) {
- set .@i, rand(getarraysize(.@rand$));
+ .@i = rand(getarraysize(.@rand$));
setd "$"+.@rand$[.@i]+"_invest_result",3;
} else
setd "$"+.@cas$[.@ele]+"_invest_result",3;
- set $2011_agit_invest,4;
- set $agit_revoting_timer,0;
+ $2011_agit_invest = 4;
+ $agit_revoting_timer = 0;
end;
OnEnable:
enablenpc "Revoting Manager#Invest1";
@@ -530,15 +530,15 @@ OnTimerReset:
initnpctimer;
end;
OnTimer60000:
- set .@revote, $agit_revoting_timer;
+ .@revote = $agit_revoting_timer;
if (.@revote < 30) {
- set $agit_revoting_timer, $agit_revoting_timer+1;
+ $agit_revoting_timer = $agit_revoting_timer+1;
donpcevent "Revoting Manager#Invest1::OnTimerReset";
} else if (.@revote == 30) {
announce "Cat Paw Merchant Guild: Now we are going to close the additional vote. We will announce the results soon.",bc_all,0xFF0000; //FW_NORMAL 10
donpcevent "Revoting Manager#Invest2::OnDisable";
donpcevent "Revoting Manager#Invest1::OnEnable";
- set $agit_revoting_timer, $agit_revoting_timer+1;
+ $agit_revoting_timer = $agit_revoting_timer+1;
donpcevent "Revoting Manager#Invest1::OnTimerReset";
} else if (.@revote == 31) {
donpcevent "Revoting Manager#Invest1::OnCalculate";
@@ -553,7 +553,7 @@ OnTimer60000:
}
prt_gld,164,98,3 script Revoting Manager#Invest2 4_M_BOSSCAT,{
- set .@invest, $2011_agit_invest;
+ .@invest = $2011_agit_invest;
if (.@invest < 11) {
mes "[Revoting Manager]";
mes "No! This is not the time to take a revote.";
@@ -561,8 +561,8 @@ prt_gld,164,98,3 script Revoting Manager#Invest2 4_M_BOSSCAT,{
disablenpc "Revoting Manager#Invest2";
end;
}
- set .@playtime, checkquest(7349,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7349,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Revoting Manager]";
mes "You've already participated in the vote.";
mes "Please relax and wait for the results.";
@@ -584,17 +584,17 @@ prt_gld,164,98,3 script Revoting Manager#Invest2 4_M_BOSSCAT,{
// Create menu.
explode(.@candidates$, callsub(OnGetCandidates, .@invest),"|");
- for(set .@i,0; .@i<getarraysize(.@candidates$); set .@i,.@i+1) {
+ for(.@i = 0; .@i<getarraysize(.@candidates$); ++.@i) {
if (.@candidates$[.@i] == "alde")
- set .@menu$[.@i],"Luina";
+ .@menu$[.@i] = "Luina";
else if (.@candidates$[.@i] == "gef")
- set .@menu$[.@i],"Britoniah";
+ .@menu$[.@i] = "Britoniah";
else if (.@candidates$[.@i] == "pay")
- set .@menu$[.@i],"Greenwood Lake";
+ .@menu$[.@i] = "Greenwood Lake";
else if (.@candidates$[.@i] == "prt")
- set .@menu$[.@i],"Valkyrie Realm";
+ .@menu$[.@i] = "Valkyrie Realm";
}
- set .@vote, select(implode(.@menu$,":"))-1;
+ .@vote = select(implode(.@menu$,":"))-1;
mes "[Revoting Manager]";
mes "You've voted for "+.@menu$[.@vote]+".";
@@ -644,22 +644,22 @@ OnTimer14000:
end;
OnTimer20000:
explode(.@candidates$, callsub(OnGetCandidates, $2011_agit_invest),"|");
- for(set .@i,0; .@i<getarraysize(.@candidates$); set .@i,.@i+1) {
+ for(.@i = 0; .@i<getarraysize(.@candidates$); ++.@i) {
if (.@candidates$[.@i] == "alde")
- set .@choices$[.@i],"Luina";
+ .@choices$[.@i] = "Luina";
else if (.@candidates$[.@i] == "gef")
- set .@choices$[.@i],"Britoniah";
+ .@choices$[.@i] = "Britoniah";
else if (.@candidates$[.@i] == "pay")
- set .@choices$[.@i],"Greenwood Lake";
+ .@choices$[.@i] = "Greenwood Lake";
else if (.@candidates$[.@i] == "prt")
- set .@choices$[.@i],"Valkyrie Realm";
+ .@choices$[.@i] = "Valkyrie Realm";
}
announce "Cat Paw Merchant Guild: The candidates for the additional vote are... "+implode(.@choices$," vs. ")+".",bc_all,0xFF0000; //FW_NORMAL 10
- set $fund_prt_extra,0;
- set $fund_pay_extra,0;
- set $fund_gef_extra,0;
- set $fund_alde_extra,0;
- set $agit_revoting_timer,0;
+ $fund_prt_extra = 0;
+ $fund_pay_extra = 0;
+ $fund_gef_extra = 0;
+ $fund_alde_extra = 0;
+ $agit_revoting_timer = 0;
donpcevent "Revoting Manager#Invest2::OnEnable";
stopnpctimer;
end;
@@ -672,15 +672,15 @@ prtg_cas01,2,2,0 script Abrai 1_M_JOBTESTER,{
OnAgitInvest:
switch(callfunc("F_Invest_Status")) {
case 0:
- set $2011_agit_invest,0;
+ $2011_agit_invest = 0;
donpcevent "#fund_master::OnReset";
break;
case 1:
- set $2011_agit_invest,1;
+ $2011_agit_invest = 1;
donpcevent "#fund_master::OnInvest_start";
break;
case 2:
- set $2011_agit_invest,2;
+ $2011_agit_invest = 2;
donpcevent "#fund_master::OnInvest_stop";
break;
case 3:
@@ -696,27 +696,27 @@ OnAgitInvest:
- script Cat Paw Merchant Guild -1,{
if (compare(strnpcinfo(4),"alde")) {
- set .@npc$,"alde";
- set .@name$,"Megrez";
- set .@realm$,"Luina";
- set .@intro$,"Luina Branch Manager in Al De Baran";
+ .@npc$ = "alde";
+ .@name$ = "Megrez";
+ .@realm$ = "Luina";
+ .@intro$ = "Luina Branch Manager in Al De Baran";
} else if (compare(strnpcinfo(4),"gef")) {
- set .@npc$,"gef";
- set .@name$,"Meraq";
- set .@realm$,"Britoniah";
- set .@intro$,"Britoniah Branch Manager";
+ .@npc$ = "gef";
+ .@name$ = "Meraq";
+ .@realm$ = "Britoniah";
+ .@intro$ = "Britoniah Branch Manager";
} else if (compare(strnpcinfo(4),"pay")) {
- set .@npc$,"pay";
- set .@name$,"Phecda";
- set .@realm$,"Greenwood Lake";
- set .@intro$,"Payon Greenwood Lake Branch Manager";
+ .@npc$ = "pay";
+ .@name$ = "Phecda";
+ .@realm$ = "Greenwood Lake";
+ .@intro$ = "Payon Greenwood Lake Branch Manager";
} else if (compare(strnpcinfo(4),"prt")) {
- set .@npc$,"prt";
- set .@name$,"Dubae";
- set .@realm$,"Valkyrie Realm";
- set .@intro$,"Prontera Valkyrie Realm Branch Manager";
+ .@npc$ = "prt";
+ .@name$ = "Dubae";
+ .@realm$ = "Valkyrie Realm";
+ .@intro$ = "Prontera Valkyrie Realm Branch Manager";
}
- set .@n$,"["+.@name$+"]";
+ .@n$ = "["+.@name$+"]";
mes .@n$;
mes "I'm "+.@name$+", the "+.@intro$+" of the Cat Paw Merchant Guild.";
@@ -890,23 +890,23 @@ OnAgitInvest:
mes "Please come back during the investment duration.";
close;
}
- set .@guild, getcharid(2);
- for(set .@i,1; .@i<=5; set .@i,.@i+1) {
- set .@castle_name$[.@i], getcastlename(.@npc$+"g_cas0"+.@i);
- set .@owner_id[.@i], getcastledata(.@npc$+"g_cas0"+.@i,1);
- set .@owner_name$[.@i], getguildname(.@owner_id[.@i]);
+ .@guild = getcharid(2);
+ for(.@i = 1; .@i<=5; ++.@i) {
+ .@castle_name$[.@i] = getcastlename(.@npc$+"g_cas0"+.@i);
+ .@owner_id[.@i] = getcastledata(.@npc$+"g_cas0"+.@i,1);
+ .@owner_name$[.@i] = getguildname(.@owner_id[.@i]);
if (.@guild == .@owner_id[.@i]) {
- set .@menu$, .@menu$+.@castle_name$[.@i]+" ["+.@owner_name$[.@i]+"] Guild:";
- set .@castles_owned, .@castles_owned | (1<<.@i);
+ .@menu$ = .@menu$+.@castle_name$[.@i]+" ["+.@owner_name$[.@i]+"] Guild:";
+ .@castles_owned = .@castles_owned | (1<<.@i);
} else
- set .@menu$, .@menu$+"^aaaaaaNot the guild that claimed "+.@castle_name$[.@i]+"^000000:";
+ .@menu$ = .@menu$+"^aaaaaaNot the guild that claimed "+.@castle_name$[.@i]+"^000000:";
}
mes .@n$;
mes "Would you like to invest in the ^4d4dff"+.@realm$+"^000000 region?";
mes "If there is a castle occupied already, you will invest in the castle and the guild that is occupying it.";
next;
if (.@castles_owned) {
- set .@i, select(.@menu$+"Cancel");
+ .@i = select(.@menu$+"Cancel");
if (.@i == 6) {
mes .@n$;
mes "Canceled.";
@@ -938,34 +938,34 @@ OnAgitInvest:
- script Gate Manager#realm -1,{
if (compare(strnpcinfo(4),"alde")) {
- set .@npc$,"alde";
- set .@name$,"Alkor";
- set .@gate$,"Hero's Tears";
- set .@realm$,"Luina";
+ .@npc$ = "alde";
+ .@name$ = "Alkor";
+ .@gate$ = "Hero's Tears";
+ .@realm$ = "Luina";
} else if (compare(strnpcinfo(4),"gef")) {
- set .@npc$,"gef";
- set .@name$,"Mizar";
- set .@gate$,"Hill of the Dead";
- set .@realm$,"Britoniah";
+ .@npc$ = "gef";
+ .@name$ = "Mizar";
+ .@gate$ = "Hill of the Dead";
+ .@realm$ = "Britoniah";
} else if (compare(strnpcinfo(4),"pay")) {
- set .@npc$,"pay";
- set .@name$,"Alkaid";
- set .@gate$,"Winds of the Ancient";
- set .@realm$,"Greenwood Lake";
+ .@npc$ = "pay";
+ .@name$ = "Alkaid";
+ .@gate$ = "Winds of the Ancient";
+ .@realm$ = "Greenwood Lake";
} else if (compare(strnpcinfo(4),"prt")) {
- set .@npc$,"prt";
- set .@name$,"Arios";
- set .@gate$,"Way of the Warrior";
- set .@realm$,"Valkyrie Realm";
+ .@npc$ = "prt";
+ .@name$ = "Arios";
+ .@gate$ = "Way of the Warrior";
+ .@realm$ = "Valkyrie Realm";
}
- set .@n$,"["+.@name$+"]";
+ .@n$ = "["+.@name$+"]";
if (callfunc("F_Invest_Status") != 3) {
mes .@n$;
mes "There are currently no connected dungeon gates.";
close;
}
- set .@status, getd("$"+.@npc$+"_invest_result");
+ .@status = getd("$"+.@npc$+"_invest_result");
if (.@status == 3) {
mes .@n$;
mes "We've successfully connected the Abyss Gate ["+.@gate$+"] with the help from your investment.";
@@ -975,7 +975,7 @@ OnAgitInvest:
mes "Please visit as often as possible since the entrance fee is saved as an investment for the region.";
mes "Do you want to enter the Agit dungeon?";
next;
- set .@i, select(.@realm$+" Dungeon 1F - 10000z:"+.@realm$+" Dungeon 2F - 10000z:Cancel");
+ .@i = select(.@realm$+" Dungeon 1F - 10000z:"+.@realm$+" Dungeon 2F - 10000z:Cancel");
if (.@i == 3) {
mes .@n$;
mes "Canceled.";
@@ -1017,40 +1017,40 @@ OnAgitInvest:
}
- script Investment Status Board -1,{
- set .@invest_status, callfunc("F_Invest_Status");
+ .@invest_status = callfunc("F_Invest_Status");
if (.@invest_status == 1) {
if (compare(strnpcinfo(4),"alde")) {
- set .@npc$,"alde";
- set .@realm$,"Luina";
+ .@npc$ = "alde";
+ .@realm$ = "Luina";
} else if (compare(strnpcinfo(4),"gef")) {
- set .@npc$,"gef";
- set .@realm$,"Britoniah";
+ .@npc$ = "gef";
+ .@realm$ = "Britoniah";
} else if (compare(strnpcinfo(4),"pay")) {
- set .@npc$,"pay";
- set .@realm$,"Greenwood Lake";
+ .@npc$ = "pay";
+ .@realm$ = "Greenwood Lake";
} else if (compare(strnpcinfo(4),"prt")) {
- set .@npc$,"prt";
- set .@realm$,"Valkyrie Realm";
+ .@npc$ = "prt";
+ .@realm$ = "Valkyrie Realm";
}
- set .@notice, $agit_result_notice;
+ .@notice = $agit_result_notice;
if (.@notice < 1 || .@notice > 12) {
mes "There are currently no investment sums available.";
close;
} else if (.@notice == 1)
- set .@str$,"1st";
+ .@str$ = "1st";
else if (.@notice == 2)
- set .@str$,"2nd";
+ .@str$ = "2nd";
else if (.@notice == 3)
- set .@str$,"3rd";
+ .@str$ = "3rd";
else
- set .@str$,.@notice+"th";
+ .@str$ = .@notice+"th";
mes .@str$+" total (unit in 10,000z)";
- for(set .@i,1; .@i<=5; set .@i,.@i+1) {
- set .@map$, .@npc$+"g_cas0"+.@i;
- set .@fund[.@i], getd("$@vfund_"+.@npc$+"0"+.@i);
+ for(.@i = 1; .@i<=5; ++.@i) {
+ .@map$ = .@npc$+"g_cas0"+.@i;
+ .@fund[.@i] = getd("$@vfund_"+.@npc$+"0"+.@i);
mes getcastlename(.@map$)+" "+getguildname(getcastledata(.@map$,1))+" Guild: "+.@fund[.@i];
}
- set .@fund[0], getd("$@vfund_"+.@npc$+"_extra");
+ .@fund[0] = getd("$@vfund_"+.@npc$+"_extra");
mes .@realm$+" normal: "+.@fund[0];
mes .@realm$+" Investment Grand Total: "+(.@fund[0]+.@fund[1]+.@fund[2]+.@fund[3]+.@fund[4]+.@fund[5]);
close;
@@ -1063,7 +1063,7 @@ OnAgitInvest:
setarray .@invest_result[0], $prt_invest_result,$pay_invest_result,$gef_invest_result,$alde_invest_result;
setarray .@invest_region$[0], "Valkyrie Realm", "Greenwood Lake", "Britoniah", "Luina";
mes "!- Investment Results of All Agit Regions -!";
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
if (.@invest_result[.@i] == 1)
mes "^aaaaaa["+.@invest_region$[.@i]+"] below minimum^000000";
else if (.@invest_result[.@i] == 2) {
@@ -1087,22 +1087,22 @@ OnAgitInvest:
//============================================================
- script Gate Manager#castle -1,{
- set .@id, atoi(charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1));
+ .@id = atoi(charat(strnpcinfo(2),getstrlen(strnpcinfo(2))-1));
if (compare(strnpcinfo(2),"alde")) {
- set .@npc$,"alde";
- set .@realm$,"Luina";
+ .@npc$ = "alde";
+ .@realm$ = "Luina";
} else if (compare(strnpcinfo(2),"gef")) {
- set .@npc$,"gef";
- set .@realm$,"Britoniah";
+ .@npc$ = "gef";
+ .@realm$ = "Britoniah";
} else if (compare(strnpcinfo(2),"pay")) {
- set .@npc$,"pay";
- set .@realm$,"Greenwood Lake";
+ .@npc$ = "pay";
+ .@realm$ = "Greenwood Lake";
} else if (compare(strnpcinfo(2),"prt")) {
- set .@npc$,"prt";
- set .@realm$,"Valkyrie Realm";
+ .@npc$ = "prt";
+ .@realm$ = "Valkyrie Realm";
}
- set .@GID, getcastledata(strnpcinfo(4),1);
+ .@GID = getcastledata(strnpcinfo(4),1);
if (getcharid(2) != .@GID) {
mes "[Gate Manager]";
mes "You don't seem to be the member of guild owning this castle.";
@@ -1231,9 +1231,9 @@ OnAgitInvest:
end;
L_Enter:
- set .@invest_status, callfunc("F_Invest_Status");
+ .@invest_status = callfunc("F_Invest_Status");
if (.@invest_status == 3) {
- set .@status, getd("$"+getarg(2)+"_invest_result");
+ .@status = getd("$"+getarg(2)+"_invest_result");
if ((getarg(0) == 1 && .@status == 2) || .@status == 3)
return;
else {
@@ -1288,32 +1288,32 @@ malangdo,218,126,4 script Cat Paw Merchants Notice 4_BOARD3,{
"Planting trees on Mellow Island","Ancient language research","Weapons made of sharp teeth","Toy boss doll 01",
"A tiger is just a cat after all","The shattered spear and shield?","Toy boss doll 02","Best in summer! Cold scales",
"Piece of Thanatos' armor","I hear Dragon Scales are tough 02","The identity of the creepy eye","If only I could see!";
- set .@menu$, "Quit:"+implode(.@event1$[0],":");
+ .@menu$ = "Quit:"+implode(.@event1$[0],":");
while(1) {
- set .@i, select(.@menu$)-1;
+ .@i = select(.@menu$)-1;
switch(.@i) {
case 0: close;
- case 1: set .@str$,"2 Pieces of Queen's Wing"; break;
- case 2: set .@str$,"2 Broken Crowns"; break;
- case 3: set .@str$,"2 Fire Dragon Scales"; break;
- case 4: set .@str$,"3 Mother's Nightmares"; break;
- case 5: set .@str$,"5 Gemstones"; break;
- case 6: set .@str$,"5 Heroic Emblems"; break;
- case 7: set .@str$,"3 Taeguk Plates"; break;
- case 8: set .@str$,"3 Broken Pharaoh Symbols and 3 Tutankhamen's Masks"; break;
- case 9: set .@str$,"2 Pocket Watches"; break;
- case 10: set .@str$,"3 Young Twigs"; break;
- case 11: set .@str$,"5 Rossata Pieces"; break;
- case 12: set .@str$,"5 Fangs of Garm"; break;
- case 13: set .@str$,"3 Baphomet Dolls"; break;
- case 14: set .@str$,"1 Tiger's Footskin and 5 Tiger Skins"; break;
- case 15: set .@str$,"3 Broken Shield Pieces and 3 Shining Spear Blades"; break;
- case 16: set .@str$,"3 Osiris Dolls"; break;
- case 17: set .@str$,"1 Ice Scale"; break;
- case 18: set .@str$,"1 Skeletal Armor Piece"; break;
- case 19: set .@str$,"1 Darkred Scale Piece"; break;
- case 20: set .@str$,"2 Wills of Red Darkness"; break;
- case 21: set .@str$,"2 Foolishness of the Blind"; break;
+ case 1: .@str$ = "2 Pieces of Queen's Wing"; break;
+ case 2: .@str$ = "2 Broken Crowns"; break;
+ case 3: .@str$ = "2 Fire Dragon Scales"; break;
+ case 4: .@str$ = "3 Mother's Nightmares"; break;
+ case 5: .@str$ = "5 Gemstones"; break;
+ case 6: .@str$ = "5 Heroic Emblems"; break;
+ case 7: .@str$ = "3 Taeguk Plates"; break;
+ case 8: .@str$ = "3 Broken Pharaoh Symbols and 3 Tutankhamen's Masks"; break;
+ case 9: .@str$ = "2 Pocket Watches"; break;
+ case 10: .@str$ = "3 Young Twigs"; break;
+ case 11: .@str$ = "5 Rossata Pieces"; break;
+ case 12: .@str$ = "5 Fangs of Garm"; break;
+ case 13: .@str$ = "3 Baphomet Dolls"; break;
+ case 14: .@str$ = "1 Tiger's Footskin and 5 Tiger Skins"; break;
+ case 15: .@str$ = "3 Broken Shield Pieces and 3 Shining Spear Blades"; break;
+ case 16: .@str$ = "3 Osiris Dolls"; break;
+ case 17: .@str$ = "1 Ice Scale"; break;
+ case 18: .@str$ = "1 Skeletal Armor Piece"; break;
+ case 19: .@str$ = "1 Darkred Scale Piece"; break;
+ case 20: .@str$ = "2 Wills of Red Darkness"; break;
+ case 21: .@str$ = "2 Foolishness of the Blind"; break;
}
mes "["+.@event1$[.@i-1]+"]";
mes .@str$+" for one Cat Paw Merchants Investment Certificate.";
@@ -1389,7 +1389,7 @@ malangdo,218,123,1 script Namis#invest 4_CAT_SAILOR2,4,4,{
"Planting trees on Mellow Island","Ancient language research","Weapons made of sharp teeth","Toy boss doll 01",
"A tiger is just a cat after all","The shattered spear and shield?","Toy boss doll 02","Best in summer! Cold scales",
"Piece of Thanatos' armor","I hear Dragon Scales are tough 02","The identity of the creepy eye","If only I could see!";
- set .@i, select(implode(.@event1$[0],":"))-1;
+ .@i = select(implode(.@event1$[0],":"))-1;
switch(.@i+1) {
case 1: callsub L_Check,"2 Pieces of Queen's Wing",6326,2,"Wings of the Insect Queen? What a pitiful name. I would've given some cool names!",.@event1$[.@i];
case 2: callsub L_Check,"2 Broken Crowns",7754,2,"For crying out loud! Those cats working on these events must be playing around. Can't they think of a better name?",.@event1$[.@i];
@@ -1421,12 +1421,12 @@ malangdo,218,123,1 script Namis#invest 4_CAT_SAILOR2,4,4,{
}
end;
L_Check:
- set .@args, getargcount();
+ .@args = getargcount();
if (.@args > 5) {
if (countitem(getarg(5)) < getarg(6))
- set .@items,1; //incomplete
+ .@items = 1; //incomplete
else
- set .@items,2; //complete
+ .@items = 2; //complete
}
if (countitem(getarg(1)) < getarg(2) || .@items == 1) {
mes "[Namis]";
@@ -1512,7 +1512,7 @@ malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
close;
}
delitem 6488,5; //Thanks_Invest_Ticket
- set .@i, rand(1,10000);
+ .@i = rand(1,10000);
if (.@i <= 100) callsub L_Bag,12531,1; //White_Potion_Box
else if (.@i <= 200) callsub L_Bag,12549,1; //White_Slim_Pot_Box2
else if (.@i <= 250) callsub L_Bag,11549,10; //Woe_Blue_Potion
@@ -1581,7 +1581,7 @@ malangdo,215,119,4 script Thanks Ticket Machine 2_VENDING_MACHINE1,{
close;
}
delitem 6488,50; //Thanks_Invest_Ticket
- set .@i, rand(1,10000);
+ .@i = rand(1,10000);
if (.@i <= 100) callsub L_Bag,12531,1; //White_Potion_Box
else if (.@i <= 200) callsub L_Bag,12549,1; //White_Slim_Pot_Box2
else if (.@i <= 250) callsub L_Bag,11549,20; //Woe_Blue_Potion
diff --git a/npc/re/instances/BakonawaLake.txt b/npc/re/instances/BakonawaLake.txt
index 89ce64ac4..9cf9ea8cd 100644
--- a/npc/re/instances/BakonawaLake.txt
+++ b/npc/re/instances/BakonawaLake.txt
@@ -36,33 +36,33 @@ ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
close;
}
- set .@party_id,getcharid(1);
- set .@md_name$, "Bakonawa Lake";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Bakonawa Lake";
- set .@baku_time, checkquest(12278,PLAYTIME);
- if (.@baku_time == -1) {
- if (checkquest(12279) == -1) setquest 12279;
+ .@baku_time = questprogress(12278,PLAYTIME);
+ if (!.@baku_time) {
+ if (!questprogress(12279)) setquest 12279;
}
if (!.@party_id) {
mes "[Taho]";
mes "Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.";
close;
}
- if (.@baku_time == -1) {
+ if (!.@baku_time) {
if (getcharid(0) == getpartyleader(.@party_id,2)) {
mes "[Taho]";
mes "Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?";
next;
- set .@i, select("Please weave a rope.:Now I will go down.:Cancel.");
+ .@i = select("Please weave a rope.:Now I will go down.:Cancel.");
} else {
mes "[Taho]";
mes "You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.";
next;
- set .@i, select(":Now I will go down.:Cancel.");
+ .@i = select(":Now I will go down.:Cancel.");
}
switch(.@i) {
case 1:
- set .@instance,instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "[Taho]";
mes "Oh, the rope got dropped. I have to make a new one.";
@@ -92,7 +92,7 @@ ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
case 3:
close;
}
- } else if (.@baku_time == 0 || .@baku_time == 1) {
+ } else if (.@baku_time == 1) {
mes "[Taho]";
mes "The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.";
close;
@@ -111,8 +111,8 @@ sec_in02,26,26,4 script Bakonawa's Rage 4_M_DEWZATIMAN,{
if (callfunc("F_GM_NPC",1854,0) == 1) {
erasequest 12278;
erasequest 12279;
- set malaya_bakona1,7;
- set malaya_bakona2,15;
+ malaya_bakona1 = 7;
+ malaya_bakona2 = 15;
}
close;
}
@@ -157,7 +157,7 @@ OnInstanceInit:
end;
OnStart:
enablenpc instance_npcname("#Bakonawan1");
- set .@map$, instance_mapname("1@ma_b");
+ .@map$ = instance_mapname("1@ma_b");
mapannounce .@map$,"Taho: I can see him there on the surface! ATTACK!!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
monster .@map$,78,81,"Bakonawa",2320,1,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; //original: (78,83)
initnpctimer;
@@ -166,7 +166,7 @@ OnFail:
killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan1")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@ma_b");
+ .@map$ = instance_mapname("1@ma_b");
if (mobcount(.@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
donpcevent instance_npcname("#BakonawaDeadn1")+"::OnStart";
killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
@@ -189,7 +189,7 @@ OnTimer570000:
donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
end;
OnTimer600000:
- set .@map$, instance_mapname("1@ma_b");
+ .@map$ = instance_mapname("1@ma_b");
mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
donpcevent instance_npcname("Taho#Fail")+"::OnStart";
donpcevent instance_npcname("#Bakonawan1")+"::OnFail";
@@ -220,9 +220,9 @@ OnTouch:
OnTimer5000:
setarray .@x[0],79,71,60,61,57,89,95,96,99;
setarray .@y[0],71,72,80,90,99,73,82,90,99;
- set .@map$, instance_mapname("1@ma_b");
- for(set .@i,0; .@i<9; set .@i,.@i+1) {
- set .@rand, rand(1,10);
+ .@map$ = instance_mapname("1@ma_b");
+ for(.@i = 0; .@i<9; ++.@i) {
+ .@rand = rand(1,10);
if (.@rand > 7)
monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2337,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
else if (.@rand < 4)
@@ -271,8 +271,8 @@ OnInstanceInit:
end;
OnStart:
enablenpc instance_npcname("#Bakonawan2");
- set .@label$, instance_npcname("#Bakonawan2")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@ma_b");
+ .@label$ = instance_npcname("#Bakonawan2")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_b");
monster .@map$,95,98,"Caldron",2328,1,.@label$;
monster .@map$,60,98,"Caldron",2328,1,.@label$;
monster .@map$,97,104,"Gong",2328,1,.@label$;
@@ -281,8 +281,8 @@ OnStart:
initnpctimer;
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@ma_b");
- set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@ma_b");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
donpcevent instance_npcname("#Bakonawan2-1")+"::OnEnd";
stopnpctimer;
@@ -304,7 +304,7 @@ OnTimer297000: callsub OnAnnounce,"3 seconds",18,0;
OnTimer298000: callsub OnAnnounce,"2 seconds",19,0;
OnTimer299000: callsub OnAnnounce,"1 second",20,0;
OnTimer300000:
- set .@map$, instance_mapname("1@ma_b");
+ .@map$ = instance_mapname("1@ma_b");
mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
donpcevent instance_npcname("Taho#Fail")+"::OnStart";
donpcevent instance_npcname("#Bakonawan2-1")+"::OnFail";
@@ -363,8 +363,8 @@ OnStart:
donpcevent instance_npcname("#Bakonawan3-1")+"::OnStart";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@ma_b");
- set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@ma_b");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
mapannounce .@map$,"Taho: We got him! I can see he has threw up something that looks like a box.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
donpcevent instance_npcname("Taho#Completed")+"::OnStart";
@@ -397,7 +397,7 @@ OnTimer597000: callsub OnAnnounce,"3 seconds",18,0;
OnTimer598000: callsub OnAnnounce,"2 seconds",19,0;
OnTimer599000: callsub OnAnnounce,"1 second",20,0;
OnTimer600000:
- set .@map$, instance_mapname("1@ma_b");
+ .@map$ = instance_mapname("1@ma_b");
mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
donpcevent instance_npcname("Taho#Fail")+"::OnStart";
killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
@@ -440,17 +440,17 @@ OnTimer600000:
stopnpctimer;
end;
OnMobSpawn:
- set .@label$, instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@ma_b");
+ .@label$ = instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_b");
killmonster .@map$,.@label$;
- set .@mob_dead_num, mobcount(.@map$,.@label$);
+ .@mob_dead_num = mobcount(.@map$,.@label$);
if (.@mob_dead_num < 50) {
- set .@mob_rg, 50 - .@mob_dead_num;
+ .@mob_rg = 50 - .@mob_dead_num;
if (.@mob_rg > getarg(0))
- set .@mob_rg, getarg(0);
+ .@mob_rg = getarg(0);
while(1) {
areamonster .@map$,74,74,82,74,"Bakonawa's Puppet",2334,1,.@label$;
- set .@mob_dead_num, mobcount(.@map$,.@label$);
+ .@mob_dead_num = mobcount(.@map$,.@label$);
if (.@mob_dead_num >= .@mob_rg) {
break;
}
@@ -469,7 +469,7 @@ OnMobSpawn:
mes "It seems you are already carrying items of too much weight. Please try again after reducing the weight.";
close;
}
- if (checkquest(12279,HUNTING) == 2) {
+ if (questprogress(12279,HUNTING) == 2) {
erasequest 12279;
mes "[Taho]";
mes "This was found from Bakonawa's corpse. It would be better if you take this.";
diff --git a/npc/re/instances/BangungotHospital.txt b/npc/re/instances/BangungotHospital.txt
index b995092a1..911abfced 100644
--- a/npc/re/instances/BangungotHospital.txt
+++ b/npc/re/instances/BangungotHospital.txt
@@ -21,11 +21,11 @@
ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
if (BaseLevel < 100) end;
- set .@party_id,getcharid(1);
+ .@party_id = getcharid(1);
cutin "malaya_nurseB",2;
- if (checkquest(9223) == -1) {
- set .@quest, checkquest(9222);
- if (.@quest == -1) {
+ if (!questprogress(9223)) {
+ .@quest = questprogress(9222);
+ if (!.@quest) {
if (!.@party_id) {
if (malaya_bang == 30)
callsub L_Closed,1;
@@ -34,9 +34,9 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
else
goto L_NoParty;
}
- if (checkquest(11309,HUNTING) < 2) {
- set .@playtime, checkquest(9224,PLAYTIME);
- if (.@playtime == -1) {
+ if (questprogress(11309,HUNTING) != 2) {
+ .@playtime = questprogress(9224,PLAYTIME);
+ if (!.@playtime) {
if (malaya_bang == 30)
callsub L_Closed,1;
else if (malaya_bang == 31)
@@ -50,8 +50,8 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
cutin "",255;
end;
}
- } else if (.@playtime == 0 || .@playtime == 1) {
- if (checkquest(11309) == -1) {
+ } else if (.@playtime == 1) {
+ if (!questprogress(11309)) {
mes "[Nurse Maenne]";
mes "This is a fatal situation.";
close2;
@@ -73,10 +73,10 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
end;
}
} else {
- set .@quest2, checkquest(11309);
- if (.@quest2 == -1) {
+ .@quest2 = questprogress(11309);
+ if (!.@quest2) {
callsub L_Closed,0;
- } else if (.@quest2 == 0 || .@quest2 == 1) {
+ } else if (.@quest2 == 1) {
callsub L_Complete;
completequest 9224;
erasequest 9224;
@@ -105,13 +105,12 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
cutin "",255;
end;
}
- } else if (.@quest == 0 || .@quest == 1) {
+ } else if (.@quest == 1) {
if (!.@party_id) goto L_NoParty;
if (malaya_bang > 39) {
- set .@hunting, checkquest(9222,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
- set .@playtime, checkquest(9224,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ if (questprogress(9222,HUNTING) == 1) {
+ .@playtime = questprogress(9224,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Nurse Maenne]";
mes "Do you want go up to the second floor again?";
next;
@@ -190,7 +189,7 @@ ma_dun01,147,10,5 script Nurse#ma_dun01 4_F_NURSE,{
end;
}
} else {
- if (checkquest(9223,PLAYTIME) == 0 || checkquest(9223,PLAYTIME) == 1) {
+ if (questprogress(9223,PLAYTIME) == 1) {
callsub L_Complete;
close2;
cutin "",255;
@@ -216,7 +215,7 @@ L_Closed:
mes "I call her behind, but";
mes "she doesn't respond. -";
if (getarg(0)) {
- set malaya_bang,31;
+ malaya_bang = 31;
changequest 11302,11303;
}
close2;
@@ -233,7 +232,7 @@ L_NoParty:
end;
L_Enter:
- set .@md_name$,"Bangungot Hospital 2F";
+ .@md_name$ = "Bangungot Hospital 2F";
if (getarg(2) == 0) {
mes "[Nurse Maenne]";
mes "I already heard that story so";
@@ -258,7 +257,7 @@ L_Enter:
next;
switch(select(((getarg(0))?"Prepare to enter the second floor.":"")+":Enter the second floor.:Do not enter.")) {
case 1:
- set .@instance, instance_create(.@md_name$,getcharid(1));
+ .@instance = instance_create(.@md_name$,getcharid(1));
if (.@instance < 0) {
mes "[Nurse Maenne]";
mes "A critical situation has happened.";
@@ -297,13 +296,13 @@ L_Enter:
} else {
mapannounce "ma_dun01", getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member entered "+.@md_name$+".",bc_map,"0x00ff99";
if (getarg(1)) {
- if (checkquest(9223) > -1) {
+ if (questprogress(9223)) {
completequest 9223;
erasequest 9223;
}
- if (checkquest(9222) > -1)
+ if (questprogress(9222))
erasequest 9222;
- if (checkquest(9224) > -1)
+ if (questprogress(9224))
erasequest 9224;
setquest 9222;
}
@@ -352,8 +351,8 @@ sec_in02,27,30,0 script Bangungot Gate 2_MONEMUS,{
case 4: erasequest 9223; close;
case 5: setquest 9224; close;
case 6: erasequest 9224; close;
- case 7: set malaya_bang,30; close;
- case 8: set malaya_bang,40; close;
+ case 7: malaya_bang = 30; close;
+ case 8: malaya_bang = 40; close;
case 9: setquest 11309; close;
case 10: completequest 11309; close;
case 11: close;
@@ -365,7 +364,7 @@ sec_in02,27,30,0 script Bangungot Gate 2_MONEMUS,{
1@ma_h,43,157,0 script #Memorial Start HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
mapannounce .@map$,"Bangungot: You silly "+strcharinfo(0)+" ....",bc_map,"0xFF82FF";
mapannounce .@map$,"Bangungot: Get out before you die...",bc_map,"0xFF82FF";
areamonster .@map$,44,156,46,158,"Bangungot's Mangkukulam",2339,1,instance_npcname("#Memorial Start")+"::OnMyMobDead";
@@ -375,7 +374,7 @@ OnMyMobDead:
initnpctimer;
end;
OnTimer1000:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
if (mobcount(.@map$,instance_npcname("#Memorial Start")+"::OnMyMobDead") < 1) {
donpcevent instance_npcname("#Ward1 Entry")+"::OnEnable1";
donpcevent instance_npcname("#Memorial Start_time")+"::OnDisable";
@@ -413,8 +412,8 @@ OnInstanceInit:
disablenpc instance_npcname(strnpcinfo(0));
end;
OnEnable1:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
enablenpc instance_npcname(strnpcinfo(0));
specialeffect EF_BAT2;
switch(atoi(charat(strnpcinfo(2),4))) {
@@ -450,7 +449,7 @@ OnEnable2:
end;
*/
OnEnable3:
- set .@i, atoi(charat(strnpcinfo(2),4))+1;
+ .@i = atoi(charat(strnpcinfo(2),4))+1;
donpcevent instance_npcname("#Ward"+.@i+" Entry")+"::OnEnable1";
disablenpc instance_npcname(strnpcinfo(0));
end;
@@ -458,16 +457,16 @@ OnMyMobDead:
initnpctimer;
end;
OnTimer1000:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
specialeffect EF_BAT2;
donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable3";
switch(atoi(charat(strnpcinfo(2),4))) {
- case 1: set .@str$,"Bangungot: I will let you see the pain and the agony actually be real....."; break;
- case 2: set .@str$,"Bangungot: Diseased spirits are the source of my energy, and my life..."; break;
- case 3: set .@str$,"Bangungot: Scream more....and more...... your pain..."; break;
- case 4: set .@str$,"Bangungot: Deeply and more deeply in pain..."; break;
- case 5: set .@str$,"Bangungot: Be horrified...be petrified."; break;
+ case 1: .@str$ = "Bangungot: I will let you see the pain and the agony actually be real....."; break;
+ case 2: .@str$ = "Bangungot: Diseased spirits are the source of my energy, and my life..."; break;
+ case 3: .@str$ = "Bangungot: Scream more....and more...... your pain..."; break;
+ case 4: .@str$ = "Bangungot: Deeply and more deeply in pain..."; break;
+ case 5: .@str$ = "Bangungot: Be horrified...be petrified."; break;
}
mapannounce .@map$,.@str$,bc_map,"0xFF82FF";
}
@@ -485,8 +484,8 @@ OnInstanceInit:
disablenpc instance_npcname("#Ward6 Entry");
end;
OnEnable1:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Ward6 Entry")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Ward6 Entry")+"::OnMyMobDead";
enablenpc instance_npcname("#Ward6 Entry");
specialeffect EF_BAT2;
areamonster .@map$,93,137,95,139,"Bangungot's Mangkukulam",2339,1,.@label$;
@@ -505,7 +504,7 @@ OnMyMobDead:
initnpctimer;
end;
OnTimer3000:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
if (mobcount(.@map$,instance_npcname("#Ward6 Entry")+"::OnMyMobDead") < 1) {
specialeffect EF_BAT2;
donpcevent instance_npcname("#Summon Boss")+"::OnEnable";
@@ -564,7 +563,7 @@ OnMyMobDead:
initnpctimer;
end;
OnTimer1000:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
if (mobcount(.@map$,instance_npcname("#Boss Room Entry")+"::OnMyMobDead") < 1)
mapannounce .@map$,"Bangungot: HAHAHAH... That's not enough, I will be even stronger....",bc_map,"0xFF82FF";
stopnpctimer;
@@ -606,12 +605,12 @@ OnEnable:
end;
OnTimer25000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: You will know what it is...",bc_map,"0xFF82FF";
- for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ for(.@i = 10; .@i<=22; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer35000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: Real pain! You will know!!",bc_map,"0xFF82FF";
- for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ for(.@i = 25; .@i<=33; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer45000:
@@ -623,13 +622,13 @@ OnTimer55000:
donpcevent instance_npcname("#Summon Ward Mob")+"::OnEnable7";
end;
OnTimer60000:
- for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ for(.@i = 1; .@i<=8; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
- for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ for(.@i = 34; .@i<=38; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer60500:
- for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ for(.@i = 41; .@i<=49; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer90000:
@@ -644,13 +643,13 @@ OnTimer125000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: You wanna hang out with me ......?",bc_map,"0xFF82FF";
end;
OnTimer128000:
- for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ for(.@i = 1; .@i<=8; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
- for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ for(.@i = 34; .@i<=38; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer128500:
- for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ for(.@i = 41; .@i<=49; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer129000:
@@ -658,11 +657,11 @@ OnTimer129000:
end;
OnTimer129500:
donpcevent instance_npcname("#Boss Room Entry")+"::OnSpawn";
- for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ for(.@i = 10; .@i<=22; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer130000:
- for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ for(.@i = 25; .@i<=33; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
stopnpctimer;
end;
@@ -687,22 +686,22 @@ OnTimer6000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: ...defeat me again...?",bc_map,"0xFF82FF";
end;
OnTimer9000:
- for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ for(.@i = 1; .@i<=8; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
- for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ for(.@i = 34; .@i<=38; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer9500:
- for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ for(.@i = 41; .@i<=49; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer10000:
mapannounce instance_mapname("1@ma_h"),"Bangungot: You stupid persoon....",bc_map,"0xFF82FF";
- for(set .@i,10; .@i<=22; set .@i,.@i+1)
+ for(.@i = 10; .@i<=22; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
end;
OnTimer10500:
- for(set .@i,25; .@i<=33; set .@i,.@i+1)
+ for(.@i = 25; .@i<=33; ++.@i)
enablenpc instance_npcname("#Patternwarp"+.@i);
stopnpctimer;
end;
@@ -718,8 +717,8 @@ OnTouch:
specialeffect EF_CURSEATTACK;
end;
OnEnable1:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,47,77,49,79,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,49,77,51,79,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,51,77,53,79,"Bangungot's Tiyanak",2340,1,.@label$;
@@ -729,8 +728,8 @@ OnEnable1:
areamonster .@map$,49,81,51,83,"Bangungot's Tiyanak",2339,1,.@label$;
end;
OnEnable2:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,51,45,53,47,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,53,45,55,47,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,49,47,51,49,"Bangungot's Mangkukulam",2339,1,.@label$;
@@ -740,8 +739,8 @@ OnEnable2:
areamonster .@map$,53,49,55,51,"Bangungot's Tiyanak",2340,1,.@label$;
end;
OnEnable3:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,69,75,71,77,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,71,75,73,77,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,73,75,75,77,"Bangungot's Tiyanak",2340,1,.@label$;
@@ -751,8 +750,8 @@ OnEnable3:
areamonster .@map$,71,79,73,81,"Bangungot's Tiyanak",2339,1,.@label$;
end;
OnEnable4:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,73,45,75,47,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,75,45,77,47,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,71,47,73,49,"Bangungot's Mangkukulam",2339,1,.@label$;
@@ -762,8 +761,8 @@ OnEnable4:
areamonster .@map$,75,49,77,51,"Bangungot's Tiyanak",2340,1,.@label$;
end;
OnEnable5:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,93,77,95,79,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,95,77,97,79,"Bangungot's Tiyanak",2340,1,.@label$;
areamonster .@map$,97,77,99,79,"Bangungot's Tiyanak",2340,1,.@label$;
@@ -773,8 +772,8 @@ OnEnable5:
areamonster .@map$,95,81,97,83,"Bangungot's Tiyanak",2339,1,.@label$;
end;
OnEnable6:
- set .@map$, instance_mapname("1@ma_h");
- set .@label$, instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_h");
+ .@label$ = instance_npcname("#Summon Ward Mob")+"::OnMyMobDead";
areamonster .@map$,93,43,95,45,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,95,43,97,45,"Bangungot's Tiyanak",2339,1,.@label$;
areamonster .@map$,91,45,93,47,"Bangungot's Mangkukulam",2339,1,.@label$;
@@ -822,9 +821,9 @@ OnTimer10000:
"Moaning Patient","Screaming Patient","Patient in Pain","Passed Out Patient","Patient with Nightmare","Sick Looking Patient",
"Horrified Patient","Patient in Sorrow","Suffering Patient","Wriggling Patient","Patient in Cold Sweat","Howling Patient";
enablenpc instance_npcname("#Summon Ward Mob");
- set .@rand, rand(1,6);
+ .@rand = rand(1,6);
donpcevent instance_npcname("#Summon Ward Mob")+"::OnEnable"+.@rand;
- set .@id, (.@rand*2)-rand(2);
+ .@id = (.@rand*2)-rand(2);
donpcevent instance_npcname(.@npc$[.@id]+"#"+.@id)+"::OnEnable";
stopnpctimer;
end;
@@ -852,7 +851,7 @@ OnMyMobDead:
initnpctimer;
end;
OnTimer1000:
- set .@map$, instance_mapname("1@ma_h");
+ .@map$ = instance_mapname("1@ma_h");
if (mobcount(.@map$,instance_npcname("#Summon Pillar")+"::OnMyMobDead") < 1) {
donpcevent instance_npcname("#Summon Pillar_time")+"::OnStopTimer";
donpcevent instance_npcname("#Summon Pillar")+"::OnEnable3";
@@ -969,17 +968,17 @@ OnTimer30000:
end;
OnEnable:
switch(atoi(strnpcinfo(2))) {
- case 2: set .@str$,"Screaming Patient: Aaaaargh!!"; break;
- case 3: set .@str$,"Patient in Pain: Oooooowwww!! It's killing me!!!"; break;
- case 4: set .@str$,"Passed Out Patient: ........"; break;
- case 5: set .@str$,"Patient with Nightmare: Help~!!! Save me!!!"; break;
- case 6: set .@str$,"Sick Looking Patient: Hu..a...aaah.."; break;
- case 7: set .@str$,"Horrified Patient: Get away!! Please...."; break;
- case 8: set .@str$,"Patient in Sorrow: crying and crying......"; break;
- case 9: set .@str$,"Suffering Patient: Stop... please..."; break;
- case 10: set .@str$,"Wriggling Patient: awwww..."; break;
- case 11: set .@str$,"Patient in Cold Sweat: Help.....help...."; break;
- case 12: set .@str$,"Howling Patient: aaaaahhhhhhhhhh!!"; break;
+ case 2: .@str$ = "Screaming Patient: Aaaaargh!!"; break;
+ case 3: .@str$ = "Patient in Pain: Oooooowwww!! It's killing me!!!"; break;
+ case 4: .@str$ = "Passed Out Patient: ........"; break;
+ case 5: .@str$ = "Patient with Nightmare: Help~!!! Save me!!!"; break;
+ case 6: .@str$ = "Sick Looking Patient: Hu..a...aaah.."; break;
+ case 7: .@str$ = "Horrified Patient: Get away!! Please...."; break;
+ case 8: .@str$ = "Patient in Sorrow: crying and crying......"; break;
+ case 9: .@str$ = "Suffering Patient: Stop... please..."; break;
+ case 10: .@str$ = "Wriggling Patient: awwww..."; break;
+ case 11: .@str$ = "Patient in Cold Sweat: Help.....help...."; break;
+ case 12: .@str$ = "Howling Patient: aaaaahhhhhhhhhh!!"; break;
}
mapannounce instance_mapname("1@ma_h"),.@str$,bc_map,"0xFF0000";
initnpctimer;
@@ -1089,12 +1088,12 @@ OnInstanceInit:
disablenpc instance_npcname("#Boss Room Exit");
disablenpc instance_npcname("#Boss Room Door");
disablenpc instance_npcname("#Boss Room Door1");
- for(set .@i,1; .@i<=8; set .@i,.@i+1)
+ for(.@i = 1; .@i<=8; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
- for(set .@i,34; .@i<=38; set .@i,.@i+1)
+ for(.@i = 34; .@i<=38; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
// Skip 39-40 since they're disabled in the official script.
- for(set .@i,41; .@i<=49; set .@i,.@i+1)
+ for(.@i = 41; .@i<=49; ++.@i)
disablenpc instance_npcname("#Patternwarp"+.@i);
disablenpc instance_npcname("#ma_hos_warp_init");
end;
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
index 0a26dab9c..2333a2428 100644
--- a/npc/re/instances/BuwayaCave.txt
+++ b/npc/re/instances/BuwayaCave.txt
@@ -23,8 +23,8 @@ ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
close;
}
- set .@party_id,getcharid(1);
- set .@md_name$,"Buwaya Cave";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Buwaya Cave";
if (!.@party_id) {
mes "[Guard]";
@@ -60,10 +60,10 @@ ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
next;
break;
case 2:
- set .@playtime, checkquest(4229,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(4229,PLAYTIME);
+ if (!.@playtime) {
// fall through
- } else if (.@playtime == 0 || .@playtime == 1) {
+ } else if (.@playtime == 1) {
mes "[Guard]";
mes "Buwaya is still hiding.";
mes "Even if you enter now, Buwaya will not come out. ";
@@ -73,7 +73,7 @@ ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
erasequest 4229;
// fall through
}
- set .@instance,instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "[Guard]";
mes "Party name is... "+getpartyname(.@party_id)+".";;
@@ -118,10 +118,10 @@ OnTouch:
mes "This place is dangerous. Please go back.";
close;
}
- set .@playtime, checkquest(4229,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(4229,PLAYTIME);
+ if (!.@playtime) {
// fall through
- } else if (.@playtime == 0 || .@playtime == 1) {
+ } else if (.@playtime == 1) {
mes "[Guard]";
mes "Buwaya is still hiding.";
mes "Even if you enter now, Buwaya will not come out.";
@@ -247,8 +247,8 @@ OnInstanceInit:
end;
OnEnable:
enablenpc instance_npcname("#box_mob_call");
- set .@label$, instance_npcname("#box_mob_call")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@ma_c");
+ .@label$ = instance_npcname("#box_mob_call")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_c");
monster .@map$,30,118,"Buwaya's Weakness",2333,1,.@label$;
monster .@map$,35,118,"Buwaya's Weakness",2333,1,.@label$;
end;
@@ -271,8 +271,8 @@ OnEnable:
enablenpc instance_npcname("#box_out");
end;
OnTouch:
- set .@x, rand(1,20) + 97;
- set .@y, rand(1,20) + 74;
+ .@x = rand(1,20) + 97;
+ .@y = rand(1,20) + 74;
warp instance_mapname("1@ma_c"),.@x,.@y;
end;
}
@@ -286,7 +286,7 @@ OnInstanceInit:
OnTimer30000:
mapannounce instance_mapname("1@ma_c"),"Buwaya : I will put you in my treasure box!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
// Should execute OnTimer33000, but client doesn't render the effect fast enough.
- for(set .@i,1; .@i<=9; set .@i,.@i+1)
+ for(.@i = 1; .@i<=9; ++.@i)
donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
end;
OnTimer33000:
@@ -352,8 +352,8 @@ OnTimer64000:
mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly... ATTACK!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
end;
OnTimer65000:
- set .@label$, instance_npcname("#bunshin")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@ma_c");
+ .@label$ = instance_npcname("#bunshin")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_c");
areamonster .@map$,112,89,122,99,"Buwaya",2332,1,.@label$;
areamonster .@map$,112,49,122,59,"Buwaya",2332,1,.@label$;
areamonster .@map$,72,49,82,59,"Buwaya",2332,1,.@label$;
@@ -386,7 +386,7 @@ OnInstanceInit:
areamonster instance_mapname("1@ma_c"),90,67,104,81,"Buwaya",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@ma_c");
+ .@map$ = instance_mapname("1@ma_c");
if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
donpcevent instance_npcname("#box_call")+"::OnDisable";
donpcevent instance_npcname("#bunshin")+"::OnDisable";
@@ -403,12 +403,12 @@ OnInstanceInit:
initnpctimer;
end;
OnTimer60000:
- set .@label$, instance_npcname("#exit_mob")+"::OnMyMobDead";
- set .@map$, instance_mapname("1@ma_c");
+ .@label$ = instance_npcname("#exit_mob")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@ma_c");
if (mobcount(.@map$,.@label$) < 30)
- set .@amount,10;
+ .@amount = 10;
else
- set .@amount,1;
+ .@amount = 1;
areamonster .@map$,43,58,47,60,"Water Plant",2331,.@amount,.@label$;
areamonster .@map$,43,58,47,60,"Egg",2329,.@amount,.@label$;
stopnpctimer;
@@ -440,7 +440,7 @@ OnTouch:
1@ma_c,1,1,0 script #buwaya_spawn_mobs -1,{
OnInstanceInit:
- set .@map$, instance_mapname("1@ma_c");
+ .@map$ = instance_mapname("1@ma_c");
areamonster .@map$,73,81,93,101,"Seaweed",2331,18;
areamonster .@map$,110,97,116,103,"Seaweed",2331,8;
areamonster .@map$,59,63,63,67,"Seaweed",2331,8;
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index 0c32c73c6..1baa1423f 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -20,8 +20,8 @@
//============================================================
bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
- set .@party_id,getcharid(1);
- set .@md_name$,"Mistwood Maze";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Mistwood Maze";
mes "[Laphine Soldier]";
mes "Are you going into the forest?";
@@ -32,9 +32,9 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
mes "Why don't you at least organize a party?";
close;
}
- set .@playtime, checkquest(7211,PLAYTIME);
+ .@playtime = questprogress(7211,PLAYTIME);
if (getcharid(0) == getpartyleader(.@party_id,2)) {
- if (.@playtime == 0 || .@playtime == 1) {
+ if (.@playtime == 1) {
mes "[Laphine Soldier]";
mes "...Are you sure you're not doing too much?";
mes "I think you'd better get some rest.";
@@ -84,12 +84,12 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
mes "[Laphine Soldier]";
mes "Party Name "+getpartyname(.@party_id)+"...";
mes "Party Leader "+strcharinfo(0)+"...";
- set .@instance, instance_create(.@md_name$, .@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
mes "Hmm...";
next;
mes "[Laphine Soldier]";
- if (.@playtime == -1)
+ if (!.@playtime)
mes "It's dangerous in the forest.";
else
mes "The atmosphere is somewhat tense in the forest.";
@@ -117,7 +117,7 @@ bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
case 2:
mes "[Laphine Soldier]";
mes "Well, you've made the right decision.";
- if (.@playtime == -1)
+ if (!.@playtime)
mes "That's what's good for you.";
close;
}
@@ -147,9 +147,8 @@ bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
next;
if(select("Enter the tunnel.:Give up.") == 2)
close;
- set .@playtime, checkquest(7211,PLAYTIME);
if (has_instance("1@mist") == "") {
- if (.@playtime == 0 || .@playtime == 1) {
+ if (questprogress(7211,PLAYTIME) == 1) {
mes "You try to crawl into the log, but some mysterious power pushes you back with a gush of wind.";
mes "It seems like you can't force your way into the forest.";
close;
@@ -158,8 +157,8 @@ bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
mes "Your instinct is screaming that this forest is dangerous.";
close;
} else {
- if (checkquest(7211,PLAYTIME) == 2) erasequest 7211;
- if (checkquest(7211,PLAYTIME) == -1) setquest 7211;
+ if (questprogress(7211,PLAYTIME) == 2) erasequest 7211;
+ if (!questprogress(7211,PLAYTIME)) setquest 7211;
mapannounce "bif_fild01",getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member is entering the Mistwood Maze.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
warp "1@mist",89,29;
close;
@@ -195,7 +194,7 @@ OnTimer180000:
// callfunc "F_Mora_Mist",<warp to enable>,<success message>,<fail message>{,<end flag>}
function script F_Mora_Mist {
- set .@map$, instance_mapname("1@mist");
+ .@map$ = instance_mapname("1@mist");
if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") == 0) {
mes "Obviously no one is taking care of it.";
mes "It seems like you can chop down the garden tree.";
@@ -424,7 +423,7 @@ OnMyMobDead:
"Gardeners: We're not dead, yet!!!!",1;
end;
OnInstanceInit:
- set .@map$, instance_mapname("1@mist");
+ .@map$ = instance_mapname("1@mist");
monster .@map$,318,137,"Baby Tom",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
monster .@map$,321,137,"Tomba the Baby",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
monster .@map$,324,137,"Exhausted Remi",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
@@ -514,7 +513,7 @@ OnInstanceInit:
monster instance_mapname("1@mist"),.@c[0],.@c[1],"Wandering Purple Dragon",2131,1,instance_npcname("#Dragon Herder")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
+ .@map$ = instance_mapname("1@mist");
if (mobcount(.@map$,instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
donpcevent instance_npcname("Collapsed Girl#mist")+"::OnEnable";
donpcevent instance_npcname("Mysterious Young Man#mis")+"::OnEnable";
@@ -600,7 +599,7 @@ OnTimer3000:
mes "[Loki]";
mes "Now we have to say goodbye here.";
mes "If you survive this forest, of course.";
- set ep14_1_mistwoods,2;
+ ep14_1_mistwoods = 2;
setquest 7212;
close;
case 2:
@@ -608,7 +607,7 @@ OnTimer3000:
mes "I understand.";
mes "Step back if you aren't ready.";
mes "This forest doesn't like strangers.";
- set ep14_1_mistwoods,1;
+ ep14_1_mistwoods = 1;
close;
}
} else if (ep14_1_mistwoods == 1) {
@@ -646,7 +645,7 @@ OnTimer3000:
mes "[Loki]";
mes "Now we have to say goodbye here.";
mes "Hopefully, we will see each other again in Mora.";
- set ep14_1_mistwoods,2;
+ ep14_1_mistwoods = 2;
setquest 7212;
close;
}
@@ -706,7 +705,7 @@ OnDisable:
mes "I'll wait for her to wake up and get out of this forest.";
mes "I can manage it on my own.";
mes "I'll see you in Mora.";
- set ep14_1_mistwoods,3;
+ ep14_1_mistwoods = 3;
erasequest 7212;
setquest 7213;
close;
@@ -779,7 +778,7 @@ mora,46,152,5 script Flower Smelling Lady 4_F_NYDHOG,{
mes "I thought I was forsaken...";
next;
mes "The Guardian slowly looked away as if deep in thought.";
- set ep14_1_mistwoods,4;
+ ep14_1_mistwoods = 4;
close2;
} else if (ep14_1_mistwoods == 4) {
mes "- He seems to be deep in thought. -";
@@ -902,7 +901,7 @@ mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
next;
mes "[Nydhogg the Guardian]";
mes "May the blessing of Mother Yggdrasil be with you...";
- set ep14_1_mistwoods,10;
+ ep14_1_mistwoods = 10;
completequest 7213;
getitem 2568,1; //Muffler_Of_Roki
getitem 2858,1; //Pendant_Of_Guardian
@@ -928,8 +927,8 @@ OnInstanceInit:
monster instance_mapname("1@mist"),0,0,"Miming",2137,15,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
- set .@num_mobs, 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@mist");
+ .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
if (.@num_mobs > 0)
monster .@map$,0,0,"Miming",2137,.@num_mobs,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
end;
@@ -941,8 +940,8 @@ OnInstanceInit:
monster instance_mapname("1@mist"),0,0,"Pom Spider",2132,35,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
- set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@mist");
+ .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
if (.@num_mobs > 0)
monster .@map$,0,0,"Pom Spider",2132,.@num_mobs,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
end;
@@ -954,8 +953,8 @@ OnInstanceInit:
monster instance_mapname("1@mist"),0,0,"Angra Mantis",2133,35,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
- set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@mist");
+ .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
if (.@num_mobs > 0)
monster .@map$,0,0,"Angra Mantis",2133,.@num_mobs,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
end;
@@ -967,8 +966,8 @@ OnInstanceInit:
monster instance_mapname("1@mist"),0,0,"Parus",2134,35,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
- set .@num_mobs, 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@mist");
+ .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
if (.@num_mobs > 0)
monster .@map$,0,0,"Parus",2134,.@num_mobs,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
end;
@@ -980,8 +979,8 @@ OnInstanceInit:
monster instance_mapname("1@mist"),0,0,"Little Fatum",2136,15,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@mist");
- set .@num_mobs, 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@mist");
+ .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
if (.@num_mobs > 0)
monster .@map$,0,0,"Little Fatum",2136,.@num_mobs,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
end;
@@ -1025,7 +1024,7 @@ bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
1@mist,109,70,0 script a1_a2 WARPNPC,1,1,{
end;
OnTouch:
- if (checkquest(7211,PLAYTIME) == -1)
+ if (!questprogress(7211,PLAYTIME))
setquest 7211;
warp instance_mapname("1@mist"),116,40;
end;
diff --git a/npc/re/instances/MalangdoCulvert.txt b/npc/re/instances/MalangdoCulvert.txt
index f209f409b..0751b46a2 100644
--- a/npc/re/instances/MalangdoCulvert.txt
+++ b/npc/re/instances/MalangdoCulvert.txt
@@ -42,24 +42,24 @@ mal_in01,172,28,2 script Albo#mal 4_CAT_SAILOR5,{
setarray .@names$[0],
"General Culvert Daily Service","^990000Hard Culvert Daily Service^000000",
"General Culvert Weekly Service","^990000Hard Culvert Weekly Service^000000";
- set .@menu$,"Why are doing this job?:";
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (checkquest(.@quests[.@i],PLAYTIME) > -1) {
- set .@status[.@i],2;
- set .@menu$, .@menu$+"^aaaaaa- There is no new task -^000000:";
+ .@menu$ = "Why are doing this job?:";
+ for(.@i = 0; .@i<4; ++.@i) {
+ if (questprogress(.@quests[.@i],PLAYTIME)) {
+ .@status[.@i] = 2;
+ .@menu$ += "^aaaaaa- There is no new task -^000000:";
} else if (.@i%2 && BaseLevel < 140) {
- set .@status[.@i],0;
- set .@menu$, .@menu$+"^aaaaaaCan't take this job because level is too low^000000:";
+ .@status[.@i] = 0;
+ .@menu$ += "^aaaaaaCan't take this job because level is too low^000000:";
} else {
- set .@status[.@i],1;
- set .@menu$, .@menu$+.@names$[.@i]+":";
+ .@status[.@i] = 1;
+ .@menu$ += .@names$[.@i]+":";
}
}
mes "[Albo]";
mes "We crossed the sea!";
mes "We are great heroes of Culvert! We do not forgive the seafood that aims at Culvert!";
next;
- set .@i, select(.@menu$)-1;
+ .@i = select(.@menu$)-1;
if (.@i == 0) {
mes "[Albo]";
mes "We used to be the henchmen of Mr. Missing! We almost became guards of such a historic site.";
@@ -169,7 +169,7 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
mes "Oh?";
mes "You're the one who took care of my big brother Albo's request. It was a hard job!";
next;
- set .@i, select("What are you doing here?:General Culvert Daily Service Compensation:Hard Culvert Daily Service Compensation:General Culvert Weekly Service Compensation:Hard Culvert Weekly Service Compensation")-1;
+ .@i = select("What are you doing here?:General Culvert Daily Service Compensation:Hard Culvert Daily Service Compensation:General Culvert Weekly Service Compensation:Hard Culvert Weekly Service Compensation")-1;
if (.@i == 0) {
mes "[Madeca]";
mes "I'm here to help my big brother Albo!";
@@ -192,7 +192,7 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
specialeffect2 EF_STEAL;
switch(.@i) {
case 1: // General Culvert Daily Service
- if (checkquest(12271,PLAYTIME) == 2)
+ if (questprogress(12271,PLAYTIME) == 2)
callsub L_EraseQuest,12255,12256,12257,12258,12259,12260,12271;
else {
// Reward: 2x B Grade Coin
@@ -205,7 +205,7 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
}
break;
case 2: // Hard Culvert Daily Service
- if (checkquest(12272,PLAYTIME) == 2)
+ if (questprogress(12272,PLAYTIME) == 2)
callsub L_EraseQuest,12261,12262,12263,12264,12265,12266,12272;
else {
// Reward: 1x A Grade Coin
@@ -218,7 +218,7 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
}
break;
case 3: // General Culvert Weekly Service
- if (checkquest(12273,PLAYTIME) == 2)
+ if (questprogress(12273,PLAYTIME) == 2)
callsub L_EraseQuest,12267,12268,12273;
else {
// Reward: 1x Sea God's Wrath
@@ -227,7 +227,7 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
}
break;
case 4: // Hard Culvert Weekly Service
- if (checkquest(12274,PLAYTIME) == 2)
+ if (questprogress(12274,PLAYTIME) == 2)
callsub L_EraseQuest,12269,12270,12274;
else {
// Reward: 5x Sea God's Wrath
@@ -245,8 +245,8 @@ mal_in01,172,26,2 script Madeca#mal 4_CAT_SAILOR1,{
close;
L_EraseQuest:
- for(set .@j,0; .@j<getargcount(); set .@j,.@j+1) {
- if (checkquest(getarg(.@j)) > -1)
+ for(.@j = 0; .@j<getargcount(); ++.@j) {
+ if (questprogress(getarg(.@j)))
erasequest getarg(.@j);
}
mes "[Madeca]";
@@ -255,7 +255,7 @@ L_EraseQuest:
// callsub L_CheckQuest,<quest ID>,<monster>,<reward item ID>,<reward item amount>;
L_CheckQuest:
- if (checkquest(getarg(0),HUNTING) == 2) {
+ if (questprogress(getarg(0),HUNTING) == 2) {
mes "[Madeca]";
mes "You've punished ^0000ff"+getarg(1)+"^000000!";
mes "Here's your pay!";
@@ -376,7 +376,7 @@ mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
mes "[Missing, the Cleaner]";
mes "Don't forget! I will not open the";
mes "door if you do not have Seagod Protection!";
- set in_canal_n,1;
+ in_canal_n = 1;
close;
}
if (countitem(6436) == 0) {
@@ -384,16 +384,16 @@ mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
mes "You don't look like you have Seagod Protection. I can't open door at the moment!";
close;
}
- set .@party_id,getcharid(1);
- set .@md_name$,"Culvert";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Culvert";
if (!.@party_id) {
mes "^0000ffYou have to organize a party of";
mes "more than 1 member or be a member";
mes "of the party and come back.^000000";
close;
}
- set .@playtime, checkquest(12254,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(12254,PLAYTIME);
+ if (!.@playtime) {
if (getcharid(0) == getpartyleader(.@party_id,2)) {
mes "[Missing, the Cleaner]";
mes "Ummm? What's up? Tell me the password if you're the leader!";
@@ -404,7 +404,7 @@ mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
mes "What a rookie.";
close;
case 2:
- set .@instance,instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "Party name: "+getpartyname(.@party_id);
mes "Party leader: "+strcharinfo(0);
@@ -430,7 +430,7 @@ mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
if(select("Enter Culvert:Cancel") == 2)
end;
callsub L_Enter,1;
- } else if (.@playtime == 0 || .@playtime == 1) {
+ } else if (.@playtime == 1) {
mes "You can enter the Culvert if the gate is open.";
next;
if(select("Enter Culvert:Cancel") == 2)
@@ -444,7 +444,7 @@ mal_in01,160,34,4 script Missing, the Cleaner 4_CAT_SAILOR2,{
end;
L_Enter:
if (has_instance("1@pump") == "") {
- if (checkquest(12254,PLAYTIME) == 0 || checkquest(12254,PLAYTIME) == 1) {
+ if (questprogress(12254,PLAYTIME) == 1) {
mes "The gate to the Culvert is still closed.";
mes "You must wait until you are able to enter or find a party leader who can create the instance.";
close;
@@ -454,7 +454,7 @@ L_Enter:
close;
}
mapannounce "mal_in01", strcharinfo(0)+" of the party "+getpartyname(.@party_id)+" is entering the Culvert.",bc_map,"0x00ff99";
- if (checkquest(12254) == -1) setquest 12254;
+ if (!questprogress(12254)) setquest 12254;
warp "1@pump",63,98;
end;
}
@@ -483,7 +483,7 @@ L_Enter:
mes "Huh? Not ready yet? Talk to me again when you're ready.";
close;
}
- set 'party_id,getcharid(1);
+ 'party_id = getcharid(1);
mapannounce instance_mapname("1@pump"),"Missing: Move toward the 3 o'clock direction and wait for my next order!",bc_map,"0xff88ff",FW_NORMAL,15;
disablenpc instance_npcname("Missing, the Cleaner#0");
enablenpc instance_npcname("Missing, the Cleaner#n");
@@ -505,7 +505,7 @@ L_Enter:
mes "Hmm? Talk to me again when you're ready.";
close;
}
- set 'party_id,getcharid(1);
+ 'party_id = getcharid(1);
mapannounce instance_mapname("1@pump"),"Missing: I'll go in first, so follow me! I'll open up a gate at the 3 o'clock direction!",bc_map,"0xff88ff",FW_NORMAL,15;
disablenpc instance_npcname("Missing, the Cleaner#0");
enablenpc instance_npcname("Culvert Entrance#i");
@@ -597,7 +597,7 @@ function script F_mal_missing {
case 2:
mes "[Missing, the Cleaner]";
mes "Ok! Let's start now!";
- set .@i$, charat(strnpcinfo(2),0);
+ .@i$ = charat(strnpcinfo(2),0);
enablenpc instance_npcname("Missing, the Cleaner#"+.@i$);
donpcevent instance_npcname("Missing, the Cleaner#"+.@i$)+"::OnStart";
disablenpc instance_npcname("Culvert Entrance#"+.@i$);
@@ -625,9 +625,9 @@ OnStart:
initnpctimer;
end;
OnAddSeaweed:
- set .@map$, instance_mapname("1@pump");
+ .@map$ = instance_mapname("1@pump");
areamonster .@map$,55,99,61,105,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
- set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
else
@@ -638,7 +638,7 @@ OnMyMobDead:
OnFail:
stopnpctimer;
donpcevent instance_npcname("Monster Hole#n")+"::OnClear";
- set .@map$, instance_mapname("1@pump");
+ .@map$ = instance_mapname("1@pump");
killmonster .@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
enablenpc instance_npcname("Missing, the Cleaner#nf");
mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
@@ -673,20 +673,20 @@ OnTimer300000:
OnTimer350000:
OnTimer400000:
OnTimer450000:
- set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
else
donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
end;
OnTimer515000:
- set .@map$, instance_mapname("1@pump");
- set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@map$ = instance_mapname("1@pump");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem. Missing will come and inspect the results of the cleaning soon.",bc_map,"0xff3333",FW_NORMAL,20;
end;
OnTimer520000:
stopnpctimer;
- set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
else
@@ -697,20 +697,20 @@ OnTimer520000:
1@pump,1,1,4 script Monster Hole#n -1,{
end;
OnSpawn:
- set .@i$, charat(strnpcinfo(2),0);
+ .@i$ = charat(strnpcinfo(2),0);
if (.@i$ == "n")
- set .@n,6;
+ .@n = 6;
else if (.@i$ == "h")
- set .@n,10;
+ .@n = 10;
donpcevent instance_npcname("#Culvert_"+.@i$+rand(1,.@n))+"::OnEnable";
end;
OnClear:
- set .@i$, charat(strnpcinfo(2),0);
+ .@i$ = charat(strnpcinfo(2),0);
if (.@i$ == "n")
- set .@n,6;
+ .@n = 6;
else if (.@i$ == "h")
- set .@n,10;
- for(set .@i,1; .@i<=.@n; set .@i,.@i+1)
+ .@n = 10;
+ for(.@i = 1; .@i<=.@n; ++.@i)
donpcevent instance_npcname("#Culvert_"+.@i$+.@n)+"::OnClear";
end;
}
@@ -725,9 +725,9 @@ OnInstanceInit:
end;
OnEnable:
enablenpc instance_npcname(strnpcinfo(0));
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
- set .@map$, instance_mapname("1@pump");
- set .@index, atoi(charat(strnpcinfo(2),9));
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@pump");
+ .@index = atoi(charat(strnpcinfo(2),9));
switch(.@index) {
case 1: setarray .@c[0],32,107,40,115; break;
case 2: setarray .@c[0],64,120,72,128; break;
@@ -746,7 +746,7 @@ OnEnable:
getmapxy(.@map$,.@x,.@y,1);
getpartymember 'party_id,2;
copyarray .@partymemberaid[0],$@partymemberaid[0],$@partymembercount;
- for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
+ for(.@i = 0; .@i<$@partymembercount; ++.@i) {
if (attachrid(.@partymemberaid[.@i])) {
if (strcharinfo(3) == .@map$)
viewpoint 0,.@x,.@y,.@index,0xFFFF00;
@@ -786,7 +786,7 @@ OnEnable:
initnpctimer;
end;
OnTimer100:
- set .@i$, charat(strnpcinfo(2),0);
+ .@i$ = charat(strnpcinfo(2),0);
if (.@i$ == "n")
mapannounce instance_mapname("1@pump"),"Hmm! That wasn't so bad!",bc_map,"0xff88ff",FW_NORMAL,15;
else if (.@i$ == "h")
@@ -800,8 +800,8 @@ OnTimer10000:
end;
OnTimer20000:
stopnpctimer;
- set .@i$, charat(strnpcinfo(2),0);
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@i$ = charat(strnpcinfo(2),0);
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
if (rand(1,100) > 50) {
if (.@i$ == "n")
monster instance_mapname("1@pump"),0,0,"Weird Coelacanth",2188,1,.@label$;
@@ -819,29 +819,29 @@ OnTimer20000:
OnMyMobDead:
if (mobcount(strnpcinfo(4),instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
mapannounce strnpcinfo(4),"You've destroyed all monsters in the culverts. There are trophies lying on the ground, please look for them.",bc_map,"0xffff00",FW_NORMAL,15;
- set .@i$, charat(strnpcinfo(2),0);
- set .@map$, strnpcinfo(4);
+ .@i$ = charat(strnpcinfo(2),0);
+ .@map$ = strnpcinfo(4);
enablenpc instance_npcname("Culvert Entrance#"+.@i$);
enablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
if (.@i$ == "n") {
- for(set .@i,0; .@i<10; set .@i,.@i+1) {
- set .@j, rand(1,6401);
- if (.@j < 5001) set .@item,12636; //Malang_Sp_Can
- else if (.@j < 5501) set .@item,12615; //Low_Coin_Pocket
- else if (.@j < 6001) set .@item,12621; //Egrade_Pocket
- else if (.@j < 6201) set .@item,12620; //Dgrade_Pocket
- else if (.@j < 6401) set .@item,12623; //High_Weapon_Box
+ for(.@i = 0; .@i<10; ++.@i) {
+ .@j = rand(1,6401);
+ if (.@j < 5001) .@item = 12636; //Malang_Sp_Can
+ else if (.@j < 5501) .@item = 12615; //Low_Coin_Pocket
+ else if (.@j < 6001) .@item = 12621; //Egrade_Pocket
+ else if (.@j < 6201) .@item = 12620; //Dgrade_Pocket
+ else if (.@j < 6401) .@item = 12623; //High_Weapon_Box
else continue;
makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
}
} else if (.@i$ == "h") {
- for(set .@i,0; .@i<10; set .@i,.@i+1) {
- set .@j, rand(1,5001);
- if (.@j < 2001) set .@item,12615; //Low_Coin_Pocket
- else if (.@j < 3001) set .@item,12621; //Egrade_Pocket
- else if (.@j < 4001) set .@item,12620; //Dgrade_Pocket
- else if (.@j < 4501) set .@item,12619; //Cgrade_Pocket
- else if (.@j < 5001) set .@item,12623; //High_Weapon_Box
+ for(.@i = 0; .@i<10; ++.@i) {
+ .@j = rand(1,5001);
+ if (.@j < 2001) .@item = 12615; //Low_Coin_Pocket
+ else if (.@j < 3001) .@item = 12621; //Egrade_Pocket
+ else if (.@j < 4001) .@item = 12620; //Dgrade_Pocket
+ else if (.@j < 4501) .@item = 12619; //Cgrade_Pocket
+ else if (.@j < 5001) .@item = 12623; //High_Weapon_Box
else continue;
makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
}
@@ -852,7 +852,7 @@ OnMyMobDead:
}
1@pump,84,105,4 script Missing, the Cleaner#no 4_CAT_SAILOR2,{
- set .@i$, charat(strnpcinfo(2),0);
+ .@i$ = charat(strnpcinfo(2),0);
if (.@i$ == "n") {
mes "[Missing, the Cleaner]";
mes "I was very surprised!!";
@@ -916,9 +916,9 @@ OnStart:
initnpctimer;
end;
OnAddSeaweed:
- set .@map$, instance_mapname("2@pump");
+ .@map$ = instance_mapname("2@pump");
areamonster .@map$,75,78,85,88,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
- set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
else
@@ -929,7 +929,7 @@ OnMyMobDead:
OnFail:
stopnpctimer;
donpcevent instance_npcname("Monster Hole#h")+"::OnClear";
- set .@map$, instance_mapname("2@pump");
+ .@map$ = instance_mapname("2@pump");
killmonster .@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
enablenpc instance_npcname("Missing, the Cleaner#hf");
mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
@@ -964,7 +964,7 @@ OnTimer240000:
OnTimer280000:
OnTimer320000:
OnTimer360000:
- set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
else
@@ -975,7 +975,7 @@ OnTimer420000:
end;
OnTimer425000:
stopnpctimer;
- set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
if (.@mob_dead_num >= 6)
donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
else
@@ -993,9 +993,9 @@ OnInstanceInit:
end;
OnEnable:
enablenpc instance_npcname(strnpcinfo(0));
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
- set .@map$, instance_mapname("2@pump");
- set .@index, atoi(substr(strnpcinfo(2),9,getstrlen(strnpcinfo(2))-1));
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@map$ = instance_mapname("2@pump");
+ .@index = atoi(substr(strnpcinfo(2),9,getstrlen(strnpcinfo(2))-1));
switch(.@index) {
case 1: setarray .@c[0],49,110,57,118; break;
case 2: setarray .@c[0],75,105,83,113; break;
diff --git a/npc/re/instances/OctopusCave.txt b/npc/re/instances/OctopusCave.txt
index 43c2ac66f..c55d5e2bf 100644
--- a/npc/re/instances/OctopusCave.txt
+++ b/npc/re/instances/OctopusCave.txt
@@ -19,8 +19,8 @@
//============================================================
mal_dun01,151,235,5 script Starfish 4_ASTER,{
- set .@party_id,getcharid(1);
- set .@md_name$,"Octopus Cave";
+ .@party_id = getcharid(1);
+ .@md_name$ = "Octopus Cave";
if (!.@party_id) {
mes "[Starfish]";
@@ -76,8 +76,8 @@ mal_dun01,151,235,5 script Starfish 4_ASTER,{
next;
break;
case 2:
- set .@playtime, checkquest(4197,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(4197,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Starfish]";
mes "Octopus is not around now, hehe.";
mes "Please come back later.";
@@ -85,7 +85,7 @@ mal_dun01,151,235,5 script Starfish 4_ASTER,{
}
if (.@playtime == 2) erasequest 4197;
if (countitem(6442)) {
- set .@instance,instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "[Starfish]";
mes "Party name is... "+getpartyname(.@party_id)+".";
@@ -130,7 +130,7 @@ mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
case 1:
if (countitem(6442)) {
if (has_instance("1@cash") == "") {
- if (checkquest(4197,PLAYTIME) == 0 || checkquest(4197,PLAYTIME) == 1) {
+ if (questprogress(4197,PLAYTIME) == 1) {
mes "[Starfish]";
mes "Ah, now is not the time...";
mes "Would you come back later? Hehe.";
@@ -143,7 +143,7 @@ mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
close;
}
mapannounce "mal_dun01", getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member started to hunt the Octopus!",bc_map,"0x00ff99";
- if (checkquest(4197) == -1) setquest 4197;
+ if (!questprogress(4197)) setquest 4197;
warp "1@cash",199,99;
end;
}
@@ -209,7 +209,7 @@ OnEnable:
donpcevent instance_npcname("oct_foot2")+"::OnEnable";
donpcevent instance_npcname("oct_foot3")+"::OnEnable";
donpcevent instance_npcname("oct_foot4")+"::OnEnable";
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,20,114,"Octopus Leg#1",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
monster .@map$,88,190,"Octopus Leg#2",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
monster .@map$,307,215,"Octopus Leg#3",2193,1,instance_npcname("oct_foot_4")+"::OnMyMobDead";
@@ -219,7 +219,7 @@ OnDisable:
disablenpc instance_npcname("oct_foot_4");
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
if (mobcount(.@map$,instance_npcname("oct_foot_4")+"::OnMyMobDead") < 1) {
donpcevent instance_npcname("oct_boss_con")+"::OnEnable";
mapannounce .@map$,"Hey you!! I'll personally take care of you all! Let's bring it on!",bc_map,"0x00ff99";
@@ -238,9 +238,9 @@ OnInstanceInit:
end;
OnEnable:
enablenpc instance_npcname(strnpcinfo(0));
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
- set .@i, atoi(charat(strnpcinfo(0),8));
- set .@map$, instance_mapname("1@cash");
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@i = atoi(charat(strnpcinfo(0),8));
+ .@map$ = instance_mapname("1@cash");
switch(.@i) {
case 1:
areamonster .@map$,34,96,38,100,"Octopus's Henchman",2192,3,.@label$;
@@ -308,10 +308,10 @@ OnTouch:
initnpctimer;
end;
OnTimer5000:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
mapannounce .@map$,"Let's give them a lesson!",bc_map,"0xFFFF00";
- set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
- set .@i, atoi(charat(strnpcinfo(0),8));
+ .@label$ = instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
+ .@i = atoi(charat(strnpcinfo(0),8));
switch(.@i) {
case 1:
areamonster .@map$,18,112,22,116,"Octopus's Henchman",2192,3,.@label$;
@@ -334,17 +334,17 @@ OnTimer5000:
OnTimer30000:
setd "."+strnpcinfo(0)+instance_id(),0;
stopnpctimer;
- set .@i, atoi(charat(strnpcinfo(0),8));
+ .@i = atoi(charat(strnpcinfo(0),8));
donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
if (mobcount(.@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
mapannounce .@map$,"You hurt my babies!!? You'll have to pay for this!!!",bc_map,"0x00ff99";
setd "."+strnpcinfo(0)+instance_id(),0;
stopnpctimer;
- set .@i, atoi(charat(strnpcinfo(0),8));
+ .@i = atoi(charat(strnpcinfo(0),8));
donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
end;
@@ -377,7 +377,7 @@ OnInstanceInit:
donpcevent instance_npcname("oct_mob_con")+"::OnDisable";
end;
OnEnable:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
enablenpc instance_npcname("oct_mob_con");
monster .@map$,32,94,"Hydra",1068,1;
monster .@map$,41,101,"Hydra",1068,1;
@@ -439,7 +439,7 @@ OnInstanceInit:
disablenpc instance_npcname("oct_backattack1");
end;
OnTouch:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,39,59,"Hydra",1068,1;
monster .@map$,40,59,"Hydra",1068,1;
monster .@map$,41,59,"Hydra",1068,1;
@@ -465,28 +465,28 @@ OnTouch:
if (getd("."+instance_id())) end;
setd "."+instance_id(),1;
initnpctimer;
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,71,105,"Octopus's Henchman ",2192,1;
mapannounce .@map$,"Headquarters are empty, GO!!!",bc_map,"0x00ff99";
hideonnpc instance_npcname("oct_backattack2");
end;
OnTimer2000:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,71,105,"Octopus's Henchman ",2192,1;
mapannounce .@map$,"Run, RUN! Go, GO!!!",bc_map,"0x00ff99";
end;
OnTimer4000:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,71,105,"Octopus's Henchman ",2192,1;
mapannounce .@map$,"No time, come out fast!",bc_map,"0x00ff99";
end;
OnTimer6000:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,71,105,"Octopus's Henchman ",2192,3;
mapannounce .@map$,"Let's take over the headquarters!!!",bc_map,"0x00ff99";
end;
OnTimer8000:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,71,105,"Octopus's Henchman ",2192,1;
mapannounce .@map$,"There is no time to lose, hurry up!!!",bc_map,"0x00ff99";
stopnpctimer;
@@ -504,7 +504,7 @@ OnInstanceInit:
OnTouch:
if (getd("."+instance_id())) end;
setd "."+instance_id(),1;
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,293,153,"Octopus's Henchman ",2192,1;
monster .@map$,294,152,"Octopus's Henchman ",2192,1;
monster .@map$,292,153,"Octopus's Henchman ",2192,1;
@@ -531,7 +531,7 @@ OnInstanceInit:
OnTouch:
if (getd("."+instance_id())) end;
setd "."+instance_id(),1;
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
monster .@map$,332,37,"Octopus's Henchman ",2192,1;
monster .@map$,332,36,"Octopus's Henchman ",2192,1;
monster .@map$,332,35,"Octopus's Henchman ",2192,1;
@@ -623,7 +623,7 @@ OnAnnounce:
mapannounce instance_mapname("1@cash"),"Disgusting Octopus : "+getarg(rand(3)),bc_map,"0xFFFF00";
return;
OnMyMobDead:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
if (mobcount(.@map$,instance_npcname("oct_boss_con")+"::OnMyMobDead") < 1) {
mapannounce .@map$,"Disgusting Octopus : That's it for the today! Next time, I will play with you badly!",bc_map,"0xFFFF00";
enablenpc instance_npcname("oct_exit_1");
@@ -646,7 +646,7 @@ OnEnable:
initnpctimer;
end;
OnCall:
- set .@map$, instance_mapname("1@cash");
+ .@map$ = instance_mapname("1@cash");
if (mobcount(.@map$,instance_npcname("oct_boss_foot")+"::OnMyMobDead") < 100) {
switch(rand(2)) {
case 0:
diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt
index 4be3133bc..be0d4d002 100644
--- a/npc/re/instances/OldGlastHeim.txt
+++ b/npc/re/instances/OldGlastHeim.txt
@@ -20,12 +20,12 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
mes "[Hugin]";
mes "Huh? You feel like you have seen me in different places? I see. What can I say?";
next;
- set .@ghins_time, checkquest(12317,PLAYTIME);
- if (.@ghins_time == -1) {
+ .@ghins_time = questprogress(12317,PLAYTIME);
+ if (!.@ghins_time) {
- set .@party_id,getcharid(1);
- set .@p_name$,getpartyname(.@party_id);
- set .@md_name$,"Old Glast Heim";
+ .@party_id = getcharid(1);
+ .@p_name$ = getpartyname(.@party_id);
+ .@md_name$ = "Old Glast Heim";
if (!instance_check_party(.@party_id,2)) {
//custom
@@ -35,12 +35,12 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
}
if (getcharid(0) == getpartyleader(.@party_id,2))
- set .@menu$, "Create the time gap.:Enter the Old Glast Heim.:Cancel.";
+ .@menu$ = "Create the time gap.:Enter the Old Glast Heim.:Cancel.";
else
- set .@menu$, ":Enter the Old Glast Heim.:Cancel.";
+ .@menu$ = ":Enter the Old Glast Heim.:Cancel.";
switch(select(.@menu$)) {
case 1:
- set .@instance, instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$,.@party_id);
if (.@instance < 0) {
mes "Party Name: "+.@p_name$;
mes "Party Leader: "+strcharinfo(0);
@@ -72,7 +72,7 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
case 3:
close;
}
- } else if (.@ghins_time == 0 || .@ghins_time == 1) {
+ } else if (.@ghins_time == 1) {
mes "[Hugin]";
mes "Oh, geez.";
mes "Your body is still under the effects of time travel. In this state, you will not be able to travel again.";
@@ -83,8 +83,8 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
} else {
mes "^0000ffOld Glast Heim access trail has been cleared. It is now possible to talk to Hugin.^000000";
erasequest 12317;
- if (checkquest(12318) > -1) erasequest 12318;
- if (checkquest(12319) > -1) erasequest 12319;
+ if (questprogress(12318)) erasequest 12318;
+ if (questprogress(12319)) erasequest 12319;
close;
}
}
@@ -151,7 +151,7 @@ OnDisable:
OnDisable2:
hideonnpc instance_npcname("Varmunt#ghinstance1");
- for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ for(.@i = 1; .@i<=20; .@i += 4) {
hideoffnpc instance_npcname("Khalitzburg Crusader#"+.@i);
hideoffnpc instance_npcname("Khalitzburg Crusader#"+(.@i+1));
hideoffnpc instance_npcname("White Knight#"+(.@i+2));
@@ -507,7 +507,7 @@ OnTimer85000:
donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk7";
hideonnpc instance_npcname("Varmunt#ghinstance1");
- for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ for(.@i = 1; .@i<=20; .@i += 4) {
hideonnpc instance_npcname("Khalitzburg Crusader#"+.@i);
hideonnpc instance_npcname("Khalitzburg Crusader#"+(.@i+1));
hideonnpc instance_npcname("White Knight#"+(.@i+2));
@@ -516,8 +516,8 @@ OnTimer85000:
hideonnpc instance_npcname("Khalitzburg Crusader#21");
hideonnpc instance_npcname("Khalitzburg Crusader#22");
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#talkinstance1")+"::OnMyMobDead";
monster .@map$,145,59,"Abyss Knight",2470,1,.@label$;
monster .@map$,154,59,"Abyss Knight",2470,1,.@label$;
monster .@map$,145,69,"Abyss Knight",2470,1,.@label$;
@@ -529,7 +529,7 @@ OnTimer85000:
monster .@map$,145,99,"Abyss Knight",2470,1,.@label$;
monster .@map$,154,99,"Abyss Knight",2470,1,.@label$;
- for(set .@i,1; .@i<=22; set .@i,.@i+1)
+ for(.@i = 1; .@i<=22; ++.@i)
hideoffnpc instance_npcname(".#ghinstance"+.@i);
donpcevent instance_npcname(".#ghinstance22")+"::OnTalkK";
@@ -548,7 +548,7 @@ OnTimer85000:
OnTimer88000:
donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnTalk8";
- for(set .@i,1; .@i<=20; set .@i,.@i+4) {
+ for(.@i = 1; .@i<=20; .@i += 4) {
hideonnpc instance_npcname(".#ghinstance"+.@i);
hideonnpc instance_npcname(".#ghinstance"+(.@i+1));
disablenpc instance_npcname(".#ghinstance"+(.@i+2));
@@ -557,8 +557,8 @@ OnTimer88000:
hideonnpc instance_npcname(".#ghinstance21");
hideonnpc instance_npcname(".#ghinstance22");
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#talkinstance1")+"::OnMyMobDead";
monster .@map$,145,54,"Khalitzburg",2471,1,.@label$;
monster .@map$,154,54,"Khalitzburg",2471,1,.@label$;
monster .@map$,145,64,"Khalitzburg",2471,1,.@label$;
@@ -784,8 +784,8 @@ OnEnable:
enablenpc instance_npcname(strnpcinfo(0));
end;
OnTouch:
- set .@map1$, instance_mapname("1@gl_k");
- set .@map2$, instance_mapname("2@gl_k");
+ .@map1$ = instance_mapname("1@gl_k");
+ .@map2$ = instance_mapname("2@gl_k");
switch(atoi(replacestr(strnpcinfo(2),"ghinstancewarp",""))) {
case 1: warp .@map1$,80,80; break;
case 2: warp .@map1$,105,80; break;
@@ -826,8 +826,8 @@ OnDisable:
end;
OnEnable:
enablenpc instance_npcname("#ghmemorialmob01");
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
areamonster .@map$,76,99,87,10,"Suffering Chamberlain",2466,15,.@label$;
areamonster .@map$,67,39,12,6,"Fallen Monk",2465,20,.@label$;
areamonster .@map$,67,39,12,6,"Suffering Chamberlain",2466,3,.@label$;
@@ -835,9 +835,9 @@ OnEnable:
areamonster .@map$,45,84,6,137,"Decayed Butler",2464,12,.@label$;
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
- set .@mob_dead_num, 56 - mobcount(.@map$,.@label$);
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
+ .@mob_dead_num = 56 - mobcount(.@map$,.@label$);
if (.@mob_dead_num > 35) {
mapannounce .@map$, "Seems like Himmelmez drains the dead's souls. They must be destroyed.",bc_map,"0xFFFFFF";
killmonster .@map$,.@label$;
@@ -966,8 +966,8 @@ OnEnable:
enablenpc instance_npcname("#ghmemorialmob02");
donpcevent instance_npcname("#ghinstancewarp3")+"::OnEnable";
donpcevent instance_npcname("#ghinstancewarp4")+"::OnEnable";
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
mapannounce .@map$,"3 o'clock warp leading to zone 3 is now open.",bc_map,"0xFFFF00";
areamonster .@map$,241,113,291,19,"Suffering Chamberlain",2466,12,.@label$;
areamonster .@map$,241,113,291,19,"Decayed Monk",2464,12,.@label$;
@@ -975,9 +975,9 @@ OnEnable:
areamonster .@map$,227,217,291,135,"Decayed Monk",2464,12,.@label$;
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
- set .@mob_dead_num, 48 - mobcount(.@map$,.@label$);
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
+ .@mob_dead_num = 48 - mobcount(.@map$,.@label$);
if (.@mob_dead_num > 28) {
mapannounce .@map$, "Seems like Himmelmez drains the dead's souls. They must be destroyed.",bc_map,"0xFFFFFF";
killmonster .@map$,.@label$;
@@ -992,12 +992,12 @@ OnMyMobDead:
1@gl_k,221,82,3 script Breathless Man#GHtramp1 4_M_DIEMAN,4,4,{
end;
OnTouch:
- set .@i, rand(1,10);
- if (.@i == 1) set .@mobs,3;
- else if (.@i == 2) set .@mobs,4;
- else if (.@i == 3) set .@mobs,5;
- else if (.@i < 7) set .@mobs,6;
- else set .@mobs,7;
+ .@i = rand(1,10);
+ if (.@i == 1) .@mobs = 3;
+ else if (.@i == 2) .@mobs = 4;
+ else if (.@i == 3) .@mobs = 5;
+ else if (.@i < 7) .@mobs = 6;
+ else .@mobs = 7;
getmapxy(.@map$,.@x,.@y,1);
specialeffect EF_VENOMDUST;
monster .@map$,.@x,.@y,"Muck Worm",2467,.@mobs,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
@@ -1060,8 +1060,8 @@ OnEnable:
enablenpc instance_npcname("#ghmemorialmob03");
donpcevent instance_npcname("#ghinstancewarp5")+"::OnEnable";
donpcevent instance_npcname("#ghinstancewarp6")+"::OnEnable";
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
mapannounce .@map$,"12 o'clock warp leading to the zone 4 was opened.",bc_map,"0xFFFF00";
areamonster .@map$,17,259,53,180,"Decayed Guard",2468,11,.@label$;
areamonster .@map$,17,259,53,180,"Sharpshooter Ranger",2469,14,.@label$;
@@ -1073,9 +1073,9 @@ OnEnable:
areamonster .@map$,108,281,231,234,"Sharpshooter Ranger",2469,14,.@label$;
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
- set .@mob_dead_num, 100 - mobcount(.@map$,.@label$);
+ .@map$ = instance_mapname("1@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
+ .@mob_dead_num = 100 - mobcount(.@map$,.@label$);
if (.@mob_dead_num > 85) {
mapannounce .@map$,"Himmelmez: Nice parry. I thought you were going to die slowly surrounded by the dead I summoned~",bc_map,"0xFFFFFF";
killmonster .@map$,.@label$;
@@ -1102,7 +1102,7 @@ OnEnable:
monster instance_mapname("1@gl_k"),150,258,"Root of Corruption",2475,1,instance_npcname("#ghmemorialmob04")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("1@gl_k");
+ .@map$ = instance_mapname("1@gl_k");
if (mobcount(.@map$,instance_npcname("#ghmemorialmob04")+"::OnMyMobDead") < 1) {
mapannounce .@map$, "12 o'clock warp leading to the Chivalry's Second Floor is now open.",bc_map,"0xFFFF00";
donpcevent instance_npcname("#ghinstancewarp7")+"::OnEnable";
@@ -1259,8 +1259,8 @@ OnTalk6:
}
1@gl_k,156,259,3 script Varmunt#ghinstance3 4_M_BARMUND,{
- if (checkquest(12318,HUNTING) == 2) {
- if (checkquest(12319,HUNTING) == -1) {
+ if (questprogress(12318,HUNTING) == 2) {
+ if (!questprogress(12319,HUNTING)) {
mes "[Varmunt]";
mes "There's something unusual about this thing's aura. Maybe someday we will be able to understand what is behind all of this.";
cutin "gl_barmund1",2;
@@ -1520,25 +1520,25 @@ OnDisable:
end;
OnEnable:
enablenpc instance_npcname("#ghmemorialmob05");
- set .@map$, instance_mapname("2@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ .@map$ = instance_mapname("2@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
areamonster .@map$,124,20,31,162,"Decayed Guard",2468,8,.@label$;
areamonster .@map$,124,20,31,162,"Sharpshooter Ranger",2469,8,.@label$;
areamonster .@map$,124,20,31,162,"Fallen Abyss Knight",2470,8,.@label$;
areamonster .@map$,124,20,31,162,"Suffering Khalitzburg",2471,8,.@label$;
areamonster .@map$,124,20,31,162,"Swollen Knight",2472,8,.@label$;
- set .MyMobs,80;
+ .MyMobs = 80;
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@gl_k");
- set .MyMobs, .MyMobs-1;
+ .@map$ = instance_mapname("2@gl_k");
+ --.MyMobs;
if (.MyMobs == 0) {
mapannounce .@map$, "A being with an evil aura seems to be appearing in this region.",bc_map,"0xFFFF00";
donpcevent instance_npcname("#ghmemorialmob06")+"::OnDisable2";
donpcevent instance_npcname("#ghmemorialmob07")+"::OnEnable";
donpcevent instance_npcname("#ghmemorialmob05")+"::OnDisable";
} else {
- set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ .@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
switch(rand(5)) {
case 0:
areamonster .@map$,124,20,31,162,"Decayed Guard",2468,1,.@label$;
@@ -1579,8 +1579,8 @@ OnSpawn:
initnpctimer;
end;
OnTimer90000:
- set .@map$, instance_mapname("2@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
+ .@map$ = instance_mapname("2@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
setarray .@c[0],
114,141,118,139,
128,83,131,78,
@@ -1589,7 +1589,7 @@ OnTimer90000:
58,83,63,78,
69,138,80,127,
34,143,39,138;
- for(set .@i,0; .@i<getarraysize(.@c); set .@i,.@i+4) {
+ for(.@i = 0; .@i<getarraysize(.@c); .@i += 4) {
areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Decayed Guard",2468,1,.@label$;
areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Sharpshooter Ranger",2469,1,.@label$;
areamonster .@map$,.@c[.@i],.@c[.@i+1],.@c[.@i+2],.@c[.@i+3],"Fallen Abyss Knight",2470,1,.@label$;
@@ -1615,7 +1615,7 @@ OnEnable:
areamonster instance_mapname("2@gl_k"),124,20,31,162,"The Destruction of the First Captain",2473,1,instance_npcname("#ghmemorialmob07")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@gl_k");
+ .@map$ = instance_mapname("2@gl_k");
if (mobcount(.@map$,instance_npcname("#ghmemorialmob07")+"::OnMyMobDead") < 1) {
mapannounce .@map$, "3 o'clock positioned warp leading to the 2nd zone has been opened. Use the central hallway to get there.",bc_map,"0xFFFF00";
donpcevent instance_npcname("#ghinstancewarp10")+"::OnEnable";
@@ -1635,24 +1635,24 @@ OnDisable:
end;
OnEnable:
enablenpc instance_npcname("#ghmemorialmob08");
- set .@map$, instance_mapname("2@gl_k");
- set .@label$, instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
+ .@map$ = instance_mapname("2@gl_k");
+ .@label$ = instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
areamonster .@map$,175,163,265,18,"Decayed Guard",2468,7,.@label$;
areamonster .@map$,175,163,265,18,"Sharpshooter Ranger",2469,7,.@label$;
areamonster .@map$,175,163,265,18,"Fallen Abyss Knight",2470,7,.@label$;
areamonster .@map$,175,163,265,18,"Suffering Khalitzburg",2471,7,.@label$;
areamonster .@map$,175,163,265,18,"Swollen Knight",2472,7,.@label$;
- set .MyMobs,35;
+ .MyMobs = 35;
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@gl_k");
- set .MyMobs, .MyMobs-1;
+ .@map$ = instance_mapname("2@gl_k");
+ --.MyMobs;
if (.MyMobs == 0) {
mapannounce .@map$, "A being with an evil aura seems to be appearing in this region.",bc_map,"0xFFFF00";
donpcevent instance_npcname("#ghmemorialmob09")+"::OnEnable";
donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
} else {
- set .@label$, instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
+ .@label$ = instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
switch(rand(5)) {
case 0:
areamonster .@map$,175,163,265,18,"Decayed Guard",2468,1,.@label$;
@@ -1686,7 +1686,7 @@ OnEnable:
areamonster instance_mapname("2@gl_k"),175,163,265,18,"The Destruction of the Second Captain",2474,1,instance_npcname("#ghmemorialmob09")+"::OnMyMobDead";
end;
OnMyMobDead:
- set .@map$, instance_mapname("2@gl_k");
+ .@map$ = instance_mapname("2@gl_k");
if (mobcount(.@map$,instance_npcname("#ghmemorialmob09")+"::OnMyMobDead") < 1) {
mapannounce .@map$, "12 o'clock positioned warp leading to the 3rd zone has been opened. Use the central hallway to get there.",bc_map,"0xFFFF00";
donpcevent instance_npcname("#ghinstancewarp12")+"::OnEnable";
@@ -1998,7 +1998,7 @@ OnTimer80000:
}
2@gl_k,158,241,1 script Hugin#ghinstance1 4_M_SAGE_C,{
- if (checkquest(12319,HUNTING) == 2) {
+ if (questprogress(12319,HUNTING) == 2) {
mes "[Hugin]";
mes "Well, you are pretty ridiculous. Beginners shouldn't get the loot Amdarias drops.";
erasequest 12318;
diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt
index 70cc81b8f..dcf726ed3 100644
--- a/npc/re/instances/WolfchevLaboratory.txt
+++ b/npc/re/instances/WolfchevLaboratory.txt
@@ -3,7 +3,7 @@
//===== By: ====================================================================
//= Kisuka (1.0)
//===== Current Version: =======================================================
-//= 1.0.1
+//= 1.0.2
//===== File Encoding ==========================================================
//= CP-949 (EUC-KR compatible). Do NOT read/save it as UTF-8.
//===== Description: ===========================================================
@@ -11,6 +11,7 @@
//===== Additional Comments: ===================================================
//= 1.0.0 Initial Release. [Kisuka]
//= 1.0.1 Some Clean-Up and Fixes. [Euphy]
+//= 1.0.2 Fixed a small typo. [Euphy]
//==============================================================================
1@lhz mapflag src4instance
@@ -949,7 +950,7 @@ lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
.@equip_item = getequipid(.@position);
.@lhz_max_num = 4000;
if(.@equip_item == Agent_Katar || .@equip_item == Guillotine_Katar || .@equip_item == Ygnus_Stale ||
- .@equip_item == End_Sektura || .@equip_item = Cannon_Spear || .@equip_item == Giant_Lance ||
+ .@equip_item == End_Sektura || .@equip_item == Cannon_Spear || .@equip_item == Giant_Lance ||
.@equip_item == Aztoe_Nail || .@equip_item == Scarletto_Nail || .@equip_item == Bloody_Cross) {
.@type = 1;
if(.@equip_item == Giant_Lance)
@@ -1689,10 +1690,9 @@ lhz_dun04,151,276,3 script Researcher#memo 4_LGTSCIENCE,{
mes "^FF0000You cannot continue the process due to possessing too many belongings.^000000";
close;
}
- .@quest_time = checkquest(5112, PLAYTIME);
.@killed_bosses = true;
for(.@quest_id = 5113; .@quest_id <= 5125; .@quest_id++) {
- if(checkquest(.@quest_id, HUNTING) <= 1)
+ if(questprogress(.@quest_id, HUNTING) != 2)
.@killed_bosses = false;
}
if (lght_duk01 < 6) {
@@ -1779,14 +1779,15 @@ lhz_dun04,151,276,3 script Researcher#memo 4_LGTSCIENCE,{
mes "And just so you know, please do not touch random things out of curiosity. I don't want you to get hurt.";
close;
case 2:
- if (.@quest_time == 0) {
+ .@quest_time = questprogress(5112, PLAYTIME);
+ if (!.@quest_time) {
mes "[Wolfchev]";
mes "I'm sorry, but it seems you still cannot enter to the laboratory yet. Will you come back later? The system is kind of tricky you know.";
close;
} else {
//if (.@quest_time == 2)
//recall_completequest 5112;
- if (.@quest_time >= 0)
+ if (.@quest_time)
erasequest 5112;
if (!.@killed_bosses) {
if (lght_duk01 == 9) {
@@ -1907,13 +1908,13 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
mes "^FF0000You cannot continue the process due to possessing too many belongings.^000000";
close;
}
- .@lhz_time = checkquest(5112, PLAYTIME);
+ .@lhz_time = questprogress(5112, PLAYTIME);
if (lght_duk01 < 7) {
mes "It says,";
mes "'^0000FF****'s laboratory member only^000000'";
close;
}
- if (.@lhz_time == -1) {
+ if (!.@lhz_time) {
mes "This is an entrance towards Wolfchev's laboratory. Something is howling over the entrance.";
next;
if(select("Go inside", "Think one more time") == 2) {
@@ -1937,7 +1938,7 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
warp "1@lhz.gat", 45, 148;
close;
}
- } else if (.@lhz_time == 0) {
+ } else if (.@lhz_time == 1) {
mes "Di Rit- Di- Di- Dit-";
next;
mes ""+ strcharinfo(PC_NAME) +". . .";
@@ -1945,7 +1946,7 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
next;
mes "The system denied your entrance.";
close;
- } else if (.@lhz_time >= 1) {
+ } else if (.@lhz_time == 2) {
mes "Di Rit- Di- Di- Dit-";
next;
//if (.@lhz_time == 2)
@@ -3112,7 +3113,7 @@ lhz_dun04,147,279,0 script Laboratory Entrance#memo CLEAR_NPC,{
}
.@all_quests_complete = true;
for(.@i = 5113; .@i <= 5125; .@i++) {
- if(checkquest(.@i, HUNTING) != 2)
+ if(questprogress(.@i, HUNTING) != 2)
.@all_quests_complete = false;
}
if (.@all_quests_complete) {
diff --git a/npc/re/jobs/1-1/acolyte.txt b/npc/re/jobs/1-1/acolyte.txt
index 07c37a07c..3ba4bcce9 100644
--- a/npc/re/jobs/1-1/acolyte.txt
+++ b/npc/re/jobs/1-1/acolyte.txt
@@ -143,7 +143,7 @@ prt_fild03,365,255,2 script Ascetic#aco 4_M_ORIENT02,{
mes "Farewell.";
close2;
savepoint "prt_fild03",361,255;
- set job_acolyte_q,6;
+ job_acolyte_q = 6;
end;
}
else {
@@ -211,7 +211,7 @@ moc_fild07,41,355,4 script Ascetic#2aco 4_F_SISTER,{
mes "Please return to the Prontera Sanctuary and speak to the Priest in charge.";
close2;
savepoint "moc_fild07",35,355;
- set job_acolyte_q,7;
+ job_acolyte_q = 7;
end;
}
else {
@@ -288,7 +288,7 @@ prt_fild00,208,218,6 script Ascetic#3aco 4W_M_02,{
mes "Now go back to the Santuary and finish becoming an Acolyte, kid.";
close2;
savepoint "prt_fild00",206,230;
- set job_acolyte_q,8;
+ job_acolyte_q = 8;
end;
}
else {
diff --git a/npc/re/jobs/1-1/thief.txt b/npc/re/jobs/1-1/thief.txt
index 4b04f9efa..f327d1892 100644
--- a/npc/re/jobs/1-1/thief.txt
+++ b/npc/re/jobs/1-1/thief.txt
@@ -151,7 +151,7 @@ moc_prydb1,39,129,2 script Thief Guide#thief 1_F_04,{
mes "[Thief Guildsman]";
mes "Well, I'm not in charge of making you a Thief. I just accept applications, get it?";
mes "If you want to become a Thief, ask the guy next to me.";
- set q_job_thief,1;
+ q_job_thief = 1;
close;
}
@@ -166,7 +166,7 @@ moc_prydb1,42,133,2 script Thief Guildsman#thief 2_M_THIEFMASTER,{
mes "'"+strcharinfo(0)+".'";
mes "'For those who are ready, the moonlight shall open the way. Now you are fully ready, I now officially allow you to become a member of the Thief Guild.'";
callfunc "Job_Change",Job_Thief;
- set q_job_thief,0;
+ q_job_thief = 0;
getitem 13041,1; // N_Main_Gauche
next;
mes "[Commander of Thief Guild]";
diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt
index 26782eb94..78e35ef34 100644
--- a/npc/re/jobs/3-1/archbishop.txt
+++ b/npc/re/jobs/3-1/archbishop.txt
@@ -122,7 +122,7 @@ prt_church,103,88,3 script Praying Minister#arch 1_M_PASTOR,{
mes "He's very old so he is hard of hearing.";
mes "You have to speak loud and clearly. You got it?";
mes "I hope that this paves the way for you to live in the light of Odin.";
- set job_arch,1;
+ job_arch = 1;
setquest 2187;
close;
case 2:
@@ -308,7 +308,7 @@ umbala,139,227,3 script Priest#arch 1_M_PASTOR,{
mes "After making your pilgrimage, let's have a drink together and talk about your experience.";
next;
mes "- Priest Dayan smiles again. -";
- set job_arch,2;
+ job_arch = 2;
changequest 2187,2188;
close;
} else if (job_arch == 2) {
@@ -405,7 +405,7 @@ umbala,139,227,3 script Priest#arch 1_M_PASTOR,{
mes "Thank you very much.";
mes "Feel free to visit here when you want to pray, "+(Sex?"brother.":"sister.");
mes "A visit from a friend always makes me happy.";
- set job_arch,4;
+ job_arch = 4;
changequest 2188,2189;
close;
}
@@ -559,7 +559,7 @@ OnTouch:
mes "[" + strcharinfo(0) + "]";
mes "That was refreshing.";
mes "I guess I should go back to Priest Dayan.";
- set job_arch,3;
+ job_arch = 3;
close2;
warp "umbala",138,219;
end;
@@ -707,7 +707,7 @@ hu_in01,205,204,7 script Praying Nun#benew 1_F_PRIEST,{
mes "[Vinue]";
mes "I'll pray for your safe return.";
mes "I hope that Odin gives you his protection as well.";
- set job_arch,5;
+ job_arch = 5;
changequest 2189,2190;
close;
} else if ((job_arch > 4) && (job_arch < 100)) {
@@ -901,11 +901,11 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
mes "[Valkyrie Anguhilde]";
mes "When you finish preparing to go on, talk to me again.";
mes "It'll be a long journey...";
- set job_arch,6;
+ job_arch = 6;
close;
} else if (job_arch == 6) {
if ($@archbs == 0) {
- set $@archbs,1;
+ $@archbs = 1;
mes "[Valkyrie Anguhilde]";
mes "" + strcharinfo(0) + " Did you finish preparing for your way of asceticism?";
next;
@@ -913,19 +913,19 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
mes "[Valkyrie Anguhilde]";
mes "Hmm, someone is battling the devil in the shrine right now.";
mes "You just wait a minute while I'm finding who it is.";
- set $@archbs,0;
+ $@archbs = 0;
close;
}
mes "[Valkyrie Anguhilde]";
mes "Ok. Now I'm going to send you there.";
mes "^FF0000When you go there, you have to summon my impersonation with the scroll^000000. Don't forget.";
- set $@archbs,0;
+ $@archbs = 0;
close2;
nude;
if (countitem(2798))
delitem 2798,countitem(2798); //Will_Of_Exhausted_Angel
donpcevent "start#arch::OnEnable";
- set job_arch,7;
+ job_arch = 7;
changequest 2190,2191;
warp "job3_arch02",119,49;
hideonnpc "Valkyrie#arch";
@@ -938,20 +938,20 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
if (countitem(12381)) delitem 12381,countitem(12381); //ValkyrieA_Scroll
if (countitem(12382)) delitem 12382,countitem(12382); //ValkyrieB_Scroll
if ($@archbs == 0) {
- set $@archbs,1;
+ $@archbs = 1;
mes "[Valkyrie Anguhilde]";
mes "Are you ok human?";
mes "It was not as easy as I expected.";
mes "Will you challenge again?";
next;
if (getmapusers("job3_arch02") > 0) {
- set $@archbs,0;
+ $@archbs = 0;
mes "[Valkyrie Anguhilde]";
mes "Hmm, someone is battling the devil in the shrine right now.";
mes "You just wait a minute while I'm finding who it is.";
close;
}
- set $@archbs,0;
+ $@archbs = 0;
mes "[Valkyrie Anguhilde]";
mes "OK. now I'm going to send you there.";
mes "^FF0000When you go there, you have to summon my impersonation with the scroll^000000.";
@@ -962,7 +962,7 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
if (countitem(2798))
delitem 2798,countitem(2798); //Will_Of_Exhausted_Angel
donpcevent "start#arch::OnEnable";
- set job_arch,7;
+ job_arch = 7;
warp "job3_arch02",119,49;
hideonnpc "Valkyrie#arch";
end;
@@ -974,7 +974,7 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
}
end;
OnBc:
- set $@archbs,0;
+ $@archbs = 0;
mapannounce "job3_arch01","Valkyrie: I think someone fell down in the shrine. I can hear the devil's unpleasant laugh.",bc_map,"0xFFCE00";
hideoffnpc "Valkyrie#arch";
end;
@@ -997,7 +997,7 @@ OnTouch:
} else if (getmercinfo(1) == 2037) {
if (strnpcinfo(0) == "#arch_1_10")
viewpoint 1,113,327,1,0xFF9900;
- set .@randht, rand(1,10);
+ .@randht = rand(1,10);
if (.@randht < 8)
mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits! Be careful!",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
@@ -1188,7 +1188,7 @@ OnTouch:
mes "- and come for the challenge again. -";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "You are on a riding pet,";
mes "so you cannot change your job.";
mes "Please unequip your riding pet and try again!";
@@ -1293,7 +1293,7 @@ OnTouch:
if (countitem(2798))
delitem 2798,countitem(2798); //Will_Of_Exhausted_Angel
delitem 6154,countitem(6154); //Broken_Horn_Pipe
- set job_arch,100;
+ job_arch = 100;
completequest 2191;
getitem 5747,1; //Mitra
getitem 2795,1; //Green_Apple_Ring
@@ -1344,7 +1344,7 @@ OnTouch:
delitem 12382,1; //ValkyrieB_Scroll
// fall through
} else if (getmercinfo(1) == 2038) {
- set .@randht, rand(1,10);
+ .@randht = rand(1,10);
if (.@randht < 8)
mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
@@ -1656,11 +1656,11 @@ job3_arch01,1,1,1 script control#arch CLEAR_NPC,{
next;
switch(select("0:1")) {
case 1:
- set $@archbs,0;
+ $@archbs = 0;
hideoffnpc "Valkyrie#arch";
close;
case 2:
- set $@archbs,1;
+ $@archbs = 1;
hideoffnpc "Valkyrie#arch";
close;
}
diff --git a/npc/re/jobs/3-1/guillotine_cross.txt b/npc/re/jobs/3-1/guillotine_cross.txt
index df51c3496..5a75aeb84 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -83,14 +83,14 @@ que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
mes "[Ahcart]";
mes "You should be able to find it easily.";
mes "Go now.";
- set job_3rd_gc, 3;
+ job_3rd_gc = 3;
setquest 7101;
close;
case 2:
mes "[Ahcart]";
mes "Got it.";
mes "But don't think about it for too long.";
- set job_3rd_gc, 2;
+ job_3rd_gc = 2;
close;
}
}
@@ -102,7 +102,7 @@ que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
mes "[Ahcart]";
mes "Of course, a chapter of the assassin guild is not only in Morroc. If you have a chance to go there, visit there.";
mes "I think you might go there.";
- set job_3rd_gc, 1;
+ job_3rd_gc = 1;
close;
}
mes "[A man of a sharp impression]";
@@ -130,7 +130,7 @@ que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
mes "[Ahcart]";
mes "You should be able to find it easily.";
mes "Go now.";
- set job_3rd_gc, 3;
+ job_3rd_gc = 3;
setquest 7101;
close;
case 2:
@@ -152,17 +152,32 @@ que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
}
function script func_3rdgc {
- set .@n$, "["+strcharinfo(0)+"]";
+ .@n$ = "["+strcharinfo(0)+"]";
mes .@n$;
mes "Let me collect all the information...";
- set .@i,0;
- if (checkquest(7112) == 1) { mes "Madelle saw a person who looked like a priest from Rachel late at night."; set .@i,.@i+1; }
- if (checkquest(7113) == 1) { mes "Crave said that there was a girl who bought lots of things day and night."; set .@i,.@i+1; }
- if (checkquest(7114) == 1) { mes "Trovan said that there was a guy who could be seen often but is not a hotel guest, so he is suspicious."; set .@i,.@i+1; }
+ .@i = 0;
+ if (questprogress(7112) == 1) {
+ mes "Madelle saw a person who looked like a priest from Rachel late at night.";
+ ++.@i;
+ }
+ if (questprogress(7113) == 1) {
+ mes "Crave said that there was a girl who bought lots of things day and night.";
+ ++.@i;
+ }
+ if (questprogress(7114) == 1) {
+ mes "Trovan said that there was a guy who could be seen often but is not a hotel guest, so he is suspicious.";
+ ++.@i;
+ }
if (!getarg(0)) {
- set .@i,.@i-2;
- if (checkquest(7115) == 1) { mes "A peddler wears shabby clothes, but she buys fresh and expensive things every single day."; set .@i,.@i+1; }
- if (checkquest(7116) == 1) { mes "The old man in village said that there was a girl who showed up in same place at the same time, so maybe moved here."; set .@i,.@i+1; }
+ .@i -= 2;
+ if (questprogress(7115) == 1) {
+ mes "A peddler wears shabby clothes, but she buys fresh and expensive things every single day.";
+ ++.@i;
+ }
+ if (questprogress(7116) == 1) {
+ mes "The old man in village said that there was a girl who showed up in same place at the same time, so maybe moved here.";
+ ++.@i;
+ }
}
next;
if (.@i == 3) {
@@ -182,7 +197,7 @@ function script func_3rdgc {
next;
mes .@n$;
mes "Let me rethink this.";
- set job_3rd_gc, 7;
+ job_3rd_gc = 7;
close;
case 2:
mes .@n$;
@@ -212,7 +227,7 @@ function script func_3rdgc {
mes .@n$;
mes "Crave said that she comes here day and night to buy stuff regularly.";
mes "Then I know what I have to do.";
- set job_3rd_gc, 8;
+ job_3rd_gc = 8;
close;
}
}
@@ -284,7 +299,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
mes "Yeah, can you find an entrance to an alley in the corner?";
mes "Go in there, then you can hear a more detailed story.";
mes "Take on this special task~!";
- set job_3rd_gc, 4;
+ job_3rd_gc = 4;
changequest 7101,7102;
close;
}
@@ -352,7 +367,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
mes "So, don't worry.";
mes "Are you supposed to be here for her?";
mes "Go ahead.";
- set job_3rd_gc, 11;
+ job_3rd_gc = 11;
close;
} else if (job_3rd_gc == 11) {
mes "She is in a room.";
@@ -395,10 +410,10 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
next;
mes "[Daora]";
mes "If you need to, visit me anytime and I'll serve you a drink after your task is done.";
- set job_3rd_gc, 6;
+ job_3rd_gc = 6;
close;
} else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
+ if (questprogress(7091) == 1) {
mes "You hope that there will be something in the glass?";
mes "Information can't come out of empty glasses.";
close;
@@ -453,7 +468,8 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
next;
switch(select("Figure out based on information.:Stop the stage.")) {
case 1:
- if (checkquest(7091) == 1) set .@j,1;
+ if (questprogress(7091) == 1)
+ .@j = 1;
callfunc "func_3rdgc",.@j;
close;
case 2:
@@ -461,7 +477,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
close;
}
} else if (job_3rd_gc == 8) {
- if (checkquest(7092) == 1) {
+ if (questprogress(7092) == 1) {
mes "Wait in an alley where she usually shows up to find her, and you will be able to pursue the question.";
next;
mes "[Daora]";
@@ -531,7 +547,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
close;
}
} else if (job_3rd_gc == 9) {
- if (checkquest(7093) == 1) {
+ if (questprogress(7093) == 1) {
mes "So, go to the east of village, you can see a narrow alley directed to the north.";
next;
mes "[Daora]";
@@ -575,7 +591,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
mes "I sent a girl named Estillda to her home.";
mes "Why do we handle worthless things like it?";
next;
- if (checkquest(7094) == 1) {
+ if (questprogress(7094) == 1) {
mes "[Daora]";
mes "I'm not sure if he still lives...";
mes "Anyway, he is a key artisan in Rachel,";
@@ -639,7 +655,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
close;
}
} else if (job_3rd_gc == 15) {
- if (checkquest(7095) == 1) {
+ if (questprogress(7095) == 1) {
mes "The field northwest of Veins.";
mes "You can find that easily with a map.";
mes "There are lots of wolves, so be careful.";
@@ -874,7 +890,7 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
mes strcharinfo(0)+".";
mes "Time is not waiting for you.";
mes "Go ahead. Spill blood with the blade of a knife that stands for a stoic life.";
- set job_3rd_gc, 5;
+ job_3rd_gc = 5;
changequest 7102,7103;
close;
} else if (job_3rd_gc == 5) {
@@ -936,7 +952,7 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
mes "This is the last step.";
mes "Don't make any mistakes.";
delitem 6150,1; //Key_Of_The_Mansion
- set job_3rd_gc, 15;
+ job_3rd_gc = 15;
changequest 7108,7109;
close;
} else if (job_3rd_gc == 15) {
@@ -957,9 +973,11 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
mes "At least you came back alive.";
}
next;
- set .@all_wine,0;
- for(set .@i,0; .@i<5; set .@i,.@i+1)
- if (checkquest(7091+.@i) == 1) set .@all_wine, .@all_wine+1;
+ .@all_wine = 0;
+ for(.@i = 0; .@i < 5; ++.@i)
+ if (questprogress(7091+.@i) == 1) {
+ ++.@all_wine;
+ }
mes "[Mayshell]";
if (.@all_wine < 2) {
mes "You did the job by yourself";
@@ -975,11 +993,11 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
if (job_3rd_gc == 18) {
mes "The evaluation of your task is... [S].";
mes "[S] is for 'special'.";
- set .@quest,7099;
+ .@quest = 7099;
} else {
mes "The evaluation of your task is... [A].";
mes "If you were punctual, you would have received higher.";
- set .@quest,7096;
+ .@quest = 7096;
}
next;
} else {
@@ -998,11 +1016,11 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
if (.@all_wine > 3) {
if (job_3rd_gc == 18) {
mes "The evaluation of your task is... [B].";
- set .@quest,7097;
+ .@quest = 7097;
} else {
mes "The evaluation of your task is... [C].";
mes "You need to act by yourself.";
- set .@quest,7098;
+ .@quest = 7098;
}
next;
} else {
@@ -1013,10 +1031,10 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
mes "I like that.";
if (job_3rd_gc == 18) {
mes "The evaluation of your task is... [A].";
- set .@quest,7096;
+ .@quest = 7096;
} else {
mes "The evaluation of your task is... [B].";
- set .@quest,7097;
+ .@quest = 7097;
}
next;
}
@@ -1032,18 +1050,18 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
mes "[Mayshell]";
mes "I reward you for your labor, and I'm going to give you a present.";
mes "I got this one from guild, I hope it's helpful to you.";
- set job_3rd_gc, 20;
+ job_3rd_gc = 20;
getitem 12106,1; //Accessory_Box
erasequest 7091;
erasequest 7092;
erasequest 7093;
- if (checkquest(7094) > -1) erasequest 7094;
- if (checkquest(7095) > -1) erasequest 7095;
+ if (questprogress(7094)) erasequest 7094;
+ if (questprogress(7095)) erasequest 7095;
erasequest 7112;
erasequest 7113;
erasequest 7114;
- if (checkquest(7115) > -1) erasequest 7115;
- if (checkquest(7116) > -1) erasequest 7116;
+ if (questprogress(7115)) erasequest 7115;
+ if (questprogress(7116)) erasequest 7116;
changequest 7111,.@quest;
next;
mes "[Mayshell]";
@@ -1104,8 +1122,8 @@ ve_in,228,108,3 script Waitress#3rdgc04 1_F_PUBGIRL,{
mes "Visit and take a rest~";
close;
} else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
- if (checkquest(7112) == 1) {
+ if (questprogress(7091) == 1) {
+ if (questprogress(7112) == 1) {
mes "That's all the information that I know.";
mes "After that, I can't remember anything else.";
next;
@@ -1194,7 +1212,7 @@ ve_in,228,108,3 script Waitress#3rdgc04 1_F_PUBGIRL,{
}
}
} else {
- if (checkquest(7112) == 1) {
+ if (questprogress(7112) == 1) {
mes "That's all the information that I know.";
mes "I haven't seen them since.";
next;
@@ -1338,8 +1356,8 @@ ve_in,246,303,3 script Young Merchant#3rdgc05 4_M_RACHMAN2,{
close;
}
else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
- if (checkquest(7113) == 1) {
+ if (questprogress(7091) == 1) {
+ if (questprogress(7113) == 1) {
mes "[Crave]";
mes "I already gave you all the information I have.";
mes "I'm quick in visual learning.";
@@ -1413,7 +1431,7 @@ ve_in,246,303,3 script Young Merchant#3rdgc05 4_M_RACHMAN2,{
}
}
} else {
- if (checkquest(7113) == 1) {
+ if (questprogress(7113) == 1) {
mes "[Crave]";
mes "I already gave you all the information I have.";
mes "I'm quick in visual learning.";
@@ -1534,8 +1552,8 @@ veins,291,215,3 script Vigilante#3rdgc06 4_DST_SOLDIER,{
close;
}
else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
- if (checkquest(7114) == 1) {
+ if (questprogress(7091) == 1) {
+ if (questprogress(7114) == 1) {
mes "[Trovan]";
mes "I already gave you all the information I have.";
mes "He's the only suspicious person that's been seen.";
@@ -1616,7 +1634,7 @@ veins,291,215,3 script Vigilante#3rdgc06 4_DST_SOLDIER,{
}
}
} else {
- if (checkquest(7114) == 1) {
+ if (questprogress(7114) == 1) {
mes "[Trovan]";
mes "I already gave you all the information I have.";
mes "He's the only suspicious person that's been seen.";
@@ -1698,12 +1716,12 @@ veins,187,143,5 script Peddler#3rdgc07 4_F_HUGRANMA,{
close;
}
else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
+ if (questprogress(7091) == 1) {
mes "What a huge sandstorm.";
mes "Are you ok?";
close;
} else {
- if (checkquest(7115) == 1) {
+ if (questprogress(7115) == 1) {
mes "So, did you find that girl?";
mes "If you do, let her know that she has to come and visit me.";
next;
@@ -1799,11 +1817,11 @@ veins,235,126,3 script Old Man#3rdgc07 4_M_DST_GRAND,{
mes "Haha... I can remember my past when I see a young adventurer like you...";
close2;
} else if (job_3rd_gc == 6) {
- if (checkquest(7091) == 1) {
+ if (questprogress(7091) == 1) {
mes "Haha... I can remember my past when I see a young adventurer like you...";
close;
} else {
- if (checkquest(7116) == 1) {
+ if (questprogress(7116) == 1) {
mes "Thanks for talking to me.";
next;
mes "- I can't get anymore information from the Old Man. What information have I collected? -";
@@ -1924,7 +1942,7 @@ veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
mes "I know everything.";
close;
case 2:
- set .@ans00, 0;
+ .@ans00 = 0;
mes "[Melissa]";
mes "Ok, answer my question.";
mes "Is it a boy or a girl?";
@@ -1937,7 +1955,7 @@ veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
case 2:
mes "[Melissa]";
mes "A girl and...";
- set .@ans00, .@ans00+1;
+ ++.@ans00;
break;
}
next;
@@ -1957,7 +1975,7 @@ veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
case 3:
mes "[Melissa]";
mes "Light orange to blonde hair.";
- set .@ans00, .@ans00+1;
+ ++.@ans00;
break;
case 4:
mes "[Melissa]";
@@ -1977,7 +1995,7 @@ veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
mes "[Melissa]";
mes "A young person.";
mes "Like you?";
- set .@ans00, .@ans00+1;
+ ++.@ans00;
break;
case 3:
mes "[Melissa]";
@@ -2014,7 +2032,7 @@ veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
mes "Hehehe!";
erasequest 7103;
setquest 7104;
- set job_3rd_gc, 9;
+ job_3rd_gc = 9;
next;
mes "[Melissa]";
mes "She has to be who you're looking for. I'm never wrong.";
@@ -2075,12 +2093,12 @@ veins,337,284,0 script #ghostestilla_3rdgc HIDDEN_WARP_NPC,3,3,{
end;
OnTouch:
if (job_3rd_gc == 9) {
- if ((checkquest(7104,PLAYTIME) == 1) || (checkquest(7105,PLAYTIME) == 1)) {
+ if ((questprogress(7104,PLAYTIME) == 1) || (questprogress(7105,PLAYTIME) == 1)) {
mes ".....?";
mes "There's a sign of somebody present.";
mes "You still have time.";
close;
- } else if ((checkquest(7104,PLAYTIME) == 2) || (checkquest(7105,PLAYTIME) == 2)) {
+ } else if ((questprogress(7104,PLAYTIME) == 2) || (questprogress(7105,PLAYTIME) == 2)) {
mes "The blind alley that Melissa told me about must be this street.";
next;
mes "There's a sign of somebody present.";
@@ -2088,7 +2106,7 @@ OnTouch:
donpcevent "Estillda#3rdgc10::OnEnable";
next;
select("Make a surprise attack.");
- set .@c_spec, readparam(bDex)+readparam(bAspd)+readparam(bCritical);
+ .@c_spec = readparam(bDex)+readparam(bAspd)+readparam(bCritical);
if (.@c_spec > 209 || (!rand(2) && .@c_spec > 190 && .@c_spec < 210) || (!rand(3) && .@c_spec < 191)) {
mes "You take her by the wrist trying not to let her see you.";
mes "The food that she is holding falls on the floor.";
@@ -2158,9 +2176,9 @@ OnTouch:
next;
mes "- I demand that she walks as usual and tell her how to get to Daora's pub. -";
donpcevent "Estillda#3rdgc10::OnDisable";
- if (checkquest(7104) > -1) erasequest 7104;
- if (checkquest(7105) > -1) erasequest 7105;
- set job_3rd_gc, 10;
+ if (questprogress(7104)) erasequest 7104;
+ if (questprogress(7105)) erasequest 7105;
+ job_3rd_gc = 10;
setquest 7106;
next;
mes "- The pub in the underground of Veins is the best place to keep her safe. -";
@@ -2168,8 +2186,8 @@ OnTouch:
} else {
mes "- I tried to take her by the wrist, but she already knew and ran away screaming. -";
donpcevent "Estillda#3rdgc10::OnDisable";
- if (checkquest(7104) > -1) erasequest 7104;
- if (checkquest(7105) > -1) erasequest 7105;
+ if (questprogress(7104)) erasequest 7104;
+ if (questprogress(7105)) erasequest 7105;
setquest 7105;
next;
mes "You couldn't catch Estillda.";
@@ -2291,7 +2309,7 @@ job3_guil01,79,15,1 script Estillda#3rdgc11 4_F_SHABBY,{
next;
mes "["+strcharinfo(0)+"]";
mes "To go back home without an accident.";
- set job_3rd_gc, 12;
+ job_3rd_gc = 12;
changequest 7106,7107;
close;
case 2:
@@ -2316,18 +2334,18 @@ job3_guil01,79,15,1 script Estillda#3rdgc11 4_F_SHABBY,{
veins,206,56,0 script #3rdgc_battleroom01 HIDDEN_WARP_NPC,1,1,{
end;
OnInit:
- set $@3rdgc_room01, 0;
+ $@3rdgc_room01 = 0;
end;
OnTouch:
if (job_3rd_gc == 12) {
- if (checkquest(7107,PLAYTIME) == 2) {
+ if (questprogress(7107,PLAYTIME) == 2) {
mes "This must be the place Estillda told me about.";
next;
switch(select("Go inside.:Observe the situation.")) {
case 1:
if ($@3rdgc_room01 == 0) {
warp "job3_guil02",34,44;
- set $@3rdgc_room01, 1;
+ $@3rdgc_room01 = 1;
} else {
mes "You tried to open the door but it's locked.";
mes "It doesn't show any signs of life.";
@@ -2339,7 +2357,7 @@ OnTouch:
mes "I back up to watch the situation unfold.";
close;
}
- } else if (checkquest(7107,PLAYTIME) == 1) {
+ } else if (questprogress(7107,PLAYTIME) == 1) {
mes "This must be the place Estillda told me about.";
mes "I have enough time for meeting.";
close;
@@ -2372,7 +2390,7 @@ OnTouch:
mes "You don't have to come here now.";
close;
warp "veins",178,62;
- set $@3rdgc_room01, 0;
+ $@3rdgc_room01 = 0;
end;
}
end;
@@ -2392,7 +2410,7 @@ OnTimer299000:
donpcevent "#3rdgc_room01_mag01::OnEnable";
end;
OnTimer300000:
- set $@3rdgc_room01, 0;
+ $@3rdgc_room01 = 0;
stopnpctimer;
end;
}
@@ -2402,11 +2420,11 @@ job3_guil02,51,43,7 script A man with black clothes 4_M_DSTMAN,4,4,{
OnInit:
OnDisable:
hideonnpc "A man with black clothes";
- set .on,0;
+ .on = 0;
end;
OnEnable:
hideoffnpc "A man with black clothes";
- set .on,1;
+ .on = 1;
end;
OnReset:
killmonster "job3_guil02","A man with black clothes::OnMyMobDead";
@@ -2467,7 +2485,7 @@ OnTimer61000:
donpcevent "Dandelion#3rdgc12::OnDisable";
donpcevent "A man with black clothes::OnDisable";
donpcevent "#3rdgc_room01_mag01::OnEnable";
- set $@3rdgc_room01, 0;
+ $@3rdgc_room01 = 0;
stopnpctimer;
end;
}
@@ -2494,7 +2512,7 @@ job3_guil02,49,43,5 script Dandelion#3rdgc12 4_M_DSTMANDEAD,{
mes "It's too late to save him.";
mes "He passed away.";
mes "You find a key with a fancy decoration around his neck.";
- set job_3rd_gc, 13;
+ job_3rd_gc = 13;
getitem 6150,1; //Key_Of_The_Mansion
changequest 7107,7108;
close;
@@ -2632,7 +2650,7 @@ ra_in01,175,196,3 script Oresa Rava#3rdgc13 4_M_LGTGRAND,{
mes "Send over that key.";
next;
mes "- Find the owner of that key soon and tell Mayshell. -";
- set job_3rd_gc, 14;
+ job_3rd_gc = 14;
close;
} else if (job_3rd_gc == 14) {
mes "That key is of a mansion built in a gorge of Veins.";
@@ -2683,9 +2701,9 @@ ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
case 1:
if ($@3rdgc_room02 == 0) {
erasequest ((job_3rd_gc == 17)?7110:7109);
- set job_3rd_gc, 17;
+ job_3rd_gc = 17;
setquest 7110;
- set $@3rdgc_room02, 1;
+ $@3rdgc_room02 = 1;
warp "job3_guil03",22,70;
} else {
mes "[Renzak]";
@@ -2694,7 +2712,7 @@ ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
next;
mes "[Renzak]";
mes "It'll be easy to infiltrate because it's covered by the cliff's shadow.";
- set job_3rd_gc, 16;
+ job_3rd_gc = 16;
}
close;
case 2:
@@ -2705,7 +2723,7 @@ ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
erasequest 7110;
setquest 7109;
}
- set job_3rd_gc, 16;
+ job_3rd_gc = 16;
close;
}
} else if (job_3rd_gc > 18) {
@@ -2724,7 +2742,7 @@ ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
close;
}
OnInit:
- set $@3rdgc_room02, 0;
+ $@3rdgc_room02 = 0;
end;
}
@@ -2748,7 +2766,7 @@ OnTouch:
mes "You don't have to come here.";
close2;
warp "ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
- set $@3rdgc_room02, 0;
+ $@3rdgc_room02 = 0;
}
end;
OnTimer900000:
@@ -2809,7 +2827,7 @@ OnReset:
donpcevent "Priest from Rachel::OnDisable";
donpcevent "Renzak#3rdgc16::OnDisable";
donpcevent "#3rdgc_event01::OnEnable";
- set $@3rdgc_room02, 0;
+ $@3rdgc_room02 = 0;
end;
}
@@ -3350,7 +3368,7 @@ OnMyMobDead:
job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 CLEAR_NPC,{
end;
OnEnable:
- set .@i, atoi(charat(strnpcinfo(0),20));
+ .@i = atoi(charat(strnpcinfo(0),20));
setarray .@x[1],74,124,103;
setarray .@y[1],63, 78, 24;
monster "job3_guil03",.@x[.@i],.@y[.@i],"Guard",1985,1,strnpcinfo(0)+"::OnMyMobDead";
@@ -3396,7 +3414,7 @@ OnReset:
killmonster "job3_guil03",strnpcinfo(0)+"::OnMyMobDead";
end;
OnTouch:
- set .@i, atoi(charat(strnpcinfo(0),19));
+ .@i = atoi(charat(strnpcinfo(0),19));
setarray .@x[1],64,86,83;
setarray .@y[1],68,63,36;
mapannounce "job3_guil03","Guard : Who are you?!",bc_map,"0x7b68ee"; //FW_NORMAL 12 0 0
@@ -3431,7 +3449,7 @@ OnTimer:
setarray .@x[1],.@x-2,.@x+2;
setarray .@y[1],.@y-2,.@y+2;
sleep 1000;
- for(set .@i,0; .@i<9; set .@i,.@i+1) {
+ for(.@i = 0; .@i<9; ++.@i) {
if (getareausers(.@map$,.@x[1],.@y[1],.@x[2],.@y[2]) < 1)
end;
sleep 1000;
@@ -3475,11 +3493,11 @@ job3_guil03,111,51,7 script Priest from Rachel 4_M_MIDDLE1,{
end;
OnInit:
OnDisable:
- set .on,0;
+ .on = 0;
hideonnpc "Priest from Rachel";
end;
OnEnable:
- set .on,1;
+ .on = 1;
hideoffnpc "Priest from Rachel";
end;
OnReset:
@@ -3533,27 +3551,27 @@ OnTimer61000:
end;
OnTimer61500:
donpcevent "#3rdgc_event01::OnEnable";
- set $@3rdgc_room02, 0;
+ $@3rdgc_room02 = 0;
stopnpctimer;
end;
}
job3_guil03,146,70,3 script Renzak#3rdgc16 4_F_GUILLOTINE,{
mes "[Renzak]";
- if (checkquest(7110,HUNTING) == 2) {
+ if (questprogress(7110,HUNTING) == 2) {
mes "My peers will come here to settle this affair.";
mes "Go to Mayshell for the report.";
next;
mes "[Renzak]";
- if (checkquest(7110,PLAYTIME) == 1) {
+ if (questprogress(7110,PLAYTIME) == 1) {
mes "You finished quickly.";
mes "Good job.";
- set job_3rd_gc, 18;
+ job_3rd_gc = 18;
} else {
mes "I told you that you have to finish within 10 minutes.";
mes "You might be exhausted.";
mes "Fortunately you are ok.";
- set job_3rd_gc, 19;
+ job_3rd_gc = 19;
}
erasequest 7110;
setquest 7111;
@@ -3624,7 +3642,7 @@ job3_guil01,148,53,3 script Bercasell#3rdgc16 4_M_GUILLOTINE,{
switch(select("Yes, change my job.:I need to rethink it.")) {
case 1:
mes "[Bercasell]";
- if (ismounting()) {
+ if (hascashmount()) {
mes "I cannot perform the job change.";
mes "Please remove your mount and try again.";
close;
@@ -3653,17 +3671,17 @@ job3_guil01,148,53,3 script Bercasell#3rdgc16 4_M_GUILLOTINE,{
mes "A sword of the shadow...";
setlook 7,0;
jobchange roclass(eaclass()|EAJL_THIRD);
- if (checkquest(7096) == 1) {
- set job_3rd_gc, 25;
+ if (questprogress(7096) == 1) {
+ job_3rd_gc = 25;
erasequest 7096;
- } else if (checkquest(7097) == 1) {
- set job_3rd_gc, 26;
+ } else if (questprogress(7097) == 1) {
+ job_3rd_gc = 26;
erasequest 7097;
- } else if (checkquest(7098) == 1) {
- set job_3rd_gc, 27;
+ } else if (questprogress(7098) == 1) {
+ job_3rd_gc = 27;
erasequest 7098;
- } else if (checkquest(7099) == 1) {
- set job_3rd_gc, 28;
+ } else if (questprogress(7099) == 1) {
+ job_3rd_gc = 28;
erasequest 7099;
}
getitem 2795,1; //Green_Apple_Ring
@@ -3837,7 +3855,7 @@ job3_guil02,1,3,0 script #GMhelper01_gc CLEAR_NPC,{
mes "What can I do for you?";
next;
if (callfunc("F_GM_NPC",1854,0) == 1) {
- set .@room01, $@3rdgc_room01;
+ .@room01 = $@3rdgc_room01;
mes "I check the recent situation.";
mes "The battle situation of storage: "+.@room01+"";
mes "1 : In progress. 0 : Standby status.";
@@ -3856,7 +3874,7 @@ job3_guil02,1,3,0 script #GMhelper01_gc CLEAR_NPC,{
donpcevent "Dandelion#3rdgc12::OnDisable";
donpcevent "A man with black clothes::OnDisable";
donpcevent "#3rdgc_room01_mag01::OnEnable";
- set $@3rdgc_room01, 0;
+ $@3rdgc_room01 = 0;
next;
mes "Complete a reset.";
close;
@@ -3876,7 +3894,7 @@ job3_guil03,1,8,0 script #GMhelper02_gc CLEAR_NPC,{
mes "What can I do for you?";
next;
if (callfunc("F_GM_NPC",1854,0) == 1) {
- set .@room02, $@3rdgc_room02;
+ .@room02 = $@3rdgc_room02;
mes "Check the recent situation.";
mes "The battle situation of the mansion is: "+.@room02+"";
mes "1 : In progress. 0 : Standby status.";
@@ -3927,7 +3945,7 @@ job3_guil03,1,8,0 script #GMhelper02_gc CLEAR_NPC,{
mes "We start to expel by force.";
mes "Just put the enter button now.";
donpcevent "#3rdgc_event01::OnEnable";
- set $@3rdgc_room02, 0;
+ $@3rdgc_room02 = 0;
close2;
mapwarp "job3_guil03","ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
end;
diff --git a/npc/re/jobs/3-1/mechanic.txt b/npc/re/jobs/3-1/mechanic.txt
index e34fccc72..227d59d00 100644
--- a/npc/re/jobs/3-1/mechanic.txt
+++ b/npc/re/jobs/3-1/mechanic.txt
@@ -30,7 +30,7 @@ yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
close;
} else if (job__mechanic == 11) {
if (BaseJob == Job_Blacksmith && BaseLevel > 98 && JobLevel > 49 && SkillPoint == 0) {
- if (ismounting()) {
+ if (hascashmount()) {
mes "You are on a riding pet,";
mes "so you cannot change your job.";
mes "Please unequip your riding pet and try again!";
@@ -71,7 +71,7 @@ yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "As I said before if the passion and the talent are real there would be no problem!";
mes "Congratulations for walking through a new path as a Mechanic!";
next;
- set job__mechanic,12;
+ job__mechanic = 12;
completequest 10101;
if (Sex)
getitem 5749,1; //Driver_Band
@@ -154,7 +154,7 @@ yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "for yourself like we did.";
mes "Don't just wait around for someone to teach it to you. Show the passion that you claim to have.";
next;
- set job__mechanic,3;
+ job__mechanic = 3;
changequest 10091,10092;
mes "[Chainheart]";
mes "Anyway, whatever your choice might be I expect you to do your best.";
@@ -207,7 +207,7 @@ yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "I want to explain more but it's too technical.";
mes "I don't want to bore you more.";
next;
- set job__mechanic,2;
+ job__mechanic = 2;
changequest 10090,10091;
mes "[Chainheart]";
mes "Anyway if you become one of us you can form your own definition and explanation of Mechanics yourself.";
@@ -241,7 +241,7 @@ yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "That isn't as simple to explain but I'll give it a try.";
next;
setquest 10090;
- set job__mechanic,1;
+ job__mechanic = 1;
mes "[Chainheart]";
mes "Sorry, I'm starting";
mes "to talk too much.";
@@ -375,7 +375,7 @@ jupe_cave,37,55,5 script Scholar#Mechanic 4_M_ALCHE_D,{
mes "has told me how to warp to";
mes "the midway point to Juperos.";
next;
- set job__mechanic,4;
+ job__mechanic = 4;
mes "[Scholar]";
mes "It is true that it becomes easy";
mes "but you can't help the fear";
@@ -417,7 +417,7 @@ jupe_core2,149,273,3 script Ghostfire#1 4_NFWISP,{
mes "[?]";
mes "My name... name is... Fr...";
close2;
- set job__mechanic,11;
+ job__mechanic = 11;
changequest 10100,10101;
warp "yuno",157,83;
end;
@@ -461,7 +461,7 @@ jupe_core2,149,273,3 script Ghostfire#1 4_NFWISP,{
next;
if (job__mechanic == 3 || job__mechanic == 4)
changequest 10092,10094;
- set job__mechanic,5;
+ job__mechanic = 5;
mes "[?]";
mes "Knowledge isn't obtained from others. It is found through one's own efforts.";
mes "Find your own knowledge path.";
@@ -523,7 +523,7 @@ jupe_core2,53,75,3 script Ghostfire#2 4_NFWISP,{
mes "[?]";
mes "The recent events of the world have created a confusion so my research hasn't been shared with the rest of the world.";
next;
- set job__mechanic,6;
+ job__mechanic = 6;
changequest 10094,10095;
mes "[?]";
mes "So... I came back to Juperos to continue my investigation of science and magic.";
@@ -564,7 +564,7 @@ jupe_core2,242,62,3 script Ghostfire#3 4_NFWISP,{
mes "[?]";
mes "I don't regret gaining the knowledge. All I wish is that I could have my body back.";
next;
- set job__mechanic,7;
+ job__mechanic = 7;
changequest 10095,10096;
mes "[?]";
mes "After I had poured my energy into the statue, I figured that I could move my energy to different statues.";
@@ -596,7 +596,7 @@ OnTouch:
mes "-a sacrificial offering-";
mes "-the statue of a human.-";
next;
- set job__mechanic,8;
+ job__mechanic = 8;
changequest 10096,10097;
mes "-Most certain of all is that-";
mes "-I started to feel the urge-";
@@ -695,7 +695,7 @@ OnTouch:
mes "-head instructed, let's go to-";
mes "-the southern foothold.-";
close2;
- set job__mechanic,9;
+ job__mechanic = 9;
changequest 10098,10099;
donpcevent "#Door::OnDisable";
end;
@@ -716,7 +716,7 @@ OnTouch:
mes "-to know about mechanics-";
mes "-and magic machinery.-";
next;
- set job__mechanic,10;
+ job__mechanic = 10;
changequest 10099,10100;
specialeffect EF_POTION_CON;
mes "-This amount of knowledge-";
diff --git a/npc/re/jobs/3-1/ranger.txt b/npc/re/jobs/3-1/ranger.txt
index 0b52df91f..9ed4152b3 100644
--- a/npc/re/jobs/3-1/ranger.txt
+++ b/npc/re/jobs/3-1/ranger.txt
@@ -110,7 +110,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 1_M_ORIENT01,{
mes "[Survival Instructor, Rescue]";
mes "To do this you need to be cleansed of body and soul.";
mes "Make sure that your weight equals '0' to continue.";
- set job_ranger01,1;
+ job_ranger01 = 1;
setquest 8254;
close2;
warp "alberta",117,57;
@@ -144,7 +144,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 1_M_ORIENT01,{
mes "[Survival Instructor, Rescue]";
mes "Well, let's talk about the details when you get the qualification for taking the test.";
mes "When you want to take the survival power test, please talk to me again.";
- set job_ranger01,2;
+ job_ranger01 = 2;
changequest 8254,8255;
close;
}
@@ -193,7 +193,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 1_M_ORIENT01,{
mes "Well, then let's start.";
mes "There's no time to hesitate.";
mes "Do your best.";
- set job_ranger01,3;
+ job_ranger01 = 3;
changequest 8255,8256;
getitem 1703,1; //Bow__
getitem 12323,10; //N_Fly_Wing
@@ -380,11 +380,11 @@ tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{
mes "[Test Instructor, Teardrop]";
mes "If you run out of the provided items, we cannot support you more so take care.";
mes "Consider this as an extension of the survival power test.";
- set job_ranger01,4;
+ job_ranger01 = 4;
changequest 8256,8257;
close;
} else if (job_ranger01 == 4) {
- if (checkquest(8257,HUNTING) == 2) {
+ if (questprogress(8257,HUNTING) == 2) {
if (countitem(7064) > 0) {
mes "Oh! Oh! Woooooow!";
mes "You've brought it! Let me see...";
@@ -400,7 +400,7 @@ tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{
mes "Well, before I explain, could you please give me that Dragonfly wing?";
mes "You've heard the saying, 'in any situation, eating comes first'?";
delitem 7064,1; //Dragon_Fly_Wing
- set job_ranger01,5;
+ job_ranger01 = 5;
changequest 8257,8258;
close;
}
@@ -549,9 +549,10 @@ tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{
mes "Okay. I'll respect your opinion.";
mes "I'll cancel the job change request from "+strcharinfo(0)+".";
delitem 1703,1; //Bow__
- set job_ranger01,0;
- for(set .@i,8254; .@i<=8262; set .@i,.@i+1)
- if (checkquest(.@i) > -1) erasequest .@i;
+ job_ranger01 = 0;
+ for(.@i = 8254; .@i <= 8262; ++.@i)
+ if (questprogress(.@i))
+ erasequest .@i;
close;
}
mes "[Test Instructor, Teardrop]";
@@ -653,13 +654,13 @@ L_Start:
if (countitem(1750) < 100) {
mes "[Test Instructor, Teardrop]";
mes "Okay, once again I'll provide you with arrows, then I'll let you in.";
- set .@arrow,1;
+ .@arrow = 1;
next;
}
mes "[Test Instructor, Teardrop]";
mes "Good luck.";
mes "Become a Ranger and we shall meet again.";
- set job_ranger01,6;
+ job_ranger01 = 6;
if (getarg(0) == 0)
changequest 8258,8259;
else {
@@ -710,9 +711,10 @@ job3_rang01,30,44,3 script Test Waiting Room#jr_03 4_M_ORIENT01,{
mes "Okay. I'll respect your opinion.";
mes "I'll cancel the job change request from "+strcharinfo(0)+".";
delitem 1703,1; //Bow__
- set job_ranger01,0;
- for(set .@i,8254; .@i<=8262; set .@i,.@i+1)
- if (checkquest(.@i) > -1) erasequest .@i;
+ job_ranger01 = 0;
+ for(.@i = 8254; .@i <= 8262; ++.@i)
+ if (questprogress(.@i))
+ erasequest .@i;
close;
close2;
warp "alberta",117,57;
@@ -800,12 +802,12 @@ OnDisable:
job3_rang02,100,95,0 script Test Supervisor#jr_04 HIDDEN_WARP_NPC,{
OnInit:
- set $@job_rang_point01,0;
+ $@job_rang_point01 = 0;
disablenpc "Test Supervisor#jr_04";
end;
OnEnable:
enablenpc "Test Supervisor#jr_04";
- set $@job_rang_point01,0;
+ $@job_rang_point01 = 0;
initnpctimer;
end;
OnDisable:
@@ -847,8 +849,8 @@ OnInit:
end;
OnEnable:
enablenpc "First Test Timer#jr_05";
- set $@job_rang_point01,0;
- set $@job_rang_text01,0;
+ $@job_rang_point01 = 0;
+ $@job_rang_text01 = 0;
setarray .text$[1],
"First","Second","Third","Fourth","Fifth","Sixth","Seventh","Eighth","Ninth","Tenth","Eleventh",
"Twelfth","Thirteenth","Fourteenth","Fifteenth","Sixteenth","Seventeenth","Eighteenth","Nineteenth","Last";
@@ -901,7 +903,7 @@ OnTimer115000:
OnTimer122000:
OnTimer129000:
OnTimer136000:
- set $@job_rang_text01,$@job_rang_text01+1;
+ ++$@job_rang_text01;
mapannounce "job3_rang02","Test Supervisor, Notice : "+.text$[$@job_rang_text01]+" Wave! Kill the Poring!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
donpcevent "CallCorrectAnswer#jr::OnStart";
end;
@@ -910,7 +912,7 @@ OnTimer143000:
end;
OnTimer146000:
if ($@job_rang_point01 < 1)
- set $@job_rang_point01,0;
+ $@job_rang_point01 = 0;
mapannounce "job3_rang02","Test Supervisor, Notice : I'll announce the test result. The number of Porings you killed out of 20 is ..." + $@job_rang_point01 + "!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
end;
OnTimer149000:
@@ -934,8 +936,8 @@ OnTimer154000:
OnTimer157000:
stopnpctimer;
mapwarp "job3_rang02","tur_dun01",93,165;
- set $@job_rang_point01,0;
- set $@job_rang_text01,0;
+ $@job_rang_point01 = 0;
+ $@job_rang_text01 = 0;
donpcevent "Test Supervisor#jr_04::OnDisable";
donpcevent "Test Waiting Room#jr_03::OnEnable";
donpcevent "First Test Timer#jr_05::OnDisable";
@@ -955,7 +957,7 @@ OnStart:
setarray .@x[0],35,44,54,35,54,35,44,54;
setarray .@y[0],58,58,58,49,49,39,39,39;
setarray .@id[0],1002,1031,1242,1113;
- set .@i, rand(8);
+ .@i = rand(8);
donpcevent "CallWrongAnswer#jr::"+.@label$[.@i];
monster "job3_rang02",.@x[.@i],.@y[.@i],"Poring",.@id[rand(4)],1,"CallCorrectAnswer#jr::OnMyMobDead";
end;
@@ -964,7 +966,7 @@ OnReset:
end;
OnMyMobDead:
specialeffect2 EF_POTION_CON;
- set $@job_rang_point01, $@job_rang_point01+1;
+ ++$@job_rang_point01;
mapannounce "job3_rang02","Test Supervisor, Notice : Correct Target! You have very good eyesight!",bc_map,"0xffb6c1"; //FW_NORMAL 12 0 0
end;
}
@@ -1054,7 +1056,7 @@ OnReset:
end;
OnMyMobDead:
specialeffect2 EF_DEVIL;
- set $@job_rang_point01, $@job_rang_point01-1;
+ --$@job_rang_point01;
mapannounce "job3_rang02","Test Supervisor, Notice : Wrong Target! Pull yourself together!",bc_map,"0xffb6c1"; //FW_NORMAL 12 0 0
end;
}
@@ -1370,7 +1372,7 @@ OnEnable:
end;
OnDisable:
stopnpctimer;
- set $@job_rang_point03,0;
+ $@job_rang_point03 = 0;
disablenpc "Third Test Timer#jr_12";
end;
OnTimer3000:
@@ -1384,7 +1386,7 @@ OnTimer9000:
end;
OnTimer12000:
mapannounce "job3_rang02","Test Supervisor, Freeze : The 'Egg Bombs' will spawn 20 times! Each time you successfully dismantle one, you get 1 point! If you get 10 or more points, you pass the practical test, so go for it! Then I'll start!!!!!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
- set .n,14;
+ .n = 14;
end;
OnTimer15000:
OnTimer20000:
@@ -1407,14 +1409,14 @@ OnTimer100000:
OnTimer105000:
OnTimer110000:
donpcevent "Egg Bomb#"+(.n+rand(3))+"::OnEnable";
- if (.n == 26) set .n,14;
- else set .n,.n+3;
+ if (.n == 26) .n = 14;
+ else .n += 3;
end;
OnTimer113000:
mapannounce "job3_rang02","Test Supervisor, Freeze : The test is ooooooooooooooveeeeerrr!!!!!!!!!!!!!!!!!!!!!!!!!!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
- for(set .@i,14; .@i<=28; set .@i,.@i+1)
+ for(.@i = 14; .@i<=28; ++.@i)
donpcevent "Egg Bomb#"+.@i+"::OnDisable";
- set .n,0;
+ .n = 0;
end;
OnTimer116000:
mapannounce "job3_rang02","Test Supervisor, Freeze : Well let's see the result?!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
@@ -1435,13 +1437,13 @@ OnTimer124000:
end;
OnTimer127000:
mapannounce "job3_rang02","Test Supervisor, Freeze : It's too bad, but you'll need to retake the test from the beginning! Please go back!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
- set $@job_rang_point03,0;
+ $@job_rang_point03 = 0;
mapwarp "job3_rang02","tur_dun01",93,165;
donpcevent "Test Supervisor#jr_13::OnDisable";
end;
OnTimer130000:
stopnpctimer;
- set $@job_rang_point03,0;
+ $@job_rang_point03 = 0;
donpcevent "Test Waiting Room#jr_03::OnEnable";
donpcevent "Third Test Timer#jr_12::OnDisable";
end;
@@ -1450,7 +1452,7 @@ OnTimer130000:
job3_rang02,251,49,3 script Test Supervisor#jr_13 4_M_JOB_HUNTER,{
mes "[Test Supervisor, Freeze]";
if (job_ranger01 == 6) {
- if (checkquest(8261) == -1) {
+ if (!questprogress(8261)) {
mes "Congrats for passing the 2nd practical test! I am the 3rd practical test supervisor Freeze!";
next;
mes "[Test Supervisor, Freeze]";
@@ -1550,7 +1552,7 @@ OnTimer123000:
mapannounce "job3_rang02","Test Supervisor, Freeze : You weren't on time for the test, so I am ending the 3rd practical test!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
end;
OnTimer127000:
- set $@job_rang_point03,0;
+ $@job_rang_point03 = 0;
mapannounce "job3_rang02","Test Supervisor, Freeze : It's too bad, but try again!",bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
mapwarp "job3_rang02","tur_dun01",93,165;
end;
@@ -1576,9 +1578,9 @@ OnEnable:
getmapxy(.@map$,.@x,.@y,1);
monster "job3_rang02",.@x,.@y,"Egg Bomb",1047,1,strnpcinfo(0)+"::OnMyMobDead";
switch(atoi(strnpcinfo(2))%3) {
- case 0: set .@str$,"Hey, I am going to explode. What are you going to do?"; break;
- case 1: set .@str$,"I... no, I can't stand anymore!!"; break;
- case 2: set .@str$,"I am almost done now... Don't stop me."; break;
+ case 0: .@str$ = "Hey, I am going to explode. What are you going to do?"; break;
+ case 1: .@str$ = "I... no, I can't stand anymore!!"; break;
+ case 2: .@str$ = "I am almost done now... Don't stop me."; break;
}
mapannounce "job3_rang02","Egg Bomb : "+.@str$,bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
end;
@@ -1588,11 +1590,11 @@ OnDisable:
disablenpc strnpcinfo(0);
end;
OnMyMobDead:
- set $@job_rang_point03, $@job_rang_point03+1;
+ ++$@job_rang_point03;
switch(atoi(strnpcinfo(2))%3) {
- case 0: set .@str$,"The world is meaningless and my dream is so far away..."; break;
- case 1: set .@str$,"Don't be relieved. Misery always comes from carelessness."; break;
- case 2: set .@str$,"Alas, it was only a dream for a short time..."; break;
+ case 0: .@str$ = "The world is meaningless and my dream is so far away..."; break;
+ case 1: .@str$ = "Don't be relieved. Misery always comes from carelessness."; break;
+ case 2: .@str$ = "Alas, it was only a dream for a short time..."; break;
}
mapannounce "job3_rang02","Egg Bomb : "+.@str$,bc_map,"0x87ceeb"; //FW_NORMAL 12 0 0
donpcevent strnpcinfo(0)+"::OnDisable";
@@ -1647,7 +1649,7 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
mes "Congratulations!";
mes "You've completed all the rough practical tests!";
if (job_ranger01 == 6) {
- set job_ranger01,7;
+ job_ranger01 = 7;
changequest 8259,8262;
}
next;
@@ -1692,7 +1694,7 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
close;
}
mes "[Ranger Master, Neveragain]";
- if (ismounting()) {
+ if (hascashmount()) {
mes "You are on a riding pet,";
mes "so you cannot change your job.";
mes "Please unequip your riding pet and try again!";
@@ -1705,9 +1707,10 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
mes "[Ranger Master, Neveragain]";
mes "What are you doing here?";
mes "You are not supposed to be here. Get out!";
- set job_ranger01,0;
- for(set .@i,8254; .@i<=8262; set .@i,.@i+1)
- if (checkquest(.@i) > -1) erasequest .@i;
+ job_ranger01 = 0;
+ for(.@i = 8254; .@i <= 8262; ++.@i)
+ if (questprogress(.@i))
+ erasequest .@i;
close2;
warp "alberta",117,57;
end;
@@ -1726,7 +1729,7 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
mes "From now on be active as a splendid Ranger!";
mes "I wish you luck in your future!";
delitem 1703,1; //Bow__
- set job_ranger01,8;
+ job_ranger01 = 8;
completequest 8262;
jobchange roclass(eaclass()|EAJL_THIRD);
getitem 5748,1; //Sniper_Goggle
@@ -1795,7 +1798,7 @@ job3_rang01,58,1,0 script Worker#job_ranger 4_M_ORIENT01,{
case 8:
mes "3rd Test has been Disabled";
donpcevent "Third Test Timer#jr_12::OnDisable";
- for(set .@i,14; .@i<=28; set .@i,.@i+1)
+ for(.@i = 14; .@i<=28; ++.@i)
donpcevent "Egg Bomb#"+.@i+"::OnDisable";
close;
case 9:
diff --git a/npc/re/jobs/3-1/rune_knight.txt b/npc/re/jobs/3-1/rune_knight.txt
index ffb395e07..200d6c965 100644
--- a/npc/re/jobs/3-1/rune_knight.txt
+++ b/npc/re/jobs/3-1/rune_knight.txt
@@ -80,7 +80,7 @@ prt_in,162,24,3 script Splendid-Looking Knight 4_M_KNIGHT_SILVER,2,2,{
mes "You're sure now?";
mes "Let me send a dispatch to my comrades that you are willing to join our ranks.";
next;
- set job_rune_edq,1;
+ job_rune_edq = 1;
setquest 3200;
mes "[Rune Knight Manuel]";
mes "You know the place called Glast Heim? There's a Rune Knight waiting for you there, he will guide you to the entrance of Glast Heim Tower.";
@@ -215,7 +215,7 @@ glast_01,44,363,3 script Guide, Jungberg 4_M_KNIGHT_BLACK,2,2,{
next;
mes "[Guide, Jungberg]";
mes "Of course your life might be at risk by the ghosts of Glast Heim... but overcoming the risk shouldn't be hard for a Rune Knight candidate.";
- set job_rune_edq,2;
+ job_rune_edq = 2;
changequest 3200,3201;
close;
case 2:
@@ -315,19 +315,19 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
mes "[Captain Tigris]";
if (job_rune_edq3 == 0) {
mes "Hm... This is perfect. You've come here with very rare good records.";
- set .@item,2140; //Energy_Rune_Guard
+ .@item = 2140; //Energy_Rune_Guard
} else if (job_rune_edq3 > 2 && job_rune_edq3 < 6) {
mes "Hmm... This is great. You've come here with decent records.";
- set .@item,2794; //Magic_Stone_Ring
+ .@item = 2794; //Magic_Stone_Ring
} else {
mes "Hmm, not bad. It's not a great record but you tried your best.";
- set .@item,15002; //Rune_Plate
+ .@item = 15002; //Rune_Plate
}
next;
mes "[Captain Tigris]";
mes "Here, take this. It's a gift that I like to give to the younger generation like yourself.";
getitem .@item,1; //Energy_Rune_Guard
- set job_rune_edq,24;
+ job_rune_edq = 24;
close;
}
mes "Hey, long time no see, "+strcharinfo(0)+". I don't think you've got any important matters to discuss but make yourself comfortable.";
@@ -371,7 +371,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
mes "[Captain Tigris]";
mes "When the test is done, talk to me. Anyway you'll need to care about the tests progressing with other people.";
next;
- set job_rune_edq,3;
+ job_rune_edq = 3;
changequest 3201,3202;
mes "[Captain Tigris]";
mes "Well then, I'll be waiting here so take the test.";
@@ -428,7 +428,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
next;
mes "[Captain Tigris]";
mes "Go to that fiery lady in the library room to get the next test done and come back.";
- set job_rune_edq,7;
+ job_rune_edq = 7;
changequest 3204,3205;
close;
} else if (job_rune_edq > 6 && job_rune_edq < 16) {
@@ -466,7 +466,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
mes "[Captain Tigris]";
mes "I'm not kidding, I am really looking forward to your new start as a Rune Knight.";
mes "So please do your best.";
- set job_rune_edq,17;
+ job_rune_edq = 17;
changequest 3215,3216;
close;
} else if (job_rune_edq > 16 && job_rune_edq < 22) {
@@ -504,7 +504,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
next;
switch(select("Every preparation is done.:I need more time to think.")) {
case 1:
- if (SkillPoint != 0 || checkriding()) {
+ if (SkillPoint != 0 || checkmount() == MOUNT_PECO) {
mes "[Captain Tigris]";
mes "Weren't you listening?";
next;
@@ -518,7 +518,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
mes "It seems not enough?";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "[Captain Tigris]";
mes "Please unequip your mount and come back again.";
close;
@@ -531,7 +531,7 @@ job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
next;
getitem 5746,1; //Rune_Circlet
getitem 2795,1; //Green_Apple_Ring
- set job_rune_edq,23;
+ job_rune_edq = 23;
completequest 3219;
jobchange roclass(eaclass()|EAJL_THIRD);
mes "[Captain Tigris]";
@@ -622,7 +622,7 @@ job3_rune01,90,50,3 script Rune Knight Lunarea 4_M_KNIGHT_GOLD,2,2,{
next;
switch(select("Move to the test field now.:Please give me time to prepare.")) {
case 1:
- if (checkquest(3220,PLAYTIME) == 1) {
+ if (questprogress(3220,PLAYTIME) == 1) {
mes "[Rune Knight, Lunarea]";
mes "Once someone enters into the test field you cannot enter directly. The test is taken one by one.";
next;
@@ -643,7 +643,7 @@ job3_rune01,90,50,3 script Rune Knight Lunarea 4_M_KNIGHT_GOLD,2,2,{
next;
mes "[Rune Knight, Lunarea]";
mes "This portion of the test is over. Go talk to Captain Tigris.";
- set job_rune_edq,6;
+ job_rune_edq = 6;
changequest 3203,3204;
close;
} else if (job_rune_edq > 5) {
@@ -661,14 +661,14 @@ L_Test:
mes "She nods her head and reaches out her hand lightly. Then she draws her sword and makes a signal.";
if ($@job_rune_test1 == 0) {
if (getarg(0) == 0) {
- set job_rune_edq,4;
+ job_rune_edq = 4;
changequest 3202,3203;
setquest 3220; // ?
- } else if (checkquest(3220) > -1) {
+ } else if (questprogress(3220)) {
erasequest 3220;
setquest 3220;
}
- set $@job_rune_test1,1;
+ $@job_rune_test1 = 1;
close2;
warp "job3_rune02",38,40;
end;
@@ -733,7 +733,7 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
next;
mes "[Rune Knight, Renoa]";
mes "Don't worry, you won't be required to have the same knowledge as the magicians of Geffen or Juno. But you can't be an idiot either.";
- set job_rune_edq,8;
+ job_rune_edq = 8;
changequest 3205,3206;
close;
} else if (job_rune_edq > 7 && job_rune_edq < 11) {
@@ -780,8 +780,8 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
next;
mes "[Rune Knight, Renoa]";
mes "If you are ready I'll guide you to the warp that moves you directly to Serpeone. Meet her and get instructions from her.";
- set job_rune_edq_book,0;
- set job_rune_edq,12;
+ job_rune_edq_book = 0;
+ job_rune_edq = 12;
changequest 3206,3207;
close;
} else if (job_rune_edq > 11 && job_rune_edq < 14) {
@@ -838,7 +838,7 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
mes "[Rune Knight, Renoa]";
mes "The total number of rune stones you need to make is 20.";
mes "Remember that well.";
- set job_rune_edq,15;
+ job_rune_edq = 15;
changequest 3213,3214;
close;
} else if (job_rune_edq == 15) {
@@ -882,7 +882,7 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
next;
mes "[Rune Knight, Renoa]";
mes "Ha! You did a good job considering how difficult my test is. If you were nervous, you can relax now.";
- set job_rune_edq,16;
+ job_rune_edq = 16;
if (job_rune_edq2 == 20)
changequest 3214,3215;
close;
@@ -951,7 +951,7 @@ job3_rune01,58,51,1 script Rune Furnace CLEAR_NPC,{
next;
mes "[Rune Knight Renoa]";
mes "1 "+.@str$[0]+" rune was created normally.";
- set job_rune_edq2, job_rune_edq2+1;
+ ++job_rune_edq2;
close;
}
if (rand(1,(6 + job_rune_edq3)) == 3) {
@@ -960,7 +960,7 @@ job3_rune01,58,51,1 script Rune Furnace CLEAR_NPC,{
next;
mes "[Rune Knight Renoa]";
mes "1 "+.@str$[0]+" rune was created normally.";
- set job_rune_edq2, job_rune_edq2+1;
+ ++job_rune_edq2;
close;
}
mes "[Rune Knight Renoa]";
@@ -968,7 +968,7 @@ job3_rune01,58,51,1 script Rune Furnace CLEAR_NPC,{
next;
mes "[Rune Knight Renoa]";
mes "Refining the rune stone has failed... Please try again.";
- set job_rune_edq3, job_rune_edq3+1;
+ ++job_rune_edq3;
close;
}
mes "[Rune Knight Renoa]";
@@ -988,7 +988,7 @@ job3_rune01,40,54,1 script Runes and Rune Knights CLEAR_NPC,{
while(1) {
switch(select("The birth of Rune Knights:Runes and Magic Energy:Stop Reading")) {
case 1:
- set .@book1,1;
+ .@book1 = 1;
mes "Rune Knights are the gathering of evolved swordmen who have achieved the harmony of sword and magic.";
next;
mes "It had been achieved by the legendary swordsman Beljeve who's been known as a Sword Master and a founder of dispensable expenditure.";
@@ -1013,7 +1013,7 @@ job3_rune01,40,54,1 script Runes and Rune Knights CLEAR_NPC,{
next;
break;
case 2:
- set .@book2,1;
+ .@book2 = 1;
mes "A jewel called as a Rune is a medium that contains the formless existence, the magical power and the essence of it can be used directly.";
next;
mes "The Laphine Sage, Serpeone and the founder of Rune Knights Beljeve co-researched runes and the result of their research has only recently become to be known to the world.";
@@ -1027,8 +1027,8 @@ job3_rune01,40,54,1 script Runes and Rune Knights CLEAR_NPC,{
break;
case 3:
if (.@book1 && .@book2 && job_rune_edq < 11 && (job_rune_edq_book & 1) == 0) {
- set job_rune_edq_book, job_rune_edq_book | 1;
- set job_rune_edq, job_rune_edq+1;
+ job_rune_edq_book |= 1;
+ ++job_rune_edq;
}
close;
}
@@ -1047,7 +1047,7 @@ job3_rune01,43,44,1 script The Principles of Runes CLEAR_NPC,{
while(1) {
switch(select("The principle use of Runes:The types of Runes:Stop Reading")) {
case 1:
- set .@book1,1;
+ .@book1 = 1;
mes "A rune is a kind of symbol that's been used on the Rune-Midgard continent since ancient times. Up until now it has only been used by occult circles.";
next;
mes "Runes are used as a symbol system, however, by the story handed down orally, it's known to be used for fortune-telling or used to draw out the human sub consciousness.";
@@ -1058,7 +1058,7 @@ job3_rune01,43,44,1 script The Principles of Runes CLEAR_NPC,{
next;
break;
case 2:
- set .@book2,1;
+ .@book2 = 1;
mes "The runes are created from a a total of 25 small stones and they are very fragile to physical shock. So they require special care when being handled.";
next;
mes "The 25 stones have different meanings and among these, 14 when counter-positioned can have entirely different power and meaning from the original so it's essential to study the exceptional aspects.";
@@ -1074,8 +1074,8 @@ job3_rune01,43,44,1 script The Principles of Runes CLEAR_NPC,{
break;
case 3:
if (.@book1 && .@book2 && job_rune_edq < 11 && (job_rune_edq_book & 2) == 0) {
- set job_rune_edq_book, job_rune_edq_book | 2;
- set job_rune_edq, job_rune_edq+1;
+ job_rune_edq_book |= 2;
+ ++job_rune_edq;
}
close;
}
@@ -1094,7 +1094,7 @@ job3_rune01,50,36,1 script Runes, Make & Use CLEAR_NPC,{
while(1) {
switch(select("The Making of Rune Stones:Rune Stone Ability Details:Stop Reading")) {
case 1:
- set .@book1,1;
+ .@book1 = 1;
mes "The making of Rune stones is achieved through a skill called rune mastery which is learned when one becomes a Rune Knight.";
next;
mes "Rune Mastery is like a code that's been put into the body as a mark of a Rune Knight.";
@@ -1109,7 +1109,7 @@ job3_rune01,50,36,1 script Runes, Make & Use CLEAR_NPC,{
next;
break;
case 2:
- set .@book2,1;
+ .@book2 = 1;
switch(select("Chapter One:Chapter Two:Chapter Three:Chapter Four:Stop Reading")) {
case 1:
mes "Ehwaz - This rune means the enhancement of luck and positive power. It shapes the source in the form of a red spiral in a Rune Furnace.";
@@ -1173,8 +1173,8 @@ job3_rune01,50,36,1 script Runes, Make & Use CLEAR_NPC,{
break;
case 3:
if (.@book1 && .@book2 && job_rune_edq < 11 && (job_rune_edq_book & 4) == 0) {
- set job_rune_edq_book, job_rune_edq_book | 4;
- set job_rune_edq, job_rune_edq+1;
+ job_rune_edq_book |= 4;
+ ++job_rune_edq;
}
close;
}
@@ -1331,7 +1331,7 @@ mid_camp,235,250,3 script Sage Serpeone 4_F_FAIRY,2,2,{
next;
mes "[Sage Serpeone]";
mes "If you have any problems or any questions, please talk to me.";
- set job_rune_edq,13;
+ job_rune_edq = 13;
changequest 3207,3208;
setquest 3209;
setquest 3210;
@@ -1346,7 +1346,7 @@ mid_camp,235,250,3 script Sage Serpeone 4_F_FAIRY,2,2,{
mes "[Sage Serpeone]";
mes "Is it so? Then let's check this out.";
next;
- if (checkquest(3209,HUNTING) == 2 && checkquest(3210,HUNTING) == 2 && checkquest(3211,HUNTING) == 2 && checkquest(3212,HUNTING) == 2) {
+ if (questprogress(3209,HUNTING) == 2 && questprogress(3210,HUNTING) == 2 && questprogress(3211,HUNTING) == 2 && questprogress(3212,HUNTING) == 2) {
mes "[Sage Serpeone]";
mes "Umm, this is great. Enough amount of living body magical energy has accumulated in your body.";
next;
@@ -1358,7 +1358,7 @@ mid_camp,235,250,3 script Sage Serpeone 4_F_FAIRY,2,2,{
next;
mes "[Sage Serpeone]";
mes "If you have any business here, I'll send you to the Rune Knight gathering place. If you are ready, please tell me.";
- set job_rune_edq,14;
+ job_rune_edq = 14;
changequest 3208,3213;
completequest 3209;
completequest 3210;
@@ -1465,14 +1465,14 @@ job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
next;
mes "[Rune Knight Velpino]";
mes "If you are ready just talk to me again.";
- set job_rune_edq,18;
+ job_rune_edq = 18;
changequest 3216,3217;
close;
} else if (job_rune_edq > 17 && job_rune_edq < 21) {
if (countitem(12388)+countitem(12389)+countitem(12390) == 0) {
mes "[Rune Knight Velpino]";
mes "If all of your preparations are done, I'll send you to the final test field.";
- set job_rune_edq,18;
+ job_rune_edq = 18;
next;
if(select("Enter the final test field.:I'm not ready yet.") == 2) close;
if (getequipisequiped(EQI_HEAD_TOP) || getequipisequiped(EQI_ARMOR) || getequipisequiped(EQI_GARMENT) || getequipisequiped(EQI_SHOES) ||
@@ -1481,7 +1481,7 @@ job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
mes "For this test, only a one-hand weapon, a shield or a two-handed weapon can be equipped. Keep your other equipments with the Kafra Employee in the center.";
close;
}
- if (checkquest(3220,PLAYTIME) == 1) {
+ if (questprogress(3220,PLAYTIME) == 1) {
mes "[Rune Knight Velpino]";
mes "Haven't you failed at the test... If you fail once, you cannot enter again for 10 minutes.";
next;
@@ -1491,11 +1491,11 @@ job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
}
if ($@job_rune_test1 == 0) {
if (Weight < 4001) {
- set $@job_rune_test1,1;
+ $@job_rune_test1 = 1;
sc_start SC_INCINT,300000,40;
getitem 12389,30; //Runstone_Storm
getitem 12390,30; //Runstone_Millennium
- if (checkquest(3220) > -1) erasequest 3220;
+ if (questprogress(3220)) erasequest 3220;
setquest 3220;
warp "job3_rune02",38,40;
end;
@@ -1535,7 +1535,7 @@ job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
mes "[Rune Knight Velpino]";
mes "Congratulations!";
mes "Well I'd better go now for the remaining candidates.";
- set job_rune_edq,22;
+ job_rune_edq = 22;
changequest 3218,3219;
close;
}
@@ -1580,8 +1580,8 @@ OnTouch:
donpcevent "job_rune_edq#1st_tcnc::OnDisable";
donpcevent "job_rune_edq#3rd_tb::OnDisable";
donpcevent "job_rune_edq#3rd_tc::OnDisable";
- set $@job_rune_test1,0;
- set $@job_rune_test2,0;
+ $@job_rune_test1 = 0;
+ $@job_rune_test2 = 0;
donpcevent "#RK Test Hidden Portal 1::OnEnable";
mapwarp "job3_rune02","job3_rune01",80,65;
end;
@@ -1647,8 +1647,8 @@ OnTimer305000:
donpcevent "job_rune_edq#3rd_tc::OnDisable";
donpcevent "#RK Test Hidden Portal 1::OnEnable";
mapwarp "job3_rune02","job3_rune01",80,65;
- set $@job_rune_test1,0;
- set $@job_rune_test2,0;
+ $@job_rune_test1 = 0;
+ $@job_rune_test2 = 0;
stopnpctimer;
end;
}
@@ -1738,7 +1738,7 @@ OnDisable:
end;
OnMyMobDead:
if (mobcount("job3_rune02","job_rune_edq#1st_tcmc2::OnMyMobDead") < 1) {
- set job_rune_edq,5;
+ job_rune_edq = 5;
erasequest 3220;
killmonster "job3_rune02","job_rune_edq#1st_tcmc2::OnMyMobDead";
mapannounce "job3_rune02","Congratulations. You've passed the first test.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
@@ -1749,8 +1749,8 @@ OnMyMobDead:
donpcevent "job_rune_edq#1st_tcmc::OnDisable";
donpcevent "job_rune_edq#1st_tcmc2::OnDisable";
donpcevent "#RK Test Hidden Portal 1::OnEnable";
- set $@job_rune_test1,0;
- set $@job_rune_test2,0;
+ $@job_rune_test1 = 0;
+ $@job_rune_test2 = 0;
end;
}
end;
@@ -1767,7 +1767,7 @@ OnEnable:
end;
OnDisable:
stopnpctimer;
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
donpcevent "Captain Tigris#jrt1::OnDisable";
donpcevent "Rune Knight Lunarea#jrt1::OnDisable";
donpcevent "Rune Knight Renoa#jrt1::OnDisable";
@@ -1777,7 +1777,7 @@ OnDisable:
OnUse:
mapannounce "job3_rune02","Captain Tigris : Gentlemen, let's watch the test for a while.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
stopnpctimer;
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
donpcevent "Captain Tigris#jrt1::OnDisable";
donpcevent "Rune Knight Lunarea#jrt1::OnDisable";
donpcevent "Rune Knight Renoa#jrt1::OnDisable";
@@ -1831,7 +1831,7 @@ job3_rune02,34,46,5 script Captain Tigris#jrt1 4_M_KNIGHT_SILVER,2,2,{
sc_start SC_BLOODING,10000,0;
break;
}
- set $@job_rune_test2,1;
+ $@job_rune_test2 = 1;
initnpctimer;
end;
OnInit:
@@ -1843,7 +1843,7 @@ OnEnable:
end;
OnTimer5000:
donpcevent "job_rune_edq#1st_tcnc::OnUse";
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
stopnpctimer;
end;
}
@@ -1876,7 +1876,7 @@ job3_rune02,43,46,3 script Rune Knight Lunarea#jrt1 4_M_KNIGHT_GOLD,2,2,{
sc_start SC_CURSE,30000,0;
break;
}
- set $@job_rune_test2,1;
+ $@job_rune_test2 = 1;
initnpctimer;
end;
OnInit:
@@ -1888,7 +1888,7 @@ OnEnable:
end;
OnTimer5000:
donpcevent "job_rune_edq#1st_tcnc::OnUse";
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
stopnpctimer;
end;
}
@@ -1922,7 +1922,7 @@ job3_rune02,43,34,1 script Rune Knight Renoa#jrt1 4_M_KNIGHT_GOLD,2,2,{
sc_start SC_CURSE,30000,0;
break;
}
- set $@job_rune_test2,1;
+ $@job_rune_test2 = 1;
initnpctimer;
end;
OnInit:
@@ -1933,7 +1933,7 @@ OnEnable:
enablenpc "Rune Knight Renoa#jrt1";
end;
OnTimer5000:
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
donpcevent "job_rune_edq#1st_tcnc::OnUse";
stopnpctimer;
end;
@@ -1967,7 +1967,7 @@ job3_rune02,34,34,7 script Rune Knight Velpino#jrt1 4_M_KNIGHT_BLACK,2,2,{
sc_start SC_SLEEP,10000,0;
break;
}
- set $@job_rune_test2,1;
+ $@job_rune_test2 = 1;
initnpctimer;
end;
OnInit:
@@ -1978,7 +1978,7 @@ OnEnable:
enablenpc "Rune Knight Velpino#jrt1";
end;
OnTimer5000:
- set $@job_rune_test2,0;
+ $@job_rune_test2 = 0;
donpcevent "job_rune_edq#1st_tcnc::OnUse";
stopnpctimer;
end;
@@ -2044,8 +2044,8 @@ OnTimer482000:
donpcevent "job_rune_edq#3rd_tb::OnDisable";
donpcevent "job_rune_edq#3rd_tc::OnDisable";
donpcevent "#RK Test Hidden Portal 1::OnEnable";
- set $@job_rune_test1,0;
- set $@job_rune_test2,0;
+ $@job_rune_test1 = 0;
+ $@job_rune_test2 = 0;
stopnpctimer;
end;
}
@@ -2065,7 +2065,7 @@ OnDisable:
end;
OnMyMobDead:
if (mobcount("job3_rune02","job_rune_edq#3rd_tc1::OnMyMobDead") < 1) {
- set job_rune_edq,19;
+ job_rune_edq = 19;
killmonster "job3_rune02","job_rune_edq#3rd_tc1::OnMyMobDead";
donpcevent "job_rune_edq#3rd_tc2::OnEnable";
donpcevent "job_rune_edq#3rd_tc1::OnDisable";
@@ -2089,7 +2089,7 @@ OnDisable:
end;
OnMyMobDead:
if (mobcount("job3_rune02","job_rune_edq#3rd_tc2::OnMyMobDead") < 1) {
- set job_rune_edq,20;
+ job_rune_edq = 20;
killmonster "job3_rune02","job_rune_edq#3rd_tc2::OnMyMobDead";
donpcevent "job_rune_edq#3rd_tc3::OnEnable";
donpcevent "job_rune_edq#3rd_tc2::OnDisable";
@@ -2113,7 +2113,7 @@ OnDisable:
end;
OnMyMobDead:
if (mobcount("job3_rune02","job_rune_edq#3rd_tc3::OnMyMobDead") < 1) {
- set job_rune_edq,21;
+ job_rune_edq = 21;
changequest 3217,3218;
erasequest 3220;
killmonster "job3_rune02","job_rune_edq#3rd_tc3::OnMyMobDead";
@@ -2127,8 +2127,8 @@ OnMyMobDead:
donpcevent "job_rune_edq#3rd_tb::OnDisable";
donpcevent "job_rune_edq#3rd_tc::OnDisable";
donpcevent "#RK Test Hidden Portal 1::OnEnable";
- set $@job_rune_test1,0;
- set $@job_rune_test2,0;
+ $@job_rune_test1 = 0;
+ $@job_rune_test2 = 0;
end;
}
end;
@@ -2147,7 +2147,7 @@ sec_in02,34,167,3 script R.Knight Job Manager 4_M_KNIGHT_SILVER,1,1,{
mes "The number of Rune Knight Test field right now is... " + getmapusers("job3_rune02") + ".";
close;
case 2:
- set $@job_rune_test1,0;
+ $@job_rune_test1 = 0;
mes "Rune Knight Job Change GlobalVar is modified to 0. The use of the test field is now available.";
close;
}
diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt
index 671340a03..3445055c0 100644
--- a/npc/re/jobs/3-1/warlock.txt
+++ b/npc/re/jobs/3-1/warlock.txt
@@ -182,14 +182,14 @@ function script F_Warlock {
mes "[Master Egnoloria]";
mes "Talk to the guy with the weird hair.";
mes "He'll let you know what you should do.";
- set job_wl,2;
+ job_wl = 2;
setquest 11106;
close;
case 2:
mes "[Master Egnoloria]";
mes "Good.";
mes "You are a human being so that's for you.";
- set job_wl,1;
+ job_wl = 1;
close2;
warp "splendide",200,100;
end;
@@ -250,7 +250,7 @@ spl_in02,77,107,5 script Assistant#Warlock1 4_M_FAIRYKID5,{
}
if (SkillPoint != 0) {
mes "First, use all of your remaining job skill points before continuing.";
- set job_wl,3;
+ job_wl = 3;
close;
}
mes "This is the Master's";
@@ -303,7 +303,7 @@ L_Quest:
if (getarg(0)) {
mes "[Yoop]";
mes "Show us how strong you are. And don't forget to wear this.";
- set job_wl,4;
+ job_wl = 4;
getitem 2796,1; //Magical_Stone
getitem 2797,1; //Magical_Stone_
changequest 11106,11107;
@@ -373,7 +373,7 @@ spl_in02,60,231,5 script Yoop#Warlock 4_M_FAIRYKID5,{
delitem 2797,countitem(2797); //Magical_Stone_
delitem 6152,countitem(6152); //Glittering_Crystal
delitem 6151,countitem(6151); //Peice_Of_Great_Bradium
- set job_wl,5;
+ job_wl = 5;
changequest 11107,11108;
close;
}
@@ -479,7 +479,7 @@ spl_in02,84,103,3 script Assistant#Warlock2 4_F_FAIRYKID4,{
next;
mes "[Yoop]";
mes "I will guide you into the magic room.";
- set job_wl,7;
+ job_wl = 7;
changequest 11109,11110;
getitem 12384,5; //Rainbow_Ruby_Water
getitem 12386,5; //Rainbow_Ruby_Wind
@@ -521,7 +521,7 @@ spl_in02,84,103,3 script Assistant#Warlock2 4_F_FAIRYKID4,{
mes "[Yoop]";
mes "All of the tests are done. Now talk to Master Engoloria.";
mes "I'm so happy that you have succeeded.";
- set job_wl,9;
+ job_wl = 9;
changequest 11111,11112;
close;
} else if (job_wl == 9) {
@@ -600,7 +600,7 @@ spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
mes "[Master Egnoloria]";
mes "Talk to the guy with the weird hair.";
mes "He'll let you know what you should do.";
- set job_wl,2;
+ job_wl = 2;
setquest 11106;
close;
case 2:
@@ -645,7 +645,7 @@ spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
mes "Yup, Master.";
mes "Please follow me.";
emotion e_ic,0,"Assistant#Warlock2";
- set job_wl,6;
+ job_wl = 6;
changequest 11108,11109;
close;
} else if (job_wl < 9) {
@@ -672,7 +672,7 @@ spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
mes "Unless you like your current job, you should use all your skill points.";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "You are on a riding pet,";
mes "so you cannot change your job.";
mes "Please unequip your riding pet and try again!";
@@ -692,11 +692,11 @@ spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
mes "[Master Egnoloria]";
mes "This crystallized magical stone will keep you safe.";
if (Class == Job_High_Wizard) {
- if (JobLevel > 69) set job_wl,13;
- else if (JobLevel > 59) set job_wl,12;
- else set job_wl,11;
+ if (JobLevel > 69) job_wl = 13;
+ else if (JobLevel > 59) job_wl = 12;
+ else job_wl = 11;
}
- else set job_wl,10;
+ else job_wl = 10;
jobchange roclass(eaclass()|EAJL_THIRD);
completequest 11112;
getitem 5753,1; //Magic_Stone_Hat
@@ -809,7 +809,7 @@ OnMyMobDead:
if (mobcount("job3_war02",strnpcinfo(0)+"::OnMyMobDead") < 1) {
stopnpctimer;
mapannounce "job3_war02","The Monster Invasion has been stopped.",bc_map;
- set .@str$, "The chamber of magic#"+((strnpcinfo(0) == "The chamber of magic#2")?"3":"4");
+ .@str$ = "The chamber of magic#"+((strnpcinfo(0) == "The chamber of magic#2")?"3":"4");
donpcevent .@str$+"::OnEnable";
}
end;
@@ -952,7 +952,7 @@ OnDisable:
OnMyMobDead:
if (mobcount("job3_war02","Hollow Stone#Warlock::OnMyMobDead") < 1) {
mapannounce "job3_war02","The Hollow Stone is crystallized with enough magic power.",bc_map;
- set job_wl,8;
+ job_wl = 8;
changequest 11110,11111;
donpcevent "Hollow Stone#Warlock::OnReset";
donpcevent "Hollow Stone#Warlock::OnDisable";
diff --git a/npc/re/jobs/3-2/genetic.txt b/npc/re/jobs/3-2/genetic.txt
index 92b015bf4..809d5ff65 100644
--- a/npc/re/jobs/3-2/genetic.txt
+++ b/npc/re/jobs/3-2/genetic.txt
@@ -56,7 +56,7 @@ alde_alche,35,186,5 script Alchemist Union Member 1_M_SIGNALCHE,{
next;
mes "[Alchemist Union Member]";
mes "You can find her in the Alchemy Lab at the western part of Lighthalzen. There is also another Geneticist studying weaponry there, you might want to pay her a visit as well.";
- set job_gen,1;
+ job_gen = 1;
setquest 2215;
close;
case 2:
@@ -187,7 +187,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
next;
mes "- For now it seems that I -";
mes "- need to calm down Devries. -";
- set job_gen,2;
+ job_gen = 2;
close;
} else if (job_gen == 2) {
mes "[Devries]";
@@ -281,13 +281,13 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "Alright.";
mes "Even though your knowledge is not that great as that of Geneticists, a fundamental knowledge is also important.";
mes "Popo, come back to me once you've finished your studies.";
- set job_gen,4;
+ job_gen = 4;
close;
case 2:
mes "[Devries]";
mes "Good!";
mes "Let's do it!";
- set job_gen,5;
+ job_gen = 5;
close;
}
} else if (job_gen == 4) {
@@ -304,7 +304,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "[Devries]";
mes "Very good!";
mes "Let's do it!";
- set job_gen,5;
+ job_gen = 5;
close;
}
} else if (job_gen == 5) {
@@ -365,7 +365,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
next;
mes "[Devries]";
mes "Well, you better get started!";
- set job_gen,6;
+ job_gen = 6;
close;
} else if (job_gen == 6) {
mes "[Devries]";
@@ -389,13 +389,13 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "[Devries]";
mes "You can start from the beginning then?";
mes "Why are you asking me such things?";
- set job_gen,7;
- if (checkquest(2209) == 1) erasequest 2209;
- if (checkquest(2210) == 1) erasequest 2210;
- if (checkquest(2211) == 1) erasequest 2211;
- if (checkquest(2212) == 1) erasequest 2212;
- if (checkquest(2213) == 1) erasequest 2213;
- if (checkquest(2214) == 1) erasequest 2214;
+ job_gen = 7;
+ if (questprogress(2209) == 1) erasequest 2209;
+ if (questprogress(2210) == 1) erasequest 2210;
+ if (questprogress(2211) == 1) erasequest 2211;
+ if (questprogress(2212) == 1) erasequest 2212;
+ if (questprogress(2213) == 1) erasequest 2213;
+ if (questprogress(2214) == 1) erasequest 2214;
close;
}
} else if (job_gen == 60 || job_gen == 61) {
@@ -416,7 +416,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "What happened?";
mes "How could you say the study is completed without any result?";
mes "Start again.";
- set job_gen,7;
+ job_gen = 7;
} else {
mes "[Devries]";
mes "Well, I'll take a look at the seeds Popo made.";
@@ -460,7 +460,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "Go take a look at her experiment results.";
mes "Could you give this message to her? Tell her to conduct her experiments quietly.";
delitem 6273,1; //Altered_Seed
- set job_gen,62;
+ job_gen = 62;
changequest 2215,2216;
} else {
specialeffect EF_SPELLBREAKER,AREA,"Super Cultivator#gen";
@@ -470,22 +470,22 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "It didn't grow at all, it's withered already.";
mes "Go and start over!";
delitem 6272,1; //Experiment_Seed
- set job_gen,7;
+ job_gen = 7;
}
}
- if (checkquest(2209) == 1) erasequest 2209;
- if (checkquest(2210) == 1) erasequest 2210;
- if (checkquest(2211) == 1) erasequest 2211;
- if (checkquest(2212) == 1) erasequest 2212;
- if (checkquest(2213) == 1) erasequest 2213;
- if (checkquest(2214) == 1) erasequest 2214;
+ if (questprogress(2209) == 1) erasequest 2209;
+ if (questprogress(2210) == 1) erasequest 2210;
+ if (questprogress(2211) == 1) erasequest 2211;
+ if (questprogress(2212) == 1) erasequest 2212;
+ if (questprogress(2213) == 1) erasequest 2213;
+ if (questprogress(2214) == 1) erasequest 2214;
close;
} else if (job_gen > 61 && job_gen < 76) {
- if (checkquest(2223,HUNTING) == 2) {
+ if (questprogress(2223,HUNTING) == 2) {
mes "[Devries]";
mes "Oh, wait a second.";
mes "It seems that the mail's has arrived.";
- set job_gen,76;
+ job_gen = 76;
completequest 2223;
close;
}
@@ -546,7 +546,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "<We hope that you yield good fruits in the future as well.>";
next;
mes "[Devries]";
- if (ismounting()) {
+ if (hascashmount()) {
mes "You are on a riding pet,";
mes "so you cannot change your job.";
mes "Please unequip your riding pet and try again!";
@@ -555,7 +555,7 @@ job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
mes "Congratulations, Popo!";
mes "You are a Geneticist from now on!!";
jobchange roclass(eaclass()|EAJL_THIRD);
- set job_gen,77;
+ job_gen = 77;
getitem 5752,1; //Midas_Whisper
getitem 2795,1; //Green_Apple_Ring
next;
@@ -584,7 +584,7 @@ job3_gen01,83,72,3 script Delivery Box#generic HIDDEN_NPC,{
switch(select("Take out a cookie bag.:Do nothing.")) {
case 1:
mes "- You've taken out a cookie bag out of the box. -";
- set job_gen,3;
+ job_gen = 3;
close;
case 2:
mes "You do nothing.";
@@ -622,7 +622,7 @@ job3_gen01,12,56,3 script Plant Guide#generic HIDDEN_NPC,{
next;
mes "...The plants usually used for Alchemy are Bigibigi Grass and Muka Trees that have sharp thorns but are delicate inside and Bogi Creeper whose growth speed is really fast but parasitic on living things.";
if (job_gen == 6)
- set job_gen,7;
+ job_gen = 7;
close;
case 3:
mes "...Using minerals in Alchemy is a way that beginners find pretty easy.";
@@ -642,12 +642,12 @@ job3_gen01,12,56,3 script Plant Guide#generic HIDDEN_NPC,{
// QuestID,PlantName,Description{,Part?}
function script Genetic_Job_Plant {
if (job_gen == 7) {
- if (checkquest(getarg(0)) == -1 || checkquest(getarg(0)) == 0) {
+ if (!questprogress(getarg(0))) {
mes "- "+getarg(2)+" -";
next;
switch(select("Use it as a material.:Do not use.")) {
case 1:
- if (getarg(3,0)) set .@str$,"some of the ";
+ if (getarg(3, 0)) .@str$ = "some of the ";
mes "- You've acquired "+.@str$+getarg(1)+". -";
setquest getarg(0);
close;
@@ -699,12 +699,8 @@ job3_gen01,7,50,3 script Testing Table#gen CLEAR_NPC,{
mes "- It's not the time to start an experiment. -";
close;
}
- if ((checkquest(2209) == -1 || checkquest(2209) == 0) &&
- (checkquest(2210) == -1 || checkquest(2210) == 0) &&
- (checkquest(2211) == -1 || checkquest(2211) == 0) &&
- (checkquest(2212) == -1 || checkquest(2212) == 0) &&
- (checkquest(2213) == -1 || checkquest(2213) == 0) &&
- (checkquest(2214) == -1 || checkquest(2214) == 0)) {
+ if (!questprogress(2209) && !questprogress(2210) && !questprogress(2211) && !questprogress(2212)
+ && !questprogress(2213) && !questprogress(2213) && !questprogress(2214)) {
mes "["+strcharinfo(0)+"]";
mes "Hmm, I need to gather plant materials first.";
close;
@@ -731,37 +727,35 @@ job3_gen01,7,50,3 script Testing Table#gen CLEAR_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "Good. Now I can let Miss Devries take a look at this seed!";
- if ((checkquest(2209) == -1 || checkquest(2209) == 0) &&
- (checkquest(2210) == -1 || checkquest(2210) == 0) &&
- (checkquest(2211) == -1 || checkquest(2211) == 0)){
- set job_gen,61;
+ if (!questprogress(2209) && !questprogress(2210) && !questprogress(2211)) {
+ job_gen = 61;
getitem 6272,1; //Experiment_Seed
close;
}
- if (checkquest(2209) == 1) set job_gen,job_gen+10;
- if (checkquest(2210) == 1) set job_gen,job_gen+10;
- if (checkquest(2211) == 1) set job_gen,job_gen+10;
- set .@score, job_gen + JobLevel - 20;
+ if (questprogress(2209) == 1) job_gen += 10;
+ if (questprogress(2210) == 1) job_gen += 10;
+ if (questprogress(2211) == 1) job_gen += 10;
+ .@score = job_gen + JobLevel - 20;
if (rand(1,100) < .@score) {
- set job_gen,60;
+ job_gen = 60;
getitem 6273,1; //Altered_Seed
close;
} else {
- set job_gen,61;
+ job_gen = 61;
getitem 6272,1; //Experiment_Seed
close;
}
} else if (job_gen > 7 && job_gen < 60) {
mes "- It looks like the experiment has failed. I better start over. -";
- set job_gen,7;
+ job_gen = 7;
if (countitem(6273)) delitem 6273,1; //Altered_Seed
if (countitem(6272)) delitem 6272,1; //Experiment_Seed
- if (checkquest(2209) == 1) erasequest 2209;
- if (checkquest(2210) == 1) erasequest 2210;
- if (checkquest(2211) == 1) erasequest 2211;
- if (checkquest(2212) == 1) erasequest 2212;
- if (checkquest(2213) == 1) erasequest 2213;
- if (checkquest(2214) == 1) erasequest 2214;
+ if (questprogress(2209) == 1) erasequest 2209;
+ if (questprogress(2210) == 1) erasequest 2210;
+ if (questprogress(2211) == 1) erasequest 2211;
+ if (questprogress(2212) == 1) erasequest 2212;
+ if (questprogress(2213) == 1) erasequest 2213;
+ if (questprogress(2214) == 1) erasequest 2214;
close;
} else if (job_gen == 60 || job_gen == 61) {
mes " - It looks like I need to let Miss Devries take a look at this seed! -";
@@ -806,7 +800,7 @@ job3_gen01,91,48,3 script Demi Calberine#gen 4_F_SCIENCE,{
mes "Ugh~ I think they dropped around here somewhere.";
mes "I only need 10! I need to put the other parts together first... Please could you help me?!";
changequest 2216,2217;
- set job_gen,63;
+ job_gen = 63;
close;
} else if (job_gen > 62 && job_gen < 74) {
mes "Ah, oh no, oh no~~~";
@@ -914,13 +908,13 @@ job3_gen01,91,48,3 script Demi Calberine#gen 4_F_SCIENCE,{
mes "- Rattle -";
next;
mes "- What's this? I feel like the floor is missing somewhere. -";
- set job_gen,75;
+ job_gen = 75;
changequest 2217,2223;
close2;
warp "job3_gen01",23,32;
end;
} else if (job_gen == 75) {
- if (checkquest(2223,HUNTING) == 2) {
+ if (questprogress(2223,HUNTING) == 2) {
mes "It seem Miss Devries found out that I put you in her spore pen.";
mes "It's funny when you look at her face. After you've killed all those spores.";
close;
@@ -952,7 +946,7 @@ job3_gen01,91,48,3 script Demi Calberine#gen 4_F_SCIENCE,{
mes "- There are so many scattered things on the floor that the lab is in chaos. -";
next;
mes "- You found a little metal fragment. -";
- set job_gen, job_gen+1;
+ job_gen = job_gen+1;
specialeffect EF_BASH;
disablenpc strnpcinfo(0);
initnpctimer;
@@ -1017,7 +1011,7 @@ OnTouch:
job3_gen01,24,32,0 script The gaze of Devries HIDDEN_WARP_NPC,2,2,{
OnTouch:
- if (checkquest(2223,HUNTING) == 2) {
+ if (questprogress(2223,HUNTING) == 2) {
mapannounce "job3_gen01","Devries: Whoa? Was there a lost kitty in the spore pen?",bc_map,"0x99CC00"; //FW_NORMAL 12 0 0
emotion e_omg,1;
warp "job3_gen01",21,38;
diff --git a/npc/re/jobs/3-2/minstrel.txt b/npc/re/jobs/3-2/minstrel.txt
index 1435b23fd..fee20e8d3 100644
--- a/npc/re/jobs/3-2/minstrel.txt
+++ b/npc/re/jobs/3-2/minstrel.txt
@@ -116,7 +116,7 @@ alberta,196,133,4 script Bard#job_min 4_M_BARD,{
}
mes "["+strcharinfo(0)+"]";
mes "Ok, I will.";
- set job_min,1;
+ job_min = 1;
setquest 11135;
next;
mes "[Karian]";
@@ -181,7 +181,7 @@ alberta,196,133,4 script Bard#job_min 4_M_BARD,{
mes "[Karian]";
mes "Um..";
mes "Anyway let's meet at the airship in Izlude.";
- set job_min,5;
+ job_min = 5;
changequest 11138,11139;
close;
} else if (job_min == 100) {
@@ -253,7 +253,7 @@ prontera,141,97,4 script Warmhearted woman 4_F_GODEMOM,{
next;
mes "[Warmhearted woman]";
mes "He must know something about making that book.";
- set job_min,2;
+ job_min = 2;
changequest 11135,11136;
close;
} else if (job_min == 2) {
@@ -285,7 +285,7 @@ prontera,140,331,6 script Glasses-wearing Man 4_M_ALCHE_D,{
next;
mes "[Glasses-wearing Man]";
mes "It would be better to ask the ^f57d7dwoman standing in front of the tool shop^000000.";
- set job_min,3;
+ job_min = 3;
changequest 11136,11137;
close;
} else if (job_min == 3) {
@@ -325,7 +325,7 @@ prontera,146,218,4 script Woman#job_min 4_F_01,{
mes "- useful information. -";
mes "- I'll go back to Alberta -";
mes "- and talk to that Bard. -";
- set job_min,4;
+ job_min = 4;
changequest 11137,11138;
close;
} else if (job_min == 4) {
@@ -351,7 +351,7 @@ airplane,222,67,6 script Karian#job_min1 4_M_BARD,{
mes "[Karian]";
mes "Acchh...";
if (job_min == 5) {
- set job_min,6;
+ job_min = 6;
changequest 11139,11140;
close2;
warp "hu_in01",267,8;
@@ -386,7 +386,7 @@ hu_in01,267,5,3 script Karian#job_min2 4_M_BARD,{
next;
mes "[Karian]";
mes "...";
- set job_min,7;
+ job_min = 7;
changequest 11140,11141;
close;
} else if (job_min == 7) {
@@ -471,7 +471,7 @@ hu_in01,267,5,3 script Karian#job_min2 4_M_BARD,{
next;
mes "[Karian]";
mes "Did he? I must go there!";
- set job_min,10;
+ job_min = 10;
changequest 11142,11143;
close;
} else if (job_min == 10) {
@@ -605,7 +605,7 @@ hu_in01,361,103,3 script Tone-deaf person 4_M_CASMAN1,{
mes "[Tone-deaf person]";
mes "Rummaging rummaging.";
mes "Browsing browsing .";
- set job_min,8;
+ job_min = 8;
close;
} else if (job_min == 8) {
mes "[Tone-deaf person]";
@@ -666,7 +666,7 @@ hu_in01,361,103,3 script Tone-deaf person 4_M_CASMAN1,{
mes "Ok see you later.";
mes "If you want to hear my song, you can visit me.";
mes "Hahahh";
- set job_min,9;
+ job_min = 9;
changequest 11141,11142;
close;
} else if (job_min == 9) {
@@ -738,7 +738,7 @@ OnTouch:
mes "Juno's store...";
mes "Let's go to Juno...";
if (job_min == 10) {
- set job_min,11;
+ job_min = 11;
changequest 11143,11144;
}
donpcevent "Karian#cmd1::OnDisable";
@@ -926,7 +926,7 @@ yuno,143,170,6 script Mr. Click#job_min 4_M_ALCHE_A,{
mes "Ok. Then let's meet at Lighthalzen's hotel.";
mes "I'll get the 33 Teddy Bears.";
donpcevent "Karian#cmd2::OnDisable";
- set job_min,12;
+ job_min = 12;
getitem 6270,1; //Mins_Picture
changequest 11144,11145;
close;
@@ -954,7 +954,7 @@ yuno,143,170,6 script Mr. Click#job_min 4_M_ALCHE_A,{
lighthalzen,155,119,3 script Little girl#job_min 4_F_HUGIRL,3,3,{
OnTouch:
- if (checkquest(11145,HUNTING) == 2) {
+ if (questprogress(11145,HUNTING) == 2) {
if (job_min == 12) {
mes "[Little Girl]";
mes "Ah!!!!";
@@ -1057,7 +1057,7 @@ OnTouch:
mes "Waaah!!!!!!!!!";
mes "I'm so happy!!!";
mes "Thank you, "+strcharinfo(0)+".";
- set job_min,13;
+ job_min = 13;
changequest 11145,11146;
donpcevent "Karian#cmd3::OnDisable";
close;
@@ -1208,7 +1208,7 @@ OnTouch:
if (job_min == 13) {
mes "-on the leaves-";
percentheal -90,0;
- set job_min,14;
+ job_min = 14;
changequest 11146,11147;
close2;
warp "ra_in01",361,129;
@@ -1226,7 +1226,7 @@ OnTouch:
next;
mes "["+strcharinfo(0)+"]";
mes "Where am I...?";
- set job_min,15;
+ job_min = 15;
close;
}
end;
@@ -1240,7 +1240,7 @@ ra_in01,358,130,4 script Old Woman#job_min 4_F_CAVE1,{
next;
mes "["+strcharinfo(0)+"]";
mes "Where am I...?";
- set job_min,15;
+ job_min = 15;
close;
} else if (job_min == 15) {
mes "You're in Rachel.";
@@ -1308,7 +1308,7 @@ ra_in01,358,130,4 script Old Woman#job_min 4_F_CAVE1,{
mes "We don't have a proper boat.";
mes "In southern of Veins, there is a port. If you are lucky you can take it...";
donpcevent "Karian#cmd4::OnDisable";
- set job_min,16;
+ job_min = 16;
changequest 11147,11148;
close;
} else if (job_min == 16) {
@@ -1443,7 +1443,7 @@ function Choice;
mes "-I've escaped from the-";
mes "-throes of death a-";
mes "-countless amount of times.-";
- set job_min,17;
+ job_min = 17;
changequest 11148,11149;
close2;
warp "comodo",184,108;
@@ -1455,7 +1455,7 @@ function Choice;
close;
function Choice {
- set .@i$, getarg(select(getarg(0),getarg(1),getarg(2))-1);
+ .@i$ = getarg(select(getarg(0),getarg(1),getarg(2))-1);
mes "[Karian]";
if (.@i$ == "Throw the water out.") {
mes "I'll row and you just throw the water out!!";
@@ -1501,7 +1501,7 @@ OnTouch:
mes "Oh yeah...";
mes "Why don't we ask the villagers?";
donpcevent "Karian#cmd6::OnDisable";
- set job_min,18;
+ job_min = 18;
changequest 11149,11150;
close;
}
@@ -1522,7 +1522,7 @@ comodo,192,119,0 script Kayak Master#job_min 4W_M_02,{
mes "[Kayak Master]";
mes "The hostess is good at memorizing the faces of customers.";
mes "It's good for business you know?";
- set job_min,19;
+ job_min = 19;
changequest 11150,11151;
close;
}
@@ -1558,7 +1558,7 @@ comodo,159,316,4 script Woman Roasting Meat 4_F_GODEMOM,{
next;
mes "[Woman Roasting Meat]";
mes "He raised our income a lot while he was here...";
- set job_min,20;
+ job_min = 20;
changequest 11151,11152;
close;
} else if (job_min == 20) {
@@ -1646,7 +1646,7 @@ OnTouch:
}
mes "Hey! Let's go~~";
donpcevent "Karian#cmd7::OnDisable";
- set job_min,21;
+ job_min = 21;
changequest 11152,11153;
close;
}
@@ -1703,7 +1703,7 @@ OnTouch:
next;
mes "[Karian]";
mes "I can't get rid of the the memories that I was impressed with when I entered Prontera's gates.";
- set job_min,22;
+ job_min = 22;
changequest 11153,11154;
donpcevent "Karian#cmd8::OnDisable";
close;
@@ -1730,7 +1730,7 @@ OnTouch:
mes "I'm so tired.";
mes "I want to take a rest~";
mes "Come here, "+strcharinfo(0)+".";
- set job_min,23;
+ job_min = 23;
close;
}
end;
@@ -1740,7 +1740,7 @@ prontera,155,42,0 script #prtjm1 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 23) {
mes "-Let me go back to my hometown.-";
- set job_min,24;
+ job_min = 24;
close2;
warp "prontera",155,44;
end;
@@ -1752,7 +1752,7 @@ prontera,155,44,0 script #prtjm2 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 24) {
mes "-There are many beautiful flowers.-";
- set job_min,25;
+ job_min = 25;
close2;
warp "prontera",155,46;
end;
@@ -1764,7 +1764,7 @@ prontera,155,46,0 script #prtjm3 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 25) {
mes "-The birds sing for me.-";
- set job_min,26;
+ job_min = 26;
close2;
warp "prontera",155,48;
end;
@@ -1813,7 +1813,7 @@ OnTouch:
mes "[Karian]";
mes "Why are you looking at me?";
mes "How was it? Have fun??";
- set job_min,27;
+ job_min = 27;
donpcevent "Karian#cmd9::OnDisable";
close2;
warp "prt_in",101,174;
@@ -1839,7 +1839,7 @@ prt_in,94,172,4 script Karian#job_min3 4_M_MINSTREL1,{
mes "How did you degrade?";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "Please unequip your riding pet and try again!";
close;
}
@@ -1874,7 +1874,7 @@ prt_in,94,172,4 script Karian#job_min3 4_M_MINSTREL1,{
next;
mes "[Maestro Song]";
mes "You are also my friend.";
- set job_min,100;
+ job_min = 100;
jobchange roclass(eaclass()|EAJL_THIRD);
completequest 11154;
getitem 5751,1; //Minstrel_Song_Hat
diff --git a/npc/re/jobs/3-2/royal_guard.txt b/npc/re/jobs/3-2/royal_guard.txt
index 82632ed36..b8679cd4d 100644
--- a/npc/re/jobs/3-2/royal_guard.txt
+++ b/npc/re/jobs/3-2/royal_guard.txt
@@ -32,7 +32,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
mes "Oh you are so young. Keep working hard.";
close;
}
- if (checkriding() || checkcart() || checkfalcon()) {
+ if (checkmount() || checkcart() || checkfalcon()) {
mes "[Middle-aged Gentleman]";
mes "You are dragging something. If you're riding something you better dismount it before proceeding.";
close;
@@ -112,7 +112,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
next;
mes "[Heinrich]";
mes "It's not a simple story to tell a person like you. Go back.";
- set job_royal,1;
+ job_royal = 1;
setquest 12090;
close;
case 2:
@@ -187,7 +187,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
next;
mes "[Heinrich]";
mes "Don't forget to bring the 100 Burning Hearts.";
- set job_royal,2;
+ job_royal = 2;
changequest 12090,12091;
close;
} else if (job_royal == 2) {
@@ -201,7 +201,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
mes "[Heinrich]";
mes "Wait while I arrange the stuff that you brought.";
delitem 7097,100; //Burning_Heart
- set job_royal,3;
+ job_royal = 3;
changequest 12091,12092;
close;
} else if (job_royal == 3) {
@@ -275,7 +275,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
mes "I don't know if it will be helpful or not. I will write an explanation in detail.";
next;
mes "^000099Here's the last trace of the Royal Guard. Open the quest window and check the position.^000000";
- set job_royal,4;
+ job_royal = 4;
changequest 12092,12093;
close;
} else if (job_royal == 4) {
@@ -319,7 +319,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
mes "I'll be deciphering the cloth for now so I will be very busy!";
delitem 6274,1; //Saint_Cloth_Piece
getitem 6275,1; //King_Shield
- set job_royal,5;
+ job_royal = 5;
changequest 12093,12094;
close;
} else if (job_royal == 5) {
@@ -340,7 +340,7 @@ glast_01,240,366,5 script Memory of King Schmidtz CLEAR_NPC,{
mes "- and please try again. -";
close;
}
- if (ismounting() || checkriding()) {
+ if (hascashmount() || checkmount()) {
mes " Please unequip your riding pet and try again!";
close;
}
@@ -437,7 +437,7 @@ glast_01,240,366,5 script Memory of King Schmidtz CLEAR_NPC,{
gl_church,173,88,0 script Delicate trace#01 CLEAR_NPC,{
if (job_royal == 4 && countitem(6274) == 0) {
progressbar "ffff00",5;
- set .@roy_ran, rand(1,70);
+ .@roy_ran = rand(1,70);
if (.@roy_ran < 6)
getitem 6274,1; //Saint_Cloth_Piece
else if (.@roy_ran > 5 && .@roy_ran < 66)
@@ -507,7 +507,7 @@ sec_in02,12,43,3 script sorcereryal 1_M_LIBRARYMASTER,1,1,{
mes "Set item to adjust the Royal Guard";
mes "You can only set a number between 1 to 5.";
} else {
- set job_royal, .@input;
+ job_royal = .@input;
mes "Completed";
}
close;
@@ -519,7 +519,7 @@ sec_in02,12,43,3 script sorcereryal 1_M_LIBRARYMASTER,1,1,{
mes "Set item to adjust the Rune Knight";
mes "You can only set a nbumber between 1 to 24.";
} else {
- set job_rune_edq, .@input;
+ job_rune_edq = .@input;
mes "Completed";
}
close;
@@ -531,7 +531,7 @@ sec_in02,12,43,3 script sorcereryal 1_M_LIBRARYMASTER,1,1,{
mes "Set item to adjust the Sorcerer";
mes "You can only set a number between 1 to 5.";
} else {
- set job_soc, .@input;
+ job_soc = .@input;
mes "Completed";
}
close;
diff --git a/npc/re/jobs/3-2/shadow_chaser.txt b/npc/re/jobs/3-2/shadow_chaser.txt
index 230d5b49c..e51517446 100644
--- a/npc/re/jobs/3-2/shadow_chaser.txt
+++ b/npc/re/jobs/3-2/shadow_chaser.txt
@@ -38,7 +38,7 @@ morocc,156,70,3 script Girl#sc00 4_F_04,3,3,{
mes "[Girl]";
mes "Every time they visit us, they are on new missions.";
mes "What missions are they doing I wonder?";
- set job_sha,1;
+ job_sha = 1;
close;
} else if (job_sha == 1) {
mes "If you have any interest... just go!";
@@ -76,7 +76,7 @@ OnTouch:
in_rogue,376,100,5 script Guild Member#sc01 4_M_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
- set @job_sha,0;
+ @job_sha = 0;
OnDialogue:
mes "[Vin]";
mes "Ah? What's this?";
@@ -104,8 +104,8 @@ in_rogue,376,100,5 script Guild Member#sc01 4_M_ROGUE,{
mes "My name is Urupa.";
mes "If you are interested, could you come over here?";
if (@job_sha == 1) {
- set job_sha,1;
- set @job_sha,0;
+ job_sha = 1;
+ @job_sha = 0;
}
close;
case 2:
@@ -146,7 +146,7 @@ in_rogue,376,100,5 script Guild Member#sc01 4_M_ROGUE,{
in_rogue,379,99,1 script Guild Member#sc02 4_F_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
- set @job_sha,1;
+ @job_sha = 1;
doevent "Guild Member#sc01::OnDialogue";
end;
}
@@ -183,7 +183,7 @@ in_rogue,379,101,3 script Scary Man#sc03 1_M_SIGNROGUE,{
mes "[Urupa]";
mes "My name is Urupa.";
mes "If you have anything interesting just challenge it.";
- set job_sha,1;
+ job_sha = 1;
close;
}
mes "[Scary man]";
@@ -217,7 +217,7 @@ in_rogue,379,101,3 script Scary Man#sc03 1_M_SIGNROGUE,{
mes "[Urupa]";
mes "So write this down!";
mes "I expected that you would take this adventure!";
- set job_sha,2;
+ job_sha = 2;
setquest 7160;
close;
} else if (job_sha == 2) {
@@ -316,7 +316,7 @@ s_atelier,65,123,5 script Manager#sc04_prt 4_M_KHKYEL,{
mes "[Manager]";
mes "So you are the one.";
mes "Could you wait for a sec'?";
- set job_sha,3;
+ job_sha = 3;
close;
}
mes "[Manager]";
@@ -373,7 +373,7 @@ s_atelier,65,123,5 script Manager#sc04_prt 4_M_KHKYEL,{
mes "[Graham]";
mes "What the hell?";
mes "If you are not going to help then I'll just find someone else.";
- set job_sha,4;
+ job_sha = 4;
close;
case 2:
mes "[Graham]";
@@ -467,7 +467,7 @@ s_atelier,65,123,5 script Manager#sc04_prt 4_M_KHKYEL,{
mes "[Graham]";
mes "Ok?";
mes "Then go there!";
- set job_sha,9;
+ job_sha = 9;
changequest 7165,7166;
close;
} else if (job_sha == 9) {
@@ -569,21 +569,21 @@ L_Code:
mes "Now let's move on to the mission.";
mes "Here's the cipher...";
next;
- set .@key01, rand(3,5);
- set .@a, 1 + .@key01;
- set .@b, 2 + .@key01;
- set .@d, 4 + .@key01;
- set .@e, 5 + .@key01;
- set .@f, 6 + .@key01;
- set .@h, 8 + .@key01;
- set .@i, 9 + .@key01;
- set .@l, 12 + .@key01;
- set .@n, 14 + .@key01;
- set .@o, 15 + .@key01;
- set .@r, 18 + .@key01;
- set .@s, 19 + .@key01;
- set .@t, 20 + .@key01;
- set .@u, 21 + .@key01;
+ .@key01 = rand(3,5);
+ .@a = 1 + .@key01;
+ .@b = 2 + .@key01;
+ .@d = 4 + .@key01;
+ .@e = 5 + .@key01;
+ .@f = 6 + .@key01;
+ .@h = 8 + .@key01;
+ .@i = 9 + .@key01;
+ .@l = 12 + .@key01;
+ .@n = 14 + .@key01;
+ .@o = 15 + .@key01;
+ .@r = 18 + .@key01;
+ .@s = 19 + .@key01;
+ .@t = 20 + .@key01;
+ .@u = 21 + .@key01;
mes "^4d4dff" + .@b + " " + .@l + " " + .@u + " " + .@e + " ";
mes "" + .@f + " " + .@i + " " + .@r + " " + .@e + " ";
mes "" + .@i + " " + .@n + " ";
@@ -592,7 +592,7 @@ L_Code:
mes "" + .@t + " " + .@h + " " + .@i + " " + .@r + " " + .@d + " ";
mes "" + .@f + " " + .@l + " " + .@o + " " + .@o + " " + .@r + " ";
mes "key : " + .@key01 + ".";
- set job_sha,5;
+ job_sha = 5;
erasequest 7160;
if (.@key01 == 3) setquest 7161;
else if (.@key01 == 4) setquest 7162;
@@ -706,7 +706,7 @@ s_atelier,168,65,5 script Manager#sc08_ra 4_M_DOCTOR,{
mes "What? You don't know it?";
mes "Then you'd better think about it more.";
mes "It's so easy.";
- set job_sha,10;
+ job_sha = 10;
changequest 7166,7167;
close;
}
@@ -806,7 +806,7 @@ s_atelier,168,65,5 script Manager#sc08_ra 4_M_DOCTOR,{
mes "If Haled isn't supportive...";
mes "Tell him ^4d4dffI know what you did last summer!^000000";
mes "You shouldn't be wrong...!?";
- set job_sha,18;
+ job_sha = 18;
changequest 7172,7173;
close;
} else if (job_sha == 18) {
@@ -863,19 +863,19 @@ L_Code:
case 0:
mes "[ S E E D ]";
mes "S E E D?";
- set job_sha,11;
+ job_sha = 11;
changequest getarg(0),7168;
break;
case 1:
mes "[ F O O T ]";
mes "F O O T?";
- set job_sha,12;
+ job_sha = 12;
changequest getarg(0),7169;
break;
case 2:
mes "[ C O L D ]";
mes "C O L D?";
- set job_sha,13;
+ job_sha = 13;
changequest getarg(0),7170;
break;
}
@@ -928,7 +928,7 @@ s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
mes "So what?";
mes "He's a wild-eyed person.";
mes "Did you just speak to me in a threatening tone?";
- set job_sha,19;
+ job_sha = 19;
close;
} else if (job_sha == 19) {
mes "[Haled]";
@@ -941,7 +941,7 @@ s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
mes "What's wrong with you?";
mes "Are you ok?";
mes "Paul? What do you want to say?";
- set job_sha,19;
+ job_sha = 19;
close;
} else if (job_sha == 20) {
mes "[Haled]";
@@ -974,7 +974,7 @@ s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
mes "Of course, if you find something, you have to come back.";
mes "Got it?";
mes "I'm going to write it down so that you won't forget.";
- set job_sha,21;
+ job_sha = 21;
changequest 7173,7174;
close;
} else if (job_sha == 21) {
@@ -1046,7 +1046,7 @@ s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
mes "[Haled]";
mes "Ok. Let me finish.";
mes "Go to Vicente in Lighthalzen.";
- set job_sha,26;
+ job_sha = 26;
changequest 7176,7177;
close;
}
@@ -1112,7 +1112,7 @@ L_Code:
mes "[Haled]";
mes "I need some time to collect my thoughts.";
mes "Wait for me a bit.";
- set job_sha,20;
+ job_sha = 20;
close;
}
return;
@@ -1220,7 +1220,7 @@ s_atelier,25,75,3 script Manager#sc10_lgt 4_M_HUMAN_02,{
mes "[Vicente]";
mes "You can't imagine what kind of things you might find.";
mes "That's the final destination of all of the keys.";
- set job_sha,27;
+ job_sha = 27;
changequest 7177,7178;
next;
mes "[Vicente]";
@@ -1297,7 +1297,7 @@ s_atelier,25,75,3 script Manager#sc10_lgt 4_M_HUMAN_02,{
mes "There is someone who has been waiting for you.";
mes "He's been waiting for someone to bring this brush back.";
mes "Let's go inside.";
- set job_sha,29;
+ job_sha = 29;
erasequest 7179;
close;
} else if (job_sha == 29 || job_sha == 30) {
@@ -1358,7 +1358,7 @@ s_atelier,70,66,4 script Dumk#sc13_lgh 4_M_SHADOWCHASER,{
mes "- You can't continue on in this quest because you are overweight. -";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "[Dumk]";
mes "Who is this guy? Why should he sit in front of me so high?";
mes "Although I do not know why you riding on it, but here is in door,";
@@ -1497,7 +1497,7 @@ s_atelier,70,66,4 script Dumk#sc13_lgh 4_M_SHADOWCHASER,{
mes "I'm so thirsty.";
mes "Wait a minute.";
delitem 6269,1; //Master_Brush
- set job_sha,30;
+ job_sha = 30;
close;
}
mes "[Dumk]";
@@ -1594,7 +1594,7 @@ s_atelier,70,66,4 script Dumk#sc13_lgh 4_M_SHADOWCHASER,{
jobchange roclass(eaclass()|EAJL_THIRD);
getitem 6121,1; //Makeover_Brush
getitem 6122,1; //Paint_Brush
- set job_sha,32;
+ job_sha = 32;
getitem 2795,1; //Green_Apple_Ring
getitem 5750,1; //Shadow_Handicraft
next;
@@ -1674,8 +1674,8 @@ tur_dun03,38,209,1 script Blue Flame#sc_f01 4_NFWISP,{
mes "The deciphered code means...";
next;
input .@inputstr$;
- set .@dap01$, "blue fire in turtle island third floor";
- set .@dap02$, "BLUE FIRE IN TURTLE ISLAND THIRD FLOOR";
+ .@dap01$ = "blue fire in turtle island third floor";
+ .@dap02$ = "BLUE FIRE IN TURTLE ISLAND THIRD FLOOR";
if (.@inputstr$ != .@dap01$ && .@inputstr$ != .@dap02$) {
mes "["+strcharinfo(0)+"]";
mes "What was it?";
@@ -1717,20 +1717,20 @@ tur_dun03,38,209,1 script Blue Flame#sc_f01 4_NFWISP,{
next;
mes "The Blue Flame is growning and rolling.";
mes "They seem to be related.";
- set job_sha,6;
+ job_sha = 6;
setquest 7164;
- if (checkquest(7161) >= 0) erasequest 7161;
- if (checkquest(7162) >= 0) erasequest 7162;
- if (checkquest(7163) >= 0) erasequest 7163;
+ if (questprogress(7161)) erasequest 7161;
+ if (questprogress(7162)) erasequest 7162;
+ if (questprogress(7163)) erasequest 7163;
close;
} else if (job_sha == 6) {
- if (checkquest(7164,HUNTING) == 2) {
+ if (questprogress(7164,HUNTING) == 2) {
mes "It looks like the blue flame is under the limitation.";
mes "You can't feel that rolling effect of a spell like before.";
next;
select("Pick up the marbles.");
mes "When you pick them up, you can feel that your weight is lightened.";
- set job_sha,7;
+ job_sha = 7;
erasequest 7164;
close2;
warp "job3_sha01",22,82;
@@ -1783,11 +1783,11 @@ ice_dun02,206,223,1 script Red Flame#sc_f02 4_NFWISP,{
mes "Then pick it up.";
mes "Tear my soul and";
mes "show the truth.";
- set job_sha, job_sha+3;
+ job_sha += 3;
setquest 7171;
close;
} else if (job_sha == 14 || job_sha == 15 || job_sha == 16) {
- if (checkquest(7171,HUNTING) == 2) {
+ if (questprogress(7171,HUNTING) == 2) {
mes "You can't feel the soul from the flame.";
mes "When you go closer, you can't see well because of darkness.";
close2;
@@ -1889,15 +1889,15 @@ niflheim,230,276,1 script Red Flame#sc_f03 4_NFWISP,{
next;
mes "The flame is dying.";
mes "You should handle the shadow of pleasure.";
- set job_sha,22;
+ job_sha = 22;
erasequest 7174;
setquest 7175;
close;
} else if (job_sha == 22) {
- if (checkquest(7175,HUNTING) == 2) {
+ if (questprogress(7175,HUNTING) == 2) {
mes "You can't feel the soul from the flame.";
mes "When you go closer, you can't see well because of darkness.";
- set job_sha,23;
+ job_sha = 23;
erasequest 7175;
close2;
warp "job3_sha01",73,87;
@@ -1934,7 +1934,7 @@ job3_sha01,22,78,0 script ????#keybox01 CLEAR_NPC,{
next;
setarray .@Codes1$[1],"EFDFJWF","FGEGKXG","GHFHLYH","HIGIMZI","IJHJNAJ","JKIKOBK","KLJLPCL","LMKMQDM";
setarray .@Codes2$[1],"IPOFTUZ","JQPGUVA","KRQHVWB","LSRIWXC","MTSJXYD","NUTKYZE","OVULZAF","PWVMABG";
- set .@i, rand(1,8);
+ .@i = rand(1,8);
mes " ";
mes " ";
mes " DECEIVE";
@@ -1973,7 +1973,7 @@ job3_sha01,22,78,0 script ????#keybox01 CLEAR_NPC,{
mes "There is a small and fabulous key.";
next;
mes "- You get the Key of Deception. -";
- set job_sha,8;
+ job_sha = 8;
getitem 6266,1; //Cheat_Key
setquest 7165;
close;
@@ -1997,7 +1997,7 @@ job3_sha01,25,28,0 script ????#keybox02 CLEAR_NPC,{
}
setarray .@Words$[0],"SEED","FOOT","COLD";
setarray .@numbers[0],24,25,20;
- set .@i,job_sha-14;
+ .@i = job_sha-14;
if (job_sha > 13 && job_sha < 17) {
mes "There are lots of boxes.";
mes "with sort of numbers.";
@@ -2038,7 +2038,7 @@ job3_sha01,25,28,0 script ????#keybox02 CLEAR_NPC,{
mes "Anyway, Paul will be disappointed.";
mes "Key again...";
mes "How can I escape from here...?";
- set job_sha,17;
+ job_sha = 17;
getitem 6267,1; //Virtual_Key
erasequest 7171;
changequest 7168+.@i,7172;
@@ -2173,7 +2173,7 @@ job3_sha01,73,80,0 script ????#keybox03 CLEAR_NPC,{
mes "What? A key again!";
mes "Haled will be disappointed.";
mes "I better go back.";
- set job_sha,25;
+ job_sha = 25;
setquest 7176;
getitem 6268,1; //Mirth_Key
close;
@@ -2194,7 +2194,7 @@ job3_sha01,73,80,0 script ????#keybox03 CLEAR_NPC,{
mes "..."+.@inputstr$+"...?";
if (job_sha == 23) {
mes "What does that mean?";
- set job_sha,24;
+ job_sha = 24;
} else
mes "Again? I don't get it.";
close;
@@ -2236,7 +2236,7 @@ job3_sha01,71,27,0 script ????#keybox04 CLEAR_NPC,{
delitem 6266,1; //Cheat_Key
delitem 6267,1; //Virtual_Key
delitem 6268,1; //Mirth_Key
- set job_sha,28;
+ job_sha = 28;
getitem 6269,1; //Master_Brush
changequest 7178,7179;
next;
@@ -2274,7 +2274,7 @@ s_atelier,29,119,3 script Max#sc05_prt 4W_M_01,{
mes "You are a member of the Rogue guild!";
mes "What can I help you with?";
next;
- set .@i, select("I need a make-up brush.:I need a paint brush.:Nothing.");
+ .@i = select("I need a make-up brush.:I need a paint brush.:Nothing.");
mes "[Max]";
if (.@i == 1) setarray .@i[1],6121,1,10,100000;
else if (.@i == 2) setarray .@i[1],6122,2,30,200000;
@@ -2339,7 +2339,7 @@ s_atelier,136,70,3 script Titika#sc09_ra 4_F_CHILD,{
mes "You are in a guild.";
mes "What can I help you with?";
next;
- set .@i, select("Make a new make-up brush.:Make a new paint brush.:Nothing.");
+ .@i = select("Make a new make-up brush.:Make a new paint brush.:Nothing.");
mes "[Titika]";
if (.@i == 1) setarray .@i[1],6121,1,10,100000;
else if (.@i == 2) setarray .@i[1],6122,2,30,200000;
@@ -2389,7 +2389,7 @@ s_atelier,124,128,3 script RimiGX#sc07_yuno 4_F_LGTGIRL,{
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
mes "What are you looking for?";
next;
- set .@i, select("Make a new blush for make-up.:Make a new blush for painting.:Nothing.");
+ .@i = select("Make a new blush for make-up.:Make a new blush for painting.:Nothing.");
mes "[RimiGX]";
if (.@i == 1) setarray .@i[1],6121,1,10,100000;
else if (.@i == 2) setarray .@i[1],6122,2,30,200000;
@@ -2438,7 +2438,7 @@ s_atelier,26,68,3 script Vito#sc11_lgt 4_M_KHMAN,{
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
mes "What are you looking for?";
next;
- set .@i, select("Make a new blush for make-up.:Make a new blush for painting.:Nothing.");
+ .@i = select("Make a new blush for make-up.:Make a new blush for painting.:Nothing.");
mes "[Vito]";
if (.@i == 1) setarray .@i[1],6121,1,10,100000;
else if (.@i == 2) setarray .@i[1],6122,2,30,200000;
diff --git a/npc/re/jobs/3-2/sorcerer.txt b/npc/re/jobs/3-2/sorcerer.txt
index 05c568431..b3ccc3c62 100644
--- a/npc/re/jobs/3-2/sorcerer.txt
+++ b/npc/re/jobs/3-2/sorcerer.txt
@@ -64,7 +64,7 @@ gef_tower,102,34,5 script Merito 2_M_SAGE_B,{
mes "[Merito]";
mes "Give me a second to register your name.";
mes "Talk to me again in a second.";
- set job_soc,1;
+ job_soc = 1;
close;
} else if (job_soc == 1) {
mes "Good, then I'll give you a short explanation about the Sorcerer.";
@@ -111,7 +111,7 @@ gef_tower,102,34,5 script Merito 2_M_SAGE_B,{
mes "[Merito]";
mes "Okay. ";
mes "Then I'll hand it over to Karacas who is on the 4th floor. He will guide you through the process of the test.";
- set job_soc,2;
+ job_soc = 2;
setquest 12096;
close;
case 2:
@@ -224,7 +224,7 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
next;
mes "[Karacas]";
mes "When you bring these materials, I'll tell you the next step.";
- set job_soc,3;
+ job_soc = 3;
changequest 12096,12097;
close;
} else if (job_soc == 3) {
@@ -295,7 +295,7 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
mes "Then I'll write down the progress that I've summarized shortly. Wait...";
next;
mes "^000099You got a paper on which the way of communicating with spirits is written. For more information please open your quest window^000000.";
- set job_soc,4;
+ job_soc = 4;
changequest 12097,12098;
close;
}
@@ -321,7 +321,7 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
delitem 6276,1; //Clear_Reagent
delitem 6278,1; //Black_Reagent
delitem 6277,1; //Red_Reagent
- set job_soc,5;
+ job_soc = 5;
completequest 12098;
close;
}
@@ -351,7 +351,7 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
mes "You must have the etiquette of your job now before you accept the new job! ";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "Good, before we get started...";
mes "Please unequip your riding pet~";
close;
@@ -379,7 +379,7 @@ gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
if (job_soc == 4 && countitem(.@id[0]) > 2) {
progressbar "ffff00",5;
delitem .@id[0],3; //Boody_Red,Crystal_Blue,Yellow_Live,Wind_Of_Verdure
- set .@soc_ran, rand(1,70);
+ .@soc_ran = rand(1,70);
if (.@soc_ran < 10) {
if (countitem(.@id[2]) == 0) {
mes "You got a reagent by communicating with an unseen spirit.";
diff --git a/npc/re/jobs/3-2/sura.txt b/npc/re/jobs/3-2/sura.txt
index 8bbc45cfe..2e25a6f28 100644
--- a/npc/re/jobs/3-2/sura.txt
+++ b/npc/re/jobs/3-2/sura.txt
@@ -140,7 +140,7 @@ ve_in,237,125,0 script King Crab#job_shu 1_M_PAY_ELDER,{
mes "...";
mes ".....";
mes "........(cheeks glowing)";
- set job_shu,1;
+ job_shu = 1;
setquest 11155;
close;
} else {
@@ -214,7 +214,7 @@ OnTimer600000:
ve_in,97,149,0 script #Suraryokan HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_shu == 1) {
- set .@n$, "["+strcharinfo(0)+"]";
+ .@n$ = "["+strcharinfo(0)+"]";
mes "[???]";
mes "Who is it?!";
next;
@@ -263,7 +263,7 @@ OnTouch:
next;
mes "[???]";
mes "What the hell do you want?";
- set job_shu,2;
+ job_shu = 2;
close;
}
end;
@@ -367,7 +367,7 @@ ve_in,98,159,0 script Fighter#job_shu 4_F_SURA,{
mes "[???]";
mes "Okay, then^f57d7d go and kill 100 Desert Wolves.^000000";
mes "After that, I'll think about it again.";
- set job_shu,3;
+ job_shu = 3;
changequest 11155,11156;
close;
case 2:
@@ -377,7 +377,7 @@ ve_in,98,159,0 script Fighter#job_shu 4_F_SURA,{
close;
}
} else if (job_shu == 3) {
- if (checkquest(11156,HUNTING) == 2) {
+ if (questprogress(11156,HUNTING) == 2) {
mes "[???]";
mes "Wow~";
mes "Did you really kill all those wolves?";
@@ -393,7 +393,7 @@ ve_in,98,159,0 script Fighter#job_shu 4_F_SURA,{
next;
mes "[Bruno]";
mes "Tell him that 'Bruno' sent you there and after that, just suit yourself.";
- set job_shu,4;
+ job_shu = 4;
changequest 11156,11157;
close;
}
@@ -468,7 +468,7 @@ yuno_fild07,254,176,7 script Buddy#job_shu 4_M_MONK,{
next;
mes "[Buddy]";
mes "This way...";
- set job_shu,5;
+ job_shu = 5;
changequest 11157,11158;
close2;
warp "sword_1-1",215,244;
@@ -794,7 +794,7 @@ sword_1-1,223,167,2 script Master#job_shu 4_M_SURA,{
mes "[Master]";
mes "I hope those days will not come but... I'll willingly be the ghost and kill all enemies.";
next;
- if (ismounting()) {
+ if (hascashmount()) {
mes "[Master]";
mes "So... please get down from your riding pet!";
mes "It is a loss of etiquette on this situation.";
@@ -802,7 +802,7 @@ sword_1-1,223,167,2 script Master#job_shu 4_M_SURA,{
}
mes "[Master]";
mes "You should train yourself steadily until that day.";
- set job_shu,100;
+ job_shu = 100;
jobchange roclass(eaclass()|EAJL_THIRD);
completequest 11158;
getitem 5754,1; //Blazing_Soul
diff --git a/npc/re/jobs/3-2/wanderer.txt b/npc/re/jobs/3-2/wanderer.txt
index 9ce297068..07842f0dd 100644
--- a/npc/re/jobs/3-2/wanderer.txt
+++ b/npc/re/jobs/3-2/wanderer.txt
@@ -73,7 +73,7 @@ xmas,162,209,5 script Aspiring Wanderer, Soy 4_F_06,{
mes "Right in front of the Christmas tree!";
mes "White snow, beautiful melody, and my captivating dance.";
mes "Don't you think it would be a great performance?";
- set job_wan,1;
+ job_wan = 1;
close;
case 2:
mes "[Mimi]";
@@ -128,7 +128,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "But I'm so overwhelmed that I might go crazy. Ahhhh~~!";
next;
while (1) {
- set .@loop,0;
+ .@loop = 0;
switch(select("Sorry, I don't care.:What's the matter?:Why are you telling me this?")) {
case 1:
mes "[Performance Manager]";
@@ -142,7 +142,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "Those people don't feel any responsibility..";
mes "We're all expecting them and I've promoted them a lot.";
next;
- set .@loop,1;
+ .@loop = 1;
break;
case 3:
emotion e_ag;
@@ -155,7 +155,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
if (.@loop) break;
}
while (1) {
- set .@loop,0;
+ .@loop = 0;
switch(select("Is there a problem?:Who do you mean?:It has nothing to do with me.")) {
case 1:
mes "[Performance Manager]";
@@ -169,7 +169,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "Swing swing, dangling dangling!!";
mes "This is awful.";
next;
- set .@loop,1;
+ .@loop = 1;
break;
case 2:
mes "[Performance Manager]";
@@ -187,7 +187,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
if (.@loop) break;
}
while (1) {
- set .@loop,0;
+ .@loop = 0;
switch(select("Are you afraid of people?:The performers caused trouble?:Ignore him.")) {
case 1:
mes "[Performance Manager]";
@@ -207,7 +207,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "Besides the money I spent for promoting and setting up the stage..";
mes "How can I handle all the angry people?";
next;
- set .@loop,1;
+ .@loop = 1;
break;
case 3:
mes "[Performance Manager]";
@@ -270,7 +270,7 @@ xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "[Performance Manager]";
mes "I don't know where Guitar Song is, but it is clear that he likes to visit the Comodo Casino!";
mes "Hu, Hurry up!! Oh, I really feel dizzy! Guitar Song!!!";
- set job_wan,2;
+ job_wan = 2;
setquest 2218;
close;
} else if (job_wan == 2) {
@@ -358,7 +358,7 @@ comodo,140,86,5 script Cheerless Maestro 4_M_MINSTREL,{
mes "I don't want to think about it. It just hurts my feelings.";
next;
mes "- Guitar Song is adamantly refusing to talk. What should I do to hear the story about <Nollio>? -";
- set job_wan,3;
+ job_wan = 3;
close;
} else if (job_wan == 3) {
mes "[" + strcharinfo(0) + "]";
@@ -522,7 +522,7 @@ comodo,140,86,5 script Cheerless Maestro 4_M_MINSTREL,{
mes "[Guitar Song]";
mes "Although she loses her temper easily, her dance is so wonderful....";
mes "I don't know what I am doing wrong.";
- set job_wan,4;
+ job_wan = 4;
changequest 2218,2219;
next;
mes "[Guitar Song]";
@@ -546,7 +546,7 @@ comodo,140,86,5 script Cheerless Maestro 4_M_MINSTREL,{
next;
mes "[Guitar Song]";
mes "I'll go there right away and scold her.";
- set job_wan,9;
+ job_wan = 9;
close;
} else if (job_wan == 9) {
mes "[Guitar Song]";
@@ -669,7 +669,7 @@ hu_in01,305,251,5 script Vacant Looking Lady#wnd 4_F_CAPEGIRL,{
next;
mes "[Vacant Looking Lady]";
mes "<Nollio> is over! Boo hoo hoo!";
- set job_wan,5;
+ job_wan = 5;
close;
} else if (job_wan == 5) {
emotion e_sob;
@@ -728,7 +728,7 @@ hu_in01,305,251,5 script Vacant Looking Lady#wnd 4_F_CAPEGIRL,{
mes "I'll see you there.";
mes "Just go one field South and one field West from here in Hugel.";
mes "I'll meet you there.";
- set job_wan,6;
+ job_wan = 6;
changequest 2219,2220;
close;
} else if (job_wan == 6 || job_wan == 7) {
@@ -766,12 +766,12 @@ hu_fild05,342,130,5 script Dancer Kim#fild 4_F_CAPEGIRL,{
mes "[Dancer Kim]";
mes "Good! Then ready, set~~";
mes "Go!";
- set job_wan,7;
+ job_wan = 7;
changequest 2220,2221;
close;
} else if (job_wan == 7) {
- if (checkquest(2221,PLAYTIME) == 0 || checkquest(2221,PLAYTIME) == 1) {
- if (checkquest(2221,HUNTING) == 2) {
+ if (questprogress(2221,PLAYTIME) == 1) {
+ if (questprogress(2221,HUNTING) == 2) {
mes "[Dancer Kim]";
mes "Whew!";
mes "Looks like I've lost!";
@@ -807,7 +807,7 @@ hu_fild05,342,130,5 script Dancer Kim#fild 4_F_CAPEGIRL,{
mes "[Dancer Kim]";
mes "You're a good person. I'm really happy that I met you.";
mes "Thank god for sending such a stubborn person to me!";
- set job_wan,8;
+ job_wan = 8;
changequest 2221,2222;
close;
} else {
@@ -816,19 +816,19 @@ hu_fild05,342,130,5 script Dancer Kim#fild 4_F_CAPEGIRL,{
mes "But I'm sure I have a better chance to win.";
close;
}
- } else if (checkquest(2221,PLAYTIME) == 2) {
+ } else if (questprogress(2221,PLAYTIME) == 2) {
mes "[Dancer Kim]";
mes "Oh, you came back to me.";
mes "I'm so tired. I don't give up halfway. It's a good exercise for me. I will have to give up Nollio to another Wanderer, it's all over....";
next;
mes "- Dancer Kim dropped down by grief and fatigue -";
- set job_wan,6;
+ job_wan = 6;
changequest 2221,2220;
close;
} else {
mes "[Dancer Kim]";
mes "Huh...?";
- set job_wan,6;
+ job_wan = 6;
close;
}
} else if (job_wan == 8) {
@@ -898,7 +898,7 @@ xmas,147,135,5 script Dancer Kim#xmas 4_F_WANDERER,{
mes "- You need to empty your inventory if you want to continue the quest. -";
close;
}
- if (ismounting()) {
+ if (hascashmount()) {
mes "[Dancer Kim]";
mes "Please get off of that creature you're riding on.";
mes "Then talk to me again.";
@@ -981,7 +981,7 @@ xmas,147,135,5 script Dancer Kim#xmas 4_F_WANDERER,{
mapannounce "xmas","Dancer Kim: Introducing the rising Wanderer! " + strcharinfo(0) + "!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
mes "This rising Wanderer star, " + strcharinfo(0) + "!";
jobchange roclass(eaclass()|EAJL_THIRD);
- set job_wan,10;
+ job_wan = 10;
getitem 2795,1; //Green_Apple_Ring
getitem 5758,1; //Dying_Swan
completequest 2222;
diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt
index b7a4bd492..aa991e8c3 100644
--- a/npc/re/jobs/novice/novice.txt
+++ b/npc/re/jobs/novice/novice.txt
@@ -44,7 +44,7 @@
mes "[Sprakki]";
mes "Walk over that bridge and there's a castle used as the Training Center.";
mes "I will be waiting for you inside of that Castle. Please come to the castle by yourself.";
- set job_novice_q,1;
+ job_novice_q = 1;
setquest 7117;
next;
cutin "tutorial02",3;
@@ -103,7 +103,7 @@ new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
mes "[Sprakki]";
mes "Well then, I will give you a quest to talk to me.";
mes "After the conversation is over, talk to me again by left-clicking on me.";
- set job_novice_q,1;
+ job_novice_q = 1;
setquest 7117;
next;
cutin "tutorial02",3;
@@ -121,7 +121,7 @@ new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
mes "[Sprakki]";
mes "Great!";
mes "Now you know how to move and talk to others, right?";
- set job_novice_q,2;
+ job_novice_q = 2;
getexp 600,5;
completequest 7117;
next;
@@ -152,19 +152,19 @@ new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
warp strnpcinfo(4),100,100;
end;
case 2:
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
mes "[Sprakki]";
mes "Ok, You want to start right away.";
mes "Which Town do you want to start at?";
next;
- set .@select, select("Prontera:Morroc:Geffen:Payon:Alberta:Izlude");
+ .@select = select("Prontera:Morroc:Geffen:Payon:Alberta:Izlude");
mes "[Sprakki]";
mes "I see.";
mes "Go ahead and grow stronger! Look toward a brighter future ahead of you.";
@@ -242,16 +242,16 @@ new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
mes "[Instructor Brade]";
mes "First off, try moving around.";
mes "After moving around, talk to me again.";
- set nov_1st_cos,0;
- set nov_2nd_cos,0;
- set nov_3_swordman,0;
- set nov_3_archer,0;
- set nov_3_thief,0;
- set nov_3_magician,0;
- set nov_3_acolyte,0;
- set nov_3_merchant,0;
- set treasure_alb,0;
- set job_novice_q,2;
+ nov_1st_cos = 0;
+ nov_2nd_cos = 0;
+ nov_3_swordman = 0;
+ nov_3_archer = 0;
+ nov_3_thief = 0;
+ nov_3_magician = 0;
+ nov_3_acolyte = 0;
+ nov_3_merchant = 0;
+ treasure_alb = 0;
+ job_novice_q = 2;
setquest 7118;
next;
cutin "tutorial02",3;
@@ -272,7 +272,7 @@ new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
mes "[Instructor Brade]";
mes "Great.";
mes "You've completed the given quest successfully, so I will reward you with experience points.";
- set job_novice_q,3;
+ job_novice_q = 3;
getexp 900,10;
completequest 7118;
next;
@@ -300,7 +300,7 @@ new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
mes "Take these.";
mes "Basic equipments and recovery potions.";
}
- set job_novice_q,4;
+ job_novice_q = 4;
getitem 2352,1; //Novice_Plate
getitem 2510,1; //Novice_Hood
getitem 2414,1; //Novice_Boots
@@ -358,7 +358,7 @@ new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
mes "[Instructor Brade]";
mes "You are all set.";
mes "You are coming along just fine.";
- set job_novice_q,5;
+ job_novice_q = 5;
getexp 1200,15;
getitem 12323,50; //N_Fly_Wing
getitem 12324,20; //N_Butterfly_Wing
@@ -429,7 +429,7 @@ new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
mes "[Instructor Brade]";
mes "You've come along fine this far.";
mes "This is not much, but take this as a reward.";
- set job_novice_q,7;
+ job_novice_q = 7;
getitem 2393,1; //N_Adventurer's_Suit
completequest 7120;
close;
@@ -514,7 +514,7 @@ new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 4_M_JOB_KNIGHT1
mes "[Jinha]";
mes "Well, you can directly go to the next step of the course.";
mes "Go back to Instructor Brade.";
- set job_novice_q,6;
+ job_novice_q = 6;
close;
} else {
mes "[Jinha]";
@@ -537,8 +537,8 @@ new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 4_M_JOB_KNIGHT1
mes "Hot Key is ^4d4dffALT + S^000000.";
mes "Why don't you try the skill?";
skill "NV_FIRSTAID",1,0;
- set skill_nov,3; // Has future uses - do not remove! [Euphy]
- set job_novice_q,6;
+ skill_nov = 3; // Has future uses - do not remove! [Euphy]
+ job_novice_q = 6;
next;
mes "[Jinha]";
mes "Good, now you know how to use the First Aid Skill, you have to move on to the next step.";
@@ -625,7 +625,7 @@ new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
mes "[Chocolat]";
mes "Well then, let's hear from each of them.";
mes "Start by talking to the [Kafra] Employee.";
- set job_novice_q,8;
+ job_novice_q = 8;
setquest 7121;
next;
mes "^4d4dff- You've received a quest from Chocolat.";
@@ -669,7 +669,7 @@ new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
mes "[Chocolat]";
mes "Well then, let's hear from each of them.";
mes "Start by talking to the [Kafra] Employee.";
- set job_novice_q,8;
+ job_novice_q = 8;
setquest 7121;
close;
} else if (job_novice_q == 8) {
@@ -713,7 +713,7 @@ new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
next;
mes "[Chocolat]";
mes "Besides these guys, there's many merchants selling various kind of items, so go check them out.";
- set job_novice_q,12;
+ job_novice_q = 12;
completequest 7121;
getexp 1800,20;
getitem 7059,20; //Cargo_Free_Ticket
@@ -732,7 +732,7 @@ new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
mes "Real Combat Training will be given by Instructor Brade. You met him earlier.";
mes "I will send you to the Real Combat Training Field.";
close2;
- set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ .@map$ = "new_"+charat(strnpcinfo(4),4)+"-3";
savepoint .@map$,96,21;
warp .@map$,96,21;
end;
@@ -750,7 +750,7 @@ new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
mes "[Chocolat]";
mes "I will send you to the Real Combat Training Field.";
close2;
- set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ .@map$ = "new_"+charat(strnpcinfo(4),4)+"-3";
savepoint .@map$,96,21;
warp .@map$,96,21;
end;
@@ -791,13 +791,13 @@ new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 4W_KID
callsub L_Services,2; //Storage
next;
callsub L_Services,3; //Teleport
- set job_novice_q,9;
+ job_novice_q = 9;
next;
mes "[Kafra Employee]";
mes "Do you want to hear another explanation?";
next;
while(1) {
- set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ .@select = select("About Save:About Storage:About Teleport:About Cart:No More.");
if (.@select == 5) {
mes "[Kafra Employee]";
mes "I hope you are satisfied with my explanation";
@@ -895,7 +895,7 @@ new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 4W_KID
mes "informed about?";
next;
while(1) {
- set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ .@select = select("About Save:About Storage:About Teleport:About Cart:No More.");
if (.@select == 5) {
mes "[Kafra Employee]";
mes "I hope you are satisfied with my explanation";
@@ -1033,7 +1033,7 @@ new_5-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv5 4_F_KAFRA1
next;
mes "[Cool Event Corp. Staff]";
mes "Mostly all of us wear red coats in the places that the Kafra Employee's don't work in.";
- set job_novice_q,10;
+ job_novice_q = 10;
close;
} else {
mes "[Cool Event Corp. Staff]";
@@ -1066,7 +1066,7 @@ new_5-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool5 4_M_ZONDAMAN
mes "[Guide]";
mes "If you want to go to your first town, you can ask the Kafra Employee to the left.";
mes "You can move there with the Teleport Service.";
- set job_novice_q,11;
+ job_novice_q = 11;
close;
} else {
mes "[Guide]";
@@ -1125,7 +1125,7 @@ new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
mes "[Brade]";
mes "Then we will start your training.";
mes "I'll write down the registration form.";
- set job_novice_q,12;
+ job_novice_q = 12;
close;
}
} else {
@@ -1144,7 +1144,7 @@ new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
mes "[Brade]";
mes "Then we will start your training.";
mes "I'll write down the registration form.";
- set job_novice_q,12;
+ job_novice_q = 12;
close;
}
}
@@ -1168,7 +1168,7 @@ new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
mes "[Brade]";
mes "Then, let's go Poring hunting.";
mes "Please hunt 'Poring's on Level 1 of the training grounds.";
- set job_novice_q,13;
+ job_novice_q = 13;
setquest 7122;
getitem 569,100; //Novice_Potion
savepoint strnpcinfo(4),96,21;
@@ -1178,11 +1178,11 @@ new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
close2;
} else if (job_novice_q < 15) {
if (job_novice_q == 13) {
- if (checkquest(7122,HUNTING) == 2) {
+ if (questprogress(7122,HUNTING) == 2) {
mes "[Brade]";
mes "You can see it is not so hard, huh?";
mes "Nice job.";
- set job_novice_q,14;
+ job_novice_q = 14;
getitem 13040,1; //N_Cutter
getexp 3000,30;
completequest 7122;
@@ -1222,7 +1222,7 @@ new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
mes "[Brade]";
mes "Equip a manual of the job which you want to experience, and you will be able to use some basic skills of that corresponding job.";
mes "Try those skills and decide which job to choose.";
- set job_novice_q,15;
+ job_novice_q = 15;
close;
} else {
mes "[Brade]";
@@ -1412,8 +1412,8 @@ new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 4_M_JOB_KNIGHT1
end;
}
case 3:
- set .@quest, checkquest(7123);
- if (.@quest == -1) {
+ .@quest = questprogress(7123);
+ if (!.@quest) {
mes "[Swordman Guildsman]";
mes "You want me to give you a quest?";
mes "Umm. Let me see.";
@@ -1432,8 +1432,8 @@ new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 4_M_JOB_KNIGHT1
mes "I'll wait for you here.";
mes "Wish you a good luck.";
close;
- } else if (.@quest == 0 || .@quest == 1) {
- if (checkquest(7123,HUNTING) == 2) {
+ } else if (.@quest == 1) {
+ if (questprogress(7123,HUNTING) == 2) {
mes "[Swordman Guildsman]";
mes "Great.";
mes "I think that you're good enough to be a Swordman.";
@@ -1646,8 +1646,8 @@ new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 4_F_SISTER
end;
}
case 3:
- set .@quest, checkquest(7127);
- if (.@quest == -1) {
+ .@quest = questprogress(7127);
+ if (!.@quest) {
mes "[Thief Guild Member]";
mes "Quests?";
mes "Hmm, what will be good for you?";
@@ -1662,8 +1662,8 @@ new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 4_F_SISTER
mes "If you equip the Thief manual, you can have the effect of the skill, Double Attack.";
mes "Double Attack and Hide are the main skills of the Thief.";
close;
- } else if (.@quest == 0 || .@quest == 1) {
- if (checkquest(7127,HUNTING) == 2) {
+ } else if (.@quest == 1) {
+ if (questprogress(7127,HUNTING) == 2) {
mes "[Thief Guild Member]";
mes "You are very strong.";
mes "These are not many but let me give you a reward for your effort.";
@@ -1784,8 +1784,8 @@ new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 2_M_THIEFMASTER
end;
}
case 3:
- set .@quest, checkquest(7126);
- if (.@quest == -1) {
+ .@quest = questprogress(7126);
+ if (!.@quest) {
mes "[Merchant Guildsman]";
mes "Huh? Quest??";
mes "Humm... What would be suited for you...?";
@@ -1799,7 +1799,7 @@ new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 2_M_THIEFMASTER
mes "I will wait for you here.";
mes "Good luck!";
close;
- } else if (.@quest == 0 || .@quest == 1) {
+ } else if (.@quest == 1) {
if (Zeny >= 300) {
mes "[Merchant Guildsman]";
mes "Excellent!";
@@ -2046,8 +2046,8 @@ new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 4_F_JOB_HUNTER
end;
}
case 3:
- set .@quest, checkquest(7124);
- if (.@quest == -1) {
+ .@quest = questprogress(7124);
+ if (!.@quest) {
mes "[Mage Guild Member]";
mes "Huh? Quest?";
mes "Hmm... What would be suited for you...?";
@@ -2062,8 +2062,8 @@ new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 4_F_JOB_HUNTER
mes "I will wait for you here.";
mes "Good luck!";
close;
- } else if (.@quest == 0 || .@quest == 1) {
- if (checkquest(7124,HUNTING) == 2) {
+ } else if (.@quest == 1) {
+ if (questprogress(7124,HUNTING) == 2) {
mes "[Mage Guild Member]";
mes "You have done an excellent job.";
mes "So, did you find any interests about Mages?";
@@ -2296,12 +2296,12 @@ new_5-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv5 4_F_NOVICE,5,5
mes "[Trainer Brutus]";
mes "I see, then let me guide you to another level. Which level do you want to go to?";
next;
- for(set .@i,1; .@i<6; set .@i,.@i+1) {
+ for(.@i = 1; .@i<6; ++.@i) {
if (!compare(strnpcinfo(2),"nv"+.@i))
- set .@menu$, .@menu$+"Send me to Level "+.@i;
- set .@menu$, .@menu$+":";
+ .@menu$ += "Send me to Level "+.@i;
+ .@menu$ += ":";
}
- set .@i, select(.@menu$+"Cancel");
+ .@i = select(.@menu$+"Cancel");
if (.@i < 7)
warp "new_"+.@i+"-3",96,21;
close;
@@ -2443,10 +2443,10 @@ new_5-2,161,182,5 duplicate(NvEdwin) Instructor#nv5 4_F_03
function script F_NvErase {
if (getarg(0,0)) {
- if (checkquest(7123) > -1) erasequest 7123;
- if (checkquest(7124) > -1) erasequest 7124;
- if (checkquest(7126) > -1) erasequest 7126;
- if (checkquest(7127) > -1) erasequest 7127;
+ if (questprogress(7123)) erasequest 7123;
+ if (questprogress(7124)) erasequest 7124;
+ if (questprogress(7126)) erasequest 7126;
+ if (questprogress(7127)) erasequest 7127;
}
nude;
setarray .@manuals[0],countitem(2819),countitem(2820),countitem(2821),countitem(2822),countitem(2823),countitem(2824);
@@ -2599,7 +2599,7 @@ L_Supplies:
next;
mes "[Hanson]";
mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
- set nov_3_swordman,40;
+ nov_3_swordman = 40;
getitem 7059,20; //Cargo_Free_Ticket
getitem 7060,30; //Warp_Free_Ticket
getitem 2393,1; //N_Adventurer's_Suit
@@ -2672,7 +2672,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
mes "How about it?";
mes "Would you like to take the test?";
next;
- set .@loop,1;
+ .@loop = 1;
while(.@loop) {
switch(select("Take the test.:What's the test for?:No, thank you.")) {
case 1:
@@ -2680,7 +2680,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
mes "Great!";
mes "Let's start the test~";
next;
- set .@loop,0;
+ .@loop = 0;
break;
case 2:
mes "[Lark]";
@@ -2716,23 +2716,23 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Fight against the punks:Cast Magic.:Call for Guards.:Throw rocks at them.")) {
case 1:
- set .@question_01$, "You subdue them easily.";
- set .@swordman_p, .@swordman_p+1;
- set .@taekwon_p, .@taekwon_p+1;
- set .@ninja_p, .@ninja_p+1;
+ .@question_01$ = "You subdue them easily.";
+ ++.@swordman_p;
+ ++.@taekwon_p;
+ ++.@ninja_p;
break;
case 2:
- set .@question_01$, "You cast a spell on them.";
- set .@magician_p, .@magician_p+1;
+ .@question_01$ = "You cast a spell on them.";
+ ++.@magician_p;
break;
case 3:
- set .@question_01$, "You call for help and Guards come to your aid.";
- set .@acolyte_p, .@acolyte_p+1;
+ .@question_01$ = "You call for help and Guards come to your aid.";
+ ++.@acolyte_p;
break;
case 4:
- set .@question_01$, "You skillfully throw rocks at the punks.";
- set .@archer_p, .@archer_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ .@question_01$ = "You skillfully throw rocks at the punks.";
+ ++.@archer_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -2742,12 +2742,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Man:Woman")) {
case 1:
- set .@question_02_01$, "he";
- set .@question_02_02$, "son";
+ .@question_02_01$ = "he";
+ .@question_02_02$ = "son";
break;
case 2:
- set .@question_02_01$, "she";
- set .@question_02_02$, "daughter";
+ .@question_02_01$ = "she";
+ .@question_02_02$ = "daughter";
break;
}
mes "[Lark]";
@@ -2756,16 +2756,16 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Delivering an important object:Delivering a small souvenir:Delivering a message")) {
case 1:
- set .@swordman_p, .@swordman_p+1;
- set .@archer_p, .@archer_p+1;
- set .@magician_p, .@magician_p+1;
+ ++.@swordman_p;
+ ++.@archer_p;
+ ++.@magician_p;
break;
case 2:
- set .@thief_p, .@thief_p+1;
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@thief_p;
+ ++.@taekwon_p;
break;
case 3:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
mes "[Lark]";
@@ -2774,31 +2774,31 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Capital city, Prontera:Mountain city, Payon:Port city, Alberta:Magic city, Geffen:Satelite city, Izlude:Desert city, Morocc:Industrial city, Einbroch:World of natural life, Amatsu:Garden city, Hugel")) {
case 1:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 2:
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@taekwon_p;
break;
case 3:
- set .@merchant_p, .@merchant_p+1;
+ ++.@merchant_p;
break;
case 4:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 5:
- set .@swordman_p, .@swordman_p+1;
+ ++.@swordman_p;
break;
case 6:
- set .@thief_p, .@thief_p+1;
+ ++.@thief_p;
break;
case 7:
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@gunslinger_p;
break;
case 8:
- set .@ninja_p, .@ninja_p+1;
+ ++.@ninja_p;
break;
case 9:
- set .@archer_p, .@archer_p+1;
+ ++.@archer_p;
break;
}
mes "[Lark]";
@@ -2806,17 +2806,17 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Happening:Not happening.")) {
case 1:
- set .@thief_p, .@thief_p+1;
- set .@swordman_p, .@swordman_p+1;
- set .@ninja_p, .@ninja_p+1;
- set .@taekwon_p, .@taekwon_p+1;
- set .@magician_p, .@magician_p+1;
- set .@thief_p, .@thief_p+1;
+ ++.@thief_p;
+ ++.@swordman_p;
+ ++.@ninja_p;
+ ++.@taekwon_p;
+ ++.@magician_p;
+ ++.@thief_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@merchant_p, .@merchant_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@acolyte_p;
+ ++.@merchant_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -2825,61 +2825,61 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Study:Exercise:Service:Violence")) {
case 1:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@thief_p, .@thief_p+1;
- set .@swordman_p, .@swordman_p+1;
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@thief_p;
+ ++.@swordman_p;
+ ++.@taekwon_p;
break;
case 3:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
case 4:
- set .@thief_p, .@thief_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@thief_p;
+ ++.@ninja_p;
break;
}
switch(select("Change:Preservation")) {
case 1:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
switch(select("Consumer:Seller:Producer")) {
case 1:
- set .@swordman_p, .@swordman_p+1;
- set .@thief_p, .@thief_p+1;
- set .@acolyte_p, .@acolyte_p+1;
- set .@archer_p, .@archer_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@swordman_p;
+ ++.@thief_p;
+ ++.@acolyte_p;
+ ++.@archer_p;
+ ++.@gunslinger_p;
break;
case 2:
- set .@merchant_p, .@merchant_p+1;
+ ++.@merchant_p;
break;
case 3:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
}
switch(select("Speed:Caution")) {
case 1:
- set .@thief_p, .@thief_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@thief_p;
+ ++.@ninja_p;
break;
case 2:
- set .@archer_p, .@archer_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@archer_p;
+ ++.@gunslinger_p;
break;
}
switch(select("Theory:Experience")) {
case 1:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@swordman_p, .@swordman_p+1;
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@swordman_p;
+ ++.@taekwon_p;
break;
}
mes "[Lark]";
@@ -2891,11 +2891,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@merchant_p, .@merchant_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@merchant_p;
+ ++.@ninja_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
mes "[Lark]";
@@ -2903,12 +2903,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@ninja_p, .@ninja_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@ninja_p;
+ ++.@archer_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@acolyte_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -2916,12 +2916,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@swordman_p, .@swordman_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@swordman_p;
+ ++.@merchant_p;
break;
case 2:
- set .@magician_p, .@magician_p+1;
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@magician_p;
+ ++.@taekwon_p;
break;
}
mes "[Lark]";
@@ -2929,12 +2929,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@taekwon_p, .@taekwon_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@taekwon_p;
+ ++.@gunslinger_p;
break;
case 2:
- set .@ninja_p, .@ninja_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@ninja_p;
+ ++.@merchant_p;
break;
}
mes "[Lark]";
@@ -2942,11 +2942,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@archer_p, .@archer_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@archer_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -2954,12 +2954,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@merchant_p, .@merchant_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@merchant_p;
+ ++.@ninja_p;
break;
case 2:
- set .@swordman_p, .@swordman_p+1;
- set .@thief_p, .@thief_p+1;
+ ++.@swordman_p;
+ ++.@thief_p;
break;
}
mes "[Lark]";
@@ -2967,12 +2967,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@thief_p, .@thief_p+1;
- set .@swordman_p, .@swordman_p+1;
+ ++.@thief_p;
+ ++.@swordman_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@acolyte_p;
+ ++.@taekwon_p;
break;
}
mes "[Lark]";
@@ -2980,12 +2980,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@magician_p, .@magician_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@magician_p;
+ ++.@merchant_p;
break;
case 2:
- set .@thief_p, .@thief_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@thief_p;
+ ++.@archer_p;
break;
}
mes "[Lark]";
@@ -2993,12 +2993,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@ninja_p, .@ninja_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@ninja_p;
+ ++.@gunslinger_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@swordman_p, .@swordman_p+1;
+ ++.@acolyte_p;
+ ++.@swordman_p;
break;
}
mes "[Lark]";
@@ -3006,12 +3006,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@acolyte_p, .@acolyte_p+1;
- set .@swordman_p, .@swordman_p+1;
+ ++.@acolyte_p;
+ ++.@swordman_p;
break;
case 2:
- set .@archer_p, .@archer_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@archer_p;
+ ++.@ninja_p;
break;
}
mes "[Lark]";
@@ -3019,11 +3019,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@thief_p, .@thief_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@thief_p;
+ ++.@ninja_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
+ ++.@acolyte_p;
break;
}
mes "[Lark]";
@@ -3031,11 +3031,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@gunslinger_p, .@gunslinger_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@gunslinger_p;
+ ++.@archer_p;
break;
case 2:
- set .@taekwon_p, .@taekwon_p+1;
+ ++.@taekwon_p;
break;
}
mes "[Lark]";
@@ -3043,13 +3043,13 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@magician_p, .@magician_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@magician_p;
+ ++.@gunslinger_p;
+ ++.@archer_p;
break;
case 2:
- set .@taekwon_p, .@taekwon_p+1;
- set .@magician_p, .@magician_p+1;
+ ++.@taekwon_p;
+ ++.@magician_p;
break;
}
mes "[Lark]";
@@ -3057,11 +3057,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@swordman_p, .@swordman_p+1;
+ ++.@swordman_p;
break;
case 2:
- set .@thief_p, .@thief_p+1;
- set .@ninja_p, .@ninja_p+1;
+ ++.@thief_p;
+ ++.@ninja_p;
break;
}
mes "[Lark]";
@@ -3069,12 +3069,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@archer_p, .@archer_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@archer_p;
+ ++.@merchant_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@acolyte_p;
+ ++.@archer_p;
break;
}
mes "[Lark]";
@@ -3082,12 +3082,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@taekwon_p, .@taekwon_p+1;
- set .@thief_p, .@thief_p+1;
+ ++.@taekwon_p;
+ ++.@thief_p;
break;
case 2:
- set .@archer_p, .@archer_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@archer_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -3095,12 +3095,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@swordman_p, .@swordman_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@swordman_p;
+ ++.@merchant_p;
break;
case 2:
- set .@magician_p, .@magician_p+1;
- set .@thief_p, .@thief_p+1;
+ ++.@magician_p;
+ ++.@thief_p;
break;
}
mes "[Lark]";
@@ -3108,12 +3108,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@gunslinger_p, .@gunslinger_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@gunslinger_p;
+ ++.@archer_p;
break;
case 2:
- set .@acolyte_p, .@acolyte_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@acolyte_p;
+ ++.@gunslinger_p;
break;
}
mes "[Lark]";
@@ -3121,12 +3121,12 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@thief_p, .@thief_p+1;
- set .@gunslinger_p, .@gunslinger_p+1;
+ ++.@thief_p;
+ ++.@gunslinger_p;
break;
case 2:
- set .@gunslinger_p, .@gunslinger_p+1;
- set .@merchant_p, .@merchant_p+1;
+ ++.@gunslinger_p;
+ ++.@merchant_p;
break;
}
mes "[Lark]";
@@ -3134,11 +3134,11 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(select("Yes:No")) {
case 1:
- set .@magician_p, .@magician_p+1;
+ ++.@magician_p;
break;
case 2:
- set .@ninja_p, .@ninja_p+1;
- set .@archer_p, .@archer_p+1;
+ ++.@ninja_p;
+ ++.@archer_p;
break;
}
@@ -3146,14 +3146,14 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
// In the official script, higher .@who_job value always wins in a tie.
setarray .@points[0],
.@swordman_p, .@magician_p, .@archer_p, .@merchant_p, .@thief_p, .@acolyte_p, .@taekwon_p, .@gunslinger_p, .@ninja_p;
- set .@max, .@points[0];
- for(set .@i,1; .@i<9; set .@i,.@i+1) {
+ .@max = .@points[0];
+ for(.@i = 1; .@i<9; ++.@i) {
if (.@points[.@i] >= .@max) {
- set .@max, .@points[.@i];
- set .@ele, .@i;
+ .@max = .@points[.@i];
+ .@ele = .@i;
}
}
- set .@who_job, .@ele+1; // To match the official script's numbering.
+ .@who_job = .@ele+1; // To match the official script's numbering.
mes "[Lark]";
mes "Thank you, have a long life.";
@@ -3169,7 +3169,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
switch(.@who_job) {
case 1:
- set .@job$, "Swordman";
+ .@job$ = "Swordman";
mes "[Lark]";
mes "...simple and straightforward...";
mes "...strong beliefs can affect the world...";
@@ -3179,7 +3179,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 2:
- set .@job$, "Wizard";
+ .@job$ = "Wizard";
mes "[Lark]";
mes "...to understand all these things alone deulmyeo...";
mes "...hard work and independent thinking...";
@@ -3189,7 +3189,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 3:
- set .@job$, "Archer";
+ .@job$ = "Archer";
mes "[Lark]";
mes "...immeasurable, have many emotions...";
mes "...to people who are trying to understand...";
@@ -3200,7 +3200,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 4:
- set .@job$, "Merchant";
+ .@job$ = "Merchant";
mes "[Lark]";
mes "...to identify people's sense of hearing...";
mes "...outstanding determination and goals...";
@@ -3209,7 +3209,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 5:
- set .@job$, "Thief";
+ .@job$ = "Thief";
mes "[Lark]";
mes "...always makes life fun and who wants...";
mes "...always trying to find a new job...";
@@ -3219,7 +3219,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 6:
- set .@job$, "Acolyte";
+ .@job$ = "Acolyte";
mes "[Lark]";
mes "...mentality makes him warm and considerate for others...";
mes "I know I have loved anyone,...";
@@ -3229,7 +3229,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 7:
- set .@job$, "Taekwon Boy/Girl";
+ .@job$ = "Taekwon Boy/Girl";
mes "[Lark]";
mes "...to believe with a stubborn conviction...";
mes "...heart and spirit of the grassland is consistent: it...";
@@ -3240,7 +3240,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 8:
- set .@job$, "Gunslinger";
+ .@job$ = "Gunslinger";
mes "[Lark]";
mes "People often praised Justice.";
mes "Sometimes fear and confusion may exist...";
@@ -3250,7 +3250,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
next;
break;
case 9:
- set .@job$, "Ninja";
+ .@job$ = "Ninja";
mes "[Lark]";
mes "...to avoid the type of self-aspiring...";
mes "...married to a prominent goal and quietly avoiding...";
@@ -3297,7 +3297,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
mes "[Lark]";
mes "Yes, sir. Please select your desired job.";
next;
- set .@who_job, select("Swordman:Wizard:Archer:Merchant:Thief:Acolyte:Taekwon Boy/Girl:Gunslinger:Ninja:I'll think again.");
+ .@who_job = select("Swordman:Wizard:Archer:Merchant:Thief:Acolyte:Taekwon Boy/Girl:Gunslinger:Ninja:I'll think again.");
if (.@who_job == 10) {
mes "[Lark]";
mes "The Novice Training Center has a lot of sea experience, please pay attention along the way.";
@@ -3306,7 +3306,7 @@ new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
break;
}
callfunc "F_NvErase",1;
- set .@str$, "^A62A2A'"+strcharinfo(0)+"^000000'! Take care and may Freya bless you on your journey.";
+ .@str$ = "^A62A2A'"+strcharinfo(0)+"^000000'! Take care and may Freya bless you on your journey.";
switch(.@who_job) {
case 1:
mes "[Lark]";
diff --git a/npc/re/jobs/novice/supernovice_ex.txt b/npc/re/jobs/novice/supernovice_ex.txt
index 044e386fe..5578d7700 100644
--- a/npc/re/jobs/novice/supernovice_ex.txt
+++ b/npc/re/jobs/novice/supernovice_ex.txt
@@ -48,7 +48,7 @@ function script Esseray_Ex {
mes "You should find him.";
next;
setquest 5092;
- set EXSUPNOV_Q,1;
+ EXSUPNOV_Q = 1;
mes "[Esseray]";
mes "He can guide you along";
mes "the correct path...";
@@ -58,7 +58,7 @@ function script Esseray_Ex {
}
beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
- if (checkquest(5092) >= 0) {
+ if (questprogress(5092)) {
mes "[Fishing Novice]";
mes "Sh --------- !!";
mes "Be quiet please.";
@@ -165,7 +165,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "- Talk to him again. -";
close;
}
- else if (checkquest(5093) >= 0) {
+ else if (questprogress(5093)) {
mes "[Nodor]";
mes "Emmhmm ----- !!";
next;
@@ -251,7 +251,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "Do you know what this is for?";
next;
setarray .@Monsters$[0],"Poring","Lunatic","Fabre","Picky";
- set .@i, rand(4);
+ .@i = rand(4);
changequest 5093,5094+.@i;
mes "[Nodor]";
mes "You know what a ^FF0000"+.@Monsters$[.@i]+"^000000 monster is, right?";
@@ -268,7 +268,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "Don't come back until you've hunted 1,000.";
close;
}
- else if (checkquest(5094) >= 0 || checkquest(5095) >= 0 || checkquest(5096) >= 0 || checkquest(5097) >= 0) {
+ else if (questprogress(5094) || questprogress(5095) || questprogress(5096) || questprogress(5097)) {
mes "["+strcharinfo(0)+"]";
mes "Hey, Nodor!";
next;
@@ -277,7 +277,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "Oh my god!";
mes "So frightened... let me see?";
next;
- if (checkquest(5094,HUNTING) != 2 && checkquest(5095,HUNTING) != 2 && checkquest(5096,HUNTING) != 2 && checkquest(5097,HUNTING) != 2) {
+ if (questprogress(5094,HUNTING) != 2 && questprogress(5095,HUNTING) != 2 && questprogress(5096,HUNTING) != 2 && questprogress(5097,HUNTING) != 2) {
mes "[Nodor]";
mes "Hey! Super Novice!";
mes "Didn't I say to hunt 1,000?";
@@ -291,14 +291,14 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "You are better than I thought.";
mes "Anyway, what was the monster that I told you to hunt?";
next;
- set .@i, select("Poring:Lunatic:Fabre:Picky:Baphomet")-1;
+ .@i = select("Poring:Lunatic:Fabre:Picky:Baphomet")-1;
if (.@i == 4) {
mes "[Nodor]";
mes "Heheh? Can you seriously hunt Baphomet alone?";
mes "Don't tell a lie!! I will hit you!!";
close;
}
- if (checkquest(5094+.@i,HUNTING) != 2) {
+ if (questprogress(5094+.@i,HUNTING) != 2) {
mes "[Nodor]";
mes "Don't tell a lie!";
mes "I didn't tell you to hunt this!";
@@ -321,7 +321,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "I will let you know how to overcome your strength deficiencies.";
close;
}
- else if (checkquest(5098) >= 0) {
+ else if (questprogress(5098)) {
if (rand(10) != 1) {
mes "[Nodor]";
mes "Oh! You already came here?";
@@ -377,7 +377,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "You can give some to my bro. He's up in the airship.";
close;
}
- else if (checkquest(5099) >= 0) {
+ else if (questprogress(5099)) {
mes "[Nodor]";
mes "Have you visited already?";
next;
@@ -392,10 +392,10 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
mes "10,000,000 zeny is okay~";
close;
}
- else if (checkquest(5100) >= 0) {
- if (EXSUPNOV_Q_ == 3) set .@str$,"300,000";
- else if (EXSUPNOV_Q_ == 4) set .@str$,"1,000,000";
- else set .@str$,"100,000";
+ else if (questprogress(5100)) {
+ if (EXSUPNOV_Q_ == 3) .@str$ = "300,000";
+ else if (EXSUPNOV_Q_ == 4) .@str$ = "1,000,000";
+ else .@str$ = "100,000";
mes "[Nodor]";
mes "Hey, have you gone there?";
mes "I got another message from my bro.";
@@ -477,7 +477,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
nude;
callfunc "F_ClearJobVar"; // -- Clears all job variables for the current player
jobchange roclass(eaclass()|EAJL_THIRD);
- set EXSUPNOV_Q,5;
+ EXSUPNOV_Q = 5;
emotion e_heh;
mes "[Nodor]";
mes "Puhahahahahahahahahahah!!";
@@ -570,7 +570,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
specialeffect2 EF_RECOVERY;
mes "[Nodor]";
mes "Let Super Novice "+strcharinfo(0)+" be blessed with the Super Novice Guardian!";
- set EXSUPNOV_Q,6;
+ EXSUPNOV_Q = 6;
close;
}
else if (EXSUPNOV_Q > 5) {
@@ -588,7 +588,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
}
airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
- if (checkquest(5099) >= 0) {
+ if (questprogress(5099)) {
mes "[Nudor]";
mes "Ahhh~ I have no money to buy any food.";
mes "I'm hungry, but I have no idea when Brother is coming...";
@@ -610,7 +610,7 @@ airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
mes "- eyes, holding out his hands. -";
mes "- How much do you want to give? -";
next;
- set .@i, select("I have no money:Give 100,000 Zeny:Give 300,000 Zeny:Give 1,000,000 Zeny:Give all the money you have");
+ .@i = select("I have no money:Give 100,000 Zeny:Give 300,000 Zeny:Give 1,000,000 Zeny:Give all the money you have");
mes "[Nudor]";
if (.@i == 1) {
mes "- crying -";
@@ -622,9 +622,9 @@ airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
}
else if (.@i < 5) {
switch(.@i) {
- case 2: set .@str$,"100,000"; set .@n,100000; break;
- case 3: set .@str$,"300,000"; set .@n,300000; break;
- case 4: set .@str$,"1,000,000"; set .@n,1000000; break;
+ case 2: .@str$ = "100,000"; .@n = 100000; break;
+ case 3: .@str$ = "300,000"; .@n = 300000; break;
+ case 4: .@str$ = "1,000,000"; .@n = 1000000; break;
}
mes "Lovely~~ Did he give you "+.@str$+" Zeny? That's pretty much!";
next;
@@ -647,18 +647,18 @@ airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
mes "Eh? But you don't have any money. You're so poor, huh?";
close;
}
- set .@n,Zeny;
+ .@n = Zeny;
}
mes "[Nudor]";
mes "Woa~!! "+.@n+" Zeny! This helped me so much~ Tehee~";
mes "I can't believe it...";
changequest 5099,5100;
Zeny -= .@n;
- if (.@i < 5) set EXSUPNOV_Q_, .@i;
+ if (.@i < 5) EXSUPNOV_Q_ = .@i;
else {
- if (.@n > 1000000) set EXSUPNOV_Q_,4;
- else if (.@n > 300000) set EX_SUPNOV_Q_,3;
- else set EXSUPNOV_Q_,2;
+ if (.@n > 1000000) EXSUPNOV_Q_ = 4;
+ else if (.@n > 300000) EX_SUPNOV_Q_ = 3;
+ else EXSUPNOV_Q_ = 2;
}
next;
mes "[Nudor]";
@@ -670,7 +670,7 @@ airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
mes "- tricked, so go back to Nodor. -";
close;
}
- else if (checkquest(5100) >= 0) {
+ else if (questprogress(5100)) {
mes "[Nudor]";
mes "I cannot believe that my bro sent me money... I love it~";
next;
diff --git a/npc/re/jobs/repair.txt b/npc/re/jobs/repair.txt
index 184f7071f..fd3c51d7a 100644
--- a/npc/re/jobs/repair.txt
+++ b/npc/re/jobs/repair.txt
@@ -82,7 +82,7 @@ prt_in,38,104,4 script Valerie 4_F_VALKYRIE,{
close;
}
setarray .@items[0], 2796, 2797, 6152, 6151; //Magical_Stone,Magical_Stone_,Glittering_Crystal,Peice_Of_Great_Bradium
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
if (countitem(.@items[.@i]))
delitem .@items[.@i], countitem(.@items[.@i]);
}
@@ -100,7 +100,7 @@ prt_in,38,104,4 script Valerie 4_F_VALKYRIE,{
// Rebirth - variable
if ((Class >= Job_Swordman && Class <= Job_Crusader2) && ADVJOB != 0) {
- set ADVJOB,0;
+ ADVJOB = 0;
mes "[Valerie]";
mes "You're carrying big karma- You should erase it.";
next;
@@ -169,7 +169,7 @@ prt_in,38,104,4 script Valerie 4_F_VALKYRIE,{
L_Second:
if (getd(getarg(0)) != 0) {
setd getarg(0),0;
- if (checkquest(getarg(1)) == 2)
+ if (questprogress(getarg(1)) == 2)
erasequest getarg(1);
mes "[Valerie]";
mes "I will help clear your problems for you that came from your former attempts.";
@@ -184,15 +184,15 @@ L_Third:
if (getd(getarg(0)) != 0) {
setd getarg(0),0;
if (getarg(1)) {
- if (checkquest(getarg(1)) == 2)
+ if (questprogress(getarg(1)) == 2)
erasequest getarg(1);
}
- for(set .@i,getarg(2); .@i<=getarg(3); set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = getarg(2); .@i<=getarg(3); ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
if (getarg(4,0)) {
- if (checkquest(getarg(4)) > -1)
+ if (questprogress(getarg(4)))
erasequest getarg(4);
}
mes "[Valerie]";
@@ -239,33 +239,33 @@ sec_in02,12,40,5 script Job Repair 1_M_LIBRARYMASTER,1,1,{
mes "Please input your password.";
next;
if (callfunc("F_GM_NPC","1854",1) == 1) {
- set job_arch,100;
- set job_3rd_gc,100;
- set job__mechanic,100;
- set job_ranger01,100;
- set job_rune_edq,100;
- set job_wl,100;
- set job_gen,100;
- set job_min,100;
- set job_royal,100;
- set job_sha,100;
- set job_soc,100;
- set job_shu,100;
- set job_wan,100;
- set KNIGHT_Q,100;
- set PRIEST_Q,100;
- set WIZ_Q,100;
- set BSMITH_Q,100;
- set ASSIN_Q,100;
- set HNTR_Q,100;
- set CRUS_Q,100;
- set MONK_Q,100;
- set SAGE_Q,100;
- set ALCH_Q,100;
- set ROGUE_Q,100;
- set BARD_Q,100;
- set DANC_Q,100;
- set ADVJOB,15;
+ job_arch = 100;
+ job_3rd_gc = 100;
+ job__mechanic = 100;
+ job_ranger01 = 100;
+ job_rune_edq = 100;
+ job_wl = 100;
+ job_gen = 100;
+ job_min = 100;
+ job_royal = 100;
+ job_sha = 100;
+ job_soc = 100;
+ job_shu = 100;
+ job_wan = 100;
+ KNIGHT_Q = 100;
+ PRIEST_Q = 100;
+ WIZ_Q = 100;
+ BSMITH_Q = 100;
+ ASSIN_Q = 100;
+ HNTR_Q = 100;
+ CRUS_Q = 100;
+ MONK_Q = 100;
+ SAGE_Q = 100;
+ ALCH_Q = 100;
+ ROGUE_Q = 100;
+ BARD_Q = 100;
+ DANC_Q = 100;
+ ADVJOB = 15;
}
close;
}
diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt
index 792b7abd9..51b50fdcf 100644
--- a/npc/re/merchants/3rd_trader.txt
+++ b/npc/re/merchants/3rd_trader.txt
@@ -34,18 +34,18 @@
mes "Each Herb costs 4,000 zeny.";
mes "What would you like?";
next;
- set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
+ .@i = select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
mes "[Poison Herb Merchant]";
if (.@i < 6) {
- set .@item,7932+.@i;
- set .@price,4000;
- set .@max,2000;
- set .@max$,"2,000";
+ .@item = 7932+.@i;
+ .@price = 4000;
+ .@max = 2000;
+ .@max$ = "2,000";
} else if (.@i == 6) {
- set .@item,7931;
- set .@price,5000;
- set .@max,500;
- set .@max$,"500";
+ .@item = 7931;
+ .@price = 5000;
+ .@max = 500;
+ .@max$ = "500";
mes "Each Poison Kit costs 5,000 zeny.";
} else {
mes "Well, I see. Come back again~!";
@@ -66,7 +66,7 @@
mes "The number must be less than "+.@max$+"!";
close;
}
- set .@total, .@amount * .@price;
+ .@total = .@amount * .@price;
if (Zeny < .@total) {
mes "[Poison Herb Merchant]";
mes "You don't have enough money.";
@@ -99,18 +99,18 @@ lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG
mes "I sell all sorts of Rune Stones!";
mes "What would you like?";
next;
- set .@i, select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
+ .@i = select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
mes "[Rune Merchant]";
if (.@i == 1) {
mes "High-quality Runes!";
mes "They cost 2,500 zeny each!";
- set .@item,12734; //Runstone_Quality
- set .@price,2500;
+ .@item = 12734; //Runstone_Quality
+ .@price = 2500;
} else {
mes "Ordinary Rune Stones?";
mes "They cost 1,000 zeny each!";
- set .@item,12737; //Runstone_Ordinary
- set .@price,1000;
+ .@item = 12737; //Runstone_Ordinary
+ .@price = 1000;
setarray .@rune[0],12737,1000;
}
mes "Tell me how many you want,";
@@ -128,7 +128,7 @@ lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG
mes "The number must be less than 2,000!";
close;
}
- set .@total, .@amount * .@price;
+ .@total = .@amount * .@price;
if (Zeny < .@total) {
mes "[Rune Merchant]";
mes "Zeny! Zeny!";
@@ -166,7 +166,7 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
mes "[Rare Poison Herb Collector]";
mes "I wander around the world and collect rare poison herbs. Recently, I started dealing in the herb called Izidor. If you are interested, you can buy them.";
next;
- set .@i, select("How can I buy them?:Exchange it for Animal Blood:Exchange it for a Bitter Herb:Exchange it for a Deadly Noxious Herb:Exchange it for a Frozen Rose:Exchange it for Ment:Exchange it for Hinalle")-2;
+ .@i = select("How can I buy them?:Exchange it for Animal Blood:Exchange it for a Bitter Herb:Exchange it for a Deadly Noxious Herb:Exchange it for a Frozen Rose:Exchange it for Ment:Exchange it for Hinalle")-2;
if (.@i == -1) {
mes "[Rare Poison Herb Collector]";
mes "You can buy them for 10,000 zeny and one of these rare items, Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or an Hinalle.";
@@ -176,8 +176,8 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
close;
} else {
setarray .@exchange[0],702,621,631,749,605,703;
- set .@item, .@exchange[.@i];
- set .@price, 10000;
+ .@item = .@exchange[.@i];
+ .@price = 10000;
mes "[Rare Poison Herb Collector]";
mes "How many do you want?";
@@ -195,7 +195,7 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
mes "The number must be less than 2,000!";
close;
}
- set .@total, .@amount * .@price;
+ .@total = .@amount * .@price;
if (countitem(.@item) < .@amount || Zeny < .@total) {
mes "[Rare Poison Herb Collector]";
mes "Hey, come back when you have all the requirements for the exchange.";
@@ -228,7 +228,7 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{
mes "[Point Merchant]";
mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
next;
- set .@i, select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
+ .@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
mes "[Point Merchant]";
if (.@i == 4) {
mes "You can't find the stuff you need?";
diff --git a/npc/re/merchants/advanced_refiner.txt b/npc/re/merchants/advanced_refiner.txt
index ddd48b836..d637ace73 100644
--- a/npc/re/merchants/advanced_refiner.txt
+++ b/npc/re/merchants/advanced_refiner.txt
@@ -26,10 +26,10 @@ malangdo,221,174,6 script Holink#mal_cash 4_CAT_ADV1,{
mes "What should Holink~ refine today?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ = .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Holink]";
switch(.@part) {
@@ -77,33 +77,33 @@ malangdo,221,174,6 script Holink#mal_cash 4_CAT_ADV1,{
switch(getequipweaponlv(.@part)) {
default:
case 0: // Armor
- set .@price,15000;
- set .@material,7619; //Enriched_Elunium
- set .@type$,"armor";
+ .@price = 15000;
+ .@material = 7619; //Enriched_Elunium
+ .@type$ = "armor";
mes "You have chosen an armor, meow~";
break;
case 1: // Level 1 Weapon
- set .@price,500;
- set .@material,7620; //Enriched_Oridecon
- set .@type$,"weapon";
+ .@price = 500;
+ .@material = 7620; //Enriched_Oridecon
+ .@type$ = "weapon";
mes "A level 1 weapon...?";
break;
case 2: // Level 2 Weapon
- set .@price,2000;
- set .@material,7620; //Enriched_Oridecon
- set .@type$,"weapon";
+ .@price = 2000;
+ .@material = 7620; //Enriched_Oridecon
+ .@type$ = "weapon";
mes "Meow, a level 2 weapon...?";
break;
case 3: // Level 3 Weapon
- set .@price,20000;
- set .@material,7620; //Enriched_Oridecon
- set .@type$,"weapon";
+ .@price = 20000;
+ .@material = 7620; //Enriched_Oridecon
+ .@type$ = "weapon";
mes "Meow Meow~~ A level 3 weapon~~";
break;
case 4: // Level 4 Weapon
- set .@price,50000;
- set .@material,7620; //Enriched_Oridecon
- set .@type$,"weapon";
+ .@price = 50000;
+ .@material = 7620; //Enriched_Oridecon
+ .@type$ = "weapon";
mes "Me-Meow!... A level 4 weapon...!";
mes "I've only seen it twice while";
mes "learning from Aragam... Me-Meow!!";
diff --git a/npc/re/merchants/alchemist.txt b/npc/re/merchants/alchemist.txt
index ed2c0c20a..0658126ff 100644
--- a/npc/re/merchants/alchemist.txt
+++ b/npc/re/merchants/alchemist.txt
@@ -55,16 +55,16 @@ alde_alche,31,186,3 script Craft Book Merchant#alde 4_M_ALCHE_D,{
mes "Okay then, here's the list of available craft books.";
next;
switch(select("[Apple Bomb Craft Book] 100,000 zeny:[Pineapple Bomb Craft Book] 100,000 zeny:[Coconut Bomb Craft Book] 100,000 zeny:[Melon Bomb Craft Book] 100,000 zeny:[Banana Bomb Craft Book] 100,000 zeny:[Plant Gene Cultivation Method] 100,000 zeny:[Superior Potion Craft Manual] 100,000 zeny:[Mix Cooking Book] 100,000 zeny:[Health Improvement Research Book] 100,000 zeny:[Vigor Drink Recipe] 100,000 zeny:Close")){
- case 1: set .@item,6279; break;
- case 2: set .@item,6280; break;
- case 3: set .@item,6281; break;
- case 4: set .@item,6282; break;
- case 5: set .@item,6283; break;
- case 6: set .@item,6284; break;
- case 7: set .@item,6285; break;
- case 8: set .@item,11022; break;
- case 9: set .@item,11023; break;
- case 10: set .@item,11024; break;
+ case 1: .@item = 6279; break;
+ case 2: .@item = 6280; break;
+ case 3: .@item = 6281; break;
+ case 4: .@item = 6282; break;
+ case 5: .@item = 6283; break;
+ case 6: .@item = 6284; break;
+ case 7: .@item = 6285; break;
+ case 8: .@item = 11022; break;
+ case 9: .@item = 11023; break;
+ case 10: .@item = 11024; break;
case 11:
mes "[Craft Book Merchant]";
mes "Thank you for your patronage.";
@@ -92,7 +92,7 @@ alde_alche,31,186,3 script Craft Book Merchant#alde 4_M_ALCHE_D,{
mes "Would you like to continue?";
next;
if (select("Yes:No") == 1) {
- set .@total, .@amount * 100000;
+ .@total = .@amount * 100000;
if (Zeny < .@total) {
mes "[Craft Book Merchant]";
mes "I'm sorry, but you don't have enough money.";
diff --git a/npc/re/merchants/blessed_refiner.txt b/npc/re/merchants/blessed_refiner.txt
index bb5dd62d7..ec6b591a9 100644
--- a/npc/re/merchants/blessed_refiner.txt
+++ b/npc/re/merchants/blessed_refiner.txt
@@ -29,10 +29,10 @@
mes "How about it? Do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Blacksmith Dister]";
switch(.@part) {
@@ -70,42 +70,42 @@
mes "This item cannot be refined.";
close;
}
- set .@equip_refine, getequiprefinerycnt(.@part);
+ .@equip_refine = getequiprefinerycnt(.@part);
if (.@equip_refine < 6 || .@equip_refine > 12) {
mes "[Blacksmith Dister]";
mes "This equipment has refined to "+.@equip_refine+". I only handle items with refine levels from +6 to +12!";
close;
}
- set .@equip_lv, getequipweaponlv(.@part);
+ .@equip_lv = getequipweaponlv(.@part);
switch(.@equip_lv) {
default:
case 0:
- set .@price,20000;
- set .@material,6439; //Unbreakable_Def
- set .@type$,"Armor";
+ .@price = 20000;
+ .@material = 6439; //Unbreakable_Def
+ .@type$ = "Armor";
break;
case 1:
- set .@price,1000;
- set .@material,6438; //Unbreakable_Weap
- set .@type$,"Weapon";
+ .@price = 1000;
+ .@material = 6438; //Unbreakable_Weap
+ .@type$ = "Weapon";
break;
case 2:
- set .@price,2000;
- set .@material,6438; //Unbreakable_Weap
- set .@type$,"Weapon";
+ .@price = 2000;
+ .@material = 6438; //Unbreakable_Weap
+ .@type$ = "Weapon";
break;
case 3:
- set .@price,20000;
- set .@material,6438; //Unbreakable_Weap
- set .@type$,"Weapon";
+ .@price = 20000;
+ .@material = 6438; //Unbreakable_Weap
+ .@type$ = "Weapon";
break;
case 4:
- set .@price,40000;
- set .@material,6438; //Unbreakable_Weap
- set .@type$,"Weapon";
+ .@price = 40000;
+ .@material = 6438; //Unbreakable_Weap
+ .@type$ = "Weapon";
break;
}
- set .@ore$,"^ff9999Blessed "+.@type$+" Ore^000000";
+ .@ore$ = "^ff9999Blessed "+.@type$+" Ore^000000";
mes "[Blacksmith Dister]";
mes "This "+.@type$+" has been refined to "+.@equip_refine+". To refine it, I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee.";
mes "Do you want to proceed?";
diff --git a/npc/re/merchants/card_separation.txt b/npc/re/merchants/card_separation.txt
index 9954476ca..fa64db4f0 100644
--- a/npc/re/merchants/card_separation.txt
+++ b/npc/re/merchants/card_separation.txt
@@ -23,8 +23,8 @@
close;
}
if (strnpcinfo(1) == "Jeremy") {
- set .@Jeremy,1;
- set .@n$, "[Jeremy]";
+ .@Jeremy = 1;
+ .@n$ = "[Jeremy]";
setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat";
setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;
@@ -32,8 +32,8 @@
mes "Long time no see~";
mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?";
} else {
- set .@Jeremy,0;
- set .@n$, "[Richard]";
+ .@Jeremy = 0;
+ .@n$ = "[Richard]";
setarray .@equip_name$[0], "Left hand", "Right hand";
setarray .@equip_slot[0], EQI_HAND_L, EQI_HAND_R;
@@ -48,14 +48,14 @@
mes "There is a possibility of destroying them even using a special item. Also, ^ff0000the refine level might be lost^000000. Do you have any equipment to separate?";
next;
- for(set .@i,0; .@i<getarraysize(.@equip_slot); set .@i,.@i+1) {
+ for(.@i = 0; .@i<getarraysize(.@equip_slot); ++.@i) {
if (getequipisequiped(.@equip_slot[.@i]))
- set .@menu$, .@menu$+getequipname(.@equip_slot[.@i])+":";
+ .@menu$ += getequipname(.@equip_slot[.@i])+":";
else
- set .@menu$, .@menu$+"^999999"+.@equip_name$[.@i]+" (empty)^000000:";
+ .@menu$ += "^999999"+.@equip_name$[.@i]+" (empty)^000000:";
}
- set .@i, select("Stop the work:"+((.@Jeremy)?"How is it possible?":"")+":"+.@menu$);
+ .@i = select("Stop the work:"+((.@Jeremy)?"How is it possible?":"")+":"+.@menu$);
switch(.@i) {
case 1:
mes .@n$;
@@ -91,7 +91,7 @@
mes "I'm not sure about the quality of success. Anyway, this is so cheap, right?";
close;
default:
- set .@equip_num, .@equip_slot[.@i-3];
+ .@equip_num = .@equip_slot[.@i-3];
if (!getequipisequiped(.@equip_num)) {
mes .@n$;
if (.@Jeremy)
@@ -103,33 +103,40 @@
break;
}
- setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
- set .@mvp_list$,
- "|4408|4128|4456|4168|4142"+ //Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card
- "|4134|4137|4386|4407|4357"+ //Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card
- "|4146|4132|4147|4372|4145"+ //Maya_Card, Mistress_Card, Baphomet_Card, Bacsojin_Card, Berzebub_Card
- "|4374|4352|4367|4236|4425"+ //Apocalips_H_Card, B_Ygnizem_Card, B_Shecil_Card, Amon_Ra_Card, Atroce_Card
- "|4359|4123|4144|4135|4143"+ //B_Eremes_Card, Eddga_Card, Osiris_Card, Orc_Load_Card, Orc_Hero_Card
- "|4263|4131|4430|4276|4419"+ //Incant_Samurai_Card, Moonlight_Flower_Card, Ifrit_Card, Lord_Of_Death_Card, Ktullanux_Card
- "|4403|4399|4376|4441|4302"+ //Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card
- "|4305|4148|4318|4121|4365"+ //Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card
- "|4363|4324|4361|4330|4342|"; //B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card
+ setarray .@equip_card, getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
+ setarray .@mvp_list, Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card,
+ Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card,
+ Maya_Card, Mistress_Card, Baphomet_Card, Bacsojin_Card, Berzebub_Card,
+ Apocalips_H_Card, B_Ygnizem_Card, B_Shecil_Card, Amon_Ra_Card, Atroce_Card,
+ B_Eremes_Card, Eddga_Card, Osiris_Card, Orc_Load_Card, Orc_Hero_Card,
+ Incant_Samurai_Card, Moonlight_Flower_Card, Ifrit_Card, Lord_Of_Death_Card, Ktullanux_Card,
+ Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card,
+ Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card,
+ B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card;
+ .@boss_chk = false;
if (.@Jeremy) {
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
+ .@cardcount = 4;
+ for (.@i = 0; .@i < 4; ++.@i) {
+ if (.@equip_card[.@i] >= 4700 // Armor Enchant System
+ || .@equip_card[.@i] == 0) {
+ .@equip_card[.@i] = 0;
+ --.@cardcount;
+ }
}
- if (!getarraysize(.@equip_card)) {
+ if (!.@cardcount) {
mes .@n$;
mes "The card is not equipped. Do you want to check again?";
close;
}
- if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
- (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
- (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
- (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
- set .@boss_chk,1;
+ for (.@i = 0; .@i < 4; ++.@i) {
+ if (.@equip_card[.@i] == 0)
+ continue;
+ for (.@j = 0; .@j < getarraysize(.@mvp_list); ++.@j) {
+ if (.@equip_card[.@i] == .@mvp_list[.@j])
+ .@boss_chk = true;
+ }
+ }
} else {
// Official "Richard" script uses a hardcoded list including every possible item.
//if (!getequipisequiped(.@equip_num)) {
@@ -141,21 +148,21 @@
mes "[Richard]";
mes "Which number socket do you want to separate the card? From the left socket, they are sorted 1,2,3,4.";
next;
- set .@menu$,"";
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 0; .@i<4; ++.@i) {
if (.@equip_card[.@i] && .@equip_card[.@i] < 4700) // Armor Enchant System
- set .@menu$, .@menu$+"Socket "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":";
+ .@menu$ += "Socket "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":";
else
- set .@menu$, .@menu$+"^777777Socket "+(.@i+1)+" - No card^000000:";
+ .@menu$ += "^777777Socket "+(.@i+1)+" - No card^000000:";
}
- set .@i, select("Stop the work:"+.@menu$);
+ .@i = select("Stop the work:"+.@menu$);
switch(.@i) {
case 1:
mes .@n$;
mes "Whenever you need to work, please come to me.";
close;
default:
- set .@slot, .@i-2;
+ .@slot = .@i-2;
if (.@equip_card[.@slot] == 0 || .@equip_card[.@slot] >= 4700) {
mes .@n$;
mes "This socket is not equipped with any card. Why don't you check again?";
@@ -163,18 +170,19 @@
}
break;
}
- if (compare(.@mvp_list$,"|"+.@equip_card[.@slot]+"|"))
- set .@boss_chk,1;
+ for (.@i = 0; .@i < getarraysize(.@mvp_list); ++.@i) {
+ if (.@equip_card[.@slot] == .@mvp_list[.@i])
+ .@boss_chk = true;
+ }
}
- if (.@boss_chk == 0) {
+ if (!.@boss_chk) {
mes .@n$;
if (.@Jeremy)
mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
else
mes "Please choose the working fee.";
next;
- set .@menu$,
- "Next time...:"+
+ .@menu$ = "Next time...:"+
((Zeny >= 1000000)?"Use 1,000,000z (Do not use special item):":"^999999Use 1,000,000z (Insufficient)^000000:")+
((countitem(6441))?"Use Premium Lubricant:":"^999999Premium Lubricant (Insufficient)^000000:")+
((countitem(6440))?"Use Ordinary Lubricant":"^999999Ordinary Lubricant (Insufficient)^000000");
@@ -197,9 +205,9 @@
mes "Whenever you need the work, visit me here.";
close;
}
- set .@sf_c_num,150;
- set .@sf_r_num,150;
- set .@sf_w_num,150;
+ .@sf_c_num = 150;
+ .@sf_r_num = 150;
+ .@sf_w_num = 150;
Zeny -= 1000000;
break;
case 3:
@@ -216,9 +224,9 @@
mes "Whenever you need the work, visit me here.";
close;
}
- set .@sf_c_num,75;
- set .@sf_r_num,75;
- set .@sf_w_num,75;
+ .@sf_c_num = 75;
+ .@sf_r_num = 75;
+ .@sf_w_num = 75;
delitem 6441,1; //High_RankLubricant
break;
case 4:
@@ -235,13 +243,13 @@
mes "Whenever you need the work, visit me here.";
close;
}
- set .@sf_c_num,75;
- set .@sf_r_num,150;
- set .@sf_w_num,150;
+ .@sf_c_num = 75;
+ .@sf_r_num = 150;
+ .@sf_w_num = 150;
delitem 6440,1; //General_Lubricant
break;
}
- } else if (.@boss_chk == 1) {
+ } else {
mes .@n$;
mes "This equipment contains a precious MVP card. This card can't be separated with lubricant. If you bring the super surfactant ^0000ffSillit Pong^000000, I will be able to work.";
next;
@@ -261,10 +269,10 @@
mes .@n$;
if (.@Jeremy) {
mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
- set .@menu$,"Alright, let's do it!";
+ .@menu$ = "Alright, let's do it!";
} else {
mes "May I continue?";
- set .@menu$,"I got it. Just do it quickly!";
+ .@menu$ = "I got it. Just do it quickly!";
}
next;
switch(select("Next time...:"+.@menu$)) {
@@ -273,45 +281,45 @@
mes "Whenever you need the work, visit me here.";
close;
case 2:
- set .@sf_c_num,60;
- set .@sf_r_num,60;
- set .@sf_w_num,60;
+ .@sf_c_num = 60;
+ .@sf_r_num = 60;
+ .@sf_w_num = 60;
delitem 6443,1; //Sillit_Pong_Bottle
break;
}
}
- set .@equip_id, getequipid(.@equip_num);
- set .@equip_refine, getequiprefinerycnt(.@equip_num);
+ .@equip_id = getequipid(.@equip_num);
+ .@equip_refine = getequiprefinerycnt(.@equip_num);
delequip .@equip_num;
// Chance of retaining refine level.
if (rand(1,.@sf_r_num) >= 61)
- set .@equip_refine,0;
+ .@equip_refine = 0;
if (.@Jeremy) {
// Chance of retaining equipment.
if (rand(1,.@sf_w_num) < 61) {
- set .@equip_safe,1;
+ .@equip_safe = 1;
getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
}
// Chance of retaining cards.
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
if (.@equip_card[.@i]) {
if (rand(1,.@sf_c_num) < 61)
getitem .@equip_card[.@i],1;
else
- set .@card_break,1;
+ .@card_break = 1;
}
}
} else {
- set .@card, .@equip_card[.@slot];
- set .@equip_card[.@slot],0;
+ .@card = .@equip_card[.@slot];
+ .@equip_card[.@slot] = 0;
// Chance of retaining equipment.
if (rand(1,.@sf_w_num) < 61) {
- set .@equip_safe,1;
+ .@equip_safe = 1;
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
}
@@ -319,7 +327,7 @@
if (rand(1,.@sf_c_num) < 61)
getitem .@card,1;
else
- set .@card_break,1;
+ .@card_break = 1;
}
// Display corresponding effect.
diff --git a/npc/re/merchants/catalog.txt b/npc/re/merchants/catalog.txt
index 3ef33e953..01793816a 100644
--- a/npc/re/merchants/catalog.txt
+++ b/npc/re/merchants/catalog.txt
@@ -18,7 +18,7 @@ moc_para01,22,16,5 script Catalog Magician#catal01 4_M_BIBI,{
mes "- You have too many items. Please make space. -";
close;
}
- set .@ticket_cost, 200;
+ .@ticket_cost = 200;
mes "[Catalog Magician]";
mes "Look... the Magic Academy";
mes "in Geffen is now directly";
@@ -64,7 +64,7 @@ moc_para01,22,16,5 script Catalog Magician#catal01 4_M_BIBI,{
} else
break;
}
- set .@sell, .@ticket_cost * .@input;
+ .@sell = .@ticket_cost * .@input;
mes "The total number of catalog(s) that you're trying to purchase is " + .@input + " pieces.";
mes "It costs " + .@sell + " z.";
if (Zeny < .@sell) {
diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt
index fb20726a3..4d69e2a61 100644
--- a/npc/re/merchants/coin_exchange.txt
+++ b/npc/re/merchants/coin_exchange.txt
@@ -34,22 +34,22 @@ malangdo,220,167,5 script Coin Exchanger CX-1 2_VENDING_MACHINE1,{
6420, //Cgrade_Coin
6421, //Dgrade_Coin
6422; //Egrade_Coin
- set .@menu$,"Stop:";
- for(set .@i,1; .@i<=6; set .@i,.@i+1) {
+ .@menu$ = "Stop:";
+ for(.@i = 1; .@i<=6; ++.@i) {
if (countitem(.@coins[.@i]))
- set .@menu$, .@menu$+getitemname(.@coins[.@i])+":";
+ .@menu$ += getitemname(.@coins[.@i])+":";
else
- set .@menu$, .@menu$+"^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
+ .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
}
- set .@i, select(.@menu$);
+ .@i = select(.@menu$);
switch(.@i) {
case 1:
mes "[Coin Exchanger CX-1]";
mes "Thank you for coming.";
close;
default:
- set .@coin, .@coins[.@i-1];
- set .@coin_select, .@i-1;
+ .@coin = .@coins[.@i-1];
+ .@coin_select = .@i-1;
break;
}
if (countitem(.@coin) == 0) {
@@ -69,17 +69,17 @@ malangdo,220,167,5 script Coin Exchanger CX-1 2_VENDING_MACHINE1,{
setarray .@exchange_rate[0],30,10;
setarray .@exchange_loss[0],rand(1,4),rand(1,2); // Amount deducted per exchange.
setarray .@exchange_id[0],.@coins[.@coin_select-1],.@coins[.@coin_select+1];
- if (.@exchange_id[0] == .@coins[1]) set .@exchange_id[0],0; // Cannot exchange for Silvervine.
- set .@menu$,"Stop:";
- for(set .@i,0; .@i<2; set .@i,.@i+1) {
+ if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine.
+ .@menu$ = "Stop:";
+ for(.@i = 0; .@i<2; ++.@i) {
if (.@exchange_id[.@i] == 0)
- set .@menu$, .@menu$+"^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:";
+ .@menu$ += "^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:";
else if (countitem(.@coin) < .@exchange_rate[.@i])
- set .@menu$, .@menu$+"^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:";
+ .@menu$ += "^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:";
else
- set .@menu$, .@menu$+"Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):";
+ .@menu$ += "Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):";
}
- set .@i, select(.@menu$)-2;
+ .@i = select(.@menu$)-2;
if (.@i == -1) {
mes "[Coin Exchanger CX-1]";
mes "Thank you for coming.";
@@ -97,7 +97,7 @@ malangdo,220,167,5 script Coin Exchanger CX-1 2_VENDING_MACHINE1,{
mes "Thank you for coming.";
close;
}
- set .@exchange_total, .@exchange_rate[(!.@i)] - .@exchange_loss[(!.@i)];
+ .@exchange_total = .@exchange_rate[(!.@i)] - .@exchange_loss[(!.@i)];
delitem .@coin, .@exchange_rate[.@i];
getitem .@exchange_id[.@i], .@exchange_total;
mes "[Coin Exchanger CX-1]";
@@ -129,10 +129,10 @@ malangdo,218,165,5 script Special Vending Machine 2_DROP_MACHINE,{
"Ordinary Lubricant",6440,36,
"Sillit Pong",6443,192;
L_AddItem:
- set .@menu$,"Explanation:";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+3)
- set .@menu$, .@menu$+getarg(.@i)+":";
- set .@i, select(.@menu$)-2;
+ .@menu$ = "Explanation:";
+ for(.@i = 0; .@i<getargcount(); .@i += 3)
+ .@menu$ += getarg(.@i)+":";
+ .@i = select(.@menu$)-2;
if (.@i == -1) {
mes "[Special Vending Machine]";
mes "Seagod's Protection is an item used for entering the Culvert memorial dungeon during a certain period.";
@@ -147,14 +147,14 @@ L_AddItem:
mes "Sillit Pong is special item that separates sockets with MVP cards. Unable to separate MVP card by Premium and Ordinary Lubricant.";
close;
}
- set .@cost, getarg(.@i*3+2);
+ .@cost = getarg(.@i*3+2);
mes "[Special Vending Machine]";
mes "You choose ^005500"+getarg(.@i*3)+"^000000. For purchasing, you need ^005500"+.@cost+"^000000 unit(s) of Silvervine Fruit.";
next;
if (countitem(6417) < .@cost)
- set .@ven_menu$, "^999999Silvervine Fruit (missing "+(.@cost - countitem(6417))+")^000000";
+ .@ven_menu$ = "^999999Silvervine Fruit (missing "+(.@cost - countitem(6417))+")^000000";
else
- set .@ven_menu$, "Purchase - Silvervine Fruit (have "+countitem(6417)+")";
+ .@ven_menu$ = "Purchase - Silvervine Fruit (have "+countitem(6417)+")";
switch(select("Stop:"+.@ven_menu$)) {
case 1:
mes "[Special Vending Machine]";
@@ -191,14 +191,14 @@ malangdo,236,179,5 script Dark Merchant K 4_CAT_REST,{
next;
setarray .@coin_amount[0],10,100,500,1000;
while(1) {
- set .@menu$,"";
- for(set .@i,0; .@i<getarraysize(.@coin_amount); set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 0; .@i<getarraysize(.@coin_amount); ++.@i) {
if (countitem(6420) >= .@coin_amount[.@i])
- set .@menu$, .@menu$+"Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:";
+ .@menu$ += "Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:";
else
- set .@menu$, .@menu$+"^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:";
+ .@menu$ += "^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:";
}
- set .@i, select(.@menu$+"Quit")-1;
+ .@i = select(.@menu$+"Quit")-1;
if (.@i == getarraysize(.@coin_amount)) {
mes "[Merchant K]";
mes "Let's exchange some other time.";
@@ -243,23 +243,23 @@ malangdo,233,180,3 script Dark MachineTX100 2_VENDING_MACHINE1,{
6420, //Cgrade_Coin
6421, //Dgrade_Coin
6422; //Egrade_Coin
- set .@menu$,"Quit:";
- for(set .@i,1; .@i<=6; set .@i,.@i+1) {
+ .@menu$ = "Quit:";
+ for(.@i = 1; .@i<=6; ++.@i) {
if (countitem(.@coins[.@i]))
- set .@menu$, .@menu$+getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):";
+ .@menu$ += getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):";
else
- set .@menu$, .@menu$+"^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
+ .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
}
- set .@i, select(.@menu$)-1;
+ .@i = select(.@menu$)-1;
if (.@i == 0) {
mes "[Dark Machine TX100]";
mes "Thank you for coming.";
close;
}
- set .@coin, .@coins[.@i];
+ .@coin = .@coins[.@i];
setarray .@exchange_name$[0],"higher","lower";
setarray .@exchange_id[0],.@coins[.@i-1],.@coins[.@i+1];
- if (.@exchange_id[0] == .@coins[1]) set .@exchange_id[0],0; // Cannot exchange for Silvervine.
+ if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine.
if (.@i > getarraysize(.@coins)) {
mes "[Dark Machine TX100]";
mes "You've chosen abnormal menu.";
@@ -279,26 +279,26 @@ malangdo,233,180,3 script Dark MachineTX100 2_VENDING_MACHINE1,{
mes "---------------------";
mes "^ff3333We take a small vendor fee from your exchanged coins.^000000";
next;
- set .@menu$, "Quit:";
+ .@menu$ = "Quit:";
if (.@exchange_id[0] == 0)
- set .@menu$, .@menu$+"^ff3333Cannot exchange to higher level coin^000000:";
+ .@menu$ += "^ff3333Cannot exchange to higher level coin^000000:";
else {
if (countitem(.@coin) >= 99)
- set .@menu$, .@menu$+"Exchange 99 "+getitemname(.@coin)+" into higher level coin:";
+ .@menu$ += "Exchange 99 "+getitemname(.@coin)+" into higher level coin:";
else
- set .@menu$, .@menu$+"^aaaaaaExchange to higher level coin (Not enough)^000000:";
+ .@menu$ += "^aaaaaaExchange to higher level coin (Not enough)^000000:";
}
if (.@exchange_id[1] == 0)
- set .@menu$, .@menu$+"^ff3333Cannot exchange to lower level coin^000000:";
+ .@menu$ += "^ff3333Cannot exchange to lower level coin^000000:";
else {
if (countitem(.@coin) > 500)
- set .@menu$, .@menu$+"Exchange 500 "+getitemname(.@coin)+" into lower level coin:";
+ .@menu$ += "Exchange 500 "+getitemname(.@coin)+" into lower level coin:";
else if (countitem(.@coin))
- set .@menu$, .@menu$+"Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:";
+ .@menu$ += "Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:";
else
- set .@menu$, .@menu$+"^aaaaaaExchange to lower level coin (Not enough)^000000:";
+ .@menu$ += "^aaaaaaExchange to lower level coin (Not enough)^000000:";
}
- set .@i, select(.@menu$)-2;
+ .@i = select(.@menu$)-2;
if (.@i == -1) {
mes "[Dark Machine TX100]";
mes "Thank you for coming.";
@@ -323,17 +323,17 @@ malangdo,233,180,3 script Dark MachineTX100 2_VENDING_MACHINE1,{
}
switch(.@i) {
case 0:
- set .@payment_amount,99;
- set .@reward_amount, .@payment_amount/3;
- set .@coin_text$,"High";
+ .@payment_amount = 99;
+ .@reward_amount = .@payment_amount/3;
+ .@coin_text$ = "High";
break;
case 1:
- set .@payment_amount,(((countitem(.@coin) > 500))?500:countitem(.@coin));
- set .@reward_amount, .@payment_amount*3;
- set .@coin_text$,"Low";
+ .@payment_amount = (((countitem(.@coin) > 500))?500:countitem(.@coin));
+ .@reward_amount = .@payment_amount*3;
+ .@coin_text$ = "Low";
break;
}
- set .@fee, rand(1,3);
+ .@fee = rand(1,3);
delitem .@coin, .@payment_amount;
getitem .@exchange_id[.@i], .@reward_amount - .@fee;
mes "[Dark Machine TX100]";
@@ -389,20 +389,20 @@ malangdo,175,145,4 script Can Agency Guard 4_CAT_MERMASTER,{
mes "Umm, I'm not here forever, so come to me if you'd like to exchange while I still am.";
close;
case 2:
- set .@check,1;
- set .@count,1;
+ .@check = 1;
+ .@count = 1;
break;
case 3:
- set .@check,10;
- set .@count,10;
+ .@check = 10;
+ .@count = 10;
break;
case 4:
- set .@check,100;
- set .@count,100;
+ .@check = 100;
+ .@count = 100;
break;
case 5:
- set .@check,1;
- set .@count,countitem(12633);
+ .@check = 1;
+ .@count = countitem(12633);
break;
}
if (countitem(12633) < .@check) {
@@ -501,16 +501,16 @@ function script F_mal_coin {
mes "The price of ^0000FF["+getarg(2)+"]^000000 is";
if (getarg(4) && getarg(5)) { // Type 1: Egrade_Coin or Malang_Sp_Can
mes getarg(4)+" E Grade Coin or "+getarg(5)+" Malangdo Canned Specialties.";
- set .@type,1;
- set .@menu$,"Yes.:No, I'll purchase with cans.:I don't want to purchase any.";
+ .@type = 1;
+ .@menu$ = "Yes.:No, I'll purchase with cans.:I don't want to purchase any.";
} else if (getarg(5)) { // Type 2: Malang_Sp_Can only
mes getarg(5)+" Malangdo Canned Specialties.";
- set .@type,2;
- set .@menu$,"Yes.::No.";
+ .@type = 2;
+ .@menu$ = "Yes.::No.";
} else { // Type 3: Silvervine only
mes getarg(6)+" Silvervine Fruit.";
- set .@type,3;
- set .@menu$,"Yes.::I don't want to purchase any.";
+ .@type = 3;
+ .@menu$ = "Yes.::I don't want to purchase any.";
}
next;
mes getarg(1);
@@ -524,23 +524,23 @@ function script F_mal_coin {
next;
switch(select(.@menu$)) {
case 2:
- set .@type,2;
+ .@type = 2;
case 1:
switch(.@type) {
case 1:
- set .@item,6422; //Egrade_Coin
- set .@amount,getarg(4);
- set .@str$,"coins";
+ .@item = 6422; //Egrade_Coin
+ .@amount = getarg(4);
+ .@str$ = "coins";
break;
case 2:
- set .@item,12636; //Malang_Sp_Can
- set .@amount,getarg(5);
- set .@str$,"cans";
+ .@item = 12636; //Malang_Sp_Can
+ .@amount = getarg(5);
+ .@str$ = "cans";
break;
case 3:
- set .@item,6417; //Silvervine
- set .@amount,getarg(6);
- set .@str$,"Silvervine Fruit";
+ .@item = 6417; //Silvervine
+ .@amount = getarg(6);
+ .@str$ = "Silvervine Fruit";
break;
}
if (countitem(.@item) < .@amount) {
@@ -576,7 +576,7 @@ malangdo,162,146,5 script Wandering Merchant#mal 4_M_MERCAT1,{
"Spearfish","Tuna","Hairtail","Saurel","Malang Snow Crab","Brindle Eel",
"Hairtail (7Days)","Spearfish (7Days)","Saurel (7Days)","Tuna (7Days)","Brindle Eel (7Days)","Malang Snow Crab (7Days)";
while(1) {
- set .@i, select(
+ .@i = select(
"[Spearfish(1hr)] 8 E-Coins/50 Cans",
"[Tuna(1hr)] 8 E-Coins/50 Cans",
"[Hairtail(1hr)] 8 E-Coins/50 Cans",
@@ -703,7 +703,7 @@ malangdo,173,145,4 script Stinky Merchant 4_M_MERCAT2,{
setarray .@items[1],2873,16015;
setarray .@names$[1],"Cat Hand Glove","Cat Club";
while(1) {
- set .@i, select(
+ .@i = select(
"[Cat Hand Glove] 32 E-Coins/200 Cans",
"[Cat Club] 32 E-Coins/200 Cans",
"End purchasing."
@@ -754,7 +754,7 @@ malangdo,150,135,5 script Roving Merchant 4_M_MERCAT1,{
setarray .@items[1],12639,12637,12638,12640;
setarray .@names$[1],"Flying Fish","Sow Bug","Dried Squid","Starfish";
while(1) {
- set .@i, select(
+ .@i = select(
"[Flying Fish] 200 Cans",
"[Sow Bug] 200 Cans",
"[Dried Squid] 200 Cans",
@@ -832,7 +832,7 @@ ecl_in01,66,95,2 script Armor Merchant Naphara 4_F_FAIRYKID,{
mes "Hello, this is Naphara's store, a place of high class goods.";
mes "What would you need?";
next;
- set .@i, select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
+ .@i = select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
mes "[Armor Merchant]";
switch(.@i) {
case 1: // Str Glove
@@ -840,42 +840,42 @@ ecl_in01,66,95,2 script Armor Merchant Naphara 4_F_FAIRYKID,{
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFATK+1 increases for every STR+10^000000";
mes "^3131FFATK +1% added above STR 110^000000";
- set .@item,2917; //Str_Glove
+ .@item = 2917; //Str_Glove
break;
case 2:
mes "^3131FFInt Glove^000000";
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFMATK+1 increases for every INT+10^000000";
mes "^3131FFMATK +1% added above INT 110^000000";
- set .@item,2918; //Int_Glove
+ .@item = 2918; //Int_Glove
break;
case 3:
mes "^3131FFAgi Glove^000000";
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFFLEE+1 increases for every AGI+10^000000";
mes "^3131FFComplete Flee +1 added above AGI 110^000000";
- set .@item,2919; //Agi_Glove
+ .@item = 2919; //Agi_Glove
break;
case 4:
mes "^3131FFVit Glove^000000";
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFMHP+50 for every VIT+10^000000";
mes "^3131FFMHP+1% added above VIT 110^000000";
- set .@item,2920; //Vit_Glove
+ .@item = 2920; //Vit_Glove
break;
case 5:
mes "^3131FFDex Glove^000000";
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFHIT+1 increases for every DEX+10^000000";
mes "^3131FFRanged attack power +1% added above DEX 110^000000";
- set .@item,2921; //Dex_Glove
+ .@item = 2921; //Dex_Glove
break;
case 6:
mes "^3131FFLuk Glove^000000";
mes "^3131FFMHP + 100, MSP + 20^000000";
mes "^3131FFCRI+1 increases for every LUK+10^000000";
mes "^3131FFCritical damage +1% added above LUK 110^000000";
- set .@item,2922; //Luk_Glove
+ .@item = 2922; //Luk_Glove
break;
}
mes "^3131FFRequired Level: 100^000000";
@@ -921,9 +921,9 @@ ecl_in01,64,97,4 script Slot Expert Nattuer#ecl 4_F_FAIRYKID,{
next;
setarray .@noslots[0],2917,2918,2919,2920,2921,2922;
setarray .@slotted[0],2923,2924,2925,2926,2927,2928;
- set .@i, select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
- set .@item, .@noslots[.@i];
- set .@new_item, .@slotted[.@i];
+ .@i = select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
+ .@item = .@noslots[.@i];
+ .@new_item = .@slotted[.@i];
mes "[Slot Expert]";
mes "Let's confirm for the last time. Is the one you want "+getitemname(.@item)+"?";
next;
@@ -1063,16 +1063,16 @@ ecl_in01,67,39,4 script Replication Expert Palt 4_M_FAIRYKID4,{
0, //-- not implemented? --
19545; //C_Boys_Cap
if (countitem(6081) >= 50 && countitem(747) >= 4 && countitem(6395) >= 1 && countitem(721) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(729) >= 10)
- set .@item_check,1;
- for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+1) {
+ .@item_check = 1;
+ for(.@i = 0; .@i<getarraysize(.@items); ++.@i) {
if (.@item_check && countitem(.@items[.@i]))
- set .@menu$, .@menu$+getitemname(.@items[.@i])+":"; //custom
+ .@menu$ += getitemname(.@items[.@i])+":"; //custom
else
- set .@menu$, .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
+ .@menu$ += getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
}
- set .@i, select(.@menu$)-1;
- set .@item, .@items[.@i];
- set .@new_item, .@costumes[.@i];
+ .@i = select(.@menu$)-1;
+ .@item = .@items[.@i];
+ .@new_item = .@costumes[.@i];
mes "[Paltu]";
mes "Is ^0571B0"+getitemname(.@item)+"^000000 what you wanted?";
next;
@@ -1115,26 +1115,26 @@ ecl_in01,33,98,4 script Herb Merchant Plafina#e 4_M_FAIRYKID2,{
case 1:
mes "[Herb Merchant]";
mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000.";
- set .@item,12812; //Snow_Flip
- set .@cost,5;
+ .@item = 12812; //Snow_Flip
+ .@cost = 5;
break;
case 2:
mes "[Herb Merchant]";
mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000.";
- set .@item,12813; //Peony_Mommy
- set .@cost,5;
+ .@item = 12813; //Peony_Mommy
+ .@cost = 5;
break;
case 3:
mes "[Herb Merchant]";
mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000.";
- set .@item,12814; //Slapping_Herb
- set .@cost,1;
+ .@item = 12814; //Slapping_Herb
+ .@cost = 1;
break;
case 4:
mes "[Herb Merchant]";
mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000.";
- set .@item,12815; //Yggdrasil_Dust
- set .@cost,1;
+ .@item = 12815; //Yggdrasil_Dust
+ .@cost = 1;
break;
case 5:
mes "[Herb Merchant]";
@@ -1146,15 +1146,15 @@ ecl_in01,33,98,4 script Herb Merchant Plafina#e 4_M_FAIRYKID2,{
next;
switch(select("Buy 1.:Buy 10.:Don't buy.")) {
case 1:
- set .@amount,1;
+ .@amount = 1;
break;
case 2:
- set .@amount,10;
+ .@amount = 10;
break;
case 3:
close;
}
- set .@price,.@amount*.@cost;
+ .@price = .@amount*.@cost;
mes "[Herb Merchant]";
mes "Would you like to buy "+.@amount+" "+getitemname(.@item)+"?";
next;
diff --git a/npc/re/merchants/diamond.txt b/npc/re/merchants/diamond.txt
index eda1740ca..80fcb88de 100644
--- a/npc/re/merchants/diamond.txt
+++ b/npc/re/merchants/diamond.txt
@@ -18,7 +18,7 @@
- script RareDiamondMerchant 1_M_MERCHANT,{
- set .@npc$, "[Rare Diamond Merchant]";
+ .@npc$ = "[Rare Diamond Merchant]";
mes .@npc$;
mes "Ladies and Gentlemen! ! !";
@@ -47,9 +47,9 @@
mes "It is the ^FF82FF'17 Carat Diamond'^000000!";
next;
- set .@menu$, "^FF82FF'17 Carat Diamond'^000000?";
+ .@menu$ = "^FF82FF'17 Carat Diamond'^000000?";
if (countitem(6024))
- set .@menu$, .@menu$ + ":Exchange my 17 Carat Diamond for zeny...";
+ .@menu$ += ":Exchange my 17 Carat Diamond for zeny...";
switch(select(.@menu$)) {
case 1:
diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt
index 24ed71c04..6dbb264df 100644
--- a/npc/re/merchants/enchan_mal.txt
+++ b/npc/re/merchants/enchan_mal.txt
@@ -49,21 +49,21 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
mes "Several rules are changed. Well, you better have experience.";
close;
case 2:
- set @mal_enchant_select,1;
+ @mal_enchant_select = 1;
break;
case 3:
- set @mal_enchant_select,2;
+ @mal_enchant_select = 2;
break;
}
if (!getequipisequiped(EQI_HAND_R)) {
mes "[Mayomayo]";
mes "Did you take off your equipment?";
- set @mal_enchant_select,0;
+ @mal_enchant_select = 0;
close;
}
- set @mal_equip_id, getequipid(EQI_HAND_R);
- set .@equip_type, getiteminfo(@mal_equip_id,11);
+ @mal_equip_id = getequipid(EQI_HAND_R);
+ .@equip_type = getiteminfo(@mal_equip_id,11);
//callsub L_Socket,<cost multiplier>,<4-x enchants possible>;
switch(.@equip_type) { // Check weapon type first to speed up the checks.
@@ -306,18 +306,18 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
mes "This is not a suitable equipment for the enchant. Don't forget we only take care of high class weapons, including level 4 weapons~";
else
mes "This equipment can not be initialized. Don't forget we only handle some luxury weapons, including level 4 weapons~";
- set @mal_equip_id,0;
- set @mal_enchant_select,0;
+ @mal_equip_id = 0;
+ @mal_enchant_select = 0;
close;
L_Socket:
- set .@select, @mal_enchant_select;
- set .@equip_id, @mal_equip_id;
- set .@equip_name$, getitemname(.@equip_id)+((getitemslots(.@equip_id))?"["+getitemslots(.@equip_id)+"]":"");
- set .@equip_refine, getequiprefinerycnt(EQI_HAND_R);
+ .@select = @mal_enchant_select;
+ .@equip_id = @mal_equip_id;
+ .@equip_name$ = getitemname(.@equip_id)+((getitemslots(.@equip_id))?"["+getitemslots(.@equip_id)+"]":"");
+ .@equip_refine = getequiprefinerycnt(EQI_HAND_R);
setarray .@equip_card[0], getequipcardid(EQI_HAND_R,0),getequipcardid(EQI_HAND_R,1),getequipcardid(EQI_HAND_R,2),getequipcardid(EQI_HAND_R,3);
- set @mal_equip_id,0;
- set @mal_enchant_select,0;
+ @mal_equip_id = 0;
+ @mal_enchant_select = 0;
if (.@select == 1) {
mes "[Mayomayo]";
@@ -327,16 +327,16 @@ L_Socket:
setarray .@coin[0],6422,6421,6420,6419,6418,6423; // Payment ID
setarray .@cost[0], 15, 10, 6, 3, 2, 1; // Payment multiplier
- set .@menu$, "Stop:";
- for(set .@i,0; .@i<getarraysize(.@coin); set .@i,.@i+1) {
- set .@count[.@i], countitem(.@coin[.@i]);
- set .@total[.@i], getarg(0)*.@cost[.@i];
+ .@menu$ = "Stop:";
+ for(.@i = 0; .@i<getarraysize(.@coin); ++.@i) {
+ .@count[.@i] = countitem(.@coin[.@i]);
+ .@total[.@i] = getarg(0)*.@cost[.@i];
if (.@count[.@i] < .@total[.@i])
- set .@menu$, .@menu$+"^999999"+getitemname(.@coin[.@i])+" (missing "+(.@total[.@i]-.@count[.@i])+")^000000:";
+ .@menu$ += "^999999"+getitemname(.@coin[.@i])+" (missing "+(.@total[.@i]-.@count[.@i])+")^000000:";
else
- set .@menu$, .@menu$+getitemname(.@coin[.@i])+" (have "+.@count[.@i]+", need "+.@total[.@i]+"):";
+ .@menu$ += getitemname(.@coin[.@i])+" (have "+.@count[.@i]+", need "+.@total[.@i]+"):";
}
- set .@coin_select, select(.@menu$)-2;
+ .@coin_select = select(.@menu$)-2;
if (.@coin_select == -1) {
mes "[Mayomayo]";
mes "Come back again if you change your mind.";
@@ -348,16 +348,16 @@ L_Socket:
}
switch(.@coin_select) {
case 0: //Egrade_Coin
- set .@enchant_type,10;
+ .@enchant_type = 10;
break;
case 1: //Dgrade_Coin
- set .@enchant_type,9;
+ .@enchant_type = 9;
break;
case 2: //Cgrade_Coin
- set .@enchant_type,8;
+ .@enchant_type = 8;
break;
case 3: //Bgrade_Coin
- set .@enchant_type,7;
+ .@enchant_type = 7;
break;
case 4: //Agrade_Coin
case 5: //Anger_Seagod
@@ -370,23 +370,23 @@ L_Socket:
mes "Ok. If you change your mind, let me know.";
close;
case 2:
- set .@enchant_type,((.@coin_select == 4)?4:1);
+ .@enchant_type = ((.@coin_select == 4)?4:1);
break;
case 3:
- set .@enchant_type,((.@coin_select == 4)?5:2);
+ .@enchant_type = ((.@coin_select == 4)?5:2);
break;
case 4:
- set .@enchant_type,((.@coin_select == 4)?6:3);
+ .@enchant_type = ((.@coin_select == 4)?6:3);
break;
}
break;
}
if (.@equip_card[3] == 0 && getarg(1) < 4) {
- set .@socket,4;
- set .@str$,"1st";
+ .@socket = 4;
+ .@str$ = "1st";
} else if (.@equip_card[2] == 0 && getarg(1) < 3) {
- set .@socket,3;
- set .@str$,"2nd";
+ .@socket = 3;
+ .@str$ = "2nd";
} else {
mes "[Mayomayo]";
mes "This equipment is at the end of enchant. Please initialize the enchant and you will be able to enchant it again, or bring another weapon.";
@@ -402,174 +402,174 @@ L_Socket:
}
switch(.@enchant_type) {
case 10: //Egrade_Coin
- set .@i, rand(1,531);
- if (.@i < 101) set .@enchant,4787; //Mdef4
- else if (.@i < 201) set .@enchant,4792; //Def6
- else if (.@i < 301) set .@enchant,4801; //SP100
- else if (.@i < 351) set .@enchant,4795; //HP100
- else if (.@i < 401) set .@enchant,4796; //HP200
- else if (.@i < 451) set .@enchant,4819; //Atk1
- else if (.@i < 476) set .@enchant,4720; //Dexterity1
- else if (.@i < 501) set .@enchant,4740; //Vitality1
- else if (.@i < 526) set .@enchant,4750; //Luck1
- else if (.@i < 528) set .@enchant,4700; //Strength1
- else if (.@i < 530) set .@enchant,4730; //Agility1
- else if (.@i < 532) set .@enchant,4710; //Inteligence1
- else set .@enchant,9;
+ .@i = rand(1,531);
+ if (.@i < 101) .@enchant = 4787; //Mdef4
+ else if (.@i < 201) .@enchant = 4792; //Def6
+ else if (.@i < 301) .@enchant = 4801; //SP100
+ else if (.@i < 351) .@enchant = 4795; //HP100
+ else if (.@i < 401) .@enchant = 4796; //HP200
+ else if (.@i < 451) .@enchant = 4819; //Atk1
+ else if (.@i < 476) .@enchant = 4720; //Dexterity1
+ else if (.@i < 501) .@enchant = 4740; //Vitality1
+ else if (.@i < 526) .@enchant = 4750; //Luck1
+ else if (.@i < 528) .@enchant = 4700; //Strength1
+ else if (.@i < 530) .@enchant = 4730; //Agility1
+ else if (.@i < 532) .@enchant = 4710; //Inteligence1
+ else .@enchant = 9;
break;
case 9: //Dgrade_Coin
- set .@i, rand(1,531);
- if (.@i < 101) set .@enchant,4795; //HP100
- else if (.@i < 201) set .@enchant,4796; //HP200
- else if (.@i < 301) set .@enchant,4819; //Atk1
- else if (.@i < 351) set .@enchant,4720; //Dexterity1
- else if (.@i < 401) set .@enchant,4740; //Vitality1
- else if (.@i < 451) set .@enchant,4750; //Luck1
- else if (.@i < 476) set .@enchant,4700; //Strength1
- else if (.@i < 501) set .@enchant,4730; //Agility1
- else if (.@i < 526) set .@enchant,4710; //Inteligence1
- else if (.@i < 528) set .@enchant,4701; //Strength2
- else if (.@i < 530) set .@enchant,4731; //Agility2
- else if (.@i < 532) set .@enchant,4711; //Inteligence2
- else set .@enchant,9;
+ .@i = rand(1,531);
+ if (.@i < 101) .@enchant = 4795; //HP100
+ else if (.@i < 201) .@enchant = 4796; //HP200
+ else if (.@i < 301) .@enchant = 4819; //Atk1
+ else if (.@i < 351) .@enchant = 4720; //Dexterity1
+ else if (.@i < 401) .@enchant = 4740; //Vitality1
+ else if (.@i < 451) .@enchant = 4750; //Luck1
+ else if (.@i < 476) .@enchant = 4700; //Strength1
+ else if (.@i < 501) .@enchant = 4730; //Agility1
+ else if (.@i < 526) .@enchant = 4710; //Inteligence1
+ else if (.@i < 528) .@enchant = 4701; //Strength2
+ else if (.@i < 530) .@enchant = 4731; //Agility2
+ else if (.@i < 532) .@enchant = 4711; //Inteligence2
+ else .@enchant = 9;
break;
case 8: //Cgrade_Coin
- set .@i, rand(1,531);
- if (.@i < 101) set .@enchant,4720; //Dexterity1
- else if (.@i < 201) set .@enchant,4740; //Vitality1
- else if (.@i < 301) set .@enchant,4750; //Luck1
- else if (.@i < 351) set .@enchant,4700; //Strength1
- else if (.@i < 401) set .@enchant,4730; //Agility1
- else if (.@i < 451) set .@enchant,4710; //Inteligence1
- else if (.@i < 476) set .@enchant,4701; //Strength2
- else if (.@i < 501) set .@enchant,4731; //Agility2
- else if (.@i < 526) set .@enchant,4711; //Inteligence2
- else if (.@i < 528) set .@enchant,4702; //Strength3
- else if (.@i < 530) set .@enchant,4732; //Agility3
- else if (.@i < 532) set .@enchant,4712; //Inteligence3
- else set .@enchant,9;
+ .@i = rand(1,531);
+ if (.@i < 101) .@enchant = 4720; //Dexterity1
+ else if (.@i < 201) .@enchant = 4740; //Vitality1
+ else if (.@i < 301) .@enchant = 4750; //Luck1
+ else if (.@i < 351) .@enchant = 4700; //Strength1
+ else if (.@i < 401) .@enchant = 4730; //Agility1
+ else if (.@i < 451) .@enchant = 4710; //Inteligence1
+ else if (.@i < 476) .@enchant = 4701; //Strength2
+ else if (.@i < 501) .@enchant = 4731; //Agility2
+ else if (.@i < 526) .@enchant = 4711; //Inteligence2
+ else if (.@i < 528) .@enchant = 4702; //Strength3
+ else if (.@i < 530) .@enchant = 4732; //Agility3
+ else if (.@i < 532) .@enchant = 4712; //Inteligence3
+ else .@enchant = 9;
break;
case 7: //Bgrade_Coin
- set .@i, rand(1,531);
- if (.@i < 101) set .@enchant,4700; //Strength1
- else if (.@i < 201) set .@enchant,4730; //Agility1
- else if (.@i < 301) set .@enchant,4710; //Inteligence1
- else if (.@i < 351) set .@enchant,4701; //Strength2
- else if (.@i < 401) set .@enchant,4731; //Agility2
- else if (.@i < 451) set .@enchant,4711; //Inteligence2
- else if (.@i < 476) set .@enchant,4702; //Strength3
- else if (.@i < 501) set .@enchant,4732; //Agility3
- else if (.@i < 526) set .@enchant,4712; //Inteligence3
- else if (.@i < 528) set .@enchant,4703; //Strength4
- else if (.@i < 530) set .@enchant,4733; //Agility4
- else if (.@i < 532) set .@enchant,4713; //Inteligence4
- else set .@enchant,9;
+ .@i = rand(1,531);
+ if (.@i < 101) .@enchant = 4700; //Strength1
+ else if (.@i < 201) .@enchant = 4730; //Agility1
+ else if (.@i < 301) .@enchant = 4710; //Inteligence1
+ else if (.@i < 351) .@enchant = 4701; //Strength2
+ else if (.@i < 401) .@enchant = 4731; //Agility2
+ else if (.@i < 451) .@enchant = 4711; //Inteligence2
+ else if (.@i < 476) .@enchant = 4702; //Strength3
+ else if (.@i < 501) .@enchant = 4732; //Agility3
+ else if (.@i < 526) .@enchant = 4712; //Inteligence3
+ else if (.@i < 528) .@enchant = 4703; //Strength4
+ else if (.@i < 530) .@enchant = 4733; //Agility4
+ else if (.@i < 532) .@enchant = 4713; //Inteligence4
+ else .@enchant = 9;
break;
case 6: //Agrade_Coin - Caster
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4711; //Inteligence2
- else if (.@i < 161) set .@enchant,4721; //Dexterity2
- else if (.@i < 241) set .@enchant,4814; //Spell2
- else if (.@i < 311) set .@enchant,4712; //Inteligence3
- else if (.@i < 371) set .@enchant,4722; //Dexterity3
- else if (.@i < 431) set .@enchant,4813; //Spell3
- else if (.@i < 476) set .@enchant,4713; //Inteligence4
- else if (.@i < 516) set .@enchant,4812; //Spell4
- else if (.@i < 526) set .@enchant,4760; //Matk1
- else if (.@i < 546) set .@enchant,4714; //Inteligence5
- else if (.@i < 551) set .@enchant,4826; //Spell5
- else if (.@i < 556) set .@enchant,4761; //Matk2
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4711; //Inteligence2
+ else if (.@i < 161) .@enchant = 4721; //Dexterity2
+ else if (.@i < 241) .@enchant = 4814; //Spell2
+ else if (.@i < 311) .@enchant = 4712; //Inteligence3
+ else if (.@i < 371) .@enchant = 4722; //Dexterity3
+ else if (.@i < 431) .@enchant = 4813; //Spell3
+ else if (.@i < 476) .@enchant = 4713; //Inteligence4
+ else if (.@i < 516) .@enchant = 4812; //Spell4
+ else if (.@i < 526) .@enchant = 4760; //Matk1
+ else if (.@i < 546) .@enchant = 4714; //Inteligence5
+ else if (.@i < 551) .@enchant = 4826; //Spell5
+ else if (.@i < 556) .@enchant = 4761; //Matk2
+ else .@enchant = 9;
break;
case 5: //Agrade_Coin - Long Range
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4731; //Agility2
- else if (.@i < 161) set .@enchant,4833; //Expert_Archer2
- else if (.@i < 241) set .@enchant,4817; //Sharp2
- else if (.@i < 311) set .@enchant,4732; //Agility3
- else if (.@i < 371) set .@enchant,4834; //Expert_Archer3
- else if (.@i < 431) set .@enchant,4816; //Sharp3
- else if (.@i < 476) set .@enchant,4733; //Agility4
- else if (.@i < 516) set .@enchant,4835; //Expert_Archer4
- else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
- else if (.@i < 546) set .@enchant,4734; //Agility5
- else if (.@i < 551) set .@enchant,4836; //Expert_Archer5
- else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4731; //Agility2
+ else if (.@i < 161) .@enchant = 4833; //Expert_Archer2
+ else if (.@i < 241) .@enchant = 4817; //Sharp2
+ else if (.@i < 311) .@enchant = 4732; //Agility3
+ else if (.@i < 371) .@enchant = 4834; //Expert_Archer3
+ else if (.@i < 431) .@enchant = 4816; //Sharp3
+ else if (.@i < 476) .@enchant = 4733; //Agility4
+ else if (.@i < 516) .@enchant = 4835; //Expert_Archer4
+ else if (.@i < 526) .@enchant = 4807; //Atk_Speed1
+ else if (.@i < 546) .@enchant = 4734; //Agility5
+ else if (.@i < 551) .@enchant = 4836; //Expert_Archer5
+ else if (.@i < 556) .@enchant = 4807; //Atk_Speed1
+ else .@enchant = 9;
break;
case 4: //Agrade_Coin - Short Range
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4731; //Agility2
- else if (.@i < 161) set .@enchant,4808; //Fighting_Spirit4
- else if (.@i < 241) set .@enchant,4817; //Sharp2
- else if (.@i < 311) set .@enchant,4732; //Agility3
- else if (.@i < 371) set .@enchant,4820; //Fighting_Spirit5
- else if (.@i < 431) set .@enchant,4816; //Sharp3
- else if (.@i < 476) set .@enchant,4733; //Agility4
- else if (.@i < 516) set .@enchant,4821; //Fighting_Spirit6
- else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
- else if (.@i < 546) set .@enchant,4734; //Agility5
- else if (.@i < 551) set .@enchant,4822; //Fighting_Spirit7
- else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4731; //Agility2
+ else if (.@i < 161) .@enchant = 4808; //Fighting_Spirit4
+ else if (.@i < 241) .@enchant = 4817; //Sharp2
+ else if (.@i < 311) .@enchant = 4732; //Agility3
+ else if (.@i < 371) .@enchant = 4820; //Fighting_Spirit5
+ else if (.@i < 431) .@enchant = 4816; //Sharp3
+ else if (.@i < 476) .@enchant = 4733; //Agility4
+ else if (.@i < 516) .@enchant = 4821; //Fighting_Spirit6
+ else if (.@i < 526) .@enchant = 4807; //Atk_Speed1
+ else if (.@i < 546) .@enchant = 4734; //Agility5
+ else if (.@i < 551) .@enchant = 4822; //Fighting_Spirit7
+ else if (.@i < 556) .@enchant = 4807; //Atk_Speed1
+ else .@enchant = 9;
break;
case 3: //Anger_Seagod - Caster
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4712; //Inteligence3
- else if (.@i < 161) set .@enchant,4722; //Dexterity3
- else if (.@i < 241) set .@enchant,4813; //Spell3
- else if (.@i < 311) set .@enchant,4713; //Inteligence4
- else if (.@i < 371) set .@enchant,4812; //Spell4
- else if (.@i < 431) set .@enchant,4760; //Matk1
- else if (.@i < 476) set .@enchant,4714; //Inteligence5
- else if (.@i < 516) set .@enchant,4826; //Spell5
- else if (.@i < 526) set .@enchant,4761; //Matk2
- else if (.@i < 546) set .@enchant,4715; //Inteligence6
- else if (.@i < 551) set .@enchant,4827; //Spell6
- else if (.@i < 556) set .@enchant,4761; //Matk2
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4712; //Inteligence3
+ else if (.@i < 161) .@enchant = 4722; //Dexterity3
+ else if (.@i < 241) .@enchant = 4813; //Spell3
+ else if (.@i < 311) .@enchant = 4713; //Inteligence4
+ else if (.@i < 371) .@enchant = 4812; //Spell4
+ else if (.@i < 431) .@enchant = 4760; //Matk1
+ else if (.@i < 476) .@enchant = 4714; //Inteligence5
+ else if (.@i < 516) .@enchant = 4826; //Spell5
+ else if (.@i < 526) .@enchant = 4761; //Matk2
+ else if (.@i < 546) .@enchant = 4715; //Inteligence6
+ else if (.@i < 551) .@enchant = 4827; //Spell6
+ else if (.@i < 556) .@enchant = 4761; //Matk2
+ else .@enchant = 9;
break;
case 2: //Anger_Seagod - Long Range
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4732; //Agility3
- else if (.@i < 161) set .@enchant,4834; //Expert_Archer3
- else if (.@i < 241) set .@enchant,4843; //Sharp4
- else if (.@i < 311) set .@enchant,4733; //Agility4
- else if (.@i < 371) set .@enchant,4835; //Expert_Archer4
- else if (.@i < 431) set .@enchant,4844; //Sharp5
- else if (.@i < 476) set .@enchant,4734; //Agility5
- else if (.@i < 516) set .@enchant,4836; //Expert_Archer5
- else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
- else if (.@i < 546) set .@enchant,4735; //Agility6
- else if (.@i < 551) set .@enchant,4837; //Expert_Archer6
- else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4732; //Agility3
+ else if (.@i < 161) .@enchant = 4834; //Expert_Archer3
+ else if (.@i < 241) .@enchant = 4843; //Sharp4
+ else if (.@i < 311) .@enchant = 4733; //Agility4
+ else if (.@i < 371) .@enchant = 4835; //Expert_Archer4
+ else if (.@i < 431) .@enchant = 4844; //Sharp5
+ else if (.@i < 476) .@enchant = 4734; //Agility5
+ else if (.@i < 516) .@enchant = 4836; //Expert_Archer5
+ else if (.@i < 526) .@enchant = 4807; //Atk_Speed1
+ else if (.@i < 546) .@enchant = 4735; //Agility6
+ else if (.@i < 551) .@enchant = 4837; //Expert_Archer6
+ else if (.@i < 556) .@enchant = 4807; //Atk_Speed1
+ else .@enchant = 9;
break;
case 1: //Anger_Seagod - Short Range
- set .@i, rand(1,555);
- if (.@i < 81) set .@enchant,4732; //Agility3
- else if (.@i < 161) set .@enchant,4820; //Fighting_Spirit5
- else if (.@i < 241) set .@enchant,4843; //Sharp4
- else if (.@i < 311) set .@enchant,4733; //Agility4
- else if (.@i < 371) set .@enchant,4821; //Fighting_Spirit6
- else if (.@i < 431) set .@enchant,4844; //Sharp5
- else if (.@i < 476) set .@enchant,4734; //Agility5
- else if (.@i < 516) set .@enchant,4822; //Fighting_Spirit7
- else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
- else if (.@i < 546) set .@enchant,4735; //Agility6
- else if (.@i < 551) set .@enchant,4823; //Fighting_Spirit8
- else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
- else set .@enchant,9;
+ .@i = rand(1,555);
+ if (.@i < 81) .@enchant = 4732; //Agility3
+ else if (.@i < 161) .@enchant = 4820; //Fighting_Spirit5
+ else if (.@i < 241) .@enchant = 4843; //Sharp4
+ else if (.@i < 311) .@enchant = 4733; //Agility4
+ else if (.@i < 371) .@enchant = 4821; //Fighting_Spirit6
+ else if (.@i < 431) .@enchant = 4844; //Sharp5
+ else if (.@i < 476) .@enchant = 4734; //Agility5
+ else if (.@i < 516) .@enchant = 4822; //Fighting_Spirit7
+ else if (.@i < 526) .@enchant = 4807; //Atk_Speed1
+ else if (.@i < 546) .@enchant = 4735; //Agility6
+ else if (.@i < 551) .@enchant = 4823; //Fighting_Spirit8
+ else if (.@i < 556) .@enchant = 4807; //Atk_Speed1
+ else .@enchant = 9;
break;
default:
mes "[Mayomayo]";
mes "There is something wrong. Please try again.";
close;
}
- if (.@equip_card[3] == 0 && getarg(1) < 4) set .@equip_card[3],.@enchant;
- else if (.@equip_card[2] == 0 && getarg(1) < 3) set .@equip_card[2],.@enchant;
- else if (.@equip_card[1] == 0 && getarg(1) < 2) set .@equip_card[1],.@enchant;
- else if (.@equip_card[0] == 0 && getarg(1) < 1) set .@equip_card[0],.@enchant;
+ if (.@equip_card[3] == 0 && getarg(1) < 4) .@equip_card[3] = .@enchant;
+ else if (.@equip_card[2] == 0 && getarg(1) < 3) .@equip_card[2] = .@enchant;
+ else if (.@equip_card[1] == 0 && getarg(1) < 2) .@equip_card[1] = .@enchant;
+ else if (.@equip_card[0] == 0 && getarg(1) < 1) .@equip_card[0] = .@enchant;
else {
mes "[Mayomayo]";
mes "This equipment is at the end of enchant. I provide enchant for two times maximum.";
@@ -628,9 +628,9 @@ L_Socket:
delequip EQI_HAND_R;
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
+ .@equip_card[.@i] = 0;
}
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
diff --git a/npc/re/merchants/enchan_mora.txt b/npc/re/merchants/enchan_mora.txt
index e35f768a3..6db1cc002 100644
--- a/npc/re/merchants/enchan_mora.txt
+++ b/npc/re/merchants/enchan_mora.txt
@@ -97,7 +97,7 @@ mora,88,89,5 script Keeper of Secrets#pa082 4_M_MERCAT1,{
setarray .@items[0],1657,16013; //Wand_Of_Affection,Mace_Of_Judgement
break;
}
- set .@item, .@items[rand(getarraysize(.@items))];
+ .@item = .@items[rand(getarraysize(.@items))];
delitem 6380,10; //Mora_Coin
getitem .@item,1;
mes "[Artifice]";
@@ -112,9 +112,9 @@ mora,88,89,5 script Keeper of Secrets#pa082 4_M_MERCAT1,{
mes "It seems that you have power to control the ring so I cannot exchange it into coins.";
close;
}
- if (countitem(2864)) set .@item,2864; //Light_Of_Cure
- else if (countitem(2865)) set .@item,2865; //Seal_Of_Cathedral
- else if (countitem(2866)) set .@item,2866; //Ring_Of_Archbishop
+ if (countitem(2864)) .@item = 2864; //Light_Of_Cure
+ else if (countitem(2865)) .@item = 2865; //Seal_Of_Cathedral
+ else if (countitem(2866)) .@item = 2866; //Ring_Of_Archbishop
else {
mes "[Artifice]";
mes "Did you change something?";
@@ -172,7 +172,7 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
mes "[Relice]";
mes "If you have a ritual for luck, you should use it now!";
next;
- set .@select, select("Wait a minute!:Light of Cure:Seal of Cathedral:Ring of Archbishop:Shoes of Affection:Shoes of Judgement:Shawl of Affection:Shawl of Judgement:Robe of Affection:Robe of Judgement:Bible of Promise 1st Vol:Wand of Affection:Mace of Judgement");
+ .@select = select("Wait a minute!:Light of Cure:Seal of Cathedral:Ring of Archbishop:Shoes of Affection:Shoes of Judgement:Shawl of Affection:Shawl of Judgement:Robe of Affection:Robe of Judgement:Bible of Promise 1st Vol:Wand of Affection:Mace of Judgement");
switch(.@select) {
case 1:
mes "[Relice]";
@@ -183,9 +183,9 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
case 4:
setarray .@items[0],2864,2865,2866; //Light_Of_Cure,Seal_Of_Cathedral,Ring_Of_Archbishop
setarray .@special[0],4803,4804,4805; //Highness_Heal_3sec,Coluceo_Heal30,Heal_Amount2
- set .@item, .@items[.@select-2];
- set .@sp, .@special[.@select-2];
- set .@enchant_type,1;
+ .@item = .@items[.@select-2];
+ .@sp = .@special[.@select-2];
+ .@enchant_type = 1;
break;
case 5:
case 6:
@@ -195,16 +195,16 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
case 10:
case 11:
setarray .@items[0],2471,2472,2569,2570,15029,15030,2156; //Shoes_Of_Affection,Shoes_Of_Judgement,Shawl_Of_Affection,Shawl_Of_Judgement,Robe_Of_Affection,Robe_Of_Judgement,Bible_Of_Promise1
- set .@item, .@items[.@select-5];
- set .@enchant_type,2;
+ .@item = .@items[.@select-5];
+ .@enchant_type = 2;
break;
case 12:
- set .@item,1657; //Wand_Of_Affection
- set .@enchant_type,3;
+ .@item = 1657; //Wand_Of_Affection
+ .@enchant_type = 3;
break;
case 13:
- set .@item,16013; //Mace_Of_Judgement
- set .@enchant_type,4;
+ .@item = 16013; //Mace_Of_Judgement
+ .@enchant_type = 4;
break;
}
if (countitem(6380) < 2 || countitem(.@item) == 0) {
@@ -217,7 +217,7 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
delitem .@item,1;
switch(.@enchant_type) {
case 1:
- set .@i, rand(1,1487);
+ .@i = rand(1,1487);
if (.@i <= 1024) {
// Basic combinations
// (raw: .@i increments by 16, 4 repeats)
@@ -235,7 +235,7 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
}
break;
case 2:
- set .@i, rand(1,1487);
+ .@i = rand(1,1487);
if (.@i <= 1024) {
// Basic combinations
// (raw: .@i increments by 16)
@@ -262,7 +262,7 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
}
break;
case 3:
- set .@i, rand(1,2852);
+ .@i = rand(1,2852);
if (.@i <= 1984) {
// Basic combinations
// (raw: .@i increments by 31, 4 repeats)
@@ -285,7 +285,7 @@ mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{
}
break;
case 4:
- set .@i, rand(1,2852);
+ .@i = rand(1,2852);
if (.@i <= 1984) {
// Basic combinations
// (raw: .@i increments by 31, 4 repeats)
@@ -363,9 +363,9 @@ mora,104,76,4 script Guardian of Artifacts#p 4_M_MERCAT1,{
mes "[Guardian of Artifacts]";
mes "Okay, see you later then.";
close;
- case 2:
+ case 2:
setarray .@items[0],2467,2468,2469,2470; //Golden_Rod_Shoes,Aqua_Shoes,Crimson_Shoes,Forest_Shoes
- set .@plural,1;
+ .@plural = 1;
break;
case 3:
setarray .@items[0],2859,2860,2861,2862; //Golden_Rod_Orb,Aqua_Orb,Crimson_Orb,Forest_Orb
@@ -382,7 +382,7 @@ mora,104,76,4 script Guardian of Artifacts#p 4_M_MERCAT1,{
mes "Would you please come back when you have enough Coins?";
close;
}
- set .@item, .@items[rand(getarraysize(.@items))];
+ .@item = .@items[rand(getarraysize(.@items))];
delitem 6380,10; //Mora_Coin
getitem .@item,1;
mes "[Guardian of Artifacts]";
@@ -407,7 +407,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
mes "[Artifact Crafter]";
mes "Let me explain. One reinforcement costs you two Coins.";
next;
- set .@info_only,1;
+ .@info_only = 1;
}
mes "[Artifact Crafter]";
mes "And, I'll work on the item whether it's been already reinforced or not.";
@@ -420,7 +420,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
if (.@info_only)
close;
next;
- set .@select, select("Maybe next time.:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff:Golden Rod Shoes:Aqua Shoes:Crimson Shoes:Forest Shoes:Golden Rod Orb:Aqua Orb:Crimson Orb:Forest Orb:Golden Rod Robe:Aqua Robe:Crimson Robe:Forest Robe");
+ .@select = select("Maybe next time.:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff:Golden Rod Shoes:Aqua Shoes:Crimson Shoes:Forest Shoes:Golden Rod Orb:Aqua Orb:Crimson Orb:Forest Orb:Golden Rod Robe:Aqua Robe:Crimson Robe:Forest Robe");
switch(.@select) {
case 1:
mes "[Artifact Crafter]";
@@ -431,31 +431,31 @@ mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
case 4:
case 5:
setarray .@items[0],2007,2008,2009,2010; //Golden_Rod_Staff,Aqua_Staff,Crimson_Staff,Forest_Staff
- set .@enchant_type,1;
+ .@enchant_type = 1;
break;
case 6:
case 7:
case 8:
case 9:
setarray .@items[0],2467,2468,2469,2470; //Golden_Rod_Shoes,Aqua_Shoes,Crimson_Shoes,Forest_Shoes
- set .@enchant_type,2;
+ .@enchant_type = 2;
break;
case 10:
case 11:
case 12:
case 13:
setarray .@items[0],2859,2860,2861,2862; //Golden_Rod_Orb,Aqua_Orb,Crimson_Orb,Forest_Orb
- set .@enchant_type,2;
+ .@enchant_type = 2;
break;
case 14:
case 15:
case 16:
case 17:
setarray .@items[0],15025,15026,15027,15028; //Golden_Rod_Robe,Aqua_Robe,Crimson_Robe,Forest_Robe
- set .@enchant_type,2;
+ .@enchant_type = 2;
break;
}
- set .@item, .@items[(.@select-2)%4];
+ .@item = .@items[(.@select-2)%4];
if (countitem(6380) < 2 || countitem(.@item) == 0) {
mes "[Artifact Crafter]";
mes "You have to have 2 Mora Coins and an item to be reinforced before I can do my work.";
@@ -466,7 +466,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
delitem .@item,1;
switch(.@enchant_type) {
case 1:
- set .@i, rand(1,2847);
+ .@i = rand(1,2847);
if (.@i <= 1984) {
// Basic combinations
// (raw: .@i increments by 31, 4 repeats)
@@ -487,7 +487,7 @@ mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{
}
break;
case 2:
- set .@i, rand(1,2858);
+ .@i = rand(1,2858);
if (.@i <= 1984) {
// Basic combinations
// (raw: .@i increments by 31)
@@ -552,7 +552,7 @@ mora,152,97,5 script Guardian of Power#pa082 4_F_DOGTRAVELER,{
mes "^ff0000Choose carefully because these artifacts aren't easy to come by^000000. So what class do you want it for?";
next;
setarray .@jobs$[0],"Rune Knight","Guillotine Cross","Ranger";
- set .@job, select("Cancel:Rune Knight:Guillotine Cross:Ranger")-2;
+ .@job = select("Cancel:Rune Knight:Guillotine Cross:Ranger")-2;
if (.@job == -1) {
mes "[Guardian of Power]";
mes "Talk to me later then.";
@@ -565,15 +565,15 @@ mora,152,97,5 script Guardian of Power#pa082 4_F_DOGTRAVELER,{
switch(.@job) {
case 0: // Rune Knight
setarray .@items[0],2475,2476,2574,2575;
- set .@i, select("Cancel:Ur's Greaves (Shoes):Peuz's Greaves (Shoes):Ur's Manteau (Garment):Peuz's Manteau (Garment)")-2;
+ .@i = select("Cancel:Ur's Greaves (Shoes):Peuz's Greaves (Shoes):Ur's Manteau (Garment):Peuz's Manteau (Garment)")-2;
break;
case 1: // Guillotine Cross
setarray .@items[0],2477,2478,2577,2578;
- set .@i, select("Cancel:Sapha Shoes (Shoes):Nab Shoes (Shoes):Sapha Hood (Garment):Nab Hood (Garment)")-2;
+ .@i = select("Cancel:Sapha Shoes (Shoes):Nab Shoes (Shoes):Sapha Hood (Garment):Nab Hood (Garment)")-2;
break;
case 2: // Ranger
setarray .@items[0],2479,2480,2580,2581;
- set .@i, select("Cancel:White Wing Boots (Shoes):Black Wing Boots (Shoes):White Wing Manteau (Garment):Black Wing Manteau (Garment)")-2;
+ .@i = select("Cancel:White Wing Boots (Shoes):Black Wing Boots (Shoes):White Wing Manteau (Garment):Black Wing Manteau (Garment)")-2;
break;
}
if (.@i == -1) {
@@ -625,10 +625,10 @@ mora,148,98,3 script Artifact Researcher#new 4_F_MORAFINE2,{
mes "The best part of my service is that any enhancements that you have in these artifacts will not be harmed.";
close;
case 2:
- set @mora_enchant_select,1;
+ @mora_enchant_select = 1;
break;
case 3:
- set @mora_enchant_select,2;
+ @mora_enchant_select = 2;
break;
}
if (Zeny < 100000 || countitem(6380) == 0) {
@@ -639,21 +639,21 @@ mora,148,98,3 script Artifact Researcher#new 4_F_MORAFINE2,{
mes "[Artifact Researcher]";
mes "Ok, so are you ready? Before I start working on this, what kind of equipment did you want me to enhance?";
next;
- set .@i, select("I'm not wearing the equipment:1. Weapon:2. Shoes:3. Garment:4. Armor:5. Accessory")-2;
+ .@i = select("I'm not wearing the equipment:1. Weapon:2. Shoes:3. Garment:4. Armor:5. Accessory")-2;
if (.@i == -1) {
mes "[Artifact Researcher]";
mes "Make sure you're wearing the equipment first.";
close;
}
setarray .@parts[0], EQI_HAND_R, EQI_SHOES, EQI_GARMENT, EQI_ARMOR, EQI_ACC_L;
- set .@part, .@parts[.@i];
+ .@part = .@parts[.@i];
if (!getequipisequiped(.@part)) {
mes "[Artifact Researcher]";
mes "Make sure you're wearing the equipment first.";
close;
}
- set .@equip_id, getequipid(.@part);
- set @mora_equip_part, .@part;
+ .@equip_id = getequipid(.@part);
+ @mora_equip_part = .@part;
//callsub L_Socket,<enchant type>,<bonus enchant type>,<4-x enchants possible>;
// Enchant types:
@@ -713,19 +713,19 @@ mora,148,98,3 script Artifact Researcher#new 4_F_MORAFINE2,{
mes "[Artifact Researcher]";
mes "^990099"+getequipname(.@part)+"^000000??";
mes "I really want to study this equipment...";
- set @mora_equip_part,0;
+ @mora_equip_part = 0;
close;
L_Socket:
- set .@select, @mora_enchant_select;
- set .@enchant_type, getarg(0);
- set .@part, @mora_equip_part;
- set .@equip_id, getequipid(.@part);
- set .@equip_name$, getitemname(.@equip_id);
- set .@equip_refine, getequiprefinerycnt(.@part);
+ .@select = @mora_enchant_select;
+ .@enchant_type = getarg(0);
+ .@part = @mora_equip_part;
+ .@equip_id = getequipid(.@part);
+ .@equip_name$ = getitemname(.@equip_id);
+ .@equip_refine = getequiprefinerycnt(.@part);
setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
- set @mora_equip_part,0;
- set @mora_enchant_select,0;
+ @mora_equip_part = 0;
+ @mora_enchant_select = 0;
if (.@select == 1) {
// If refine is +9 or higher, unlock bonus enchant type.
@@ -743,23 +743,23 @@ L_Socket:
case 1:
break;
case 2:
- set .@enchant_type, getarg(1);
+ .@enchant_type = getarg(1);
break;
}
}
if (.@equip_card[3] == 0 && getarg(2) < 4) {
- set .@slot,4;
+ .@slot = 4;
mes "[Artifact Researcher]";
mes "Attempting to strengthen the ability further. The previous enforcement won't be affected. Do you want to continue?";
} else if (.@equip_card[2] == 0 && getarg(2) < 3) {
- set .@slot,3;
+ .@slot = 3;
mes "[Artifact Researcher]";
mes "Attempting second enhancement. The previous enforcement won't be affected.";
next;
mes "[Artifact Researcher]";
mes "I may have a chance to fail now with this attempt. Do you wish to continue?";
} else if (.@equip_card[1] == 0 && getarg(2) < 2) {
- set .@slot,2;
+ .@slot = 2;
mes "[Artifact Researcher]";
mes "Let's start the third enhancement. I can give the best stats at this stage but remember, ^990000there is now a chance for the artifact to be destroyed and previous enhancements will be erased^000000. Continue?";
} else {
@@ -775,301 +775,301 @@ L_Socket:
}
switch(.@enchant_type) {
case 1: //Attack
- if (.@slot == 4) set .@i, rand(1,525);
- else if (.@slot == 3) set .@i, rand(301,655);
- else if (.@slot == 2) set .@i, rand(451,750);
+ if (.@slot == 4) .@i = rand(1,525);
+ else if (.@slot == 3) .@i = rand(301,655);
+ else if (.@slot == 2) .@i = rand(451,750);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4700; //Strength1
- else if (.@i < 201) set .@enchant,4811; //Fighting_Spirit1
- else if (.@i < 301) set .@enchant,4819; //Atk1
- else if (.@i < 351) set .@enchant,4701; //Strength2
- else if (.@i < 401) set .@enchant,4810; //Fighting_Spirit2
- else if (.@i < 451) set .@enchant,4766; //Atk2
- else if (.@i < 476) set .@enchant,4702; //Strength3
- else if (.@i < 501) set .@enchant,4809; //Fighting_Spirit3
- else if (.@i < 526) set .@enchant,4767; //Atk3
- else if (.@i < 626) set .@enchant,0;
- else if (.@i < 641) set .@enchant,4703; //Strength4
- else if (.@i < 656) set .@enchant,4808; //Fighting_Spirit4
- else if (.@i < 661) set .@enchant,4704; //Strength5
- else if (.@i < 666) set .@enchant,4820; //Fighting_Spirit5
- else if (.@i < 668) set .@enchant,4705; //Strength6
- else if (.@i < 670) set .@enchant,4821; //Fighting_Spirit6
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4700; //Strength1
+ else if (.@i < 201) .@enchant = 4811; //Fighting_Spirit1
+ else if (.@i < 301) .@enchant = 4819; //Atk1
+ else if (.@i < 351) .@enchant = 4701; //Strength2
+ else if (.@i < 401) .@enchant = 4810; //Fighting_Spirit2
+ else if (.@i < 451) .@enchant = 4766; //Atk2
+ else if (.@i < 476) .@enchant = 4702; //Strength3
+ else if (.@i < 501) .@enchant = 4809; //Fighting_Spirit3
+ else if (.@i < 526) .@enchant = 4767; //Atk3
+ else if (.@i < 626) .@enchant = 0;
+ else if (.@i < 641) .@enchant = 4703; //Strength4
+ else if (.@i < 656) .@enchant = 4808; //Fighting_Spirit4
+ else if (.@i < 661) .@enchant = 4704; //Strength5
+ else if (.@i < 666) .@enchant = 4820; //Fighting_Spirit5
+ else if (.@i < 668) .@enchant = 4705; //Strength6
+ else if (.@i < 670) .@enchant = 4821; //Fighting_Spirit6
+ else .@enchant = 9;
break;
case 2: //Critical
- if (.@slot == 4) set .@i, rand(1,470);
- else if (.@slot == 3) set .@i, rand(201,610);
- else if (.@slot == 2) set .@i, rand(381,750);
+ if (.@slot == 4) .@i = rand(1,470);
+ else if (.@slot == 3) .@i = rand(201,610);
+ else if (.@slot == 2) .@i = rand(381,750);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4750; //Luck1
- else if (.@i < 201) set .@enchant,4700; //Strength1
- else if (.@i < 261) set .@enchant,4751; //Luck2
- else if (.@i < 321) set .@enchant,4701; //Strength2
- else if (.@i < 351) set .@enchant,4752; //Luck3
- else if (.@i < 381) set .@enchant,4702; //Strength3
- else if (.@i < 411) set .@enchant,4764; //Critical5
- else if (.@i < 441) set .@enchant,4818; //Sharp1
- else if (.@i < 471) set .@enchant,4752; //Luck3
- else if (.@i < 571) set .@enchant,0;
- else if (.@i < 586) set .@enchant,4753; //Luck4
- else if (.@i < 601) set .@enchant,4754; //Luck5
- else if (.@i < 606) set .@enchant,4765; //Critical7
- else if (.@i < 611) set .@enchant,4817; //Sharp2
- else if (.@i < 616) set .@enchant,4703; //Strength4
- else if (.@i < 618) set .@enchant,4816; //Sharp3
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4750; //Luck1
+ else if (.@i < 201) .@enchant = 4700; //Strength1
+ else if (.@i < 261) .@enchant = 4751; //Luck2
+ else if (.@i < 321) .@enchant = 4701; //Strength2
+ else if (.@i < 351) .@enchant = 4752; //Luck3
+ else if (.@i < 381) .@enchant = 4702; //Strength3
+ else if (.@i < 411) .@enchant = 4764; //Critical5
+ else if (.@i < 441) .@enchant = 4818; //Sharp1
+ else if (.@i < 471) .@enchant = 4752; //Luck3
+ else if (.@i < 571) .@enchant = 0;
+ else if (.@i < 586) .@enchant = 4753; //Luck4
+ else if (.@i < 601) .@enchant = 4754; //Luck5
+ else if (.@i < 606) .@enchant = 4765; //Critical7
+ else if (.@i < 611) .@enchant = 4817; //Sharp2
+ else if (.@i < 616) .@enchant = 4703; //Strength4
+ else if (.@i < 618) .@enchant = 4816; //Sharp3
+ else .@enchant = 9;
break;
case 3: //Evasion
- if (.@slot == 4) set .@i, rand(1,525);
- else if (.@slot == 3) set .@i, rand(301,670);
- else if (.@slot == 2) set .@i, rand(451,800);
+ if (.@slot == 4) .@i = rand(1,525);
+ else if (.@slot == 3) .@i = rand(301,670);
+ else if (.@slot == 2) .@i = rand(451,800);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4859; //Evasion1
- else if (.@i < 201) set .@enchant,4750; //Luck1
- else if (.@i < 301) set .@enchant,4730; //Agility1
- else if (.@i < 351) set .@enchant,4860; //Evasion3
- else if (.@i < 401) set .@enchant,4751; //Luck2
- else if (.@i < 451) set .@enchant,4731; //Agility2
- else if (.@i < 476) set .@enchant,4731; //Agility2
- else if (.@i < 501) set .@enchant,4752; //Luck3
- else if (.@i < 526) set .@enchant,4732; //Agility3
- else if (.@i < 626) set .@enchant,0;
- else if (.@i < 641) set .@enchant,4762; //Evasion6
- else if (.@i < 656) set .@enchant,4753; //Luck4
- else if (.@i < 671) set .@enchant,4733; //Agility4
- else if (.@i < 676) set .@enchant,4763; //Evasion12
- else if (.@i < 681) set .@enchant,4754; //Luck5
- else if (.@i < 683) set .@enchant,4734; //Agility5
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4859; //Evasion1
+ else if (.@i < 201) .@enchant = 4750; //Luck1
+ else if (.@i < 301) .@enchant = 4730; //Agility1
+ else if (.@i < 351) .@enchant = 4860; //Evasion3
+ else if (.@i < 401) .@enchant = 4751; //Luck2
+ else if (.@i < 451) .@enchant = 4731; //Agility2
+ else if (.@i < 476) .@enchant = 4731; //Agility2
+ else if (.@i < 501) .@enchant = 4752; //Luck3
+ else if (.@i < 526) .@enchant = 4732; //Agility3
+ else if (.@i < 626) .@enchant = 0;
+ else if (.@i < 641) .@enchant = 4762; //Evasion6
+ else if (.@i < 656) .@enchant = 4753; //Luck4
+ else if (.@i < 671) .@enchant = 4733; //Agility4
+ else if (.@i < 676) .@enchant = 4763; //Evasion12
+ else if (.@i < 681) .@enchant = 4754; //Luck5
+ else if (.@i < 683) .@enchant = 4734; //Agility5
+ else .@enchant = 9;
break;
case 4: //Healer
- if (.@slot == 4) set .@i, rand(1,375);
- else if (.@slot == 3) set .@i, rand(201,535);
- else if (.@slot == 2) set .@i, rand(301,650);
+ if (.@slot == 4) .@i = rand(1,375);
+ else if (.@slot == 3) .@i = rand(201,535);
+ else if (.@slot == 2) .@i = rand(301,650);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4710; //Inteligence1
- else if (.@i < 201) set .@enchant,4720; //Dexterity1
- else if (.@i < 251) set .@enchant,4711; //Inteligence2
- else if (.@i < 301) set .@enchant,4721; //Dexterity2
- else if (.@i < 326) set .@enchant,4805; //Heal_Amount2
- else if (.@i < 351) set .@enchant,4712; //Inteligence3
- else if (.@i < 376) set .@enchant,4722; //Dexterity3
- else if (.@i < 476) set .@enchant,0;
- else if (.@i < 491) set .@enchant,4760; //Matk1
- else if (.@i < 506) set .@enchant,4850; //Heal_Amount3
- else if (.@i < 521) set .@enchant,4713; //Inteligence4
- else if (.@i < 536) set .@enchant,4723; //Dexterity4
- else if (.@i < 541) set .@enchant,4761; //Matk2
- else if (.@i < 546) set .@enchant,4851; //Heal_Amount4
- else if (.@i < 548) set .@enchant,4806; //Matk3
- else if (.@i < 550) set .@enchant,4852; //Heal_Amount5
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4710; //Inteligence1
+ else if (.@i < 201) .@enchant = 4720; //Dexterity1
+ else if (.@i < 251) .@enchant = 4711; //Inteligence2
+ else if (.@i < 301) .@enchant = 4721; //Dexterity2
+ else if (.@i < 326) .@enchant = 4805; //Heal_Amount2
+ else if (.@i < 351) .@enchant = 4712; //Inteligence3
+ else if (.@i < 376) .@enchant = 4722; //Dexterity3
+ else if (.@i < 476) .@enchant = 0;
+ else if (.@i < 491) .@enchant = 4760; //Matk1
+ else if (.@i < 506) .@enchant = 4850; //Heal_Amount3
+ else if (.@i < 521) .@enchant = 4713; //Inteligence4
+ else if (.@i < 536) .@enchant = 4723; //Dexterity4
+ else if (.@i < 541) .@enchant = 4761; //Matk2
+ else if (.@i < 546) .@enchant = 4851; //Heal_Amount4
+ else if (.@i < 548) .@enchant = 4806; //Matk3
+ else if (.@i < 550) .@enchant = 4852; //Heal_Amount5
+ else .@enchant = 9;
break;
case 5: //Spell 1
- if (.@slot == 4) set .@i, rand(1,600);
- else if (.@slot == 3) set .@i, rand(401,760);
- else if (.@slot == 2) set .@i, rand(401,766);
+ if (.@slot == 4) .@i = rand(1,600);
+ else if (.@slot == 3) .@i = rand(401,760);
+ else if (.@slot == 2) .@i = rand(401,766);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4710; //Inteligence1
- else if (.@i < 201) set .@enchant,4720; //Dexterity1
- else if (.@i < 301) set .@enchant,4795; //HP100
- else if (.@i < 401) set .@enchant,4815; //Spell1
- else if (.@i < 451) set .@enchant,4711; //Inteligence2
- else if (.@i < 501) set .@enchant,4721; //Dexterity2
- else if (.@i < 551) set .@enchant,4796; //HP200
- else if (.@i < 601) set .@enchant,4814; //Spell2
- else if (.@i < 701) set .@enchant,0;
- else if (.@i < 716) set .@enchant,4712; //Inteligence3
- else if (.@i < 731) set .@enchant,4722; //Dexterity3
- else if (.@i < 746) set .@enchant,4797; //HP300
- else if (.@i < 761) set .@enchant,4813; //Spell3
- else if (.@i < 763) set .@enchant,4713; //Inteligence4
- else if (.@i < 765) set .@enchant,4723; //Dexterity4
- else if (.@i < 767) set .@enchant,4812; //Spell4
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4710; //Inteligence1
+ else if (.@i < 201) .@enchant = 4720; //Dexterity1
+ else if (.@i < 301) .@enchant = 4795; //HP100
+ else if (.@i < 401) .@enchant = 4815; //Spell1
+ else if (.@i < 451) .@enchant = 4711; //Inteligence2
+ else if (.@i < 501) .@enchant = 4721; //Dexterity2
+ else if (.@i < 551) .@enchant = 4796; //HP200
+ else if (.@i < 601) .@enchant = 4814; //Spell2
+ else if (.@i < 701) .@enchant = 0;
+ else if (.@i < 716) .@enchant = 4712; //Inteligence3
+ else if (.@i < 731) .@enchant = 4722; //Dexterity3
+ else if (.@i < 746) .@enchant = 4797; //HP300
+ else if (.@i < 761) .@enchant = 4813; //Spell3
+ else if (.@i < 763) .@enchant = 4713; //Inteligence4
+ else if (.@i < 765) .@enchant = 4723; //Dexterity4
+ else if (.@i < 767) .@enchant = 4812; //Spell4
+ else .@enchant = 9;
break;
case 6: //Assist 1
- if (.@slot == 4) set .@i, rand(1,520);
- else if (.@slot == 3) set .@i, rand(321,720);
- else if (.@slot == 2) set .@i, rand(521,850);
+ if (.@slot == 4) .@i = rand(1,520);
+ else if (.@slot == 3) .@i = rand(321,720);
+ else if (.@slot == 2) .@i = rand(521,850);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 81) set .@enchant,4792; //Def6
- else if (.@i < 161) set .@enchant,4787; //Mdef4
- else if (.@i < 241) set .@enchant,4801; //SP100
- else if (.@i < 321) set .@enchant,4796; //HP200
- else if (.@i < 371) set .@enchant,4700; //Strength1
- else if (.@i < 421) set .@enchant,4720; //Dexterity1
- else if (.@i < 471) set .@enchant,4730; //Agility1
- else if (.@i < 521) set .@enchant,4740; //Vitality1
- else if (.@i < 621) set .@enchant,0;
- else if (.@i < 646) set .@enchant,4793; //Def9
- else if (.@i < 671) set .@enchant,4788; //Mdef6
- else if (.@i < 696) set .@enchant,4802; //SP150
- else if (.@i < 721) set .@enchant,4797; //HP300
- else if (.@i < 731) set .@enchant,4701; //Strength2
- else if (.@i < 741) set .@enchant,4721; //Dexterity2
- else if (.@i < 751) set .@enchant,4731; //Agility2
- else set .@enchant,9;
+ if (.@i < 81) .@enchant = 4792; //Def6
+ else if (.@i < 161) .@enchant = 4787; //Mdef4
+ else if (.@i < 241) .@enchant = 4801; //SP100
+ else if (.@i < 321) .@enchant = 4796; //HP200
+ else if (.@i < 371) .@enchant = 4700; //Strength1
+ else if (.@i < 421) .@enchant = 4720; //Dexterity1
+ else if (.@i < 471) .@enchant = 4730; //Agility1
+ else if (.@i < 521) .@enchant = 4740; //Vitality1
+ else if (.@i < 621) .@enchant = 0;
+ else if (.@i < 646) .@enchant = 4793; //Def9
+ else if (.@i < 671) .@enchant = 4788; //Mdef6
+ else if (.@i < 696) .@enchant = 4802; //SP150
+ else if (.@i < 721) .@enchant = 4797; //HP300
+ else if (.@i < 731) .@enchant = 4701; //Strength2
+ else if (.@i < 741) .@enchant = 4721; //Dexterity2
+ else if (.@i < 751) .@enchant = 4731; //Agility2
+ else .@enchant = 9;
break;
case 7: //Assist 2
- if (.@slot == 4) set .@i, rand(1,520);
- else if (.@slot == 3) set .@i, rand(321,720);
- else if (.@slot == 2) set .@i, rand(521,850);
+ if (.@slot == 4) .@i = rand(1,520);
+ else if (.@slot == 3) .@i = rand(321,720);
+ else if (.@slot == 2) .@i = rand(521,850);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 81) set .@enchant,4792; //Def6
- else if (.@i < 161) set .@enchant,4787; //Mdef4
- else if (.@i < 241) set .@enchant,4801; //SP100
- else if (.@i < 321) set .@enchant,4796; //HP200
- else if (.@i < 371) set .@enchant,4710; //Inteligence1
- else if (.@i < 421) set .@enchant,4720; //Dexterity1
- else if (.@i < 471) set .@enchant,4730; //Agility1
- else if (.@i < 521) set .@enchant,4740; //Vitality1
- else if (.@i < 621) set .@enchant,0;
- else if (.@i < 646) set .@enchant,4793; //Def9
- else if (.@i < 671) set .@enchant,4788; //Mdef6
- else if (.@i < 696) set .@enchant,4802; //SP150
- else if (.@i < 721) set .@enchant,4797; //HP300
- else if (.@i < 731) set .@enchant,4711; //Inteligence2
- else if (.@i < 741) set .@enchant,4721; //Dexterity2
- else if (.@i < 751) set .@enchant,4741; //Vitality2
- else set .@enchant,9;
+ if (.@i < 81) .@enchant = 4792; //Def6
+ else if (.@i < 161) .@enchant = 4787; //Mdef4
+ else if (.@i < 241) .@enchant = 4801; //SP100
+ else if (.@i < 321) .@enchant = 4796; //HP200
+ else if (.@i < 371) .@enchant = 4710; //Inteligence1
+ else if (.@i < 421) .@enchant = 4720; //Dexterity1
+ else if (.@i < 471) .@enchant = 4730; //Agility1
+ else if (.@i < 521) .@enchant = 4740; //Vitality1
+ else if (.@i < 621) .@enchant = 0;
+ else if (.@i < 646) .@enchant = 4793; //Def9
+ else if (.@i < 671) .@enchant = 4788; //Mdef6
+ else if (.@i < 696) .@enchant = 4802; //SP150
+ else if (.@i < 721) .@enchant = 4797; //HP300
+ else if (.@i < 731) .@enchant = 4711; //Inteligence2
+ else if (.@i < 741) .@enchant = 4721; //Dexterity2
+ else if (.@i < 751) .@enchant = 4741; //Vitality2
+ else .@enchant = 9;
break;
case 8: //Strength
- if (.@slot == 4) set .@i, rand(1,525);
- else if (.@slot == 3) set .@i, rand(301,685);
- else if (.@slot == 2) set .@i, rand(451,800);
+ if (.@slot == 4) .@i = rand(1,525);
+ else if (.@slot == 3) .@i = rand(301,685);
+ else if (.@slot == 2) .@i = rand(451,800);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4740; //Vitality1
- else if (.@i < 201) set .@enchant,4797; //HP300
- else if (.@i < 301) set .@enchant,4791; //Def3
- else if (.@i < 351) set .@enchant,4741; //Vitality2
- else if (.@i < 401) set .@enchant,4798; //HP400
- else if (.@i < 451) set .@enchant,4792; //Def6
- else if (.@i < 476) set .@enchant,4742; //Vitality3
- else if (.@i < 501) set .@enchant,4793; //Def9
- else if (.@i < 526) set .@enchant,4799; //HP500
- else if (.@i < 626) set .@enchant,0;
- else if (.@i < 641) set .@enchant,4742; //Vitality3
- else if (.@i < 656) set .@enchant,4743; //Vitality4
- else if (.@i < 671) set .@enchant,4794; //Def12
- //else if (.@i < 686) set .@enchant,01; // ??
- else if (.@i < 688) set .@enchant,4744; //Vitality5
- //else if (.@i < 690) set .@enchant,02; // ??
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4740; //Vitality1
+ else if (.@i < 201) .@enchant = 4797; //HP300
+ else if (.@i < 301) .@enchant = 4791; //Def3
+ else if (.@i < 351) .@enchant = 4741; //Vitality2
+ else if (.@i < 401) .@enchant = 4798; //HP400
+ else if (.@i < 451) .@enchant = 4792; //Def6
+ else if (.@i < 476) .@enchant = 4742; //Vitality3
+ else if (.@i < 501) .@enchant = 4793; //Def9
+ else if (.@i < 526) .@enchant = 4799; //HP500
+ else if (.@i < 626) .@enchant = 0;
+ else if (.@i < 641) .@enchant = 4742; //Vitality3
+ else if (.@i < 656) .@enchant = 4743; //Vitality4
+ else if (.@i < 671) .@enchant = 4794; //Def12
+ //else if (.@i < 686) .@enchant = 01; // ??
+ else if (.@i < 688) .@enchant = 4744; //Vitality5
+ //else if (.@i < 690) .@enchant = 02; // ??
+ else .@enchant = 9;
break;
case 9: //Range
- if (.@slot == 4) set .@i, rand(1,470);
- else if (.@slot == 3) set .@i, rand(201,610);
- else if (.@slot == 2) set .@i, rand(321,750);
+ if (.@slot == 4) .@i = rand(1,470);
+ else if (.@slot == 3) .@i = rand(201,610);
+ else if (.@slot == 2) .@i = rand(321,750);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4750; //Luck1
- else if (.@i < 201) set .@enchant,4720; //Dexterity1
- else if (.@i < 261) set .@enchant,4751; //Luck2
- else if (.@i < 321) set .@enchant,4721; //Dexterity2
- else if (.@i < 351) set .@enchant,4752; //Luck3
- else if (.@i < 381) set .@enchant,4722; //Dexterity3
- else if (.@i < 411) set .@enchant,4764; //Critical5
- else if (.@i < 441) set .@enchant,4832; //Expert_Archer1
- else if (.@i < 471) set .@enchant,4753; //Luck4
- else if (.@i < 571) set .@enchant,0;
- else if (.@i < 586) set .@enchant,4723; //Dexterity4
- else if (.@i < 601) set .@enchant,4833; //Expert_Archer2
- else if (.@i < 606) set .@enchant,4765; //Critical7
- else if (.@i < 611) set .@enchant,4834; //Expert_Archer3
- else if (.@i < 616) set .@enchant,4724; //Dexterity5
- else if (.@i < 618) set .@enchant,4835; //Expert_Archer4
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4750; //Luck1
+ else if (.@i < 201) .@enchant = 4720; //Dexterity1
+ else if (.@i < 261) .@enchant = 4751; //Luck2
+ else if (.@i < 321) .@enchant = 4721; //Dexterity2
+ else if (.@i < 351) .@enchant = 4752; //Luck3
+ else if (.@i < 381) .@enchant = 4722; //Dexterity3
+ else if (.@i < 411) .@enchant = 4764; //Critical5
+ else if (.@i < 441) .@enchant = 4832; //Expert_Archer1
+ else if (.@i < 471) .@enchant = 4753; //Luck4
+ else if (.@i < 571) .@enchant = 0;
+ else if (.@i < 586) .@enchant = 4723; //Dexterity4
+ else if (.@i < 601) .@enchant = 4833; //Expert_Archer2
+ else if (.@i < 606) .@enchant = 4765; //Critical7
+ else if (.@i < 611) .@enchant = 4834; //Expert_Archer3
+ else if (.@i < 616) .@enchant = 4724; //Dexterity5
+ else if (.@i < 618) .@enchant = 4835; //Expert_Archer4
+ else .@enchant = 9;
break;
case 10: //Physical
- if (.@slot == 4) set .@i, rand(1,600);
- else if (.@slot == 3) set .@i, rand(401,800);
- else if (.@slot == 2) set .@i, rand(601,930);
+ if (.@slot == 4) .@i = rand(1,600);
+ else if (.@slot == 3) .@i = rand(401,800);
+ else if (.@slot == 2) .@i = rand(601,930);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4791; //Def3
- else if (.@i < 201) set .@enchant,4730; //Agility1
- else if (.@i < 301) set .@enchant,4750; //Luck1
- else if (.@i < 401) set .@enchant,4795; //HP100
- else if (.@i < 451) set .@enchant,4792; //Def6
- else if (.@i < 501) set .@enchant,4731; //Agility2
- else if (.@i < 551) set .@enchant,4751; //Luck2
- else if (.@i < 601) set .@enchant,4796; //HP200
- else if (.@i < 701) set .@enchant,0;
- else if (.@i < 726) set .@enchant,4793; //Def9
- else if (.@i < 751) set .@enchant,4732; //Agility3
- else if (.@i < 776) set .@enchant,4752; //Luck3
- else if (.@i < 801) set .@enchant,4797; //HP300
- else if (.@i < 816) set .@enchant,4733; //Agility4
- else if (.@i < 831) set .@enchant,4753; //Luck4
- else if (.@i < 833) set .@enchant,4807; //Atk_Speed1
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4791; //Def3
+ else if (.@i < 201) .@enchant = 4730; //Agility1
+ else if (.@i < 301) .@enchant = 4750; //Luck1
+ else if (.@i < 401) .@enchant = 4795; //HP100
+ else if (.@i < 451) .@enchant = 4792; //Def6
+ else if (.@i < 501) .@enchant = 4731; //Agility2
+ else if (.@i < 551) .@enchant = 4751; //Luck2
+ else if (.@i < 601) .@enchant = 4796; //HP200
+ else if (.@i < 701) .@enchant = 0;
+ else if (.@i < 726) .@enchant = 4793; //Def9
+ else if (.@i < 751) .@enchant = 4732; //Agility3
+ else if (.@i < 776) .@enchant = 4752; //Luck3
+ else if (.@i < 801) .@enchant = 4797; //HP300
+ else if (.@i < 816) .@enchant = 4733; //Agility4
+ else if (.@i < 831) .@enchant = 4753; //Luck4
+ else if (.@i < 833) .@enchant = 4807; //Atk_Speed1
+ else .@enchant = 9;
break;
case 11: //Spell 2
- if (.@slot == 4) set .@i, rand(1,600);
- else if (.@slot == 3) set .@i, rand(401,760);
- else if (.@slot == 2) set .@i, rand(401,766);
+ if (.@slot == 4) .@i = rand(1,600);
+ else if (.@slot == 3) .@i = rand(401,760);
+ else if (.@slot == 2) .@i = rand(401,766);
else {
mes "[Artifact Researcher]";
mes "An unknown error has occurred.";
close;
}
- if (.@i < 101) set .@enchant,4711; //Inteligence2
- else if (.@i < 201) set .@enchant,4721; //Dexterity2
- else if (.@i < 301) set .@enchant,4796; //HP200
- else if (.@i < 401) set .@enchant,4814; //Spell2
- else if (.@i < 451) set .@enchant,4712; //Inteligence3
- else if (.@i < 501) set .@enchant,4722; //Dexterity3
- else if (.@i < 551) set .@enchant,4760; //Matk1
- else if (.@i < 601) set .@enchant,4813; //Spell3
- else if (.@i < 701) set .@enchant,0;
- else if (.@i < 716) set .@enchant,4713; //Inteligence4
- else if (.@i < 731) set .@enchant,4723; //Dexterity4
- else if (.@i < 746) set .@enchant,4761; //Matk2
- else if (.@i < 761) set .@enchant,4812; //Spell4
- else if (.@i < 763) set .@enchant,4714; //Inteligence5
- else if (.@i < 765) set .@enchant,4724; //Dexterity5
- else if (.@i < 767) set .@enchant,4806; //Matk3
- else set .@enchant,9;
+ if (.@i < 101) .@enchant = 4711; //Inteligence2
+ else if (.@i < 201) .@enchant = 4721; //Dexterity2
+ else if (.@i < 301) .@enchant = 4796; //HP200
+ else if (.@i < 401) .@enchant = 4814; //Spell2
+ else if (.@i < 451) .@enchant = 4712; //Inteligence3
+ else if (.@i < 501) .@enchant = 4722; //Dexterity3
+ else if (.@i < 551) .@enchant = 4760; //Matk1
+ else if (.@i < 601) .@enchant = 4813; //Spell3
+ else if (.@i < 701) .@enchant = 0;
+ else if (.@i < 716) .@enchant = 4713; //Inteligence4
+ else if (.@i < 731) .@enchant = 4723; //Dexterity4
+ else if (.@i < 746) .@enchant = 4761; //Matk2
+ else if (.@i < 761) .@enchant = 4812; //Spell4
+ else if (.@i < 763) .@enchant = 4714; //Inteligence5
+ else if (.@i < 765) .@enchant = 4724; //Dexterity5
+ else if (.@i < 767) .@enchant = 4806; //Matk3
+ else .@enchant = 9;
break;
default:
mes "[Artifact Researcher]";
@@ -1077,17 +1077,17 @@ L_Socket:
close;
}
if (.@equip_card[3] == 0 && getarg(2) < 4) {
- set .@equip_card[3],.@enchant;
+ .@equip_card[3] = .@enchant;
} else if (.@equip_card[2] == 0 && getarg(2) < 3) {
- set .@equip_card[2],.@enchant;
+ .@equip_card[2] = .@enchant;
if (.@enchant == 0) {
- set .@equip_card[3],0;
+ .@equip_card[3] = 0;
}
} else if (.@equip_card[1] == 0 && getarg(2) < 2) {
- set .@equip_card[1],.@enchant;
+ .@equip_card[1] = .@enchant;
if (.@enchant == 0) {
- set .@equip_card[2],0;
- set .@equip_card[3],0;
+ .@equip_card[2] = 0;
+ .@equip_card[3] = 0;
}
} else {
mes "[Artifact Researcher]";
@@ -1106,7 +1106,7 @@ L_Socket:
specialeffect2 EF_SUI_EXPLOSION;
mes "[Artifact Researcher]";
mes "This!";
- mes "I... I'm sorry but the equipment has been destroyed.";
+ mes "I... I'm sorry but the equipment has been destroyed.";
close;
}
if (.@enchant == 0) {
@@ -1139,9 +1139,9 @@ L_Socket:
delequip .@part;
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ for(.@i = 0; .@i<4; ++.@i) {
if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
+ .@equip_card[.@i] = 0;
}
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
@@ -1271,7 +1271,7 @@ mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{
setarray .@artifacts[0],1657,16013,2007,2008,2009,2010;
setarray .@empowered[0],1660,16018,2011,2012,2013,2014;
while(1) {
- set .@i, select("I don't think I'm interested:Staff of Mercy:Mace of Judgement:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff")-2;
+ .@i = select("I don't think I'm interested:Staff of Mercy:Mace of Judgement:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff")-2;
if (.@i == -1) {
emotion e_what;
mes "[Artifact Collector]";
@@ -1284,15 +1284,15 @@ mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{
switch(.@i) {
case 0:
setarray .@enchants[0],4761,4723,4714;
- set .@str$, "MATK+2%, DEX+4, INT+5";
+ .@str$ = "MATK+2%, DEX+4, INT+5";
break;
case 1:
setarray .@enchants[0],4767,4723,4704;
- set .@str$, "ATK+3%, DEX+4, STR+5";
+ .@str$ = "ATK+3%, DEX+4, STR+5";
break;
default:
setarray .@enchants[0],4761,4713;
- set .@str$, "MATK+2%, INT+4";
+ .@str$ = "MATK+2%, INT+4";
break;
}
mes "[Artifact Collector]";
@@ -1319,7 +1319,7 @@ mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{
mes "I don't know what you are trying to do... I can't enhance what you don't have.";
close;
}
- set .@equip_id, getequipid(EQI_HAND_R);
+ .@equip_id = getequipid(EQI_HAND_R);
setarray .@equip_card[2], getequipcardid(EQI_HAND_R,2),getequipcardid(EQI_HAND_R,3);
switch(.@equip_id) {
case 2007: //Golden_Rod_Staff
@@ -1328,19 +1328,19 @@ mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{
case 2010: //Forest_Staff
if (.@equip_card[2] == 4761 || .@equip_card[3] == 4761 || //Matk2
.@equip_card[2] == 4713 || .@equip_card[3] == 4713) //Inteligence4
- set .@empowered,.@equip_id+4; //Golden_Rod_Staff2,Aqua_Staff2,Crimson_Staff2,Forest_Staff2
+ .@empowered = .@equip_id+4; //Golden_Rod_Staff2,Aqua_Staff2,Crimson_Staff2,Forest_Staff2
break;
case 1657: //Wand_Of_Affection
if (.@equip_card[2] == 4761 || .@equip_card[3] == 4761 || //Matk2
.@equip_card[2] == 4714 || .@equip_card[3] == 4714 || //Inteligence5
.@equip_card[2] == 4723 || .@equip_card[3] == 4723) //Dexterity4
- set .@empowered,1660; //Wand_Of_Affection2
+ .@empowered = 1660; //Wand_Of_Affection2
break;
case 16013: //Mace_Of_Judgement
if (.@equip_card[2] == 4723 || .@equip_card[3] == 4723 || //Dexterity4
.@equip_card[2] == 4704 || .@equip_card[3] == 4704 || //Strength5
.@equip_card[2] == 4767 || .@equip_card[3] == 4767) //Atk3
- set .@empowered,16018; //Mace_Of_Judgement2
+ .@empowered = 16018; //Mace_Of_Judgement2
break;
default:
emotion e_an;
@@ -1477,7 +1477,7 @@ function script F_Mora_Enchant {
progressbar "ffff00",3;
delitem 6380,5; //Mora_Coin
delitem getarg(0),1;
- set .@i, rand(1,4568);
+ .@i = rand(1,4568);
if (.@i <= 3168) {
// Basic combinations
// (raw: .@i increments by 11)
@@ -1525,7 +1525,7 @@ mora,105,176,4 script Master Tailor#pa0829 4_ELEPHANT,{
mes "I happen to have a few army paddings in stock. Would you like to buy one? The price is 1 Mora Coin. So cheap.";
next;
switch(select("Maybe next time.:I'll buy one now.")) {
- case 1:
+ case 1:
mes "[Master Tailor]";
mes "Okay, I understand.";
mes "Come back for one if you change your mind.";
diff --git a/npc/re/merchants/enchan_upg.txt b/npc/re/merchants/enchan_upg.txt
index abbc0896a..939f7d812 100644
--- a/npc/re/merchants/enchan_upg.txt
+++ b/npc/re/merchants/enchan_upg.txt
@@ -49,7 +49,7 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
mes "Are you listening to me? I will only do for you if you bring the Enchant Book!";
close;
}
- set .@select,1;
+ .@select = 1;
break;
case 3:
mes "[Devil Enchant Master]";
@@ -64,10 +64,10 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
mes "Come back after you have confirmed!";
close;
}
- set .@select,2;
+ .@select = 2;
break;
}
- set .@part, EQI_HAND_R;
+ .@part = EQI_HAND_R;
mes "[Devil Enchant Master]";
if (!getequipisequiped(.@part)) {
@@ -79,13 +79,13 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
mes "It is dangerous to remove equipment during enchant process!";
close;
}
- set .@equip_id, getequipid(.@part);
- set .@item$, "|1292|1394|1491|1585|2015|13071|13115|16019|18112|21000|";
+ .@equip_id = getequipid(.@part);
+ .@item$ = "|1292|1394|1491|1585|2015|13071|13115|16019|18112|21000|";
if (!compare(.@item$,"|"+.@equip_id+"|")) {
mes "I don't want to touch your equipment now!";
close;
}
- set .@equip_refine, getequiprefinerycnt(.@part);
+ .@equip_refine = getequiprefinerycnt(.@part);
if (.@select == 1) {
if (!countitem(6484)) {
@@ -100,10 +100,10 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
mes "Come back again after you change your mind!";
close;
case 2:
- set .@enc_type,1;
+ .@enc_type = 1;
break;
case 3:
- set .@enc_type,2;
+ .@enc_type = 2;
break;
}
mes "[Devil Enchant Master]";
@@ -125,81 +125,81 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
}
if (.@enc_type == 1) { // Physical Series
- set .@i, rand(1,1300);
- if (.@i < 51) set .@enchant,4734; //Agility5
- else if (.@i < 76) set .@enchant,4735; //Agility6
- else if (.@i < 88) set .@enchant,4736; //Agility7
- else if (.@i < 93) set .@enchant,4737; //Agility8
- else if (.@i < 95) set .@enchant,4738; //Agility9
- else if (.@i < 96) set .@enchant,4739; //Agility10
- else if (.@i < 146) set .@enchant,4724; //Dexterity5
- else if (.@i < 171) set .@enchant,4725; //Dexterity6
- else if (.@i < 183) set .@enchant,4726; //Dexterity7
- else if (.@i < 188) set .@enchant,4727; //Dexterity8
- else if (.@i < 190) set .@enchant,4728; //Dexterity9
- else if (.@i < 191) set .@enchant,4729; //Dexterity10
- else if (.@i < 291) set .@enchant,4704; //Strength5
- else if (.@i < 341) set .@enchant,4705; //Strength6
- else if (.@i < 366) set .@enchant,4706; //Strength7
- else if (.@i < 378) set .@enchant,4707; //Strength8
- else if (.@i < 383) set .@enchant,4708; //Strength9
- else if (.@i < 384) set .@enchant,4709; //Strength10
- else if (.@i < 434) set .@enchant,4754; //Luck5
- else if (.@i < 459) set .@enchant,4755; //Luck6
- else if (.@i < 471) set .@enchant,4756; //Luck7
- else if (.@i < 476) set .@enchant,4757; //Luck8
- else if (.@i < 478) set .@enchant,4758; //Luck9
- else if (.@i < 479) set .@enchant,4759; //Luck10
- else if (.@i < 679) set .@enchant,4744; //Vitality5
- else if (.@i < 779) set .@enchant,4745; //Vitality6
- else if (.@i < 829) set .@enchant,4746; //Vitality7
- else if (.@i < 854) set .@enchant,4747; //Vitality8
- else if (.@i < 866) set .@enchant,4748; //Vitality9
- else if (.@i < 867) set .@enchant,4749; //Vitality10
- else if (.@i < 967) set .@enchant,4808; //Fighting_Spirit4
- else if (.@i < 992) set .@enchant,4820; //Fighting_Spirit5
- else if (.@i < 1092) set .@enchant,4835; //Expert_Archer4
- else if (.@i < 1117) set .@enchant,4836; //Expert_Archer5
- else if (.@i < 1217) set .@enchant,4835; //Expert_Archer4
- else if (.@i < 1242) set .@enchant,4836; //Expert_Archer5
- else set .@enchant,0;
+ .@i = rand(1,1300);
+ if (.@i < 51) .@enchant = 4734; //Agility5
+ else if (.@i < 76) .@enchant = 4735; //Agility6
+ else if (.@i < 88) .@enchant = 4736; //Agility7
+ else if (.@i < 93) .@enchant = 4737; //Agility8
+ else if (.@i < 95) .@enchant = 4738; //Agility9
+ else if (.@i < 96) .@enchant = 4739; //Agility10
+ else if (.@i < 146) .@enchant = 4724; //Dexterity5
+ else if (.@i < 171) .@enchant = 4725; //Dexterity6
+ else if (.@i < 183) .@enchant = 4726; //Dexterity7
+ else if (.@i < 188) .@enchant = 4727; //Dexterity8
+ else if (.@i < 190) .@enchant = 4728; //Dexterity9
+ else if (.@i < 191) .@enchant = 4729; //Dexterity10
+ else if (.@i < 291) .@enchant = 4704; //Strength5
+ else if (.@i < 341) .@enchant = 4705; //Strength6
+ else if (.@i < 366) .@enchant = 4706; //Strength7
+ else if (.@i < 378) .@enchant = 4707; //Strength8
+ else if (.@i < 383) .@enchant = 4708; //Strength9
+ else if (.@i < 384) .@enchant = 4709; //Strength10
+ else if (.@i < 434) .@enchant = 4754; //Luck5
+ else if (.@i < 459) .@enchant = 4755; //Luck6
+ else if (.@i < 471) .@enchant = 4756; //Luck7
+ else if (.@i < 476) .@enchant = 4757; //Luck8
+ else if (.@i < 478) .@enchant = 4758; //Luck9
+ else if (.@i < 479) .@enchant = 4759; //Luck10
+ else if (.@i < 679) .@enchant = 4744; //Vitality5
+ else if (.@i < 779) .@enchant = 4745; //Vitality6
+ else if (.@i < 829) .@enchant = 4746; //Vitality7
+ else if (.@i < 854) .@enchant = 4747; //Vitality8
+ else if (.@i < 866) .@enchant = 4748; //Vitality9
+ else if (.@i < 867) .@enchant = 4749; //Vitality10
+ else if (.@i < 967) .@enchant = 4808; //Fighting_Spirit4
+ else if (.@i < 992) .@enchant = 4820; //Fighting_Spirit5
+ else if (.@i < 1092) .@enchant = 4835; //Expert_Archer4
+ else if (.@i < 1117) .@enchant = 4836; //Expert_Archer5
+ else if (.@i < 1217) .@enchant = 4835; //Expert_Archer4
+ else if (.@i < 1242) .@enchant = 4836; //Expert_Archer5
+ else .@enchant = 0;
} else if (.@enc_type == 2) { // Magical Series
- set .@i, rand(1,1200);
- if (.@i < 51) set .@enchant,4714; //Inteligence5
- else if (.@i < 76) set .@enchant,4715; //Inteligence6
- else if (.@i < 88) set .@enchant,4716; //Inteligence7
- else if (.@i < 93) set .@enchant,4717; //Inteligence8
- else if (.@i < 95) set .@enchant,4718; //Inteligence9
- else if (.@i < 96) set .@enchant,4719; //Inteligence10
- else if (.@i < 146) set .@enchant,4724; //Dexterity5
- else if (.@i < 171) set .@enchant,4725; //Dexterity6
- else if (.@i < 183) set .@enchant,4726; //Dexterity7
- else if (.@i < 188) set .@enchant,4727; //Dexterity8
- else if (.@i < 190) set .@enchant,4728; //Dexterity9
- else if (.@i < 191) set .@enchant,4729; //Dexterity10
- else if (.@i < 291) set .@enchant,4734; //Agility5
- else if (.@i < 341) set .@enchant,4735; //Agility6
- else if (.@i < 366) set .@enchant,4736; //Agility7
- else if (.@i < 378) set .@enchant,4737; //Agility8
- else if (.@i < 383) set .@enchant,4738; //Agility9
- else if (.@i < 384) set .@enchant,4739; //Agility10
- else if (.@i < 484) set .@enchant,4754; //Luck5
- else if (.@i < 534) set .@enchant,4755; //Luck6
- else if (.@i < 559) set .@enchant,4756; //Luck7
- else if (.@i < 571) set .@enchant,4757; //Luck8
- else if (.@i < 576) set .@enchant,4758; //Luck9
- else if (.@i < 577) set .@enchant,4759; //Luck10
- else if (.@i < 777) set .@enchant,4744; //Vitality5
- else if (.@i < 877) set .@enchant,4745; //Vitality6
- else if (.@i < 927) set .@enchant,4746; //Vitality7
- else if (.@i < 952) set .@enchant,4747; //Vitality8
- else if (.@i < 964) set .@enchant,4748; //Vitality9
- else if (.@i < 969) set .@enchant,4749; //Vitality10
- else if (.@i < 1069) set .@enchant,4812; //Spell4
- else if (.@i < 1094) set .@enchant,4826; //Spell5
- else if (.@i < 1119) set .@enchant,4761; //Matk2
- else if (.@i < 1124) set .@enchant,4806; //Matk3
- else set .@enchant,0;
+ .@i = rand(1,1200);
+ if (.@i < 51) .@enchant = 4714; //Inteligence5
+ else if (.@i < 76) .@enchant = 4715; //Inteligence6
+ else if (.@i < 88) .@enchant = 4716; //Inteligence7
+ else if (.@i < 93) .@enchant = 4717; //Inteligence8
+ else if (.@i < 95) .@enchant = 4718; //Inteligence9
+ else if (.@i < 96) .@enchant = 4719; //Inteligence10
+ else if (.@i < 146) .@enchant = 4724; //Dexterity5
+ else if (.@i < 171) .@enchant = 4725; //Dexterity6
+ else if (.@i < 183) .@enchant = 4726; //Dexterity7
+ else if (.@i < 188) .@enchant = 4727; //Dexterity8
+ else if (.@i < 190) .@enchant = 4728; //Dexterity9
+ else if (.@i < 191) .@enchant = 4729; //Dexterity10
+ else if (.@i < 291) .@enchant = 4734; //Agility5
+ else if (.@i < 341) .@enchant = 4735; //Agility6
+ else if (.@i < 366) .@enchant = 4736; //Agility7
+ else if (.@i < 378) .@enchant = 4737; //Agility8
+ else if (.@i < 383) .@enchant = 4738; //Agility9
+ else if (.@i < 384) .@enchant = 4739; //Agility10
+ else if (.@i < 484) .@enchant = 4754; //Luck5
+ else if (.@i < 534) .@enchant = 4755; //Luck6
+ else if (.@i < 559) .@enchant = 4756; //Luck7
+ else if (.@i < 571) .@enchant = 4757; //Luck8
+ else if (.@i < 576) .@enchant = 4758; //Luck9
+ else if (.@i < 577) .@enchant = 4759; //Luck10
+ else if (.@i < 777) .@enchant = 4744; //Vitality5
+ else if (.@i < 877) .@enchant = 4745; //Vitality6
+ else if (.@i < 927) .@enchant = 4746; //Vitality7
+ else if (.@i < 952) .@enchant = 4747; //Vitality8
+ else if (.@i < 964) .@enchant = 4748; //Vitality9
+ else if (.@i < 969) .@enchant = 4749; //Vitality10
+ else if (.@i < 1069) .@enchant = 4812; //Spell4
+ else if (.@i < 1094) .@enchant = 4826; //Spell5
+ else if (.@i < 1119) .@enchant = 4761; //Matk2
+ else if (.@i < 1124) .@enchant = 4806; //Matk3
+ else .@enchant = 0;
} else {
mes "[Devil Enchant Master]";
mes "Hmm! This item is having a problem, please check it again!";
@@ -217,8 +217,8 @@ prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{
if (.@enchant == 0) {
specialeffect EF_SHIELDCHARGE;
mes "Oh! Unbelievable!! It failed!! Please come again!";
- set .@lost_refine, rand(0,.@equip_refine);
- set .@equip_refine, .@equip_refine - .@lost_refine;
+ .@lost_refine = rand(0,.@equip_refine);
+ .@equip_refine -= .@lost_refine;
} else {
specialeffect EF_REPAIRWEAPON;
mes "The slot ^9900004^000000 has been enchanted!";
diff --git a/npc/re/merchants/flute.txt b/npc/re/merchants/flute.txt
index 343308268..d2c9515b2 100644
--- a/npc/re/merchants/flute.txt
+++ b/npc/re/merchants/flute.txt
@@ -43,10 +43,10 @@
if (eaclass()&EAJL_THIRD) {
mes "[Falcon Flute Trader]";
mes "For Rangers, however, I have a special price of 10,000 zeny!";
- set .@price,10000;
+ .@price = 10000;
next;
} else
- set .@price,12500;
+ .@price = 12500;
if(select("Don't buy one:Buy a Falcon Flute") == 1) {
mes "[Falcon Flute Trader]";
mes "That's too bad. If you need one, come back!";
diff --git a/npc/re/merchants/hd_refiner.txt b/npc/re/merchants/hd_refiner.txt
index 0e0f3e081..7c875e995 100644
--- a/npc/re/merchants/hd_refiner.txt
+++ b/npc/re/merchants/hd_refiner.txt
@@ -31,10 +31,10 @@
mes "So lets kick this into overdrive, what d' ya say? What item do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Blacksmith Mighty Hammer]";
switch(.@part) {
@@ -80,15 +80,15 @@
switch(getequipweaponlv(.@part)) {
default:
case 0:
- set .@price,20000;
- set .@material,6241; //HD_Elunium
+ .@price = 20000;
+ .@material = 6241; //HD_Elunium
break;
case 1:
case 2:
case 3:
case 4:
- set .@price,20000;
- set .@material,6240; //HD_Oridecon
+ .@price = 20000;
+ .@material = 6240; //HD_Oridecon
break;
}
mes "[Blacksmith Mighty Hammer]";
@@ -165,10 +165,10 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF
mes "Which equipment do you want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Basta]";
switch(.@part) {
@@ -219,17 +219,17 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF
switch(getequipweaponlv(.@part)) {
default:
case 0:
- set .@price,100000;
- set .@material,6225; //HD_Carnium
- set .@type$,"armor";
+ .@price = 100000;
+ .@material = 6225; //HD_Carnium
+ .@type$ = "armor";
break;
case 1:
case 2:
case 3:
case 4:
- set .@price,100000;
- set .@material,6226; //HD_Bradium
- set .@type$,"weapon";
+ .@price = 100000;
+ .@material = 6226; //HD_Bradium
+ .@type$ = "weapon";
break;
}
mes "[Basta]";
diff --git a/npc/re/merchants/quivers.txt b/npc/re/merchants/quivers.txt
index 03730a04a..649da8529 100644
--- a/npc/re/merchants/quivers.txt
+++ b/npc/re/merchants/quivers.txt
@@ -73,10 +73,10 @@ S_BuyQuiver:
next;
switch(select("Trade all the arrows you have:Get only one quiver:Don't trade")) {
case 1:
- set .@arrows, countitem(getarg(0));
- set .@quiver, .@arrows / getarg(1);
- set .@arrows_used, .@quiver * getarg(1);
- set .@arrow_zeny01, .@quiver * getarg(2);
+ .@arrows = countitem(getarg(0));
+ .@quiver = .@arrows / getarg(1);
+ .@arrows_used = .@quiver * getarg(1);
+ .@arrow_zeny01 = .@quiver * getarg(2);
mes "The number of arrows you have : ^3131FF"+.@arrows+"^000000";
mes "The number of quivers available : ^3131FF"+.@quiver+"^000000";
mes "Zeny needed for trade : ^3131FF"+.@arrow_zeny01+" zeny^000000";
@@ -90,10 +90,10 @@ S_BuyQuiver:
}
break;
case 2:
- set .@quiver, 1;
- set .@arrows_used, getarg(1);
- set .@arrow_zeny01, getarg(2);
- set .@zeny_mes,1;
+ .@quiver = 1;
+ .@arrows_used = getarg(1);
+ .@arrow_zeny01 = getarg(2);
+ .@zeny_mes = 1;
break;
case 3:
mes "[Quiver Maker]";
diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt
index db57a1d5d..490f10b5c 100644
--- a/npc/re/merchants/refine.txt
+++ b/npc/re/merchants/refine.txt
@@ -54,20 +54,20 @@ function script refinenew {
next;
setarray .@position$[1],"Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1) {
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i) {
if (getequipisequiped(.@i)) {
- set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- set .@equipped,1;
+ .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+ .@equipped = 1;
}
- set .@menu$, .@menu$ + ":";
+ .@menu$ += ":";
}
if (.@equipped == 0) {
mes "[" + getarg(0) + "]";
mes "I don't think I can refine any items you have...";
close;
}
- set .@part, select(.@menu$);
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) { //custom check
mes "[" + getarg(0) + "]";
@@ -95,27 +95,27 @@ function script refinenew {
mes "refined as it gets!";
close;
}
- set .@refineitemid, getequipid(.@part); // save id of the item
- set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
+ .@refineitemid = getequipid(.@part); // save id of the item
+ .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
- set .@type$,"weapon";
- set .@material,6224; //Bradium
- set .@price,100000;
+ .@type$ = "weapon";
+ .@material = 6224; //Bradium
+ .@price = 100000;
switch(getequipweaponlv(.@part)) {
- case 1: set .@safe,10; break;
- case 2: set .@safe,10; break;
- case 3: set .@safe,10; break;
- case 4: set .@safe,10; break;
+ case 1: .@safe = 10; break;
+ case 2: .@safe = 10; break;
+ case 3: .@safe = 10; break;
+ case 4: .@safe = 10; break;
}
mes "["+ getarg(0) +"]";
mes "Hmm a weapon, is that ok?";
mes "If you want to refine this weapon,";
mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
} else {
- set .@type$,"armor";
- set .@material,6223; //Carnium
- set .@price,100000;
- set .@safe,10;
+ .@type$ = "armor";
+ .@material = 6223; //Carnium
+ .@price = 100000;
+ .@safe = 10;
mes "["+ getarg(0) +"]";
mes "Hmm an armor, is that ok?";
mes "If you want to refine this armor,";
@@ -222,26 +222,26 @@ function script refinenew {
mes "[" + getarg(0) + "]";
mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
next;
- set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
+ .@menu2 = select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
} else
- set .@menu2,2;
+ .@menu2 = 2;
switch(.@menu2){
case 1:
- set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
+ .@refinecnt = .@safe - getequiprefinerycnt(.@part);
break;
case 2:
mes "[" + getarg(0) + "]";
mes "How many times would you like me to refine your item?";
next;
input .@refinecnt;
- set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
+ .@refinecheck = .@refinecnt + getequiprefinerycnt(.@part);
if (.@refinecnt < 1 || .@refinecheck > 20) {
mes "[" + getarg(0) + "]";
mes "I can't refine this item that many times.";
close;
}
if (.@refinecheck > .@safe) {
- set .@refinecheck,.@refinecheck - .@safe;
+ .@refinecheck -= .@safe;
mes "[" + getarg(0) + "]";
mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
next;
@@ -257,7 +257,7 @@ function script refinenew {
mes "You said so... So be it.";
close;
}
- set .@fullprice,.@price * .@refinecnt;
+ .@fullprice = .@price * .@refinecnt;
mes "[" + getarg(0) + "]";
mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
next;
@@ -290,7 +290,7 @@ function script refinenew {
if (getequippercentrefinery(.@part) > rand(100)) {
mes "Clang! Clang! Clang! Clang!";
successrefitem .@part;
- set .@refinecnt,.@refinecnt - 1;
+ --.@refinecnt;
next;
} else {
if (rand(100) < 80) {
@@ -402,10 +402,10 @@ malangdo,224,172,6 script Clink#mal_normal 4_CAT_SAILOR1,{
mes "Yes!!! You!! You want to refine?";
next;
setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Clink]";
switch(.@part) {
@@ -452,34 +452,34 @@ malangdo,224,172,6 script Clink#mal_normal 4_CAT_SAILOR1,{
switch(getequipweaponlv(.@part)) {
default:
case 0: // Armor
- set .@price,2000;
- set .@material,985; //Elunium
- set .@type$,"armor";
+ .@price = 2000;
+ .@material = 985; //Elunium
+ .@type$ = "armor";
mes "Hmm, an armor refine? Someone like you?";
break;
case 1: // Level 1 Weapon
- set .@price,50;
- set .@material,1010; //Phracon
- set .@type$,"weapon";
+ .@price = 50;
+ .@material = 1010; //Phracon
+ .@type$ = "weapon";
mes "A level 1 weapon?";
mes "Urr... Annoying... Okay, let's try...";
break;
case 2: // Level 2 Weapon
- set .@price,200;
- set .@material,1011; //Emveretarcon
- set .@type$,"weapon";
+ .@price = 200;
+ .@material = 1011; //Emveretarcon
+ .@type$ = "weapon";
mes "A level 2 weapon?";
break;
case 3: // Level 3 Weapon
- set .@price,20000;
- set .@material,984; //Oridecon
- set .@type$,"weapon";
+ .@price = 20000;
+ .@material = 984; //Oridecon
+ .@type$ = "weapon";
mes "Woot!! A level 3 weapon? Impressive~";
break;
case 4: // Level 4 Weapon
- set .@price,50000;
- set .@material,984; //Oridecon
- set .@type$,"weapon";
+ .@price = 50000;
+ .@material = 984; //Oridecon
+ .@type$ = "weapon";
mes "Wow!... A level 4 weapon~!!";
break;
}
diff --git a/npc/re/merchants/renters.txt b/npc/re/merchants/renters.txt
index 59894c678..4bb929ac4 100644
--- a/npc/re/merchants/renters.txt
+++ b/npc/re/merchants/renters.txt
@@ -21,23 +21,21 @@ job3_rune01,88,62,5 script Dragon Breeder 8W_SOLDIER,{
next;
switch(select("Yes:No")) {
case 1:
- //if (!getskilllv("RK_DRAGONTRAINING")) {
- if (!getskilllv("KN_RIDING")) {
+ //if (!getskilllv(RK_DRAGONTRAINING)) {
+ if (!getskilllv(KN_RIDING)) {
mes "[Dragon Breeder]";
mes "Please learn how to ride a Dragon first.";
close;
- }
- else if (checkriding()) {
+ } else if (checkmount()) {
mes "[Dragon Breeder]";
mes "You already have a Dragon.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Dragon Breeder]";
mes "Please remove your cash mount.";
close;
}
- setdragon;
+ setmount(MOUNT_DRAGON);
close;
case 2:
mes "[Dragon Breeder]";
@@ -59,23 +57,21 @@ prontera,130,213,5 script Riding Creature Master 8W_SOLDIER,{
next;
switch(select("Yes:No")) {
case 1:
- //if (!getskilllv("RK_DRAGONTRAINING")) {
- if (!getskilllv("KN_RIDING")) {
+ //if (!getskilllv(RK_DRAGONTRAINING)) {
+ if (!getskilllv(KN_RIDING)) {
mes "[Riding Creature Master]";
mes "Please learn how to ride a Dragon first.";
close;
- }
- else if (checkriding()) {
+ } else if (checkmount()) {
mes "[Riding Creature Master]";
mes "You already have a Dragon.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Riding Creature Master]";
mes "Please remove your cash mount.";
close;
}
- setdragon;
+ setmount(MOUNT_DRAGON);
close;
case 2:
mes "[Riding Creature Master]";
@@ -88,22 +84,20 @@ prontera,130,213,5 script Riding Creature Master 8W_SOLDIER,{
next;
switch(select("Yes:No")) {
case 1:
- if(!getskilllv("KN_RIDING")) {
+ if(!getskilllv(KN_RIDING)) {
mes "[Riding Creature Master]";
mes "Please learn how to ride a Gryphon first.";
close;
- }
- else if (checkriding()) {
+ } else if (checkmount()) {
mes "[Riding Creature Master]";
mes "You already have a Gryphon.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Riding Creature Master]";
mes "Please remove your cash mount.";
close;
}
- setriding;
+ setmount(MOUNT_PECO);
close;
case 2:
mes "[Riding Creature Master]";
@@ -122,7 +116,7 @@ prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{
mes "If you're unable to dismount from a Peco Peco";
mes "for some unknown reason,";
mes "please feel free to use my services.";
- if (checkriding()) {
+ if (checkmount() == MOUNT_PECO) {
next;
mes "[Soldier]";
mes "You're riding a Peco Peco.";
@@ -130,7 +124,7 @@ prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{
next;
switch(select("Yes:No")) {
case 1:
- setriding 0;
+ setmount(MOUNT_NONE);
mes "[Soldier]";
mes "Say, how does it feel to";
mes "step on the ground on your own";
@@ -168,23 +162,21 @@ prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{
mes "There you go!";
close;
case 2:
- if (checkmadogear()) {
+ if (checkmount() == MOUNT_MADO) {
mes "[Magic Gear Master]";
mes "I'm sorry, but you're already";
mes "riding a Magic Gear.";
close;
- }
- else if (!getskilllv("NC_MADOLICENCE")) {
+ } else if (!getskilllv(NC_MADOLICENCE)) {
mes "[Magic Gear Master]";
mes "Please learn the skill to get the Magic Gear License first.";
close;
- }
- else if(ismounting()) {
+ } else if(hascashmount()) {
mes "[Magic Gear Master]";
mes "Please remove your cash mount.";
close;
}
- setmadogear;
+ setmount(MOUNT_MADO);
mes "[Magic Gear Master]";
mes "Have fun, and please come again!";
close;
diff --git a/npc/re/merchants/ticket_refiner.txt b/npc/re/merchants/ticket_refiner.txt
index d5d4dd59f..aa768f20b 100644
--- a/npc/re/merchants/ticket_refiner.txt
+++ b/npc/re/merchants/ticket_refiner.txt
@@ -16,9 +16,9 @@
prontera,184,177,6 script Refine Master 4_M_REPAIR,{
disable_items;
if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
- set .@bWeaponUp,1;
+ .@bWeaponUp = 1;
if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
- set .@bArmorUp,1;
+ .@bArmorUp = 1;
if (!.@bWeaponUp && !.@bArmorUp) {
mes "[Refine Master]";
mes "Hello!";
@@ -55,10 +55,10 @@ prontera,184,177,6 script Refine Master 4_M_REPAIR,{
mes "Which equipment would you like to refine?";
next;
setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
- set .@menu$,"";
- for(set .@i,1; .@i<=10; set .@i,.@i+1)
- set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":";
- set .@part, select(.@menu$);
+ .@menu$ = "";
+ for(.@i = 1; .@i<=10; ++.@i)
+ .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":";
+ .@part = select(.@menu$);
if (!getequipisequiped(.@part)) {
mes "[Refine Master]";
mes "You have to equip the item you want to refine.";
@@ -76,8 +76,8 @@ prontera,184,177,6 script Refine Master 4_M_REPAIR,{
case 0:
setarray .@tickets[0],6457,6235,6234,6233,6232,6239;
setarray .@levels[0],5,6,7,8,9,11;
- set .@type$,"Armor";
- set .@check,.@bArmorUp;
+ .@type$ = "Armor";
+ .@check = .@bArmorUp;
break;
case 1:
case 2:
@@ -85,8 +85,8 @@ prontera,184,177,6 script Refine Master 4_M_REPAIR,{
case 4:
setarray .@tickets[0],6456,6231,6230,6229,6228,6238;
setarray .@levels[0],5,6,7,8,9,11;
- set .@type$,"Weapon";
- set .@check,.@bWeaponUp;
+ .@type$ = "Weapon";
+ .@check = .@bWeaponUp;
break;
}
if (!.@check) {
@@ -99,12 +99,12 @@ prontera,184,177,6 script Refine Master 4_M_REPAIR,{
mes "[Refine Master]";
mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use.";
next;
- set .@menu$,"";
- for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
- set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
- set .@select, select(.@menu$)-1;
- set .@ticket_lv, .@levels[.@select];
- set .@ticket_id, .@tickets[.@select];
+ .@menu$ = "";
+ for(.@i = 0; .@i<getarraysize(.@tickets); ++.@i)
+ .@menu$ += getitemname(.@tickets[.@i])+":";
+ .@select = select(.@menu$)-1;
+ .@ticket_lv = .@levels[.@select];
+ .@ticket_id = .@tickets[.@select];
if (countitem(.@ticket_id) == 0) {
emotion e_what;
mes "[Refine Master]";
@@ -146,7 +146,7 @@ prontera,184,177,6 script Refine Master 4_M_REPAIR,{
mes "Please report this.";
close;
}
- for(set .@i,getequiprefinerycnt(.@part); .@i<.@ticket_lv; set .@i,.@i+1)
+ for(.@i = getequiprefinerycnt(.@part); .@i<.@ticket_lv; ++.@i)
successrefitem .@part;
next;
emotion e_ho;
diff --git a/npc/re/mobs/dungeons/lhz_dun.txt b/npc/re/mobs/dungeons/lhz_dun.txt
index 8da7874bf..16296e20e 100644
--- a/npc/re/mobs/dungeons/lhz_dun.txt
+++ b/npc/re/mobs/dungeons/lhz_dun.txt
@@ -73,26 +73,26 @@ OnTimer6000000: // delay1 = 6000000 ms (100 min)
OnInit:
// Select Coordinates to summon a random MVP on
switch(rand(1,6)) {
- case 1: set .@x,140; set .@y,232; break;
- case 2: set .@x,75; set .@y,138; break;
- case 3: set .@x,140; set .@y,87; break;
- case 4: set .@x,205; set .@y,140; break;
- case 5: set .@x,123; set .@y,137; break;
- case 6: set .@x,175; set .@y,137; break;
+ case 1: .@x = 140; .@y = 232; break;
+ case 2: .@x = 75; .@y = 138; break;
+ case 3: .@x = 140; .@y = 87; break;
+ case 4: .@x = 205; .@y = 140; break;
+ case 5: .@x = 123; .@y = 137; break;
+ case 6: .@x = 175; .@y = 137; break;
}
- set .@mob,rand(1646,1651);
+ .@mob = rand(1646,1651);
monster "lhz_dun03",.@x,.@y,strmobinfo(1,.@mob),.@mob,1,strnpcinfo(3)+"::OnMyMVPDead";
// Select Coordinates to summon a random 99 on
switch(rand(1,6)) {
- case 1: set .@x2,183; set .@y2,97; break;
- case 2: set .@x2,97; set .@y2,96; break;
- case 3: set .@x2,47; set .@y2,139; break;
- case 4: set .@x2,231; set .@y2,140; break;
- case 5: set .@x2,139; set .@y2,211; break;
- case 6: set .@x2,139; set .@y2,259; break;
+ case 1: .@x2 = 183; .@y2 = 97; break;
+ case 2: .@x2 = 97; .@y2 = 96; break;
+ case 3: .@x2 = 47; .@y2 = 139; break;
+ case 4: .@x2 = 231; .@y2 = 140; break;
+ case 5: .@x2 = 139; .@y2 = 211; break;
+ case 6: .@x2 = 139; .@y2 = 259; break;
}
- set .@mob2,rand(1640,1645);
+ .@mob2 = rand(1640,1645);
monster "lhz_dun03",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,strnpcinfo(3)+"::OnMy99Dead";
end;
@@ -128,28 +128,28 @@ OnTimer6000000: // delay1 = 6000000 ms (100 min)
OnInit:
// Select Coordinates to summon a random MVP on
switch(rand(1,7)) {
- case 1: set .@x,77; set .@y,251; break;
- case 2: set .@x,147; set .@y,224; break;
- case 3: set .@x,219; set .@y,219; break;
- case 4: set .@x,244; set .@y,120; break;
- case 5: set .@x,149; set .@y,41; break;
- case 6: set .@x,53; set .@y,109; break;
- case 7: set .@x,149; set .@y,151; break;
+ case 1: .@x = 77; .@y = 251; break;
+ case 2: .@x = 147; .@y = 224; break;
+ case 3: .@x = 219; .@y = 219; break;
+ case 4: .@x = 244; .@y = 120; break;
+ case 5: .@x = 149; .@y = 41; break;
+ case 6: .@x = 53; .@y = 109; break;
+ case 7: .@x = 149; .@y = 151; break;
}
- set .@mob,rand(2235,2241);
+ .@mob = rand(2235,2241);
monster "lhz_dun04",.@x,.@y,strmobinfo(1,.@mob),.@mob,1,strnpcinfo(3)+"::OnMyMVPDead";
// Select Coordinates to summon a random 99 on
switch(rand(1,7)) {
- case 1: set .@x2,77; set .@y2,251; break;
- case 2: set .@x2,147; set .@y2,224; break;
- case 3: set .@x2,219; set .@y2,219; break;
- case 4: set .@x2,244; set .@y2,120; break;
- case 5: set .@x2,149; set .@y2,41; break;
- case 6: set .@x2,53; set .@y2,109; break;
- case 7: set .@x2,149; set .@y2,151; break;
+ case 1: .@x2 = 77; .@y2 = 251; break;
+ case 2: .@x2 = 147; .@y2 = 224; break;
+ case 3: .@x2 = 219; .@y2 = 219; break;
+ case 4: .@x2 = 244; .@y2 = 120; break;
+ case 5: .@x2 = 149; .@y2 = 41; break;
+ case 6: .@x2 = 53; .@y2 = 109; break;
+ case 7: .@x2 = 149; .@y2 = 151; break;
}
- set .@mob2,rand(2228,2234);
+ .@mob2 = rand(2228,2234);
monster "lhz_dun04",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,strnpcinfo(3)+"::OnMy99Dead";
end;
diff --git a/npc/re/other/resetskill.txt b/npc/re/other/resetskill.txt
index f3415e6c9..a237fcf24 100644
--- a/npc/re/other/resetskill.txt
+++ b/npc/re/other/resetskill.txt
@@ -61,10 +61,10 @@ izlude,127,175,3 script Hypnotist#novice 4_F_TELEPORTER,{
mes "work, or will backfire...";
close;
case 2:
- set .@str$,"Stat";
+ .@str$ = "Stat";
case 3:
if (.@str$ == "")
- set .@str$,"Skill";
+ .@str$ = "Skill";
mes "[Hypnotist]";
mes "Are you sure that you";
mes "want to proceed with";
diff --git a/npc/re/other/stone_change.txt b/npc/re/other/stone_change.txt
index cfb2aa5eb..f99ae28c5 100644
--- a/npc/re/other/stone_change.txt
+++ b/npc/re/other/stone_change.txt
@@ -25,14 +25,14 @@ geffen_in,99,174,5 script Ore Tester#sorty 8_F_GIRL,{
mes "[Ore Tester Sorty]";
mes "So, would you like me to organize your ores?";
next;
- set .@i, select("Steel, please.:Iron, please.:Iron Ore, please.:Rough Oridecon, please.:No, thanks.");
+ .@i = select("Steel, please.:Iron, please.:Iron Ore, please.:Rough Oridecon, please.:No, thanks.");
if (.@i == 5) {
mes "[Ore Tester Sorty]";
mes "Huh, I really hate messy people!";
close;
}
setarray .@ores[0],999,998,1002,756;
- set .@item, .@ores[.@i-1];
+ .@item = .@ores[.@i-1];
if (countitem(.@item) == 0) {
mes "[Ore Tester Sorty]";
mes "You don't have any "+getitemname(.@item)+"...";
@@ -40,8 +40,8 @@ geffen_in,99,174,5 script Ore Tester#sorty 8_F_GIRL,{
}
while(1) {
if (countitem(.@item)) {
- set .@count, countitem(.@item);
- set .@total, .@total + .@count;
+ .@count = countitem(.@item);
+ .@total += .@count;
delitem .@item, .@count;
} else {
getitem .@item, .@total;
diff --git a/npc/re/quests/cupet.txt b/npc/re/quests/cupet.txt
index 829ec2dae..3e339e168 100644
--- a/npc/re/quests/cupet.txt
+++ b/npc/re/quests/cupet.txt
@@ -14,14 +14,14 @@
// 1st NPC
- script CPM1 4_M_ALCHE_C,{
- set .@npc$, "[Cute Pet Manager]";
+ .@npc$ = "[Cute Pet Manager]";
setarray .@tame_id[0],619,620,622,623,624,627,628,629,630;
setarray .@tame_amount[0],3,3,3,3,3,3,3,3,3;
setarray .@hunt_id[0],909,909,705,916,935,919,919,940,921;
setarray .@hunt_amount[0],500,600,500,500,500,500,600,500,500;
setarray .@mob_id[0],1002,1113,1063,1049,1011,1167,1107,1052,1014;
- set .@tame_gets, 3;
+ .@tame_gets = 3;
if (cpm_one == .@tame_gets) {
mes "[Cute Pet Manager]";
@@ -45,7 +45,7 @@
// 2nd NPC
- script CPM2 4_M_ALCHE_C,{
- set .@npc$, "[Cute Pet Manager]";
+ .@npc$ = "[Cute Pet Manager]";
setarray .@tame_id[0],621,625,632,631,633,634,635,636,659,637,639,640;
setarray .@tame_amount[0],2,2,2,2,2,2,2,2,2,2,2,2;
@@ -53,7 +53,7 @@
setarray .@hunt_amount[0],500,600,500,300,500,500,500,500,500,500,500,500;
setarray .@hunt_item_count[0],1,1,1,1,1,1,1,1,1;
setarray .@mob_id[0],1031,1042,1019,1077,1056,1057,1023,1026,1188,1110,1029;
- set .@tame_gets, 2;
+ .@tame_gets = 2;
if (cpm_two == .@tame_gets) {
mes "[Cute Pet Manager]";
@@ -77,7 +77,7 @@
// 3rd NPC
- script CPM3 4_M_ALCHE_C,{
- set .@npc$, "[Cute Pet Manager]";
+ .@npc$ = "[Cute Pet Manager]";
setarray .@tame_id[0],638,626,641,661,660,642;
setarray .@tame_amount[0],1,1,1,1,1,1;
@@ -86,7 +86,7 @@
setarray .@hunt_id2[0],0,0,0,0,7017,0;
setarray .@hunt_amount2[0],0,0,0,0,20,0;
setarray .@mob_id[0],1170,1035,1109,1275,1200,1101;
- set .@tame_gets, 1;
+ .@tame_gets = 1;
if (cpm_three == .@tame_gets) {
mes "[Cute Pet Manager]";
@@ -158,21 +158,21 @@ function script cute_pet_manager {
next;
// Create Menu System
- for (set .@a, 0; .@a < getarraysize(getarg(0)); set .@a, .@a + 1) {
- set .@menu$, .@menu$ + (.@menu$ == "" ? "" : ":") + getitemname(getelementofarray(getarg(0), .@a));
+ for (.@a = 0; .@a < getarraysize(getarg(0)); ++.@a) {
+ .@menu$ += (.@menu$ == "" ? "" : ":") + getitemname(getelementofarray(getarg(0), .@a));
}
// Query Player Choice
- set .@choice, select(.@menu$) - 1;
+ .@choice = select(.@menu$) - 1;
// Store Variables (Less Lookup)
- set .@tame_id, getelementofarray(getarg(0), .@choice);
- set .@tame_amount, getelementofarray(getarg(1), .@choice);
- set .@hunt_id, getelementofarray(getarg(2), .@choice);
- set .@hunt_amount, getelementofarray(getarg(3), .@choice);
- set .@mob_id, getelementofarray(getarg(4), .@choice);
- set .@hunt_id2, getelementofarray(getarg(7), .@choice);
- set .@hunt_amount2, getelementofarray(getarg(8), .@choice);
+ .@tame_id = getelementofarray(getarg(0), .@choice);
+ .@tame_amount = getelementofarray(getarg(1), .@choice);
+ .@hunt_id = getelementofarray(getarg(2), .@choice);
+ .@hunt_amount = getelementofarray(getarg(3), .@choice);
+ .@mob_id = getelementofarray(getarg(4), .@choice);
+ .@hunt_id2 = getelementofarray(getarg(7), .@choice);
+ .@hunt_amount2 = getelementofarray(getarg(8), .@choice);
dispbottom "Tame ID: " + .@tame_id;
dispbottom "Tame Amount: " + .@tame_amount;
@@ -183,7 +183,7 @@ function script cute_pet_manager {
dispbottom "Hunt ID2: " + .@hunt_id2;
dispbottom "Hunt Amount2: " + .@hunt_amount2;
- if (.@hunt_id2) { set .@hunt2_count, countitem(.@hunt_id2); }
+ if (.@hunt_id2) { .@hunt2_count = countitem(.@hunt_id2); }
if (countitem(.@hunt_id) >= .@hunt_amount && countitem(6083) > 0 && .@hunt2_count >= .@hunt_amount2) {
mes "[Cute Pet Manager]";
diff --git a/npc/re/quests/eden/11-25.txt b/npc/re/quests/eden/11-25.txt
index 200454e81..b9c9f85ce 100644
--- a/npc/re/quests/eden/11-25.txt
+++ b/npc/re/quests/eden/11-25.txt
@@ -19,11 +19,11 @@ moc_para01,36,38,3 script Mission [11 - 25]#Tuto 4_BOARD3,{
mes "- to receive these missions. -";
close;
}
- for(set .@i,11124; .@i<11134; set .@i,.@i+1)
- if (checkquest(.@i,PLAYTIME) == 2) erasequest .@i;
- for(set .@i,11114; .@i<11123; set .@i,.@i+1) {
- set .@j, checkquest(.@i,HUNTING);
- if (.@j == 2) {
+ for(.@i = 11124; .@i<11134; ++.@i)
+ if (questprogress(.@i,PLAYTIME) == 2) erasequest .@i;
+ for(.@i = 11114; .@i<11123; ++.@i) {
+ .@state = questprogress(.@i,HUNTING);
+ if (.@state == 2) {
mes " - You must collect your - ";
mes " - reward before starting - ";
mes " - a new mission. - ";
@@ -31,7 +31,7 @@ moc_para01,36,38,3 script Mission [11 - 25]#Tuto 4_BOARD3,{
mes " - Manager : Spike - ";
close;
}
- else if (.@j >= 0) {
+ else if (.@state) {
mes " - You can only request - ";
mes " - one mission at a time. - ";
mes " ";
@@ -71,7 +71,7 @@ moc_para01,36,38,3 script Mission [11 - 25]#Tuto 4_BOARD3,{
}
end;
L_Quest:
- if (checkquest(getarg(0),PLAYTIME) == 1) {
+ if (questprogress(getarg(0),PLAYTIME) == 1) {
mes " - Mission ^4d4dff"+getarg(1)+"^000000 - ";
mes " - is already finished for today. - ";
mes " ";
@@ -79,7 +79,7 @@ L_Quest:
close;
}
mes " - Mission '"+getarg(1)+"' - ";
- for(set .@i,2; .@i<getargcount(); set .@i,.@i+1)
+ for(.@i = 2; .@i<getargcount(); ++.@i)
mes getarg(.@i);
mes " ";
mes " - Manager : Spike - ";
@@ -89,18 +89,18 @@ L_Quest:
mes " - other missions. - ";
close;
}
- for(set .@i,2; .@i<getargcount(); set .@i,.@i+1)
+ for(.@i = 2; .@i<getargcount(); ++.@i)
mes getarg(.@i);
- if (getarg(0) == 11123 && checkquest(11123,PLAYTIME) == 2)
+ if (getarg(0) == 11123 && questprogress(11123,PLAYTIME) == 2)
erasequest 11133; // Special case for "Collect Poison Spores"
setquest getarg(0);
close;
}
moc_para01,32,30,6 script Spike 4_F_CHILD,{
- for(set .@i,11114; .@i<11124; set .@i,.@i+1) {
- set .@j, checkquest(.@i,HUNTING);
- if (.@j == 2) switch(.@i) {
+ for(.@i = 11114; .@i<11124; ++.@i) {
+ .@state = questprogress(.@i,HUNTING);
+ if (.@state == 2) switch(.@i) {
case 11114: callsub L_Quest,.@i,"Hornet Hunting",900;
case 11115: callsub L_Quest,.@i,"Condor Hunting",1800;
case 11116: callsub L_Quest,.@i,"Grasshopper's Leg",1400,940,10;
@@ -112,7 +112,7 @@ moc_para01,32,30,6 script Spike 4_F_CHILD,{
case 11122: callsub L_Quest,.@i,"Collect Feathers",5400;
case 11123: callsub L_Quest,.@i,"Collect Poison Spores",6000,7033,5;
}
- else if (.@j >= 0) {
+ else if (.@state) {
mes "[Spike]";
mes "You haven't finished your mission yet.";
mes "Keep up the good work. You are almost done.";
@@ -127,7 +127,7 @@ moc_para01,32,30,6 script Spike 4_F_CHILD,{
mes "Why don't you look around and find some interesting tasks?";
close;
L_Quest:
- if (checkquest(getarg(0),HUNTING) == 2) {
+ if (questprogress(getarg(0),HUNTING) == 2) {
if (getarg(3,0))
if (countitem(getarg(3)) < getarg(4)) {
mes "[Spike]";
diff --git a/npc/re/quests/eden/26-40.txt b/npc/re/quests/eden/26-40.txt
index a4f0d5637..3ff9f5213 100644
--- a/npc/re/quests/eden/26-40.txt
+++ b/npc/re/quests/eden/26-40.txt
@@ -84,7 +84,7 @@ L_Quest:
mes "You have declined the "+getarg(2)+" mission.";
close;
}
- if (checkquest(getarg(0)) > -1) mes "You are already doing this mission.";
+ if (questprogress(getarg(0))) mes "You are already doing this mission.";
else {
setquest getarg(0);
mes "You have accepted the "+getarg(2)+" mission.";
@@ -134,8 +134,8 @@ geffen,103,42,5 script Sponiac 4W_M_03,{
end;
L_Quest:
//QuestID,Quest,BExp,JExp,PotionAmt,Desc
- if (checkquest(getarg(0)) == 1) {
- if (checkquest(getarg(0),HUNTING) == 2) {
+ if (questprogress(getarg(0)) == 1) {
+ if (questprogress(getarg(0),HUNTING) == 2) {
mes "[Sponiac]";
mes getarg(1)+"!";
mes "Wow, I didn't expect you would do that mission. I was just about to give up. But you did good job. I appreciate it!";
@@ -209,7 +209,7 @@ moc_ruins,173,55,3 script Dieshin Man 4_M_ORIENT02,{
}
end;
L_Quest:
- if (checkquest(getarg(0)) != 1) {
+ if (questprogress(getarg(0)) != 1) {
mes "[Dieshin Man]";
mes "Huh? Are you sure? Something is wrong...";
next;
@@ -281,7 +281,7 @@ pay_fild07,83,89,7 script Zoologist 4_M_ORIENT02,{
mes "Oh, I need an Insecticide to continue the study.";
close;
}
- if (checkquest(8271) != 1) {
+ if (questprogress(8271) != 1) {
mes "[Zoologist]";
mes "Huh?";
mes "You are not Dieshin's delivery man?";
@@ -346,7 +346,7 @@ prt_fild03,30,254,3 script Entomologist 4_M_01,{
mes "Oh, I need Honey to continue the study.";
close;
}
- if (checkquest(8272) != 1) {
+ if (questprogress(8272) != 1) {
mes "[Entomologist]";
mes "Huh?";
mes "You are not Dieshin's delivery man?";
@@ -411,7 +411,7 @@ xmas_fild01,92,57,3 script Biologist 4W_M_01,{
mes "Huh, whatever. But be careful! It's very slippery here.";
close;
}
- if (checkquest(8273) != 1) {
+ if (questprogress(8273) != 1) {
mes "[Biologist]";
mes "Huh?";
mes "You are not Dieshin's delivery man?";
@@ -645,7 +645,7 @@ payon,179,66,3 script Dashia 4_M_RACHMAN1,{
mes "Anyway, I will be here waiting for you. Please come back when you finish the mission!";
close;
L_Quest:
- if (checkquest(getarg(0)) != 1) {
+ if (questprogress(getarg(0)) != 1) {
mes "[Dashia]";
mes "Huh? Are you sure? Something is wrong...";
next;
diff --git a/npc/re/quests/eden/41-55.txt b/npc/re/quests/eden/41-55.txt
index eb1c22e42..f67497c47 100644
--- a/npc/re/quests/eden/41-55.txt
+++ b/npc/re/quests/eden/41-55.txt
@@ -22,7 +22,7 @@ moc_para01,40,38,3 script Mission [41 - 55] 4_BOARD3,{
mes "You cannot receive any more items because you're carrying too many items. Please try again after you lighten up.^000000";
close;
}
- if (checkquest(12088) == -1) {
+ if (!questprogress(12088)) {
if (BaseLevel < 41 || BaseLevel > 55) {
mes "Mission bulletin board for Lv41~55 adventurers.";
close;
@@ -55,8 +55,8 @@ moc_para01,40,38,3 script Mission [41 - 55] 4_BOARD3,{
end;
}
setarray .@exp[0],9600,7200,15750,7875,11100,8550,17100,9000,12300,9900,20250,10350,13800,11025,22500,11250;
- for(set .@i,0; .@i<16; set .@i,.@i+1)
- if (checkquest(12072+.@i,HUNTING) == 2) {
+ for(.@i = 0; .@i<16; ++.@i)
+ if (questprogress(12072+.@i,HUNTING) == 2) {
mes "[Mission Board]";
mes "You have completed the mission.";
mes "Here is your reward.";
@@ -66,7 +66,10 @@ moc_para01,40,38,3 script Mission [41 - 55] 4_BOARD3,{
getexp .@exp[.@i],0;
close;
}
- if ((checkquest(12072,HUNTING) == 0) && (checkquest(12073,HUNTING) == 0) && (checkquest(12074,HUNTING) == 0) && (checkquest(12075,HUNTING) == 0) && (checkquest(12076,HUNTING) == 0) && (checkquest(12077,HUNTING) == 0) && (checkquest(12078,HUNTING) == 0) && (checkquest(12079,HUNTING) == 0) && (checkquest(12080,HUNTING) == 0) && (checkquest(12081,HUNTING) == 0) && (checkquest(12082,HUNTING) == 0) && (checkquest(12083,HUNTING) == 0) && (checkquest(12084,HUNTING) == 0) && (checkquest(12085,HUNTING) == 0) && (checkquest(12086,HUNTING) == 0) && (checkquest(12087,HUNTING) == 0)) {
+ if (!questprogress(12072,HUNTING) && !questprogress(12073,HUNTING) && !questprogress(12074,HUNTING) && !questprogress(12075,HUNTING)
+ && !questprogress(12076,HUNTING) && !questprogress(12077,HUNTING) && !questprogress(12078,HUNTING) && !questprogress(12079,HUNTING)
+ && !questprogress(12080,HUNTING) && !questprogress(12081,HUNTING) && !questprogress(12082,HUNTING) && !questprogress(12083,HUNTING)
+ && !questprogress(12084,HUNTING) && !questprogress(12085,HUNTING) && !questprogress(12086,HUNTING) && !questprogress(12087,HUNTING)) {
mes "You may now view the bulletin board.";
erasequest 12088;
close;
diff --git a/npc/re/quests/eden/56-70.txt b/npc/re/quests/eden/56-70.txt
index c7e5103a8..0178a56ce 100644
--- a/npc/re/quests/eden/56-70.txt
+++ b/npc/re/quests/eden/56-70.txt
@@ -51,7 +51,7 @@ moc_para01,42,38,3 script Mission [56 - 70] 4_BOARD3,{
end;
L_Quest:
- if (checkquest(getarg(0)) == -1) {
+ if (!questprogress(getarg(0))) {
callsub L_Details, getarg(0);
next;
mes "Would you like to accept this mission?";
@@ -70,11 +70,11 @@ L_Quest:
}
if (getargcount() > 5) {
if (countitem(getarg(5)) < getarg(6))
- set .@items,1; //incomplete
+ .@items = 1; //incomplete
else
- set .@items,2; //complete
+ .@items = 2; //complete
}
- if (checkquest(getarg(0)) < 2 && (countitem(getarg(3)) < getarg(4) || .@items == 1)) {
+ if (questprogress(getarg(0)) != 2 && (countitem(getarg(3)) < getarg(4) || .@items == 1)) {
mes "You have an on-going mission. Would you like to check the details?";
next;
if(select("Check the details.:Cancel.") == 1)
@@ -96,7 +96,7 @@ L_Quest:
end;
L_HuntingQuest:
- if (checkquest(getarg(0)) == -1) {
+ if (!questprogress(getarg(0))) {
callsub L_Details, getarg(0);
next;
mes "Would you like to accept this mission?";
@@ -115,17 +115,17 @@ L_HuntingQuest:
}
if (getargcount() > 3) {
if (countitem(getarg(3)) < getarg(4))
- set .@items,1; //incomplete
+ .@items = 1; //incomplete
else
- set .@items,2; //complete
+ .@items = 2; //complete
}
- if (checkquest(getarg(0),HUNTING) < 2 || .@items == 1) {
+ if (questprogress(getarg(0),HUNTING) != 2 || .@items == 1) {
mes "You have an on-going mission. Would you like to check the details?";
next;
if(select("Check the details.:Cancel.") == 1)
callsub L_Details, getarg(0);
close;
- } else if (checkquest(getarg(0),HUNTING) == 2) {
+ } else if (questprogress(getarg(0),HUNTING) == 2) {
mes "I have done pretty well for the mission. Should I report it now?";
next;
if(select("Report the mission.:Do not report it yet.") == 1) {
diff --git a/npc/re/quests/eden/71-85.txt b/npc/re/quests/eden/71-85.txt
index 57102982c..e88e388cb 100644
--- a/npc/re/quests/eden/71-85.txt
+++ b/npc/re/quests/eden/71-85.txt
@@ -22,10 +22,10 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
}
// Clear the original quest data (no longer used).
- if (slv_quest) set slv_quest,0;
- if (checkquest(10102) > -1 || checkquest(10103) > -1 || checkquest(10104) > -1 || checkquest(10105) > -1 || checkquest(10106) > -1) {
- for(set .@quest,10102; .@quest<=10106; set .@quest,.@quest+1) {
- if (checkquest(.@quest) > -1)
+ if (slv_quest) slv_quest = 0;
+ if (questprogress(10102) || questprogress(10103) || questprogress(10104) || questprogress(10105) || questprogress(10106)) {
+ for(.@quest = 10102; .@quest<=10106; ++.@quest) {
+ if (questprogress(.@quest))
erasequest .@quest;
}
mes "- Since the client has moved -";
@@ -49,19 +49,19 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
10114,10115,10116,10117,
10118,10119,10120,
10121,10122,10123,5055,5056;
- for(set .@i,0; .@i<getarraysize(.@quests); set .@i,.@i+1) {
- if (checkquest(.@quests[.@i],HUNTING) == 2)
- set .@complete[getarraysize(.@complete)], .@quests[.@i];
+ for(.@i = 0; .@i<getarraysize(.@quests); ++.@i) {
+ if (questprogress(.@quests[.@i],HUNTING) == 2)
+ .@complete[getarraysize(.@complete)] = .@quests[.@i];
}
- if (checkquest(5057) > -1 && countitem(7187) >= 30)
- set .@complete[getarraysize(.@complete)],5057;
+ if (questprogress(5057) && countitem(7187) >= 30)
+ .@complete[getarraysize(.@complete)] = 5057;
if (getarraysize(.@complete)) {
mes "You have quests in progress.";
mes "Do you want to turn them in?";
next;
if(select("Of course.:No.") == 2)
close;
- for(set .@i,0; .@i<getarraysize(.@complete); set .@i,.@i+1)
+ for(.@i = 0; .@i<getarraysize(.@complete); ++.@i)
callsub L_Quest,.@complete[.@i];
close;
}
@@ -81,8 +81,8 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
mes "- related to the Sphinx Dungeon -";
mes "- on this mission Board. -";
next;
- set .@str1$,"The villagers of Morroc are worried by the increasing number of monsters in the Sphinx Dungeon. ";
- set .@str2$,"- Meidi from Morroc -";
+ .@str1$ = "The villagers of Morroc are worried by the increasing number of monsters in the Sphinx Dungeon. ";
+ .@str2$ = "- Meidi from Morroc -";
switch(select("Hunt Requiem:Hunt Marduk:Hunt Pasana")) {
case 1: callsub L_Quest,10107,.@str1$+"Hunt 10 Requiems.",.@str2$;
case 2: callsub L_Quest,10108,.@str1$+"Hunt 10 Marduks.",.@str2$;
@@ -93,8 +93,8 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
mes "- related to Glast Heim -";
mes "- on this mission Board. -";
next;
- set .@str1$,"I am very afraid that the monsters from Glast Heim will attack us. ";
- set .@str2$,"- Ancellia from Geffen -";
+ .@str1$ = "I am very afraid that the monsters from Glast Heim will attack us. ";
+ .@str2$ = "- Ancellia from Geffen -";
switch(select("Hunt Dark Frame:Hunt Evil Druid:Hunt Wraith:Hunt Raydric Archer")) {
case 1: callsub L_Quest,10110,.@str1$+"Hunt 10 Dark Frames.",.@str2$;
case 2: callsub L_Quest,10111,.@str1$+"Hunt 10 Evil Druids.",.@str2$;
@@ -106,8 +106,8 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
mes "- related to the area -";
mes "- around Juno. -";
next;
- set .@str1$,"Those who can't fight, like me, find it much more difficult to travel due to the large number of monsters. ";
- set .@str2$,"- Jeanbai, traveler -";
+ .@str1$ = "Those who can't fight, like me, find it much more difficult to travel due to the large number of monsters. ";
+ .@str2$ = "- Jeanbai, traveler -";
switch(select("Hunt Grand Peco:Hunt Sleeper:Hunt Goat:Hunt Harpy")) {
case 1: callsub L_Quest,10114,.@str1$+"Hunt 20 Grand Pecos.",.@str2$;
case 2: callsub L_Quest,10115,.@str1$+"Hunt 20 Sleepers.",.@str2$;
@@ -119,8 +119,8 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
mes "- related to the Clock Tower -";
mes "- on this mission Board. -";
next;
- set .@str1$,"I used to love listening to the sweet melody of the Al De Baran Clock Tower but I can't hear anything anymore because of all the noises the monsters are making. ";
- set .@str2$,"- Rizingsetter, President of the Love Clock community -";
+ .@str1$ = "I used to love listening to the sweet melody of the Al De Baran Clock Tower but I can't hear anything anymore because of all the noises the monsters are making. ";
+ .@str2$ = "- Rizingsetter, President of the Love Clock community -";
switch(select("Hunt Clock:Hunt Punk:Hunt Rideword")) {
case 1: callsub L_Quest,10118,.@str1$+"Hunt 15 Clocks before it breaks.",.@str2$;
case 2: callsub L_Quest,10119,.@str1$+"Hunt 15 Punks before it breaks.",.@str2$;
@@ -131,8 +131,8 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
mes "- related to the Localized Islands -";
mes "- on this mission Board. -";
next;
- set .@str1$,"I want to go on an adventure but there are so many things I have to deal with. If I can't, then others can't either! ";
- set .@str2$,"- Funfy, who wants to go on an adventure -";
+ .@str1$ = "I want to go on an adventure but there are so many things I have to deal with. If I can't, then others can't either! ";
+ .@str2$ = "- Funfy, who wants to go on an adventure -";
switch(select("Hunt Kikimora:Hunt Miyabi Doll:Hunt Mi Gao:Hunt Headless Mule:Hunt Tamruan:Gather Festival Masks for the Festival")) {
case 1: callsub L_Quest,10121,.@str1$+"Hunt 15 Kikimoras in Moscovia!",.@str2$;
case 2: callsub L_Quest,10122,.@str1$+"Hunt 15 Miyabi Dolls in Amatsu!",.@str2$;
@@ -146,28 +146,28 @@ moc_para01,44,38,3 script Mission [71 - 85] 4_BOARD3,{
//callsub L_Quest,<quest ID>{,"<description1>","<description2>"};
L_Quest:
- set .@quest, getarg(0);
+ .@quest = getarg(0);
switch(.@quest) {
- case 10107: set .@name$,"Hunt Requiem"; set .@exp,15000; break;
- case 10108: set .@name$,"Hunt Marduk"; set .@exp,15000; break;
- case 10109: set .@name$,"Hunt Pasana"; set .@exp,15000; break;
- case 10110: set .@name$,"Hunt Dark Frame"; set .@exp,20000; break;
- case 10111: set .@name$,"Hunt Evil Druid"; set .@exp,20000; break;
- case 10112: set .@name$,"Hunt Wraith"; set .@exp,20000; break;
- case 10113: set .@name$,"Hunt Raydric Archer"; set .@exp,20000; break;
- case 10114: set .@name$,"Hunt Grand Peco"; set .@exp,30000; break;
- case 10115: set .@name$,"Hunt Sleeper"; set .@exp,30000; break;
- case 10116: set .@name$,"Hunt Goat"; set .@exp,30000; break;
- case 10117: set .@name$,"Hunt Harpy"; set .@exp,30000; break;
- case 10118: set .@name$,"Hunt Clock"; set .@exp,25000; break;
- case 10119: set .@name$,"Hunt Punk"; set .@exp,25000; break;
- case 10120: set .@name$,"Hunt Rideword"; set .@exp,25000; break;
- case 10121: set .@name$,"Hunt Kikimora"; set .@exp,30000; break;
- case 10122: set .@name$,"Hunt Miyabi Doll"; set .@exp,30000; break;
- case 10123: set .@name$,"Hunt Mi Gao"; set .@exp,30000; break;
- case 5055: set .@name$,"Hunt Headless Mule"; set .@exp,30000; break;
- case 5056: set .@name$,"Hunt Tamruan"; set .@exp,30000; break;
- case 5057: set .@name$,"Gather Festival Masks for the Festival"; set .@exp,30000; break;
+ case 10107: .@name$ = "Hunt Requiem"; .@exp = 15000; break;
+ case 10108: .@name$ = "Hunt Marduk"; .@exp = 15000; break;
+ case 10109: .@name$ = "Hunt Pasana"; .@exp = 15000; break;
+ case 10110: .@name$ = "Hunt Dark Frame"; .@exp = 20000; break;
+ case 10111: .@name$ = "Hunt Evil Druid"; .@exp = 20000; break;
+ case 10112: .@name$ = "Hunt Wraith"; .@exp = 20000; break;
+ case 10113: .@name$ = "Hunt Raydric Archer"; .@exp = 20000; break;
+ case 10114: .@name$ = "Hunt Grand Peco"; .@exp = 30000; break;
+ case 10115: .@name$ = "Hunt Sleeper"; .@exp = 30000; break;
+ case 10116: .@name$ = "Hunt Goat"; .@exp = 30000; break;
+ case 10117: .@name$ = "Hunt Harpy"; .@exp = 30000; break;
+ case 10118: .@name$ = "Hunt Clock"; .@exp = 25000; break;
+ case 10119: .@name$ = "Hunt Punk"; .@exp = 25000; break;
+ case 10120: .@name$ = "Hunt Rideword"; .@exp = 25000; break;
+ case 10121: .@name$ = "Hunt Kikimora"; .@exp = 30000; break;
+ case 10122: .@name$ = "Hunt Miyabi Doll"; .@exp = 30000; break;
+ case 10123: .@name$ = "Hunt Mi Gao"; .@exp = 30000; break;
+ case 5055: .@name$ = "Hunt Headless Mule"; .@exp = 30000; break;
+ case 5056: .@name$ = "Hunt Tamruan"; .@exp = 30000; break;
+ case 5057: .@name$ = "Gather Festival Masks for the Festival"; .@exp = 30000; break;
}
if (getargcount() == 1) {
mes "'"+.@name$+"' completed. Do you want to turn it in and receive your reward?";
@@ -184,13 +184,14 @@ L_Quest:
} else {
if (.@quest == 5057) {
// Quest 5057 is the only collection quest, so separate conditions are unnecessary.
- if (checkquest(5057) == -1)
- set .@hunting,-1;
+ if (!questprogress(5057))
+ .@hunting = 0;
else if (countitem(7187) >= 30)
- set .@hunting,2;
- } else
- set .@hunting, checkquest(.@quest,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
+ .@hunting = 2;
+ } else {
+ .@hunting = questprogress(.@quest,HUNTING);
+ }
+ if (.@hunting == 1) {
mes getarg(1);
mes getarg(2);
next;
diff --git a/npc/re/quests/eden/86-90.txt b/npc/re/quests/eden/86-90.txt
index 01c8fec29..de6d7f122 100644
--- a/npc/re/quests/eden/86-90.txt
+++ b/npc/re/quests/eden/86-90.txt
@@ -77,9 +77,9 @@ moc_para01,48,175,3 script 86-90 Mission Board 4_BOARD3,{
72000,78000,82000,80000,
72000,72000,72000,86000,80000;
mes "You must be within level 86-90 to accept these missions.";
- for(set .@quest,4167; .@quest<=4180; set .@quest,.@quest+1) {
- set .@hunting, checkquest(.@quest,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
+ for(.@quest = 4167; .@quest<=4180; ++.@quest) {
+ .@hunting = questprogress(.@quest,HUNTING);
+ if (.@hunting == 1) {
next;
mes ":: You cannot proceed in";
mes ":: ^0000FF"+.@names$[.@quest-4167]+" Hunting^000000.";
@@ -150,16 +150,16 @@ moc_para01,48,175,3 script 86-90 Mission Board 4_BOARD3,{
//callsub L_Quest,<quest ID>,"<monster name>",<reward EXP>,"<cutin image>","<description>"{,"s"};
L_Quest:
- set .@quest1, getarg(0);
- set .@quest2, .@quest1+31;
- set .@playtime, checkquest(.@quest2,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@quest1 = getarg(0);
+ .@quest2 = .@quest1+31;
+ .@playtime = questprogress(.@quest2,PLAYTIME);
+ if (.@playtime == 1) {
mes "[86-90 Mission Board]";
mes "You need to wait 3 hours before you can take this mission again.";
close;
}
- set .@hunting, checkquest(.@quest1,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
+ .@hunting = questprogress(.@quest1,HUNTING);
+ if (.@hunting == 1) {
mes "[86-90 Mission Board]";
mes "Have you finished hunting all 30 "+getarg(1)+getarg(5,"")+" yet?";
close;
@@ -168,7 +168,7 @@ L_Quest:
mes "You have completed the hunting.";
mes "Please accept this reward as a compensation.";
erasequest .@quest1;
- if (.@playtime > -1) erasequest .@quest2;
+ if (.@playtime) erasequest .@quest2;
setquest .@quest2;
getexp getarg(2),0;
close;
@@ -190,7 +190,7 @@ L_Quest:
if(select("I'll hunt them.:No thanks.") == 1) {
mes "[86-90 Mission Board]";
mes "When you have completed the mission, post it on this board and collect your reward.";
- if (.@playtime > -1) erasequest .@quest2;
+ if (.@playtime) erasequest .@quest2;
setquest .@quest1;
}
close;
diff --git a/npc/re/quests/eden/91-99.txt b/npc/re/quests/eden/91-99.txt
index e6744e80f..ba3e8c479 100644
--- a/npc/re/quests/eden/91-99.txt
+++ b/npc/re/quests/eden/91-99.txt
@@ -79,9 +79,9 @@ moc_para01,48,177,3 script 91-99 Mission Board 4_BOARD3,{
102000,108000,
110000,138000,118000,96000,134000;
mes "You must be within level 91-99 to accept these missions.";
- for(set .@quest,4181; .@quest<=4196; set .@quest,.@quest+1) {
- set .@hunting, checkquest(.@quest,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
+ for(.@quest = 4181; .@quest<=4196; ++.@quest) {
+ .@hunting = questprogress(.@quest,HUNTING);
+ if (.@hunting == 1) {
next;
mes ":: You cannot proceed in";
mes ":: ^0000FF"+.@names$[.@quest-4181]+" Hunting^000000.";
@@ -159,16 +159,16 @@ moc_para01,48,177,3 script 91-99 Mission Board 4_BOARD3,{
//callsub L_Quest,<quest ID>,"<monster name>",<reward EXP>,"<cutin image>","<description>"{,"s"};
L_Quest:
- set .@quest1, getarg(0);
- set .@quest2, .@quest1+31;
- set .@playtime, checkquest(.@quest2,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@quest1 = getarg(0);
+ .@quest2 = .@quest1+31;
+ .@playtime = questprogress(.@quest2,PLAYTIME);
+ if (.@playtime == 1) {
mes "[91-99 Mission Board]";
mes "You need to wait 3 hours before you can take this mission again.";
close;
}
- set .@hunting, checkquest(.@quest1,HUNTING);
- if (.@hunting == 0 || .@hunting == 1) {
+ .@hunting = questprogress(.@quest1,HUNTING);
+ if (.@hunting == 1) {
mes "[91-99 Mission Board]";
mes "Have you finished hunting all 30 "+getarg(1)+getarg(5,"")+" yet?";
close;
@@ -177,15 +177,15 @@ L_Quest:
mes "You have completed the hunting.";
mes "Please accept this reward as a compensation.";
erasequest .@quest1;
- if (.@playtime > -1) erasequest .@quest2;
+ if (.@playtime) erasequest .@quest2;
setquest .@quest2;
// Job Experience calculation.
- if (JobLevel > 50 && JobLevel < 56) set .@jexp,67000;
- else if (JobLevel > 55 && JobLevel < 61) set .@jexp,94000;
- else if (JobLevel > 60 && JobLevel < 66) set .@jexp,141000;
- else if (JobLevel > 65 && JobLevel < 69) set .@jexp,212000;
- else if (JobLevel == 69) set .@jexp,311000;
+ if (JobLevel > 50 && JobLevel < 56) .@jexp = 67000;
+ else if (JobLevel > 55 && JobLevel < 61) .@jexp = 94000;
+ else if (JobLevel > 60 && JobLevel < 66) .@jexp = 141000;
+ else if (JobLevel > 65 && JobLevel < 69) .@jexp = 212000;
+ else if (JobLevel == 69) .@jexp = 311000;
getexp getarg(2),.@jexp;
close;
@@ -207,7 +207,7 @@ L_Quest:
if(select("I'll hunt them.:No thanks.") == 1) {
mes "[91-99 Mission Board]";
mes "When you have completed the mission, post it on this board and collect your reward.";
- if (.@playtime > -1) erasequest .@quest2;
+ if (.@playtime) erasequest .@quest2;
setquest .@quest1;
}
close;
diff --git a/npc/re/quests/eden/eden_common.txt b/npc/re/quests/eden/eden_common.txt
index 7c6be1aa4..b814c7ba1 100644
--- a/npc/re/quests/eden/eden_common.txt
+++ b/npc/re/quests/eden/eden_common.txt
@@ -202,7 +202,7 @@ moc_para01,27,35,5 script Secretary Lime Evenor 4_F_EDEN_OFFICER,{
case 1:
mes "[Eden Teleport Officer]";
mes "Let's go to our secret base!";
- set nak_warp,strnpcinfo(2);
+ nak_warp = strnpcinfo(2);
close2;
warp "moc_para01",31,14;
end;
@@ -324,10 +324,10 @@ moc_para01,16,22,7 script Old Adventurer#eden 4_M_HUMERCHANT,{
}
moc_para01,182,48,3 script Eden's Chief#eden 4_COOK,{
- set .@eggf,rand(1,118);
- set .@eggf_1,.@eggf + 1;
- set .@eggf_2,.@eggf + 2;
- set .@eggf_6,.@eggf + 6;
+ .@eggf = rand(1,118);
+ .@eggf_1 = .@eggf + 1;
+ .@eggf_2 = .@eggf + 2;
+ .@eggf_6 = .@eggf + 6;
mes "[Eden's Chief]";
mes ""+.@eggf+".. "+.@eggf_1+"... "+.@eggf_2+".... "+.@eggf_6+"..?";
next;
diff --git a/npc/re/quests/eden/eden_iro.txt b/npc/re/quests/eden/eden_iro.txt
index 78107cc46..e60f0aedd 100644
--- a/npc/re/quests/eden/eden_iro.txt
+++ b/npc/re/quests/eden/eden_iro.txt
@@ -42,10 +42,10 @@ moc_para01,14,32,5 script Aperture#acolytewarp 4_F_01,{
setarray .@towns$[0], "Prontera", "Izlude", "Geffen", "Payon", "Morroc", "Alberta", "Al De Baran", "Comodo", "Umbala", "Juno", "Einbroch", "Lighthalzen", "Hugel", "Rachel";
setarray .@cost[0], 600, 600, 1200, 1200, 1200, 1800, 2200, 2200, 2200, 1800, 2200, 2200, 2200, 2200;
- set .@size, getarraysize(.@towns$);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
- set .@menu$, .@menu$+.@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
- set .@i, select(.@menu$+"Cancel")-1;
+ .@size = getarraysize(.@towns$);
+ for(.@i = 0; .@i<.@size; ++.@i)
+ .@menu$ += .@towns$[.@i]+" -> "+.@cost[.@i]+"z:";
+ .@i = select(.@menu$+"Cancel")-1;
if (.@i == .@size) {
mes "[Aperture]";
mes "Come back when you need a warp.";
@@ -114,10 +114,10 @@ moc_para01,166,51,3 script Phelix#edco 4_M_03,{
next;
switch(select("As many as I can get, please.:I want to choose.:Never mind, I like my Jellopy.")) {
case 1:
- set .@amount, countitem(909) / 3;
+ .@amount = countitem(909) / 3;
break;
case 2:
- set .@available, countitem(909) / 3;
+ .@available = countitem(909) / 3;
mes "[Phelix]";
mes "How many do you want?";
mes "^ff0000You have enough for up to " + .@available + " Carrots.^000000";
@@ -133,7 +133,7 @@ moc_para01,166,51,3 script Phelix#edco 4_M_03,{
mes "Dude, I said for every 3 Jellopy I'll give you 1 Carrot.";
close;
}
- set .@amount, .@input;
+ .@amount = .@input;
break;
case 3:
mes "[Phelix]";
@@ -180,19 +180,19 @@ moc_para01,163,51,7 script Izaac#edco 4_M_04,{
setarray .@items[0], 935, 914, 909, 902, 955, 916, 915;
setarray .@count[0], 5, 10, 10, 6, 1, 7, 6;
- set .@size, getarraysize(.@items);
- for(set .@i,0; .@i<.@size; set .@i,.@i+1)
- set .@menu$, .@menu$+getitemname(.@items[.@i])+":";
- set .@select, select(.@menu$+"Cancel")-1;
+ .@size = getarraysize(.@items);
+ for(.@i = 0; .@i<.@size; ++.@i)
+ .@menu$ += getitemname(.@items[.@i])+":";
+ .@select = select(.@menu$+"Cancel")-1;
if (.@select == .@size) {
mes "[Izaac]";
mes "Sure~";
mes "No problem.";
close;
}
- set .@item, .@items[.@select];
- set .@item$, getitemname(.@item);
- set .@price, .@count[.@select];
+ .@item = .@items[.@select];
+ .@item$ = getitemname(.@item);
+ .@price = .@count[.@select];
if (countitem(.@item) < .@price) {
mes "[Izaac]";
@@ -208,8 +208,8 @@ moc_para01,163,51,7 script Izaac#edco 4_M_04,{
mes "you have on you.";
mes "Hmm...";
next;
- set .@amount, countitem(.@item) / .@price;
- set .@trade_amount, .@amount * .@price;
+ .@amount = countitem(.@item) / .@price;
+ .@trade_amount = .@amount * .@price;
mes "[Izaac]";
mes "You have";
mes "a total of "+countitem(.@item)+" "+.@item$+"...";
@@ -286,15 +286,15 @@ moc_para01,50,39,4 script Eve Natalia 4_F_SITDOWN,{
mes "I'm going to ask you which piece of gear you want to trade in, please verify that the 1st one in your inventory is one you want to give up.";
mes "^CC0000So if it is carded, upgraded, enchanted etc, you should put it in storage before we continue.^000000";
next;
- set .@i, select("Wait a minute:Nidhoggur's Shadow Garb 4:Valkyrja's Shield 4:Valkyrian Armor 5:Diabolus Robe 5:Diabolus Armor 2:Diabolus Boots 2:Diabolus Manteau 4:Twin Edge of Naght Sieger Blue 2:Twin Edge of Naght Sieger Red 2")-2;
+ .@i = select("Wait a minute:Nidhoggur's Shadow Garb 4:Valkyrja's Shield 4:Valkyrian Armor 5:Diabolus Robe 5:Diabolus Armor 2:Diabolus Boots 2:Diabolus Manteau 4:Twin Edge of Naght Sieger Blue 2:Twin Edge of Naght Sieger Red 2")-2;
if (.@i == -1)
break;
setarray .@items[0], 2554, 2115, 2357, 2374, 2375, 2433, 2537, 13412, 13413;
setarray .@tickets[0], 4, 4, 5, 5, 2, 2, 4, 2, 2;
- set .@item, .@items[.@i];
- set .@amount, .@tickets[.@i];
+ .@item = .@items[.@i];
+ .@amount = .@tickets[.@i];
mes "[Eve Natalia]";
mes "I see you have "+countitem(.@item)+" "+getitemname(.@item)+".";
@@ -319,7 +319,7 @@ moc_para01,50,39,4 script Eve Natalia 4_F_SITDOWN,{
mes "[Eve Natalia]";
mes "Oh perfect, you get ^CC0000" + .@amount + "^000000 Safe to 7 Certificates!";
delitem .@item,1;
- for(set .@i,0; .@i<.@amount; set .@i,.@i+1) {
+ for(.@i = 0; .@i<.@amount; ++.@i) {
// Note: iRO lists item 6235 as "Safe to 7 Headgear Certificate", but it's Guarantee_Armor_6Up in our database.
if (rand(2))
getitem 6230,1; //Guarantee_Weapon_7Up
@@ -415,8 +415,8 @@ L_Exchange:
next;
if(select("Yes, give them to me!:No, wait not yet.") == 2)
close;
- set .@cost, getarg(1) * .@amount;
- set .@total_amount, getarg(3) * .@amount;
+ .@cost = getarg(1) * .@amount;
+ .@total_amount = getarg(3) * .@amount;
if (countitem(getarg(0)) < .@cost) {
mes "[Trader Machine]";
mes "You don't have enough "+getitemname(getarg(0))+" to make that trade.";
diff --git a/npc/re/quests/eden/eden_quests.txt b/npc/re/quests/eden/eden_quests.txt
index f1b54a9e7..7ad15eca6 100644
--- a/npc/re/quests/eden/eden_quests.txt
+++ b/npc/re/quests/eden/eden_quests.txt
@@ -94,7 +94,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Anyway, that place is not far from here so, it is a reasonable place for a beginner like you.";
mes "Ok, may Freya bless you~!";
- set para_suv01,1;
+ para_suv01 = 1;
setquest 7128;
close;
}
@@ -125,7 +125,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is nor far from here so, it is a reasonable place for a beginner like you.";
mes "Ok, may Freya bless you~!";
- set para_suv01,6;
+ para_suv01 = 6;
setquest 7133;
close;
}
@@ -161,7 +161,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, may Freya bless you~!";
- set para_suv01,13;
+ para_suv01 = 13;
setquest 7138;
close;
}
@@ -197,7 +197,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, blessing you~!!";
- set para_suv01,17;
+ para_suv01 = 17;
setquest 7142;
close;
}
@@ -224,7 +224,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,24;
+ para_suv01 = 24;
setquest 7147;
close;
}
@@ -251,7 +251,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,29;
+ para_suv01 = 29;
setquest 7152;
close;
}
@@ -272,7 +272,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Tell him that I sent you and follow his directions.";
mes "Ok, may Freya bless you!";
- set para_suv01,33;
+ para_suv01 = 33;
setquest 7156;
close;
}
@@ -352,7 +352,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Anyway, that place is not far from here so, it is a reasonable place for a beginner like you.";
mes "Ok, may Freya bless you~!";
- set para_suv01,1;
+ para_suv01 = 1;
setquest 7128;
close;
}
@@ -383,7 +383,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is nor far from here so, it is a reasonable place for a beginner like you.";
mes "Ok, may Freya bless you~!";
- set para_suv01,6;
+ para_suv01 = 6;
setquest 7133;
close;
}
@@ -419,7 +419,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, may Freya bless you~!";
- set para_suv01,13;
+ para_suv01 = 13;
setquest 7138;
close;
}
@@ -455,7 +455,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, blessing you~!!";
- set para_suv01,17;
+ para_suv01 = 17;
setquest 7142;
close;
}
@@ -482,7 +482,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,24;
+ para_suv01 = 24;
setquest 7147;
close;
}
@@ -509,7 +509,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,29;
+ para_suv01 = 29;
setquest 7152;
close;
}
@@ -530,7 +530,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Tell him that I sent you and follow his directions.";
mes "Ok, may Freya bless you!";
- set para_suv01,33;
+ para_suv01 = 33;
setquest 7156;
close;
}
@@ -579,7 +579,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Inform the manager that I sent you. He will give you some stuff.";
mes "Go go go!";
- set para_suv01,11;
+ para_suv01 = 11;
completequest 7132;
close;
}
@@ -610,7 +610,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Inform the manager that I sent you. He will give you some stuff.";
mes "Go go go!";
- set para_suv01,11;
+ para_suv01 = 11;
completequest 7137;
close;
}
@@ -676,7 +676,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, may Freya bless you~!";
- set para_suv01,13;
+ para_suv01 = 13;
setquest 7138;
close;
}
@@ -712,7 +712,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "Anyway...";
mes "That place is not far from here so, come back quickly.";
mes "Ok, blessing you~!!";
- set para_suv01,17;
+ para_suv01 = 17;
setquest 7142;
close;
}
@@ -739,7 +739,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,24;
+ para_suv01 = 24;
setquest 7147;
close;
}
@@ -766,7 +766,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,29;
+ para_suv01 = 29;
setquest 7152;
close;
}
@@ -787,7 +787,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Tell him that I sent you and follow his directions.";
mes "Ok, may Freya bless you!";
- set para_suv01,33;
+ para_suv01 = 33;
setquest 7156;
close;
}
@@ -820,7 +820,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Choose an equipment that fits your particular set of skills.";
- set para_suv01,22;
+ para_suv01 = 22;
completequest 7141;
close;
}
@@ -844,7 +844,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "The person in charge of equipment storage will supply you with what you need.";
- set para_suv01,22;
+ para_suv01 = 22;
completequest 7146;
close;
}
@@ -891,7 +891,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,24;
+ para_suv01 = 24;
setquest 7147;
close;
}
@@ -918,7 +918,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "Ok, may Freya bless you!";
- set para_suv01,29;
+ para_suv01 = 29;
setquest 7152;
close;
}
@@ -939,7 +939,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
mes "[Boya]";
mes "Tell him that I sent you and follow his directions.";
mes "Ok, may Freya bless you!";
- set para_suv01,33;
+ para_suv01 = 33;
setquest 7156;
close;
}
@@ -979,7 +979,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "To find the storage pass the blue gate next to the mission board then at the end of the hallway to the right side.";
- set para_suv01,37;
+ para_suv01 = 37;
completequest 7151;
close;
}
@@ -1003,7 +1003,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "To find the storage pass the blue gate next to the mission board then at the end of the hallway to the right side.";
- set para_suv01,37;
+ para_suv01 = 37;
completequest 7155;
close;
}
@@ -1028,7 +1028,7 @@ moc_para01,25,35,4 script Instructor Boya#para01 4_M_KNIGHT_GOLD,{
next;
mes "[Boya]";
mes "To find the storage pass the blue gate next to the mission board then at the end of the hallway to the right side.";
- set para_suv01,37;
+ para_suv01 = 37;
completequest 7159;
close;
}
@@ -1127,7 +1127,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
mes "We should hunt at least 10 Condors, ok?";
mes "I will sleep for a while.";
mes "Krrrr woo bow...";
- set para_suv01,2;
+ para_suv01 = 2;
changequest 7128,7129;
close;
case 3:
@@ -1139,7 +1139,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
}
}
if (para_suv01 == 2) {
- if (checkquest(7129,HUNTING) == 2) {
+ if (questprogress(7129,HUNTING) == 2) {
mes "[Talking Dog]";
mes "Woooohh...";
mes "Great!";
@@ -1170,7 +1170,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
mes "You must hunt at least 10!";
mes "Exactly 10!";
mes "Go go go!";
- set para_suv01,3;
+ para_suv01 = 3;
changequest 7129,7130;
close;
}
@@ -1186,7 +1186,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
close;
}
if (para_suv01 == 3) {
- if (checkquest(7130,HUNTING) == 2) {
+ if (questprogress(7130,HUNTING) == 2) {
mes "[Talking Dog]";
mes "You are so perfect.";
next;
@@ -1206,7 +1206,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
mes "It's the last step so let's make it simple";
mes "Just hunt 5!";
mes "Bow wow!";
- set para_suv01,4;
+ para_suv01 = 4;
changequest 7130,7131;
close;
}
@@ -1224,7 +1224,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
close;
}
if (para_suv01 == 4) {
- if (checkquest(7131,HUNTING) == 2) {
+ if (questprogress(7131,HUNTING) == 2) {
mes "[Talking Dog]";
mes "Um. Excellent.";
mes "You are awesome!";
@@ -1253,7 +1253,7 @@ moc_fild11,180,253,5 script Talking Dog#para03 4_RUS_DWOLF,{
mes "Go back to the Eden Group headquarters and show it to the flashy Rune Knight.";
mes "Let me say again that you are great!";
mes "Hooooohooo~";
- set para_suv01,5;
+ para_suv01 = 5;
changequest 7131,7132;
close;
}
@@ -1382,13 +1382,13 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
mes "a thief bug and froze in";
mes "place. Hunt those";
mes "Thief Bugs around here.^000000";
- set para_suv01,7;
+ para_suv01 = 7;
changequest 7133,7134;
close;
}
}
if (para_suv01 == 7) {
- if (checkquest(7134,HUNTING) == 2) {
+ if (questprogress(7134,HUNTING) == 2) {
mes "[Timid Cat]";
mes "Now do you understand the dirty and humid underground sewers?";
mes "Eeeh look what's next meow.";
@@ -1410,7 +1410,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
mes "[Timid Cat]";
mes "Training missions are hard and anoying.";
mes "So go hurry and hunt 10 Tarou.";
- set para_suv01,8;
+ para_suv01 = 8;
changequest 7134,7135;
close;
}
@@ -1426,7 +1426,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
close;
}
if (para_suv01 == 8) {
- if (checkquest(7135,HUNTING) == 2) {
+ if (questprogress(7135,HUNTING) == 2) {
mes "[Timid Cat]";
mes "Great job~!";
mes "How'd you get rid of those dirty bugs and Tarou. You are brave.";
@@ -1448,7 +1448,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
mes "I don't have anything...";
mes "......";
mes "What do you want meow? Familiars are waiting to fight with you, hurry up, move~!";
- set para_suv01,9;
+ para_suv01 = 9;
changequest 7135,7136;
close;
}
@@ -1464,7 +1464,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
close;
}
if (para_suv01 == 9) {
- if (checkquest(7136,HUNTING) == 2) {
+ if (questprogress(7136,HUNTING) == 2) {
mes "[Timid Cat]";
mes "You are great meow~";
mes "You killed them so quickly!";
@@ -1482,7 +1482,7 @@ prt_sewb1,131,262,3 script Timid Cat#para04 4_M_BABYCAT,{
mes "Do you know how to get to the Eden Group Headquarters?";
mes "Prontera is the closest city from here.";
mes "Go to Prontera and find an Eden Group Teleporter.";
- set para_suv01,10;
+ para_suv01 = 10;
changequest 7136,7137;
close;
}
@@ -1567,12 +1567,12 @@ pay_arche,41,136,3 script Eden Member Karl#para05 4_M_KHMAN,{
mes "[Karl]";
mes "If you feel like you're in danger don't hesitate to just leave.";
mes "You're not worried about getting hurt are you?";
- set para_suv01,14;
+ para_suv01 = 14;
changequest 7138,7139;
close;
}
if (para_suv01 == 14) {
- if (checkquest(7139,HUNTING) == 2) {
+ if (questprogress(7139,HUNTING) == 2) {
mes "[Karl]";
mes "Did you get how the undead work?";
mes "As you know undead never die so, blessing of live person it's same as curse to them.";
@@ -1594,7 +1594,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 4_M_KHMAN,{
mes "Ok if you're ready go and kill those Poporings.";
mes "You should hunt 10 of them.";
next;
- set para_suv01,15;
+ para_suv01 = 15;
changequest 7139,7140;
close;
}
@@ -1611,7 +1611,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 4_M_KHMAN,{
close;
}
if (para_suv01 == 15) {
- if (checkquest(7140,HUNTING) == 2) {
+ if (questprogress(7140,HUNTING) == 2) {
mes "[Karl]";
mes "Did you get back what the Poporing stole?";
mes "This cave is really deep and there are lots of precious things that they could have picked up.";
@@ -1626,7 +1626,7 @@ pay_arche,41,136,3 script Eden Member Karl#para05 4_M_KHMAN,{
mes "[Karl]";
mes "You might get a new uniform.";
mes "Haha. I will keep tabs on your progression.";
- set para_suv01,16;
+ para_suv01 = 16;
changequest 7140,7141;
close;
}
@@ -1712,7 +1712,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
mes "[Cloud]";
mes "In the case of ants, they assist eachother when attacked.";
mes "Be careful and kill 15 Pierre ants.";
- set para_suv01,18;
+ para_suv01 = 18;
changequest 7142,7143;
close;
case 2:
@@ -1734,7 +1734,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
}
}
if (para_suv01 == 18) {
- if (checkquest(7143,HUNTING) == 2) {
+ if (questprogress(7143,HUNTING) == 2) {
mes "[Cloud]";
mes "Hey, what was it?";
mes "Maybe you saw an Andre when you were hunting Pierre.";
@@ -1751,7 +1751,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
mes "[Cloud]";
mes "If you can't find Andre go deeper into the cave.";
mes "Ah, and be careful of Maya.";
- set para_suv01,19;
+ para_suv01 = 19;
changequest 7143,7144;
close;
}
@@ -1764,7 +1764,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
close;
}
if (para_suv01 == 19) {
- if (checkquest(7144,HUNTING) == 2) {
+ if (questprogress(7144,HUNTING) == 2) {
mes "[Cloud]";
mes "Great. You seem to have killed all of the Andre.";
mes "How do you think about fighting ants?";
@@ -1791,7 +1791,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
mes "[Cloud]";
mes "If you feel you're in too much danger. Just come back.";
mes "I will heal you.";
- set para_suv01,20;
+ para_suv01 = 20;
changequest 7144,7145;
close;
}
@@ -1803,7 +1803,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
close;
}
if (para_suv01 == 20) {
- if (checkquest(7145,HUNTING) == 2) {
+ if (questprogress(7145,HUNTING) == 2) {
mes "[Cloud]";
mes "Oh... it might have been an anoying fight.";
mes "You finished so fast.";
@@ -1815,7 +1815,7 @@ anthell01,29,264,5 script Eden Member Cloud#para06 4_M_HUMAN_02,{
mes "[Cloud]";
mes "You will get good news.";
mes "You did a really good job even under the hot weather.";
- set para_suv01,21;
+ para_suv01 = 21;
changequest 7145,7146;
close;
}
@@ -1908,12 +1908,12 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "[Hooksha]";
mes "Good or bad this is how it is going to be.";
mes "Even if they are babies don't hesitate.";
- set para_suv01,25;
+ para_suv01 = 25;
changequest 7147,7148;
close;
}
if (para_suv01 == 25) {
- if (checkquest(7148,HUNTING) == 2) {
+ if (questprogress(7148,HUNTING) == 2) {
mes "[Hooksha]";
mes "Great. Awesome.";
mes "It's not very pleasant so let's move on.";
@@ -1930,7 +1930,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "Now it's time to hunt 10 Orc Warriors.";
mes "If you are in trouble just come back here to safety.";
mes "Do you understand?";
- set para_suv01,26;
+ para_suv01 = 26;
changequest 7148,7149;
close;
}
@@ -1946,7 +1946,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
close;
}
if (para_suv01 == 26) {
- if (checkquest(7149,HUNTING) == 2) {
+ if (questprogress(7149,HUNTING) == 2) {
mes "[Hooksha]";
mes "Now you can move on to the next step.";
next;
@@ -1961,7 +1961,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "[Hooksha]";
mes "You can already feel the strong power from outside...";
mes "Don't hesitate to attack them.";
- set para_suv01,27;
+ para_suv01 = 27;
changequest 7149,7150;
close;
}
@@ -1977,7 +1977,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
close;
}
if (para_suv01 == 27) {
- if (checkquest(7150,HUNTING) == 2) {
+ if (questprogress(7150,HUNTING) == 2) {
mes "[Hooksha]";
mes "Great job.";
mes "Now you should understand how the orc tribe works here in Orc Village.";
@@ -1987,7 +1987,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "[Hooksha]";
mes "Go back and report to the Eden Group headquarters.";
mes "I'm sure they will have good news for you.";
- set para_suv01,28;
+ para_suv01 = 28;
changequest 7150,7151;
close;
}
@@ -2039,12 +2039,12 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "[Hooksha]";
mes "They will attack you anywhere without hesitating.";
mes "May Freya bless you.";
- set para_suv01,30;
+ para_suv01 = 30;
changequest 7152,7153;
close;
}
if (para_suv01 == 30) {
- if (checkquest(7153,HUNTING) == 2) {
+ if (questprogress(7153,HUNTING) == 2) {
mes "[Hooksha]";
mes "It's different from what you saw in Payon, right?";
mes "Although you managed to kill the Orc Zombies, you can't be sure you are much stronger..";
@@ -2063,7 +2063,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "[Hooksha]";
mes "Ok, cheer up and see you again.";
mes "Hunt 20 Orc Skeletons.";
- set para_suv01,31;
+ para_suv01 = 31;
changequest 7153,7154;
close;
}
@@ -2076,7 +2076,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
close;
}
if (para_suv01 == 31) {
- if (checkquest(7154,HUNTING) == 2) {
+ if (questprogress(7154,HUNTING) == 2) {
mes "[Hooksha]";
mes "Your training mission has been completed.";
mes "Go back to the Eden Group headquarters and report.";
@@ -2087,7 +2087,7 @@ in_orcs01,38,175,3 script Eden Member Hooksha 1_F_SIGNZISK,{
mes "I mean not due to you.";
mes "Anyway I will inform the group so go there and report.";
next;
- set para_suv01,32;
+ para_suv01 = 32;
changequest 7154,7155;
close;
}
@@ -2167,12 +2167,12 @@ iz_dun04,43,46,3 script Eden Member Callandiva 4_F_CRU,{
mes "[Callandiva]";
mes "Okay, go and hunt 15 Merman.";
mes "That will be your 1st training mission here.";
- set para_suv01,34;
+ para_suv01 = 34;
changequest 7156,7157;
close;
}
if (para_suv01 == 34) {
- if (checkquest(7157,HUNTING) == 2) {
+ if (questprogress(7157,HUNTING) == 2) {
mes "[Callandiva]";
mes "Oh, you came back~!";
mes "What did you think of those threatening Mermans?";
@@ -2190,7 +2190,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 4_F_CRU,{
next;
mes "[Callandiva]";
mes "Try avoiding the Mermans and hunt 10 Strouf, kill them.";
- set para_suv01,35;
+ para_suv01 = 35;
changequest 7157,7158;
close;
}
@@ -2203,7 +2203,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 4_F_CRU,{
close;
}
if (para_suv01 == 35) {
- if (checkquest(7158,HUNTING) == 2) {
+ if (questprogress(7158,HUNTING) == 2) {
mes "[Callandiva]";
mes "Did you kill all the Strouf already?";
mes "I wasn't counting that you'd make it.";
@@ -2224,7 +2224,7 @@ iz_dun04,43,46,3 script Eden Member Callandiva 4_F_CRU,{
next;
mes "[Callandiva]";
mes "Anyway you did great job!";
- set para_suv01,36;
+ para_suv01 = 36;
changequest 7158,7159;
close;
}
@@ -2289,8 +2289,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "One pair of Eden Group Boots I.";
mes "One Eden Group Manteau.";
mes "A total of 4 supplies, that's all.";
- set para_suv01,12;
- set para_suv02,1;
+ para_suv01 = 12;
+ para_suv02 = 1;
getitem 5583,1; //Para_Team_Hat1
getitem 2560,1; //Para_Team_Manteau1
getitem 2456,1; //Para_Team_Boots1
@@ -2353,8 +2353,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1192,1; //P_Slayer1
getitem 18514,1; //Para_Team_Hat2
getitem 2571,1; //Para_Team_Manteau2
@@ -2368,8 +2368,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Two-handed sword, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1192,1; //P_Slayer1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2386,8 +2386,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2401,8 +2401,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A One-handed sword, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2434,8 +2434,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13050,1; //P_Dagger1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2449,8 +2449,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Dagger, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13050,1; //P_Dagger1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2484,8 +2484,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2499,8 +2499,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A One-handed Sword, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13423,1; //P_Sabre1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2518,8 +2518,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2533,8 +2533,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Mace, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2565,8 +2565,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1747,1; //P_Bow1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2580,8 +2580,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Bow, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1747,1; //P_Bow1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2614,8 +2614,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1650,1; //P_Staff1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2629,8 +2629,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Staff, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1650,1; //P_Staff1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2647,8 +2647,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2662,8 +2662,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Mace, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 16004,1; //P_Mace1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2694,8 +2694,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1650,1; //P_Staff1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2709,8 +2709,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Staff, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 1650,1; //P_Staff1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2740,8 +2740,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 23;
- set para_suv02, 2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13112,1; //P_Revolver1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2755,8 +2755,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Revolver, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13112,1; //P_Revolver1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2774,8 +2774,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "I don't know what weapon will suit you so, you'll get a Dagger.";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13050,1; //P_Dagger1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2790,8 +2790,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "A Weapon, Uniform and Boots all 3 supplies.";
mes "I don't know what weapon will suit you so, you'll get a Dagger.";
mes "Please check it again.";
- set para_suv01,23;
- set para_suv02,2;
+ para_suv01 = 23;
+ para_suv02 = 2;
getitem 13050,1; //P_Dagger1
getitem 2457,1; //Para_Team_Boots2
getitem 15010,1; //Para_Team_Uniform2
@@ -2844,8 +2844,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 38;
- set para_suv02, 3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13424,1; //P_Sabre2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2859,8 +2859,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A One-handed sword, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13424,1; //P_Sabre2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2877,8 +2877,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1193,1; //P_Slayer2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2892,8 +2892,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Two-handed sword, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1193,1; //P_Slayer2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2924,7 +2924,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv02, 3;
+ para_suv02 = 3;
getitem 13051,1; //P_Dagger2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2938,8 +2938,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Dagger, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13051,1; //P_Dagger2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2972,8 +2972,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1651,1; //P_Staff2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -2987,8 +2987,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Staff, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1651,1; //P_Staff2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3005,8 +3005,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 16005,1; //P_Mace2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3020,8 +3020,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Mace, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 16005,1; //P_Mace2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3052,8 +3052,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1748,1; //P_Bow2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3067,8 +3067,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Bow, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1748,1; //P_Bow2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3098,8 +3098,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13051,1; //P_Dagger2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3113,8 +3113,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Dagger, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01, 38;
- set para_suv02, 3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13051,1; //P_Dagger2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3144,8 +3144,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1651,1; //P_Staff2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3159,8 +3159,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Staff, Uniform, and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 1651,1; //P_Staff2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3193,8 +3193,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13424,1; //P_Sabre2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3208,8 +3208,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A One-handed sword, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13424,1; //P_Sabre2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3226,8 +3226,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01, 38;
- set para_suv02, 3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 16005,1; //P_Mace2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3241,8 +3241,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Mace, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 16005,1; //P_Mace2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3273,8 +3273,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13113,1; //P_Revolver2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3288,8 +3288,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Revolver, Uniform and Boots all 3 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 13113,1; //P_Revolver2
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
@@ -3306,8 +3306,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "You don't have a record of receiving any supplies";
mes "so, you'll receive the Eden Group Hat and Manteau aswell.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
getitem 5583,1; //Para_Team_Hat
@@ -3320,8 +3320,8 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
mes "[Michael]";
mes "A Uniform and Boots all 2 supplies.";
mes "Please check it again.";
- set para_suv01,38;
- set para_suv02,3;
+ para_suv01 = 38;
+ para_suv02 = 3;
getitem 2458,1; //Para_Team_Boots3
getitem 15011,1; //Para_Team_Uniform3
next;
@@ -3379,7 +3379,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02,4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4701;
close;
@@ -3401,7 +3401,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02,4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4731;
close;
@@ -3423,7 +3423,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02,4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4741;
close;
@@ -3445,7 +3445,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02,4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4711;
close;
@@ -3467,7 +3467,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02, 4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4721;
close;
@@ -3489,7 +3489,7 @@ moc_para01,112,96,5 script Administrator Michael 4_M_RUSMAN1,{
next;
mes "[Michael]";
mes "Here you are.";
- set para_suv02, 4;
+ para_suv02 = 4;
delitem 5583,1;
getitem2 5583, 1, 1, 0, 0, 0, 0, 0, 4751;
close;
@@ -3851,7 +3851,7 @@ moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
callsub L_GiveQuest;
mes "Great! I want you to go find ^0000FFRomeo in Comodo^000000.";
next;
- set para_suv01,39;
+ para_suv01 = 39;
setquest 7214;
mes "[Instructor Ur]";
mes "You should see him near the entrance to the ^0000FFNorth Cave in Comodo^000000.";
@@ -3871,7 +3871,7 @@ moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
callsub L_GiveQuest;
mes "Great! I want you to go find ^0000FFJohan in Glast Heim^000000.";
next;
- set para_suv01,43;
+ para_suv01 = 43;
setquest 7219;
mes "[Instructor Ur]";
mes "You should see him near the entrance of the ^0000FFGlast Heim Church^000000.";
@@ -3891,7 +3891,7 @@ moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
callsub L_GiveQuest;
mes "Great! I want you to go find ^0000FFKiren in Einbroch^000000.";
next;
- set para_suv01,46;
+ para_suv01 = 46;
setquest 7223;
mes "[Instructor Ur]";
mes "You should see her near the ^0000FFSouth Enterance^000000 outside of town.";
@@ -3911,7 +3911,7 @@ moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
callsub L_GiveQuest;
mes "Great! I want you to go find ^0000FFNaomi in Ice Dungeon^000000.";
next;
- set para_suv01,49;
+ para_suv01 = 49;
setquest 7229;
mes "[Instructor Ur]";
mes "You should see her near the ^0000FFEntrance^000000 when you enter the dungeon.";
@@ -3931,7 +3931,7 @@ moc_para01,23,35,4 script Instructor Ur 4_M_KNIGHT_BLACK,{
callsub L_GiveQuest;
mes "Great! I want you to go find ^0000FFMargaret in the Expedition Camp^000000.";
next;
- set para_suv01,52;
+ para_suv01 = 52;
setquest 7233;
mes "[Instructor Ur]";
mes "You should see her near the ^0000FFBuilding in the Center^000000 of the Expedition Camp.";
@@ -3973,9 +3973,9 @@ L_GiveQuest:
L_CompleteQuest:
mes "Done already? Great work!";
next;
- set para_suv01, getarg(1);
+ para_suv01 = getarg(1);
completequest getarg(0);
- if (para_suv02 < getarg(2)) set para_suv02, getarg(2);
+ if (para_suv02 < getarg(2)) para_suv02 = getarg(2);
mes "[Instructor Ur]";
L_Toren:
mes "Go to the back room and talk to ^0000FFToren and the Weapons Expert^000000 for your rewards!";
@@ -3993,14 +3993,14 @@ comodo,173,354,6 script Romeo#01 1_M_JOBTESTER,{
mes "[Romeo]";
mes "Before we begin, I want to test you.";
next;
- set romeo,1;
+ romeo = 1;
changequest 7214,7215;
mes "[Romeo]";
mes "Enter the cave and kill ^0000FF3 Stalactic Golems^000000, then return to me.";
close;
}
if (romeo == 1) {
- if (checkquest(7215,HUNTING) == 2) {
+ if (questprogress(7215,HUNTING) == 2) {
mes "[Romeo]";
mes "You did it? Thats all the proof I needed.";
next;
@@ -4008,7 +4008,7 @@ comodo,173,354,6 script Romeo#01 1_M_JOBTESTER,{
mes "You should then have no trouble killing ^0000FF10 more Stalactic Golems^000000, right?";
next;
getexp 10000,10000;
- set romeo,2;
+ romeo = 2;
changequest 7215,7216;
mes "[Romeo]";
mes "^0000FFMeet me at the north-east exit of the cave^000000 when you are done, I will be waiting for you outside.";
@@ -4033,7 +4033,7 @@ comodo,173,354,6 script Romeo#01 1_M_JOBTESTER,{
um_fild01,34,280,6 script Romeo#02 1_M_JOBTESTER,{
if (romeo == 2) {
- if (checkquest(7216,HUNTING) == 2) {
+ if (questprogress(7216,HUNTING) == 2) {
mes "[Romeo]";
mes "Wow, you have arrived sooner than I expected.";
next;
@@ -4041,7 +4041,7 @@ um_fild01,34,280,6 script Romeo#02 1_M_JOBTESTER,{
mes "There is only one more thing I need you to do for me.";
next;
getexp 10000,10000;
- set romeo,3;
+ romeo = 3;
changequest 7216,7217;
mes "[Romeo]";
mes "Bring me ^0000FF5 Shoulder Pads and 7 Sharp Leafs^000000.";
@@ -4059,8 +4059,8 @@ um_fild01,34,280,6 script Romeo#02 1_M_JOBTESTER,{
delitem 7196,5; // Shoulder Pad
delitem 7100,7; // Sharp Leaf
getexp 10000,10000;
- set romeo,4;
- set para_suv01,40;
+ romeo = 4;
+ para_suv01 = 40;
changequest 7217,7218;
mes "[Romeo]";
mes "Return to the ^33CC33Paradise Group Headquarters^000000 for your reward.";
@@ -4091,14 +4091,14 @@ glast_01,195,131,6 script Johan 4_F_SISTER,{
mes "[Johan]";
mes "I don't need to explain anything to you.";
next;
- set johan,1;
+ johan = 1;
changequest 7219,7220;
mes "[Johan]";
mes "Go kill ^0000FF20 Wraiths^000000.";
close;
}
if (johan == 1) {
- if (checkquest(7220,HUNTING) == 2) {
+ if (questprogress(7220,HUNTING) == 2) {
mes "[Johan]";
mes "Good.";
next;
@@ -4106,7 +4106,7 @@ glast_01,195,131,6 script Johan 4_F_SISTER,{
mes "Next I want you to kill ^0000FF10 Evil Druids^000000.";
next;
getexp 20000,20000;
- set johan,2;
+ johan = 2;
changequest 7220,7221;
mes "[Johan]";
mes "This time kill them quickly, I don't like to wait.";
@@ -4117,7 +4117,7 @@ glast_01,195,131,6 script Johan 4_F_SISTER,{
close;
}
if (johan == 2) {
- if (checkquest(7221,HUNTING) == 2) {
+ if (questprogress(7221,HUNTING) == 2) {
mes "[Johan]";
mes "Hmmmm, better.";
next;
@@ -4125,7 +4125,7 @@ glast_01,195,131,6 script Johan 4_F_SISTER,{
mes "Ok, I'm done with you.";
next;
getexp 20000,20000;
- set johan,3;
+ johan = 3;
changequest 7221,7222;
mes "[Johan]";
mes "Return to the ^33CC33Paradise Group Headquarters^000000 for your reward.";
@@ -4156,14 +4156,14 @@ ein_fild08,172,359,4 script Kiren 4_M_4THPRIN1,{
mes "[Kiren]";
mes "You must be a member of the Paradise Group, come help me for a second.";
next;
- set kiren,1;
+ kiren = 1;
changequest 7223,7224;
mes "[kiren]";
mes "Can you kill ^0000FF30 Porcellios^000000 for me and then return to me?";
close;
}
if (kiren == 1) {
- if (checkquest(7224,HUNTING) == 2) {
+ if (questprogress(7224,HUNTING) == 2) {
mes "[Kiren]";
mes "Wow, most people spend twice as long as you did to kill those Porcellios!";
next;
@@ -4171,7 +4171,7 @@ ein_fild08,172,359,4 script Kiren 4_M_4THPRIN1,{
mes "I think you need a challenge.";
next;
getexp 30000,30000;
- set kiren,2;
+ kiren = 2;
changequest 7224,7226;
setquest 7227;
mes "[Kiren]";
@@ -4183,7 +4183,7 @@ ein_fild08,172,359,4 script Kiren 4_M_4THPRIN1,{
close;
}
if (kiren == 2) {
- if ((checkquest(7226,HUNTING) == 2) && (checkquest(7227,HUNTING) == 2)) {
+ if ((questprogress(7226,HUNTING) == 2) && (questprogress(7227,HUNTING) == 2)) {
mes "[Kiren]";
mes "Incredible, you set a new record!";
next;
@@ -4191,7 +4191,7 @@ ein_fild08,172,359,4 script Kiren 4_M_4THPRIN1,{
mes "I have never seen anyone kill them all so fast, you are good at this.";
next;
getexp 30000,30000;
- set kiren,3;
+ kiren = 3;
changequest 7226,7228;
completequest 7227;
mes "[Kiren]";
@@ -4223,14 +4223,14 @@ ice_dun01,154,13,6 script Naomi 4_F_JOB_BLACKSMITH,{
mes "[Naomi]";
mes "I blame those annoying Siromas.";
next;
- set naomi,1;
+ naomi = 1;
changequest 7229,7230;
mes "[Naomi]";
mes "Can you kill ^0000FF30 Siromas^000000 for me, please?";
close;
}
if (naomi == 1) {
- if (checkquest(7230,HUNTING) == 2) {
+ if (questprogress(7230,HUNTING) == 2) {
mes "[Naomi]";
mes "Thank you, but there are still so many Siromas here!";
next;
@@ -4238,7 +4238,7 @@ ice_dun01,154,13,6 script Naomi 4_F_JOB_BLACKSMITH,{
mes "I need to make a special drink to stay warm, please help me make it.";
next;
getexp 40000,40000;
- set naomi,2;
+ naomi = 2;
changequest 7230,7231;
mes "[Naomi]";
mes "Can you kill another ^0000FF30 Siromas^000000 and bring me ^0000FF30 Ice Cubics, 1 Milk and 1 Sweet Sauce^000000?";
@@ -4249,7 +4249,7 @@ ice_dun01,154,13,6 script Naomi 4_F_JOB_BLACKSMITH,{
close;
}
if (naomi == 2) {
- if ((checkquest(7231,HUNTING) == 2) && (countitem(7066) >= 30) && (countitem(519) >= 1) && (countitem(7453) >= 1)) {
+ if ((questprogress(7231,HUNTING) == 2) && (countitem(7066) >= 30) && (countitem(519) >= 1) && (countitem(7453) >= 1)) {
mes "[Naomi]";
mes "Yay, you did it!";
next;
@@ -4260,7 +4260,7 @@ ice_dun01,154,13,6 script Naomi 4_F_JOB_BLACKSMITH,{
delitem 519,1; // Milk
delitem 7453,1; // Sweet Sauce
getexp 40000,40000;
- set naomi,3;
+ naomi = 3;
changequest 7231,7232;
mes "[Naomi]";
mes "Return to the ^33CC33Paradise Group Headquarters^000000 for your reward.";
@@ -4291,7 +4291,7 @@ mid_camp,212,229,4 script Margaret 4_F_HUWOMAN,{
mes "[Margaret]";
mes "I have two friends here in the New World which need your help.";
next;
- set margaret,1;
+ margaret = 1;
changequest 7233,7234;
mes "[Margaret]";
mes "Please start by helping the ^0000FFParadise Dispatch in Manuk Field^000000.";
@@ -4306,7 +4306,7 @@ mid_camp,212,229,4 script Margaret 4_F_HUWOMAN,{
mes "[Margaret]";
mes "Ah good, you were able to help him.";
next;
- set margaret,4;
+ margaret = 4;
mes "[Margaret]";
mes "Next can you help the ^0000FFParadise Dispatch in Splendide Field^000000, please?";
close;
@@ -4323,7 +4323,7 @@ mid_camp,212,229,4 script Margaret 4_F_HUWOMAN,{
mes "[Margaret]";
mes "Thanks for helping them, I knew you could do it.";
next;
- set margaret,7;
+ margaret = 7;
changequest 7234,7237;
mes "[Margaret]";
mes "Return to the ^33CC33Paradise Group Headquarters^000000 for your reward.";
@@ -4342,14 +4342,14 @@ man_fild01,43,234,2 script Paradise Dispatch#01 4_DST_SOLDIER,{
mes "[Paradise Dispatch]";
mes "The plant monsters in this area have a long ranged attack.";
next;
- set margaret,2;
+ margaret = 2;
changequest 7234,7235;
mes "[Paradise Dispatch]";
mes "Can you please kill ^0000FF1 Nepenthes^000000 so I can go back to the camp?";
close;
}
if (margaret == 2) {
- if (checkquest(7235,HUNTING) == 2) {
+ if (questprogress(7235,HUNTING) == 2) {
mes "[Paradise Dispatch]";
mes "Thanks!";
next;
@@ -4357,7 +4357,7 @@ man_fild01,43,234,2 script Paradise Dispatch#01 4_DST_SOLDIER,{
mes "Ok, I'm out of here.";
next;
getexp 50000,50000;
- set margaret,3;
+ margaret = 3;
changequest 7235,7234;
mes "[Paradise Dispatch]";
mes "Head back to ^0000FFMargaret^000000 and tell her thanks for me too!";
@@ -4388,14 +4388,14 @@ spl_fild02,377,149,4 script Paradise Dispatch#02 4_M_DST_MASTER,{
mes "[Paradise Dispatch]";
mes "Ok, lets get started!";
next;
- set margaret,5;
+ margaret = 5;
changequest 7234,7236;
mes "[Paradise Dispatch]";
mes "Kill ^0000FF5 Pinguicula^000000 and then return to me.";
close;
}
if (margaret == 5) {
- if (checkquest(7236,HUNTING) == 2) {
+ if (questprogress(7236,HUNTING) == 2) {
mes "[Paradise Dispatch]";
mes "You make it look so easy, but I couldn't even kill 1...";
next;
@@ -4403,7 +4403,7 @@ spl_fild02,377,149,4 script Paradise Dispatch#02 4_M_DST_MASTER,{
mes "Now is my chance to run to Splendide!";
next;
getexp 50000,50000;
- set margaret,6;
+ margaret = 6;
changequest 7236,7234;
mes "[Paradise Dispatch]";
mes "Head back to ^0000FFMargaret^000000, I will be ok now.";
@@ -4549,9 +4549,9 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
getitem 2571,1; //Paradise Mantle II
getitem 2473,1; //Paradise Boots IV
getitem 15031,1; //Paradise Uniform IV
- set para_suv02,14;
+ para_suv02 = 14;
if (para_suv01 > 40)
- set para_suv01, para_suv01+1;
+ para_suv01 += 1;
if (Class == Job_Taekwon) {
mes "I'm sorry, but Teakwon Class can't wear any of our weapons...";
next;
@@ -4562,7 +4562,7 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
if (para_suv02 == 14) {
setarray .@check[0],18514,2571,2473,15031;
setarray .@item$[0],"Hat","Mantle","Boots","Uniform";
- for(set .@i,0; .@i<4; set .@i,.@i+1)
+ for(.@i = 0; .@i<4; ++.@i)
if (countitem(.@check[.@i]) < 1) {
mes "[Toren]";
mes "Where is the Paradise "+.@item$[.@i]+" I gave you?";
@@ -4604,13 +4604,13 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
mes "Alright, but I'll need a few items for the enchantment process.";
next;
if (BaseLevel >= 90) {
- set paragearenchant,1;
+ paragearenchant = 1;
setquest 7239;
mes "[Toren]";
mes "Just bring me ^0000FF20 Used Iron Plates^000000.";
close;
}
- set paragearenchant,2;
+ paragearenchant = 2;
setquest 7238;
mes "[Toren]";
mes "Just bring me ^0000FF20 Iron Ores and 10 Irons^000000.";
@@ -4622,7 +4622,7 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
mes "Thanks, that's what I needed!";
next;
delitem 7319,20; // Used Iron Plate
- set paragearenchant,3;
+ paragearenchant = 3;
changequest 7239,7240;
mes "[Toren]";
mes "Give me a second to prepare before I enchant your gears.";
@@ -4639,7 +4639,7 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
next;
delitem 1002,20; // Iron Ore
delitem 998,10; // Iron
- set paragearenchant,3;
+ paragearenchant = 3;
changequest 7238,7240;
mes "[Toren]";
mes "Give me a second to prepare before I enchant your gears.";
@@ -4660,54 +4660,54 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
mes "Now pick which gear you would like me to enchant.";
next;
setarray .@item[0],2571,2473,15031;
- set .@i, select("Paradise Mantle II.:Paradise Boots IV.:Paradise Uniform IV.")-1;
+ .@i = select("Paradise Mantle II.:Paradise Boots IV.:Paradise Uniform IV.")-1;
if (countitem(.@item[.@i]) < 1) {
mes "[Toren]";
mes "Bring one and I'll enchant it.";
close;
}
- set .@paragearcount, .@item[.@i];
+ .@paragearcount = .@item[.@i];
mes "[Toren]";
mes "Here we go!";
close2;
specialeffect2 EF_MAPPILLAR;
progressbar "ffff00",4;
- set .@enc_paragear,rand(1,42);
- if (.@enc_paragear == 1) set .@addpart,4763;
- else if (.@enc_paragear == 2) set .@addpart,4765;
- else if (.@enc_paragear == 3) set .@addpart,4790;
- else if (.@enc_paragear == 4) set .@addpart,4794;
- else if (.@enc_paragear < 7) set .@addpart,4762;
- else if (.@enc_paragear < 9) set .@addpart,4764;
- else if (.@enc_paragear < 11) set .@addpart,4789;
- else if (.@enc_paragear < 13) set .@addpart,4793;
- else if (.@enc_paragear < 15) set .@addpart,4701;
- else if (.@enc_paragear < 17) set .@addpart,4711;
- else if (.@enc_paragear < 19) set .@addpart,4721;
- else if (.@enc_paragear < 21) set .@addpart,4731;
- else if (.@enc_paragear < 23) set .@addpart,4741;
- else if (.@enc_paragear < 25) set .@addpart,4751;
- else if (.@enc_paragear < 28) set .@addpart,4788;
- else if (.@enc_paragear < 31) set .@addpart,4792;
- else if (.@enc_paragear < 35) set .@addpart,4787;
- else if (.@enc_paragear < 39) set .@addpart,4791;
- else if (.@enc_paragear < 43) set .@addpart,4786;
- set .@addpart2,4701+(10*rand(6));
+ .@enc_paragear = rand(1,42);
+ if (.@enc_paragear == 1) .@addpart = 4763;
+ else if (.@enc_paragear == 2) .@addpart = 4765;
+ else if (.@enc_paragear == 3) .@addpart = 4790;
+ else if (.@enc_paragear == 4) .@addpart = 4794;
+ else if (.@enc_paragear < 7) .@addpart = 4762;
+ else if (.@enc_paragear < 9) .@addpart = 4764;
+ else if (.@enc_paragear < 11) .@addpart = 4789;
+ else if (.@enc_paragear < 13) .@addpart = 4793;
+ else if (.@enc_paragear < 15) .@addpart = 4701;
+ else if (.@enc_paragear < 17) .@addpart = 4711;
+ else if (.@enc_paragear < 19) .@addpart = 4721;
+ else if (.@enc_paragear < 21) .@addpart = 4731;
+ else if (.@enc_paragear < 23) .@addpart = 4741;
+ else if (.@enc_paragear < 25) .@addpart = 4751;
+ else if (.@enc_paragear < 28) .@addpart = 4788;
+ else if (.@enc_paragear < 31) .@addpart = 4792;
+ else if (.@enc_paragear < 35) .@addpart = 4787;
+ else if (.@enc_paragear < 39) .@addpart = 4791;
+ else if (.@enc_paragear < 43) .@addpart = 4786;
+ .@addpart2 = 4701+(10*rand(6));
delitem .@paragearcount,1;
getitem2 .@paragearcount, 1, 1, 0, 0, 0, 0, .@addpart2, .@addpart;
- set paragearenchant,4;
+ paragearenchant = 4;
changequest 7240,7241;
mes "[Toren]";
mes "It is finished! Come back tomorrow if you want to enchant more.";
close;
}
- if ((paragearenchant == 4) && (checkquest(7241,PLAYTIME) != 2)) {
+ if ((paragearenchant == 4) && (questprogress(7241,PLAYTIME) != 2)) {
mes "[Toren]";
mes "Please come back tomorrow if you want to enchant more.";
close;
}
- if ((paragearenchant == 4) && (checkquest(7241,PLAYTIME) == 2)) {
- set paragearenchant,0;
+ if ((paragearenchant == 4) && (questprogress(7241,PLAYTIME) == 2)) {
+ paragearenchant = 0;
erasequest 7241;
mes "[Toren]";
mes "Another day, another piece of equipment to enchant!";
@@ -4718,14 +4718,14 @@ moc_para01,111,83,3 script Toren 2_M_OLDBLSMITH,{
L_Select:
next;
mes "[Toren]";
- set .@menu$,"";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+3) {
- set .@menu$, .@menu$+getarg(.@i+1)+".:";
+ .@menu$ = "";
+ for(.@i = 0; .@i<getargcount(); .@i += 3) {
+ .@menu$ += getarg(.@i+1)+".:";
mes getarg(.@i+1)+": "+getarg(.@i+2)+".";
mes " ";
}
next;
- set .@i, select(.@menu$)-1;
+ .@i = select(.@menu$)-1;
getitem getarg(.@i*3),1;
mes "[Toren]";
return;
@@ -4901,8 +4901,8 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
mes "[Weapons Expert]";
mes "There are only 2 to choose from, which one would you like?";
next;
- if(select("Atk + 3%:Matk + 3%") == 1) set paraweaponenchant,4767;
- else set paraweaponenchant,4806;
+ if(select("Atk + 3%:Matk + 3%") == 1) paraweaponenchant = 4767;
+ else paraweaponenchant = 4806;
callsub L_GetWeapon;
mes "[Weapons Expert]";
mes "OK, gimmy a sec.";
@@ -4911,7 +4911,7 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
progressbar "ffff00",4;
delitem paraweaponcount,1;
getitem2 paraweaponcount, 1, 1, 0, 0, 0, 0, 0, paraweaponenchant;
- set para_suv01,45;
+ para_suv01 = 45;
mes "[Weapons Expert]";
mes "All done.";
close;
@@ -4927,8 +4927,8 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
mes "[Weapons Expert]";
mes "There are only 2 to choose from, which one would you like?";
next;
- if(select("Atk + 3%:Matk + 3%") == 1) set paraweaponenchant,4767;
- else set paraweaponenchant,4806;
+ if(select("Atk + 3%:Matk + 3%") == 1) paraweaponenchant = 4767;
+ else paraweaponenchant = 4806;
callsub L_GetWeapon;
mes "[Weapons Expert]";
mes "Gotcha, now for the second enchantment.";
@@ -4942,27 +4942,27 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
next;
switch(select("Animal Type","Plant Type","Insect Type","Fish Type","Dragon Type","Healing Power")) {
case 1:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4060;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4472;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4060;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4472;
break;
case 2:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4068;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4470;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4068;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4470;
break;
case 3:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4063;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4476;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4063;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4476;
break;
case 4:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4080;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4469;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4080;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4469;
break;
case 5:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4118;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4471;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4118;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4471;
break;
case 6:
- set paraweaponenchant2,4805;
+ paraweaponenchant2 = 4805;
break;
}
mes "[Weapons Expert]";
@@ -4972,7 +4972,7 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
progressbar "ffff00",4;
delitem paraweaponcount,1;
getitem2 paraweaponcount, 1, 1, 0, 0, 0, 0, paraweaponenchant2, paraweaponenchant;
- set para_suv01,48;
+ para_suv01 = 48;
mes "[Weapons Expert]";
mes "All done.";
close;
@@ -4988,8 +4988,8 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
mes "[Weapons Expert]";
mes "There are only 2 to choose from, which one would you like?";
next;
- if(select("Atk + 3%:Matk + 3%") == 1) set paraweaponenchant,4767;
- else set paraweaponenchant,4806;
+ if(select("Atk + 3%:Matk + 3%") == 1) paraweaponenchant = 4767;
+ else paraweaponenchant = 4806;
callsub L_GetWeapon;
mes "[Weapons Expert]";
mes "Gotcha, on to the next one.";
@@ -5007,27 +5007,27 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
next;
switch(select("Animal Type","Plant Type","Insect Type","Fish Type","Dragon Type","Healing Power")) {
case 1:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4060;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4472;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4060;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4472;
break;
case 2:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4068;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4470;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4068;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4470;
break;
case 3:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4063;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4476;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4063;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4476;
break;
case 4:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4080;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4469;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4080;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4469;
break;
case 5:
- if (paraweaponenchant == 4767) set paraweaponenchant2,4118;
- if (paraweaponenchant == 4806) set paraweaponenchant2,4471;
+ if (paraweaponenchant == 4767) paraweaponenchant2 = 4118;
+ if (paraweaponenchant == 4806) paraweaponenchant2 = 4471;
break;
case 6:
- set paraweaponenchant2,4805;
+ paraweaponenchant2 = 4805;
break;
}
mes "[Weapons Expert]";
@@ -5042,27 +5042,27 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
next;
switch(select("Animal Type","Plant Type","Insect Type","Fish Type","Dragon Type","Healing Power")) {
case 1:
- if (paraweaponenchant == 4767) set paraweaponenchant3,4060;
- if (paraweaponenchant == 4806) set paraweaponenchant3,4472;
+ if (paraweaponenchant == 4767) paraweaponenchant3 = 4060;
+ if (paraweaponenchant == 4806) paraweaponenchant3 = 4472;
break;
case 2:
- if (paraweaponenchant == 4767) set paraweaponenchant3,4068;
- if (paraweaponenchant == 4806) set paraweaponenchant3,4470;
+ if (paraweaponenchant == 4767) paraweaponenchant3 = 4068;
+ if (paraweaponenchant == 4806) paraweaponenchant3 = 4470;
break;
case 3:
- if (paraweaponenchant == 4767) set paraweaponenchant3,4063;
- if (paraweaponenchant == 4806) set paraweaponenchant3,4476;
+ if (paraweaponenchant == 4767) paraweaponenchant3 = 4063;
+ if (paraweaponenchant == 4806) paraweaponenchant3 = 4476;
break;
case 4:
- if (paraweaponenchant == 4767) set paraweaponenchant3,4080;
- if (paraweaponenchant == 4806) set paraweaponenchant3,4469;
+ if (paraweaponenchant == 4767) paraweaponenchant3 = 4080;
+ if (paraweaponenchant == 4806) paraweaponenchant3 = 4469;
break;
case 5:
- if (paraweaponenchant == 4767) set paraweaponenchant3,4118;
- if (paraweaponenchant == 4806) set paraweaponenchant3,4471;
+ if (paraweaponenchant == 4767) paraweaponenchant3 = 4118;
+ if (paraweaponenchant == 4806) paraweaponenchant3 = 4471;
break;
case 6:
- set paraweaponenchant3,4805;
+ paraweaponenchant3 = 4805;
break;
}
mes "[Weapons Expert]";
@@ -5072,7 +5072,7 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
progressbar "ffff00",4;
delitem paraweaponcount,1;
getitem2 paraweaponcount, 1, 1, 0, 0, 0, paraweaponenchant3, paraweaponenchant2, paraweaponenchant;
- set para_suv01,54;
+ para_suv01 = 54;
mes "[Weapons Expert]";
mes "All done.";
close;
@@ -5090,33 +5090,33 @@ moc_para01,112,79,3 script Weapons Expert 4_M_REPAIR,{
L_Select:
next;
mes "[Weapons Expert]";
- set .@menu$,"";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+3) {
- set .@menu$, .@menu$+getarg(.@i+1)+".:";
+ .@menu$ = "";
+ for(.@i = 0; .@i<getargcount(); .@i += 3) {
+ .@menu$ += getarg(.@i+1)+".:";
mes getarg(.@i+1)+": "+getarg(.@i+2)+".";
mes " ";
}
next;
- set .@i, select(.@menu$)-1;
+ .@i = select(.@menu$)-1;
getitem getarg(.@i*3),1;
mes "[Weapons Expert]";
return;
L_GetWeapon:
- if (countitem(1197)) set paraweaponcount,1197;
- else if (countitem(1289)) set paraweaponcount,1289;
- else if (countitem(1391)) set paraweaponcount,1391;
- else if (countitem(1434)) set paraweaponcount,1434;
- else if (countitem(1583)) set paraweaponcount,1583;
- else if (countitem(1658)) set paraweaponcount,1658;
- else if (countitem(1831)) set paraweaponcount,1831;
- else if (countitem(1931)) set paraweaponcount,1931;
- else if (countitem(1986)) set paraweaponcount,1986;
- else if (countitem(13066)) set paraweaponcount,13066;
- else if (countitem(13114)) set paraweaponcount,13114;
- else if (countitem(13310)) set paraweaponcount,13310;
- else if (countitem(13434)) set paraweaponcount,13434;
- else if (countitem(16014)) set paraweaponcount,16014;
- else if (countitem(18106)) set paraweaponcount,18106;
+ if (countitem(1197)) paraweaponcount = 1197;
+ else if (countitem(1289)) paraweaponcount = 1289;
+ else if (countitem(1391)) paraweaponcount = 1391;
+ else if (countitem(1434)) paraweaponcount = 1434;
+ else if (countitem(1583)) paraweaponcount = 1583;
+ else if (countitem(1658)) paraweaponcount = 1658;
+ else if (countitem(1831)) paraweaponcount = 1831;
+ else if (countitem(1931)) paraweaponcount = 1931;
+ else if (countitem(1986)) paraweaponcount = 1986;
+ else if (countitem(13066)) paraweaponcount = 13066;
+ else if (countitem(13114)) paraweaponcount = 13114;
+ else if (countitem(13310)) paraweaponcount = 13310;
+ else if (countitem(13434)) paraweaponcount = 13434;
+ else if (countitem(16014)) paraweaponcount = 16014;
+ else if (countitem(18106)) paraweaponcount = 18106;
return;
}
@@ -5127,7 +5127,7 @@ sec_in02,25,33,4 script Assistant#para_suvquest 4_M_BABYCAT,{
if (callfunc("F_GM_NPC",1854,0) == 1) {
mes "Please select the variable you want to modify.";
next;
- set .@var, select("para_suv01:para_suv02");
+ .@var = select("para_suv01:para_suv02");
mes "Enter the modified value";
next;
input .@input,0,9999;
diff --git a/npc/re/quests/eden/eden_tutorial.txt b/npc/re/quests/eden/eden_tutorial.txt
index 92cfb26fd..c8277cbe2 100644
--- a/npc/re/quests/eden/eden_tutorial.txt
+++ b/npc/re/quests/eden/eden_tutorial.txt
@@ -14,11 +14,11 @@
moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
if (Class == Job_Novice) {
// Fall through
- } else if (checkquest(9167) == -1) {
+ } else if (!questprogress(9167)) {
OnStartQuest:
if (@tutorial_restart) {
- set .@tutorial_restart,1;
- set @tutorial_restart,0;
+ .@tutorial_restart = 1;
+ @tutorial_restart = 0;
}
mes "[Tutorial Instructor]";
mes "Lately, it has been said that";
@@ -85,7 +85,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
mes "When you're not so busy, come find me again.";
close;
}
- } else if (checkquest(9167) == 0 || checkquest(9167) == 1) {
+ } else if (questprogress(9167) == 1) {
if (!getmercinfo(1)) {
mes "[Tutorial Instructor]";
mes "You haven't gotten a mercenary yet.";
@@ -146,7 +146,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
completequest 9167;
setquest 9168;
close;
- } else if (checkquest(9168) == 0 || checkquest(9168) == 1) {
+ } else if (questprogress(9168) == 1) {
if (checkweight(607,1) == 0) {
if (MaxWeight - Weight < getiteminfo(607,6)) {
mes "[Tutorial Instructor]";
@@ -237,7 +237,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
mes "the ^006400Quest Window^000000,";
mes "come find and talk to me again.";
close;
- } else if (checkquest(9169) == 0 || checkquest(9169) == 1) {
+ } else if (questprogress(9169) == 1) {
if (countitem(12580) == 0) {
mes "[Tutorial Instructor]";
mes "Hmm? So I noticed that";
@@ -280,7 +280,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
completequest 9169;
setquest 9170;
close;
- } else if (checkquest(9170) == 0 || checkquest(9170) == 1) {
+ } else if (questprogress(9170) == 1) {
if (countitem(12580)) {
mes "[Tutorial Instructor]";
mes "Hmm... It seems that you still have";
@@ -319,7 +319,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
completequest 9170;
setquest 9171;
close;
- } else if (checkquest(9171) == 0 || checkquest(9171) == 1) {
+ } else if (questprogress(9171) == 1) {
if (countitem(909) < 10) {
mes "[Tutorial Instructor]";
mes "It seems you didn't bring";
@@ -401,7 +401,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
mes "When you're done looking at them,";
mes "give them back to me.";
close;
- } else if (checkquest(9172) == 0 || checkquest(9172) == 1) {
+ } else if (questprogress(9172) == 1) {
if (countitem(15033) == 0 || countitem(15034) == 0) {
mes "[Tutorial Instructor]";
mes "What did you do with the Enchanted";
@@ -438,13 +438,13 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
mes "then bring them back to me.";
close;
}
- } else if (checkquest(9173) == 0 || checkquest(9173) == 1) {
+ } else if (questprogress(9173) == 1) {
mes "[Tutorial Instructor]";
mes "Do you have any questions?";
next;
switch(select("Can I do the same quest again?:About the Quest Window...:About ENCHANT...:About Searching Vends...:About Mercenary and Pets...:End Conversation.")) {
case 1:
- if (checkquest(9173,PLAYTIME) == 0 || checkquest(9173,PLAYTIME) == 1) {
+ if (questprogress(9173,PLAYTIME) == 1) {
mes "[Tutorial Instructor]";
mes "The one method to do the same quests repeatdedly is to do the ^006400Daily Quests^000000.";
next;
@@ -462,7 +462,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
next;
switch(select("Yes:No")) {
case 1:
- set @tutorial_restart,1;
+ @tutorial_restart = 1;
goto OnStartQuest;
case 2:
mes "[Tutorial Instructor]";
@@ -579,32 +579,32 @@ moc_para01,32,179,4 script Tutorial Goal 4_F_KHELLY,{
close;
}
}
- if (checkquest(4161) == 0 || checkquest(4161) == 1) {
+ if (questprogress(4161) == 1) {
mes "[Tutorial Goal]";
mes "Well~ We gotta go challenge the experts right?";
mes "Let's start off by finding the ^006400Siege Expert^000000!";
close;
- } else if (checkquest(4162) == 0 || checkquest(4162) == 1) {
+ } else if (questprogress(4162) == 1) {
mes "[Tutorial Goal]";
mes "You've passed the ^006400Siege Expert^000000's test! Congrats!";
mes "Now, go find the ^006400Party Recruiting Expert^000000!";
close;
- } else if (checkquest(4163) == 0 || checkquest(4163) == 1) {
+ } else if (questprogress(4163) == 1) {
mes "[Tutorial Goal]";
mes "Oh! You've passed the ^006400Party Recruiting Expert^000000's test! Congrats!";
mes "Now, go find the ^006400Battleground Expert^000000!";
close;
- } else if (checkquest(4164) == 0 || checkquest(4164) == 1) {
+ } else if (questprogress(4164) == 1) {
mes "[Tutorial Goal]";
mes "Yay! You passed the test from the ^006400Battleground Expert^000000! Congrats!";
mes "Next, go and find the ^006400Memorial Dungeon Expert^000000!";
close;
- } else if (checkquest(4165) == 0 || checkquest(4165) == 1) {
+ } else if (questprogress(4165) == 1) {
mes "[Tutorial Goal]";
mes "You passed the test from ^006400Memorial Dungeon Expert^000000! That's great!";
mes "Try finding the ^006400Map Expert^000000!";
close;
- } else if (checkquest(4166) == 0 || checkquest(4166) == 1) {
+ } else if (questprogress(4166) == 1) {
mes "[Tutorial Goal]";
mes "You passed ^006400Map Expert^000000's test! Congrats!";
mes "I'm so glad that you were to pass all the Experts' tests! You're better than I expected!!";
@@ -621,7 +621,7 @@ moc_para01,32,179,4 script Tutorial Goal 4_F_KHELLY,{
getitem 504,5; //White_Potion
getitem 608,1; //Seed_Of_Yggdrasil
close;
- } else if (checkquest(4166) == 2) {
+ } else if (questprogress(4166) == 2) {
mes "[Tutorial Goal]";
mes "Now, even you are an ^006400Expert^000000!! Such a fitting nick name for you!";
mes "Thank you so much for your hard work.";
@@ -662,7 +662,7 @@ moc_para01,32,179,4 script Tutorial Goal 4_F_KHELLY,{
}
moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
- set .@checkquest, checkquest(4161);
+ .@checkquest = questprogress(4161);
if (.@checkquest == 2) {
mes "[Siege Expert]";
mes "Since you've come again, I assume you're curious about ^006400Siege^000000?";
@@ -678,7 +678,7 @@ moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
mes "If you want to go over anything, just come talk to me.";
close;
}
- } else if (.@checkquest == 0 || .@checkquest == 1) {
+ } else if (.@checkquest == 1) {
mes "[Siege Expert]";
mes "I am someone who has studied War of Emperium for 16 years! So that makes me an expert! Since you came to find me, I assume you want to learn more about ^006400Siege^000000.";
next;
@@ -698,7 +698,7 @@ moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
mes "Now that you've gone through all of this with an expert, isn't it easy to understand?";
mes "Now I'll give you 3 questions~ get those right and you've passed! Do you want a challenge?";
while(1) {
- set .@correct,0;
+ .@correct = 0;
next;
switch(select("Challenge me!:Listen Again:Quit")) {
case 1:
@@ -710,18 +710,18 @@ moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
mes "What words go in the empty spaces of []?";
next;
if(select("Castle, User, Guild:Castle, Guild, Guild:Town, Guild, Guild:Town, User, User") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "What is the wrong Siege time?";
next;
if(select("WoE 1 Tues 9-11:WoE 1 Sat 4-6:WoE 1 Thurs 8-10") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "When you get a castle, you must raise [] in order to get better benefits.";
mes "What words go in the empty spaces of []?";
next;
if(select("Commerce Development:Industrial Development:Guild Development:Town Development") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 2:
mes "[Siege Expert]";
@@ -731,36 +731,36 @@ moc_para01,24,175,4 script Siege Master 4_M_JOB_KNIGHT2,{
mes "What words go in the empty spaces of []?";
next;
if(select("War of Emperium MO:War of Emperium NE:War of Emperium SK:War of Emperium SE") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "As the guild that owns a castle, you must protect the [].";
mes "What words go in the empty spaces of []?";
next;
if(select("Emperial:Emperium:Emperiom:Imperial") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "What benefits does the guild get for winning the Siege?";
next;
if(select("30% off all items when purchasing:Increase experience gained by 20%:Access to Guild Dungeon:Getting Weapons everyday at midnight.") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 3:
mes "[Siege Expert]";
mes "What benefits does the guild get for winning the Siege?";
next;
if(select("Increase experience gained by 20%:30% off all items when purchasing:Access to Guild Field:Treasure Box daily at midnight") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "How many hours does a siege last?";
next;
if(select("1 Hour:2 Hours:3 Hours:4 Hours") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Siege Expert]";
mes "When you get a castle, you must raise [] in order to get better benefits.";
mes "What words go in the empty spaces of []?";
next;
if(select("Town Development:Industry Development:Guild Development:Commerce Development") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
}
if (.@correct == 30) {
@@ -835,7 +835,7 @@ L_Info:
}
moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
- set .@checkquest, checkquest(4162);
+ .@checkquest = questprogress(4162);
if (.@checkquest == 2) {
mes "[Party Recruiting Expert]";
mes "Since you've come and found me, it seems you're curious about ^006400Party Recruiting^000000?";
@@ -851,7 +851,7 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "Well, if you have any questions, come find me.";
close;
}
- } else if (.@checkquest == 0 || .@checkquest == 1) {
+ } else if (.@checkquest == 1) {
mes "[Party Recruiting Expert]";
mes "I am the ^006400Party Recruiting^000000 expert because I did research about Party Recruting for 16 years! It seems that the ^006400Siege Expert^000000 sent you my way since you passed his tests, hmm?";
next;
@@ -867,7 +867,7 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "[Party Recruiting Expert]";
mes "Now~ my explanations were smoother than a smooth criminal, right? Now I'm gonna give you a quiz with 3 questions. Get them all right and you've passed. Wanna take the challenge?";
while(1) {
- set .@correct,0;
+ .@correct = 0;
next;
switch(select("On to the quiz!:Explain again please?:Give up.")) {
case 1:
@@ -880,18 +880,18 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "What words go in the empty spaces of []?";
next;
if(select("Guild, Guildmate:Club, Club Members:Paris, Party Members:Party, Party Members") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "The window that is used to help users look and search for a party is called a [].";
mes "What words go in the empty spaces of []?";
next;
if(select("Party List:Party Wanted List:Party Recruiting List:Costume Party List") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "Which of the choices are not listed as a choice to pick when making a party recruit notice?";
next;
if(select("LEVEL:SKILL:JOB:MAP") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 2:
mes "[Party Recruiting Expert]";
@@ -901,19 +901,19 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "What words go in the empty spaces of []?";
next;
if(select("Search for Parties that are Recruiting:Parties that are starting to hunt:Party Recruit and Item Distribution:Party Stuff") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "In order to start Party Recruiting, you have to click the [] button which is located in the info section of the upper left hand side.";
mes "What words go in the empty spaces of []?";
next;
if(select("party:guild:booking:skill") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "If you want to know more about commands for Party Recruiting, you have to press the [] button on the Party Recruting List window.";
mes "What words go in the empty spaces of []?";
next;
if(select("Basic Information:Help:Party:Confirm") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 3:
mes "[Party Recruiting Expert]";
@@ -923,14 +923,14 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "What words go in the empty spaces of []?";
next;
if(select("/Party Collection Window:/Party Collection:/Party Recruitment Window:/Party Recruitment") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "When recruiting for a party, you can set 3 parameters. Those 3 are";
mes "LEVEL, JOB, and [].";
mes "What words go in the empty spaces of []?";
next;
if(select("SKILL:GUILD:MAP:OPTION") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Party Recruiting Expert]";
mes "Party Recruiting is used to help";
mes "users that are looking for []";
@@ -938,7 +938,7 @@ moc_para01,21,172,4 script Party Recruiting Expert 4_M_OILMAN,{
mes "What words go in the empty spaces of []?";
next;
if(select("Parry, Party Members:Club, Club Members:Party, Party Members:Guild, Guild Members") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
}
if (.@correct == 30) {
@@ -1017,7 +1017,7 @@ L_Info:
}
moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
- set .@checkquest, checkquest(4163);
+ .@checkquest = questprogress(4163);
if (.@checkquest == 2) {
mes "[Battleground Expert]";
mes "Seeing that you sought me out, I guess you want to learn about ^006400Battleground^000000s, eh?";
@@ -1033,7 +1033,7 @@ moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
mes "If you want to go over anything, let me know.";
close;
}
- } else if (.@checkquest == 0 || .@checkquest == 1) {
+ } else if (.@checkquest == 1) {
mes "[Battleground Expert]";
mes "For 16 years, I experienced the intense heat of battle on the ^006400Battleground^000000s... I am the ^006400Battleground^000000 Expert!";
mes "It seems that the ^006400Party Recruiting Expert^000000 sent you to me since you passed his quiz.";
@@ -1050,7 +1050,7 @@ moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
mes "[Battleground Expert]";
mes "There's nothing better than hearing it straight from the expert! Now, do you wanna take my 3-question quiz? You have to answer all 3 correctly to pass!";
while(1) {
- set .@correct,0;
+ .@correct = 0;
next;
switch(select("On to the quiz!:Explain again please?:Give up.")) {
case 1:
@@ -1061,19 +1061,19 @@ moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Guillaume, Tierra:Rachel, KVM:Guillaume, Croix:Maroll, KVM") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "[] can do either 10vs10 and you have to attack the crystals of the opposing team while protecting yours.";
mes "What words go in the empty spaces of []?";
next;
if(select("Tierra:Flavius:KVM:Maroll") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "When you complete a battle, you may get a reward! From a KVM battle, you get [].";
mes "What words go in the empty spaces of []?";
next;
if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 2:
mes "[Battleground Expert]";
@@ -1081,18 +1081,18 @@ moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Maroll:KVM:Flavius:Tierra") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "In order to get into the battlegrounds, which one is not the recruiter you need to find?";
next;
if(select("Maroll Mercenary Recruiter:KVM Mercenary Recruiter:Tierra Mercenary Recruiter:Flavius Mercenary Recruiter") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "You can get [] from participating in the Battlegrounds of Tierra.";
mes "What words go in the empty spaces of []?";
next;
if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 3:
mes "[Battleground Expert]";
@@ -1100,19 +1100,19 @@ moc_para01,12,179,6 script Battleground Master 4_M_KY_HEAD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Maroll Battleground Recruiter:Tierra Battleground Recruiter:Flavius Battleground Recruiter:KVM Battleground Recruiter") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "For [], you go in 5vs5 with the intention of trying to reduce the number of enemies on the opposite side.";
mes "What words go in the empty spaces of []?";
next;
if(select("Maroll:Flavius:KVM:Tierra") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Battleground Expert]";
mes "When you complete a battle, you get a prize. The prize from Flavius is called [].";
mes "What words go in the empty spaces of []?";
next;
if(select("KVM Badge:Valor Badge:Bravery Badge:Honor Badge") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
}
if (.@correct == 30) {
@@ -1197,7 +1197,7 @@ L_Info:
}
moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
- set .@checkquest, checkquest(4164);
+ .@checkquest = questprogress(4164);
if (.@checkquest == 2) {
mes "[Memorial Dungeon Expert]";
mes "Since you've come here, it seems you want to learn about the ^006400Memorial Dungeon^000000.";
@@ -1213,7 +1213,7 @@ moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
mes " If you want to hear about it again, come find me.";
close;
}
- } else if (.@checkquest == 0 || .@checkquest == 1) {
+ } else if (.@checkquest == 1) {
mes "[Memorial Dungeon Expert]";
mes "I am the ^006400Memorial Dungeon^000000 Expert! I studied the ^006400Memorial Dungeon^000000 for 16 years!";
mes "Since you've sought me out, I assume that you've passed the ^006400Battleground Expert^000000's quiz.";
@@ -1232,7 +1232,7 @@ moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
mes "Now that you've listend to an expert, it's easy to understand, right? If you want to hear about it again, come find me.";
mes "Okay, now I'm gonna give you a quiz. You have to get all the questions right to pass. Ready?";
while(1) {
- set .@correct,0;
+ .@correct = 0;
next;
switch(select("On to the quiz!:Explain again please?:Give up.")) {
case 1:
@@ -1243,19 +1243,19 @@ moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Party Members:Guildmates:Friends:Family") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "If you go to [] and find [], he will give you information about Endless Tower- which is a huge and tall dungeon.";
mes "What words go in the empty spaces of []?";
next;
if(select("Prontera, Seiyablem:Alberta, Leyablem:Alberta, Captain Jansen:Prontera, Captin Jansen") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "In order to enter Memorial Dungeon the [] must apply and then be on stand-by to enter. You will enter in the order the application was put in.";
mes "What words go in the empty spaces of []?";
next;
if(select("Guild Member:Guild Leader:Party Leader:Party Member") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 2:
mes "[Memorial Dungeon Expert]";
@@ -1263,20 +1263,20 @@ moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Buff:Ritual:Exploration:Inspection") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "If you go to the Orc Map where all the orcs live, you will be able to find []. He will probably be able to give you information about the Orc's Memory dungeon.";
mes "What words go in the empty spaces of []?";
next;
if(select("Insane Scientist:Crazy Scientist:Insane Alchemist:Crazy Alchemist") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "In order to enter Memorial Dungeon, the [] must apply- then you'll be able to enter in order of when your application was turned in.";
mes "You have to be on stand-by for this.";
mes "What words go in the empty spaces of []?";
next;
if(select("Guild Leader:Guildmate:Party Member:Party Leader") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 3:
mes "[Memorial Dungeon Expert]";
@@ -1284,19 +1284,19 @@ moc_para01,28,167,3 script Memorial Dungeon Expert 4_M_LGTGUARD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Agent Patrick:Patrolman Patrick:Drunken Patrick:Detective Patrick") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "When you're done with the [], you cannot re-enter the same dungeon for a certain period of time.";
mes "What words go in the empty spaces of []?";
next;
if(select("Exploration:Inspection:Buff:Ritual") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Memorial Dungeon Expert]";
mes "^006400Memorial Dungeon^000000 is not just open to all users. It is open available for you and your [].";
mes "What words go in the empty spaces of []?";
next;
if(select("Friends:Family:Party Members:Guildmates") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
}
if (.@correct == 30) {
@@ -1375,7 +1375,7 @@ L_Info:
}
moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
- set .@checkquest, checkquest(4165);
+ .@checkquest = questprogress(4165);
if (.@checkquest == 2) {
mes "[Map Expert]";
mes "Seeing that you came to me, I assume you have some questions about ^006400MAP^000000s?";
@@ -1392,7 +1392,7 @@ moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
mes "If you have any more questions, come find me.";
close;
}
- } else if (.@checkquest == 0 || .@checkquest == 1) {
+ } else if (.@checkquest == 1) {
mes "[Map Expert]";
mes "I have been researching and studying ^006400MAP^000000s for 16 years and so now I am the ^006400MAP^000000 Expert!";
mes "Since you've sought me out, it seems you've passed ^006400Memorial Dungeon Expert^000000's quiz.";
@@ -1409,7 +1409,7 @@ moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
mes "[Map Expert]";
mes "How was my explanation? Now I am gonna give you a quick quiz! You have to get all the answers correct in order to pass. Ready?";
while(1) {
- set .@correct,0;
+ .@correct = 0;
next;
switch(select("On to the quiz!:Explain again please?:Give up.")) {
case 1:
@@ -1420,19 +1420,19 @@ moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
mes "What words go in the empty spaces of []?";
next;
if(select("SKILL:GUILD:MAP:BOOKING") == 3)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "When looking at the map, each area offers the [] and [] information about the monsters. That will take all the guess work out of where you should hunt.";
mes "What words go in the empty spaces of []?";
next;
if(select("Name, Age:Attributes, Level:Attributes, Tribe:Name, Level") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "If you want to stop looking at the map, simple press the shortcut key of [] or ESC and it will close the map for you.";
mes "What words go in the empty spaces of []?";
next;
if(select("ALT + F4:CTRL + %:CTRL + M:ALT + ESC") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 2:
mes "[Map Expert]";
@@ -1442,20 +1442,20 @@ moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
mes "What words go in the empty spaces of []?";
next;
if(select("Name, Area Details:Name, Monster Attributes:Specialties, Area Details:Specialties, Name") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "If you look to the bottom right of the map, you will see a drawing of []. Click on that or press the TAB shortcut key and you can find out various information.";
mes "What words go in the empty spaces of []?";
next;
if(select("Desert Wolf:Mimic:Siroma:Poring") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "While looking at the map, when you press the TAB shortcut key, you will be able to find and locate various dungeons and their Entrance Locations.";
mes "You can also find the [] of the monsters in that area.";
mes "What words go in the empty spaces of []?";
next;
if(select("Name:Level:Attribute:Size") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
case 3:
mes "[Map Expert]";
@@ -1463,20 +1463,20 @@ moc_para01,14,168,6 script Map Expert 2_M_SAGE_OLD,{
mes "What words go in the empty spaces of []?";
next;
if(select("O:X:EXIT:ALT") == 2)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "While looking at the map, when you press the TAB shortcut key, you will be able to find and locate various dungeons and their Entrance Locations.";
mes "You can also find the [] of the monsters in that area.";
mes "What words go in the empty spaces of []?";
next;
if(select("Level:Name:Size:Attribute") == 1)
- set .@correct, .@correct+10;
+ .@correct += 10;
mes "[Map Expert]";
mes "You can view the map by clicking on the [] button that is located in the upper left hand side.";
mes "What words go in the empty spaces of []?";
next;
if(select("GUILD:SKILL:BOOKING:MAP") == 4)
- set .@correct, .@correct+10;
+ .@correct += 10;
break;
}
if (.@correct == 30) {
diff --git a/npc/re/quests/homun_s.txt b/npc/re/quests/homun_s.txt
index d5abca9fd..4bea2322e 100644
--- a/npc/re/quests/homun_s.txt
+++ b/npc/re/quests/homun_s.txt
@@ -20,13 +20,13 @@ job3_gen01,12,44,3 script Viorel#job3_gen01 4_M_ALCHE_E,{
if (countitem(6415)) {
if (Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) {
disable_items;
- if (checkquest(4159) == -1 && checkquest(4160) == -1) {
+ if (!questprogress(4159) && !questprogress(4160)) {
mes "[Viorel]";
mes "Why are you here?";
mes "Shouldn't you be at ^005DFFJeyna^000000's house?";
close2;
- for(set .@i,4154; .@i<=4160; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 4154; .@i <= 4160; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
setquest 4154;
@@ -64,8 +64,8 @@ job3_gen01,12,44,3 script Viorel#job3_gen01 4_M_ALCHE_E,{
close;
}
}
- if ((Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) && (checkquest(4154) > -1)) {
- if ((checkquest(4155) > -1) || (checkquest(4160) > -1)) {
+ if ((Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) && questprogress(4154)) {
+ if (questprogress(4155) || questprogress(4160)) {
mes "[Viorel]";
mes "Weather's great.";
next;
@@ -270,7 +270,7 @@ L_CheckHomunculus:
}
que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
- if (checkquest(4155) > -1) {
+ if (questprogress(4155)) {
emotion e_dum;
mes "[Viorel]";
mes "Good.";
@@ -400,7 +400,7 @@ que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
end;
}
}
- } else if (checkquest(4160) > -1) {
+ } else if (questprogress(4160)) {
playbgm "33.mp3"; // Yuna Song
mes "[Viorel]";
mes "The ^FF4800Homunculus^000000 I saw before has returned to its ^0000FFembryo^000000 state.";
@@ -464,23 +464,23 @@ que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
switch(select("Eira:Sera:Dieter:Bayeri:Eleanor")) {
case 1:
cutin "Mer_Eira_Card",3;
- set .@Homunculus,6048; //MER_EIRA
+ .@Homunculus = 6048; //MER_EIRA
break;
case 2:
cutin "Mer_Sera_Card",3;
- set .@Homunculus,6050; //MER_SERA
+ .@Homunculus = 6050; //MER_SERA
break;
case 3:
cutin "Mer_Dieter_Card",3;
- set .@Homunculus,6051; //MER_DIETER
+ .@Homunculus = 6051; //MER_DIETER
break;
case 4:
cutin "Mer_Bayeri_Card",3;
- set .@Homunculus,6049; //MER_BAYERI
+ .@Homunculus = 6049; //MER_BAYERI
break;
case 5:
cutin "Mer_Eleanor_Card",3;
- set .@Homunculus,6052; //MER_ELEANOR
+ .@Homunculus = 6052; //MER_ELEANOR
break;
}
mes "[Viorel]";
@@ -591,8 +591,8 @@ que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
mes "has only just begun~!";
close;
} else {
- for(set .@i,4154; .@i<=4160; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 4154; .@i<=4160; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
mes "[Viorel]";
@@ -605,7 +605,7 @@ que_house_s,24,47,3 script Viorel#homun_s 4_M_ALCHE_E,{
}
que_house_s,80,42,3 script Jeyna#homun_s 4_F_ALCHE_A,{
- if (checkquest(4156) > -1) {
+ if (questprogress(4156)) {
playbgm "28.mp3"; // You're in Ruins
emotion e_gasp;
mes "[Jeyna]";
@@ -661,14 +661,14 @@ que_house_s,80,42,3 script Jeyna#homun_s 4_F_ALCHE_A,{
setquest 4157;
erasequest 4156;
end;
- } else if (checkquest(4157) > -1) {
+ } else if (questprogress(4157)) {
emotion e_what;
mes "[Jeyna]";
mes "Take a look at the board behind me, on the right.";
close2;
emotion e_gasp,0,"Magic Board#homun_s";
end;
- } else if (checkquest(4158) > -1) {
+ } else if (questprogress(4158)) {
playbgm "28.mp3"; // You're in Ruins
disable_items;
mes "[Jeyna]";
@@ -772,7 +772,7 @@ que_house_s,80,42,3 script Jeyna#homun_s 4_F_ALCHE_A,{
mes "Maybe I shouldn't have asked in the first place.";
close;
}
- } else if (checkquest(4159) > -1 || checkquest(4160) > -1) {
+ } else if (questprogress(4159) || questprogress(4160)) {
playbgm "28.mp3"; // You're in Ruins
mes "[Jeyna]";
mes "^005DFFViorel^000000 will finish the mutation process.";
@@ -790,7 +790,7 @@ que_house_s,80,42,3 script Jeyna#homun_s 4_F_ALCHE_A,{
warp "que_house_s",19,42;
end;
} else {
- if (checkquest(4154) > -1)
+ if (questprogress(4154))
erasequest 4154;
mes "[Jeyna]";
mes "Hey, how did you get in here?";
@@ -847,7 +847,7 @@ que_house_s,83,47,3 script Magic Board#homun_s 4_BOARD3,{
mes "--------------------------";
mes "The rest is sealed because it seems to be a private message.";
close2;
- if (checkquest(4157) > -1) {
+ if (questprogress(4157)) {
setquest 4158;
erasequest 4157;
}
diff --git a/npc/re/quests/magic_books.txt b/npc/re/quests/magic_books.txt
index 0fd885d8f..b89b4f069 100644
--- a/npc/re/quests/magic_books.txt
+++ b/npc/re/quests/magic_books.txt
@@ -172,7 +172,7 @@ geffen_in,176,105,4 script Master Velofos 1_M_WIZARD,{
next;
mes "[Master Velofos]";
mes "For your information, she won't give it to you without anything in return. Expect her to ask you for something!";
- if (wm_book < 1) set wm_book, 1;
+ if (wm_book < 1) wm_book = 1;
close;
case 2:
mes "[Master Velofos]";
@@ -243,7 +243,7 @@ geffen_in,176,105,4 script Master Velofos 1_M_WIZARD,{
next;
mes "[Master Velofos]";
mes "If you want to see him, you should prepare for a long journey.";
- set mac_book,2;
+ mac_book = 2;
close;
}
if (mac_book > 1) {
@@ -304,7 +304,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
mes "[Lea]";
mes "Yes. You may pay a minimum of 10,000 Rune-Midgarts zeny. Alternatively, you can bring 2 Old Magic Books or 50 Old Pages. Once you pay the deposit, I'll let you borrow some Magic Books.";
next;
- set .@Payment, select("Where can I find Old Magic Books and Old Pages?:I'll pay with zeny.:I'll pay with Old Magic Books.:I'll pay with Old Pages.")-1;
+ .@Payment = select("Where can I find Old Magic Books and Old Pages?:I'll pay with zeny.:I'll pay with Old Magic Books.:I'll pay with Old Pages.")-1;
mes "[Lea]";
if (!.@Payment) {
mes "I heard that you can find them from Ride Words, Death Words, Bathorys, and other monsters. I ask that you please don't strain yourself to find those items.";
@@ -316,7 +316,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
if ((.@Payment == 1 && Zeny > 10000) || (.@Payment == 2 && countitem(1006) > 1) || (.@Payment == 3 && countitem(1097) > 49)) {
mes "What kind of Magic Book do you want?";
next;
- set .@i, select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")-1;
+ .@i = select("Let me think.:Magic Book (Fire Bolt):Magic Book (Cold Bolt):Magic Book (Lightning Bolt)")-1;
mes "[Lea]";
if (!.@i) {
mes "No problem.";
@@ -347,7 +347,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
mes "[Lea]";
mes "Ah, so you want the Intermediate Magic Books. Please pay 50,000 Rune-Midgartian zeny, or you can bring me 2 Old Blue Boxes or 9 Eluniums to borrow the Intermediate Magic Books.";
next;
- set .@Payment, select("Where can I find Old Blue Boxes and Eluniums?:I'll pay 50,000 zeny.:I'll pay with Old Blue Boxes.:I'll pay with Eluniums.")-1;
+ .@Payment = select("Where can I find Old Blue Boxes and Eluniums?:I'll pay 50,000 zeny.:I'll pay with Old Blue Boxes.:I'll pay with Eluniums.")-1;
mes "[Lea]";
if (!.@Payment) {
mes "Old Blue Boxes are quite rare to find, but they can be obtained from monsters everywhere in the world, including Myst Cases, Megalogons, Mimics, Nightmares, Krabens, Requiems, Nine Tails, Noxiouses, and Byorgues.";
@@ -360,7 +360,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
if ((.@Payment == 1 && Zeny > 50000) || (.@Payment == 2 && countitem(603) > 1) || (.@Payment == 3 && countitem(985) > 8)) {
mes "What kind of Magic Book do you want?";
next;
- set .@i, select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")-1;
+ .@i = select("Let me think.:Magic Book (Storm Gust):Magic Book (Lord of Vermillion):Magic Book (Meteor Storm):Magic Book (Thunderstorm):Magic Book (Jupitel Thunder):Magic Book (Water Ball):Magic Book (Heaven's Drive):Magic Book (Earth Spike)")-1;
setarray .@Books[0],6192,6193,6194,6197,6198,6199,6200,6201;
mes "[Lea]";
if (!.@i) {
@@ -399,7 +399,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
mes "[Lea]";
mes "[12 Mystery Pieces and 100,000 zeny], [7 Oridecons and 100,000 zeny], or [1 Old Violet Box and 100,000 zeny]. Now how would you like to pay your deposit?";
next;
- set .@Payment, select("Where can I find those items?:Let me think.:I'll pay with 12 Mystery Pieces and 100,000 zeny.:I'll pay with 7 Oridecons and 100,000 zeny.:I'll pay with 1 Old Violet Box and 100,000 zeny.")-1;
+ .@Payment = select("Where can I find those items?:Let me think.:I'll pay with 12 Mystery Pieces and 100,000 zeny.:I'll pay with 7 Oridecons and 100,000 zeny.:I'll pay with 1 Old Violet Box and 100,000 zeny.")-1;
mes "[Lea]";
if (!.@Payment) {
mes "Mystery Pieces can be obtained from machine creatures in the Juperos Dungeon, and they're the fountain of knowledge from the ancient civilization. Ah, I get excited thinking about those artifacts.";
@@ -433,7 +433,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
if ((.@Payment == 1 && Zeny > 199999) || (Zeny > 99999 && ((.@Payment == 2 && countitem(7094) > 11) || (.@Payment == 3 && countitem(984) > 6) || (.@Payment == 4 && countitem(617))))) {
mes "What kind of Magic Book do you want?";
next;
- set .@i, select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")-1;
+ .@i = select("Let me think.:Magic Book (Earth Strain):Magic Book (Chain Lightning):Magic Book (Crimson Rock):Magic Book (Drain Life)")-1;
mes "[Lea]";
if (!.@i) {
mes "No problem.";
@@ -480,7 +480,7 @@ geffen_in,175,112,4 script Lea 2_F_MAGICMASTER,{
next;
mes "[Lea]";
mes "I'm sorry that I can't help you more than that.";
- set mac_book,1;
+ mac_book = 1;
close;
}
if ((BaseLevel > 139) && (mac_book > 0) && ((getskilllv(2217) > 0) || (getskilllv(2213) > 0))) {
@@ -604,7 +604,7 @@ mid_camp,255,244,4 script Galfos 4_M_JOB_WIZARD,{
next;
mes "[Galfos]";
mes "Afterwards, create and bring me the artifact. We'll talk about creating the Magic Book afterwards.";
- set mac_book,3;
+ mac_book = 3;
close;
}
if (mac_book == 3) {
@@ -620,13 +620,13 @@ mid_camp,255,244,4 script Galfos 4_M_JOB_WIZARD,{
mes "Oh, did you find";
mes "anything useful?";
next;
- set .@i, select("I've discovered everything about Comet.:I've mastered the zenith of Tetra Vortex.");
+ .@i = select("I've discovered everything about Comet.:I've mastered the zenith of Tetra Vortex.");
mes "[Galfos]";
if ((.@i == 1 && countitem(6195)) || (.@i == 2 && countitem(6196))) {
mes "Are you kidding me? You already have the book!";
close;
}
- if ((.@i == 1 && checkquest(12218) == 2) || (.@i == 2 && checkquest(12219) == 2 && checkquest(12220) == 2 && checkquest(12221) == 2 && checkquest(12222) == 2)) {
+ if ((.@i == 1 && questprogress(12218) == 2) || (.@i == 2 && questprogress(12219) == 2 && questprogress(12220) == 2 && questprogress(12221) == 2 && questprogress(12222) == 2)) {
mes "Oh my, I sense incredible energy coming from you. This is great! Now we're ready to make the Ultimate Magic Book.";
next;
mes "[Galfos]";
@@ -676,11 +676,11 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
mes "When you approach the documents, an Evil Giant that looks like the archive manager tries to call Guard Galton. You should get out of here quickly.";
close;
}
- if (checkquest(12165,"PLAYTIME") == 1) {
+ if (questprogress(12165,PLAYTIME) == 1) {
mes "The documents are making you feel nauseous. You should come back later after your stomach settles.";
close;
}
- if (checkquest(12165,"PLAYTIME") == 2) {
+ if (questprogress(12165,PLAYTIME) == 2) {
mes "You don't feel as nauseous anymore. It should be safe to proceed now.";
erasequest 12165;
close;
@@ -697,13 +697,13 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
}
if (mac_book == 3) {
mes "You have discovered records about magic, acceleration, and particle waves. These documents must be the ones that Galfos is looking for.";
- set mac_book, 4;
+ mac_book = 4;
close;
}
if (mac_book == 4) {
if (rand(1,10) == 1) {
if (getskilllv(2213) > 0) {
- if (checkquest(12218) == 1) {
+ if (questprogress(12218) == 1) {
mes "You already own this document.";
close;
}
@@ -721,7 +721,7 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
}
if (rand(1,10) == 2) {
if (getskilllv(2217) > 0) {
- if (checkquest(12219) == 1) {
+ if (questprogress(12219) == 1) {
mes "You already own this document.";
close;
}
@@ -739,7 +739,7 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
}
if (rand(1,10) == 3) {
if (getskilllv(2217) > 0) {
- if (checkquest(12220) == 1) {
+ if (questprogress(12220) == 1) {
mes "You already own this document.";
close;
}
@@ -756,7 +756,7 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
}
if (rand(1,10) == 4) {
if (getskilllv(2217) > 0) {
- if (checkquest(12221) == 1) {
+ if (questprogress(12221) == 1) {
mes "You already own this document.";
close;
}
@@ -774,7 +774,7 @@ dic_in01,25,190,0 script Mysterious Documents CLEAR_NPC,{
}
if (rand(1,10) == 5) {
if (getskilllv(2217) > 0) {
- if (checkquest(12222) == 1) {
+ if (questprogress(12222) == 1) {
mes "You already own this document.";
close;
}
@@ -807,7 +807,7 @@ function script Magic_Book_Essence {
mes "Please lighten your bag.";
close;
}
- if (checkquest(getarg(0)) == 1 && countitem(getarg(1)) >= getarg(2)) {
+ if (questprogress(getarg(0)) == 1 && countitem(getarg(1)) >= getarg(2)) {
specialeffect2 EF_BLIND;
specialeffect2 EF_BEGINSPELL;
progressbar "ffff00",4;
@@ -823,7 +823,7 @@ function script Magic_Book_Essence {
mes "^008888You have failed to refine the essence using "+getarg(2)+" "+getitemname(getarg(1))+"s.^000000";
close;
}
- if (checkquest(getarg(0)) == 2) {
+ if (questprogress(getarg(0)) == 2) {
mes "You've already created "+getarg(3)+" Essence in this area.";
close;
}
diff --git a/npc/re/quests/quests_brasilis.txt b/npc/re/quests/quests_brasilis.txt
index 33758fe9a..589dca99f 100644
--- a/npc/re/quests/quests_brasilis.txt
+++ b/npc/re/quests/quests_brasilis.txt
@@ -31,33 +31,33 @@ brasilis,297,307,5 script Angelo#br 1_M_04,{
mes "Gosh... what can I do... ?";
close;
}
- if (checkquest(9032,PLAYTIME) == 2) {
+ if (questprogress(9032,PLAYTIME) == 2) {
erasequest 9032;
}
- if (checkquest(9032,PLAYTIME) == 0) {
+ if (questprogress(9032,PLAYTIME) == 1) {
mes "[Angelo]";
mes "The day is not finished yet.";
mes "You can only help once a day. Hehe.";
close;
}
- if (checkquest(9030) == 1) {
+ if (questprogress(9030) == 1) {
mes "[Angelo]";
mes "My pets are in the field outside of the village.";
mes "Why did they leave? Please find them.";
close;
}
- if (checkquest(9031) == 1) {
+ if (questprogress(9031) == 1) {
mes "[Angelo]";
mes "Oh, thank you. You found all of 3 puppies.";
mes "Thanks a lot.";
mes "I hope this is useful to you. hoho.";
- set .@randexp,rand(50000,112500);
+ .@randexp = rand(50000,112500);
getexp .@randexp,0;
erasequest 9031;
setquest 9032;
specialeffect2 EF_ASSUMPTIO;
consumeitem 607; //Yggdrasilberry
- set .@rand,rand(1,10);
+ .@rand = rand(1,10);
if (.@rand > 4 && .@rand < 9) getitem 504,2; //White_Potion
else if (.@rand > 8) getitem 608,1; //Seed_Of_Yggdrasil
close;
@@ -89,17 +89,17 @@ OnGo:
}
- script Puppy#bra -1,{
- if (checkquest(9030) == 1) {
+ if (questprogress(9030) == 1) {
if (brazil_kid < 3) {
mes "[Puppy]";
mes "bow wow bow wow!!";
next;
- set brazil_kid,brazil_kid+1;
+ ++brazil_kid;
mes "[" + strcharinfo(0) + "]";
if (brazil_kid == 3) {
mes "Good. I found all 3 puppies.";
mes "Now I need to go tell Angelo.";
- set brazil_kid,0;
+ brazil_kid = 0;
erasequest 9030;
setquest 9031;
}
@@ -169,9 +169,8 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
close;
}
else {
- set .@nQState1,checkquest(9028);
- set .@nQState2,checkquest(9029);
- if (.@nQState1 == -1) {
+ .@nQState = questprogress(9028);
+ if (!.@nQState) {
mes "[Lucia]";
mes "Hello.";
mes "Have you come here to hunt ^FF0000Strange Hydra^000000s?";
@@ -215,7 +214,7 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
close;
}
}
- else if ((.@nQState1 == 0) || (.@nQState1 == 1)) {
+ else if (.@nQState == 1) {
if (countitem(6221) > 0) {
mes "[Lucia]";
mes "Hello, you really did it!";
@@ -227,7 +226,7 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
delitem 6221,1; //Mystic_Leaf_Cat_Ball
completequest 9028;
//recall_completequest 9029;
- if (.@nQState2 > -1) erasequest 9029;
+ if (questprogress(9029)) erasequest 9029;
setquest 9029;
consumeitem 607; //Yggdrasilberry
consumeitem 12070; //Luk_Dish05
@@ -290,8 +289,7 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
else {
mes "[Lucia]";
mes "Oh, ^0000FF"+strcharinfo(0)+"^000000 you're back.";
- set .@nCheckTime,checkquest(9029,PLAYTIME);
- if ((.@nCheckTime == 0) || (.@nCheckTime == 1)) {
+ if (questprogress(9029,PLAYTIME) == 1) {
mes "I'm so grateful for your help.";
mes "Each ^006400Hydra Ball^000000 is provided ^006400every 24 hours^000000";
mes "Please come at the appropriate time.";
@@ -299,7 +297,7 @@ brasilis,192,133,6 script Lucia#brasilis 4_F_BRZ_WOMAN,{
}
else {
//recall_completequest 9028;
- if (.@nQState1 > -1) erasequest 9028;
+ if (.@nQState) erasequest 9028;
completequest 9029;
mes "Did you come here to hunt ^FF0000Strange Hydra^000000s?";
next;
@@ -405,7 +403,7 @@ brasilis,187,162,5 script Candy Maker 4_M_BRZ_MAN1,{
mes "If you can't find him in the city, go to museum.";
mes "He's a vain person so he likes to act big.";
mes "He's probably wandering in the museum trying to show off to someone for sure.";
- set brazil_gua,1;
+ brazil_gua = 1;
setquest 2192;
close;
case 2:
@@ -450,7 +448,7 @@ brasilis,187,162,5 script Candy Maker 4_M_BRZ_MAN1,{
mes "[Candy Maker]";
mes "Look! It's the popular guarana candy.";
mes "Try to savor its amazing taste hey~ take it easy. hahaha!!";
- set brazil_gua,11;
+ brazil_gua = 11;
completequest 2200;
getitem 12414,1; //Guarana_Candy
getexp 70000,10000;
@@ -577,7 +575,7 @@ bra_in01,95,179,3 script Cherto 4_M_BRZ_MAN2,{
mes "[Cherto]";
mes "If Cherto tells you, you might get us into trouble. But you look like you really wanna know so let me give you a tip.";
mes "Come closer. Cherto will whisper so nobody can listen in.";
- set brazil_gua,2;
+ brazil_gua = 2;
close;
}
else if (brazil_gua == 2) {
@@ -607,7 +605,7 @@ bra_in01,95,179,3 script Cherto 4_M_BRZ_MAN2,{
mes "What about you?";
mes "Who is the guarana kid?";
mes "Will you figure out it? hohohhhhh~";
- set brazil_gua,3;
+ brazil_gua = 3;
changequest 2192,2193;
close;
}
@@ -646,7 +644,7 @@ bra_in01,95,179,3 script Cherto 4_M_BRZ_MAN2,{
mes "His name is Paje.";
mes "Take this note over to him.";
mes "He will show the solution for you and the kid.";
- set brazil_gua,5;
+ brazil_gua = 5;
changequest 2194,2195;
close;
}
@@ -702,7 +700,7 @@ brasilis,203,64,3 script Strange Kid#bra 4_M_KID1,{
mes "["+strcharinfo(0)+"]";
mes "He makes strange sound like an animals.";
mes "Should I ask advice from Cherto?";
- set brazil_gua,4;
+ brazil_gua = 4;
changequest 2193,2194;
close;
}
@@ -792,7 +790,7 @@ brasilis,203,64,3 script Strange Kid#bra 4_M_KID1,{
mes "["+strcharinfo(0)+"]";
mes "If I have this, I can make a guarana candy.";
mes "I better find that Candy Maker!";
- set brazil_gua,10;
+ brazil_gua = 10;
changequest 2199,2200;
getitem 6237,1; //Guarana_Fruit
close;
@@ -853,7 +851,7 @@ brasilis,56,224,7 script Mage Paje#bra 4_M_BIBI,{
next;
mes "[Mage Paje]";
mes "Good luck~!";
- set brazil_gua,6;
+ brazil_gua = 6;
changequest 2195,2196;
specialeffect2 EF_ASSUMPTIO;
close;
@@ -910,7 +908,7 @@ OnTouch:
next;
mes "[Toucan]";
mes "Fly fly far away. bbaaaeeeccckkk--!";
- set brazil_gua,7;
+ brazil_gua = 7;
changequest 2196,2197;
specialeffect2 EF_SEISMICWEAPON;
close2;
@@ -975,7 +973,7 @@ OnTouch_:
mes "I will give you a Jaguar's high blessing.";
mes "Go to monkey by flowing through the wind like a bee.";
mes "Let's meet again my friend!";
- set brazil_gua,8;
+ brazil_gua = 8;
changequest 2197,2198;
close2;
consumeitem 12016; //Speed_Up_Potion
@@ -1028,7 +1026,7 @@ bra_fild01,245,52,3 script Monkey#bra HIDDEN_NPC,{
next;
mes "["+strcharinfo(0)+"]";
mes "Good~ Now it's time to go back to the kid~!!";
- set brazil_gua,9;
+ brazil_gua = 9;
changequest 2198,2199;
close;
}
@@ -1072,7 +1070,7 @@ brasilis,203,286,3 script Botanist Karmen#bra 4_F_HUWOMAN,{
mes "[Karmen]";
mes "Ah, if you are interested more in the Water Lily story, find someone named Marta.";
mes "She is wise and knows lots of stories here in Brasilis.";
- set brazil_regia,1;
+ brazil_regia = 1;
setquest 2201;
close;
}
@@ -1093,7 +1091,7 @@ brasilis,203,286,3 script Botanist Karmen#bra 4_F_HUWOMAN,{
mes "[Karmen]";
mes "I am so grateful that I met you.";
mes "The water lily must truly be a lucky flower. hahaha";
- set brazil_regia,10;
+ brazil_regia = 10;
completequest 2207;
getexp 50000,10000;
close;
@@ -1239,7 +1237,7 @@ bra_in01,142,27,5 script Marta#bra 4_F_BRZ_INDOLD,{
mes "Did you enjoy this story?";
mes "If you want to listen to another story, just come to me.";
mes "If you don't mind playing with my grandson a ~ little. hoohoo.";
- set brazil_regia,2;
+ brazil_regia = 2;
close;
}
else if (brazil_regia > 1) {
@@ -1390,7 +1388,7 @@ bra_in01,145,27,3 script Brasilis Boy#bra 4_M_BRZ_INDIAN,{
mes "Did you enjoy this story?";
mes "If you want to listen to another story, just come to me.";
mes "If you don't mind playing with my grandson a ~ little. hoohoo.";
- set brazil_regia,2;
+ brazil_regia = 2;
close;
}
else if (brazil_regia > 1) {
@@ -1586,7 +1584,7 @@ brasilis,270,145,5 script Brasilis Girl#bra 4_F_BRZ_INDIAN,5,5,{
mes "[Jasira]";
mes "Give him 10 Banana and tell him that I really miss him.";
mes "Sorry for ignoring you before. Please, only you can help me!";
- set brazil_regia,3;
+ brazil_regia = 3;
changequest 2201,2202;
close;
}
@@ -1633,7 +1631,7 @@ brasilis,270,145,5 script Brasilis Girl#bra 4_F_BRZ_INDIAN,5,5,{
next;
mes "["+strcharinfo(0)+"]";
mes "Thanks Jasira!";
- set brazil_regia,6;
+ brazil_regia = 6;
changequest 2204,2205;
close;
}
@@ -1672,7 +1670,7 @@ brasilis,270,145,5 script Brasilis Girl#bra 4_F_BRZ_INDIAN,5,5,{
mes "[Jasira]";
mes "I know, I know! I'm the best...";
delitem 7553,1; //Lotus_Flower
- set brazil_regia,9;
+ brazil_regia = 9;
changequest 2206,2207;
setarray .@card[0],4195,4177,4188; //Leaf_Cat_Card, Dryad_Card, Leib_Olmai_Card
getitem2 5302,1,1,0,0,.@card[rand(3)],0,0,0; //Lotus_Flower_Hat
@@ -1766,7 +1764,7 @@ bra_dun02,67,205,5 script Recluse#bra 4_M_BRZ_JACI,3,3,{
mes "I got it.";
mes "As you can see, there are lots of Brasilis water lily around here.";
mes "If you make sure that you won't destroy them you can appreciate them as you wish.";
- set brazil_regia,4;
+ brazil_regia = 4;
changequest 2202,2203;
close;
}
@@ -1810,7 +1808,7 @@ bra_dun02,67,205,5 script Recluse#bra 4_M_BRZ_JACI,3,3,{
mes "Oh, can you tell that girl Jasira something for me?";
mes "Tell her that I am not the moon from the story, but I want to become the moon to shine only for her.";
delitem 11515,5; //Coconut
- set brazil_regia,7;
+ brazil_regia = 7;
changequest 2205,2206;
close;
}
@@ -1903,7 +1901,7 @@ bra_dun02,71,200,3 script Water lily#bra HIDDEN_NPC,{
mes "[Jasi]";
mes "If you bring 5 of those things, I will reconsider your suggestion.";
delitem 513,10; //Banana
- set brazil_regia,5;
+ brazil_regia = 5;
changequest 2203,2204;
next;
mes "["+strcharinfo(0)+"]";
@@ -1930,7 +1928,7 @@ bra_dun02,71,200,3 script Water lily#bra HIDDEN_NPC,{
close;
}
mes "- You take a beautiful water lily carefully in your hands. -";
- set brazil_regia,8;
+ brazil_regia = 8;
getitem 7553,1; //Lotus_Flower
close;
}
@@ -2133,7 +2131,7 @@ brasilis,185,246,5 script Pedro#bra 1_M_SIZ,{
next;
mes "[Fabio]";
mes "Maybe you're just scared...";
- set brazil_ghost,1;
+ brazil_ghost = 1;
setquest 2208;
close;
}
@@ -2231,8 +2229,8 @@ bra_in01,149,184,3 script Door#bra CLEAR_NPC,{
mes "["+strcharinfo(0)+"]";
mes .@input$;
next;
- set .@braspell$,"Mother the door won't open!";
- set .@chkspell,compare(.@braspell$,.@input$);
+ .@braspell$ = "Mother the door won't open!";
+ .@chkspell = compare(.@braspell$,.@input$);
if (!.@chkspell) {
mes "Seems like you said something wrong.";
close;
@@ -2272,7 +2270,7 @@ bra_in01,149,184,3 script Door#bra CLEAR_NPC,{
next;
specialeffect2 EF_VENOMDUST;
mes "Faint laughing can be heard off in the direction of the toilet.";
- set brazil_ghost,3;
+ brazil_ghost = 3;
changequest 2208,60351;
close;
}
@@ -2333,8 +2331,8 @@ bra_in01,144,187,3 script Toilet#bra CLEAR_NPC,{
mes "["+strcharinfo(0)+"]";
mes .@input$;
next;
- set .@braspell$,"Mother the water is flooding!";
- set .@chkspell,compare(.@braspell$,.@input$);
+ .@braspell$ = "Mother the water is flooding!";
+ .@chkspell = compare(.@braspell$,.@input$);
if (!.@chkspell) {
mes "Seems like you said something wrong.";
close;
@@ -2362,7 +2360,7 @@ bra_in01,144,187,3 script Toilet#bra CLEAR_NPC,{
next;
specialeffect2 EF_VENOMDUST;
mes "Faint laughing can be heard off in the direction of the faucet.";
- set brazil_ghost,4;
+ brazil_ghost = 4;
changequest 60351,60352;
close;
}
@@ -2406,8 +2404,8 @@ bra_in01,134,189,3 script Faucet#bra CLEAR_NPC,{
mes "["+strcharinfo(0)+"]";
mes .@input$;
next;
- set .@braspell$,"Mother the drought has started!";
- set .@chkspell,compare(.@braspell$,.@input$);
+ .@braspell$ = "Mother the drought has started!";
+ .@chkspell = compare(.@braspell$,.@input$);
if (!.@chkspell) {
mes "Seems like you said something wrong.";
close;
@@ -2441,7 +2439,7 @@ bra_in01,134,189,3 script Faucet#bra CLEAR_NPC,{
next;
specialeffect2 EF_VENOMDUST;
mes "Faint laughing can be heard off in the direction of the carpet.";
- set brazil_ghost,5;
+ brazil_ghost = 5;
changequest 60352,60353;
close;
}
@@ -2481,8 +2479,8 @@ bra_in01,138,184,3 script Carpet#bra CLEAR_NPC,{
mes "["+strcharinfo(0)+"]";
mes .@input$;
next;
- set .@braspell$,"Mother where are my friends?";
- set .@chkspell,compare(.@braspell$,.@input$);
+ .@braspell$ = "Mother where are my friends?";
+ .@chkspell = compare(.@braspell$,.@input$);
if (!.@chkspell) {
mes "Seems like you said something wrong.";
close;
@@ -2523,7 +2521,7 @@ bra_in01,138,184,3 script Carpet#bra CLEAR_NPC,{
next;
specialeffect2 EF_VENOMDUST;
mes "Faint laughing can be heard off in the direction of the mirror.";
- set brazil_ghost,6;
+ brazil_ghost = 6;
changequest 60353,60354;
close;
}
@@ -2563,8 +2561,8 @@ bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
mes "["+strcharinfo(0)+"]";
mes .@input$;
next;
- set .@braspell$,"Where are you mom?";
- set .@chkspell,compare(.@braspell$,.@input$);
+ .@braspell$ = "Where are you mom?";
+ .@chkspell = compare(.@braspell$,.@input$);
if (!.@chkspell) {
mes "Seems like you said something wrong.";
close;
@@ -2608,8 +2606,8 @@ bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
switch(select("Take the eye bandage off.:Run away~.")) {
case 1:
while(1) {
- set .@cpudice,rand(1,6);
- set .@pcdice,rand(1,6);
+ .@cpudice = rand(1,6);
+ .@pcdice = rand(1,6);
if (.@cpudice != .@pcdice) {
emotion (57+.@cpudice),0,"Ghost#bra";
emotion (57+.@cpudice),1;
@@ -2620,7 +2618,7 @@ bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
specialeffect2 EF_DEVIL;
mes "[Ghost]";
mes "^FF0000Go away!^000000";
- set brazil_ghost,1;
+ brazil_ghost = 1;
changequest 60354,2208;
percentheal -50,-50;
close2;
@@ -2633,7 +2631,7 @@ bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
mes "[Ghost]";
mes "^FF0000Ahh!^000000";
mes "The Ghost disappeared into the toilet.";
- set brazil_ghost,7;
+ brazil_ghost = 7;
changequest 60354,60355;
close2;
disablenpc "Ghost#bra";
@@ -2643,7 +2641,7 @@ bra_in01,151,180,3 script Mirror#bra CLEAR_NPC,{
case 2:
mes "You run away from the ghost.";
close2;
- set brazil_ghost,1;
+ brazil_ghost = 1;
changequest 60354,2208;
warp "bra_in01",12,183;
disablenpc "Ghost#bra";
@@ -2714,7 +2712,7 @@ bra_in01,7,181,5 script Curator#bra 4_M_BRZ_MAN2,{
next;
mes "The curator looks around calmly then opens the door.";
delitem 11515,1; //Coconut
- set brazil_ghost,2;
+ brazil_ghost = 2;
close2;
warp "bra_in01",138,176;
end;
@@ -2800,7 +2798,7 @@ bra_in01,206,188,1 script Open Manhole#todunbra CLEAR_NPC,{
mes "[Ghost]";
mes "I guess now I can finally rest in peace.";
mes "Thank you friend.";
- set brazil_ghost,8;
+ brazil_ghost = 8;
//completequest 2208;
completequest 60355;
getexp 90000,0;
@@ -2849,8 +2847,7 @@ OnInit:
// Iara :: iara.sc
//============================================================
brasilis,315,334,5 script Shaman#nk 4_F_BRZ_INDOLD,{
- set .@iara_re,checkquest(4135,PLAYTIME);
- if ((.@iara_re == 0) || (.@iara_re == 1)) {
+ if (questprogress(4135,PLAYTIME) == 1) {
mes "[Anori]";
mes "I'm still preparing.";
mes "I don't require your help at this time.";
@@ -2858,9 +2855,8 @@ brasilis,315,334,5 script Shaman#nk 4_F_BRZ_INDOLD,{
close;
}
else {
- if (checkquest(4135) > 1) erasequest 4135;
- set .@iara_q,checkquest(4133);
- if ((.@iara_q == 0) || (.@iara_q == 1)) {
+ if (questprogress(4135) == 2) erasequest 4135;
+ if (questprogress(4133) == 1) {
mes "[Anori]";
mes "To block Iara ";
mes "seducing the tribes";
@@ -2914,8 +2910,7 @@ brasilis,315,334,5 script Shaman#nk 4_F_BRZ_INDOLD,{
mes "The tribe is facing a major threat.";
close;
}
- set .@re_q,checkquest(4134);
- if (.@re_q == 2) {
+ if (questprogress(4134) == 2) {
mes "[Anori]";
mes "you are...";
mes "the adventurer who came for the";
@@ -3138,7 +3133,7 @@ bra_fild01,188,301,5 script Native Warrior#nk 4_M_BRZ_INDIAN,{
mes "[Native Warrior]";
mes "When will she come out of the waterfall again...?";
next;
- if ((checkquest(4133) >= 0) || (checkquest(4134) >= 0)) {
+ if (questprogress(4133) || questprogress(4134)) {
mes "[" + strcharinfo(0) + "]";
mes "(Wh...what's this guy?)";
}
diff --git a/npc/re/quests/quests_dewata.txt b/npc/re/quests/quests_dewata.txt
index e3d1a7302..db78bce54 100644
--- a/npc/re/quests/quests_dewata.txt
+++ b/npc/re/quests/quests_dewata.txt
@@ -46,7 +46,7 @@ OnTouch:
mes "In my younger years I could have easily solved the problem but this old man's mind cannot figure out what's missing.";
next;
mes "The conversation trails off and you don't hear any more.";
- set dew_legend,1;
+ dew_legend = 1;
close;
}
end;
@@ -77,7 +77,7 @@ OnTouch:
mes "Could it happen for sure?";
mes "If so, I will give everything";
mes "to support them...";
- set dew_legend,4;
+ dew_legend = 4;
close;
}
end;
@@ -119,7 +119,7 @@ dew_in01,22,48,3 script Sage Kasyapa#dew 4_M_DEWZATIMAN,{
mes "[Sage Kasyapa]";
mes "Ah, the feather......!";
mes "Instead of talking to me, why don't you talk to our tribe's leader, ^0000FFPaiko^000000.";
- set dew_legend,2;
+ dew_legend = 2;
close;
} else if (dew_legend == 2) {
mes "[Sage Kasyapa]";
@@ -182,7 +182,7 @@ dew_in01,22,48,3 script Sage Kasyapa#dew 4_M_DEWZATIMAN,{
close;
}
}
- set dew_legend,8;
+ dew_legend = 8;
getitem 6406,1; //Cendrawasih_SF
completequest 9157;
erasequest 9157;
@@ -247,7 +247,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
next;
mes "[Tribal Chief Paiko]";
mes "It's not something that a stranger like you could understand so make like a tree, and get out of here.";
- set dew_legend,3;
+ dew_legend = 3;
close;
} else if (dew_legend == 3) {
mes "[Tribal Chief Paiko]";
@@ -296,7 +296,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
mes "The symbol of the Jaty Tribe is also a famous mystical creature.";
mes "Find 15 ^006400Cendrawasih Feather^000000s and bring them to me.";
mes "Our faith is in you, stranger.";
- set dew_legend,5;
+ dew_legend = 5;
setquest 9155;
close;
} else if (dew_legend == 5) {
@@ -309,7 +309,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
mes "Find 15 ^006400Cendrawasih Feather^000000s and bring them to me.";
close;
}
- set dew_legend,6;
+ dew_legend = 6;
delitem 6405,15; //Cendrawasih_F
changequest 9155,9156;
mes "[Tribal Chief Paiko]";
@@ -329,7 +329,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
next;
mes "[Tribal Chief Paiko]";
mes "Ah, also you should go see Sage ^0000FFKasyapa^000000 who really wants to reward you with something.";
- set dew_legend,7;
+ dew_legend = 7;
changequest 9156,9157;
close;
} else if (dew_legend == 7) {
@@ -375,7 +375,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
mes "[Tribal Chief Paiko]";
mes "You may be tempted by the aroma of our ^006400Satay^000000 and you may eat one but, if you eat more than that you won't be able to share the ^006400Satay^000000";
mes "with our village friends.";
- set dew_legend,9;
+ dew_legend = 9;
getitem 11533,2; //Satay
setquest 9158;
close;
@@ -393,7 +393,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
next;
mes "[Tribal Chief Paiko]";
mes "If you are attracted by the aroma of the ^006400Satay^000000, you may eat one but, if you eat more you won't be able to share ^006400Satay^000000 with our friends.";
- set dew_legend,11;
+ dew_legend = 11;
getitem 11533,2; //Satay
changequest 9159,9160;
close;
@@ -415,7 +415,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
next;
mes "[Tribal Chief Paiko]";
mes "And just like before, don't give into the smell and try not to eat the ^006400Satay^000000.";
- set dew_legend,13;
+ dew_legend = 13;
getitem 11533,2; //Satay
changequest 9161,9162;
close;
@@ -435,7 +435,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
next;
mes "[Tribal Chief Paiko]";
mes "And just like before, don't give into the smell and try not to eat the ^006400Satay^000000.";
- set dew_legend,15;
+ dew_legend = 15;
getitem 11533,2; //Satay
changequest 9163,9164;
close;
@@ -472,7 +472,7 @@ dew_in01,15,49,4 script Tribal Chief Paiko#dew 4_M_DEWZATICHIEF,{
mes "[Tribal Chief Paiko]";
mes "Made with our tribe's secret marinade try the ^006400Satay^000000.";
mes "It was made with all our heart, especially for you, but don't forget to share it with friends.";
- set dew_legend,17;
+ dew_legend = 17;
getitem 18520,1; //Jaty_C
getitem 11533,5; //Satay
completequest 9165;
@@ -539,7 +539,7 @@ dew_fild01,78,288,6 script Jaty Tribe Warrior#dew 4_M_DEWZATIMAN,{
mes "My mouth is already watering thank you.";
mes "There is something I would like to share with you regarding our tribe.";
delitem 11533,1; //Satay
- set dew_legend,10;
+ dew_legend = 10;
changequest 9158,9159;
next;
mes "[Jaty Tribe Warrior]";
@@ -580,7 +580,7 @@ dew_fild01,185,300,6 script Tribe Manager#dew 4_M_DEWZATIMAN,{
mes "Please give my regards";
mes "to our Tribe Leader.";
delitem 11533,1; //Satay
- set dew_legend,12;
+ dew_legend = 12;
changequest 9160,9161;
next;
mes "[Tribe Manager]";
@@ -613,7 +613,7 @@ dewata,235,56,4 script Gatekeeper of Krakatau#1 4_M_DEWOLDMAN,{
mes "I cannot allow anyone to go in there.";
next;
if (dew_legend == 13 && countitem(11533))
- set .@menu$, ":^0000FFTribal Chief Paiko^000000";
+ .@menu$ = ":^0000FFTribal Chief Paiko^000000";
switch(select("Allow me through:I don't want to go in"+.@menu$)) {
case 1:
if (dew_legend < 8) {
@@ -650,7 +650,7 @@ dewata,235,56,4 script Gatekeeper of Krakatau#1 4_M_DEWOLDMAN,{
mes "I was slightly hungry";
mes "so this should fill me up.";
delitem 11533,1; //Satay
- set dew_legend,14;
+ dew_legend = 14;
changequest 9162,9163;
next;
mes "[Gatekeeper of Krakatau Volcano]";
@@ -716,7 +716,7 @@ dewata,78,192,6 script Borobudur Temple Manager 4_M_DEWMAN,{
mes "Good~~ This is the same taste I remember.";
mes "To give my thanks I will pass along a story that may interest you";
delitem 11533,1; //Satay
- set dew_legend,16;
+ dew_legend = 16;
changequest 9164,9165;
next;
mes "[Borobudur Temple Manager]";
@@ -754,7 +754,7 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
close;
}
}
- set .@playtime, checkquest(5044,PLAYTIME);
+ .@playtime = questprogress(5044,PLAYTIME);
if (.@playtime == 0) {
mes "[Memo]";
mes "Will you help me again tomorrow?";
@@ -844,7 +844,7 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
next;
mes "[Memo]";
mes "This guy has never broken a promise for 10 years, so he must have a really good reason not to come.";
- set dew_drink,1;
+ dew_drink = 1;
setquest 5035;
next;
mes "[Memo]";
@@ -884,7 +884,7 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
next;
mes "[Memo]";
mes "If it is not, wait there and bring ^FF000030 bottles of oil^000000 to me.";
- set dew_drink,6;
+ dew_drink = 6;
changequest 5040,5041;
close;
} else if (dew_drink == 6) {
@@ -910,17 +910,17 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
mes "Excuse me, but I have an urgent matter to attend to. Can you wait for a while and talk to me when I'm done?";
delitem 6401,30; //Palm_O
changequest 5042,5043;
- set dew_drink,8;
+ dew_drink = 8;
close;
} else if (dew_drink == 8) {
- if (checkquest(5043,PLAYTIME) == 0) {
+ if (questprogress(5043,PLAYTIME) == 1) {
mes "[Memo]";
mes "... ... ...";
emotion e_swt2;
next;
mes "- Memo is making an ark. -";
close;
- } else if (checkquest(5043,PLAYTIME) == -1) {
+ } else if (!questprogress(5043,PLAYTIME)) {
mes "- There is error in the quest. -";
close;
}
@@ -958,7 +958,7 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
mes "[Memo]";
mes "You really did a great job. I like you because you are different from today's youngins.";
changequest 5043,5044;
- set dew_drink,10;
+ dew_drink = 10;
getexp 50000,10000;
getitem 617,1; //Old_Violet_Box
next;
@@ -967,9 +967,9 @@ dewata,109,262,4 script Memo#dew_drink 4_M_DEWOLDMAN,{
mes "I will pay you for what you do for me.";
close;
} else if (dew_drink == 10) {
- for(set .@i,0; .@i<7; set .@i,.@i+1)
- if (checkquest(5045+.@i) > -1)
- set .@j, .@j | (1<<.@i);
+ for(.@i = 0; .@i<7; ++.@i)
+ if (questprogress(5045+.@i))
+ .@j |= (1<<.@i);
if (.@j == 0) {
mes "[Memo]";
mes strcharinfo(0)+", to what do I owe the pleasure?";
@@ -1115,7 +1115,7 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
next;
mes "[Lero]";
mes "Poby might in ^0000FFPalm Forest^000000. The crop is best at the southern part of the forest.";
- set dew_drink,2;
+ dew_drink = 2;
changequest 5035,5036;
close;
} else if (dew_drink == 2) {
@@ -1159,21 +1159,21 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
next;
mes "[Lero]";
mes "You can ask Poby about the best method of gathering nuts where you met him in the forest. He should be able to teach you the technique.";
- set dew_drink,4;
+ dew_drink = 4;
changequest 5037,5038;
next;
mes "[Lero]";
mes "Although he is lazy and rather careless, he is the best worker.";
close;
} else if (dew_drink == 4) {
- if (checkquest(5038) > -1) {
+ if (questprogress(5038)) {
mes "[Lero]";
mes "You can ask Poby about the best method of gathering nuts where you met him in the forest. He should be able to teach you the technique.";
next;
mes "[Lero]";
mes "Although he is lazy and rather careless, he is the best worker.";
close;
- } else if (checkquest(5039) > -1) {
+ } else if (questprogress(5039)) {
if (countitem(6402) < 60) {
mes "[Lero]";
mes "Did you gather the nuts already?";
@@ -1198,7 +1198,7 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
mes "[Lero]";
mes "It takes some time, so go back to Mr. Memo and tell him the situation. Also tell him that I'm sorry for the delay.";
delitem 6402,60; //Oil_Palm_F
- set dew_drink,5;
+ dew_drink = 5;
changequest 5039,5040;
close;
}
@@ -1222,11 +1222,11 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
mes "[Lero]";
mes "Oh, tell Mr. Memo that I'm sorry for the late delivery, and explain that it wasn't my fault.";
changequest 5041,5042;
- set dew_drink,7;
+ dew_drink = 7;
getitem 6401,30; //Palm_O
close;
} else if (dew_drink == 7) {
- if (checkquest(5042) > -1 && countitem(6401) > 29) {
+ if (questprogress(5042) && countitem(6401) > 29) {
mes "[Lero]";
mes "It is heavier than you might think, so be careful when carrying it.";
next;
@@ -1235,7 +1235,7 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
mes "Oh, tell Mr. Memo that I'm sorry for the late delivery, and explain that it wasn't my fault.";
close;
} else {
- set .@num, 30 - countitem(6401);
+ .@num = 30 - countitem(6401);
if (checkweight(6401,.@num) == 0) {
mes "[Lero]";
mes "You are carrying too much right now to continue.";
@@ -1265,9 +1265,9 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
emotion e_ok;
close;
} else if (dew_drink == 10) {
- for(set .@i,0; .@i<7; set .@i,.@i+1)
- if (checkquest(5045+.@i) > -1)
- set .@j, .@j | (1<<.@i);
+ for(.@i = 0; .@i<7; ++.@i)
+ if (questprogress(5045+.@i))
+ .@j |= (1<<.@i);
if (.@j == 0) {
mes "[Lero]";
mes "What happened? I didn't get a memo from Mr. Memo that he was going to send someone here.";
@@ -1276,7 +1276,7 @@ dew_fild01,114,275,4 script Lero#dew_drink 4_M_DEWMAN,{
mes "[Lero]";
mes "Hey, I've been waiting for you. I didn't know that Poby's injury would make my life so difficult.";
next;
- set .@quest,rand(3);
+ .@quest = rand(3);
mes "[Lero]";
mes "I'm ashamed to ask you this, but can you bring ^0000FF"+(20+(.@quest*10))+" pieces of oil palm nuts^000000 please?";
changequest 5045,5046+(.@quest*2);
@@ -1377,7 +1377,7 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
mes "[Poby]";
mes "Ah! Sorry. Tell Mr. Lero that I will go back if I can find a way to move.";
changequest 5036,5037;
- set dew_drink,3;
+ dew_drink = 3;
next;
mes "[Poby]";
mes "I can't move at all 'cuz of this backache...";
@@ -1391,7 +1391,7 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
emotion e_swt2;
close;
} else if (dew_drink == 4) {
- if (checkquest(5039) > -1) {
+ if (questprogress(5039)) {
if (countitem(6402) > 59) { // Oil_Palm_F
mes "[Poby]";
mes "You got all the fruits. Bring them to Mr. Lero.";
@@ -1440,12 +1440,12 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
mes "[Poby]";
mes "Oh! "+strcharinfo(0)+", we meet again. What's going on?";
- if (checkquest(5047) > -1)
- set .@count,10;
- else if (checkquest(5049) > -1)
- set .@count,15;
- else if (checkquest(5051) > -1)
- set .@count,20;
+ if (questprogress(5047))
+ .@count = 10;
+ else if (questprogress(5049))
+ .@count = 15;
+ else if (questprogress(5051))
+ .@count = 20;
if (.@count) {
if (countitem(6401) >= .@count) {
// Custom translation
@@ -1453,7 +1453,7 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
mes "Good work! Be careful while delivering them~";
close;
}
- set .@new_count, .@count-countitem(6401);
+ .@new_count = .@count-countitem(6401);
mes "- You explain the situation. -";
next;
mes "[Poby]";
@@ -1501,10 +1501,10 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
close;
}
- if (checkquest(5039) > -1) set .@count,60;
- else if (checkquest(5046) > -1) set .@count,20;
- else if (checkquest(5048) > -1) set .@count,30;
- else if (checkquest(5050) > -1) set .@count,40;
+ if (questprogress(5039)) .@count = 60;
+ else if (questprogress(5046)) .@count = 20;
+ else if (questprogress(5048)) .@count = 30;
+ else if (questprogress(5050)) .@count = 40;
if (.@count == 0) {
mes "There's a palm tree";
mes "facing the cool wind.";
@@ -1527,12 +1527,12 @@ dew_fild01,259,48,4 script Poby#dew_drink 4_M_DEWBOY,{
switch(select("Shake the tree:Kick the tree")) {
case 1:
specialeffect EF_HITLINE2;
- set .@message$, "As you shake the palm tree...";
+ .@message$ = "As you shake the palm tree...";
mes "You shake the palm tree.";
break;
case 2:
specialeffect EF_BASH;
- set .@message$, "As you give the palm tree a quick kick to its proverbial shin...";
+ .@message$ = "As you give the palm tree a quick kick to its proverbial shin...";
mes "You kick the palm tree swiftly with all you might.";
break;
}
@@ -1701,7 +1701,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "Hahahahahahahahaha...!!!";
next;
mes "- The old man started to laugh like a crazy person after hearing the name of the Island. You decide to ask a little bit later. -";
- set dew_weapon,1;
+ dew_weapon = 1;
close;
} else {
mes "[Gatti]";
@@ -1790,7 +1790,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "Let me ask you a favor. If you get the recognition first, please don't forget to visit me.";
close2;
setquest 5052;
- set dew_weapon,2;
+ dew_weapon = 2;
end;
}
mes "[Gatti]";
@@ -1811,7 +1811,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "[Gatti]";
mes "The weapon material that I was looking for is ^0000FFComodo Leather^000000. Bring me 100 of them, and I will make you a fancy weapon.";
setquest 5053;
- set dew_weapon,3;
+ dew_weapon = 3;
next;
mes "[Gatti]";
mes "I heard Comodo Dragons are very powerful monsters. Please be careful.";
@@ -1861,7 +1861,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "[Gatti]";
mes "I'm so eager to make the weapon in the weapon blueprint.";
changequest 5052,5053;
- set dew_weapon,3;
+ dew_weapon = 3;
next;
mes "[Gatti]";
mes "Please, before my passion fades out.";
@@ -1875,7 +1875,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "By the looks of your walk, you must have brought me 100 Comodo Leather. Hand it over to me.";
delitem 6403,100;
erasequest 5053;
- set dew_weapon,4;
+ dew_weapon = 4;
next;
mes "- Gatti takes the Comodo Leather from you. -";
close;
@@ -1909,7 +1909,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
next;
mes "- Mastersmith Gatti is enjoying to process the Leathers you've brought to make the weapon. -";
mes "- You should wait a little while. -";
- set dew_weapon,5;
+ dew_weapon = 5;
close;
} else if (dew_weapon == 5) {
mes "["+strcharinfo(0)+"]";
@@ -1950,7 +1950,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "[Gatti]";
mes "I'll make you a best weapon ever.";
setquest 5054;
- set dew_weapon,6;
+ dew_weapon = 6;
getitem 6404,1; //Caress_H
next;
mes "[Gatti]";
@@ -1997,7 +1997,7 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
mes "[Gatti]";
mes "Now, I learned how to make the weapon, ask me any time if you need it.";
erasequest 5054;
- set dew_weapon,7;
+ dew_weapon = 7;
delitem 6403,100; //Comodo_L
delitem 999,20; //Steel
delitem 984,10; //Oridecon
@@ -2100,106 +2100,106 @@ dew_fild01,127,240,4 script Gatti#weapon 2_M_OLDBLSMITH,{
Zeny -= 100000;
// Socket 3
- set .@i, rand(4300);
- if (.@i < 150) set .@s3,4700; // STR + 1
- else if (.@i < 300) set .@s3,4730; // AGI + 1
- else if (.@i < 450) set .@s3,4740; // VIT + 1
- else if (.@i < 600) set .@s3,4710; // INT + 1
- else if (.@i < 750) set .@s3,4720; // DEX + 1
- else if (.@i < 900) set .@s3,4750; // LUK + 1
- else if (.@i < 1050) set .@s3,4761; // MATK + 2%
- else if (.@i < 1200) set .@s3,4764; // CRIT + 5
- else if (.@i < 1350) set .@s3,4786; // MDEF + 2
- else if (.@i < 1500) set .@s3,4791; // DEF + 3
- else if (.@i < 1650) set .@s3,4795; // HP + 100
- else if (.@i < 1750) set .@s3,4800; // SP + 50
- else if (.@i < 1850) set .@s3,4797; // HP + 300
- else if (.@i < 1950) set .@s3,4793; // DEF + 9
- else if (.@i < 2050) set .@s3,4788; // MDEF + 6
- else if (.@i < 2150) set .@s3,4752; // LUK + 3
- else if (.@i < 2250) set .@s3,4722; // DEX + 3
- else if (.@i < 2350) set .@s3,4712; // INT + 3
- else if (.@i < 2450) set .@s3,4742; // VIT + 3
- else if (.@i < 2550) set .@s3,4732; // AGI + 3
- else if (.@i < 2650) set .@s3,4702; // STR + 3
- else if (.@i < 2700) set .@s3,4703; // STR + 4
- else if (.@i < 2750) set .@s3,4733; // AGI + 4
- else if (.@i < 2800) set .@s3,4743; // VIT + 4
- else if (.@i < 2850) set .@s3,4713; // INT + 4
- else if (.@i < 2900) set .@s3,4723; // DEX + 4
- else if (.@i < 2950) set .@s3,4753; // LUK + 4
- else if (.@i < 3000) set .@s3,4789; // MDEF + 8
- else if (.@i < 3001) set .@s3,4704; // STR + 5
- else if (.@i < 3002) set .@s3,4734; // AGI + 5
- else if (.@i < 3003) set .@s3,4744; // VIT + 5
- else if (.@i < 3004) set .@s3,4714; // INT + 5
- else if (.@i < 3005) set .@s3,4724; // DEX + 5
- else if (.@i < 3006) set .@s3,4754; // LUK + 5
- else if (.@i < 3007) set .@s3,4806; // MATK + 3%
- else if (.@i < 3008) set .@s3,4765; // CRIT + 7
- else if (.@i < 3009) set .@s3,4766; // ATK + 2%
- else if (.@i < 3010) set .@s3,4801; // SP + 100
- else if (.@i < 3140) set .@s3,4796; // HP + 200
- else if (.@i < 3270) set .@s3,4792; // DEF + 6
- else if (.@i < 3400) set .@s3,4787; // MDEF + 4
- else if (.@i < 3530) set .@s3,4751; // LUK + 2
- else if (.@i < 3660) set .@s3,4721; // DEX + 2
- else if (.@i < 3790) set .@s3,4711; // INT + 1
- else if (.@i < 3920) set .@s3,4741; // VIT + 2
- else if (.@i < 4050) set .@s3,4731; // AGI + 2
- else if (.@i < 4180) set .@s3,4701; // STR + 2
- else set .@s3,0;
+ .@i = rand(4300);
+ if (.@i < 150) .@s3 = 4700; // STR + 1
+ else if (.@i < 300) .@s3 = 4730; // AGI + 1
+ else if (.@i < 450) .@s3 = 4740; // VIT + 1
+ else if (.@i < 600) .@s3 = 4710; // INT + 1
+ else if (.@i < 750) .@s3 = 4720; // DEX + 1
+ else if (.@i < 900) .@s3 = 4750; // LUK + 1
+ else if (.@i < 1050) .@s3 = 4761; // MATK + 2%
+ else if (.@i < 1200) .@s3 = 4764; // CRIT + 5
+ else if (.@i < 1350) .@s3 = 4786; // MDEF + 2
+ else if (.@i < 1500) .@s3 = 4791; // DEF + 3
+ else if (.@i < 1650) .@s3 = 4795; // HP + 100
+ else if (.@i < 1750) .@s3 = 4800; // SP + 50
+ else if (.@i < 1850) .@s3 = 4797; // HP + 300
+ else if (.@i < 1950) .@s3 = 4793; // DEF + 9
+ else if (.@i < 2050) .@s3 = 4788; // MDEF + 6
+ else if (.@i < 2150) .@s3 = 4752; // LUK + 3
+ else if (.@i < 2250) .@s3 = 4722; // DEX + 3
+ else if (.@i < 2350) .@s3 = 4712; // INT + 3
+ else if (.@i < 2450) .@s3 = 4742; // VIT + 3
+ else if (.@i < 2550) .@s3 = 4732; // AGI + 3
+ else if (.@i < 2650) .@s3 = 4702; // STR + 3
+ else if (.@i < 2700) .@s3 = 4703; // STR + 4
+ else if (.@i < 2750) .@s3 = 4733; // AGI + 4
+ else if (.@i < 2800) .@s3 = 4743; // VIT + 4
+ else if (.@i < 2850) .@s3 = 4713; // INT + 4
+ else if (.@i < 2900) .@s3 = 4723; // DEX + 4
+ else if (.@i < 2950) .@s3 = 4753; // LUK + 4
+ else if (.@i < 3000) .@s3 = 4789; // MDEF + 8
+ else if (.@i < 3001) .@s3 = 4704; // STR + 5
+ else if (.@i < 3002) .@s3 = 4734; // AGI + 5
+ else if (.@i < 3003) .@s3 = 4744; // VIT + 5
+ else if (.@i < 3004) .@s3 = 4714; // INT + 5
+ else if (.@i < 3005) .@s3 = 4724; // DEX + 5
+ else if (.@i < 3006) .@s3 = 4754; // LUK + 5
+ else if (.@i < 3007) .@s3 = 4806; // MATK + 3%
+ else if (.@i < 3008) .@s3 = 4765; // CRIT + 7
+ else if (.@i < 3009) .@s3 = 4766; // ATK + 2%
+ else if (.@i < 3010) .@s3 = 4801; // SP + 100
+ else if (.@i < 3140) .@s3 = 4796; // HP + 200
+ else if (.@i < 3270) .@s3 = 4792; // DEF + 6
+ else if (.@i < 3400) .@s3 = 4787; // MDEF + 4
+ else if (.@i < 3530) .@s3 = 4751; // LUK + 2
+ else if (.@i < 3660) .@s3 = 4721; // DEX + 2
+ else if (.@i < 3790) .@s3 = 4711; // INT + 1
+ else if (.@i < 3920) .@s3 = 4741; // VIT + 2
+ else if (.@i < 4050) .@s3 = 4731; // AGI + 2
+ else if (.@i < 4180) .@s3 = 4701; // STR + 2
+ else .@s3 = 0;
// Socket 4
- set .@j, rand(4100);
- if (.@j < 130) set .@s4,4700; // STR + 1
- else if (.@j < 260) set .@s4,4730; // AGI + 1
- else if (.@j < 390) set .@s4,4740; // VIT + 1
- else if (.@j < 520) set .@s4,4710; // INT + 1
- else if (.@j < 650) set .@s4,4720; // DEX + 1
- else if (.@j < 780) set .@s4,4750; // LUK + 1
- else if (.@j < 910) set .@s4,4760; // MATK + 1%
- else if (.@j < 1040) set .@s4,4764; // CRIT + 5
- else if (.@j < 1170) set .@s4,4766; // ATK + 2%
- else if (.@j < 1300) set .@s4,4786; // MDEF + 2
- else if (.@j < 1430) set .@s4,4791; // DEF + 3
- else if (.@j < 1560) set .@s4,4795; // HP + 100
- else if (.@j < 1690) set .@s4,4800; // SP + 50
- else if (.@j < 1790) set .@s4,4796; // HP + 200
- else if (.@j < 1890) set .@s4,4792; // DEF + 6
- else if (.@j < 1990) set .@s4,4787; // MDEF + 4
- else if (.@j < 2090) set .@s4,4767; // ATK + 3%
- else if (.@j < 2190) set .@s4,4765; // CRIT + 7
- else if (.@j < 2290) set .@s4,4751; // LUK + 2
- else if (.@j < 2390) set .@s4,4721; // DEX + 2
- else if (.@j < 2490) set .@s4,4711; // INT + 2
- else if (.@j < 2590) set .@s4,4741; // VIT + 2
- else if (.@j < 2690) set .@s4,4731; // AGI + 2
- else if (.@j < 2790) set .@s4,4701; // STR + 2
- else if (.@j < 2860) set .@s4,4702; // STR + 3
- else if (.@j < 2930) set .@s4,4732; // AGI + 3
- else if (.@j < 3000) set .@s4,4742; // VIT + 3
- else if (.@j < 3140) set .@s4,4712; // INT + 3
- else if (.@j < 3210) set .@s4,4722; // DEX + 3
- else if (.@j < 3280) set .@s4,4788; // MDEF + 8
- else if (.@j < 3350) set .@s4,4793; // DEF + 9
- else if (.@j < 3420) set .@s4,4797; // HP + 300
- else if (.@j < 3490) set .@s4,4801; // SP + 100
- else if (.@j < 3540) set .@s4,4798; // HP + 400
- else if (.@j < 3590) set .@s4,4789; // MDEF + 8
- else if (.@j < 3640) set .@s4,4753; // LUK + 4
- else if (.@j < 3690) set .@s4,4723; // DEX + 4
- else if (.@j < 3740) set .@s4,4713; // INT + 4
- else if (.@j < 3790) set .@s4,4743; // VIT + 4
- else if (.@j < 3840) set .@s4,4733; // AGI + 4
- else if (.@j < 3890) set .@s4,4703; // STR + 4
- else if (.@j < 3900) set .@s4,4704; // STR + 5
- else if (.@j < 3910) set .@s4,4734; // AGI + 5
- else if (.@j < 3920) set .@s4,4744; // VIT + 5
- else if (.@j < 3930) set .@s4,4714; // INT + 5
- else if (.@j < 3940) set .@s4,4724; // DEX + 5
- else if (.@j < 3950) set .@s4,4754; // LUK + 5
- else set .@s4,0;
+ .@j = rand(4100);
+ if (.@j < 130) .@s4 = 4700; // STR + 1
+ else if (.@j < 260) .@s4 = 4730; // AGI + 1
+ else if (.@j < 390) .@s4 = 4740; // VIT + 1
+ else if (.@j < 520) .@s4 = 4710; // INT + 1
+ else if (.@j < 650) .@s4 = 4720; // DEX + 1
+ else if (.@j < 780) .@s4 = 4750; // LUK + 1
+ else if (.@j < 910) .@s4 = 4760; // MATK + 1%
+ else if (.@j < 1040) .@s4 = 4764; // CRIT + 5
+ else if (.@j < 1170) .@s4 = 4766; // ATK + 2%
+ else if (.@j < 1300) .@s4 = 4786; // MDEF + 2
+ else if (.@j < 1430) .@s4 = 4791; // DEF + 3
+ else if (.@j < 1560) .@s4 = 4795; // HP + 100
+ else if (.@j < 1690) .@s4 = 4800; // SP + 50
+ else if (.@j < 1790) .@s4 = 4796; // HP + 200
+ else if (.@j < 1890) .@s4 = 4792; // DEF + 6
+ else if (.@j < 1990) .@s4 = 4787; // MDEF + 4
+ else if (.@j < 2090) .@s4 = 4767; // ATK + 3%
+ else if (.@j < 2190) .@s4 = 4765; // CRIT + 7
+ else if (.@j < 2290) .@s4 = 4751; // LUK + 2
+ else if (.@j < 2390) .@s4 = 4721; // DEX + 2
+ else if (.@j < 2490) .@s4 = 4711; // INT + 2
+ else if (.@j < 2590) .@s4 = 4741; // VIT + 2
+ else if (.@j < 2690) .@s4 = 4731; // AGI + 2
+ else if (.@j < 2790) .@s4 = 4701; // STR + 2
+ else if (.@j < 2860) .@s4 = 4702; // STR + 3
+ else if (.@j < 2930) .@s4 = 4732; // AGI + 3
+ else if (.@j < 3000) .@s4 = 4742; // VIT + 3
+ else if (.@j < 3140) .@s4 = 4712; // INT + 3
+ else if (.@j < 3210) .@s4 = 4722; // DEX + 3
+ else if (.@j < 3280) .@s4 = 4788; // MDEF + 8
+ else if (.@j < 3350) .@s4 = 4793; // DEF + 9
+ else if (.@j < 3420) .@s4 = 4797; // HP + 300
+ else if (.@j < 3490) .@s4 = 4801; // SP + 100
+ else if (.@j < 3540) .@s4 = 4798; // HP + 400
+ else if (.@j < 3590) .@s4 = 4789; // MDEF + 8
+ else if (.@j < 3640) .@s4 = 4753; // LUK + 4
+ else if (.@j < 3690) .@s4 = 4723; // DEX + 4
+ else if (.@j < 3740) .@s4 = 4713; // INT + 4
+ else if (.@j < 3790) .@s4 = 4743; // VIT + 4
+ else if (.@j < 3840) .@s4 = 4733; // AGI + 4
+ else if (.@j < 3890) .@s4 = 4703; // STR + 4
+ else if (.@j < 3900) .@s4 = 4704; // STR + 5
+ else if (.@j < 3910) .@s4 = 4734; // AGI + 5
+ else if (.@j < 3920) .@s4 = 4744; // VIT + 5
+ else if (.@j < 3930) .@s4 = 4714; // INT + 5
+ else if (.@j < 3940) .@s4 = 4724; // DEX + 5
+ else if (.@j < 3950) .@s4 = 4754; // LUK + 5
+ else .@s4 = 0;
delitem 13067,1; //Caress
if (.@s3 == 0 && .@s4 == 0) {
diff --git a/npc/re/quests/quests_dicastes.txt b/npc/re/quests/quests_dicastes.txt
index d17b63267..dbd1d034a 100644
--- a/npc/re/quests/quests_dicastes.txt
+++ b/npc/re/quests/quests_dicastes.txt
@@ -120,7 +120,7 @@ dic_dun01,266,113,5 script Curious Sapha#ep13_3_ 4_MAN_BENKUNI,{
mes "How many do you want? You can buy up to 100.";
next;
input .@input;
- set .@deal, 500 * .@input;
+ .@deal = 500 * .@input;
if (.@deal == 0) {
mes "[Curious Sapha]";
mes "You changed your mind?";
@@ -181,7 +181,7 @@ sec_in02,16,43,5 script Scaraba Dungeon Entrance 4_MAN_BENKUNI,{
mes "Setting you for dungeon entry.";
mes "You will be able to go through if the password is correct.";
if (callfunc("F_GM_NPC",1854,0) == 1) {
- set ep13_3_secret,6;
+ ep13_3_secret = 6;
getitem 2782,1; //Ring_Of_Wise_King
getitem 6437,2; //Scaraba_Perfume
mes "Setting Complete";
@@ -323,7 +323,7 @@ OnTouch:
mes "[Black Clothed Guy]";
mes "...Really?";
mes "You've found it at last.";
- set ep13_3_secret, 24;
+ ep13_3_secret = 24;
next;
cutin "",255;
donpcevent "Suspicious Guy#ep133_::OnDisable";
@@ -394,7 +394,7 @@ OnEnable:
mes "[Capital City Guard]";
mes "Are you returning to El Dicastes?";
next;
- set .@m, select("Yes. Going to the castle.:No.") - 1;
+ .@m = select("Yes. Going to the castle.:No.") - 1;
mes "[Capital City Guard]";
mes "Good luck.";
close2;
@@ -443,8 +443,8 @@ sec_in02,10,42,1 script 13.3 Related Reset 4_MAN_BENKUNI,{
mes "[Reset]";
mes "Resets all quest windows including daily and map quests for 13.3.";
freeloop(1);
- for(set .@i,12099; .@i<=12216; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12099; .@i <= 12216; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
freeloop(0);
@@ -455,11 +455,11 @@ sec_in02,10,42,1 script 13.3 Related Reset 4_MAN_BENKUNI,{
//============================================================
function script que_dic {
if (!getarg(0)) {
- if (checkquest(getarg(1),HUNTING) != 2) return;
+ if (questprogress(getarg(1),HUNTING) != 2) return;
mes getarg(3);
}
else if (getarg(0) == 1) {
- if (checkquest(getarg(1)) == -1) return;
+ if (!questprogress(getarg(1))) return;
if (countitem(getarg(3)) < getarg(4)) {
mes "It looks like you are short on the amount.";
close;
@@ -469,8 +469,8 @@ function script que_dic {
delitem getarg(3), getarg(4);
}
else if (getarg(0) == 2) {
- for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) {
- if (checkquest(getarg(.@i)) >= 0)
+ for(.@i = 1; .@i < getargcount(); ++.@i) {
+ if (questprogress(getarg(.@i)))
erasequest getarg(.@i);
}
return;
@@ -507,7 +507,7 @@ dic_in01,48,263,5 script Hunting Dept. 1 Manager 4_MAN_BENKUNI,{
mes "Umm...What are you up to? Anything to do with me?";
close;
}
- if (checkquest(12159,PLAYTIME) == -1) {
+ if (!questprogress(12159,PLAYTIME)) {
mes "[Hunting Dept. 1 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -516,7 +516,7 @@ dic_in01,48,263,5 script Hunting Dept. 1 Manager 4_MAN_BENKUNI,{
mes "you one. Try meeting him.";
close;
}
- else if (checkquest(12159,PLAYTIME) == 2) {
+ else if (questprogress(12159,PLAYTIME) == 2) {
mes "[Hunting Dept. 1 Manager]";
mes "Time limit has expired for the existing request.";
next;
@@ -539,7 +539,7 @@ dic_in01,48,263,5 script Hunting Dept. 1 Manager 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Hunting Dept. 1 Manager]";
- set .@s$, "Oh, you completed all your requests. Confirmation complete.";
+ .@s$ = "Oh, you completed all your requests. Confirmation complete.";
que_dic(0,12099,4000,.@s$);
que_dic(0,12100,49000,.@s$);
que_dic(0,12101,18000,.@s$);
@@ -577,7 +577,7 @@ dic_in01,51,266,6 script Hunting Dept. 2 Manager 4_MAN_BENKUNI,{
mes "Ha ha, you will need to train a little more to work with me.";
close;
}
- if (checkquest(12160,PLAYTIME) == -1) {
+ if (!questprogress(12160,PLAYTIME)) {
mes "[Hunting Dept. 2 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -586,7 +586,7 @@ dic_in01,51,266,6 script Hunting Dept. 2 Manager 4_MAN_BENKUNI,{
mes "you one. Try to find him.";
close;
}
- else if (checkquest(12160,PLAYTIME) == 2) {
+ else if (questprogress(12160,PLAYTIME) == 2) {
mes "[Hunting Dept. 2 Manager]";
mes "Kalipo seems to have another request for you.";
next;
@@ -609,7 +609,7 @@ dic_in01,51,266,6 script Hunting Dept. 2 Manager 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Hunting Dept. 2 Manager]";
- set .@s$, "Oh, you completed all your requests. Confirmation complete.";
+ .@s$ = "Oh, you completed all your requests. Confirmation complete.";
que_dic(0,12106,77000,.@s$);
que_dic(0,12107,47000,.@s$);
que_dic(0,12108,50000,.@s$);
@@ -646,7 +646,7 @@ dic_in01,51,270,7 script Supply Dept. 1 Manager 4_MAN_BENKUNI,{
mes "You gotta be strong enough to deal with Supply Dept. 1.";
close;
}
- if (checkquest(12161,PLAYTIME) == -1) {
+ if (!questprogress(12161,PLAYTIME)) {
mes "[Supply Dept. 1 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -655,7 +655,7 @@ dic_in01,51,270,7 script Supply Dept. 1 Manager 4_MAN_BENKUNI,{
mes "you one. Try meeting him.";
close;
}
- else if (checkquest(12161,PLAYTIME) == 2) {
+ else if (questprogress(12161,PLAYTIME) == 2) {
mes "[Supply Dept. 1 Manager]";
mes "Pura is looking for you.";
next;
@@ -676,7 +676,7 @@ dic_in01,51,270,7 script Supply Dept. 1 Manager 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Supply Dept. 1 Manager]";
- set .@s$, "It's done. You can't start any other request till tomorrow, why don't you go to the famous pub and rest?";
+ .@s$ = "It's done. You can't start any other request till tomorrow, why don't you go to the famous pub and rest?";
que_dic(1,12117,26300,6086,6,.@s$);
que_dic(1,12118,25600,6090,3,.@s$);
que_dic(1,12119,51100,6073,16,.@s$);
@@ -717,7 +717,7 @@ dic_in01,48,273,8 script Supply Dept. 2 Manager 4_MAN_BENKUNI,{
mes "No way, You can't stand the job of Supply Dept. 2 with that weak body.";
close;
}
- if (checkquest(12162,PLAYTIME) == -1) {
+ if (!questprogress(12162,PLAYTIME)) {
mes "[Supply Dept. 2 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -726,7 +726,7 @@ dic_in01,48,273,8 script Supply Dept. 2 Manager 4_MAN_BENKUNI,{
mes "you one. Try meeting him.";
close;
}
- else if (checkquest(12162,PLAYTIME) == 2) {
+ else if (questprogress(12162,PLAYTIME) == 2) {
mes "[Supply Dept. 2 Manager]";
mes "I erased all records related with the previous request. Tragis is looking for you so hurry up to meet him.";
next;
@@ -744,7 +744,7 @@ dic_in01,48,273,8 script Supply Dept. 2 Manager 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Supply Dept. 2 Manager]";
- set .@s$, "" + strcharinfo(0) + ", you handle your requests quite well. You are not like the pub owner who just sends requests here every day.";
+ .@s$ = "" + strcharinfo(0) + ", you handle your requests quite well. You are not like the pub owner who just sends requests here every day.";
que_dic(1,12127,65300,6023,5,.@s$);
que_dic(1,12128,65300,6020,21,.@s$);
que_dic(1,12129,82800,1042,27,.@s$);
@@ -784,7 +784,7 @@ dic_in01,43,273,1 script Transport Dept. 1 Mgr 4_MAN_BENKUNI,{
mes "You're not qualified. You won't last a day with your strength working here at Transport Dept. 1.";
close;
}
- if (checkquest(12163,PLAYTIME) == -1) {
+ if (!questprogress(12163,PLAYTIME)) {
mes "[Transport Dept. 1 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -793,7 +793,7 @@ dic_in01,43,273,1 script Transport Dept. 1 Mgr 4_MAN_BENKUNI,{
mes "you one. Try meeting him.";
close;
}
- else if (checkquest(12163,PLAYTIME) == 2) {
+ else if (questprogress(12163,PLAYTIME) == 2) {
mes "[Transport Dept. 1 Manager]";
mes "I erased all records related with the previous request. Calyon is looking for you so hurry up to meet him.";
next;
@@ -811,7 +811,7 @@ dic_in01,43,273,1 script Transport Dept. 1 Mgr 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Transport Dept. 1 Manager]";
- set .@s$, "Quantity check finished. Ahhh, you going to rest? Then why don't you visit the famous pub of the Capital? They have no yummy food though....";
+ .@s$ = "Quantity check finished. Ahhh, you going to rest? Then why don't you visit the famous pub of the Capital? They have no yummy food though....";
que_dic(1,12137,30000,7143,4,.@s$);
que_dic(1,12138,25000,744,5,.@s$);
que_dic(1,12139,47500,748,1,.@s$);
@@ -858,7 +858,7 @@ dic_in01,40,270,2 script Transport Dept. 2 Mgr 4_MAN_BENKUNI,{
mes "You're not qualified. You won't last a day with your strength working here at Transport Dept. 2.";
close;
}
- if (checkquest(12164) == -1) {
+ if (!questprogress(12164)) {
mes "[Transport Dept. 2 Manager]";
mes "So you didn't get";
mes "any requests yet.";
@@ -867,7 +867,7 @@ dic_in01,40,270,2 script Transport Dept. 2 Mgr 4_MAN_BENKUNI,{
mes "you one. Try meeting him.";
close;
}
- else if (checkquest(12164,PLAYTIME) == 2) {
+ else if (questprogress(12164,PLAYTIME) == 2) {
mes "[Transport Dept. 2 Manager]";
mes "I erased all records related with the previous request. Moltuka is looking for you so hurry up to meet him.";
next;
@@ -885,7 +885,7 @@ dic_in01,40,270,2 script Transport Dept. 2 Mgr 4_MAN_BENKUNI,{
mes "Let me check your records first.";
next;
mes "[Transport Dept. 2 Manager.]";
- set .@s$, "Well received. One less thing to worry about now.";
+ .@s$ = "Well received. One less thing to worry about now.";
que_dic(1,12148,23000,528,100,.@s$);
que_dic(1,12149,20750,512,100,.@s$);
que_dic(1,12150,20750,515,100,.@s$);
@@ -926,7 +926,7 @@ dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
mes "You won't need those documents even if you could read them. Looks like you haven't gotten enough training";
close;
}
- set .@map_hi, rand(1,4);
+ .@map_hi = rand(1,4);
mes "[Papyrus]";
if (.@map_hi == 1) mes "Welcome, I am Papyrus, the manager of the Archive room here.";
else if (.@map_hi == 2) mes "The number of adventurers visiting the Archive room has increased";
@@ -1026,18 +1026,18 @@ dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
mes "When you try to open and read a document, a Sapha manager motions to call Guard Galten. Let's get out of here quickly.";
close;
}
- if (checkquest(12165,PLAYTIME) == 2) {
+ if (questprogress(12165,PLAYTIME) == 2) {
mes "Feeling a bit better";
erasequest 12165;
close;
}
- else if (checkquest(12165,PLAYTIME) != -1) {
+ else if (questprogress(12165,PLAYTIME)) {
mes "Ugh... feel dizzy from simply staring at the document. Will come back after cooling down";
close;
}
specialeffect2 EF_DISPELL;
progressbar "ffff00",4;
- set .@doc,rand(1,70);
+ .@doc = rand(1,70);
if (.@doc > 50 && .@doc <= 60) {
mes "No documents look out of the ordinary.";
close;
@@ -1099,7 +1099,7 @@ dic_in01,40,193,1 script Papyrus#0001 4_MAN_NITT,{
close;
function eldicastes_dp {
- if (checkquest(getarg(0)) >= 0) {
+ if (questprogress(getarg(0))) {
mes "You've found a document you already have.";
close;
}
@@ -1120,7 +1120,7 @@ dic_in01,25,187,0 duplicate(Document Package#main) Document Package#0004 CLEAR_N
// Unknown Relics
//============================================================
function script unknown_d {
- if (checkquest(getarg(0)) == -1) {
+ if (!questprogress(getarg(0))) {
mes "You see some traces of digging.";
close;
}
@@ -1333,7 +1333,7 @@ OnTouch:
mes "But you see a human in high-ranking Sapha clothing in front of you.";
sc_end SC_BLIND;
emotion e_omg,1;
- set ep13_3_secret, 14;
+ ep13_3_secret = 14;
erasequest 7198;
close2;
cutin "",255;
@@ -1390,7 +1390,7 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
mes "Clear them out without anyone knowing.";
mes "And bring them here instead of throwing them away anywhere.";
mes "Bring back at least 10 of each.";
- set ep13_3_secret, 17;
+ ep13_3_secret = 17;
setquest 7199;
next;
mes "[Cheshire]";
@@ -1409,10 +1409,10 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
delitem 6306,10; //Solid_Bloodstain
delitem 6305,10; //Frozen_Skin_Piece
delitem 6307,10; //Suspicious_Magic_Stone
- set ep13_3_secret, 18;
+ ep13_3_secret = 18;
erasequest 7199;
setquest 7200;
- set ep13_3_ahtdayq, 2;
+ ep13_3_ahtdayq = 2;
close2;
}
else {
@@ -1448,7 +1448,7 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
delitem 6306,10; //Solid_Bloodstain
delitem 6305,10; //Frozen_Skin_Piece
delitem 6307,10; //Suspicious_Magic_Stone
- set ep13_3_ahtdayq, 2;
+ ep13_3_ahtdayq = 2;
getitem 6304,1; //Sapa_Feat_Cert
getexp 70000,0;
getexp 0,30000;
@@ -1465,14 +1465,14 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
}
}
else if (ep13_3_ahtdayq == 2) {
- if (checkquest(7200,PLAYTIME) == 0 || checkquest(7200,PLAYTIME) == 1) {
+ if (questprogress(7200,PLAYTIME) == 1) {
mes "[Cheshire]";
mes "Not just yet.";
mes "We must plan the cleanup near the crack carefully.";
mes "Come back later.";
close2;
}
- else if (checkquest(7200,PLAYTIME) == 2) {
+ else if (questprogress(7200,PLAYTIME) == 2) {
mes "[Cheshire]";
mes "Back to work today.";
mes "Clotted Bloodstain, Piece of Frozen Skin, Strange Magic Stone..";
@@ -1481,8 +1481,8 @@ dic_in01,294,276,5 script Secret Adjutant#ep133_2 4_M_CATMAN2,{
mes "[Cheshire]";
mes "Collect 10 of each as always.";
mes "Got it?";
- set ep13_3_ahtdayq, 1;
- if (checkquest(7200,PLAYTIME) >= 0) erasequest 7200;
+ ep13_3_ahtdayq = 1;
+ if (questprogress(7200,PLAYTIME)) erasequest 7200;
setquest 7201;
next;
mes "You've received a request from Cheshire to clean up the crack area.";
@@ -1538,7 +1538,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
mes "But you see a human in high-ranking Sapha clothing in front of you.";
sc_end SC_BLIND;
emotion e_omg,1;
- set ep13_3_secret, 14;
+ ep13_3_secret = 14;
erasequest 7198;
close2;
}
@@ -1590,7 +1590,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
mes "....";
next;
while (.@ahtlove < 4) {
- set .@ahtlove, .@ahtlove + 1;
+ ++.@ahtlove;
mes "- Ahat tries to hypnotize you again.";
mes "He must have erased himself by doing this over and over again.-";
next;
@@ -1678,7 +1678,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
mes "You are my loyal servant.";
mes "My hands and feet.";
}
- set ep13_3_secret, 15;
+ ep13_3_secret = 15;
close2;
}
else if (ep13_3_secret == 15) {
@@ -1729,7 +1729,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
next;
mes "- Ahat doesn't suspect a thing yet.";
mes "He seems to believe that his spell was complete. -";
- set ep13_3_secret, 16;
+ ep13_3_secret = 16;
close2;
}
else if (ep13_3_secret == 16) {
@@ -1775,7 +1775,7 @@ dic_in01,300,280,5 script Minister Ahat#ep133_21 4_HUMAN_GERUTOO,{
mes "[Ahat]";
mes "And this is something to reward you for your deeds.";
mes "Nothing much but I hope you like it.";
- set ep13_3_secret, 19;
+ ep13_3_secret = 19;
getitem 2790,1; //Bradium_Brooch
close2;
}
@@ -1860,7 +1860,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "[HesLanta]";
mes "Jarute.. What did Ahat look like to you?";
next;
- set .@m, select("I don't understand your question.:My master.") - 1;
+ .@m = select("I don't understand your question.:My master.") - 1;
if (.@m) {
mes "[HesLanta]";
mes "....huh....?";
@@ -1869,7 +1869,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
next;
mes "HesLanta is upset with my reply.";
mes "His expression is complex and dark.";
- set ep13_3_secret, 20;
+ ep13_3_secret = 20;
close;
}
mes "[HesLanta]";
@@ -1992,7 +1992,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "Ahat climbed the ladder up to where he is now after gaining Ravail's trust.";
mes "His working abilities is amazing.";
mes "He is the perfect Sapha.";
- set ep13_3_secret, 21;
+ ep13_3_secret = 21;
next;
mes "HesLanta starts to think deeply after saying this.";
close;
@@ -2116,7 +2116,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
next;
mes "[" + strcharinfo(0) + "]";
mes "I must go back to the expedition camp to report to Doha!";
- set ep13_3_secret, 22;
+ ep13_3_secret = 22;
setquest 7203;
close;
}
@@ -2130,7 +2130,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "It was Cheshire";
mes "Cheshire is a feline.";
mes "and the bandana was to hid his ears.";
- set .@yes, .@yes + 1;
+ ++.@yes;
break;
case 2:
mes "[" + strcharinfo(0) + "]";
@@ -2161,7 +2161,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "To bring conflict between the three countries?";
mes "What will Cheshire gain out of this?";
}
- set .@yes, .@yes + 1;
+ ++.@yes;
next;
}
else if (.@yes == 2) {
@@ -2179,7 +2179,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "Yes. Ahat must have order him.";
mes "But why would Ahat do that?";
mes "Conflict between three countries? Or the report content?";
- set .@yes, .@yes + 1;
+ ++.@yes;
}
next;
}
@@ -2204,7 +2204,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "A bit dramatic but we cannot rule out the evil lord Morroc.";
mes "Because the crack was created by the evil lord Morroc himself.";
}
- set .@yes, .@yes + 1;
+ ++.@yes;
next;
}
else if (.@yes == 4) {
@@ -2223,7 +2223,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "[" + strcharinfo(0) + "]";
mes "Yes. There is a report from the tracking team led by Echinacea.";
mes "It was about the evil lord Morroc.";
- set .@yes, .@yes + 1;
+ ++.@yes;
}
next;
}
@@ -2231,7 +2231,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
mes "[" + strcharinfo(0) + "]";
mes "Oh no. I don't know.";
mes "Let's think it over.";
- set .@yes, 0;
+ .@yes = 0;
next;
}
}
@@ -2265,7 +2265,7 @@ dic_in01,158,188,3 script Jarute HesLanta#ep133_2 4_MAN_JERUTOO,{
cutin "",255;
end;
}
- set .@yessay, rand(1,3);
+ .@yessay = rand(1,3);
if (.@yessay == 1) {
mes "[HesLanta]";
mes "I'm very tired because I had too much work today.";
@@ -2339,10 +2339,10 @@ dicastes01,223,190,1 script Calyon#pa8029 4_MAN_NITT,{
mes "Ha ha, come back again after you are trained more. I have no request that fits you.";
close;
}
- if (checkquest(12163,PLAYTIME) == 2) {
+ if (questprogress(12163,PLAYTIME) == 2) {
mes "Calculate your request activities with the ^800080Transport Dept. 1 Manager^000000 at Operations and then come back.";
close;
- } else if (checkquest(12163,PLAYTIME) != -1) {
+ } else if (questprogress(12163,PLAYTIME)) {
mes "We're done for the day. You can report back to the ^800080Transport Dept. 1 Manager^000000 at Operations. Good luck.";
close;
}
@@ -2370,7 +2370,7 @@ dicastes01,223,190,1 script Calyon#pa8029 4_MAN_NITT,{
mes "[Calyon]";
mes "Finally, I have a request for you. It is an important one so I need you to be focused.";
next;
- set .@calyonrequest,rand(1,11);
+ .@calyonrequest = rand(1,11);
mes "[Calyon]";
if (.@calyonrequest == 1) {
setquest 12139;
@@ -2512,12 +2512,12 @@ dicastes01,211,178,2 script Moltuka#pa0829 4_MAN_NITT,{
mes "Ha ha, come back again after you are trained more. I have no request that fits you.";
close;
}
- if (checkquest(12164,PLAYTIME) == 2) {
+ if (questprogress(12164,PLAYTIME) == 2) {
mes "[Moltuka]";
mes "Have you met the ^990099Transport Dept. 2 Manager^000000 at Operations? I will give you a new request after you clear your request history.";
close;
}
- else if (checkquest(12164,PLAYTIME) != -1) {
+ else if (questprogress(12164,PLAYTIME)) {
mes "[Moltuka]";
mes "I don't have any requests for you now. Report back to the ^990099Transport Dept. 2 Manager^000000 at Operations after you complete all requests.";
close;
@@ -2543,7 +2543,7 @@ dicastes01,211,178,2 script Moltuka#pa0829 4_MAN_NITT,{
mes "[Moltuka]";
mes "..............(rustling sound)";
next;
- set .@tut_13, rand(1,11);
+ .@tut_13 = rand(1,11);
if (.@tut_13 == 1) {
setquest 12148;
setquest 12164;
@@ -2736,13 +2736,13 @@ dicastes01,175,217,5 script Kalipo#pa0829 4_MAN_NITT,{
mes "Ha ha ha, many other adventurers are giving a helping hand. I'll see you next time.";
close;
}
- if (checkquest(12160,PLAYTIME) == 2) {
+ if (questprogress(12160,PLAYTIME) == 2) {
mes "[Kalipo]";
mes "Please come back after checking";
mes "previous requests with the ^990099Hunting Dept. 2 Manager^000000.";
close;
}
- else if (checkquest(12160,PLAYTIME) > -1) {
+ else if (questprogress(12160,PLAYTIME)) {
mes "[Kalipo]";
mes "I do not have any additional requests. Please report to the ^990099Hunting Dept. 2 Manager^000000 at Operations to report request completion.";
close;
@@ -2777,8 +2777,8 @@ dicastes01,175,217,5 script Kalipo#pa0829 4_MAN_NITT,{
mes "I actually have something";
mes "just right for you.";
next;
- set .@tut_lv, (BaseLevel);
- set .@rand, rand(100,BaseLevel);
+ .@tut_lv = (BaseLevel);
+ .@rand = rand(100,BaseLevel);
if (.@rand < 109) {
setquest 12106;
setquest 12160;
@@ -2878,12 +2878,12 @@ dicastes01,187,230,5 script Laponte#pa0829 4_MAN_NITT,{
mes "Ha ha ha, many other adventurers are giving a helping hand. I'll see you next time.";
close;
}
- if (checkquest(12159,PLAYTIME) > -1 && checkquest(12159,PLAYTIME) < 2) {
+ if (questprogress(12159,PLAYTIME) && questprogress(12159,PLAYTIME) != 2) {
mes "[Laponte]";
mes "I do not have any additional requests. Please report to the ^990099Hunting Dept. 1 Manager^000000 at Operations to report request completion.";
close;
}
- else if (checkquest(12159,PLAYTIME) == 2) {
+ else if (questprogress(12159,PLAYTIME) == 2) {
mes "[Laponte]";
mes "Please come back after checking";
mes "previous requests with the ^990099Hunting Dept. 1 Manager^000000.";
@@ -2925,7 +2925,7 @@ dicastes01,187,230,5 script Laponte#pa0829 4_MAN_NITT,{
mes "I actually have something";
mes "just right for you.";
next;
- set .@rand, rand(97,BaseLevel);
+ .@rand = rand(97,BaseLevel);
if (.@rand < 103) {
setquest 12099;
setquest 12159;
@@ -3050,12 +3050,12 @@ dicastes01,208,230,3 script Pura#pa0829 4_MAN_NITT,{
mes "We are not that unfortunate to receive help from you.";
close;
}
- if (checkquest(12161,PLAYTIME) == 2) {
+ if (questprogress(12161,PLAYTIME) == 2) {
mes "[Pura]";
mes "Have you already met the ^990099Supply Dept. 1 Manager^000000 at Operations? I will give you a new request after you clear your request history.";
close;
}
- else if (checkquest(12161,PLAYTIME) > -1) {
+ else if (questprogress(12161,PLAYTIME)) {
mes "[Pura]";
mes "I don't have any requests for you now. Report back to the ^990099Supply Dept. 1 Manager^000000 at Operations after you complete all requests.";
close;
@@ -3091,7 +3091,7 @@ dicastes01,208,230,3 script Pura#pa0829 4_MAN_NITT,{
mes "I actually have something";
mes "just right for you.";
next;
- set .@tut_13, rand(1,10);
+ .@tut_13 = rand(1,10);
if (.@tut_13 == 1) {
setquest 12117;
setquest 12161;
@@ -3240,12 +3240,12 @@ dicastes01,225,211,3 script Tragis#pa0829 4_MAN_NITT,{
mes "It is pretty embarassing that you are looking for a request with your level, you know that?";
close;
}
- if (checkquest(12162,PLAYTIME) == 2) {
+ if (questprogress(12162,PLAYTIME) == 2) {
mes "[Tragis]";
mes "Calculate your request activities with the ^990099Supply Dept. 2 Manager^000000 at Operations and then come back.";
close;
}
- else if (checkquest(12162,PLAYTIME) > -1) {
+ else if (questprogress(12162,PLAYTIME)) {
mes "[Tragis]";
mes "I don't have any requests for you now. Report back to the ^990099Supply Dept. 2 Manager^000000 at Operations after you complete all requests.";
close;
@@ -3262,7 +3262,7 @@ dicastes01,225,211,3 script Tragis#pa0829 4_MAN_NITT,{
mes "[Tragis]";
mes "I just got a request. It's good that none of us wasted time.";
next;
- set .@tut_13, rand(1,10);
+ .@tut_13 = rand(1,10);
if (.@tut_13 == 1) {
setquest 12127;
setquest 12162;
@@ -3486,7 +3486,7 @@ mid_campin,168,170,3 script Inspector Doha#ep133 1_M_ORIENT01,{
mes "Hmm... my throat is soar from talking too much.";
mes "Let's continue later after I get some rest.";
mes "I think I need a cup of water.";
- set ep13_3_secret, 2;
+ ep13_3_secret = 2;
close;
}
mes "[Doha]";
@@ -3580,7 +3580,7 @@ mid_campin,168,170,3 script Inspector Doha#ep133 1_M_ORIENT01,{
mes "[Doha]";
mes "Please bring back some clues. Anything you come by during your journey";
mes "Please report back to me if you have anything leads.";
- set ep13_3_secret, 3;
+ ep13_3_secret = 3;
changequest 7185,7186;
close;
}
@@ -3634,7 +3634,7 @@ mid_campin,168,170,3 script Inspector Doha#ep133 1_M_ORIENT01,{
delitem 6306,1; //Solid_Bloodstain
delitem 6305,1; //Frozen_Skin_Piece
delitem 6307,1; //Suspicious_Magic_Stone
- set ep13_3_secret, 23;
+ ep13_3_secret = 23;
getitem 2553,1; //Dragon_Manteau
erasequest 7202;
completequest 7203;
@@ -3812,7 +3812,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "Well.. bigger then them?";
mes "Not sure. Haven't heard of it.";
mes "Why don't you ^4d4dffask Sapha's around here?^000000";
- set ep13_3_secret, 4;
+ ep13_3_secret = 4;
erasequest 7186;
setquest 7187;
break;
@@ -3845,9 +3845,10 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
"7190","Galtens are interested in the Cat Merchant for their cat ears.";
mes "[" + strcharinfo(0) + "]";
mes "I'm trying to organize the information I've collected.";
- for (set .@size, getarraysize(.@ward$); .@i < .@size; set .@i, .@i + 2)
- if (checkquest(atoi(.@ward$[.@i])) >= 0) {
- set .@sealall, .@sealall + 1;
+ .@size = getarraysize(.@ward$);
+ for (.@i = 0; .@i < .@size; .@i += 2)
+ if (questprogress(atoi(.@ward$[.@i]))) {
+ ++.@sealall;
mes .@ward$[.@i+1];
}
if (!.@sealall) mes "But what should I do with the collected information?";
@@ -3918,7 +3919,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
next;
mes "[Shay]";
mes "And if he ignores you, tell him that ^4d4dffShay's special drink will be delivered^000000.";
- set ep13_3_secret, 5;
+ ep13_3_secret = 5;
erasequest 7188;
erasequest 7189;
erasequest 7190;
@@ -3958,7 +3959,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "But there is a crack here too?";
mes "..Too many ill-fates.";
mes "Bit sorrowful.";
- set ep13_3_secret, 10;
+ ep13_3_secret = 10;
changequest 7192,7193;
break;
}
@@ -3984,10 +3985,11 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
setarray .@item, 6306,6305,6307;
setarray .@str$, "bloodstain","frozen piece of skin","strange magical stone fragment";
- for (set .@size, getarraysize(.@item); .@i < .@size; set .@i, .@i + 1) {
+ .@size = getarraysize(.@item);
+ for (.@i = 0; .@i < .@size; ++.@i) {
if (countitem(.@item[.@i])) {
mes "- You show the " + .@str$[.@i] + " you collected from near the crack.-";
- set .@crack, 1;
+ .@crack = 1;
next;
break;
}
@@ -4049,9 +4051,9 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "First, think of what you have to do.";
mes "Meet Ahat by collecting exploit certifications.";
mes "And then find doubt what is the relationship between him and the crack.";
- set ep13_3_secret, 12;
- for (set .@i, 0; .@i < getarraysize(.@quest); set .@i, .@i + 1)
- if (checkquest(.@quest[.@i]) >= 0) erasequest .@quest[.@i];
+ ep13_3_secret = 12;
+ for (.@i = 0; .@i < getarraysize(.@quest); ++.@i)
+ if (questprogress(.@quest[.@i])) erasequest .@quest[.@i];
setquest 7197;
break;
}
@@ -4168,7 +4170,7 @@ dic_in01,245,119,4 script Shay#ep133_13 4_M_ACROSS,{
mes "Ungrateful....";
break;
}
- set .@shysay, rand(1,3);
+ .@shysay = rand(1,3);
if (.@shysay == 1) {
mes "[Shay]";
mes "What do you want?";
@@ -4315,7 +4317,7 @@ dicastes01,207,210,5 script Walking Knit#ep133_15 4_MAN_BENKUNI,{
mes "Ah, did you see the group of cats in front of the castle?";
mes "They are really soft and cuddly unlike us.";
next;
- if (checkquest(7188) >= -1) {
+ if (!questprogress(7188)) {
mes "[Knit]";
mes "And especially their ear and tail!!";
next;
@@ -4404,7 +4406,7 @@ dicastes01,112,248,5 script Resting Piom#ep133_16 4_MAN_PIOM5,{
mes "Huh? You're... human!";
mes "Why are you here?";
next;
- if (checkquest(7189) >= -1) {
+ if (!questprogress(7189)) {
select("About a human with cat ears..");
mes "[Piom]";
mes "HAHAHAHA!!!";
@@ -4476,7 +4478,7 @@ dicastes01,249,140,3 script Training Galten#ep133_17 4_MAN_GALTUN,{
mes "Hmm? Aren't you the outsider that came here awhile ago?";
mes "Have you come to see the training grounds?";
next;
- if (checkquest(7190) >= -1) {
+ if (!questprogress(7190)) {
select("About a human with cat ears..");
mes "[Galten]";
mes "Cat ears?";
@@ -4607,7 +4609,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "[BK]";
mes "So I'll sell my information for exploit certifications.";
mes "Tell me when you are ready.";
- set ep13_3_secret, 6;
+ ep13_3_secret = 6;
close;
}
mes "[" + strcharinfo(0) + "]";
@@ -4651,7 +4653,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "Hu hu...";
mes "Satisfied?";
delitem 6304,1; //Sapa_Feat_Cert
- set ep13_3_secret, 7;
+ ep13_3_secret = 7;
next;
mes "- BK says this and takes the exploit certification out of your hand.";
mes "Information on the person with animal ears Doha mentioned!-";
@@ -4709,7 +4711,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "The new minister was picked up ^4d4dffnear the crack^000000.";
mes "He must be an alien!";
delitem 6304,1; //Sapa_Feat_Cert
- set ep13_3_secret, 8;
+ ep13_3_secret = 8;
next;
select("What do you think so?");
}
@@ -4750,7 +4752,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "Well, I don't understand why because all Saphas";
mes "are beautiful.";
delitem 6304,1; //Sapa_Feat_Cert
- set ep13_3_secret, 9;
+ ep13_3_secret = 9;
changequest 7191,7192;
next;
mes "- BK says this and takes the exploit certification out of your hand.";
@@ -4791,11 +4793,12 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "- You can too many items to proceed with the quest. -";
close;
}
- set .@n$, strnpcinfo(1);
+ .@n$ = strnpcinfo(1);
setarray .@npc$, "Rock Pile", "Dirt Pile", "Split Earth";
setarray .@item, 6307, 6306, 6305;
- for (set .@size, getarraysize(.@npc$); .@i < .@size; set .@i, .@i + 1)
- if (.@n$ == .@npc$[.@i]) set .@type, .@i;
+ .@size = getarraysize(.@npc$);
+ for (.@i = 0; .@i < .@size; ++.@i)
+ if (.@n$ == .@npc$[.@i]) .@type = .@i;
if (ep13_3_secret == 10) {
if (.@npc$[.@type] == "Rock Pile") {
@@ -4813,7 +4816,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
}
mes "Don't see anything suspicious.";
next;
- set .@menu$, (.@npc$[.@type] == "Rock Pile")? "Try to knock down the rock pile.:Study the pile closely." : "Stomp on it with your feet.:Poke around in the dirt pile.";
+ .@menu$ = (.@npc$[.@type] == "Rock Pile")? "Try to knock down the rock pile.:Study the pile closely." : "Stomp on it with your feet.:Poke around in the dirt pile.";
if (select(.@menu$) == 1) {
if (.@npc$[.@type] == "Rock Pile") mes "Knock down the pebbles that make up the pile of rocks and spread them out.";
else if (.@npc$[.@type] == "Dirt Pile") mes "You step on the dug up dirt pile and make the ground flat.";
@@ -4838,7 +4841,7 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
mes "You feel evil energy. Does this have anything to do with Ahat?";
mes "You collect the clotted bloodstains.";
}
- set ep13_3_secret, 11;
+ ep13_3_secret = 11;
getitem .@item[.@type], 1;
erasequest 7193;
setquest 7194;
@@ -4883,14 +4886,14 @@ dic_fild01,231,174,5 script BK#ep133_18 4_M_MERCAT2,{
if (countitem(.@item[.@type]) == 10) {
mes "Collected enough for Cheshire but";
mes "you may need some more to report separately.";
- if (checkquest(7202) == -1) setquest 7202;
+ if (!questprogress(7202)) setquest 7202;
close;
}
mes "Not enough was collected to fill Cheshire's request.";
close;
}
else if (countitem(.@item[.@type]) == 10) {
- if (checkquest(7202) >= 0) {
+ if (questprogress(7202)) {
setarray .@str$, "stone fragments","bloodstains","pieces of skin";
mes "Need more " + .@str$[.@type] + " to report back to Doha at the expedition camp.";
}
@@ -5015,7 +5018,7 @@ dicastes01,117,262,0 script Frede#13_3 4_MAN_PIOM5,2,2,{
mes "[Frede]";
mes "Do you mind helping me get to the building over there?";
mes "I will feel better if I rest a little.";
- set ep13_3_bra, 1;
+ ep13_3_bra = 1;
close2;
warp "dic_in01",165,101;
end;
@@ -5081,7 +5084,7 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
mes "[Frede]";
mes "Here, sit and eat this.";
mes "The cats outside gave it to me. It doesn't do much good for Saphas but I heard it's suppose to help you humans.";
- set ep13_3_bra, 2;
+ ep13_3_bra = 2;
setquest 11171;
getitem 513,1; //Banana
close;
@@ -5177,14 +5180,14 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
next;
mes "[Frede]";
mes "I only hope they are all healthy and well.";
- set ep13_3_bra, 4;
+ ep13_3_bra = 4;
changequest 11171,11172;
close;
}
mes "[Frede]";
mes "I guess I can't do anything about it.";
mes "But drag myself there.";
- set ep13_3_bra, 3;
+ ep13_3_bra = 3;
close;
}
else if (ep13_3_bra == 3) {
@@ -5208,7 +5211,7 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
next;
mes "[Frede]";
mes "I only hope they are all healthy and well.";
- set ep13_3_bra, 4;
+ ep13_3_bra = 4;
changequest 11171,11172;
close;
}
@@ -5219,9 +5222,10 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
}
else if (ep13_3_bra == 4) {
setarray .@quest_id, 11159,11160,11161,11162,11163,11164;
- for (set .@size, getarraysize(.@quest_id); .@i < .@size; set .@i, .@i + 1)
- if (checkquest(.@quest_id[.@i]) == -1) {
- set .@fail, 1;
+ .@size = getarraysize(.@quest_id);
+ for (.@i = 0; .@i < .@size; ++.@i)
+ if (!questprogress(.@quest_id[.@i])) {
+ .@fail = true;
break;
}
if (!.@fail) {
@@ -5241,9 +5245,9 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
mes "[Frede]";
mes "Ask ^f57d7dBouy at the building located northwest of the village^000000 and he will give you some refined Bradium.";
mes "I can't thank you enough.";
- set ep13_3_bra, 5;
+ ep13_3_bra = 5;
changequest 11172,11173;
- for (set .@i, 0; .@i < .@size; set .@i, .@i + 1)
+ for (.@i = 0; .@i < .@size; ++.@i)
erasequest .@quest_id[.@i];
close;
}
@@ -5307,9 +5311,10 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
close;
}
setarray .@quest_id, 11165,11166,11167,11168,11169,11170;
- for (set .@size, getarraysize(.@quest_id); .@i < .@size; set .@i, .@i + 1)
- if (checkquest(.@quest_id[.@i]) == -1) {
- set .@fail, 1;
+ .@size = getarraysize(.@quest_id);
+ for (.@i = 0; .@i < .@size; ++.@i)
+ if (!questprogress(.@quest_id[.@i])) {
+ .@fail = true;
break;
}
if (!.@fail) {
@@ -5327,9 +5332,9 @@ dic_in01,165,104,0 script Frede#13_3_in 4_MAN_PIOM,{
mes "It's nothing much but I want you to have it.";
mes "We may be from different races but we can be great friends.";
completequest 11176;
- set ep13_3_bra, 9;
+ ep13_3_bra = 9;
getitem 2788,1; //Bradium_Earing
- for (set .@i, 0; .@i < .@size; set .@i, .@i + 1)
+ for (.@i = 0; .@i < .@size; ++.@i)
erasequest .@quest_id[.@i];
close;
}
@@ -5360,7 +5365,7 @@ dic_dun01,205,43,5 script Brian#ep13_3_ 4_MAN_PIOM4,{
close;
}
else if (ep13_3_bra < 8) {
- if (checkquest(11159) >= 0 || ep13_3_bra != 4) {
+ if (questprogress(11159) || ep13_3_bra != 4) {
mes "[Brian]";
mes "Oh... that reminds me, how many days passed since I came here...";
mes "Do you happen to know what day it is today?";
@@ -5399,7 +5404,7 @@ dic_dun01,205,43,5 script Brian#ep13_3_ 4_MAN_PIOM4,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11165) >= 0) {
+ if (questprogress(11165)) {
mes "[Brian]";
mes "I'm out of Bradium already.";
mes "Frede has been nagging me about this all the time but now I see why.";
@@ -5461,7 +5466,7 @@ dic_dun01,153,107,4 script Tyler#13_3 4_MAN_PIOM6,{
close;
}
else if (ep13_3_bra == 4) {
- if (checkquest(11161) >= 0) {
+ if (questprogress(11161)) {
mes "[Tyler]";
mes "If you happen to bump into him in the village, please tell him I'm fine and not to worry.";
close;
@@ -5523,7 +5528,7 @@ dic_dun01,153,107,4 script Tyler#13_3 4_MAN_PIOM6,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11167) >= 0) {
+ if (questprogress(11167)) {
mes "[Tyler]";
mes "Oh!! I was out of Bradium. How did you know!";
mes "Thanks!";
@@ -5591,7 +5596,7 @@ dic_dun01,235,243,0 script John#13_3 4_MAN_PIOM,{
close;
}
else if (ep13_3_bra == 4) {
- if (checkquest(11160) >= 0) {
+ if (questprogress(11160)) {
mes "[John]";
mes "Oh well...";
mes "There... is nothing to worry about.";
@@ -5645,7 +5650,7 @@ dic_dun01,235,243,0 script John#13_3 4_MAN_PIOM,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11166) >= 0) {
+ if (questprogress(11166)) {
mes "[John]";
mes "......";
mes "Thanks....";
@@ -5691,7 +5696,7 @@ dic_dun02,110,127,5 script Rose#13_3 4_MAN_PIOM6,{
close;
}
else if (ep13_3_bra == 4) {
- if (checkquest(11162) >= 0) {
+ if (questprogress(11162)) {
mes "[Rose]";
mes "Tell him there is no problem at all except that I am too good at my job.";
mes "Because I'm perfect.";
@@ -5729,7 +5734,7 @@ dic_dun02,110,127,5 script Rose#13_3 4_MAN_PIOM6,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11168) >= 0) {
+ if (questprogress(11168)) {
mes "[Rose]";
mes "I'll return to the village soon.";
mes "We can meet up then~";
@@ -5788,7 +5793,7 @@ dic_dun01,64,107,7 script Bain#13_3 4_MAN_PIOM4,{
close;
}
else if (ep13_3_bra == 4) {
- if (checkquest(11163) >= 0) {
+ if (questprogress(11163)) {
mes "[Bain]";
mes "Just tell him I'm doing well.";
mes "Simple, isn't it?";
@@ -5819,7 +5824,7 @@ dic_dun01,64,107,7 script Bain#13_3 4_MAN_PIOM4,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11169) >= 0) {
+ if (questprogress(11169)) {
mes "[Bain]";
mes "But I will be in trouble if I don't go back to the village for Bradium.";
next;
@@ -5883,7 +5888,7 @@ dic_dun01,58,225,4 script Lash#13_3 4_MAN_PIOM5,{
close;
}
else if (ep13_3_bra == 4) {
- if (checkquest(11164) >= 0) {
+ if (questprogress(11164)) {
mes "[Lash]";
mes "If you'd like to tell him how I'm doing, look at my forearm. Doesn't it spell out 'Strong' on it?";
next;
@@ -5929,7 +5934,7 @@ dic_dun01,58,225,4 script Lash#13_3 4_MAN_PIOM5,{
close;
}
else if (ep13_3_bra == 8) {
- if (checkquest(11170) >= 0) {
+ if (questprogress(11170)) {
mes "[Lash]";
mes "Wow!!!!";
mes "You've saved me!";
@@ -6019,7 +6024,7 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
next;
mes "[Bouy]";
mes "About ^f57d7d30 pieces of Bradium^000000 will be enough to share with 6 people.";
- set ep13_3_bra, 6;
+ ep13_3_bra = 6;
changequest 11173,11174;
close;
}
@@ -6036,7 +6041,7 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
mes "Please go rest while I get to work.";
delitem 6319,30; //Small_Bradium
changequest 11174,11175;
- set ep13_3_bra, 7;
+ ep13_3_bra = 7;
close;
}
mes "[Bouy]";
@@ -6050,12 +6055,12 @@ dic_in01,349,129,5 script Bouy#13_3 4_MAN_BENKUNI,{
close;
}
else if (ep13_3_bra == 7) {
- if (checkquest(11175,PLAYTIME) > 1) {
+ if (questprogress(11175,PLAYTIME) == 2) {
mes "[Bouy]";
mes "I did it!";
mes "I was a bit nervous because it has been a long time since I did manual work but I think I did a good job.";
mes "Please take these to them.";
- set ep13_3_bra, 8;
+ ep13_3_bra = 8;
changequest 11175,11176;
close;
}
@@ -6211,7 +6216,7 @@ mid_campin,93,114,3 script Guard Aello#ep133_is03 4_M_RUSMAN1,{
mes "There will be a guard standing in front";
mes "just tell him you got authorization.";
mes "He is interested in humans, so try to be courteous while talking to him.";
- set ep13_3_invite, 1;
+ ep13_3_invite = 1;
setquest 7182;
close;
}
@@ -6355,7 +6360,7 @@ function script eldicastes_c {
mes "If you are going to leave, better be now.";
mes "Come back to me once you are ready to leave.";
mes "I will let you know your mission.";
- set ep13_3_invite, 3;
+ ep13_3_invite = 3;
close;
case 2:
mes "[Vyhannus]";
@@ -6374,7 +6379,7 @@ function script eldicastes_c {
mes "I'm a little excited.";
mes "on what our meeting will bring in the future.";
mes "Only hope it won't be like a blizzard in the middle of the night.";
- set ep13_3_invite, 4;
+ ep13_3_invite = 4;
changequest 7182,7183;
close;
case 3:
@@ -6483,8 +6488,8 @@ function script eldicastes_c {
mes "Vyhannus? I'll come by to see you again.";
mes "And you should ^4d4dffmeet Inspector Doha after talking with Vyhannus^000000.";
mes "Then bye everyone.";
- set ep13_3_invite, 2;
- set ep13_3_secret, 1;
+ ep13_3_invite = 2;
+ ep13_3_secret = 1;
setquest 7185;
next;
disablenpc "Hibba Agip#ep133_is07";
@@ -6704,7 +6709,7 @@ man_in01,315,52,3 script Guard Captain Avalanche 4_MAN_GALTUN,{
mes "[Avalanche]";
mes "Please let me know any news about the capital city when you come back.";
mes "Hahaha..";
- set ep13_3_invite, 5;
+ ep13_3_invite = 5;
changequest 7183,7184;
close2;
}
@@ -6793,7 +6798,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes "This is a little souvenir for visiting El Dicastes.";
mes "You can use it to return to El Dicastes whenever you wish.";
next;
- set ep13_3_invite, 6;
+ ep13_3_invite = 6;
getitem 2844,1; //El_Dicastes_Light
completequest 7184;
mes "[Clerk Rhawyne]";
@@ -6833,7 +6838,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes "It is a separate elevator that leads to the high minister's office";
mes "You will be guided in front of the office.";
delitem 6304,3; //Sapa_Feat_Cert
- set ep13_3_secret, 13;
+ ep13_3_secret = 13;
changequest 7197,7198;
close;
}
@@ -6944,8 +6949,8 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
// Enchantment NPCs
//============================================================
- script dic_enc#main -1,{
- set .@re$, strnpcinfo(1);
- set .@n$, "["+.@re$+"]";
+ .@re$ = strnpcinfo(1);
+ .@n$ = "["+.@re$+"]";
if (!checkweight (1201,1)) {
mes "You have too many kinds of items. Let's try again after you reduce the number of items.";
close;
@@ -6988,7 +6993,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
delitem 6304,6; //Sapa_Feat_Cert
delitem 2844,1; //El_Dicastes_Light
getitem 2844,1; //El_Dicastes_Light
- set ep13_3_ring2,0;
+ ep13_3_ring2 = 0;
}
close;
}
@@ -7025,12 +7030,12 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes "Either you are not wearing or don't have the equipment to upgrade on you.";
close;
}
- set .@v$, "ring2";
- set .@Items_, 2844;
+ .@v$ = "ring2";
+ .@Items_ = 2844;
}
else {
mes .@n$;
- set .@cat_hi, rand(1,30);
+ .@cat_hi = rand(1,30);
if (.@cat_hi == 1) mes "It is difficult to find fish here. Can't find any so Jahbong would forget that he's busy or angry at the sight of a Fish Tail.";
else if (.@cat_hi == 2) mes "Grrr... I was punished with a ladle for peeing on my blanket yesterday.";
else if (.@cat_hi == 3) mes "I dream sometimes of a giant patting me on the head. But I feel more annoyed than afraid.";
@@ -7082,18 +7087,18 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
}
if (.@re$ == "Brare") {
mes "Do you want to look luxurious with Golden Bells?";
- set .@Items_,2843;
- set .@v$, "ring1";
+ .@Items_ = 2843;
+ .@v$ = "ring1";
}
else if (.@re$ == "Mancho") {
mes "You must be interested in the ^800080Feral Tail^000000?";
- set .@Items_,2564;
- set .@v$, "robe";
+ .@Items_ = 2564;
+ .@v$ = "robe";
}
else if (.@re$ == "Jalapeno") {
mes "You've come for Feral Boots. I have just the item for you.";
- set .@Items_,2463;
- set .@v$, "shoe";
+ .@Items_ = 2463;
+ .@v$ = "shoe";
}
next;
switch(select("Please explain.:I want to reset.:I want to upgrade.")) {
@@ -7188,7 +7193,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
next;
mes .@n$;
mes "First upgrade step requires ^8000801 Sapha Certification^000000. Do you want to proceed?";
- set .@req, 1;
+ .@req = 1;
}
else if (getd("ep13_3_"+.@v$) < 9) {
mes .@n$;
@@ -7200,7 +7205,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
next;
mes .@n$;
mes "Second upgrade step requires ^9900992 Exploit Certifications of Sapha^000000. Do you want to proceed?";
- set .@req, 2;
+ .@req = 2;
}
else if (getd("ep13_3_"+.@v$) < 69) {
mes .@n$;
@@ -7221,7 +7226,7 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
mes "this is a delicate process of";
mes "casting immense power to the equipment.";
mes "Are you ready?";
- set .@req, 3;
+ .@req = 3;
}
else if (getd("ep13_3_"+.@v$) > 68 && countitem(.@Items_)) {
mes .@n$;
@@ -7278,36 +7283,36 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
delitem 6304,.@req;
if (getd("ep13_3_"+.@v$) == 0) {
if (.@re$ == "Kareka") {
- set .@enc_en, rand(1,45);
+ .@enc_en = rand(1,45);
setarray .@rates, 45,32,30,22,20,12,10,2;
}
else {
- set .@enc_en, rand(1,40);
+ .@enc_en = rand(1,40);
setarray .@rates, 40,34,30,24,20,14,10,4;
}
setarray .@var, 1,2,3,4,5,6,7,8;
}
else if (getd("ep13_3_"+.@v$) <= 8) {
if (.@re$ == "Kareka") {
- set .@enc_en, rand(1,45);
+ .@enc_en = rand(1,45);
setarray .@rates, 45,32,30,17,15,2;
}
else {
- set .@enc_en, rand(1,30);
+ .@enc_en = rand(1,30);
setarray .@rates, 30,24,20,14,10,4;
}
setarray .@var, 10,20,30,40,50,60;
}
else if (getd("ep13_3_"+.@v$) <= 68) {
if (compare(.@v$,"ring")) {
- set .@enc_en, rand(1,90);
+ .@enc_en = rand(1,90);
setarray .@rates, 90,62,60,32,30,2;
setarray .@var, 100,200,400,500,700,800;
}
else {
- set .@crs_yong, 140 - (ep13_yong1 / 100);
- if (.@crs_yong < 95) set .@crs_yong, 95;
- set .@enc_en, rand(1,.@crs_yong);
+ .@crs_yong = 140 - (ep13_yong1 / 100);
+ if (.@crs_yong < 95) .@crs_yong = 95;
+ .@enc_en = rand(1,.@crs_yong);
if (.@enc_en > 90) {
delitem .@Items_,1;
setd "ep13_3_"+.@v$, 0;
@@ -7329,13 +7334,13 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
// Enchant Constants
// Ex: .@dex[1]: DEX + 1 | .@cri[5]: CRI + 5 | .@eva[12]: FLEE + 12
- set .@matk[1], 4760; set .@matk[2], 4761;
- set .@eva[6], 4762; set .@eva[12], 4763;
- set .@cri[5], 4764; set .@cri[7], 4765;
- set .@atk[2], 4766; set .@atk[3], 4767;
- set .@dex[1], 4720; set .@dex[2], 4721; set .@dex[3], 4722;
- set .@int[1], 4710; set .@int[2], 4711; set .@int[3], 4712;
- set .@agi[1], 4730; set .@agi[2], 4731; set .@agi[3], 4732;
+ .@matk[1] = 4760; .@matk[2] = 4761;
+ .@eva[6] = 4762; .@eva[12] = 4763;
+ .@cri[5] = 4764; .@cri[7] = 4765;
+ .@atk[2] = 4766; .@atk[3] = 4767;
+ .@dex[1] = 4720; .@dex[2] = 4721; .@dex[3] = 4722;
+ .@int[1] = 4710; .@int[2] = 4711; .@int[3] = 4712;
+ .@agi[1] = 4730; .@agi[2] = 4731; .@agi[3] = 4732;
// Enchant attribute is determined by the digit position of variable value (ep13_3_<type>).
// For example, assume the variable value is 516:
@@ -7348,16 +7353,17 @@ dic_in01,42,264,3 script Adventurer Clerk#ep133 4_MAN_NITT,{
else setarray .@f_2[1],.@agi[1],.@agi[2],.@agi[3],.@int[1],.@int[2],.@int[3],.@dex[1],.@dex[2],.@dex[3];
setarray .@f_3[1],.@agi[1],.@agi[2],.@int[1],.@int[2],.@dex[1],.@dex[2];
setarray .@f_4[1],.@atk[2],.@atk[3],.@cri[5],.@cri[7],.@eva[6],.@eva[12],.@matk[1],.@matk[2];
- set .@str$, getd("ep13_3_"+.@v$) + "";
- set .@len, getstrlen(.@str$);
- set .@j, 4;
- set .@c, 1;
+ .@str$ = getd("ep13_3_"+.@v$) + "";
+ .@len = getstrlen(.@str$);
+ .@j = 4;
+ .@c = 1;
while ((.@len - .@c) > -1 && getd("ep13_3_"+.@v$)) {
setd ".@e_"+.@j, getd(".@f_"+.@j+"["+atoi(charat(.@str$,.@len-.@c))+"]");
- set .@c, .@c + 1;
- set .@j, .@j - 1;
+ ++.@c;
+ --.@j;
}
- for (set .@size, getarraysize(.@rates); .@r <= .@size; set .@r, .@r + 1) {
+ .@size = getarraysize(.@rates);
+ for (.@r = 0; .@r <= .@size; ++.@r) {
if (.@enc_en > .@rates[.@r]) {
setd ".@e_"+.@j, getd(".@f_"+.@j+"["+.@r+"]");
break;
@@ -7382,7 +7388,7 @@ dic_fild01,228,159,4 script Jahbong#pa0829 4_M_MERCAT2,{
mes "Come back to me once you have one. I'll give you something good in exchange.";
close;
}
- set .@cattalkj,rand(1,9);
+ .@cattalkj = rand(1,9);
if (.@cattalkj == 1) mes "Don't touch my back! I might bite you unconsciously.";
else if (.@cattalkj == 2) mes "Pub owner Shay carried something away to make something strange! Be careful!";
else if (.@cattalkj == 3) mes "We cats can jump 5 times our size. Isn't it cool? But then, don't ask me to jump from here now.";
@@ -7397,7 +7403,7 @@ dic_fild01,228,159,4 script Jahbong#pa0829 4_M_MERCAT2,{
mes "Why are you here?";
mes "Jahbong will exchange ^8000801 Sapha Certification^000000 for ^8000801 item^000000!";
next;
- set .@i, select("Just came to see what you have.:I want the Feral Boots!:Give me the Feral Tail!:Give me the Golden Bell!:How much to buy you?")-1;
+ .@i = select("Just came to see what you have.:I want the Feral Boots!:Give me the Feral Tail!:Give me the Golden Bell!:How much to buy you?")-1;
switch (.@i) {
case 0:
mes "[Jahbong]";
@@ -7543,7 +7549,7 @@ moc_para01,44,19,3 script Cat Hand Agent#gekk 4_M_MERCAT2,{
mes "With this, our contract is now complete.";
mes "Geck will help you to get to Ash-Vacuum in one piece.";
Zeny -= 50000;
- set ep13_start, 100;
+ ep13_start = 100;
next;
mes "[Agent Geck]";
mes "Don't forget, human. The reason why Geck is helping you is to help the Cat Hand Merchant working hard in the other world.";
diff --git a/npc/re/quests/quests_eclage.txt b/npc/re/quests/quests_eclage.txt
index 0bc237d58..ca784e44d 100644
--- a/npc/re/quests/quests_eclage.txt
+++ b/npc/re/quests/quests_eclage.txt
@@ -46,22 +46,21 @@
mes "[Teleport Cat]";
mes "We provide teleport service between various regions based on our accumulated knowledge. We accept Malangdo Canned Specialties or Zeny, so you can pay however you like it~";
next;
- set .@menu$,"Forget it:";
- for(set .@i,0; .@i<getarraysize(.@map$); set .@i,.@i+1) {
- set .@menu$, .@menu$+
- .@map$[.@i]+" ("+.@cost[.@i]+" Canned Food):"+
- .@map$[.@i]+" ("+.@cost[.@i]+",000 Zeny):";
+ .@menu$ = "Forget it:";
+ for(.@i = 0; .@i<getarraysize(.@map$); ++.@i) {
+ .@menu$ += .@map$[.@i]+" ("+.@cost[.@i]+" Canned Food):"+
+ .@map$[.@i]+" ("+.@cost[.@i]+",000 Zeny):";
}
- set .@i, select(.@menu$)-2;
+ .@i = select(.@menu$)-2;
if (.@i == -1) {
mes "[Teleport Cat]";
mes "I'll see you later then.";
close;
}
- set .@choice$, .@map$[.@i/2];
- set .@price, .@cost[.@i/2];
+ .@choice$ = .@map$[.@i/2];
+ .@price = .@cost[.@i/2];
if (.@i % 2) {
- set .@price, .@price*1000;
+ .@price *= 1000;
if (Zeny < .@price) {
mes "[Teleport Cat]";
mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
@@ -136,7 +135,7 @@ ecl_fild01,94,322,5 script Security Guard#ep14_2 4_M_FAIRYSOLDIER,{
mes "[Security Guard]";
mes "If you completed your forms, please submit them to the administrator over there.";
mes "There may be some waiting time, so take your time.";
- set ep14_2_enter,1;
+ ep14_2_enter = 1;
setquest 11310;
close;
} else if (ep14_2_enter == 1) {
@@ -154,7 +153,7 @@ ecl_fild01,94,322,5 script Security Guard#ep14_2 4_M_FAIRYSOLDIER,{
next;
mes "[Security Guard]";
mes "There would be no need for any separate translation, and there are enough bridges for on-foot races, so I hope you have a comfortable visit.";
- set ep14_2_enter,3;
+ ep14_2_enter = 3;
erasequest 11311;
close2;
warp "eclage",100,28;
@@ -321,7 +320,7 @@ ecl_fild01,111,320,2 script Immigration Officer#ep1 4_M_FAIRYKID4,{
mes "[Mark Esha]";
mes "My goodness......";
emotion e_swt2,1;
- set ep14_2_enter,2;
+ ep14_2_enter = 2;
erasequest 11310;
setquest 11311;
close2;
@@ -347,7 +346,7 @@ eclage,102,32,4 script Fairy Carpenter#ep14_2 4_M_FAIRYKID2,{
emotion e_sob;
close;
}
- if (checkquest(11312) == -1) {
+ if (!questprogress(11312)) {
mes "[Fairy Carpenter]";
mes "This area is kind of broken, so be careful.";
mes "Otherwise, you'll fall aaaaaall the way down.";
@@ -743,7 +742,7 @@ ecl_in04,109,215,2 script Hiel#pa0829 4_M_FAIRYSCHOLAR,{
// For Eclage
//============================================================
function script F_Eclage_Traveler {
- if (checkquest(7411) > -1 && checkquest(7412) > -1 && checkquest(7413) > -1) {
+ if (questprogress(7411) && questprogress(7412) && questprogress(7413)) {
cutin "minuel01.bmp",4;
donpcevent "Eclage Guard#tl01::OnEnable";
mes "[Eclage Guard]";
@@ -781,7 +780,7 @@ function script F_Eclage_Traveler {
erasequest 7412;
erasequest 7413;
setquest 7414;
- set ep14_2_tl,1;
+ ep14_2_tl = 1;
donpcevent "Eclage Guard#tl01::OnDisable";
close2;
cutin "minuel01.bmp",255;
@@ -792,7 +791,7 @@ function script F_Eclage_Traveler {
ecl_in01,32,52,4 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{
if (ep14_2_tl == 0) {
- if (checkquest(7411) == -1) {
+ if (!questprogress(7411)) {
mes "[Fome]";
mes "Come here and have a talk with us.";
mes "My name is Fome and I'm from the central region of Alpheim.";
@@ -903,7 +902,7 @@ ecl_in01,32,52,4 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{
close;
}
OnTouch:
- if (ep14_2_tl == 0 && checkquest(7411) == -1 && checkquest(7412) == -1 && checkquest(7413) == -1) {
+ if (ep14_2_tl == 0 && !questprogress(7411) && !questprogress(7412) && !questprogress(7413)) {
mes "A group of travelers of Alpheim are having a conversation.";
emotion e_loud;
next;
@@ -920,7 +919,7 @@ OnTouch:
ecl_in01,32,51,6 script Traveler Litrip#tl02 4_M_DOGTRAVELER,{
if (ep14_2_tl == 0) {
- if (checkquest(7412) == -1) {
+ if (questprogress(7412)) {
mes "[Litrip]";
mes "Oh, look at this strange traveler.";
mes "Come here. My name is Litrip.";
@@ -1008,7 +1007,7 @@ ecl_in01,32,51,6 script Traveler Litrip#tl02 4_M_DOGTRAVELER,{
ecl_in01,35,51,2 script Traveler Chiba#tl03 4_M_DOGTRAVELER2,{
if (ep14_2_tl == 0) {
- if (checkquest(7413) == -1) {
+ if (questprogress(7413)) {
mes "[Chiba]";
mes "You're human from Midgard.";
mes "I'm Chiba.";
@@ -1111,7 +1110,7 @@ ecl_in01,82,70,2 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{
mes "Please follow me then.";
erasequest 7414;
setquest 7415;
- set ep14_2_tl,2;
+ ep14_2_tl = 2;
close2;
warp "ecl_in03",244,89;
cutin "minuel02.bmp",255;
@@ -1157,7 +1156,7 @@ ecl_in01,82,70,2 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{
mes "I see you pretty often.";
mes "I was notified in advance that the Chief of Staff requested for an audience.";
next;
- if (checkquest(7416,PLAYTIME) < 2) {
+ if (questprogress(7416,PLAYTIME) != 2) {
mes "[Eclage Guard]";
mes "But I'm afraid it's too early.";
mes "I think you have to wait for a while.";
@@ -1176,7 +1175,7 @@ ecl_in01,82,70,2 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{
case 1:
mes "[Eclage Guard]";
mes "Follow me, please.";
- set ep14_2_tl,4;
+ ep14_2_tl = 4;
close2;
warp "ecl_in03",58,72;
cutin "minuel02.bmp",255;
@@ -1210,7 +1209,7 @@ ecl_in01,82,70,2 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{
end;
}
} else if (ep14_2_tl == 5) {
- if (checkquest(7418) == -1) {
+ if (!questprogress(7418)) {
cutin "minuel01.bmp",2;
mes "[Eclage Guard]";
mes "Eh, good to see you again.";
@@ -1423,12 +1422,12 @@ ecl_in03,245,93,2 script Chief of Staff#tl01 4_F_FAIRY,{
mes "By the way, the guard who is going to lead you will be at the east gate. Don't forget the time.";
erasequest 7415;
setquest 7416;
- set ep14_2_tl,3;
+ ep14_2_tl = 3;
close2;
warp "ecl_in01",47,28;
end;
} else if (ep14_2_tl == 3) {
- if (checkquest(7416,PLAYTIME) < 2) {
+ if (questprogress(7416,PLAYTIME) != 2) {
mes "[Shenime]";
mes "You need to wait a little longer to see Mayor Jun.";
mes "He is pretty busy, so please bear with us.";
@@ -1572,7 +1571,7 @@ ecl_in03,41,90,2 script Mayor Jun Kardui#tl01 4_M_FARIYKING,{
mes "I'll be looking forward to seeing you, stranger who will be my friend.";
erasequest 7416;
setquest 7417;
- set ep14_2_tl,5;
+ ep14_2_tl = 5;
close2;
cutin "kardui01.bmp",255;
end;
@@ -1618,7 +1617,7 @@ ecl_fild01,205,86,4 script Eclage Messenger Roy#tl 4_M_FAIRYSOLDIER2,{
mes "...Ah... I'm just feeling sorry for myself, so just continue on your way.";
close;
} else {
- if (checkquest(7419) == -1) {
+ if (!questprogress(7419)) {
mes "[Roy]";
mes "It's hard.";
mes "It really is hard.";
@@ -1705,7 +1704,7 @@ eclage,112,40,4 script Eclage Guard Leo#tl 4_M_FAIRYSOLDIER2,{
mes "I hope you enjoy your trip.";
close;
} else {
- if (checkquest(7420) == -1) {
+ if (!questprogress(7420)) {
mes "[Leo]";
mes "Hi, how are you?";
emotion e_gasp;
diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt
index 0511a1e55..4cd3ec886 100644
--- a/npc/re/quests/quests_malangdo.txt
+++ b/npc/re/quests/quests_malangdo.txt
@@ -73,7 +73,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
close;
}
delitem 12636,10; //Malang_Sp_Can
- set ep13_yong1,10;
+ ep13_yong1 = 10;
mes "[Investment Cat Helper]";
mes "Good!";
mes "Write down here~ and";
@@ -129,7 +129,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
mes "smell... smell...";
next;
if (ep13_yong1 < 10000) {
- set .@cans,10;
+ .@cans = 10;
mes "[Investment Cat Helper]";
mes "This is a familiar smell!!";
mes "If it's so...!!";
@@ -142,7 +142,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
mes "From your smell~ you are below 10,000 accounts.";
mes "Until then, you can get an account by investing ten cans.";
} else {
- set .@cans,20;
+ .@cans = 20;
mes "[Investment Cat Helper]";
mes "Such a stong smell!!";
mes "Then it must be!!";
@@ -178,7 +178,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
mes "You can get a maximum of 10 accounts~";
close;
}
- set .@required, .@input*.@cans;
+ .@required = .@input*.@cans;
mes "[Investment Cat Helper]";
mes "Total " + .@input + " accounts, right?";
mes "The number of cans you need is "+.@required+" pieces.";
@@ -199,7 +199,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
}
if (ep13_yong1 < 10000) {
delitem 12636,.@required; //Malang_Sp_Can
- set ep13_yong1, ep13_yong1+.@input;
+ ep13_yong1 += .@input;
mes "[Investment Cat Helper]";
mes .@input+" accounts were invested in.";
mes "Thank you for your help~";
@@ -213,7 +213,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
} else {
if (.@input + ep13_yong1 > 20000) {
delitem 12636,.@required; //Malang_Sp_Can
- set ep13_yong1,20000;
+ ep13_yong1 = 20000;
mes "[Investment Cat Helper]";
mes "You can have 20,000 accounts max";
mes "according to the trader policy...";
@@ -227,7 +227,7 @@ mal_in02,134,31,5 script Investment Cat Helper 4_WHITETIGER,{
close;
} else {
delitem 12636,.@required; //Malang_Sp_Can
- set ep13_yong1, ep13_yong1+.@input;
+ ep13_yong1 += .@input;
mes "[Investment Cat Helper]";
mes .@input+" accounts have been invested in.";
mes "Thank you for your help~";
@@ -318,13 +318,13 @@ malangdo,184,139,4 script Storekeeper#mal 4_CAT_ADV2,{
mes "What do you take me for?";
next;
if (ep13_yong1 > 999) {
- set .@cans,1;
- set .@zeny,1500;
- set .@i, select("Pay with Can ----- 1 unit:Pay with Zeny ------- 1,500z");
+ .@cans = 1;
+ .@zeny = 1500;
+ .@i = select("Pay with Can ----- 1 unit:Pay with Zeny ------- 1,500z");
} else {
- set .@cans,2;
- set .@zeny,3000;
- set .@i, select("Pay with Can ----- 2units:Pay with Zeny ------- 3,000z");
+ .@cans = 2;
+ .@zeny = 3000;
+ .@i = select("Pay with Can ----- 2units:Pay with Zeny ------- 3,000z");
}
if (getskilllv("NV_BASIC") < 6) {
mes "[Storekeeper]";
@@ -504,7 +504,7 @@ mal_in02,22,62,3 script Tomas#mal 4_CAT_ADMIRAL,{
mes "[Tomas, Village Chief]";
mes "You're just in time. Go to the ^0000FFregular meeting^000000 being held now.";
mes "The meeting place is ^0000FFat the end of the corridor^000000.";
- set ma_tomas,1;
+ ma_tomas = 1;
setquest 11209;
close2;
cutin "",255;
@@ -612,7 +612,7 @@ mal_in02,22,62,3 script Tomas#mal 4_CAT_ADMIRAL,{
next;
mes "[Tomas, Village Chief]";
mes "Then, as village chief and the admiral of the cat association, I'd like you to get along with me as well!";
- set ma_tomas,100;
+ ma_tomas = 100;
completequest 11237;
getitem 6422,30; //Egrade_Coin
close2;
@@ -652,7 +652,7 @@ mal_in02,182,61,3 script President of Meeting#mal 4_M_BOSSCAT,{
next;
mes "[President of Meeting]";
mes "Umm... Yes. Then, please say first, ^6666ccScottfold^000000.";
- set ma_tomas,2;
+ ma_tomas = 2;
changequest 11209,11210;
emotion e_paper,0,"Scottfold#mal";
close;
@@ -720,7 +720,7 @@ mal_in02,178,66,5 script Scottfold#mal 4_M_BABYCAT,{
next;
mes "[President of Meeting]";
mes "Then for the next... yes, Koon please speak now.";
- set ma_tomas,3;
+ ma_tomas = 3;
changequest 11210,11211;
emotion e_paper,0,"Koon#mal";
close;
@@ -761,7 +761,7 @@ mal_in02,177,58,7 script Koon#mal 4_CAT_SAILOR3,{
next;
mes "[President of Meeting]";
mes "Yes. Carry on please.";
- set ma_tomas,4;
+ ma_tomas = 4;
changequest 11211,11212;
emotion e_paper,0,"Linguist Devore#mal";
close;
@@ -810,7 +810,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
next;
mes "[Linguist Devore]";
mes "It's like this, for the question, ¬¬¬Ñ¬Ü ¬ã¬Ú?, it says, ¬¡¬Ù ¬ã¬ì¬Þ ¬Õ¬à¬Ò¬â¬Ö, ¬Ò¬Ý¬Ñ¬Ô¬à¬Õ¬Ñ¬â¬ñ. ¬¡ ¬£¬Ú¬Ö?";
- next;
+ next;
mes "[Linguist Devore]";
mes "Though I tried talking to Biscuit like this, there was no feedback.";
next;
@@ -820,7 +820,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
mes "[President of Meeting]";
mes "Ok, we listened well to what Dr. Devore said.";
mes "Then, let's wrap up the progress of the language study, and listen to Geologist, Dr. Mali.";
- set ma_tomas,5;
+ ma_tomas = 5;
changequest 11212,11213;
emotion e_paper,0,"Geologist Mali#mal";
close;
@@ -871,7 +871,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
mes "[Linguist Devore]";
mes "Why are they here and what do they want!";
mes "I'd be good enough if I could just know it!";
- set ma_tomas,19;
+ ma_tomas = 19;
changequest 11225,11226;
close;
} else if (ma_tomas == 19) {
@@ -897,7 +897,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
next;
mes "[Linguist Devore]";
mes "Let's go and hear it together!!";
- set ma_tomas,21;
+ ma_tomas = 21;
changequest 11227,11228;
close;
} else if (ma_tomas < 34) {
@@ -927,7 +927,7 @@ mal_in02,174,64,5 script Linguist Devore#mal 4_CAT_MERMASTER,{
mes "Ah, and I really want to tell this happy news to our chief, Tomas.";
mes "Please!!";
emotion e_hlp;
- set ma_tomas,35;
+ ma_tomas = 35;
changequest 11236,11237;
getitem 6422,30; //Egrade_Coin
close;
@@ -978,7 +978,7 @@ mal_in02,179,57,1 script Geologist Mali#mal 4_CAT_ADV1,{
next;
mes "[President of Meeting]";
mes "Mr. Brie!! I understand what your situation is, but please clam dowm, since we're having a meeting.";
- set ma_tomas,6;
+ ma_tomas = 6;
changequest 11213,11214;
emotion e_paper,0,"Brie#mal";
close;
@@ -1047,7 +1047,7 @@ mal_in02,179,57,1 script Geologist Mali#mal 4_CAT_ADV1,{
mes "[Geologist Mali]";
mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~";
mes "Get out of here and visit the ^6666cca room on your right^000000, mew~";
- set ma_tomas,14;
+ ma_tomas = 14;
setquest 11221;
close;
case 2:
@@ -1093,19 +1093,19 @@ mal_in02,179,57,1 script Geologist Mali#mal 4_CAT_ADV1,{
mes "[Geologist Mali]";
mes "Everyone knows how you, Dr. Devore, are studying hard, mew~!!!";
mes "You do your best, so be more confident, mew~!";
- set ma_tomas,18;
+ ma_tomas = 18;
completequest 11224;
setquest 11225;
setquest 11243;
getitem 6422,20; //Egrade_Coin
close;
} else if (ma_tomas > 99) {
- if (checkquest(11240) > -1 || checkquest(11241) > -1) {
+ if (questprogress(11240) || questprogress(11241)) {
mes "[Geologist Mali]";
mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~.";
mes "Get out of here and visit the ^6666cca room on your right^000000, mew~";
close;
- } else if (checkquest(11242) > -1) {
+ } else if (questprogress(11242)) {
mes "[Geologist Mali]";
mes "Ah! Bob complimented you so much on your great job, mew~";
mes "Please help us next time again when you can, mew~";
@@ -1113,13 +1113,13 @@ mal_in02,179,57,1 script Geologist Mali#mal 4_CAT_ADV1,{
getitem 6422,4; //Egrade_Coin
close;
} else {
- if (checkquest(11243,PLAYTIME) == 0 || checkquest(11243,PLAYTIME) == 1) {
+ if (questprogress(11243,PLAYTIME) == 1) {
mes "[Geologist Mali]";
mes "Don't overdo yourself, mew~";
mes "It'd be bad if your health gets worse, mew~";
close;
}
- if (checkquest(11243,PLAYTIME) == 2)
+ if (questprogress(11243,PLAYTIME) == 2)
erasequest 11243;
mes "[Geologist Mali]";
mes "There is a lot more repairing left to do for today!";
@@ -1157,10 +1157,10 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
} else if (ma_tomas == 14) {
// Dialogue in repeatable quest is identical.
// Uses a variable to determine the quest mode.
- set @mal_bob_q,1;
+ @mal_bob_q = 1;
L_Quest1:
- set .@i, @mal_bob_q;
- set @mal_bob_q,0;
+ .@i = @mal_bob_q;
+ @mal_bob_q = 0;
mes "[Bob]";
mes "You bow-wow! bow! wow! I mew! mew! mew!";
mes "I'm into juice from delicious fish, mew~";
@@ -1219,7 +1219,7 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
mes "Ah, right...";
mes "^0000ffYou may fall into the gap of the crack, unfortunately, so please watch out.^000000";
if (.@i == 1) {
- set ma_tomas,15;
+ ma_tomas = 15;
changequest 11221,11222;
} else
changequest 11240,11241;
@@ -1288,14 +1288,14 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
mes "I will tell Dr. Mali!";
if (countitem(6434) > 0)
delitem 6434,1; //Fix_Kit
- set ma_tomas,17;
+ ma_tomas = 17;
changequest 11223,11224;
close;
} else if (ma_tomas > 99) {
- if (checkquest(11240) > -1) {
- set @mal_bob_q,2;
+ if (questprogress(11240)) {
+ @mal_bob_q = 2;
goto L_Quest1;
- } else if (checkquest(11241) > -1)
+ } else if (questprogress(11241))
goto L_Quest2;
}
mes "[Bob]";
@@ -1307,17 +1307,17 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
- script Crack#mal0 -1,{
if (.off) end; // Official script uses a 1-second timer to disable cracks. Added to prevent abuse.
- if (ma_tomas == 15 || checkquest(11241) > -1) {
+ if (ma_tomas == 15 || questprogress(11241)) {
if (countitem(6434) < 1) {
mes "- To repair the crack -";
mes "- you need a Fix Kit. -";
close;
}
- set .@ma_cr1, rand(1,10);
+ .@ma_cr1 = rand(1,10);
if (.@ma_cr1 < 5) {
mes "- Ground is a bit cracked. -";
mes "- Used a stapler. -";
- set .off,1;
+ .off = 1;
donpcevent "Crackt"+substr(strnpcinfo(2),3,getstrlen(strnpcinfo(2))-1)+"#mal::OnEnable";
close;
} else if (.@ma_cr1 == 7) {
@@ -1360,17 +1360,17 @@ mal_in02,140,94,0 script Bob#mal 4_CAT_DOWN,{
if (rand(1,3) == 2) {
mes "- Let's get back to report this. -";
if (ma_tomas == 15) {
- set ma_tomas,16;
+ ma_tomas = 16;
changequest 11222,11223;
}
- if (checkquest(11241) > -1) {
+ if (questprogress(11241)) {
changequest 11241,11242;
}
} else {
mes "- Let's find -";
mes "- the other cracks. -";
}
- set .off,1;
+ .off = 1;
donpcevent "Crackt"+substr(strnpcinfo(2),3,getstrlen(strnpcinfo(2))-1)+"#mal::OnEnable";
close;
}
@@ -1385,7 +1385,7 @@ OnEnable:
enablenpc strnpcinfo(0);
end;
OnDisable:
- set .off,0;
+ .off = 0;
disablenpc strnpcinfo(0);
end;
}
@@ -1478,7 +1478,7 @@ mal_in02,181,55,3 script Brie#mal 4_CAT_SAILOR2,{
mes "[President of Meeting]";
mes "Well, let's have a break for now.";
mes "In time, Samuel brought Seaweed and tuna here.";
- set ma_tomas,7;
+ ma_tomas = 7;
completequest 11214;
setquest 11215;
close;
@@ -1505,7 +1505,7 @@ mal_in02,181,55,3 script Brie#mal 4_CAT_SAILOR2,{
next;
mes "[Brie]";
mes "My father will be staying there saying he's really bored today again...";
- set ma_tomas,8;
+ ma_tomas = 8;
changequest 11215,11216;
close;
case 2:
@@ -1552,7 +1552,7 @@ mal_in02,181,55,3 script Brie#mal 4_CAT_SAILOR2,{
mes "[Geologist Mali]";
mes "Now as I get him back home, I'm going to find the participants, mew~";
mes "Cheers!";
- set ma_tomas,13;
+ ma_tomas = 13;
completequest 11220;
close;
}
@@ -1722,7 +1722,7 @@ mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
mes "Ah! Keep the secret to my son for sure~";
mes "Then please^ff99cc!!!^000000 please^ff99cc!!!^000000 please~~~";
emotion e_kis;
- set ma_tomas,9;
+ ma_tomas = 9;
changequest 11216,11217;
close;
case 2:
@@ -1748,7 +1748,7 @@ mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
next;
mes "[Rican]";
mes "Then would you put it in the machine in front of me?";
- set ma_tomas,10;
+ ma_tomas = 10;
changequest 11217,11218;
close;
} else if (ma_tomas == 10) {
@@ -1793,7 +1793,7 @@ mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
mes "[Rican]";
mes "If you see my son, please tell him to get back soon~";
mes "And this is for you to buy something delicious with, since you did hard work.";
- set ma_tomas,12;
+ ma_tomas = 12;
getitem 6422,20; //Egrade_Coin
changequest 11219,11220;
setquest 11239;
@@ -1805,7 +1805,7 @@ mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
mes "If you see my son, please tell him to get back soon~";
close;
} else if (ma_tomas > 99) {
- if (checkquest(11238) != -1) {
+ if (questprogress(11238)) {
if (countitem(6435) < 30) {
mes "[Rican]";
mes "You need exactly 30 to get a set!";
@@ -1819,13 +1819,13 @@ mal_in01,114,169,5 script Rican#mal 4_CAT_SAILOR4,{
setquest 11239;
getitem 6422,5; //Egrade_Coin
close;
- } else if (checkquest(11239,PLAYTIME) == 0 || checkquest(11239,PLAYTIME) == 1) {
+ } else if (questprogress(11239,PLAYTIME) == 1) {
mes "[Rican]";
mes "Would you like to take a rest for a while?";
mes "It hasn't been a day yet since you last worked~";
close;
} else {
- if (checkquest(11239,PLAYTIME) == 2)
+ if (questprogress(11239,PLAYTIME) == 2)
erasequest 11239;
mes "[Rican]";
mes "Hehe~";
@@ -1877,7 +1877,7 @@ mal_in01,116,168,0 script Dry Machine#mal 2_SLOT_MACHINE,{
mes "- The machine starts operating -";
mes "- when he presses the button. -";
delitem 6435,30; //Fresh_Fruit
- set ma_tomas,11;
+ ma_tomas = 11;
changequest 11218,11219;
close;
case 2:
@@ -1900,7 +1900,7 @@ mal_in01,116,168,0 script Dry Machine#mal 2_SLOT_MACHINE,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- if (ma_tomas == 9 || checkquest(11238) > -1) {
+ if (ma_tomas == 9 || questprogress(11238)) {
if (rand(1,5) == 4) {
mes "- As I put my hand in the sand -";
mes "- a fresh smell comes out. -";
@@ -1912,7 +1912,7 @@ mal_in01,116,168,0 script Dry Machine#mal 2_SLOT_MACHINE,{
mes "- Ah, ah! Feels bad... -";
emotion e_omg,1;
}
- set .off,1;
+ .off = 1;
donpcevent "Water Sand"+strnpcinfo(2)+"#mal::OnEnable";
close;
}
@@ -1923,7 +1923,7 @@ OnEnable:
enablenpc strnpcinfo(0);
end;
OnDisable:
- set .off,0;
+ .off = 0;
disablenpc strnpcinfo(0);
end;
}
@@ -2085,7 +2085,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "Hey... Don't look down on me!";
emotion e_ag;
donpcevent "Linguist Devore#mald::OnDisable";
- set ma_tomas,22;
+ ma_tomas = 22;
completequest 11228;
setquest 11229;
close;
@@ -2129,7 +2129,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "So we haven't needed any more explanation or flowery words...";
mes "Woo, it's bothering me so much!";
if (ma_tomas == 22)
- set ma_tomas,23;
+ ma_tomas = 23;
if (ma_tomas == 25)
close;
next;
@@ -2149,7 +2149,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "It was a life like a flame... Sob sob sob sob";
emotion e_sob;
if (ma_tomas == 23)
- set ma_tomas,24;
+ ma_tomas = 24;
if (ma_tomas == 25)
close;
next;
@@ -2162,7 +2162,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "Now, those cats already occupied it as they wanted.";
mes "It's a problem because Star Candy is too kind...";
if (ma_tomas == 24) {
- set ma_tomas,25;
+ ma_tomas = 25;
changequest 11229,11230;
}
if (ma_tomas == 25)
@@ -2181,7 +2181,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "You can get the jellies around here.";
mes "It's not that difficult, and you should come back before Star Candy's meal time!";
mes "About 30 jellies would be okay for a meal.";
- set ma_tomas,26;
+ ma_tomas = 26;
changequest 11230,11231;
close;
case 2:
@@ -2204,10 +2204,10 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
} else if (ma_tomas == 26) {
// Dialogue in repeatable quest is identical.
// Uses a variable to determine the quest mode.
- set @mal_bob_q,1;
+ @mal_bob_q = 1;
L_Quest:
- set .@i, @mal_bob_q;
- set @mal_bob_q,0;
+ .@i = @mal_bob_q;
+ @mal_bob_q = 0;
if (countitem(12624) < 30) {
mes "[Biscuit]";
mes "It's not enough at all~";
@@ -2219,7 +2219,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "There won't be any problem to prepare her meal.";
delitem 12624,30; //Delicious_Jelly
if (.@i == 1) {
- set ma_tomas,27;
+ ma_tomas = 27;
changequest 11231,11232;
} else {
erasequest 11244;
@@ -2294,7 +2294,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "[Biscuit]";
mes "Then please find the brush to wash her and get a basket to move water here.";
mes "Maybe they're stacked in the storage.";
- set ma_tomas,28;
+ ma_tomas = 28;
changequest 11232,11233;
close;
} else if (ma_tomas == 28) {
@@ -2304,7 +2304,7 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "You brought the tools successfully.";
mes "Now you can wash the dry skin in the counter-clockwise direction!";
mes "Right, then from her left leg...!";
- set ma_tomas,29;
+ ma_tomas = 29;
changequest 11233,11234;
close;
} else if (countitem(6433) && countitem(6431)) {
@@ -2378,22 +2378,22 @@ mal_dun01,136,122,3 script Biscuit#mal 4_ASTER,{
mes "[Biscuit]";
mes "This is not for you... and all of you, either. It's rather for Star Candy to get rest as soon as possible, you know!";
emotion e_pif;
- set ma_tomas,34;
+ ma_tomas = 34;
erasequest 11235;
setquest 11236;
getitem 6422,100; //Egrade_Coin
getitem 12636,20; //Malang_Sp_Can
close;
} else if (ma_tomas > 99) {
- if (checkquest(11244) > -1) {
- set @mal_bob_q,2;
+ if (questprogress(11244)) {
+ @mal_bob_q = 2;
goto L_Quest;
- } else if (checkquest(11245,PLAYTIME) == 0 || checkquest(11245,PLAYTIME) == 1) {
+ } else if (questprogress(11245,PLAYTIME) == 1) {
mes "[Biscuit]";
mes "I'll call you when I need you, so don't worry!";
close;
} else {
- if (checkquest(11245,PLAYTIME) == 2)
+ if (questprogress(11245,PLAYTIME) == 2)
erasequest 11245;
mes "[Biscuit]";
mes "It's the time for Star Candy to have a meal.";
@@ -2575,7 +2575,7 @@ mal_dun01,133,125,5 script Star Candy#mal 4_F_STARFISHGIRL,{
mes "- Unlike the words of Dr. Devore, Biscuit appears fluent in speaking. -";
next;
mes "- I think it's better to let Dr. Devore know this soon. -";
- set ma_tomas,20;
+ ma_tomas = 20;
changequest 11226,11227;
close;
}
@@ -2587,12 +2587,12 @@ mal_dun01,133,125,5 script Star Candy#mal 4_F_STARFISHGIRL,{
}
- script #skin_mal -1,{
- set .@index, atoi(strnpcinfo(2));
+ .@index = atoi(strnpcinfo(2));
switch(.@index) {
- case 29: set .@str$,"dry"; break;
- case 30: set .@str$,"prickly"; break;
- case 31: set .@str$,"chapped"; break;
- case 32: set .@str$,"hard"; break;
+ case 29: .@str$ = "dry"; break;
+ case 30: .@str$ = "prickly"; break;
+ case 31: .@str$ = "chapped"; break;
+ case 32: .@str$ = "hard"; break;
default:
mes "An error has occurred.";
close;
@@ -2613,9 +2613,9 @@ mal_dun01,133,125,5 script Star Candy#mal 4_F_STARFISHGIRL,{
getitem 6431,1; //Bucket
next;
if (rand(1,2) == 1)
- set .@menu$,"Brush.:Stop.:";
+ .@menu$ = "Brush.:Stop.:";
else
- set .@menu$,":Stop.:Brush.";
+ .@menu$ = ":Stop.:Brush.";
switch(select(.@menu$)) {
case 1:
case 3:
@@ -2657,13 +2657,13 @@ mal_dun01,133,125,5 script Star Candy#mal 4_F_STARFISHGIRL,{
mes "Thanks so much.";
break;
default:
- set ma_tomas, ma_tomas+1;
+ ++ma_tomas;
if (.@index == 32)
changequest 11234,11235;
close;
}
cutin "ma_starcandy",2;
- set ma_tomas, ma_tomas+1;
+ ++ma_tomas;
if (.@index == 32)
changequest 11234,11235;
close2;
@@ -2772,13 +2772,13 @@ malangdo,137,200,6 script Pipielle 4_CAT_MERMASTER,{
mes "^770099This cat is working on something, but she asks for help above level 60.^000000";
close;
}
- set .@fish_ss1$, "What are you doing?";
+ .@fish_ss1$ = "What are you doing?";
if (countitem(6451) > 29)
- set .@fish_ss2$, "I caught a lot of strange fishes!";
+ .@fish_ss2$ = "I caught a lot of strange fishes!";
else
- set .@fish_ss2$, (30-countitem(6451))+" of ^bbbbbbUnidentified Fish are required.^000000";
+ .@fish_ss2$ = (30-countitem(6451))+" of ^bbbbbbUnidentified Fish are required.^000000";
if (ma_tomas == 100)
- set .@fish_ss3$, "I met an Admiral Tomas...";
+ .@fish_ss3$ = "I met an Admiral Tomas...";
mes "[Pipielle]";
mes "Would you come here and open your bag for me?";
next;
@@ -2876,7 +2876,7 @@ malangdo,137,200,6 script Pipielle 4_CAT_MERMASTER,{
next;
mes "[Pipielle]";
mes "And this is a small gift for looking after admiral Tomas.";
- set ma_tomas,101;
+ ma_tomas = 101;
getitem 6422,200; //Egrade_Coin
mes "^0000ffReceived 200 E Class Coins.^000000";
close;
@@ -2890,7 +2890,7 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "- Can't go next step due to having too many items. -";
close;
}
- if (checkquest(1152,PLAYTIME) == 0) {
+ if (!questprogress(1152,PLAYTIME)) {
mes "[Gobonge]";
mes "Hmm, investigation is not enough.";
mes "We need go back to basic point.";
@@ -2898,13 +2898,13 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "I might be in pain of stomach";
mes "like usual.";
close;
- } else if (checkquest(1152,PLAYTIME) == 1) {
+ } else if (questprogress(1152,PLAYTIME) == 1) {
erasequest 1152;
- set malang_bad_guys,0;
- } else if (checkquest(1152,PLAYTIME) == 2) {
+ malang_bad_guys = 0;
+ } else if (questprogress(1152,PLAYTIME) == 2) {
completequest 1152;
erasequest 1152;
- set malang_bad_guys,0;
+ malang_bad_guys = 0;
}
if (BaseLevel < 60) {
mes "[Gobonge]";
@@ -2970,7 +2970,7 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "We should get them to help";
mes "our cats' well-being!";
setquest 1145;
- set malang_bad_guys,1;
+ malang_bad_guys = 1;
close;
}
}
@@ -3008,7 +3008,7 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "I need time to concentrate on my stomachache.";
mes "You can go now!";
erasequest 1151;
- set malang_bad_guys,8;
+ malang_bad_guys = 8;
getitem 12636,20; //Malang_Sp_Can
delitem 6427,1; //Bad_Can_Sack
delitem 6426,30; //Bad_Can
@@ -3036,14 +3036,14 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "Sorry, but you should go now";
mes "so that I can concentrate on my stomachache.";
setquest 1152;
- set malang_bad_guys,9;
+ malang_bad_guys = 9;
close;
case 2:
mes "[Gobonge]";
mes "All right, then I will have time";
mes "to concentrate on my stomachache.";
setquest 1153;
- set malang_bad_guys,10;
+ malang_bad_guys = 10;
close;
}
} else if (malang_bad_guys == 9) {
@@ -3071,7 +3071,7 @@ malangdo,175,206,3 script Gobonge#ml 4_CAT_SAILOR5,{
mes "so let's investigate tomorrow!";
erasequest 1155;
setquest 1152;
- set malang_bad_guys,13;
+ malang_bad_guys = 13;
getitem 6422,5; //Egrade_Coin
close;
} else if (malang_bad_guys == 13) {
@@ -3175,7 +3175,7 @@ OnTouch:
if (malang_bad_guys == 1) {
erasequest 1145;
setquest 1146;
- set malang_bad_guys,2;
+ malang_bad_guys = 2;
}
close;
} else if (malang_bad_guys > 2 && malang_bad_guys < 8) {
@@ -3199,7 +3199,7 @@ OnTouch:
if (malang_bad_guys == 3) {
erasequest 1147;
setquest 1148;
- set malang_bad_guys,4;
+ malang_bad_guys = 4;
}
close;
} else if (malang_bad_guys > 7) {
@@ -3229,7 +3229,7 @@ OnTouch:
if (malang_bad_guys == 2) {
erasequest 1146;
setquest 1147;
- set malang_bad_guys,3;
+ malang_bad_guys = 3;
}
close;
}
@@ -3265,7 +3265,7 @@ malangdo,171,163,3 script Awfully Suspious Dealer 4_MASK_SMOKEY,{
mes "You need to search lounge of ship Navi?";
erasequest 1148;
setquest 1149;
- set malang_bad_guys,5;
+ malang_bad_guys = 5;
close;
}
} else if (malang_bad_guys == 5) {
@@ -3344,7 +3344,7 @@ malangdo,171,163,3 script Awfully Suspious Dealer 4_MASK_SMOKEY,{
mes "located in the shining coral area.";
erasequest 1150;
setquest 1151;
- set malang_bad_guys,7;
+ malang_bad_guys = 7;
close;
}
}
@@ -3396,7 +3396,7 @@ OnTouch:
mes "is in Awfully Suspious Dealer in deck.";
erasequest 1149;
setquest 1150;
- set malang_bad_guys,6;
+ malang_bad_guys = 6;
getitem 6427,1; //Bad_Can_Sack
close;
} else if (malang_bad_guys == 6) {
@@ -3447,11 +3447,11 @@ malangdo,125,147,3 script Patrol Leader#ml 4_CAT_SAILOR2,{
mes "I will expect various bad activities.";
erasequest 1153;
setquest 1154;
- set malang_bad_guys,11;
+ malang_bad_guys = 11;
close;
}
} else if (malang_bad_guys == 11) {
- if (checkquest(1154,HUNTING) == 2) {
+ if (questprogress(1154,HUNTING) == 2) {
mes "[Patrol Leader]";
mes "Wow, you did to ^0000FFRed Eruma^000000 so badly!";
mes "I am impressed at your work.";
@@ -3473,7 +3473,7 @@ malangdo,125,147,3 script Patrol Leader#ml 4_CAT_SAILOR2,{
mes "Visit Gobonge now.";
erasequest 1154;
setquest 1155;
- set malang_bad_guys,12;
+ malang_bad_guys = 12;
close;
}
mes "[Patrol Leader]";
@@ -3537,7 +3537,7 @@ malangdo,3,1,3 script Guidance for quest#ml 4_MASK_SMOKEY,{
case 3:
mes "[Helper]";
mes "Yap!";
- set malang_bad_guys,0;
+ malang_bad_guys = 0;
erasequest 1152;
close;
case 4:
@@ -3550,12 +3550,12 @@ malangdo,3,1,3 script Guidance for quest#ml 4_MASK_SMOKEY,{
mes "Yap!";
erasequest 1150;
setquest 1151;
- set malang_bad_guys,7;
+ malang_bad_guys = 7;
close;
case 6:
mes "[Helper]";
mes "Yap!";
- set malang_bad_guys,10;
+ malang_bad_guys = 10;
close;
}
}
@@ -3645,7 +3645,7 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
mes "[Cleanyang]";
mes "There is definitely something I do not know. Meow.";
mes "Meow... I'll clean this place up. Please find something instead of me.";
- set mal_qook,1;
+ mal_qook = 1;
setquest 7260;
close;
}
@@ -3654,7 +3654,7 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
close;
}
} else if (mal_qook == 1) {
- if (checkquest(7261) != -1 && checkquest(7262) != -1 && checkquest(7263) != -1) {
+ if (questprogress(7261) && questprogress(7262) && questprogress(7263)) {
emotion e_omg;
mes "[Cleanyang]";
mes "Uh. What is that? Meow.";
@@ -3698,7 +3698,7 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
mes "Please show this to chef and tell him that Cleanyang really cleaned up very well.";
mes "Well... I'm still afraid of chef...";
mes "...please! Meow!";
- set mal_qook,2;
+ mal_qook = 2;
erasequest 7261;
erasequest 7262;
erasequest 7263;
@@ -3805,7 +3805,7 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
mes "[Cleanyang]";
mes "So let me see you everyday from provided cat's ship biscuit tomorrow.";
mes "You did good job. This is a token of thanks.";
- set mal_qook,6;
+ mal_qook = 6;
getitem 12636,30; //Malang_Sp_Can
getexp 80000,80000;
setquest 7267;
@@ -3839,14 +3839,14 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
next;
switch(select("It's time to promise~:I'm here to see the result~:Shake your butt~")) {
case 1:
- if (checkquest(7267,PLAYTIME) == 0) {
+ if (!questprogress(7267,PLAYTIME)) {
mes "[Cleanyang]";
mes "Uh? Not yet.";
mes "Today's cat's ship biscuit is not provided yet, so I will know that after wait little bit more.";
mes "It might be after chef's distribution of cat's ship biscuit.";
close;
}
- if (checkquest(7268) != -1) {
+ if (questprogress(7268)) {
mes "[Cleanyang]";
mes "My service to you today.";
mes "Recently, there are 9 spot that hided cat's ship biscuit as well.";
@@ -3860,7 +3860,7 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
mes "Please search the 9 spot where hiding frequently.";
close;
}
- if (checkquest(7267,PLAYTIME) == 2)
+ if (questprogress(7267,PLAYTIME) == 2)
completequest 7267;
erasequest 7267;
mes "[Cleanyang]";
@@ -3884,15 +3884,15 @@ mal_in02,76,63,7 script Cleanyang 4_CAT_SAILOR1,{
close;
}
case 2:
- if (checkquest(7268) == -1) {
+ if (!questprogress(7268)) {
mes "[Cleanyang]";
mes "Um? Nobody request for collecting cat's ship biscuit today.";
mes "By the way, what is the result report?";
mes "Are you sick?";
close;
}
- if (checkquest(7261) != -1 && checkquest(7262) != -1 && checkquest(7263) != -1 && checkquest(7269) != -1 && checkquest(7270) != -1 &&
- checkquest(7271) != -1 && checkquest(7272) != -1 && checkquest(7273) != -1 && checkquest(7274) != -1 && checkquest(7275) != -1) {
+ if (questprogress(7261) && questprogress(7262) && questprogress(7263) && questprogress(7269) && questprogress(7270) &&
+ questprogress(7271) && questprogress(7272) && questprogress(7273) && questprogress(7274) && questprogress(7275)) {
mes "[Cleanyang]";
mes "Um, the rising cat's ship biscuit spot!";
mes "Did you collect all fully?";
@@ -3953,7 +3953,7 @@ mal_in02,29,67,0 script #CaptainRoom3 CLEAR_NPC,{
close;
}
if (mal_qook == 1) {
- if (checkquest(7261) == -1) {
+ if (!questprogress(7261)) {
mes "Lots of junk are piled up in a corner of captain's room.";
mes "Cleanyang might not clean in a corner because it is not within his hand.";
next;
@@ -3987,7 +3987,7 @@ mal_in02,29,67,0 script #CaptainRoom3 CLEAR_NPC,{
setquest 7261;
getitem 11536,1; //Cat_Hard_Biscuit
next;
- if (checkquest(7261) != -1 && checkquest(7262) != -1 && checkquest(7263) != -1) {
+ if (questprogress(7261) && questprogress(7262) && questprogress(7263)) {
mes "I guess I searched pretty enough.";
mes "Let's tell Cleanyang that is infested of insects due to cat's ship biscuit is left long time.";
close;
@@ -4000,8 +4000,8 @@ mal_in02,29,67,0 script #CaptainRoom3 CLEAR_NPC,{
mes "I think it's ok now due to we removed all of them.";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7261) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7261)) {
mes "Lots of junk are piled up in a corner of captain's room.";
mes "Cleanyng might not clean in a corner because it is not within his hand.";
mes "He reached out and search under the junk.";
@@ -4031,8 +4031,8 @@ mal_in02,183,49,0 script #MeetingFloor4 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (mal_qook == 1 || checkquest(7268) != -1) {
- if (checkquest(7263) == -1) {
+ if (mal_qook == 1 || questprogress(7268)) {
+ if (!questprogress(7263)) {
mes "This is ventilation window on the floor. It is really close to Cooking table";
mes "I'm trying to ignore that but it is on my mind. What should I do?";
next;
@@ -4056,7 +4056,7 @@ mal_in02,183,49,0 script #MeetingFloor4 CLEAR_NPC,{
getitem 11536,1; //Cat_Hard_Biscuit
if (mal_qook == 1) {
next;
- if (checkquest(7261) != -1 && checkquest(7262) != -1 && checkquest(7263) != -1) {
+ if (questprogress(7261) && questprogress(7262) && questprogress(7263)) {
mes "I guess I searched pretty enough.";
mes "Let's tell Cleanyang that is infested of insects due to cat's ship biscuit is left long time.";
} else
@@ -4078,8 +4078,8 @@ mal_in02,103,22,0 script #MalBed5 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (mal_qook == 1 || checkquest(7268) != -1) {
- if (checkquest(7262) == -1) {
+ if (mal_qook == 1 || questprogress(7268)) {
+ if (!questprogress(7262)) {
mes "This is bed for sailors. There is too much hair and so messy.";
mes "At the corner of under the bed is does not reached hand so I'm thinking too much about that.";
next;
@@ -4096,7 +4096,7 @@ mal_in02,103,22,0 script #MalBed5 CLEAR_NPC,{
getitem 11536,1; //Cat_Hard_Biscuit
if (mal_qook == 1) {
next;
- if (checkquest(7261) != -1 && checkquest(7262) != -1 && checkquest(7263) != -1) {
+ if (questprogress(7261) && questprogress(7262) && questprogress(7263)) {
mes "I guess I searched pretty enough.";
mes "Let's tell Cleanyang that is infested of insects due to cat's ship biscuit is left long time.";
} else
@@ -4123,8 +4123,8 @@ malangdo,141,178,0 script #Darkweed6 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7269) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7269)) {
mes "Many weeds are growing in rest area near cat tower.";
mes "It's easily ignored, so it's on my mind.";
next;
@@ -4160,9 +4160,9 @@ malangdo,133,134,0 script Strange Pile of Sand#7 4_SOIL,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- set .@quest, (strnpcinfo(0) == "Strange Pile of Sand#7")?7270:7275;
- if (checkquest(.@quest) == -1) {
+ if (questprogress(7268)) {
+ .@quest = (strnpcinfo(0) == "Strange Pile of Sand#7")?7270:7275;
+ if (!questprogress(.@quest)) {
mes "The pile of sand is billowed like a grave. Should be something in there.";
mes "According to rumors, cats have a habit to bury with sand after stool...";
next;
@@ -4204,8 +4204,8 @@ malangdo,232,131,0 script #UnderStairs8 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7271) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7271)) {
mes "Some weeds are growing under the low stairs.";
mes "It's really hard to find something fell under the stairs..";
next;
@@ -4238,8 +4238,8 @@ mal_in01,74,20,0 script #CornerTower9 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7272) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7272)) {
mes "This cat tower is for playing and resting.";
mes "Dust is piled up because there is gap between the foothold and ground.";
next;
@@ -4269,8 +4269,8 @@ mal_in01,159,225,0 script #CornerLocker10 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7273) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7273)) {
mes "In the corner of the gap between the wall and locker that is used by cat's gamers,";
mes "I can see something there. It's really hard to find object if drop there.";
next;
@@ -4300,8 +4300,8 @@ mal_in01,24,72,0 script #FootholdTower11 CLEAR_NPC,{
mes "- You have too many items so you can't continue the quest. -";
close;
}
- if (checkquest(7268) != -1) {
- if (checkquest(7274) == -1) {
+ if (questprogress(7268)) {
+ if (!questprogress(7274)) {
mes "This cat tower is for playing and resting in Malangdo.";
mes "Dust is piled up because there is gap between the foothold and ground.";
next;
@@ -4411,7 +4411,7 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
mes "Chef is outraged and very upset.";
mes "He mumbled and made a threatening sound with grind his teeth.";
mes "Come back later when he calms down.";
- set mal_qook,3;
+ mal_qook = 3;
erasequest 7264;
setquest 7265;
close;
@@ -4445,7 +4445,7 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
next;
mes "A look of chef is quite serious.";
mes "Let me tell Cleanyang about the result first.";
- set mal_qook,4;
+ mal_qook = 4;
erasequest 7265;
setquest 7266;
close;
@@ -4464,7 +4464,7 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
mes "If you don't mind, just come back tomorrow.";
delitem 577,10; //Grain
delitem 7454,1; //Plain_Sauce
- set mal_qook,5;
+ mal_qook = 5;
erasequest 7266;
setquest 7276;
close;
@@ -4485,7 +4485,7 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
next;
switch(select("What's today's work?:Food Delivery:Just bored...")) {
case 1:
- if (checkquest(7276,PLAYTIME) == 0) {
+ if (questprogress(7276,PLAYTIME)) {
mes "[Chef Nyas]";
mes "Now, cat's ship biscuit is being baked in this oven.";
mes "It's all for your delivery food.";
@@ -4506,12 +4506,12 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
mes "Just take care of them.";
close;
}
- if (checkquest(7276,PLAYTIME) == 2)
+ if (questprogress(7276,PLAYTIME) == 2)
completequest 7276;
mes "[Chef Nyas]";
mes "Here you are.";
mes "I need ingredients for cat's ship biscuit now. Fortunately, you are here at the right moment.";
- if (checkquest(7276) != -1)
+ if (questprogress(7276))
erasequest 7276;
next;
mes "[Chef Nyas]";
@@ -4558,13 +4558,13 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
next;
mes "[Chef Nyas]";
mes "My curious food is...";
- set .@i, rand(1,66);
+ .@i = rand(1,66);
// IDs grouped in 5s incrementally.
setarray .@StartID[0],12061,12091,12041,12071,12056,12086,12051,12081,12046,12076,12066,12096,12429,12434;
mes "^4d4dff "+getitemname(.@StartID[(.@i-1)/5]+((.@i-1)%5))+" ^000000 .";
- set mal_food,.@i;
+ mal_food = .@i;
setquest 7280+.@i;
mes "Just one dish is enough, so please do it together.";
next;
@@ -4595,11 +4595,11 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
mes "Is that ingredients of cat's ship biscuit and the food of human?";
mes "Let me check what you brought...";
next;
- set .@i, mal_food;
+ .@i = mal_food;
// IDs grouped in 5s incrementally.
setarray .@StartID[0],12061,12091,12041,12071,12056,12086,12051,12081,12046,12076,12066,12096,12429,12434;
- set .@food, .@StartID[(.@i-1)/5]+((.@i-1)%5);
+ .@food = .@StartID[(.@i-1)/5]+((.@i-1)%5);
if (countitem(577) >= 10 && countitem(7454) > 0 && countitem(.@food) > 0) {
mes "[Chef Nyas]";
@@ -4610,7 +4610,7 @@ mal_in02,187,58,3 script Chef Nyas 4_CAT_CHEF,{
delitem 7454,1; //Plain_Sauce
delitem .@food,1;
setquest 7276;
- set mal_food,0;
+ mal_food = 0;
erasequest 7280+.@i;
// Quantities grouped in 10s repeating.
@@ -4707,7 +4707,7 @@ malangdo,165,223,4 script Expert Cat#nya_01 4_CAT_SAILOR5,{
mes "The youngest one is Charo, with gold fur.";
mes "Roku has black fur, and Rosy has white fur.";
mes "Please take care of them.";
- set nyadven,1;
+ nyadven = 1;
setquest 7242;
close;
case 2:
@@ -4772,7 +4772,7 @@ malangdo,165,223,4 script Expert Cat#nya_01 4_CAT_SAILOR5,{
mes "It's very kind of you to play with the kids.";
mes "This is for you.";
delitem 6430,6; //Picture_Piece
- set nyadven,14;
+ nyadven = 14;
getitem 6422,100; //Egrade_Coin
completequest 7259;
next;
@@ -4877,7 +4877,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
mes "made by the Meow Bravery Team!";
mes "Challenge it whenever you want to!";
delitem 746,1; //Glass_Bead
- set nyadven,2;
+ nyadven = 2;
getitem 12636,30; //Malang_Sp_Can
close;
case 2:
@@ -4921,7 +4921,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
next;
mes "Got Adventure Card from the yellow cat Charo.";
mes "It seems to work if I put this card in the slot in the Beginning Compass.";
- set nyadven,3;
+ nyadven = 3;
getitem 6428,1; //Bravery_Card_A
changequest 7242,7243;
next;
@@ -4950,8 +4950,8 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
mes "Oh? Isn't this failed stamp from Bubi?";
mes "I'm really disappointed.";
mes "Try again~ you can make it!";
- set nyadven02,0;
- if (checkquest(7257) > -1)
+ nyadven02 = 0;
+ if (questprogress(7257))
erasequest 7257;
close;
}
@@ -4998,7 +4998,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
mes "Oh, you might shut your eyes to the fact.";
mes "Give the Adventure Card back!";
delitem 6428,1; //Bravery_Card_A
- set nyadven,5;
+ nyadven = 5;
erasequest 7243;
close;
case 2:
@@ -5013,7 +5013,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
next;
mes "- Changed Adventure Card A into Adventure Card B. -";
delitem 6428,1; //Bravery_Card_A
- set nyadven,6;
+ nyadven = 6;
getitem 6429,1; //Bravery_Card_B
setquest 7246;
erasequest 7243;
@@ -5039,7 +5039,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
mes "It shouldn't happen that the detective misunderstands you as an enemy!";
next;
mes "- Changed Adventure Card A into Adventure Card B. -";
- set nyadven,6;
+ nyadven = 6;
getitem 6429,1; //Bravery_Card_B
setquest 7246;
next;
@@ -5115,7 +5115,7 @@ malangdo,211,203,4 script [Meow Team] Charo#nya_11 4_CAT_ADV2,{
mes "We couldn't make the Bravery Team without Rato.";
mes "Please.";
mes "Tell him we didn't forget our home island.";
- set nyadven,13;
+ nyadven = 13;
changequest 7258,7259;
close;
} else if (nyadven == 13) {
@@ -5251,7 +5251,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "Charo likes you so much.";
mes "He will be happy if you come.";
delitem 6428,1; //Bravery_Card_A
- set nyadven02,29;
+ nyadven02 = 29;
getitem 6422,3; //Egrade_Coin
getexp 20000,20000;
erasequest 7244;
@@ -5290,8 +5290,8 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "Beginning Compass, start!";
delitem 12636,1; //Malang_Sp_Can
getitem 6428,1; //Bravery_Card_A
- set nyadven02,0;
- if (checkquest(7257) > -1)
+ nyadven02 = 0;
+ if (questprogress(7257))
erasequest 7257;
close;
case 2:
@@ -5324,7 +5324,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "Is this because of the machine?";
mes "Let's make void for this race.";
delitem 6428,1; //Bravery_Card_A
- set nyadven02,0;
+ nyadven02 = 0;
erasequest 7244;
erasequest 7245;
close;
@@ -5336,7 +5336,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "Do you want to try again?";
mes "I will delete the report of the failed result.";
} else {
- if (checkquest(7257,PLAYTIME) == 0 || checkquest(7257,PLAYTIME) == 1) {
+ if (questprogress(7257,PLAYTIME) == 1) {
mes "[Roku]";
mes "No, not yet.";
mes "Duruduru race is only once for a day.";
@@ -5347,7 +5347,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "I know that you will try the Duruduru race.";
mes "I deleted your last report.";
}
- if (checkquest(7257) > -1)
+ if (questprogress(7257))
erasequest 7257;
next;
mes "[Roku]";
@@ -5372,7 +5372,7 @@ malangdo,215,201,3 script [Meow Team] Roku#nya_10 4_CAT_DOWN,{
mes "Beginning Compass, start!";
delitem 12636,1; //Malang_Sp_Can
getitem 6428,1; //Bravery_Card_A
- set nyadven02,0;
+ nyadven02 = 0;
close;
case 2:
mes "[Roku]";
@@ -5403,13 +5403,13 @@ malangdo,212,204,0 script Beginning Compass#nya_02 CLEAR_NPC,{
if (rand(20) < 10) {
callsub L_Viewpoint,1,1;
mes "The game has started already!";
- set nyadven02,11;
+ nyadven02 = 11;
setquest 7244;
close;
} else {
callsub L_Viewpoint,2,1;
mes "The game has started already!";
- set nyadven02,21;
+ nyadven02 = 21;
setquest 7245;
close;
}
@@ -5462,8 +5462,8 @@ L_Viewpoint:
viewpoint 1,213,89,4,0xFF0000;
break;
}
- for(set .@i,1; .@i<=5; set .@i,.@i+1)
- set .@str$, .@str$+((.@i >= getarg(1))?.@colors$[.@i]:"")+.@Text$[.@i]+" ";
+ for(.@i = 1; .@i<=5; ++.@i)
+ .@str$ += ((.@i >= getarg(1))?.@colors$[.@i]:"")+.@Text$[.@i]+" ";
if (getarg(1) > 1)
mes "After inserting the card and pressing the red button, the path to the destination lit up.";
mes "The order will be "+.@str$+"^000000.";
@@ -5476,27 +5476,27 @@ L_Viewpoint:
mes "This is the Duruduru compass from the Meow Bravery Team.";
close;
}
- set .@index, atoi(strnpcinfo(2));
+ .@index = atoi(strnpcinfo(2));
switch(.@index) {
case 1:
setarray .@var[0],11,25;
- set .@color$,"red";
+ .@color$ = "red";
break;
case 2:
setarray .@var[0],12,22;
- set .@color$,"blue";
+ .@color$ = "blue";
break;
case 3:
setarray .@var[0],13,21;
- set .@color$,"gold";
+ .@color$ = "gold";
break;
case 4:
setarray .@var[0],14,24;
- set .@color$,"green";
+ .@color$ = "green";
break;
case 5:
setarray .@var[0],15,23;
- set .@color$,"white";
+ .@color$ = "white";
break;
}
mes "Delicate "+.@color$+" lights surround the "+strnpcinfo(1)+".";
@@ -5514,33 +5514,33 @@ L_Viewpoint:
while(1) {
switch(.@index) {
case 1:
- set .@nori_a, rand(1,999);
- set .@nori_b, rand(1,999);
- set .@nori_c, .@nori_a+.@nori_b;
+ .@nori_a = rand(1,999);
+ .@nori_b = rand(1,999);
+ .@nori_c = .@nori_a+.@nori_b;
mes .@nori_a+" + "+.@nori_b+" = ??";
break;
case 2:
- set .@nori_a, rand(1,9);
- set .@nori_b, rand(1,9);
- set .@nori_c, .@nori_a*.@nori_b;
+ .@nori_a = rand(1,9);
+ .@nori_b = rand(1,9);
+ .@nori_c = .@nori_a*.@nori_b;
mes .@nori_a+" x "+.@nori_b+" = ??";
break;
case 3:
- set .@nori_a, rand(600,999);
- set .@nori_b, rand(1,599);
- set .@nori_c, .@nori_a-.@nori_b;
+ .@nori_a = rand(600,999);
+ .@nori_b = rand(1,599);
+ .@nori_c = .@nori_a-.@nori_b;
mes .@nori_a+" - "+.@nori_b+" = ??";
break;
case 4:
- set .@nori_a, rand(1,99);
- set .@nori_b, rand(1,9);
- set .@nori_d, rand(1,9);
- set .@nori_c, .@nori_a+(.@nori_b*.@nori_d);
+ .@nori_a = rand(1,99);
+ .@nori_b = rand(1,9);
+ .@nori_d = rand(1,9);
+ .@nori_c = .@nori_a+(.@nori_b*.@nori_d);
mes .@nori_a+" + "+.@nori_b+" x "+.@nori_d+" = ??";
break;
case 5:
- set .@nori_a, rand(1,9);
- set .@nori_c, .@nori_a+(.@nori_a*.@nori_a);
+ .@nori_a = rand(1,9);
+ .@nori_c = .@nori_a+(.@nori_a*.@nori_a);
mes .@nori_a+" + "+.@nori_a+" x "+.@nori_a+" = ??";
break;
}
@@ -5550,7 +5550,7 @@ L_Viewpoint:
mes "The card slides out with a sound after entering the number.";
mes "^4d4dffYou have passed the "+strnpcinfo(1)+"! Run to the next destination!^000000";
mes "You should run for the next destination.";
- set nyadven02, nyadven02+1;
+ ++nyadven02;
close;
}
mes "You've got wrong answer!";
@@ -5597,9 +5597,9 @@ malangdo,175,163,0 script Meowbell#nya_12 CLEAR_NPC,{
close;
}
if (nyadven02 == 16)
- set .@quest,7244;
+ .@quest = 7244;
else if (nyadven02 == 26)
- set .@quest,7245;
+ .@quest = 7245;
else {
mes "There is a one more little bell beside the huge notice bell in the deck.";
mes "This is the Meowbell from the Meow Bravery Team.";
@@ -5616,9 +5616,9 @@ malangdo,175,163,0 script Meowbell#nya_12 CLEAR_NPC,{
viewpoint 2,1,1,3,0xFFFFFF;
viewpoint 2,1,1,4,0xFFFFFF;
viewpoint 2,1,1,5,0xFFFFFF;
- if (checkquest(.@quest,PLAYTIME) == 0 || checkquest(.@quest,PLAYTIME) == 1) {
+ if (questprogress(.@quest,PLAYTIME) == 1) {
mes "Knock Meowbell!!";
- set nyadven02,27;
+ nyadven02 = 27;
changequest .@quest,7257;
next;
if (nyadven == 3) {
@@ -5635,7 +5635,7 @@ malangdo,175,163,0 script Meowbell#nya_12 CLEAR_NPC,{
mes "[Deckhand Bubi]";
mes "Go to Charo with that Adventure Card.";
mes "I will give you a confirmation stamp for success.";
- set nyadven,4;
+ nyadven = 4;
close;
} else {
mes "[Deckhand Bubi]";
@@ -5648,7 +5648,7 @@ malangdo,175,163,0 script Meowbell#nya_12 CLEAR_NPC,{
} else {
mes "-- Beep --";
mes "The card has out with a warning sound.";
- set nyadven02,28;
+ nyadven02 = 28;
changequest .@quest,7257;
next;
mes "[Deckhand Bubi]";
@@ -5790,7 +5790,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
next;
mes "[Homnya]";
mes "Well, stop this machine!!!";
- set nyadven,7;
+ nyadven = 7;
changequest 7246,7247;
close2;
break;
@@ -5844,7 +5844,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
mes "Here is your Adventure Card.";
mes "Stop this machine this time.";
delitem 12636,1; //Malang_Sp_Can
- set nyadven,7;
+ nyadven = 7;
getitem 6429,1; //Bravery_Card_B
close2;
break;
@@ -5894,7 +5894,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
mes "[Nyangson]";
mes "It will be fine because it isn't really a large place.";
mes "I look forward to your active work!";
- set nyadven,10;
+ nyadven = 10;
setquest 7250;
close2;
break;
@@ -5935,7 +5935,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
mes "Please give it back to the Meow Bravery Team~";
mes "For everyone~ Meow~";
mes "These are real treasures!";
- set nyadven,12;
+ nyadven = 12;
erasequest 7250;
erasequest 7251;
erasequest 7252;
@@ -5960,7 +5960,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
erasequest 7254;
erasequest 7255;
erasequest 7256;
- set nyadven,10;
+ nyadven = 10;
setquest 7250;
close2;
}
@@ -6000,7 +6000,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
next;
switch(select("How's the condition of Bang?:Ignore it.")) {
case 1:
- if (checkquest(7249,PLAYTIME) == 0 || checkquest(7249,PLAYTIME) == 1) {
+ if (questprogress(7249,PLAYTIME) == 1) {
mes "[Homnya]";
mes "it's so motivated but it's not the time yet.";
mes "Not yet even though naughty machine is noisy.";
@@ -6010,7 +6010,7 @@ malangdo,172,178,7 script Cat Detective#nya_14 4_CAT_ADV2,{
mes "We also have break time.....";
close2;
} else {
- if (checkquest(7249,PLAYTIME) == 2)
+ if (questprogress(7249,PLAYTIME) == 2)
erasequest 7249;
mes "[Homnya]";
mes "Can you hear how noisy this one is?";
@@ -6102,7 +6102,7 @@ malangdo,174,175,0 script Noisy Machine#nya_13 CLEAR_NPC,{
mes "It looks more unstable as it spins faster.";
close;
}
- if (checkquest(7249,PLAYTIME) == 0 || checkquest(7249,PLAYTIME) == 1) {
+ if (questprogress(7249,PLAYTIME) == 1) {
mes "[Homnya]";
mes "It's so motivated, but it's not time yet.";
mes "Not yet, even though the machine is so noisy.";
@@ -6162,7 +6162,7 @@ malangdo,174,175,0 script Noisy Machine#nya_13 CLEAR_NPC,{
mes "You can get it after you have been through all the difficulties from the Meow Advanture Team.";
mes "And we are not sure if this machine will try to blow up agian, so please come again tomorrow.";
if (nyadven == 7) {
- set nyadven,9;
+ nyadven = 9;
erasequest 7247;
}
delitem 6429,1; //Bravery_Card_B
@@ -6205,7 +6205,7 @@ malangdo,174,175,0 script Noisy Machine#nya_13 CLEAR_NPC,{
mes "[Nyangson]";
mes "It will be fine because it isn't really a large place.";
mes "I look forward to your active work!";
- set nyadven,10;
+ nyadven = 10;
setquest 7250;
close2;
break;
@@ -6230,9 +6230,9 @@ L_ShowLights:
mes "Luminous";
setarray .@color$[0],"Red","Blue","Yellow","Green";
setarray .@Cutin$[0],"nya_red","nya_blue","nya_yellow","nya_green";
- for(set .@i,0; .@i<getarg(0); set .@i,.@i+1) {
- set .@rand, rand(4);
- set .@Lamp[.@i],.@rand;
+ for(.@i = 0; .@i<getarg(0); ++.@i) {
+ .@rand = rand(4);
+ .@Lamp[.@i] = .@rand;
mes .@color$[.@rand];
if (.@i+1 == getarg(0))
mes "Shines according to this order.";
@@ -6243,15 +6243,15 @@ L_ShowLights:
mes "The buttons below are shining now.";
mes "Stop the machine by pressing the right button within time.";
next;
- set .@pass,0;
+ .@pass = 0;
setarray .@count$[0],"first","second","third","fourth","fifth","sixth","seventh","eighth";
- for(set .@i,0; .@i<getarg(0); set .@i,.@i+1) {
+ for(.@i = 0; .@i<getarg(0); ++.@i) {
mes "Which color button do you want to press "+.@count$[.@i]+"?";
next;
// Red <-> Green, Blue <-> Yellow
- set .@j, select("Red:Blue:Yellow:Green");
+ .@j = select("Red:Blue:Yellow:Green");
if (.@Lamp[.@i] == 4-.@j)
- set .@pass,.@pass+1;
+ .@pass += 1;
}
if (.@pass < getarg(0)) {
mes "The speed of spinning is getting faster after pressing the buttons.";
@@ -6274,7 +6274,7 @@ L_ShowLights:
mes "with a huge explosion.";
delitem 6429,1; //Bravery_Card_B
if (nyadven == 7)
- set nyadven,8;
+ nyadven = 8;
close;
}
mes "The speed of the spinning discs gets slower after pressing the buttons.";
@@ -6308,7 +6308,7 @@ function script F_Mal_Picture {
return 1;
else if (nyadven != 10)
return 2;
- else if (checkquest(getarg(0)) > -1)
+ else if (questprogress(getarg(0)))
return 3;
else {
mes getarg(2);
@@ -6319,10 +6319,10 @@ function script F_Mal_Picture {
setquest getarg(0);
getitem 6430,1; //Picture_Piece
next;
- if (checkquest(7251) > -1 && checkquest(7252) > -1 && checkquest(7253) > -1 && checkquest(7254) > -1 && checkquest(7255) > -1 && checkquest(7256) > -1) {
+ if (questprogress(7251) && questprogress(7252) && questprogress(7253) && questprogress(7254) && questprogress(7255) && questprogress(7256)) {
mes "It looks like you can put these pieces of paintings together.";
mes "If I found all the pieces, I should go back to Homnya.";
- set nyadven,11;
+ nyadven = 11;
close;
}
mes "I think this is the treasure Homnya and Nyangson mentioned.";
@@ -6544,7 +6544,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
next;
mes "[Cat Gamers Director]";
mes "We've got to find out the reason for this losing streak.";
- set malang_gamer,1;
+ malang_gamer = 1;
next;
mes "You are getting interested in the cat's story. Let's hear more.";
close;
@@ -6576,7 +6576,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "giving up too many points;";
mes "aggressive point betting;";
mes "and players disappearing?";
- set malang_gamer,2;
+ malang_gamer = 2;
next;
mes "It seems like the gentle looking cat has finished thinking. Let's interrupt the conversion.";
close;
@@ -6646,7 +6646,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Wow. I respect you, "+strcharinfo(0)+".";
mes "Let me ask you a favor.";
mes "Please meet the hard working Manager Cat and ask about our team's attitude these days.";
- set malang_gamer,3;
+ malang_gamer = 3;
setquest 5058;
next;
mes "[Cat Gamers Director]";
@@ -6681,12 +6681,12 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
emotion e_omg;
next;
mes "Cat Gamers Director seems to be in shock. Let's give him some time to calm down.";
- set malang_gamer,5;
+ malang_gamer = 5;
erasequest 5059;
setquest 5060;
close;
} else if (malang_gamer == 5) {
- if (checkquest(5060,PLAYTIME) == 0 || checkquest(5060,PLAYTIME) == 1) {
+ if (questprogress(5060,PLAYTIME) == 1) {
mes "Cat Gamers Director seems to be in shock. Let's give him some time to calm down.";
close;
}
@@ -6726,12 +6726,12 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
next;
mes "[Cat Gamers Director]";
mes "I appreciate your help, "+strcharinfo(0)+". heh~";
- set malang_gamer,6;
+ malang_gamer = 6;
erasequest 5060;
setquest 5061;
close;
} else if (malang_gamer == 6) {
- if (checkquest(5062) == 2 && checkquest(5063) == 2 && checkquest(5064) == 2 && checkquest(5065) == 2) {
+ if (questprogress(5062) == 2 && questprogress(5063) == 2 && questprogress(5064) == 2 && questprogress(5065) == 2) {
mes "[Cat Gamers Director]";
mes "Heh~ It seems some humans are scamming cats around this town.";
next;
@@ -6761,7 +6761,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "What? Really?";
next;
mes "The Cat Gamers Director seems to be shocked once again. Better give him more time to calm down.";
- set malang_gamer,7;
+ malang_gamer = 7;
erasequest 5061;
setquest 5060;
close;
@@ -6780,7 +6780,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "I appreciate your help, "+strcharinfo(0)+". heh~";
close;
} else if (malang_gamer == 7) {
- if (checkquest(5060,PLAYTIME) == 0 || checkquest(5060,PLAYTIME) == 1) {
+ if (questprogress(5060,PLAYTIME) == 1) {
mes "Cat Gamers Director seems to be in shock once again. Better give more time to calm down.";
close;
}
@@ -6804,7 +6804,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
next;
mes "[Cat Gamers Director]";
mes "Heh~ I would much appreciate your help, "+strcharinfo(0)+"~.";
- set malang_gamer,8;
+ malang_gamer = 8;
erasequest 5060;
setquest 5066;
close;
@@ -6842,12 +6842,12 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Now I need to check with our players, see how they really feel.";
mes "Heh~ Why don't you come back tomorrow?";
mes "Heh~ Let me decide what to do after checking their honest petition letters. Heh~";
- set malang_gamer,10;
+ malang_gamer = 10;
erasequest 5067;
setquest 5068;
close;
} else if (malang_gamer == 10) {
- if (checkquest(5068,PLAYTIME) == 0 || checkquest(5068,PLAYTIME) == 1) {
+ if (questprogress(5068,PLAYTIME) == 1) {
mes "[Cat Gamers Director]";
mes "Still receiving petition letters. Heh~";
next;
@@ -6958,7 +6958,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "[Cat Gamers Director]";
mes "We will always welcome you, "+strcharinfo(0)+", as a guest member of the Cat Gamers.";
mes "Heh~";
- set malang_gamer,11;
+ malang_gamer = 11;
erasequest 5068;
getitem 6422,100; //Egrade_Coin
next;
@@ -6980,7 +6980,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Since you will be our team's practicing partner, please come back in an hour.";
mes "Then I will give you our '^0000FFCat Gamers Certificate^000000'.";
mes "Heh~";
- set malang_gamer,12;
+ malang_gamer = 12;
erasequest 5068;
setquest 5069;
getitem 6422,100; //Egrade_Coin
@@ -7014,12 +7014,12 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "[Cat Gamers Director]";
mes "Come back in an hour and I will get you a '^0000FFCat Gamers Certificate^000000'.";
mes "Heh~";
- set malang_gamer,12;
+ malang_gamer = 12;
setquest 5069;
close;
}
} else if (malang_gamer == 12) {
- if (checkquest(5069,PLAYTIME) == 0 || checkquest(5069,PLAYTIME) == 1) {
+ if (questprogress(5069,PLAYTIME) == 1) {
mes "[Cat Gamers Director]";
mes "Heh~ You want to get the '^0000FFCat Gamers Certificate^000000' faster. Heh~ It's not really easy to get such a certificate easily.";
next;
@@ -7051,7 +7051,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "[Cat Gamers Director]";
mes "Heh~ Take this and show us what you've got.";
erasequest 5069;
- set malang_gamer,20;
+ malang_gamer = 20;
getitem 2872,1; //G_Honor_Certificate
next;
mes "[Cat Gamers Director]";
@@ -7133,10 +7133,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
// Detect quest (ID range 5074~5090)
mes "[Cat Gamers Director]";
- if (checkquest(5074,HUNTING) > -1) {
+ if (questprogress(5074,HUNTING)) {
mes "Heh~ It's not like I didn't feed them right... Heh~ I hope it was not too much for you, "+strcharinfo(0)+".";
next;
- if (checkquest(5074,HUNTING) == 2 && countitem(1023) >= 10) {
+ if (questprogress(5074,HUNTING) == 2 && countitem(1023) >= 10) {
delitem 1023,10; //Fish_Tail
callsub L_CompleteQuest,5074,
"Heh~ So, you brought 30 Phens and 10 Fish Tails, just as ordered.";
@@ -7145,10 +7145,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ It says in the note to bring 30 Phens and 10 Fish Tails. Heh~ Maybe you didn't catch enough Phens, or forgot some Fish Tails? Heh~";
close;
}
- } else if (checkquest(5075,HUNTING) > -1) {
+ } else if (questprogress(5075,HUNTING)) {
mes "Heh~ Hmm, 50 Marses, and 30 Milk Bottles... Heh~";
next;
- if (checkquest(5075,HUNTING) == 2 && countitem(519) >= 30) {
+ if (questprogress(5075,HUNTING) == 2 && countitem(519) >= 30) {
delitem 519,30; //Milk
callsub L_CompleteQuest,5075,
"Heh~ Guess they wanted some healthy food. Heh~ They should have just told me... Let me show you my skills. Heh~";
@@ -7157,10 +7157,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ But, where are 50 Marses and 30 Milk Bottles? Heh~ Please see if you haven't missed them...";
close;
}
- } else if (checkquest(5076,HUNTING) > -1) {
+ } else if (questprogress(5076,HUNTING)) {
mes "Heh~ Our team must have some grudge over Team 'Dog n Waltz', enough to ask you for this kind of favor...";
next;
- if (checkquest(5076,HUNTING) == 2) {
+ if (questprogress(5076,HUNTING) == 2) {
callsub L_CompleteQuest,5076,
"Heh~ So you have finished harassing 30 Kobold Archers as noted. Heh~ Outstanding.";
} else {
@@ -7168,11 +7168,11 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ It says on the note, harass 30 Kobold Archers. Heh~ Please check if you have harassed 30 of them already.";
close;
}
- } else if (checkquest(5077,HUNTING) > -1) {
+ } else if (questprogress(5077,HUNTING)) {
mes "Heh~ Ah, quickness training. It's good to see our players trying their best on training.";
mes "Heh~ Yes, nothing is better than mouse catching for improving quickness.";
next;
- if (checkquest(5077,HUNTING) == 2) {
+ if (questprogress(5077,HUNTING) == 2) {
callsub L_CompleteQuest,5077,
"Heh~ Oh, you got some fresh and chubby Cramps. Heh~ Great.";
} else {
@@ -7180,10 +7180,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh? Where are those 10 Cramps you promised? Heh~ You didn't eat them... did you?";
close;
}
- } else if (checkquest(5078,HUNTING) > -1) {
+ } else if (questprogress(5078,HUNTING)) {
mes "Heh~ '50 Peco Peco please!! Let's party.' Hmm... Heh~ 50 Pecos can feed all of our neighbors.";
next;
- if (checkquest(5078,HUNTING) == 2) {
+ if (questprogress(5078,HUNTING) == 2) {
callsub L_CompleteQuest,5078,
"Heh~ Wow, you did bring 50 Peco Pecos. Heh~ I guess we'll really have a party this evening.";
} else {
@@ -7191,7 +7191,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ Where are those Peco Pecos? Still not ready? Heh~";
close;
}
- } else if (checkquest(5079) > -1) {
+ } else if (questprogress(5079)) {
mes "Heh~ Hmm... let me see... Heh~ That's right, I was worrying about our team getting so nervous before the actual game... But, they won't even talk to me about it.";
next;
if (countitem(7038) >= 20) {
@@ -7203,7 +7203,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ Where are those 20 yarns? It says 20 on the note, right...? Please check if you have lost them somewhere.";
close;
}
- } else if (checkquest(5080) > -1) {
+ } else if (questprogress(5080)) {
mes "Heh~ The note says, get me 30 Rat Tails for a snack.";
next;
if (countitem(1016) >= 30) {
@@ -7215,7 +7215,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ Where are those 30 Rat Tails? Please check and come back later.";
close;
}
- } else if (checkquest(5081) > -1) {
+ } else if (questprogress(5081)) {
mes "Heh~ It says 5 on the note... 5 of what? What?! Lemons?";
next;
if (countitem(568) >= 5) {
@@ -7227,7 +7227,7 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ Let's just get 5 Lemons for them, will you? Heh~ I am still not sure where they want to use them...";
close;
}
- } else if (checkquest(5082) > -1) {
+ } else if (questprogress(5082)) {
mes "Heh~ Give us 10 Ice Pieces or 10 Ice Creams!! Heh~ I personally prefer Ice Cream, just so you know.";
next;
if (countitem(7066) >= 10) {
@@ -7243,10 +7243,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
mes "Heh~ Where are the Ice Pieces or Ice Creams? You should get them before they melt...";
close;
}
- } else if (checkquest(5083) > -1 || checkquest(5084) > -1) {
+ } else if (questprogress(5083) || questprogress(5084)) {
mes "Heh~ Here, I found the note from our team. Heh~";
next;
- if (checkquest(5083) > -1) {
+ if (questprogress(5083)) {
mes "[Cat Gamers Director]";
mes "Heh~ It says 'We will meet Eryu together.'. Heh~ Have you met Eryu already? I don't think so... Heh~";
close;
@@ -7254,10 +7254,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
callsub L_CompleteQuest,5084,
"Heh~ Oh, you did meet Eryu. Heh~ I will lecture them later for making you work too much... Heh~";
}
- } else if (checkquest(5085) > -1 || checkquest(5086) > -1) {
+ } else if (questprogress(5085) || questprogress(5086)) {
mes "Heh~ Here, I found the note from our team. Heh~";
next;
- if (checkquest(5085) > -1) {
+ if (questprogress(5085)) {
mes "[Cat Gamers Director]";
mes "Heh~ It says 'We will meet Stew together.'. Heh~ Have you met Stew already? I don't think so... Heh~";
close;
@@ -7265,10 +7265,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
callsub L_CompleteQuest,5086,
"Heh~ Oh, you did meet Stew. Heh~ I will lecture them later for making you work too much... Heh~";
}
- } else if (checkquest(5087) > -1 || checkquest(5088) > -1) {
+ } else if (questprogress(5087) || questprogress(5088)) {
mes "Heh~ Here, I found the note from our team. Heh~";
next;
- if (checkquest(5087) > -1) {
+ if (questprogress(5087)) {
mes "[Cat Gamers Director]";
mes "Heh~ It says 'We will meet Ketchup together.'. Heh~ Have you met Ketchup already? I don't think so... Heh~";
close;
@@ -7276,10 +7276,10 @@ mal_in01,31,210,2 script Cat Gamers Director 4_CAT_MERMASTER,{
callsub L_CompleteQuest,5088,
"Heh~ Oh, you did meet Ketchup. Heh~ I will lecture them later for making you work too much... Heh~";
}
- } else if (checkquest(5089) > -1 || checkquest(5090) > -1) {
+ } else if (questprogress(5089) || questprogress(5090)) {
mes "Heh~ Here, I found the note from our team. Heh~";
next;
- if (checkquest(5089) > -1) {
+ if (questprogress(5089)) {
mes "[Cat Gamers Director]";
mes "Heh~ It says 'We will meet Eff together.'. Heh~ Have you met Eff already? I don't think so... Heh~";
close;
@@ -7328,7 +7328,7 @@ malangdo,127,111,4 script Strange Cat#gamer 4_CAT_SAILOR4,{
mes "What do you want?";
emotion e_what;
next;
- set .@cat_gam, rand(1,10);
+ .@cat_gam = rand(1,10);
select("Ask about the team's attitude...");
if (.@cat_gam == 5) {
mes "[Manager Cat]";
@@ -7348,7 +7348,7 @@ malangdo,127,111,4 script Strange Cat#gamer 4_CAT_SAILOR4,{
next;
mes "[Manager Cat]";
mes "Can you give me that?";
- set malang_gamer,4;
+ malang_gamer = 4;
erasequest 5058;
setquest 5059;
next;
@@ -7422,7 +7422,7 @@ malangdo,127,111,4 script Strange Cat#gamer 4_CAT_SAILOR4,{
mes "["+strcharinfo(0)+"]";
mes "Ok, I will go tell it to the Games Director~";
emotion e_ok,1;
- set malang_gamer,9;
+ malang_gamer = 9;
erasequest 5066;
setquest 5067;
close;
@@ -7606,8 +7606,8 @@ malangdo,161,197,4 script Eryu#gamer 4_CAT,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- if (checkquest(5061) == 0 || checkquest(5061) == 1) {
- if (checkquest(5062) == -1) {
+ if (questprogress(5061) == 1) {
+ if (!questprogress(5062)) {
mes "You found Eryu the cat, and start talking.";
next;
mes "[Eryu]";
@@ -7719,7 +7719,7 @@ malangdo,161,197,4 script Eryu#gamer 4_CAT,{
break;
}
close2;
- } else if (checkquest(5062) == 2) {
+ } else if (questprogress(5062) == 2) {
mes "[Eryu]";
mes "Aren't you the magazine writer?";
mes "What brings you here again...?";
@@ -7739,7 +7739,7 @@ malangdo,161,197,4 script Eryu#gamer 4_CAT,{
mes "This is not possible. Please contact an administrator.";
close2;
}
- } else if (checkquest(5083) == 0 || checkquest(5083) == 1) {
+ } else if (questprogress(5083) == 1) {
mes "[Eryu]";
mes "Who are you?";
next;
@@ -7749,9 +7749,9 @@ malangdo,161,197,4 script Eryu#gamer 4_CAT,{
if (.@inputstr$ == "Come back") {
erasequest 5083;
setquest 5084;
- set .@str$, "You've delivered the message, so let's get away.";
+ .@str$ = "You've delivered the message, so let's get away.";
} else
- set .@str$, "You didn't deliver the right message, but let's still get away.";
+ .@str$ = "You didn't deliver the right message, but let's still get away.";
mes "[Eryu]";
mes "What is this? What do you mean by '"+.@inputstr$+"'...?";
mes "Ah... aren't you the writer?";
@@ -7763,7 +7763,7 @@ malangdo,161,197,4 script Eryu#gamer 4_CAT,{
mes "Eryu seems to recognize you.";
mes .@str$;
close2;
- } else if (checkquest(5084) == 0 || checkquest(5084) == 1) {
+ } else if (questprogress(5084) == 1) {
mes "[Eryu]";
mes "I think you are the writer...";
mes "Hey~ Stop there~";
@@ -7822,8 +7822,8 @@ malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- if (checkquest(5061) == 0 || checkquest(5061) == 1) {
- if (checkquest(5063) == -1) {
+ if (questprogress(5061) == 1) {
+ if (!questprogress(5063)) {
mes "You found Stew the cat, and start talking.";
next;
mes "[Stew]";
@@ -7948,7 +7948,7 @@ malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
break;
}
close2;
- } else if (checkquest(5063) == 2) {
+ } else if (questprogress(5063) == 2) {
mes "[Stew]";
mes "Aren't you from the 'Boom Can' Company?";
mes "Another survey meow?";
@@ -7967,7 +7967,7 @@ malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
mes "This is not possible. Please contact an administrator.";
close2;
}
- } else if (checkquest(5085) == 0 || checkquest(5085) == 1) {
+ } else if (questprogress(5085) == 1) {
mes "[Stew]";
mes "Who are you meow?";
emotion e_what;
@@ -7978,9 +7978,9 @@ malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
if (.@inputstr$ == "Come back") {
erasequest 5085;
setquest 5086;
- set .@str$, "You've delivered the message, so let's get away.";
+ .@str$ = "You've delivered the message, so let's get away.";
} else
- set .@str$, "You didn't deliver the right message, but let's still get away.";
+ .@str$ = "You didn't deliver the right message, but let's still get away.";
mes "[Stew]";
mes "What is this? What do you mean by '"+.@inputstr$+"'? Meow...";
mes "And... Aren't you from the 'Boom Can' Company, meow?";
@@ -7992,7 +7992,7 @@ malangdo,230,197,4 script Stew#gamer 4_CAT_3COLOR,{
mes "Stew seems to recognize you.";
mes .@str$;
close2;
- } else if (checkquest(5086) == 0 || checkquest(5086) == 1) {
+ } else if (questprogress(5086) == 1) {
mes "[Stew]";
mes "I think you are from the 'Boom Can' Company, meow... Who are you, meow~";
next;
@@ -8051,8 +8051,8 @@ malangdo,244,144,4 script Ketchup#gamer 4_CAT_SAILOR3,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- if (checkquest(5061) == 0 || checkquest(5061) == 1) {
- if (checkquest(5064) == -1) {
+ if (questprogress(5061) == 1) {
+ if (!questprogress(5064)) {
mes "You found Ketchup the cat, and start talking.";
next;
mes "[Ketchup]";
@@ -8136,7 +8136,7 @@ malangdo,244,144,4 script Ketchup#gamer 4_CAT_SAILOR3,{
break;
}
close2;
- } else if (checkquest(5064) == 2) {
+ } else if (questprogress(5064) == 2) {
mes "[Ketchup]";
mes "You are...";
emotion e_omg;
@@ -8149,7 +8149,7 @@ malangdo,244,144,4 script Ketchup#gamer 4_CAT_SAILOR3,{
mes "This is not possible. Please contact an administrator.";
close2;
}
- } else if (checkquest(5087) == 0 || checkquest(5087) == 1) {
+ } else if (questprogress(5087) == 1) {
mes "[Ketchup]";
mes "Who are you?";
emotion e_what;
@@ -8182,7 +8182,7 @@ malangdo,244,144,4 script Ketchup#gamer 4_CAT_SAILOR3,{
mes "It seems you need to find Ketchup one more time.";
close2;
}
- } else if (checkquest(5088) == 0 || checkquest(5088) == 1) {
+ } else if (questprogress(5088) == 1) {
mes "[Ketchup]";
mes "Can... 'Cans for Kittens'?";
emotion e_omg;
@@ -8240,8 +8240,8 @@ malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- if (checkquest(5061) == 0 || checkquest(5061) == 1) {
- if (checkquest(5065) == -1) {
+ if (questprogress(5061) == 1) {
+ if (!questprogress(5065)) {
mes "You found Eff the cat, and start talking.";
next;
mes "[Eff]";
@@ -8395,7 +8395,7 @@ malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
break;
}
close2;
- } else if (checkquest(5065) == 2) {
+ } else if (questprogress(5065) == 2) {
mes "[Eff]";
mes "You are--!!";
mes "Meow~ I want to invest. Meow~";
@@ -8417,7 +8417,7 @@ malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
mes "This is not possible. Please contact an administrator.";
close2;
}
- } else if (checkquest(5089) == 0 || checkquest(5089) == 1) {
+ } else if (questprogress(5089) == 1) {
mes "[Eff]";
mes "Who are you, meow?";
next;
@@ -8427,9 +8427,9 @@ malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
if (.@inputstr$ == "Come back") {
erasequest 5089;
setquest 5090;
- set .@str$, "You've delivered the message, so let's get away.";
+ .@str$ = "You've delivered the message, so let's get away.";
} else
- set .@str$, "You didn't deliver the right message, but let's still get away.";
+ .@str$ = "You didn't deliver the right message, but let's still get away.";
mes "[Eff]";
mes "What is this? What do you mean by '"+.@inputstr$+"'? Meow...";
mes "Meow...? Meow! You! Investor meow?";
@@ -8440,7 +8440,7 @@ malangdo,181,119,7 script Eff#gamer 4_CAT_ADV2,{
mes "Eff seems to recognize you.";
mes .@str$;
close2;
- } else if (checkquest(5090) == 0 || checkquest(5090) == 1) {
+ } else if (questprogress(5090) == 1) {
mes "[Eff]";
mes "You are--!!";
mes "Meow~ I want to invest. Meow~";
@@ -8501,8 +8501,8 @@ mal_in01,91,216,4 script Ser#gamer 4_CAT_SAILOR1,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
- if (checkquest(.@i) > -1) {
+ for(.@i = 5074; .@i<=5090; ++.@i) {
+ if (questprogress(.@i)) {
mes "[Ser]";
mes "Hey, ^0000FF"+strcharinfo(0)+"^000000. You haven't done what we asked you for. A promise is a promise, you know.";
next;
@@ -8535,11 +8535,11 @@ mal_in01,91,216,4 script Ser#gamer 4_CAT_SAILOR1,{
mes "Please go get the certificate.";
close;
}
- if (checkquest(5070,PLAYTIME) == 0 || checkquest(5070,PLAYTIME) == 1) {
+ if (questprogress(5070,PLAYTIME) == 1) {
mes "[Ser]";
mes "Is it tomorrow already? I don't think so! Can't you read the time?";
close;
- } else if (checkquest(5070,PLAYTIME) == 2)
+ } else if (questprogress(5070,PLAYTIME) == 2)
erasequest 5070;
mes "[Ser]";
mes "Oh, ^0000FF"+strcharinfo(0)+"^000000? Want to play the Rock Paper Scissors game?";
@@ -8606,7 +8606,7 @@ mal_in01,91,216,4 script Ser#gamer 4_CAT_SAILOR1,{
mes .@count$[.@match]+" match ~~";
if (.@tie) {
mes "Result is even, so we play again.";
- set .@tie,0;
+ .@tie = 0;
}
mes "Try your best!";
next;
@@ -8614,24 +8614,24 @@ mal_in01,91,216,4 script Ser#gamer 4_CAT_SAILOR1,{
mes "Rock! Paper! Scissors!";
next;
- set .@pc, select("Rock:Paper:Scissors")-1;
- set .@npc, rand(3);
+ .@pc = select("Rock:Paper:Scissors")-1;
+ .@npc = rand(3);
emotion .@emote[.@pc],1;
emotion .@emote[.@npc];
mes "["+strcharinfo(0)+"] "+.@rps$[.@pc];
mes "--------------------------------";
mes "[Ser] "+.@rps$[.@npc];
if (.@pc == .@npc) {
- set .@tie,1;
- set .@result$, "Hmm, we are even. Let's play again.";
+ .@tie = 1;
+ .@result$ = "Hmm, we are even. Let's play again.";
} else if ((.@pc == 0 && .@npc == 2) || (.@pc == 1 && .@npc == 0) || (.@pc == 2 && .@npc == 1)) {
- set .@match, .@match+1;
- set .@win, .@win+1;
- set .@result$, "I lost!";
+ ++.@match;
+ ++.@win;
+ .@result$ = "I lost!";
} else {
- set .@match, .@match+1;
- set .@loss, .@loss+1;
- set .@result$, "So I win!!";
+ ++.@match;
+ ++.@loss;
+ .@result$ = "So I win!!";
}
next;
mes "[Ser]";
@@ -8845,8 +8845,8 @@ mal_in01,86,222,4 script Paa#gamer 4_CAT_SAILOR1,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
- if (checkquest(.@i) > -1) {
+ for(.@i = 5074; .@i<=5090; ++.@i) {
+ if (questprogress(.@i)) {
mes "[Paa]";
mes "You haven't done what we asked you for meow. A promise is a promise, you know meow.";
next;
@@ -8879,11 +8879,11 @@ mal_in01,86,222,4 script Paa#gamer 4_CAT_SAILOR1,{
mes "Go get the certificate meow.";
close;
}
- if (checkquest(5070,PLAYTIME) == 0 || checkquest(5070,PLAYTIME) == 1) {
+ if (questprogress(5070,PLAYTIME) == 1) {
mes "[Paa]";
mes "We can only play the game once a day meow. Come tomorrow meow.";
close;
- } else if (checkquest(5070,PLAYTIME) == 2)
+ } else if (questprogress(5070,PLAYTIME) == 2)
erasequest 5070;
mes "[Paa]";
mes "Oh, ^0000FF"+strcharinfo(0)+"^000000 meow? Want to play the Rock Paper Scissors game meow?";
@@ -8938,7 +8938,7 @@ mal_in01,86,222,4 script Paa#gamer 4_CAT_SAILOR1,{
mes .@count$[.@match]+" match ~~ meow.";
if (.@tie) {
mes "Result is even, so we play again meow.";
- set .@tie,0;
+ .@tie = 0;
}
mes "Try your best meow!";
next;
@@ -8946,24 +8946,24 @@ mal_in01,86,222,4 script Paa#gamer 4_CAT_SAILOR1,{
mes "Rock! Paper! Scissors!";
next;
- set .@pc, select("Rock:Paper:Scissors")-1;
- set .@npc, rand(3);
+ .@pc = select("Rock:Paper:Scissors")-1;
+ .@npc = rand(3);
emotion .@emote[.@pc],1;
emotion .@emote[.@npc];
mes "["+strcharinfo(0)+"] "+.@rps$[.@pc];
mes "--------------------------------";
mes "[Ser] "+.@rps$[.@npc];
if (.@pc == .@npc) {
- set .@tie,1;
- set .@result$, "Hmm, we are even. Let's play again meow.";
+ .@tie = 1;
+ .@result$ = "Hmm, we are even. Let's play again meow.";
} else if ((.@pc == 0 && .@npc == 2) || (.@pc == 1 && .@npc == 0) || (.@pc == 2 && .@npc == 1)) {
- set .@match, .@match+1;
- set .@win, .@win+1;
- set .@result$, "I lost meow!";
+ ++.@match;
+ ++.@win;
+ .@result$ = "I lost meow!";
} else {
- set .@match, .@match+1;
- set .@loss, .@loss+1;
- set .@result$, "So I win meow!!";
+ ++.@match;
+ ++.@loss;
+ .@result$ = "So I win meow!!";
}
next;
mes "[Paa]";
@@ -9175,8 +9175,8 @@ mal_in01,91,222,4 script Kuka#gamer 4_M_BABYCAT,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
- if (checkquest(.@i) > -1) {
+ for(.@i = 5074; .@i<=5090; ++.@i) {
+ if (questprogress(.@i)) {
mes "[Kuka]";
mes "You haven't done what we asked you for yo~. A promise is a promise, you know yo~.";
next;
@@ -9209,11 +9209,11 @@ mal_in01,91,222,4 script Kuka#gamer 4_M_BABYCAT,{
mes "Please go get the certificate yo~";
close;
}
- if (checkquest(5071,PLAYTIME) == 0 || checkquest(5071,PLAYTIME) == 1) {
+ if (questprogress(5071,PLAYTIME) == 1) {
mes "[Kuka]";
mes "Is it not tomorrow yet yo~ You can play one game a day yo~ Come back tomorrow yo~";
close;
- } else if (checkquest(5071,PLAYTIME) == 2)
+ } else if (questprogress(5071,PLAYTIME) == 2)
erasequest 5071;
mes "[Kuka]";
mes "Oh great member you, ^0000FF"+strcharinfo(0)+"^000000~ Let's play ChamChamCham yo~";
@@ -9277,19 +9277,19 @@ mal_in01,91,222,4 script Kuka#gamer 4_M_BABYCAT,{
case 1:
if (rand(1000) < 500) {
cutin "g_cat_01",4;
- set .@win, .@win+1;
+ ++.@win;
} else {
cutin "g_cat_02",4;
- set .@loss,1;
+ .@loss = 1;
}
break;
case 2:
if (rand(1000) < 500) {
cutin "g_cat_03",4;
- set .@win, .@win+1;
+ ++.@win;
} else {
cutin "g_cat_04",4;
- set .@loss,1;
+ .@loss = 1;
}
break;
}
@@ -9317,13 +9317,13 @@ mal_in01,91,222,4 script Kuka#gamer 4_M_BABYCAT,{
mes "Present is for 3 wins or more yo~ Nothing for today yo~ But, come again tomorrow yo~";
close;
} else {
- set .@name_record$, $malangdo_gamer$;
- set .@win_record, $malangdo_gamer;
- set .@win_cnt, .@win-.@win_record;
- set .@cans, .@win-2;
+ .@name_record$ = $malangdo_gamer$;
+ .@win_record = $malangdo_gamer;
+ .@win_cnt = .@win-.@win_record;
+ .@cans = .@win-2;
if (.@win > .@win_record) {
- set $malangdo_gamer$, strcharinfo(0);
- set $malangdo_gamer, .@win;
+ $malangdo_gamer$ = strcharinfo(0);
+ $malangdo_gamer = .@win;
mes "[Kuka]";
mes "Congrats yo~ You won ^DE2B21"+.@win+"^000000 in a row yo~";
if (strcharinfo(0) == .@name_record$)
@@ -9497,8 +9497,8 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
- if (checkquest(.@i) > -1) {
+ for(.@i = 5074; .@i<=5090; ++.@i) {
+ if (questprogress(.@i)) {
mes "[KungKung]";
mes "You didn't keep your promise. I have no business with you.";
close;
@@ -9525,11 +9525,11 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
mes "Where is your certificate? You cannot practice with us unless you have that certificate. Go get it.";
close;
}
- if (checkquest(5072,PLAYTIME) == 0 || checkquest(5072,PLAYTIME) == 1) {
+ if (questprogress(5072,PLAYTIME) == 1) {
mes "[KungKung]";
mes "You don't have a watch? Or can't read the time? It's not the time yet.";
close;
- } else if (checkquest(5072,PLAYTIME) == 2)
+ } else if (questprogress(5072,PLAYTIME) == 2)
erasequest 5072;
mes "[KungKung]";
mes "Are you the practice partner? You are late. Let's start right away.";
@@ -9585,8 +9585,8 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
close;
}
while(1) {
- set .@pc_dic, rand(6);
- set .@npc_dic, rand(6);
+ .@pc_dic = rand(6);
+ .@npc_dic = rand(6);
// Emote[58-63]:
// e_dice1, e_dice2, e_dice3, e_dice4, e_dice5, e_dice6
@@ -9596,13 +9596,13 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
if (.@pc_dic > .@npc_dic) {
mes "[KungKung]";
mes "Your dice roll number is higher. You can attack first.";
- set .@attack_turn,1;
+ .@attack_turn = 1;
next;
break;
} else if (.@pc_dic < .@npc_dic) {
mes "[KungKung]";
mes "My dice roll number is higher. I will attack first.";
- set .@attack_turn,2;
+ .@attack_turn = 2;
next;
break;
} else {
@@ -9611,8 +9611,8 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
next;
}
}
- set .@pc_hp,100;
- set .@npc_hp,100;
+ .@pc_hp = 100;
+ .@npc_hp = 100;
while(1) {
if (!.@pc_hp || !.@npc_hp) break;
mes strcharinfo(0)+" (^FF0000"+.@pc_hp+"^000000/100)";
@@ -9634,7 +9634,7 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
emotion e_loud,1;
emotion e_loud;
next;
- set .@cat_hand, rand(1,10);
+ .@cat_hand = rand(1,10);
switch(.@attack_turn) {
case 1: // Attack
mes "How would you like to attack?";
@@ -9646,7 +9646,7 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
switch(select("Back:Palm")) {
case 1:
if (.@cat_hand <= 5) {
- set .@npc_hp, .@npc_hp-10;
+ --.@npc_hp0;
cutin "cat_g_01",4;
specialeffect EF_BASH;
mes "Attack was successful.";
@@ -9654,7 +9654,7 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
next;
cutin "",255;
} else {
- set .@attack_turn,2;
+ .@attack_turn = 2;
cutin "cat_g_02",4;
mes "Attack has failed.";
mes "KungKung starts attack now.";
@@ -9664,14 +9664,14 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
break;
case 2:
if (.@cat_hand <= 5) {
- set .@attack_turn,2;
+ .@attack_turn = 2;
cutin "cat_g_03",4;
mes "Attack has failed.";
mes "KungKung starts attack now.";
next;
cutin "",255;
} else {
- set .@npc_hp, .@npc_hp-10;
+ --.@npc_hp0;
cutin "cat_g_04",4;
specialeffect EF_BASH;
mes "Attack was successful.";
@@ -9692,7 +9692,7 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
switch(select("Back:Palm")) {
case 1:
if (.@cat_hand <= 5) {
- set .@pc_hp, .@pc_hp-10;
+ --.@pc_hp0;
cutin "cat_g_05",4;
specialeffect2 EF_BASH;
mes "Defending has failed.";
@@ -9700,7 +9700,7 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
next;
cutin "",255;
} else {
- set .@attack_turn,1;
+ .@attack_turn = 1;
cutin "cat_g_06",4;
mes "Defending was succesful.";
mes "You can start attack now.";
@@ -9710,14 +9710,14 @@ mal_in01,134,221,4 script KungKung#gamer 4_M_BABYCAT,{
break;
case 2:
if (.@cat_hand <= 5) {
- set .@attack_turn,1;
+ .@attack_turn = 1;
cutin "cat_g_07",4;
mes "Defending was succesful.";
mes "You can start attack now.";
next;
cutin "",255;
} else {
- set .@pc_hp, .@pc_hp-10;
+ .@pc_hp -= 10;
cutin "cat_g_08",4;
specialeffect2 EF_BASH;
mes "Defending has failed.";
@@ -9915,8 +9915,8 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
mes "Your inventory is too full to proceed. Come back after reducing your load.";
close;
}
- for(set .@i,5074; .@i<=5090; set .@i,.@i+1) {
- if (checkquest(.@i) > -1) {
+ for(.@i = 5074; .@i<=5090; ++.@i) {
+ if (questprogress(.@i)) {
mes "[Leader]";
mes "You cannot challenge this Flag Game unless you are done with your assigned work.";
close;
@@ -9943,11 +9943,11 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
mes "You cannot challenge this Flag Game unless you are wearing our certificate item. Please come back later.";
close;
}
- if (checkquest(5073) == 0 || checkquest(5073) == 1) {
+ if (questprogress(5073) == 1) {
mes "[Leader]";
mes "The Flag Game is only available once a day.";
close;
- } else if (checkquest(5073) == 2)
+ } else if (questprogress(5073) == 2)
erasequest 5073;
mes "[Leader]";
mes "Do you want to challege?";
@@ -10001,7 +10001,7 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
}
// Starting Flag Points (default 5).
- set .@flag_point,5;
+ .@flag_point = 5;
setarray .@flag_point_cat[1],5,5,5,5,5;
// Cat players' names.
@@ -10025,69 +10025,69 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
"3|4|5|6"; // Drooping
while(1) {
- for(set .@i,1; .@i<=5; set .@i,.@i+1)
- set .@cat_action[.@i], ((.@flag_point_cat[.@i])?rand(1,8):0);
+ for(.@i = 1; .@i<=5; ++.@i)
+ .@cat_action[.@i] = ((.@flag_point_cat[.@i])?rand(1,8):0);
switch(.@cat_action[1]) {
- case 0: set .@cat_mes$[1], "cannot do anything with all points used"; break;
- case 1: set .@cat_mes$[1], "focuses on hair picking, careless for the game"; break;
- case 2: set .@cat_mes$[1], "looks around with round eyes"; break;
- case 3: set .@cat_mes$[1], "picks out hair around the front paw"; break;
- case 4: set .@cat_mes$[1], "is getting annoyed at tails smacking on the ground"; break;
- case 5: set .@cat_mes$[1], "picks his hair while looking around"; break;
- case 6: set .@cat_mes$[1], "shows off his front paw to the Leader Cat"; break;
- case 7: set .@cat_mes$[1], "is picking some hair on his belly with a calm mind"; break;
- case 8: set .@cat_mes$[1], "is drooping down with a pleasant face"; break;
+ case 0: .@cat_mes$[1] = "cannot do anything with all points used"; break;
+ case 1: .@cat_mes$[1] = "focuses on hair picking, careless for the game"; break;
+ case 2: .@cat_mes$[1] = "looks around with round eyes"; break;
+ case 3: .@cat_mes$[1] = "picks out hair around the front paw"; break;
+ case 4: .@cat_mes$[1] = "is getting annoyed at tails smacking on the ground"; break;
+ case 5: .@cat_mes$[1] = "picks his hair while looking around"; break;
+ case 6: .@cat_mes$[1] = "shows off his front paw to the Leader Cat"; break;
+ case 7: .@cat_mes$[1] = "is picking some hair on his belly with a calm mind"; break;
+ case 8: .@cat_mes$[1] = "is drooping down with a pleasant face"; break;
}
switch(.@cat_action[2]) {
- case 0: set .@cat_mes$[2], "cannot do anything with all points used"; break;
- case 1: set .@cat_mes$[2], "picks out hair around the front paw"; break;
- case 2: set .@cat_mes$[2], "looks around with round eyes"; break;
- case 3: set .@cat_mes$[2], "is getting annoyed with the Leader Cat"; break;
- case 4: set .@cat_mes$[2], "observes flies flying around"; break;
- case 5: set .@cat_mes$[2], "shows off picked hair proudly"; break;
- case 6: set .@cat_mes$[2], "observes Leader Cat's tail curiously"; break;
- case 7: set .@cat_mes$[2], "looks at you with drooping eyes"; break;
- case 8: set .@cat_mes$[2], "is checking you out with a weird glimmer"; break;
+ case 0: .@cat_mes$[2] = "cannot do anything with all points used"; break;
+ case 1: .@cat_mes$[2] = "picks out hair around the front paw"; break;
+ case 2: .@cat_mes$[2] = "looks around with round eyes"; break;
+ case 3: .@cat_mes$[2] = "is getting annoyed with the Leader Cat"; break;
+ case 4: .@cat_mes$[2] = "observes flies flying around"; break;
+ case 5: .@cat_mes$[2] = "shows off picked hair proudly"; break;
+ case 6: .@cat_mes$[2] = "observes Leader Cat's tail curiously"; break;
+ case 7: .@cat_mes$[2] = "looks at you with drooping eyes"; break;
+ case 8: .@cat_mes$[2] = "is checking you out with a weird glimmer"; break;
}
switch(.@cat_action[3]) {
- case 0: set .@cat_mes$[3], "cannot do anything with all points used"; break;
- case 1: set .@cat_mes$[3], "is getting annoyed at tails smacking on the ground"; break;
- case 2: set .@cat_mes$[3], "observes Leader Cat's tail curiously"; break;
- case 3: set .@cat_mes$[3], "is getting annoyed while picking his hair"; break;
- case 4: set .@cat_mes$[3], "scratches with a drooping face"; break;
- case 5: set .@cat_mes$[3], "catches a flying fly and shows off"; break;
- case 6: set .@cat_mes$[3], "is getting irritable with a tired face"; break;
- case 7: set .@cat_mes$[3], "picks his hair while looking around"; break;
- case 8: set .@cat_mes$[3], "is getting annoyed with the Leader Cat"; break;
+ case 0: .@cat_mes$[3] = "cannot do anything with all points used"; break;
+ case 1: .@cat_mes$[3] = "is getting annoyed at tails smacking on the ground"; break;
+ case 2: .@cat_mes$[3] = "observes Leader Cat's tail curiously"; break;
+ case 3: .@cat_mes$[3] = "is getting annoyed while picking his hair"; break;
+ case 4: .@cat_mes$[3] = "scratches with a drooping face"; break;
+ case 5: .@cat_mes$[3] = "catches a flying fly and shows off"; break;
+ case 6: .@cat_mes$[3] = "is getting irritable with a tired face"; break;
+ case 7: .@cat_mes$[3] = "picks his hair while looking around"; break;
+ case 8: .@cat_mes$[3] = "is getting annoyed with the Leader Cat"; break;
}
switch(.@cat_action[4]) {
- case 0: set .@cat_mes$[4], "cannot do anything with all points used"; break;
- case 1: set .@cat_mes$[4], "is picking some hair on his belly with a calm mind"; break;
- case 2: set .@cat_mes$[4], "shows off his front paw to the Leader Cat"; break;
- case 3: set .@cat_mes$[4], "is getting irritable with a tired face"; break;
- case 4: set .@cat_mes$[4], "catches a flying fly and shows off"; break;
- case 5: set .@cat_mes$[4], "shows off an attractive tail"; break;
- case 6: set .@cat_mes$[4], "is drooping and mumbling"; break;
- case 7: set .@cat_mes$[4], "shows off picked hair proudly"; break;
- case 8: set .@cat_mes$[4], "is checking you out with a weird glimmer"; break;
+ case 0: .@cat_mes$[4] = "cannot do anything with all points used"; break;
+ case 1: .@cat_mes$[4] = "is picking some hair on his belly with a calm mind"; break;
+ case 2: .@cat_mes$[4] = "shows off his front paw to the Leader Cat"; break;
+ case 3: .@cat_mes$[4] = "is getting irritable with a tired face"; break;
+ case 4: .@cat_mes$[4] = "catches a flying fly and shows off"; break;
+ case 5: .@cat_mes$[4] = "shows off an attractive tail"; break;
+ case 6: .@cat_mes$[4] = "is drooping and mumbling"; break;
+ case 7: .@cat_mes$[4] = "shows off picked hair proudly"; break;
+ case 8: .@cat_mes$[4] = "is checking you out with a weird glimmer"; break;
}
switch(.@cat_action[5]) {
- case 0: set .@cat_mes$[5], "cannot do anything with all points used"; break;
- case 1: set .@cat_mes$[5], "is fighting with his tail"; break;
- case 2: set .@cat_mes$[5], "is scratching with his hind foot"; break;
- case 3: set .@cat_mes$[5], "is drooping down with a pleasant face"; break;
- case 4: set .@cat_mes$[5], "checks you out with a drooping face"; break;
- case 5: set .@cat_mes$[5], "scratches with a drooping face"; break;
- case 6: set .@cat_mes$[5], "is drooping and mumbling"; break;
- case 7: set .@cat_mes$[5], "is lying around~"; break;
- case 8: set .@cat_mes$[5], "is doing nothing"; break;
+ case 0: .@cat_mes$[5] = "cannot do anything with all points used"; break;
+ case 1: .@cat_mes$[5] = "is fighting with his tail"; break;
+ case 2: .@cat_mes$[5] = "is scratching with his hind foot"; break;
+ case 3: .@cat_mes$[5] = "is drooping down with a pleasant face"; break;
+ case 4: .@cat_mes$[5] = "checks you out with a drooping face"; break;
+ case 5: .@cat_mes$[5] = "scratches with a drooping face"; break;
+ case 6: .@cat_mes$[5] = "is drooping and mumbling"; break;
+ case 7: .@cat_mes$[5] = "is lying around~"; break;
+ case 8: .@cat_mes$[5] = "is doing nothing"; break;
}
switch(rand(3)) {
- case 0: set .@tip$, "You can predict if the cat will wave the flag or not with 'Observe cats'."; break;
- case 1: set .@tip$, "1 Flag Point will be deducted if you choose 'Wave flag'."; break;
- case 2: set .@tip$, "Choosing 'Wait', you can check the results and move on to the next game."; break;
+ case 0: .@tip$ = "You can predict if the cat will wave the flag or not with 'Observe cats'."; break;
+ case 1: .@tip$ = "1 Flag Point will be deducted if you choose 'Wave flag'."; break;
+ case 2: .@tip$ = "Choosing 'Wait', you can check the results and move on to the next game."; break;
}
while(1) {
mes "[Leader]";
@@ -10096,48 +10096,48 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
mes " ";
mes "Tip: ^F86A08"+.@tip$+"^000000";
next;
- set .@choice, select("Observe cats:Wave flag:Wait");
+ .@choice = select("Observe cats:Wave flag:Wait");
switch(.@choice) {
case 1:
mes "Observing cats...";
next;
- for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ for(.@i = 1; .@i<=5; ++.@i) {
mes "[------ Observing cats ------]";
mes .@cat_name$[.@i]+.@cat_desc$[.@i]+" ^FF0000"+.@cat_mes$[.@i]+"^000000.";
next;
}
break;
case 2:
- set .@flag_point, .@flag_point-1;
- set .@you_flag,1;
+ --.@flag_point;
+ .@you_flag = 1;
break;
case 3:
break;
}
if (.@choice != 1) break;
}
- set .@round, .@round+1;
- set .@rounds_nowave, .@rounds_nowave+1;
+ ++.@round;
+ ++.@rounds_nowave;
if (.@you_flag == 1) {
- set .@you_flag$, "You waved the flag";
- set .@emotion[0], e_korea;
+ .@you_flag$ = "You waved the flag";
+ .@emotion[0] = e_korea;
} else {
- set .@you_flag$, "You didn't wave the flag";
- set .@emotion[0], e_swt2;
+ .@you_flag$ = "You didn't wave the flag";
+ .@emotion[0] = e_swt2;
}
- for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ for(.@i = 1; .@i<=5; ++.@i) {
if (.@flag_point_cat[.@i] == 0) {
- set .@cat_flag$[.@i], "Not enough Flag Points, could not wave";
- set .@emotion[.@i], e_ho;
+ .@cat_flag$[.@i] = "Not enough Flag Points, could not wave";
+ .@emotion[.@i] = e_ho;
} else {
if (compare(.@cat_emotes$[.@i],""+.@cat_action[.@i])) {
- set .@cat_flag$[.@i], "Didn't wave";
- set .@emotion[.@i], .@cat_emote[.@i];
+ .@cat_flag$[.@i] = "Didn't wave";
+ .@emotion[.@i] = .@cat_emote[.@i];
} else {
- set .@cat_flag$[.@i], "Did wave";
- set .@flag_point_cat[.@i], .@flag_point_cat[.@i]-1;
- set .@cat_flags_waved, .@cat_flags_waved+1;
- set .@emotion[.@i], e_korea;
+ .@cat_flag$[.@i] = "Did wave";
+ --.@flag_point_cat[.@i];
+ ++.@cat_flags_waved;
+ .@emotion[.@i] = e_korea;
}
}
}
@@ -10150,7 +10150,7 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
mes .@flag_point+" Flag Point remaining.";
emotion .@emotion[0],1;
next;
- for(set .@i,1; .@i<=5; set .@i,.@i+1) {
+ for(.@i = 1; .@i<=5; ++.@i) {
mes "[Leader]";
mes "~ "+.@cat_name$[.@i]+.@cat_desc$[.@i]+" ~";
mes "^FF0000"+.@cat_flag$[.@i]+"^000000 the flag for game ^C1653E"+.@round+"^000000.";
@@ -10159,7 +10159,7 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
next;
}
if (.@you_flag == 1) {
- set .@rounds_nowave,0;
+ .@rounds_nowave = 0;
if (.@cat_flags_waved == 0) {
// You win.
break;
@@ -10170,7 +10170,7 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
next;
break;
} else {
- set .@you_flag,0;
+ .@you_flag = 0;
mes "[Leader]";
mes "You have failed at flag waving.";
mes .@flag_point+" Flag Point remaining.";
@@ -10191,8 +10191,8 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
next;
} else {
if (.@rounds_nowave == 10) {
- set .@rounds_nowave,0;
- set .@flag_point, .@flag_point-1;
+ .@rounds_nowave = 0;
+ --.@flag_point;
mes "[Leader]";
mes "Since you didn't wave your flag for 10 games, 1 Flag Point will be reduced according to the official Flag Game rules.";
next;
@@ -10219,7 +10219,7 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
next;
}
}
- set .@cat_flags_waved,0;
+ .@cat_flags_waved = 0;
}
mes "[Leader]";
mes "The Flag-Waving Game has ended.";
@@ -10240,11 +10240,11 @@ mal_in01,133,214,6 script Leader#gamer 4_CAT_SAILOR3,{
mes "But, only 3 Canned Foods will be given as the present since you didn't take a big part through the game.";
} else {
switch(.@flag_point) {
- case 0: set .@cans,5; break;
- case 1: set .@cans,7; break;
- case 2: set .@cans,10; break;
- case 3: set .@cans,15; break;
- case 4: set .@cans,20; break;
+ case 0: .@cans = 5; break;
+ case 1: .@cans = 7; break;
+ case 2: .@cans = 10; break;
+ case 3: .@cans = 15; break;
+ case 4: .@cans = 20; break;
}
getitem 12636, .@cans; //Malang_Sp_Can
mes "[Leader]";
@@ -10446,8 +10446,8 @@ mal_in01,142,220,6 script Sign#Cat G B2 4_BULLETIN_BOARD2,{
}
mal_in01,155,222,2 script Uneet#gamer 4_LAM,{
- set .@playtime, checkquest(5069,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(5069,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Uneet]";
mes "Wow Wot~ What a busy day~";
mes "Oh, you are the one who won the honorable certificate?";
@@ -10526,11 +10526,11 @@ mal_in01,15,16,3 script Fallen Angel#mal 4_F_VALKYRIE2,{
}
if (getequipid(EQI_GARMENT) == 2573) {
if (Zeny >= 1000000)
- set .@menu$, "Enchant Archangel Wing";
+ .@menu$ = "Enchant Archangel Wing";
else
- set .@menu$, "^999999You do not have enough zeny!^000000";
+ .@menu$ = "^999999You do not have enough zeny!^000000";
} else
- set .@menu$, "^999999You have not equipped the Archangel Wing!^000000";
+ .@menu$ = "^999999You have not equipped the Archangel Wing!^000000";
mes "[Fallen Angel]";
mes "You seem like a poor guy!";
next;
@@ -10587,44 +10587,44 @@ mal_in01,15,16,3 script Fallen Angel#mal 4_F_VALKYRIE2,{
mes "This Archangel Wing is enchanted! Please initialize it or bring another Archangel Wing for me!";
close;
}
- set .@equip_refine, getequiprefinerycnt(EQI_GARMENT);
+ .@equip_refine = getequiprefinerycnt(EQI_GARMENT);
setarray .@equip_card[0], getequipcardid(EQI_GARMENT,0),getequipcardid(EQI_GARMENT,1),getequipcardid(EQI_GARMENT,2);
- set .@i, rand(1,900);
- if (.@i < 2) set .@enchant,4848; //Immuned1
- else if (.@i < 3) set .@enchant,4849; //Cranial1
- else if (.@i < 4) set .@enchant,4852; //Heal_Amount5
- else if (.@i < 9) set .@enchant,4853; //S_Str
- else if (.@i < 14) set .@enchant,4854; //S_Agi
- else if (.@i < 19) set .@enchant,4855; //S_Vital
- else if (.@i < 24) set .@enchant,4856; //S_Int
- else if (.@i < 29) set .@enchant,4857; //S_Dex
- else if (.@i < 34) set .@enchant,4858; //S_Luck
- else if (.@i < 39) set .@enchant,4851; //Heal_Amount4
- else if (.@i < 49) set .@enchant,4850; //Heal_Amount3
- else if (.@i < 74) set .@enchant,4760; //Matk1
- else if (.@i < 84) set .@enchant,4761; //Matk2
- else if (.@i < 109) set .@enchant,4817; //Sharp2
- else if (.@i < 119) set .@enchant,4816; //Sharp3
- else if (.@i < 144) set .@enchant,4814; //Spell2
- else if (.@i < 154) set .@enchant,4813; //Spell3
- else if (.@i < 179) set .@enchant,4833; //Expert_Archer2
- else if (.@i < 189) set .@enchant,4834; //Expert_Archer3
- else if (.@i < 214) set .@enchant,4810; //Fighting_Spirit2
- else if (.@i < 224) set .@enchant,4809; //Fighting_Spirit3
- else if (.@i < 259) set .@enchant,4701; //Strength2
- else if (.@i < 294) set .@enchant,4731; //Agility2
- else if (.@i < 329) set .@enchant,4721; //Dexterity2
- else if (.@i < 364) set .@enchant,4741; //Vitality2
- else if (.@i < 399) set .@enchant,4751; //Luck2
- else if (.@i < 434) set .@enchant,4711; //Inteligence2
- else if (.@i < 504) set .@enchant,4700; //Strength1
- else if (.@i < 574) set .@enchant,4730; //Agility1
- else if (.@i < 644) set .@enchant,4720; //Dexterity1
- else if (.@i < 714) set .@enchant,4740; //Vitality1
- else if (.@i < 784) set .@enchant,4750; //Luck1
- else if (.@i < 854) set .@enchant,4710; //Inteligence1
- else set .@enchant,0;
+ .@i = rand(1,900);
+ if (.@i < 2) .@enchant = 4848; //Immuned1
+ else if (.@i < 3) .@enchant = 4849; //Cranial1
+ else if (.@i < 4) .@enchant = 4852; //Heal_Amount5
+ else if (.@i < 9) .@enchant = 4853; //S_Str
+ else if (.@i < 14) .@enchant = 4854; //S_Agi
+ else if (.@i < 19) .@enchant = 4855; //S_Vital
+ else if (.@i < 24) .@enchant = 4856; //S_Int
+ else if (.@i < 29) .@enchant = 4857; //S_Dex
+ else if (.@i < 34) .@enchant = 4858; //S_Luck
+ else if (.@i < 39) .@enchant = 4851; //Heal_Amount4
+ else if (.@i < 49) .@enchant = 4850; //Heal_Amount3
+ else if (.@i < 74) .@enchant = 4760; //Matk1
+ else if (.@i < 84) .@enchant = 4761; //Matk2
+ else if (.@i < 109) .@enchant = 4817; //Sharp2
+ else if (.@i < 119) .@enchant = 4816; //Sharp3
+ else if (.@i < 144) .@enchant = 4814; //Spell2
+ else if (.@i < 154) .@enchant = 4813; //Spell3
+ else if (.@i < 179) .@enchant = 4833; //Expert_Archer2
+ else if (.@i < 189) .@enchant = 4834; //Expert_Archer3
+ else if (.@i < 214) .@enchant = 4810; //Fighting_Spirit2
+ else if (.@i < 224) .@enchant = 4809; //Fighting_Spirit3
+ else if (.@i < 259) .@enchant = 4701; //Strength2
+ else if (.@i < 294) .@enchant = 4731; //Agility2
+ else if (.@i < 329) .@enchant = 4721; //Dexterity2
+ else if (.@i < 364) .@enchant = 4741; //Vitality2
+ else if (.@i < 399) .@enchant = 4751; //Luck2
+ else if (.@i < 434) .@enchant = 4711; //Inteligence2
+ else if (.@i < 504) .@enchant = 4700; //Strength1
+ else if (.@i < 574) .@enchant = 4730; //Agility1
+ else if (.@i < 644) .@enchant = 4720; //Dexterity1
+ else if (.@i < 714) .@enchant = 4740; //Vitality1
+ else if (.@i < 784) .@enchant = 4750; //Luck1
+ else if (.@i < 854) .@enchant = 4710; //Inteligence1
+ else .@enchant = 0;
Zeny -= 1000000;
delequip EQI_GARMENT;
@@ -10679,7 +10679,7 @@ mal_in01,15,16,3 script Fallen Angel#mal 4_F_VALKYRIE2,{
mes "This equipment has not been enchanted, please check it again!";
close;
}
- set .@equip_refine, getequiprefinerycnt(EQI_GARMENT);
+ .@equip_refine = getequiprefinerycnt(EQI_GARMENT);
setarray .@equip_card[0], getequipcardid(EQI_GARMENT,0),getequipcardid(EQI_GARMENT,1),getequipcardid(EQI_GARMENT,2);
delitem 6417,3; //Silvervine
delequip EQI_GARMENT;
diff --git a/npc/re/quests/quests_malaya.txt b/npc/re/quests/quests_malaya.txt
index 0c9eb2a82..b315771b9 100644
--- a/npc/re/quests/quests_malaya.txt
+++ b/npc/re/quests/quests_malaya.txt
@@ -48,7 +48,7 @@ malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
mes "I will mark on the map the location of Phong in Mumbaki.";
mes "I welcome your visit though the times are harsh.";
viewpoint 1, 185, 358, 0, 0x0A82FF;
- set malaya_hi, 1;
+ malaya_hi = 1;
setquest 7350;
close;
} else if (malaya_hi == 1) {
@@ -70,8 +70,8 @@ malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
mes "I was thinking of giving you the extermination mission that's being carried out in the city. What a shame. ";
close;
}
- .@playtime = checkquest(7405, PLAYTIME);
- if (.@playtime == 0) {
+ .@playtime = questprogress(7405, PLAYTIME);
+ if (!.@playtime) {
mes "[Rodel the Guard]";
mes "Whew, thanks to you, I have one less thing to worry about.";
mes "I will lose less of my things.";
@@ -93,8 +93,8 @@ malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
mes "Come and find me when you decide.";
close;
} else {
- .@hunting = checkquest(7404, HUNTING);
- if (.@hunting == -1) {
+ .@hunting = questprogress(7404, HUNTING);
+ if (!.@hunting) {
mes "[Rodel the Guard]";
switch(rand(1, 6)) {
case 1:
@@ -133,7 +133,7 @@ malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
mes "It would be a simple task for you.";
setquest 7404;
close;
- } else if (.@hunting == 0) {
+ } else if (.@hunting == 0) { // FIXME
mes "[Rodel the Guard]";
mes "You have to get rid of 20 Jejelings.";
mes "20 should be enough to give those Jejelings a good scare.";
@@ -158,7 +158,7 @@ malaya,266,76,3 script Rodel the Guard#malaya 4_MAL_SOLDIER,4,4,{
getexp 200000,200000;
erasequest 7404;
setquest 7405;
- if (rand(1))
+ if (rand(2))
$malayaNames$[1] = strcharinfo(0);
// SavePPL Jejellopy
close;
@@ -258,8 +258,8 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
mes "[Phong in Mumbaki]";
mes "Young friend. Your presence is welcomed anywhere.";
mes "The light from your pure soul will protect you from the darkness.";
- set malaya_hi, 10;
- if (checkquest(7350) > -1)
+ malaya_hi = 10;
+ if (questprogress(7350))
erasequest 7350;
close;
} else if (malaya_hi == 10) {
@@ -356,7 +356,7 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
mes "Yes, because you will become their heart's savior.";
next;
mes "^4d4dffListening to Phong in Mumbaki, you decided to give out Holy Water and Blue Gemstone to the villagers.";
- set malaya_hi, 12;
+ malaya_hi = 12;
erasequest 7358;
setquest 7351;
close;
@@ -382,7 +382,7 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
mes "My grandchild Imelda will create it.";
mes "So don't worry. You don't have to give out any more of your things.";
erasequest 7365;
- set malaya_hi, 20;
+ malaya_hi = 20;
getexp 200000, 200000;
// SavePPL Soul_Protection
close;
@@ -437,7 +437,7 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
mes "[Phong in Mumbaki]";
mes "Gather these flowers, and I'll make a Bouquet out of it and bless it.";
mes "Flowers can be found out side the village.";
- set malaya_diwata, 3;
+ malaya_diwata = 3;
erasequest 7396;
setquest 7397;
close;
@@ -467,7 +467,7 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
delitem 6510, 3; // Elegant_Flower
delitem 6511, 3; // Beautiful_Flower
getitem 6506, 1; // Memorial_Bouquet
- set malaya_diwata, 4;
+ malaya_diwata = 4;
erasequest 7397;
setquest 7398;
close;
@@ -487,7 +487,7 @@ malaya,185,358,3 script Leader Phong in Mumbaki 4_BARYO_CHIEF,{
close;
}
case 2:
- if (checkquest(7402) == -1) {
+ if (!questprogress(7402)) {
mes "[Phong in Mumbaki]";
mes "Who is the floral tribute for?";
mes "Don't tell me you're making one in advance cause you're lazy?";
@@ -598,7 +598,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
next;
mes "[Imelda]";
mes "Now's the time to prove your prowess!";
- set malaya_hi, 21;
+ malaya_hi = 21;
setquest 7366;
close;
case 2:
@@ -635,7 +635,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
mes "[Imelda]";
mes "Now I'm going through the holy ritual to make a traditional Spiritual Protection.";
mes "Give them to me! And don't bother me during the process!";
- set malaya_hi, 22;
+ malaya_hi = 22;
delitem 6500, 6; // Sharp_Bamboo
delitem 6501, 6; // Salt_Bag
delitem 6502, 6; // Silver_Cross
@@ -643,8 +643,8 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
setquest 7367;
close;
} else if (malaya_hi == 22) {
- .@playtime = checkquest(7367, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7367, PLAYTIME);
+ if (.@playtime == 1) {
mes "Imelda is in ritual with a devout aura, compared to when she streamed invectives.";
mes "Better not disturb her.";
close;
@@ -661,7 +661,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
next;
mes "Took the Spiritual Protection, despite her ridiculous logic and vigor.";
mes "Let's give them to the villagers.";
- set malaya_hi, 23;
+ malaya_hi = 23;
getitem 6503, 6; // Soul_Protection
erasequest 7367;
setquest 7368;
@@ -700,7 +700,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
next;
mes "[Imelda]";
mes "I'd be happy if you could help me, because the Spiritual Protections needs to be made every day.";
- set malaya_hi, 25;
+ malaya_hi = 25;
erasequest 7374;
erasequest 7379;
setquest 7375;
@@ -709,7 +709,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
// else
// getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
- if (rand(1))
+ if (rand(2))
$malayaNames$[0] = strcharinfo(0);
close;
} else {
@@ -720,7 +720,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
next;
switch (select("I'll help you making Spiritual Protections.:Love and Spiritual Protection for all.")) {
case 1:
- if (checkquest(7380) > -1) {
+ if (questprogress(7380)) {
if ((countitem(6501) < 6) || (countitem(6502) < 6) || (countitem(6500) < 6)) {
mes "[Imelda]";
mes "Materials for making a Spiritual Protection are";
@@ -749,8 +749,8 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
getexp 200000,200000;
close;
} else {
- .@playtime = checkquest(7381, PLAYTIME);
- if ((.@playtime == 0) || (.@playtime == 1)) {
+ .@playtime = questprogress(7381, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Imelda]";
mes "I appreciate your kindness, but we have enough for today.";
mes "I'll ask for you when I need more materials.";
@@ -789,8 +789,8 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
}
}
case 2:
- if (checkquest(7374) != -1) {
- if (checkquest(7379) == -1) {
+ if (questprogress(7374)) {
+ if (!questprogress(7379)) {
mes "[Imelda]";
mes "Please deliver these new Spiritual Protections to the villagers.";
mes "You know them, right?";
@@ -815,12 +815,12 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
// else
// getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
- if (rand(1))
+ if (rand(2))
$malayaNames$[0] = strcharinfo(0);
close;
} else {
- .@playtime = checkquest(7375, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7375, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Imelda]";
mes "The Spiritual Protections given before will still be in effect";
mes "It's okay for now.";
@@ -838,7 +838,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
mes "Of course, you'll still encounter ghosts here and there.";
close;
}
- if ((checkquest(7381) == 0) || (checkquest(7381) == 1)) {
+ if (questprogress(7381) == 1) {
mes "[Imelda]";
mes "Thank you very much.";
mes "Come back when you've given them all out.";
@@ -873,7 +873,7 @@ malaya,169,350,5 script Imelda#malaya 4_M_BRZ_JACI,{
mes "Of course, you'll still encounter ghosts here and there.";
close;
}
- if ((checkquest(7381, PLAYTIME) == 0) || (checkquest(7381, PLAYTIME) == 1)) {
+ if (questprogress(7381, PLAYTIME) == 1) {
mes "[Imelda]";
mes "Thank you very much.";
mes "Come back when you've given them all out.";
@@ -912,7 +912,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "Not from around here, I see. I have nothing to say.";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7353) == 2) {
+ if (questprogress(7353) == 2) {
mes "[Old Man Nardo]";
mes "How about lending a hand for a poor old man?";
mes "I don't care if it's just a sleeve of your shirt, just give me something with your vigor.";
@@ -937,10 +937,10 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
setquest 7353;
completequest 7353;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "-So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -951,7 +951,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "Must counsel with Mumbaki first!";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7360) != -1) {
+ if (questprogress(7360)) {
mes "[Old Man Nardo]";
mes "To be honest, I do not believe that this Holy Artifact has any abilities.";
mes "It's just for the peace of mind.";
@@ -980,9 +980,10 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
delitem 523, 1; //Holy_Water
setquest 7360;
completequest 7360;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With the Old Man as last, enough Holy Artifacts have been given out.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -1032,7 +1033,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "Thank you.";
close;
case 2:
- if ((checkquest(7374) != -1) && (checkquest(7369) != -1)) {
+ if (questprogress(7374) && questprogress(7369)) {
if (!countitem(6503)) {
mes "^4d4dffThere's no Spiritual Protection to give to the Old Man.^000000";
close;
@@ -1046,10 +1047,10 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
delitem 6503, 1; // Soul_Protection
erasequest 7369;
setquest 7383;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "- With the Old Man as last, all Spiritual Protections have been delivered. Head back to Imelda.-";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -1075,7 +1076,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "I'm sorry but I can't let you carry the precious Cast Iron Cauldron.";
close;
}
- if ((checkquest(7378, PLAYTIME) == 0) || (checkquest(7378, PLAYTIME) == 1)) {
+ if (questprogress(7378, PLAYTIME) == 1) {
mes "[Old Man Nardo]";
mes "You've delivered the Cast Iron Cauldron to Baryo, so that's enough for today.";
mes "No matter how strong a cauldron is, even with the toughest cast iron, it only lasts a day.";
@@ -1083,7 +1084,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
mes "[Old Man Nardo]";
mes "Help me out again tomorrow if you can.";
close;
- } else if (checkquest(7378, PLAYTIME) == 2) {
+ } else if (questprogress(7378, PLAYTIME) == 2) {
mes "[Old Man Nardo]";
mes "Hey there!";
mes "So, are you well and well fed?";
@@ -1094,7 +1095,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
erasequest 7378;
close;
} else {
- if (checkquest(7377) != -1) {
+ if (questprogress(7377)) {
if (countitem(6503) < 5) {
mes "[Old Man Nardo]";
mes "Did you deliver the cauldron in one piece?";
@@ -1121,7 +1122,7 @@ malaya,181,353,5 script Old Man Nardo#malaya 4_M_BARYO_OLD,{
$malayaNames$[2] = strcharinfo(0);
close;
} else {
- if (checkquest(7376) > -1) {
+ if (questprogress(7376)) {
mes "[Old Man Nardo]";
mes "Go to Kiko in Mumbaki at Baryo Mahiwaga and deliver the Cast Iron Cauldron.";
mes "This should help against the Bakonawa troubles.";
@@ -1176,7 +1177,7 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
mes "(He evades your gaze and ignores you.)";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7357) == 2) {
+ if (questprogress(7357) == 2) {
mes "[Romel]";
mes "....So cold-hearted.";
mes "And here we are, always trembling in anxiety...";
@@ -1201,10 +1202,10 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
setquest 7357;
completequest 7357;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -1214,7 +1215,7 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
mes "He'll surely take a hair or pull a sleeve if he had his way!";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7364) != -1) {
+ if (questprogress(7364)) {
mes "[Romel]";
mes "Frankly speaking, it's for the peace of mind.";
mes "With it, I could face them with more boldness.";
@@ -1245,9 +1246,10 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
delitem 523, 1; //Holy_Water
setquest 7364;
completequest 7364;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With Romel as last, I think enough Holy Artifacts have been given.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -1286,7 +1288,7 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
mes "I am at peace these days.";
close;
}
- if ((checkquest(7374) == -1) || (checkquest(7373) == -1)) {
+ if (!questprogress(7374) || !questprogress(7373)) {
mes "[Romel]";
mes "A new Spiritual Protection?";
mes "The one you gave me before still works fine.";
@@ -1306,10 +1308,10 @@ malaya,224,267,3 script Romel#malaya 4_M_MAYOR,{
delitem 6503, 1; // Soul_Protection
erasequest 7373;
setquest 7387;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "- With Romel as last, all Spiritual Protections have been delivered. Head back to Imelda.-";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -1332,7 +1334,7 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
mes "(When your eyes met with hers, she ran and hid behind her father.)";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7356) == 2) {
+ if (questprogress(7356) == 2) {
mes "[Talah]";
mes "Talah might be taken away tonight.";
mes "Scary kids might come to Talah.";
@@ -1355,10 +1357,10 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
mes "- The troubled villagers desire your belongings because you fend off the ghosts. -";
setquest 7356;
completequest 7356;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki. -";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -1367,7 +1369,7 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
mes "Talah looks from you to her father with inquisitive eyes.";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7363) != -1) {
+ if (questprogress(7363)) {
mes "[Talah]";
mes "I dont know for sure";
mes "but I get a warm feel from them.";
@@ -1393,9 +1395,10 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
delitem 523, 1; //Holy_Water
setquest 7363;
completequest 7363;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With Talah as last, I think enough Holy Artifacts have been given.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -1415,7 +1418,7 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
mes "You're keeping us safe aren't you?";
close;
}
- if ((checkquest(7374) != -1) && (checkquest(7372) != -1)) {
+ if (questprogress(7374) && questprogress(7372)) {
if (!countitem(6503)) {
mes "^4d4dffThere is no Spiritual Protection to give to Talah.^000000";
close;
@@ -1430,10 +1433,10 @@ malaya,223,267,5 script Talah#malaya 4_F_DST_CHILD,{
delitem 6503, 1; // Soul_Protection
erasequest 7372;
setquest 7386;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "- With Talah as last, all Spiritual Protections have been delivered. Head back to Imelda. -";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -1460,7 +1463,7 @@ malaya,62,274,0 script Sand Trap#malaya 4_SOIL,{
mes "- Cannot proceed with the quest. You are carrying too many items. -";
close;
}
- if ((checkquest(7366) == -1) && (checkquest(7380) == -1)) {
+ if (!questprogress(7366) && !questprogress(7380)) {
mes "A device to evaporate sea water is buried in the sand...";
close;
}
@@ -1494,7 +1497,7 @@ ma_fild01,178,206,0 script Black Bamboo#malaya CLEAR_NPC,4,4,{
mes "- Cannot proceed with the quest. You are carrying too many items. -";
close;
}
- if ((checkquest(7366) == -1) && (checkquest(7380) == -1)) {
+ if (!questprogress(7366) && !questprogress(7380)) {
mes "There's a short and black bamboo tree.";
close;
}
@@ -1513,7 +1516,7 @@ ma_fild01,178,206,0 script Black Bamboo#malaya CLEAR_NPC,4,4,{
mes "I knew I could do this!";
close;
OnTouch:
- if ((checkquest(7366) != -1) || (checkquest(7380) != -1)) {
+ if (questprogress(7366) || questprogress(7380)) {
specialeffect EF_LEVEL99_4;
}
end;
@@ -1540,7 +1543,7 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
mes "Go away. Shoo, leave!";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7355) == 2) {
+ if (questprogress(7355) == 2) {
mes "[Woeon]";
mes "Now, look here my friend...";
mes "This can all be solved by giving me a button.";
@@ -1564,10 +1567,10 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
mes "- The troubled villagers desire your belongings because you fend off the ghosts. -";
setquest 7355;
completequest 7355;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -1584,7 +1587,7 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
mes "Cold hearted son of a...";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7362) != -1) {
+ if (questprogress(7362)) {
mes "[Woeon]";
mes "Hmm. Look at my hands.";
mes "Less shaky, eh?";
@@ -1618,9 +1621,10 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
delitem 523, 1; //Holy_Water
setquest 7362;
completequest 7362;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With Woeon as last, I think enough Holy Artifacts have been given.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -1636,7 +1640,7 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
mes "Oh, hi there!";
next;
if (select("Give Spiritual Protection.:The Dealer and his Collection") == 1) {
- if (((checkquest(7374) == 0) || (checkquest(7374) == 1)) && ((checkquest(7371) == 0) || (checkquest(7371) == 1))) {
+ if (questprogress(7374) == 1 && questprogress(7371) == 1) {
if (!countitem(6503)) {
mes "^4d4dffThere is no Spiritual Protection to give to Woeon.^000000";
close;
@@ -1650,10 +1654,10 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
delitem 6503, 1; // Soul_Protection
erasequest 7371;
setquest 7385;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "-With Woeon as last, all Spiritual Protections have been delivered.-";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -1683,13 +1687,13 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
mes "I'll let you have at it once you're stronger, my friend!";
close;
}
- if ((checkquest(7392, PLAYTIME) == 0) || (checkquest(7392, PLAYTIME) == 1)) {
+ if (questprogress(7392, PLAYTIME) == 1) {
mes "[Woeon]";
mes "Oh, the Jejellopy collecting?";
mes "I have enough for today.";
mes "Come back again tomorrow.";
close;
- } else if (checkquest(7392, PLAYTIME) == 2) {
+ } else if (questprogress(7392, PLAYTIME) == 2) {
mes "[Woeon]";
mes "Oh, yes yes.";
mes "You're going to collect Jejellopy today as well?";
@@ -1708,7 +1712,7 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
setquest 7391;
close;
} else {
- if ((checkquest(7391) == 0) || (checkquest(7391) == 1)) {
+ if (questprogress(7391) == 1) {
if (countitem(6498) < 30) {
mes "[Woeon]";
mes "Hmm? I don't think you have enough.";
@@ -1731,7 +1735,7 @@ malaya,295,171,3 script Collection Dealer Woeon 4_M_MALAYA,{
// else
// getitem 6497, 1; // Lesser_Agimat
getexp 200000,200000;
- set .@memo_name, rand(1,3);
+ .@memo_name = rand(1,3);
if (!rand(3))
$malayaNames$[1] = strcharinfo(0);
close;
@@ -1777,7 +1781,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "Go... Go away!";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7354) == 2) {
+ if (questprogress(7354) == 2) {
mes "[Pandoi]";
mes "Please..";
mes "Couldn't you help a guy out here, just for the sake of it?";
@@ -1806,10 +1810,10 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "-The troubled villagers desire your belongings because you fend off the ghosts. -";
setquest 7354;
completequest 7354;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki.-";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -1826,7 +1830,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "Do you really think ignoring me is the best option?!";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7361) != -1) {
+ if (questprogress(7361)) {
mes "[Pandoi]";
mes "Now that I have confidence, the only thing left for me to do is charge to the hospital or field for material!";
mes "Bu... But, I'm too scared...";
@@ -1850,9 +1854,10 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
delitem 523, 1; //Holy_Water
setquest 7361;
completequest 7361;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With Pandoi as last, I think I've given enough Holy Artifacts.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -1887,7 +1892,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
next;
switch (select("Give Spiritual Protection.:Silver Blade.:Silver Cross")) {
case 1:
- if ((checkquest(7374) == -1) || (checkquest(7370) == -1)) {
+ if (!questprogress(7374) || !questprogress(7370)) {
mes "[Pandoi]";
mes "I appreciate you taking care of the expiration dates of my Spiritual Protection.";
mes "I think mine's good for now. ";
@@ -1906,10 +1911,10 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
delitem 6503, 1; // Soul_Protection
erasequest 7370;
setquest 7384;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "-With Pandoi as last, all Spiritual Protections have been delivered.-";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -1932,7 +1937,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "If you go in there like that... You'll never make it out alive!";
close;
}
- .@hunting = checkquest(7393, HUNTING);
+ .@hunting = questprogress(7393, HUNTING);
if (.@hunting == 2) {
if (countitem(6508) < 10) {
mes "[Pandoi]";
@@ -1968,7 +1973,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
if (!rand(3))
$malayaNames$[1] = strcharinfo(0);
close;
- } else if (.@hunting == 0 || .@hunting == 1) {
+ } else if (.@hunting == 1) {
mes "[Pandoi]";
mes "The village hospital holds the most hideous things inside.";
mes "I'm not sure what exactly... Whatever's in there, I'm not willing to go near it...";
@@ -1978,8 +1983,8 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "You're the only one I can trust!";
close;
} else {
- .@playtime = checkquest(7394, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7394, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Pandoi]";
mes "I still have some silver to smelt.";
mes "I'll request more if I fail again.";
@@ -2058,15 +2063,15 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
next;
switch(select("Make 1 Silver Cross:Make 6 Silver Crosses:Input Number:Quit.")) {
case 1:
- set .@amount,1;
+ .@amount = 1;
case 2:
- if (!.@amount) set .@amount,6;
+ if (!.@amount) .@amount = 6;
if (countitem(6508) < (.@amount * 2)) {
mes "[Pandoi]";
mes "You need at least " + (.@amount * 2) + " Silver Bracelets to make " + .@amount + " Silver " + ((.@amount == 1) ? "Cross" : "Crosses") + ".";
close;
}
- set .@time,5;
+ .@time = 5;
break;
case 3:
mes "[Pandoi]";
@@ -2089,7 +2094,7 @@ malaya,119,217,3 script Blacksmith Pandoi 4_M_DEWBOY,{
mes "To make " + .@amount + " Silver " + ((.@amount == 1) ? "Cross" : "Crosses") + ", I need at least " + (2 * .@amount) + " Silver Bracelets.";
close;
}
- set .@time,15;
+ .@time = 15;
break;
case 4:
mes "[Pandoi]";
@@ -2125,7 +2130,7 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "I'm seeing ghosts. I think it's my time to die.";
close;
} else if (malaya_hi == 10) {
- if (checkquest(7352) == 2) {
+ if (questprogress(7352) == 2) {
mes "- Pedro the Sailor seems to have given up, but he can't take his gaze off of me.-";
close;
}
@@ -2168,10 +2173,10 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "- Pedro the Sailor seems to have given up, but he can't take his gaze off of me.-";
setquest 7352;
completequest 7352;
- if ((checkquest(7352) + checkquest(7353) + checkquest(7354) + checkquest(7355) + checkquest(7356) + checkquest(7357)) > 9) {
+ if (questprogress(7352) + questprogress(7353) + questprogress(7354) + questprogress(7355) + questprogress(7356) + questprogress(7357) > 9) {
next;
mes "- So many have already asked you for this. Perhaps it will be better to speak with Phong in Mumbaki. -";
- set malaya_hi, 11;
+ malaya_hi = 11;
setquest 7358;
}
close;
@@ -2181,7 +2186,7 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "This is so awkward.";
close;
} else if (malaya_hi == 12) {
- if (checkquest(7359) != -1) {
+ if (questprogress(7359)) {
mes "[Pedro the Sailor]";
mes "Anyway, now that I have what they hate...";
mes "Now's the time to charge into my ship...!";
@@ -2208,9 +2213,10 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
delitem 523, 1; //Holy_Water
setquest 7359;
completequest 7359;
- if ((checkquest(7359) + checkquest(7360) + checkquest(7361) + checkquest(7362) + checkquest(7363) + checkquest(7364)) > 11) {
+ if (questprogress(7359) == 2 && questprogress(7360) == 2 && questprogress(7361) == 2
+ && questprogress(7362) == 2 && questprogress(7363) == 2 && questprogress(7364) == 2) {
mes "-With Pedro the Sailor as last, I think I gave enough Holy Artifacts.-";
- set malaya_hi, 13;
+ malaya_hi = 13;
erasequest 7351;
setquest 7365;
}
@@ -2229,7 +2235,7 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "Well, living the dream, eh?";
next;
if (select("Give Spiritual Protection.:About the Ferry Ride") == 1) {
- if ((checkquest(7374) == -1) || (checkquest(7368) == -1)) {
+ if (!questprogress(7374) || !questprogress(7368)) {
mes "[Pedro the Sailor]";
mes "The Spiritual Protection you gave me before works fine.";
mes "I'm good for now.";
@@ -2248,10 +2254,10 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
delitem 6503, 1; // Soul_Protection
erasequest 7368;
setquest 7382;
- if ((checkquest(7382) + checkquest(7383) + checkquest(7384) + checkquest(7385) + checkquest(7386) + checkquest(7387)) > 5) {
+ if (questprogress(7382) + questprogress(7383) + questprogress(7384) + questprogress(7385) + questprogress(7386) + questprogress(7387) > 5) {
mes "-With Pedro the Sailor as last, all Spiritual Protections have been delivered.-";
if (malaya_hi == 23) {
- set malaya_hi, 24;
+ malaya_hi = 24;
}
setquest 7379;
erasequest 7382;
@@ -2318,7 +2324,7 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "[Pedro the Sailor]";
mes "If you don't believe me, see for yourself.";
mes "Then you'll believe me.";
- set malaya_diwata, 1;
+ malaya_diwata = 1;
setquest 7395;
close;
} else if (malaya_diwata == 1) {
@@ -2369,7 +2375,7 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
mes "I'd better get ready to set sail then.";
mes "It's not much, but this is for you.";
mes "If we can get back in business, I'll take you to Izlude for just 1000z.";
- set malaya_diwata, 6;
+ malaya_diwata = 6;
erasequest 7399;
setquest 7401;
// if (IsPremiumPcCafe == 10)
@@ -2381,8 +2387,8 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
$malayaNames$[0] = strcharinfo(0);
close;
} else {
- .@playtime = checkquest(7401, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7401, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Pedro the Sailor]";
mes "If you want to go to Alberta, use the big ship over there.";
mes "This little one goes to Izlude.";
@@ -2412,8 +2418,8 @@ malaya,326,68,2 script Pedro the Sailor 4W_SAILOR,{
erasequest 7401;
goto L_SetQuest;
} else {
- if (checkquest(7403) == -1) {
- if (checkquest(7402) == -1) {
+ if (!questprogress(7403)) {
+ if (!questprogress(7402)) {
goto L_SetQuest;
}
mes "[Pedro the Sailor]";
@@ -2521,7 +2527,7 @@ OnTouch:
next;
cutin "", 255;
mes "-I was thrown out after the Little Girl's annoyed cry and flash from her eyes.-";
- set malaya_diwata, 2;
+ malaya_diwata = 2;
setquest 7396;
erasequest 7395;
close2;
@@ -2534,7 +2540,7 @@ OnTouch:
next;
cutin "", 255;
mes "-I was thrown out after the Little Girl's resolute cry and flash from her eyes.-";
- set malaya_diwata, 2;
+ malaya_diwata = 2;
setquest 7396;
erasequest 7395;
close2;
@@ -2618,7 +2624,7 @@ OnTouch:
next;
mes "[Diwata]";
mes "Now, g... go away!";
- set malaya_diwata, 5;
+ malaya_diwata = 5;
delitem 6506, 1; // Memorial_Boquet
erasequest 7398;
setquest 7399;
@@ -2630,9 +2636,9 @@ OnTouch:
mes "If they bother me again, however, I won't be.";
close;
} else {
- if (checkquest(7402) == -1) {
- if (checkquest(7403) == -1) {
- if ((checkquest(7401, PLAYTIME) == 0) || (checkquest(7401, PLAYTIME) == 1)) {
+ if (!questprogress(7402)) {
+ if (!questprogress(7403)) {
+ if (questprogress(7401, PLAYTIME) == 1) {
cutin "malaya_diwata02", 2;
mes "[Diwata]";
mes "Surprisingly enough, I'm doing fine.";
@@ -2733,8 +2739,8 @@ ma_fild01,261,208,2 script Kiko in Mumbaki 4_BARYO_CHIEF,{
next;
switch (select("Give Cast-Iron Caldron.:Request Purification Ritual.:Exchange Jellopy for gold.")) {
case 1:
- if (checkquest(7376) == -1) {
- if (checkquest(7377) == -1) {
+ if (!questprogress(7376)) {
+ if (!questprogress(7377)) {
mes "[Kiko in Mumbaki]";
mes "What cauldron?";
mes "As far as I know, you're not the one bringing it.";
@@ -2779,8 +2785,8 @@ ma_fild01,261,208,2 script Kiko in Mumbaki 4_BARYO_CHIEF,{
erasequest 7376;
close;
case 2:
- if (checkquest(7406) == -1) {
- if (checkquest(7407) == -1) {
+ if (!questprogress(7406)) {
+ if (!questprogress(7407)) {
mes "[Kiko in Mumbaki]";
mes "The only purification needed in this village is Vantai's food.";
mes "There are no rituals where an outsider, like yourself, can take part in.";
@@ -2861,8 +2867,8 @@ ma_fild01,239,253,3 script Dhong the Guard 4_MAL_SOLDIER,{
mes "Ha ha ha ha ha ha ha!";
close;
}
- .@playtime = checkquest(7408, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7408, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Dhong the Guard]";
mes "The bones you brought Vantai gave him a feast.";
mes "He'll be full and merry for a while now.";
@@ -2889,7 +2895,7 @@ ma_fild01,239,253,3 script Dhong the Guard 4_MAL_SOLDIER,{
mes "for the hero to get us some Evil Spirit Bones from the forest.";
close;
} else {
- if (checkquest(7406) != -1) {
+ if (questprogress(7406)) {
mes "[Dhong the Guard]";
mes "What I'm saying is that, to be a good guard dog, he must be able to stand ground against evil spirits.";
mes "For that he needs to eat Evil Spirit Bones, but it must be purified before he can eat them.";
@@ -2899,7 +2905,7 @@ ma_fild01,239,253,3 script Dhong the Guard 4_MAL_SOLDIER,{
mes "Kiko in Mumbaki will purify them for you.";
close;
} else {
- if (checkquest(7407) == 1) {
+ if (questprogress(7407) == 1) {
if (countitem(6505) < 10) {
mes "[Dhong the Guard]";
mes "Kiko in Mumbaki asked for 10 Purified Spirit Bones.";
@@ -2995,8 +3001,8 @@ ma_fild01,200,190,3 script Maries#malaya 4_F_BARYO_WOMAN,{
mes "An anxious looking woman is stands.";
close;
}
- .@playtime = checkquest(7390, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7390, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Maries]";
mes "Now that the children know that they can get back home with an Inside-out Shirt,";
mes "they play out in the forest recklessly and timelessly.";
@@ -3012,7 +3018,7 @@ ma_fild01,200,190,3 script Maries#malaya 4_F_BARYO_WOMAN,{
erasequest 7390;
close;
} else {
- if (checkquest(7389) != -1) {
+ if (questprogress(7389)) {
mes "[Maries]";
mes "You came back.";
mes "Thanks to you, the child has returned home safely.";
@@ -3031,7 +3037,7 @@ ma_fild01,200,190,3 script Maries#malaya 4_F_BARYO_WOMAN,{
$malayaNames$[2] = strcharinfo(0);
close;
} else {
- if (checkquest(7388) != -1) {
+ if (questprogress(7388)) {
mes "[Maries]";
mes "I'm sure they're lost in the woods because of mischievous spirits.";
mes "Please give the child the ^4d4dffInside-out Shirt^000000 when found.";
@@ -3099,7 +3105,7 @@ ma_fild01,203,189,3 script Little Girl#malaya 4_F_BARYO_GIRL,{
}
ma_fild01,251,93,3 script Lost Child#malaya01 4_F_BARYO_GIRL,{
- if (checkquest(7388) > -1) {
+ if (questprogress(7388)) {
if (!countitem(12700)) {
mes "[Little Kid]";
mes "Sigh. Are you lost too?";
@@ -3144,7 +3150,7 @@ ma_fild01,251,93,3 script Lost Child#malaya01 4_F_BARYO_GIRL,{
}
end;
} else {
- if (checkquest(7389) != -1) {
+ if (questprogress(7389)) {
mes "[Little Kid]";
mes "I want to play some more.";
mes "I can always go back with this shirt.";
@@ -3226,8 +3232,8 @@ ma_fild02,241,39,5 script Good Capre Budidai 4_MAL_BUDIDAI,{
mes "We'll never make it.";
close;
}
- .@playtime = checkquest(7410, PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7410, PLAYTIME);
+ if (.@playtime == 1) {
mes "[Budidai]";
mes "Traveler, my friend!";
mes "Bongisungisu ran far far away.";
@@ -3243,8 +3249,8 @@ ma_fild02,241,39,5 script Good Capre Budidai 4_MAL_BUDIDAI,{
mes "You won't turn you're back on a good Capre?";
close;
} else {
- if (checkquest(7409) != -1) {
- if (checkquest(7409, HUNTING) == 2) {
+ if (questprogress(7409)) {
+ if (questprogress(7409, HUNTING) == 2) {
mes "[Budidai]";
mes "Astonishing, wanderer!";
mes "I could hear the pitiful wails of Bongisungisu all the way from here!";
@@ -3870,7 +3876,7 @@ malaya,305,281,3 script Guard#buwaya 4_MAL_SOLDIER,7,7,{
next;
mes "[Guard]";
mes "I hear people are talking about a mysterious treasure hidden deep in the woods.";
- set malaya_buwaya,1;
+ malaya_buwaya = 1;
setquest 2271;
next;
}
@@ -3978,7 +3984,7 @@ malaya,276,288,5 script Port Malaya Villager::buwaya_A 4_M_MALAYA,{
emotion e_sob,0,"buwaya_B";
mes "[Port Malaya Villager]";
mes "Ah~~~ it is so hard to get something pretty these days ~~~!!!!";
- set malaya_buwaya,2;
+ malaya_buwaya = 2;
erasequest 2271;
setquest 2272;
close;
@@ -4031,7 +4037,7 @@ ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
mes "[Totoy]";
mes "Can't talk long. I need to heal my eyes first.";
mes "There should be some ^3131FFGreen Potion^000000 left inside the drawer. Will you take it out for me?";
- set malaya_buwaya,3;
+ malaya_buwaya = 3;
close;
} else if (malaya_buwaya == 3) {
if (!countitem(506)) {
@@ -4050,7 +4056,7 @@ ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
mes "[Totoy]";
mes "Gulp, gulp...";
delitem 506,1; //Green_Potion
- set malaya_buwaya,4;
+ malaya_buwaya = 4;
}
close;
} else if (malaya_buwaya == 4) {
@@ -4137,7 +4143,7 @@ ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
next;
mes "[Totoy]";
mes "And tell everyone else to stop spreading rumors about treasure. They don't know what I went through. Sniff! I'm going to put Ancient Worms in everyones clothes!";
- set malaya_buwaya,5;
+ malaya_buwaya = 5;
erasequest 2272;
setquest 2273;
close;
@@ -4229,7 +4235,7 @@ ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
mes "[Totoy]";
mes "Anyway, thanks for bringing my best friend back.";
mes "I don't have much but would like to thank you. Wait, let me see what's inside my drawer. He he-";
- set malaya_buwaya,13;
+ malaya_buwaya = 13;
erasequest 2278;
setquest 2279;
close;
@@ -4261,7 +4267,7 @@ ma_in01,47,101,3 script Totoy#buwaya 4_M_BARYO_BOY,7,7,{
next;
mes "[Dog]";
mes "Woof woof woof!!!!";
- set malaya_buwaya,14;
+ malaya_buwaya = 14;
getitem 6497,5; //Lesser_Agimat
disablenpc "Dog#buwaya_totoi";
erasequest 2279;
@@ -4351,7 +4357,7 @@ malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
if (select("I will prove it.:Suspicious of Totoy.") == 2) {
mes "[Master of Hunting]";
mes "Kids tell stories for their own reasons. I'm sure Totoy is the same.";
- set malaya_buwaya,6;
+ malaya_buwaya = 6;
close;
}
mes "[Master of Hunting]";
@@ -4365,7 +4371,7 @@ malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
next;
mes "[Master of Hunting]";
mes (Sex) ? "It won't be pleasant but any brave man could easily do it, don't you agree?" : "I don't want the hands of a pretty girl to smell bad but I could care less with someone like you. Ha ha!";
- set malaya_buwaya,7;
+ malaya_buwaya = 7;
erasequest 2273;
setquest 2274;
close;
@@ -4389,7 +4395,7 @@ malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
next;
mes "[Master of Hunting]";
mes (Sex) ? "It won't be pleasant but any brave man could easily do it, don't you agree?" : "I don't want the hands of a pretty girl to smell bad but I could care less with someone like you. Ha ha!";
- set malaya_buwaya,7;
+ malaya_buwaya = 7;
erasequest 2273;
setquest 2274;
close;
@@ -4404,7 +4410,7 @@ malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
mes "You've really brought back the samples.";
mes "Ho! Leave it there and come back after washing your hands. Even god won't smile down at you with that stench.";
delitem 6519,10; //Collected_Sample
- set malaya_buwaya,8;
+ malaya_buwaya = 8;
erasequest 2274;
setquest 2275;
close;
@@ -4429,7 +4435,7 @@ malaya,290,152,5 script Master of Hunting#buwaya 4_M_BARYO_MAN,{
next;
mes "[Master of Hunting]";
mes "You! Come here and feel this!";
- set malaya_buwaya,9;
+ malaya_buwaya = 9;
enablenpc "#buwaya_soil";
close;
} else if (malaya_buwaya == 9) {
@@ -4503,7 +4509,7 @@ malaya,291,152,3 script #buwaya_soil 4_SOIL,{
mes "[Master of Hunting]";
mes "Please go and tell the Guard Leader that Buwaya is active again.";
mes "I will contact other hunters in the meantime and think of a plan to kill Buwaya.";
- set malaya_buwaya,10;
+ malaya_buwaya = 10;
disablenpc "#buwaya_soil";
erasequest 2275;
setquest 2276;
@@ -4616,7 +4622,7 @@ malaya,290,340,3 script Guard Leader#buwaya 4_MAL_CAPTAIN,{
next;
mes "[Guard Leader]";
mes "Then take care and good luck.";
- set malaya_buwaya,11;
+ malaya_buwaya = 11;
erasequest 2276;
setquest 2277;
} else if (malaya_buwaya == 11) {
@@ -4638,12 +4644,12 @@ malaya,290,340,3 script Guard Leader#buwaya 4_MAL_CAPTAIN,{
mes "Here, this is a symbol of our gratitude.";
mes "If you would like to help with Buwaya again, please look for me.";
mes "Hope you have a great journey.";
- set malaya_buwaya,15;
+ malaya_buwaya = 15;
getexp 1000000, 600000;
completequest 2280;
} else {
- set .@hunting, checkquest(2281,HUNTING);
- if (.@hunting == -1) {
+ .@hunting = questprogress(2281,HUNTING);
+ if (!.@hunting) {
mes "[Guard Leader]";
mes "Hear Buwaya appeared from the depth of the Forest.";
mes "As everyone knows, all our manpower is dispatched to handle Bangungots servants attacking the hospital recently.";
@@ -4673,7 +4679,7 @@ malaya,290,340,3 script Guard Leader#buwaya 4_MAL_CAPTAIN,{
mes "Keep this in mind and be cautious at all times.";
mes "I recommend asking trustful colleagues for help.";
setquest 2281;
- } else if (.@hunting == 0 || .@hunting == 1) {
+ } else if (.@hunting == 1) {
mes "[Guard Leader]";
mes "How is it going with the Buwaya situation?";
next;
@@ -4782,7 +4788,7 @@ ma_fild02,312,259,3 script Dog#buwaya 4_DOG01,{
next;
mes "[Dog]";
mes "Bark bark!";
- set malaya_buwaya,12;
+ malaya_buwaya = 12;
disablenpc "Dog#buwaya";
erasequest 2277;
setquest 2278;
@@ -5094,7 +5100,7 @@ malaya,285,332,4 script Old Legend Teller#bako1 4_M_BARYO_OLD,{
mes "Down along this path";
mes "you will meet my granddaughter near the port.";
mes "Get the Slate Piece from there.";
- set malaya_bakona1,1;
+ malaya_bakona1 = 1;
setquest 1174;
close;
}
@@ -5170,7 +5176,7 @@ malaya,285,332,4 script Old Legend Teller#bako1 4_M_BARYO_OLD,{
mes "Good luck to you... for our sake...";
erasequest 1175;
setquest 1176;
- set malaya_bakona1,3;
+ malaya_bakona1 = 3;
close;
} else if (malaya_bakona1 == 3) {
mes "[Old Legend Teller]";
@@ -5220,7 +5226,7 @@ malaya,285,332,4 script Old Legend Teller#bako1 4_M_BARYO_OLD,{
mes "so that you can enter the Bakonawa Lake.";
mes "Please get rid of this monster for us.";
erasequest 1179;
- set malaya_bakona1,7;
+ malaya_bakona1 = 7;
// if (IsPremiumPcCafe == 10)
getitem 6499,5; //Ancient_Grudge
// else
@@ -5313,7 +5319,7 @@ ma_fild02,40,240,4 script Malaya Immigrant#bako1 4_M_BARYO_MAN,{
mes "of the traveling merchant.";
erasequest 1176;
setquest 1177;
- set malaya_bakona1,4;
+ malaya_bakona1 = 4;
close;
case 4:
mes "[Malaya Immigrant]";
@@ -5419,7 +5425,7 @@ ma_fild01,165,237,4 script Malaya Immigrant#bako2 4_M_MALAYA,{
mes "Investigate the stone ahead.";
erasequest 1177;
setquest 1178;
- set malaya_bakona1,5;
+ malaya_bakona1 = 5;
close;
}
} else if (malaya_bakona1 == 5) {
@@ -5480,7 +5486,7 @@ OnTouch:
mes "The letters are not clear but you can still read it.";
next;
callsub L_Record;
- set malaya_bakona1,6;
+ malaya_bakona1 = 6;
erasequest 1178;
setquest 1179;
close;
@@ -5567,7 +5573,7 @@ malaya,304,100,4 script Old Man's Granddaughter 4_F_BARYO_GIRL,{
mes "now that I have the Slate Piece.";
erasequest 1174;
setquest 1175;
- set malaya_bakona1,2;
+ malaya_bakona1 = 2;
close;
} else if (malaya_bakona1 == 2) {
mes "[Old Man's Granddaughter]";
@@ -5693,7 +5699,7 @@ malaya,283,265,4 script Village Chief#bako2 4_BARYO_CHIEF,{
mes "retrieve two ^FF0000Lost Belongings^000000 from Tiucknuc";
mes "and take them to ^0000FFMissing Person's Father^000000";
mes "for me.";
- set malaya_bakona2,1;
+ malaya_bakona2 = 1;
setquest 1180;
close;
}
@@ -5740,7 +5746,7 @@ malaya,283,265,4 script Village Chief#bako2 4_BARYO_CHIEF,{
mes "saying that the energy of the moon seems strange.";
erasequest 1184;
setquest 1185;
- set malaya_bakona2,6;
+ malaya_bakona2 = 6;
// if (IsPremiumPcCafe == 10)
getitem 12700,7; //Insideout_Shirt
// else
@@ -5794,7 +5800,7 @@ malaya,283,265,4 script Village Chief#bako2 4_BARYO_CHIEF,{
mes "will be waiting for you. He will be very helpful.";
erasequest 1187;
setquest 1188;
- set malaya_bakona2,9;
+ malaya_bakona2 = 9;
close;
}
} else if (malaya_bakona2 == 9) {
@@ -5845,7 +5851,7 @@ malaya,283,265,4 script Village Chief#bako2 4_BARYO_CHIEF,{
mes "Please help us by";
mes "attacking his lair.";
erasequest 1193;
- set malaya_bakona2,15;
+ malaya_bakona2 = 15;
getexp 1000000,600000;
// if (IsPremiumPcCafe == 10)
getitem 6497,7; //Lesser_Agimat
@@ -5931,7 +5937,7 @@ malaya,269,267,5 script Missing Person's Father 4_M_MALAYA,{
delitem 6520,2; //Lost_Belongings
erasequest 1180;
setquest 1181;
- set malaya_bakona2,2;
+ malaya_bakona2 = 2;
close;
} else if (malaya_bakona2 == 2) {
mes "[Missing Person's Father]";
@@ -5982,7 +5988,7 @@ malaya,265,274,5 script Missing Person's Friend 4_M_BARYO_BOY,{
delitem 6520,7; //Lost_Belongings
erasequest 1181;
setquest 1182;
- set malaya_bakona2,3;
+ malaya_bakona2 = 3;
close;
} else {
mes "[Missing Person's Friend]";
@@ -6031,7 +6037,7 @@ malaya,270,278,4 script Missing Person's Son 4_M_BARYO_MAN,{
delitem 6520,3; //Lost_Belongings
erasequest 1182;
setquest 1183;
- set malaya_bakona2,4;
+ malaya_bakona2 = 4;
close;
} else {
mes "[Missing Person's Son]";
@@ -6086,7 +6092,7 @@ malaya,265,284,4 script Missing Person's Mother 4_F_BARYO_WOMAN,{
delitem 6520,5; //Lost_Belongings
erasequest 1183;
setquest 1184;
- set malaya_bakona2,5;
+ malaya_bakona2 = 5;
close;
} else {
mes "[Missing Person's Mother]";
@@ -6146,11 +6152,11 @@ malaya,289,364,4 script Young Fortune Teller 4_F_MALAYA,{
mes "there will be a great disaster.";
erasequest 1185;
setquest 1186;
- set malaya_bakona2,7;
+ malaya_bakona2 = 7;
close;
}
} else if (malaya_bakona2 == 7) {
- if (checkquest(1186,HUNTING) == 2) {
+ if (questprogress(1186,HUNTING) == 2) {
mes "[Young Fortune Teller]";
mes "It looks like you took care of ^FF0000Tikbalang^000000";
mes "well enough.";
@@ -6159,7 +6165,7 @@ malaya,289,364,4 script Young Fortune Teller 4_F_MALAYA,{
mes "the Village Chief for help.";
erasequest 1186;
setquest 1187;
- set malaya_bakona2,8;
+ malaya_bakona2 = 8;
// if (IsPremiumPcCafe == 10)
getitem 12699,7; //Tikbalang_Belt
// else
@@ -6241,7 +6247,7 @@ OnTouch:
mes "Go and set up the trap together.";
erasequest 1188;
setquest 1189;
- set malaya_bakona2,10;
+ malaya_bakona2 = 10;
close;
} else if (malaya_bakona2 == 10) {
mes "The trap has been set up here.";
@@ -6311,7 +6317,7 @@ OnTouch:
mes "Come on, move it!";
erasequest 1189;
setquest 1190;
- set malaya_bakona2,11;
+ malaya_bakona2 = 11;
close;
} else if (malaya_bakona2 == 11) {
mes "The trap has been set up here.";
@@ -6383,7 +6389,7 @@ OnTouch:
mes "find the Gloomy Worker.";
erasequest 1190;
setquest 1191;
- set malaya_bakona2,12;
+ malaya_bakona2 = 12;
close;
} else if (malaya_bakona2 == 12) {
mes "The trap has been set up here.";
@@ -6452,7 +6458,7 @@ OnTouch:
mes "Though I doubt it will be much help.";
erasequest 1191;
setquest 1192;
- set malaya_bakona2,13;
+ malaya_bakona2 = 13;
close;
} else if (malaya_bakona2 == 13) {
mes "The trap has been set up here.";
@@ -6518,7 +6524,7 @@ OnTouch:
mes "now that the trap is set.";
erasequest 1192;
setquest 1193;
- set malaya_bakona2,14;
+ malaya_bakona2 = 14;
close;
} else if (malaya_bakona2 == 14) {
mes "The trap is set here.";
@@ -6546,19 +6552,19 @@ sec_in02,10,16,5 script Bakonawa Intro Helper 4_MASK_SMOKEY,{
switch(select("Reset all quests:Just before the end of first quest:Reset secondary quest:Distribution of lost belongings:Just after hunting")) {
case 1:
mes "Here you go!";
- set malaya_bakona1,0;
- set malaya_bakona2,0;
- for(set .@i,1174; .@i<=1193; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ malaya_bakona1 = 0;
+ malaya_bakona2 = 0;
+ for(.@i = 1174; .@i<=1193; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
close;
case 2:
mes "[Briquet Scheme]";
mes "Here you go!";
- set malaya_bakona1,6;
- for(set .@i,1174; .@i<=1178; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ malaya_bakona1 = 6;
+ for(.@i = 1174; .@i<=1178; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
setquest 1179;
@@ -6566,9 +6572,9 @@ sec_in02,10,16,5 script Bakonawa Intro Helper 4_MASK_SMOKEY,{
case 3:
mes "[Briquet Scheme]";
mes "Here you go!";
- set malaya_bakona2,0;
- for(set .@i,1180; .@i<=1193; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ malaya_bakona2 = 0;
+ for(.@i = 1180; .@i<=1193; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
close;
@@ -6580,10 +6586,10 @@ sec_in02,10,16,5 script Bakonawa Intro Helper 4_MASK_SMOKEY,{
case 5:
mes "[Briquet Scheme]";
mes "Here you go!";
- set malaya_bakona2,8;
+ malaya_bakona2 = 8;
setquest 1187;
- for(set .@i,1178; .@i<=1193; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 1178; .@i<=1193; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
close;
@@ -6611,7 +6617,7 @@ function script F_Malaya_Nurse {
mes "Oh!";
mes "Speaking of talismans, wouldn't that old lady know about them, since she put some around the village?";
mes "I think it'll be a good idea to ask her.";
- set malaya_bang,32;
+ malaya_bang = 32;
changequest 11303,11304;
callsub L_Warp, getarg(0), 1;
} else if (malaya_bang == 32) {
@@ -6642,7 +6648,7 @@ function script F_Malaya_Nurse {
next;
mes "[Nurse Las]";
mes "Maybe it will block the bad energy it's giving out.";
- set malaya_bang,35;
+ malaya_bang = 35;
changequest 11306,11307;
callsub L_Warp, getarg(0), 1;
} else if (malaya_bang == 35) {
@@ -6683,29 +6689,29 @@ function script F_Malaya_Nurse {
break;
}
callsub L_Incomplete;
- set malaya_bang,42;
+ malaya_bang = 42;
changequest 11308,11309;
callsub L_Reward;
callsub L_Warp, getarg(0), 1;
} else if (malaya_bang == 40) {
callsub L_Weight;
- if (checkquest(11309,HUNTING) == 2) {
+ if (questprogress(11309,HUNTING) == 2) {
callsub L_Complete;
- set malaya_bang,41;
+ malaya_bang = 41;
completequest 11309;
callsub L_Reward;
callsub L_Warp, getarg(0), 1;
} else {
callsub L_Incomplete;
- set malaya_bang,42;
+ malaya_bang = 42;
callsub L_Reward;
callsub L_Warp, getarg(0);
}
} else if (malaya_bang > 40) {
if (malaya_bang == 42) {
- if (checkquest(11309,HUNTING) == 2) {
+ if (questprogress(11309,HUNTING) == 2) {
callsub L_Complete;
- set malaya_bang,41;
+ malaya_bang = 41;
completequest 11309;
callsub L_Warp, getarg(0), 1;
} else {
@@ -7011,7 +7017,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
next;
mes "[Nurse Las]";
mes "2 Rotten Bandages should do to wrap both my feet. They may look dirty, but they have special liquid on them that have amazing effects.";
- set malaya_bang,1;
+ malaya_bang = 1;
setquest 11284;
close2;
cutin "",255;
@@ -7047,7 +7053,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "*Squish*";
mes "*Squelch*";
delitem 930,2; //Rotten_Bandage
- set malaya_bang,2;
+ malaya_bang = 2;
close2;
cutin "",255;
end;
@@ -7078,7 +7084,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "[Nurse Las]";
mes "Okay!!!!!!";
mes "I don't know if it's locked or stuck, let's try pushing it together!";
- set malaya_bang,3;
+ malaya_bang = 3;
changequest 11284,11285;
close2;
cutin "",255;
@@ -7113,7 +7119,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "[Nurse Las]";
mes "Hey, why don't you start with that girl over there?";
mes "Perhaps she'll tell you something.";
- set malaya_bang,5;
+ malaya_bang = 5;
changequest 11286,11287;
close2;
cutin "",255;
@@ -7149,7 +7155,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "I'll contact HQ again for more info.";
mes "Hey, why not ask that man over there?";
mes "I'm sure he'll know something.";
- set malaya_bang,7;
+ malaya_bang = 7;
changequest 11288,11289;
close2;
cutin "",255;
@@ -7190,7 +7196,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "[Nurse Las]";
mes "I have to be back here again anyway.";
mes "Thank you.";
- set malaya_bang,9;
+ malaya_bang = 9;
changequest 11290,11291;
close2;
cutin "",255;
@@ -7221,7 +7227,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "Keys?";
mes "Well this is one step closer to my goals!";
mes "Let's open the door right now!";
- set malaya_bang,11;
+ malaya_bang = 11;
close2;
cutin "",255;
end;
@@ -7317,7 +7323,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
}
mes "The voice seems to be coming from the bushes near the entrance of the hospital.";
specialeffect EF_STEAL,AREA,"Bushes#ma";
- set malaya_bang,13;
+ malaya_bang = 13;
changequest 11293,11294;
close;
} else if (malaya_bang == 13) {
@@ -7356,7 +7362,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
next;
mes "[Nurse Las]";
mes "Hey you in the bushes, I'll tell on you if you don't go home now!";
- set malaya_bang,16;
+ malaya_bang = 16;
changequest 11296,11297;
close2;
cutin "",255;
@@ -7401,7 +7407,7 @@ malaya,55,72,4 script Nurse#ma_n1 4_F_NURSE,{
mes "Anyway, the first floor door is open, so let's go inside.";
mes "Everything would be meaningless if the second floor door is not opened.";
emotion e_sob;
- set malaya_bang,19;
+ malaya_bang = 19;
changequest 11299,11300;
close2;
cutin "",255;
@@ -7442,7 +7448,7 @@ ma_dun01,35,108,4 script Nurse#ma_n2 4_F_NURSE,{
mes "The hospital is infested with monsters, like the old lady said.";
mes "How could she have gone back and forth to the 2nd floor with her feet like that....";
next;
- set malaya_bang,20;
+ malaya_bang = 20;
changequest 11300,11301;
}
mes "[Nurse Las]";
@@ -7478,7 +7484,7 @@ ma_dun01,152,23,4 script Suspicious Wooden Stick::MalayaStick0 4_BULLETIN_BOARD2
if (malaya_bang == 20) {
mes "There's a talisman similar to the ones outside the hospital.";
mes "Let's look around for something else.";
- set malaya_bang,30;
+ malaya_bang = 30;
changequest 11301,11302;
close;
} else if (malaya_bang == 30) {
@@ -7526,7 +7532,7 @@ ma_dun01,152,23,4 script Suspicious Wooden Stick::MalayaStick0 4_BULLETIN_BOARD2
mes "[Nurse Las]";
mes "This is your lucky day!";
mes "*Snigger*";
- set malaya_bang,36;
+ malaya_bang = 36;
changequest 11307,11308;
close2;
cutin "",255;
@@ -7546,7 +7552,7 @@ malaya,48,76,4 script Hospital Door#ma_n1 CLEAR_NPC,{
if (malaya_bang == 3) {
mes "Pushed hard on the door, but it won't open.";
mes "It doesn't feel like it's locked or stuck, but encased by a layer of something.";
- set malaya_bang,4;
+ malaya_bang = 4;
changequest 11285,11286;
close;
} else if (malaya_bang == 4) {
@@ -7558,7 +7564,7 @@ malaya,48,76,4 script Hospital Door#ma_n1 CLEAR_NPC,{
mes "But it's not locked as expected.";
next;
mes "Then why is the door not opening?";
- set malaya_bang,12;
+ malaya_bang = 12;
changequest 11292,11293;
close;
} else if (malaya_bang == 12) {
@@ -7613,7 +7619,7 @@ malaya,64,78,4 script Village Woman#mab 4_F_MALAYA,{
mes "I don't know.";
mes "I haven't given it a thought.";
mes "It is strange to have a new nurse coming to a closed hospital.";
- set malaya_bang,6;
+ malaya_bang = 6;
changequest 11287,11288;
close;
case 2:
@@ -7627,7 +7633,7 @@ malaya,64,78,4 script Village Woman#mab 4_F_MALAYA,{
mes "I don't know.";
mes "I haven't given it a thought.";
mes "It is strange to have a new nurse coming to a closed hospital.";
- set malaya_bang,6;
+ malaya_bang = 6;
changequest 11287,11288;
close;
} else {
@@ -7694,7 +7700,7 @@ malaya,62,37,4 script Village Man#mab 4_M_MALAYA,{
mes "[Village Man]";
mes "That's where the doctor is staying.";
mes "He's been there ever since the hospital was closed.";
- set malaya_bang,8;
+ malaya_bang = 8;
changequest 11289,11290;
close;
case 2:
@@ -7768,7 +7774,7 @@ malaya,210,200,5 script Dr. Boon#ma 4_LGTSCIENCE,{
mes "[Dr. Boon]";
mes "I'll be there as soon as I'm done here.";
mes "Good luck~";
- set malaya_bang,10;
+ malaya_bang = 10;
changequest 11291,11292;
close;
}
@@ -7859,7 +7865,7 @@ malaya,53,68,4 script Bushes#ma CLEAR_NPC,{
next;
mes "[???]";
mes "I couldn't see what she was doing from here, but I found some sticks there after she'd left.";
- set malaya_bang,14;
+ malaya_bang = 14;
changequest 11294,11295;
close;
case 5:
@@ -7931,7 +7937,7 @@ malaya,53,68,4 script Bushes#ma CLEAR_NPC,{
mes "Pulled out the deeply planted stick.";
mes "The hospital seems to have become more gloomy.";
if (rand(2)) {
- set malaya_bang,15;
+ malaya_bang = 15;
changequest 11295,11296;
getitem 6497,1; //Lesser_Agimat
donpcevent "Tent"+replacestr(strnpcinfo(3),"MalayaStick","")+"#ma::OnEnable";
@@ -8084,7 +8090,7 @@ malaya,114,183,3 script Bent Old Lady#ma 4_F_BARYO_OLD,{
mes "But the administrator wouldn't listen.";
mes "Far from curing people, they started to die.";
mes "So did my daughter...";
- set malaya_bang,17;
+ malaya_bang = 17;
changequest 11297,11298;
close;
case 2:
@@ -8141,7 +8147,7 @@ malaya,114,183,3 script Bent Old Lady#ma 4_F_BARYO_OLD,{
next;
mes "Nurse Las may be in danger, standing alone in front of the hospital.";
mes "If I don't return quickly...";
- set malaya_bang,18;
+ malaya_bang = 18;
changequest 11298,11299;
close;
} else if (malaya_bang == 18) {
@@ -8155,7 +8161,7 @@ malaya,114,183,3 script Bent Old Lady#ma 4_F_BARYO_OLD,{
next;
mes "[Bent Old Lady]";
mes "Not famous, but a talented shaman.";
- set malaya_bang,33;
+ malaya_bang = 33;
changequest 11304,11305;
close;
} else {
@@ -8221,7 +8227,7 @@ malaya,276,367,4 script Bent Shaman#ma 4_F_UMOLDWOMAN,{
mes "It's okay.";
mes "No need for money.";
mes "It's the karma this village must face...";
- set malaya_bang,34;
+ malaya_bang = 34;
changequest 11305,11306;
}
close;
@@ -8267,7 +8273,7 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
next;
switch(select("Start Pintados Festival:End Pintados Festival:NPC_ON:NPC_OFF")) {
case 1:
- set $malaya_pintados_00,1;
+ $malaya_pintados_00 = 1;
donpcevent "Pintados Manager#pin::OnEnable";
mes "Start the Pintados Festival.";
close;
@@ -8307,7 +8313,7 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
input .@input;
if (.@input < 0 || .@input > 344)
close;
- set $malaya_pintados_00, .@input;
+ $malaya_pintados_00 = .@input;
break;
case 3:
mes "Adjust the accumulated value for the Lesser Agimat.";
@@ -8316,7 +8322,7 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
input .@input;
if (.@input < 0 || .@input > 1000)
close;
- set $malaya_pintados_01, .@input;
+ $malaya_pintados_01 = .@input;
break;
case 4:
mes "Adjust the accumulated value of the Silver Cross.";
@@ -8325,7 +8331,7 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
input .@input;
if (.@input < 0 || .@input > 1000)
close;
- set $malaya_pintados_02, .@input;
+ $malaya_pintados_02 = .@input;
break;
case 5:
mes "Adjust the accumulated value for the Dyestuff.";
@@ -8334,7 +8340,7 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
input .@input;
if (.@input < 0 || .@input > 300)
close;
- set $malaya_pintados_03, .@input;
+ $malaya_pintados_03 = .@input;
break;
}
mes "Time Value: ("+$malaya_pintados_00+"/344)";
@@ -8360,13 +8366,13 @@ ma_fild01,1,1,4 script Pintados Manager#pin 4_F_KHELLISIA,{
// end;
OnTimer1800000:
- set $malaya_pintados_00, $malaya_pintados_00;
+ //$malaya_pintados_00 = $malaya_pintados_00;
if ($malaya_pintados_00 > 0 && $malaya_pintados_00 < 344) {
- set $malaya_pintados_00,$malaya_pintados_00+1;
+ ++$malaya_pintados_00;
stopnpctimer;
initnpctimer;
} else {
- set $malaya_pintados_00,0;
+ $malaya_pintados_00 = 0;
donpcevent "Pintados Manager#pin::OnDisable";
}
end;
@@ -8377,18 +8383,18 @@ OnEnable:
end;
OnDisable:
stopnpctimer;
- set $malaya_pintados_00,0;
- set $malaya_pintados_01,0;
- set $malaya_pintados_02,0;
- set $malaya_pintados_03,0;
+ $malaya_pintados_00 = 0;
+ $malaya_pintados_01 = 0;
+ $malaya_pintados_02 = 0;
+ $malaya_pintados_03 = 0;
donpcevent "Pintados Manager#pin::OnDisableNPC";
announce "The 'Pintados Festival' ended with great success.",bc_all,"0xFB9D04",FW_NORMAL,12;
end;
OnEnableNPC:
- set .@str$, "::OnEnable";
+ .@str$ = "::OnEnable";
OnDisableNPC:
if (.@str$ == "")
- set .@str$, "::OnDisable";
+ .@str$ = "::OnDisable";
donpcevent "Tourist#pin01"+.@str$;
donpcevent "Tourist#pin02"+.@str$;
donpcevent "Tourist#pin03"+.@str$;
@@ -8410,7 +8416,7 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
}
if ($malaya_pintados_00 == 0) {
if ($malaya_pintados_01 > 999 && $malaya_pintados_02 > 999 && $malaya_pintados_03 > 299) {
- set $malaya_pintados_00,1;
+ $malaya_pintados_00 = 1;
donpcevent "Pintados Manager#pin::OnEnable";
emotion e_lv;
mes "[Isco]";
@@ -8510,7 +8516,7 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
mes "Sigh... We are still short of materials to start the '^7A96E0Pintados Festival^000000'.";
close;
case 3:
- set .@str$, (Sex)?"Bro":"Sis";
+ .@str$ = (Sex)?"Bro":"Sis";
break;
}
emotion e_lv;
@@ -8519,26 +8525,26 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
mes "Thanks! "+strcharinfo(0)+" "+.@str$+"!!";
mes "He he. What did you bring?";
next;
- set .@i, select(
+ .@i = select(
"Lesser Agimat (^FF0000"+(($malaya_pintados_01 > 999)?"Collection complete":(1000 - $malaya_pintados_01)+" short")+"^000000):"+
"Silver Cross (^FF0000"+(($malaya_pintados_02 > 999)?"Collection complete":(1000 - $malaya_pintados_02)+" short")+"^000000):"+
"Dyestuff (^FF0000"+(($malaya_pintados_03 > 299)?"Collection complete":(300 - $malaya_pintados_03)+" short")+"^000000)"
);
switch(.@i) {
case 1:
- set .@item,6497; //Lesser_Agimat
- set .@name$,"Lesser Agimats";
- set .@total,1000;
+ .@item = 6497; //Lesser_Agimat
+ .@name$ = "Lesser Agimats";
+ .@total = 1000;
break;
case 2:
- set .@item,6502; //Silver_Cross
- set .@name$,"Silver Crosses";
- set .@total,1000;
+ .@item = 6502; //Silver_Cross
+ .@name$ = "Silver Crosses";
+ .@total = 1000;
break;
case 3:
setarray .@items[0],975,976,978,979,980,981,982,983;
- set .@name$,"Dyestuffs";
- set .@total,300;
+ .@name$ = "Dyestuffs";
+ .@total = 300;
break;
}
mes "[Isco]";
@@ -8555,7 +8561,7 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
next;
switch(select("One?!:Enter quantity.")) {
case 1:
- set .@amount,1;
+ .@amount = 1;
mes "[Isco]";
mes "He he... You've brought back one.";
next;
@@ -8580,9 +8586,9 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
} else {
mes "I am "+(.@total - getd("$malaya_pintados_0"+.@i))+" short of Dyestuffs. What kind of Dyestuff did you bring?";
next;
- for(set .@j,0; .@j<getarraysize(.@items); set .@j,.@j+1)
- set .@menu$, .@menu$+getitemname(.@items[.@j])+" (^FF0000"+countitem(.@items[.@j])+"^000000):";
- set .@item, .@items[select(.@menu$)-1];
+ for(.@j = 0; .@j<getarraysize(.@items); ++.@j)
+ .@menu$ += getitemname(.@items[.@j])+" (^FF0000"+countitem(.@items[.@j])+"^000000):";
+ .@item = .@items[select(.@menu$)-1];
if (countitem(.@item) == 0) {
mes "[Isco]";
mes "Sigh~ You don't have any "+getitemname(.@item)+".";
@@ -8604,7 +8610,7 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
}
break;
case 2:
- set .@amount, countitem(.@item);
+ .@amount = countitem(.@item);
break;
}
if (countitem(.@item) < .@amount) {
@@ -8615,7 +8621,7 @@ ma_fild01,179,260,2 script Festival Helper Boy#pin 4_M_BARYO_BOY,{
}
delitem .@item,.@amount;
setd "$malaya_pintados_0"+.@i, getd("$malaya_pintados_0"+.@i)+.@amount;
- set .@amount_left, .@total - getd("$malaya_pintados_0"+.@i);
+ .@amount_left = .@total - getd("$malaya_pintados_0"+.@i);
mes "[Isco]";
mes "He he... Thanks. "+.@str$+"!";
if (.@amount_left <= 0)
@@ -8743,22 +8749,22 @@ ma_fild01,172,223,6 script Tattooist#pin 4_M_BARYO_OLD,{
mes "Hope you enjoy the '^7A96E0Pintados Festival^000000'.";
close;
case 2:
- set .@tattoo,2911; //Bangungot_Tattoo
- set .@doll,6517; //Bangungot_Doll
- set .@spirit,6524; //Bangungot_Spirit_Piece
- set .@name$,"Bangungot";
+ .@tattoo = 2911; //Bangungot_Tattoo
+ .@doll = 6517; //Bangungot_Doll
+ .@spirit = 6524; //Bangungot_Spirit_Piece
+ .@name$ = "Bangungot";
break;
case 3:
- set .@tattoo,2907; //Buwaya_Tattoo
- set .@doll,6518; //Buwaya_Doll
- set .@spirit,6525; //Buwaya_Spirit_Piece
- set .@name$,"Buwaya";
+ .@tattoo = 2907; //Buwaya_Tattoo
+ .@doll = 6518; //Buwaya_Doll
+ .@spirit = 6525; //Buwaya_Spirit_Piece
+ .@name$ = "Buwaya";
break;
case 4:
- set .@tattoo,2910; //Bakonawa_Tattoo
- set .@doll,6516; //Bakonawa_Doll
- set .@spirit,6523; //Bakonawa_Spirit_Piece
- set .@name$,"Bakonawa";
+ .@tattoo = 2910; //Bakonawa_Tattoo
+ .@doll = 6516; //Bakonawa_Doll
+ .@spirit = 6523; //Bakonawa_Spirit_Piece
+ .@name$ = "Bakonawa";
break;
}
if (countitem(6499) < 10 || countitem(.@spirit) == 0 || countitem(.@doll) == 0) {
@@ -8914,7 +8920,7 @@ ma_fild01,172,223,6 script Tattooist#pin 4_M_BARYO_OLD,{
delitem .@spirit,1;
delitem .@doll,1;
getitem .@tattoo,1;
- set $malaya_pintados_04$, strcharinfo(0);
+ $malaya_pintados_04$ = strcharinfo(0);
mes "[Tattooist]";
mes "I'm sorry you had to wait for a long time. But it was worth it cause I haven't created a Tattoo of this quality in a long time.";
next;
diff --git a/npc/re/quests/quests_mora.txt b/npc/re/quests/quests_mora.txt
index a8697058a..fc076a6b3 100644
--- a/npc/re/quests/quests_mora.txt
+++ b/npc/re/quests/quests_mora.txt
@@ -35,7 +35,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
mes "[Theore]";
mes "How am I supposed to submit a report that's so bad!!! A 5-year-old could do better!!!";
mes "Noooo!!!";
- set ep14_1_bs,1;
+ ep14_1_bs = 1;
close;
} else if (ep14_1_bs == 1) {
mes "- A person with a white gown -";
@@ -126,7 +126,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
mes "- The man seems to be in a manic state. -";
mes "- Wait until he calms down -";
mes "- and try speaking to him again. -";
- set ep14_1_bs,2;
+ ep14_1_bs = 2;
setquest 11182;
close;
case 2:
@@ -138,7 +138,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
}
}
} else if (ep14_1_bs == 2) {
- if (checkquest(11182,PLAYTIME) < 2) {
+ if (questprogress(11182,PLAYTIME) != 2) {
mes "[Theore]";
mes "......";
switch(rand(1,4)) {
@@ -214,7 +214,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
next;
mes "[Theore]";
mes "The Laphines are such a rowdy crew, and it's very unsettling to see how quiet they've been - almost like a period of calm before a giant thunderstorm.";
- set ep14_1_bs,3;
+ ep14_1_bs = 3;
changequest 11182,11183;
close;
} else if (ep14_1_bs == 3) {
@@ -292,7 +292,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
mes "My poor innocent imagination!!!!";
next;
mes "- He is in no state for conversations. You should take the pouch to Splendide and look for its owner. -";
- set ep14_1_bs2, ep14_1_bs2+3; //4,5,6 -> 7,8,9
+ ep14_1_bs2 += 3; //4,5,6 -> 7,8,9
changequest 11185,11186;
close;
} else {
@@ -326,7 +326,7 @@ mid_camp,148,222,4 script Theore#ep14_1_bs 4_F_SCIENCE,3,3,{
mes "[Theore]";
mes "Then I'm off to put the finishing touches on the report!!!!!!!";
mes "Oh yeah!!!!";
- set ep14_1_bs,19;
+ ep14_1_bs = 19;
getexp 0,200000;
getitem 6380,5; //Mora_Coin
close;
@@ -348,7 +348,7 @@ OnTouch:
mes "[Theore]";
mes "How am I supposed to submit a report that's so bad!!! A 5-year-old could do better!!!";
mes "Noooo!!!";
- set ep14_1_bs,1;
+ ep14_1_bs = 1;
close;
}
}
@@ -360,13 +360,13 @@ OnTouch:
mes "- It's just an ordinary bush. -";
close;
}
- set .@i, atoi(charat(strnpcinfo(2),9));
- set .@rand, rand(1,3);
+ .@i = atoi(charat(strnpcinfo(2),9));
+ .@rand = rand(1,3);
mes "[Unarmed Laphine]";
mes "Aaaarrrrrggggghhhhh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
donpcevent "Fairy#cmd"+.@i+.@rand+"::OnEnable";
- set ep14_1_bs, .@i+3;
- set ep14_1_bs2, .@rand;
+ ep14_1_bs = .@i+3;
+ ep14_1_bs2 = .@rand;
changequest 11183,11184;
next;
mes "- You try to talk to the Laphine, -";
@@ -390,22 +390,22 @@ OnDisable:
- script #mora_pouch -1,{
end;
OnTouch:
- set .@i, atoi(charat(strnpcinfo(2),9));
+ .@i = atoi(charat(strnpcinfo(2),9));
if (ep14_1_bs == .@i+3) {
if (countitem(6390) == 0) {
if (checkweight(1201,1) == 0) {
mes " - Hang on there !! -";
mes " - You are carrying too many kinds of items - ";
- mes " - to receive any more items. - ";
+ mes " - to receive any more items. - ";
mes " - Please lighten your load - ";
- mes " - and try again. - ";
+ mes " - and try again. - ";
close;
}
if (MaxWeight - Weight < 1000) {
mes " - Hang on there !! -";
- mes " - You are carrying too much weight - ";
+ mes " - You are carrying too much weight - ";
mes " - Please lighten your load - ";
- mes " - and try again. - ";
+ mes " - and try again. - ";
close;
}
mes "- Jumble Fumble -";
@@ -414,7 +414,7 @@ OnTouch:
if (rand(1,5) == 4) {
mes "- You've found a Small pouch. -";
if (ep14_1_bs2 > 0 && ep14_1_bs2 < 4)
- set ep14_1_bs2, ep14_1_bs2+3;
+ ep14_1_bs2 += 3;
changequest 11184,11185;
getitem 6390,1; //Small_Pocket
close;
@@ -530,7 +530,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
mes "I'm tired, don't talk to me.";
close;
} else if (ep14_1_bs < 10) {
- if (checkquest(11187) == -1) {
+ if (!questprogress(11187)) {
mes "[Tired-looking Fairy]";
mes "I'm tired, don't talk to me.";
next;
@@ -552,7 +552,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
mes "Then tell me if you remember anything.";
close;
}
- } else if (checkquest(11187) == 2) {
+ } else if (questprogress(11187) == 2) {
mes "[Tired-looking Fairy]";
mes "I hope you can find the owner.";
close;
@@ -572,7 +572,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
select("Snow-white clothing:Grape clothing:Sky-blue clothing:Grassy-green clothing"),
select("Round wings:Two pairs of wings:Characteristic Wings");
- set .@i[0], (1 << .@i[1]) | (1 << (.@i[2]+4)) | (1 << (.@i[3]+6)) | (1 << (.@i[4]+10));
+ .@i[0] = (1 << .@i[1]) | (1 << (.@i[2]+4)) | (1 << (.@i[3]+6)) | (1 << (.@i[4]+10));
mes "[Tired-looking Fairy]";
mes "A "+.@Skin$[.@i[2]-1]+"-skinned fairy with "+.@Hair$[.@i[1]-1]+" hair and "+.@Wings$[.@i[4]-1]+" wings, dressed in "+.@Clothing$[.@i[3]-1]+" clothing.......";
@@ -584,7 +584,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
mes "Kusmi must be roaming the area southeast of the village.";
mes "Go see if she has lost her pouch.";
if (ep14_1_bs2 == 7)
- set ep14_1_bs2,10;
+ ep14_1_bs2 = 10;
close;
case 2212: // Theodore: grassy-green hair, dark skin, snow-white clothing, round wings
mes "Hmm......That must be Theodore.";
@@ -593,7 +593,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
mes "Theodore must be roaming the area northeast of the village.";
mes "Go see if he has lost his pouch.";
if (ep14_1_bs2 == 8)
- set ep14_1_bs2,11;
+ ep14_1_bs2 = 11;
close;
case 9264: // Pauchon: sea-blue hair, dark skin, grassy-green clothing, characteristic wings
mes "Hmm......That must be Pauchon.";
@@ -602,7 +602,7 @@ splendide,183,117,4 script Tired-looking Fairy 4_F_FAIRYKID3,{
mes "Pauchon must be roaming the area north of the village.";
mes "Go see if she has lost her pouch.";
if (ep14_1_bs2 == 9)
- set ep14_1_bs2,12;
+ ep14_1_bs2 = 12;
close;
default:
next;
@@ -658,7 +658,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
mes "Promise me you won't tell anyonee!";
mes "If you can promise, please talk to me againn.";
delitem 6390,1; //Small_Pocket
- set ep14_1_bs,10;
+ ep14_1_bs = 10;
changequest 11187,11188;
close;
} else {
@@ -703,7 +703,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
mes "[Kusmi]";
mes "Oh, and you must never ever tell anyone about what happened todayy!";
mes "Unless that person wanted to help uss... spreading the word won't do Splendide any goood.";
- set ep14_1_bs,11;
+ ep14_1_bs = 11;
completequest 11188;
setquest 11189;
close;
@@ -726,7 +726,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
next;
mes "[Kusmi]";
mes "If you're headed that way, please go see that all's okayy.";
- set ep14_1_bs,12;
+ ep14_1_bs = 12;
changequest 11189,11190;
close;
case 2:
@@ -761,7 +761,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
next;
mes "[Kusmi]";
mes "He always used to visit Splendide around this time, but the situation is no good now. I'll have to tell him to come another time.";
- set ep14_1_bs,14;
+ ep14_1_bs = 14;
changequest 11191,11192;
close;
} else if (ep14_1_bs == 14) {
@@ -771,7 +771,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
next;
mes "[Kusmi]";
mes "If you go to the warehouse in Mora Village, the manager will tell you moree.";
- if (checkquest(11193) > -1 && checkquest(11193) < 2)
+ if (questprogress(11193) == 1)
close;
mes "Also, on the way back, will you check to see that my friend Rondo is in Mora Villagee?";
next;
@@ -779,7 +779,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
mes "He always used to visit Splendide around this time, but the situation is no good now. I'll have to tell him to come another time.";
close;
} else if (ep14_1_bs > 14) {
- if (checkquest(11193) == -1) {
+ if (!questprogress(11193)) {
mes "[Kusmi]";
mes "Will you check to see that my friend Rondo is in Mora Villagee?";
next;
@@ -802,7 +802,7 @@ splendide,119,138,4 script Kusmi#ep14_1_bs 4_F_FAIRYKID5,{
mes "[Kusmi]";
mes "Oh, And Daphrer is in northwest Splendide.";
}
- if (checkquest(11193) < 2) {
+ if (questprogress(11193) != 2) {
completequest 11192;
completequest 11193;
}
@@ -853,7 +853,7 @@ splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
mes "If you really want to hear the answer, talk to me again.";
mes "I need time to think.";
delitem 6390,1; //Small_Pocket
- set ep14_1_bs,10;
+ ep14_1_bs = 10;
changequest 11187,11194;
close;
} else {
@@ -894,7 +894,7 @@ splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
mes "[Theodore]";
mes "And as I said before, what I told you is a secret and you must not tell anyone.";
mes "We do need help, but we are cornered and we don't want others to know.";
- set ep14_1_bs,11;
+ ep14_1_bs = 11;
completequest 11194;
setquest 11195;
close;
@@ -916,7 +916,7 @@ splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
next;
mes "[Theodore]";
mes "If you happen to venture there, please ask a guard what things are like there.";
- set ep14_1_bs,12;
+ ep14_1_bs = 12;
changequest 11195,11196;
close;
case 2:
@@ -951,21 +951,21 @@ splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
next;
mes "[Theodore]";
mes "And if it's not too much trouble, you could drop by my friend Lilitia's also...";
- set ep14_1_bs,14;
+ ep14_1_bs = 14;
changequest 11197,11198;
close;
} else if (ep14_1_bs == 14) {
mes "[Theodore]";
mes "If you speak to the Warehouse Manager of Mora Village, you'd be able to get more information.";
mes "If you're willing, will you go to Bifrost's 'Mora' Village and meet the Warehouse Manager?";
- if (checkquest(11199) > -1 && checkquest(11199) < 2)
+ if (questprogress(11199) == 1)
close;
next;
mes "[Theodore]";
mes "And if it's not too much trouble, you could drop by my friend Lilitia's also...";
close;
} else if (ep14_1_bs > 14) {
- if (checkquest(11199) == -1) {
+ if (!questprogress(11199)) {
mes "[Theodore]";
mes "And if it's not too much trouble, you could drop by my friend Lilitia's also...";
close;
@@ -984,7 +984,7 @@ splendide,304,295,4 script Theodore#ep14_1_bs 4_M_FAIRYKID4,{
mes "[Theodore]";
mes "Oh, And Daphrer is in northwest Splendide.";
}
- if (checkquest(11199) < 2) {
+ if (questprogress(11199) != 2) {
completequest 11198;
completequest 11199;
}
@@ -1033,7 +1033,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
mes "I do appreciate you finding my pouch.... Hmm...";
mes "Please give me some time to think..";
delitem 6390,1; //Small_Pocket
- set ep14_1_bs,10;
+ ep14_1_bs = 10;
changequest 11187,11200;
close;
} else {
@@ -1075,7 +1075,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
mes "[Pauchon]";
mes "I'd eat the bark off of that tree if I could.";
mes "If only somebody could help. *sob*";
- set ep14_1_bs,11;
+ ep14_1_bs = 11;
completequest 11200;
setquest 11201;
close;
@@ -1098,7 +1098,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
mes "[Pauchon]";
mes "Oh! The guard there might know something.";
mes "If you're headed that way, please go find out what's up.";
- set ep14_1_bs,12;
+ ep14_1_bs = 12;
changequest 11201,11202;
close;
case 2:
@@ -1131,7 +1131,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
next;
mes "[Pauchon]";
mes "He's such a flighty guy, might have already left, but we were supposed to meet up in Mora Village.";
- set ep14_1_bs,14;
+ ep14_1_bs = 14;
changequest 11203,11204;
close;
} else if (ep14_1_bs == 14) {
@@ -1140,7 +1140,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
next;
mes "[Pauchon]";
mes "The supplies from the mainland come through the Village. If you go speak to the Warehouse Manager, he'll be able to tell you something.";
- if (checkquest(11205) > -1 && checkquest(11205) < 2)
+ if (questprogress(11205) == 1)
close;
mes "Also, please pay a visit to my friend Humming.";
next;
@@ -1148,7 +1148,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
mes "He's such a flighty guy, might have already left, but we were supposed to meet up in Mora Village.";
close;
} else if (ep14_1_bs > 14) {
- if (checkquest(11205) == -1) {
+ if (!questprogress(11205)) {
mes "[Pauchon]";
mes "Please pay a visit to my friend Humming.";
mes "He's such a flighty guy, might have already left, but we were supposed to meet up in Mora Village.";
@@ -1167,7 +1167,7 @@ splendide,168,301,4 script Pauchon#ep14_1_bs 4_F_FAIRYKID4,{
mes "[Pauchon]";
mes "Oh, And Daphrer is in northwest Splendide.";
}
- if (checkquest(11205) < 2) {
+ if (questprogress(11205) != 2) {
completequest 11204;
completequest 11205;
}
@@ -1201,14 +1201,14 @@ splendide,262,376,4 script Laphine Soldier#ep14_1 4_M_FAIRYSOLDIER,{
next;
mes "[Laphine Soldier]";
mes "You can get to Alfheim by making it through the Maze of the Hazy Forest. However, nobody has ever come back from the Maze of the Hazy Forest.";
- if (checkquest(11190) > -1 && checkquest(11190) < 2) {
- set ep14_1_bs,13;
+ if (questprogress(11190) == 1) {
+ ep14_1_bs = 13;
changequest 11190,11191;
- } else if (checkquest(11196) > -1 && checkquest(11196) < 2) {
- set ep14_1_bs,13;
+ } else if (questprogress(11196) == 1) {
+ ep14_1_bs = 13;
changequest 11196,11197;
- } else if (checkquest(11202) > -1 && checkquest(11202) < 2) {
- set ep14_1_bs,13;
+ } else if (questprogress(11202) == 1) {
+ ep14_1_bs = 13;
changequest 11202,11203;
}
close;
@@ -1239,7 +1239,7 @@ mora,185,163,2 script Warehouse Manager#ep14_1 4_M_RAFLE_GR,{
mes "[Warehouse Manager]";
mes "If you plan to go back to Splendide, pay a visit to Jones at the Inn.";
mes "He has something that needs to be urgently delivered to the army of Splendide.";
- set ep14_1_bs,15;
+ ep14_1_bs = 15;
setquest 11206;
close;
} else if (ep14_1_bs == 15) {
@@ -1270,7 +1270,7 @@ mora,35,119,4 script Rondo#ep14_1_bs 4_M_DOGTRAVELER,{
mes "[Rondo]";
mes "Please tell Kusmi";
mes "that if he wants to meet, we can meet any time. There is nothing to worry about.";
- if (checkquest(11193) == -1)
+ if (!questprogress(11193))
setquest 11193;
}
close;
@@ -1290,7 +1290,7 @@ mora,98,66,4 script Lilitia#ep14_1_bs 4_F_RAFLE_PK,{
mes "[Lilitia]";
mes "What? Theodore sent you?";
mes "Please tell him that I'm so mad!!";
- if (checkquest(11199) == -1)
+ if (!questprogress(11199))
setquest 11199;
close;
}
@@ -1316,7 +1316,7 @@ mora,139,102,2 script Humming#ep14_1_bs 4_F_DOGTRAVELER,{
mes "[Humming]";
mes "If you reach Splendide before me, please tell Pauchon";
mes "that I'm going through the Maze of the Hazy Forest.";
- if (checkquest(11205) == -1)
+ if (!questprogress(11205))
setquest 11205;
close;
}
@@ -1352,7 +1352,7 @@ mora,55,124,2 script Jones#ep14_1_bs 4_M_MERCAT1,{
case 1:
mes "[Jones]";
mes "Thank you.";
- set ep14_1_bs,16;
+ ep14_1_bs = 16;
changequest 11206,11207;
close;
case 2:
@@ -1374,7 +1374,7 @@ mora,55,124,2 script Jones#ep14_1_bs 4_M_MERCAT1,{
mes "[Jones]";
mes "Please take good care of it.";
mes "It's for Daphrer in Splendide.";
- set ep14_1_bs,17;
+ ep14_1_bs = 17;
getitem 6391,1; //Splendid_Supply_Kit
changequest 11207,11208;
close;
@@ -1416,7 +1416,7 @@ splendide,121,260,4 script Daphrer#ep14_1_bs 4_F_FAIRY,{
mes "This is probably too small to be a reward, but please accept this as a sign of my gratitude.";
delitem 6391,1; //Splendid_Supply_Kit
if (ep14_1_bs == 17) {
- set ep14_1_bs,18;
+ ep14_1_bs = 18;
completequest 11208;
getexp 0,500000;
getitem 6380,5; //Mora_Coin
@@ -1433,7 +1433,7 @@ splendide,121,260,4 script Daphrer#ep14_1_bs 4_F_FAIRY,{
mes "I knew that it was probably a stretch......";
mes "Perhaps I've been unrealistic.";
mes "But I thank you for your trouble anyway. Please accept this as a sign of my gratitude.";
- set ep14_1_bs,18;
+ ep14_1_bs = 18;
completequest 11208;
getexp 0,200000;
getitem 6380,2; //Mora_Coin
@@ -1448,14 +1448,14 @@ sec_in02,35,175,0 script Theore Set Guid 4_F_FAIRYKID,{
callfunc "F_GM_NPC";
switch(select("Set0:Set33:Set2_0")) {
case 1:
- set ep14_1_bs,0;
+ ep14_1_bs = 0;
end;
case 2:
- set ep4_1_bs,3;
+ ep4_1_bs = 3;
setquest 11183;
end;
case 3:
- set ep14_1_bs2,0;
+ ep14_1_bs2 = 0;
end;
}
}
@@ -1465,7 +1465,7 @@ sec_in02,35,175,0 script Theore Set Guid 4_F_FAIRYKID,{
dic_in01,262,191,0 script #ep14_1_xq02 HIDDEN_WARP_NPC,0,3,{
end;
OnTouch:
- if (ep13_3_secret > 22 && checkquest(7206) == -1) {
+ if (ep13_3_secret > 22 && !questprogress(7206)) {
enablenpc "Cheshire#ep14_1_xq01";
cutin "ep13_cheshire_h",1;
mes "[Cheshire]";
@@ -1507,8 +1507,8 @@ dic_dun01,274,114,0 script Stacked Boxes of Goods CLEAR_NPC,{
mes "- You have too many items to do this quest. -";
close;
}
- set .@playtime, checkquest(7208,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7208,PLAYTIME);
+ if (.@playtime == 1) {
mes "Boxes with all kinds of goods in them are stacked to the ceiling.";
mes "The marked box Cheshire was talking about doesn't seem to be here yet.";
close;
@@ -1531,8 +1531,8 @@ dic_dun01,274,114,0 script Stacked Boxes of Goods CLEAR_NPC,{
close;
}
} else {
- if (checkquest(7207) == -1) {
- if (checkquest(7206) > -1) {
+ if (!questprogress(7207)) {
+ if (questprogress(7206)) {
mes "Boxes with all kinds of goods in them are stacked to the ceiling.";
mes "Looking closely, you find a box with a small piece of paper stuck to it.";
next;
@@ -1545,7 +1545,7 @@ dic_dun01,274,114,0 script Stacked Boxes of Goods CLEAR_NPC,{
getitem 6392,1; //Bradium_Box
close;
}
- } else if (checkquest(7207) < 2) {
+ } else if (questprogress(7207) != 2) {
mes "You've already obtained the box Cheshire was talking about.";
mes "Now you only have to take it to the Crevice of Bifrost.";
close;
@@ -1562,7 +1562,7 @@ bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 4_M_CATMAN1,{
close;
}
cutin "ep13_cheshire",1;
- if (checkquest(7209) > -1) {
+ if (questprogress(7209)) {
if (countitem(6090) < 20) {
mes "[Cheshire]";
mes "Bring me 20 pieces of refined Bradium.";
@@ -1592,7 +1592,7 @@ bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 4_M_CATMAN1,{
end;
}
callsub L_CheckPlaytime;
- if (checkquest(7210) > -1) {
+ if (questprogress(7210)) {
if (countitem(6392) == 0)
callsub L_LostQuest,7210;
else {
@@ -1616,8 +1616,8 @@ bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 4_M_CATMAN1,{
}
}
if (ep13_3_secret > 22) {
- if (checkquest(7207) == -1) {
- if (checkquest(7206) == -1) {
+ if (!questprogress(7207)) {
+ if (!questprogress(7206)) {
mes "[Cheshire]";
mes "...Hmm? Huh?";
mes "It's "+strcharinfo(0)+"!";
@@ -1685,7 +1685,7 @@ bif_fild01,335,168,3 script Cheshire#ep14_1_xq04 4_M_CATMAN1,{
cutin "",255;
end;
}
- } else if (checkquest(7207) < 2) {
+ } else if (questprogress(7207) != 2) {
if (countitem(6392) == 0)
callsub L_LostQuest,7207;
else {
@@ -1828,8 +1828,8 @@ L_LostQuest:
cutin "",255;
end;
L_CheckPlaytime:
- set .@playtime, checkquest(7208,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(7208,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Cheshire]";
mes "Each day, one of these boxes is sent to Kamidal Tunnel.";
mes "It's smuggled in among other items.";
@@ -1864,7 +1864,7 @@ OnTouch:
mes "There must be someone down there.";
if ($@cheshire_on == 0) {
donpcevent "Cheshire#ep14_extra::OnEnable";
- set $@cheshire_on,1;
+ $@cheshire_on = 1;
}
close;
}
@@ -1947,7 +1947,7 @@ OnDisable:
end;
OnTimer600000:
disablenpc "Cheshire#ep14_extra";
- set $@cheshire_on,0;
+ $@cheshire_on = 0;
stopnpctimer;
end;
}
@@ -2008,7 +2008,7 @@ mora,117,66,3 script Euridi#pa 4_F_MORAFINE2,{
mes "He wouldn't see me and locked himself in the room.";
mes "But he might be willing to see you, because you've been to the Hazy Forest.";
setquest 1109;
- set ep14_1_rope,1;
+ ep14_1_rope = 1;
close;
}
}
@@ -2037,7 +2037,7 @@ mora,117,66,3 script Euridi#pa 4_F_MORAFINE2,{
mes "where he is.";
mes "I'm counting on you, "+strcharinfo(0)+".";
changequest 1110,1111;
- set ep14_1_rope,3;
+ ep14_1_rope = 3;
close;
} else if (ep14_1_rope == 3) {
mes "[Euridi]";
@@ -2082,10 +2082,10 @@ mora,117,66,3 script Euridi#pa 4_F_MORAFINE2,{
changequest 1112,1113;
//delitem 6383,30; //Clue_Of_Lope
- set .@count, countitem(6383);
+ .@count = countitem(6383);
if (.@count) delitem 6383,((.@count > 30)?30:.@count); //Clue_Of_Lope
- set ep14_1_rope,5;
+ ep14_1_rope = 5;
close;
} else if (ep14_1_rope == 5) {
mes "[Euridi]";
@@ -2126,7 +2126,7 @@ mora,117,66,3 script Euridi#pa 4_F_MORAFINE2,{
mes "With the ring in her hand, Euridi bursts into tears.";
mes "She starts to sing in a strained voice, still crying.";
changequest 1116,1117;
- set ep14_1_rope,10;
+ ep14_1_rope = 10;
//delitem 6384,1; //Ring_Of_Lope
if (countitem(6384)) delitem 6384,1; //Ring_Of_Lope
@@ -2196,7 +2196,7 @@ mora,115,68,3 script Euridi's Friend#pa 4_F_MORAFINE1,{
mes "because of the thick fog.";
mes "I think it's worth investigating.";
changequest 1114,1115;
- set ep14_1_rope,7;
+ ep14_1_rope = 7;
close;
} else if (ep14_1_rope == 7) {
mes "[Euridi's Friend]";
@@ -2229,7 +2229,7 @@ mora,115,68,3 script Euridi's Friend#pa 4_F_MORAFINE1,{
mes "Lope will be able to rest in peace now.";
mes "Thank you. I won't forget what you've done for me.";
completequest 1117;
- set ep14_1_rope,11;
+ ep14_1_rope = 11;
getexp 1000000,2000000;
getitem 6380,10; //Mora_Coin
close;
@@ -2267,7 +2267,7 @@ mora,65,145,3 script Pitt#pa 4_M_LYINGDOG,{
mes "He will be alive somewhere,";
mes "so go and try to find him! Just stop bothering me!";
changequest 1109,1110;
- set ep14_1_rope,2;
+ ep14_1_rope = 2;
close;
} else if (ep14_1_rope == 2) {
mes "[Pitt]";
@@ -2308,7 +2308,7 @@ mora,65,145,3 script Pitt#pa 4_M_LYINGDOG,{
mes "It's no use trying to talk to him any more.";
mes "Try talking to Euridi.";
changequest 1111,1112;
- set ep14_1_rope,4;
+ ep14_1_rope = 4;
close;
}
} else if (ep14_1_rope == 4) {
@@ -2369,7 +2369,7 @@ mora,65,145,3 script Pitt#pa 4_M_LYINGDOG,{
mes "he must be somewhere around there,";
mes "in whatever form he might be in.";
changequest 1113,1114;
- set ep14_1_rope,6;
+ ep14_1_rope = 6;
getitem 6384,1; //Ring_Of_Lope
close;
} else if (ep14_1_rope == 6 || ep14_1_rope == 7) {
@@ -2444,7 +2444,7 @@ bif_fild01,132,338,3 script Lope#pa 4_M_FAIRYSOLDIER2,2,2,{
mes "[Lope]";
mes "Now go!";
mes "This is my last request as a Laphine called Lope...";
- set ep14_1_rope,9;
+ ep14_1_rope = 9;
changequest 1115,1116;
close;
} else {
@@ -2496,7 +2496,7 @@ OnTouch:
next;
mes "[Suspicious Man]";
mes "Aaaaarrrrrggghh!!!!!";
- set ep14_1_rope,8;
+ ep14_1_rope = 8;
close;
} else {
mes "[Suspicious Man]";
@@ -2655,14 +2655,14 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "The sooner you get them back,";
mes "the sooner I can get back to my research.";
setquest 5016;
- set ep14_1_muk,1;
+ ep14_1_muk = 1;
next;
mes "[Raffle Researcher]";
mes "Have a safe trip.";
emotion e_paper;
close;
} else if (ep14_1_muk == 1) {
- if (checkquest(5016) > -1 && countitem(6385) == 0) {
+ if (questprogress(5016) && countitem(6385) == 0) {
mes "[Raffle Researcher]";
mes "You're back? Where are my research tools?";
emotion e_what;
@@ -2710,13 +2710,13 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "Why don't you take this and go to the inn";
mes "and rest up? There's nothing for you to do right now.";
delitem 6385,1; //Research_Tool_Bag
- set ep14_1_muk,2;
+ ep14_1_muk = 2;
getitem 6380,1; //Mora_Coin
erasequest 5016;
close;
} else if (ep14_1_muk == 2) {
// Unofficial check, but it's needed here.
- if (checkquest(5029,PLAYTIME) == 0 || checkquest(5029,PLAYTIME) == 1) {
+ if (questprogress(5029,PLAYTIME) == 1) {
mes "[Raffle Researcher]";
mes "It must've been hard work to retrieve the tools.";
mes "Why don't you take this and go to the inn";
@@ -2787,7 +2787,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "You can draw on his face,";
mes "pinch him, tickle him,";
mes "whatever you want. Just bully him 3 times.";
- set ep14_1_muk,3;
+ ep14_1_muk = 3;
setquest 5017;
close;
} else if (ep14_1_muk < 6) {
@@ -2841,13 +2841,13 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "[Raffle Researcher]";
mes "Here is the sample tube for collecting.";
mes "Go and collect 10 samples!";
- set ep14_1_muk,7;
+ ep14_1_muk = 7;
getitem 1092,10; //Empty_Cylinder
erasequest 5018;
setquest 5019;
close;
} else if (ep14_1_muk == 7) {
- if (checkquest(5019) > -1 && countitem(6386) < 10) {
+ if (questprogress(5019) && countitem(6386) < 10) {
mes "[Raffle Researcher]";
mes "Have you collected the samples yet?";
mes "Please hurry up.";
@@ -2877,12 +2877,12 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "Why don't you come back then?";
delitem 6386,10; //Bathtub_R_Sample
getitem 6380,1; //Mora_Coin
- set ep14_1_muk,8;
+ ep14_1_muk = 8;
erasequest 5019;
setquest 5020;
close;
} else if (ep14_1_muk == 8) {
- if (checkquest(5020,PLAYTIME) == 0 || checkquest(5020,PLAYTIME) == 1) {
+ if (questprogress(5020,PLAYTIME) == 1) {
mes "[Raffle Researcher]";
mes "The basic tests have not been completed yet.";
mes "There's nothing for you to do now.";
@@ -2908,30 +2908,30 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "the unidentified creature that attacked me.";
next;
if (rand(2)) {
- set .@str$,"teeth";
- set .@quest,5021;
+ .@str$ = "teeth";
+ .@quest = 5021;
} else {
- set .@str$,"scales";
- set .@quest,5022;
+ .@str$ = "scales";
+ .@quest = 5022;
}
mes "[Raffle Researcher]";
mes "I'd better compare the two.";
mes "Please return to the bath";
mes "and look for the creature's "+.@str$+".";
mes "If you can, please bring me 10 of them.";
- set ep14_1_muk,9;
+ ep14_1_muk = 9;
erasequest 5020;
setquest .@quest;
close;
} else if (ep14_1_muk == 9) {
- if (checkquest(5021) > -1 || checkquest(5022) > -1) {
- if (checkquest(5021) > -1) {
- set .@quest,5021;
- set .@item,6387; //Teeth_Sample
+ if (questprogress(5021) || questprogress(5022)) {
+ if (questprogress(5021)) {
+ .@quest = 5021;
+ .@item = 6387; //Teeth_Sample
setarray .@str$[0],"tooth","teeth";
} else {
- set .@quest,5022;
- set .@item,6388; //Scale_Sample
+ .@quest = 5022;
+ .@item = 6388; //Scale_Sample
setarray .@str$[0],"scale","scales";
}
if (countitem(.@item) < 10) {
@@ -2966,7 +2966,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
erasequest .@quest;
setquest 5023;
close;
- } else if (checkquest(5023,PLAYTIME) == 0 || checkquest(5023,PLAYTIME) == 1) {
+ } else if (questprogress(5023,PLAYTIME) == 1) {
mes "[Raffle Researcher]";
mes "I'm still analyzing the DNA.";
mes "The DNA analysis takes about 6 hours.";
@@ -2976,14 +2976,14 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
switch(rand(1,6)) {
case 1:
case 3:
- set .@quest,5021;
- set .@item,6387; //Teeth_Sample
+ .@quest = 5021;
+ .@item = 6387; //Teeth_Sample
setarray .@str$[0],"tooth","teeth";
break;
case 2:
case 4:
- set .@quest,5022;
- set .@item,6388; //Scale_Sample
+ .@quest = 5022;
+ .@item = 6388; //Scale_Sample
setarray .@str$[0],"scale","scales";
break;
case 5:
@@ -3045,7 +3045,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "You probably don't need to run around";
mes "like you did collecting";
mes "the bath water samples.";
- set ep14_1_muk,10;
+ ep14_1_muk = 10;
getitem 1092,1; //Empty_Cylinder
erasequest 5023;
setquest 5024;
@@ -3078,7 +3078,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "The puddle should be at 7 o'clock";
mes "from the village.";
delitem 6389,1; //Puddle_R_Sample
- set ep14_1_muk,11;
+ ep14_1_muk = 11;
getitem 1092,1; //Empty_Cylinder
changequest 5024,5025;
next;
@@ -3106,7 +3106,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "The puddle to the south";
mes "should be... at 6 o'clock from here.";
delitem 6389,1; //Puddle_R_Sample
- set ep14_1_muk,12;
+ ep14_1_muk = 12;
getitem 1092,1; //Empty_Cylinder
changequest 5025,5026;
next;
@@ -3138,7 +3138,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "It's not completely to the north.";
mes "it's at 11 o'clock from the village.";
delitem 6389,1; //Puddle_R_Sample
- set ep14_1_muk,13;
+ ep14_1_muk = 13;
getitem 1092,1; //Empty_Cylinder
changequest 5026,5027;
next;
@@ -3179,7 +3179,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "There's probably nothing else to do. While I run the experiment,";
mes "why don't you go and entertain yourself?";
delitem 6389,1; //Puddle_R_Sample
- set ep14_1_muk,14;
+ ep14_1_muk = 14;
getitem 6380,4; //Mora_Coin
erasequest 5027;
setquest 5028;
@@ -3189,7 +3189,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "will take about 12 hours.";
close;
} else if (ep14_1_muk == 14) {
- if (checkquest(5028,PLAYTIME) == 0 || checkquest(5028,PLAYTIME) == 1) {
+ if (questprogress(5028,PLAYTIME) == 1) {
mes "[Raffle Researcher]";
mes "What? You're here? Well...";
next;
@@ -3307,7 +3307,7 @@ mora,31,138,6 script Raffle Researcher#ep14 4_M_RAFLE_OR,{
mes "[Raffle Researcher]";
mes "The best research assistant in my life...";
mes "is you, "+strcharinfo(0)+"!!!";
- set ep14_1_muk,15;
+ ep14_1_muk = 15;
completequest 5028;
getexp 1000000,4000000;
getitem 6380,30; //Mora_Coin
@@ -3462,8 +3462,8 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
}
- set .@playtime, checkquest(5029,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(5029,PLAYTIME);
+ if (.@playtime == 1) {
mes "You see a dark hole. As you show interest, something disappears quickly into the dark hole.";
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
@@ -3471,7 +3471,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
} else if (.@playtime == 2)
erasequest 5029;
if (ep14_1_goki == 30) {
- if (checkquest(5030) == -1 && checkquest(5031) == -1 && checkquest(5032) == -1 && checkquest(5033) == -1 && checkquest(5034) == -1) {
+ if (!questprogress(5030) && !questprogress(5031) && !questprogress(5032) && !questprogress(5033) && !questprogress(5034)) {
mes "[Unidentified creature]";
mes "Arrgghh!!!";
mes "Why you bother me.";
@@ -3479,7 +3479,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
if(select("Bully anyway.:I'll stop.") == 1) {
emotion e_sob;
- set ep14_1_goki,0;
+ ep14_1_goki = 0;
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
@@ -3506,7 +3506,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
if(select("Don't help.:Help.") == 1) {
emotion e_sob;
- set ep14_1_goki,0;
+ ep14_1_goki = 0;
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
@@ -3548,7 +3548,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
mes "You tell me my family do okay.";
setquest 5030+rand(4); //5030,5031,5032,5033
close;
- } else if (checkquest(5030) > -1 || checkquest(5031) > -1 || checkquest(5032) > -1 || checkquest(5033) > -1) {
+ } else if (questprogress(5030) || questprogress(5031) || questprogress(5032) || questprogress(5033)) {
mes "[Fishee]";
mes "Please. In puddle.";
mes "You tell me my family do okay.";
@@ -3567,7 +3567,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
mes "Please. In puddle.";
mes "You tell me my family do okay.";
close;
- } else if (checkquest(5034) > -1 && checkquest(5034) < 2) {
+ } else if (questprogress(5034) == 1) {
if (MaxWeight - Weight < 100 || checkweight(5792,1) == 0) {
mes "[Fishee]";
mes "You have lots.";
@@ -3593,7 +3593,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
completequest 5034;
getitem 5792,1; //Fish_Pin
close;
- } else if (checkquest(5034) == 2) {
+ } else if (questprogress(5034) == 2) {
mes "[Fishee]";
mes "You... I saw. Feeling. I saw. Feeling.";
mes "You... Name?";
@@ -3606,17 +3606,17 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
close;
}
}
- set .@weapon$, ((getequipisequiped(EQI_HAND_R))?getequipname(EQI_HAND_R):"Bare handed");
- set .@pc_hp, 200;
- set .@npc_hp, 200;
+ .@weapon$ = ((getequipisequiped(EQI_HAND_R))?getequipname(EQI_HAND_R):"Bare handed");
+ .@pc_hp = 200;
+ .@npc_hp = 200;
setarray .@skills$[0],"Midsection punch","Headbutt","Wiggle wiggle","Screw punch","Mumble muble";
mes "The unidentified creature is attacking. What will you do?";
next;
while(1) {
switch(select("Attack with a weapon.:Attack using a skill.:Attack using teeth.:Run away in fear.")) {
case 1: // Weapon
- set .@p_damage,10;
- set .@pc_attack, rand(1,10);
+ .@p_damage = 10;
+ .@pc_attack = rand(1,10);
mes "["+strcharinfo(0)+"'s Attack]";
switch(.@pc_attack) {
// Miss.
@@ -3632,15 +3632,15 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
// Hit.
default:
specialeffect EF_HIT1;
- set .@npc_hp, .@npc_hp - .@p_damage;
+ .@npc_hp -= .@p_damage;
switch(.@pc_attack) {
- case 1: set .@str$,"With your precious ^FF0000["+.@weapon$+"]^000000, you attacked the unidentified creature. The weapon pierced the creature's body."; break;
- case 2: set .@str$,"By mistake, you use ^FF0000["+.@weapon$+"]^000000 that Holgren has thrown your way to attack the unidentified creature. With a thud, the unidentified creature's body is swaying."; break;
- case 4: set .@str$,"You attempt to attack with your recent expensive purchase ^FF0000["+.@weapon$+"]^000000. You hit the unidentified creature's body with a thud."; break;
- case 5: set .@str$,"You use a borrowed ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature, but the weapon slipped. But the weapon flies off and pierces the creature's body."; break;
- case 7: set .@str$,"With your precious ^FF0000["+.@weapon$+"]^000000, you attacked the unidentified creature. It was as if the weapon was part of your body."; break;
- case 8: set .@str$,"You use your lucky ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature."; break;
- case 10: set .@str$,"You use a friend's ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature."; break;
+ case 1: .@str$ = "With your precious ^FF0000["+.@weapon$+"]^000000, you attacked the unidentified creature. The weapon pierced the creature's body."; break;
+ case 2: .@str$ = "By mistake, you use ^FF0000["+.@weapon$+"]^000000 that Holgren has thrown your way to attack the unidentified creature. With a thud, the unidentified creature's body is swaying."; break;
+ case 4: .@str$ = "You attempt to attack with your recent expensive purchase ^FF0000["+.@weapon$+"]^000000. You hit the unidentified creature's body with a thud."; break;
+ case 5: .@str$ = "You use a borrowed ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature, but the weapon slipped. But the weapon flies off and pierces the creature's body."; break;
+ case 7: .@str$ = "With your precious ^FF0000["+.@weapon$+"]^000000, you attacked the unidentified creature. It was as if the weapon was part of your body."; break;
+ case 8: .@str$ = "You use your lucky ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature."; break;
+ case 10: .@str$ = "You use a friend's ^FF0000["+.@weapon$+"]^000000 to attack the unidentified creature."; break;
}
mes .@str$+" ^FF0000["+.@p_damage+"]^000000 damage inflicted.";
break;
@@ -3648,9 +3648,9 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
break;
case 2: // Skill
- set .@p_damage,20;
- set .@pc_attack, rand(1,6);
- set .@skillname$, .@skills$[rand(5)];
+ .@p_damage = 20;
+ .@pc_attack = rand(1,6);
+ .@skillname$ = .@skills$[rand(5)];
mes "["+strcharinfo(0)+"'s Attack]";
switch(.@pc_attack) {
// Miss.
@@ -3666,11 +3666,11 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
// Hit.
default:
specialeffect EF_BASH;
- set .@npc_hp, .@npc_hp - .@p_damage;
+ .@npc_hp -= .@p_damage;
switch(.@pc_attack) {
- case 1: set .@str$, "With an attack so fast and furious, the creature is too stunned to move."; break;
- case 3: set .@str$, "The creature dodged, but you foresaw his movements and targeted accurately."; break;
- case 5: set .@str$, "Your skill flew in a perfect parabola and hit the creature exactly."; break;
+ case 1: .@str$ = "With an attack so fast and furious, the creature is too stunned to move."; break;
+ case 3: .@str$ = "The creature dodged, but you foresaw his movements and targeted accurately."; break;
+ case 5: .@str$ = "Your skill flew in a perfect parabola and hit the creature exactly."; break;
}
mes "You use skill ^0000FF["+.@skillname$+"]^000000 to attack the unidentified creature. "+.@str$+" ^FF0000["+.@p_damage+"]^000000 damage inflicted.";
break;
@@ -3678,12 +3678,12 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
break;
case 3: // Tooth
- set .@p_damage,50;
- set .@pc_attack, rand(1,10);
+ .@p_damage = 50;
+ .@pc_attack = rand(1,10);
mes "["+strcharinfo(0)+"'s Attack]";
if (.@pc_attack == 4 || .@pc_attack == 7) {
specialeffect EF_HIT1;
- set .@npc_hp, .@npc_hp - .@p_damage;
+ .@npc_hp -= .@p_damage;
mes "You use your well-groomed teeth to bite the unidentified creature hard until your teeth sink into its flesh. ^FF0000["+.@p_damage+"]^000000 damage inflicted.";
} else
mes "You use your steel-like teeth to bite the unidentified creature, but the frightened creature dodged. He stares at you with strange eyes.";
@@ -3701,7 +3701,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
specialeffect2 EF_HIT1;
mes "The creature slams you with its tail. It's so painful that a tear rolls out of your eyes. ^FF000010^000000 damaged received.";
- set .@pc_hp, .@pc_hp - 10;
+ .@pc_hp -= 10;
next;
// Unofficial check, but it's needed here.
callsub L_CheckPCAlive, .@pc_hp;
@@ -3711,7 +3711,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
if (.@npc_hp <= 0) {
mes "You won. The unidentified creature is unconscious.";
next;
- if (checkquest(5016) > -1 && countitem(6385) == 0) {
+ if (questprogress(5016) && countitem(6385) == 0) {
mes "What will you do?";
next;
select("Look for the research tools.");
@@ -3725,7 +3725,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
end;
}
mes "Found Researcher Raffle's ^0000FF Research tool ^000000.";
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_goki += 1;
getitem 6385,1; //Research_Tool_Bag
setquest 5029;
next;
@@ -3733,7 +3733,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
- } else if (checkquest(5017) > -1) {
+ } else if (questprogress(5017)) {
mes "How will you bully the creature?";
next;
input .@inputstr$;
@@ -3752,8 +3752,8 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
changequest 5017,5018;
break;
}
- set ep14_1_muk, ep14_1_muk+1;
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_muk += 1;
+ ep14_1_goki += 1;
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
@@ -3762,7 +3762,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
if(select("Check the body of the unidentified creature.:Leave.") == 2) {
setquest 5029;
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_goki += 1;
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
@@ -3770,21 +3770,21 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
if (rand(1,30) == 7) {
if (checkweight(6380,1) == 0) {
mes "While you were checking the body of the unidentified creature, your fingers touch something. You got lucky, but due to your heavy load you failed to obtain a ^0000FF Mora Coin^000000.";
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_goki += 1;
setquest 5029;
close2;
donpcevent "Black Shadow#ep14_muk::OnDisable";
end;
}
mes "While you were checking the body of the unidentified creature, your fingers touch something. Lucky. Obtained a ^0000FF Mora Coin^000000.";
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_goki += 1;
getitem 6380,1; //Mora_Coin
setquest 5029;
next;
mes "The creature wakes up and disappears into the dark hole.";
} else {
mes "As soon as you touch the creature's body, it wakes up and disappears into the dark hole.";
- set ep14_1_goki, ep14_1_goki+1;
+ ep14_1_goki += 1;
setquest 5029;
}
close2;
@@ -3797,18 +3797,18 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
mes "Unidentified Creature HP = "+.@npc_hp;
next;
mes "[Attack of the unidentified creature]";
- set .@npc_attack, rand(1,3);
+ .@npc_attack = rand(1,3);
switch(.@npc_attack) {
case 1:
- set .@n_damage,10;
+ .@n_damage = 10;
mes "The unidentified creature shoots a stream of bath water.";
break;
case 2:
- set .@n_damage,20;
+ .@n_damage = 20;
mes "The unidentified creature dashes at you with great speed. It appears to be attempting a headbutt.";
break;
case 3:
- set .@n_damage,50;
+ .@n_damage = 50;
mes "The unidentified creature runs at you with its teeth bared. It appears to be attempting to bite.";
break;
}
@@ -3831,13 +3831,13 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
mes "You stand still. While you were standing stupidly, the creature comes near and bites you mercilessly. Your mind is clear in an instant. ^FF0000["+.@n_damage+"]^000000 damage received.";
break;
}
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
next;
break;
case 2:
switch(.@npc_attack) {
case 1:
- set .@miss, rand(1,5);
+ .@miss = rand(1,5);
mes "[Attack of the unidentified creature]";
switch(.@miss) {
// Miss.
@@ -3850,11 +3850,11 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
// Hit.
default:
specialeffect2 EF_ICEARROW;
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
switch(.@miss) {
- case 2: set .@str$,"face"; break;
- case 4: set .@str$,"stomach"; break;
- case 5: set .@str$,"arm"; break;
+ case 2: .@str$ = "face"; break;
+ case 4: .@str$ = "stomach"; break;
+ case 5: .@str$ = "arm"; break;
}
mes "The stream of water hits your "+.@str$+" squarely. ^FF0000["+.@n_damage+"]^000000 damage received.";
break;
@@ -3862,7 +3862,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
break;
case 2:
- set .@miss, rand(1,10);
+ .@miss = rand(1,10);
mes "[Attack of the unidentified creature]";
switch(.@miss) {
// Miss.
@@ -3881,14 +3881,14 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
// Hit.
default:
specialeffect2 EF_BASH;
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
switch(.@miss) {
- case 2: set .@str$,"With a thud, you can feel intense pain."; break;
- case 4: set .@str$,"*thud* Your back seems to give way."; break;
- case 6: set .@str$,"The creature's attack hits you in the shoulder."; break;
- case 8: set .@str$,"The attack is like an arrow."; break;
- case 9: set .@str$,"The attack was fast and accurate."; break;
- case 10: set .@str$,"It hits your hand with a thud."; break;
+ case 2: .@str$ = "With a thud, you can feel intense pain."; break;
+ case 4: .@str$ = "*thud* Your back seems to give way."; break;
+ case 6: .@str$ = "The creature's attack hits you in the shoulder."; break;
+ case 8: .@str$ = "The attack is like an arrow."; break;
+ case 9: .@str$ = "The attack was fast and accurate."; break;
+ case 10: .@str$ = "It hits your hand with a thud."; break;
}
mes "The unidentified creature dashes at you and headbutts. "+.@str$+" ^FF0000["+.@n_damage+"]^000000 damage received.";
break;
@@ -3896,7 +3896,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
next;
break;
case 3:
- set .@miss, rand(1,10);
+ .@miss = rand(1,10);
mes "[Attack of the unidentified creature]";
switch(.@miss) {
// Miss.
@@ -3921,12 +3921,12 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
// Hit.
default:
specialeffect2 EF_HIT1;
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
switch(.@miss) {
- case 2: set .@str$,"leg. Its sharp teeth penetrate your legs."; break;
- case 4: set .@str$,"arm. Its sharp teeth penetrate your arm."; break;
- case 6: set .@str$,"toe. You feel like your toe is being cut off."; break;
- case 10: set .@str$,"finger. You feel like your finger is being cut off."; break;
+ case 2: .@str$ = "leg. Its sharp teeth penetrate your legs."; break;
+ case 4: .@str$ = "arm. Its sharp teeth penetrate your arm."; break;
+ case 6: .@str$ = "toe. You feel like your toe is being cut off."; break;
+ case 10: .@str$ = "finger. You feel like your finger is being cut off."; break;
}
mes "The unidentified creature runs at you with its teeth bared, and bites your "+.@str$+" ^FF0000["+.@n_damage+"]^000000 damage received.";
break;
@@ -3936,78 +3936,78 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
}
break;
case 3:
- set .@defend, rand(1,10);
+ .@defend = rand(1,10);
switch(.@npc_attack) {
case 1:
if (.@defend == 3 || .@defend == 6) {
- set .@n_damage, .@n_damage / 2;
+ .@n_damage /= 2;
specialeffect2 EF_GUARD;
} else
specialeffect2 EF_ICEARROW;
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
mes "[Defense of "+strcharinfo(0)+"]";
switch(.@defend) {
// Blocked.
- case 3: set .@str$,"You block the stream of water with your strong butt. Feels refreshing. HP reduced only by half."; break;
- case 6: set .@str$,"You block the stream of water with your strong hands. Your hands sting a little. HP reduced only by half."; break;
+ case 3: .@str$ = "You block the stream of water with your strong butt. Feels refreshing. HP reduced only by half."; break;
+ case 6: .@str$ = "You block the stream of water with your strong hands. Your hands sting a little. HP reduced only by half."; break;
// Not blocked.
- case 1: set .@str$,"You try to block the stream of water with your strong butt, but it's too late."; break;
- case 2: set .@str$,"You try to block the stream of water with your big gut, but to no avail."; break;
- case 4: set .@str$,"You try to block the stream of water with your gathered hands, but the creature targets a different place."; break;
- case 5: set .@str$,"You try to block the stream of water with your strong hands, but you fail."; break;
- case 7: set .@str$,"You try to block the stream of water with arms crossed, but you fold them wrong."; break;
- case 8: set .@str$,"You try to block the stream of water with your rock-like head, but it was not possible."; break;
- case 9: set .@str$,"You try to block the stream of water with your solid muscles, but it was not possible."; break;
- case 10: set .@str$,"You try to block the stream of water with your strong feet, but your effort was wasted."; break;
+ case 1: .@str$ = "You try to block the stream of water with your strong butt, but it's too late."; break;
+ case 2: .@str$ = "You try to block the stream of water with your big gut, but to no avail."; break;
+ case 4: .@str$ = "You try to block the stream of water with your gathered hands, but the creature targets a different place."; break;
+ case 5: .@str$ = "You try to block the stream of water with your strong hands, but you fail."; break;
+ case 7: .@str$ = "You try to block the stream of water with arms crossed, but you fold them wrong."; break;
+ case 8: .@str$ = "You try to block the stream of water with your rock-like head, but it was not possible."; break;
+ case 9: .@str$ = "You try to block the stream of water with your solid muscles, but it was not possible."; break;
+ case 10: .@str$ = "You try to block the stream of water with your strong feet, but your effort was wasted."; break;
}
mes .@str$+" ^FF0000["+.@n_damage+"]^000000 damage received.";
next;
break;
case 2:
if (.@defend == 1 || .@defend == 3 || .@defend == 5 || .@defend == 7) {
- set .@n_damage, .@n_damage / 2;
+ .@n_damage /= 2;
specialeffect2 EF_GUARD;
} else
specialeffect2 EF_BASH;
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
mes "[Defense of "+strcharinfo(0)+"]";
switch(.@defend) {
// Blocked.
- case 1: set .@str$,"You block the dash attack with your fat butt. Your butt is world class. HP reduced only by half."; break;
- case 3: set .@str$,"You block the dash attack with your big gut. Your gut is world class. HP reduced only by half."; break;
- case 5: set .@str$,"You block the dash attack with your strong hands. Your hands are world class. HP reduced only by half."; break;
- case 7: set .@str$,"The unidentified creature dashed with lightning speed, but you easily block the attack with your big gut. Your gut is world class. HP reduced only by half."; break;
+ case 1: .@str$ = "You block the dash attack with your fat butt. Your butt is world class. HP reduced only by half."; break;
+ case 3: .@str$ = "You block the dash attack with your big gut. Your gut is world class. HP reduced only by half."; break;
+ case 5: .@str$ = "You block the dash attack with your strong hands. Your hands are world class. HP reduced only by half."; break;
+ case 7: .@str$ = "The unidentified creature dashed with lightning speed, but you easily block the attack with your big gut. Your gut is world class. HP reduced only by half."; break;
// Not blocked.
- case 2: set .@str$,"You try to block the dash attack with your fat butt, but miss and get hit in an unmentionable place."; break;
- case 4: set .@str$,"You try to block the dash attack with your big gut, but your gut isn't big enough to absorb the impact."; break;
- case 6: set .@str$,"You try to block the dash attack with arms crossed, but you feel an incredible force."; break;
- case 8: set .@str$,"You try to block the dash attack, to no avail."; break;
- case 9: set .@str$,"You try to block the dash attack with your strong hands, to no avail."; break;
- case 10: set .@str$,"You try to block the dash attack with your durable feet, but the pain woke you up."; break;
+ case 2: .@str$ = "You try to block the dash attack with your fat butt, but miss and get hit in an unmentionable place."; break;
+ case 4: .@str$ = "You try to block the dash attack with your big gut, but your gut isn't big enough to absorb the impact."; break;
+ case 6: .@str$ = "You try to block the dash attack with arms crossed, but you feel an incredible force."; break;
+ case 8: .@str$ = "You try to block the dash attack, to no avail."; break;
+ case 9: .@str$ = "You try to block the dash attack with your strong hands, to no avail."; break;
+ case 10: .@str$ = "You try to block the dash attack with your durable feet, but the pain woke you up."; break;
}
mes .@str$+" ^FF0000["+.@n_damage+"]^000000 damage received.";
next;
break;
case 3:
if (.@defend == 2 || .@defend == 4 || .@defend == 6 || .@defend == 8) {
- set .@n_damage, .@n_damage / 2;
+ .@n_damage /= 2;
specialeffect2 EF_GUARD;
}
- set .@pc_hp, .@pc_hp - .@n_damage;
+ .@pc_hp -= .@n_damage;
mes "[Defense of "+strcharinfo(0)+"]";
switch(.@defend) {
// Blocked.
- case 2: set .@str$,"but you block its attack with a branch nearby. HP reduced only by half."; break;
- case 4: set .@str$,"but you block its attack with a weapon. HP reduced only by half."; break;
- case 6: set .@str$,"but you block its attack using skill ^0000FFFriend Shield^000000. HP reduced only by half."; break;
- case 8: set .@str$,"but you block its attack using a book you always carry around. HP reduced only by half."; break;
+ case 2: .@str$ = "but you block its attack with a branch nearby. HP reduced only by half."; break;
+ case 4: .@str$ = "but you block its attack with a weapon. HP reduced only by half."; break;
+ case 6: .@str$ = "but you block its attack using skill ^0000FFFriend Shield^000000. HP reduced only by half."; break;
+ case 8: .@str$ = "but you block its attack using a book you always carry around. HP reduced only by half."; break;
// Not blocked.
- case 1: set .@str$,"and bites your arm."; break;
- case 3: set .@str$,"and bites your leg."; break;
- case 5: set .@str$,"and bites your shoulder."; break;
- case 7: set .@str$,"and bites your finger."; break;
- case 9: set .@str$,"and bites your finger."; break;
- case 10: set .@str$,"and bites your toe."; break;
+ case 1: .@str$ = "and bites your arm."; break;
+ case 3: .@str$ = "and bites your leg."; break;
+ case 5: .@str$ = "and bites your shoulder."; break;
+ case 7: .@str$ = "and bites your finger."; break;
+ case 9: .@str$ = "and bites your finger."; break;
+ case 10: .@str$ = "and bites your toe."; break;
}
mes "The unidentified creature runs at you with its teeth bared, "+.@str$+" ^FF0000["+.@n_damage+"]^000000 damage received.";
next;
@@ -4027,7 +4027,7 @@ mora,114,79,0 script Black Shadow#ep14_muk CLEAR_NPC,{
mes "You fail to escape.";
next;
mes "The creature slams you with its tail. It's so painful that a tear rolls out of your eyes. ^FF000010^000000 damaged received.";
- set .@pc_hp, .@pc_hp - 10;
+ .@pc_hp -= 10;
next;
}
break;
@@ -4076,7 +4076,7 @@ OnFullon:
}
- script ???#mora -1,{
- if (checkquest(5019) > -1) {
+ if (questprogress(5019)) {
mes "You find an area emitting a distinct aura.";
mes "You may be able to collect bath water samples.";
mes "What will you do?";
@@ -4119,13 +4119,13 @@ OnFullon:
close2;
donpcevent strnpcinfo(0)+"::OnDisable";
end;
- } else if (checkquest(5021) > -1 || checkquest(5022) > -1) {
- if (checkquest(5021) > -1) {
- set .@str$,"tooth";
- set .@item,6387; //Teeth_Sample
+ } else if (questprogress(5021) || questprogress(5022)) {
+ if (questprogress(5021)) {
+ .@str$ = "tooth";
+ .@item = 6387; //Teeth_Sample
} else {
- set .@str$,"scale";
- set .@item,6388; //Scale_Sample
+ .@str$ = "scale";
+ .@item = 6388; //Scale_Sample
}
mes "Something is shining in the water.";
mes "You may be able to collect the unidentified creature's "+.@str$+" samples.";
@@ -4191,12 +4191,12 @@ OnTimer60000:
donpcevent strnpcinfo(0)+"::OnEnable";
end;
OnTouch:
- if (checkquest(5034) == 2 || ep14_1_muk == 0 || rand(5)) {
+ if (questprogress(5034) == 2 || ep14_1_muk == 0 || rand(5)) {
percentheal 5,5;
end;
}
- set .@playtime, checkquest(5029,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(5029,PLAYTIME);
+ if (.@playtime == 1) {
percentheal 5,5;
end;
} else if (.@playtime == 2) {
@@ -4218,14 +4218,14 @@ mora,116,81,0 duplicate(???#mora) ???#ep14_muk04 CLEAR_NPC,2,2
mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 CLEAR_NPC,2,2
- script #mora_puddle -1,{
- set .@i, atoi(charat(strnpcinfo(2),9));
+ .@i = atoi(charat(strnpcinfo(2),9));
// This script has a lot of checks,
// so arrays are only set when used.
setarray .@quest1[1],5024,5025,5026,5027;
setarray .@dir$[1],"east","west","south","north";
- if (checkquest(.@quest1[.@i]) > -1) {
+ if (questprogress(.@quest1[.@i])) {
if (countitem(6389) == 0) {
mes "This appears to be the puddle to the "+.@dir$[.@i];
mes "that the researcher talked about.";
@@ -4254,14 +4254,14 @@ mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 CLEAR_NPC,2,2
}
}
- set .@quest1[0], .@quest1[.@i];
- set .@dir$[0], .@dir$[.@i];
+ .@quest1[0] = .@quest1[.@i];
+ .@dir$[0] = .@dir$[.@i];
deletearray .@quest1[.@i],1;
deletearray .@dir$[.@i],1;
- if (checkquest(.@quest1[1]) > -1 || checkquest(.@quest1[2]) > -1 || checkquest(.@quest1[3]) > -1) {
- for(set .@j,1; .@j<=3; set .@j,.@j+1) {
- if (checkquest(.@quest1[.@j]) > -1)
+ if (questprogress(.@quest1[1]) || questprogress(.@quest1[2]) || questprogress(.@quest1[3])) {
+ for(.@j = 1; .@j<=3; ++.@j) {
+ if (questprogress(.@quest1[.@j]))
break;
}
mes "This is not the puddle to the "+.@dir$[.@j]+".";
@@ -4269,10 +4269,10 @@ mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 CLEAR_NPC,2,2
}
setarray .@quest2[1],5030,5031,5032,5033;
- set .@quest2[0], .@quest2[.@i];
+ .@quest2[0] = .@quest2[.@i];
deletearray .@quest2[.@i],1;
- if (ep14_1_goki == 30 && checkquest(.@quest2[0]) > -1) {
+ if (ep14_1_goki == 30 && questprogress(.@quest2[0])) {
mes "You arrived at the puddle to the "+.@dir$[0]+".";
mes "You should look for the unidentified creature's family.";
next;
@@ -4329,13 +4329,13 @@ mora,118,86,0 duplicate(???#mora) ???#ep14_muk05 CLEAR_NPC,2,2
mes "We okay. Happy. Here. You tell son.";
changequest .@quest2[0],5034;
close;
- } else if (checkquest(5034) > -1 && checkquest(5034) < 2) {
+ } else if (questprogress(5034) == 1) {
mes "[Fishee's Dad]";
mes "Yes... Human give son news.";
mes "Thanks. Son,";
mes "We okay. Happy. Here. You tell son.";
close;
- } else if (checkquest(.@quest2[1]) > -1 || checkquest(.@quest2[2]) > -1 || checkquest(.@quest2[3]) > -1) {
+ } else if (questprogress(.@quest2[1]) || questprogress(.@quest2[2]) || questprogress(.@quest2[3])) {
mes "You arrived at the puddle to the "+.@dir$[0]+".";
mes "You should look for the unidentified creature's family.";
next;
@@ -4377,8 +4377,8 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
mes "Why don't you come back when you've grown stronger? I can't give you tasks when you're in your current state.";
close;
}
- set .@playtime, checkquest(12230,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(12230,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Elephantine]";
mes "I have no additional tasks available now. If I get some, I'll let you know when you come back.";
close;
@@ -4418,7 +4418,7 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
next;
mes "[Elephantine]";
mes "I'd like you to take them out as you see them, before they try to sell anything to the adventurers lost in the forest.";
- set .@n$,"Fruit-Carrying Insects";
+ .@n$ = "Fruit-Carrying Insects";
break;
case 2:
setquest 12226;
@@ -4428,7 +4428,7 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
next;
mes "[Elephantine]";
mes "No casualties have been reported yet, but it wouldn't hurt to take precautions. Please deal with them appropriately.";
- set .@n$,"Flowery Hunters";
+ .@n$ = "Flowery Hunters";
break;
case 3:
setquest 12227;
@@ -4438,7 +4438,7 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
next;
mes "[Elephantine]";
mes "They didn't look so ferocious... but the adventurer has asked me to get rid of them, so you'll have to do it.";
- set .@n$,"Small but Ferocious...";
+ .@n$ = "Small but Ferocious...";
break;
case 4:
setquest 12228;
@@ -4448,7 +4448,7 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
next;
mes "[Elephantine]";
mes "I don't know what grudge he has against the fairies, but a request is a request.";
- set .@n$,"An Unknown Grudge";
+ .@n$ = "An Unknown Grudge";
break;
case 5:
setquest 12229;
@@ -4458,7 +4458,7 @@ mora,133,80,6 script Elephantine#pa0829 4_ELEPHANT,{
next;
mes "[Elephantine]";
mes "They don't seem so dangerous, but they are reported to steal books and sweets from adventurers. Please deal with them appropriately.";
- set .@n$,"Blondie Ann";
+ .@n$ = "Blondie Ann";
break;
}
next;
@@ -4485,8 +4485,8 @@ mora,115,98,8 script Hotcha#pa0829 4_ELEPHANT,{
mes "This place is like a paradise for adventurers. Not for weak ones like you, though.";
close;
}
- set .@playtime, checkquest(12230,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(12230,PLAYTIME);
+ if (!.@playtime) {
mes "[Hotcha]";
mes "I see you haven't received";
mes "any tasks yet.";
@@ -4503,8 +4503,8 @@ mora,115,98,8 script Hotcha#pa0829 4_ELEPHANT,{
next;
mes "[Hotcha]";
mes "Once they are removed, go talk to Elephantine and you can receive new tasks.";
- for(set .@i,12225; .@i<=12229; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12225; .@i<=12229; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
erasequest 12230;
@@ -4520,8 +4520,8 @@ mora,115,98,8 script Hotcha#pa0829 4_ELEPHANT,{
mes "Please wait a minute while I check the documents.";
next;
- for(set .@i,12225; .@i<=12229; set .@i,.@i+1) {
- if (checkquest(.@i,HUNTING) == 2) {
+ for(.@i = 12225; .@i<=12229; ++.@i) {
+ if (questprogress(.@i,HUNTING) == 2) {
mes "[Hotcha]";
mes "Yes, I see you've completed the task. It has been confirmed as completed.";
erasequest .@i;
@@ -4560,8 +4560,8 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
mes "You really have no clue. What could you do with such a weak body?";
close;
}
- set .@playtime, checkquest(12241,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(12241,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Bow-wow]";
mes "I have no additional tasks available now. If I get some, I'll let you know when you come back.";
close;
@@ -4601,7 +4601,7 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
next;
mes "[Bow-wow]";
mes "*grin* None other than... Insect Feelers! The General Goods Dealer there asked me to get four of them. I personally would not eat it for all the world...";
- set .@n$,"Material for the Preservative";
+ .@n$ = "Material for the Preservative";
break;
case 2:
setquest 12232;
@@ -4611,7 +4611,7 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
next;
mes "[Bow-wow]";
mes "Immortal Hearts seem to be all the rage lately. The General Goods Merchant asked me to get five of them.";
- set .@n$,"A Symbol of Resistance";
+ .@n$ = "A Symbol of Resistance";
break;
case 3:
setquest 12233;
@@ -4621,7 +4621,7 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
next;
mes "[Bow-wow]";
mes "The client is the General Goods Merchant over there. Three bunches of them will be enough.";
- set .@n$,"Material for First Aid Kits";
+ .@n$ = "Material for First Aid Kits";
break;
case 4:
setquest 12234;
@@ -4631,7 +4631,7 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
next;
mes "[Bow-wow]";
mes "The General Goods Dealer asked me to get three Orcish Vouchers, which are to be used to make symbols of courage.";
- set .@n$,"Symbols of Courage";
+ .@n$ = "Symbols of Courage";
break;
case 5:
setquest 12235;
@@ -4641,7 +4641,7 @@ mora,119,103,4 script Bow-wow#pa0829 4_M_DOGTRAVELER,{
next;
mes "[Bow-wow]";
mes "The General Goods Dealer asked me to get three Skel-Bones, which are to be used to make tonic.";
- set .@n$,"Good for Stamina...";
+ .@n$ = "Good for Stamina...";
break;
}
next;
@@ -4668,8 +4668,8 @@ mora,119,118,4 script General Good Dealer#pa0 4_M_RAFLE_GR,{
mes "What could you do with that fragile body? Go get some exercise.";
close;
}
- set .@playtime, checkquest(12241,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(12241,PLAYTIME);
+ if (!.@playtime) {
mes "[General Good Dealer]";
mes "I see you haven't received";
mes "any tasks yet.";
@@ -4686,8 +4686,8 @@ mora,119,118,4 script General Good Dealer#pa0 4_M_RAFLE_GR,{
next;
mes "[General Good Dealer]";
mes "Once they are removed, go talk to Bow-wow and you can receive new tasks.";
- for(set .@i,12231; .@i<=12235; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12231; .@i<=12235; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
erasequest 12241;
@@ -4716,7 +4716,7 @@ mora,119,118,4 script General Good Dealer#pa0 4_M_RAFLE_GR,{
close;
L_CheckQuest:
- if (checkquest(getarg(0)) > -1) {
+ if (questprogress(getarg(0))) {
if (countitem(getarg(1)) < getarg(2)) {
mes "[General Good Dealer]";
mes "The amount is not enough...";
@@ -4756,8 +4756,8 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
mes "This place is not a nursery. Grow up and come back, and I'll gladly give you tasks.";
close;
}
- set .@playtime, checkquest(12242,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(12242,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Woof-grrr]";
mes "I have no additional tasks available now. If I get some, I'll let you know when you come back.";
close;
@@ -4797,7 +4797,7 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
next;
mes "[Woof-grrr]";
mes "Mementos serve as inspirations for designers of those cases. The Commodities Dealer across from me asked me to get two of them.";
- set .@n$,"The Latest Trend in Talismans";
+ .@n$ = "The Latest Trend in Talismans";
break;
case 2:
setquest 12237;
@@ -4807,7 +4807,7 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
next;
mes "[Woof-grrr]";
mes "The Commodities Dealer across from me seems to make protective cases out of Shells. I was asked to get three of them.";
- set .@n$,"Keep Your Valuables Safe";
+ .@n$ = "Keep Your Valuables Safe";
break;
case 3:
setquest 12238;
@@ -4817,7 +4817,7 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
next;
mes "[Woof-grrr]";
mes "The Commodities Dealer across from me asked me to get three Scale Shells, which are to be used to make knee protectors.";
- set .@n$,"Material for Knee Protectors";
+ .@n$ = "Material for Knee Protectors";
break;
case 4:
setquest 12239;
@@ -4827,7 +4827,7 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
next;
mes "[Woof-grrr]";
mes "The Commodities Dealer across from me asked me to get two Venom Canines, which are to be used in the research of the substance.";
- set .@n$,"Poison for Poison...";
+ .@n$ = "Poison for Poison...";
break;
case 5:
setquest 12240;
@@ -4837,7 +4837,7 @@ mora,124,108,7 script Woof-grrr#pa0829 4_M_DOGTRAVELER2,{
next;
mes "[Woof-grrr]";
mes "The Commodities Dealer across from me commissioned me to get five globs of Sticky Mucus.";
- set .@n$,"Don't Slip and Fall";
+ .@n$ = "Don't Slip and Fall";
break;
}
next;
@@ -4864,8 +4864,8 @@ mora,127,112,4 script Commodities Dealer#pa08 4_F_RAFLE_PK,{
mes "Go away! I can't concentrate on cataloging with you hanging around like that...";
close;
}
- set .@playtime, checkquest(12242,PLAYTIME);
- if (.@playtime == -1) {
+ .@playtime = questprogress(12242,PLAYTIME);
+ if (!.@playtime) {
mes "[Commodities Dealer]";
mes "I see you haven't received";
mes "any tasks yet.";
@@ -4882,8 +4882,8 @@ mora,127,112,4 script Commodities Dealer#pa08 4_F_RAFLE_PK,{
next;
mes "[Commodities Dealer]";
mes "Once they are removed, go talk to Woof-grrr and you can receive new tasks.";
- for(set .@i,12236; .@i<=12240; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12236; .@i<=12240; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
erasequest 12242;
@@ -4912,7 +4912,7 @@ mora,127,112,4 script Commodities Dealer#pa08 4_F_RAFLE_PK,{
close;
L_CheckQuest:
- if (checkquest(getarg(0)) > -1) {
+ if (questprogress(getarg(0))) {
if (countitem(getarg(1)) < getarg(2)) {
mes "[Commodities Dealer]";
mes "The amount is not enough...";
@@ -4952,16 +4952,16 @@ mora,170,101,4 script Soul Guide#pa0829 4_F_DOGTRAVELER,{
mes "You need to have a strong spirit to do this task. I think you need a lot more discipline.";
close;
}
- set .@playtime, checkquest(12253,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(12253,PLAYTIME);
+ if (.@playtime == 1) {
mes "You still have marks of the haunting souls on your body.";
next;
mes "You'll have to come back when the marks have disappeared.";
close;
} else if (.@playtime == 2) {
mes "You feel your mind has calmed down once again. You now have enough energy to go look for other souls, so talk to the Guide again.";
- for(set .@i,12243; .@i<=12252; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12243; .@i<=12252; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
erasequest 12253;
@@ -4990,66 +4990,66 @@ mora,170,101,4 script Soul Guide#pa0829 4_F_DOGTRAVELER,{
setquest 12243;
setquest 12253;
mes "^660066Age 32. Comes from Midgard. Has been missing for 3 months since he went to the Maze of the Hazy Forest in order to collect the native plants. Low chance of survival.^000000";
- set .@n$,"Tazar";
+ .@n$ = "Tazar";
break;
case 2:
setquest 12244;
setquest 12253;
mes "^660066Age 19. Adventurer who came from a far, unknown place by ship. Been missing for 2 months since he went to explore the Maze dressed in thin tights, despite dissuasion of all Mora residents.";
mes "Even if he's alive, he would cause trouble to the rescue team.^000000";
- set .@n$,"Niger";
+ .@n$ = "Niger";
break;
case 3:
setquest 12245;
setquest 12253;
mes "^660066Age unknown. Has some mental illness. Went alone in order to purify the Maze of the Hazy forest. He insists that he has good ancestry but no one trusts him.";
mes "Disappearance period : 12 years. Not much chance of survival.^000000";
- set .@n$,"Messil";
+ .@n$ = "Messil";
break;
case 4:
setquest 12246;
setquest 12253;
mes "^660066Age 51. Used to be a big thief who stole famous swords from all around the world.";
mes "Went missing in the Maze after being pursued for running an illegal casino house which caused massive casualties in his final years. Low chance of survival.^000000";
- set .@n$,"Noirit";
+ .@n$ = "Noirit";
break;
case 5:
setquest 12247;
setquest 12253;
mes "^660066Age 22. An apprentice of an airship pilot. He has gone missing while drinking in Mora town, where he went for a break.";
mes "Rumor has it that he fled after signing somewhere. Disappearance period : 4 months. Low chance of survival.^000000";
- set .@n$,"Pajama Sin";
+ .@n$ = "Pajama Sin";
break;
case 6:
setquest 12248;
setquest 12253;
mes "^660066Age Unknown. A female with long hair, dressed in black. Went on an expedition to the forest of the Maze in search of eternal life. Disappearance period : 3 months. Low chance of survival.^000000";
- set .@n$,"Mendel";
+ .@n$ = "Mendel";
break;
case 7:
setquest 12249;
setquest 12253;
mes "^660066Age around 50. The current Mayor of the Mora village. He ran away to the Forest of Maze after being caught pocketing profits by cheating the residents. Survival uncertain.^000000";
- set .@n$,"Milebit";
+ .@n$ = "Milebit";
break;
case 8:
setquest 12250;
setquest 12253;
mes "^660066Age 29. A young man with an unknown background.";
mes "Fled to the forest of maze after scamming 1200 Mora coins from Mora residents while pretending to start a lot of business and adapting himself in Mora. Survival uncertain.^000000";
- set .@n$,"Kunmoon";
+ .@n$ = "Kunmoon";
break;
case 9:
setquest 12251;
setquest 12253;
mes "^660066Age 34. Flirted with several women in Mora. Fled from Mora villagers to the forest of maze. Survival uncertain.^000000";
- set .@n$,"Chaihokin";
+ .@n$ = "Chaihokin";
break;
case 10:
setquest 12252;
setquest 12253;
mes "^660066Age Unknown. Disappered with coins which were joint controlled by the villagers. Low chance of survival.^000000";
- set .@n$,"Tual";
+ .@n$ = "Tual";
break;
}
next;
@@ -5088,12 +5088,12 @@ sec_in02,29,34,5 script Initializing Mora Sanjo 4_MAN_NITT,{
mes "[Initialization]";
mes "14.1 Initializing all quest window include related daily quest and map and so on";
freeloop(1);
- for(set .@i,12225; .@i<=12353; set .@i,.@i+1) {
- if (checkquest(.@i) > -1)
+ for(.@i = 12225; .@i<=12353; ++.@i) {
+ if (questprogress(.@i))
erasequest .@i;
}
freeloop(0);
- set ep14_1_mistwoods,10;
+ ep14_1_mistwoods = 10;
close;
}
}
@@ -5106,7 +5106,7 @@ function script mora_remains {
mes "You have to make space in your inventory.";
close;
}
- if (checkquest(getarg(0)) > -1) {
+ if (questprogress(getarg(0))) {
specialeffect2 EF_BLIND;
specialeffect2 EF_BEGINSPELL;
progressbar "ffff00",4;
@@ -5155,8 +5155,8 @@ mora,118,166,6 script Knights Chief#mo 4_F_RAFLE_VI,{
}
mora,116,165,5 script Knights Boss#mo 4_M_RAFLE_VI,{
- set .@playtime, checkquest(1119,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(1119,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Order of the Knights Boss]";
mes "We've run out of Mora Coins.";
mes "Come back tomorrow!";
@@ -5279,7 +5279,7 @@ mora,114,163,5 script Knights Head#mo 4_M_RAFLE_OR,{
mes "I think you'll make a great right-hand man, the Chief.";
mes "I feel rewarded, as the Boss.";
mes "As the Leader, I'm so pleased to see you all improve.";
- set ep14_1_rope,12;
+ ep14_1_rope = 12;
setquest 1118;
close;
}
@@ -5314,7 +5314,7 @@ mora,114,163,5 script Knights Head#mo 4_M_RAFLE_OR,{
mes "It's no use trying to do it.";
completequest 1118;
delitem 6383,30; //Clue_Of_Lope
- set ep14_1_rope,13;
+ ep14_1_rope = 13;
getitem 6380,2; //Mora_Coin
getexp 1000000,1000000;
close;
diff --git a/npc/re/quests/quests_morocc.txt b/npc/re/quests/quests_morocc.txt
index 480618a70..5632245f0 100644
--- a/npc/re/quests/quests_morocc.txt
+++ b/npc/re/quests/quests_morocc.txt
@@ -119,15 +119,15 @@ moc_prydn1,94,98,3 script Suspicious Cat#night2 4_CAT_SAILOR4,{
warp "moc_prydb1",100,57;
end;
case 2:
- set .@playtime, checkquest(2290,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(2290,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Suspicious Cat]";
mes "Look at that Verit, he's afraid of us! Kyaahaha! We're safe, at least for a while!";
close;
} else if (.@playtime == 2)
erasequest 2290;
- set .@hunting, checkquest(2289,HUNTING);
- if (.@hunting == -1) {
+ .@hunting = questprogress(2289,HUNTING);
+ if (!.@hunting) {
mes "[Suspicious Cat]";
mes "Did you know that cats and dogs don't get along?";
next;
@@ -157,7 +157,7 @@ moc_prydn1,94,98,3 script Suspicious Cat#night2 4_CAT_SAILOR4,{
mes "Pah! You don't care about me? Fine, you traitor!";
close;
}
- } else if (.@hunting == 0 || .@hunting == 1) {
+ } else if (.@hunting == 1) {
mes "[Suspicious Cat]";
mes "Is Verit's training going well?";
next;
@@ -181,15 +181,15 @@ moc_prydn1,94,98,3 script Suspicious Cat#night2 4_CAT_SAILOR4,{
close;
}
case 3:
- set .@playtime, checkquest(2291,PLAYTIME);
- if (.@playtime == 0 || .@playtime == 1) {
+ .@playtime = questprogress(2291,PLAYTIME);
+ if (.@playtime == 1) {
mes "[Suspicious Cat]";
mes "Good, I'll make a good use of the time you gained! But I gotta do something about this stomachache first.....";
close;
} else if (.@playtime == 2)
erasequest 2291;
- set .@hunting, checkquest(2292,HUNTING);
- if (.@hunting == -1) {
+ .@hunting = questprogress(2292,HUNTING);
+ if (!.@hunting) {
mes "[Suspicious Cat]";
mes "Precious treasures are supposed to be hidden in the deep secret places here!";
mes "I'm sure the mummy's precious treasures are hidden in the second basement level.";
@@ -217,7 +217,7 @@ moc_prydn1,94,98,3 script Suspicious Cat#night2 4_CAT_SAILOR4,{
mes "Bah, you're so cold-hearted.";
close;
}
- } else if (.@hunting == 0 || .@hunting == 1) {
+ } else if (.@hunting == 1) {
mes "[Suspicious Cat]";
mes "Is fighting Ancient Mummies going well?";
next;
diff --git a/npc/re/scripts.conf b/npc/re/scripts.conf
index 1e5f28ed8..076ffd528 100644
--- a/npc/re/scripts.conf
+++ b/npc/re/scripts.conf
@@ -18,6 +18,9 @@ npc: npc/re/cities/malaya.txt
npc: npc/re/cities/mora.txt
npc: npc/re/cities/yuno.txt
+// --------------------------- Events ---------------------------
+//npc: npc/re/events/halloween_2014.txt
+
// --------------------------- Guides ---------------------------
npc: npc/re/guides/navigation.txt
npc: npc/re/guides/guides_alberta.txt
diff --git a/npc/re/warps/cities/dicastes.txt b/npc/re/warps/cities/dicastes.txt
index 9af35d123..1d1476830 100644
--- a/npc/re/warps/cities/dicastes.txt
+++ b/npc/re/warps/cities/dicastes.txt
@@ -41,21 +41,21 @@ dic_in01,242,182,0 script #eldicastes0016 CLEAR_NPC,{
// Elevators
- script Elevator#main -1,{
- set .@n, atoi(strnpcinfo(2));
- set .@eq, (isequipped(2782))?1:0;
+ .@n = atoi(strnpcinfo(2));
+ .@eq = (isequipped(2782))?1:0;
if (.@n <= 4) {
- set .@m$, (.@eq)?"Civil Services:Archive Room:Situation Room:Administrative Office":"¢³¡ð¡Ð:¡ñ¡ñ¡ò:¡ø¡ø¡ð:¡÷¡ú¡ð";
+ .@m$ = (.@eq)?"Civil Services:Archive Room:Situation Room:Administrative Office":"¢³¡ð¡Ð:¡ñ¡ñ¡ò:¡ø¡ø¡ð:¡÷¡ú¡ð";
setarray .@xy, 45,286,36,212,122,282,121,201;
}
else if (.@n <= 11) {
- set .@m$, (.@eq)?"Residential Zone 1:Residential Zone 2:Residential Zone 3:Pub Burman Flone":"¡ô¡õ¡ñ ¡þ :¢³¡ü¡Ð ¡ú :¡ï¢³¢¤ ¢² :¢±¡Ð¡ñ";
+ .@m$ = (.@eq)?"Residential Zone 1:Residential Zone 2:Residential Zone 3:Pub Burman Flone":"¡ô¡õ¡ñ ¡þ :¢³¡ü¡Ð ¡ú :¡ï¢³¢¤ ¢² :¢±¡Ð¡ñ";
setarray .@xy, 42,115,110,108,178,108,260,115;
}
else if (.@n <= 13) {
- set .@m$, (.@eq)?"Battle Station:Galten Quarters":"¡ø¡ô¡ï ¡ò :¡ü¡÷¡ó ¡÷ ";
+ .@m$ = (.@eq)?"Battle Station:Galten Quarters":"¡ø¡ô¡ï ¡ò :¡ü¡÷¡ó ¡÷ ";
setarray .@xy, 385,272,385,208;
}
- set .@m, select(.@m$) - 1;
+ .@m = select(.@m$) - 1;
warp "dic_in01",.@xy[.@m*2],.@xy[.@m*2+1];
end;
}
diff --git a/npc/re/warps/cities/malaya.txt b/npc/re/warps/cities/malaya.txt
index 190f1831a..d6102dc48 100644
--- a/npc/re/warps/cities/malaya.txt
+++ b/npc/re/warps/cities/malaya.txt
@@ -92,7 +92,7 @@ OnTouch:
function script F_Malaya_Warp {
mes "Where would you like to go?";
next;
- set .@i$, getarg(select("Back outside",getarg(1)+" Jeepney",getarg(2)+" Jeepney") - 1);
+ .@i$ = getarg(select("Back outside",getarg(1)+" Jeepney",getarg(2)+" Jeepney") - 1);
close2;
switch(getarg(3)) {
case 1: // 12 passenger
diff --git a/npc/re/warps/fields/morroc_fild.txt b/npc/re/warps/fields/morroc_fild.txt
index 3b40d2443..3e4084640 100644
--- a/npc/re/warps/fields/morroc_fild.txt
+++ b/npc/re/warps/fields/morroc_fild.txt
@@ -42,7 +42,7 @@ moc_fild03,70,341,0 warp mocf04-1 5,2,moc_fild02,332,23
//moc_fild04,14,98,0 warp mocf07 1,11,moc_fild05,378,119
//moc_fild04,175,18,0 warp mocf08 3,2,moc_fild08,170,380
//moc_fild04,19,206,0 warp mocf09 3,15,moc_fild05,373,208
-//moc_fild04,219,327,0 script mocf016 WARPNPC,3,4,{ set @anthell,0; warp "anthell01",35,262; }
+//moc_fild04,219,327,0 script mocf016 WARPNPC,3,4,{ @anthell = 0; warp "anthell01",35,262; }
//moc_fild04,292,381,0 warp mocf01-2 10,1,moc_fild01,76,25
//moc_fild04,314,381,0 warp mocf01-3 10,1,moc_fild01,76,25
//moc_fild04,336,381,0 warp mocf01-4 10,1,moc_fild01,76,25
@@ -95,7 +95,7 @@ moc_fild13,308,49,0 warp mocf06-1 2,4,moc_fild03,20,37
//moc_fild14,196,382,0 warp mocf16-1 4,2,moc_fild08,204,19
//moc_fild15,104,16,0 warp mocf26 9,2,moc_fild16,125,380
//moc_fild15,158,363,0 warp mocf18-1 6,2,moc_fild09,126,23
-//moc_fild15,258,253,0 script mocf017 WARPNPC,3,3,{ set @anthell,1; warp "anthell01",35,262; }
+//moc_fild15,258,253,0 script mocf017 WARPNPC,3,3,{ @anthell = 1; warp "anthell01",35,262; }
//moc_fild15,348,18,0 warp mocf27 5,2,moc_fild16,334,379
//moc_fild15,367,276,0 warp mocf25-1 2,4,moc_fild14,19,278
//moc_fild15,38,105,0 warp mocf23-1 2,4,moc_fild11,376,197
diff --git a/npc/scripts_jobs.conf b/npc/scripts_jobs.conf
index 61191700e..ad6ea3d73 100644
--- a/npc/scripts_jobs.conf
+++ b/npc/scripts_jobs.conf
@@ -47,23 +47,27 @@ npc: npc/jobs/novice/supernovice.txt
npc: npc/jobs/valkyrie.txt
// ------------------------ Skill Quests ------------------------
+// - Novice
+npc: npc/quests/skills/novice_skills.txt
+// - 1-1
npc: npc/quests/skills/acolyte_skills.txt
-npc: npc/quests/skills/alchemist_skills.txt
npc: npc/quests/skills/archer_skills.txt
+npc: npc/quests/skills/mage_skills.txt
+npc: npc/quests/skills/merchant_skills.txt
+npc: npc/quests/skills/swordman_skills.txt
+npc: npc/quests/skills/thief_skills.txt
+// - 2-1
npc: npc/quests/skills/assassin_skills.txt
-npc: npc/quests/skills/bard_skills.txt
npc: npc/quests/skills/blacksmith_skills.txt
-npc: npc/quests/skills/crusader_skills.txt
-npc: npc/quests/skills/dancer_skills.txt
npc: npc/quests/skills/hunter_skills.txt
npc: npc/quests/skills/knight_skills.txt
-npc: npc/quests/skills/mage_skills.txt
-npc: npc/quests/skills/merchant_skills.txt
-npc: npc/quests/skills/monk_skills.txt
-npc: npc/quests/skills/novice_skills.txt
npc: npc/quests/skills/priest_skills.txt
npc: npc/quests/skills/rogue_skills.txt
-npc: npc/quests/skills/sage_skills.txt
-npc: npc/quests/skills/swordman_skills.txt
-npc: npc/quests/skills/thief_skills.txt
npc: npc/quests/skills/wizard_skills.txt
+// - 2-2
+npc: npc/quests/skills/alchemist_skills.txt
+npc: npc/quests/skills/bard_skills.txt
+npc: npc/quests/skills/crusader_skills.txt
+npc: npc/quests/skills/dancer_skills.txt
+npc: npc/quests/skills/monk_skills.txt
+npc: npc/quests/skills/sage_skills.txt
diff --git a/npc/warps/dungeons/mosk_dun.txt b/npc/warps/dungeons/mosk_dun.txt
index f9a195d06..7543b5a9b 100644
--- a/npc/warps/dungeons/mosk_dun.txt
+++ b/npc/warps/dungeons/mosk_dun.txt
@@ -41,7 +41,7 @@ OnTouch:
donpcevent "Soldier1#mos::OnInit";
donpcevent "Soldier2#mos::OnInit";
donpcevent "Soldier3#mos::OnInit";
- set mos_nowinter,12;
+ mos_nowinter = 12;
warp "mosk_in",125,92;
end;
}
diff --git a/npc/warps/other/arena.txt b/npc/warps/other/arena.txt
index 5ab756c96..fe7011fa6 100644
--- a/npc/warps/other/arena.txt
+++ b/npc/warps/other/arena.txt
@@ -62,7 +62,7 @@ force_1-2,33,178,0 warp force_10_09 1,1,force_1-2,59,178
// GM Control Panel
//============================================================
sec_in02,79,180,3 script #arenacontrol 4_DOG01,{
- set .@i, callfunc("F_GM_NPC",1357,0);
+ .@i = callfunc("F_GM_NPC",1357,0);
if (.@i == -1) {
mes "Error!";
close;
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index 62492aa6f..7f189b7e4 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -79,7 +79,7 @@ REPLACE INTO `item_db` VALUES ('532','Banana_Juice','Banana Juice','0','20','10'
REPLACE INTO `item_db` VALUES ('533','Grape_Juice','Grape Juice','0','250','125','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(15,25);','','');
REPLACE INTO `item_db` VALUES ('534','Carrot_Juice','Carrot Juice','0','20','10','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(27,33),0;','','');
REPLACE INTO `item_db` VALUES ('535','Pumpkin','Pumpkin','0','15','7','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 19,0;','','');
-REPLACE INTO `item_db` VALUES ('536','Ice_Cream','Ice Cream','0','150','75','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; if(rand(1000)<250) sc_start SC_FREEZE,10000,0;','','');
+REPLACE INTO `item_db` VALUES ('536','Ice_Cream','Ice Cream','0','150','75','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_FREEZE,10000,0,2500,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('537','Pet_Food','Pet Food','0','1000','500','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,90),0;','','');
REPLACE INTO `item_db` VALUES ('538','Well_Baked_Cookie','Well-baked Cookie','0','1000','500','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(160,200),0;','','');
REPLACE INTO `item_db` VALUES ('539','Piece_Of_Cake','Piece of Cake','0','3000','1500','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(270,330),0;','','');
@@ -90,12 +90,12 @@ REPLACE INTO `item_db` VALUES ('545','Red_Slim_Potion','Condensed Red Potion','0
REPLACE INTO `item_db` VALUES ('546','Yellow_Slim_Potion','Condensed Yellow Potion','0','600','300','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(175,235),0;','','');
REPLACE INTO `item_db` VALUES ('547','White_Slim_Potion','Condensed White Potion','0','1650','825','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(325,405),0;','','');
REPLACE INTO `item_db` VALUES ('548','Cheese','Cheese','0','2800','1400','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(10,15);','','');
-REPLACE INTO `item_db` VALUES ('549','Nice_Sweet_Potato','Yam','0','180','90','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,100),0; if(rand(1000)<150) sc_start SC_STUN,3000,0;','','');
+REPLACE INTO `item_db` VALUES ('549','Nice_Sweet_Potato','Yam','0','180','90','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,100),0; sc_start SC_STUN,3000,0,1500,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('550','Popped_Rice','Rice Cake','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(10,15),0;','','');
REPLACE INTO `item_db` VALUES ('551','Shusi','Sushi','0','1','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,60),0;','','');
REPLACE INTO `item_db` VALUES ('552','KETUPAT','Ketupat','0','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(70,90),rand(20,30);','','');
REPLACE INTO `item_db` VALUES ('553','Bun','Bao','0','1','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(35,70),0;','','');
-REPLACE INTO `item_db` VALUES ('554','Mojji','Mochi','0','400','200','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_STUN,3000,0; if(rand(1000)<150) sc_start SC_BLIND,2000,0;','','');
+REPLACE INTO `item_db` VALUES ('554','Mojji','Mochi','0','400','200','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_STUN,3000,0; sc_start SC_BLIND,2000,0,1500,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('555','Rice_Cake','Traditional Rice Cake','0','100','50','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0;','','');
REPLACE INTO `item_db` VALUES ('556','Long_Rice_Cake','Rice Cake Stick','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,25),0;','','');
REPLACE INTO `item_db` VALUES ('557','Hash_Rice_Cake','Neatly Sliced Rice Cake','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(25,30),0;','','');
@@ -198,18 +198,18 @@ REPLACE INTO `item_db` VALUES ('664','Gift_Box_1','Gift Box','2','1000','500','2
REPLACE INTO `item_db` VALUES ('665','Gift_Box_2','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 665,1;','','');
REPLACE INTO `item_db` VALUES ('666','Gift_Box_3','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 666,1;','','');
REPLACE INTO `item_db` VALUES ('667','Gift_Box_4','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 667,1;','','');
-REPLACE INTO `item_db` VALUES ('668','Handsei','Red Envelope','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','set Zeny,Zeny+rand(1000,10000);','','');
+REPLACE INTO `item_db` VALUES ('668','Handsei','Red Envelope','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
REPLACE INTO `item_db` VALUES ('669','Rice_Cake_Soup','Tempting Rice-Cake Soup','0','500','250','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal -100,-100;','','');
REPLACE INTO `item_db` VALUES ('670','Gold_Coin_Moneybag','Bag of Gold Coins','3','100000','50000','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('671','Gold_Coin','Gold Coin','3','10000','5000','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('671','Gold_Coin','Gold Roulette Coin','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteGold += 1;','','');
REPLACE INTO `item_db` VALUES ('672','Copper_Coin_Moneybag','Bag of Bronze Coins','3','1000','500','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('673','Copper_Coin','Bronze Coin','3','100','50','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('674','Mithril_Coin','Mithril Coin','3','5000','2500','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('675','Silver_Coin','Silver Coin','3','5000','2500','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('675','Silver_Coin','Silver Roulette Coin','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteSilver += 1;','','');
REPLACE INTO `item_db` VALUES ('676','Silver_Coin_Moneybag','Bag of Silver Coins','3','50000','25000','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('677','White_Gold_Coin','Platinum Coin','3','2000','1000','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('678','Poison_Bottle','Poison Bottle','2','5000','2500','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(Class==Job_Assassin_Cross) { sc_start SC_DPOISON,60000,0; sc_start SC_ATTHASTE_INFINITY,60000,0; } else percentheal -100,-100;','','');
-REPLACE INTO `item_db` VALUES ('679','Gold_Pill','Pilule','2','5000','2500','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db` VALUES ('679','Gold_Pill','Pilule','2','5000','2500','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
REPLACE INTO `item_db` VALUES ('680','Magical_Carnation','Magic Carnation','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,20;','','');
REPLACE INTO `item_db` VALUES ('681','Memory_Of_Wedding','Sweet Memory of Marriage','2','50000','25000','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(getpartnerid()) sc_start SC_WEDDING,600000,0;','','');
REPLACE INTO `item_db` VALUES ('682','Realgar_Wine','Distilled Fighting Spirit','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,60000,30;','','');
@@ -568,7 +568,7 @@ REPLACE INTO `item_db` VALUES ('1183','BF_Two_Handed_Sword1','Brave Assaulter\'s
REPLACE INTO `item_db` VALUES ('1184','BF_Two_Handed_Sword2','Valorous Assaulter\'s Katzbalger','4','20','10','0','200','0','0','1','0','16514','63','2','34','3','80',NULL,'1','3','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,20; bonus2 bAddRace,RC_DemiHuman,55; bonus bCritAtkRate,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db` VALUES ('1185','Violet_Fear','Violet Fear','4','20','10','2200','275','0','0','1','2','16514','2','2','34','4','80',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,WZ_METEOR,3,30; bonus3 bAutoSpell,WZ_FROSTNOVA,5,50; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
REPLACE INTO `item_db` VALUES ('1186','Death_Guidance','Death Guidance','4','20','10','2000','200','0','0','1','2','16514','2','2','34','4','70',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,5; bonus bAgi,2; bonus bFlee2,20; bonus3 bAutoSpell,NPC_HELLPOWER,1,10; bonus4 bAutoSpell,NPC_HELLPOWER,1,10,0; if( getrefine()>8 ) bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,2,20; else bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,1,20;','','');
-REPLACE INTO `item_db` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','3','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-3)*(getrefine()-3); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,getskilllv(LK_CONCENTRATION)>1?getskilllv(LK_CONCENTRATION):1,30; bonus3 bAutoSpell,LK_AURABLADE,getskilllv(LK_AURABLADE)>1?getskilllv(LK_AURABLADE):1,30; }','','');
+REPLACE INTO `item_db` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','3','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-3)*(getrefine()-3); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30; bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30; }','','');
REPLACE INTO `item_db` VALUES ('1188','Veteran_Sword','Veteran Sword','4','10000','5000','2000','180','0','0','1','1','16514','63','2','34','4','80',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(SM_BASH)==10) { bonus2 bSkillAtk,SM_BASH,50; } if(getskilllv(KN_BOWLINGBASH)==10) { bonus2 bSkillAtk,KN_BOWLINGBASH,50; } bonus bStr,1; bonus bDex,1;','','');
REPLACE INTO `item_db` VALUES ('1189','Krasnaya','Krasnaya','4','20','10','3800','200','0','0','2','3','16514','2','2','34','2','50',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bStr)>=95) { bonus bBaseAtk,20; }','','');
REPLACE INTO `item_db` VALUES ('1190','Claymore_C','Claymore','4','0','0','0','220','0','0','1','0','16512','63','2','34','3','1',NULL,'0','3','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
@@ -911,7 +911,7 @@ REPLACE INTO `item_db` VALUES ('1643','Dead_Tree_Cane','Dead Tree Cane','4','20'
REPLACE INTO `item_db` VALUES ('1644','Piercing_Staff_M','Staff of Piercing','4','20','10','500','80','0','0','1','0','99092','2','2','2','3','70',NULL,'1','10','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus bMatkRate,15; bonus bIgnoreMdefRate,10+getrefine();','','');
REPLACE INTO `item_db` VALUES ('1645','Lich_Bone_Wand_M','Lich\'s Bone Wand','4','20','10','800','60','0','0','1','2','99092','2','2','2','3','70',NULL,'1','10','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bDex,1; bonus bAtkEle,Ele_Undead; bonus bMatkRate,20; bonus3 bAutoSpellWhenHit,NPC_WIDECURSE,5,10+getrefine(); if(getrefine()>=9) { bonus bMatkRate,3; bonus bMaxSP,300; }','','');
REPLACE INTO `item_db` VALUES ('1646','La\'cryma_Stick','La\'cryma Stick','4','20','10','500','30','0','0','1','2','66052','2','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus bMatkRate,15; bonus bMdef,1; bonus2 bSkillAtk,WZ_STORMGUST,getrefine(); if(getrefine()>9) bonus2 bCastrate,WZ_STORMGUST,-8;','','');
-REPLACE INTO `item_db` VALUES ('1647','Croce_Staff','Croce Staff','4','20','10','500','30','0','0','1','1','33040','2','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bInt,4; bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,getskilllv(AL_BLESSING)>1?getskilllv(AL_BLESSING):1,20;','','');
+REPLACE INTO `item_db` VALUES ('1647','Croce_Staff','Croce Staff','4','20','10','500','30','0','0','1','1','33040','2','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bInt,4; bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,max(getskilllv(AL_BLESSING),1),20;','','');
REPLACE INTO `item_db` VALUES ('1648','Staff_Of_Bordeaux','Staff Of Bordeaux','4','20','10','500','30','0','0','1','0','66052','2','2','2','4','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,15; bonus bInt,2; bonus bDex,1; if(getskilllv(SA_DRAGONOLOGY)==5) { bonus bUseSPrate,-15; bonus bInt,3; }','','');
REPLACE INTO `item_db` VALUES ('1701','Bow','Bow','4','1000','500','500','15','0','0','5','3','657480','63','2','34','1','4',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('1702','Bow_','Bow','4','1000','500','500','15','0','0','5','4','657480','63','2','34','1','4',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1003,7 +1003,7 @@ REPLACE INTO `item_db` VALUES ('1820','Electric_Fist','Electric Fist','4','20','
REPLACE INTO `item_db` VALUES ('1821','Seismic_Fist','Seismic Fist','4','20','10','650','80','0','0','1','3','33024','63','2','2','3','75',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,SA_SEISMICWEAPON,5,10;','','');
REPLACE INTO `item_db` VALUES ('1822','Combo_Battle_Glove','Combo Battle Glove','4','20','10','500','30','0','0','1','4','33024','63','2','2','3','60',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,MO_TRIPLEATTACK,15; bonus2 bSkillAtk,MO_CHAINCOMBO,15; bonus2 bSkillAtk,MO_COMBOFINISH,20;','','');
REPLACE INTO `item_db` VALUES ('1823','BF_Knuckle1','Valorous Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus4 bAutoSpell,CH_SOULCOLLECT,1,5,0; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db` VALUES ('1824','BF_Knuckle2','Brave Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bCastrate,MO_EXTREMITYFIST,-25; autobonus \"{ bonus2 bCastrate,\\\"MO_EXTREMITYFIST\\\",-100; }\",50,6000,BF_WEAPON,\"{ specialeffect2 EF_SUFFRAGIUM; }\"; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db` VALUES ('1824','BF_Knuckle2','Brave Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bCastrate,MO_EXTREMITYFIST,-25; autobonus \"{ bonus2 bCastrate,MO_EXTREMITYFIST,-100; }\",50,6000,BF_WEAPON,\"{ specialeffect2 EF_SUFFRAGIUM; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db` VALUES ('1825','Horn_Of_Hilthrion','Horn of Hillslion','4','20','10','600','95','0','0','1','3','32768','2','2','2','3','60',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,CH_PALMSTRIKE,MO_INVESTIGATE,1,100; bonus3 bAutoSpell,MO_CALLSPIRITS,5,100;','','');
REPLACE INTO `item_db` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50); bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50); }','','');
REPLACE INTO `item_db` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','','');
@@ -1404,7 +1404,7 @@ REPLACE INTO `item_db` VALUES ('2541','Asprika','Asprika','5','20','10','400','0
REPLACE INTO `item_db` VALUES ('2542','Flame_Manteau','Flame Manteau of Naght Sieger','5','20','10','70','0','0','4','0','1','2147483646','2','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2;','','');
REPLACE INTO `item_db` VALUES ('2543','Sylphid_Manteau','Sylphid Manteau','5','20','10','0','0','0','9','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1;','','');
REPLACE INTO `item_db` VALUES ('2544','Leather_Of_Tendrilion','Leather of Tendrilion','5','20','10','300','0','0','3','0','1','13623168','2','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Earth,5; bonus2 bSubRace,RC_Plant,5; bonus2 bSubRace,RC_Brute,5;','','');
-REPLACE INTO `item_db` VALUES ('2545','Musika','Musika','5','20','10','500','0','0','2','0','1','33024','2','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus3 bAutoSpellWhenHit,AL_HEAL,getskilllv(AL_HEAL)?getskilllv(AL_HEAL):1,20;','','');
+REPLACE INTO `item_db` VALUES ('2545','Musika','Musika','5','20','10','500','0','0','2','0','1','33024','2','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus3 bAutoSpellWhenHit,AL_HEAL,max(getskilllv(AL_HEAL),1),20;','','');
REPLACE INTO `item_db` VALUES ('2546','Beach_Manteau','Beach Manteau','5','20','10','600','0','0','0','0','1','4294967295','63','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,1; bonus2 bSubEle,Ele_Fire,10;','','');
REPLACE INTO `item_db` VALUES ('2547','Cheap_Running_Shirts','Cheap Undershirt','5','0','0','0','0','0','8','0','0','4294967295','63','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,10; bonus bMdef,1;','','');
REPLACE INTO `item_db` VALUES ('2548','Muffler_C','Neo Muffler','5','0','0','0','0','0','5','0','0','2147483646','2','2','4','0','95',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_DemiHuman,10; bonus bMaxHPrate,10; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Holy,5; bonus2 bSubEle,Ele_Dark,5;','','');
@@ -2681,7 +2681,7 @@ REPLACE INTO `item_db` VALUES ('5543','Freyja_SCirclet90','Freyja SCirclet90','5
REPLACE INTO `item_db` VALUES ('5544','Time_Keeper_Hat','Time Keeper Hat','5','30000','15000','0','0','0','6','0','0','4294967295','63','2','256','0','1',NULL,'1','240','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bMaxSP,50;','','');
REPLACE INTO `item_db` VALUES ('5545','Aries_Diadem','Aries Diadem','5','20','10','400','0','0','3','0','0','4294967295','63','2','256','0','70',NULL,'1','531','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; }','','');
REPLACE INTO `item_db` VALUES ('5546','Aries_Crown','Aries Crown','5','20','10','400','0','0','3','0','0','4294967295','63','2','256','0','70',NULL,'1','532','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; }','','');
-REPLACE INTO `item_db` VALUES ('5547','RJC_Katusa','RJC Katusa Flower','5','20','10','200','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','533','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk, \"WZ_HEAVENDRIVE\", 15 + getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk, \"WZ_EARTHSPIKE\", 15 + getequiprefinerycnt(EQI_HAND_R); bonus2 bCastrate, \"WZ_HEAVENDRIVE\", -25; bonus2 bCastrate, \"WZ_EARTHSPIKE\", -25; ;','','');
+REPLACE INTO `item_db` VALUES ('5547','RJC_Katusa','RJC Katusa Flower','5','20','10','200','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','533','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk, WZ_HEAVENDRIVE, 15 + getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk, WZ_EARTHSPIKE, 15 + getequiprefinerycnt(EQI_HAND_R); bonus2 bCastrate, WZ_HEAVENDRIVE, -25; bonus2 bCastrate, WZ_EARTHSPIKE, -25; ;','','');
REPLACE INTO `item_db` VALUES ('5548','Scarlet_Rose','Scarlet Rose','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','50',NULL,'1','534','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,1;','','');
REPLACE INTO `item_db` VALUES ('5549','Taurus_Diadem','Taurus Diadem','5','20','10','300','0','0','3','0','0','4294967295','63','2','256','0','70',NULL,'1','535','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bDelayrate,-2; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }','','');
REPLACE INTO `item_db` VALUES ('5550','Taurus_Crown','Taurus Crown','5','20','10','300','0','0','3','0','0','4294967295','63','2','256','0','70',NULL,'1','536','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bDelayrate,-2; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; }','','');
@@ -4332,14 +4332,14 @@ REPLACE INTO `item_db` VALUES ('12023','Giftbox_China','Wrapped Box','2','1000',
REPLACE INTO `item_db` VALUES ('12024','Red_Pouch_Of_Surprise','Red Pouch','2','50','25','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','monster \"this\",-1,-1,\"--ja--\",-4,1,\"\";','','');
REPLACE INTO `item_db` VALUES ('12025','Egg_Boy','Dano Festival Egg','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12025,1;','','');
REPLACE INTO `item_db` VALUES ('12026','Egg_Girl','Dano Festival Egg','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12026,1;','','');
-REPLACE INTO `item_db` VALUES ('12027','Giggling_Box','Giggling Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 9,0; if(rand(1000)<300) sc_start SC_CURSE,30000,0;','','');
+REPLACE INTO `item_db` VALUES ('12027','Giggling_Box','Giggling Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 9,0; sc_start SC_CURSE,30000,0,3000,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('12028','Box_Of_Thunder','Box of Thunder','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_MOVHASTE_HORSE,20000,0;','','');
REPLACE INTO `item_db` VALUES ('12029','Gloomy_Box','Box of Gloom','11','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill AC_CONCENTRATION,1;','','');
REPLACE INTO `item_db` VALUES ('12030','Box_Of_Grudge','Box of Resentment','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,60000,20;','','');
REPLACE INTO `item_db` VALUES ('12031','Sleepy_Box','Box of Drowsiness','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,60000,20;','','');
REPLACE INTO `item_db` VALUES ('12032','Box_Of_Storm','Box of Storms','11','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill ITEM_ENCHANTARMS,2;','','');
REPLACE INTO `item_db` VALUES ('12033','Box_Of_Sunlight','Box of Sunlight','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_CLAIRVOYANCE,30000,0;','','');
-REPLACE INTO `item_db` VALUES ('12034','Painting_Box','Box of Panting','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,9; if(rand(1000)<300) sc_start SC_SILENCE,30000,0;','','');
+REPLACE INTO `item_db` VALUES ('12034','Painting_Box','Box of Panting','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,9; sc_start SC_SILENCE,30000,0,3000,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('12035','Lotto_Box01','Lotto Box 01','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12035,1;','','');
REPLACE INTO `item_db` VALUES ('12036','Lotto_Box02','Lotto Box 02','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12036,1;','','');
REPLACE INTO `item_db` VALUES ('12037','Lotto_Box03','Lotto Box 03','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12037,1;','','');
@@ -4438,9 +4438,9 @@ REPLACE INTO `item_db` VALUES ('12129','Fantastic_Cooking_Kits','Fantastic Cooki
REPLACE INTO `item_db` VALUES ('12130','Cookie_Bag','Cookie Bag','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12130,1; getrandgroupitem 12130,1; getrandgroupitem 12130,1;','','');
REPLACE INTO `item_db` VALUES ('12131','Lucky_Potion','Lucky Potion','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12132','Red_Bag','Santa\'s Bag','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_XMAS,600000,0;','','');
-REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { set MDiceCone,gettime(5); percentheal 50,50; }','','');
-REPLACE INTO `item_db` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set Zeny,Zeny+rand(1000,10000);','','');
-REPLACE INTO `item_db` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; if(rand(100)>=90)sc_start SC_CONFUSION,10000,0;','','');
+REPLACE INTO `item_db` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { MDiceCone = gettime(5); percentheal 50,50; }','','');
+REPLACE INTO `item_db` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
+REPLACE INTO `item_db` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;','','');
REPLACE INTO `item_db` VALUES ('12136','Women\'s_Bundle','Women\'s Bundle','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem callfunc(\"F_RandMes\",4,558,529,2668,7518),1;','','');
REPLACE INTO `item_db` VALUES ('12137','1st_Stage_Prize','First Stage Prize','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12138','2nd_Stage_Prize','Second Stage Prize','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4525,7 +4525,7 @@ REPLACE INTO `item_db` VALUES ('12216','Inc_Agi_10_Scroll','LV10 Agil Scroll','2
REPLACE INTO `item_db` VALUES ('12217','Aspersio_5_Scroll','LV5 Aspersio Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','if(countitem(523)>0) { skilleffect PR_ASPERSIO,0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; }','','');
REPLACE INTO `item_db` VALUES ('12218','Assumptio_5_Scroll','LV5 Assumptio Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','sc_start SC_ASSUMPTIO,100000,5; skilleffect HP_ASSUMPTIO,0;','','');
REPLACE INTO `item_db` VALUES ('12219','Wind_Walk_10_Scroll','LV10 Wind Walker Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','skilleffect SN_WINDWALK,0; sc_start SC_WINDWALK,250000,5;','','');
-REPLACE INTO `item_db` VALUES ('12220','Adrenaline_Scroll','LV5 Adrenaline Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect BS_ADRENALINE,0; sc_start SC_ADRENALINE,150000,5; }','','');
+REPLACE INTO `item_db` VALUES ('12220','Adrenaline_Scroll','LV5 Adrenaline Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','.@type = getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect BS_ADRENALINE,0; sc_start SC_ADRENALINE,150000,5; }','','');
REPLACE INTO `item_db` VALUES ('12221','Megaphone_','Megaphone','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','input @megaphone$; announce strcharinfo(0) + \": \" + @megaphone$,bc_all,0xFF0000; end;','','');
REPLACE INTO `item_db` VALUES ('12225','Sweet_Candy_Striper','Sweet Candy Cane','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1245;','','');
REPLACE INTO `item_db` VALUES ('12226','Examination1','Examination 1','0','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MOVHASTE_HORSE,5400000,0; percentheal 100,100; sc_start SC_FOOD_STR,5400000,10; sc_start SC_FOOD_DEX,5400000,5; sc_start SC_PLUSATTACKPOWER,5400000,22; sc_start SC_MATKFOOD,5400000,15;','','');
@@ -4540,8 +4540,8 @@ REPLACE INTO `item_db` VALUES ('12234','Cacao99','Fierce Cacao 99%','0','20','10
REPLACE INTO `item_db` VALUES ('12235','Strawberry_Choco','Chocolate Strawberry','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,5; skilleffect AL_BLESSING,0; sc_start SC_BLESSING,240000,10;','','');
REPLACE INTO `item_db` VALUES ('12236','Choco_Tart','Chocolate Tart','11','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 5,0; itemskill AL_ANGELUS,5;','','');
REPLACE INTO `item_db` VALUES ('12237','Choco_Lump','Junky Chocolate','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,5; sc_start SC_POISON,18000,0; sc_start SC_BLOODING,18000,0;','','');
-REPLACE INTO `item_db` VALUES ('12238','New_Year_Rice_Cake_1','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
-REPLACE INTO `item_db` VALUES ('12239','New_Year_Rice_Cake_2','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db` VALUES ('12238','New_Year_Rice_Cake_1','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db` VALUES ('12239','New_Year_Rice_Cake_2','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
REPLACE INTO `item_db` VALUES ('12240','Old_Yellow_Box','Old Yellow Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12240,1;','','');
REPLACE INTO `item_db` VALUES ('12241','M_Center_Potion','Mercenary Concentration Potion','2','800','400','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_sc_start SC_ATTHASTE_POTION1,1800000,0;','','');
REPLACE INTO `item_db` VALUES ('12242','M_Awakening_Potion','Mercenary Awakening Potion','2','1500','750','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_sc_start SC_ATTHASTE_POTION2,1800000,0;','','');
@@ -4882,6 +4882,7 @@ REPLACE INTO `item_db` VALUES ('12579','Ring_Of_Valkyrie_Box','Ring Of Valkyrie
REPLACE INTO `item_db` VALUES ('12580','Vending_Search_Scroll','Universal Catalog Silver','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','searchstores 10,0;','','');
REPLACE INTO `item_db` VALUES ('12581','Vending_Search_Scroll2','Universal Catalog Gold','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','searchstores 10,1;','','');
REPLACE INTO `item_db` VALUES ('12591','Uni_Catalog_Bz','Universal Catalog Bronze','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','searchstores 10,1;','','');
+REPLACE INTO `item_db` VALUES ('12609','Old_Ore_Box','Old Ore Box','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12701','Old_Blue_Box_F','Old Blue Box','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12702','Old_Bleu_Box','Old Navy Box','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12702,1; getrandgroupitem 12702,1;','','');
REPLACE INTO `item_db` VALUES ('12703','Holy_Egg_2','Holy Egg','11','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4898,14 +4899,14 @@ REPLACE INTO `item_db` VALUES ('12713','Monster_Extract','Monster Extract','2','
REPLACE INTO `item_db` VALUES ('12714','Easter_Scroll','Easter Scroll','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12714,1;','','');
REPLACE INTO `item_db` VALUES ('12715','Black_Treasure_Box','Black Treasure Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12716','Indian_Rice_Cake','Indian Rice Cake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12717','Poison_Paralysis','Paralyze','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_PARALYSE,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12718','Poison_Leech','Leech End','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_LEECHESEND,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12719','Poison_Oblivion','Oblivion Curse','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_OBLIVIONCURSE,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12720','Poison_Contamination','Disheart','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_DEATHHURT,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12721','Poison_Numb','Toxin','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_TOXIN,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12722','Poison_Fever','Pyrexia','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_PYREXIA,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12723','Poison_Laughing','Magic Mushroom','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_MAGICMUSHROOM,300000,0;','','');
-REPLACE INTO `item_db` VALUES ('12724','Poison_Fatigue','Venom Bleed','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_VENOMBLEED,15000,0;','','');
+REPLACE INTO `item_db` VALUES ('12717','Poison_Paralysis','Paralyze','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PARALYSE,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12718','Poison_Leech','Leech End','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_LEECHESEND,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12719','Poison_Oblivion','Oblivion Curse','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_OBLIVIONCURSE,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12720','Poison_Contamination','Disheart','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DEATHHURT,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12721','Poison_Numb','Toxin','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_TOXIN,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12722','Poison_Fever','Pyrexia','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PYREXIA,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12723','Poison_Laughing','Magic Mushroom','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MAGICMUSHROOM,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db` VALUES ('12724','Poison_Fatigue','Venom Bleed','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_VENOMBLEED,15000,0,10,SCFLAG_FIXEDTICK;','','');
REPLACE INTO `item_db` VALUES ('12725','Runstone_Nosiege','Nauthiz Rune','11','100','50','100','0','0','0','0','0','4294967295','8','2','0','0','0',NULL,'0','0','0','0','120000','475',NULL,'1',NULL,'20','1','0','itemskill RK_REFRESH,1;','','');
REPLACE INTO `item_db` VALUES ('12726','Runstone_Rhydo','Raido Rune','11','100','50','100','0','0','0','0','0','4294967295','8','2','0','0','0',NULL,'0','0','0','0','30000','475',NULL,'1',NULL,'20','1','0','itemskill RK_CRUSHSTRIKE,1;','','');
REPLACE INTO `item_db` VALUES ('12727','Runstone_Verkana','Berkana Rune','11','100','50','100','0','0','0','0','0','4294967295','8','2','0','0','0',NULL,'0','0','0','0','60000','475',NULL,'1',NULL,'20','1','0','itemskill RK_MILLENNIUMSHIELD,1;','','');
@@ -4927,14 +4928,14 @@ REPLACE INTO `item_db` VALUES ('12742','Valentine_Gift_Box1','Valentine Gift Box
REPLACE INTO `item_db` VALUES ('12743','Valentine_Gift_Box2','Valentine Gift Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12744','Chocotate_Box','Chocolate Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12745','Skull_Scroll','Skull Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('12746','Destruction_Scroll','Destruction Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddRace,RC_Boss,5}\",10000,1800000; autobonus \"{bonus2 bAddRace,RC_Angel,5;}\",10000,1800000; autobonus \"{bonus2 bAddEle,Ele_Holy,5;}\",10000,1800000;','','');
+REPLACE INTO `item_db` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bSubRace,RC_Boss,5;}\",10000,1800000;','','');
+REPLACE INTO `item_db` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddEle,Ele_Neutral,-5;}\",10000,1800000;','','');
+REPLACE INTO `item_db` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,5;','','');
+REPLACE INTO `item_db` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,5; sc_start SC_PLUSATTACKPOWER,1800000,5;','','');
+REPLACE INTO `item_db` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_DEF,1800000,5; sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;','','');
+REPLACE INTO `item_db` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_MDEF,1800000,5; sc_start SC_INCFLEE2,1800000,10;','','');
+REPLACE INTO `item_db` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,1800000,5; sc_start SC_INCMSPRATE,1800000,5;','','');
REPLACE INTO `item_db` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('12756','New_Gift_Envelope','New Gift Envelope','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -4955,8 +4956,9 @@ REPLACE INTO `item_db` VALUES ('12770','Glory_FB_Hat_Box','Glory FB Hat Box','2'
REPLACE INTO `item_db` VALUES ('12771','Passion_Hat_Box2','Passion Hat Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12772','Cool_Hat_Box2','Cool Hat Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db` VALUES ('12773','Victory_Hat_Box2','Victory Hat Box2','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db` VALUES ('12786','Change_Slot_Card','Character Position Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set SlotChange, SlotChange + 1;','','');
-REPLACE INTO `item_db` VALUES ('12790','Change_Name_Card','Name Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set CharRename, CharRename + 1;','','');
+REPLACE INTO `item_db` VALUES ('12786','Change_Slot_Card','Character Position Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','SlotChange += 1;','','');
+REPLACE INTO `item_db` VALUES ('12790','Change_Name_Card','Name Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','CharRename += 1;','','');
+REPLACE INTO `item_db` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 545,100; getitem 546,100; getitem 547,100; getitem 505,100;','','');
REPLACE INTO `item_db` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end; if(checkfalcon()==1) { setfalcon 0; } else { setfalcon 1; } }','','');
REPLACE INTO `item_db` VALUES ('12900','Battle_Manual_Box','Battle Manual Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 12208,10;','','');
REPLACE INTO `item_db` VALUES ('12901','Insurance_Package','Insurance Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','getitem 12209,10;','','');
@@ -5661,9 +5663,9 @@ REPLACE INTO `item_db` VALUES ('13937','Robo_Eye_Box','Robo Eye Box','18','20','
REPLACE INTO `item_db` VALUES ('13938','Twin_Ribbon_Box','Maiden\'s Twin Ribbon Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 5187,1;','','');
REPLACE INTO `item_db` VALUES ('13940','Siege_Tele_Scroll_Box','WoE Teleport Scroll 100 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14591,100;','','');
REPLACE INTO `item_db` VALUES ('13941','Valentine_Scroll_TW','Taiwan Valentine Scroll','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db` VALUES ('13942','Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14009,1;','','');
-REPLACE INTO `item_db` VALUES ('13943','Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14010,1;','','');
-REPLACE INTO `item_db` VALUES ('13944','Gogo_Box_1m','Gogo Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14011,1;','','');
+REPLACE INTO `item_db` VALUES ('13942','Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14009,2592000;','','');
+REPLACE INTO `item_db` VALUES ('13943','Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14010,2592000;','','');
+REPLACE INTO `item_db` VALUES ('13944','Gogo_Box_1m','Gogo Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14011,2592000;','','');
REPLACE INTO `item_db` VALUES ('13945','Br_SwordPackage','Brazil Swordsman Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 2317,1; getitem 2106,1; getitem 2406,1; getitem 2506,1; getitem 4003,1; getitem 4133,1; getitem 2607,2; getitem 2229,1; getitem 2266,1;','','');
REPLACE INTO `item_db` VALUES ('13946','Br_MagePackage','Brazil Magician Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 2322,1; getitem 2102,1; getitem 2104,1; getitem 2504,1; getitem 4003,1; getitem 4077,1; getitem 2607,2; getitem 5027,1;','','');
REPLACE INTO `item_db` VALUES ('13947','Br_AcolPackage','Brazil Acolyte Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 2326,1; getitem 2104,1; getitem 2404,1; getitem 2504,1; getitem 4003,1; getitem 4100,1; getitem 2607,2; getitem 2217,1;','','');
@@ -5952,26 +5954,26 @@ REPLACE INTO `item_db` VALUES ('14238','Stew_Of_Immortality_Box_20','Immortal St
REPLACE INTO `item_db` VALUES ('14239','Dragon_Breath_Cocktail_Box_20','Dragon Breath Cocktail 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12204,20;','','');
REPLACE INTO `item_db` VALUES ('14240','Hwergelmir\'s_Tonic_Box_20','Hwergelmir\'s Tonic 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12205,20;','','');
REPLACE INTO `item_db` VALUES ('14241','Nine_Tail_Dish_Box_20','Nine Tail Dish 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12206,20;','','');
-REPLACE INTO `item_db` VALUES ('14242','Beholder_Ring_Box','Beholder Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2753,1;','','');
-REPLACE INTO `item_db` VALUES ('14243','Hallow_Ring_Box','Hallow Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2754,1;','','');
-REPLACE INTO `item_db` VALUES ('14244','Clamorous_Ring_Box','Clamorous Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2755,1;','','');
-REPLACE INTO `item_db` VALUES ('14245','Chemical_Ring_Box','Chemical Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2756,1;','','');
-REPLACE INTO `item_db` VALUES ('14246','Insecticide_Ring_Box','Insecticide Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2757,1;','','');
-REPLACE INTO `item_db` VALUES ('14247','Fisher_Ring_Box','Fisher Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2758,1;','','');
-REPLACE INTO `item_db` VALUES ('14248','Decussate_Ring_Box','Decussate Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2759,1;','','');
-REPLACE INTO `item_db` VALUES ('14249','Bloody_Ring_Box','Bloody Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2760,1;','','');
-REPLACE INTO `item_db` VALUES ('14250','Satanic_Ring_Box','Satanic Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2761,1;','','');
-REPLACE INTO `item_db` VALUES ('14251','Dragoon_Ring_Box','Dragon Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2762,1;','','');
-REPLACE INTO `item_db` VALUES ('14252','Beholder_Ring_Box2','Beholder Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2753,1;','','');
-REPLACE INTO `item_db` VALUES ('14253','Hallow_Ring_Box2','Hallow Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2754,1;','','');
-REPLACE INTO `item_db` VALUES ('14254','Clamorous_Ring_Box2','Clamorous Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2755,1;','','');
-REPLACE INTO `item_db` VALUES ('14255','Chemical_Ring_Box2','Chemical Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2756,1;','','');
-REPLACE INTO `item_db` VALUES ('14256','Insecticide_Ring_Box2','Insecticide Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2757,1;','','');
-REPLACE INTO `item_db` VALUES ('14257','Fisher_Ring_Box2','Fisher Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2758,1;','','');
-REPLACE INTO `item_db` VALUES ('14258','Decussate_Ring_Box2','Decussate Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2759,1;','','');
-REPLACE INTO `item_db` VALUES ('14259','Bloody_Ring_Box2','Bloody Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2760,1;','','');
-REPLACE INTO `item_db` VALUES ('14260','Satanic_Ring_Box2','Satanic Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2761,1;','','');
-REPLACE INTO `item_db` VALUES ('14261','Dragoon_Ring_Box2','Dragon Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2762,1;','','');
+REPLACE INTO `item_db` VALUES ('14242','Beholder_Ring_Box','Beholder Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2753,604800;','','');
+REPLACE INTO `item_db` VALUES ('14243','Hallow_Ring_Box','Hallow Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2754,604800;','','');
+REPLACE INTO `item_db` VALUES ('14244','Clamorous_Ring_Box','Clamorous Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2755,604800;','','');
+REPLACE INTO `item_db` VALUES ('14245','Chemical_Ring_Box','Chemical Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2756,604800;','','');
+REPLACE INTO `item_db` VALUES ('14246','Insecticide_Ring_Box','Insecticide Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2757,604800;','','');
+REPLACE INTO `item_db` VALUES ('14247','Fisher_Ring_Box','Fisher Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2758,604800;','','');
+REPLACE INTO `item_db` VALUES ('14248','Decussate_Ring_Box','Decussate Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2759,604800;','','');
+REPLACE INTO `item_db` VALUES ('14249','Bloody_Ring_Box','Bloody Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2760,604800;','','');
+REPLACE INTO `item_db` VALUES ('14250','Satanic_Ring_Box','Satanic Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2761,604800;','','');
+REPLACE INTO `item_db` VALUES ('14251','Dragoon_Ring_Box','Dragon Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2762,604800;','','');
+REPLACE INTO `item_db` VALUES ('14252','Beholder_Ring_Box2','Beholder Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2753,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14253','Hallow_Ring_Box2','Hallow Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2754,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14254','Clamorous_Ring_Box2','Clamorous Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2755,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14255','Chemical_Ring_Box2','Chemical Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2756,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14256','Insecticide_Ring_Box2','Insecticide Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2757,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14257','Fisher_Ring_Box2','Fisher Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2758,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14258','Decussate_Ring_Box2','Decussate Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2759,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14259','Bloody_Ring_Box2','Bloody Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2760,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14260','Satanic_Ring_Box2','Satanic Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2761,1296000;','','');
+REPLACE INTO `item_db` VALUES ('14261','Dragoon_Ring_Box2','Dragon Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2762,1296000;','','');
REPLACE INTO `item_db` VALUES ('14262','Diary_Magic_Powder_Box','Diary Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12304,604800;','','');
REPLACE INTO `item_db` VALUES ('14263','Mini_Heart_Magic_Powder_Box','Mini Heart Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12305,604800;','','');
REPLACE INTO `item_db` VALUES ('14264','Freshman_Magic_Powder_Box','Freshman Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12306,604800;','','');
@@ -5990,7 +5992,7 @@ REPLACE INTO `item_db` VALUES ('14276','Amplification_50_Scroll_Box2','Mystical
REPLACE INTO `item_db` VALUES ('14277','Quagmire_10_Scroll_Box2','Quagmire Scroll 10 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,10;','','');
REPLACE INTO `item_db` VALUES ('14278','Quagmire_30_Scroll_Box2','Quagmire Scroll 30 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,30;','','');
REPLACE INTO `item_db` VALUES ('14279','Quagmire_50_Scroll_Box2','Quagmire Scroll 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,50;','','');
-REPLACE INTO `item_db` VALUES ('14280','Healing_Staff_Box2','Healing Staff Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1638,1;','','');
+REPLACE INTO `item_db` VALUES ('14280','Healing_Staff_Box2','Healing Staff Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1638,604800;','','');
REPLACE INTO `item_db` VALUES ('14282','Emperium_Box','Emperium Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 714,1;','','');
REPLACE INTO `item_db` VALUES ('14283','Marriage_Covenant_Box','Written Oath Of Marriage Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 6026,1;','','');
REPLACE INTO `item_db` VALUES ('14287','Baricade_Repair_Kit','Barricade Repair Kit','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1019,30; getitem 999,10; getitem 1011,10; getitem 984,5;','','');
@@ -6049,8 +6051,8 @@ REPLACE INTO `item_db` VALUES ('14521','Repair_Scroll','Repair Weapon Scroll','2
REPLACE INTO `item_db` VALUES ('14522','Big_Bun','Big Bun','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db` VALUES ('14523','Pill_','Pill','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,100;','','');
REPLACE INTO `item_db` VALUES ('14524','Superb_Fish_Slice','Superb Fish Slice','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,100;','','');
-REPLACE INTO `item_db` VALUES ('14525','Chewy_Ricecake','Chewy Ricecake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,180000,10;','','');
-REPLACE INTO `item_db` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,10;','','');
+REPLACE INTO `item_db` VALUES ('14525','Chewy_Ricecake','Chewy Ricecake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,1800000,10;','','');
+REPLACE INTO `item_db` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,1800000,10;','','');
REPLACE INTO `item_db` VALUES ('14527','Dun_Tele_Scroll1','Dungeon Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','callfunc \"F_CashDungeon\",1;','','');
REPLACE INTO `item_db` VALUES ('14528','PVP_Tele_Scroll','PVP Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('14529','Greed_Scroll','Greed Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill BS_GREED,1;','','');
@@ -6181,3 +6183,5 @@ REPLACE INTO `item_db` VALUES ('19505','T_Cigarette','T Cigarette','5','0','0','
REPLACE INTO `item_db` VALUES ('19506','T_Valkyrie_Feather_Band','T Valkyrie Feather Band','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'1','300','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('19507','Clear_Sun','Clear Sun','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','1',NULL,'0','654','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('22540','Runstone_Luxanima','Lux Anima Rune','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','60000','0',NULL,'0',NULL,'20','1','0','itemskill RK_LUXANIMA,1;','','');
+REPLACE INTO `item_db` VALUES ('22777','Buff_Gift_Set','Buff Gift Set','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','getitem 14534,5; getitem 12215,5; getitem 12216,5;','','');
+REPLACE INTO `item_db` VALUES ('22837','Integer_Time','Integer Time','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteBronze += 1;','','');
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 90643a6bf..be65ef246 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -79,7 +79,7 @@ REPLACE INTO `item_db_re` VALUES ('532','Banana_Juice','Banana Juice','0','20','
REPLACE INTO `item_db_re` VALUES ('533','Grape_Juice','Grape Juice','0','250','125','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(15,25);','','');
REPLACE INTO `item_db_re` VALUES ('534','Carrot_Juice','Carrot Juice','0','20','10','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(27,33),0;','','');
REPLACE INTO `item_db_re` VALUES ('535','Pumpkin','Pumpkin','0','15','7','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 19,0;','','');
-REPLACE INTO `item_db_re` VALUES ('536','Ice_Cream','Ice Cream','0','150','75','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; if(rand(1000)<250) sc_start SC_FREEZE,10000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('536','Ice_Cream','Ice Cream','0','150','75','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_FREEZE,10000,0,2500,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('537','Pet_Food','Pet Food','0','1000','500','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,90),0;','','');
REPLACE INTO `item_db_re` VALUES ('538','Well_Baked_Cookie','Well-baked Cookie','0','1000','500','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(160,200),0;','','');
REPLACE INTO `item_db_re` VALUES ('539','Piece_Of_Cake','Piece of Cake','0','3000','1500','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(270,330),0;','','');
@@ -92,12 +92,12 @@ REPLACE INTO `item_db_re` VALUES ('545','Red_Slim_Potion','Condensed Red Potion'
REPLACE INTO `item_db_re` VALUES ('546','Yellow_Slim_Potion','Condensed Yellow Potion','0','600','300','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(175,235),0;','','');
REPLACE INTO `item_db_re` VALUES ('547','White_Slim_Potion','Condensed White Potion','0','1650','825','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(325,405),0;','','');
REPLACE INTO `item_db_re` VALUES ('548','Cheese','Cheese','0','2800','1400','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(10,15);','','');
-REPLACE INTO `item_db_re` VALUES ('549','Nice_Sweet_Potato','Yam','0','180','90','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,100),0; if(rand(1000)<150) sc_start SC_STUN,3000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('549','Nice_Sweet_Potato','Yam','0','180','90','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,100),0; sc_start SC_STUN,3000,0,1500,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('550','Popped_Rice','Rice Cake','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(10,15),0;','','');
REPLACE INTO `item_db_re` VALUES ('551','Shusi','Sushi','0','1','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(50,60),0;','','');
REPLACE INTO `item_db_re` VALUES ('552','KETUPAT','Ketupat','0','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(70,90),rand(20,30);','','');
REPLACE INTO `item_db_re` VALUES ('553','Bun','Bao','0','1','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(35,70),0;','','');
-REPLACE INTO `item_db_re` VALUES ('554','Mojji','Mochi','0','100','50','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_STUN,3000,0; if(rand(1000)<150) sc_start SC_BLIND,2000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('554','Mojji','Mochi','0','100','50','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0; sc_start SC_STUN,3000,0; sc_start SC_BLIND,2000,0,1500,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('555','Rice_Cake','Traditional Rice Cake','0','100','50','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0;','','');
REPLACE INTO `item_db_re` VALUES ('556','Long_Rice_Cake','Rice Cake Stick','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,25),0;','','');
REPLACE INTO `item_db_re` VALUES ('557','Hash_Rice_Cake','Neatly Sliced Rice Cake','0','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(25,30),0;','','');
@@ -200,18 +200,18 @@ REPLACE INTO `item_db_re` VALUES ('664','Gift_Box_1','Gift Box','2','1000','500'
REPLACE INTO `item_db_re` VALUES ('665','Gift_Box_2','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 665,1;','','');
REPLACE INTO `item_db_re` VALUES ('666','Gift_Box_3','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 666,1;','','');
REPLACE INTO `item_db_re` VALUES ('667','Gift_Box_4','Gift Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 667,1;','','');
-REPLACE INTO `item_db_re` VALUES ('668','Handsei','New Year\'s Red Envelope','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','set Zeny,Zeny+rand(1000,10000);','','');
+REPLACE INTO `item_db_re` VALUES ('668','Handsei','New Year\'s Red Envelope','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
REPLACE INTO `item_db_re` VALUES ('669','Rice_Cake_Soup','Tempting Rice-Cake Soup','0','500','250','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal -100,-100;','','');
REPLACE INTO `item_db_re` VALUES ('670','Gold_Coin_Moneybag','Bag of Gold Coins','3','100000','50000','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('671','Gold_Coin','Gold Coin','3','10000','5000','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('671','Gold_Coin','Gold Roulette Coin','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteGold += 1;','','');
REPLACE INTO `item_db_re` VALUES ('672','Copper_Coin_Moneybag','Bag of Bronze Coins','3','1000','500','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('673','Copper_Coin','UGC Token','3','100','50','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('674','Mithril_Coin','Mithril Coin','3','5000','2500','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('675','Silver_Coin','Silver Coin','3','5000','2500','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('675','Silver_Coin','Silver Roulette Coin','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteSilver += 1;','','');
REPLACE INTO `item_db_re` VALUES ('676','Silver_Coin_Moneybag','Bag of Silver Coins','3','50000','25000','400','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('677','White_Gold_Coin','Platinum Coin','3','2000','1000','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('678','Poison_Bottle','Poison Bottle','2','5000','2500','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(Class == Job_Assassin_Cross || Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T) { sc_start SC_DPOISON,60000,0; sc_start SC_ATTHASTE_INFINITY,60000,9; } else percentheal -100,-100;','','');
-REPLACE INTO `item_db_re` VALUES ('679','Gold_Pill','Pilule','2','5000','2500','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('679','Gold_Pill','Pilule','2','5000','2500','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
REPLACE INTO `item_db_re` VALUES ('680','Magical_Carnation','Magic Carnation','0','0','0','1000','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,20;','','');
REPLACE INTO `item_db_re` VALUES ('681','Memory_Of_Wedding','Sweet Memory of Marriage','2','50000','25000','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if (getpartnerid()) sc_start SC_WEDDING,600000,0;','','');
REPLACE INTO `item_db_re` VALUES ('682','Realgar_Wine','Distilled Fighting Spirit','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,60000,30;','','');
@@ -570,7 +570,7 @@ REPLACE INTO `item_db_re` VALUES ('1183','BF_Two_Handed_Sword1','Brave Assaulter
REPLACE INTO `item_db_re` VALUES ('1184','BF_Two_Handed_Sword2','Valorous Assaulter\'s Katzbalger','4','20','10','0','200','0','0','1','0','16514','63','2','34','3','80',NULL,'1','3','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,20; bonus2 bAddRace,RC_DemiHuman,55; bonus bCritAtkRate,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1185','Violet_Fear','Violet Fear','4','20','10','2200','275','0','0','1','2','16514','58','2','34','4','80',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,WZ_METEOR,3,30; bonus3 bAutoSpell,WZ_FROSTNOVA,5,50; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
REPLACE INTO `item_db_re` VALUES ('1186','Death_Guidance','Death Guidance','4','20','10','2000','200','0','0','1','2','16514','58','2','34','4','70',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,5; bonus bAgi,2; bonus bFlee2,20; bonus3 bAutoSpell,NPC_HELLPOWER,1,10; bonus4 bAutoSpell,NPC_HELLPOWER,1,10,0; if( getrefine()>8 ) bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,2,20; else bonus3 bAutoSpell,NPC_VAMPIRE_GIFT,1,20;','','');
-REPLACE INTO `item_db_re` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','3','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,1); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,getskilllv(LK_CONCENTRATION)>1?getskilllv(LK_CONCENTRATION):1,30; bonus3 bAutoSpell,LK_AURABLADE,getskilllv(LK_AURABLADE)>1?getskilllv(LK_AURABLADE):1,30; }','','');
+REPLACE INTO `item_db_re` VALUES ('1187','Krieger_Twohand_Sword1','Glorious Claymore','4','20','10','0','220','0','0','1','0','16514','63','2','34','4','80',NULL,'1','3','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(), 14)-3,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,LK_CONCENTRATION,max(getskilllv(LK_CONCENTRATION),1),30; bonus3 bAutoSpell,LK_AURABLADE,max(getskilllv(LK_AURABLADE),1),30; }','','');
REPLACE INTO `item_db_re` VALUES ('1188','Veteran_Sword','Veteran Sword','4','10000','5000','2000','180','0','0','1','1','16514','63','2','34','4','80',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(SM_BASH)==10) { bonus2 bSkillAtk,SM_BASH,50; } if(getskilllv(KN_BOWLINGBASH)==10) { bonus2 bSkillAtk,KN_BOWLINGBASH,50; } bonus bStr,1; bonus bDex,1;','','');
REPLACE INTO `item_db_re` VALUES ('1189','Krasnaya','Krasnaya','4','20','10','3800','200','0','0','2','3','16514','58','2','34','2','50',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bStr)>=95) { bonus bBaseAtk,20; }','','');
REPLACE INTO `item_db_re` VALUES ('1190','Claymore_C','Claymore','4','0','0','0','220','0','0','1','0','16512','63','2','34','3','0',NULL,'0','3','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
@@ -663,8 +663,8 @@ REPLACE INTO `item_db_re` VALUES ('1277','Katar_Of_Raging_Blaze_','Katar of Ragi
REPLACE INTO `item_db_re` VALUES ('1278','Katar_Of_Piercing_Wind_','Katar of Piercing Wind','4','45000','22500','1200','105','0','0','1','3','4096','63','2','34','3','55',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Sleep,500;','','');
REPLACE INTO `item_db_re` VALUES ('1279','BF_Katar1','Brave Carnage Katar','4','20','10','0','130','0','0','1','0','4096','63','2','34','3','80',NULL,'1','16','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1280','BF_Katar2','Valorous Carnage Katar','4','20','10','0','130','0','0','1','0','4096','63','2','34','3','80',NULL,'1','16','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bLuk,1; bonus2 bAddRace,RC_DemiHuman,70; bonus bCritAtkRate,20; bonus bAspdRate,5; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1281','Krieger_Katar1','Glorious Bloody Roar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','16','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
-REPLACE INTO `item_db_re` VALUES ('1282','Krieger_Katar2','Glorious Jamadhar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','16','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bCriticalAddRace,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
+REPLACE INTO `item_db_re` VALUES ('1281','Krieger_Katar1','Glorious Bloody Roar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','16','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
+REPLACE INTO `item_db_re` VALUES ('1282','Krieger_Katar2','Glorious Jamadhar','4','20','10','0','140','0','0','1','0','4096','63','2','34','4','80',NULL,'1','16','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bCriticalAddRace,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bAspdRate,100; }\",70,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db_re` VALUES ('1283','Katar_Of_Speed','Katar Of Speed','4','20','10','0','175','0','0','1','0','4096','63','2','34','4','0',NULL,'0','16','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AS_SONICBLOW,25; bonus bAspdRate,3;','','');
REPLACE INTO `item_db_re` VALUES ('1284','Krishna','Krishna','4','20','10','1200','120','0','0','1','2','4096','58','2','34','3','50',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AS_GRIMTOOTH,10; if(getskilllv(AS_SONICBLOW)) { bonus3 bAutoSpell,AS_SONICBLOW,getskilllv(AS_SONICBLOW),5; } else { bonus3 bAutoSpell,AS_SONICBLOW,1,5; }','','');
REPLACE INTO `item_db_re` VALUES ('1285','Cakram','Chakram','4','20','10','1000','130','0','0','1','2','4096','58','2','34','3','50',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(AS_KATAR)==10) { bonus bHit,10; } bonus2 bSkillAtk,ASC_METEORASSAULT,20;','','');
@@ -678,7 +678,7 @@ REPLACE INTO `item_db_re` VALUES ('1292','Upg_Katar','Upgrade Katar','4','20','1
REPLACE INTO `item_db_re` VALUES ('1293','Velum_Jamadhar','Vellum Jamadhar','4','20','10','1200','170','0','0','1','0','4096','63','2','34','4','95',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,getrefine(); bonus4 bSetDefRace,RC_DemiHuman,10000,5000,1; bonus4 bSetMDefRace,RC_DemiHuman,10000,5000,1;','','');
REPLACE INTO `item_db_re` VALUES ('1294','Velum_Scare','Vellum Scale','4','20','10','1200','50','0','0','1','0','4096','63','2','34','4','95',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bSPVanishRate,10000,10,BF_NORMAL;','','');
REPLACE INTO `item_db_re` VALUES ('1295','Blood_Tears_','Blood Tears ','4','20','10','1700','120','0','0','1','1','4096','58','2','34','4','55',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1296','Metal_Katar','Metal Katar','4','20','10','0','75','0','0','1','1','4096','63','2','34','3','0',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*5); bonus bCritAtkRate,getrefine(); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('1296','Metal_Katar','Metal Katar','4','20','10','0','75','0','0','1','1','4096','63','2','34','3','0',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*5); bonus bCritAtkRate,getrefine(); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('1298','Shiver_Katar','Katar Of Horror','4','60000','30000','2700','110','0','0','1','2','4096','56','2','34','4','105',NULL,'1','16','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1301','Axe','Axe','4','500','250','800','38','0','0','1','3','283811','63','2','2','1','3',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1302','Axe_','Axe','4','500','250','800','38','0','0','1','4','283811','63','2','2','1','3',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -689,7 +689,7 @@ REPLACE INTO `item_db_re` VALUES ('1306','War_Axe','War Axe','4','20','10','4200
REPLACE INTO `item_db_re` VALUES ('1307','Windhawk','Windhawk','4','18000','9000','1500','115','0','0','1','0','414946','63','2','2','2','14',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Wind; bonus bAspdRate,5;','','');
REPLACE INTO `item_db_re` VALUES ('1308','Golden_Axe','Golden Axe','4','20','10','3000','170','0','0','1','0','1','47','2','2','4','45',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1309','Orcish_Axe_','Orcish Axe','4','20','10','1500','75','0','0','1','4','283811','63','2','2','3','3',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1310','Krieger_Onehand_Axe1','Glorious Cleaver','4','20','10','0','130','0','0','1','0','279714','63','2','2','4','80',NULL,'1','6','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; }','','');
+REPLACE INTO `item_db_re` VALUES ('1310','Krieger_Onehand_Axe1','Glorious Cleaver','4','20','10','0','130','0','0','1','0','279714','63','2','2','4','80',NULL,'1','6','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus bAspdRate,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; }','','');
REPLACE INTO `item_db_re` VALUES ('1311','Vecer_Axe','Vecer Axe','4','20','10','1500','140','0','0','1','2','279714','58','2','2','3','50',NULL,'1','6','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bLuk)>=90) { bonus bBaseAtk,20; } if(readparam(bDex)>=90) { bonus bCritical,5; } if(readparam(bDex)>=90||readparam(bLuk)>=90) { bonus2 bSkillAtk,MC_MAMMONITE,15; }','','');
REPLACE INTO `item_db_re` VALUES ('1312','Orcish_Axe_C','Orcish Axe','4','0','0','0','110','0','0','1','0','283811','63','2','2','3','0',NULL,'0','6','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddSize,Size_Small,70; bonus2 bAddSize,Size_Medium,70; bonus2 bAddSize,Size_Large,70;','','');
REPLACE INTO `item_db_re` VALUES ('1313','Tourist_Axe','Traveler\'s Axe','4','0','0','500','77','0','0','1','0','283811','63','2','2','1','0',NULL,'0','6','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
@@ -729,7 +729,7 @@ REPLACE INTO `item_db_re` VALUES ('1378','Great_Axe_C','Refined Great Axe','4','
REPLACE INTO `item_db_re` VALUES ('1379','BF_Two_Handed_Axe1','Valorous Insane Battle Axe','4','20','10','0','200','0','0','1','0','279714','63','2','34','3','80',NULL,'1','7','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1380','BF_Two_Handed_Axe2','Brave Insane Battle Axe','4','20','10','0','200','0','0','1','0','279714','63','2','34','3','80',NULL,'1','7','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; autobonus \"{ bonus bBreakArmorRate,10000; }\",20,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1381','N_Battle_Axe','Novice Battle Axe','4','0','0','0','100','0','0','1','3','279714','63','2','34','1','3',NULL,'0','7','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1382','Krieger_Twohand_Axe1','Glorious Twohanded Axe','4','20','10','0','220','0','0','1','0','279714','63','2','34','4','80',NULL,'1','7','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; } if(getrefine()>8) { bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; bonus4 bAutoSpellOnSkill,WS_CARTTERMINATION,NPC_CRITICALWOUND,2,200; }','','');
+REPLACE INTO `item_db_re` VALUES ('1382','Krieger_Twohand_Axe1','Glorious Twohanded Axe','4','20','10','0','220','0','0','1','0','279714','63','2','34','4','80',NULL,'1','7','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-3,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,50; } if(getrefine()>8) { bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,MC_MAMMONITE,NPC_CRITICALWOUND,2,200; bonus4 bAutoSpellOnSkill,WS_CARTTERMINATION,NPC_CRITICALWOUND,2,200; }','','');
REPLACE INTO `item_db_re` VALUES ('1383','Holy_Celestial_Axe','Holy Celestial Axe','4','20','10','1500','200','0','0','1','0','263200','63','2','34','4','60',NULL,'1','7','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bVit,10; bonus2 bAddRace,RC_Undead,10; bonus3 bAutoSpell,AL_BLESSING,5,50;','','');
REPLACE INTO `item_db_re` VALUES ('1384','Veteran_Axe','Veteran Axe','4','10000','5000','3000','250','0','0','1','2','263200','63','2','34','3','80',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(BS_DAGGER)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_SWORD)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_TWOHANDSWORD)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_KNUCKLE)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_SPEAR)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_AXE)==3) { bonus bBaseAtk,10; } if(getskilllv(BS_MACE)==3) { bonus bBaseAtk,10; } bonus bVit,2;','','');
REPLACE INTO `item_db_re` VALUES ('1385','Bradium_Stonehammer','Bradium Stonehammer','4','20','10','2700','210','0','0','1','0','1024','58','2','34','4','75',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAddEffOnSkill,BS_HAMMERFALL,Eff_Stun,500+(200*getrefine());','','');
@@ -745,7 +745,7 @@ REPLACE INTO `item_db_re` VALUES ('1394','Upg_Two_Handed_Axe','Upgrade Two-Hande
REPLACE INTO `item_db_re` VALUES ('1395','Velum_Buster','Vellum Buster','4','20','10','2500','50','0','0','1','0','279714','63','2','34','4','95',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus3 bSPVanishRate,10000,10,BF_NORMAL;','','');
REPLACE INTO `item_db_re` VALUES ('1396','Velum_Guillotine','Vellum Guillotine','4','20','10','5500','300','0','0','1','0','279714','63','2','34','4','95',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddRace,RC_DemiHuman,40; bonus2 bIgnoreDefRate,RC_DemiHuman,30; if(getrefine()>=6) { bonus2 bSkillAtk,NC_AXEBOOMERANG,80; bonus2 bSkillAtk,NC_POWERSWING,80; } if(getrefine()>=9) { bonus2 bAddRace,RC_DemiHuman,60; }','','');
REPLACE INTO `item_db_re` VALUES ('1397','Bradium_Stonehammer_','Bradium Stone Hammer','4','20','10','2700','210','0','0','1','2','1024','58','2','34','4','75',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1398','Metal_Two_Handed_Axe','Metal Two-Handed Axe','4','20','10','0','105','0','0','1','1','279714','63','2','34','3','0',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*7); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('1398','Metal_Two_Handed_Axe','Metal Two-Handed Axe','4','20','10','0','105','0','0','1','1','279714','63','2','34','3','0',NULL,'1','7','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*7); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('1401','Javelin','Javelin','4','150','75','700','28','0','0','3','3','16514','63','2','2','1','4',NULL,'1','4','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1402','Javelin_','Javelin','4','150','75','700','28','0','0','3','4','16514','63','2','2','1','4',NULL,'1','4','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1403','Javelin__','Javelin','4','150','75','700','28','0','0','3','0','16514','63','2','2','1','4',NULL,'1','4','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -771,7 +771,7 @@ REPLACE INTO `item_db_re` VALUES ('1422','Hunting_Spear','Hunting Spear','4','20
REPLACE INTO `item_db_re` VALUES ('1423','Pole_XO','Pole XO','4','20','10','0','120','0','0','3','0','16514','63','2','2','1','0',NULL,'0','4','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50;','','');
REPLACE INTO `item_db_re` VALUES ('1424','Skewer_C','Refined Brocca','4','1','0','0','149','0','0','3','0','16514','63','2','2','4','0',NULL,'0','4','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace,RC_NonBoss; bonus2 bAddSize,Size_Medium,20;','','');
REPLACE INTO `item_db_re` VALUES ('1425','BF_Spear1','Assaulter Spear','4','20','10','0','60','0','0','3','0','16514','63','2','2','3','80',NULL,'1','4','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(BaseJob==Job_Crusader) bonus bAspdRate,20;','','');
-REPLACE INTO `item_db_re` VALUES ('1426','Krieger_Onehand_Spear1','Glorious Spear','4','20','10','0','130','0','0','3','0','16514','63','2','2','4','80',NULL,'1','4','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,10; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,100; }','','');
+REPLACE INTO `item_db_re` VALUES ('1426','Krieger_Onehand_Spear1','Glorious Spear','4','20','10','0','130','0','0','3','0','16514','63','2','2','4','80',NULL,'1','4','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,10; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,100; }','','');
REPLACE INTO `item_db_re` VALUES ('1427','Spear_Of_Excellent','Spear Of Excellent','4','20','10','0','160','0','0','3','0','16514','63','2','2','3','0',NULL,'0','4','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SM_MAGNUM,25; bonus bStr,2;','','');
REPLACE INTO `item_db_re` VALUES ('1428','Long_Horn_M','Long Horn','4','20','10','1000','150','0','0','3','1','16514','58','2','2','4','65',NULL,'1','4','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus2 bAddEff,Eff_Bleeding,500; skill TF_DETOXIFY,1; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1429','Hunting_Spear_M','Hunting Spear','4','20','10','4200','180','0','0','3','1','16514','58','2','2','4','60',NULL,'1','4','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace,RC_Brute; bonus3 bAddMonsterDropItem,517,RC_Brute,1000; bonus3 bAutoSpell,LK_JOINTBEAT,3,500;','','');
@@ -817,14 +817,14 @@ REPLACE INTO `item_db_re` VALUES ('1482','BF_Lance1','Assaulter Lance','4','20',
REPLACE INTO `item_db_re` VALUES ('1483','Ivory_Lance','Ivory Lance','4','20','10','1000','160','0','0','3','1','16514','58','2','34','3','50',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,30; skill KN_SPEARSTAB,5;','','');
REPLACE INTO `item_db_re` VALUES ('1484','Cardo','Cardo','4','20','10','5600','150','0','0','3','1','128','58','2','34','4','70',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,-10; bonus bDef,getrefine()/2;','','');
REPLACE INTO `item_db_re` VALUES ('1485','Battle_Fork','Battle Fork','4','20','10','700','112','0','0','3','4','16514','58','2','34','2','50',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1486','Krieger_Twohand_Spear1','Glorious Lance','4','20','10','0','220','0','0','3','0','16514','63','2','34','4','80',NULL,'1','5','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,200; }','','');
+REPLACE INTO `item_db_re` VALUES ('1486','Krieger_Twohand_Spear1','Glorious Lance','4','20','10','0','220','0','0','3','0','16514','63','2','34','4','80',NULL,'1','5','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,KN_PIERCE,NPC_CRITICALWOUND,2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,PA_PRESSURE,5,200; }','','');
REPLACE INTO `item_db_re` VALUES ('1487','Lance_C','Lance','4','0','0','0','220','0','0','3','0','16514','63','2','34','3','0',NULL,'0','5','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,50; bonus2 bAddSize,Size_Medium,50; bonus2 bAddSize,Size_Large,50;','','');
REPLACE INTO `item_db_re` VALUES ('1488','Ahlspiess_C','Ahlspiess','4','20','10','0','135','0','0','3','0','16512','63','2','34','4','0',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreDefRace,RC_NonBoss; bonus bIgnoreDefRace,RC_Boss; bonus2 bAddRace,RC_DemiHuman,10; bonus3 bAutoSpell,KN_PIERCE,5,30;','','');
REPLACE INTO `item_db_re` VALUES ('1489','Spearfish_','Marlin','4','0','0','0','220','0','0','3','0','16514','63','2','34','1','50',NULL,'0','5','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus3 bAddEffOnSkill,KN_PIERCE,Eff_Bleeding,1000; bonus3 bAddEffOnSkill,LK_SPIRALPIERCE,Eff_Bleeding,1000; bonus2 bSkillAtk,LK_SPIRALPIERCE,100; bonus2 bSkillAtk,LG_INSPIRATION,50; if(BaseLevel>99) { bonus bBaseAtk,30; }','','');
REPLACE INTO `item_db_re` VALUES ('1490','Giant_Lance','Giant Lance','4','20','10','20000','20','0','0','3','0','128','56','2','34','4','140',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspd,-10; bonus2 bSkillCooldown,LK_SPIRALPIERCE,20000; if(readparam(bStr)>=120) { bonus bBaseAtk,300; }','','heal 0,-600;');
REPLACE INTO `item_db_re` VALUES ('1491','Upg_Lance','Upgrade Spear','4','20','10','1500','105','0','0','3','1','16514','63','2','34','3','0',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*12); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10);','','');
REPLACE INTO `item_db_re` VALUES ('1492','Velum_Glaive','Vellum Glaive','4','20','10','4500','250','0','0','3','0','16514','63','2','34','4','95',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,80; if(getrefine()>=6) { bonus2 bSkillAtk,LK_SPIRALPIERCE,100; bonus2 bSkillAtk,KN_SPEARBOOMERANG,50; } if(getrefine()>=9) { autobonus2 \"{ bonus bShortWeaponDamageReturn,20; bonus bMagicDamageReturn,20; }\",100,2000,BF_WEAPON|BF_MAGIC,\"{ specialeffect2 EF_REFLECTSHIELD; }\"; }','','');
-REPLACE INTO `item_db_re` VALUES ('1493','Metal_Lance','Metal Lance','4','20','10','0','100','0','0','3','1','16514','63','2','34','3','0',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*6); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('1493','Metal_Lance','Metal Lance','4','20','10','0','100','0','0','3','1','16514','63','2','34','3','0',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*6); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('1494','Undine_Spear','Spear Of Odin','4','50000','25000','3800','190','0','0','3','3','16514','63','2','34','4','105',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Water;','','');
REPLACE INTO `item_db_re` VALUES ('1501','Club','Club','4','120','60','700','23','0','0','1','3','312755','63','2','2','1','2',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1502','Club_','Club','4','120','60','700','23','0','0','1','4','312755','63','2','2','1','2',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -871,7 +871,7 @@ REPLACE INTO `item_db_re` VALUES ('1542','BF_Morning_Star1','Valorous Battlefiel
REPLACE INTO `item_db_re` VALUES ('1543','BF_Morning_Star2','Brave Battlefield Morning Star','4','20','10','0','105','0','0','1','0','312755','63','2','2','3','80',NULL,'1','8','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; autobonus \"{ bonus2 bAddEff,Eff_Stun,5000; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db_re` VALUES ('1544','Lunakaligo','Lunakaligo','4','20','10','700','110','0','0','1','3','33040','58','2','2','3','50',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(readparam(bStr)>=77) { bonus bAspdRate,4; bonus2 bAddEff,Eff_Stun,1500; bonus3 bAddMonsterDropItem,12065,RC_Plant,500; bonus3 bAddMonsterDropItem,12043,RC_Brute,500; bonus3 bAddMonsterDropItem,12069,RC_Fish,500; }','','');
REPLACE INTO `item_db_re` VALUES ('1545','N_Mace','Novice Mace','4','0','0','0','57','0','0','1','3','312755','63','2','2','1','2',NULL,'0','8','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1546','Krieger_Onehand_Mace1','Glorious Morning Star','4','20','10','0','130','0','0','1','0','312755','63','2','2','4','80',NULL,'1','8','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; }','','');
+REPLACE INTO `item_db_re` VALUES ('1546','Krieger_Onehand_Mace1','Glorious Morning Star','4','20','10','0','130','0','0','1','0','312755','63','2','2','4','80',NULL,'1','8','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine()>8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; }','','');
REPLACE INTO `item_db_re` VALUES ('1547','Mace_Of_Madness','Mace Of Madness','4','20','10','0','150','0','0','1','0','6571170','63','2','2','3','0',NULL,'0','8','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,MC_CARTREVOLUTION,25; bonus bStr,2;','','');
REPLACE INTO `item_db_re` VALUES ('1548','Veteran_Hammer','Veteran Hammer','4','10000','5000','1800','160','0','0','1','2','33040','63','2','2','3','80',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,getskilllv(AL_DP); bonus bCritical,getskilllv(PR_MACEMASTERY)*2; bonus bInt,1; bonus bLuk,1;','','');
REPLACE INTO `item_db_re` VALUES ('1549','Pilebuncker','Pile Bunker','4','10000','5000','3500','450','0','0','1','0','1024','56','2','2','3','99',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -901,7 +901,7 @@ REPLACE INTO `item_db_re` VALUES ('1572','Principles_Of_Magic','Principles of Ma
REPLACE INTO `item_db_re` VALUES ('1573','Ancient_Magic','Ancient Magic','4','20','10','700','30','140','0','1','2','4260096','63','2','2','3','70',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1574','BF_Book1','Brave Battle Strategy Book','4','20','10','0','90','125','0','1','0','4260096','63','2','2','3','80',NULL,'1','15','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1575','BF_Book2','Valorous Battle Strategy Book','4','20','10','0','90','125','0','1','0','4260096','63','2','2','3','80',NULL,'1','15','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,2; bonus2 bIgnoreMdefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1576','Krieger_Book1','Glorious Tablet','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','15','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,80; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bBaseAtk,200; }\",30,3000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\";','','');
+REPLACE INTO `item_db_re` VALUES ('1576','Krieger_Book1','Glorious Tablet','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','15','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,80; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) autobonus \"{ bonus bBaseAtk,200; }\",30,3000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\";','','');
REPLACE INTO `item_db_re` VALUES ('1577','Krieger_Book2','Glorious Apocalypse','4','20','10','0','90','115','0','1','0','4260096','63','2','2','4','80',NULL,'1','15','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,80; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) bonus2 bIgnoreDefRate,RC_DemiHuman,5; if(getrefine()>8) { bonus bMatkRate,5; bonus bVariableCastrate,-5; bonus bDelayrate,-5; }','','');
REPLACE INTO `item_db_re` VALUES ('1578','Book_Of_Prayer','Book Of Prayer','4','20','10','0','140','0','0','1','0','4260096','63','2','2','3','0',NULL,'0','15','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bVit,2; bonus bMdef,2; bonus bMaxSPrate,10;','','');
REPLACE INTO `item_db_re` VALUES ('1579','Death_Note_M','Book of the Dead','4','20','10','1000','137','0','0','1','2','4260096','63','2','2','4','85',NULL,'1','15','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,15; bonus bStr,3; bonus bInt,3; bonus bLuk,-20; bonus2 bWeaponComaRace,RC_DemiHuman,10; bonus bAspdRate,getrefine(); if(BaseJob==Job_Sage) bonus3 bAutoSpell,NPC_HELLJUDGEMENT,5,20;','','');
@@ -913,7 +913,7 @@ REPLACE INTO `item_db_re` VALUES ('1584','Chilly_Spell_Book','Chilly Spell Book'
REPLACE INTO `item_db_re` VALUES ('1585','Upg_Book','Upgrade Book','4','20','10','600','45','20','0','1','1','4260096','63','2','2','3','0',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*10); bonus bMatk,(getrefine()*5); if(BaseLevel>70) bonus bMatk,(((BaseLevel-70)/10)*5);','','');
REPLACE INTO `item_db_re` VALUES ('1586','Velum_Bible','Vellum Bible','4','20','10','600','110','125','0','1','0','4260096','63','2','2','4','95',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(BaseLevel>104) { bonus bHealPower,(BaseLevel/5)-20; } if (getrefine()>=6) { bonus2 bSkillCooldown,AB_CLEARANCE,-10000; bonus2 bSkillCooldown,AB_LAUDARAMUS,-3000; bonus2 bSkillCooldown,AB_LAUDAAGNUS,-3000; bonus2 bSkillUseSP,AB_CLEARANCE,-60; bonus2 bSkillUseSP,AB_LAUDARAMUS,-60; bonus2 bSkillUseSP,AB_LAUDAAGNUS,-60; }','','');
REPLACE INTO `item_db_re` VALUES ('1587','Velum_Encyclopedia','Vellum Encyclopedia','4','20','10','1000','130','0','0','1','0','4260096','63','2','2','4','95',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,80+getrefine(); bonus2 bIgnoreDefRate,RC_DemiHuman,30; autobonus \"{ bonus bBaseAtk,200; }\",10,3000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";','','');
-REPLACE INTO `item_db_re` VALUES ('1588','Metal_Book','Metal Book','4','20','10','0','45','10','0','1','1','4260096','63','2','2','3','0',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*5); bonus bMatk,(getrefine()*2); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('1588','Metal_Book','Metal Book','4','20','10','0','45','10','0','1','1','4260096','63','2','2','3','0',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*5); bonus bMatk,(getrefine()*2); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('1590','Snake_Encyclopedia','Daizenshu Dakatsu','4','60000','30000','1500','10','110','0','1','2','4260096','63','2','2','4','105',NULL,'1','15','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1599','Angra_Manyu','Angra manyu','4','1','0','10','10000','10000','0','2','0','4294967295','63','2','2','1','0',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,50; bonus bBaseAtk,3300; bonus bMatkRate,200; bonus2 bHPDrainRate,1000,100; bonus2 bSPDrainRate,1000,20; bonus bHealPower,200; bonus2 bAddRace,RC_NonBoss,100; bonus2 bAddRace,RC_Boss,100; skill WZ_STORMGUST,10; skill WZ_METEOR,10; skill WZ_VERMILION,10; skill GM_SANDMAN,1; bonus bVariableCastrate,-100; bonus bFixedCastrate,-100;','','');
REPLACE INTO `item_db_re` VALUES ('1601','Rod','Rod','4','50','25','400','15','30','0','1','3','8487701','63','2','2','1','0',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -956,13 +956,13 @@ REPLACE INTO `item_db_re` VALUES ('1637','Eraser','Eraser','4','20','10','500','
REPLACE INTO `item_db_re` VALUES ('1638','Healing_Staff_C','Staff Of Healing','4','20','10','0','10','125','0','1','0','33040','63','2','2','3','0',NULL,'0','10','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bMatkRate,15; bonus bHealPower,(getrefine()*3/2);','','');
REPLACE INTO `item_db_re` VALUES ('1639','N_Rod','Novice Rod','4','0','0','0','15','32','0','1','3','8487701','63','2','2','1','0',NULL,'0','10','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1640','Krieger_Onehand_Staff1','Glorious Arc Wand','4','20','10','0','70','135','0','1','0','8487700','63','2','2','4','80',NULL,'1','10','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddRace,RC_DemiHuman,15; bonus2 bIgnoreMdefRate,RC_DemiHuman,25 + ((getrefine() > 5) ? 5 : 0); bonus bUnbreakableWeapon,0; if(getrefine() > 8) { bonus bMatkRate,5; bonus bVariableCastrate,-5; bonus bDelayrate,-5; }','','');
-REPLACE INTO `item_db_re` VALUES ('1641','Krieger_Onehand_Staff2','Glorious Cure Wand','4','20','10','0','70','135','0','1','0','8487700','63','2','2','4','80',NULL,'1','10','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,14; bonus bDelayrate,-10; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bIgnoreMdefRate,RC_DemiHuman,5; bonus bHealPower,5+(((getrefine()>14)?14:getrefine())-5)*2; } if(getrefine() > 8) bonus5 bAutoSpellOnSkill,AL_HEAL,AL_HEAL,10,100,1; if(getrefine() > 9) { bonus bHealPower,10; }','','');
+REPLACE INTO `item_db_re` VALUES ('1641','Krieger_Onehand_Staff2','Glorious Cure Wand','4','20','10','0','70','135','0','1','0','8487700','63','2','2','4','80',NULL,'1','10','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,14; bonus bDelayrate,-10; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bIgnoreMdefRate,RC_DemiHuman,5; bonus bHealPower,5+(min(getrefine(),14)-5)*2; } if(getrefine() > 8) bonus5 bAutoSpellOnSkill,AL_HEAL,AL_HEAL,10,100,1; if(getrefine() > 9) { bonus bHealPower,10; }','','');
REPLACE INTO `item_db_re` VALUES ('1642','Staff_Of_Darkness','Staff Of Darkness','4','20','10','0','100','120','0','1','0','8487700','63','2','2','2','0',NULL,'0','10','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bVariableCastrate,-5; bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('1643','Dead_Tree_Cane','Dead Tree CaneStaff','4','20','10','100','100','155','0','1','0','8487700','63','2','2','4','70',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; if (getrefine()>5) { bonus bInt,getrefine()-5; bonus bMaxHP,-200; bonus bMaxSP,-100; }','','');
REPLACE INTO `item_db_re` VALUES ('1644','Piercing_Staff_M','Staff of Piercing','4','20','10','500','80','145','0','1','0','99092','58','2','2','3','70',NULL,'1','10','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus bIgnoreMdefRate,10+getrefine();','','');
REPLACE INTO `item_db_re` VALUES ('1645','Lich_Bone_Wand_M','Lich\'s Bone Wand','4','20','10','800','60','170','0','1','2','99092','58','2','2','3','70',NULL,'1','10','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bDex,1; bonus bAtkEle,Ele_Undead; bonus bMatkRate,20; bonus3 bAutoSpellWhenHit,NPC_WIDECURSE,5,10+getrefine(); if(getrefine()>=9) { bonus bMatkRate,3; bonus bMaxSP,300; }','','');
REPLACE INTO `item_db_re` VALUES ('1646','La\'cryma_Stick','La\'cryma Stick','4','20','10','500','30','180','0','1','2','66052','58','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus bMdef,1; bonus2 bSkillAtk,WZ_STORMGUST,getrefine(); if (getrefine() > 9) bonus2 bVariableCastrate,WZ_STORMGUST,-8;','','');
-REPLACE INTO `item_db_re` VALUES ('1647','Croce_Staff','Croce Staff','4','20','10','500','30','175','0','1','1','33040','58','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,getskilllv(AL_BLESSING)>1?getskilllv(AL_BLESSING):1,20;','','');
+REPLACE INTO `item_db_re` VALUES ('1647','Croce_Staff','Croce Staff','4','20','10','500','30','175','0','1','1','33040','58','2','2','3','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus4 bAutoSpellOnSkill,AL_HEAL,AL_BLESSING,max(getskilllv(AL_BLESSING),1),20;','','');
REPLACE INTO `item_db_re` VALUES ('1648','Staff_Of_Bordeaux','Staff Of Bordeaux','4','20','10','500','30','170','0','1','0','66052','58','2','2','4','50',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bDex,1; if(getskilllv(SA_DRAGONOLOGY) == 5) { bonus bUseSPrate,-15; bonus bInt,3; }','','');
REPLACE INTO `item_db_re` VALUES ('1649','Rafini_Staff','Laphine Staff','4','20','10','500','30','180','0','1','0','99072','56','2','2','3','100',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFixedCastrate,-getrefine();','','');
REPLACE INTO `item_db_re` VALUES ('1650','P_Staff1','Eden Staff I','4','0','0','0','60','125','0','1','0','8487700','63','2','2','2','26',NULL,'0','10','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
@@ -977,7 +977,7 @@ REPLACE INTO `item_db_re` VALUES ('1658','P_Staff3','Eden Group Staff III','4','
REPLACE INTO `item_db_re` VALUES ('1659','Recovery_Light','Light of Recovery','4','56000','28000','400','30','160','0','1','1','256','56','2','2','4','110',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bUnbreakableWeapon,0; bonus bHealPower,(getrefine()*6); bonus2 bSkillUseSP,AL_HEAL,-(getrefine()*10); bonus2 bSkillUseSP,AB_CHEAL,-(getrefine()*12); bonus2 bSkillUseSP,AB_HIGHNESSHEAL,-(getrefine()*14);','','');
REPLACE INTO `item_db_re` VALUES ('1660','Wand_Of_Affection2','Protection Staff II','4','20','10','500','30','180','0','1','1','256','56','2','2','4','130',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus bHealPower,20;','','');
REPLACE INTO `item_db_re` VALUES ('1661','Mental_Destroyer','Mental Destroyer','4','20','10','1400','100','50','0','1','0','512','58','2','2','4','95',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,10; bonus bUnbreakableWeapon,0; bonus bUseSPrate,100; bonus bMdef,20; bonus3 bSPVanishRate,10000,5,BF_NORMAL|BF_SKILL; if(getrefine()>5) { bonus3 bSPVanishRate,10000,10,BF_NORMAL|BF_SKILL; }','','');
-REPLACE INTO `item_db_re` VALUES ('1670','RWC_Memory_Staff','RWC Memory Staff','4','20','10','500','25','30','0','1','1','8487700','63','2','2','3','0',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bMatk,30*(getrefine()/3); if(getrefine()>=7) { set .@i,1; bonus4 bAutoSpell,\"HW_MAGICPOWER\",1,10,0; } if (getrefine()>=4) { set .@rate,5*(.@i+1); bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }','','');
+REPLACE INTO `item_db_re` VALUES ('1670','RWC_Memory_Staff','RWC Memory Staff','4','20','10','500','25','30','0','1','1','8487700','63','2','2','3','0',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bMatk,30*(getrefine()/3); if (getrefine()>=7) { .@val = 1; bonus4 bAutoSpell,HW_MAGICPOWER,1,10,0; } if (getrefine()>=4) { .@rate = 5*(.@val+1); bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }','','');
REPLACE INTO `item_db_re` VALUES ('1701','Bow','Bow','4','1000','500','500','15','0','0','5','3','657480','63','2','34','1','4',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1702','Bow_','Bow','4','1000','500','500','15','0','0','5','4','657480','63','2','34','1','4',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('1703','Bow__','Bow','4','0','0','0','15','0','0','5','0','657480','63','2','34','1','4',NULL,'0','11','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddDamageClass,1002,500; bonus2 bAddDamageClass,1113,500; bonus2 bAddDamageClass,1031,500; bonus2 bAddDamageClass,1242,500;','','');
@@ -1019,7 +1019,7 @@ REPLACE INTO `item_db_re` VALUES ('1739','BF_Bow2','Brave Battle CrossBow','4','
REPLACE INTO `item_db_re` VALUES ('1740','Nepenthes_Bow','Nepenthes Bow','4','20','10','1000','105','0','0','5','2','2048','58','2','34','4','60',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus4 bAutoSpellOnSkill,AC_DOUBLE,AC_CHARGEARROW,1,20;','','');
REPLACE INTO `item_db_re` VALUES ('1741','Cursed_Lyre','Cursed Lyre','4','20','10','1250','125','0','0','5','1','526344','58','2','34','4','80',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,-2; bonus2 bAddEff,Eff_Curse,400;','','');
REPLACE INTO `item_db_re` VALUES ('1742','N_Composite_Bow','Novice Composite Bow','4','0','0','0','49','0','0','5','3','657480','63','2','34','1','4',NULL,'0','11','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('1743','Krieger_Bow1','Glorious Hunter Bow','4','20','10','0','100','0','0','5','0','657480','63','2','34','4','80',NULL,'1','11','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20;','','');
+REPLACE INTO `item_db_re` VALUES ('1743','Krieger_Bow1','Glorious Hunter Bow','4','20','10','0','100','0','0','5','0','657480','63','2','34','4','80',NULL,'1','11','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bCritAtkRate,getrefine() * 2; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus2 bSkillAtk,AC_DOUBLE,20;','','');
REPLACE INTO `item_db_re` VALUES ('1744','Bow_Of_Evil','Bow Of Evil','4','20','10','0','170','0','0','5','0','657480','63','2','34','4','0',NULL,'0','11','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,AC_DOUBLE,25; bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('1745','Falken_Blitz','Falken Blitz','4','20','10','1000','100','0','0','5','2','2048','58','2','34','3','50',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SN_SHARPSHOOTING,10; bonus2 bSkillAtk,AC_DOUBLE,10; bonus2 bSkillAtk,AC_CHARGEARROW,10;','','');
REPLACE INTO `item_db_re` VALUES ('1746','Elven_Bow','Elven Bow','4','20','10','1500','160','0','0','5','1','526336','56','2','34','3','100',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2;','','');
@@ -1076,10 +1076,10 @@ REPLACE INTO `item_db_re` VALUES ('1820','Electric_Fist','Electric Fist','4','20
REPLACE INTO `item_db_re` VALUES ('1821','Seismic_Fist','Seismic Fist','4','20','10','650','80','0','0','1','3','33024','63','2','2','3','75',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,SA_SEISMICWEAPON,5,10;','','');
REPLACE INTO `item_db_re` VALUES ('1822','Combo_Battle_Glove','Combo Battle Glove','4','20','10','500','30','0','0','1','4','33024','63','2','2','3','60',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,MO_TRIPLEATTACK,15; bonus2 bSkillAtk,MO_CHAINCOMBO,15; bonus2 bSkillAtk,MO_COMBOFINISH,20;','','');
REPLACE INTO `item_db_re` VALUES ('1823','BF_Knuckle1','Valorous Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus4 bAutoSpell,CH_SOULCOLLECT,1,5,0; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('1824','BF_Knuckle2','Brave Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bVariableCastrate,MO_EXTREMITYFIST,-25; autobonus \"{ bonus2 bVariableCastrate,\\\"MO_EXTREMITYFIST\\\",-100; }\",50,6000,BF_WEAPON,\"{ specialeffect2 EF_SUFFRAGIUM; }\"; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('1824','BF_Knuckle2','Brave Battle Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','3','80',NULL,'1','12','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bVariableCastrate,MO_EXTREMITYFIST,-25; autobonus \"{ bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; }\",50,6000,BF_WEAPON,\"{ specialeffect2 EF_SUFFRAGIUM; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1825','Horn_Of_Hilthrion','Horn of Hillslion','4','20','10','600','95','0','0','1','3','32768','58','2','2','3','60',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,NPC_CRITICALWOUND,1,100; bonus4 bAutoSpellOnSkill,CH_PALMSTRIKE,MO_INVESTIGATE,1,100; bonus3 bAutoSpell,MO_CALLSPIRITS,5,100;','','');
-REPLACE INTO `item_db_re` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50); bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50); }','','');
-REPLACE INTO `item_db_re` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','','');
+REPLACE INTO `item_db_re` VALUES ('1826','Krieger_Knuckle1','Glorious Claw','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,MO_INVESTIGATE,5,(getrefine()*10-50); bonus3 bAutoSpell,AL_DECAGI,1,(getrefine()*10-50); }','','');
+REPLACE INTO `item_db_re` VALUES ('1827','Krieger_Knuckle2','Glorious Fist','4','20','10','0','30','0','0','1','0','33024','63','2','2','4','80',NULL,'1','12','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,MO_EXTREMITYFIST,-100; bonus4 bAutoSpellOnSkill,MO_EXPLOSIONSPIRITS,CH_SOULCOLLECT,1,1000; }','','');
REPLACE INTO `item_db_re` VALUES ('1828','Monk_Knuckle','Monk Knuckle','4','20','10','0','150','0','0','1','0','33024','63','2','2','4','0',NULL,'0','12','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus2 bSkillAtk,MO_FINGEROFFENSIVE,25;','','');
REPLACE INTO `item_db_re` VALUES ('1829','Fist_C','Fist','4','0','0','0','150','0','0','1','0','33024','63','2','2','3','0',NULL,'0','12','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
REPLACE INTO `item_db_re` VALUES ('1830','Sura_Rampage','Sura\'s Rampage','4','20','10','500','142','0','0','1','1','32768','56','2','2','3','102',NULL,'1','12','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SR_EARTHSHAKER,20; bonus2 bSkillAtk,SR_SKYNETBLOW,20; bonus bUseSPrate,5; if(getrefine()>6) { bonus bUseSPrate,-1*(getrefine()-6); }','','');
@@ -1112,7 +1112,7 @@ REPLACE INTO `item_db_re` VALUES ('1923','BF_Instrument1','Valorous Battlefield
REPLACE INTO `item_db_re` VALUES ('1924','BF_Instrument2','Brave Battlefield Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','3','80',NULL,'1','13','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,CG_ARROWVULCAN,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1925','Cello','Cello','4','20','10','700','110','0','0','1','3','524288','58','1','2','3','70',NULL,'1','13','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,BA_MUSICALSTRIKE,2; bonus2 bAddSkillBlow,CG_ARROWVULCAN,3;','','');
REPLACE INTO `item_db_re` VALUES ('1926','Harp_Of_Nepenthes','Harp of Nepenthes','4','20','10','1000','120','0','0','1','2','524288','58','1','2','4','60',NULL,'1','13','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; if( getrefine()>9 ) { bonus3 bAddEffOnSkill,BA_MUSICALSTRIKE,Eff_Stun,2000; } else { bonus3 bAddEffOnSkill,BA_MUSICALSTRIKE,Eff_Stun,1000; }','','');
-REPLACE INTO `item_db_re` VALUES ('1927','Krieger_Instrument1','Glorious Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','4','80',NULL,'1','13','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1927','Krieger_Instrument1','Glorious Guitar','4','20','10','0','50','0','0','1','0','524288','63','1','2','4','80',NULL,'1','13','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','','');
REPLACE INTO `item_db_re` VALUES ('1928','Berserk_Guitar_I','Spirited Guitar','4','0','0','0','40','0','0','1','0','524288','58','1','2','4','0',NULL,'0','13','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,100; bonus bHPrecovRate,-100; bonus2 bHPLossRate,50,5000; bonus bDex,-readparam(bDex);','','');
REPLACE INTO `item_db_re` VALUES ('1929','Guitar_C','Guitar','4','0','0','0','177','0','0','1','0','524288','63','1','2','3','0',NULL,'0','13','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
REPLACE INTO `item_db_re` VALUES ('1930','Green_Whistle','Green Whistle','4','20','10','800','170','50','0','1','1','524288','56','1','2','3','102',NULL,'1','13','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>5) { bonus2 bSkillUseSP,MI_RUSH_WINDMILL,(getrefine()-5)*4; bonus2 bSkillUseSP,WM_LULLABY_DEEPSLEEP,(getrefine()-5)*4; } bonus2 bSkillVariableCast,MI_RUSH_WINDMILL,-2000; bonus2 bSkillVariableCast,WM_LULLABY_DEEPSLEEP,-2000;','','');
@@ -1148,7 +1148,7 @@ REPLACE INTO `item_db_re` VALUES ('1977','BF_Whip1','Valorous Battle Lariat','4'
REPLACE INTO `item_db_re` VALUES ('1978','BF_Whip2','Brave Battle Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','3','80',NULL,'1','14','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bSkillAtk,CG_ARROWVULCAN,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('1979','Stem_Of_Nepenthes','Stem of Nepenthes','4','20','10','1000','120','0','0','2','2','524288','58','0','2','4','60',NULL,'1','14','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; if( getrefine()>=9 ) { bonus3 bAddEffOnSkill,DC_THROWARROW,Eff_Freeze,2000; } else { bonus3 bAddEffOnSkill,DC_THROWARROW,Eff_Freeze,1000; }','','');
REPLACE INTO `item_db_re` VALUES ('1980','Whip_Of_Balance','Whip of Balance','4','20','10','700','110','0','0','2','3','524288','58','0','2','3','70',NULL,'1','14','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bDex,3; bonus2 bAddSkillBlow,DC_THROWARROW,2; bonus2 bAddSkillBlow,CG_ARROWVULCAN,3;','','');
-REPLACE INTO `item_db_re` VALUES ('1981','Krieger_Whip1','Glorious Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','4','80',NULL,'1','14','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','','');
+REPLACE INTO `item_db_re` VALUES ('1981','Krieger_Whip1','Glorious Lariat','4','20','10','0','50','0','0','2','0','524288','63','0','2','4','80',NULL,'1','14','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,CG_ARROWVULCAN,CG_TAROTCARD,5,100;','','');
REPLACE INTO `item_db_re` VALUES ('1982','Phenomena_Whip','Phenomena Whip','4','20','10','0','160','0','0','2','0','524288','63','0','2','4','0',NULL,'0','14','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bSkillAtk,DC_THROWARROW,25;','','');
REPLACE INTO `item_db_re` VALUES ('1983','Rante_C','Rante Whip','4','0','0','0','170','0','0','2','0','524288','63','0','2','3','0',NULL,'0','14','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddSize,Size_Small,40; bonus2 bAddSize,Size_Medium,40; bonus2 bAddSize,Size_Large,40;','','');
REPLACE INTO `item_db_re` VALUES ('1984','Stem_Whip','Stem Whip','4','20','10','800','170','50','0','1','1','524288','56','0','2','3','102',NULL,'1','14','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>5) { bonus2 bSkillUseSP,WA_SWING_DANCE,(getrefine()-5)*4; bonus2 bSkillUseSP,WM_LULLABY_DEEPSLEEP,(getrefine()-5)*4; } bonus2 bSkillVariableCast,WA_SWING_DANCE,-2000; bonus2 bSkillVariableCast,WM_LULLABY_DEEPSLEEP,-2000;','','');
@@ -1156,7 +1156,7 @@ REPLACE INTO `item_db_re` VALUES ('1985','Rosebine','Rosevine','4','20','10','10
REPLACE INTO `item_db_re` VALUES ('1986','P_Tail1','Eden Group Whip I','4','0','0','0','125','0','0','2','0','524288','63','0','2','3','60',NULL,'1','14','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2000','Destruction_Rod','Staff of Destruction','4','20','10','2500','130','280','0','1','1','512','58','2','34','4','80',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine()/2; bonus bInt,3; bonus bAgi,10; bonus bUseSPrate,(getrefine()*2); bonus3 bAutoSpellWhenHit,WZ_JUPITEL,5,(getrefine()*20); bonus2 bVariableCastrate,HW_MAGICPOWER,-50;','','');
REPLACE INTO `item_db_re` VALUES ('2001','Divine_Cross','Divine Cross','4','20','10','1500','120','210','0','1','0','33024','63','2','34','4','70',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bDex,4; bonus2 bSubRace,RC_Demon,15; bonus2 bSubRace,RC_Undead,15;','','');
-REPLACE INTO `item_db_re` VALUES ('2002','Krieger_Twohand_Staff1','Glorious Destruction Staff','4','20','10','0','70','210','0','1','0','8487700','63','2','34','4','80',NULL,'1','23','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine(); bonus2 bMagicAddRace,RC_DemiHuman,15; bonus2 bIgnoreMdefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bMagicAddRace,RC_DemiHuman,(((getrefine()>14)?14:getrefine())-5)*2; bonus2 bIgnoreMdefRate,RC_DemiHuman,5+(((getrefine()>14)?14:getrefine())-5)*2; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,WZ_STORMGUST,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_METEOR,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_VERMILION,MG_SAFETYWALL,10,200,1; }','','');
+REPLACE INTO `item_db_re` VALUES ('2002','Krieger_Twohand_Staff1','Glorious Destruction Staff','4','20','10','0','70','210','0','1','0','8487700','63','2','34','4','80',NULL,'1','23','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine(); bonus2 bMagicAddRace,RC_DemiHuman,15; bonus2 bIgnoreMdefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bMagicAddRace,RC_DemiHuman,(min(getrefine(),14)-5)*2; bonus2 bIgnoreMdefRate,RC_DemiHuman,5+(min(getrefine(),14)-5)*2; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,WZ_STORMGUST,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_METEOR,MG_SAFETYWALL,10,200,1; bonus5 bAutoSpellOnSkill,WZ_VERMILION,MG_SAFETYWALL,10,200,1; }','','');
REPLACE INTO `item_db_re` VALUES ('2003','Destruction_Rod_M','Staff of Destruction','4','20','10','2500','130','280','0','1','1','512','58','2','34','4','80',NULL,'1','23','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,getrefine()/2; bonus bInt,3; bonus bAgi,10; bonus bUseSPrate,(getrefine()*2); bonus3 bAutoSpellWhenHit,WZ_JUPITEL,5,(getrefine()*20); bonus2 bVariableCastrate,HW_MAGICPOWER,-50;','','');
REPLACE INTO `item_db_re` VALUES ('2004','Kronos','Kronos','4','20','10','1000','30','240','0','1','0','66052','58','2','34','4','50',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,3+(getrefine()/2); bonus bMaxHP,300+(50*getrefine()/2); autobonus \"{ bonus bMatkRate,12; bonus buseSPRate,20; }\",1,5000,BF_MAGIC,\"{ specialeffect2 EF_ENHANCE; }\";','','');
REPLACE INTO `item_db_re` VALUES ('2005','Dea_Staff','Dea Staff','4','20','10','1000','30','220','0','1','1','33040','58','2','34','3','50',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Holy; bonus bMatkRate,getrefine()/2; bonus bInt,6; bonus bVit,2; autobonus3 \"{ }\",20,1000,AL_HEAL,\"{ specialeffect2 EF_MAGICALATTHIT; heal 0,200; }\";','','');
@@ -1172,7 +1172,7 @@ REPLACE INTO `item_db_re` VALUES ('2014','Forest_Staff2','Empowered Forest Staff
REPLACE INTO `item_db_re` VALUES ('2015','Upg_Staff','Upgrade Staff','4','20','10','1000','50','70','0','1','1','8487700','63','2','34','3','0',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,(getrefine()*10); bonus bHealPower,getrefine(); if(BaseJob==Job_Wizard) bonus bMatk,30; else if(BaseJob==Job_Sage) bonus bMatk,20; if(BaseLevel>70) bonus bMatk,(((BaseLevel-70)/10)*10);','','');
REPLACE INTO `item_db_re` VALUES ('2016','Velum_Arc_Wand','Vellum Arc Wand','4','20','10','800','110','220','0','1','0','8487700','63','2','34','4','95',NULL,'1','10','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bMagicAddRace,RC_DemiHuman,25; bonus bIgnoreMdefRate,25; if(getrefine()>5) { bonus2 bMagicAddRace,RC_DemiHuman,15; } if(getrefine()>8) { bonus bVariableCastrate,-20; }','','');
REPLACE INTO `item_db_re` VALUES ('2017','Divine_Cross_','Divine Cross','4','20','10','1500','120','210','0','1','0','33024','63','2','34','4','70',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Holy; bonus bDex,4;','','');
-REPLACE INTO `item_db_re` VALUES ('2018','Metal_Staff','Metal Staff','4','20','10','0','50','70','0','1','1','8487701','63','2','34','3','1',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; if(BaseJob==Job_Wizard) bonus bMatk,15; else if(BaseJob==Job_Sage) bonus bMatk,10; bonus bMatk,(getrefine()*5); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bMatk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('2018','Metal_Staff','Metal Staff','4','20','10','0','50','70','0','1','1','8487701','63','2','34','3','1',NULL,'1','23','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; if(BaseJob==Job_Wizard) bonus bMatk,15; else if(BaseJob==Job_Sage) bonus bMatk,10; bonus bMatk,(getrefine()*5); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bMatk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('2101','Guard','Guard','5','500','250','300','0','0','20','0','0','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2102','Guard_','Guard','5','500','250','300','0','0','20','0','1','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2103','Buckler','Buckler','5','14000','7000','600','0','0','40','0','0','972274','63','2','32','0','0',NULL,'1','2','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -1240,7 +1240,7 @@ REPLACE INTO `item_db_re` VALUES ('2164','Sombre_Shield','Bull Son Shield','5','
REPLACE INTO `item_db_re` VALUES ('2165','Sol_Shield','Sol Shield','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2166','Exorcism_Bible_','Devil\'s Bible Drive','5','20','10','600','0','0','80','0','1','33024','63','2','32','0','50',NULL,'1','5','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1;','','');
REPLACE INTO `item_db_re` VALUES ('2167','Poison_Shield','Poison Shield','5','20','10','1300','0','0','50','0','1','4294967295','63','2','32','0','65',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('2168','Immuned_Shield','Immune Shield','5','20','10','700','0','0','55','0','1','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,((getrefine()>12)?12:getrefine())-5;','','');
+REPLACE INTO `item_db_re` VALUES ('2168','Immuned_Shield','Immune Shield','5','20','10','700','0','0','55','0','1','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if (getrefine()>5) bonus2 bSubEle,Ele_Neutral,min(getrefine(),12)-5;','','');
REPLACE INTO `item_db_re` VALUES ('2169','Kalasak','Kalasag','5','20','10','400','0','0','40','0','0','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_Boss,getrefine()/3;','','');
REPLACE INTO `item_db_re` VALUES ('2170','Bayani_Kalasak','Kalasag(Bayani)','5','20','10','400','0','0','40','0','1','4294967295','63','2','32','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_Boss,getrefine()/3;','','');
REPLACE INTO `item_db_re` VALUES ('2171','Fox_Armguard','Fox Armguard','5','40000','20000','200','0','0','45','0','1','570425344','1','2','32','0','100',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,5;','','');
@@ -1524,7 +1524,7 @@ REPLACE INTO `item_db_re` VALUES ('2472','Shoes_Of_Judgement','Shoes Of Judgemen
REPLACE INTO `item_db_re` VALUES ('2473','Para_Team_Boots4','Eden Group Boots IV','5','0','0','0','0','0','20','0','0','4294967295','63','2','64','0','60',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,1; bonus bVit,1; bonus bHPrecovRate,28; bonus bSPrecovRate,12;','','');
REPLACE INTO `item_db_re` VALUES ('2474','Lehmannza_Shoes','Lehmannza Shoes','5','20','10','500','0','0','3','0','1','4294967295','63','2','64','0','60',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('2475','Ur_Greave','Ur\'s Greaves','5','20','10','900','0','0','32','0','1','128','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,40; if(getequiprefinerycnt(EQI_SHOES)>7) bonus bMaxHPrate,getequiprefinerycnt(EQI_SHOES)-7;','','');
-REPLACE INTO `item_db_re` VALUES ('2476','Peuz_Greave','Peuz\'s Greaves','5','20','10','900','0','0','32','0','1','128','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,40; bonus bAgi,-7+(getequiprefinerycnt(EQI_SHOES)>8)?8:getequiprefinerycnt(EQI_SHOES);','','');
+REPLACE INTO `item_db_re` VALUES ('2476','Peuz_Greave','Peuz\'s Greaves','5','20','10','900','0','0','32','0','1','128','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,40; bonus bAgi,-7+min(getequiprefinerycnt(EQI_SHOES),8);','','');
REPLACE INTO `item_db_re` VALUES ('2477','Sabah_Shoes','Sapha Shoes','5','20','10','400','0','0','18','0','1','4096','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxSP,30; bonus bLuk,3;','','');
REPLACE INTO `item_db_re` VALUES ('2478','Nab_Shoes','Nab Shoes','5','20','10','400','0','0','18','0','1','4096','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,3; bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('2479','White_Wing_Boots','White Wing Boots','5','20','10','400','0','0','18','0','1','2048','56','2','64','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus2 bSkillUseSP,RA_AIMEDBOLT,10;','','');
@@ -1585,7 +1585,7 @@ REPLACE INTO `item_db_re` VALUES ('2541','Asprika','Asprika','5','20','10','400'
REPLACE INTO `item_db_re` VALUES ('2542','Flame_Manteau','Flame Manteau of Naght Sieger','5','20','10','500','0','0','16','0','1','1040382','58','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,5; bonus bMdef,2; bonus bMatkRate,1; bonus2 bAddEle,Ele_Fire,2;','','');
REPLACE INTO `item_db_re` VALUES ('2543','Sylphid_Manteau','Sylphid Manteau','5','20','10','0','0','0','33','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,13; bonus2 bSubEle,Ele_Neutral,13; bonus bFlee2,1;','','');
REPLACE INTO `item_db_re` VALUES ('2544','Leather_Of_Tendrilion','Leather of Tendrilion','5','20','10','500','0','0','14','0','1','1040256','58','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Earth,5; bonus2 bSubRace,RC_Plant,5; bonus2 bSubRace,RC_Brute,5;','','');
-REPLACE INTO `item_db_re` VALUES ('2545','Musika','Musika','5','20','10','500','0','0','10','0','1','256','58','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus3 bAutoSpellWhenHit,AL_HEAL,getskilllv(AL_HEAL)?getskilllv(AL_HEAL):1,20;','','');
+REPLACE INTO `item_db_re` VALUES ('2545','Musika','Musika','5','20','10','500','0','0','10','0','1','256','58','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus3 bAutoSpellWhenHit,AL_HEAL,max(getskilllv(AL_HEAL),1),20;','','');
REPLACE INTO `item_db_re` VALUES ('2546','Beach_Manteau','Beach Manteau','5','20','10','600','0','0','0','0','1','4294967295','63','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bInt,1; bonus2 bSubEle,Ele_Fire,10;','','');
REPLACE INTO `item_db_re` VALUES ('2547','Cheap_Running_Shirts','Cheap Undershirt','5','0','0','0','0','0','11','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bFlee,10; bonus2 bSubEle,Ele_Neutral,10; bonus bMdef,1;','','');
REPLACE INTO `item_db_re` VALUES ('2548','Muffler_C','Neo Muffler','5','0','0','0','0','0','22','0','0','1040382','58','2','4','0','95',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_DemiHuman,10; bonus bMaxHPrate,10; bonus2 bSubEle,Ele_Water,5; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Holy,5; bonus2 bSubEle,Ele_Dark,5;','','');
@@ -1610,7 +1610,7 @@ REPLACE INTO `item_db_re` VALUES ('2566','Half_Asprika','Asprika (Trial Version)
REPLACE INTO `item_db_re` VALUES ('2567','Academy_Manteau','Academy Manteau','5','0','0','600','0','0','3','0','1','16777216','1','2','4','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2568','Muffler_Of_Roki','Loki\'s Muffler','5','20','10','400','0','0','10','0','0','4294967295','63','2','4','0','100',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableGarment,0; bonus bAgi,1; bonus2 bSkillAtk,GC_CROSSIMPACT,5;','','');
REPLACE INTO `item_db_re` VALUES ('2569','Shawl_Of_Affection','Shawl Of Affection','5','20','10','400','0','0','12','0','0','256','56','2','4','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee2,5; bonus5 bAutoSpellWhenHit,AB_RENOVATIO,1,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,AB_RENOVATIO,1,40,BF_MAGIC,0;','','');
-REPLACE INTO `item_db_re` VALUES ('2570','Shawl_Of_Judgement','Shawl Of Judgement','5','20','10','400','0','0','12','0','0','256','56','2','4','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,5; set .@i,(getskilllv(\"AB_ORATIO\")<2)?2:getskilllv(\"AB_ORATIO\"); bonus5 bAutoSpellWhenHit,\"AB_ORATIO\",.@i,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,\"AB_ORATIO\",.@i,40,BF_MAGIC,0;','','');
+REPLACE INTO `item_db_re` VALUES ('2570','Shawl_Of_Judgement','Shawl Of Judgement','5','20','10','400','0','0','12','0','0','256','56','2','4','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,5; .@val = max(getskilllv(AB_ORATIO), 2); bonus5 bAutoSpellWhenHit,AB_ORATIO,.@val,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,AB_ORATIO,.@val,40,BF_MAGIC,0;','','');
REPLACE INTO `item_db_re` VALUES ('2571','Para_Team_Manteau2','Eden Group Manteau II','5','0','0','0','0','0','18','0','0','4294967295','63','2','4','0','60',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,12; bonus2 bSubEle,Ele_Neutral,10;','','');
REPLACE INTO `item_db_re` VALUES ('2572','Katabart_Sholder','Katabart Sholder','5','20','10','3000','0','0','4','0','0','4294967295','63','2','4','0','70',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('2573','Archangel_Wing','Eternal Wings','5','20','10','200','0','0','18','0','1','4294967295','63','2','4','0','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -2346,7 +2346,7 @@ REPLACE INTO `item_db_re` VALUES ('4369','Venatu_Card','Venatu Card','6','20','1
REPLACE INTO `item_db_re` VALUES ('4370','Dimik_Card','Dimik Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,getrefine()-5;','','');
REPLACE INTO `item_db_re` VALUES ('4371','Archdam_Card','Archdam Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,10; bonus bVariableCastrate,20;','','');
REPLACE INTO `item_db_re` VALUES ('4372','Bacsojin_Card','White Lady Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,30; bonus bUseSPrate,15;','','');
-REPLACE INTO `item_db_re` VALUES ('4373','Chung_E_Card','Green Maiden Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,getrefine()-5; bonus bCritical,(getrefine()>10?10:getrefine());','','');
+REPLACE INTO `item_db_re` VALUES ('4373','Chung_E_Card','Green Maiden Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,getrefine()-5; bonus bCritical,min(getrefine(),10);','','');
REPLACE INTO `item_db_re` VALUES ('4374','Apocalips_H_Card','Vesper Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus2 bIgnoreMdefRate,RC_Boss,30;','','');
REPLACE INTO `item_db_re` VALUES ('4375','Orc_Baby_Card_Card','Orc Baby Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getrefine()>=9) { bonus2 bSubEle,Ele_Neutral,15; bonus bFlee,15; } else { bonus2 bSubEle,Ele_Neutral,10; bonus bFlee,10; }','','');
REPLACE INTO `item_db_re` VALUES ('4376','Lady_Tanee_Card','Lady Tanee Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,-40; bonus bMaxSPrate,50; bonus2 bAddMonsterDropItem,513,200; bonus2 bAddItemHealRate,513,100;','','');
@@ -2378,7 +2378,7 @@ REPLACE INTO `item_db_re` VALUES ('4401','Alicel_Card','Alicel Card','6','20','1
REPLACE INTO `item_db_re` VALUES ('4402','Aliot_Card','Aliot Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief) { bonus bStr,2; bonus bMaxHPrate,5; } if(BaseClass==Job_Mage||BaseClass==Job_Archer||BaseClass==Job_Acolyte) { bonus bInt,2; bonus bMaxSPrate,5; }','','');
REPLACE INTO `item_db_re` VALUES ('4403','Kiel_Card','Kiel-D-01 Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDelayrate,-30;','','');
REPLACE INTO `item_db_re` VALUES ('4404','Skogul_Card','Skogul Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAddEffWhenHit,Eff_Bleeding,3000,ATF_TARGET|ATF_SELF;','','');
-REPLACE INTO `item_db_re` VALUES ('4405','Frus_Card','Frus Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMagicDamageReturn,(getrefine()>10?10:getrefine())*2; if(BaseClass==Job_Mage) bonus bMdef,3;','','');
+REPLACE INTO `item_db_re` VALUES ('4405','Frus_Card','Frus Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMagicDamageReturn,min(getrefine(),10)*2; if(BaseClass==Job_Mage) bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('4406','Skeggiold_Card','Skeggiold Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bMagicAddRace,RC_Demon,2;','','');
REPLACE INTO `item_db_re` VALUES ('4407','Randgris_Card','Randgris Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus3 bAutoSpell,SA_DISPELL,1,50;','','');
REPLACE INTO `item_db_re` VALUES ('4408','Gloom_Under_Night_Card','Gloom Under Night Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddEle,Ele_Holy,40; bonus2 bAddEle,Ele_Dark,40; bonus2 bAddRace,RC_Angel,40; bonus2 bAddRace,RC_Demon,40;','','');
@@ -2432,7 +2432,7 @@ REPLACE INTO `item_db_re` VALUES ('4456','Nidhogg_Shadow_Card','Nidhoggur Shadow
REPLACE INTO `item_db_re` VALUES ('4457','Nahtzigger_Card','Naght Seiger Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,MG_NAPALMBEAT,30; bonus2 bSkillAtk,MG_SOULSTRIKE,30; bonus2 bSkillAtk,HW_NAPALMVULCAN,30; bonus2 bSkillAtk,GS_MAGICALBULLET,30; bonus2 bSkillAtk,WL_SOULEXPANSION,30;','','');
REPLACE INTO `item_db_re` VALUES ('4458','Duneirre_Card','Duneyrr Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,10; autobonus \"{ bonus bFlee2,10; }\",10,10000,0,\"{ specialeffect2 EF_ENHANCE; }\";','','');
REPLACE INTO `item_db_re` VALUES ('4459','Lata_Card','Rata Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,10; autobonus \"{ bonus bFixedCastrate,-50; }\",5,4000,BF_MAGIC,\"{ specialeffect2 EF_SUFFRAGIUM; }\";','','');
-REPLACE INTO `item_db_re` VALUES ('4460','Ringco_Card','Rhyncho Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,4; bonus2 bSkillUseSP,\"AL_HEAL\",-15;','','');
+REPLACE INTO `item_db_re` VALUES ('4460','Ringco_Card','Rhyncho Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower,4; bonus2 bSkillUseSP,AL_HEAL,-15;','','');
REPLACE INTO `item_db_re` VALUES ('4461','Pillar_Card','Phylla Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,1; bonus bAgi,1; autobonus \"{ bonus bCritical,20; }\",15,4000,0,\"{ specialeffect2 EF_ENHANCE; }\";','','');
REPLACE INTO `item_db_re` VALUES ('4462','Hardrock_Mommos_Card','Hardrock Mammoth Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDef,5; if(getrefine()>=12) { bonus bDef,20; bonus bMaxHPrate,10; } if(getrefine()>=14) { bonus bMaxHPrate,3; }','','');
REPLACE INTO `item_db_re` VALUES ('4463','Tendrilion_Card','Tendrillion Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCritical,5; if(getrefine()>=12) { bonus bBaseAtk,35; } if(getrefine()>=14) { bonus bCritical,10; }','','');
@@ -2454,10 +2454,10 @@ REPLACE INTO `item_db_re` VALUES ('4478','Light_Up_Card3','Lie Card','6','20','1
REPLACE INTO `item_db_re` VALUES ('4479','Light_Up_Card4','Lie Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('4480','Sealed_Kiel_Card','Sealed Kiel Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDelayrate,((getrefine()>14)?-20:-15);','','');
REPLACE INTO `item_db_re` VALUES ('4481','Sealed_Ktullanux_Card','Sealed Ktullanux Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddEle,Ele_Fire,((getrefine()>14)?35:25); bonus5 bAutoSpellWhenHit,WZ_FROSTNOVA,10,10,BF_WEAPON|BF_MAGIC,0;','','');
-REPLACE INTO `item_db_re` VALUES ('4482','Sealed_B_Ygnizem_Card','Sealed B Ygnizem Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set .@rate,((getrefine()>14)?7:5); bonus bMaxHPrate,.@rate; bonus bMaxSPrate,.@rate; bonus2 bHPRegenRate,50,10000; bonus2 bSPRegenRate,10,10000;','','');
+REPLACE INTO `item_db_re` VALUES ('4482','Sealed_B_Ygnizem_Card','Sealed B Ygnizem Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','.@rate = (getrefine() > 14) ? 7 : 5); bonus bMaxHPrate,.@rate; bonus bMaxSPrate,.@rate; bonus2 bHPRegenRate,50,10000; bonus2 bSPRegenRate,10,10000;','','');
REPLACE INTO `item_db_re` VALUES ('4483','Sealed_Dracula_Card','Sealed Dracula Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSPDrainRate,((getrefine()>14)?70:50),5;','','');
REPLACE INTO `item_db_re` VALUES ('4484','Sealed_Mistress_Card','Sealed Mistress Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bNoGemStone,0; bonus bUseSPrate,((getrefine()>14)?35:50);','','');
-REPLACE INTO `item_db_re` VALUES ('4485','Sealed_Gloom_Card','Sealed Gloom Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set .@rate,((getrefine()>14)?30:20); bonus2 bAddEle,Ele_Holy,.@rate; bonus2 bAddEle,Ele_Dark,.@rate; bonus2 bAddRace,RC_Angel,.@rate; bonus2 bAddRace,RC_Demon,.@rate;','','');
+REPLACE INTO `item_db_re` VALUES ('4485','Sealed_Gloom_Card','Sealed Gloom Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','.@rate = (getrefine() > 14) ? 30 : 20; bonus2 bAddEle,Ele_Holy,.@rate; bonus2 bAddEle,Ele_Dark,.@rate; bonus2 bAddRace,RC_Angel,.@rate; bonus2 bAddRace,RC_Demon,.@rate;','','');
REPLACE INTO `item_db_re` VALUES ('4486','Sealed_Berz_Card','Sealed Berzebub Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVariableCastrate,-15;','','');
REPLACE INTO `item_db_re` VALUES ('4487','Sealed_Ifrit_Card','Sealed Ifrit Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(JobLevel/20); bonus bCritical,(JobLevel/20); bonus bHit,(JobLevel/20); bonus3 bAutoSpellWhenHit,NPC_EARTHQUAKE,5,1;','','');
REPLACE INTO `item_db_re` VALUES ('4488','Sealed_D_Lord_Card','Sealed Dark Lord Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpellWhenHit,WZ_METEOR,5,50;','','');
@@ -2466,7 +2466,7 @@ REPLACE INTO `item_db_re` VALUES ('4490','Sealed_M_Flower_Card','Sealed Moonligh
REPLACE INTO `item_db_re` VALUES ('4491','Sealed_B_Shecil_Card','Sealed Sniper Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bHPrecovRate,-100; bonus2 bHPDrainRate,5,((getrefine()>14)?15:10);','','');
REPLACE INTO `item_db_re` VALUES ('4492','Sealed_Orc_Hero_Card','Sealed Orc Hero Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bVit,3; bonus2 bResEff,Eff_Stun,((getrefine()>14)?6000:4000);','','');
REPLACE INTO `item_db_re` VALUES ('4493','Sealed_Tao_Card','Sealed Tao Gunka Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHPrate,((getrefine()>14)?75:50); bonus bDefRate,-50; bonus bMdefRate,-50;','','');
-REPLACE INTO `item_db_re` VALUES ('4494','Sealed_TurtleG_Card','Sealed Turtle General Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','set .@rate, ((getrefine()>14)?15:10); bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bAddRace,RC_Boss,.@rate; bonus3 bAutoSpell,SM_MAGNUM,10,15;','','');
+REPLACE INTO `item_db_re` VALUES ('4494','Sealed_TurtleG_Card','Sealed Turtle General Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','.@rate = (getrefine() > 14) ? 15 : 10; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bAddRace,RC_Boss,.@rate; bonus3 bAutoSpell,SM_MAGNUM,10,15;','','');
REPLACE INTO `item_db_re` VALUES ('4495','Sealed_Amon_Ra_Card','Sealed Amon Ra Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1; bonus3 bAutoSpellWhenHit,PR_KYRIE,((getrefine()>14)?8:5),(15+35*(readparam(bInt)>=99));','','');
REPLACE INTO `item_db_re` VALUES ('4496','Sealed_Drake_Card','Sealed Drake Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('4497','Sealed_Knight_WS_Card','Sealed Stormy Knight Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,WZ_STORMGUST,1,10; bonus2 bAddEff,Eff_Freeze, ((getrefine()>14)?1500:1000);','','');
@@ -2511,8 +2511,8 @@ REPLACE INTO `item_db_re` VALUES ('4535','Sealed_Rand_Card','Sealed Rand Card','
REPLACE INTO `item_db_re` VALUES ('4536','Sealed_Atroce_Card','Sealed Atroce Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,((getrefine()>14)?25:15); autobonus \"{ bonus bAspdRate,((getrefine()>14)?75:50); }\",5,10000,0,\"{ specialeffect2 EF_POTION_BERSERK; }\";','','');
REPLACE INTO `item_db_re` VALUES ('4537','Sealed_Phreeoni_Card','Sealed Phreeoni Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bHit,((getrefine()>14)?75:50);','','');
REPLACE INTO `item_db_re` VALUES ('4538','Sealed_Bacsojin_Card','Sealed White Lady Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','if (getrefine()>14) { bonus bHealPower,25; bonus bUseSPrate,20; } else { bonus bHealPower,15; bonus bUseSPrate,30; }','','');
-REPLACE INTO `item_db_re` VALUES ('4539','Sealed_F_Bishop_Card','Sealed Fallen Bishop Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,((getrefine()>14)?8:5); bonus bMaxSPrate,-50; set .@rate,((getrefine()>14)?33:25); bonus2 bMagicAddRace,RC_Angel,.@rate; bonus2 bMagicAddRace,RC_DemiHuman,.@rate;','','');
-REPLACE INTO `item_db_re` VALUES ('4540','SLD_Lord_Of_Death_Card','Sealed Lord Of The Death Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','set .@rate, ((getrefine()>14)?350:250); bonus3 bAddEff,Eff_Stun,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Curse,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Silence,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Poison,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Bleeding,.@rate,ATF_SHORT; bonus2 bWeaponComaRace,RC_NonBoss,1;','','');
+REPLACE INTO `item_db_re` VALUES ('4539','Sealed_F_Bishop_Card','Sealed Fallen Bishop Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','64','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,((getrefine()>14)?8:5); bonus bMaxSPrate,-50; .@rate = (getrefine() > 14) ? 33 : 25; bonus2 bMagicAddRace,RC_Angel,.@rate; bonus2 bMagicAddRace,RC_DemiHuman,.@rate;','','');
+REPLACE INTO `item_db_re` VALUES ('4540','SLD_Lord_Of_Death_Card','Sealed Lord Of The Death Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','2','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','.@rate = (getrefine() > 14) ? 350 : 250; bonus3 bAddEff,Eff_Stun,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Curse,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Silence,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Poison,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Bleeding,.@rate,ATF_SHORT; bonus2 bWeaponComaRace,RC_NonBoss,1;','','');
REPLACE INTO `item_db_re` VALUES ('4541','SLD_B_Katrinn_Card','Sealed High Wizard Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','769','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus bIgnoreMdefRace,RC_NonBoss; if (getrefine()>14) { bonus bVariableCastrate,120; bonus bSPrecovRate,-120; } else { bonus bVariableCastrate,150; bonus bSPrecovRate,-150; }','','heal 0,((getrefine()>14)?-2000:-3000);');
REPLACE INTO `item_db_re` VALUES ('4542','SLD_Detale_Card','SLD Detale Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('4543','SLD_Garm_Card','Sealed Garm Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','457',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddEffWhenHit,Eff_Freeze,((getrefine()>14)?4000:2500);','','');
@@ -2532,9 +2532,9 @@ REPLACE INTO `item_db_re` VALUES ('4586','Tikbalang_Card','Tikbalang Card','6','
REPLACE INTO `item_db_re` VALUES ('4587','Tiyanak_Card','Tiyanak Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','136','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bCriticalAddRace,RC_DemiHuman,12; bonus2 bCriticalAddRace,RC_Fish,12; bonus2 bCriticalAddRace,RC_Brute,12;','','');
REPLACE INTO `item_db_re` VALUES ('4588','Wakwak_Card','Wakwak Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,5*(readparam(bStr)/10);','','');
REPLACE INTO `item_db_re` VALUES ('4589','Jejeling_Card','Jejeling Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','4','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMaxHP,200*(readparam(bVit)/10);','','');
-REPLACE INTO `item_db_re` VALUES ('4590','Bangungot_Card','Bangungot Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus5 bAutoSpellWhenHit,\"NPC_WIDESLEEP\",3,2500,BF_MAGIC,0;','','');
+REPLACE INTO `item_db_re` VALUES ('4590','Bangungot_Card','Bangungot Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,4; bonus5 bAutoSpellWhenHit,NPC_WIDESLEEP,3,2500,BF_MAGIC,0;','','');
REPLACE INTO `item_db_re` VALUES ('4591','Bakonawa_Card','Bakonawa Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,4; bonus2 bAddEffWhenHit,Eff_Bleeding,2000;','','');
-REPLACE INTO `item_db_re` VALUES ('4592','Buwaya_Card','Buwaya Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,4; bonus5 bAutoSpellWhenHit,\"NPC_WIDESTONE\",3,2500,BF_MAGIC,0;','','');
+REPLACE INTO `item_db_re` VALUES ('4592','Buwaya_Card','Buwaya Card','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVit,4; bonus5 bAutoSpellWhenHit,NPC_WIDESTONE,3,2500,BF_MAGIC,0;','','');
REPLACE INTO `item_db_re` VALUES ('4700','Strength1','STR+1','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1;','','');
REPLACE INTO `item_db_re` VALUES ('4701','Strength2','STR+2','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2;','','');
REPLACE INTO `item_db_re` VALUES ('4702','Strength3','STR+3','6','20','10','10','0','0','0','0','0','4294967295','63','2','16','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3;','','');
@@ -3081,7 +3081,7 @@ REPLACE INTO `item_db_re` VALUES ('5376','Satanic_Chain_P','Flying Evil Wings','
REPLACE INTO `item_db_re` VALUES ('5377','Antique_Pipe','Gentleman\'s Pipe','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','383','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bSubRace,RC_DemiHuman,2;','','');
REPLACE INTO `item_db_re` VALUES ('5378','Rabbit_Ear_Hat','Bunny Top Hat','5','20','10','300','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','384','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,3; bonus3 bAutoSpellWhenHit,AL_INCAGI,5,10;','','');
REPLACE INTO `item_db_re` VALUES ('5379','Balloon_Hat','Tam','5','0','0','800','0','0','5','0','1','4294967295','63','2','256','0','50',NULL,'1','385','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatkRate,(getrefine()*1);','','');
-REPLACE INTO `item_db_re` VALUES ('5380','Fish_Head_Hat','Fish Head Hat','5','20','10','400','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','386','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,\"SA_FROSTWEAPON\",1,5;','','');
+REPLACE INTO `item_db_re` VALUES ('5380','Fish_Head_Hat','Fish Head Hat','5','20','10','400','0','0','2','0','0','4294967295','63','2','256','0','0',NULL,'1','386','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,SA_FROSTWEAPON,1,5;','','');
REPLACE INTO `item_db_re` VALUES ('5381','Santa_Poring_Hat','Santa Poring Hat','5','20','10','100','0','0','4','0','1','4294967295','63','2','256','0','0',NULL,'0','387','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,2; bonus2 bAddEle,Ele_Dark,3; bonus2 bSubEle,Ele_Dark,3;','','');
REPLACE INTO `item_db_re` VALUES ('5382','Bell_Ribbon','Bell Ribbon','5','20','10','200','0','0','5','0','1','4294967295','63','2','256','0','0',NULL,'1','388','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bVit,1; skill AL_ANGELUS,1;','','sc_end SC_ANGELUS;');
REPLACE INTO `item_db_re` VALUES ('5383','Hunting_Cap','Hunting Cap','5','20','10','250','0','0','6','0','1','2147483646','63','2','256','0','50',NULL,'1','389','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,1; bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_DemiHuman,5;','','');
@@ -3300,7 +3300,7 @@ REPLACE INTO `item_db_re` VALUES ('5595','Eye_Of_Juno','Eye Of Juno','5','20','1
REPLACE INTO `item_db_re` VALUES ('5596','4Leaf_Clover_In_Mouth','Four Leaf Clover','5','20','10','0','0','0','2','0','0','4294967295','63','2','1','0','0',NULL,'0','571','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bMdef,2; bonus2 bAddMonsterDropItem,12245,10;','','');
REPLACE INTO `item_db_re` VALUES ('5597','Bubble_Gum_In_Mouth','Chewing Gum','5','20','10','0','0','0','2','0','0','4294967295','63','2','1','0','0',NULL,'0','572','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bMdef,2;','','');
REPLACE INTO `item_db_re` VALUES ('5598','Virgo_Crown','Virgo Crown','5','20','10','300','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','573','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bAspdRate,1; if(getrefine()>6) { bonus2 bSubEle,Ele_Earth,5; autobonus \"{ bonus bDex,20; }\",10,6000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\"; }','','');
-REPLACE INTO `item_db_re` VALUES ('5599','Virgo_Diadem','Virgo Diadem','5','20','10','300','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','574','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,\"MO_BALKYOUNG\",1,50;','','');
+REPLACE INTO `item_db_re` VALUES ('5599','Virgo_Diadem','Virgo Diadem','5','20','10','300','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','574','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,MO_BALKYOUNG,1,50;','','');
REPLACE INTO `item_db_re` VALUES ('5600','Br_Twin_Ribbon','Brazil Twin Ribbon','5','20','10','100','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','575','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,3; bonus bMdef,1;','','');
REPLACE INTO `item_db_re` VALUES ('5601','Br_Beret','Banana Beret','5','20','10','100','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','576','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,3; bonus bMdef,1;','','');
REPLACE INTO `item_db_re` VALUES ('5602','Jaguar_Hat_J','Jaguar Face','5','20','10','300','0','0','0','0','1','4294967295','63','2','513','0','50',NULL,'0','530','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
@@ -3362,7 +3362,7 @@ REPLACE INTO `item_db_re` VALUES ('5657','Antique_Pipe_J','Captain\'s Pipe','5',
REPLACE INTO `item_db_re` VALUES ('5658','Imp_Hat','Imp Hat','5','20','10','400','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','589','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,SA_FLAMELAUNCHER,1,5;','','');
REPLACE INTO `item_db_re` VALUES ('5659','Sleepr_Hat','Sleeper Hat','5','20','10','400','0','0','1','0','0','4294967295','63','2','256','0','0',NULL,'1','590','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,SA_SEISMICWEAPON,1,5;','','');
REPLACE INTO `item_db_re` VALUES ('5660','Gryphon_Hat','Gryphon Hat','5','20','10','400','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','591','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus3 bAutoSpell,SA_LIGHTNINGLOADER,1,5;','','');
-REPLACE INTO `item_db_re` VALUES ('5661','Red_Pirate_Bandana','Red Pirate Bandana','5','0','0','0','0','0','3','0','0','4294967295','63','2','256','0','10',NULL,'1','592','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bAspdRate,2; bonus bVariableCastrate,-2; bonus3 bAutoSpell,MO_EXTREMITYFIST,1,3;','','');
+REPLACE INTO `item_db_re` VALUES ('5661','Red_Pirate_Bandana','Red Pirate Bandana','5','0','0','0','0','0','3','0','0','4294967295','63','2','256','0','10',NULL,'1','592','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bDex,1; bonus bAspdRate,2; bonus bVariableCastrate,-2;','','');
REPLACE INTO `item_db_re` VALUES ('5662','Libra_Crown','Libra Crown','5','10','5','300','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','593','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3;','','');
REPLACE INTO `item_db_re` VALUES ('5663','Libra_Diadem','Libra Diadem','5','10','5','300','0','0','3','0','0','4294967295','63','2','256','0','0',NULL,'1','594','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,3;','','');
REPLACE INTO `item_db_re` VALUES ('5664','Filir_Wing','Filir\'s Pinions','5','20','10','100','0','0','1','0','0','4294967295','63','2','512','0','70',NULL,'0','595','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,2; bonus bVariableCastrate,-2;','','');
@@ -3479,7 +3479,7 @@ REPLACE INTO `item_db_re` VALUES ('5774','Red_Pirate_Hat','Scallywag\'s Hat','5'
REPLACE INTO `item_db_re` VALUES ('5775','Choco_Donut_In_Mouth','Chocolate Donut','5','20','10','50','0','0','1','0','0','4294967295','63','2','1','0','0',NULL,'0','653','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bMaxHP,50;','','');
REPLACE INTO `item_db_re` VALUES ('5776','Blazing_Sun','Blazin Sun','5','0','0','500','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','654','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bVariableCastrate,MG_FIREBOLT,-5; bonus2 bSkillAtk,MG_FIREBOLT,5; bonus2 bVariableCastrate,MG_FIREBALL,-5; bonus2 bSkillAtk,MG_FIREBALL,5; bonus2 bSkillAtk,MG_FIREWALL,3; bonus2 bSkillAtk,WZ_METEOR,3; bonus bUseSPrate,5;','','');
REPLACE INTO `item_db_re` VALUES ('5777','Remover_Hat','Remover Hat','5','20','10','800','0','0','2','0','0','4294967295','63','2','256','0','30',NULL,'0','655','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,1;','','');
-REPLACE INTO `item_db_re` VALUES ('5778','Blue_Arara_Hat','Turkey On Your Head','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','656','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus2 bAddMonsterDropItem,574,500; bonus2 bAddItemHealRate,574,5; set .@rate,(getrefine()>10)?10:getrefine(); bonus bMaxHPrate,.@rate; bonus bMaxSPrate,.@rate; bonus3 bAutoSpellWhenHit,\"AL_INCAGI\",.@rate,10; bonus3 bAutoSpell,\"AL_INCAGI\",.@rate,10;','','');
+REPLACE INTO `item_db_re` VALUES ('5778','Blue_Arara_Hat','Turkey On Your Head','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','656','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus2 bAddMonsterDropItem,574,500; bonus2 bAddItemHealRate,574,5; .@rate = min(getrefine(),10); bonus bMaxHPrate,.@rate; bonus bMaxSPrate,.@rate; bonus3 bAutoSpellWhenHit,AL_INCAGI,.@rate,10; bonus3 bAutoSpell,AL_INCAGI,.@rate,10;','','');
REPLACE INTO `item_db_re` VALUES ('5779','Drooping_Boto','Drooping Boto','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','0',NULL,'1','657','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('5780','Tendrilion_Hat','Tendrilion Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','658','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('5781','Persika','Persica','5','20','10','100','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'0','659','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus bFlee,1; bonus bMaxSP,20;','','');
@@ -3977,7 +3977,7 @@ REPLACE INTO `item_db_re` VALUES ('6418','Agrade_Coin','AClass Coin','3','20','1
REPLACE INTO `item_db_re` VALUES ('6419','Bgrade_Coin','BClass Coin','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6420','Cgrade_Coin','CClass Coin','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6421','Dgrade_Coin','DClass Coin','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('6422','Egrade_Coin','DClass Coin','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('6422','Egrade_Coin','EClass Coin','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6423','Anger_Seagod','Seagod Anger','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6424','Halloween_Fragment','Spirit Piece','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6425','Halloween_Certificate','Halloween Certificate','3','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -4140,6 +4140,9 @@ REPLACE INTO `item_db_re` VALUES ('6658','Halloween_Coin','Halloween Coin','3','
REPLACE INTO `item_db_re` VALUES ('6665','RWC_Inicializer','RWC Enchant Reset Ticket','3','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6682','Bag_Of_Selling_Goods','Bag Of Selling Goods','3','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('6712','Lovely_Stick','Love Wand','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('6913','Sacred_Rosary','Sacred Rosary','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('6914','Black_Soul','Black Soul','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('6915','Captured_Soul','Captured Soul','3','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('7001','Mould_Powder','Mould Powder','3','466','233','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('7002','Ogre_Tooth','Ogre Tooth','3','658','329','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('7003','Anolian_Skin','Anolian Skin','3','968','484','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5293,11 +5296,15 @@ REPLACE INTO `item_db_re` VALUES ('11546','Pope_Choco','Handmade Chocolate','0',
REPLACE INTO `item_db_re` VALUES ('11547','Woe_Violet_Potion','WoE Violet Potion','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(500,700),rand(60,85);','','');
REPLACE INTO `item_db_re` VALUES ('11548','Woe_White_Potion','WoE White Potion','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 10,0;','','');
REPLACE INTO `item_db_re` VALUES ('11549','Woe_Blue_Potion','WoE Blue Potion','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,10;','','');
-REPLACE INTO `item_db_re` VALUES ('11550','Pumpkin_Cake','Pumpkin Cake','0','10','5','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('11550','Pumpkin_Cake','Pumpkin Cake','0','10','5','40','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 5,5;','','');
REPLACE INTO `item_db_re` VALUES ('11551','Savory_Herb_Salad','Aromatic Herb Seasoned','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,30),0;','','');
REPLACE INTO `item_db_re` VALUES ('11552','Apple_Carrot_Salad','Apple Carrot Salad','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,30),0;','','');
REPLACE INTO `item_db_re` VALUES ('11553','Casual_Stew','Anything Casserole','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,30),0;','','');
REPLACE INTO `item_db_re` VALUES ('11554','Golden_Roasted_Apple','92 Golden Apple','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(20,30),0;','','');
+REPLACE INTO `item_db_re` VALUES ('11592','Trance_Candy_R','Red Transform Candy','0','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; montransform \"Bloody Murderer\",600000,SC_MTF_MHP,1000;','','');
+REPLACE INTO `item_db_re` VALUES ('11593','Trance_Candy_B','Blue Transform Candy','0','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; montransform \"Bathory\",600000,SC_MTF_MSP,100;','','');
+REPLACE INTO `item_db_re` VALUES ('11594','Trance_Candy_Y','Yellow Transform Candy','0','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; montransform \"Jakk\",600000,SC_MTF_PUMPKIN,2000;','','');
+REPLACE INTO `item_db_re` VALUES ('11595','Trance_Candy_G','Green Transform Candy','0','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(45,65),0; montransform \"Quve\",600000,SC_MTF_HITFLEE,10,20;','','');
REPLACE INTO `item_db_re` VALUES ('11701','Girl_Bunch_Of_Flower','Girl\'s Bouquet','0','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal rand(105,145),0;','','');
REPLACE INTO `item_db_re` VALUES ('11702','Moon_Cookie','Moon Cookie','0','0','0','300','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('11703','Mysterious_Blood','Mystery Blood','0','0','0','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemheal 0,rand(25,35);','','');
@@ -5338,14 +5345,14 @@ REPLACE INTO `item_db_re` VALUES ('12023','Giftbox_China','Wrapped Box','2','100
REPLACE INTO `item_db_re` VALUES ('12024','Red_Pouch_Of_Surprise','Red Pouch','2','50','25','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','monster \"this\",-1,-1,\"--ja--\",-4,1,\"\";','','');
REPLACE INTO `item_db_re` VALUES ('12025','Egg_Boy','Dano Festival Egg','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12025,1;','','');
REPLACE INTO `item_db_re` VALUES ('12026','Egg_Girl','Dano Festival Egg','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12026,1;','','');
-REPLACE INTO `item_db_re` VALUES ('12027','Giggling_Box','Giggling Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 9,0; if(rand(1000)<300) sc_start SC_CURSE,30000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12027','Giggling_Box','Giggling Box','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 9,0; sc_start SC_CURSE,30000,0,3000,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('12028','Box_Of_Thunder','Box of Thunder','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_MOVHASTE_HORSE,20000,0;','','');
REPLACE INTO `item_db_re` VALUES ('12029','Gloomy_Box','Box of Gloom','11','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill AC_CONCENTRATION,1;','','');
REPLACE INTO `item_db_re` VALUES ('12030','Box_Of_Grudge','Box of Resentment','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,60000,20;','','');
REPLACE INTO `item_db_re` VALUES ('12031','Sleepy_Box','Box of Drowsiness','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,60000,20;','','');
REPLACE INTO `item_db_re` VALUES ('12032','Box_Of_Storm','Box of Storms','11','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill ITEM_ENCHANTARMS,2;','','');
REPLACE INTO `item_db_re` VALUES ('12033','Box_Of_Sunlight','Box of Sunlight','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','sc_start SC_CLAIRVOYANCE,30000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12034','Painting_Box','Box of Panting','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,9; if(rand(1000)<300) sc_start SC_SILENCE,30000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12034','Painting_Box','Box of Panting','2','1000','500','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,9; sc_start SC_SILENCE,30000,0,3000,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('12035','Lotto_Box01','Lotto Box 01','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12035,1;','','');
REPLACE INTO `item_db_re` VALUES ('12036','Lotto_Box02','Lotto Box 02','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12036,1;','','');
REPLACE INTO `item_db_re` VALUES ('12037','Lotto_Box03','Lotto Box 03','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12037,1;','','');
@@ -5444,9 +5451,9 @@ REPLACE INTO `item_db_re` VALUES ('12129','Fantastic_Cooking_Kits','Fantastic Co
REPLACE INTO `item_db_re` VALUES ('12130','Cookie_Bag','Cookie Bag','2','2','1','70','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12130,1; getrandgroupitem 12130,1; getrandgroupitem 12130,1;','','');
REPLACE INTO `item_db_re` VALUES ('12131','Lucky_Potion','Lucky Potion','0','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12132','Red_Bag','Santa\'s Bag','2','0','0','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_XMAS,600000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { set MDiceCone,gettime(5); percentheal 50,50; }','','');
-REPLACE INTO `item_db_re` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set Zeny,Zeny+rand(1000,10000);','','');
-REPLACE INTO `item_db_re` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; if(rand(100)>=90)sc_start SC_CONFUSION,10000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12133','Ice_Cream_','McDonald\'s Ice Cone','0','0','0','80','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(gettime(5)!=MDiceCone) { MDiceCone = gettime(5); percentheal 50,50; }','','');
+REPLACE INTO `item_db_re` VALUES ('12134','Red_Envelope','Red Envelope','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','Zeny += rand(1000,10000);','','');
+REPLACE INTO `item_db_re` VALUES ('12135','Green_Ale','Green Ale','2','20','10','30','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 50,50; sc_start SC_CONFUSION,10000,0,1000,SCFLAG_NONE;','','');
REPLACE INTO `item_db_re` VALUES ('12136','Women\'s_Bundle','Women\'s Bundle','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem callfunc(\"F_RandMes\",4,558,529,2668,7518),1;','','');
REPLACE INTO `item_db_re` VALUES ('12137','1st_Stage_Prize','First Stage Prize','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12138','2nd_Stage_Prize','Second Stage Prize','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -5531,7 +5538,7 @@ REPLACE INTO `item_db_re` VALUES ('12216','Inc_Agi_10_Scroll','LV10 Agil Scroll'
REPLACE INTO `item_db_re` VALUES ('12217','Aspersio_5_Scroll','LV5 Aspersio Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','if(countitem(523)>0) { skilleffect PR_ASPERSIO,0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; }','','');
REPLACE INTO `item_db_re` VALUES ('12218','Assumptio_5_Scroll','LV5 Assumptio Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','sc_start SC_ASSUMPTIO,100000,5; skilleffect HP_ASSUMPTIO,0;','','');
REPLACE INTO `item_db_re` VALUES ('12219','Wind_Walk_10_Scroll','LV10 Wind Walker Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','skilleffect SN_WINDWALK,0; sc_start SC_WINDWALK,250000,5;','','');
-REPLACE INTO `item_db_re` VALUES ('12220','Adrenaline_Scroll','LV5 Adrenaline Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect BS_ADRENALINE,0; sc_start SC_ADRENALINE,150000,5; }','','');
+REPLACE INTO `item_db_re` VALUES ('12220','Adrenaline_Scroll','LV5 Adrenaline Scroll','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'1',NULL,'0',NULL,'0','.@type = getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect BS_ADRENALINE,0; sc_start SC_ADRENALINE,150000,5; }','','');
REPLACE INTO `item_db_re` VALUES ('12221','Megaphone_','Megaphone','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','input @megaphone$; announce strcharinfo(0) + \": \" + @megaphone$,bc_all,0xFF0000; end;','','');
REPLACE INTO `item_db_re` VALUES ('12225','Sweet_Candy_Striper','Sweet Candy Cane','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','pet 1245;','','');
REPLACE INTO `item_db_re` VALUES ('12226','Examination1','Examination1','0','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MOVHASTE_HORSE,5400000,0; percentheal 100,100; sc_start SC_FOOD_STR,5400000,10; sc_start SC_FOOD_DEX,5400000,5; sc_start SC_PLUSATTACKPOWER,5400000,22; sc_start SC_MATKFOOD,5400000,15;','','');
@@ -5546,8 +5553,8 @@ REPLACE INTO `item_db_re` VALUES ('12234','Cacao99','Fierce Cacao 99%','0','20',
REPLACE INTO `item_db_re` VALUES ('12235','Strawberry_Choco','Chocolate Strawberry','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,5; skilleffect AL_BLESSING,0; sc_start SC_BLESSING,240000,10;','','');
REPLACE INTO `item_db_re` VALUES ('12236','Choco_Tart','Chocolate Tart','11','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 5,0; itemskill AL_ANGELUS,5;','','');
REPLACE INTO `item_db_re` VALUES ('12237','Choco_Lump','Junky Chocolate','2','0','0','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','percentheal 0,5; sc_start SC_POISON,18000,0; sc_start SC_BLOODING,18000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12238','New_Year_Rice_Cake_1','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12239','New_Year_Rice_Cake_2','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(1000)<100) sc_start SC_DPOISON,10000,0; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12238','New_Year_Rice_Cake_1','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12239','New_Year_Rice_Cake_2','New Year Rice Cake','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DPOISON,10000,0,1000,SCFLAG_NONE; sc_start SC_POISON,50000,0;','','');
REPLACE INTO `item_db_re` VALUES ('12240','Old_Yellow_Box','Old Yellow Box','2','20','10','200','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12240,1;','','');
REPLACE INTO `item_db_re` VALUES ('12241','M_Center_Potion','Mercenary Concentration Potion','2','800','400','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_sc_start SC_ATTHASTE_POTION1,1800000,0;','','');
REPLACE INTO `item_db_re` VALUES ('12242','M_Awakening_Potion','Mercenary Awakening Potion','2','1500','750','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_sc_start SC_ATTHASTE_POTION2,1800000,0;','','');
@@ -5700,9 +5707,9 @@ REPLACE INTO `item_db_re` VALUES ('12388','Runstone_Crush','Rhydo Runestone For
REPLACE INTO `item_db_re` VALUES ('12389','Runstone_Storm','Pertz Runestone For Apprentice','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','if(strcharinfo(3)==\"job3_rune02\") { itemskill RK_STORMBLAST,1; }','','');
REPLACE INTO `item_db_re` VALUES ('12390','Runstone_Millennium','Verkana Runestone For Apprentice','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'1',NULL,'0',NULL,'0','if(strcharinfo(3)==\"job3_rune02\") { itemskill RK_MILLENNIUMSHIELD,1; }','','');
REPLACE INTO `item_db_re` VALUES ('12391','Lucky_Egg_C','RWC Groove Pack','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db_re` VALUES ('12392','RepairA','Repair A','0','275','137','100','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmadogear()) itemheal rand(200,300),0;','','');
-REPLACE INTO `item_db_re` VALUES ('12393','RepairB','Repair B','0','625','312','140','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmadogear()) itemheal rand(300,400),0;','','');
-REPLACE INTO `item_db_re` VALUES ('12394','RepairC','Repair C','0','1375','687','180','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmadogear()) itemheal rand(400,500),0;','','');
+REPLACE INTO `item_db_re` VALUES ('12392','RepairA','Repair A','0','275','137','100','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmount() == MOUNT_MADO) itemheal rand(200,300),0;','','');
+REPLACE INTO `item_db_re` VALUES ('12393','RepairB','Repair B','0','625','312','140','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmount() == MOUNT_MADO) itemheal rand(300,400),0;','','');
+REPLACE INTO `item_db_re` VALUES ('12394','RepairC','Repair C','0','1375','687','180','0','0','0','0','0','1024','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(checkmount() == MOUNT_MADO) itemheal rand(400,500),0;','','');
REPLACE INTO `item_db_re` VALUES ('12395','Tantanmen','Tantan Noodle','2','20','10','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','pet 1519;','','');
REPLACE INTO `item_db_re` VALUES ('12396','Fools_Day_Box','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill AL_TELEPORT,1; else if(rand(1,10)==2) itemskill AL_TELEPORT,3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill ALL_REVERSEORCISH,1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;','','');
REPLACE INTO `item_db_re` VALUES ('12397','Fools_Day_Box2','Gift Box?','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'1',NULL,'0',NULL,'0','if(rand(1,10)==1) itemskill TF_DETOXIFY,1; else if(rand(1,10)==2) itemskill TF_PICKSTONE,1; else if(rand(1,10)==3) itemskill BA_FROSTJOKER,1; else if(rand(1,10)==4) itemskill DC_SCREAM,1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill AL_RUWACH,1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;','','');
@@ -5911,6 +5918,7 @@ REPLACE INTO `item_db_re` VALUES ('12605','Special_Box4','Special Box IV','11','
REPLACE INTO `item_db_re` VALUES ('12606','Special_Box5','Special Box V','11','100','50','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12607','Lolli_Pop_Box','Delicious Lollipop Box','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12608','Splendid_Box2','Splendid Box2','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
+REPLACE INTO `item_db_re` VALUES ('12609','Old_Ore_Box','Old Ore Box','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('12612','Old_Coin_Pocket','Shabby Coin Bag','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('12613','High_Coin_Pocket','Premium Coin Bag','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('12614','Mid_Coin_Pocket','Normal Coin Bag','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -5921,7 +5929,7 @@ REPLACE INTO `item_db_re` VALUES ('12618','Bgrade_Pocket','Bgrade Pocket','2','2
REPLACE INTO `item_db_re` VALUES ('12619','Cgrade_Pocket','Cgrade Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('12620','Dgrade_Pocket','Dgrade Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('12621','Egrade_Pocket','Egrade Pocket','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
-REPLACE INTO `item_db_re` VALUES ('12622','Boarding_Halter','Halter Lead','11','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','3000','0',NULL,'0',NULL,'0',NULL,'0','setmounting();','','');
+REPLACE INTO `item_db_re` VALUES ('12622','Boarding_Halter','Halter Lead','11','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','3000','0',NULL,'0',NULL,'0',NULL,'0','setcashmount();','','');
REPLACE INTO `item_db_re` VALUES ('12623','High_Weapon_Box','High Weapon Box','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12623,1;','','');
REPLACE INTO `item_db_re` VALUES ('12624','Delicious_Jelly','Delicious Jelly','0','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','16',NULL,'0',NULL,'0',NULL,'0','percentheal 3,3;','','');
REPLACE INTO `item_db_re` VALUES ('12625','Sapa_Feat_Cert_Pack','Proof Of Sapha\'s Honor Package','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6013,14 +6021,14 @@ REPLACE INTO `item_db_re` VALUES ('12713','Monster_Extract','Monster Extract','2
REPLACE INTO `item_db_re` VALUES ('12714','Easter_Scroll','Easter Scroll','2','1','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 12714,1;','','');
REPLACE INTO `item_db_re` VALUES ('12715','Black_Treasure_Box','Black Treasure Chest','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12716','Indian_Rice_Cake','Indian Rice Cake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('12717','Poison_Paralysis','Paralysis','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_PARALYSE,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12718','Poison_Leech','Leech End','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_LEECHESEND,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12719','Poison_Oblivion','Oblivion Curse','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_OBLIVIONCURSE,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12720','Poison_Contamination','Death Hurt','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_DEATHHURT,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12721','Poison_Numb','Toxin','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_TOXIN,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12722','Poison_Fever','Pyrexia','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_PYREXIA,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12723','Poison_Laughing','Magic Mushroom','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_MAGICMUSHROOM,300000,0;','','');
-REPLACE INTO `item_db_re` VALUES ('12724','Poison_Fatigue','Venom Bleed','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','if(rand(10000)<10) sc_start SC_VENOMBLEED,15000,0;','','');
+REPLACE INTO `item_db_re` VALUES ('12717','Poison_Paralysis','Paralysis','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PARALYSE,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12718','Poison_Leech','Leech End','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_LEECHESEND,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12719','Poison_Oblivion','Oblivion Curse','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_OBLIVIONCURSE,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12720','Poison_Contamination','Death Hurt','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_DEATHHURT,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12721','Poison_Numb','Toxin','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_TOXIN,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12722','Poison_Fever','Pyrexia','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PYREXIA,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12723','Poison_Laughing','Magic Mushroom','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_MAGICMUSHROOM,300000,0,10,SCFLAG_FIXEDTICK;','','');
+REPLACE INTO `item_db_re` VALUES ('12724','Poison_Fatigue','Venom Bleed','0','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_VENOMBLEED,15000,0,10,SCFLAG_FIXEDTICK;','','');
REPLACE INTO `item_db_re` VALUES ('12725','Runstone_Nosiege','Nosiege Runestone','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','120000','475',NULL,'1',NULL,'20','1','0','itemskill RK_REFRESH,1;','','');
REPLACE INTO `item_db_re` VALUES ('12726','Runstone_Rhydo','Rhydo Runestone','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','30000','475',NULL,'1',NULL,'20','1','0','itemskill RK_CRUSHSTRIKE,1;','','');
REPLACE INTO `item_db_re` VALUES ('12727','Runstone_Verkana','Verkana Runestone','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','60000','475',NULL,'1',NULL,'20','1','0','itemskill RK_MILLENNIUMSHIELD,1;','','');
@@ -6046,10 +6054,10 @@ REPLACE INTO `item_db_re` VALUES ('12746','Destruction_Scroll','Destruction Scro
REPLACE INTO `item_db_re` VALUES ('12747','Royal_Scroll','Royal Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bSubRace,RC_Boss,5;}\",10000,1800000;','','');
REPLACE INTO `item_db_re` VALUES ('12748','Immune_Scroll','Immune Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','autobonus \"{bonus2 bAddEle,Ele_Neutral,-5;}\",10000,1800000;','','');
REPLACE INTO `item_db_re` VALUES ('12749','Mystic_Scroll','Mystic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,5;','','');
-REPLACE INTO `item_db_re` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,180000,5; sc_start SC_PLUSATTACKPOWER,180000,5;','','');
-REPLACE INTO `item_db_re` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_DEF,180000,5; sc_start SC_FOOD_BASICAVOIDANCE,180000,10;','','');
-REPLACE INTO `item_db_re` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_MDEF,180000,5; sc_start SC_INCFLEE2,180000,10;','','');
-REPLACE INTO `item_db_re` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,180000,5; sc_start SC_INCMSPRATE,180000,5;','','');
+REPLACE INTO `item_db_re` VALUES ('12750','Battle_Scroll','Battle Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_ATTHASTE_POTION3,1800000,5; sc_start SC_PLUSATTACKPOWER,1800000,5;','','');
+REPLACE INTO `item_db_re` VALUES ('12751','Armor_Scroll','Armor Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_DEF,1800000,5; sc_start SC_FOOD_BASICAVOIDANCE,1800000,10;','','');
+REPLACE INTO `item_db_re` VALUES ('12752','Prayer_Scroll','Prayer Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PROTECT_MDEF,1800000,5; sc_start SC_INCFLEE2,1800000,10;','','');
+REPLACE INTO `item_db_re` VALUES ('12753','Soul_Scroll','Soul Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_INCMHPRATE,1800000,5; sc_start SC_INCMSPRATE,1800000,5;','','');
REPLACE INTO `item_db_re` VALUES ('12754','New_Year_Bun','New Year Bun','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12755','Traditional_Firecrack','Traditional Firecrack','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12756','New_Gift_Envelope','New Gift Envelope','2','2','1','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -6082,11 +6090,11 @@ REPLACE INTO `item_db_re` VALUES ('12782','100T_Zeny_Check','100T Zeny Check','1
REPLACE INTO `item_db_re` VALUES ('12783','10000_Zeny_Check','10000 Zeny Check','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12784','1000_Zeny_Check','1000 Zeny Check','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12785','Dragon_Egg_Scroll','Dragon Egg','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('12786','Change_Slot_Card','Character Position Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set SlotChange, SlotChange + 1;','','');
+REPLACE INTO `item_db_re` VALUES ('12786','Change_Slot_Card','Character Position Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','SlotChange += 1;','','');
REPLACE INTO `item_db_re` VALUES ('12787','Diabolic_Scroll','Diabolic Scroll','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','mercenary_create 2342,1800000;','','');
REPLACE INTO `item_db_re` VALUES ('12788','No100_Firecracker','No100 Firecracker','11','2','1','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12789','Juicy_Fruit','Juicy Fruit','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('12790','Change_Name_Card','Name Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set CharRename, CharRename + 1;','','');
+REPLACE INTO `item_db_re` VALUES ('12790','Change_Name_Card','Name Change Coupon','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','CharRename += 1;','','');
REPLACE INTO `item_db_re` VALUES ('12791','Combat_Pill','Magic Battle Serum','2','20','10','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12792','P_Combat_Pill','Advanced Magic Battle Serum','11','20','10','150','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12793','Combat_Pill_Box10','Magic Battle Serum Box','11','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6100,6 +6108,7 @@ REPLACE INTO `item_db_re` VALUES ('12813','Peony_Mommy','Peony Mamy','11','0','0
REPLACE INTO `item_db_re` VALUES ('12814','Slapping_Herb','Sadagui','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_SADAGUI,1;','','');
REPLACE INTO `item_db_re` VALUES ('12815','Yggdrasil_Dust','Sequoia Dust','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','itemskill ECL_SEQUOIADUST,1;','','');
REPLACE INTO `item_db_re` VALUES ('12818','High_Weapon_Box_','Advanced Weapons Box','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','100',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db_re` VALUES ('12831','Potion_Box','Potion Box','2','0','0','50','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 545,100; getitem 546,100; getitem 547,100; getitem 505,100;','','');
REPLACE INTO `item_db_re` VALUES ('12848','Falcon_Flute','Falcon Flute','11','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(getskilllv(HT_FALCON)) { if(checkoption(Option_Wug)||checkoption(Option_Wugrider)) end; if(checkfalcon()==1) { setfalcon 0; } else { setfalcon 1; } }','','');
REPLACE INTO `item_db_re` VALUES ('12849','Combination_Kit','Union Kit','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('12850','Heaven_Scroll','Heaven Scroll','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6248,7 +6257,7 @@ REPLACE INTO `item_db_re` VALUES ('13038','Dagger_Of_Hunter','Dagger of Hunter',
REPLACE INTO `item_db_re` VALUES ('13039','Ivory_Knife','Ivory Knife','4','20','10','700','130','0','0','1','2','1007342','58','2','2','3','50',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,NPC_CRITICALWOUND,1,30;','','');
REPLACE INTO `item_db_re` VALUES ('13040','N_Cutter','Novice Cutter','4','0','0','0','50','0','0','1','3','579821295','63','2','2','1','0',NULL,'0','1','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13041','N_Main_Gauche','Novice Main Gauche','4','0','0','0','63','0','0','1','3','579821295','63','2','2','1','0',NULL,'0','1','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('13042','Krieger_Dagger1','Glorious Gladius','4','20','10','0','120','0','0','1','0','579821295','63','2','2','4','80',NULL,'1','1','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus3 bAutoSpell,PR_LEXDIVINA,1,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250;','','');
+REPLACE INTO `item_db_re` VALUES ('13042','Krieger_Dagger1','Glorious Gladius','4','20','10','0','120','0','0','1','0','579821295','63','2','2','4','80',NULL,'1','1','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus3 bAutoSpell,PR_LEXDIVINA,1,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) bonus4 bAutoSpellOnSkill,RG_RAID,NPC_WIDEBLEEDING,1,250;','','');
REPLACE INTO `item_db_re` VALUES ('13043','Fortune_Sword_I','Fortune Sword','4','0','0','0','120','0','0','1','0','579821294','63','2','2','4','0',NULL,'0','1','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,5;','','');
REPLACE INTO `item_db_re` VALUES ('13044','House_Auger_I','Ice Pick','4','0','0','0','105','0','0','1','0','579821294','63','2','2','4','0',NULL,'0','1','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13045','Kamaitachi_I','Kamaitachi','4','0','0','0','155','0','0','2','0','570425344','1','2','2','4','0',NULL,'0','1','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6267,7 +6276,7 @@ REPLACE INTO `item_db_re` VALUES ('13057','E_Moonlight_Sword_C','E Moonlight Swo
REPLACE INTO `item_db_re` VALUES ('13058','E_Combat_Knife_C','E Combat Knife C','4','1','0','0','129','0','0','1','0','579821294','63','2','2','4','0',NULL,'0','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13059','E_Asura_C','E Asura C','4','1','0','0','120','0','0','1','0','570425344','1','2','2','1','0',NULL,'0','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13060','E_Counter_Dagger_C','E Counter Dagger C','4','1','0','0','209','0','0','1','0','8454660','63','2','2','4','0',NULL,'0','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('13061','Black_Wing','Black Wing','4','20','10','600','142','0','0','1','1','131072','56','2','2','3','102',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SC_FATALMENACE,30; if(getrefine() >= 6) { bonus2 bSkillAtk,\"SC_FATALMENACE\",(getrefine()-5)*2; bonus bMatk,(getrefine()-5)*3; }','','');
+REPLACE INTO `item_db_re` VALUES ('13061','Black_Wing','Black Wing','4','20','10','600','142','0','0','1','1','131072','56','2','2','3','102',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,SC_FATALMENACE,30; if(getrefine() >= 6) { bonus2 bSkillAtk,SC_FATALMENACE,(getrefine()-5)*2; bonus bMatk,(getrefine()-5)*3; }','','');
REPLACE INTO `item_db_re` VALUES ('13062','Ancient_Dagger','Ancient Dagger','4','20','10','600','107','120','0','1','0','1007342','58','2','2','4','120',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,120; bonus bMaxSP,100; bonus bSPrecovRate,5; bonus2 bAddEff2,Eff_Curse,20; bonus3 bAddEff,Eff_Curse,20,ATF_SELF|ATF_SKILL;','','');
REPLACE INTO `item_db_re` VALUES ('13063','Adventure_Knife','Adventure Knife','4','0','0','0','60','0','0','1','0','570560576','63','2','2','1','0',NULL,'0','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13064','Academy_Knife','Academy Knife','4','0','0','700','110','0','0','1','1','570560576','63','2','2','1','0',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
@@ -6285,9 +6294,9 @@ REPLACE INTO `item_db_re` VALUES ('13075','Kurenai','Kurenai','4','5000','2500',
REPLACE INTO `item_db_re` VALUES ('13076','Raksasa_Dagger','Raksasa Dagger','4','40000','20000','600','120','100','0','1','1','570425344','1','2','2','3','110',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,3;','','');
REPLACE INTO `item_db_re` VALUES ('13077','Kagekiri','Kagekiri','4','40000','20000','600','50','120','0','1','0','570425344','1','2','2','4','100',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13078','Mikatsuki','Mikatsuki','4','40000','20000','600','50','120','0','1','1','570425344','1','2','2','4','100',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUseSPrate,-5; bonus bVariableCastrate,-5;','','');
-REPLACE INTO `item_db_re` VALUES ('13079','Metal_Dagger','Metal Dagger','4','20','10','0','55','0','0','1','1','33689664','1','2','2','3','1',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*5); bonus bMatk,(getrefine()*2); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('13079','Metal_Dagger','Metal Dagger','4','20','10','0','55','0','0','1','1','33689664','1','2','2','3','1',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*5); bonus bMatk,(getrefine()*2); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('13081','Octo_kitchen_Knife','Discount knife Octopus','4','200000','100000','700','140','0','0','0','3','579821294','1','2','2','4','105',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('13092','RWC_Memory_Knife','RWC Memory Knife','4','1000','500','650','50','0','0','1','1','41943157','1','2','2','3','1',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); if(getrefine()>=9) { set .@i,1; bonus4 bAutoSpell,BS_WEAPONPERFECT,1,20,0; } if(getrefine()>=6) { set .@rate,5*(.@i+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }','','');
+REPLACE INTO `item_db_re` VALUES ('13092','RWC_Memory_Knife','RWC Memory Knife','4','1000','500','650','50','0','0','1','1','41943157','1','2','2','3','1',NULL,'1','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); if(getrefine()>=9) { .@val = 1; bonus4 bAutoSpell,BS_WEAPONPERFECT,1,20,0; } if(getrefine()>=6) { .@rate = 5*(.@val+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }','','');
REPLACE INTO `item_db_re` VALUES ('13100','Six_Shooter','Six Shooter','4','4500','2250','400','30','0','0','7','1','16777216','1','2','34','1','10',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-10;','','');
REPLACE INTO `item_db_re` VALUES ('13101','Six_Shooter_','Six Shooter','4','4500','2250','400','30','0','0','7','2','16777216','1','2','34','1','10',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-10;','','');
REPLACE INTO `item_db_re` VALUES ('13102','Crimson_Bolt','Crimson Bolt','4','20000','10000','450','45','0','0','7','1','16777216','1','2','34','2','35',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-10;','','');
@@ -6298,14 +6307,14 @@ REPLACE INTO `item_db_re` VALUES ('13106','Gold_Lux','Gold Lux','4','100000','50
REPLACE INTO `item_db_re` VALUES ('13107','Wasteland_Outlaw','Wasteland\'s Outlaw','4','20','10','580','68','0','0','7','2','16777216','1','2','34','3','70',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14;','','');
REPLACE INTO `item_db_re` VALUES ('13108','BF_Pistol1','Soldier Revolver','4','20','10','0','70','0','0','7','0','16777216','1','2','34','3','80',NULL,'1','17','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bAspdRate,100; }\",10,3000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13109','Wasteland_Outlaw_C','Western Outlaw','4','20','10','0','100','0','0','7','0','16777216','1','2','34','3','0',NULL,'0','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus bMatkRate,10;','','');
-REPLACE INTO `item_db_re` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','20','10','0','80','0','0','7','0','16777216','1','2','34','4','80',NULL,'1','17','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','','');
+REPLACE INTO `item_db_re` VALUES ('13110','Krieger_Pistol1','Glorious Pistol','4','20','10','0','80','0','0','7','0','16777216','1','2','34','4','80',NULL,'1','17','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,GS_RAPIDSHOWER,GS_GLITTERING,1,1000; bonus2 bSkillAtk,GS_RAPIDSHOWER,getrefine()*2; }','','');
REPLACE INTO `item_db_re` VALUES ('13111','Sharpshooter_Revolver','Sharpshooter Revolver','4','20','10','0','105','0','0','7','0','16777216','1','2','34','4','0',NULL,'0','17','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('13112','P_Revolver1','Eden Revolver I','4','0','0','0','44','0','0','7','0','16777216','1','2','34','2','26',NULL,'0','17','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
REPLACE INTO `item_db_re` VALUES ('13113','P_Revolver2','Eden Revolver II','4','0','0','0','60','0','0','7','0','16777216','1','2','34','2','40',NULL,'0','17','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
REPLACE INTO `item_db_re` VALUES ('13114','P_Revolver3','Eden Group Revolver III','4','0','0','0','76','0','0','7','0','16777216','1','2','34','3','60',NULL,'0','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
REPLACE INTO `item_db_re` VALUES ('13115','Upg_Revolver','Upgrade Revolver','4','20','10','500','35','0','0','7','1','16777216','1','2','34','3','0',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*5); bonus bLongAtkRate,(getrefine()*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5);','','');
REPLACE INTO `item_db_re` VALUES ('13116','Novice_Revolver','Beginner Revolver','4','0','0','500','20','0','0','7','0','16777216','1','2','34','1','0',NULL,'0','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-5;','','');
-REPLACE INTO `item_db_re` VALUES ('13120','Heaven\'s_Feather_and_Hell\'s_Fire','Heaven\'s_Feather_&_Hell\'s_Fire','5','1250000','625000','800','150','0','0','9','1','1090519040','63','2','34','3','99',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,\"GS_DESPERADO\",20; bonus2 bSkillAtk,\"RL_FALLEN_ANGEL\",20;','','');
+REPLACE INTO `item_db_re` VALUES ('13120','Heaven\'s_Feather_and_Hell\'s_Fire','Heaven\'s_Feather_&_Hell\'s_Fire','5','1250000','625000','800','150','0','0','9','1','1090519040','63','2','34','3','99',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSkillAtk,GS_DESPERADO,20; bonus2 bSkillAtk,RL_FALLEN_ANGEL,20;','','');
REPLACE INTO `item_db_re` VALUES ('13122','Altea_and_Ares','Altea & Ares','5','1450000','725000','1000','200','0','0','9','0','1073741824','63','2','34','3','140',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30;','','');
REPLACE INTO `item_db_re` VALUES ('13124','Altea_and_Ares_','Altea & Ares','5','1450000','725000','1000','200','0','0','9','1','1073741824','63','2','34','3','140',NULL,'1','17','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,5; bonus bDelayrate,10; bonus bLongAtkRate,30;','','');
REPLACE INTO `item_db_re` VALUES ('13150','Branch','Branch','4','3000','1500','500','50','0','0','9','3','16777216','1','2','34','1','0',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6334,20 +6343,20 @@ REPLACE INTO `item_db_re` VALUES ('13172','BF_Gatling_Gun1','Soldier GatlingGun'
REPLACE INTO `item_db_re` VALUES ('13173','BF_Shotgun1','Soldier Shotgun','4','20','10','0','100','0','0','9','0','16777216','1','2','34','3','80',NULL,'1','20','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }\",30,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13174','BF_Launcher1','Soldier Grenade Launcher','4','20','10','0','300','0','0','9','0','16777216','1','2','34','3','80',NULL,'1','21','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; autobonus \"{ bonus bBaseAtk,300; bonus2 bHPLossRate,120,1000; }\",30,9000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13175','Lever_Action_Rifle_C','Lever Action Rifle','4','20','10','0','170','0','0','9','0','16777216','1','2','34','3','0',NULL,'0','18','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bHit,20; bonus bCritical,50; bonus bAspdRate,-5;','','');
-REPLACE INTO `item_db_re` VALUES ('13176','Krieger_Rifle1','Glorious Rifle','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','18','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,GS_TRACKING,25; bonus2 bSkillAtk,GS_TRACKING,getrefine() * 3; }','','');
-REPLACE INTO `item_db_re` VALUES ('13177','Krieger_Gatling1','Glorious Gatling gun','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','19','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }','','');
-REPLACE INTO `item_db_re` VALUES ('13178','Krieger_Shotgun1','Glorious Shotgun','4','20','10','0','110','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','20','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_SPREADATTACK,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; }','','');
-REPLACE INTO `item_db_re` VALUES ('13179','Krieger_Launcher1','Glorious Grenade Launcher','4','20','10','0','330','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','21','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>10)?10:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_GROUNDDRIFT,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }','','');
+REPLACE INTO `item_db_re` VALUES ('13176','Krieger_Rifle1','Glorious Rifle','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','18','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,GS_TRACKING,25; bonus2 bSkillAtk,GS_TRACKING,getrefine() * 3; }','','');
+REPLACE INTO `item_db_re` VALUES ('13177','Krieger_Gatling1','Glorious Gatling gun','4','20','10','0','90','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','19','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bAddRace,RC_Boss,getrefine(); bonus2 bAddRace,RC_NonBoss,getrefine(); }','','');
+REPLACE INTO `item_db_re` VALUES ('13178','Krieger_Shotgun1','Glorious Shotgun','4','20','10','0','110','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','20','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bSplashRange,1; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_SPREADATTACK,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; }','','');
+REPLACE INTO `item_db_re` VALUES ('13179','Krieger_Launcher1','Glorious Grenade Launcher','4','20','10','0','330','0','0','9','0','16777216','1','2','34','4','80',NULL,'1','21','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,35; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus2 bSkillAtk,GS_TRIPLEACTION,30; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),10)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bSkillAtk,GS_GROUNDDRIFT,getrefine() * 2; bonus3 bAddEffOnSkill,GS_SPREADATTACK,Eff_Stun,2000; autobonus \"{ bonus bAspdRate,20; }\",200,20000,BF_WEAPON,\"{ specialeffect2 EF_POTION_BERSERK; }\"; }','','');
REPLACE INTO `item_db_re` VALUES ('13180','Novice_Rifle','Starter Branch','4','0','0','500','50','0','0','9','3','16777216','1','2','34','1','0',NULL,'0','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13181','Novice_Shotgun','Beginner Shotgun','4','0','0','1000','80','0','0','9','0','16777216','1','2','34','1','0',NULL,'0','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13182','Novice_Gatling','Beginner GatlingGun','4','0','0','1500','40','0','0','9','0','16777216','1','2','34','1','0',NULL,'0','19','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13183','Novice_Grenade_Launcher','Beginner Grenade Launcher','4','0','0','1500','40','0','0','9','0','16777216','1','2','34','1','0',NULL,'0','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13189','Color_Scope','Color Scope','5','1350000','675000','1200','240','0','0','9','2','1073741824','63','2','34','3','105',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,30; bonus bCriticalRate,30;','','');
-REPLACE INTO `item_db_re` VALUES ('13190','RAG203','RAG203','5','1800000','900000','1300','260','0','0','9','1','1073741824','63','2','34','3','140',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCriticalRate,15; bonus4 bAutoSpell,\"AL_DECAGI\",1,500,0;','','');
+REPLACE INTO `item_db_re` VALUES ('13190','RAG203','RAG203','5','1800000','900000','1300','260','0','0','9','1','1073741824','63','2','34','3','140',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCriticalRate,15; bonus4 bAutoSpell,AL_DECAGI,1,500,0;','','');
REPLACE INTO `item_db_re` VALUES ('13192','Death_Fire','Death Fire','5','1250000','625000','2000','400','0','0','9','1','1073741824','63','2','34','3','108',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,5; bonus bHit,-50; bonus bDelayrate,-10;','','');
-REPLACE INTO `item_db_re` VALUES ('13193','Rolling_Thunder','Rolling Thunder','5','1350000','675000','1800','280','0','0','9','1','1073741824','63','2','34','3','120',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-10; bonus bDelayrate,-10; bonus3 bAutoSpell,\"MG_THUNDERSTORM\",5,500;','','');
+REPLACE INTO `item_db_re` VALUES ('13193','Rolling_Thunder','Rolling Thunder','5','1350000','675000','1800','280','0','0','9','1','1073741824','63','2','34','3','120',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-10; bonus bDelayrate,-10; bonus3 bAutoSpell,MG_THUNDERSTORM,5,500;','','');
REPLACE INTO `item_db_re` VALUES ('13194','Peace_Breaker','Peace Breaker','5','1950000','975000','1400','250','0','0','9','0','1090519040','63','2','34','3','120',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-25; bonus bAspdRate,25;','','');
-REPLACE INTO `item_db_re` VALUES ('13195','RAG203_','RAG203','5','1800000','900000','1300','260','0','0','9','0','1073741824','63','2','34','3','140',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCriticalRate,15; bonus4 bAutoSpell,\"AL_DECAGI\",1,10,0;','','');
+REPLACE INTO `item_db_re` VALUES ('13195','RAG203_','RAG203','5','1800000','900000','1300','260','0','0','9','0','1073741824','63','2','34','3','140',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,10; bonus bCriticalRate,15; bonus4 bAutoSpell,AL_DECAGI,1,10,0;','','');
REPLACE INTO `item_db_re` VALUES ('13196','Peace_Breaker_','Peace Breaker','5','1950000','975000','1400','250','0','0','9','1','1090519040','63','2','34','3','120',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-25; bonus bAspdRate,25;','','');
REPLACE INTO `item_db_re` VALUES ('13197','Mini_Mei','Mini Mei','5','1600000','800000','2500','220','0','0','9','2','1090519040','63','2','34','2','106',NULL,'1','19','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13198','Tempest_','Tempest','5','2200000','1100000','2500','250','0','0','9','0','1090519040','63','2','34','2','140',NULL,'1','19','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHit,-25; bonus bCritical,10; bonus bLongAtkRate,20;','','');
@@ -6419,15 +6428,15 @@ REPLACE INTO `item_db_re` VALUES ('13303','Huuma_Blaze','Huuma Blaze Shuriken','
REPLACE INTO `item_db_re` VALUES ('13304','Huuma_Calm_Mind','Huuma Calm Mind','4','20','10','1550','112','0','0','1','2','570425344','1','2','34','3','70',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bSkillAtk,NJ_HUUMA,30; bonus bNoCastCancel,0;','','');
REPLACE INTO `item_db_re` VALUES ('13305','BF_Huuma_Shuriken1','Brave Huuma Front Shuriken','4','20','10','0','55','0','0','1','0','570425344','1','2','34','3','80',NULL,'1','22','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('13306','BF_Huuma_Shuriken2','Valorous Huuma Front Shuriken','4','20','10','0','55','0','0','1','0','570425344','1','2','34','3','80',NULL,'1','22','0','0','0','467',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bDex,1; bonus2 bAddRace,RC_DemiHuman,95; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000,BF_WEAPON,\"{specialeffect2 EF_POTION_BERSERK; }\"; bonus bUnbreakableWeapon,0;','','');
-REPLACE INTO `item_db_re` VALUES ('13307','Krieger_Huuma_Shuriken1','Glorious Shuriken','4','20','10','0','55','90','0','1','0','570425344','1','2','34','4','80',NULL,'1','22','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bMatkRate,15; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; }','','');
+REPLACE INTO `item_db_re` VALUES ('13307','Krieger_Huuma_Shuriken1','Glorious Shuriken','4','20','10','0','55','90','0','1','0','570425344','1','2','34','4','80',NULL,'1','22','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bMatkRate,15; autobonus \"{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }\",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-3,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; }','','');
REPLACE INTO `item_db_re` VALUES ('13308','Huuma_Blaze_I','Huuma Blaze Shuriken','4','0','0','0','230','0','0','1','0','570425344','1','2','34','4','0',NULL,'0','22','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Fire; bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('13309','Huuma_Giant_Wheel_C','Huuma Giant Wheel Shuriken','4','0','0','0','99','0','0','1','0','570425344','1','2','34','4','0',NULL,'0','22','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13310','P_Huuma_Shuriken1','Eden Group Huuma Shuriken I','4','0','0','0','150','50','0','1','0','570425344','1','2','34','3','60',NULL,'0','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50;','','');
REPLACE INTO `item_db_re` VALUES ('13311','Huuma_Shadow','Huuma Shadow','4','5000','2500','1500','170','0','0','1','0','570425344','1','2','34','4','99',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,3;','','');
REPLACE INTO `item_db_re` VALUES ('13312','Huuma_Job_Test','Huuma Job Test','4','90000','45000','3000','0','0','0','1','0','570425344','1','2','34','4','99',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('13313','Huuma_Swirling_Petal','Huuma Swirling Petal','4','100000','50000','1500','150','50','0','1','2','570425344','1','2','34','3','110',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Fire; bonus2 bSkillAtk,KO_HUUMARANKA,20;','','');
-REPLACE INTO `item_db_re` VALUES ('13314','Huuma_Fluttering_Snow','Huuma Fluttering Snow','4','100000','50000','1500','200','50','0','1','0','570425344','1','2','34','4','110',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Water; bonus3 bAutoSpell,NJ_HYOUSYOURAKU,(getskilllv(NJ_HYOUSYOURAKU)?getskilllv(NJ_HYOUSYOURAKU):1),30;','','');
-REPLACE INTO `item_db_re` VALUES ('13315','Huuma_Thunderstorm','Huuma Thunderstorm','4','100000','50000','1500','200','50','0','1','0','570425344','1','2','34','4','110',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Wind; bonus3 bAutoSpell,NJ_RAIGEKISAI,(getskilllv(NJ_RAIGEKISAI)?getskilllv(NJ_RAIGEKISAI):1),30;','','');
+REPLACE INTO `item_db_re` VALUES ('13314','Huuma_Fluttering_Snow','Huuma Fluttering Snow','4','100000','50000','1500','200','50','0','1','0','570425344','1','2','34','4','110',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Water; bonus3 bAutoSpell,NJ_HYOUSYOURAKU,max(getskilllv(NJ_HYOUSYOURAKU),1),30;','','');
+REPLACE INTO `item_db_re` VALUES ('13315','Huuma_Thunderstorm','Huuma Thunderstorm','4','100000','50000','1500','200','50','0','1','0','570425344','1','2','34','4','110',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMatk,50; bonus bAtkEle,Ele_Wind; bonus3 bAutoSpell,NJ_RAIGEKISAI,max(getskilllv(NJ_RAIGEKISAI),1),30;','','');
REPLACE INTO `item_db_re` VALUES ('13316','Upg_Huuma_Shuriken','Upg Huuma Shuriken','4','20','10','1500','55','0','0','1','1','570425344','1','2','34','3','0',NULL,'1','22','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,10*getrefine(); bonus bMatk,5*getrefine(); bonus bLongAtkRate,getrefine(); if(BaseLevel>=70) { bonus bBaseAtk,5*((BaseLevel-60)/10); }','','');
REPLACE INTO `item_db_re` VALUES ('13400','Cutlas_','Cutlus','4','20','10','900','150','0','0','1','1','414946','63','2','2','4','40',NULL,'1','2','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill SM_BASH,5; bonus bStr,2; bonus bDef,1;','','');
REPLACE INTO `item_db_re` VALUES ('13401','Excalibur_C','Excalibur','4','1','0','0','199','0','0','1','0','414946','63','2','2','4','0',NULL,'0','2','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bInt,10; bonus bLuk,10; bonus bAtkEle,Ele_Holy;','','');
@@ -6445,7 +6454,7 @@ REPLACE INTO `item_db_re` VALUES ('13412','Twin_Edge_B','Twin Edge of Naght Sieg
REPLACE INTO `item_db_re` VALUES ('13413','Twin_Edge_R','Twin Edge of Naght Sieger','4','20','10','1500','160','0','0','1','3','414946','58','2','2','4','75',NULL,'1','2','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Fire; skill WZ_METEOR,3; autobonus \"{ bonus bIgnoreDefRace,RC_NonBoss; }\",50,5000;','','');
REPLACE INTO `item_db_re` VALUES ('13414','Elemental_Sword','Elemental Sword','4','20','10','1200','105','95','0','1','3','414946','58','2','2','3','70',NULL,'1','2','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,4; bonus bDex,1; bonus2 bAddEle,Ele_Neutral,10; bonus3 bAutoSpell,MG_COLDBOLT,3,50; bonus4 bAutoSpellOnSkill,MG_COLDBOLT,MG_FIREBOLT,3,1000; bonus4 bAutoSpellOnSkill,MG_FIREBOLT,MG_LIGHTNINGBOLT,3,1000; bonus4 bAutoSpellOnSkill,MG_LIGHTNINGBOLT,WZ_EARTHSPIKE,3,1000;','','');
REPLACE INTO `item_db_re` VALUES ('13415','N_Falchion','Novice Falchion','4','0','0','0','59','0','0','1','3','414947','63','2','2','1','2',NULL,'0','2','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('13416','Krieger_Onehand_Sword1','Glorious Flamberge','4','20','10','0','130','0','0','1','0','414947','63','2','2','4','80',NULL,'1','2','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>6) bonus bAspdRate,5; if(getrefine()>8) { bonus bAspdRate,5; bonus4 bAutoSpellOnSkill,SM_BASH,NPC_CRITICALWOUND,2,200; }','','');
+REPLACE INTO `item_db_re` VALUES ('13416','Krieger_Onehand_Sword1','Glorious Flamberge','4','20','10','0','130','0','0','1','0','414947','63','2','2','4','80',NULL,'1','2','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(min(getrefine(),14)-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>6) bonus bAspdRate,5; if(getrefine()>8) { bonus bAspdRate,5; bonus4 bAutoSpellOnSkill,SM_BASH,NPC_CRITICALWOUND,2,200; }','','');
REPLACE INTO `item_db_re` VALUES ('13417','Krieger_Onehand_Sword2','Glorious Rapier','4','20','10','0','130','80','0','1','0','414947','63','2','2','4','80',NULL,'1','2','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bUnbreakableWeapon,0; if(getrefine()>5) bonus bUseSPrate,-10; if(getrefine()>8) bonus bInt,5;','','');
REPLACE INTO `item_db_re` VALUES ('13418','Krieger_Onehand_Sword3','Glorious Holy Avenger','4','20','10','0','130','80','0','1','0','279714','63','2','2','4','80',NULL,'1','2','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','bonus bInt,6; bonus bUnbreakableWeapon,0; if(getrefine()>5) bonus bUseSPrate,-10; if(getrefine()>8) bonus4 bAutoSpellOnSkill,PA_PRESSURE,PR_LEXDIVINA,1,1000; if(getrefine()>9) bonus bInt,5;','','');
REPLACE INTO `item_db_re` VALUES ('13419','Holy_Saber','Holy Saber','4','20','10','0','160','0','0','1','0','414946','63','2','2','3','0',NULL,'0','2','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
@@ -6906,9 +6915,9 @@ REPLACE INTO `item_db_re` VALUES ('13938','Twin_Ribbon_Box','Maiden\'s Twin Ribb
REPLACE INTO `item_db_re` VALUES ('13939','Diadem_Box','Diadem Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5313,1;','','');
REPLACE INTO `item_db_re` VALUES ('13940','Siege_Tele_Scroll_Box','WoE Teleport Scroll 100 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14591,100;','','');
REPLACE INTO `item_db_re` VALUES ('13941','TW_Valentine_Scroll','Taiwan Valentine Scroll','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('13942','Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14009,1;','','');
-REPLACE INTO `item_db_re` VALUES ('13943','Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14010,1;','','');
-REPLACE INTO `item_db_re` VALUES ('13944','Gogo_Box_1m','Gogo Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 14011,1;','','');
+REPLACE INTO `item_db_re` VALUES ('13942','Love_Angel_Box_1m','Love Angel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14009,2592000;','','');
+REPLACE INTO `item_db_re` VALUES ('13943','Squirrel_Box_1m','Squirrel Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14010,2592000;','','');
+REPLACE INTO `item_db_re` VALUES ('13944','Gogo_Box_1m','Gogo Magic Powder Box 30 Days','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','rentitem 14011,2592000;','','');
REPLACE INTO `item_db_re` VALUES ('13945','BRO_SM_Package','Brazil Swordsman Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('13946','BRO_MG_Package','Brazil Magician Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
REPLACE INTO `item_db_re` VALUES ('13947','BRO_AC_Package','Brazil Acolyte Package','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','packageitem();','','');
@@ -7206,26 +7215,26 @@ REPLACE INTO `item_db_re` VALUES ('14238','Stew_Of_Immortality_Box_20','Immortal
REPLACE INTO `item_db_re` VALUES ('14239','Dragon_Breath_Cocktail_Box_20','Dragon Breath Cocktail 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12204,20;','','');
REPLACE INTO `item_db_re` VALUES ('14240','Hwergelmir\'s_Tonic_Box_20','Hwergelmir\'s Tonic 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12205,20;','','');
REPLACE INTO `item_db_re` VALUES ('14241','Nine_Tail_Dish_Box_20','Nine Tail Dish 20 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 12206,20;','','');
-REPLACE INTO `item_db_re` VALUES ('14242','Beholder_Ring_Box','Beholder Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2753,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14243','Hallow_Ring_Box','Hallow Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2754,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14244','Clamorous_Ring_Box','Clamorous Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2755,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14245','Chemical_Ring_Box','Chemical Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2756,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14246','Insecticide_Ring_Box','Insecticide Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2757,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14247','Fisher_Ring_Box','Fisher Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2758,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14248','Decussate_Ring_Box','Decussate Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2759,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14249','Bloody_Ring_Box','Bloody Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2760,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14250','Satanic_Ring_Box','Satanic Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2761,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14251','Dragoon_Ring_Box','Dragon Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2762,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14252','Beholder_Ring_Box2','Beholder Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2753,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14253','Hallow_Ring_Box2','Hallow Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2754,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14254','Clamorous_Ring_Box2','Clamorous Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2755,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14255','Chemical_Ring_Box2','Chemical Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2756,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14256','Insecticide_Ring_Box2','Insecticide Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2757,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14257','Fisher_Ring_Box2','Fisher Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2758,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14258','Decussate_Ring_Box2','Decussate Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2759,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14259','Bloody_Ring_Box2','Bloody Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2760,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14260','Satanic_Ring_Box2','Satanic Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2761,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14261','Dragoon_Ring_Box2','Dragon Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','getitem 2762,1;','','');
+REPLACE INTO `item_db_re` VALUES ('14242','Beholder_Ring_Box','Beholder Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2753,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14243','Hallow_Ring_Box','Hallow Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2754,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14244','Clamorous_Ring_Box','Clamorous Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2755,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14245','Chemical_Ring_Box','Chemical Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2756,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14246','Insecticide_Ring_Box','Insecticide Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2757,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14247','Fisher_Ring_Box','Fisher Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2758,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14248','Decussate_Ring_Box','Decussate Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2759,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14249','Bloody_Ring_Box','Bloody Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2760,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14250','Satanic_Ring_Box','Satanic Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2761,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14251','Dragoon_Ring_Box','Dragon Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2762,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14252','Beholder_Ring_Box2','Beholder Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2753,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14253','Hallow_Ring_Box2','Hallow Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2754,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14254','Clamorous_Ring_Box2','Clamorous Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2755,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14255','Chemical_Ring_Box2','Chemical Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2756,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14256','Insecticide_Ring_Box2','Insecticide Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2757,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14257','Fisher_Ring_Box2','Fisher Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2758,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14258','Decussate_Ring_Box2','Decussate Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2759,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14259','Bloody_Ring_Box2','Bloody Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2760,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14260','Satanic_Ring_Box2','Satanic Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2761,1296000;','','');
+REPLACE INTO `item_db_re` VALUES ('14261','Dragoon_Ring_Box2','Dragon Ring Box II','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','73',NULL,'0',NULL,'0',NULL,'0','rentitem 2762,1296000;','','');
REPLACE INTO `item_db_re` VALUES ('14262','Diary_Magic_Powder_Box','Diary Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12304,604800;','','');
REPLACE INTO `item_db_re` VALUES ('14263','Mini_Heart_Magic_Powder_Box','Mini Heart Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12305,604800;','','');
REPLACE INTO `item_db_re` VALUES ('14264','Freshman_Magic_Powder_Box','Freshman Magic Powder Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 12306,604800;','','');
@@ -7244,13 +7253,13 @@ REPLACE INTO `item_db_re` VALUES ('14276','Amplification_50_Scroll_Box2','Mystic
REPLACE INTO `item_db_re` VALUES ('14277','Quagmire_10_Scroll_Box2','Quagmire Scroll 10 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,10;','','');
REPLACE INTO `item_db_re` VALUES ('14278','Quagmire_30_Scroll_Box2','Quagmire Scroll 30 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,30;','','');
REPLACE INTO `item_db_re` VALUES ('14279','Quagmire_50_Scroll_Box2','Quagmire Scroll 50 Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 14594,50;','','');
-REPLACE INTO `item_db_re` VALUES ('14280','Healing_Staff_Box2','Healing Staff Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1638,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14281','Praccsinos_Box','Praccsinos_Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 2752,1;','','');
+REPLACE INTO `item_db_re` VALUES ('14280','Healing_Staff_Box2','Healing Staff Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 1638,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14281','Praccsinos_Box','Praccsinos_Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 2752,604800;','','');
REPLACE INTO `item_db_re` VALUES ('14282','Emperium_Box','Emperium Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 714,1;','','');
REPLACE INTO `item_db_re` VALUES ('14283','Marriage_Covenant_Box','Marriage Certificate Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 6026,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14284','Muffler_Box','Muffler Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 2548,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14285','Balkiriah_Shield_Box','Balkiriah Shield Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 2137,1;','','');
-REPLACE INTO `item_db_re` VALUES ('14286','Skull_Ring_Box','Skull Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 2763,1;','','');
+REPLACE INTO `item_db_re` VALUES ('14284','Muffler_Box','Muffler Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 2548,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14285','Balkiriah_Shield_Box','Balkiriah Shield Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 2137,604800;','','');
+REPLACE INTO `item_db_re` VALUES ('14286','Skull_Ring_Box','Skull Ring Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','rentitem 2763,604800;','','');
REPLACE INTO `item_db_re` VALUES ('14287','Baricade_Repair_Kit','Barricade Repair Kit','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 1019,30; getitem 999,10; getitem 1011,10; getitem 984,5;','','');
REPLACE INTO `item_db_re` VALUES ('14288','Guardian_Stone_Repair_Kit','Guardian Stone Repair Kit','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 984,1; getitem 985,1; getitem 7049,30; getitem 717,5; getitem 716,5; getitem 715,5;','','');
REPLACE INTO `item_db_re` VALUES ('14289','Cloth_Dye_Coupon_Box','Clothing Dye Coupon Box','18','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','getitem 6046,1;','','');
@@ -7334,8 +7343,8 @@ REPLACE INTO `item_db_re` VALUES ('14521','Repair_Scroll','Repair Weapon Scroll'
REPLACE INTO `item_db_re` VALUES ('14522','Big_Bun','Big Bun','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,0;','','');
REPLACE INTO `item_db_re` VALUES ('14523','Pill_','Pill','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 0,100;','','');
REPLACE INTO `item_db_re` VALUES ('14524','Superb_Fish_Slice','Superb Fish Slice','0','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','percentheal 100,100;','','');
-REPLACE INTO `item_db_re` VALUES ('14525','Chewy_Ricecake','Chewy Ricecake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,180000,10;','','');
-REPLACE INTO `item_db_re` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,180000,10;','','');
+REPLACE INTO `item_db_re` VALUES ('14525','Chewy_Ricecake','Chewy Ricecake','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSATTACKPOWER,1800000,10;','','');
+REPLACE INTO `item_db_re` VALUES ('14526','Oriental_Pastry','Oriental Pastry','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','sc_start SC_PLUSMAGICPOWER,1800000,10;','','');
REPLACE INTO `item_db_re` VALUES ('14527','Dun_Tele_Scroll1','Dungeon Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','475',NULL,'0',NULL,'0',NULL,'0','callfunc \"F_CashDungeon\",1;','','');
REPLACE INTO `item_db_re` VALUES ('14528','PVP_Tele_Scroll','PVP Teleport Scroll','2','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('14529','Greed_Scroll','Greed Scroll','11','0','0','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'1',NULL,'0',NULL,'0','itemskill BS_GREED,1;','','');
@@ -7464,9 +7473,9 @@ REPLACE INTO `item_db_re` VALUES ('15034','Tutorial_Mattle_','Tutorial Mantle','
REPLACE INTO `item_db_re` VALUES ('15035','2010Love_Daddy','2010 Love Daddy Shirt','5','10','5','100','0','0','6','0','0','4294967295','63','2','16','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1; bonus bMaxHP,150; bonus bMaxSP,150; bonus2 bResEff,Eff_Stone,9000; bonus2 bResEff,Eff_Freeze,9000; bonus2 bResEff,Eff_Stun,9000; bonus2 bResEff,Eff_Sleep,9000; bonus2 bResEff,Eff_Silence,9000; bonus2 bResEff,Eff_Curse,9000; bonus2 bResEff,Eff_Confusion,9000; bonus2 bResEff,Eff_Blind,9000; bonus2 bResEff,Eff_Poison,9000; bonus2 bResEff,Eff_Bleeding,9000;','','');
REPLACE INTO `item_db_re` VALUES ('15036','Ur_Plate','Ur\'s Plate','5','20','10','3000','0','0','110','0','0','128','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,10; bonus bMaxHPrate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5;','','');
REPLACE INTO `item_db_re` VALUES ('15037','Peuz_Plate','Peuz\'s Plate','5','20','10','3000','0','0','110','0','0','128','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17;','','');
-REPLACE INTO `item_db_re` VALUES ('15038','Sabah_Cloth','Sapha\'s Cloth','5','20','10','100','0','0','45','0','1','4096','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,3; bonus3 bAutoSpell,ASC_METEORASSAULT,(getskilllv(ASC_METEORASSAULT)?getskilllv(ASC_METEORASSAULT):1),20;','','');
+REPLACE INTO `item_db_re` VALUES ('15038','Sabah_Cloth','Sapha\'s Cloth','5','20','10','100','0','0','45','0','1','4096','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLuk,3; bonus3 bAutoSpell,ASC_METEORASSAULT,max(getskilllv(ASC_METEORASSAULT),1),20;','','');
REPLACE INTO `item_db_re` VALUES ('15039','Nab_Cloth','Nab\'s Cloth','5','20','10','100','0','0','45','0','1','4096','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,2;','','');
-REPLACE INTO `item_db_re` VALUES ('15040','Prison_Uniform','Prison Uniform','5','10','5','1500','0','0','5','0','0','4294967295','63','2','16','0','50',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','set .@rate,(getrefine()>10)?10:getrefine(); bonus bHit,.@rate; bonus bFlee,.@rate;','','');
+REPLACE INTO `item_db_re` VALUES ('15040','Prison_Uniform','Prison Uniform','5','10','5','1500','0','0','5','0','0','4294967295','63','2','16','0','50',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','.@rate = min(getrefine(), 10); bonus bHit,.@rate; bonus bFlee,.@rate;','','');
REPLACE INTO `item_db_re` VALUES ('15041','Boitata_Armor','Boitata Armor','5','20','10','600','0','0','45','0','1','4294967295','63','2','16','0','60',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableArmor,0; bonus bMdef,3; bonus2 bSubEle,Ele_Neutral,7; bonus bMaxHPrate,5; bonus bFlee,5;','','');
REPLACE INTO `item_db_re` VALUES ('15042','White_Wing_Suits','White Wing Suits','5','20','10','100','0','0','45','0','1','2048','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bLongAtkRate,getrefine()*2; bonus bFlee,getrefine();','','');
REPLACE INTO `item_db_re` VALUES ('15043','Black_Wing_Suits','Black Wing Suits','5','20','10','100','0','0','45','0','1','2048','56','2','16','0','100',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2; bonus bBaseAtk,getequiprefinerycnt(EQI_ARMOR)*3;','','');
@@ -7505,13 +7514,13 @@ REPLACE INTO `item_db_re` VALUES ('16013','Mace_Of_Judgement','Mace Of Judgement
REPLACE INTO `item_db_re` VALUES ('16014','P_Mace3','Eden Group Mace3','4','0','0','0','172','0','0','1','0','312754','63','2','2','3','60',NULL,'0','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('16015','Cat_Club','Cat Club','4','20','10','700','88','0','0','1','3','312755','63','2','2','1','0',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_Brute,15;','','');
REPLACE INTO `item_db_re` VALUES ('16016','Tuna','Tuna','4','0','0','0','180','0','0','1','0','312754','63','2','2','1','50',NULL,'0','8','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Stun,150; bonus3 bAutoSpell,SM_BASH,5,20; if(BaseLevel>99) bonus bBaseAtk,20;','','');
-REPLACE INTO `item_db_re` VALUES ('16017','Bloody_Cross','Bloody Cross','4','20','10','1500','170','0','0','1','0','33040','58','2','2','4','100',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Dark; bonus3 bAutoSpell,WL_HELLINFERNO,1,(getrefine()?getrefine()*20:20);','','');
+REPLACE INTO `item_db_re` VALUES ('16017','Bloody_Cross','Bloody Cross','4','20','10','1500','170','0','0','1','0','33040','58','2','2','4','100',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAtkEle,Ele_Dark; bonus3 bAutoSpell,WL_HELLINFERNO,1,max(getrefine(),1)*20;','','');
REPLACE INTO `item_db_re` VALUES ('16018','Mace_Of_Judgement2','Empowered Mace Of Judgement','4','20','10','1200','170','180','0','1','1','256','56','2','2','4','130',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,2; bonus bInt,2; autobonus \"{ bonus2 bMagicAddRace,RC_Demon,40; }\",60,7000,BF_MAGIC,\"{ specialeffect2 EF_SPELLBREAKER; }\"; autobonus \"{ bonus2 bAddRace,RC_Demon,40; }\",10,7000,BF_WEAPON,\"{ specialeffect2 EF_ENHANCE; }\";','','');
REPLACE INTO `item_db_re` VALUES ('16019','Upg_Mace','Upgrade Mace','4','20','10','800','80','0','0','1','1','312755','63','2','2','3','0',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bBaseAtk,(getrefine()*10); bonus bHealPower,getrefine(); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*5);','','');
REPLACE INTO `item_db_re` VALUES ('16020','Velum_Stunner','Vellum Stunner','4','20','10','1500','170','0','0','1','0','312755','63','2','2','4','95',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Stun,1000+getrefine(); bonus bAspdRate,getrefine(); bonus4 bSetDefRace,RC_DemiHuman,10000,5000,1; bonus4 bSetMDefRace,RC_DemiHuman,10000,5000,1;','','');
REPLACE INTO `item_db_re` VALUES ('16021','Velum_Flail','Vellum Flail','4','20','10','1500','170','0','0','1','0','312755','63','2','2','4','95',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus3 bAutoSpell,NPC_CRITICALWOUND,5,10; bonus bHit,getrefine(); bonus bCritical,getrefine();','','');
REPLACE INTO `item_db_re` VALUES ('16022','Nemesis_','Nemesis','4','20','10','900','120','0','0','1','2','33040','63','2','2','4','60',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Holy;','','');
-REPLACE INTO `item_db_re` VALUES ('16023','Metal_Mace','Metal Mace','4','20','10','0','80','0','0','1','1','312755','63','2','2','3','1',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*5); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('16023','Metal_Mace','Metal Mace','4','20','10','0','80','0','0','1','1','312755','63','2','2','3','1',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0; bonus bBaseAtk,(getrefine()*5); .@val = min(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('16026','RWC_Memory_Mace','RWC Memory Mace','4','20','10','800','100','0','0','1','1','312754','63','2','2','3','0',NULL,'1','8','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('16131','Lady_Tanee_Doll_Box','Tanigumi Girl Doll Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5526,1;','','');
REPLACE INTO `item_db_re` VALUES ('16132','Lunatic_Hat_Box','Lunatic Hat Box','18','20','10','0','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getitem 5527,1;','','');
@@ -7863,7 +7872,7 @@ REPLACE INTO `item_db_re` VALUES ('18112','Upg_Bow','Upgrade Bow','4','20','10',
REPLACE INTO `item_db_re` VALUES ('18113','Velum_Arbalest','Vellum Arbalest','4','20','10','1100','50','0','0','5','0','657480','63','2','34','4','95',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bSPVanishRate,10000,4,BF_NORMAL; bonus bAspd,-5;','','');
REPLACE INTO `item_db_re` VALUES ('18114','Velum_CrossBow','Vellum CrossBow','4','20','10','1100','110','0','0','5','0','657480','63','2','34','4','95',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bAddRace,RC_DemiHuman,30+getrefine(); bonus2 bIgnoreDefRate,RC_DemiHuman,30;','','');
REPLACE INTO `item_db_re` VALUES ('18115','Orc_Archer_Bow_','Orc Archer\'s Bow','4','20','10','1600','120','0','0','5','1','657416','63','2','34','3','65',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('18116','Metal_Bow','Metal Bow','4','20','10','0','50','0','0','5','1','526344','63','2','34','3','0',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(BaseJob==Job_Hunter && Upper!=2) bonus bBaseAtk,10; bonus bBaseAtk,(getrefine()*3); bonus bLongAtkRate,getrefine(); set .@i,((BaseLevel/10)>12)?12:(BaseLevel/10); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);','','');
+REPLACE INTO `item_db_re` VALUES ('18116','Metal_Bow','Metal Bow','4','20','10','0','50','0','0','5','1','526344','63','2','34','3','0',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','if(BaseJob==Job_Hunter && Upper!=2) bonus bBaseAtk,10; bonus bBaseAtk,(getrefine()*3); bonus bLongAtkRate,getrefine(); .@val = max(BaseLevel/10, 12); if (.@val > 2) bonus bBaseAtk,((.@val-2)*5);','','');
REPLACE INTO `item_db_re` VALUES ('18117','Royal_Bow','Royal Bow','4','200000','100000','1500','80','0','0','5','1','657416','63','2','34','4','105',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18500','Cheer_Scarf6','Cheering scarf VI','5','0','0','0','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','369','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace,RC_Boss,60; bonus2 bExpAddRace,RC_NonBoss,60;','','');
REPLACE INTO `item_db_re` VALUES ('18501','Cheer_Scarf8','Cheering scarf VIII','5','0','0','0','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','369','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0; bonus2 bExpAddRace,RC_Boss,80; bonus2 bExpAddRace,RC_NonBoss,80;','','');
@@ -7899,7 +7908,7 @@ REPLACE INTO `item_db_re` VALUES ('18530','Tha_Despero_Mask','Thanatos Despero M
REPLACE INTO `item_db_re` VALUES ('18531','Drooping_Permeter','Drooping Permeter','5','20','10','1000','0','0','8','0','1','4294967295','63','2','256','0','10',NULL,'1','694','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18532','Heart_Ribbon_Band','Heart Ribbon Hairband','5','20','10','100','0','0','0','0','1','4294967295','63','2','256','0','10',NULL,'1','708','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,2;','','');
REPLACE INTO `item_db_re` VALUES ('18533','Honeybee_Hat','Honey Bee Hat','5','20','10','100','0','0','3','0','1','4294967295','63','2','256','0','50',NULL,'1','709','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3; bonus2 bAddRace,RC_Insect,5; bonus2 bSubRace,RC_Insect,5; bonus3 bAddMonsterDropItem,518,RC_Insect,50;','','');
-REPLACE INTO `item_db_re` VALUES ('18534','Fancy_Phantom_Mask','Fancy Phantom Mask','5','20','10','1000','0','0','5','0','1','4294967295','63','2','768','0','20',NULL,'1','710','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bAtkRate,5; bonus bDelayrate,-1; bonus bMaxHP,0+(getrefine()*100); bonus2 bSkillAtk,\"MC_MAMMONITE\",20;','','');
+REPLACE INTO `item_db_re` VALUES ('18534','Fancy_Phantom_Mask','Fancy Phantom Mask','5','20','10','1000','0','0','5','0','1','4294967295','63','2','768','0','20',NULL,'1','710','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bStr,1; bonus bAtkRate,5; bonus bDelayrate,-1; bonus bMaxHP,0+(getrefine()*100); bonus2 bSkillAtk,MC_MAMMONITE,20;','','');
REPLACE INTO `item_db_re` VALUES ('18535','Pumpkin_Hat_2010','Pumpkin Hat 2010','5','20','10','200','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','206','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18536','Foxtail','Foxtail','5','20','10','100','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','711','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bVariableCastrate,-1; bonus bMatk,10;','','');
REPLACE INTO `item_db_re` VALUES ('18537','Malangdo_Hat','Malangdo Hat','5','20','10','100','0','0','5','0','1','4294967295','63','2','256','0','0',NULL,'1','726','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,6;','','');
@@ -7912,7 +7921,7 @@ REPLACE INTO `item_db_re` VALUES ('18543','Witchs_Hat','Witch Hat','5','20','10'
REPLACE INTO `item_db_re` VALUES ('18544','Blrabbit_Hband','Blrabbit Hband','5','20','10','100','0','0','6','0','0','4294967295','63','2','256','0','30',NULL,'1','718','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18545','Whrabbit_Hband','Whrabbit Hband','5','20','10','100','0','0','6','0','0','4294967295','63','2','256','0','30',NULL,'1','719','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18546','Lover_In_Mouth','Sweetheart Gum Of Mouth','5','20','10','300','0','0','0','0','0','4294967295','63','2','1','0','0',NULL,'0','720','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('18547','Campus_Festival','Campus Festival Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','721','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill \"AL_INCAGI\",2;','','');
+REPLACE INTO `item_db_re` VALUES ('18547','Campus_Festival','Campus Festival Hat','5','20','10','100','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','721','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill AL_INCAGI,2;','','');
REPLACE INTO `item_db_re` VALUES ('18548','Tiny_Hat','Taini Cap','5','20','10','30','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'1','722','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bInt,1; bonus bAgi,1;','','');
REPLACE INTO `item_db_re` VALUES ('18549','Nabi_Hair_Pin','Butterfly Hairpin','5','20','10','200','0','0','3','0','1','4294967295','63','2','256','0','20',NULL,'1','723','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,3;','','');
REPLACE INTO `item_db_re` VALUES ('18550','Asgard_Blessing','Asgard Blessing','5','20','10','300','0','0','3','0','1','4294967295','63','2','256','0','30',NULL,'1','724','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAllStats,1;','','');
@@ -8036,7 +8045,7 @@ REPLACE INTO `item_db_re` VALUES ('18667','Cat_Lace_Hairband','Cat Lace Hairband
REPLACE INTO `item_db_re` VALUES ('18668','Droopy_Turtle_Hat','Droopy Turtle Hat','5','20','10','300','0','0','1','0','1','4294967295','63','2','256','0','0',NULL,'1','694','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('18669','Cowhide_Hat','Cowhide Hat','5','20','10','200','0','0','3','0','1','2147483646','63','2','256','0','0',NULL,'1','819','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2;','','');
REPLACE INTO `item_db_re` VALUES ('18670','Hankie_In_Mouth','Handkerchief In Mouth','5','20','10','100','0','0','1','0','0','4294967295','63','2','1','0','12',NULL,'0','818','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus2 bSubRace,RC_DemiHuman,3;','','');
-REPLACE INTO `item_db_re` VALUES ('18671','Rudolf_Hairband','Rudolf Hairband','5','20','10','200','0','0','5','0','0','4294967295','63','2','256','0','30',NULL,'1','836','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,\"AL_INCAGI\",10,50; bonus2 bAddItemHealRate,Carrot,2000;','','');
+REPLACE INTO `item_db_re` VALUES ('18671','Rudolf_Hairband','Rudolf Hairband','5','20','10','200','0','0','5','0','0','4294967295','63','2','256','0','30',NULL,'1','836','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,AL_INCAGI,10,50; bonus2 bAddItemHealRate,Carrot,2000;','','');
REPLACE INTO `item_db_re` VALUES ('18672','Tare_Pope','Flap Pope','5','20','10','300','0','0','0','0','0','4294967295','63','2','256','0','0',NULL,'0','817','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,1; bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('18673','Tare_Pope_','Chibi Pope','5','20','10','300','0','0','0','0','1','4294967295','63','2','256','0','0',NULL,'1','817','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bMdef,1; bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('18674','Planewing_Hat','Planewing Hat','5','20','10','200','0','0','3','0','1','2147483646','63','2','256','0','0',NULL,'1','11','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAgi,3;','','');
@@ -8337,6 +8346,13 @@ REPLACE INTO `item_db_re` VALUES ('19787','C_Devoted_Eyes','Costume: Devoted Eye
REPLACE INTO `item_db_re` VALUES ('19788','C_Heart_Eyepatch','Costume: Heart Eyepatch','5','0','0','0','0','0','0','0','0','4294967295','63','2','2048','0','1',NULL,'0','779','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('19829','C_Straw_Hat','C Straw Hat','5','20','10','0','0','0','0','0','0','4294967295','63','2','1024','0','0',NULL,'0','146','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('19871','C_DecorationOfMusic_Accessory','Decoration of Music','5','20','10','0','0','0','0','0','0','4294967295','63','2','2048','0','0',NULL,'0','1074','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','sc_start SC_DECORATION_OF_MUSIC,-1,0;','sc_end SC_DECORATION_OF_MUSIC;');
+REPLACE INTO `item_db_re` VALUES ('19903','C_Witchs_Hat','C Witchs Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','1',NULL,'0','717','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bCastrate,-10;','','');
+REPLACE INTO `item_db_re` VALUES ('19917','C_Gloomy_Pumpkin_Hat','C Gloomy Pumpkin Hat','5','0','0','0','0','0','0','0','0','4294967295','63','2','1024','0','1',NULL,'0','691','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bSpeedRate,25;','','');
+REPLACE INTO `item_db_re` VALUES ('19918','C_Lude_Mask','C Lude Mask','5','0','0','0','0','0','0','0','0','4294967295','63','2','6144','0','1',NULL,'0','802','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bHealPower2,20; bonus bAddItemHealRate,20;','','');
+REPLACE INTO `item_db_re` VALUES ('19919','C_Cube_Mask_','C Cube Mask ','5','0','0','0','0','0','0','0','0','4294967295','63','2','6144','0','1',NULL,'0','472','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bAspdRate,10;','','');
+REPLACE INTO `item_db_re` VALUES ('19920','C_Adv_Whisper_Mask','C Adv Whisper Mask','5','0','0','0','0','0','0','0','0','4294967295','63','2','7168','0','1',NULL,'0','458','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bFlee,20;','','');
+REPLACE INTO `item_db_re` VALUES ('22067','Witch_Shoes','Witch Shoes','5','3500','1750','400','0','0','10','0','0','2147483646','63','2','64','0','0',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','skill ALL_CATCRY, 1; bonus bUnbreakableShoes,0; autobonus3 \"{ }\",1000,7000,ALL_CATCRY,\"{ montransform 1505,420000; }\";','','');
+REPLACE INTO `item_db_re` VALUES ('20183','C_There_Is_Something','C There Is Something','5','0','0','0','0','0','0','0','0','4294967295','63','2','3072','0','1',NULL,'0','1091','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('20500','T_Archangel_Wing','T Archangel\'s Wings','5','0','0','100','0','0','0','0','0','4294967295','63','2','8192','0','0',NULL,'0','1','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('20600','Fantastic_Aura','Fantastic Aura','5','0','0','0','0','0','0','0','0','4294967295','63','2','16384','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableHelm,0;','','');
REPLACE INTO `item_db_re` VALUES ('20700','Egir_Manteau','Aegir Mantle','5','200000','100000','300','0','0','10','0','1','4294967295','63','2','4','0','110',NULL,'1','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bUnbreakableGarment,0; bonus bUnbreakableHelm,0;','','');
@@ -8351,8 +8367,13 @@ REPLACE INTO `item_db_re` VALUES ('21004','Alca_Bringer_','Alca Bringer','4','20
REPLACE INTO `item_db_re` VALUES ('21005','Metal_Two_Hand_Sword','Metal Two-Handed Sword','4','20','10','0','95','0','0','1','1','16514','63','2','34','3','0',NULL,'1','3','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('22514','Candy_Holder','Candy Holder','11','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db_re` VALUES ('22540','Runstone_Lux','Lux Anima Rune','11','2','1','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','60000','0',NULL,'0',NULL,'20','1','0','itemskill RK_LUXANIMA,1;','','');
+REPLACE INTO `item_db_re` VALUES ('22669','HALLOWEEN_G_BOX','Halloween Box','2','0','0','20','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 22669,1;','','');
+REPLACE INTO `item_db_re` VALUES ('22670','DARK_INVITATION','Invitation of Darkness','2','10','5','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','.@r = rand(1,3); if (.@r == 1) { specialeffect2 EF_DEVIL; warp \"niflheim\",193,186; } else if(.@r == 2) { heal -500,-1000; sc_start SC_STUN,3000,0; } else { specialeffect2 EF_DEVIL; warp \"niflheim\",347,255; }','','');
+REPLACE INTO `item_db_re` VALUES ('22777','Buff_Gift_Set','Buff Gift Set','2','20','10','100','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','499',NULL,'0',NULL,'0',NULL,'0','getitem 14534,5; getitem 12215,5; getitem 12216,5;','','');
+REPLACE INTO `item_db_re` VALUES ('22837','Integer_Time','Integer Time','2','0','0','0','0','0','0','0','0','4294967295','63','2','0','0','50',NULL,'0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','TmpRouletteBronze += 1;','','');
+REPLACE INTO `item_db_re` VALUES ('22838','Something_Candy_Holder','Something Candy Holder','2','20','10','10','0','0','0','0','0','4294967295','63','2','0','0','0',NULL,'0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','getrandgroupitem 22838,1;','','');
REPLACE INTO `item_db_re` VALUES ('28200','End_Of_The_Horizon','End Of The Horizon','5','2700000','1350000','2400','410','0','0','9','1','1073741824','63','2','34','4','110',NULL,'1','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
-REPLACE INTO `item_db_re` VALUES ('28201','South_Cross','Southern Cross','5','2800000','1400000','2000','480','0','0','9','0','1073741824','63','2','34','4','141',NULL,'1','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,\"GC_CROSSIMPACT\",1,50;','','');
-REPLACE INTO `item_db_re` VALUES ('28202','Southern_Cross_','Southern Cross','5','2800000','1400000','2000','480','0','0','9','1','1073741824','63','2','34','4','141',NULL,'1','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,\"GC_CROSSIMPACT\",1,50;','','');
-REPLACE INTO `item_db_re` VALUES ('28203','Half_BF_Rifle1','Half BF Rifle1','5','0','0','0','50','0','0','9','0','1090519040','63','2','34','3','80',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,8; bonus bCritical,8; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bVariableCastrate,\"GS_TRACKING\",-20; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus bUnbreakableWeapon,0;','','');
+REPLACE INTO `item_db_re` VALUES ('28201','South_Cross','Southern Cross','5','2800000','1400000','2000','480','0','0','9','0','1073741824','63','2','34','4','141',NULL,'1','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','','');
+REPLACE INTO `item_db_re` VALUES ('28202','Southern_Cross_','Southern Cross','5','2800000','1400000','2000','480','0','0','9','1','1073741824','63','2','34','4','141',NULL,'1','21','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus3 bAutoSpell,GC_CROSSIMPACT,1,50;','','');
+REPLACE INTO `item_db_re` VALUES ('28203','Half_BF_Rifle1','Half BF Rifle1','5','0','0','0','50','0','0','9','0','1090519040','63','2','34','3','80',NULL,'1','18','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bHit,8; bonus bCritical,8; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bVariableCastrate,GS_TRACKING,-20; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus bUnbreakableWeapon,0;','','');
REPLACE INTO `item_db_re` VALUES ('28204','Half_BF_Shotgun1','Half BF Shotgun1','5','0','0','0','100','0','0','9','0','1090519040','63','2','34','3','80',NULL,'1','20','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; autobonus \"{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }\",30,6000,BF_WEAPON,\"{ specialeffect2 EF_BASH3D; }\"; bonus bUnbreakableWeapon,0;','','');
diff --git a/sql-files/main.sql b/sql-files/main.sql
index 68b7fb52a..a00a3319b 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -5,9 +5,9 @@
CREATE TABLE IF NOT EXISTS `account_data` (
`account_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`bank_vault` INT(11) UNSIGNED NOT NULL DEFAULT '0',
- `base_exp` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '100',
- `base_drop` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '100',
- `base_death` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '100',
+ `base_exp` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
+ `base_drop` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
+ `base_death` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
PRIMARY KEY (`account_id`)
) ENGINE=MyISAM;
@@ -175,6 +175,7 @@ CREATE TABLE IF NOT EXISTS `char` (
`font` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`unban_time` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`uniqueitem_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
+ `sex` ENUM('M','F','U') NOT NULL DEFAULT 'U',
PRIMARY KEY (`char_id`),
UNIQUE KEY `name_key` (`name`),
KEY `account_id` (`account_id`),
@@ -805,6 +806,8 @@ INSERT INTO `sql_updates` (`timestamp`) VALUES (1395789302); -- 2014-03-25--23-5
INSERT INTO `sql_updates` (`timestamp`) VALUES (1396893866); -- 2014-04-07--22-04.sql
INSERT INTO `sql_updates` (`timestamp`) VALUES (1398477600); -- 2014-04-26--10-00.sql
INSERT INTO `sql_updates` (`timestamp`) VALUES (1400256139); -- 2014-05-17--00-06.sql
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1409590380); -- 2014-09-01--16-53.sql
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1414975503); -- 2014-11-03--00-45.sql
--
-- Table structure for table `sstatus`
diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql
index 89674e1de..36e4891bb 100644
--- a/sql-files/mob_db.sql
+++ b/sql-files/mob_db.sql
@@ -71,10 +71,10 @@ CREATE TABLE `mob_db` (
-- Note: Keep the Sprite_Name field as it is in the game client.
REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',24,1109,0,287,176,1,80,135,30,0,1,24,24,5,52,5,10,12,0,4,23,0x3195,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1);
REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1);
-# REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0x0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0x0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',8,169,0,19,15,1,22,27,5,5,6,20,8,10,17,5,10,12,0,4,24,0x1189,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1);
REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',8,155,0,28,15,1,20,28,0,0,1,12,8,5,28,0,10,12,0,2,27,0x3885,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1);
-# REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1);
REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1);
REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',5,92,0,6,5,1,11,14,0,0,1,13,5,0,13,10,10,12,1,2,24,0x1089,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1);
@@ -85,17 +85,17 @@ REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',25,919,0,329,199,1,37,46
REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1);
REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1);
REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1);
-# REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1);
+-- REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1);
REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',16,595,0,105,70,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1);
REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',19,531,0,159,72,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1);
REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',12,405,0,45,32,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1);
-# REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,0x653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
-# REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,0x163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,0x653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
+-- REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,0x163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',24,1400,0,408,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',14,426,0,59,40,2,42,51,5,0,1,14,28,5,46,5,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1);
REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1);
REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',30,2872,0,601,318,1,150,230,0,0,1,15,20,5,46,15,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1);
-# REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,0x131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,0x131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',29,2334,0,372,226,1,221,245,10,15,1,15,22,5,40,15,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,1201,150,1216,50,0,0,0,0,4086,1);
REPLACE INTO `mob_db` VALUES (1029,'ISIS','Isis','Isis',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1);
REPLACE INTO `mob_db` VALUES (1030,'ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,1011,50,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1);
@@ -111,7 +111,7 @@ REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,0,
REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',25,3900,0,465,94,1,175,187,40,0,1,15,25,0,15,0,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,1003,210,715,200,998,350,0,0,0,0,4072,1);
REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',37,5176,0,800,602,1,305,360,0,10,28,19,32,0,63,20,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1);
REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',17,530,0,109,71,1,54,65,15,0,1,43,17,5,33,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1);
-# REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,0x131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,0x131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',31,3952,0,644,407,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1);
REPLACE INTO `mob_db` VALUES (1045,'MARC','Marc','Marc',36,6900,0,988,625,1,220,280,5,10,1,36,36,20,56,30,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1);
REPLACE INTO `mob_db` VALUES (1046,'DOPPELGANGER','Doppelganger','Doppelganger',72,249000,0,51480,10725,1,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,0x37B5,100,480,480,288,25740,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1);
@@ -143,7 +143,7 @@ REPLACE INTO `mob_db` VALUES (1071,'PIRATE_SKEL','Pirate Skeleton','Pirate Skele
REPLACE INTO `mob_db` VALUES (1072,'KAHO','Kaho','Kaho',60,8409,0,3990,450,1,110,760,5,50,1,55,43,88,80,46,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1);
REPLACE INTO `mob_db` VALUES (1073,'CRAB','Crab','Crab',20,2451,0,163,101,1,71,81,35,0,18,20,15,0,36,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1);
REPLACE INTO `mob_db` VALUES (1074,'SHELLFISH','Shellfish','Shellfish',15,920,0,66,44,1,35,42,35,0,1,12,8,0,32,5,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1);
-# REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1076,'SKELETON','Skeleton','Skeleton',10,234,0,18,14,1,39,47,10,10,1,5,10,0,12,0,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1);
REPLACE INTO `mob_db` VALUES (1077,'POISON_SPORE','Poison Spore','Poison Spore',19,665,0,186,93,1,89,101,0,0,1,19,25,0,24,0,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1);
REPLACE INTO `mob_db` VALUES (1078,'RED_PLANT','Red Plant','Red Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,906,300,914,500,708,50,2269,2,0,0,0,0);
@@ -204,8 +204,8 @@ REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',63,
REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',36,3893,0,988,625,1,265,318,15,10,1,90,36,30,52,20,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1);
REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1);
+-- REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,2179,0,806,407,1,262,324,15,10,1,31,31,20,46,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1);
+-- REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,2179,0,644,407,1,186,216,15,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1);
REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',26,3195,0,393,248,1,120,151,5,30,1,26,26,0,39,5,10,12,0,6,21,0x183,250,1560,360,360,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1);
REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',26,2472,0,393,248,1,118,149,10,0,1,26,24,5,45,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1);
REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',40,4214,0,1238,752,1,315,382,0,60,1,40,20,79,78,20,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1);
@@ -236,12 +236,12 @@ REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',35,3089,0,800,4
REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',34,3413,0,810,492,1,180,205,10,25,24,34,58,38,60,5,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1);
REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',26,2092,0,521,248,1,120,150,10,5,1,26,54,10,37,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,605,10,757,70,526,2,0,0,0,0,4078,1);
REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,14,12,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,1750,1000,949,850,1010,80,627,40,0,0,0,0,4017,1);
-# REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1);
+-- REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,6354,0,2187,1346,1,500,603,40,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1);
REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',30,2872,0,397,240,1,242,288,0,15,1,15,30,5,42,10,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,1002,800,0,0,0,0,4092,1);
REPLACE INTO `mob_db` VALUES (1170,'SOHEE','Sohee','Sohee',33,5628,0,739,455,1,210,251,0,10,1,33,33,10,58,15,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,507,1000,662,350,0,0,0,0,4100,1);
-# REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1);
-# REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1);
-# REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1);
+-- REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1);
+-- REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1);
+-- REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1);
REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',16,538,0,105,70,1,53,64,10,0,1,40,16,5,30,5,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1);
REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1);
REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',20,894,0,163,101,1,69,80,15,20,1,20,25,65,40,70,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1);
@@ -249,7 +249,7 @@ REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',31,2585,0,967,407,
REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',23,1109,0,240,149,1,127,155,0,10,1,23,23,5,42,0,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,1002,300,0,0,0,0,4064,1);
REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',34,1796,0,591,599,1,180,221,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1);
REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',51,7766,0,2812,825,1,610,734,10,25,1,80,46,1,74,85,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1);
-# REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,0,49500,1650,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1);
REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,0,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0);
@@ -278,7 +278,7 @@ REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',61,18960,0,5900
REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',61,9500,0,4081,2970,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,719,3,0,0,0,0,4226,1);
REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',74,8170,0,5786,4730,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1);
REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1);
-# REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1);
+-- REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1);
REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',46,5562,0,1826,1331,1,298,383,30,5,1,90,15,10,50,35,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,602,1000,757,220,610,250,509,2600,0,0,0,0,4213,1);
REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1435,1520,1,430,590,40,5,1,25,15,10,81,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1);
REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',52,6890,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1);
@@ -288,18 +288,18 @@ REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',57,7256,0,28
REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',79,36140,0,8469,6268,1,1600,2150,55,50,66,68,64,25,135,50,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,984,259,0,0,0,0,4140,1);
REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',27,1716,0,388,242,1,169,208,0,10,1,27,45,15,56,10,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1);
REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,357,226,1,146,177,10,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1);
-# REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1);
-# REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
-# REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1);
-# REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1);
-# REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1);
-# REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1);
+-- REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1);
+-- REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
+-- REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1);
+-- REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1);
+-- REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
+-- REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1);
+-- REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1);
REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,0,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1);
REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,0,2,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1);
REPLACE INTO `mob_db` VALUES (1231,'META_CREAMY','Creamy','Creamy',16,595,0,96,64,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1);
REPLACE INTO `mob_db` VALUES (1232,'META_PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',3,420,0,4,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1);
-# REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1);
+-- REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1);
REPLACE INTO `mob_db` VALUES (1234,'PROVOKE_YOYO','Yoyo','Yoyo',19,879,0,135,85,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1);
REPLACE INTO `mob_db` VALUES (1235,'SMOKING_ORC','Smoking Orc','Smoking Orc',24,1400,0,261,160,1,114,136,10,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
REPLACE INTO `mob_db` VALUES (1236,'META_ANT_EGG','Ant Egg','Ant Egg',4,420,0,5,4,0,1,2,20,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1);
@@ -350,7 +350,7 @@ REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamri
REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',43,3850,0,1155,1320,1,120,280,0,50,1,52,24,88,79,55,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1);
REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',33,2560,0,739,455,9,155,185,10,5,10,20,15,30,100,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1);
REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,32600,0,4950,3000,1,1200,1320,30,10,1,72,110,88,75,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1);
-# REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,0,1,1,12,1120,1600,35,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,0,1,1,2,1280,1560,55,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldier Guardian',56,15670,0,1,1,1,873,1036,35,0,85,56,100,45,103,43,10,12,0,4,22,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -473,14 +473,14 @@ REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelo
REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',33,6300,0,795,453,1,250,305,1,20,1,52,15,10,62,15,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1);
REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',65,16940,0,4207,2843,2,660,980,12,82,90,42,69,45,78,80,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1);
REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',41,7892,0,2278,1552,3,399,719,20,38,1,51,49,22,73,45,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1);
-# REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',55,8082,0,2119,1562,3,121,342,5,23,1,59,14,55,68,15,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1);
REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',27,2098,0,231,149,1,112,134,5,12,1,22,29,5,41,10,10,12,0,7,20,0x91,160,647,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1);
REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',53,8905,0,2591,1799,7,301,351,10,38,72,45,35,39,80,5,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,0,0,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1);
-# REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',56,10392,0,3304,2198,10,311,333,25,59,1,20,18,50,136,11,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1);
REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',46,6900,0,1038,692,1,220,280,10,20,13,42,36,55,66,30,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,516,4800,1951,1,578,1000,0,0,0,0,4232,1);
-# REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',32,2590,0,352,201,2,155,207,0,5,20,44,20,4,49,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1);
REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',63,16029,0,3945,2599,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1);
REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',35,2901,0,370,225,1,248,289,10,5,30,25,55,15,28,25,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1);
@@ -558,19 +558,19 @@ REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',63,18960,0,0,
REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',61,9500,0,0,0,1,850,1032,5,30,57,45,55,5,120,85,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',74,8170,0,0,0,2,450,1170,5,5,1,192,38,45,127,85,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',33,2697,0,0,0,1,197,249,0,10,50,50,40,35,69,40,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Umbala
+-- Umbala
REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',71,218652,0,33095,18214,3,2219,3169,10,51,91,85,30,85,150,60,10,12,2,7,67,0x37B5,135,874,1344,576,16547,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1);
REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',50,8791,0,2763,1493,3,499,589,15,33,1,75,55,1,78,45,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,1951,80,1964,1,2270,10,7100,3000,0,0,0,0,4177,1);
REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',34,1874,0,679,442,1,191,243,45,12,1,34,10,0,40,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1);
REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',42,4104,0,1238,752,10,309,350,12,45,1,40,20,79,92,20,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1);
-# REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',51,9200,0,1926,1353,1,570,657,32,36,1,41,69,5,85,155,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,921,1000,0,0,0,0,4259,1);
REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',39,3977,0,886,453,10,84,105,10,28,15,35,29,15,100,42,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,512,100,7182,100,5116,10,0,0,0,0,4260,1);
REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',41,4457,0,1790,833,1,395,480,30,19,1,41,31,10,45,30,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,513,1000,7198,1000,5116,5,0,0,0,0,4261,1);
REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',49,5188,0,1098,1453,8,215,430,10,19,1,40,30,30,90,50,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,711,500,0,0,0,0,4309,1);
-# REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,0,87250,27895,1,10000,30000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,4000,7126,10000,2110,4500,0,0,0,0);
-# Niflheim
+-- Niflheim
REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',58,6841,0,4011,1824,1,418,656,28,31,0,42,42,27,46,28,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,0,0,0,0,0,0,4278,1);
REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',62,12437,0,4517,2963,2,647,1065,47,38,0,30,5,45,62,22,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1);
REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',71,23470,0,6641,4314,2,1476,2317,39,44,0,66,54,74,81,43,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,0,0,0,0,0,0,4191,1);
@@ -580,7 +580,7 @@ REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',40,4559,0,414,306,1,299,
REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',36,3214,0,392,247,2,287,451,14,10,0,59,21,18,36,21,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,0,0,0,0,0,0,4193,1);
REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',51,7186,0,2314,1297,1,317,498,16,51,0,28,26,47,66,14,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1);
REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',88,1214138,0,87264,35891,3,1647,2576,26,52,0,1,90,124,74,45,14,12,2,7,62,0x1A4,170,854,2016,480,43632,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1);
-# Louyang
+-- Louyang
REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',56,9981,0,2199,1022,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,0,0,0,0,0,0,0,0,4328,1);
REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',62,14390,0,4023,2750,2,650,1010,42,5,58,15,20,60,80,50,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1);
REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Long',54,9136,0,3030,769,2,550,789,39,10,55,62,55,25,72,22,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1);
@@ -653,12 +653,12 @@ REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',75,17281,0,0,
REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3016,0,0,0,1,71,82,10,30,77,28,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',31,64500,0,211,412,1,135,270,5,70,30,50,20,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1);
REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',70,193000,0,59175,10445,2,1450,1770,20,20,1,85,78,35,140,60,10,12,2,6,60,0x37B5,150,1020,288,144,29587,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,1002,1000,2231,5,0,0,0,0,4302,1);
-# Ayothaya
+-- Ayothaya
REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',52,10234,0,3812,55,1,489,534,15,35,80,62,38,75,72,15,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,0,0,0,0,0,0,0,0,4304,1);
REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',38,2396,0,165,1212,1,266,307,5,19,25,67,12,45,60,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1);
REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',50,5880,0,206,1322,1,125,765,5,42,50,125,1,66,75,50,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1);
-# Some more G_Mobs and Xmas_Orc
+-- Some more G_Mobs and Xmas_Orc
REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,0,261,160,1,104,126,10,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1);
REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',12,405,0,0,0,4,26,35,0,25,1,12,24,0,36,15,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',56,8071,0,0,0,3,467,621,28,26,1,66,47,60,68,44,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -684,7 +684,7 @@ REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po L
REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',32,3520,0,0,0,1,220,260,0,0,45,15,36,10,48,15,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,12,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
-# Einbroch
+-- Einbroch
REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',26,889,0,492,249,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1);
REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',56,7950,0,3563,1768,1,723,812,29,35,60,52,35,21,67,32,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1);
REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',50,8812,0,2799,1802,1,841,980,35,5,62,32,42,24,61,55,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1);
@@ -698,9 +698,9 @@ REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',71,810
REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',86,560733,0,31010,32011,1,2740,5620,39,41,85,51,30,25,93,84,10,12,2,0,60,0x37B5,220,128,1104,240,15505,607,5500,5104,3500,732,5500,7093,6000,1230,10,13017,1,617,1000,7327,5000,1242,50,1531,20,0,0,0,0,4342,1);
REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',68,15895,0,0,0,1,500,889,23,10,20,69,55,5,79,77,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',43,5523,0,1024,693,1,164,494,0,8,0,31,21,50,64,85,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Hellion Revenant
+-- Hellion Revenant
REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',88,286900,0,1,1,2,50,3150,25,50,1,80,50,99,130,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0);
-# Lighthalzen
+-- Lighthalzen
REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',23,100,0,99,55,1,48,63,0,90,1,200,4,5,120,5,10,12,0,4,64,0x3985,200,140,864,430,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',36,2209,0,268,172,9,52,63,0,5,24,18,23,30,45,5,10,12,0,2,42,0x1089,300,140,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1);
REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,3189,0,1800,1100,3,290,480,10,15,21,42,31,50,41,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1);
@@ -708,42 +708,42 @@ REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',85,253221
REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',59,23900,0,4256,920,2,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1);
REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',53,9280,0,4355,1768,1,329,762,29,25,80,41,59,75,62,15,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1);
REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',56,7950,0,4821,3822,6,723,812,17,30,60,62,25,59,85,32,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1);
-# Normal advanced class mobs
+-- Normal advanced class mobs
REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',91,88402,0,100000,116460,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,603,30,2229,12,2317,1,13421,1,0,0,0,0,4358,1);
REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',87,60199,0,100000,99800,1,2020,2320,23,12,45,138,31,19,99,30,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,1284,1,2514,1,1262,3,1264,30,678,110,2336,2,0,0,0,0,4360,1);
REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',83,78690,0,100000,112540,1,1890,2390,59,10,90,62,99,35,98,66,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,1,1361,110,2104,10,2318,1,603,50,0,0,0,0,4362,1);
REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',90,61282,0,100000,117800,1,1300,2053,35,60,1,9,97,145,88,40,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,2,1602,200,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1);
REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',82,58900,0,100000,118260,14,1226,1854,25,15,1,145,27,32,134,80,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,603,50,1745,1,0,0,0,0,4368,1);
REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',92,47280,0,100000,116470,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,603,50,1646,1,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1);
-# MVP Slaves
+-- MVP Slaves
REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,347590,0,18000,10000,1,4238,5040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,211230,0,18000,10000,1,3189,5289,27,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',99,310000,0,18000,10000,1,4822,5033,66,36,100,73,112,35,136,60,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,182910,0,18000,10000,1,1688,2580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',99,209000,0,18000,10000,14,1892,5113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,189920,0,18000,10000,1,497,2094,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,617,10,0,0,0,0);
-# MVP Monsters
+-- MVP Monsters
REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4835600,1569970,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,2417800,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1);
REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,2041700,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1);
REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',99,1460000,0,4002340,1421000,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,2001170,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1);
REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4257000,1318800,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,2128500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1);
REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',99,1349000,0,4093000,1526000,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,2046500,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1);
REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4008200,1636700,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,2004100,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1);
-# 1'st Class Mobs
+-- 1'st Class Mobs
REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,4870,98,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1);
REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,4204,21,1,693,889,9,8,1,102,34,20,83,30,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,2,13004,10,0,0,0,0,4348,1);
REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',66,7110,0,4008,35,1,750,913,42,6,5,36,50,15,89,60,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1);
REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',59,6980,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1);
REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',60,7899,0,4090,86,9,684,904,12,5,48,100,10,15,118,40,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1);
REPLACE INTO `mob_db` VALUES (1657,'RAWREL','Rawrel','Laurell Weinder',61,6168,0,4620,30,1,430,517,8,48,1,41,5,120,45,10,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1);
-# 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs.
+-- 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs.
REPLACE INTO `mob_db` VALUES (1658,'B_YGNIZEM','Ygnizem','Egnigem Cenia',79,214200,0,258760,86000,1,3890,5690,48,25,82,60,45,31,110,40,10,12,1,7,43,0x37B5,100,1008,864,288,129380,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1);
REPLACE INTO `mob_db` VALUES (1659,'G_WHIKEBAIN','Whikebain','Wickebine Tres',62,7320,0,0,0,1,593,789,9,12,1,102,34,23,74,30,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',66,7110,0,0,0,1,650,813,42,6,5,36,40,15,80,60,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',59,6980,0,0,0,1,796,1059,14,30,1,31,41,93,60,30,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',60,7899,0,0,0,9,584,804,12,5,48,100,10,20,118,40,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',61,6168,0,0,0,1,330,417,8,48,1,41,5,100,45,10,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Juperos
+-- Juperos
REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,3900,1800,9,800,900,10,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,4300,2000,9,700,800,15,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,3100,2700,9,800,900,8,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -772,7 +772,7 @@ REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',89,493
REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,0,0,0,1,0,0,100,99,1,1,1,1,1,1,10,12,1,2,42,0xC3,160,1120,552,511,0,0,0,0,0,0,0,12194,100,12706,300,12708,300,7888,5000,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,10880,0,0,0,1,125,765,5,42,50,155,1,66,112,60,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0);
-# Thanatos Tower & Abyss
+-- Thanatos Tower & Abyss
REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',56,5099,0,2390,1340,2,94,215,7,32,1,96,6,38,91,45,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1);
REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',56,8400,0,2200,2100,3,400,900,0,40,1,30,10,83,105,45,10,12,0,0,88,0x3885,100,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,0,0,0,0,0,0,0,0,4389,1);
REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',43,5700,0,2000,1000,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1);
@@ -814,7 +814,7 @@ REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',5
REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',46,7360,0,0,0,1,475,560,10,25,1,69,40,55,87,30,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',72,12000000,0,3000000,2000000,1,5000,10000,99,99,88,180,70,75,180,65,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Kiel Dungeon monsters
+-- Kiel Dungeon monsters
REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiehl',90,523000,0,36500,23405,3,1682,3311,28,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',90,1523000,0,2356200,512602,3,3280,6560,28,32,100,130,30,160,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,1178100,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1);
REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',75,37520,0,8890,5420,2,1800,2770,30,30,50,58,50,51,92,40,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,999,200,7317,500,1270,5,985,10,2517,20,0,0,0,0,4401,1);
@@ -833,7 +833,7 @@ REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',15,471,0,0,0,1,46,55,
REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',23,1109,0,0,0,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',79,22408,0,0,0,1,827,1100,48,38,1,74,50,57,77,69,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,0,0,0,1,100,200,100,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Odin monsters
+-- Odin monsters
REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',99,3567200,0,2854900,3114520,3,5560,9980,25,42,100,120,30,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,1427450,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1);
REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',70,87544,0,27620,10,2,1110,1930,20,15,1,69,70,50,67,52,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1);
REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',69,83422,0,20620,10,2,1110,1780,20,15,1,69,60,50,76,52,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1);
@@ -851,7 +851,7 @@ REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',83,103
REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',99,1567200,0,10000,10000,3,5560,9980,25,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430,0,0,0,1,60,71,40,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Rachel / Ice Dungeon monsters
+-- Rachel / Ice Dungeon monsters
REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',89,2298000,0,962175,276445,3,5880,9516,10,20,100,115,98,78,111,50,10,12,2,0,68,0x37B5,200,1344,2880,576,481087,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1);
REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',73,29620,0,9780,6622,1,103,1109,15,35,1,32,27,132,69,15,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,0,0,0,0,0,0,4409,1);
REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',69,34900,0,13560,4300,1,750,1800,33,11,74,74,52,35,59,56,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,20,12183,20,7563,100,2366,20,0,0,0,0,4410,1);
@@ -948,7 +948,7 @@ REPLACE INTO `mob_db` VALUES (1860,'E_COCO','Coco','Coco',17,817,0,120,78,1,56,6
REPLACE INTO `mob_db` VALUES (1861,'E_CHOCO','Choco','Choco',43,4278,0,1265,1265,1,315,402,5,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1);
REPLACE INTO `mob_db` VALUES (1862,'E_MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1);
REPLACE INTO `mob_db` VALUES (1863,'E_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',25,4500,0,0,0,1,292,406,14,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Cursed Abbey
+-- Cursed Abbey
REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',77,43000,0,12000,8500,1,1055,1655,35,45,1,30,50,1,75,35,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,0,0,0,0,0,0,0,0,4435,1);
REPLACE INTO `mob_db` VALUES (1865,'RAGGED_ZOMBIE','Ragged Zombie','Ragged Zombie',75,25000,0,8500,5500,9,1200,1500,25,35,1,77,25,10,101,50,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,0,0,0,0,0,0,4436,1);
REPLACE INTO `mob_db` VALUES (1866,'HELL_POODLE','Hell Poodle','Hell Poodle',71,9000,0,4000,3000,1,400,600,35,20,5,26,14,5,39,10,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1);
@@ -965,7 +965,7 @@ REPLACE INTO `mob_db` VALUES (1876,'E_LORD_OF_DEATH','Lord of the Dead','Lord of
REPLACE INTO `mob_db` VALUES (1877,'CRYSTAL_5','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Eclipse Pet','Eclipse',6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Moscovia monsters
+-- Moscovia monsters
REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Wood Goblin',42,6982,0,2201,1552,1,600,620,32,3,1,5,45,45,55,155,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1881,'LES','Les','Les',39,3080,0,1521,912,1,102,113,0,17,1,33,12,32,52,38,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1882,'VAVAYAGA','Baba Yaga','Baba Yaga',49,7444,0,2583,2583,2,255,387,4,29,1,76,24,88,55,18,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0);
@@ -973,7 +973,7 @@ REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzhas','Uzhas',61,13707,0,4002,3003,
REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Mavka','Mavka',63,19200,0,8301,6353,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gopinich','Gopinich',85,299321,0,45250,16445,3,1868,6124,20,42,50,65,55,103,152,35,10,12,2,2,62,0x37B5,150,1536,864,432,22625,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Mavka','Mavka',63,19200,0,0,0,7,589,623,32,19,1,42,55,35,89,177,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
+-- Additional Monsters
REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',72,8636,0,0,0,2,671,983,55,43,69,41,59,5,67,100,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1888,'GARM_BABY_R','Garm Baby','Baby Hatii',61,15199,0,100,100,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1889,'GARM_R','Marozka\'s Guard','Marozka\'s Guard',73,100000,0,1000,1000,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -987,12 +987,12 @@ REPLACE INTO `mob_db` VALUES (1896,'EVENT_KATRINN','Katrinn','Kathryne Keyron',9
REPLACE INTO `mob_db` VALUES (1897,'EVENT_BAPHOMET_','Baphomet','Baphomet',81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1898,'EVENT_ZOMBIE','Zombie','Zombie',12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1899,'SWORD_GUARDIAN_','Sword Guardian','Sword Guardian',86,152533,0,0,0,2,7590,9140,60,33,110,40,54,65,125,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,0,0,0,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,0,0,0,12,1840,2520,40,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1901,'E_CONDOR','Condor','Condor',5,8000,0,100,100,1,200,400,10,15,1,13,10,25,95,10,10,12,0,8,26,0x1089,150,1148,648,480,0,0,0,0,0,0,0,7781,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1904,'BOMBPORING','Bomb Poring','Bomb Poring',28,1000000,0,461,284,1,120,320,100,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# WoE Second Edition; Battle Fields
+-- WoE Second Edition; Battle Fields
REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,600000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1906,'BARRICADE_','Barricade','Barricade',98,150,0,0,0,1,0,0,100,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1004,7 +1004,7 @@ REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,150,0
REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,150,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,250,0,0,0,0,1,2,100,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Satan Morroc
+-- Satan Morroc
REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',99,8388607,0,6700000,4500000,2,32000,32001,29,65,140,160,30,250,180,50,10,12,2,6,87,0x37B5,100,76,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',99,8388607,0,3600000,3000000,2,15000,18000,29,65,140,160,30,250,180,40,10,12,2,6,87,0x37B5,100,576,540,432,3600000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',97,190000,0,61000,140000,1,7000,8600,20,35,150,152,30,180,186,70,10,12,2,8,27,0x37B5,110,576,540,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0);
@@ -1015,7 +1015,7 @@ REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Incarna
REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',97,1200000,0,0,0,1,16000,16001,20,5,120,83,20,10,166,50,10,12,1,6,67,0x37B5,150,576,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',96,1200000,0,0,0,2,16000,16001,15,37,40,200,20,60,100,37,10,12,1,6,69,0x37B5,150,212,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',98,1200000,0,0,0,1,16000,16001,18,54,60,60,30,220,125,20,10,12,1,6,68,0x37B5,150,1536,540,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# God Item Creation (WoE SE); Catacombs
+-- God Item Creation (WoE SE); Catacombs
REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Jakk',38,300,0,0,0,1,5,10,5,30,1,38,38,43,75,45,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,3000,1062,3000,0,0,535,3000,535,3000,535,3000,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',34,100,0,0,0,1,5,10,0,45,1,51,14,0,60,0,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1059,5000,1059,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1041,21 +1041,21 @@ REPLACE INTO `mob_db` VALUES (1947,'PIAMETTE_','Piamette','Piamette',90,500000,0
REPLACE INTO `mob_db` VALUES (1948,'G_YGNIZEM','Ygnizem','Egnigem Cenia',58,11200,0,0,0,1,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN','Camp Guardian','Camp Guardian',86,457599,0,0,0,2,7590,9140,60,33,110,40,5,65,125,65,14,16,2,7,80,0x2085,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN','Camp Guardian','Camp Guardian',80,241212,0,0,0,12,1840,2520,40,62,95,80,5,90,165,55,14,16,2,7,80,0x2085,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Ravies Sister's 'Valyrie's Gift' monsters.
+-- Ravies Sister's 'Valyrie's Gift' monsters.
REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,0,0,0,0,0,0,100,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0);
-# ?
+-- ?
REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,3000,7849,4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Endless Tower
+-- Endless Tower
REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,8000000,0,4000000,2000000,2,32000,64000,60,40,1,50,80,220,220,30,10,12,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,5400000,0,2700000,1350000,12,32000,40000,44,66,1,70,40,250,220,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1);
REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,0,0,0,12,4040,4720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,0,0,0,12,2040,2720,44,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
+-- Additional Monsters
REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',10,15,0,0,0,1,13,20,100,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2396,993,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1964,'NIGHTMARE_T','Nightmare','Nightmare',30,2000,0,512,387,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1068,7 +1068,7 @@ REPLACE INTO `mob_db` VALUES (1970,'E_OBEAUNE','Obeune','Obeune',31,3952,0,1288,
REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',19,1017,0,270,170,1,74,85,20,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1);
REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',21,2087,0,436,280,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1);
REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0);
-# WoE SE Guild Dungeon
+-- WoE SE Guild Dungeon
REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',84,47222,0,30000,24000,2,2666,3609,20,40,30,74,1,180,105,1,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7054,5335,7751,3000,2365,10,2748,2,2528,10,934,1500,2135,20,0,0,0,0,4450,1);
REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder master',70,24150,0,9000,11400,6,1723,2300,17,30,60,62,25,89,85,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,603,2,2749,2,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',72,29665,0,12332,10379,1,1446,2979,40,30,60,77,35,57,77,32,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,714,2);
@@ -1076,12 +1076,12 @@ REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Meta
REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Apocalypse',86,65433,0,46666,32000,2,5733,6073,62,23,1,48,30,98,110,85,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,999,2500,7094,2400,7093,2200,2506,20,985,5,2391,1,0,0,0,0,1484,1);
REPLACE INTO `mob_db` VALUES (1979,'ZAKUDAM','Zukadam','Zakudam',82,43699,0,27213,16300,3,2000,3227,30,30,65,65,35,75,80,15,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,1176000,0,100000,100000,1,1180,1400,20,10,1,106,25,40,72,20,10,12,1,7,22,0x37B5,100,964,648,300,100000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,0,0,0,0,507,1800,0,0,0,0,0,0);
-# Orc Dungeon Instance
+-- Orc Dungeon Instance
REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Safeguard Chief',88,111111,0,3618,1639,1,428,533,15,5,55,46,55,35,82,40,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Sniper',85,62000,0,1729,1787,9,1310,1390,10,5,1,44,25,20,125,20,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Depraved Orc Spirit',87,80087,0,4501,67,1,896,1159,14,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Shaman Cargalache',58,50058,0,4870,98,1,823,1212,35,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Another World (13.1)
+-- Another World (13.1)
REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',37,5176,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',106,39500,0,23700,13825,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,516,3000,0,0,0,0,0,0,4442,1);
REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',110,45662,0,27397,15982,2,15000,16000,40,25,112,43,30,5,131,12,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4447,1);
@@ -1093,24 +1093,24 @@ REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',108,41220,0,30854,
REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',111,46708,0,30360,16348,3,8000,8800,38,15,113,42,30,108,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,926,5000,936,3500,954,2000,1408,20,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',104,32600,0,16300,11410,1,9000,9900,29,5,104,56,30,20,116,4,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,955,9000,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1);
REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',80,13680,0,6840,3420,1,600,720,25,5,102,23,30,10,86,2,10,12,1,3,62,0x308D,150,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,712,1000,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,500,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',85,253221,0,45250,16445,3,1868,6124,20,55,52,65,44,112,152,35,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,500,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',106,39500,0,0,0,2,10000,11000,20,17,106,40,30,25,115,6,10,12,1,2,22,0x108B,150,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',105,34600,0,0,0,1,5000,5500,28,15,105,60,30,15,115,5,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',80,12000,0,3600,4800,2,948,1115,20,20,80,33,15,3,75,10,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1);
-# REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',50,8000,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12190,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',72,56380,0,0,0,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',50,8000,0,3982,1766,1,585,813,29,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12190,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',72,56380,0,0,0,2,560,1446,10,15,38,65,34,80,102,35,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',63,16029,0,0,0,2,399,1090,12,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',82,4000000,0,100000,100000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',82,2000000,0,100000,100000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',66,500000,0,10,10,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x120,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',40,99999,0,1088,622,1,2100,2500,100,20,1,20,29,0,180,20,10,12,1,1,49,0x120,100,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',15,99999,0,50,33,1,335,395,100,10,1,8,7,0,60,0,10,12,1,1,29,0x120,150,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Another World (13.2)
+-- REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',40,99999,0,1088,622,1,2100,2500,100,20,1,20,29,0,180,20,10,12,1,1,49,0x120,100,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',15,99999,0,50,33,1,335,395,100,10,1,8,7,0,60,0,10,12,1,1,29,0x120,150,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Another World (13.2)
REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',82,18300,0,6100,4100,1,410,710,10,5,1,23,30,34,62,2,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,0,0,0,0,0,0,4444,1);
REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',67,9822,0,1200,1600,0,1,2,56,40,1,1,56,34,1,63,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',83,8780,0,7740,5200,1,600,1450,15,5,1,23,22,12,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,0,0,0,0,0,0,0,0,0,0);
@@ -1123,51 +1123,51 @@ REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',85,23880,0,3040,66
REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggr\'s Shadow',117,3450000,0,4800000,3900000,2,17000,49000,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2400000,0,0,0,0,0,0,6091,5000,7444,5000,2610,5000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,21000,14000,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,0,0,0,0,0,0,4449,1);
REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',101,45200,0,14000,18920,1,12000,13000,78,22,0,10,82,25,60,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',10,15,0,0,0,1,160,360,99,99,65,50,25,5,48,75,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,14550,5000,14546,5000,12355,50,6092,2000,7175,2000,7174,2000,529,3000,0,0,0,0,530,3000);
+-- REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',10,15,0,0,0,1,160,360,99,99,65,50,25,5,48,75,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,14550,5000,14546,5000,12355,50,6092,2000,7175,2000,7174,2000,529,3000,0,0,0,0,530,3000);
REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552000,0,50000,25000,1,3050,4300,25,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000);
REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',114,42900,0,0,0,1,10000,15000,35,44,1,23,12,145,102,60,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,2,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,10,0,1,100,150,100,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,11708,2000,11708,4000,11708,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1);
+-- REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,2,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,10,0,1,100,150,100,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,11708,2000,11708,4000,11708,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1);
REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hiden Priest',90,240000,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x37B5,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion',80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x37B5,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,8578,0,0,0,1,1000,1103,15,25,1,75,55,1,93,45,10,12,0,6,27,0x120,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,299,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',90,200000,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x120,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x120,170,576,576,480,0,0,0,0,0,0,0,6154,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',90,5000,15,0,0,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',90,10000,15,0,0,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x120,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x120,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x120,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# ****
-# NC Mechanic Summons
+-- REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,8578,0,0,0,1,1000,1103,15,25,1,75,55,1,93,45,10,12,0,6,27,0x120,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,299,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',90,200000,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x120,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',53,11280,0,0,0,1,780,930,10,20,1,24,39,0,72,25,10,12,1,1,69,0x120,170,576,576,480,0,0,0,0,0,0,0,6154,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',90,5000,15,0,0,1,10,160,10,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',90,10000,15,0,0,1,300,450,10,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,570,950,35,35,64,85,40,25,88,60,10,12,2,0,47,0x120,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,950,1146,30,35,58,87,55,35,132,65,10,12,1,0,67,0x120,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1160,1440,30,30,77,139,80,35,159,65,10,12,2,0,87,0x120,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- ****
+-- NC Mechanic Summons
REPLACE INTO `mob_db` VALUES (2042,'SILVERSNIPER','Silver Sniper','Silver Sniper',100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2043,'MAGICDECOY_FIRE','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2044,'MAGICDECOY_WATER','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2045,'MAGICDECOY_EARTH','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2046,'MAGICDECOY_WIND','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2047,'W_NAGA','Naga','Naga',99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2049,'W_BRADIUM_GOLEM','Bradium Golem','Bradium Golem',99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3895,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2052,'E_DARK_LORD','Dark Lord','Dark Lord',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2055,'E_INCUBUS','Incubus','Incubus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2056,'E_ZHERLTHSH','Zherlthsh','Zealotus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,2,1,0,1,1,1,1,1,1,10,12,2,6,20,0x120,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2052,'E_DARK_LORD','Dark Lord','Dark Lord',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2055,'E_INCUBUS','Incubus','Incubus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2056,'E_ZHERLTHSH','Zherlthsh','Zealotus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2057,'E_CRAMP','Cramp','Cramp',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2058,'M_MIMIC','Mimic','Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2059,'M_DISGUISE','Disguise','Disguise',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2060,'M_ALICE','Alice','Alice',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2061,'E_STAPO','Stapo','Stapo',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2062,'E_POPORING','Poporing','poporing',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2063,'E_DROPS','Drops','Drops',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2064,'E_MAGMARING','Magmaring','Magmaring',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2058,'M_MIMIC','Mimic','Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2059,'M_DISGUISE','Disguise','Disguise',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2060,'M_ALICE','Alice','Alice',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2061,'E_STAPO','Stapo','Stapo',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2062,'E_POPORING','Poporing','poporing',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2063,'E_DROPS','Drops','Drops',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2064,'E_MAGMARING','Magmaring','Magmaring',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,0,74288,77950,2,1060,2022,7,36,140,99,30,109,100,90,10,12,2,0,63,0x37B5,200,1150,1150,288,37144,0,0,0,0,0,0,7444,5000,985,1000,984,1000,607,500,1377,100,1422,100,1471,100,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,5890,0,1070,890,1,171,270,0,39,69,14,41,60,69,20,10,12,1,5,61,0x91,200,672,380,288,0,0,0,0,0,0,0,950,9000,951,500,747,100,748,50,710,10,995,5,2334,1,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,0,899,1023,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,963,9000,956,600,1053,500,1054,500,995,5,1249,5,13027,1,0,0,0,0,0,0);
@@ -1175,12 +1175,12 @@ REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mul
REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,0,720,512,1,192,234,9,12,69,30,45,5,59,5,10,12,1,2,42,0x3885,150,1250,580,360,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,0,659,544,1,166,201,3,10,54,14,40,35,44,10,10,12,0,2,44,0x3885,155,1450,960,480,0,0,0,0,0,0,0,917,3000,7053,1000,2612,200,508,100,510,50,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,0,622,450,1,140,175,9,10,32,23,38,20,45,10,10,12,1,6,22,0x118B,250,530,530,384,0,0,0,0,0,0,0,517,3000,7267,500,757,250,1505,100,1011,10,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Vadon','Vadon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Vadon','Vadon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2076,'S_WIND_GHOST','Shadow of Deception','Shadow of Deception',105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2077,'S_SKOGUL','Shadow of Illusion','Shadow of Illusion',105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2078,'S_SUCCUBUS','Shadow of Pleasure','Shadow of Pleasure',105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Crystal','Crystal',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2081,'E_HYDRA','Suspicious Hydra','Strange Hydra',34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2082,'G_PIRANHA','Piranha','Piranha',75,4522,0,0,0,1,182,223,2,10,69,45,30,30,66,35,10,12,1,5,61,0x3295,200,768,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2308,'KO_KAGE','Zanzou','Zanzou',1,50,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,7,20,0x0,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql
index 2367c634a..b2f54ed73 100644
--- a/sql-files/mob_db2.sql
+++ b/sql-files/mob_db2.sql
@@ -69,45 +69,45 @@ CREATE TABLE `mob_db2` (
-- Structure of Database :
-- REPLACE INTO `mob_db2` VALUES (ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper);
--- rAthena Dev Team
-#REPLACE INTO `mob_db2` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
-#REPLACE INTO `mob_db2` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x1685,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1);
-#REPLACE INTO `mob_db2` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
-#REPLACE INTO `mob_db2` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,0x1973,120,500,672,480,92100,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
+-- Athena Dev Team
+-- REPLACE INTO `mob_db` VALUES (1900,'VALARIS','Valaris','Valaris',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
+-- REPLACE INTO `mob_db` VALUES (1901,'VALARIS_WORSHIPPER','Valaris\'s Worshipper','Valaris\'s Worshipper',50,8578,0,2706,1480,1,487,590,15,25,1,75,55,1,93,45,10,12,0,6,27,0x1685,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,503,300,2405,50,0,0,0,0,4129,1);
+-- REPLACE INTO `mob_db` VALUES (1902,'MC_CAMERI','MC Cameri','MC Cameri',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
+-- REPLACE INTO `mob_db` VALUES (1903,'POKI','Poki#3','Poki#3',99,1349000,0,4093000,1526000,9,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,64,0x1973,120,500,672,480,92100,603,5500,617,3000,1723,1000,1228,100,1236,500,617,2500,1234,75,1237,125,1722,250,1724,100,1720,50,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1904,'SENTRY','Sentry','Sentry',99,668000,0,107250,37895,2,3220,4040,35,45,1,152,96,85,120,95,10,10,2,6,67,0x1973,100,1068,768,576,13000,608,1000,750,400,923,3800,1466,200,2256,200,2607,800,714,500,617,3000,984,4300,985,5600,0,0,0,0,4147,1);
--- Custom Hollow Poring (overrrides/collides with META_ANDRE)
-#REPLACE INTO `mob_db2` VALUES (1237,'HOLLOW_PORING','Hollow Poring','Hollow Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10);
--- Custom Fire Poring. Warning, Colides with META_DENIRO
-#REPLACE INTO `mob_db2` VALUES (1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x131,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20);
+-- Custom Hollow Poring (overrrides/collides with META_ANDRE)
+-- REPLACE INTO `mob_db` VALUES (1237,'HOLLOW_PORING','Hollow Poring','Hollow Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,10);
+-- Custom Fire Poring. Warning, Colides with META_DENIRO
+-- REPLACE INTO `mob_db` VALUES (1239,'FIRE_PORING','Fire Poring','Fire Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x131,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,4001,20);
--- Lunar New Year 2008 Event Monster overrides
--- Uncomment if event is enabled, as these drops modifications are nessecary.
-#REPLACE INTO `mob_db2` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1);
-#REPLACE INTO `mob_db2` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1);
-#REPLACE INTO `mob_db2` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1);
+-- Lunar New Year 2008 Event Monster overrides
+-- Uncomment if event is enabled, as these drops modifications are nessecary.
+-- REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',18,1109,0,134,86,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,7869,1500,0,0,4046,1);
+-- REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1);
+-- REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1);
-# iRO St. Patricks Day 2008 Event Monster overrides
-# Uncomment if event is enabled, as these drops modifications are nessecary.
-#REPLACE INTO `mob_db2` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minon','Snake Lord\'s Minon',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minon','Snake Lord\'s Minon',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1843,'SIDE_WINDER_','Snake Lord\'s Minon','Snake Lord\'s Minon',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1844,'G_ISIS_','Snake Lord\'s Minon','Snake Lord\'s Minon',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0);
+-- iRO St. Patricks Day 2008 Event Monster overrides
+-- Uncomment if event is enabled, as these drops modifications are nessecary.
+-- REPLACE INTO `mob_db` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minon','Snake Lord\'s Minon',15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minon','Snake Lord\'s Minon',23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1843,'SIDE_WINDER_','Snake Lord\'s Minon','Snake Lord\'s Minon',43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minon','Snake Lord\'s Minon',47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0);
-# iRO Christmas 2008 Event
-# Uncomment if event is enabled, as these drops modifications are nessecary.
-#REPLACE INTO `mob_db2` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1);
+-- iRO Christmas 2008 Event
+-- Uncomment if event is enabled, as these drops modifications are nessecary.
+-- REPLACE INTO `mob_db` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',38,3581,0,1113,688,1,315,382,5,30,1,38,38,43,75,45,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,282,171,1,118,140,10,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',28,2090,0,461,284,1,140,170,0,50,1,24,30,53,45,100,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,529,1000,530,1000,14546,1000,14550,1000,7174,1000,7175,1000,6092,1000,12355,1250,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,0,3,2,1,13,20,100,0,1,1,1,50,100,100,10,12,1,3,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,604,500,12354,500,14550,500,5136,500,12132,500,12225,500,5811,500,0,0,0,0,4243,1);
-# iRO Halloween 2009 Event
-# Uncomment if event is enabled. Uncomment the skills for Halloween Whisper in mob_skill_db2.
-#REPLACE INTO `mob_db2` VALUES (3014,'HALLOWEEN_WHISPER','Halloween Whisper','Halloween Whisper',1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-#REPLACE INTO `mob_db2` VALUES (3015,'HALLOWEEN_DARK_LORD','Halloween Dark Lord','Halloween Dark Lord',1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- iRO Halloween 2009 Event
+-- Uncomment if event is enabled. Uncomment the skills for Halloween Whisper in mob_skill_db2.
+-- REPLACE INTO `mob_db` VALUES (3014,'HALLOWEEN_WHISPER','Halloween Whisper','Halloween Whisper',1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (3015,'HALLOWEEN_DARK_LORD','Halloween Dark Lord','Halloween Dark Lord',1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# iRO Halloween 2008 Event
-# Uncomment if event is enabled.
-#REPLACE INTO `mob_db2` VALUES (3000,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1);
-#REPLACE INTO `mob_db2` VALUES (3001,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1);
-#REPLACE INTO `mob_db2` VALUES (3002,'ZOMBIE_MASTER','Zombie Master','Zombie Master',62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1);
+-- iRO Halloween 2008 Event
+-- Uncomment if event is enabled.
+-- REPLACE INTO `mob_db` VALUES (3000,'ZOMBIE','Zombie','Zombie',15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1);
+-- REPLACE INTO `mob_db` VALUES (3001,'GHOUL','Ghoul','Ghoul',40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1);
+-- REPLACE INTO `mob_db` VALUES (3002,'ZOMBIE_MASTER','Zombie Master','Zombie Master',62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1);
diff --git a/sql-files/mob_db_re.sql b/sql-files/mob_db_re.sql
index 8a2863b80..66f842a08 100644
--- a/sql-files/mob_db_re.sql
+++ b/sql-files/mob_db_re.sql
@@ -1,15 +1,15 @@
--
--- Table structure for table `mob_db`
+-- Table structure for table `mob_db_re`
--
-DROP TABLE IF EXISTS `mob_db`;
-CREATE TABLE `mob_db` (
+DROP TABLE IF EXISTS `mob_db_re`;
+CREATE TABLE `mob_db_re` (
`ID` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
`Sprite` TEXT NOT NULL,
`kName` TEXT NOT NULL,
`iName` TEXT NOT NULL,
`LV` TINYINT(6) UNSIGNED NOT NULL DEFAULT '0',
- `HP` int(9) UNSIGNED NOT NULL DEFAULT '0',
+ `HP` INT(9) UNSIGNED NOT NULL DEFAULT '0',
`SP` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
`EXP` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
`JEXP` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
@@ -69,890 +69,889 @@ CREATE TABLE `mob_db` (
-- Structure of Database :
-- REPLACE INTO `mob_db` VALUES (ID,'Sprite_Name','kROName','iROName',LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper);
-- Note: Keep the Sprite_Name field as it is in the game client.
-REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',16,153,1,108,81,1,33,40,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1);
-REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1);
-# REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0x0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',11,90,1,81,60,1,13,16,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1);
-REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',24,427,1,144,162,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1);
-# REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',6,72,1,54,41,1,12,15,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1);
-REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',4,66,1,36,27,1,1,4,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1);
-REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',12,114,1,81,60,1,14,20,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1081,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1);
-REPLACE INTO `mob_db` VALUES (1010,'WILOW','Willow','Willow',8,91,1,63,47,1,13,18,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1);
-REPLACE INTO `mob_db` VALUES (1011,'CHONCHON','Chonchon','Chonchon',5,57,1,45,36,1,11,14,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1);
-REPLACE INTO `mob_db` VALUES (1012,'RODA_FROG','Roda Frog','Roda Frog',13,160,1,90,68,1,19,23,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1);
-REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',45,1219,1,342,386,1,80,91,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1);
-REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',18,280,1,117,87,1,25,33,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1);
-REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',17,234,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1);
-REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,405,455,9,95,118,47,10,30,29,20,10,35,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1);
-# REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1);
-REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',23,378,1,144,162,1,61,62,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1);
-REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',25,446,1,162,183,1,76,83,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1);
-REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',13,156,1,97,73,4,20,23,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1);
-# REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,0x653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
-# REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,0x163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',44,1434,1,350,540,1,71,104,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1);
-REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',17,200,1,117,87,1,22,27,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1);
-REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',18,217,1,117,87,1,23,28,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1);
-REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',58,2445,1,495,557,1,184,214,77,15,53,9,25,10,33,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1);
-# REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,0x131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,216,243,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1);
-REPLACE INTO `mob_db` VALUES (1029,'ISIS','Isis','Isis',59,2092,1,531,597,1,202,239,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1);
-REPLACE INTO `mob_db` VALUES (1030,'ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,1602,1202,1,504,559,92,0,79,46,28,43,67,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1);
-REPLACE INTO `mob_db` VALUES (1031,'POPORING','Poporing','Poporing',30,524,1,198,224,1,74,94,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1);
-REPLACE INTO `mob_db` VALUES (1032,'VERIT','Verit','Verit',52,1944,1,414,467,1,132,152,63,10,51,4,25,10,5,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1);
-REPLACE INTO `mob_db` VALUES (1033,'ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,233,263,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1);
-REPLACE INTO `mob_db` VALUES (1034,'THARA_FROG','Thara Frog','Thara Frog',40,1157,1,311,350,1,73,103,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1);
-REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,604,681,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1);
-REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',61,2614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1);
-REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',70,2736,1,720,810,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1);
-REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',68,475840,1,245520,200880,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1);
-REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,1,396525,334106,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1);
-REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',61,2245,1,540,608,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1);
-REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',55,2155,1,486,548,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1);
-REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',48,1199,1,369,414,1,77,112,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1);
-# REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,0x131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',53,2158,1,476,534,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1);
-REPLACE INTO `mob_db` VALUES (1045,'MARC','Marc','Marc',56,2522,1,525,590,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1);
-REPLACE INTO `mob_db` VALUES (1046,'DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1);
-REPLACE INTO `mob_db` VALUES (1047,'PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',7,75,1,54,41,0,1,1,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1);
-REPLACE INTO `mob_db` VALUES (1048,'THIEF_BUG_EGG','Thief Bug Egg','Thief Bug Egg',20,344,1,126,143,0,1,2,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1);
-REPLACE INTO `mob_db` VALUES (1049,'PICKY','Picky','Picky',9,95,1,63,47,1,18,19,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1);
-REPLACE INTO `mob_db` VALUES (1050,'PICKY_','Picky','Picky',10,89,1,72,54,1,18,38,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1);
-REPLACE INTO `mob_db` VALUES (1051,'THIEF_BUG','Thief Bug','Thief Bug',21,354,1,126,143,1,56,61,24,3,19,7,10,0,12,5,10,12,0,4,60,0x1183,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1);
-REPLACE INTO `mob_db` VALUES (1052,'ROCKER','Rocker','Rocker',15,185,1,99,74,1,19,24,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1);
-REPLACE INTO `mob_db` VALUES (1053,'THIEF_BUG_','Thief Bug Female','Thief Bug Female',28,531,1,180,203,1,42,58,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1);
-REPLACE INTO `mob_db` VALUES (1054,'THIEF_BUG__','Thief Bug Male','Thief Bug Male',30,595,1,198,224,1,46,67,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
-REPLACE INTO `mob_db` VALUES (1055,'MUKA','Muka','Muka',23,468,1,144,162,1,66,75,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1);
-REPLACE INTO `mob_db` VALUES (1056,'SMOKIE','Smokie','Smokie',29,591,1,180,203,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1);
-REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',38,898,1,270,305,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1);
-REPLACE INTO `mob_db` VALUES (1058,'METALLER','Metaller','Metaller',55,1687,1,450,507,1,187,228,72,12,52,24,10,0,47,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1);
-REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',78,378000,1,368280,301320,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1);
-REPLACE INTO `mob_db` VALUES (1060,'BIGFOOT','Bigfoot','Bigfoot',29,587,1,180,203,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1);
-REPLACE INTO `mob_db` VALUES (1061,'NIGHTMARE','Nightmare','Nightmare',69,2872,1,501,1032,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1);
-REPLACE INTO `mob_db` VALUES (1062,'PORING_','Santa Poring','Santa Poring',3,69,1,4,5,1,12,16,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1);
-REPLACE INTO `mob_db` VALUES (1063,'LUNATIC','Lunatic','Lunatic',3,55,1,36,27,1,11,12,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,601,20,0,0,4006,1);
-REPLACE INTO `mob_db` VALUES (1064,'MEGALODON','Megalodon','Megalodon',46,1335,1,342,386,1,117,149,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1);
-REPLACE INTO `mob_db` VALUES (1065,'STROUF','Strouf','Strouf',61,3052,1,626,705,1,162,192,67,21,49,16,31,20,33,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1);
-REPLACE INTO `mob_db` VALUES (1066,'VADON','Vadon','Vadon',45,1252,1,342,386,1,78,103,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1);
-REPLACE INTO `mob_db` VALUES (1067,'CORNUTUS','Cornutus','Cornutus',48,1450,1,369,414,1,79,126,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1);
-REPLACE INTO `mob_db` VALUES (1068,'HYDRA','Hydra','Hydra',34,854,1,233,263,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1);
-REPLACE INTO `mob_db` VALUES (1069,'SWORD_FISH','Swordfish','Swordfish',57,2600,1,525,590,1,149,184,52,12,50,56,25,15,40,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1);
-REPLACE INTO `mob_db` VALUES (1070,'KUKRE','Kukre','Kukre',42,1111,1,315,354,1,65,93,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1);
-REPLACE INTO `mob_db` VALUES (1071,'PIRATE_SKEL','Pirate Skeleton','Pirate Skeleton',48,1411,1,369,414,1,105,125,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1);
-REPLACE INTO `mob_db` VALUES (1072,'KAHO','Kaho','Kaho',98,7045,1,1953,1463,1,504,728,106,55,81,61,55,65,66,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1);
-REPLACE INTO `mob_db` VALUES (1073,'CRAB','Crab','Crab',43,1233,1,315,354,1,69,79,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1);
-REPLACE INTO `mob_db` VALUES (1074,'SHELLFISH','Shellfish','Shellfish',50,1680,1,405,455,1,70,92,43,5,42,11,48,25,26,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1);
-# REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1076,'SKELETON','Skeleton','Skeleton',27,612,1,162,183,1,78,102,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1);
-REPLACE INTO `mob_db` VALUES (1077,'POISON_SPORE','Poison Spore','Poison Spore',26,456,1,162,183,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1);
-REPLACE INTO `mob_db` VALUES (1078,'RED_PLANT','Red Plant','Red Plant',1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2);
-REPLACE INTO `mob_db` VALUES (1079,'BLUE_PLANT','Blue Plant','Blue Plant',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2);
-REPLACE INTO `mob_db` VALUES (1080,'GREEN_PLANT','Green Plant','Green Plant',1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2);
-REPLACE INTO `mob_db` VALUES (1081,'YELLOW_PLANT','Yellow Plant','Yellow Plant',1,6,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7937,300,707,5,914,500,0,0,0,0,2269,2);
-REPLACE INTO `mob_db` VALUES (1082,'WHITE_PLANT','White Plant','White Plant',1,7,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2);
-REPLACE INTO `mob_db` VALUES (1083,'SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,7938,500,607,50,0,0,0,0,714,1);
-REPLACE INTO `mob_db` VALUES (1084,'BLACK_MUSHROOM','Black Mushroom','Black Mushroom',1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500);
-REPLACE INTO `mob_db` VALUES (1085,'RED_MUSHROOM','Red Mushroom','Red Mushroom',1,5,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500);
-REPLACE INTO `mob_db` VALUES (1086,'GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',65,222750,1,194400,155520,1,907,1750,159,81,71,77,80,62,127,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1);
-REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',50,362000,1,106920,97200,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1);
-REPLACE INTO `mob_db` VALUES (1088,'VOCAL','Vocal','Vocal',18,3317,1,99,79,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1);
-REPLACE INTO `mob_db` VALUES (1089,'TOAD','Toad','Toad',27,660,1,162,183,1,70,89,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1);
-REPLACE INTO `mob_db` VALUES (1090,'MASTERING','Mastering','Mastering',42,1260,1,315,354,1,80,120,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1);
-REPLACE INTO `mob_db` VALUES (1091,'DRAGON_FLY','Dragon Fly','Dragon Fly',47,1035,1,360,405,1,102,135,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1);
-REPLACE INTO `mob_db` VALUES (1092,'VAGABOND_WOLF','Vagabond Wolf','Vagabond Wolf',93,8203,1,1422,2601,1,399,445,102,51,72,63,55,29,90,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1);
-REPLACE INTO `mob_db` VALUES (1093,'ECLIPSE','Eclipse','Eclipse',31,625,1,207,233,1,60,80,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1);
-REPLACE INTO `mob_db` VALUES (1094,'AMBERNITE','Ambernite','Ambernite',19,340,1,117,87,1,26,37,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1);
-REPLACE INTO `mob_db` VALUES (1095,'ANDRE','Andre','Andre',33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x1181,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1);
-REPLACE INTO `mob_db` VALUES (1097,'ANT_EGG','Ant Egg','Ant Egg',28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1);
-REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1);
-REPLACE INTO `mob_db` VALUES (1099,'ARGIOPE','Argiope','Argiope',75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1);
-REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1);
-REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1);
-REPLACE INTO `mob_db` VALUES (1102,'BATHORY','Bathory','Bathory',86,5242,1,1170,1364,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1);
-REPLACE INTO `mob_db` VALUES (1103,'CARAMEL','Caramel','Caramel',25,518,1,162,183,1,67,76,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1);
-REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',38,836,1,270,305,1,71,82,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1);
-REPLACE INTO `mob_db` VALUES (1105,'DENIRO','Deniro','Deniro',31,671,1,207,233,1,45,61,52,16,15,16,30,10,23,15,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1106,'DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,1800,1350,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,200,1287,1,756,53,1217,140,0,0,0,0,4082,1);
-REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,90,68,1,33,41,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1081,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,200,2301,200,13011,5,582,1000,0,0,0,0,4023,1);
-REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',60,3135,1,658,740,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1);
-REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',93,8912,1,1806,2166,1,367,549,72,16,61,49,30,85,99,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1);
-REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',68,2820,1,675,759,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,1501,300,1005,5,0,0,0,0,4098,1);
-REPLACE INTO `mob_db` VALUES (1111,'DRAINLIAR','Drainliar','Drainliar',47,1162,1,389,438,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1);
-REPLACE INTO `mob_db` VALUES (1112,'DRAKE','Drake','Drake',91,804500,1,515160,417960,1,1938,3341,279,135,121,103,114,107,135,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1);
-REPLACE INTO `mob_db` VALUES (1113,'DROPS','Drops','Drops',2,45,1,27,20,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1);
-REPLACE INTO `mob_db` VALUES (1114,'DUSTINESS','Dustiness','Dustiness',62,2026,1,602,678,1,158,189,69,50,46,22,46,60,68,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1);
-REPLACE INTO `mob_db` VALUES (1115,'EDDGA','Eddga','Eddga',65,247500,1,198000,148500,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,250,985,2300,13046,100,0,0,0,0,4123,1);
-REPLACE INTO `mob_db` VALUES (1116,'EGGYRA','Eggyra','Eggyra',53,1676,1,330,689,1,105,145,85,20,46,25,25,15,52,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1);
-REPLACE INTO `mob_db` VALUES (1117,'EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,1339,1280,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1);
-REPLACE INTO `mob_db` VALUES (1118,'FLORA','Flora','Flora',59,2301,1,531,597,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1);
-REPLACE INTO `mob_db` VALUES (1119,'FRILLDORA','Frilldora','Frilldora',57,1821,1,486,548,1,172,214,84,10,48,38,38,15,46,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1);
-REPLACE INTO `mob_db` VALUES (1120,'GHOSTRING','Ghostring','Ghostring',90,26700,1,4305,4467,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1);
-REPLACE INTO `mob_db` VALUES (1121,'GIEARTH','Giearth','Giearth',42,1118,1,315,354,1,70,85,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1);
-REPLACE INTO `mob_db` VALUES (1122,'GOBLIN_1','Goblin','Goblin',48,1058,1,369,414,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1123,'GOBLIN_2','Goblin','Goblin',44,931,1,333,374,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1550,2297,3,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1124,'GOBLIN_3','Goblin','Goblin',44,930,1,333,374,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1550,508,220,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1125,'GOBLIN_4','Goblin','Goblin',49,1494,1,396,446,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1126,'GOBLIN_5','Goblin','Goblin',56,2342,1,486,548,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1127,'HODE','Hode','Hode',63,2676,1,632,710,1,170,215,91,24,61,16,42,5,29,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1);
-REPLACE INTO `mob_db` VALUES (1128,'HORN','Horn','Horn',32,705,1,216,243,1,64,75,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1);
-REPLACE INTO `mob_db` VALUES (1129,'HORONG','Horong','Horong',66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1);
-REPLACE INTO `mob_db` VALUES (1130,'JAKK','Jakk','Jakk',63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1);
-REPLACE INTO `mob_db` VALUES (1131,'JOKER','Joker','Joker',90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1);
-REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1);
-REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,1961,1,783,395,1,316,378,24,10,1,31,31,20,55,20,10,12,1,7,45,0x31AD,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,1962,1,580,366,1,223,256,24,10,1,31,31,20,88,20,10,12,1,7,43,0x31AD,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',53,1984,1,441,495,1,91,256,51,8,49,25,21,50,28,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1);
-REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',65,2719,1,594,669,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1);
-REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',73,2893,1,774,872,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1);
-REPLACE INTO `mob_db` VALUES (1141,'MARINA','Marina','Marina',42,1209,1,340,381,1,73,98,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1);
-REPLACE INTO `mob_db` VALUES (1142,'MARINE_SPHERE','Marine Sphere','Marine Sphere',51,1924,1,446,503,1,1,2,41,28,10,16,35,25,26,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1);
-REPLACE INTO `mob_db` VALUES (1143,'MARIONETTE','Marionette','Marionette',90,7166,1,1442,2009,1,202,392,35,24,52,79,28,105,72,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1);
-REPLACE INTO `mob_db` VALUES (1144,'MARSE','Marse','Marse',47,1456,1,389,438,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1);
-REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',39,1056,1,311,350,1,70,88,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1);
-REPLACE INTO `mob_db` VALUES (1146,'MATYR','Matyr','Matyr',58,2087,1,495,557,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1);
-REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',55,380000,1,178560,133920,1,555,820,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1);
-REPLACE INTO `mob_db` VALUES (1148,'MEDUSA','Medusa','Medusa',102,10045,1,1737,1302,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1);
-REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',58,1893,1,544,602,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,10,1301,200,568,300,0,0,0,0,4126,1);
-REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',79,324000,1,334080,271440,1,2029,3280,154,81,86,102,93,82,131,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1);
-REPLACE INTO `mob_db` VALUES (1151,'MYST','Myst','Myst',49,1223,1,396,446,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1);
-REPLACE INTO `mob_db` VALUES (1152,'ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,459,524,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1);
-REPLACE INTO `mob_db` VALUES (1153,'ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,430,498,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1);
-REPLACE INTO `mob_db` VALUES (1154,'PASANA','Pasana','Pasana',79,3510,1,972,1194,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1);
-REPLACE INTO `mob_db` VALUES (1155,'PETIT','Petite','Petite',86,5799,1,1170,1317,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,40,606,15,0,0,0,0,4118,1);
-REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',79,3556,1,900,1013,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1);
-REPLACE INTO `mob_db` VALUES (1157,'PHARAOH','Pharaoh','Pharaoh',85,500000,1,417600,334080,1,1476,3258,124,269,98,102,96,142,144,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1);
-REPLACE INTO `mob_db` VALUES (1158,'PHEN','Phen','Phen',52,1963,1,446,503,1,97,127,44,11,54,15,35,15,25,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1);
-REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',71,300000,1,116000,180000,1,630,1597,269,98,88,70,112,87,102,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1);
-REPLACE INTO `mob_db` VALUES (1160,'PIERE','Piere','Piere',32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1161,'PLANKTON','Plankton','Plankton',40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1);
-REPLACE INTO `mob_db` VALUES (1162,'RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1);
-REPLACE INTO `mob_db` VALUES (1163,'RAYDRIC','Raydric','Raydric',115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1);
-REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1);
-REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1);
-REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1);
-REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',14,180,1,90,68,1,19,25,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,1,949,850,1010,80,627,40,0,0,0,0,4017,1);
-# REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,5719,1,1968,1211,1,600,713,64,10,1,50,47,1,83,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1);
-REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,333,374,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1);
-REPLACE INTO `mob_db` VALUES (1170,'SOHEE','Sohee','Sohee',64,2875,1,594,669,1,169,199,61,21,61,24,29,20,37,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1);
-# REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1);
-# REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1);
-# REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1);
-REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',21,365,1,126,143,1,65,74,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1);
-REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',22,420,1,135,152,1,72,78,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1);
-REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',35,756,1,234,264,1,68,86,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1);
-REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',54,1816,1,450,507,1,130,154,69,5,50,18,20,5,25,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1);
-REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',70,2687,1,720,960,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1);
-REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',46,1109,1,242,513,1,65,120,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1);
-REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,887,998,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1);
-# REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Zombie Dragon','Zombie Dragon',1,1000,1,44550,1485,3,7900,9140,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,1,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,1500,1070,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',5,63,1,36,27,1,11,14,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1);
-REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,1,1,0,1,4,7,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,1,483,737,1,198,239,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,0,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,630,710,1,282,341,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1);
-REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',59,2510,1,531,597,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1);
-REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,922,1161,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1);
-REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',55,552000,1,156240,122760,1,780,1428,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,100,0,0,0,0,4135,1);
-REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',56,1939,1,486,548,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1);
-REPLACE INTO `mob_db` VALUES (1192,'WRAITH','Wraith','Wraith',77,5168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1);
-REPLACE INTO `mob_db` VALUES (1193,'ALARM','Alarm','Alarm',88,5562,1,1242,1398,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1);
-REPLACE INTO `mob_db` VALUES (1194,'ARCLOUSE','Arclouse','Arclouze',107,10020,1,1844,2607,1,269,309,101,36,60,73,45,35,140,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1);
-REPLACE INTO `mob_db` VALUES (1195,'RIDEWORD','Rideword','Rideword',74,3222,1,810,1212,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1);
-REPLACE INTO `mob_db` VALUES (1196,'SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,1566,1763,1,466,521,95,41,84,35,60,20,71,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1);
-REPLACE INTO `mob_db` VALUES (1197,'ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,1458,1647,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1);
-REPLACE INTO `mob_db` VALUES (1198,'DARK_PRIEST','Dark Priest','Dark Priest',98,12090,0,2430,1667,2,355,554,56,30,5,60,41,89,78,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1);
-REPLACE INTO `mob_db` VALUES (1199,'PUNK','Punk','Punk',82,3869,1,972,1094,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1);
-REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,6944,6458,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,509,1800,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1);
-REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',98,8700,1,1575,1442,1,477,553,109,30,96,52,61,30,73,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1);
-REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',102,11000,1,1990,1302,2,539,614,307,50,111,65,71,20,91,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,0,0,0,0,0,0,4329,1);
-REPLACE INTO `mob_db` VALUES (1203,'MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,7919,4987,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1);
-REPLACE INTO `mob_db` VALUES (1204,'TIRFING','Tirfing','Ogretooth',114,59000,1,5345,5009,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1);
-REPLACE INTO `mob_db` VALUES (1205,'EXECUTIONER','Executioner','Executioner',101,40200,1,4860,3645,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1);
-REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',109,15547,1,2930,2223,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1);
-REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',104,10143,1,2172,1629,1,611,678,146,34,108,49,68,34,99,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1);
-REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',120,19307,1,3389,2466,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1);
-REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',82,3898,1,972,1094,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1);
-# REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1);
-REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',71,2772,1,738,831,1,306,339,93,25,51,19,38,32,56,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1);
-REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1292,1368,1,430,590,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1);
-REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',81,4193,1,1099,1158,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1);
-REPLACE INTO `mob_db` VALUES (1214,'CHOCO','Choco','Choco',48,1080,1,369,414,1,120,167,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1);
-REPLACE INTO `mob_db` VALUES (1215,'STEM_WORM','Stem Worm','Stem Worm',84,4530,1,1080,1215,1,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1);
-REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',85,4589,1,1116,1556,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1);
-REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',122,23297,1,4779,4013,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1);
-REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1);
-REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1);
-# REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1);
-# REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
-# REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1);
-# REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1);
-# REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
-# REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1);
-# REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1);
-REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1);
-REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1);
-REPLACE INTO `mob_db` VALUES (1231,'META_CREAMY','Creamy','Creamy',16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1);
-REPLACE INTO `mob_db` VALUES (1232,'META_PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1);
-# REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1);
-REPLACE INTO `mob_db` VALUES (1234,'PROVOKE_YOYO','Yoyo','Yoyo',19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1);
-REPLACE INTO `mob_db` VALUES (1235,'SMOKING_ORC','Smoking Orc','Smoking Orc',24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
-REPLACE INTO `mob_db` VALUES (1236,'META_ANT_EGG','Ant Egg','Ant Egg',4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1);
-REPLACE INTO `mob_db` VALUES (1237,'META_ANDRE','Andre','Andre',17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x1181,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1238,'META_PIERE','Piere','Piere',18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1239,'META_DENIRO','Deniro','Deniro',19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1);
-REPLACE INTO `mob_db` VALUES (1240,'META_PICKY','Picky','Picky',3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1);
-REPLACE INTO `mob_db` VALUES (1241,'META_PICKY_','Picky','Picky',4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1);
-# Lutie (2.0)
-REPLACE INTO `mob_db` VALUES (1242,'MARIN','Marin','Marin',37,987,1,282,317,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1);
-REPLACE INTO `mob_db` VALUES (1243,'SASQUATCH','Sasquatch','Sasquatch',72,3163,1,765,860,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1);
-REPLACE INTO `mob_db` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',63,2054,1,1002,619,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1);
-REPLACE INTO `mob_db` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,1,254,154,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1);
-REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,282,317,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1);
-REPLACE INTO `mob_db` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,1,3,2,1,13,21,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,5136,1000,5811,1000,604,3000,14550,10000,12225,2000,12132,2000,12354,3000,0,0,0,0,12132,2000);
-REPLACE INTO `mob_db` VALUES (1248,'CRUISER','Cruiser','Cruiser',41,919,1,288,324,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1);
-REPLACE INTO `mob_db` VALUES (1249,'MYSTCASE','Myst Case','Myst Case',39,879,1,288,324,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1);
-REPLACE INTO `mob_db` VALUES (1250,'CHEPET','Chepet','Chepet',42,4950,0,1315,1854,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1);
-REPLACE INTO `mob_db` VALUES (1251,'KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',92,630500,1,413800,302200,2,2677,4110,306,166,126,165,132,104,171,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1);
-REPLACE INTO `mob_db` VALUES (1252,'GARM','Garm','Hatii',98,1275500,1,758880,613800,3,1862,3595,173,103,122,153,135,116,146,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1);
-# Comodo (3.0)
-REPLACE INTO `mob_db` VALUES (1253,'GARGOYLE','Gargoyle','Gargoyle',100,8772,1,1900,1425,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,2506,2,1746,5,2619,1,1769,2000,757,238,0,0,0,0,4149,1);
-REPLACE INTO `mob_db` VALUES (1254,'RAGGLER','Raggler','Raggler',48,1148,1,369,414,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1);
-REPLACE INTO `mob_db` VALUES (1255,'NERAID','Neraid','Nereid',98,9550,1,1575,1181,1,196,267,100,37,97,45,60,30,69,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1);
-REPLACE INTO `mob_db` VALUES (1256,'PEST','Pest','Pest',89,5747,1,1341,1509,1,304,352,55,33,73,77,48,15,88,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1);
-REPLACE INTO `mob_db` VALUES (1257,'INJUSTICE','Injustice','Injustice',95,7952,1,1574,1997,1,344,460,76,31,77,59,58,65,73,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1);
-REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,450,507,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1);
-REPLACE INTO `mob_db` VALUES (1259,'GRYPHON','Gryphon','Gryphon',105,60720,1,9410,5808,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1);
-REPLACE INTO `mob_db` VALUES (1260,'DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,992,1115,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1);
-REPLACE INTO `mob_db` VALUES (1261,'WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,720,1110,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1);
-REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,3644,12830,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1);
-REPLACE INTO `mob_db` VALUES (1263,'WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,918,1334,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1);
-REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',60,2940,1,616,692,1,125,157,62,8,45,29,30,19,50,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1);
-REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',35,666,1,234,264,1,59,84,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1);
-REPLACE INTO `mob_db` VALUES (1266,'ASTER','Aster','Aster',50,1509,1,405,455,1,85,107,70,7,41,14,15,0,28,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1);
-REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',103,9222,1,1944,1458,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1);
-REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,7348,6511,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1);
-REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',81,5556,1,1231,1158,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1);
-REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',90,6400,1,1305,1467,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1);
-REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',57,2430,1,486,548,1,150,187,62,30,47,48,24,15,36,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1);
-REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,714240,558000,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1);
-REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',45,1520,1,380,435,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1);
-REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',65,2451,1,594,669,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1);
-REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',100,9230,1,1630,1222,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,3000,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1);
-REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,1049,1332,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1);
-REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,486,548,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1);
-REPLACE INTO `mob_db` VALUES (1278,'STALACTIC_GOLEM','Stalactic Golem','Stalactic Golem',68,2590,1,675,759,1,341,362,230,5,67,47,48,1,63,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1);
-REPLACE INTO `mob_db` VALUES (1279,'TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,347,297,1,278,306,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1);
-REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamrider',66,2241,1,680,765,1,280,315,85,5,52,61,32,15,82,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1);
-REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',70,2872,1,720,810,1,158,279,109,45,39,29,28,71,44,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,505,40,689,100,5012,1,0,0,0,0,4219,1);
-REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1);
-REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,26406,1,5168,4698,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1);
-# REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0);
-# War Of Emperium & Guild Dungeon (4.1)
-REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,1,1,1,12,1120,1600,56,60,95,80,80,90,165,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,1,1,1,2,1280,1560,88,30,110,40,140,65,125,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldier Guardian',56,15670,1,1,1,1,873,1036,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1288,'EMPELIUM','Emperium','Emperium',90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1289,'MAYA_PUPLE','Maya Purple','Maya Purple',81,77670,1,11714,6516,2,1447,2000,139,40,95,52,80,95,73,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1);
-REPLACE INTO `mob_db` VALUES (1290,'SKELETON_GENERAL','Skeleton General','Skeleton General',88,6720,0,1368,1553,1,540,579,100,35,72,34,52,31,84,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1);
-REPLACE INTO `mob_db` VALUES (1291,'WRAITH_DEAD','Wraith Dead','Wraith Dead',86,10035,0,2518,1824,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,100,568,300,0,0,0,0,4189,1);
-REPLACE INTO `mob_db` VALUES (1292,'MINI_DEMON','Mini Demon','Mini Demon',117,19402,1,2700,2025,1,670,784,80,25,130,69,55,56,79,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1);
-REPLACE INTO `mob_db` VALUES (1293,'CREMY_FEAR','Creamy Fear','Creamy Fear',77,3420,0,945,1067,2,272,335,76,37,65,36,33,49,66,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1);
-REPLACE INTO `mob_db` VALUES (1294,'KILLER_MANTIS','Killer Mantis','Killer Mantis',91,7650,0,1485,1674,1,500,550,107,45,82,56,58,45,69,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1);
-REPLACE INTO `mob_db` VALUES (1295,'OWL_BARON','Owl Baron','Owl Baron',120,21000,1,3042,2282,2,449,650,88,25,72,65,55,102,77,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1);
-REPLACE INTO `mob_db` VALUES (1296,'KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,2643,2383,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1);
-REPLACE INTO `mob_db` VALUES (1297,'ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',114,27157,1,4104,3199,1,701,901,93,51,126,57,55,69,112,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1);
-REPLACE INTO `mob_db` VALUES (1298,'ZOMBIE_MASTER','Zombie Master','Zombie Master',92,8780,0,1710,1857,1,499,629,78,46,55,60,48,49,72,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1);
-REPLACE INTO `mob_db` VALUES (1299,'GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,4450,5007,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1);
-REPLACE INTO `mob_db` VALUES (1300,'CATERPILLAR','Caterpillar','Caterpillar',84,5555,0,1312,1487,1,270,313,100,42,58,37,51,50,45,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,505,12,508,500,0,0,0,0,4289,1);
-REPLACE INTO `mob_db` VALUES (1301,'AM_MUT','Am Mut','Am Mut',76,3530,0,945,1067,1,342,391,90,42,58,44,40,35,67,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,250,0,0,0,0,4245,1);
-REPLACE INTO `mob_db` VALUES (1302,'DARK_ILLUSION','Dark Illusion','Dark Illusion',96,29255,0,4091,4099,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1);
-REPLACE INTO `mob_db` VALUES (1303,'GIANT_HONET','Giant Hornet','Giant Hornet',82,3960,0,1080,1215,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,610,15,1608,3,722,20,1736,15,0,0,0,0,4271,1);
-REPLACE INTO `mob_db` VALUES (1304,'GIANT_SPIDER','Giant Spider','Giant Spider',85,4680,0,1242,1418,1,298,350,86,38,71,58,43,38,61,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1);
-REPLACE INTO `mob_db` VALUES (1305,'ANCIENT_WORM','Ancient Worm','Ancient Worm',83,4140,0,1139,1283,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1);
-REPLACE INTO `mob_db` VALUES (1306,'LEIB_OLMAI','Leib Olmai','Leib Olmai',87,6050,0,1314,1485,1,299,363,127,31,72,35,80,35,64,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1);
-REPLACE INTO `mob_db` VALUES (1307,'CAT_O_NINE_TAIL','Cat o\' Nine Tails','Cat o\' Nine Tails',79,23600,0,4148,5792,1,467,547,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1);
-REPLACE INTO `mob_db` VALUES (1308,'PANZER_GOBLIN','Panzer Goblin','Panzer Goblin',52,1471,1,446,504,1,122,180,60,25,52,60,35,35,68,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1);
-REPLACE INTO `mob_db` VALUES (1309,'GAJOMART','Gajomart','Gajomart',81,3825,0,1317,1490,1,355,412,98,50,77,47,39,33,78,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,1752,10000,2131,20,994,180,0,0,0,0,4151,1);
-REPLACE INTO `mob_db` VALUES (1310,'MAJORUROS','Majoruros','Majoruros',107,11801,1,3090,2200,1,654,1086,111,25,112,58,65,55,72,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,300,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1);
-REPLACE INTO `mob_db` VALUES (1311,'GULLINBURSTI','Gullinbursti','Gullinbursti',89,7080,0,1478,1677,1,371,419,108,43,88,54,82,35,63,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1);
-# Turtle Dungeon (4.0)
-REPLACE INTO `mob_db` VALUES (1312,'TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,933120,748440,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1);
-REPLACE INTO `mob_db` VALUES (1313,'MOBSTER','Mobster','Mobster',58,2253,1,495,557,1,149,172,87,18,72,36,33,21,41,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1);
-REPLACE INTO `mob_db` VALUES (1314,'PERMETER','Permeter','Permeter',90,6575,1,1305,1467,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1);
-REPLACE INTO `mob_db` VALUES (1315,'ASSULTER','Assaulter','Assaulter',100,8977,1,1992,1779,2,405,472,169,49,100,92,30,20,103,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1);
-REPLACE INTO `mob_db` VALUES (1316,'SOLIDER','Solider','Solider',92,8768,1,1487,1671,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1);
-REPLACE INTO `mob_db` VALUES (1317,'FUR_SEAL','Fur Seal','Seal',47,1371,1,360,405,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1);
-REPLACE INTO `mob_db` VALUES (1318,'HEATER','Heater','Heater',98,8180,1,1893,1611,2,511,590,199,50,89,49,50,30,88,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1);
-REPLACE INTO `mob_db` VALUES (1319,'FREEZER','Freezer','Freezer',94,9990,1,1555,1749,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1);
-REPLACE INTO `mob_db` VALUES (1320,'OWL_DUKE','Owl Duke','Owl Duke',92,7381,1,1377,1953,1,480,680,80,45,54,51,45,88,88,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1);
-REPLACE INTO `mob_db` VALUES (1321,'DRAGON_TAIL','Dragon Tail','Dragon Tail',86,4680,1,1264,1422,1,182,217,63,25,61,65,35,40,52,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1);
-REPLACE INTO `mob_db` VALUES (1322,'SPRING_RABBIT','Spring Rabbit','Spring Rabbit',88,6684,1,1341,1509,1,288,328,108,42,68,66,35,30,48,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1);
-REPLACE INTO `mob_db` VALUES (1323,'SEE_OTTER','Sea Otter','Sea Otter',48,1820,1,428,480,1,83,125,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1);
-# WoE Treasure Boxes
-REPLACE INTO `mob_db` VALUES (1324,'TREASURE_BOX1','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1325,'TREASURE_BOX2','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7073,80,658,500,604,10000,984,4850,985,7275,1239,1500,5027,75,1165,8,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1326,'TREASURE_BOX3','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1327,'TREASURE_BOX4','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7074,80,658,500,604,10000,984,4850,985,7275,2108,1000,1306,75,5022,2,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1328,'TREASURE_BOX5','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1329,'TREASURE_BOX6','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7075,80,658,500,604,10000,984,4850,985,7275,2102,834,5019,100,5002,9,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1330,'TREASURE_BOX7','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1331,'TREASURE_BOX8','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7076,80,658,500,604,10000,984,4850,985,7275,2616,500,2334,125,2622,9,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1332,'TREASURE_BOX9','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1333,'TREASURE_BOX10','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7077,80,658,500,604,10000,984,4850,985,7275,2104,500,2331,150,2623,10,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1334,'TREASURE_BOX11','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1335,'TREASURE_BOX12','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7078,80,658,500,604,10000,984,4850,985,7275,2270,500,1716,150,2256,10,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1336,'TREASURE_BOX13','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1337,'TREASURE_BOX14','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7079,80,658,500,604,10000,984,4850,985,7275,1238,375,1531,150,2318,10,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1338,'TREASURE_BOX15','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1339,'TREASURE_BOX16','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7080,80,658,500,604,10000,984,4850,985,7275,2626,300,1472,167,2327,10,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1340,'TREASURE_BOX17','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1341,'TREASURE_BOX18','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7081,80,658,500,604,10000,984,4850,985,7275,1143,250,1237,188,2235,12,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1342,'TREASURE_BOX19','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1343,'TREASURE_BOX20','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7082,80,658,500,604,10000,984,4850,985,7275,617,250,1144,188,5007,19,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1344,'TREASURE_BOX21','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1345,'TREASURE_BOX22','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7083,80,658,500,604,10000,984,4850,985,7275,2508,1000,2336,69,2621,20,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1346,'TREASURE_BOX23','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1347,'TREASURE_BOX24','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7084,80,658,500,604,10000,984,4850,985,7275,2106,1000,1164,50,5025,24,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1348,'TREASURE_BOX25','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1349,'TREASURE_BOX26','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7085,80,658,500,604,10000,984,4850,985,7275,2231,750,2624,46,2286,25,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1350,'TREASURE_BOX27','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1351,'TREASURE_BOX28','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7086,80,658,500,604,10000,984,4850,985,7275,2283,500,2615,41,2234,32,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1352,'TREASURE_BOX29','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1353,'TREASURE_BOX30','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7087,80,658,500,604,10000,984,4850,985,7275,2507,500,2625,38,5045,34,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1354,'TREASURE_BOX31','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1355,'TREASURE_BOX32','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7088,80,658,500,604,10000,984,4850,985,7275,2407,429,2269,250,2317,35,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1356,'TREASURE_BOX33','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1357,'TREASURE_BOX34','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7089,80,658,500,604,10000,984,4850,985,7275,2109,300,2406,273,2258,38,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1358,'TREASURE_BOX35','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1359,'TREASURE_BOX36','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7090,80,658,500,604,10000,984,4850,985,7275,1142,215,2255,60,5017,38,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1360,'TREASURE_BOX37','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7091,80,658,500,604,10000,984,4850,985,7275,1417,50,5053,50,2229,50,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,2504,800,2404,800,2315,800,2104,800,616,1000,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7092,80,658,500,604,10000,984,4850,985,7275,2506,43,2254,43,1529,38,0,0,0,0);
-# Yuno (5.0)
-REPLACE INTO `mob_db` VALUES (1364,'G_ASSULTER','Assaulter','Assaulter',98,7798,1,0,0,2,225,292,83,49,100,86,30,20,82,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',121,22090,1,3042,2282,2,752,868,136,26,130,53,76,25,89,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1);
-REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,2232,1674,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1);
-REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',101,8121,1,1827,1371,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1);
-REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',73,3866,1,898,1010,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1);
-REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',75,3150,1,887,998,2,316,372,95,30,63,45,50,23,51,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1);
-REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',119,24960,1,3924,3489,2,670,864,76,48,100,64,45,80,82,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1);
-REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',105,10988,1,2100,1570,2,505,640,106,84,112,67,43,81,68,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,0,0,0,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1);
-REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',80,3980,1,1065,1197,1,387,447,95,43,61,40,48,40,65,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1);
-REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603883,1,437121,345252,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1);
-REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',120,28000,1,3928,3646,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1);
-REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',97,8500,1,1530,1148,1,280,390,32,39,77,49,30,5,61,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1);
-REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',83,4423,1,1201,1349,1,282,323,69,44,71,39,50,31,96,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1);
-REPLACE INTO `mob_db` VALUES (1377,'ELDER','Elder','Elder',92,7341,1,1377,2898,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1);
-REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',91,6466,1,1350,1520,1,428,493,80,52,63,61,30,38,79,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1);
-REPLACE INTO `mob_db` VALUES (1379,'NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,2443,1832,1,629,755,78,37,118,53,55,63,88,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1);
-REPLACE INTO `mob_db` VALUES (1380,'DRILLER','Driller','Driller',65,2719,1,594,669,1,181,212,96,18,62,50,25,15,48,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1);
-REPLACE INTO `mob_db` VALUES (1381,'GRIZZLY','Grizzly','Grizzly',66,2241,1,731,822,1,254,267,109,2,60,26,44,3,78,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,10,0,0,0,0,0,0,0,0,0,0,4162,1);
-REPLACE INTO `mob_db` VALUES (1382,'DIABOLIC','Diabolic','Diabolic',104,10572,1,2172,1629,1,544,644,68,61,103,80,53,65,78,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1);
-REPLACE INTO `mob_db` VALUES (1383,'EXPLOSION','Explosion','Explosion',100,7813,1,1900,1425,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1);
-REPLACE INTO `mob_db` VALUES (1384,'DELETER','Deleter','Deleter',105,10000,1,2099,1574,1,502,581,111,53,105,55,53,68,67,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1);
-REPLACE INTO `mob_db` VALUES (1385,'DELETER_','Deleter','Deleter',105,10000,1,2099,1574,1,510,621,114,53,98,65,49,72,57,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1);
-REPLACE INTO `mob_db` VALUES (1386,'SLEEPER','Sleeper','Sleeper',81,5160,1,1034,1160,1,274,322,101,29,74,41,57,27,54,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1);
-REPLACE INTO `mob_db` VALUES (1387,'GIG','Gig','Gig',100,8721,1,1769,1327,1,476,599,104,53,92,66,60,48,60,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1);
-REPLACE INTO `mob_db` VALUES (1388,'ARCHANGELING','Archangeling','Arc Angeling',84,25100,1,3253,2910,1,539,639,92,81,32,48,62,99,99,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1);
-REPLACE INTO `mob_db` VALUES (1389,'DRACULA','Dracula','Dracula',75,350000,1,312480,245520,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1);
-REPLACE INTO `mob_db` VALUES (1390,'VIOLY','Violy','Violy',118,20557,1,2862,2147,10,548,668,74,36,90,86,38,76,90,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1);
-REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',45,1221,1,342,386,1,68,103,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,500,508,3500,606,100,6264,500,5111,1,582,1000,0,0,0,0,4152,1);
-REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,399,449,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1);
-REPLACE INTO `mob_db` VALUES (1393,'G_MUMMY','Mummy','Mummy',55,2155,1,0,0,1,171,192,95,3,54,4,14,1,62,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1394,'G_ZOMBIE','Zombie','Zombie',17,234,1,0,0,1,43,55,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,100);
-REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,150);
-REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,150);
-REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100);
-# Event MVP
-REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,1264000,0,78525,25106,3,1847,2267,35,45,1,152,96,85,120,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,0,0,0,0,2256,1550);
-# Amatsu (6.0)
-REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',72,3092,1,765,860,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1);
-REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',95,8000,1,1691,1902,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1);
-REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poison Toad',87,4876,1,1341,1509,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1);
-REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,1352,1512,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1);
-REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,1116,1256,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1);
-REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',98,10196,1,1701,1275,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1);
-REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',83,5470,1,1035,1164,1,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1);
-# REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Gonryun (6.1)
-REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,1555,1749,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1);
-REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',60,2098,1,531,597,1,128,150,96,12,50,43,29,5,43,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1);
-REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,1499,1724,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1);
-# REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Peach Tree Bullet','Peach Tree Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,1503,1127,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1);
-REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,1409,1586,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1);
-# REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Ginseng Bullet','Ginseng Bullet... (mode 129)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,500,1016,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1);
-REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,1775,1331,2,340,468,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1);
-REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',90,6620,1,1305,1467,1,410,467,130,40,68,51,50,35,58,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1);
-REPLACE INTO `mob_db` VALUES (1418,'DARK_SNAKE_LORD','Evil Snake Lord','Evil Snake Lord',105,1101000,1,720000,630000,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,608,3500,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1);
-# Additional G_Mobs
-REPLACE INTO `mob_db` VALUES (1419,'G_FARMILIAR','Familiar','Familiar',24,427,1,0,0,1,68,77,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1420,'G_ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,0,0,9,90,113,47,10,30,29,20,10,32,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1421,'G_ISIS','Isis','Isis',59,2092,1,0,0,1,192,229,83,5,58,43,22,5,39,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1422,'G_HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,0,0,1,120,140,46,20,32,72,22,25,79,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1423,'G_GHOUL','Ghoul','Ghoul',61,2614,1,0,0,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1424,'G_SIDE_WINDER','Side Winder','Side Winder',70,2736,1,0,0,1,301,331,101,12,52,32,35,20,66,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1425,'G_OBEAUNE','Obeaune','Obeaune',53,2158,1,0,0,1,102,147,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1426,'G_MARC','Marc','Marc',56,2522,1,0,0,1,138,163,55,24,50,24,22,15,48,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1427,'G_NIGHTMARE','Nightmare','Nightmare',69,2872,1,0,0,1,283,345,116,15,57,32,20,15,70,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1428,'G_POISON_SPORE','Poison Spore','Poison Spore',26,456,1,0,0,1,68,83,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1429,'G_ARGIOPE','Argiope','Argiope',75,3105,1,0,0,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1430,'G_ARGOS','Argos','Argos',47,1005,1,0,0,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1431,'G_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,0,0,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1432,'G_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1433,'G_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1434,'G_DRAINLIAR','Drainliar','Drainliar',47,1162,1,0,0,1,100,142,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1435,'G_EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,0,0,1,344,412,88,45,62,32,24,45,71,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1436,'G_JAKK','Jakk','Jakk',63,2054,1,0,0,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1437,'G_JOKER','Joker','Joker',90,6022,1,0,0,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1438,'G_KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,0,0,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1439,'G_HIGH_ORC','High Orc','High Orc',81,4193,1,0,0,1,389,439,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1440,'G_STEM_WORM','Stem Worm','Stem Worm',84,4530,1,0,0,2,266,307,73,50,55,37,25,47,70,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1441,'G_PENOMENA','Penomena','Penomena',85,4589,1,0,0,7,292,333,85,32,76,38,35,35,89,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1442,'G_SASQUATCH','Sasquatch','Sasquatch',72,3163,1,0,0,1,266,296,101,28,70,35,60,10,59,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1443,'G_CRUISER','Cruiser','Cruiser',41,919,1,0,0,7,55,75,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1444,'G_CHEPET','Chepet','Chepet',42,4950,0,0,0,1,79,112,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1445,'G_RAGGLER','Raggler','Raggler',48,1148,1,0,0,1,72,111,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1446,'G_INJUSTICE','Injustice','Injustice',95,7952,1,0,0,1,344,460,76,0,77,59,58,65,73,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1447,'G_GRYPHON','Gryphon','Gryphon',105,60720,1,0,0,1,717,820,113,72,101,133,66,70,137,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1448,'G_DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,0,0,1,318,348,67,27,69,37,36,10,53,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1449,'G_MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,0,0,4,1120,1654,130,20,75,35,30,68,98,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1450,'G_WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,0,0,2,165,260,64,51,62,27,25,55,85,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1451,'G_MERMAN','Merman','Merman',60,2940,1,0,0,2,125,157,62,8,45,29,30,19,50,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1452,'G_ORC_LADY','Orc Lady','Orc Lady',45,1520,1,0,0,1,77,110,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1453,'G_RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,0,0,9,377,395,63,40,53,24,40,15,112,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1454,'G_TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,0,0,1,178,206,22,5,1,33,24,10,55,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1455,'G_KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,0,0,9,586,619,84,5,99,39,48,30,90,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1456,'G_CHIMERA','Chimera','Chimera',70,26406,1,0,0,1,980,1128,159,10,1,38,110,88,83,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1457,'G_MANTIS','Mantis','Mantis',65,2719,1,0,0,1,178,209,90,0,55,33,24,5,42,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1458,'G_MARDUK','Marduk','Marduk',73,2893,1,0,0,1,180,292,66,43,66,49,21,40,66,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1459,'G_MARIONETTE','Marionette','Marionette',62,2209,1,0,0,1,166,222,71,35,52,36,28,25,56,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1460,'G_MATYR','Matyr','Matyr',58,2087,1,0,0,1,144,170,63,5,48,20,21,17,43,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1461,'G_MINOROUS','Minorous','Minorous',58,1893,1,0,0,1,235,271,100,10,65,42,36,43,55,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1462,'G_ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,0,0,1,115,140,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1463,'G_ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,0,0,1,109,124,71,5,45,17,32,5,52,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1464,'G_PASANA','Pasana','Pasana',79,3510,1,0,0,1,398,438,93,35,76,36,33,20,67,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1465,'G_PETIT','Petite','Petite',86,5799,1,0,0,1,292,358,99,49,55,32,38,37,54,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1466,'G_PETIT_','Petite','Petite',79,3556,1,0,0,1,280,316,86,42,63,39,31,55,72,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1467,'G_RAYDRIC','Raydric','Raydric',115,18408,1,0,0,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1468,'G_REQUIEM','Requim','Requim',71,3089,1,0,0,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1469,'G_SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,0,0,1,92,104,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1470,'G_ZEROM','Zerom','Zerom',70,2687,1,0,0,1,312,350,93,15,57,49,30,15,56,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1471,'G_NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,0,0,1,446,496,95,40,61,38,30,20,88,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1472,'G_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1473,'G_ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,0,0,9,260,303,67,31,55,32,24,30,99,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1474,'G_MIMIC','Mimic','Mimic',56,1939,1,0,0,1,221,243,63,15,49,120,20,15,99,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1475,'G_WRAITH','Wraith','Wraith',77,5168,1,0,0,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1476,'G_ALARM','Alarm','Alarm',88,5562,1,0,0,1,290,338,106,53,70,72,40,25,55,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1477,'G_ARCLOUSE','Arclouse','Arclouze',77,4320,1,0,0,1,269,309,101,36,60,73,45,35,60,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1478,'G_RIDEWORD','Rideword','Rideword',74,3222,1,0,0,1,352,374,61,38,67,53,32,44,104,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1479,'G_SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,0,0,1,266,321,95,41,84,35,60,20,71,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1480,'G_ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,0,0,1,356,416,89,28,87,39,58,5,68,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1481,'G_PUNK','Punk','Punk',82,3869,1,0,0,1,266,320,68,55,67,39,30,35,79,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1482,'G_ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,0,0,1,610,790,91,99,88,61,51,62,113,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1483,'G_RYBIO','Rybio','Rybio',98,8700,1,0,0,1,277,353,109,30,96,52,61,30,80,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1484,'G_PHENDARK','Phendark','Phendark',102,11000,1,0,0,2,539,614,307,50,111,65,71,20,71,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1485,'G_MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,0,0,2,771,1338,73,61,102,139,62,65,130,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1486,'G_TIRFING','Tirfing','Ogretooth',114,59000,1,0,0,1,677,1088,87,69,105,105,75,73,108,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1487,'G_EXECUTIONER','Executioner','Executioner',101,40200,1,0,0,2,515,874,97,188,99,96,77,78,79,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',109,15547,1,0,0,1,500,610,61,11,130,63,55,66,58,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',104,14143,1,0,0,1,521,588,146,50,108,49,68,43,87,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',120,19307,1,0,0,2,711,816,64,5,118,92,36,15,107,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',68,2820,1,0,0,1,317,347,85,20,52,56,35,20,60,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Umbala (6.2)
-REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',100,901000,1,751680,595080,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1);
-REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',68,3640,1,837,939,3,266,301,153,8,54,14,40,35,67,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,500,1964,1,7939,100,7100,3000,0,0,0,0,4177,1);
-REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',55,2061,1,450,507,1,110,162,79,8,53,47,10,0,45,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1);
-REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',64,2101,1,689,776,10,201,254,88,15,55,55,36,15,77,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1);
-# REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',72,3914,1,950,1079,1,292,334,249,26,69,30,45,5,49,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1);
-REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',67,3096,1,711,798,10,140,175,91,21,32,23,38,20,69,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1);
-REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',67,2327,1,709,798,1,243,279,103,8,63,14,36,5,56,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1);
-REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',76,3222,1,923,1337,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1);
-# REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet... (mode 2181)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Event MVP
-REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,1,78525,25106,1,5000,10000,0,10,100,100,65,100,255,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,0,0,0,0,2110,4500);
-# Nifflheim (7.0)
-REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1);
-REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1);
-REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1);
-REPLACE INTO `mob_db` VALUES (1506,'DISGUISE','Disguise','Disguise',103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1);
-REPLACE INTO `mob_db` VALUES (1507,'BLOODY_MURDERER','Bloody Murderer','Bloody Murderer',110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1);
-REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1);
-REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',101,11574,1,1692,1269,2,218,296,90,53,97,38,55,82,69,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1);
-REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',102,12000,1,1876,1406,1,268,349,101,68,97,67,72,88,69,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1);
-# Pyramid Basement
-REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',69,319000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1);
-# Louyang (8.0)
-REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',87,6996,1,1283,1445,1,246,294,84,43,69,38,40,20,68,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1);
-REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',89,5292,1,1349,1512,2,276,337,90,56,67,76,40,65,62,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1);
-REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,972,1094,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1);
-REPLACE INTO `mob_db` VALUES (1515,'GARM_BABY','Garm Baby','Baby Hatii',94,10016,1,1555,1749,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1);
-REPLACE INTO `mob_db` VALUES (1516,'INCREASE_SOIL','Increase Soil','Mi Gao',83,5335,1,1201,1529,1,332,362,112,39,67,23,41,49,78,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1);
-REPLACE INTO `mob_db` VALUES (1517,'LI_ME_MANG_RYANG','Li Me Mang Ryang','Jing Guai',80,5187,1,1065,1197,1,179,220,110,37,61,22,33,35,62,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1);
-REPLACE INTO `mob_db` VALUES (1518,'BACSOJIN','Bacsojin','White Lady',97,720500,1,668160,542880,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,0,0,0,0,0,0,2234,1);
-REPLACE INTO `mob_db` VALUES (1519,'CHUNG_E','Chung E','Green Maiden',49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,0,0,0,0,0,0,0,0,0,0,5042,2);
-REPLACE INTO `mob_db` VALUES (1520,'BOILED_RICE','Boiled Rice','Boiled Rice',15,777,1,7,7,1,7,14,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,564,5500,7272,3000,7194,1000,7198,1000,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional G_Mobs & Bosses
-REPLACE INTO `mob_db` VALUES (1521,'G_ALICE','Alice','Alice',100,9230,1,0,0,1,395,493,93,73,82,53,45,70,80,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1522,'G_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',115,29157,1,0,0,1,701,801,93,27,126,57,55,69,56,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1523,'G_ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,0,0,10,324,369,72,30,67,44,30,30,83,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1524,'G_BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,0,0,2,277,329,77,5,46,36,20,4,55,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1525,'G_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,89,66,38,40,77,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1526,'G_BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,0,0,3,278,345,79,50,70,68,40,55,90,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1527,'G_C_TOWER_MANAGER','Clock Tower Manager','Clock Tower Manager',90,6400,1,0,0,3,388,458,96,60,80,28,40,25,73,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1528,'G_CLOCK','Clock','Clock',81,5556,1,0,0,1,403,456,91,43,68,24,35,41,81,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1529,'G_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,0,0,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1530,'G_DRACULA','Dracula','Dracula',75,350000,1,0,0,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1531,'G_EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,0,0,10,470,500,66,46,63,57,45,60,99,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1532,'G_EXPLOSION','Explosion','Explosion',100,7813,1,0,0,1,481,591,112,50,91,51,63,50,65,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1533,'G_FUR_SEAL','Fur Seal','Seal',47,1371,1,0,0,1,87,127,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1534,'G_GOBLIN_1','Goblin','Goblin',48,1058,1,0,0,1,87,121,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1535,'G_GOBLIN_2','Goblin','Goblin',44,931,1,0,0,1,94,122,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1536,'G_GOBLIN_3','Goblin','Goblin',44,930,1,0,0,1,88,121,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1537,'G_GOBLIN_4','Goblin','Goblin',49,1494,1,0,0,1,72,94,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1538,'G_GOBLIN_5','Goblin','Goblin',56,2342,1,0,0,1,159,190,64,5,51,37,22,15,38,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1539,'G_GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,0,0,1,165,214,72,30,60,67,45,18,66,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1540,'G_GOLEM','Golem','Golem',61,2245,1,0,0,1,198,223,190,12,70,27,67,5,31,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1541,'G_GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,0,0,3,215,241,114,30,58,30,20,25,25,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1542,'G_INCANTATION_SAMURA','Incantation Samurai','Incantation Samurai',100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1543,'G_KAPHA','Kapha','Kapha',83,5470,1,0,0,3,278,310,61,38,67,59,40,31,61,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1544,'G_KARAKASA','Karakasa','Karakasa',72,3092,1,0,0,1,156,198,93,29,66,73,33,20,53,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1545,'G_KOBOLD_1','Kobold','Kobold',107,10483,1,0,0,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1546,'G_KOBOLD_2','Kobold','Kobold',102,9152,1,0,0,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1547,'G_KOBOLD_3','Kobold','Kobold',101,9078,1,0,0,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1548,'G_KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,0,0,1,711,807,90,62,135,34,68,56,83,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1549,'G_LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,0,0,1,598,651,299,27,126,42,103,28,77,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1550,'G_LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,0,0,7,270,342,109,40,76,52,55,40,77,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1551,'G_MARSE','Marse','Marse',47,1456,1,0,0,1,85,105,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1552,'G_MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,0,0,1,216,282,57,19,66,30,30,55,73,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1553,'G_MYST','Myst','Myst',49,1223,1,0,0,1,96,116,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1554,'G_NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,0,0,1,629,755,78,37,118,53,55,63,53,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1555,'G_PARASITE','Parasite','Parasite',76,3222,1,0,0,8,161,206,63,30,55,78,33,50,88,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1556,'G_POISON_TOAD','Poison Toad','Poisonous Toad',87,4876,1,0,0,3,212,266,80,42,66,42,40,45,58,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1557,'G_ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,0,0,10,75,115,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1558,'G_SAND_MAN','Sandman','Sandman',61,2887,1,0,0,1,156,212,126,25,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1559,'G_SCORPION','Scorpion','Scorpion',16,153,1,0,0,1,39,46,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1560,'G_SHINOBI','Shinobi','Shinobi',95,8000,1,0,0,2,441,492,49,45,71,70,55,30,69,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1561,'G_SMOKIE','Smokie','Smokie',29,591,1,0,0,1,70,81,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1562,'G_SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,0,0,1,84,98,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1563,'G_TENGU','Tengu','Tengu',98,10196,1,0,0,2,211,294,134,46,99,38,40,30,67,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1564,'G_WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,0,0,2,218,346,46,45,84,46,45,70,77,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1565,'G_WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,0,0,1,523,594,56,62,76,51,60,60,76,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1566,'G_WRAITH_DEAD','Wraith Dead','Wraith Dead',86,10035,0,0,0,2,402,462,88,56,63,69,55,45,88,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1567,'G_ANCIENT_WORM','Ancient Worm','Ancient Worm',83,4140,0,0,0,1,299,334,90,41,70,56,56,55,70,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1568,'G_ANGELING','Angeling','Angeling',77,19800,1,0,0,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1569,'G_BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1570,'G_CRAMP','Cramp','Cramp',82,3898,1,0,0,1,395,443,88,42,65,43,35,25,68,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1571,'G_DEVIACE','Deviace','Deviace',60,3135,1,0,0,1,160,189,51,16,57,26,32,25,45,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1572,'G_DROPS','Drops','Drops',2,45,1,0,0,1,12,13,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1573,'G_ELDER','Elder','Elder',92,7341,1,0,0,3,276,678,72,41,67,63,35,99,88,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1574,'G_ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1575,'G_FLORA','Flora','Flora',59,2301,1,0,0,3,155,186,99,29,49,29,35,5,42,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1576,'G_GHOSTRING','Ghostring','Ghostring',90,26700,1,0,0,1,350,512,88,72,66,85,66,66,99,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1577,'G_GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,0,0,9,95,119,69,0,40,34,20,15,48,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1578,'G_HORONG','Horong','Horong',66,2304,1,0,0,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1579,'G_HYDRA','Hydra','Hydra',34,854,1,0,0,7,35,41,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',120,28000,1,0,0,2,683,858,72,46,120,56,52,75,99,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3317,1,0,0,1,71,82,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',66,16890,1,2281,2379,1,298,481,67,70,48,50,33,75,77,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1);
-REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',110,1252000,1,900000,720000,2,2890,4150,404,143,135,175,98,110,199,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1);
-# Ayothaya (9.0)
-REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',73,3195,1,898,1010,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1);
-REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',64,2635,1,594,669,1,140,181,88,16,46,16,12,45,33,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1);
-REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',70,2901,1,510,1095,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1);
-# Additional G_Mobs & Xmas_Orc
-REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,1,235,144,1,104,126,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1);
-REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',13,156,1,0,0,4,38,41,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',73,3866,1,0,0,3,281,363,158,42,81,26,35,56,60,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1591,'A_LUNATIC','Lunatic','Lunatic',29,2334,0,0,0,1,221,245,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1592,'A_MOBSTER','Gangster','Gangster',40,8000,0,0,0,1,300,355,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1593,'A_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',52,8613,0,0,0,1,830,930,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1594,'G_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,388,438,127,38,68,47,50,45,55,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1595,'G_MARIN','Marin','Marin',37,987,1,0,0,1,69,83,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1596,'G_TAMRUAN','Tamruan','Tamruan',73,3195,1,0,0,1,305,342,63,30,60,38,40,20,61,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1597,'G_GARGOYLE','Gargoyle','Gargoyle',100,8772,1,0,0,9,383,472,98,43,100,61,60,57,100,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1598,'G_BLAZZER','Blazzer','Blazzer',101,8121,1,0,0,2,461,555,116,60,99,75,55,70,60,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1599,'G_WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,0,0,1,182,241,94,45,40,79,44,51,67,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1600,'G_HEATER','Heater','Heater',96,7480,1,0,0,2,495,574,186,42,75,49,50,30,80,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1601,'G_PERMETER','Permeter','Permeter',90,6575,1,0,0,2,265,321,144,50,68,28,55,40,42,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1602,'G_SOLIDER','Solider','Solider',92,8768,1,0,0,2,282,322,206,58,65,44,60,15,47,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1603,'G_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1604,'G_GIANT_HONET','Giant Hornet','Giant Hornet',82,3960,0,0,0,1,275,328,80,43,70,45,47,32,62,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1605,'G_DARK_ILLUSION','Dark Illusion','Dark Illusion',96,29255,0,0,0,2,666,726,145,60,82,36,55,100,102,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1606,'G_GARM_BABY','Garm Baby','Baby Hatii',94,10016,1,0,0,1,383,444,62,43,69,61,55,61,88,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1607,'G_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,1,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1608,'G_THIEF_BUG__','Thief Bug Male','Thief Bug Male',19,583,1,0,0,1,76,88,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,2727,692,2,268,303,83,36,59,76,40,30,61,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,0,0,0,0,668,100);
-REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,50,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100);
-REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,189,218,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100);
-REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,1128,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,0,0,0,0,12016,100);
-# Einbroch (10.1)
-REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',81,4300,1,954,1074,1,171,210,69,28,58,30,49,17,50,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1);
-REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',96,8300,1,1503,1127,1,578,635,127,23,70,61,40,50,62,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1);
-REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',97,10088,1,1652,1239,1,590,670,129,37,84,38,40,60,53,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1);
-REPLACE INTO `mob_db` VALUES (1616,'PITMAN','Pitman','Pitman',90,7208,1,1409,1586,1,182,242,104,48,78,56,45,35,50,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1);
-REPLACE INTO `mob_db` VALUES (1617,'WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,1377,1548,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1);
-REPLACE INTO `mob_db` VALUES (1618,'UNGOLIANT','Ungoliant','Ungoliant',94,17070,1,3501,1913,1,689,733,108,28,71,70,58,43,92,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1);
-REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',85,5544,1,1294,1455,1,266,319,79,37,67,48,28,40,62,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1);
-REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',87,5430,1,888,1785,1,255,326,117,66,58,45,60,55,57,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1);
-REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',87,4770,1,1188,1337,1,287,337,104,65,61,28,60,55,45,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1);
-REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',91,7238,1,1350,1799,1,371,433,106,39,57,81,66,20,68,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1);
-REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',100,1001000,1,720000,576000,1,2315,3291,317,96,153,143,110,128,165,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1);
-REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,0,0,1,408,468,100,47,76,61,50,30,56,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',85,5544,1,922,624,1,165,218,79,37,67,48,28,40,62,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Hellion Revenant
-REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',79,8600,1,1,1,2,178,238,88,50,54,63,40,78,56,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0);
-# Lighthalzen (10.2)
-REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',95,7238,1,1691,1902,1,242,260,7,10,64,60,42,58,88,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
-REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',85,6228,1,1206,1358,9,260,309,82,16,53,65,31,30,48,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1);
-REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,2870,0,340,340,3,290,480,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1);
-REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,7166,1000,2700,100,2234,10,0,0,0,0,4372,1);
-REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',82,3901,0,1049,1481,2,247,310,69,15,66,79,36,48,66,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,0,0,0,0,5042,50,0,0,0,0,4373,1);
-REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',118,20313,1,3091,2318,1,606,744,76,25,141,75,48,61,90,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1);
-REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',120,19280,1,3285,2463,6,588,718,50,30,96,82,65,107,94,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1);
-# Normal advanced class mobs
-REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',142,194962,1,10386,7790,1,1670,1987,166,12,142,69,86,49,132,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,200,6223,10,2229,12,2317,1,13421,100,0,0,0,0,4358,1);
-REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',140,190525,1,10329,6846,1,1503,1674,122,12,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,678,110,1284,100,0,0,0,0,4360,1);
-REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',142,348100,1,10854,7241,1,1308,1590,131,10,138,79,62,53,82,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,2514,1,1311,100,1361,110,2104,10,2318,1,6223,10,0,0,0,0,4362,1);
-REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',140,220800,1,9895,7421,1,851,1405,108,93,126,74,71,123,99,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,100,6223,1,1561,10,2327,1,603,50,2504,10,0,0,0,0,4364,1);
-REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',141,190255,1,10103,7577,14,1158,1406,76,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,12007,150,6223,1,1745,100,0,0,0,0,4368,1);
-REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',141,219780,1,9207,6905,1,726,1449,77,74,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,100,1620,5,2102,30,5085,1,2404,20,0,0,0,0,4366,1);
-# MVP Slaves
-REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,2680000,1,0,0,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,1230000,1,0,0,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','Whitesmith Howard',160,3750000,1,0,0,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,2800000,1,0,0,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,0,0,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,0,0,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,0,0,0,0,617,10);
-# MVP Monsters
-REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,4642560,3481920,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,603,5000,732,2000,1132,2500,2342,3500,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1);
-REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,4185000,3147120,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,603,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1);
-REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','Whitesmith Howard',160,6750000,1,3555000,2664000,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,603,5000,732,2000,1138,3500,1140,2500,2318,9000,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1);
-REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,4800000,1,3465000,2520000,1,1666,5062,231,349,172,150,164,203,155,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,603,5000,732,2000,1814,3500,2615,2500,2513,9000,1557,3500,1527,3500,1528,2500,1560,3500,0,0,0,0,4363,1);
-REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,4106880,3080160,14,2770,4320,178,135,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,603,5000,1723,2000,1228,3500,1236,3500,617,9000,1234,1500,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1);
-REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,3240000,2430000,1,1398,6652,215,456,165,190,142,236,199,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,603,5000,732,2000,1241,3500,1242,3500,2616,9000,2343,2500,2513,2500,1618,3000,2319,3500,0,0,0,0,4365,1);
-# 1'st Class Mobs
-REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',136,44327,1,5229,4461,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,1158,20,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1);
-REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,5094,4721,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,2315,2,2620,1,13004,10,0,0,0,0,4348,1);
-REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',134,46878,1,4895,4909,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,1302,80,1307,10,0,0,0,0,4347,1);
-REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',133,42764,1,4860,4545,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,2324,10,1523,1,0,0,0,0,4349,1);
-REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',135,43079,1,5103,4276,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,2402,30,2404,2,0,0,0,0,4351,1);
-REPLACE INTO `mob_db` VALUES (1657,'RAWREL','Rawrel','Laurell Weinder',133,40282,1,4500,4477,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,934,1000,1616,1,2102,5,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1);
-# 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs.
-REPLACE INTO `mob_db` VALUES (1658,'B_YGNIZEM','Ygnizem','Egnigem Cenia',141,2910088,1,1054400,1860000,1,3057,5408,373,175,188,177,165,142,185,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,603,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,2406,1000,1130,1000,0,0,0,0,4352,1);
-REPLACE INTO `mob_db` VALUES (1659,'G_WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,0,0,1,876,1020,114,66,114,91,69,42,85,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',134,46878,1,0,0,1,793,948,119,4,123,59,85,65,96,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',133,42764,1,0,0,1,558,880,106,99,77,66,90,105,87,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',135,43079,1,0,0,9,663,792,86,48,103,109,62,50,149,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',133,40282,1,0,0,1,445,877,76,88,67,79,65,122,112,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Juperos
-REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,800,600,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,600,800,9,700,800,24,30,1,40,30,40,86,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,800,600,9,800,900,13,30,1,40,21,29,80,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1667,'POTON_CANON_3','Photon Cannon','Photon Cannon',65,7800,0,600,800,9,700,800,24,30,1,40,23,30,90,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',119,20700,1,2862,2147,3,603,722,98,15,118,64,70,65,66,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1);
-REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,45,28,15,69,40,15,63,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1);
-REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',116,17552,1,2916,2187,7,656,763,93,28,114,90,66,52,122,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1);
-REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',116,23840,1,2916,2187,5,630,733,76,21,118,72,62,55,88,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1);
-REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',116,21920,1,2916,2187,5,610,705,114,24,115,64,68,50,82,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1);
-REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',116,16940,1,2916,2187,5,699,823,98,28,112,79,72,53,86,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1);
-REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,1,0,0,5,2400,3400,87,25,0,1,90,24,144,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,12717,1,0,0,2,652,779,96,20,99,56,58,62,48,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1);
-REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',113,15900,1,2448,1836,2,687,772,95,20,109,54,60,50,60,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1);
-REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',113,14717,1,2637,1980,2,655,762,86,20,99,73,58,62,98,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1);
-REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',113,21040,1,2643,1983,2,698,798,104,16,103,50,62,57,69,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1);
-REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',113,21810,1,2643,1983,2,656,745,74,15,106,69,61,55,72,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1);
-REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',101,9100,1,1900,1425,3,308,375,90,37,105,69,59,35,80,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1);
-REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',135,108999,1,4725,3543,3,785,1107,89,45,115,92,81,92,94,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1);
-REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',121,32235,0,3772,2829,1,713,833,110,47,127,50,82,35,89,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1);
-REPLACE INTO `mob_db` VALUES (1683,'G_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,800,900,16,30,1,40,25,20,80,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1684,'G_ARCHDAM','Archdam','Archdam',119,20700,1,0,0,3,603,722,98,15,118,64,70,65,66,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',128,3802000,1,2700000,2250000,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1);
-REPLACE INTO `mob_db` VALUES (1686,'ORC_BABY','Orc Baby','Orc Baby',43,1122,1,315,354,1,64,75,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1);
-REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Grove',55,2090,1,486,548,1,139,174,96,18,58,42,22,5,45,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1);
-REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',80,360000,1,334080,261000,14,1760,2685,141,104,86,108,88,121,200,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1);
-REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',97,720500,1,0,0,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,511,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,2901,1,0,0,1,266,311,108,20,54,33,35,15,62,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0);
-# Thanatos Tower (10.3)
-REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',92,6755,1,1598,1797,2,379,431,83,32,75,101,46,35,66,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1);
-REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',119,20600,1,2111,2882,1,615,750,130,45,141,94,75,91,103,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1);
-REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',118,16789,1,3549,2661,1,835,935,111,12,147,77,66,65,95,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1);
-REPLACE INTO `mob_db` VALUES (1695,'PLASMA_G','Plasma','Plasma',116,24975,1,3348,2511,1,608,720,120,3,121,60,58,62,73,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1);
-REPLACE INTO `mob_db` VALUES (1696,'PLASMA_P','Plasma','Plasma',117,18955,1,3348,2511,1,623,762,78,49,130,71,72,70,87,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1);
-REPLACE INTO `mob_db` VALUES (1697,'PLASMA_B','Plasma','Plasma',115,24651,1,3181,2384,1,428,498,51,18,124,74,60,55,66,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1);
-REPLACE INTO `mob_db` VALUES (1698,'DEATHWORD','Deathword','Death Word',114,16390,1,2565,1923,1,596,721,68,40,91,64,53,88,99,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1);
-REPLACE INTO `mob_db` VALUES (1699,'ANCIENT_MIMIC','Ancient Mimic','Ancient Mimic',112,14700,1,2448,2069,1,685,769,100,40,121,70,63,43,101,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1);
-REPLACE INTO `mob_db` VALUES (1700,'OBSERVATION','Observation','Dame of Sentinel',127,34538,1,3735,2801,2,643,795,98,55,99,75,52,55,106,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1);
-REPLACE INTO `mob_db` VALUES (1701,'SHELTER','Shelter','Mistress of Shelter',125,27000,1,4010,3051,2,691,935,80,89,99,66,41,103,95,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1);
-REPLACE INTO `mob_db` VALUES (1702,'RETRIBUTION','Retribution','Baroness of Retribution',121,22152,1,3528,2463,2,798,1102,61,35,112,60,45,77,78,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1);
-REPLACE INTO `mob_db` VALUES (1703,'SOLACE','Solace','Lady Solace',123,24729,1,3758,2819,2,667,832,96,96,106,65,61,42,82,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1);
-REPLACE INTO `mob_db` VALUES (1704,'THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,3960,3666,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1);
-REPLACE INTO `mob_db` VALUES (1705,'THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,3960,3666,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1);
-REPLACE INTO `mob_db` VALUES (1706,'THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,3960,3666,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1);
-REPLACE INTO `mob_db` VALUES (1707,'THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,3960,3666,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1);
-REPLACE INTO `mob_db` VALUES (1708,'THANATOS','Thanatos','Thanatos Phantom',99,1445660,1,1299400,1930554,3,3812,5483,364,35,100,129,30,86,206,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1);
-REPLACE INTO `mob_db` VALUES (1709,'G_THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,0,0,9,758,902,120,30,106,78,71,54,129,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1710,'G_THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,0,0,2,737,908,95,69,111,96,66,65,91,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1711,'G_THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,0,0,2,756,1001,96,90,97,111,70,133,82,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1712,'G_THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Abyss Lake
-REPLACE INTO `mob_db` VALUES (1713,'ACIDUS','Acidus','Acidus',130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1);
-REPLACE INTO `mob_db` VALUES (1714,'FERUS','Ferus','Ferus',126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1);
-REPLACE INTO `mob_db` VALUES (1715,'NOVUS','Novus','Novus',90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1);
-REPLACE INTO `mob_db` VALUES (1716,'ACIDUS_','Acidus','Acidus',130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1);
-REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1);
-REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1);
-REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1);
-REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydrolancer',121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1);
-REPLACE INTO `mob_db` VALUES (1721,'DRAGON_EGG','Dragon Egg','Dragon Egg',119,20990,1,2862,2147,0,503,653,172,85,84,59,85,40,118,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1);
-REPLACE INTO `mob_db` VALUES (1722,'EVENT_JAKK','Jakk','Jakk',99,10310,0,93,90,1,115,182,8,11,1,28,18,13,35,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,0,0,0,0,5134,10000);
-REPLACE INTO `mob_db` VALUES (1723,'A_SHECIL','Shecil Damon','Cecil Damon',82,30000,0,0,0,14,600,900,40,15,1,145,27,32,134,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1724,'A_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,1000,1300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1725,'R_PORING','Poring','Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1726,'R_LUNATIC','Lunatic','Lunatic',3,60,0,0,0,1,9,12,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1727,'R_SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,0,0,1,20,25,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1728,'R_DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,0,0,1,33,41,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,0,0,1,487,590,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,313200,250560,1,1639,2815,246,86,122,122,105,67,169,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','Treasure Chest',98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Kiel Dungeon (10.4)
-REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiehl',90,523500,1,32850,21065,3,2018,3647,45,32,100,112,76,89,156,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',125,2502000,1,1800000,1440000,3,2937,6517,314,232,166,187,155,141,199,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1);
-REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',115,18000,1,2565,1923,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1);
-REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',112,15669,1,2448,1836,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1);
-REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',112,14450,1,2448,1836,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1);
-REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',108,12050,0,2506,1879,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',115,18000,1,0,0,2,537,635,109,30,121,53,59,63,73,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1740,'G_ALIOT','Aliot','Aliot',112,15669,1,0,0,2,608,697,106,15,111,56,55,42,62,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1741,'G_COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,0,0,1,70,105,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1742,'G_CARAT','Carat','Carat',103,9222,1,0,0,1,598,674,111,67,102,64,60,40,67,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1743,'G_MYSTCASE','Myst Case','Myst Case',39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1744,'G_WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,0,0,1,140,185,75,15,44,87,31,35,63,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1745,'G_CONSTANT','Constant','Constant',108,2000,0,0,0,1,560,704,92,82,126,98,62,57,91,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1746,'G_ALIZA','Aliza','Aliza',112,14450,1,0,0,1,600,697,98,5,115,50,51,62,70,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',18,217,1,0,0,1,29,34,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,0,0,1,388,443,92,0,79,46,28,43,56,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',102,10045,1,0,0,1,477,590,87,66,99,68,65,79,69,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,1,0,0,1,100,200,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Odin's Temple
-REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1);
-REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1);
-REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1);
-REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1);
-REPLACE INTO `mob_db` VALUES (1755,'SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1);
-REPLACE INTO `mob_db` VALUES (1756,'G_HYDRO','Hydro','Hydrolancer',121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1757,'G_ACIDUS','Acidus','Acidus',130,48430,1,0,0,2,622,1017,101,47,109,78,50,55,77,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1758,'G_FERUS','Ferus','Ferus',126,25668,1,0,0,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1759,'G_ACIDUS_','Acidus','Acidus',130,40718,1,0,0,2,703,861,98,90,106,110,61,53,95,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1760,'G_FERUS_','Ferus','Ferus',126,39054,1,0,0,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1761,'G_SKOGUL','Skogul','Skogul',126,34240,1,0,0,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1762,'G_FRUS','Frus','Frus',128,39520,1,0,0,2,710,879,65,35,114,77,66,51,69,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1763,'G_SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,0,0,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,0,0,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',141,1005000,1,10000,10000,3,2895,6101,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,500,617,100,2115,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430,0,0,0,1,60,71,64,50,1,17,80,80,126,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Rachel / Ice Dungeon (11.1)
-REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1);
-REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1);
-REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1);
-REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1);
-REPLACE INTO `mob_db` VALUES (1772,'ISILLA','Isilla','Isilla',124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1);
-REPLACE INTO `mob_db` VALUES (1773,'HODREMLIN','Hodremlin','Hodremlin',122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1);
-REPLACE INTO `mob_db` VALUES (1774,'SEEKER','Seeker','Seeker',124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1);
-REPLACE INTO `mob_db` VALUES (1775,'SNOWIER','Snowier','Snowier',103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1);
-REPLACE INTO `mob_db` VALUES (1776,'SIROMA','Siroma','Siroma',98,11910,1,1827,1369,1,389,489,64,38,83,43,50,70,80,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,1000,7066,500,510,10,0,0,0,0,0,0,991,20,0,0,0,0,4416,1);
-REPLACE INTO `mob_db` VALUES (1777,'ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,2724,2644,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1);
-REPLACE INTO `mob_db` VALUES (1778,'GAZETI','Gazeti','Gazeti',106,14000,1,2025,1518,10,596,664,71,21,105,37,42,38,97,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,200,0,0,0,0,0,0,4418,1);
-REPLACE INTO `mob_db` VALUES (1779,'KTULLANUX','Ktullanux','Ktullanux',98,2626000,1,1035576,949942,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1);
-REPLACE INTO `mob_db` VALUES (1780,'MUSCIPULAR','Muscipular','Muscipular',105,12550,1,1944,1458,1,401,477,114,43,100,60,58,37,60,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,200,0,0,0,0,4420,1);
-REPLACE INTO `mob_db` VALUES (1781,'DROSERA','Drosera','Drosera',101,10878,1,1350,1013,7,168,222,86,52,79,32,64,38,78,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,200,1032,2000,1033,2000,621,3,905,1000,6217,50,0,0,0,0,4421,1);
-REPLACE INTO `mob_db` VALUES (1782,'ROWEEN','Roween','Roween',95,7385,1,1691,1902,1,375,410,73,33,70,82,55,45,73,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1);
-REPLACE INTO `mob_db` VALUES (1783,'GALION','Galion','Galion',100,8821,1,1769,1327,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1);
-REPLACE INTO `mob_db` VALUES (1784,'STAPO','Stapo','Stapo',95,8805,1,1574,1772,1,364,415,129,36,20,46,25,35,53,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1);
-REPLACE INTO `mob_db` VALUES (1785,'ATROCE','Atroce','Atroce',113,1502000,1,1080000,855000,2,2031,3534,316,176,121,165,135,99,152,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1);
-REPLACE INTO `mob_db` VALUES (1786,'G_AGAV','Agav','Agav',128,40000,1,0,0,1,637,818,77,82,85,66,55,113,66,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1787,'G_ECHIO','Echio','Echio',126,31620,1,0,0,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1788,'G_ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,0,0,1,837,935,344,11,133,54,78,33,78,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1789,'ICEICLE','Iceicle','Iceicle',100,1012,1,164,122,3,425,426,2,15,99,1,1,1,95,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0,7066,500);
-REPLACE INTO `mob_db` VALUES (1790,'G_RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,0,0,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1791,'G_GALION','Galion','Galion',100,8821,1,0,0,1,405,482,100,62,106,79,62,45,90,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1792,'SOCCER_BALL','Soccer Ball','Soccer Ball',1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,0,0,0,0,617,1000);
-REPLACE INTO `mob_db` VALUES (1793,'G_MEGALITH','Megalith','Megalith',65,2451,1,0,0,9,116,146,66,18,57,14,35,10,90,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1794,'G_ROWEEN','Roween','Roween',95,7385,1,0,0,1,175,210,73,33,70,82,55,45,73,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1795,'BLOODY_KNIGHT_','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,942,1065,122,50,132,59,70,57,98,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,0,0,0,0,7578,10000);
-# WoE SE Guild Dungeon
-REPLACE INTO `mob_db` VALUES (1796,'AUNOE','Aunoe','Aunoe',110,13050,0,1935,1454,1,646,727,107,42,118,63,62,77,70,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1);
-REPLACE INTO `mob_db` VALUES (1797,'FANAT','Fanat','Fanat',120,21000,1,3042,2282,1,599,705,81,64,102,66,70,47,79,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1);
-# Additional Event Monsters
-REPLACE INTO `mob_db` VALUES (1798,'TREASURE_BOX_','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1799,'G_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1800,'G_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1801,'G_HARWORD_','Whitesmith Harword','Mastersmith Howard',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1802,'G_MAGALETA_','High Priest Magaleta','High Priest Margaretha',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1803,'G_SHECIL_','Sniper Shecil','Sniper Cecil',10,10,1,1,1,14,1,2,1,1,1,1,1,1,1,1,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1804,'G_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',10,10,1,1,1,1,1,2,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1805,'B_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,4352040,1412973,1,7238,11040,72,37,120,110,81,65,130,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1806,'B_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,3675060,1433142,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1807,'B_HARWORD_','Whitesmith Harword','Mastersmith Howard',99,1460000,0,3602106,1278900,1,7822,8251,66,36,100,73,112,35,136,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1808,'B_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,1092910,0,3831300,1186920,1,4688,5580,35,78,1,84,64,182,92,100,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1809,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,3683700,1373400,14,4892,9113,22,35,1,180,39,67,193,130,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1810,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,3607380,1473030,1,1197,4394,10,88,1,89,42,223,128,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,1,0,0,1,61,72,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',99,15,0,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x40,190,890,960,480,0,0,0,0,0,0,0,7225,5000,1062,5000,535,5000,7609,5000,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,1880000,0,3600000,1800000,3,15000,47767,96,55,1,142,200,250,189,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,2000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1814,'EVENT_MOON','Moonlight Flower','Moonlight Flower',80,30000,0,27000,27000,1,500,800,80,50,1,35,45,112,69,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Rice Cake',12,777,1,7,7,1,7,14,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1816,'EVENT_GOURD','Gourd','Gourd',12,1000,0,0,0,1,1,2,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1817,'EVENT_DETALE','Detale','Detarderous',99,8880000,0,4050000,2250000,3,32767,65534,104,65,1,142,200,250,189,50,10,12,2,8,48,0x37B5,100,972,936,360,0,0,0,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1818,'EVENT_ALARM','Alarm','Alarm',58,10647,0,0,0,0,1,2,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000);
-REPLACE INTO `mob_db` VALUES (1819,'EVENT_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1820,'EVENT_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,62,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1821,'EVENT_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,520,579,114,47,93,69,63,61,82,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1822,'EVENT_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,283,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1823,'EVENT_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,188,238,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1824,'EVENT_GARM_BABY','Garm Baby','Baby Hatii',94,10016,1,0,0,1,183,244,62,43,69,61,55,61,53,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1825,'EVENT_GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,0,0,0,1,118,140,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1826,'EVENT_MYST','Myst','Myst',39,879,1,0,0,1,68,89,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1827,'EVENT_SASQUATCH','Sasquatch','Sasquatch',30,3163,0,0,0,1,250,280,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1828,'EVENT_GULLINBURSTI','Gullinbrusti','Gullinbrusti',20,20,0,0,0,1,59,72,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Thor Volcano (11.2)
-REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUARDIAN','Sword Guardian','Sword Guardian',133,70000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1);
-REPLACE INTO `mob_db` VALUES (1830,'BOW_GUARDIAN','Bow Guardian','Bow Guardian',132,63000,0,4392,3294,12,766,886,127,62,109,80,65,52,122,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1);
-REPLACE INTO `mob_db` VALUES (1831,'SALAMANDER','Salamander','Salamander',138,80390,1,5919,7139,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,10,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1);
-REPLACE INTO `mob_db` VALUES (1832,'IFRIT','Ifrit','Ifrit',146,6935000,1,6696000,4860000,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,603,5500,617,5000,616,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,2345,100,0,0,0,0,4430,1);
-REPLACE INTO `mob_db` VALUES (1833,'KASA','Kasa','Kasa',135,70128,1,5599,7709,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1);
-REPLACE INTO `mob_db` VALUES (1834,'G_SALAMANDER','Salamander','Salamander',138,80390,1,0,0,2,1399,1799,141,68,189,105,72,85,132,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1835,'G_KASA','Kasa','Kasa',135,70128,1,0,0,2,1004,1309,104,70,111,74,65,78,108,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1836,'MAGMARING','Magmaring','Magmaring',110,13079,1,2536,1903,1,678,722,100,45,107,33,35,47,61,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1);
-REPLACE INTO `mob_db` VALUES (1837,'IMP','Imp','Imp',129,36830,1,4594,3445,1,885,1091,56,75,66,83,65,88,72,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,3,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1);
-REPLACE INTO `mob_db` VALUES (1838,'KNOCKER','Knocker','Knocker',126,43900,1,3690,3768,1,633,736,126,62,93,62,58,56,99,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1);
-REPLACE INTO `mob_db` VALUES (1839,'BYORGUE','Byorgue','Byrogue',135,92544,1,7725,5543,2,793,934,120,13,114,86,70,65,81,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1);
-# Additional Event Monsters
-REPLACE INTO `mob_db` VALUES (1840,'GOLDEN_SAVAGE','Golden Savage','Golden Savage',99,500,1,1,1,1,500,700,160,99,0,1,1,50,120,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,0,0,0,0,12239,3000);
-REPLACE INTO `mob_db` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minion','Snake Lord\'s Minion',15,10,1,1,1,1,46,55,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minion','Snake Lord\'s Minion',23,15,1,1,1,1,124,157,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,673,1000,673,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1843,'G_SIDE_WINDER_','Snake Lord\'s Minion','Snake Lord\'s Minion',43,18,1,1,1,1,240,320,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minion','Snake Lord\'s Minion',47,25,1,1,1,1,423,507,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,673,1000,675,1000,673,1000,675,1000,12715,500,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1845,'G_TREASURE_BOX_','Treasure Box','Treasure Box',98,500,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,0,0,0,0,12245,2500);
-REPLACE INTO `mob_db` VALUES (1846,'DREAMMETAL','Dream Metal','Dream Metal',90,1499,0,1,1,1,1,2,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1847,'EVENT_PORING','Poring','Poring',98,10000500,0,900000,900000,1,15000,20000,96,60,1,60,120,120,160,30,10,12,1,8,28,0x37B5,100,76,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1848,'EVENT_BAPHOMET','Baphomet','Baphomet',50,45000,0,900,900,2,1500,3000,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1849,'EVENT_OSIRIS','Osiris','Osiris',60,125000,0,1800,1800,1,3500,5000,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1850,'EVENT_ORCHERO','Orc Hero','Orc Hero',50,175000,0,2700,2700,1,4000,5500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1851,'EVENT_MOBSTER','Mobster','Mobster',61,7991,1,0,0,1,910,1128,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1001,'SCORPION','Scorpion','Scorpion',16,153,1,108,81,1,33,7,16,5,12,15,10,5,19,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,990,70,904,5500,757,57,943,210,7041,100,508,200,625,20,0,0,0,0,4068,1);
+REPLACE INTO `mob_db` VALUES (1002,'PORING','Poring','Poring',1,60,1,36,20,1,8,1,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1);
+-- REPLACE INTO `mob_db` VALUES (1003,'TESTEGG','Test Egg','Test Egg',2,100000,0,10,10,0,3,9,99,0,1,99,1,1,1,1,10,12,0,4,22,0x0,512,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1004,'HORNET','Hornet','Hornet',11,90,1,81,60,1,13,3,7,1,12,24,4,5,6,5,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1);
+REPLACE INTO `mob_db` VALUES (1005,'FARMILIAR','Familiar','Familiar',24,427,1,144,162,1,68,9,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,913,5500,1105,20,2209,15,601,50,514,100,507,700,645,50,0,0,0,0,4020,1);
+-- REPLACE INTO `mob_db` VALUES (1006,'THIEF_BUG_LARVA','Thief Bug Larva','Thief Bug Larva',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1007,'FABRE','Fabre','Fabre',6,72,1,54,41,1,12,3,24,0,12,5,5,5,12,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,500,1502,80,721,5,511,700,705,1000,1501,200,0,0,0,0,4002,1);
+REPLACE INTO `mob_db` VALUES (1008,'PUPA','Pupa','Pupa',4,66,1,36,27,1,1,3,24,2,11,1,3,3,8,6,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,80,915,5500,938,600,2102,2,935,1000,938,600,1002,200,0,0,0,0,4003,1);
+REPLACE INTO `mob_db` VALUES (1009,'CONDOR','Condor','Condor',12,114,1,81,60,1,14,6,7,5,14,7,6,0,13,5,10,12,1,2,24,0x1081,150,1148,648,480,0,0,0,0,0,0,0,917,9000,1702,150,715,80,1750,5500,517,400,916,2000,582,600,0,0,0,0,4015,1);
+REPLACE INTO `mob_db` VALUES (1010,'WILOW','Willow','Willow',8,91,1,63,47,1,13,5,38,2,13,3,8,5,12,5,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1);
+REPLACE INTO `mob_db` VALUES (1011,'CHONCHON','Chonchon','Chonchon',5,57,1,45,36,1,11,3,27,0,13,4,4,0,8,5,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1);
+REPLACE INTO `mob_db` VALUES (1012,'RODA_FROG','Roda Frog','Roda Frog',13,160,1,90,68,1,19,4,12,5,12,6,4,0,14,9,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1);
+REPLACE INTO `mob_db` VALUES (1013,'WOLF','Wolf','Wolf',45,1219,1,342,386,1,80,11,55,3,27,24,30,15,33,5,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1);
+REPLACE INTO `mob_db` VALUES (1014,'SPORE','Spore','Spore',18,280,1,117,87,1,25,8,12,10,15,5,10,0,12,0,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1);
+REPLACE INTO `mob_db` VALUES (1015,'ZOMBIE','Zombie','Zombie',17,234,1,117,87,1,38,12,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1);
+REPLACE INTO `mob_db` VALUES (1016,'ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,424,455,9,95,23,47,10,30,29,20,10,35,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1);
+-- REPLACE INTO `mob_db` VALUES (1017,'THIEF_BUG_FEMALE','Thief Bug Female','Thief Bug Female',10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1);
+REPLACE INTO `mob_db` VALUES (1018,'CREAMY','Creamy','Creamy',23,378,1,144,162,1,61,1,28,20,16,1,1,0,1,20,10,12,0,4,24,0x181,150,1136,720,840,0,0,0,0,0,0,0,924,9000,2322,10,518,150,602,100,2207,2,712,500,692,100,0,0,0,0,4040,1);
+REPLACE INTO `mob_db` VALUES (1019,'PECOPECO','Peco Peco','Peco Peco',25,446,1,162,183,1,76,7,48,0,21,10,13,5,28,5,10,12,2,2,23,0x1089,200,1564,864,576,0,0,0,0,0,0,0,925,9000,2402,20,508,200,507,900,1604,100,0,0,582,1000,0,0,0,0,4031,1);
+REPLACE INTO `mob_db` VALUES (1020,'MANDRAGORA','Mandragora','Mandragora',13,156,1,97,73,4,20,3,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,993,50,905,9000,1405,30,511,350,711,300,706,3,1967,10,0,0,0,0,4030,1);
+-- REPLACE INTO `mob_db` VALUES (1021,'THIEF_BUG_MALE','Thief Bug Male','Thief Bug Male',19,583,0,223,93,1,76,88,15,5,1,29,16,5,36,1,10,12,1,4,27,0x653,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
+-- REPLACE INTO `mob_db` VALUES (1022,'WEREWOLF','Werewolf','Werewolf',80,28600,0,11813,7289,2,2560,3280,65,35,1,97,60,1,135,52,10,10,2,0,40,0x163,200,1500,768,652,0,0,0,0,0,0,0,999,500,1034,4000,984,500,985,500,7017,800,0,0,1912,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1023,'ORK_WARRIOR','Orc Warrior','Orc Warrior',44,1434,1,350,540,1,71,33,52,3,32,15,24,15,16,10,10,12,1,7,22,0x3885,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,9000,756,40,2267,3,1352,10,1304,5,2147,3,0,0,0,0,4066,1);
+REPLACE INTO `mob_db` VALUES (1024,'WORM_TAIL','Wormtail','Wormtail',17,200,1,117,87,1,22,5,16,0,10,6,14,5,12,35,10,12,1,3,22,0x91,200,1048,48,192,0,0,0,0,0,0,0,993,60,1011,25,906,5500,1408,30,508,70,721,5,10015,100,0,0,0,0,4034,1);
+REPLACE INTO `mob_db` VALUES (1025,'SNAKE','Snake','Boa',18,217,1,117,87,1,23,5,9,8,10,8,18,10,14,15,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,926,9000,1117,15,507,900,1011,35,937,800,954,1,578,600,0,0,0,0,4037,1);
+REPLACE INTO `mob_db` VALUES (1026,'MUNAK','Munak','Munak',58,2445,1,520,557,1,184,30,77,15,53,9,25,10,33,10,10,12,1,1,29,0x3885,200,2468,768,288,0,0,0,0,0,0,0,901,9000,2264,2,2404,15,609,20,2337,1,2305,100,1558,5,0,0,0,0,4090,1);
+-- REPLACE INTO `mob_db` VALUES (1027,'RAPTICE','Raptice','Raptice',17,600,0,100,55,1,0,0,5,10,5,20,20,0,28,10,10,12,1,2,22,0x131,200,2000,1000,500,0,0,0,0,0,0,0,909,7000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1028,'SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,216,243,1,84,14,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,932,5500,756,60,1214,12,507,700,934,10,2315,1,1216,50,0,0,0,0,4086,1);
+REPLACE INTO `mob_db` VALUES (1029,'ISIS','Isis','Isis',59,2092,1,558,597,1,202,37,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,936,5335,2233,5,2603,1,733,150,732,20,954,1000,731,5,0,0,0,0,4116,1);
+REPLACE INTO `mob_db` VALUES (1030,'ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,1922,1202,1,504,55,92,0,79,46,28,43,67,25,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,6247,200,937,9000,1455,10,926,1500,936,200,508,150,756,50,0,0,0,0,4062,1);
+REPLACE INTO `mob_db` VALUES (1031,'POPORING','Poporing','Poporing',30,524,1,198,224,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,512,5,1207,5,512,250,0,0,0,0,4033,1);
+REPLACE INTO `mob_db` VALUES (1032,'VERIT','Verit','Verit',52,1944,1,434,467,1,139,20,63,10,51,4,25,10,6,5,10,12,1,1,29,0x83,250,2468,768,480,0,0,0,0,0,0,0,929,9000,912,700,930,1100,509,600,2609,1,2612,200,639,20,0,0,0,0,4107,1);
+REPLACE INTO `mob_db` VALUES (1033,'ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,233,263,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,990,50,907,9000,7939,1,757,40,2329,30,690,100,604,100,0,0,0,0,4052,1);
+REPLACE INTO `mob_db` VALUES (1034,'THARA_FROG','Thara Frog','Thara Frog',40,1157,1,311,350,1,73,30,37,17,25,10,10,18,30,2,10,12,1,5,41,0x81,200,2016,816,288,0,0,0,0,0,0,0,1011,45,908,5500,911,600,509,30,725,5,918,2000,0,0,0,0,0,0,4058,1);
+REPLACE INTO `mob_db` VALUES (1035,'HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,634,681,1,226,20,46,20,32,72,22,25,100,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1);
+REPLACE INTO `mob_db` VALUES (1036,'GHOUL','Ghoul','Ghoul',61,2614,1,612,656,1,227,29,78,5,56,12,19,11,30,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1);
+REPLACE INTO `mob_db` VALUES (1037,'SIDE_WINDER','Side Winder','Side Winder',70,2736,1,756,810,1,316,30,101,12,52,32,35,20,73,15,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,954,5335,912,1400,756,134,1120,2,937,2500,926,5000,509,1000,0,0,0,0,4117,1);
+REPLACE INTO `mob_db` VALUES (1038,'OSIRIS','Osiris','Osiris',68,1175840,1,245520,200880,1,1980,1503,172,164,97,99,86,131,165,67,10,12,1,1,89,0x37B5,100,1072,672,384,122760,603,4000,608,3000,751,500,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1);
+REPLACE INTO `mob_db` VALUES (1039,'BAPHOMET','Baphomet','Baphomet',81,668000,1,436178,334106,2,3150,1984,379,45,120,125,30,85,186,85,10,12,2,6,67,0x37B5,100,768,768,576,198262,607,2000,750,500,923,5000,1466,400,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1);
+REPLACE INTO `mob_db` VALUES (1040,'GOLEM','Golem','Golem',61,2245,1,566,608,1,208,25,190,12,70,27,67,5,34,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,999,150,953,9000,912,220,757,70,2146,5,715,200,998,350,0,0,0,0,4072,1);
+REPLACE INTO `mob_db` VALUES (1041,'MUMMY','Mummy','Mummy',55,2155,1,510,548,1,180,21,95,3,54,4,14,1,68,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,930,9000,756,100,934,550,2604,1,2611,10,525,250,508,850,0,0,0,0,4106,1);
+REPLACE INTO `mob_db` VALUES (1042,'STEEL_CHONCHON','Steel Chonchon','Steel Chonchon',48,1199,1,369,414,1,77,35,57,20,30,62,20,10,56,10,10,12,0,4,24,0x118B,150,1076,576,480,0,0,0,0,0,0,0,992,90,999,30,910,2400,935,9000,943,30,998,200,1002,300,0,0,0,0,4042,1);
+-- REPLACE INTO `mob_db` VALUES (1043,'SEAHORES','Seahorse','Seahorse',18,1452,0,122,78,3,100,150,15,7,1,1,1,1,1,1,10,10,0,5,22,0x131,200,1500,800,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1044,'OBEAUNE','Obeaune','Obeaune',53,2158,1,500,534,1,107,45,48,26,54,47,21,40,40,25,10,12,1,5,41,0x3095,200,1872,672,288,0,0,0,0,0,0,0,995,13,950,9000,5014,1,2326,10,720,10,951,500,748,30,0,0,0,0,4093,1);
+REPLACE INTO `mob_db` VALUES (1045,'MARC','Marc','Marc',56,2522,1,550,590,1,145,25,55,24,50,24,22,15,53,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,95,951,1000,720,10,717,200,509,700,0,0,0,0,4105,1);
+REPLACE INTO `mob_db` VALUES (1046,'DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,344520,250560,1,2103,1176,246,86,122,122,105,67,203,72,10,12,1,6,67,0x37B5,100,480,480,288,156600,724,1500,505,6000,0,0,2317,250,1162,220,1168,150,2258,350,1411,550,985,3686,984,2700,0,0,0,0,4142,1);
+REPLACE INTO `mob_db` VALUES (1047,'PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',7,75,1,54,41,0,1,0,16,5,4,10,22,8,10,5,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,250,935,1500,2102,2,507,400,507,400,713,1800,736,10,0,0,0,0,4007,1);
+REPLACE INTO `mob_db` VALUES (1048,'THIEF_BUG_EGG','Thief Bug Egg','Thief Bug Egg',20,344,1,126,143,0,1,1,64,10,10,1,50,0,3,15,10,12,0,4,27,0x100,1000,701,1,1,0,0,0,0,0,0,0,1010,300,915,5000,2102,2,938,600,716,100,737,10,1002,250,0,0,0,0,4012,1);
+REPLACE INTO `mob_db` VALUES (1049,'PICKY','Picky','Picky',9,95,1,63,47,1,18,1,21,3,14,9,10,0,10,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,2302,150,507,550,519,300,715,50,0,0,0,0,0,0,4008,1);
+REPLACE INTO `mob_db` VALUES (1050,'PICKY_','Picky','Picky',10,89,1,72,54,1,18,20,48,10,15,8,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,715,50,10012,10,0,0,0,0,4011,1);
+REPLACE INTO `mob_db` VALUES (1051,'THIEF_BUG','Thief Bug','Thief Bug',21,354,1,126,143,1,56,5,24,3,19,7,10,0,12,5,10,12,0,4,60,0x1183,150,1288,288,768,0,0,0,0,0,0,0,955,2500,2304,80,507,350,909,2000,2303,120,1002,250,0,0,0,0,0,0,4016,1);
+REPLACE INTO `mob_db` VALUES (1052,'ROCKER','Rocker','Rocker',15,185,1,99,74,1,19,5,16,3,12,18,8,10,17,5,10,12,1,4,22,0x181,200,1864,864,540,0,0,0,0,0,0,0,940,9000,1916,10,2298,4,1402,80,520,10,752,10,703,10,0,0,0,0,4021,1);
+REPLACE INTO `mob_db` VALUES (1053,'THIEF_BUG_','Thief Bug Female','Female Thief Bug',28,531,1,180,203,1,42,16,28,7,12,10,23,10,24,10,10,12,1,4,27,0x118B,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,300,0,0,0,0,4026,1);
+REPLACE INTO `mob_db` VALUES (1054,'THIEF_BUG__','Thief Bug Male','Male Thief Bug',30,595,1,198,224,1,46,21,40,20,17,37,22,5,31,13,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,1011,40,928,5500,955,1500,1152,10,508,90,729,5,1116,50,0,0,0,0,4050,1);
+REPLACE INTO `mob_db` VALUES (1055,'MUKA','Muka','Muka',23,468,1,144,162,1,66,9,28,0,18,9,28,5,43,5,10,12,2,3,22,0x81,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,511,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1);
+REPLACE INTO `mob_db` VALUES (1056,'SMOKIE','Smokie','Smokie',29,591,1,180,203,1,70,11,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,945,5500,919,5500,516,800,2213,1,754,2,912,5,729,2,0,0,0,0,4044,1);
+REPLACE INTO `mob_db` VALUES (1057,'YOYO','Yoyo','Yoyo',38,898,1,270,305,1,63,11,40,0,20,11,34,20,19,10,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,9000,513,1500,508,200,7182,900,753,10,756,24,578,1000,0,0,0,0,4051,1);
+REPLACE INTO `mob_db` VALUES (1058,'METALLER','Metaller','Metaller',55,1687,1,472,507,1,196,41,72,12,52,24,10,0,52,31,10,12,1,4,23,0x118B,200,1708,1008,540,0,0,0,0,0,0,0,990,60,940,6500,911,400,757,49,707,20,935,3000,1914,10,0,0,0,0,4057,1);
+REPLACE INTO `mob_db` VALUES (1059,'MISTRESS','Mistress','Mistress',78,378000,1,368280,301320,1,985,1967,287,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,184140,996,1500,526,4000,722,3000,1413,150,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1);
+REPLACE INTO `mob_db` VALUES (1060,'BIGFOOT','Bigfoot','Bigfoot',29,587,1,180,203,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,948,9000,2289,5,919,5000,740,80,516,1500,518,450,756,43,0,0,0,0,4074,1);
+REPLACE INTO `mob_db` VALUES (1061,'NIGHTMARE','Nightmare','Nightmare',69,2872,1,526,1032,1,297,62,116,15,57,32,20,15,77,15,10,12,2,6,68,0x3395,150,1816,816,432,0,0,0,0,0,0,0,944,6000,510,500,2608,2,603,30,505,100,1261,1,984,60,0,0,0,0,4127,1);
+REPLACE INTO `mob_db` VALUES (1062,'PORING_','Santa Poring','Santa Poring',3,69,1,4,5,1,12,4,0,0,1,14,3,10,12,90,10,12,1,3,26,0x81,400,1672,672,480,0,0,0,0,0,0,0,529,2000,530,1000,507,1000,512,1000,2236,100,512,7,0,0,0,0,0,0,4005,1);
+REPLACE INTO `mob_db` VALUES (1063,'LUNATIC','Lunatic','Lunatic',3,55,1,36,27,1,11,1,18,0,10,3,3,0,8,5,10,12,0,2,60,0x81,200,1456,456,336,0,0,0,0,0,0,0,705,6500,949,1000,2262,4,512,2000,507,600,515,1100,622,20,0,0,0,0,4006,1);
+REPLACE INTO `mob_db` VALUES (1064,'MEGALODON','Megalodon','Megalodon',46,1335,1,342,386,1,117,32,52,28,35,24,30,28,29,15,10,12,1,1,29,0x81,200,2492,792,432,0,0,0,0,0,0,0,959,5500,932,1500,510,80,717,120,719,10,603,2,624,20,0,0,0,0,4067,1);
+REPLACE INTO `mob_db` VALUES (1065,'STROUF','Strouf','Strouf',61,3052,1,656,705,1,170,30,67,21,49,16,31,20,36,20,10,12,2,5,61,0x3885,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,115,2315,2,1461,2,949,3000,720,20,956,1500,0,0,0,0,4111,1);
+REPLACE INTO `mob_db` VALUES (1066,'VADON','Vadon','Vadon',45,1252,1,342,386,1,78,25,54,21,35,21,28,20,33,15,10,12,0,5,21,0x91,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1);
+REPLACE INTO `mob_db` VALUES (1067,'CORNUTUS','Cornutus','Cornutus',48,1450,1,369,414,1,79,47,42,28,32,27,45,26,27,15,10,12,0,5,21,0x91,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1);
+REPLACE INTO `mob_db` VALUES (1068,'HYDRA','Hydra','Hydra',34,854,1,233,263,7,35,6,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,1011,25,962,5500,938,1500,971,20,525,5,517,700,0,0,0,0,0,0,4035,1);
+REPLACE INTO `mob_db` VALUES (1069,'SWORD_FISH','Swordfish','Swordfish',57,2600,1,550,590,1,156,35,52,12,50,56,25,15,44,15,10,12,2,5,41,0x3885,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,33,2257,2,757,50,1117,25,956,600,0,0,0,0,4089,1);
+REPLACE INTO `mob_db` VALUES (1070,'KUKRE','Kukre','Kukre',42,1111,1,315,354,1,65,28,33,23,25,30,22,20,32,20,10,12,0,5,21,0x83,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1);
+REPLACE INTO `mob_db` VALUES (1071,'PIRATE_SKEL','Pirate Skeleton','Pirate Skeleton',48,1411,1,369,414,1,105,20,53,20,35,25,25,15,30,10,10,12,1,1,29,0x3885,200,1754,554,288,0,0,0,0,0,0,0,932,3000,2287,15,7477,5,2211,250,1104,250,756,43,628,20,0,0,0,0,4073,1);
+REPLACE INTO `mob_db` VALUES (1072,'KAHO','Kaho','Kaho',98,7045,1,2344,1463,1,655,224,106,55,81,61,55,65,79,73,10,12,1,6,83,0x3985,150,1700,1000,500,0,0,0,0,0,0,0,994,30,1003,150,7097,3000,690,100,757,1000,716,300,970,5,0,0,0,0,4065,1);
+REPLACE INTO `mob_db` VALUES (1073,'CRAB','Crab','Crab',43,1233,1,315,354,1,69,10,36,11,22,14,24,7,28,15,7,12,0,5,21,0x81,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1);
+REPLACE INTO `mob_db` VALUES (1074,'SHELLFISH','Shellfish','Shellfish',50,1680,1,424,455,1,74,22,43,5,42,11,48,25,29,10,10,12,0,5,21,0x91,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1);
+-- REPLACE INTO `mob_db` VALUES (1075,'TURTLE','Turtle','Turtle',3,77,0,0,0,1,1,2,35,0,1,1,1,1,1,1,7,12,0,5,22,0x81,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1076,'SKELETON','Skeleton','Skeleton',27,612,1,162,183,1,78,24,21,2,24,15,30,5,19,1,10,12,1,1,29,0x91,200,2228,528,576,0,0,0,0,0,0,0,1010,90,932,800,1505,80,909,3000,507,850,2609,30,0,0,0,0,0,0,4025,1);
+REPLACE INTO `mob_db` VALUES (1077,'POISON_SPORE','Poison Spore','Poison Spore',26,456,1,162,183,1,68,15,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,7033,9000,2221,20,511,550,510,60,972,50,921,1200,912,5,0,0,0,0,4048,1);
+REPLACE INTO `mob_db` VALUES (1078,'RED_PLANT','Red Plant','Red Plant',1,5,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,507,5500,712,1000,711,1000,905,500,7933,300,914,500,708,50,0,0,0,0,2269,2);
+REPLACE INTO `mob_db` VALUES (1079,'BLUE_PLANT','Blue Plant','Blue Plant',1,10,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,712,1000,711,1000,905,500,7932,300,522,50,514,1000,0,0,0,0,2270,2);
+REPLACE INTO `mob_db` VALUES (1080,'GREEN_PLANT','Green Plant','Green Plant',1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,511,7000,7934,300,621,20,905,3000,906,1500,704,50,521,50,0,0,0,0,2270,2);
+REPLACE INTO `mob_db` VALUES (1081,'YELLOW_PLANT','Yellow Plant','Yellow Plant',1,6,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,508,5500,712,1000,711,1000,905,500,7935,300,707,5,914,500,0,0,0,0,2269,2);
+REPLACE INTO `mob_db` VALUES (1082,'WHITE_PLANT','White Plant','White Plant',1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,509,5500,712,1000,631,20,905,3000,7935,300,521,50,703,50,0,0,0,0,2269,2);
+REPLACE INTO `mob_db` VALUES (1083,'SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,1,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,510,5500,508,1000,509,1000,710,5,608,20,518,500,607,50,0,0,0,0,714,1);
+REPLACE INTO `mob_db` VALUES (1084,'BLACK_MUSHROOM','Black Mushroom','Black Mushroom',1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,971,50,630,20,949,2000,991,800,921,5500,921,5500,0,0,0,0,7033,5500);
+REPLACE INTO `mob_db` VALUES (1085,'RED_MUSHROOM','Red Mushroom','Red Mushroom',1,7,0,0,0,1,1,1,100,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,970,50,972,50,630,20,949,2000,990,1000,921,5500,921,5500,0,0,0,0,7033,5500);
+REPLACE INTO `mob_db` VALUES (1086,'GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',65,222750,1,204120,155520,1,952,843,159,81,71,77,80,62,140,76,10,12,2,4,43,0x11AB,100,768,768,480,97200,2610,2000,701,1000,0,0,969,1000,1524,150,2246,250,10016,500,714,300,985,2000,984,1500,0,0,0,0,4128,1);
+REPLACE INTO `mob_db` VALUES (1087,'ORK_HERO','Orc Hero','Orc Hero',50,362000,1,106920,97200,1,662,441,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,53460,725,2000,607,1500,999,5000,968,9700,10018,500,1366,150,2106,250,1124,1000,985,4559,1387,100,0,0,0,0,4143,1);
+REPLACE INTO `mob_db` VALUES (1088,'VOCAL','Vocal','Vocal',18,3317,1,99,79,1,71,11,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,2247,50,940,8000,721,1000,752,1500,2420,1000,7938,500,1917,10,0,0,0,0,4211,1);
+REPLACE INTO `mob_db` VALUES (1089,'TOAD','Toad','Toad',27,660,1,162,183,1,70,19,24,6,32,19,27,10,24,5,10,12,1,5,21,0x37B5,200,1236,336,432,0,0,0,0,0,0,0,2244,50,518,2000,729,1000,7938,500,970,100,971,100,5125,1000,0,0,0,0,4306,1);
+REPLACE INTO `mob_db` VALUES (1090,'MASTERING','Mastering','Mastering',42,1260,1,315,354,1,80,40,48,31,35,21,41,12,29,60,10,12,1,3,21,0x37B5,300,1072,672,480,0,0,0,0,0,0,0,2257,200,619,50,722,1000,2116,1000,7938,500,512,8000,531,4000,0,0,0,0,4197,1);
+REPLACE INTO `mob_db` VALUES (1091,'DRAGON_FLY','Dragon Fly','Dragon Fly',47,1035,1,360,405,1,102,33,57,28,37,44,30,15,44,15,10,12,0,4,24,0x37B5,100,1076,576,480,0,0,0,0,0,0,0,2245,200,507,8000,719,1500,742,2000,2607,3000,625,50,533,3000,0,0,0,0,4179,1);
+REPLACE INTO `mob_db` VALUES (1092,'VAGABOND_WOLF','Vagabond Wolf','Vagabond Wolf',93,8203,1,1706,2601,1,519,46,102,51,72,63,55,29,108,15,10,12,1,2,22,0x37B5,150,1048,648,432,0,0,0,0,0,0,0,2248,200,920,8000,728,1500,1148,100,2521,1000,7938,500,626,50,0,0,0,0,4183,1);
+REPLACE INTO `mob_db` VALUES (1093,'ECLIPSE','Eclipse','Eclipse',31,625,1,207,233,1,60,20,50,20,20,28,35,17,27,55,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,2250,200,507,8000,727,1200,7938,500,706,30,622,50,2355,1000,0,0,0,0,4266,1);
+REPLACE INTO `mob_db` VALUES (1094,'AMBERNITE','Ambernite','Ambernite',19,340,1,117,87,1,26,11,28,0,16,20,11,10,21,5,10,12,2,4,21,0x191,400,2048,648,648,0,0,0,0,0,0,0,991,50,946,9000,910,1200,935,3000,943,2,757,14,1002,150,0,0,0,0,4032,1);
+REPLACE INTO `mob_db` VALUES (1095,'ANDRE','Andre','Andre',33,724,1,216,243,1,51,21,55,16,11,20,40,10,24,10,10,12,0,4,22,0x1181,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1);
+REPLACE INTO `mob_db` VALUES (1096,'ANGELING','Angeling','Angeling',77,19800,1,3366,2693,1,391,145,72,238,58,50,33,105,80,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1);
+REPLACE INTO `mob_db` VALUES (1097,'ANT_EGG','Ant Egg','Ant Egg',28,530,1,180,203,0,1,1,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1);
+REPLACE INTO `mob_db` VALUES (1098,'ANUBIS','Anubis','Anubis',105,38826,1,6026,2725,1,984,415,103,48,88,67,40,128,107,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,15042,100,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1);
+REPLACE INTO `mob_db` VALUES (1099,'ARGIOPE','Argiope','Argiope',75,3105,1,890,912,1,321,50,88,32,60,23,40,30,24,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1);
+REPLACE INTO `mob_db` VALUES (1100,'ARGOS','Argos','Argos',47,1005,1,360,405,1,96,33,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1);
+REPLACE INTO `mob_db` VALUES (1101,'BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,510,548,1,195,33,70,25,52,60,36,17,57,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,500,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1);
+REPLACE INTO `mob_db` VALUES (1102,'BATHORY','Bathory','Bathory',86,5242,1,1286,1364,1,252,96,61,89,66,38,40,77,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,1001,200,1061,4850,2252,3,1611,5,1000,30,1006,15,637,20,0,0,0,0,4119,1);
+REPLACE INTO `mob_db` VALUES (1103,'CARAMEL','Caramel','Caramel',25,518,1,162,183,1,67,9,39,0,19,10,15,10,32,5,10,12,0,2,22,0x91,200,1604,840,756,0,0,0,0,0,0,0,1027,9000,2310,5,919,5500,1455,10,1405,15,1408,20,0,0,0,0,0,0,4063,1);
+REPLACE INTO `mob_db` VALUES (1104,'COCO','Coco','Coco',38,836,1,270,305,1,71,11,37,0,22,13,30,20,38,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,578,600,0,0,0,0,4041,1);
+REPLACE INTO `mob_db` VALUES (1105,'DENIRO','Deniro','Deniro',31,671,1,207,233,1,45,16,52,16,15,16,30,10,23,15,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,9000,910,3000,938,1200,990,50,1001,8,1002,450,757,34,0,0,0,0,4043,1);
+REPLACE INTO `mob_db` VALUES (1106,'DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,2160,1350,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,1253,1,7030,5500,2311,1,6252,10,1287,1,756,53,1217,140,0,0,0,0,4082,1);
+REPLACE INTO `mob_db` VALUES (1107,'DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,90,68,1,33,8,13,0,10,12,8,5,17,7,10,12,0,2,23,0x1081,300,1600,900,240,0,0,0,0,0,0,0,1010,85,919,5500,2306,80,6252,2,2301,200,13011,5,582,1000,0,0,0,0,4023,1);
+REPLACE INTO `mob_db` VALUES (1108,'DEVIACE','Deviace','Deviace',60,3135,1,690,740,1,168,29,51,16,57,26,32,25,50,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,995,25,1053,9000,1054,1000,5011,2,971,200,1256,3,756,161,0,0,0,0,4125,1);
+REPLACE INTO `mob_db` VALUES (1109,'DEVIRUCHI','Deviruchi','Deviruchi',93,8912,1,2166,2166,1,477,182,72,16,61,49,30,85,119,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,5335,1039,400,984,2,1458,2,1009,5,912,1500,756,154,0,0,0,0,4122,1);
+REPLACE INTO `mob_db` VALUES (1110,'DOKEBI','Dokebi','Dokebi',68,2820,1,708,759,1,333,30,85,20,52,56,35,20,66,25,10,12,0,6,27,0x191,250,1156,456,384,0,0,0,0,0,0,0,1021,9000,757,150,1517,2,1613,1,969,1,10038,10,1005,5,0,0,0,0,4098,1);
+REPLACE INTO `mob_db` VALUES (1111,'DRAINLIAR','Drainliar','Drainliar',47,1162,1,389,438,1,100,42,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3095,250,1276,576,384,0,0,0,0,0,0,0,1011,60,913,3000,725,20,507,1000,7006,5500,7006,1500,756,40,0,0,0,0,4069,1);
+REPLACE INTO `mob_db` VALUES (1112,'DRAKE','Drake','Drake',91,804500,1,618192,417960,1,2519,1403,279,135,121,103,114,107,162,71,10,12,1,1,29,0x37B5,400,620,420,360,257580,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,400,5019,350,985,3200,1189,100,0,0,0,0,4137,1);
+REPLACE INTO `mob_db` VALUES (1113,'DROPS','Drops','Drops',2,45,1,27,20,1,12,1,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,512,800,620,20,0,0,0,0,4004,1);
+REPLACE INTO `mob_db` VALUES (1114,'DUSTINESS','Dustiness','Dustiness',62,2026,1,632,678,1,166,31,69,50,46,22,46,60,75,105,10,12,0,4,44,0x191,150,1004,504,384,0,0,0,0,0,0,0,1057,9000,1058,500,2291,4,928,2000,1001,10,507,1200,0,0,0,0,0,0,4056,1);
+REPLACE INTO `mob_db` VALUES (1115,'EDDGA','Eddga','Eddga',65,947500,1,207900,148500,1,1509,776,166,70,92,80,103,66,139,85,10,12,2,2,23,0x37B5,300,872,1344,432,99000,1029,5000,1030,1000,994,3000,1133,150,2268,250,518,10000,1258,500,1030,800,985,2400,13046,200,0,0,0,0,4123,1);
+REPLACE INTO `mob_db` VALUES (1116,'EGGYRA','Eggyra','Eggyra',53,1676,1,346,689,1,110,40,85,20,46,25,25,15,57,20,10,12,1,0,48,0x91,200,1816,816,288,0,0,0,0,0,0,0,911,1000,5015,20,7032,550,507,1000,643,300,645,250,757,57,0,0,0,0,4070,1);
+REPLACE INTO `mob_db` VALUES (1117,'EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,1472,1280,1,378,68,88,45,62,32,24,45,85,5,10,12,2,1,89,0x3695,300,2276,576,336,0,0,0,0,0,0,0,2217,10,1615,1,2508,2,1551,10,610,200,7478,4,509,2000,0,0,0,0,4141,1);
+REPLACE INTO `mob_db` VALUES (1118,'FLORA','Flora','Flora',59,2301,1,558,597,3,163,31,99,29,49,29,35,5,46,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,1032,9000,2253,3,704,10,521,50,629,20,905,2000,748,1,0,0,0,0,4080,1);
+REPLACE INTO `mob_db` VALUES (1119,'FRILLDORA','Frilldora','Frilldora',57,1821,1,510,548,1,181,42,84,10,48,38,38,15,51,30,10,12,1,2,23,0x3885,300,1540,720,432,0,0,0,0,0,0,0,1012,5500,757,90,903,1500,721,15,715,200,507,800,912,120,0,0,0,0,4088,1);
+REPLACE INTO `mob_db` VALUES (1120,'GHOSTRING','Ghostring','Ghostring',90,26700,1,4736,4467,1,385,162,88,72,66,85,66,66,119,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,1059,5335,2274,100,2336,50,604,500,603,10,714,30,695,100,0,0,0,0,4047,1);
+REPLACE INTO `mob_db` VALUES (1121,'GIEARTH','Giearth','Giearth',42,1118,1,315,354,1,70,15,52,16,27,19,30,10,28,15,10,12,0,6,22,0x191,200,1848,1296,432,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,2227,10,1001,100,0,0,0,0,0,0,4087,1);
+REPLACE INTO `mob_db` VALUES (1122,'GOBLIN_1','Goblin','Goblin',48,1058,1,369,414,1,87,34,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,9000,756,43,2297,3,1211,10,2104,5,507,1800,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1123,'GOBLIN_2','Goblin','Goblin',44,931,1,333,374,1,94,28,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,998,250,911,9000,5010,3,1511,10,2146,5,507,1000,2297,3,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1124,'GOBLIN_3','Goblin','Goblin',44,930,1,333,374,1,88,33,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,998,230,911,9000,2275,3,5088,15,2104,1,507,1000,508,220,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1125,'GOBLIN_4','Goblin','Goblin',49,1494,1,396,446,1,72,22,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,993,100,998,170,5087,15,2263,3,1508,10,2146,5,507,1500,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1126,'GOBLIN_5','Goblin','Goblin',56,2342,1,510,548,1,167,31,64,5,51,37,22,15,42,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,998,150,911,9000,1605,15,2104,1,5089,15,507,1500,508,220,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1127,'HODE','Hode','Hode',63,2676,1,664,710,1,179,45,91,24,61,16,42,5,32,40,10,12,1,2,42,0x81,200,1480,480,720,0,0,0,0,0,0,0,993,120,1055,9000,757,80,938,3000,1147,10,7021,1,632,20,0,0,0,0,4081,1);
+REPLACE INTO `mob_db` VALUES (1128,'HORN','Horn','Horn',32,705,1,216,243,1,64,11,52,8,10,12,36,25,21,35,10,12,1,4,22,0x191,200,1528,528,288,0,0,0,0,0,0,0,993,80,1011,35,947,5500,1452,15,935,5500,943,70,0,0,0,0,0,0,4045,1);
+REPLACE INTO `mob_db` VALUES (1129,'HORONG','Horong','Horong',66,2304,1,820,879,1,275,70,84,35,36,32,35,45,62,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1);
+REPLACE INTO `mob_db` VALUES (1130,'JAKK','Jakk','Jakk',63,2054,1,664,710,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1);
+REPLACE INTO `mob_db` VALUES (1131,'JOKER','Joker','Joker',90,6022,1,1780,1821,1,317,60,64,76,84,99,30,50,92,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1);
+REPLACE INTO `mob_db` VALUES (1132,'KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,3920,2646,1,1232,96,125,10,121,48,40,31,125,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,15036,100,0,0,0,0,4136,1);
+REPLACE INTO `mob_db` VALUES (1133,'KOBOLD_1','Kobold','Kobold',107,10483,1,2728,1706,1,701,87,103,25,109,76,61,53,98,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
+REPLACE INTO `mob_db` VALUES (1134,'KOBOLD_2','Kobold','Kobold',102,9152,1,2332,1458,1,477,62,117,59,96,61,55,48,95,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1);
+REPLACE INTO `mob_db` VALUES (1135,'KOBOLD_3','Kobold','Kobold',101,9078,1,2192,1371,1,468,64,109,48,103,64,59,42,80,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1);
+REPLACE INTO `mob_db` VALUES (1136,'KOBOLD_4','Kobold','Kobold',31,10,1,4582500,4582500,1,316,62,1,1,1,31,31,20,55,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,50,1034,5335,912,100,1355,5,2104,3,508,100,1301,150,0,0,0,0,4091,1);
+REPLACE INTO `mob_db` VALUES (1137,'KOBOLD_5','Kobold','Kobold',31,10,1,4582500,4582500,1,223,33,1,1,1,31,31,20,88,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,999,40,1034,5335,912,100,1514,5,2104,3,508,100,1501,150,0,0,0,0,4091,1);
+REPLACE INTO `mob_db` VALUES (1138,'MAGNOLIA','Magnolia','Magnolia',53,1984,1,462,495,1,96,165,51,8,49,25,21,50,31,85,10,12,0,6,21,0x183,200,1054,504,432,0,0,0,0,0,0,0,7031,9000,910,800,911,100,912,10,737,40,508,400,12127,5,0,0,0,0,4076,1);
+REPLACE INTO `mob_db` VALUES (1139,'MANTIS','Mantis','Mantis',65,2719,1,624,669,1,187,31,90,0,55,33,24,5,46,15,10,12,1,4,22,0x3195,200,1528,660,432,0,0,0,0,0,0,0,993,110,1031,9000,911,1400,757,70,943,250,721,10,507,650,0,0,0,0,4079,1);
+REPLACE INTO `mob_db` VALUES (1140,'MARDUK','Marduk','Marduk',73,2893,1,850,872,1,198,112,66,43,66,49,21,40,79,25,10,12,2,7,23,0x3095,300,1540,840,504,0,0,0,0,0,0,0,994,35,1045,4365,1608,10,2617,1,1614,3,691,100,642,20,0,0,0,0,4112,1);
+REPLACE INTO `mob_db` VALUES (1141,'MARINA','Marina','Marina',42,1209,1,340,381,1,73,25,20,19,24,27,18,22,29,15,10,12,0,3,41,0x81,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,45,995,2,717,200,631,20,0,0,0,0,0,0,4055,1);
+REPLACE INTO `mob_db` VALUES (1142,'MARINE_SPHERE','Marine Sphere','Marine Sphere',51,1924,1,468,503,1,1,1,41,28,10,16,35,25,29,5,10,12,0,3,41,0x0,800,1201,1,1,0,0,0,0,0,0,0,1050,5000,1051,2500,1520,10,720,10,717,150,10003,10,0,0,0,0,0,0,4084,1);
+REPLACE INTO `mob_db` VALUES (1143,'MARIONETTE','Marionette','Marionette',90,7166,1,1586,2009,1,222,190,35,24,52,79,28,105,86,20,10,12,0,6,68,0x3195,300,1480,480,1056,0,0,0,0,0,0,0,1060,9000,2294,5,2605,1,699,100,1520,15,2407,1,5141,3,0,0,0,0,4113,1);
+REPLACE INTO `mob_db` VALUES (1144,'MARSE','Marse','Marse',47,1456,1,389,438,1,85,20,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1);
+REPLACE INTO `mob_db` VALUES (1145,'MARTIN','Martin','Martin',39,1056,1,311,350,1,70,18,58,19,25,29,28,15,30,10,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,1018,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1);
+REPLACE INTO `mob_db` VALUES (1146,'MATYR','Matyr','Matyr',58,2087,1,520,557,1,151,26,63,5,48,20,21,17,47,10,10,12,1,2,27,0x3095,150,432,432,360,0,0,0,0,0,0,0,2618,10,528,5000,919,5500,537,400,757,100,514,200,0,0,0,0,0,0,4097,1);
+REPLACE INTO `mob_db` VALUES (1147,'MAYA','Maya','Maya',55,380000,1,178560,133920,1,555,265,183,50,88,72,76,102,92,76,10,12,2,4,82,0x37B5,100,864,1000,480,89280,730,2000,603,3000,617,2000,10006,500,2615,200,2234,200,639,500,7020,10,985,3500,2005,100,0,0,0,0,4146,1);
+REPLACE INTO `mob_db` VALUES (1148,'MEDUSA','Medusa','Medusa',102,10045,1,2084,1302,1,620,113,87,66,99,68,65,79,83,15,10,12,1,6,40,0x3795,180,1720,1320,360,0,0,0,0,0,0,0,1048,5335,1965,250,702,200,1973,20,722,250,1649,5,1007,3,0,0,0,0,4124,1);
+REPLACE INTO `mob_db` VALUES (1149,'MINOROUS','Minorous','Minorous',58,1893,1,570,602,1,247,36,100,10,65,42,36,43,61,25,10,12,2,2,43,0x3095,200,1360,960,432,0,0,0,0,0,0,0,941,5335,756,196,1361,2,1005,10,6254,100,1301,200,568,300,0,0,0,0,4126,1);
+REPLACE INTO `mob_db` VALUES (1150,'MOONLIGHT','Moonlight Flower','Moonlight Flower',79,324000,1,367488,271440,1,2232,1251,254,81,86,102,93,82,157,120,10,12,1,6,63,0x37B5,150,1276,576,288,167040,1022,5000,504,1500,728,500,1477,500,1234,100,1525,150,10008,500,638,650,985,2600,1648,100,0,0,0,0,4131,1);
+REPLACE INTO `mob_db` VALUES (1151,'MYST','Myst','Myst',49,1223,1,396,446,1,96,20,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,5005,2,1019,800,10005,10,756,65,757,97,605,20,2601,1,0,0,0,0,4108,1);
+REPLACE INTO `mob_db` VALUES (1152,'ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,482,524,1,121,25,82,10,52,16,24,5,24,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,922,5500,932,3500,757,80,2299,2,1358,10,511,50,0,0,0,0,0,0,4085,1);
+REPLACE INTO `mob_db` VALUES (1153,'ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,452,498,1,114,15,71,5,45,17,32,5,57,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,1043,5500,938,3000,714,1,0,0,0,0,0,0,0,0,0,0,0,0,4071,1);
+REPLACE INTO `mob_db` VALUES (1154,'PASANA','Pasana','Pasana',79,3510,1,1068,1194,1,438,40,93,35,76,36,33,20,80,5,10,12,1,7,43,0x3095,165,976,576,288,0,0,0,0,0,0,0,7110,4365,7121,2500,757,20,1105,500,1217,150,2522,100,0,0,0,0,0,0,4099,1);
+REPLACE INTO `mob_db` VALUES (1155,'PETIT','Petite','Petite',86,5799,1,1286,1317,1,321,66,99,49,55,32,38,37,65,20,10,12,1,9,22,0x3095,250,2468,768,480,0,0,0,0,0,0,0,1035,5335,1037,300,756,140,509,1000,1510,150,6260,100,606,15,0,0,0,0,4118,1);
+REPLACE INTO `mob_db` VALUES (1156,'PETIT_','Petite','Petite',79,3556,1,990,1013,1,308,36,86,42,63,39,31,55,86,85,10,12,1,9,24,0x3095,200,1872,672,288,0,0,0,0,0,0,0,1036,5335,1037,300,985,61,509,1000,13006,5,912,1500,606,15,0,0,0,0,4120,1);
+REPLACE INTO `mob_db` VALUES (1157,'PHARAOH','Pharaoh','Pharaoh',85,900000,1,459360,334080,1,1624,1782,124,269,98,102,96,142,173,102,10,12,2,7,67,0x37B5,125,868,768,288,208800,607,5500,526,5000,732,5000,7113,5820,7114,2500,1136,100,2327,150,5002,500,1552,300,1231,80,0,0,0,0,4148,1);
+REPLACE INTO `mob_db` VALUES (1158,'PHEN','Phen','Phen',52,1963,1,468,503,1,102,30,44,11,54,15,35,15,28,15,10,12,1,5,41,0x91,150,2544,1344,1152,0,0,0,0,0,0,0,1023,5500,963,2000,720,5,517,1000,951,500,756,25,0,0,0,0,0,0,4077,1);
+REPLACE INTO `mob_db` VALUES (1159,'PHREEONI','Phreeoni','Phreeoni',71,300000,1,127600,180000,1,693,967,269,98,88,70,112,87,122,71,10,12,2,2,60,0x37B5,200,1020,1020,288,58000,1008,500,730,1000,1000,4000,1015,9700,1223,500,1236,150,1014,5000,2288,300,985,2900,13047,100,0,0,0,0,4121,1);
+REPLACE INTO `mob_db` VALUES (1160,'PIERE','Piere','Piere',32,696,1,216,243,1,47,20,57,16,19,19,36,8,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1);
+REPLACE INTO `mob_db` VALUES (1161,'PLANKTON','Plankton','Plankton',40,1232,1,334,375,1,75,36,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1);
+REPLACE INTO `mob_db` VALUES (1162,'RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,1286,1317,3,325,41,86,2,47,41,44,29,78,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1);
+REPLACE INTO `mob_db` VALUES (1163,'RAYDRIC','Raydric','Raydric',115,18408,1,3600,2076,1,901,96,89,15,129,87,55,32,106,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,15037,10,1004,10,7054,4850,0,0,0,0,4133,1);
+REPLACE INTO `mob_db` VALUES (1164,'REQUIEM','Requiem','Requiem',71,3089,1,812,831,1,348,48,88,20,58,34,35,12,50,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1);
+REPLACE INTO `mob_db` VALUES (1165,'SAND_MAN','Sandman','Sandman',61,2887,1,656,705,1,164,56,126,24,44,8,55,15,34,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1);
+REPLACE INTO `mob_db` VALUES (1166,'SAVAGE','Savage','Savage',59,2301,1,602,644,1,181,23,126,3,56,21,54,10,52,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,50,757,70,526,2,0,0,0,0,4078,1);
+REPLACE INTO `mob_db` VALUES (1167,'SAVAGE_BABE','Savage Babe','Savage Babe',14,180,1,90,68,1,19,6,22,0,16,8,9,5,21,18,10,12,0,2,22,0x81,400,1624,624,576,0,0,0,0,0,0,0,919,9000,1302,100,517,500,6249,6,949,850,1010,80,627,40,0,0,0,0,4017,1);
+REPLACE INTO `mob_db` VALUES (1168,'SCORPION_KING','Scorpion King','Scorpion King',50,5719,1,2066,1211,1,630,113,64,10,1,50,47,1,91,30,10,12,2,7,23,0x1B1,200,1700,1000,500,0,0,0,0,0,0,0,994,45,1046,4850,1005,15,904,5000,943,3000,509,700,0,0,0,0,0,0,4130,1);
+REPLACE INTO `mob_db` VALUES (1169,'SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,333,374,1,92,12,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,998,400,1041,5500,757,90,5009,2,999,100,1003,200,7938,10,0,0,0,0,4092,1);
+REPLACE INTO `mob_db` VALUES (1170,'SOHEE','Sohee','Sohee',64,2875,1,624,669,1,177,30,61,21,61,24,29,20,41,25,10,12,1,6,21,0x191,250,2112,912,576,0,0,0,0,0,0,0,1020,9000,1049,50,2277,1,2504,5,1217,5,15012,5,662,350,0,0,0,0,4100,1);
+-- REPLACE INTO `mob_db` VALUES (1171,'SOLDIER_ANDRE','Soldier Andre','Soldier Andre',22,1245,0,219,138,1,105,127,20,0,1,22,44,20,40,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,2700,911,800,757,10,1111,15,1001,30,943,150,0,0,0,0,0,0,4059,1);
+-- REPLACE INTO `mob_db` VALUES (1172,'SOLDIER_DENIRO','Soldier Deniro','Soldier Deniro',29,2047,0,450,274,1,162,193,20,0,1,29,58,20,54,10,10,12,0,4,42,0x3095,200,2000,1000,500,0,0,0,0,0,0,0,1014,5500,911,2000,757,15,1111,20,943,270,1001,50,0,0,0,0,0,0,4059,1);
+-- REPLACE INTO `mob_db` VALUES (1173,'SOLDIER_PIERE','Soldier Piere','Soldier Piere',23,1217,0,240,149,1,109,131,25,0,1,23,46,20,38,10,10,12,0,4,42,0x3095,200,1001,1,1,0,0,0,0,0,0,0,1014,3100,911,800,911,10,1114,15,1001,35,943,200,0,0,0,0,0,0,4059,1);
+REPLACE INTO `mob_db` VALUES (1174,'STAINER','Stainer','Stainer',21,365,1,126,143,1,65,9,22,25,10,10,24,0,39,15,10,12,0,4,24,0x191,200,1688,1188,612,0,0,0,0,0,0,0,992,70,1011,30,1013,9000,910,2100,757,25,943,10,1002,300,0,0,0,0,4039,1);
+REPLACE INTO `mob_db` VALUES (1175,'TAROU','Tarou','Tarou',22,420,1,135,152,1,72,6,23,5,21,6,12,0,10,1,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,0,0,0,0,0,0,0,0,4028,1);
+REPLACE INTO `mob_db` VALUES (1176,'VITATA','Vitata','Vitata',35,756,1,234,264,1,68,18,44,12,20,11,24,20,21,5,10,12,0,4,22,0x191,300,1768,768,384,0,0,0,0,0,0,0,993,90,955,5000,911,200,518,350,518,350,526,200,756,26,0,0,0,0,4053,1);
+REPLACE INTO `mob_db` VALUES (1177,'ZENORC','Zenorc','Zenorc',54,1816,1,472,507,1,137,24,69,5,50,18,20,5,28,5,10,12,1,7,27,0x83,150,1180,480,360,0,0,0,0,0,0,0,1044,5500,756,70,938,2500,1006,5,508,100,640,20,0,0,0,0,0,0,4096,1);
+REPLACE INTO `mob_db` VALUES (1178,'ZEROM','Zerom','Zerom',70,2687,1,756,960,1,328,38,93,15,57,49,30,15,62,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,1011,55,998,190,2339,200,2265,3,2408,10,1002,300,7938,1,0,0,0,0,4064,1);
+REPLACE INTO `mob_db` VALUES (1179,'WHISPER','Whisper','Whisper',46,1109,1,242,513,1,65,55,20,40,32,48,20,35,52,20,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4102,1);
+REPLACE INTO `mob_db` VALUES (1180,'NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,976,998,1,491,50,95,40,61,38,30,20,106,50,10,12,1,2,63,0x3695,150,840,540,480,0,0,0,0,0,0,0,1022,4656,746,200,603,100,604,100,526,250,525,350,756,100,0,0,0,0,4159,1);
+REPLACE INTO `mob_db` VALUES (1181,'ZOMBIE_DRAGON','Fafnir','Fafnir',1,1000,1,44550,1485,3,7900,1240,0,0,120,145,145,145,130,120,10,12,2,9,89,0x37B5,400,2700,1000,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1182,'THIEF_MUSHROOM','Thief Mushroom','Thief Mushroom',1,15,1,0,0,1,1,1,160,99,0,0,0,0,0,0,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,1069,3000,1070,6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1183,'CHONCHON_','Chonchon','Chonchon',5,63,1,36,27,1,11,3,29,0,13,4,4,0,7,5,10,12,0,4,24,0x3985,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,5500,909,1500,1205,55,601,100,742,5,0,0,0,0,0,0,4009,1);
+REPLACE INTO `mob_db` VALUES (1184,'FABRE_','Fabre','Fabre',1,30,1,1,0,1,4,3,0,0,1,2,1,1,4,5,10,12,0,4,22,0x3985,400,1672,672,480,0,0,0,0,0,0,0,914,2000,949,250,1502,80,721,2,511,350,705,500,1501,200,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1185,'WHISPER_','Whisper','Whisper',34,1796,1,483,737,1,198,41,0,45,1,51,14,0,60,0,10,12,0,1,28,0x0,150,1960,960,504,0,0,0,0,0,0,0,1001,10,1059,100,2282,0,2333,1,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1186,'WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,662,710,1,296,59,94,45,40,79,44,51,74,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,1001,150,1059,5335,2282,1,2333,10,0,0,0,0,0,0,0,0,0,0,4303,1);
+REPLACE INTO `mob_db` VALUES (1188,'BON_GUN','Bongun','Bongun',59,2510,1,558,597,1,198,29,88,5,55,24,24,5,37,10,10,12,1,1,29,0x3095,200,1720,500,420,0,0,0,0,0,0,0,1094,5500,7014,40,618,60,5046,1,609,15,508,1000,508,1250,0,0,0,0,4212,1);
+REPLACE INTO `mob_db` VALUES (1189,'ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,1014,1161,9,286,43,67,31,55,32,24,30,119,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,1063,4656,1753,1000,1756,2500,1755,2500,1734,2,507,1400,509,900,0,0,0,0,4256,1);
+REPLACE INTO `mob_db` VALUES (1190,'ORC_LORD','Orc Lord','Orc Lord',55,552000,1,156240,122760,1,780,648,256,92,95,95,103,96,155,85,10,12,2,7,82,0x37B5,100,1248,500,360,31102,968,5500,617,2000,0,0,1363,400,2621,400,5007,400,1371,400,617,1000,985,4268,16000,3100,0,0,0,0,4135,1);
+REPLACE INTO `mob_db` VALUES (1191,'MIMIC','Mimic','Mimic',56,1939,1,510,548,1,232,22,63,15,49,120,20,15,109,0,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,617,5,603,45,1065,1200,611,3000,7938,1000,2626,1,757,270,0,0,0,0,4205,1);
+REPLACE INTO `mob_db` VALUES (1192,'WRAITH','Wraith','Wraith',77,5168,1,1308,1191,1,369,61,80,40,62,26,30,55,91,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,1059,5820,2206,10,2506,2,716,650,602,1300,2505,10,731,5,0,0,0,0,4190,1);
+REPLACE INTO `mob_db` VALUES (1193,'ALARM','Alarm','Alarm',88,5562,1,1366,1398,1,319,48,106,53,70,72,40,25,66,25,10,12,1,0,60,0x3695,300,1020,500,768,0,0,0,0,0,0,0,1095,5335,2607,1,7005,1500,611,1300,984,105,7026,20,912,1500,0,0,0,0,4244,1);
+REPLACE INTO `mob_db` VALUES (1194,'ARCLOUSE','Arclouse','Arclouze',107,10020,1,2212,2607,1,350,40,101,36,60,73,45,35,168,15,10,12,1,4,42,0x3195,100,960,500,480,0,0,0,0,0,0,0,1096,3500,938,3000,943,800,912,450,716,300,997,20,912,2500,0,0,0,0,4240,1);
+REPLACE INTO `mob_db` VALUES (1195,'RIDEWORD','Rideword','Rideword',74,3222,1,890,1212,1,387,22,61,38,67,53,32,44,125,5,10,12,0,0,60,0x3695,150,864,500,192,0,0,0,0,0,0,0,1097,4850,1553,4,1554,4,1555,2,1556,2,7015,300,1006,20,0,0,0,0,4185,1);
+REPLACE INTO `mob_db` VALUES (1196,'SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,1878,1763,1,606,55,95,41,84,35,60,20,85,15,10,12,1,1,69,0x308D,350,1848,500,576,0,0,0,0,0,0,0,1098,3500,7016,100,2320,1,716,600,930,3500,2408,35,934,1500,0,0,0,0,4222,1);
+REPLACE INTO `mob_db` VALUES (1197,'ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,1604,1647,1,392,60,89,28,87,39,58,5,82,10,10,12,1,1,69,0x308D,350,1768,500,192,0,0,0,0,0,0,0,1099,3500,7016,105,2266,1,716,600,930,3500,2408,39,985,112,0,0,0,0,4275,1);
+REPLACE INTO `mob_db` VALUES (1198,'DARK_PRIEST','Dark Priest','Dark Priest',98,12090,0,2916,1667,2,462,259,56,30,5,60,41,89,94,42,10,12,1,6,89,0x31AD,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2608,30,505,100,716,450,1009,1,2319,5,7005,3000,0,0,0,0,4171,1);
+REPLACE INTO `mob_db` VALUES (1199,'PUNK','Punk','Punk',82,3869,1,1068,1094,1,293,54,68,55,67,39,30,35,95,45,10,12,0,3,24,0x3095,300,1500,500,1000,0,0,0,0,0,0,0,7001,5335,715,800,10004,100,1061,1000,1057,3000,601,1100,2502,15,0,0,0,0,4313,1);
+REPLACE INTO `mob_db` VALUES (1200,'ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,9332,6458,1,993,250,91,99,88,61,51,62,136,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,7017,5,10037,10,7293,1500,2331,8,2622,1,1970,100,2291,3,0,0,0,0,4277,1);
+REPLACE INTO `mob_db` VALUES (1201,'RYBIO','Rybio','Rybio',98,8700,1,1890,1942,1,720,76,109,30,96,52,61,30,88,10,10,12,2,6,40,0x318D,200,1790,1440,540,0,0,0,0,0,0,0,1015,3880,7017,3,509,1800,6216,300,1008,10,984,100,709,30,0,0,0,0,4194,1);
+REPLACE INTO `mob_db` VALUES (1202,'PHENDARK','Phendark','Phendark',102,11000,1,2388,1882,2,872,75,440,50,111,65,71,20,109,30,10,12,2,7,40,0x308D,175,1744,1344,600,0,0,0,0,0,0,0,1015,3880,7017,4,509,1800,0,0,984,150,1971,100,6216,500,0,0,0,0,4329,1);
+REPLACE INTO `mob_db` VALUES (1203,'MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,10294,4987,2,1079,567,73,61,102,139,62,65,182,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,7019,1,7297,1500,1152,70,1155,40,1163,2,12736,300,984,243,0,0,0,0,4207,1);
+REPLACE INTO `mob_db` VALUES (1204,'TIRFING','Tirfing','Ogretooth',114,59000,1,6948,5009,1,948,411,87,69,105,105,75,73,151,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,7022,1,638,50,7292,1500,1214,70,1217,40,999,120,984,189,0,0,0,0,4254,1);
+REPLACE INTO `mob_db` VALUES (1205,'EXECUTIONER','Executioner','Executioner',101,40200,1,5832,3645,2,670,359,97,188,99,96,77,78,95,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,7024,5,7290,1500,1111,80,1114,60,1125,40,999,120,984,145,0,0,0,0,4250,1);
+REPLACE INTO `mob_db` VALUES (1206,'ANOLIAN','Anolian','Anolian',109,15547,1,3516,2223,1,650,110,61,11,130,63,55,66,70,48,10,12,1,5,41,0x3695,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,526,5,10019,10,16003,1,2625,1,984,134,0,0,0,0,4234,1);
+REPLACE INTO `mob_db` VALUES (1207,'STING','Sting','Sting',104,10143,1,2606,1629,1,794,67,146,34,108,49,68,34,119,24,10,12,1,0,62,0x3695,300,528,500,240,0,0,0,0,0,0,0,7004,4850,1756,1500,2624,1,1003,130,997,25,10007,10,6213,800,0,0,0,0,4226,1);
+REPLACE INTO `mob_db` VALUES (1208,'WANDER_MAN','Wander Man','Wanderer',120,19307,1,4406,3726,2,1695,105,64,5,118,92,36,15,169,33,10,12,1,6,24,0x3795,100,672,500,192,0,0,0,0,0,0,0,7005,4850,616,1,13015,5,2270,5,610,650,984,217,1164,1,0,0,0,0,4210,1);
+REPLACE INTO `mob_db` VALUES (1209,'CRAMP','Cramp','Cramp',82,3898,1,1068,1094,1,435,48,88,42,65,43,35,25,82,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,0,0,0,0,4296,1);
+-- REPLACE INTO `mob_db` VALUES (1210,'FILAMENTOUS','Filamentous','Filamentous',51,6088,0,1926,1353,1,425,525,35,10,1,35,30,5,83,40,10,12,1,4,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7008,4850,947,8000,943,3880,993,200,1451,40,757,18,509,1600,0,0,0,0,4045,1);
+REPLACE INTO `mob_db` VALUES (1211,'BRILIGHT','Brilight','Brilight',71,2772,1,812,831,1,337,33,93,25,51,19,38,32,67,30,10,12,0,4,23,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7009,5335,992,200,912,1200,7938,100,757,220,610,250,509,2600,0,0,0,0,4213,1);
+REPLACE INTO `mob_db` VALUES (1212,'IRON_FIST','Iron Fist','Iron Fist',47,4221,0,1292,1368,1,430,160,40,5,1,17,15,10,73,20,10,12,1,4,60,0x3195,200,1500,500,1000,0,0,0,0,0,0,0,7010,5335,757,229,757,22,1002,750,999,180,998,300,0,0,0,0,0,0,4239,1);
+REPLACE INTO `mob_db` VALUES (1213,'HIGH_ORC','High Orc','High Orc',81,4193,1,1208,1158,1,428,50,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,90,931,7500,912,1300,756,196,508,900,0,0,0,0,4322,1);
+REPLACE INTO `mob_db` VALUES (1214,'CHOCO','Choco','Choco',48,1080,1,369,414,1,120,47,70,30,40,45,32,19,42,20,10,12,0,2,23,0x3095,150,1028,528,360,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,532,1000,607,25,0,0,0,0,4285,1);
+REPLACE INTO `mob_db` VALUES (1215,'STEM_WORM','Stem Worm','Stem Worm',84,4530,1,1188,1215,1,293,41,73,50,55,37,25,47,84,30,10,12,1,3,24,0x3095,300,1956,756,528,0,0,0,0,0,0,0,7012,5335,509,1800,1968,10,756,115,997,5,1454,20,608,45,0,0,0,0,4224,1);
+REPLACE INTO `mob_db` VALUES (1216,'PENOMENA','Penomena','Penomena',85,4589,1,1528,1556,7,481,41,85,32,76,38,35,35,107,10,10,12,1,5,25,0x3695,400,832,500,600,0,0,0,0,0,0,0,7013,4850,962,8000,938,7000,525,200,719,15,1258,1,716,550,0,0,0,0,4314,1);
+REPLACE INTO `mob_db` VALUES (1219,'KNIGHT_OF_ABYSS','Knight of Abyss','Abysmal Knight',122,23297,1,6212,4212,1,1734,192,102,50,121,55,68,70,136,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,1064,5335,7023,5,2318,1,1421,25,1162,1,985,369,15014,10,0,0,0,0,4140,1);
+-- REPLACE INTO `mob_db` VALUES (1220,'M_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,349,218,1,254,313,114,47,93,69,63,61,82,42,10,12,1,2,23,0x3695,200,1120,420,288,0,0,0,0,0,0,0,1253,5,7030,5500,2311,1,517,1200,920,2000,756,53,0,0,0,0,0,0,4082,1);
+-- REPLACE INTO `mob_db` VALUES (1221,'M_SAVAGE','Savage','Savage',26,2092,0,321,203,1,146,177,16,5,1,26,54,10,37,10,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,6000,514,150,702,3,2276,2,605,15,757,70,0,0,0,0,0,0,4078,1);
+-- REPLACE INTO `mob_db` VALUES (1222,'L_HIGH_ORC','High Orc','High Orc',52,6890,0,2128,1490,1,428,533,15,5,1,46,55,35,82,40,10,12,2,7,43,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7002,2500,1304,10,999,120,931,8000,912,1600,756,196,508,1100,0,0,0,0,4066,1);
+-- REPLACE INTO `mob_db` VALUES (1223,'L_ORC','Orc','Orc',24,1400,0,261,160,1,114,136,10,5,1,24,48,25,34,10,10,12,1,7,22,0x3695,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
+-- REPLACE INTO `mob_db` VALUES (1224,'L_POISON_SPORE','Poison Spore','Poison Spore',19,665,0,169,85,1,89,101,0,0,1,19,25,1,24,1,10,12,1,3,25,0x3695,200,1672,672,288,0,0,0,0,0,0,0,921,8000,2221,20,511,650,510,55,972,35,0,0,0,0,0,0,0,0,4048,1);
+-- REPLACE INTO `mob_db` VALUES (1225,'L_CHOCO','Choco','Choco',43,4278,0,1150,1150,1,315,402,5,5,1,68,55,45,65,25,10,12,0,2,23,0x3695,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,508,1900,513,5000,2311,2,532,1000,607,25,0,0,0,0,4051,1);
+-- REPLACE INTO `mob_db` VALUES (1226,'L_KOBOLD','Kobold','Kobold',36,3893,0,898,568,1,265,318,15,10,1,90,36,30,52,30,10,12,1,7,44,0x3695,200,1028,528,360,0,0,0,0,0,0,0,999,90,1034,5820,912,750,985,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
+-- REPLACE INTO `mob_db` VALUES (1227,'L_GOBLIN','Goblin','Goblin',25,1176,0,282,171,1,118,140,10,5,1,63,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,998,270,911,1200,756,43,2297,3,1211,10,2104,5,507,800,0,0,0,0,4060,1);
+-- REPLACE INTO `mob_db` VALUES (1228,'L_PHEN','Phen','Phen',26,3347,0,357,226,1,138,150,0,15,1,26,26,1,88,75,10,12,1,5,41,0x3695,150,2544,1344,1152,0,0,0,0,0,0,0,1023,6000,963,2300,720,8,517,1100,951,550,756,25,0,0,0,0,0,0,4077,1);
+-- REPLACE INTO `mob_db` VALUES (1229,'META_FABRE','Fabre','Fabre',2,63,1,3,2,1,8,11,0,0,1,2,4,0,7,5,10,12,0,4,22,0x181,400,1672,672,480,0,0,0,0,0,0,0,914,6500,949,600,1502,80,721,8,511,750,705,1500,1501,200,0,0,0,0,4002,1);
+-- REPLACE INTO `mob_db` VALUES (1230,'META_PUPA','Pupa','Pupa',2,427,1,2,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,1010,300,915,6000,938,700,2102,2,935,1300,938,700,1002,300,0,0,0,0,4003,1);
+-- REPLACE INTO `mob_db` VALUES (1231,'META_CREAMY','Creamy','Creamy',16,595,1,86,58,1,53,64,0,30,1,40,16,15,16,55,10,12,0,4,24,0x181,200,1220,720,288,0,0,0,0,0,0,0,924,6000,2322,10,518,180,602,200,2207,4,712,800,0,0,0,0,0,0,4040,1);
+-- REPLACE INTO `mob_db` VALUES (1232,'META_PECOPECO_EGG','Peco Peco Egg','Peco Peco Egg',3,420,1,4,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,120,935,1500,2102,2,507,450,507,450,713,2000,736,15,0,0,0,0,4007,1);
+-- REPLACE INTO `mob_db` VALUES (1233,'CONCEIVE_PECOPECO','Peco Peco','Peco Peco',19,531,0,159,36,1,50,64,0,0,1,13,13,25,27,9,10,12,2,2,23,0x81,200,1564,864,576,0,0,0,0,0,0,0,925,6000,2402,20,508,55,507,950,1604,100,0,0,582,1000,0,0,0,0,4031,1);
+-- REPLACE INTO `mob_db` VALUES (1234,'PROVOKE_YOYO','Yoyo','Yoyo',19,879,1,122,77,1,71,82,0,0,1,24,30,35,32,55,10,12,0,2,22,0x108B,200,1054,54,384,0,0,0,0,0,0,0,942,6000,7182,500,508,130,919,5500,753,7,578,500,582,1000,0,0,0,0,4051,1);
+-- REPLACE INTO `mob_db` VALUES (1235,'SMOKING_ORC','Smoking Orc','Smoking Orc',24,1400,1,235,144,1,114,136,16,20,1,24,48,20,34,0,10,12,1,7,22,0x308D,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,2267,3,1352,10,1304,5,1301,100,0,0,0,0,4066,1);
+-- REPLACE INTO `mob_db` VALUES (1236,'META_ANT_EGG','Ant Egg','Ant Egg',4,420,1,5,4,0,1,2,32,20,1,1,1,0,1,20,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,135,935,2740,909,3000,938,750,713,2000,1002,220,0,0,0,0,0,0,4013,1);
+-- REPLACE INTO `mob_db` VALUES (1237,'META_ANDRE','Andre','Andre',17,688,1,98,64,1,60,71,16,0,1,17,24,20,26,20,10,12,0,4,22,0x1181,300,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1000,935,3000,1001,6,1002,350,757,28,0,0,0,0,4043,1);
+-- REPLACE INTO `mob_db` VALUES (1238,'META_PIERE','Piere','Piere',18,733,1,110,70,1,64,75,24,0,1,18,26,20,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,5700,910,1100,938,600,992,15,1001,5,1002,400,757,31,0,0,0,0,4043,1);
+-- REPLACE INTO `mob_db` VALUES (1239,'META_DENIRO','Deniro','Deniro',19,760,1,122,77,1,68,79,24,0,1,19,30,20,43,10,10,12,0,4,22,0x1181,150,1288,288,576,0,0,0,0,0,0,0,955,6000,910,3000,938,1200,990,45,1001,8,1002,450,757,34,0,0,0,0,4043,1);
+-- REPLACE INTO `mob_db` VALUES (1240,'META_PICKY','Picky','Picky',3,80,1,4,3,1,9,12,0,0,1,3,3,0,10,30,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,2302,150,507,650,519,350,715,60,0,0,0,0,0,0,4008,1);
+-- REPLACE INTO `mob_db` VALUES (1241,'META_PICKY_','Picky','Picky',4,83,1,5,4,1,8,11,32,0,1,3,3,0,11,20,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,6500,949,850,5015,7,507,750,519,350,715,60,0,0,0,0,0,0,4011,1);
+-- Lutie (2.0)
+REPLACE INTO `mob_db` VALUES (1242,'MARIN','Marin','Marin',37,987,1,282,317,1,69,14,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,910,3200,938,1500,700,100,720,40,510,75,529,350,5035,1,0,0,0,0,4196,1);
+REPLACE INTO `mob_db` VALUES (1243,'SASQUATCH','Sasquatch','Sasquatch',72,3163,1,842,860,1,293,30,101,28,70,35,60,10,71,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,912,750,509,800,949,1000,5030,1,948,5000,727,30,757,90,0,0,0,0,4216,1);
+REPLACE INTO `mob_db` VALUES (1244,'JAKK_XMAS','Christmas Jakk','Christmas Jakk',63,2054,1,1052,619,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x81,200,1180,480,648,0,0,0,0,0,0,0,1062,5335,912,900,985,31,2331,5,644,20,7175,1200,7174,1200,0,0,0,0,4109,1);
+REPLACE INTO `mob_db` VALUES (1245,'GOBLINE_XMAS','Christmas Goblin','Christmas Goblin',25,1176,1,254,154,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x81,100,1120,620,240,0,0,0,0,0,0,0,7174,550,7175,550,756,43,644,10,1211,10,2104,5,2236,10,0,0,0,0,4060,1);
+REPLACE INTO `mob_db` VALUES (1246,'COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,282,317,1,70,35,48,36,21,16,30,20,25,5,10,12,0,7,46,0x91,400,1248,1248,240,0,0,0,0,0,0,0,538,1500,722,45,912,200,2502,25,644,5,688,100,507,1700,0,0,0,0,4235,1);
+REPLACE INTO `mob_db` VALUES (1247,'ANTONIO','Antonio','Antonio',10,10,1,1,2,1,13,8,160,0,1,1,1,50,100,100,10,12,1,7,66,0xC1,100,720,720,432,0,0,0,0,0,0,0,7034,10000,644,2000,529,10000,14550,10000,12225,2000,12132,2000,12354,200,12132,2000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1248,'CRUISER','Cruiser','Cruiser',41,919,1,288,324,7,55,20,20,18,17,10,23,15,34,10,10,12,1,0,60,0x2085,400,1296,1296,432,0,0,0,0,0,0,0,1098,900,2251,2,998,320,996,5,911,3500,13150,5,756,87,0,0,0,0,4297,1);
+REPLACE INTO `mob_db` VALUES (1249,'MYSTCASE','Myst Case','Myst Case',39,879,1,288,324,1,68,21,50,11,26,19,40,35,31,25,10,12,1,0,60,0x91,400,1248,1248,432,0,0,0,0,0,0,0,530,90,7938,10,603,20,539,800,722,150,731,5,529,340,0,0,0,0,4206,1);
+REPLACE INTO `mob_db` VALUES (1250,'CHEPET','Chepet','Chepet',42,4950,0,1315,1854,1,79,33,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3695,400,672,672,288,0,0,0,0,0,0,0,7035,2500,912,750,512,5500,619,40,10019,5,508,1300,2508,5,0,0,0,0,4284,1);
+REPLACE INTO `mob_db` VALUES (1251,'KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',92,630500,1,496560,302200,2,3480,1433,306,166,126,165,132,104,205,79,10,12,2,0,84,0x37B5,200,468,468,288,206900,720,4500,2406,500,995,3000,1468,150,603,3000,617,4000,2621,200,2506,500,985,4559,5007,1,0,0,0,0,4318,1);
+REPLACE INTO `mob_db` VALUES (1252,'GARM','Garm','Hatii',98,1275500,1,910656,613800,3,2421,1733,173,103,122,153,135,116,175,72,10,12,2,2,81,0x37B5,400,608,408,336,379440,7036,1000,603,3000,995,3000,7036,5500,1131,150,1256,500,1815,500,0,0,985,3977,984,2900,0,0,0,0,4324,1);
+-- Comodo (3.0)
+REPLACE INTO `mob_db` VALUES (1253,'GARGOYLE','Gargoyle','Gargoyle',100,8772,1,2280,1425,9,498,89,98,43,100,61,60,57,120,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,912,3880,1039,500,1746,6,0,0,2619,1,1769,2000,757,238,0,0,0,0,4149,1);
+REPLACE INTO `mob_db` VALUES (1254,'RAGGLER','Raggler','Raggler',48,1148,1,369,414,1,72,39,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3695,200,1000,900,384,0,0,0,0,0,0,0,7053,3000,916,5000,645,200,514,200,992,90,2225,7,756,32,0,0,0,0,4186,1);
+REPLACE INTO `mob_db` VALUES (1255,'NERAID','Neraid','Nereid',98,9550,1,1890,1181,1,255,71,100,37,97,45,60,30,83,50,10,12,0,2,22,0x3695,200,776,576,288,0,0,0,0,0,0,0,1055,5100,7053,1000,510,230,1966,10,514,250,757,180,985,37,0,0,0,0,4167,1);
+REPLACE INTO `mob_db` VALUES (1256,'PEST','Pest','Pest',89,5747,1,1474,1509,1,334,48,55,33,73,77,48,15,106,25,10,12,0,2,47,0x3695,165,700,648,480,0,0,0,0,0,0,0,1055,5500,7054,200,702,10,605,100,716,250,0,0,756,115,0,0,0,0,4315,1);
+REPLACE INTO `mob_db` VALUES (1257,'INJUSTICE','Injustice','Injustice',95,7952,1,1888,1997,1,447,116,76,31,77,59,58,65,88,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,1255,2,0,0,0,0,4268,1);
+REPLACE INTO `mob_db` VALUES (1258,'GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,472,507,9,100,24,69,0,40,34,20,15,53,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,2297,3,998,250,911,1000,1765,3000,507,600,1705,25,514,300,0,0,0,0,4157,1);
+REPLACE INTO `mob_db` VALUES (1259,'GRYPHON','Gryphon','Gryphon',105,60720,1,11292,5808,1,1432,103,113,72,101,133,66,70,164,54,10,12,2,2,84,0x37B5,100,704,504,432,0,0,0,0,0,0,0,7048,2500,7054,5335,7063,120,1452,1500,1417,1,984,185,996,150,0,0,0,0,4163,1);
+REPLACE INTO `mob_db` VALUES (1260,'DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,1090,1115,1,350,30,67,27,69,37,36,10,64,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1);
+REPLACE INTO `mob_db` VALUES (1261,'WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,756,1110,1,147,45,75,15,44,87,31,35,69,80,10,12,0,2,24,0x83,100,964,864,288,0,0,0,0,0,0,0,7053,5335,748,50,5037,120,2336,1,624,35,528,600,2244,2,0,0,0,0,4257,1);
+REPLACE INTO `mob_db` VALUES (1262,'MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,3826,12830,4,1176,534,130,20,75,35,30,68,108,35,10,12,2,9,43,0x37B5,250,1280,1080,240,0,0,0,0,0,0,0,7054,4850,1035,500,1036,500,930,500,1559,100,7296,1500,2527,50,0,0,0,0,4203,1);
+REPLACE INTO `mob_db` VALUES (1263,'WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,1010,1334,2,182,95,64,51,62,27,25,55,102,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,912,4559,932,6000,7005,500,693,100,1611,8,996,100,1615,1,0,0,0,0,4264,1);
+REPLACE INTO `mob_db` VALUES (1264,'MERMAN','Merman','Merman',60,2940,1,646,692,1,131,32,62,8,45,29,30,19,55,10,10,12,1,7,61,0x3695,220,916,816,336,0,0,0,0,0,0,0,1054,1300,2317,2,568,400,720,40,995,35,1460,3,756,203,0,0,0,0,4199,1);
+REPLACE INTO `mob_db` VALUES (1265,'COOKIE','Cookie','Cookie',35,666,1,234,264,1,59,25,56,28,15,23,35,12,31,15,10,12,0,7,60,0x1089,200,1036,936,240,0,0,0,0,0,0,0,538,1000,530,150,7938,5,11002,50,2402,30,12001,100,529,320,0,0,0,0,4293,1);
+REPLACE INTO `mob_db` VALUES (1266,'ASTER','Aster','Aster',50,1509,1,424,455,1,89,22,70,7,41,14,15,0,31,5,10,12,0,5,22,0x91,400,1264,864,216,0,0,0,0,0,0,0,938,500,7013,40,1052,1200,508,200,912,60,512,100,0,0,0,0,0,0,4247,1);
+REPLACE INTO `mob_db` VALUES (1267,'CARAT','Carat','Carat',103,9222,1,2332,1458,1,777,76,111,67,102,64,60,40,80,50,10,12,1,6,44,0x3795,200,1078,768,384,0,0,0,0,0,0,0,7054,3200,536,1000,2409,5,5003,1,0,0,0,0,509,1450,0,0,0,0,4288,1);
+REPLACE INTO `mob_db` VALUES (1268,'BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,9552,6511,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,7054,4850,2229,45,2317,5,2125,62,1170,1,1417,2,15014,5,0,0,0,0,4320,1);
+REPLACE INTO `mob_db` VALUES (1269,'CLOCK','Clock','Clock',81,5556,1,1354,1158,1,443,53,91,43,68,24,35,41,97,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,1095,5335,1019,800,509,1900,568,320,7026,30,7027,30,985,163,0,0,0,0,4299,1);
+REPLACE INTO `mob_db` VALUES (1270,'C_TOWER_MANAGER','Clock Tower Manager','Tower Keeper',90,6400,1,1436,1467,3,427,70,96,60,80,28,40,25,88,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,1095,5335,7054,5335,999,500,520,850,2109,1,7026,2000,7027,2000,0,0,0,0,4229,1);
+REPLACE INTO `mob_db` VALUES (1271,'ALLIGATOR','Alligator','Alligator',57,2430,1,510,548,1,158,37,62,30,47,48,24,15,40,26,10,12,1,2,21,0x91,200,1100,900,480,0,0,0,0,0,0,0,912,1000,1099,600,7003,2000,608,50,0,0,0,0,756,129,0,0,0,0,4252,1);
+REPLACE INTO `mob_db` VALUES (1272,'DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,857088,558000,2,3935,2585,330,168,118,136,154,142,193,66,10,12,2,6,89,0x37B5,100,868,768,480,357120,7005,6000,5093,500,617,2000,1615,800,2004,100,1237,300,2334,300,2507,100,985,5141,5162,10,0,0,0,0,4168,1);
+REPLACE INTO `mob_db` VALUES (1273,'ORC_LADY','Orc Lady','Orc Lady',45,1520,1,380,435,1,77,33,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3695,200,1050,900,288,0,0,0,0,0,0,0,7053,4656,15012,3,2602,1,2206,1,12127,10,7477,3,2338,1,0,0,0,0,4255,1);
+REPLACE INTO `mob_db` VALUES (1274,'MEGALITH','Megalith','Megalith',65,2451,1,624,669,9,122,30,66,18,57,14,35,10,99,3,10,12,2,0,80,0x84,200,1332,1332,672,0,0,0,0,0,0,0,912,100,7049,1000,617,1,0,0,0,0,985,61,757,207,0,0,0,0,4200,1);
+REPLACE INTO `mob_db` VALUES (1275,'ALICE','Alice','Alice',100,9230,1,1956,1222,1,514,98,93,73,82,53,45,70,96,80,10,12,1,7,60,0x91,200,502,1999,480,0,0,0,0,0,0,0,7047,2500,637,40,2407,3,2148,2,5085,1,12128,10,12002,100,0,0,0,0,4253,1);
+REPLACE INTO `mob_db` VALUES (1276,'RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,1154,1332,9,415,18,63,40,53,24,40,15,134,30,10,12,1,6,47,0x2185,200,1152,1152,480,0,0,0,0,0,0,0,7054,4656,0,0,2315,2,15013,5,1764,2000,1715,3,985,106,0,0,0,0,4187,1);
+REPLACE INTO `mob_db` VALUES (1277,'GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,510,548,3,226,26,114,30,58,30,20,25,28,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,7054,2000,1019,2000,1501,100,662,300,2272,1,508,250,686,100,0,0,0,0,4283,1);
+REPLACE INTO `mob_db` VALUES (1278,'STALACTIC_GOLEM','Stalactic Golem','Stalactic Golem',68,2590,1,708,759,1,358,21,230,5,67,47,48,1,69,5,10,12,2,0,80,0x91,200,1264,864,288,0,0,0,0,0,0,0,7004,2000,7054,4850,1000,250,997,30,757,250,2147,5,985,163,0,0,0,0,4223,1);
+REPLACE INTO `mob_db` VALUES (1279,'TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,364,297,1,292,28,22,5,1,33,24,10,61,20,10,12,0,4,22,0x3795,200,860,660,624,0,0,0,0,0,0,0,7053,100,943,380,606,200,993,160,1001,140,0,0,757,106,0,0,0,0,4308,1);
+REPLACE INTO `mob_db` VALUES (1280,'STEAM_GOBLIN','Steam Goblin','Goblin Steamrider',66,2241,1,714,765,1,294,35,85,5,52,61,32,15,90,25,10,12,1,7,44,0x91,200,1008,1008,528,0,0,0,0,0,0,0,911,2500,7053,3880,998,300,999,55,1003,320,13104,5,757,124,0,0,0,0,4156,1);
+REPLACE INTO `mob_db` VALUES (1281,'SAGEWORM','Sage Worm','Sage Worm',70,2872,1,756,810,1,166,121,109,45,39,29,28,71,48,30,10,12,0,2,60,0x91,200,936,936,288,0,0,0,0,0,0,0,2716,5,1097,1000,1055,3000,691,100,10024,10,689,100,5012,1,0,0,0,0,4219,1);
+REPLACE INTO `mob_db` VALUES (1282,'KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,2592,2620,9,762,33,84,5,99,39,48,30,124,25,10,12,0,7,23,0x2085,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1);
+REPLACE INTO `mob_db` VALUES (1283,'CHIMERA','Chimera','Chimera',70,26406,1,5426,4698,1,1029,148,159,10,1,38,110,88,91,85,10,12,2,2,63,0x37B5,200,772,672,360,0,0,0,0,0,0,0,7054,5335,1048,2500,568,1000,1306,1,7295,1500,1364,1,984,160,0,0,0,0,4300,1);
+-- REPLACE INTO `mob_db` VALUES (1284,'HUGELING','Hugeling','Hugeling',1,5000,0,2,1,4,7,10,0,0,1,1,1,1,6,1,10,12,2,3,21,0x91,200,1872,672,480,0,0,0,0,0,0,0,512,100,512,100,512,100,512,100,512,100,512,100,512,100,512,100,0,0,0,0);
+-- War Of Emperium & Guild Dungeon (4.1)
+REPLACE INTO `mob_db` VALUES (1285,'ARCHER_GUARDIAN','Archer Guardian','Archer Guardian',74,28634,1,1,1,12,1232,480,56,60,95,80,80,90,198,55,14,16,2,7,80,0x1FA5,265,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1286,'KNIGHT_GUARDIAN','Knight Guardian','Knight Guardian',86,30214,1,1,1,2,1408,280,88,30,110,40,140,65,150,65,14,16,2,7,80,0x1FA5,275,1200,1200,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1287,'SOLDIER_GUARDIAN','Soldier Guardian','Soldier Guardian',56,15670,1,1,1,1,873,163,56,0,85,56,100,45,103,43,10,12,2,7,20,0x21A5,265,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1288,'EMPELIUM','Emperium','Emperium',90,100,1,0,0,1,66,13,64,50,1,17,80,50,31,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1289,'MAYA_PUPLE','Maya Purple','Maya Purple',81,77670,1,12884,6516,2,1592,553,139,40,95,52,80,95,88,119,10,12,2,4,82,0x37B5,100,1024,1000,480,0,0,0,0,0,0,0,7053,4413,757,250,756,300,969,100,984,150,10006,1,7481,2,0,0,0,0,4198,1);
+REPLACE INTO `mob_db` VALUES (1290,'SKELETON_GENERAL','Skeleton General','Skeleton General',139,180130,0,10614,10115,1,1317,1701,100,35,72,34,52,31,101,25,10,12,1,1,29,0x3695,150,2276,576,432,0,0,0,0,0,0,0,7068,2550,756,160,508,800,1220,35,1219,80,13035,15,2274,1,0,0,0,0,4221,1);
+REPLACE INTO `mob_db` VALUES (1291,'WRAITH_DEAD','Wraith Dead','Wraith Dead',121,25990,0,3802,3410,2,1002,160,88,56,63,69,55,45,106,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,1059,4413,2206,10,2506,8,716,700,732,5,603,4,568,300,0,0,0,0,4189,1);
+REPLACE INTO `mob_db` VALUES (1292,'MINI_DEMON','Mini Demon','Mini Demon',117,19402,1,3510,2025,1,938,114,80,25,130,69,55,56,111,40,10,12,0,6,27,0x3795,150,1000,600,384,0,0,0,0,0,0,0,1038,4413,1039,450,2255,3,757,160,912,2500,1009,10,1478,5,0,0,0,0,4204,1);
+REPLACE INTO `mob_db` VALUES (1293,'CREMY_FEAR','Creamy Fear','Creamy Fear',117,25084,0,1901,1608,2,757,110,76,37,65,36,33,49,79,30,10,12,0,4,24,0x3795,155,1136,720,840,0,0,0,0,0,0,0,924,4550,2333,10,518,550,602,200,1550,8,2726,5,522,50,0,0,0,0,4298,1);
+REPLACE INTO `mob_db` VALUES (1294,'KILLER_MANTIS','Killer Mantis','Killer Mantis',141,180141,0,11303,10301,1,1521,1201,107,45,82,56,58,45,83,40,10,12,1,4,22,0x3795,175,1528,660,432,0,0,0,0,0,0,0,1031,4550,943,2500,721,10,509,15,514,25,1262,1,2108,1,0,0,0,0,4301,1);
+REPLACE INTO `mob_db` VALUES (1295,'OWL_BARON','Owl Baron','Owl Baron',120,21000,1,3954,2282,2,629,201,88,25,72,65,55,102,108,72,10,12,2,6,60,0x37B5,175,1345,824,440,0,0,0,0,0,0,0,7071,3500,7063,2500,1716,2,1472,1,1629,2,693,100,5045,5,0,0,0,0,4238,1);
+REPLACE INTO `mob_db` VALUES (1296,'KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,3436,2383,1,995,96,90,62,135,34,68,56,116,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,999,450,1034,6305,912,1200,1511,6,1613,2,525,150,526,100,0,0,0,0,4291,1);
+REPLACE INTO `mob_db` VALUES (1297,'ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',114,27157,1,5334,3199,1,981,200,93,51,126,57,55,69,157,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,930,4413,934,1800,2624,1,2611,150,12735,10,756,150,757,100,0,0,0,0,4248,1);
+REPLACE INTO `mob_db` VALUES (1298,'ZOMBIE_MASTER','Zombie Master','Zombie Master',119,25510,0,1802,3502,1,824,151,78,46,55,60,48,49,86,48,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,7071,2,0,0,0,0,4274,1);
+REPLACE INTO `mob_db` VALUES (1299,'GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,4672,5007,1,173,49,72,30,60,67,45,18,73,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,7054,1500,999,800,756,120,5090,50,2106,2,508,650,5113,10,0,0,0,0,4155,1);
+REPLACE INTO `mob_db` VALUES (1300,'CATERPILLAR','Caterpillar','Caterpillar',121,25656,0,1950,1650,1,1007,125,100,42,58,37,51,50,54,45,10,12,0,4,22,0x3795,300,1672,672,480,0,0,0,0,0,0,0,949,3000,7054,5335,13034,20,1000,100,997,50,603,4,508,500,0,0,0,0,4289,1);
+REPLACE INTO `mob_db` VALUES (1301,'AM_MUT','Am Mut','Am Mut',141,181487,0,10014,10113,1,1415,1630,90,42,58,44,40,35,80,45,10,12,0,6,27,0x3795,200,1156,456,384,0,0,0,0,0,0,0,1021,4550,757,250,1517,3,969,5,2282,1,616,1,746,500,0,0,0,0,4245,1);
+REPLACE INTO `mob_db` VALUES (1302,'DARK_ILLUSION','Dark Illusion','Dark Illusion',96,46255,0,4954,4549,2,1166,360,145,30,82,36,55,100,182,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,1615,3,5017,2,2508,3,7054,5335,522,120,509,1550,1162,2,0,0,0,0,4169,1);
+REPLACE INTO `mob_db` VALUES (1303,'GIANT_HONET','Giant Hornet','Giant Hornet',120,26521,0,1801,1661,1,811,132,80,43,70,45,47,32,74,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,526,550,518,1200,522,12,522,12,1608,3,722,20,1736,15,0,0,0,0,4271,1);
+REPLACE INTO `mob_db` VALUES (1304,'GIANT_SPIDER','Giant Spider','Giant Spider',117,25001,0,1810,1601,1,743,122,86,38,71,58,43,38,73,41,10,12,2,4,25,0x3795,165,1468,468,768,0,0,0,0,0,0,0,1025,4550,1042,1200,757,140,525,450,943,1200,1096,680,7053,800,0,0,0,0,4270,1);
+REPLACE INTO `mob_db` VALUES (1305,'ANCIENT_WORM','Ancient Worm','Ancient Worm',121,24005,0,1901,1677,1,1051,133,90,41,70,56,56,55,84,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,1042,4413,912,2500,2406,9,2727,5,1096,680,938,3500,7054,2500,0,0,0,0,4249,1);
+REPLACE INTO `mob_db` VALUES (1306,'LEIB_OLMAI','Leib Olmai','Leib Olmai',118,24001,0,1900,1720,1,895,105,127,31,72,35,80,35,77,27,10,12,2,2,22,0x3695,175,1260,230,192,0,0,0,0,0,0,0,948,4550,2289,8,740,120,518,500,2717,5,969,5,7053,800,0,0,0,0,4188,1);
+REPLACE INTO `mob_db` VALUES (1307,'CAT_O_NINE_TAIL','Cat o\' Nine Tails','Cat o\' Nine Tails',79,23600,0,4148,5792,1,467,80,100,50,72,75,40,50,79,48,10,12,1,6,63,0x37B5,155,1276,576,288,0,0,0,0,0,0,0,5008,1,638,150,10008,5,985,600,984,800,969,6,617,1,0,0,0,0,4290,1);
+REPLACE INTO `mob_db` VALUES (1308,'PANZER_GOBLIN','Panzer Goblin','Panzer Goblin',52,1471,1,468,504,1,128,58,60,25,52,60,35,35,75,31,10,12,1,7,44,0x3695,200,960,1008,840,0,0,0,0,0,0,0,7053,4413,7054,3500,999,180,998,360,1003,580,13158,5,994,160,0,0,0,0,4310,1);
+REPLACE INTO `mob_db` VALUES (1309,'GAJOMART','Gajomart','Gajomart',140,185098,0,11810,10801,1,1615,1601,98,50,77,47,39,33,94,40,10,12,0,0,83,0x3695,300,1000,1152,828,0,0,0,0,0,0,0,953,6500,912,2300,508,870,2279,8,12008,200,2131,20,994,180,0,0,0,0,4151,1);
+REPLACE INTO `mob_db` VALUES (1310,'MAJORUROS','Majoruros','Majoruros',107,11801,1,3708,2200,1,850,432,111,25,112,58,65,55,86,49,10,12,2,2,43,0x3695,250,1100,960,780,0,0,0,0,0,0,0,941,4413,1361,4,6254,1000,984,16,509,1850,2611,160,1000,250,0,0,0,0,4201,1);
+REPLACE INTO `mob_db` VALUES (1311,'GULLINBURSTI','Gullinbursti','Gullinbursti',120,25098,0,1951,1710,1,1028,148,108,43,88,54,82,35,76,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,1028,3500,514,290,702,6,2276,1,605,15,2627,1,912,160,0,0,0,0,4164,1);
+-- Turtle Dungeon (4.0)
+REPLACE INTO `mob_db` VALUES (1312,'TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,1119744,748440,2,3169,2066,394,123,116,123,154,99,217,98,10,12,2,2,42,0x37B5,200,900,1000,500,466560,967,5500,607,1500,617,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,658,1,0,0,0,0,4305,1);
+REPLACE INTO `mob_db` VALUES (1313,'MOBSTER','Mobster','Mobster',58,2253,1,520,557,1,156,23,87,18,72,36,33,21,45,5,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,1239,3,726,4559,2621,1,6264,500,912,2500,525,450,6265,500,0,0,0,0,4317,1);
+REPLACE INTO `mob_db` VALUES (1314,'PERMETER','Permeter','Permeter',90,6575,1,1305,1467,2,292,56,144,50,68,28,55,40,50,25,10,12,1,2,40,0x91,250,1100,483,528,0,0,0,0,0,0,0,967,4413,6263,200,7939,100,507,2450,912,1240,522,25,605,1,0,0,0,0,4311,1);
+REPLACE INTO `mob_db` VALUES (1315,'ASSULTER','Assaulter','Assaulter',100,8977,1,2390,2278,2,627,67,169,49,100,92,30,20,144,15,10,12,1,7,44,0x3695,200,512,780,504,0,0,0,0,0,0,0,967,4413,7069,1200,7072,840,6214,200,912,1240,13300,5,603,1,0,0,0,0,4246,1);
+REPLACE INTO `mob_db` VALUES (1316,'SOLIDER','Solider','Solider',92,8768,1,1784,1671,2,367,40,206,58,65,44,60,15,56,20,10,12,1,2,42,0x91,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,64,7067,850,508,2100,912,1240,518,850,1519,1,0,0,0,0,4220,1);
+REPLACE INTO `mob_db` VALUES (1317,'FUR_SEAL','Fur Seal','Seal',47,1371,1,360,405,1,87,40,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3885,200,1612,622,583,0,0,0,0,0,0,0,912,4365,510,250,2310,5,7053,1200,1452,1,525,200,746,120,0,0,0,0,4312,1);
+REPLACE INTO `mob_db` VALUES (1318,'HEATER','Heater','Heater',98,8180,1,2272,1611,2,664,79,199,50,89,49,50,30,106,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,967,4413,7070,750,697,100,6244,1000,526,140,7054,600,7068,1250,0,0,0,0,4331,1);
+REPLACE INTO `mob_db` VALUES (1319,'FREEZER','Freezer','Freezer',94,9990,1,1866,1749,2,604,150,127,38,68,47,50,45,69,25,10,12,1,2,41,0x3695,170,1260,960,672,0,0,0,0,0,0,0,967,4413,7070,850,7066,1250,912,1800,526,160,6256,200,689,100,0,0,0,0,4319,1);
+REPLACE INTO `mob_db` VALUES (1320,'OWL_DUKE','Owl Duke','Owl Duke',92,7381,1,1652,1953,1,624,300,80,45,54,51,45,88,106,50,10,12,2,6,60,0x37B5,195,1345,824,440,0,0,0,0,0,0,0,7071,4413,7063,1500,693,100,747,1,1451,3,1513,2,5045,1,0,0,0,0,4237,1);
+REPLACE INTO `mob_db` VALUES (1321,'DRAGON_TAIL','Dragon Tail','Dragon Tail',86,4680,1,1390,1422,1,200,35,63,25,61,65,35,40,62,20,10,12,1,4,44,0x3795,175,862,534,312,0,0,0,0,0,0,0,7064,4413,1096,400,943,800,2207,8,2226,2,601,300,602,150,0,0,0,0,4178,1);
+REPLACE INTO `mob_db` VALUES (1322,'SPRING_RABBIT','Spring Rabbit','Spring Rabbit',88,6684,1,1474,1509,1,317,40,108,42,68,66,35,30,58,5,10,12,1,2,42,0x83,160,1120,552,0,0,0,0,0,0,0,0,7054,3500,7053,2500,949,2500,511,4500,508,800,510,200,509,800,0,0,0,0,4227,1);
+REPLACE INTO `mob_db` VALUES (1323,'SEE_OTTER','Sea Otter','Sea Otter',48,1820,1,428,480,1,83,42,31,18,32,26,33,26,41,28,10,12,1,2,61,0x3885,190,1132,583,532,0,0,0,0,0,0,0,722,150,965,5500,7065,4365,725,50,726,50,746,650,7053,1200,0,0,0,0,4326,1);
+-- WoE Treasure Boxes
+REPLACE INTO `mob_db` VALUES (1324,'TREASURE_BOX1','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1325,'TREASURE_BOX2','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1326,'TREASURE_BOX3','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1327,'TREASURE_BOX4','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1328,'TREASURE_BOX5','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1329,'TREASURE_BOX6','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1330,'TREASURE_BOX7','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1331,'TREASURE_BOX8','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1332,'TREASURE_BOX9','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1333,'TREASURE_BOX10','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1334,'TREASURE_BOX11','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1335,'TREASURE_BOX12','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1336,'TREASURE_BOX13','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1337,'TREASURE_BOX14','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1338,'TREASURE_BOX15','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1339,'TREASURE_BOX16','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1340,'TREASURE_BOX17','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1341,'TREASURE_BOX18','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1342,'TREASURE_BOX19','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1343,'TREASURE_BOX20','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1344,'TREASURE_BOX21','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1345,'TREASURE_BOX22','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1346,'TREASURE_BOX23','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1347,'TREASURE_BOX24','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1348,'TREASURE_BOX25','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1349,'TREASURE_BOX26','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1350,'TREASURE_BOX27','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1351,'TREASURE_BOX28','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1352,'TREASURE_BOX29','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1353,'TREASURE_BOX30','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1354,'TREASURE_BOX31','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1355,'TREASURE_BOX32','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1356,'TREASURE_BOX33','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1357,'TREASURE_BOX34','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1358,'TREASURE_BOX35','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1359,'TREASURE_BOX36','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1360,'TREASURE_BOX37','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1361,'TREASURE_BOX38','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1362,'TREASURE_BOX39','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,732,7760,608,3000,607,2500,12679,800,12680,800,12582,800,12676,800,616,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1363,'TREASURE_BOX40','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,12674,10,658,500,603,10000,7444,5000,12623,40,12106,40,616,500,12675,10,0,0,0,0);
+-- Yuno (5.0)
+REPLACE INTO `mob_db` VALUES (1364,'G_ASSULTER','Assaulter','Assaulter',98,7798,1,0,0,2,293,67,83,49,100,86,30,20,98,15,10,12,1,6,44,0x3795,155,1000,900,432,0,0,0,0,0,0,0,1019,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1365,'APOCALIPS','Apocalypse','Apocalypse',121,22090,1,3954,2282,2,1053,116,136,26,130,53,76,25,125,15,10,12,2,0,60,0x91,400,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,13161,1,2506,20,12735,100,0,0,0,0,4242,1);
+REPLACE INTO `mob_db` VALUES (1366,'LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,2678,1674,1,777,53,299,27,126,42,103,28,92,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,7096,4559,7097,3686,2317,1,2316,2,509,2500,1818,20,6245,500,0,0,0,0,4184,1);
+REPLACE INTO `mob_db` VALUES (1367,'BLAZZER','Blazer','Blazer',101,8121,1,2192,1371,2,599,94,116,60,99,75,55,70,72,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,7097,4850,7098,3400,509,3000,0,0,0,0,0,0,0,0,0,0,0,0,4215,1);
+REPLACE INTO `mob_db` VALUES (1368,'GEOGRAPHER','Geographer','Geographer',73,3866,1,988,1010,3,309,82,158,42,81,26,35,56,72,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,1032,6200,1033,5500,2253,30,2207,50,12002,100,0,0,0,0,0,0,0,0,4280,1);
+REPLACE INTO `mob_db` VALUES (1369,'GRAND_PECO','Grand Peco','Grand Peco',75,3150,1,976,998,2,348,56,95,30,63,45,50,23,61,25,10,12,2,2,43,0x1089,165,1460,960,432,0,0,0,0,0,0,0,7101,4850,522,300,992,1000,969,1,0,0,0,0,582,500,0,0,0,0,4161,1);
+REPLACE INTO `mob_db` VALUES (1370,'SUCCUBUS','Succubus','Succubus',119,24960,1,5100,3489,2,1138,394,76,48,100,64,45,80,115,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,522,1500,2407,3,12373,1,2613,250,5066,1,1472,1,505,1000,0,0,0,0,4218,1);
+REPLACE INTO `mob_db` VALUES (1371,'FAKE_ANGEL','Fake Angel','False Angel',105,10988,1,2520,1570,2,657,135,106,84,112,67,43,81,82,80,10,12,0,8,66,0x3885,160,920,720,336,0,0,0,0,0,0,0,7104,0,7105,0,717,1000,715,1000,716,1000,12020,1000,1974,20,0,0,0,0,4316,1);
+REPLACE INTO `mob_db` VALUES (1372,'GOAT','Goat','Goat',80,3980,1,1172,1197,1,426,60,95,43,61,40,48,40,78,31,10,12,1,2,63,0x1089,165,1380,1080,336,0,0,0,0,0,0,0,7106,4559,7107,2500,713,5000,507,500,510,1000,508,2500,511,5500,0,0,0,0,4150,1);
+REPLACE INTO `mob_db` VALUES (1373,'LORD_OF_DEATH','Lord of Death','Lord of the Dead',94,603883,1,524544,345252,3,5351,1962,336,73,140,99,30,129,170,90,10,12,2,6,67,0x37B5,180,1446,1296,360,218560,607,5500,732,5000,617,5000,7108,5335,1417,5,1230,10,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4276,1);
+REPLACE INTO `mob_db` VALUES (1374,'INCUBUS','Incubus','Incubus',120,28000,1,5106,3646,2,1256,375,72,46,120,56,52,75,139,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,522,1500,509,5500,5072,1,2621,1,2610,500,2613,150,509,2200,0,0,0,0,4269,1);
+REPLACE INTO `mob_db` VALUES (1375,'THE_PAPER','The Paper','The Paper',97,8500,1,1836,1148,1,364,110,32,39,77,49,30,5,73,5,10,12,1,0,60,0x3885,350,720,864,504,0,0,0,0,0,0,0,7111,4947,7112,3200,508,1800,511,2000,13009,5,0,0,0,0,0,0,0,0,4172,1);
+REPLACE INTO `mob_db` VALUES (1376,'HARPY','Harpy','Harpy',83,4423,1,1320,1520,1,340,41,69,44,71,39,50,31,125,12,10,12,1,6,64,0x3985,155,972,672,470,0,0,0,0,0,0,0,7115,4850,7116,2500,508,1500,508,800,709,20,1820,20,0,0,0,0,0,0,4325,1);
+REPLACE INTO `mob_db` VALUES (1377,'ELDER','Elder','Elder',92,7341,1,1652,2898,3,359,802,72,41,67,63,35,99,106,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,7099,4000,7117,1500,7939,1000,1564,10,1473,1,616,1,7027,3000,0,0,0,0,4251,1);
+REPLACE INTO `mob_db` VALUES (1378,'DEMON_PUNGUS','Demon Pungus','Demon Pungus',91,6466,1,1620,1520,1,556,65,80,52,63,61,30,38,95,43,10,12,0,6,65,0x3985,170,1260,960,672,0,0,0,0,0,0,0,7119,4074,7001,4559,715,3880,1061,5000,0,0,0,0,0,0,0,0,0,0,4173,1);
+REPLACE INTO `mob_db` VALUES (1379,'NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,2443,1832,1,918,226,78,37,118,53,55,63,106,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4947,2626,1,2608,30,505,50,510,150,695,100,1261,1,0,0,0,0,4166,1);
+REPLACE INTO `mob_db` VALUES (1380,'DRILLER','Driller','Driller',65,2719,1,624,669,1,190,31,96,18,62,50,25,15,53,5,10,12,1,2,22,0x3885,165,1300,900,336,0,0,0,0,0,0,0,1012,7500,715,3880,716,3500,0,0,0,0,0,0,0,0,0,0,0,0,4180,1);
+REPLACE INTO `mob_db` VALUES (1381,'GRIZZLY','Grizzly','Grizzly',66,2241,1,768,822,1,267,13,109,2,60,26,44,3,86,15,10,12,2,2,63,0x3885,165,1492,1092,192,0,0,0,0,0,0,0,948,5000,919,5000,549,2500,2353,20,0,0,0,0,0,0,0,0,0,0,4162,1);
+REPLACE INTO `mob_db` VALUES (1382,'DIABOLIC','Diabolic','Diabolic',104,10572,1,2172,1629,1,707,200,68,61,103,80,53,65,94,25,10,12,0,6,47,0x3985,150,1080,780,180,0,0,0,0,0,0,0,1038,5820,1039,4850,2605,3,984,20,1263,10,0,0,0,0,0,0,0,0,4182,1);
+REPLACE INTO `mob_db` VALUES (1383,'EXPLOSION','Explosion','Explosion',100,7813,1,1900,1425,1,625,110,112,50,91,51,63,50,78,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,7006,5500,7097,2200,7122,3200,756,800,522,400,0,0,0,0,0,0,0,0,4267,1);
+REPLACE INTO `mob_db` VALUES (1384,'DELETER','Deleter','Deleter',105,10000,1,2099,1574,1,653,179,111,53,105,55,53,68,80,73,10,12,1,9,43,0x308D,175,1020,720,384,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,0,0,0,0,0,0,0,0,0,0,4158,1);
+REPLACE INTO `mob_db` VALUES (1385,'DELETER_','Deleter','Deleter',105,10000,1,2099,1574,1,663,211,114,53,98,65,49,72,68,73,10,12,1,9,43,0x308D,175,1024,624,336,0,0,0,0,0,0,0,7123,4074,1035,5335,1037,3880,1036,3589,2114,10,0,0,0,0,0,0,0,0,4279,1);
+REPLACE INTO `mob_db` VALUES (1386,'SLEEPER','Sleeper','Sleeper',81,5160,1,1136,1160,1,301,48,101,29,74,41,57,27,65,27,10,12,1,0,42,0x3885,195,1350,1200,432,0,0,0,0,0,0,0,7124,4947,1056,5335,997,2500,756,300,1226,5,1622,5,7043,1200,0,0,0,0,4228,1);
+REPLACE INTO `mob_db` VALUES (1387,'GIG','Gig','Gig',100,8721,1,2122,1327,1,619,123,104,53,92,66,60,48,72,50,10,12,0,2,43,0x3885,170,1264,864,576,0,0,0,0,0,0,0,7125,4365,904,5500,716,150,525,2500,994,850,0,0,0,0,0,0,0,0,4165,1);
+REPLACE INTO `mob_db` VALUES (1388,'ARCHANGELING','Archangeling','Arc Angeling',84,25100,1,3578,2910,1,593,100,92,81,32,48,62,99,119,105,10,12,1,8,66,0x37B5,180,1072,672,480,0,0,0,0,0,0,0,2255,5,610,1800,608,150,7291,1500,2254,5,2317,3,7294,1500,0,0,0,0,4241,1);
+REPLACE INTO `mob_db` VALUES (1389,'DRACULA','Dracula','Dracula',75,350000,1,343728,245520,3,2454,1812,252,146,86,99,88,92,194,82,10,12,2,6,87,0x37B5,145,1290,1140,576,156240,607,5500,732,5000,522,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,0,0,0,0,0,0,4134,1);
+REPLACE INTO `mob_db` VALUES (1390,'VIOLY','Violy','Violy',118,20557,1,3720,2147,10,767,120,74,36,90,86,38,76,126,63,10,12,1,7,40,0x2085,170,1356,1056,540,0,0,0,0,0,0,0,1060,6305,12127,50,740,1200,1919,50,526,1400,12020,1000,1902,500,0,0,0,0,4209,1);
+REPLACE INTO `mob_db` VALUES (1391,'GALAPAGO','Galapago','Galapago',45,1221,1,342,386,1,68,35,70,16,30,28,29,18,30,16,10,12,0,2,22,0x108B,165,1430,1080,1080,0,0,0,0,0,0,0,7053,5335,6263,300,508,3500,606,100,6264,300,5111,1,582,1000,0,0,0,0,4152,1);
+REPLACE INTO `mob_db` VALUES (1392,'ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,399,449,10,75,40,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,7126,500,2312,1,7053,1000,999,450,984,1,912,2500,910,5500,0,0,0,0,4192,1);
+REPLACE INTO `mob_db` VALUES (1393,'G_MUMMY','Mummy','Mummy',55,2155,1,0,0,1,180,21,95,3,54,4,14,1,68,0,10,12,1,1,49,0x3885,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1394,'G_ZOMBIE','Zombie','Zombie',17,234,1,0,0,1,43,12,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1395,'CRYSTAL_1','Wind Crystal','Wind Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,529,4000,532,6500,558,5000,607,100,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1396,'CRYSTAL_2','Earth Crystal','Earth Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1397,'CRYSTAL_3','Fire Crystal','Fire Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1398,'CRYSTAL_4','Water Crystal','Water Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0);
+-- Event MVP
+REPLACE INTO `mob_db` VALUES (1399,'EVENT_BAPHO','Baphomet','Baphomet',68,1264000,0,82450,25106,3,1939,420,35,45,1,152,96,85,132,95,10,12,2,6,67,0x37B5,130,768,768,576,130875,607,5500,526,5000,732,5000,1417,550,1306,680,1145,480,2110,640,2327,1500,2111,500,2621,1720,2256,1550,0,0,0,0);
+-- Amatsu (6.0)
+REPLACE INTO `mob_db` VALUES (1400,'KARAKASA','Karakasa','Karakasa',72,3092,1,842,860,1,172,42,93,29,66,73,33,20,64,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,7151,5000,7150,4268,1019,3200,7111,2200,912,4074,746,30,13012,5,0,0,0,0,4286,1);
+REPLACE INTO `mob_db` VALUES (1401,'SHINOBI','Shinobi','Shinobi',95,8000,1,2028,1902,2,573,51,49,45,71,70,55,30,83,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,7156,5335,2337,2,6214,700,2654,100,2336,1,7157,2000,13013,5,0,0,0,0,4230,1);
+REPLACE INTO `mob_db` VALUES (1402,'POISON_TOAD','Poison Toad','Poisonous Toad',87,4876,1,1474,1509,3,233,54,80,42,66,42,40,45,70,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,7155,5500,7154,2400,2610,4,511,540,724,2,526,2,1246,10,0,0,0,0,4175,1);
+REPLACE INTO `mob_db` VALUES (1403,'ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,1486,1512,10,356,45,72,30,67,44,30,30,100,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,998,5500,2285,1,7126,1400,508,40,549,350,525,250,13152,5,0,0,0,0,4160,1);
+REPLACE INTO `mob_db` VALUES (1404,'MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,1228,1256,1,238,66,57,19,66,30,30,55,88,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,7152,5335,7153,2500,509,1550,1000,1250,12127,10,13014,5,1904,2,0,0,0,0,4208,1);
+REPLACE INTO `mob_db` VALUES (1405,'TENGU','Tengu','Tengu',98,10196,1,2040,1275,2,274,83,134,46,99,38,40,30,80,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,7159,3500,7158,5500,13301,5,522,150,13302,5,12128,20,687,100,0,0,0,0,4282,1);
+REPLACE INTO `mob_db` VALUES (1406,'KAPHA','Kapha','Kapha',83,5470,1,1138,1164,1,306,32,61,38,67,59,40,31,73,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,13304,20,521,2300,708,2,1915,10,13008,5,0,0,0,0,4287,1);
+-- REPLACE INTO `mob_db` VALUES (1407,'DOKEBI_','Dokebi','Dokebi',1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Gonryun (6.1)
+REPLACE INTO `mob_db` VALUES (1408,'BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,1866,1749,3,361,67,79,50,70,68,40,55,108,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,7163,4608,7168,2500,602,1200,924,5500,1802,3,1962,1,0,0,0,0,0,0,4327,1);
+REPLACE INTO `mob_db` VALUES (1409,'RICE_CAKE_BOY','Rice Cake Boy','Dumpling Child',60,2098,1,558,597,1,134,22,96,12,50,43,29,5,47,10,10,12,0,7,20,0x91,160,1247,768,420,0,0,0,0,0,0,0,7150,3200,7151,2500,2262,1,7192,5000,553,1000,7187,3000,0,0,0,0,0,0,4154,1);
+REPLACE INTO `mob_db` VALUES (1410,'LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,1798,1724,7,351,72,109,40,76,52,55,40,92,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,7164,4365,7939,100,526,1000,604,400,532,100,603,5,0,0,0,0,0,0,4217,1);
+REPLACE INTO `mob_db` VALUES (1411,'PEACH_TREE_BULLET','Enchanted Peach Tree Bullet','Enchanted Peach Tree Bullet',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1412,'EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,1804,1127,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,7162,4656,548,5600,550,4500,553,6800,1908,2,757,150,693,100,0,0,0,0,4262,1);
+REPLACE INTO `mob_db` VALUES (1413,'WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,1550,1586,1,575,71,56,62,76,51,60,60,91,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,520,3500,521,3500,1033,3800,1032,4800,6217,800,1951,1,578,1000,0,0,0,0,4232,1);
+REPLACE INTO `mob_db` VALUES (1414,'GINSENG_BULLET','Hermit Bullet','Hermit Bullet',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1415,'BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,524,1016,2,291,52,77,5,46,36,20,4,61,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,7171,5200,7172,3200,756,150,517,2000,1214,100,537,500,0,0,0,0,0,0,4233,1);
+REPLACE INTO `mob_db` VALUES (1416,'WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,2130,1331,2,442,128,46,45,84,46,45,70,92,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,7165,3977,7166,1380,984,10,1904,4,1906,1,12002,100,1918,10,0,0,0,0,4258,1);
+REPLACE INTO `mob_db` VALUES (1417,'ZIPPER_BEAR','Zipper Bear','Zipper Bear',90,6620,1,1436,1467,1,451,57,130,40,68,51,50,35,70,20,10,12,1,2,27,0x91,155,780,1008,420,0,0,0,0,0,0,0,7161,4462,7167,3500,526,400,518,900,512,90,0,0,0,0,0,0,0,0,4281,1);
+REPLACE INTO `mob_db` VALUES (1418,'DARK_SNAKE_LORD','Evil Snake Lord','Evil Snake Lord',105,1101000,1,864000,630000,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,78120,607,5500,617,5000,985,5500,7169,5820,10020,5100,1471,80,5012,80,1474,500,7226,900,661,2000,0,0,0,0,4330,1);
+-- Additional G_Mobs
+REPLACE INTO `mob_db` VALUES (1419,'G_FARMILIAR','Familiar','Familiar',24,427,1,0,0,1,68,9,26,5,15,19,20,5,20,1,10,12,0,2,27,0x3881,150,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1420,'G_ARCHER_SKELETON','Archer Skeleton','Archer Skeleton',50,1646,1,0,0,9,95,23,47,10,30,29,20,10,35,5,10,12,1,1,29,0x3885,300,2864,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1421,'G_ISIS','Isis','Isis',59,2092,1,0,0,1,202,37,83,5,58,43,22,5,43,15,10,12,2,6,27,0x3985,200,1384,768,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1422,'G_HUNTER_FLY','Hunter Fly','Hunter Fly',63,2050,1,0,0,1,226,20,46,20,32,72,22,25,100,15,10,12,0,4,44,0x3985,150,676,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1423,'G_GHOUL','Ghoul','Ghoul',61,2614,1,0,0,1,227,29,78,5,56,12,19,11,30,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1424,'G_SIDE_WINDER','Side Winder','Side Winder',70,2736,1,0,0,1,316,30,101,12,52,32,35,20,73,15,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1425,'G_OBEAUNE','Obeaune','Obeaune',53,2158,1,0,0,1,102,45,48,26,54,47,21,40,36,25,10,12,1,5,41,0x3885,200,1872,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1426,'G_MARC','Marc','Marc',56,2522,1,0,0,1,145,25,55,24,50,24,22,15,53,20,10,12,1,5,41,0x3885,150,1272,72,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1427,'G_NIGHTMARE','Nightmare','Nightmare',69,2872,1,0,0,1,297,62,116,15,57,32,20,15,77,15,10,12,2,6,68,0x3985,150,1816,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1428,'G_POISON_SPORE','Poison Spore','Poison Spore',26,456,1,0,0,1,68,15,40,8,19,17,22,5,20,5,10,12,1,3,25,0x3885,200,1672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1429,'G_ARGIOPE','Argiope','Argiope',75,3105,1,0,0,1,321,50,88,32,60,23,40,30,24,30,10,12,2,4,25,0x3985,300,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1430,'G_ARGOS','Argos','Argos',47,1005,1,0,0,1,96,33,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3985,300,1468,468,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1431,'G_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',57,2035,0,0,0,1,195,33,70,25,52,60,36,17,57,25,10,12,0,6,27,0x3985,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1432,'G_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x3885,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1433,'G_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,221,73,62,30,61,17,30,35,57,5,10,12,0,6,27,0x3985,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1434,'G_DRAINLIAR','Drainliar','Drainliar',47,1162,1,0,0,1,100,42,50,15,35,34,24,22,50,20,10,12,0,2,47,0x3885,250,1276,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1435,'G_EVIL_DRUID','Evil Druid','Evil Druid',80,5149,1,0,0,1,378,68,88,45,62,32,24,45,85,5,10,12,2,1,89,0x3885,300,2276,576,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1436,'G_JAKK','Jakk','Jakk',63,2054,1,0,0,1,229,37,90,25,58,43,42,25,61,15,10,12,1,0,43,0x3885,200,1180,480,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1437,'G_JOKER','Joker','Joker',90,6022,1,0,0,1,317,60,64,76,84,99,30,50,92,35,10,12,2,7,84,0x3885,100,1364,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1438,'G_KHALITZBURG','Khalitzburg','Khalitzburg',118,23986,1,0,0,1,1232,96,125,10,121,48,40,31,125,32,10,12,2,1,29,0x3885,350,528,1000,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1439,'G_HIGH_ORC','High Orc','High Orc',81,4193,1,0,0,1,428,50,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3885,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1440,'G_STEM_WORM','Stem Worm','Stem Worm',84,4530,1,0,0,2,293,41,73,50,55,37,25,47,84,30,10,12,1,3,24,0x3885,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1441,'G_PENOMENA','Penomena','Penomena',85,4589,1,0,0,7,321,41,85,32,76,38,35,35,107,10,10,12,1,5,25,0x3885,400,832,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1442,'G_SASQUATCH','Sasquatch','Sasquatch',72,3163,1,0,0,1,293,30,101,28,70,35,60,10,71,20,10,12,2,2,60,0x3885,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1443,'G_CRUISER','Cruiser','Cruiser',41,919,1,0,0,7,55,20,20,18,17,10,23,15,34,10,10,12,1,0,60,0x3885,400,1296,1296,432,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1444,'G_CHEPET','Chepet','Chepet',42,4950,0,0,0,1,79,33,55,25,32,35,35,21,32,23,10,12,1,7,23,0x3885,400,672,672,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1445,'G_RAGGLER','Raggler','Raggler',48,1148,1,0,0,1,72,39,56,10,30,42,38,15,54,27,10,12,0,2,24,0x3885,200,1000,900,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1446,'G_INJUSTICE','Injustice','Injustice',95,7952,1,0,0,1,447,116,76,0,77,59,58,65,88,50,10,12,1,1,47,0x3885,400,770,720,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1447,'G_GRYPHON','Gryphon','Gryphon',105,60720,1,0,0,1,932,103,113,72,101,133,66,70,164,54,10,12,2,2,84,0x39A5,100,704,504,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1448,'G_DARK_FRAME','Dark Frame','Dark Frame',76,3520,1,0,0,1,350,30,67,27,69,37,36,10,64,5,10,12,1,6,67,0x3985,200,920,720,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1449,'G_MUTANT_DRAGON','Mutant Dragon','Mutant Dragonoid',65,50706,1,0,0,4,1176,534,130,20,75,35,30,68,108,35,10,12,2,9,43,0x39A5,250,1280,1080,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1450,'G_WIND_GHOST','Wind Ghost','Wind Ghost',80,4008,1,0,0,2,182,95,64,51,62,27,25,55,102,20,10,12,1,6,64,0x3985,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1451,'G_MERMAN','Merman','Merman',60,2940,1,0,0,2,131,32,62,8,45,29,30,19,55,10,10,12,1,7,41,0x3885,220,916,816,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1452,'G_ORC_LADY','Orc Lady','Orc Lady',45,1520,1,0,0,1,77,33,83,17,36,11,28,10,57,5,10,12,1,7,42,0x3885,200,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1453,'G_RAYDRIC_ARCHER','Raydric Archer','Raydric Archer',82,4437,1,0,0,9,415,18,63,40,53,24,40,15,134,30,10,12,1,6,47,0x3985,200,1152,1152,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1454,'G_TRI_JOINT','Tri Joint','Tri Joint',66,2530,0,0,0,1,187,28,22,5,1,33,24,10,61,20,10,12,0,4,22,0x3985,200,860,660,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1455,'G_KOBOLD_ARCHER','Kobold Archer','Kobold Archer',108,11053,1,0,0,9,762,33,84,5,99,39,48,30,108,25,10,12,0,7,23,0x3885,200,1008,1008,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1456,'G_CHIMERA','Chimera','Chimera',70,26406,1,0,0,1,1029,148,159,10,1,38,110,88,91,85,10,12,2,2,63,0x39A5,200,772,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1457,'G_MANTIS','Mantis','Mantis',65,2719,1,0,0,1,187,31,90,0,55,33,24,5,46,15,10,12,1,4,22,0x3985,200,1528,660,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1458,'G_MARDUK','Marduk','Marduk',73,2893,1,0,0,1,198,112,66,43,66,49,21,40,79,25,10,12,2,7,23,0x3885,300,1540,840,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1459,'G_MARIONETTE','Marionette','Marionette',62,2209,1,0,0,1,174,56,71,35,52,36,28,25,62,20,10,12,0,6,68,0x3985,300,1480,480,1056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1460,'G_MATYR','Matyr','Matyr',58,2087,1,0,0,1,151,26,63,5,48,20,21,17,47,10,10,12,1,2,27,0x3885,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1461,'G_MINOROUS','Minorous','Minorous',58,1893,1,0,0,1,247,36,100,10,65,42,36,43,61,25,10,12,2,2,43,0x3885,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1462,'G_ORC_SKELETON','Orc Skeleton','Orc Skeleton',53,2077,1,0,0,1,115,25,82,10,52,16,24,5,22,5,10,12,1,1,29,0x3885,200,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1463,'G_ORC_ZOMBIE','Orc Zombie','Orc Zombie',51,1908,1,0,0,1,114,15,71,5,45,17,32,5,57,5,10,12,1,1,29,0x3885,400,2852,1152,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1464,'G_PASANA','Pasana','Pasana',79,3510,1,0,0,1,438,40,93,35,76,36,33,20,80,5,10,12,1,7,43,0x3885,165,976,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1465,'G_PETIT','Petite','Petite',86,5799,1,0,0,1,321,66,99,49,55,32,38,37,65,20,10,12,1,9,22,0x3885,200,1624,620,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1466,'G_PETIT_','Petite','Petite',79,3556,1,0,0,1,308,36,86,42,63,39,31,55,86,85,10,12,1,9,24,0x3885,150,1420,1080,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1467,'G_RAYDRIC','Raydric','Raydric',115,18408,1,0,0,1,901,96,89,15,129,87,55,32,106,27,10,12,2,7,47,0x3885,150,824,780,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1468,'G_REQUIEM','Requim','Requiem',71,3089,1,0,0,1,348,48,88,20,58,34,35,12,50,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1469,'G_SKEL_WORKER','Skeleton Worker','Skeleton Worker',44,1240,1,0,0,1,92,12,45,5,30,13,22,10,37,25,10,12,1,1,29,0x3885,400,2420,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1470,'G_ZEROM','Zerom','Zerom',70,2687,1,0,0,1,328,38,93,15,57,49,30,15,62,20,10,12,1,7,23,0x3885,200,1780,1080,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1471,'G_NINE_TAIL','Nine Tail','Nine Tail',72,2783,1,0,0,1,491,50,95,40,61,38,30,20,106,50,10,12,1,2,63,0x3885,150,840,540,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1472,'G_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,198,29,88,5,55,24,24,5,37,10,10,12,1,1,29,0x3885,200,1720,500,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1473,'G_ORC_ARCHER','Orc Archer','Orc Archer',78,4835,1,0,0,9,286,43,67,31,55,32,24,30,119,15,10,12,1,7,22,0x3885,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1474,'G_MIMIC','Mimic','Mimic',56,1939,1,0,0,1,232,22,63,15,49,120,20,15,109,0,10,12,1,0,60,0x3885,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1475,'G_WRAITH','Wraith','Wraith',77,5168,1,0,0,1,369,61,80,40,62,26,30,55,91,5,10,12,2,1,89,0x3885,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1476,'G_ALARM','Alarm','Alarm',88,5562,1,0,0,1,319,48,106,53,70,72,40,25,66,25,10,12,1,0,60,0x3885,300,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1477,'G_ARCLOUSE','Arclouse','Arclouze',77,4320,1,0,0,1,296,40,101,36,60,73,45,35,72,15,10,12,1,4,42,0x3985,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1478,'G_RIDEWORD','Rideword','Rideword',74,3222,1,0,0,1,387,22,61,38,67,53,32,44,125,5,10,12,0,0,60,0x3885,150,864,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1479,'G_SKEL_PRISONER','Skeleton Prisoner','Skeleton Prisoner',91,9194,1,0,0,1,346,55,95,41,84,35,60,20,85,15,10,12,1,1,69,0x3885,350,1848,500,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1480,'G_ZOMBIE_PRISONER','Zombie Prisoner','Zombie Prisoner',89,8045,1,0,0,1,392,60,89,28,87,39,58,5,82,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1481,'G_PUNK','Punk','Punk',82,3869,1,0,0,1,293,54,68,55,67,39,30,35,95,45,10,12,0,3,24,0x3885,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1482,'G_ZHERLTHSH','Zherlthsh','Zealotus',105,61350,1,0,0,1,993,250,91,99,88,61,51,62,136,60,10,12,1,7,60,0x3885,200,800,792,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1483,'G_RYBIO','Rybio','Rybio',98,8700,1,0,0,1,360,76,109,30,96,52,61,30,96,10,10,12,2,6,40,0x3985,200,1790,1440,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1484,'G_PHENDARK','Phendark','Phendark',102,11000,1,0,0,2,701,75,307,50,111,65,71,20,85,30,10,12,2,7,40,0x3885,175,1744,1344,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1485,'G_MYSTELTAINN','Mysteltainn','Mysteltainn',130,70000,1,0,0,2,1079,567,73,61,102,139,62,65,182,65,10,12,2,0,87,0x39A5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1486,'G_TIRFING','Tirfing','Ogretooth',114,59000,1,0,0,1,948,411,87,69,105,105,75,73,151,65,10,12,1,0,67,0x39A5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1487,'G_EXECUTIONER','Executioner','Executioner',101,40200,1,0,0,2,670,359,97,188,99,96,77,78,95,60,10,12,2,0,47,0x39A5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1488,'G_ANOLIAN','Anolian','Anolian',109,15547,1,0,0,1,650,110,61,11,130,63,55,66,70,48,10,12,1,5,41,0x3885,190,900,500,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1489,'G_STING','Sting','Sting',104,14143,1,0,0,1,677,67,146,50,108,49,68,43,104,24,10,12,1,0,62,0x3885,300,528,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1490,'G_WANDER_MAN','Wander Man','Wanderer',120,19307,1,0,0,2,1695,105,64,5,118,92,36,15,169,33,10,12,1,6,24,0x3985,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1491,'G_DOKEBI','Dokebi','Dokebi',68,2820,1,0,0,1,333,30,85,20,52,56,35,20,66,25,10,12,0,6,27,0x3985,250,1156,456,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Umbala (6.2)
+REPLACE INTO `mob_db` VALUES (1492,'INCANTATION_SAMURAI','Incantation Samurai','Samurai Specter',100,901000,1,902016,595080,3,2855,936,296,140,145,161,88,66,186,60,10,12,2,7,67,0x37B5,135,874,1344,576,375840,607,5500,608,3500,985,5500,1165,2,985,3500,5096,500,607,4500,999,6305,13303,7500,1235,80,0,0,0,0,4263,1);
+REPLACE INTO `mob_db` VALUES (1493,'DRYAD','Dryad','Dryad',68,3640,1,878,939,3,279,35,153,8,54,14,40,35,74,10,10,12,1,3,82,0x3885,170,950,2520,576,0,0,0,0,0,0,0,7197,5335,7198,1000,7188,3000,6265,300,1964,1,2270,10,7100,3000,0,0,0,0,4177,1);
+REPLACE INTO `mob_db` VALUES (1494,'KIND_OF_BEETLE','Beetle King','Beetle King',55,2061,1,472,507,1,116,52,79,8,53,47,10,0,50,0,10,12,0,4,22,0x1189,165,1247,768,576,0,0,0,0,0,0,0,7190,6500,7202,4500,928,1000,955,500,2102,1,0,0,0,0,0,0,0,0,4307,1);
+REPLACE INTO `mob_db` VALUES (1495,'STONE_SHOOTER','Stone Shooter','Stone Shooter',64,2101,1,722,776,10,211,53,88,15,55,55,36,15,85,15,10,12,1,3,63,0x3885,175,2413,1248,768,0,0,0,0,0,0,0,7203,5000,7201,5000,7188,1000,1019,2000,756,100,7049,1000,0,0,0,0,0,0,4225,1);
+REPLACE INTO `mob_db` VALUES (1496,'STONE_SHOOTER_BULLET','Stone Shooter Bullet','Stone Shooter Bullet',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1497,'WOODEN_GOLEM','Wooden Golem','Wooden Golem',72,3914,1,1044,1079,1,321,42,249,26,69,30,45,5,59,5,10,12,2,3,82,0x3885,165,1543,1632,480,0,0,0,0,0,0,0,7189,4000,7188,4000,757,110,2270,10,604,100,7201,5000,7936,300,0,0,0,0,4259,1);
+REPLACE INTO `mob_db` VALUES (1498,'WOOTAN_SHOOTER','Wootan Shooter','Wootan Shooter',67,3096,1,746,798,10,147,35,91,21,32,23,38,20,76,10,10,12,1,7,42,0x3885,200,857,1056,576,0,0,0,0,0,0,0,7195,4500,7200,3500,513,1000,7049,1000,7939,100,7182,100,5116,10,0,0,0,0,4260,1);
+REPLACE INTO `mob_db` VALUES (1499,'WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',67,2327,1,744,798,1,255,36,103,8,63,14,36,5,62,15,10,12,1,7,43,0x3885,200,912,1344,480,0,0,0,0,0,0,0,517,4500,7196,4000,1801,3,1812,1,7939,100,7198,1000,5116,5,0,0,0,0,4261,1);
+REPLACE INTO `mob_db` VALUES (1500,'PARASITE','Parasite','Parasite',76,3222,1,1014,1337,8,177,45,63,30,55,78,33,50,106,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,7193,5500,7194,2000,7186,3880,7198,500,1957,1,1969,1,6265,800,0,0,0,0,4309,1);
+REPLACE INTO `mob_db` VALUES (1501,'PARASITE_BULLET','Parasite Bullet','Parasite Bullet',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,0,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Event MVP
+REPLACE INTO `mob_db` VALUES (1502,'PORING_V','Pori Pori','Bring it on!',99,95000000,1,94230,25106,1,6500,5000,0,10,100,100,65,100,306,255,10,12,1,3,25,0x39A5,160,1672,672,480,43625,10020,1000,4005,100,2286,200,5035,10000,2344,2500,2346,2500,2350,2500,2348,2500,2655,500,7126,10000,2110,4500,0,0,0,0);
+-- Nifflheim (7.0)
+REPLACE INTO `mob_db` VALUES (1503,'GIBBET','Gibbet','Gibbet',105,12999,1,1944,1458,1,697,85,116,45,103,56,62,55,73,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1);
+REPLACE INTO `mob_db` VALUES (1504,'DULLAHAN','Dullahan','Dullahan',108,19546,1,3010,2976,2,1066,175,111,38,121,29,51,43,100,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,15039,10,0,0,0,0,0,0,4176,1);
+REPLACE INTO `mob_db` VALUES (1505,'LOLI_RURI','Loli Ruri','Loli Ruri',109,15280,1,3348,2093,2,1123,280,53,44,111,50,47,79,95,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,15038,10,0,0,0,0,4191,1);
+REPLACE INTO `mob_db` VALUES (1506,'DISGUISE','Disguise','Disguise',103,13895,1,2678,1674,2,338,82,85,58,92,53,57,75,80,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1);
+REPLACE INTO `mob_db` VALUES (1507,'BLOODY_MURDERER','Bloody Murderer','Bloody Murderer',110,14099,1,3268,2244,2,1397,298,84,41,120,65,66,41,107,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1);
+REPLACE INTO `mob_db` VALUES (1508,'QUVE','Quve','Quve',100,11090,1,1966,1229,1,294,97,96,55,84,54,55,50,85,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1);
+REPLACE INTO `mob_db` VALUES (1509,'LUDE','Lude','Lude',101,11574,1,2030,1269,2,283,78,90,53,97,38,55,82,83,55,10,12,0,1,29,0x3885,150,890,960,480,0,0,0,0,0,0,0,7225,3200,7220,5723,1059,1000,2282,10,757,10,12001,100,6246,300,0,0,0,0,4193,1);
+REPLACE INTO `mob_db` VALUES (1510,'HYLOZOIST','Hylozoist','Heirozoist',102,12000,1,2250,1406,1,548,81,101,68,97,67,72,88,83,60,10,12,0,6,47,0x3985,155,741,1536,480,0,0,0,0,0,0,0,7215,4365,7217,5335,7213,2000,740,80,7220,300,757,10,5113,1,0,0,0,0,4321,1);
+-- Pyramid Basement
+REPLACE INTO `mob_db` VALUES (1511,'AMON_RA','Amon Ra','Amon Ra',69,1009000,1,240120,187920,3,2090,2052,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,5053,150,2615,50,7211,7760,985,3880,616,400,1552,10,607,3000,0,0,0,0,4236,1);
+-- Louyang (8.0)
+REPLACE INTO `mob_db` VALUES (1512,'HYEGUN','Hyegun','Yao Jun',87,6996,1,1410,1445,1,271,48,84,43,69,38,40,20,82,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1);
+REPLACE INTO `mob_db` VALUES (1513,'CIVIL_SERVANT','Civil Servant','Mao Guai',89,5292,1,1484,1512,2,304,61,90,56,67,76,40,65,74,30,10,12,1,2,44,0x3885,200,1257,528,432,0,0,0,0,0,0,0,7262,4171,7263,2000,606,10,1023,100,693,100,0,0,0,0,0,0,0,0,4202,1);
+REPLACE INTO `mob_db` VALUES (1514,'DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,1068,1094,2,295,35,83,36,59,76,40,30,73,30,10,12,1,9,44,0x83,160,600,840,504,0,0,0,0,0,0,0,7266,4365,7265,3000,7268,800,1036,1000,7038,3000,0,0,0,0,0,0,0,0,4272,1);
+REPLACE INTO `mob_db` VALUES (1515,'GARM_BABY','Garm Baby','Hatii Baby',94,10016,1,1866,1749,1,498,61,62,43,69,61,55,61,106,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7270,1500,7269,2500,7066,4365,749,100,12000,100,0,0,0,0,0,0,0,0,4323,1);
+REPLACE INTO `mob_db` VALUES (1516,'INCREASE_SOIL','Increase Soil','Mi Gao',83,5335,1,1320,1529,1,365,30,112,39,67,23,41,49,94,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1);
+REPLACE INTO `mob_db` VALUES (1517,'LI_ME_MANG_RYANG','Li Me Mang Ryang','Jing Guai',80,5187,1,1172,1197,1,197,41,110,37,61,22,33,35,74,20,10,12,1,6,62,0x3985,165,1120,576,420,0,0,0,0,0,0,0,7267,4500,7268,400,1501,10,1523,1,0,0,0,0,0,0,0,0,0,0,4265,1);
+REPLACE INTO `mob_db` VALUES (1518,'BACSOJIN','Bacsojin','White Lady',97,720500,1,801792,542880,2,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,1020,5500,603,2,617,2,7165,3000,7166,1000,747,500,5411,500,2234,1,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1519,'CHUNG_E','Chung E','Green Maiden',49,23900,0,2156,894,1,460,590,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,7053,4850,740,100,1806,10,518,500,11505,1000,0,0,0,0,5042,2,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1520,'BOILED_RICE','Boiled Rice','Dumpling',15,777,1,7,7,1,7,7,0,10,7,7,7,17,17,7,10,12,1,3,21,0x81,170,1152,672,672,0,0,0,0,0,0,0,683,3000,11505,1000,682,3000,564,8000,7272,4000,18753,500,0,0,0,0,0,0,0,0);
+-- Additional G_Mobs & Bosses
+REPLACE INTO `mob_db` VALUES (1521,'G_ALICE','Alice','Alice',100,9230,1,0,0,1,514,98,93,73,82,53,45,70,96,80,10,12,1,7,60,0x91,200,520,2304,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1522,'G_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',115,29157,1,0,0,1,981,100,93,27,126,57,55,69,78,15,10,12,1,1,49,0x3695,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1523,'G_ANTIQUE_FIRELOCK','Antique Firelock','Firelock Soldier',88,7524,1,0,0,10,356,45,72,30,67,44,30,30,100,30,10,12,1,1,49,0x2085,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1524,'G_BABY_LEOPARD','Baby Leopard','Baby Leopard',68,2590,1,0,0,2,291,52,77,5,46,36,20,4,61,10,10,12,0,2,28,0x3885,150,318,528,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1525,'G_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,252,96,61,89,66,38,40,77,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1526,'G_BLOOD_BUTTERFLY','Bloody Butterfly','Bloody Butterfly',94,7030,1,0,0,3,361,67,79,50,70,68,40,55,108,30,10,12,1,4,44,0x318D,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1527,'G_C_TOWER_MANAGER','Clock Tower Manager','Tower Keeper',90,6400,1,0,0,3,427,70,96,60,80,28,40,25,88,45,10,12,2,0,80,0x91,200,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1528,'G_CLOCK','Clock','Clock',81,5556,1,0,0,1,443,53,91,43,68,24,35,41,97,15,10,12,1,0,42,0x91,200,1092,792,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1529,'G_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,0,0,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1530,'G_DRACULA','Dracula','Dracula',75,350000,1,0,0,3,1454,1812,152,146,86,99,88,92,174,82,10,12,2,6,87,0x37B5,145,1290,1140,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1531,'G_EVIL_CLOUD_HERMIT','Evil Cloud Hermit','Taoist Hermit',96,8266,1,0,0,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1532,'G_EXPLOSION','Explosion','Explosion',100,7813,1,0,0,1,625,110,112,50,91,51,63,50,78,60,10,12,0,2,63,0x3885,165,1260,960,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1533,'G_FUR_SEAL','Fur Seal','Seal',47,1371,1,0,0,1,87,40,42,16,37,40,30,39,35,19,10,12,1,2,21,0x3095,200,1612,622,583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1534,'G_GOBLIN_1','Goblin','Goblin',48,1058,1,0,0,1,87,34,56,5,37,54,25,20,36,10,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1535,'G_GOBLIN_2','Goblin','Goblin',44,931,1,0,0,1,94,28,52,5,33,16,24,15,58,10,10,12,1,7,23,0x3095,150,1320,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1536,'G_GOBLIN_3','Goblin','Goblin',44,930,1,0,0,1,88,33,47,5,30,16,24,15,17,10,10,12,1,7,25,0x308D,250,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1537,'G_GOBLIN_4','Goblin','Goblin',49,1494,1,0,0,1,72,22,70,3,31,27,46,15,34,10,10,12,1,7,22,0x308D,200,1624,624,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1538,'G_GOBLIN_5','Goblin','Goblin',56,2342,1,0,0,1,167,31,64,5,51,37,22,15,42,10,10,12,1,7,21,0x308D,300,3074,1874,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1539,'G_GOBLIN_LEADER','Goblin Leader','Goblin Leader',55,21692,1,0,0,1,173,49,72,30,60,67,45,18,73,23,10,12,1,7,24,0x3695,120,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1540,'G_GOLEM','Golem','Golem',61,2245,1,0,0,1,208,25,190,12,70,27,67,5,34,5,10,12,2,0,60,0x91,300,1608,816,396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1541,'G_GREATEST_GENERAL','Greatest General','Greatest General',55,1575,1,0,0,3,226,26,114,30,58,30,20,25,28,20,10,12,1,0,43,0x84,200,1152,1152,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (1542,'G_INCANTATION_SAMURA','Incantation Samurai','Incantation Samurai',100,901000,1,0,0,3,2196,3132,296,140,145,161,88,66,155,60,10,12,2,7,67,0x37B5,135,874,1344,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1543,'G_KAPHA','Kapha','Kapha',83,5470,1,0,0,3,306,32,61,38,67,59,40,31,73,24,10,12,1,5,21,0x3885,165,2012,1728,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1544,'G_KARAKASA','Karakasa','Karakasa',72,3092,1,0,0,1,172,42,93,29,66,73,33,20,64,60,10,12,1,0,60,0x81,155,1638,2016,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1545,'G_KOBOLD_1','Kobold','Kobold',107,10483,1,0,0,1,701,87,103,25,109,76,61,53,98,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1546,'G_KOBOLD_2','Kobold','Kobold',102,9152,1,0,0,1,477,62,117,59,96,61,55,48,95,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1547,'G_KOBOLD_3','Kobold','Kobold',101,9078,1,0,0,1,468,64,109,48,103,64,59,42,80,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1548,'G_KOBOLD_LEADER','Kobold Leader','Kobold Leader',112,13520,1,0,0,1,995,96,90,62,135,34,68,56,116,47,10,12,1,7,44,0x3695,150,1028,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1549,'G_LAVA_GOLEM','Lava Golem','Lava Golem',103,8452,1,0,0,1,777,53,299,27,126,42,103,28,92,15,10,12,2,0,83,0x3095,400,2190,2040,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1550,'G_LIVE_PEACH_TREE','Live Peach Tree','Enchanted Peach Tree',92,8777,1,0,0,7,351,72,109,40,76,52,55,40,92,50,10,12,1,3,42,0x2085,410,400,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1551,'G_MARSE','Marse','Marse',47,1456,1,0,0,1,85,20,38,18,33,17,25,10,33,10,10,12,0,5,41,0x91,300,1956,756,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1552,'G_MIYABI_NINGYO','Miyabi Ningyo','Miyabi Doll',85,5188,1,0,0,1,238,66,57,19,66,30,30,55,88,40,10,12,1,6,27,0x191,250,1938,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1553,'G_MYST','Myst','Myst',49,1223,1,0,0,1,96,20,61,10,35,37,20,10,41,10,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1554,'G_NIGHTMARE_TERROR','Nightmare Terror','Nightmare Terror',107,13289,1,0,0,1,818,126,78,37,118,53,55,63,64,43,10,12,2,6,67,0x3985,165,1216,816,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1555,'G_PARASITE','Parasite','Parasite',76,3222,1,0,0,8,177,45,63,30,55,78,33,50,106,40,10,12,1,3,44,0x84,400,864,864,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1556,'G_POISON_TOAD','Poison Toad','Poisonous Toad',87,4876,1,0,0,3,233,54,80,42,66,42,40,45,70,30,10,12,1,2,45,0x81,160,1148,1728,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1557,'G_ROTAR_ZAIRO','Rotar Zairo','Rotar Zairo',48,1088,1,0,0,10,75,40,57,34,29,70,45,26,61,5,10,12,2,0,44,0x2085,155,2416,2016,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1558,'G_SAND_MAN','Sandman','Sandman',61,2887,1,0,0,1,164,56,126,25,44,8,55,15,34,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1559,'G_SCORPION','Scorpion','Scorpion',16,153,1,0,0,1,39,7,16,5,14,15,10,5,33,5,10,12,0,4,23,0x3191,200,1564,864,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1560,'G_SHINOBI','Shinobi','Shinobi',95,8000,1,0,0,2,573,51,49,45,71,70,55,30,83,30,10,12,1,7,67,0x3695,150,1003,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1561,'G_SMOKIE','Smokie','Smokie',29,591,1,0,0,1,70,11,26,0,16,34,16,5,27,5,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1562,'G_SOLDIER_SKELETON','Soldier Skeleton','Soldier Skeleton',34,804,1,0,0,1,84,14,53,5,14,10,32,5,29,3,10,12,1,1,29,0x3885,200,2276,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1563,'G_TENGU','Tengu','Tengu',98,10196,1,0,0,2,274,83,134,46,99,38,40,30,80,60,10,12,2,6,42,0x3985,200,1439,1920,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1564,'G_WICKED_NYMPH','Wicked Nymph','Evil Nymph',97,8491,1,0,0,2,283,128,46,45,84,46,45,70,92,60,10,12,1,6,67,0x3795,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1565,'G_WILD_GINSENG','Wild Ginseng','Hermit Plant',90,6052,1,0,0,1,575,71,56,62,76,51,60,60,91,50,10,12,0,3,43,0x91,140,512,756,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1566,'G_WRAITH_DEAD','Wraith Dead','Wraith Dead',86,10035,0,0,0,2,442,60,88,56,63,69,55,45,106,45,10,12,2,1,89,0x3695,175,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1567,'G_ANCIENT_WORM','Ancient Worm','Ancient Worm',83,4140,0,0,0,1,329,35,90,41,70,56,56,55,84,42,10,12,2,4,25,0x3795,165,1792,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1568,'G_ANGELING','Angeling','Angeling',77,19800,1,0,0,1,391,145,72,238,58,50,33,105,80,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1569,'G_BLOODY_KNIGHT','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,0,87,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1570,'G_CRAMP','Cramp','Cramp',82,3898,1,0,0,1,435,48,88,42,65,43,35,25,82,30,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1571,'G_DEVIACE','Deviace','Deviace',60,3135,1,0,0,1,168,29,51,16,57,26,32,25,50,15,10,12,1,5,81,0x91,400,1680,480,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1572,'G_DROPS','Drops','Drops',2,45,1,0,0,1,12,1,16,0,8,1,1,0,6,2,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1573,'G_ELDER','Elder','Elder',92,7341,1,0,0,3,359,402,72,41,67,63,35,99,106,61,10,12,2,7,80,0x3885,165,1552,1152,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1574,'G_ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,0,0,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1575,'G_FLORA','Flora','Flora',59,2301,1,0,0,3,163,31,99,29,49,29,35,5,46,80,10,12,2,3,22,0x84,1000,1432,432,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1576,'G_GHOSTRING','Ghostring','Ghostring',90,26700,1,0,0,1,385,162,88,72,66,85,66,66,119,66,10,12,1,6,88,0x37B5,300,1220,1080,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1577,'G_GOBLIN_ARCHER','Goblin Archer','Goblin Archer',55,1575,1,0,0,9,100,24,69,0,40,34,20,15,53,20,10,12,0,7,25,0x2085,200,1172,672,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1578,'G_HORONG','Horong','Horong',66,2304,1,0,0,1,275,70,84,35,36,32,35,45,62,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1579,'G_HYDRA','Hydra','Hydra',34,854,1,0,0,7,35,6,20,32,10,9,14,0,35,2,10,12,0,3,41,0x84,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1580,'G_INCUBUS','Incubus','Incubus',120,28000,1,0,0,2,956,375,72,46,120,56,52,75,139,70,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1581,'G_VOCAL','Vocal','Vocal',18,3317,1,0,0,1,71,11,77,26,77,26,26,30,53,40,10,12,1,4,22,0x3795,200,1080,648,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1582,'DEVILING','Deviling','Deviling',66,16890,1,2394,2379,1,313,183,67,70,48,50,33,75,85,200,10,12,1,6,87,0x37B5,200,1072,1056,384,0,0,0,0,0,0,0,1039,3000,912,4850,2255,100,512,5000,7023,1,983,100,694,100,0,0,0,0,4174,1);
+REPLACE INTO `mob_db` VALUES (1583,'TAO_GUNKA','Tao Gunka','Tao Gunka',110,1252000,1,1080000,720000,2,3757,1260,404,143,135,175,98,110,239,66,10,12,2,6,60,0x37B5,150,1020,288,144,450000,984,6000,617,3000,505,6000,7300,4850,7067,4850,728,1000,2296,400,504,3000,12738,200,2231,5,0,0,0,0,4302,1);
+-- Ayothaya (9.0)
+REPLACE INTO `mob_db` VALUES (1584,'TAMRUAN','Tamruan','Tamruan',73,3195,1,988,1010,1,336,37,63,30,60,38,40,20,73,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,7301,4850,7069,3000,1117,40,1155,8,2315,3,12736,300,0,0,0,0,0,0,4304,1);
+-- REPLACE INTO `mob_db` VALUES (1585,'MIME_MONKEY','Mime Monkey','Mime Monkey',40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1586,'LEAF_CAT','Leaf Cat','Leaf Cat',64,2635,1,624,669,1,147,41,88,16,46,16,12,45,36,29,10,12,0,2,22,0x83,150,960,864,720,0,0,0,0,0,0,0,7198,4365,520,300,608,5,1023,1100,568,250,567,500,7298,5335,0,0,0,0,4195,1);
+REPLACE INTO `mob_db` VALUES (1587,'KRABEN','Kraben','Kraben',70,2901,1,536,1095,1,279,45,108,20,54,33,35,15,68,20,10,12,1,0,48,0x3095,100,1152,1536,576,0,0,0,0,0,0,0,912,3500,519,3000,521,1000,2102,1,7299,4850,7286,1000,603,10,0,0,0,0,4295,1);
+-- Additional G_Mobs & Xmas_Orc
+REPLACE INTO `mob_db` VALUES (1588,'ORC_XMAS','Christmas Orc','Christmas Orc',24,1400,1,235,144,1,104,22,16,5,1,24,48,25,34,10,10,12,1,7,22,0x81,200,1864,864,288,0,0,0,0,0,0,0,998,210,931,5500,756,40,7175,1600,1352,10,644,15,7174,1600,0,0,0,0,4066,1);
+REPLACE INTO `mob_db` VALUES (1589,'G_MANDRAGORA','Mandragora','Mandragora',13,156,1,0,0,4,38,3,13,2,12,3,5,5,10,5,10,12,1,3,62,0x84,1000,1768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1590,'G_GEOGRAPHER','Geographer','Geographer',73,3866,1,0,0,3,309,82,158,42,81,26,35,56,72,60,10,12,1,3,62,0x84,2000,1308,1008,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1591,'A_LUNATIC','Lunatic','Lunatic',29,2334,0,0,0,1,221,24,16,20,1,15,22,5,40,15,10,12,0,2,60,0xA1,200,1456,456,336,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1592,'A_MOBSTER','Gangster','Gangster',40,8000,0,0,0,1,300,55,32,27,1,50,45,45,73,30,10,12,1,7,20,0x11A9,250,1100,560,580,0,0,0,0,0,0,0,7049,10000,601,2000,1206,3000,713,1000,550,10000,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1593,'A_ANCIENT_MUMMY','Ancient Mummy','Ancient Mummy',52,8613,0,0,0,1,830,100,64,27,58,47,42,5,69,26,10,12,1,1,69,0xB5,175,1772,120,384,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1594,'G_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,604,50,127,38,68,47,50,45,66,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1595,'G_MARIN','Marin','Marin',37,987,1,0,0,1,69,14,32,8,24,5,10,5,30,15,10,12,1,3,41,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1596,'G_TAMRUAN','Tamruan','Tamruan',73,3195,1,0,0,1,336,37,63,30,60,38,40,20,73,20,10,12,2,6,67,0x318D,140,512,1152,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1597,'G_GARGOYLE','Gargoyle','Gargoyle',100,8772,1,0,0,9,498,89,98,43,100,61,60,57,120,70,10,12,1,6,64,0x2185,200,1020,720,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1598,'G_BLAZZER','Blazzer','Blazzer',101,8121,1,0,0,2,599,94,116,60,99,75,55,70,72,65,10,12,1,6,43,0x3395,180,1732,1332,540,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1599,'G_WHISPER_BOSS','Giant Whisper','Giant Whisper',66,2570,0,0,0,1,191,59,94,45,40,79,44,51,74,31,10,12,0,6,48,0x3795,250,2536,1536,672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1600,'G_HEATER','Heater','Heater',96,7480,1,0,0,2,644,79,186,42,75,49,50,30,96,35,10,12,1,2,43,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1601,'G_PERMETER','Permeter','Permeter',90,6575,1,0,0,2,292,56,144,50,68,28,55,40,50,25,10,12,1,2,40,0x3695,250,1100,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1602,'G_SOLIDER','Solider','Solider',92,8768,1,0,0,2,367,40,206,58,65,44,60,15,56,20,10,12,1,2,42,0x3695,250,1452,483,528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1603,'G_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1604,'G_GIANT_HONET','Giant Hornet','Giant Hornet',82,3960,0,0,0,1,303,53,80,43,70,45,47,32,74,34,10,12,0,4,24,0x3795,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1605,'G_DARK_ILLUSION','Dark Illusion','Dark Illusion',96,46255,0,0,0,2,1166,360,145,30,82,36,55,100,182,88,10,12,2,6,89,0x37B5,145,1024,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1606,'G_GARM_BABY','Garm Baby','Hatii Baby',94,10016,1,0,0,1,498,61,62,43,69,61,55,61,106,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1607,'G_GOBLINE_XMAS','Christmas Goblin','Santa Goblin',25,1176,1,0,0,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1608,'G_THIEF_BUG__','Thief Bug Male','Male Thief Bug',19,583,1,0,0,1,76,12,24,5,1,29,16,5,36,0,10,12,1,4,27,0x318D,300,988,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1609,'G_DANCING_DRAGON','Dancing Dragon','Zhu Po Long',82,3943,1,0,0,2,295,35,83,36,59,76,40,30,73,30,10,12,1,9,44,0xA3,160,600,840,504,0,0,0,0,0,0,0,570,500,571,50,572,20,515,10000,12018,5000,0,0,0,0,668,100,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1610,'A_MUNAK','Munak','Munak',30,2872,0,0,0,1,40,10,0,0,1,15,20,5,120,15,10,12,1,1,89,0x39A5,100,2468,768,288,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1611,'A_BON_GUN','Bongun','Bongun',59,2510,1,0,0,1,189,29,88,5,55,24,24,5,34,10,10,12,1,1,89,0x31B5,200,1720,500,420,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1612,'A_HYEGUN','Hyegun','Yao Jun',56,9981,0,0,0,1,710,418,20,10,60,40,36,10,73,15,10,12,1,1,89,0x39A5,180,890,1320,720,0,0,0,0,0,0,0,502,2000,0,0,0,0,0,0,0,0,0,0,12017,100,12016,100,0,0,0,0);
+-- Einbroch (10.1)
+REPLACE INTO `mob_db` VALUES (1613,'METALING','Metaling','Metaling',81,4300,1,1048,1074,1,188,39,69,28,58,30,49,17,60,5,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1);
+REPLACE INTO `mob_db` VALUES (1614,'MINERAL','Mineral','Mineral',96,8300,1,1604,2026,1,751,57,127,23,70,61,40,50,74,50,10,12,0,0,40,0x91,250,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,714,2,984,80,1011,800,715,100,969,2,0,0,0,0,4339,1);
+REPLACE INTO `mob_db` VALUES (1615,'OBSIDIAN','Obsidian','Obsidian',97,10088,1,1782,2038,1,767,80,129,37,84,38,40,60,64,50,10,12,0,0,42,0x3885,350,720,864,504,0,0,0,0,0,0,0,7315,3000,730,500,1003,500,985,50,999,500,1263,10,0,0,0,0,0,0,4338,1);
+REPLACE INTO `mob_db` VALUES (1616,'PITMAN','Pitman','Pitman',90,7208,1,1550,1586,1,200,60,104,48,78,56,45,35,60,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1);
+REPLACE INTO `mob_db` VALUES (1617,'WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,1652,1548,1,530,60,100,47,76,61,50,30,67,15,10,12,2,0,20,0x3885,300,1152,528,360,0,0,0,0,0,0,0,7323,1000,7068,1000,6215,200,625,50,7939,100,604,50,7319,3800,0,0,0,0,4332,1);
+REPLACE INTO `mob_db` VALUES (1618,'UNGOLIANT','Ungoliant','Ungoliant',94,27070,1,4100,2456,1,1296,144,108,28,71,70,58,43,110,38,10,12,2,4,45,0x3795,350,420,576,420,0,0,0,0,0,0,0,7316,4500,1014,3500,1013,1000,7289,1500,7326,2500,718,1500,2406,500,0,0,0,0,4336,1);
+REPLACE INTO `mob_db` VALUES (1619,'PORCELLIO','Porcellio','Porcellio',85,5544,1,1422,1455,1,293,53,79,37,67,48,28,40,74,30,10,12,0,4,62,0x183,150,720,360,360,0,0,0,0,0,0,0,7312,5000,1208,25,928,1000,1052,3000,630,2,7326,30,0,0,0,0,0,0,4337,1);
+REPLACE INTO `mob_db` VALUES (1620,'NOXIOUS','Noxious','Noxious',87,5430,1,976,1785,1,281,71,117,66,58,45,60,55,68,50,10,12,1,0,68,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7322,1000,7001,3000,605,50,7320,3000,6213,600,6215,300,603,1,0,0,0,0,4334,1);
+REPLACE INTO `mob_db` VALUES (1621,'VENOMOUS','Venomous','Venomous',87,4770,1,1306,1337,1,316,50,104,65,61,28,60,55,54,50,10,12,1,0,25,0x3885,350,768,1440,672,0,0,0,0,0,0,0,7320,5000,7119,3000,7154,1000,7322,2000,6213,300,6215,600,603,1,0,0,0,0,4333,1);
+REPLACE INTO `mob_db` VALUES (1622,'TEDDY_BEAR','Teddy Bear','Teddy Bear',91,7238,1,1620,1799,1,482,62,106,39,57,81,66,20,82,44,10,12,0,0,60,0x3295,200,512,780,504,0,0,0,0,0,0,0,7317,3800,518,1000,615,300,13106,5,5113,50,2652,10,985,100,0,0,0,0,4340,1);
+REPLACE INTO `mob_db` VALUES (1623,'RSX_0806','RSX 0806','RSX-0806',100,1001000,1,864000,576000,1,3010,976,317,96,153,143,110,128,198,84,10,12,2,0,60,0x37B5,220,128,1104,240,360000,607,5500,5104,3500,732,5500,7093,6000,1230,5,13017,1,617,1000,7327,5000,1242,100,1531,40,0,0,0,0,4342,1);
+REPLACE INTO `mob_db` VALUES (1624,'G_WASTE_STOVE','Waste Stove','Old Stove',92,7400,1,0,0,1,530,60,100,47,76,61,50,30,67,15,10,12,2,0,20,0x3885,220,1152,528,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1625,'G_PORCELLIO','Porcellio','Porcellio',85,5544,1,1014,624,1,182,53,79,37,67,48,28,40,74,30,10,12,0,4,62,0x3985,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Hellion Revenant
+REPLACE INTO `mob_db` VALUES (1626,'G_DARK_PRIEST','Hellion Revenant','Hellion Revenant',79,8600,1,1,1,2,196,60,88,50,54,63,40,78,67,99,10,12,1,6,69,0x37B5,150,432,384,192,0,0,0,0,0,0,0,7337,8000,7337,5000,7337,3000,7337,1000,7337,500,7337,100,0,0,0,0,0,0,0,0);
+-- Lighthalzen (10.2)
+REPLACE INTO `mob_db` VALUES (1627,'ANOPHELES','Anopheles','Anopheles',95,7238,1,2028,1902,1,315,18,7,10,64,60,42,58,106,42,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,7119,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
+REPLACE INTO `mob_db` VALUES (1628,'MOLE','Mole','Holden',85,6228,1,1326,1358,9,286,49,82,16,53,65,31,30,58,31,10,12,0,2,42,0x1089,300,1400,960,504,0,0,0,0,0,0,0,1017,5000,1018,5000,5119,50,13101,5,0,0,0,0,0,0,0,0,0,0,4343,1);
+REPLACE INTO `mob_db` VALUES (1629,'HILL_WIND','Hill Wind','Hill Wind',43,2870,0,340,340,3,290,190,9,15,21,50,31,50,59,23,10,12,1,2,64,0x3885,200,336,540,432,0,0,0,0,0,0,0,517,1000,528,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4345,1);
+REPLACE INTO `mob_db` VALUES (1630,'BACSOJIN_','Bacsojin','White Lady',97,720500,1,801792,542880,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x39A5,130,576,960,480,334080,607,5500,2513,2000,617,5000,1020,5500,603,5000,617,3000,7165,3000,12395,50,2700,100,2234,10,0,0,0,0,4372,1);
+REPLACE INTO `mob_db` VALUES (1631,'CHUNG_E_','Chung E','Green Maiden',82,3901,0,1154,1481,2,272,63,69,15,66,79,36,48,79,43,10,12,1,7,44,0x3885,150,1728,816,1188,0,0,0,0,0,0,0,7053,4200,740,100,1806,10,518,500,12395,10,0,0,5042,50,0,0,0,0,4373,1);
+REPLACE INTO `mob_db` VALUES (1632,'GREMLIN','Gremlin','Gremlin',118,20313,1,4018,2318,1,848,138,76,25,141,75,48,61,126,37,10,12,2,6,47,0x191,140,432,540,432,0,0,0,0,0,0,0,7340,3000,938,3000,719,100,2406,1,1265,1,0,0,603,2,0,0,0,0,4355,1);
+REPLACE INTO `mob_db` VALUES (1633,'BEHOLDER','Beholder','Beholder',120,19280,1,4270,2463,6,823,130,50,30,96,82,65,107,132,82,10,12,0,0,44,0x91,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,0,0,0,0,603,2,0,0,0,0,4356,1);
+-- Normal advanced class mobs
+REPLACE INTO `mob_db` VALUES (1634,'SEYREN','Seyren','Seyren Windsor',142,204962,1,17751,14895,1,3505,1317,166,12,162,99,186,49,198,55,10,12,1,6,63,0x3195,170,76,384,288,0,0,0,0,0,0,0,7345,3000,13001,2,1163,10,6223,200,6471,2,6469,200,13421,200,0,0,0,0,4358,1);
+REPLACE INTO `mob_db` VALUES (1635,'EREMES','Eremes','Eremes Guile',140,220525,1,16714,13423,1,3055,1171,122,12,145,137,59,67,191,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6223,1,2514,1,1262,3,1264,30,6471,2,1284,400,0,0,0,0,4360,1);
+REPLACE INTO `mob_db` VALUES (1636,'HARWORD','Harword','Howard Alt-Eisen',142,378100,1,17055,13620,1,2762,1282,131,10,158,79,92,53,123,48,10,12,1,7,81,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6471,2,1311,400,12818,110,6469,200,2318,1,6223,10,0,0,0,0,4362,1);
+REPLACE INTO `mob_db` VALUES (1637,'MAGALETA','Magaleta','Margaretha Sorin',140,250800,1,15432,11710,1,1277,3554,108,93,126,74,71,123,149,65,10,12,1,7,66,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,1647,400,6471,2,1561,10,2327,1,603,50,6469,200,0,0,0,0,4364,1);
+REPLACE INTO `mob_db` VALUES (1638,'SHECIL','Shecil','Cecil Damon',141,200255,1,16567,13788,14,3737,1248,76,15,121,126,67,80,308,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,12014,110,2331,10,1711,100,6469,200,6471,2,1745,400,0,0,0,0,4368,1);
+REPLACE INTO `mob_db` VALUES (1639,'KATRINN','Katrinn','Kathryne Keyron',141,209780,1,13484,13452,1,1089,3123,77,333,108,78,55,144,209,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6223,1,1646,400,1620,5,6469,200,5085,1,6471,2,0,0,0,0,4366,1);
+-- MVP Slaves
+REPLACE INTO `mob_db` VALUES (1640,'G_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,2680000,1,0,0,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1641,'G_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,1230000,1,0,0,1,6083,1378,445,98,211,338,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1642,'G_HARWORD','Whitesmith Harword','MasterSmith Howard',160,3750000,1,0,0,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1643,'G_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,2800000,1,0,0,1,2499,3396,231,349,172,150,164,203,233,88,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1644,'G_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,0,0,14,4155,1550,178,135,176,258,155,132,464,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1645,'G_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,0,0,1,2097,4254,215,555,165,190,142,236,299,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0);
+-- MVP Monsters
+REPLACE INTO `mob_db` VALUES (1646,'B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,6035328,3481920,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,2321280,617,5500,6471,5000,732,2000,1132,2500,6471,10000,2412,9000,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,4357,1);
+REPLACE INTO `mob_db` VALUES (1647,'B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,5440500,3147120,1,6083,1378,445,98,211,338,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,2092500,617,5500,6471,5000,732,2000,1234,1500,1230,1500,2319,9000,1233,3500,1232,3500,6471,10000,12623,10000,0,0,0,0,4359,1);
+REPLACE INTO `mob_db` VALUES (1648,'B_HARWORD','Whitesmith Harword','MasterSmith Howard',160,6750000,1,4621500,2664000,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,1777500,617,5500,6471,5000,732,2000,1138,3500,1140,2500,6471,10000,1365,3500,12623,10000,1369,2500,1368,3500,0,0,0,0,4361,1);
+REPLACE INTO `mob_db` VALUES (1649,'B_MAGALETA','High Priest Magaleta','High Priest Margaretha',160,4800000,1,4504500,2520000,1,2499,3396,231,349,172,150,164,203,233,88,10,12,1,7,86,0x37B5,125,1152,384,288,1732500,617,5500,6471,5000,732,2000,1814,3500,2615,2500,2513,9000,12623,10000,1527,3500,1528,2500,6471,10000,0,0,0,0,4363,1);
+REPLACE INTO `mob_db` VALUES (1650,'B_SHECIL','Sniper Shecil','Sniper Cecil',160,4140000,1,5338944,3080160,14,4155,1550,178,135,176,258,155,132,464,95,10,12,1,7,84,0x37B5,100,76,384,288,2053440,617,5500,6471,5000,1723,2000,1228,3500,6471,10000,617,9000,12623,10000,1237,3500,1720,1500,1724,2500,0,0,0,0,4367,1);
+REPLACE INTO `mob_db` VALUES (1651,'B_KATRINN','High Wizard Katrinn','High Wizard Kathryne',160,4500000,1,4212000,2430000,1,2097,4254,215,555,165,190,142,236,299,93,10,12,1,7,68,0x37B5,150,1152,384,288,1620000,617,5500,6471,5000,732,2000,1241,3500,6471,10000,2616,9000,2343,2500,6471,2000,12623,10000,2319,3500,0,0,0,0,4365,1);
+-- 1'st Class Mobs
+REPLACE INTO `mob_db` VALUES (1652,'YGNIZEM','Ygnizem','Egnigem Cenia',136,40327,1,7398,5460,1,1985,328,224,8,144,92,86,69,149,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,7347,1000,1170,1,6471,2,1127,20,2313,10,1152,80,2317,1,0,0,0,0,4346,1);
+REPLACE INTO `mob_db` VALUES (1653,'WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,6622,4721,1,1414,144,114,66,114,91,69,42,128,55,10,12,1,7,65,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,2000,1223,1,2306,40,1220,10,6471,2,2620,1,13004,10,0,0,0,0,4348,1);
+REPLACE INTO `mob_db` VALUES (1654,'ARMAIA','Armaia','Armeyer Dinze',134,46878,1,6364,5908,1,1390,155,199,4,123,59,85,65,144,62,10,12,1,7,62,0x3885,120,576,432,288,0,0,0,0,0,0,0,7345,1000,2504,1,1358,50,1352,40,2311,10,6471,2,1307,10,0,0,0,0,4347,1);
+REPLACE INTO `mob_db` VALUES (1655,'EREND','Erend','Errende Ebecee',133,42764,1,6318,4545,1,937,552,106,99,77,66,90,145,131,62,10,12,1,7,46,0x3885,130,576,432,288,0,0,0,0,0,0,0,7345,500,2217,5,1514,50,1517,20,2326,5,6471,2,1523,1,0,0,0,0,4349,1);
+REPLACE INTO `mob_db` VALUES (1656,'KAVAC','Kavac','Kavach Icarus',135,43079,1,6934,5276,9,1195,129,86,48,103,109,62,50,274,48,10,12,1,7,44,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,2000,1716,1,12006,100,1708,10,2308,5,6471,2,2404,2,0,0,0,0,4351,1);
+REPLACE INTO `mob_db` VALUES (1657,'RAWREL','Rawrel','Laurell Weinder',133,40282,1,5850,5476,1,668,1032,76,180,67,79,65,162,168,57,10,12,1,7,48,0x3885,150,576,432,288,0,0,0,0,0,0,0,7347,200,1616,1,6471,2,1608,50,2322,10,2333,30,2607,1,0,0,0,0,4350,1);
+-- 1'st Class MvP (Ygnizem/Egnigem Cenia) and her mobs.
+REPLACE INTO `mob_db` VALUES (1658,'B_YGNIZEM','Ygnizem','Egnigem Cenia',141,2910088,1,1370720,1860000,1,5986,2351,373,175,188,177,165,142,278,105,10,12,1,7,43,0x37B5,100,1008,864,288,527200,617,5500,6471,5000,732,2000,1162,1000,644,5000,603,5000,1167,1000,2320,1000,6471,1000,1130,1000,0,0,0,0,4352,1);
+REPLACE INTO `mob_db` VALUES (1659,'G_WHIKEBAIN','Whikebain','Wickebine Tres',132,43191,1,0,0,1,1414,144,114,66,114,91,69,42,128,55,10,12,1,7,65,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1660,'G_ARMAIA','Armaia','Armeyer Dinze',134,46878,1,0,0,1,1390,155,199,4,123,59,85,65,144,62,10,12,1,7,62,0x3885,120,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1661,'G_EREND','Erend','Errende Ebecee',133,42764,1,0,0,1,937,552,106,99,77,66,90,145,131,62,10,12,1,7,46,0x3885,130,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1662,'G_KAVAC','Kavac','Kavach Icarus',135,43079,1,0,0,9,1195,129,86,48,103,109,62,50,274,48,10,12,1,7,44,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1663,'G_RAWREL','Rawrel','Laurell Weinder',133,40282,1,0,0,1,668,832,76,180,67,79,65,162,168,57,10,12,1,7,48,0x3885,150,1008,864,288,0,0,0,0,0,0,0,0,0,644,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Juperos
+REPLACE INTO `mob_db` VALUES (1664,'POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,840,600,9,840,100,16,30,1,40,25,20,88,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,718,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1665,'POTON_CANON_1','Photon Cannon','Photon Cannon',67,7500,0,630,800,9,735,100,24,30,1,40,30,40,95,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,726,1000,938,1000,13160,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1666,'POTON_CANON_2','Photon Cannon','Photon Cannon',64,7100,0,840,600,9,840,100,13,30,1,40,21,29,88,91,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,721,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1667,'POTON_CANON_3','Photon Cannon','Photon Cannon',65,7800,0,630,800,9,735,100,24,30,1,40,23,30,99,99,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,7126,5000,728,1000,938,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1668,'ARCHDAM','Archdam','Archdam',119,20700,1,3720,2147,3,844,119,98,15,118,64,70,65,92,25,10,12,2,7,60,0x3695,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,0,0,0,0,0,0,4371,1);
+REPLACE INTO `mob_db` VALUES (1669,'DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1144,840,45,28,15,69,40,15,76,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4370,1);
+REPLACE INTO `mob_db` VALUES (1670,'DIMIK_1','Dimik','Dimik',116,17552,1,3790,2586,7,1618,107,93,28,114,90,66,52,201,41,10,12,1,0,44,0x3885,150,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,6216,70,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1);
+REPLACE INTO `mob_db` VALUES (1671,'DIMIK_2','Dimik','Dimik',116,23840,1,3790,2586,5,982,103,76,21,118,72,62,55,153,38,10,12,1,0,41,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7353,50,999,300,7094,300,13169,10,984,10,12128,50,0,0,0,0,4370,1);
+REPLACE INTO `mob_db` VALUES (1672,'DIMIK_3','Dimik','Dimik',116,21920,1,3790,2586,5,954,95,114,24,115,64,68,50,135,35,10,12,1,0,42,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7354,50,999,300,7094,300,2656,10,984,10,12128,50,0,0,0,0,4370,1);
+REPLACE INTO `mob_db` VALUES (1673,'DIMIK_4','Dimik','Dimik',116,16940,1,3790,2586,5,1079,124,98,28,112,79,72,53,150,47,10,12,1,0,43,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7355,50,999,300,7094,300,2656,10,984,10,6216,70,0,0,0,0,4370,1);
+REPLACE INTO `mob_db` VALUES (1674,'MONEMUS','Monemus','Monemus',88,80000,1,0,0,5,2640,1000,87,25,0,1,90,24,173,45,14,12,2,0,63,0x1A4,400,1368,1344,432,0,0,0,0,0,0,0,7049,2000,953,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1675,'VENATU','Venatu','Venatu',77,12717,1,0,0,2,717,127,96,20,99,56,58,62,58,30,10,12,1,0,43,0x3885,150,504,1020,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4369,1);
+REPLACE INTO `mob_db` VALUES (1676,'VENATU_1','Venatu','Venatu',113,15900,1,3182,2036,2,1662,85,95,20,109,54,60,50,84,30,10,12,1,0,40,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7356,350,6216,100,7094,300,13157,5,985,10,12127,100,0,0,0,0,4369,1);
+REPLACE INTO `mob_db` VALUES (1677,'VENATU_2','Venatu','Venatu',113,14717,1,3428,2080,2,917,107,86,20,99,73,58,62,137,30,10,12,1,0,44,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7357,500,999,300,7094,300,13164,10,985,10,12127,100,0,0,0,0,4369,1);
+REPLACE INTO `mob_db` VALUES (1678,'VENATU_3','Venatu','Venatu',113,21040,1,3436,2082,2,977,100,104,16,103,50,62,57,97,30,10,12,1,0,42,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7358,400,999,300,7094,300,2656,10,985,10,12127,100,0,0,0,0,4369,1);
+REPLACE INTO `mob_db` VALUES (1679,'VENATU_4','Venatu','Venatu',113,21810,1,3436,2082,2,918,89,74,15,106,69,61,55,101,30,10,12,1,0,41,0x3885,150,504,1020,360,0,0,0,0,0,0,0,7317,2000,7359,300,999,300,7094,300,2656,10,985,10,6216,100,0,0,0,0,4369,1);
+REPLACE INTO `mob_db` VALUES (1680,'HILL_WIND_1','Hill Wind','Hill Wind',101,9100,1,2280,1425,3,400,67,90,37,105,69,59,35,96,25,10,12,1,2,64,0x3885,170,504,480,360,0,0,0,0,0,0,0,7115,4000,7116,3000,528,1000,510,10,0,0,0,0,0,0,0,0,0,0,4345,1);
+REPLACE INTO `mob_db` VALUES (1681,'GEMINI','Gemini-S58','Gemini-S58',135,108999,1,6071,4771,3,2178,622,89,45,115,92,81,92,141,66,10,12,1,0,21,0x39A5,200,1872,360,864,0,0,0,0,0,0,0,7005,3000,603,1000,13159,5,546,500,547,400,7479,6,12040,300,0,0,0,0,4354,1);
+REPLACE INTO `mob_db` VALUES (1682,'REMOVAL','Removal','Remover',121,32235,0,4504,2829,1,998,120,110,47,127,50,82,35,125,50,10,12,1,1,49,0x3885,250,1536,1056,1152,0,0,0,0,0,0,0,713,5000,7319,5000,5005,10,549,500,971,50,972,100,5120,6,0,0,0,0,4353,1);
+REPLACE INTO `mob_db` VALUES (1683,'G_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,840,100,16,30,1,40,25,20,88,80,10,12,1,0,43,0x3885,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1684,'G_ARCHDAM','Archdam','Archdam',119,20700,1,0,0,3,844,119,98,15,118,64,70,65,92,25,10,12,2,8,60,0x3885,180,1080,288,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1685,'APOCALIPS_H','Vesper','Vesper',128,3802000,1,3510000,2250000,3,3668,4656,402,109,177,195,165,130,255,102,10,12,2,2,46,0x37B5,180,504,912,432,100000,617,5500,603,5000,732,2000,7095,5000,7094,3000,617,1000,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1);
+REPLACE INTO `mob_db` VALUES (1686,'ORC_BABY','Orc Baby','Orc Baby',43,1122,1,315,354,1,64,11,49,3,25,1,32,20,31,35,10,12,0,7,22,0x3885,200,672,864,288,0,0,0,0,0,0,0,7126,1000,10004,100,2299,1,519,5000,7270,200,7269,100,0,0,0,0,0,0,4375,1);
+REPLACE INTO `mob_db` VALUES (1687,'GREEN_IGUANA','Green Iguana','Grove',55,2090,1,510,548,1,146,35,96,18,58,42,22,5,50,17,10,12,1,2,42,0x83,200,1152,1152,480,0,0,0,0,0,0,0,521,1500,903,1000,520,1000,511,1000,528,2000,606,10,6264,500,0,0,0,0,4377,1);
+REPLACE INTO `mob_db` VALUES (1688,'LADY_TANEE','Lady Tanee','Lady Tanee',80,360000,1,367488,261000,14,1936,925,241,104,86,108,88,121,240,71,10,12,2,3,64,0x1A4,100,576,432,360,167040,617,5500,12095,5000,732,2000,12090,5000,634,4000,12129,1000,5116,1000,985,5000,617,2000,1716,6000,0,0,0,0,4376,1);
+REPLACE INTO `mob_db` VALUES (1689,'G_BACSOJIN','Bacsojin','White Lady',97,720500,1,0,0,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1690,'G_SPRING_RABBIT','Spring Rabbit','Lunar Rabbit',12,15,1,0,0,1,0,0,160,99,1,1,1,1,1,1,10,12,1,2,20,0xC3,160,1120,552,0,0,0,0,0,0,0,0,6005,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1691,'G_KRABEN','Kraben','Kraben',70,2901,1,0,0,1,279,45,108,20,54,33,35,15,68,20,10,12,1,0,48,0x3885,100,1152,1536,576,0,0,0,0,0,0,0,521,1,521,1,521,1,521,1,521,1,521,1,521,1,0,0,0,0,0,0);
+-- Thanatos Tower (10.3)
+REPLACE INTO `mob_db` VALUES (1692,'BREEZE','Breeze','Breeze',92,6755,1,1918,1797,2,493,52,83,32,75,101,46,35,79,55,10,12,1,0,64,0x3885,100,140,384,504,0,0,0,0,0,0,0,945,500,706,10,2270,10,1733,10,604,10,2269,10,996,10,0,0,0,0,4390,1);
+REPLACE INTO `mob_db` VALUES (1693,'PLASMA_Y','Plasma','Plasma',119,20600,1,2744,2882,1,861,135,130,45,141,94,75,91,144,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1);
+REPLACE INTO `mob_db` VALUES (1694,'PLASMA_R','Plasma','Plasma',118,16789,1,4614,2661,1,1169,100,111,12,147,77,66,65,133,50,10,12,0,0,83,0x3885,150,912,1248,576,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,990,45,0,0,0,0,0,0,0,0,4389,1);
+REPLACE INTO `mob_db` VALUES (1695,'PLASMA_G','Plasma','Plasma',116,24975,1,4352,2511,1,851,112,120,3,121,60,58,62,102,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,993,40,0,0,0,0,0,0,0,0,4389,1);
+REPLACE INTO `mob_db` VALUES (1696,'PLASMA_P','Plasma','Plasma',117,18955,1,4352,2511,1,872,139,78,49,130,71,72,70,122,50,10,12,0,0,87,0x3885,350,768,1440,672,0,0,0,0,0,0,0,911,100,644,10,731,2,716,100,724,100,0,0,0,0,0,0,0,0,4389,1);
+REPLACE INTO `mob_db` VALUES (1697,'PLASMA_B','Plasma','Plasma',115,24651,1,4134,2384,1,599,70,51,18,124,74,60,55,92,50,10,12,0,0,81,0x3885,150,720,360,360,0,0,0,0,0,0,0,911,100,644,10,731,2,717,100,991,35,0,0,0,0,0,0,0,0,4389,1);
+REPLACE INTO `mob_db` VALUES (1698,'DEATHWORD','Deathword','Death Word',114,16390,1,3334,1923,1,834,125,68,40,91,64,53,88,139,54,10,12,1,0,60,0x3695,150,176,912,300,0,0,0,0,0,0,0,1097,4000,7015,300,11003,50,7449,500,2418,10,7479,2,7480,1,0,0,0,0,4388,1);
+REPLACE INTO `mob_db` VALUES (1699,'ANCIENT_MIMIC','Ancient Mimic','Ancient Mimic',112,14700,1,3182,2069,1,959,84,100,40,121,70,63,43,141,67,10,12,2,0,60,0x3885,100,168,480,360,0,0,0,0,0,0,0,603,30,617,1,644,50,2404,5,2506,1,2417,10,2610,100,0,0,0,0,4387,1);
+REPLACE INTO `mob_db` VALUES (1700,'OBSERVATION','Observation','Dame of Sentinel',127,34538,1,5556,5100,2,1400,152,98,55,99,75,52,55,178,80,10,12,1,8,80,0x33B5,100,432,480,360,0,0,0,0,0,0,0,7441,500,2621,1,7442,100,728,1000,12040,100,2210,10,7435,100,0,0,0,0,4392,1);
+REPLACE INTO `mob_db` VALUES (1701,'SHELTER','Shelter','Mistress of Shelter',125,27000,1,5212,5050,2,1067,944,80,89,99,66,41,153,133,89,10,12,1,8,66,0x33B5,160,432,420,360,0,0,0,0,0,0,0,7440,200,7442,1,12040,50,722,1000,7005,1000,7442,50,0,0,0,0,0,0,4393,1);
+REPLACE INTO `mob_db` VALUES (1702,'RETRIBUTION','Retribution','Baroness of Retribution',121,22152,1,4986,4462,2,1117,804,61,35,112,60,45,127,149,70,10,12,1,8,67,0x33B5,120,360,480,360,0,0,0,0,0,0,0,7440,400,2621,1,12040,50,723,1000,2506,5,1158,10,7442,50,0,0,0,0,4391,1);
+REPLACE INTO `mob_db` VALUES (1703,'SOLACE','Solace','Lady Solace',123,24729,1,4884,4818,2,1234,165,96,96,106,65,61,42,125,72,10,12,1,8,66,0x33B5,180,576,420,360,0,0,0,0,0,0,0,7441,200,2621,1,12040,50,718,1000,1910,50,1909,100,7442,50,0,0,0,0,4394,1);
+REPLACE INTO `mob_db` VALUES (1704,'THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,5148,3666,9,1061,144,120,30,106,78,71,54,181,31,10,12,2,1,88,0x37B5,100,432,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7438,10000,616,10,2520,1000,0,0,0,0,0,0,4396,1);
+REPLACE INTO `mob_db` VALUES (1705,'THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,5148,3666,2,1032,171,95,69,111,96,66,65,127,52,10,12,2,1,88,0x37B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7439,10000,616,10,2419,1000,0,0,0,0,0,0,4397,1);
+REPLACE INTO `mob_db` VALUES (1706,'THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,5148,3666,2,1058,245,96,90,97,111,70,133,115,67,10,12,1,1,88,0x37B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7437,10000,616,10,2354,1000,0,0,0,0,0,0,4395,1);
+REPLACE INTO `mob_db` VALUES (1707,'THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,5148,3666,2,980,201,71,80,91,72,59,96,109,79,10,12,0,1,88,0x37B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,7436,10000,616,10,5128,1000,0,0,0,0,0,0,4398,1);
+REPLACE INTO `mob_db` VALUES (1708,'THANATOS','Thanatos','Memory of Thanatos',99,1445660,1,1559280,1930554,3,4956,1671,364,35,100,129,30,86,247,32,10,12,2,6,88,0x37B5,120,115,816,504,649700,617,5500,603,5000,732,2000,7444,1000,2519,1000,7450,5000,2342,5000,2412,5000,2515,1000,2655,500,0,0,0,0,4399,1);
+REPLACE INTO `mob_db` VALUES (1709,'G_THA_ODIUM','Thanatos Odium','Odium of Thanatos',129,40200,1,0,0,9,1061,144,120,30,106,78,71,54,181,31,10,12,2,1,88,0x33B5,100,115,288,420,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1710,'G_THA_DESPERO','Thanatos Despero','Despero of Thanatos',129,41111,1,0,0,2,1032,171,95,69,111,96,66,65,127,52,10,12,2,1,88,0x33B5,150,160,528,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1711,'G_THA_MAERO','Thanatos Maero','Maero of Thanatos',129,42599,1,0,0,2,1058,245,96,90,97,111,70,133,115,67,10,12,1,1,88,0x33B5,150,160,480,360,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1712,'G_THA_DOLOR','Thanatos Dolor','Dolor of Thanatos',129,45000,1,0,0,2,980,201,71,80,91,72,59,96,109,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Abyss Lake
+REPLACE INTO `mob_db` VALUES (1713,'ACIDUS','Acidus','Acidus',130,48430,1,6176,3988,2,871,695,101,90,109,78,50,55,108,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,2890,10,7448,800,1269,10,2114,50,0,0,0,0,4378,1);
+REPLACE INTO `mob_db` VALUES (1714,'FERUS','Ferus','Ferus',126,25668,1,5180,2989,2,969,115,96,45,94,80,55,60,109,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,2891,10,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1);
+REPLACE INTO `mob_db` VALUES (1715,'NOVUS','Novus','Novus',90,6670,1,1436,1505,1,427,57,95,48,74,56,57,25,108,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1);
+REPLACE INTO `mob_db` VALUES (1716,'ACIDUS_','Acidus','Acidus',130,40718,1,5876,3389,2,1484,158,98,47,106,110,61,53,133,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,2890,10,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1);
+REPLACE INTO `mob_db` VALUES (1717,'FERUS_','Ferus','Ferus',126,39054,1,5440,2989,2,906,122,111,33,91,57,57,61,87,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,2891,10,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1);
+REPLACE INTO `mob_db` VALUES (1718,'NOVUS_','Novus','Novus',84,5028,1,1188,1215,1,293,48,88,28,53,43,43,55,108,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1);
+REPLACE INTO `mob_db` VALUES (1719,'DETALE','Detale','Detardeurus',135,6005000,1,5616000,3420000,3,6108,2662,364,166,165,153,171,136,278,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1);
+REPLACE INTO `mob_db` VALUES (1720,'HYDRO','Hydro','Hydrolancer',121,41500,0,8170,4463,3,1064,150,92,58,120,72,67,66,123,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1);
+REPLACE INTO `mob_db` VALUES (1721,'DRAGON_EGG','Dragon Egg','Dragon Egg',119,20990,1,3720,2147,0,704,150,172,85,84,59,85,40,165,65,10,12,1,9,40,0x0,1000,24,0,0,0,0,0,0,0,0,0,985,5,7032,100,731,10,732,5,718,10,720,10,728,10,0,0,0,0,4385,1);
+REPLACE INTO `mob_db` VALUES (1722,'EVENT_JAKK','Jakk','Halloween Jakk',99,10310,0,112,90,1,150,67,8,11,1,28,18,13,42,45,10,12,1,0,43,0x81,240,1180,480,648,0,0,0,0,0,0,0,7225,1000,1062,1000,535,1000,0,0,0,0,0,0,0,0,5134,10000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1723,'A_SHECIL','Shecil Damon','Cecil Damon',82,30000,0,0,0,14,660,300,40,15,1,145,27,32,161,80,10,12,1,7,64,0x3695,180,1008,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1724,'A_POTON_CANON','Photon Cannon','Photon Cannon',66,8000,0,0,0,9,1000,300,16,30,1,40,25,20,80,80,10,12,1,0,40,0x84,300,1536,960,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1725,'R_PORING','Poring','Poring',1,50,0,0,0,1,7,3,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,150,1872,672,480,0,0,0,0,0,0,0,7049,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1726,'R_LUNATIC','Lunatic','Lunatic',3,60,0,0,0,1,9,3,0,20,1,3,3,10,8,60,10,12,0,2,60,0x83,150,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1727,'R_SAVAGE_BABE','Savage Babe','Savage Babe',7,182,0,0,0,1,20,5,0,0,1,7,14,5,12,35,10,12,0,2,22,0x83,150,1624,624,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1728,'R_DESERT_WOLF_B','Desert Wolf Baby','Baby Desert Wolf',14,140,1,0,0,1,33,8,13,0,10,12,8,5,28,7,10,12,0,2,23,0x83,150,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1729,'R_BAPHOMET_','Baphomet Jr.','Baphomet Jr.',50,8578,0,0,0,1,487,103,24,25,1,75,55,1,93,45,10,12,0,6,27,0x183,150,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1730,'R_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,73,62,30,61,17,30,35,52,5,10,12,0,6,27,0x183,150,980,600,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1731,'G_DOPPELGANGER','Doppelganger','Outrageous Doppelganger',77,380000,1,0,0,1,1803,1176,246,86,122,122,105,67,203,72,10,12,2,8,48,0x37B5,190,480,480,288,0,0,0,0,0,0,0,7484,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1732,'G_TREASURE_BOX','Treasure Chest','New Year Treasure Chest',98,500,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7486,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Kiel Dungeon (10.4)
+REPLACE INTO `mob_db` VALUES (1733,'KIEL','Kiel','Kiel',90,523500,1,36134,21065,3,2220,1629,45,32,100,112,76,89,187,102,10,12,1,0,47,0x37B5,140,1152,576,432,0,0,0,0,0,0,0,7513,0,7513,0,7513,0,7513,0,7513,0,7513,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1734,'KIEL_','Kiel D-01','Kiel D-01',125,2502000,1,2340000,1440000,3,4112,3580,314,232,166,187,155,141,279,180,10,12,1,0,47,0x37B5,130,1152,576,432,900000,617,5500,603,5000,616,2000,7513,3000,617,3000,2651,1000,2319,1000,1618,500,1242,500,2650,1000,0,0,0,0,4403,1);
+REPLACE INTO `mob_db` VALUES (1735,'ALICEL','Alicel','Alicel',115,18000,1,3334,1961,2,952,398,109,30,121,53,59,63,102,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7512,2000,7507,3000,2148,5,6214,200,1270,5,985,10,2517,20,0,0,0,0,4401,1);
+REPLACE INTO `mob_db` VALUES (1736,'ALIOT','Aliot','Aliot',112,15669,1,3182,1918,2,1051,89,106,15,111,56,55,42,107,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7512,2000,7507,3000,2516,10,6214,200,1810,10,985,10,13405,15,0,0,0,0,4402,1);
+REPLACE INTO `mob_db` VALUES (1737,'ALIZA','Aliza','Aliza',112,14450,1,2448,1836,1,840,397,98,5,115,50,51,62,88,54,10,12,1,7,60,0x91,220,1440,576,600,0,0,0,0,0,0,0,7054,4000,2518,10,2626,10,7047,5,12128,50,661,1,2123,5,0,0,0,0,4400,1);
+REPLACE INTO `mob_db` VALUES (1738,'CONSTANT','Constant','Constant',108,12050,0,3006,1879,1,858,144,92,82,126,98,62,57,109,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,7512,100,7507,1500,7325,10,999,10,757,10,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1739,'G_ALICEL','Alicel','Alicel',115,18000,1,0,0,2,952,398,109,30,121,53,59,63,102,60,10,12,1,6,60,0x318D,250,1080,480,504,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1740,'G_ALIOT','Aliot','Aliot',112,15669,1,0,0,2,1051,89,106,15,111,56,55,42,107,75,10,12,1,6,60,0x318D,200,1296,432,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1741,'G_COOKIE_XMAS','Christmas Cookie','Christmas Cookie',37,733,1,0,0,1,70,35,48,36,21,16,30,20,25,5,10,12,0,7,46,0x3885,400,1248,1248,240,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1742,'G_CARAT','Carat','Carat',103,9222,1,0,0,1,777,76,111,67,102,64,60,40,80,50,10,12,1,6,44,0x3985,200,1078,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1743,'G_MYSTCASE','Myst Case','Myst Case',39,879,1,0,0,1,68,21,50,11,26,19,40,35,31,25,10,12,1,0,60,0x3885,400,1248,1248,432,0,0,0,0,0,0,0,6453,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1744,'G_WILD_ROSE','Wild Rose','Wild Rose',70,2682,1,0,0,1,147,45,75,15,44,87,31,35,69,80,10,12,0,2,24,0x3885,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1745,'G_CONSTANT','Constant','Constant',108,2000,0,0,0,1,728,144,92,82,126,98,62,57,109,34,10,12,0,6,67,0x2185,110,720,360,360,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1746,'G_ALIZA','Aliza','Aliza',112,14450,1,0,0,1,840,397,98,5,115,50,51,62,88,54,10,12,1,7,60,0x3885,220,1440,576,600,0,0,0,0,0,0,0,7507,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1747,'G_SNAKE','Snake','Boa',18,217,1,0,0,1,29,5,9,8,10,8,18,10,14,15,10,12,1,2,22,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1748,'G_ANACONDAQ','Anacondaq','Anacondaq',100,8510,1,0,0,1,504,55,92,0,79,46,28,43,67,25,10,12,1,2,25,0x3885,200,1576,576,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1749,'G_MEDUSA','Medusa','Medusa',102,10045,1,0,0,1,620,113,87,66,99,68,65,79,83,15,10,12,1,6,40,0x3985,180,1720,1320,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1750,'G_RED_PLANT','Red Plant','Red Plant',1,100,1,0,0,1,100,100,160,99,0,0,0,0,0,100,7,12,0,3,22,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Odin's Temple
+REPLACE INTO `mob_db` VALUES (1751,'RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',141,3205000,1,2600000,2200000,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,6000,2357,600,2524,2000,2421,2000,2229,6000,7024,3000,0,0,0,0,0,0,4407,1);
+REPLACE INTO `mob_db` VALUES (1752,'SKOGUL','Skogul','Skogul',126,34240,1,5904,5210,2,1007,456,72,15,100,71,63,85,115,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,2884,10,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1);
+REPLACE INTO `mob_db` VALUES (1753,'FRUS','Frus','Frus',128,39520,1,5930,5420,2,1494,169,65,35,114,77,66,51,111,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,2884,10,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1);
+REPLACE INTO `mob_db` VALUES (1754,'SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,7218,4419,1,1100,325,85,92,91,89,65,118,147,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1);
+REPLACE INTO `mob_db` VALUES (1755,'SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,7214,4411,1,1151,218,80,86,91,86,67,116,153,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1);
+REPLACE INTO `mob_db` VALUES (1756,'G_HYDRO','Hydro','Hydrolancer',121,41500,0,0,0,3,1064,150,92,95,120,72,67,66,123,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1757,'G_ACIDUS','Acidus','Acidus',130,48430,1,0,0,2,871,695,101,47,109,78,50,55,108,55,10,12,2,9,46,0x3885,170,168,1008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1758,'G_FERUS','Ferus','Ferus',126,25668,1,0,0,2,969,115,96,45,94,80,55,60,109,50,10,12,2,9,43,0x3885,100,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1759,'G_ACIDUS_','Acidus','Acidus',130,40718,1,0,0,2,1484,158,98,90,106,110,61,53,133,53,10,12,2,9,44,0x3885,180,168,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1760,'G_FERUS_','Ferus','Ferus',126,39054,1,0,0,2,906,122,111,33,91,57,57,61,87,51,10,12,2,9,42,0x3885,120,108,576,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1761,'G_SKOGUL','Skogul','Skogul',126,34240,1,0,0,2,1007,456,72,15,100,71,63,85,115,37,10,12,1,6,67,0x3985,170,720,384,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1762,'G_FRUS','Frus','Frus',128,39520,1,0,0,2,1494,169,65,35,114,77,66,51,111,27,10,12,1,6,67,0x3985,130,480,576,432,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1763,'G_SKEGGIOLD','Skeggiold','Skeggiold',131,53290,1,0,0,1,1100,325,85,92,91,89,65,118,147,75,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1764,'G_SKEGGIOLD_','Skeggiold','Skeggiold',131,52280,1,0,0,1,1151,218,80,86,91,86,67,116,153,71,10,12,0,8,46,0x39A5,200,672,780,480,0,0,0,0,0,0,0,7511,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1765,'G_RANDGRIS','Valkyrie','Valkyrie',141,1005000,1,13000,10000,3,6343,3206,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,160,617,40,2115,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1766,'EM_ANGELING','Angeling','Angeling',99,128430,0,0,0,1,78,11,64,50,1,17,80,80,151,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1767,'EM_DEVILING','Deviling','Deviling',99,128430,0,0,0,1,78,11,64,50,1,17,80,80,151,20,10,12,0,8,66,0x4B5,300,1288,288,384,0,909,5000,909,5000,741,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Rachel / Ice Dungeon (11.1)
+REPLACE INTO `mob_db` VALUES (1768,'GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2808000,1800000,3,6592,2785,479,262,191,223,187,155,362,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1);
+REPLACE INTO `mob_db` VALUES (1769,'AGAV','Agav','Agav',128,40000,1,5112,2949,1,892,181,77,82,85,66,55,113,120,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1);
+REPLACE INTO `mob_db` VALUES (1770,'ECHIO','Echio','Echio',126,31620,1,4796,2768,1,848,159,66,11,111,63,51,37,132,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1);
+REPLACE INTO `mob_db` VALUES (1771,'VANBERK','Vanberk','Vanberk',123,24605,1,4212,2430,1,918,141,100,6,109,70,55,60,122,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,2883,10,0,0,0,0,4411,1);
+REPLACE INTO `mob_db` VALUES (1772,'ISILLA','Isilla','Isilla',124,26324,1,4492,2592,1,848,168,69,19,90,65,43,82,127,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,2883,10,0,0,0,0,4412,1);
+REPLACE INTO `mob_db` VALUES (1773,'HODREMLIN','Hodremlin','Hodremlin',122,23182,1,4884,2819,1,955,154,75,25,106,70,77,60,83,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1);
+REPLACE INTO `mob_db` VALUES (1774,'SEEKER','Seeker','Seeker',124,24500,1,5212,3006,6,855,120,64,30,91,90,35,75,176,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1);
+REPLACE INTO `mob_db` VALUES (1775,'SNOWIER','Snowier','Snowier',103,13934,1,2332,1458,2,763,82,121,47,91,61,67,45,83,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1);
+REPLACE INTO `mob_db` VALUES (1776,'SIROMA','Siroma','Siroma',98,11910,1,1827,1369,1,506,100,64,38,83,43,50,70,96,60,10,12,0,0,61,0x83,180,432,648,240,0,0,0,0,0,0,0,7561,500,7066,1500,510,10,7066,0,7066,0,7066,0,991,20,0,0,0,0,4416,1);
+REPLACE INTO `mob_db` VALUES (1777,'ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,3268,2644,1,1088,98,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,985,30,6253,500,995,100,0,0,0,0,4417,1);
+REPLACE INTO `mob_db` VALUES (1778,'GAZETI','Gazeti','Gazeti',106,14000,1,2430,1518,10,775,68,71,21,105,37,42,38,116,38,10,12,1,6,21,0x3395,190,576,370,270,0,0,0,0,0,0,0,7561,3000,7066,3000,985,20,1731,1,6253,100,6256,500,0,0,0,0,0,0,4418,1);
+REPLACE INTO `mob_db` VALUES (1779,'KTULLANUX','Ktullanux','Ktullanux',98,2626000,1,1242690,949942,3,3754,2680,129,78,85,126,30,125,212,112,10,12,2,2,81,0x37B5,400,432,840,216,517788,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,0,0,0,0,0,0,4419,1);
+REPLACE INTO `mob_db` VALUES (1780,'MUSCIPULAR','Muscipular','Muscipular',105,12550,1,2332,1458,3,521,76,114,43,100,60,58,37,72,47,10,12,1,3,22,0x84,2000,672,648,360,0,0,0,0,0,0,0,7565,3000,1032,3000,629,2,1033,2000,905,1000,631,3,6217,400,0,0,0,0,4420,1);
+REPLACE INTO `mob_db` VALUES (1781,'DROSERA','Drosera','Drosera',101,10878,1,1620,1013,7,218,54,86,52,79,32,64,38,94,14,10,12,1,3,22,0x84,2000,864,576,336,0,0,0,0,0,0,0,7565,3000,6259,100,1032,2000,1033,2000,621,3,905,1000,6217,200,0,0,0,0,4421,1);
+REPLACE INTO `mob_db` VALUES (1782,'ROWEEN','Roween','Roween',95,7385,1,2028,1902,1,588,35,73,33,70,82,55,45,108,25,10,12,1,2,24,0x108B,200,1500,500,1000,0,0,0,0,0,0,0,7564,3000,919,3000,992,50,1822,2,0,0,0,0,0,0,0,0,0,0,4422,1);
+REPLACE INTO `mob_db` VALUES (1783,'GALION','Galion','Galion',100,8821,1,2122,1327,1,527,77,100,62,106,79,62,45,108,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,7564,3000,919,3000,996,10,2531,5,0,0,0,0,0,0,0,0,0,0,4423,1);
+REPLACE INTO `mob_db` VALUES (1784,'STAPO','Stapo','Stapo',95,8805,1,1888,1772,1,573,51,129,36,20,46,25,35,64,30,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,0,0,0,0,0,0,4424,1);
+REPLACE INTO `mob_db` VALUES (1785,'ATROCE','Atroce','Atroce',113,1502000,1,1404000,855000,2,2843,1503,316,176,121,165,135,99,213,113,10,12,2,2,67,0x37B5,150,576,600,240,540000,607,5500,617,5000,617,5000,7563,7000,608,1000,2621,1000,617,5000,607,5000,5123,100,1175,100,0,0,0,0,4425,1);
+REPLACE INTO `mob_db` VALUES (1786,'G_AGAV','Agav','Agav',128,40000,1,0,0,1,892,181,77,82,85,66,55,113,92,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,1,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1787,'G_ECHIO','Echio','Echio',126,31620,1,0,0,1,848,159,66,11,111,63,51,37,132,45,10,12,1,7,40,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,1,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,7567,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1788,'G_ICE_TITAN','Ice Titan','Ice Titan',110,20820,1,0,0,1,1088,98,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3295,250,861,660,144,0,0,0,0,0,0,0,7561,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1789,'ICEICLE','Iceicle','Iceicle',100,1012,1,196,122,3,553,1,2,15,99,1,1,1,194,1,10,12,0,0,41,0x84,2000,1344,0,0,0,0,0,0,0,0,0,7066,1000,7066,1000,6257,500,7066,500,7066,500,7066,500,7066,500,7066,500,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1790,'G_RAFFLESIA','Rafflesia','Rafflesia',86,5819,1,0,0,3,325,41,86,2,47,41,44,29,78,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,7577,3000,7575,4000,7576,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1791,'G_GALION','Galion','Galion',100,8821,1,0,0,1,527,77,100,62,106,79,62,45,108,36,10,12,1,2,44,0x11AB,150,864,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1792,'SOCCER_BALL','Soccer Ball','Soccer Ball',1,10,0,0,0,0,0,0,128,99,0,0,0,0,0,0,0,0,0,0,20,0x40,2000,96,96,96,0,0,0,0,0,0,0,18503,5000,18503,3000,12326,3000,603,1000,0,0,0,0,0,0,617,1000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1793,'G_MEGALITH','Megalith','Megalith',65,2451,1,0,0,9,122,30,66,18,57,14,35,10,99,3,10,12,2,0,80,0x3695,200,1332,1332,672,0,0,0,0,0,0,0,757,0,757,0,757,0,757,0,757,0,757,0,757,0,757,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1794,'G_ROWEEN','Roween','Roween',95,7385,1,0,0,1,228,35,73,33,70,82,55,45,88,25,10,12,1,2,24,0x3295,200,412,840,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1795,'BLOODY_KNIGHT_','Bloody Knight','Bloody Knight',116,68500,1,0,0,3,1319,123,122,50,132,59,70,57,137,45,10,12,2,8,28,0x37B5,250,828,528,192,0,0,0,0,0,0,0,1417,100,2412,100,2514,200,2342,300,2513,200,1620,200,617,7000,7578,10000,0,0,0,0);
+-- WoE SE Guild Dungeon
+REPLACE INTO `mob_db` VALUES (1796,'AUNOE','Aunoe','Aunoe',110,13050,0,2322,1454,1,840,81,107,42,118,63,62,77,84,35,10,12,1,7,80,0x3295,250,768,432,360,0,0,0,0,0,0,0,7568,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,2545,5,0,0,0,0,4464,1);
+REPLACE INTO `mob_db` VALUES (1797,'FANAT','Fanat','Fanat',120,21000,1,3954,2282,1,839,106,81,64,102,66,70,47,111,57,10,12,1,7,80,0x3885,250,768,432,360,0,0,0,0,0,0,0,2388,10,2422,2,7563,4000,2109,1,12183,50,7568,2500,0,0,0,0,0,0,4465,1);
+-- Additional Event Monsters
+REPLACE INTO `mob_db` VALUES (1798,'TREASURE_BOX_','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x40,0,0,0,0,0,0,0,0,0,0,0,7582,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1799,'B_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',99,1647590,0,5222448,1412973,1,9409,3802,72,37,120,110,81,65,156,52,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1800,'B_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',99,1411230,0,4410072,1433142,1,5446,4100,37,39,90,181,62,37,146,60,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1801,'B_HARWORD_','Whitesmith Harword','Master Smith Howard',99,1460000,0,4322526,1278900,1,10169,429,66,36,100,73,112,35,163,60,10,12,1,7,82,0x37B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1802,'B_MAGALETA_','High Priest Magaleta','High Priest Margaretha',99,1092910,0,4597560,1186920,1,6094,892,35,78,1,84,64,182,110,100,10,12,1,7,86,0x37B5,125,1152,384,288,9000,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1803,'B_SHECIL_','Sniper Shecil','Sniper Cecil',99,1349000,0,4420440,1373400,14,6360,4221,22,35,1,180,39,67,232,130,10,12,1,7,84,0x33B5,100,76,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1804,'B_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',99,1069920,0,4328856,1473030,1,1556,3197,10,88,1,89,42,223,154,93,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,7583,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1805,'G_SEYREN_','Lord Knight Seyren','Lord Knight Seyren',10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1806,'G_EREMES_','Assassin Cross Eremes','Assassin Cross Eremes',10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1807,'G_HARWORD_','Whitesmith Harword','MasterSmith Howard',10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,81,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1808,'G_MAGALETA_','High Priest Magaleta','High Priest Margaretha',10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,86,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1809,'G_SHECIL_','Sniper Shecil','Sniper Cecil',10,10,1,1,1,14,1,1,1,1,1,1,1,1,1,1,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1810,'G_KATRINN_','High Wizard Katrinn','High Wizard Kathryne',10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,10,12,1,7,68,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,12564,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1811,'G_SMOKIE_','Smokie','Bandit',18,641,1,0,0,1,61,11,0,10,1,18,36,25,26,35,10,12,0,2,22,0x91,200,1576,576,420,0,0,0,0,0,0,0,2201,100,7267,500,606,1000,536,2000,7299,500,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1812,'EVENT_LUDE','Lude','Delightful Lude',10,20,1,0,0,2,13,8,1,0,1,1,1,50,100,100,10,12,0,1,29,0x40,150,890,960,480,0,0,0,0,0,0,0,558,10000,561,6000,529,16000,530,16000,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1813,'EVENT_HYDRO','Hydro','Hydrolancer',99,1880000,0,4320000,1800000,3,19500,32767,96,55,1,142,200,250,227,32,10,12,2,8,28,0x37B5,100,972,672,432,0,617,5500,603,5000,617,5500,7607,10000,13001,500,5002,500,1417,500,12080,1500,7444,5500,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1814,'EVENT_MOON','Moonlight Flower','Fox Queen',80,30000,0,29700,27000,1,550,300,80,50,1,35,45,112,83,93,10,12,1,2,63,0x37B5,150,1276,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1815,'EVENT_RICECAKE','Rice Cake','Hot Ricecake',12,777,1,7,7,1,7,7,0,99,7,7,7,17,17,7,10,12,1,0,20,0x40,250,1320,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1816,'EVENT_GOURD','Gourd','Gourd',12,1000,0,0,0,1,1,1,160,99,1,1,1,1,1,1,0,0,1,0,20,0x40,2000,96,96,96,0,632,5000,632,5000,632,5000,512,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1817,'EVENT_DETALE','Detale','Detardeurus',99,8880000,0,4860000,2250000,3,42597,32767,104,65,1,142,200,250,227,50,10,12,2,8,48,0x37B5,100,972,936,360,0,12103,5500,617,5000,617,5500,7701,10000,1724,500,1473,500,1265,500,12080,1500,12100,1500,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1818,'EVENT_ALARM','Alarm','Imperfect Alarm',58,10647,0,0,0,0,1,1,24,15,1,62,72,10,85,45,10,12,1,0,60,0x3695,1000,1020,500,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7703,7000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1819,'EVENT_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,252,96,61,41,66,38,40,55,67,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1820,'EVENT_BIGFOOT','Bigfoot','Bigfoot',29,587,1,0,0,1,50,12,55,7,18,4,7,0,12,0,10,12,2,2,22,0x91,300,1260,192,192,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1821,'EVENT_DESERT_WOLF','Desert Wolf','Desert Wolf',103,9447,1,0,0,1,676,59,114,47,93,69,63,61,98,42,10,12,1,2,23,0x308D,200,1120,420,288,0,0,0,0,0,0,0,7850,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1822,'EVENT_DEVIRUCHI','Deviruchi','Deviruchi',64,2300,1,0,0,1,210,73,62,30,61,17,30,35,52,5,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1823,'EVENT_FREEZER','Freezer','Freezer',94,9990,1,0,0,2,244,50,68,38,68,47,50,45,59,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1824,'EVENT_GARM_BABY','Garm Baby','Baby Hatii',94,10016,1,0,0,1,238,61,62,43,69,61,55,61,64,45,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1825,'EVENT_GOBLINE_XMAS','Christmas Goblin','Santa Goblin',25,1176,0,0,0,1,118,22,16,5,1,53,25,20,38,45,10,12,1,7,24,0x3695,100,1120,620,240,0,0,0,0,0,0,0,7850,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1826,'EVENT_MYST','Myst','Myst',39,879,1,0,0,1,68,21,50,11,26,19,40,35,31,25,10,12,2,0,25,0x3695,200,1576,576,384,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1827,'EVENT_SASQUATCH','Sasquatch','Sasquatch',30,3163,0,0,0,1,250,30,8,0,75,25,60,10,34,20,10,12,2,2,60,0x3695,300,1260,192,192,0,0,0,0,0,0,0,7850,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1828,'EVENT_GULLINBURSTI','Gullinbrusti','Gullinbursti',20,20,0,0,0,1,59,13,160,99,1,14,14,0,19,15,10,12,2,2,42,0x3695,150,1960,960,384,0,0,0,0,0,0,0,7303,6000,570,9000,571,8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Thor Volcano (11.2)
+REPLACE INTO `mob_db` VALUES (1829,'SWORD_GUARDIAN','Sword Guardian','Sword Master',133,70000,0,5850,3375,2,1127,129,122,62,122,87,54,65,155,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,7069,3000,1370,30,1163,50,1168,1,2122,10,1176,50,6223,100,0,0,0,0,4427,1);
+REPLACE INTO `mob_db` VALUES (1830,'BOW_GUARDIAN','Bow Guardian','Bow Master',132,63000,0,5710,3294,12,1149,120,127,62,109,80,65,52,183,55,14,16,2,7,80,0x37B5,170,76,384,288,0,0,0,0,0,0,0,7069,3000,1723,30,1701,50,2367,20,2701,4,0,0,6223,100,0,0,0,0,4428,1);
+REPLACE INTO `mob_db` VALUES (1831,'SALAMANDER','Salamander','Salamander',138,80390,1,7694,7139,2,2299,600,141,68,189,105,92,85,198,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,7097,3000,994,30,6223,20,2680,1,1920,50,2621,1,2364,20,0,0,0,0,4429,1);
+REPLACE INTO `mob_db` VALUES (1832,'IFRIT','Ifrit','Ifrit',146,6935000,1,8704800,4860000,3,8063,3389,436,218,180,201,156,190,299,77,10,12,2,0,83,0x37B5,130,212,384,360,3348000,617,5500,6223,5000,616,2000,994,12000,2677,3000,2678,100,2679,100,1471,2400,1133,2000,2345,200,0,0,0,0,4430,1);
+REPLACE INTO `mob_db` VALUES (1833,'KASA','Kasa','Kasa',135,70128,1,7278,7709,2,1506,305,104,70,111,74,65,78,162,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,7097,3000,7122,2500,994,30,2680,1,2344,10,1730,10,1626,10,0,0,0,0,4431,1);
+REPLACE INTO `mob_db` VALUES (1834,'G_SALAMANDER','Salamander','Salamander',138,80390,1,0,0,2,2299,600,141,68,189,105,92,85,198,72,10,12,2,0,63,0x37B5,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1835,'G_KASA','Kasa','Kasa',135,70128,1,0,0,2,1506,305,104,70,111,74,65,78,162,55,10,12,2,0,63,0x37B5,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1836,'MAGMARING','Magmaring','Magmaring',110,13079,1,3042,1903,1,881,44,190,45,107,33,35,47,73,20,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4432,1);
+REPLACE INTO `mob_db` VALUES (1837,'IMP','Imp','Imp',129,36830,1,5972,3445,1,1239,406,56,75,66,83,65,88,101,27,10,12,0,6,63,0x3395,150,824,432,360,0,0,0,0,0,0,0,7122,3000,13303,100,7098,2500,1376,10,1972,25,12374,1,6223,1,0,0,0,0,4433,1);
+REPLACE INTO `mob_db` VALUES (1838,'KNOCKER','Knocker','Knocker',126,43900,1,4796,3768,1,886,103,126,62,93,62,58,56,139,70,10,12,0,6,22,0x191,200,1548,384,288,0,0,0,0,0,0,0,997,30,1003,150,1040,5500,2286,1,6223,10,2124,3,1732,5,0,0,0,0,4434,1);
+REPLACE INTO `mob_db` VALUES (1839,'BYORGUE','Byorgue','Byrogue',135,92544,1,10042,5543,2,1190,141,120,13,114,86,70,65,122,70,14,16,1,7,20,0x37B5,170,800,600,360,0,0,0,0,0,0,0,1270,50,5096,3,13027,150,12087,100,603,40,2530,1,7110,4365,0,0,0,0,4426,1);
+-- Additional Event Monsters
+REPLACE INTO `mob_db` VALUES (1840,'GOLDEN_SAVAGE','Golden Savage','Golden Savage',99,500,1,1,1,1,650,200,160,99,0,1,1,50,144,1,10,12,2,2,42,0xF1,150,1960,480,384,0,0,0,0,0,0,0,610,3000,7444,100,616,5,969,500,714,100,5159,1,12238,3000,12239,3000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1841,'G_SNAKE_','Snake Lord\'s Minion','Snake Lord\'s Minion',15,10,1,1,1,1,46,9,160,99,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1842,'G_ANACONDAQ_','Snake Lord\'s Minion','Snake Lord\'s Minion',23,15,1,1,1,1,124,33,160,99,1,46,28,10,51,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7915,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1843,'G_SIDE_WINDER_','Snake Lord\'s Minion','Snake Lord\'s Minion',43,18,1,1,1,1,240,80,160,99,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,7915,1000,7916,1000,12715,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1844,'G_ISIS_','Snake Lord\'s Minion','Snake Lord\'s Minion',47,25,1,1,1,1,423,84,160,99,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,7915,1000,7916,1000,7915,1000,7916,1000,12715,500,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1845,'G_TREASURE_BOX_','Treasure Box','Treasure Chest',98,500,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7720,10000,7720,10000,7720,10000,7721,10000,12245,2500,7720,5000,12245,2500,12245,2500,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1846,'DREAMMETAL','Dream Metal','Dream Metal',90,1499,0,1,1,1,1,1,100,99,1,1,1,1,1,1,10,12,0,0,26,0x120,300,1288,288,384,0,0,0,0,0,0,0,7858,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1848,'EVENT_BAPHOMET','Baphomet','Baphomet',50,10000,0,900,900,3,1500,1500,16,10,1,60,15,15,160,30,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1849,'EVENT_OSIRIS','Osiris','Osiris',60,125000,0,1800,1800,1,3500,1500,32,20,1,60,25,25,160,30,10,12,1,1,89,0x37B5,100,1072,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1850,'EVENT_ORCHERO','Orc Hero','Orc Hero',50,175000,0,2700,2700,1,4000,1500,40,45,1,60,35,80,160,30,10,12,2,7,82,0x37B5,150,1678,780,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1851,'EVENT_MOBSTER','Mobster','Mobster',61,7991,1,0,0,1,910,218,66,37,76,46,20,35,76,55,10,12,1,7,20,0x3695,250,1100,560,580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1852,'G_EM_ANGELING','Angeling','Angeling',99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1853,'G_EM_DEVILING','Deviling','Deviling',99,120,1,0,0,1,60,71,160,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1854,'E_MUKA','Muka','Muka',17,610,0,246,108,1,40,49,8,5,15,15,30,5,20,10,10,12,2,3,22,0x83,300,1960,960,384,0,0,0,0,0,0,0,993,70,952,9000,713,2000,7742,400,507,1000,1451,50,1002,250,0,0,0,0,4036,1);
@@ -964,435 +963,434 @@ REPLACE INTO `mob_db` VALUES (1859,'E_MANDRAGORA','Mandragora','Mandragora',12,4
REPLACE INTO `mob_db` VALUES (1860,'E_COCO','Coco','Coco',17,817,0,108,70,1,56,67,0,0,24,17,34,20,24,10,10,12,0,2,22,0x91,150,1864,864,1008,0,0,0,0,0,0,0,1026,9000,2502,20,914,3000,919,2500,516,500,2402,25,7748,600,0,0,0,0,4041,1);
REPLACE INTO `mob_db` VALUES (1861,'E_CHOCO','Choco','Choco',43,4278,0,1139,1139,1,315,402,8,5,65,68,55,45,65,25,10,12,0,2,23,0x3095,200,1500,500,1000,0,0,0,0,0,0,0,7011,5335,942,7000,985,53,513,5000,634,20,7749,1000,607,25,0,0,0,0,4285,1);
REPLACE INTO `mob_db` VALUES (1862,'E_MARTIN','Martin','Martin',18,1109,0,121,77,1,52,63,0,5,12,18,30,15,15,5,10,12,0,2,42,0x81,300,1480,480,480,0,0,0,0,0,0,0,1017,9000,7750,500,1251,10,2225,5,5009,1,10010,10,2224,15,0,0,0,0,4046,1);
-REPLACE INTO `mob_db` VALUES (1863,'E_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Cursed Abbey (11.3)
-REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1);
-REPLACE INTO `mob_db` VALUES (1865,'RAGGED_ZOMBIE','Ragged Zombie','Ragged Zombie',123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1);
-REPLACE INTO `mob_db` VALUES (1866,'HELL_POODLE','Hell Poodle','Hellhound',115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1);
-REPLACE INTO `mob_db` VALUES (1867,'BANSHEE','Banshee','Banshee',130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1);
-REPLACE INTO `mob_db` VALUES (1868,'G_BANSHEE','Banshee','Banshee',130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1869,'FLAME_SKULL','Flame Skull','Flame Skull',121,21276,1,2332,2890,1,767,902,93,40,111,90,60,70,99,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1);
-REPLACE INTO `mob_db` VALUES (1870,'NECROMANCER','Necromancer','Necromancer',133,91304,1,5580,4185,1,706,1112,84,73,108,54,77,116,91,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1);
-REPLACE INTO `mob_db` VALUES (1871,'FALLINGBISHOP','Fallen Bishop','Falling Bishop',138,5655000,1,2700000,1890000,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,617,5000,617,5000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1);
-REPLACE INTO `mob_db` VALUES (1872,'BEELZEBUB_FLY','Hell Fly','Hell Fly',127,502000,1,0,0,1,643,795,98,55,99,90,52,55,89,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1873,'BEELZEBUB','Beelzebub','Beelzebub',147,6805000,1,0,0,1,3500,5600,288,265,155,235,200,225,204,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1874,'BEELZEBUB_','Beelzebub','Beelzebub',147,4805000,1,7050000,7050000,2,4200,8150,418,265,178,236,200,250,218,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,607,5500,617,5000,617,5000,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,0,0,0,0,0,0,4145,1);
-REPLACE INTO `mob_db` VALUES (1875,'TRISTAN_3RD','Tristan III','Tristan III',80,43000,0,1,1,2,1366,1626,25,30,5,10,10,69,70,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1876,'E_LORD_OF_DEATH','Lord of the Dead','Lord of the Dead',99,99000000,0,118209,39011,3,3430,4232,75,73,120,120,120,169,150,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1863,'E_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,0,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Cursed Abbey (11.3)
+REPLACE INTO `mob_db` VALUES (1864,'ZOMBIE_SLAUGHTER','Zombie Slaughter','Zombie Slaughter',124,40440,1,4138,2702,1,1190,117,100,45,117,58,82,13,136,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,2886,10,0,0,0,0,4435,1);
+REPLACE INTO `mob_db` VALUES (1865,'RAGGED_ZOMBIE','Ragged Zombie','Ragged Zombie',123,38574,1,3814,3087,9,1334,130,85,35,81,50,64,56,178,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,2887,100,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1);
+REPLACE INTO `mob_db` VALUES (1866,'HELL_POODLE','Hell Poodle','Hellhound',115,17168,1,3334,1923,1,899,145,86,20,114,56,59,82,108,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1);
+REPLACE INTO `mob_db` VALUES (1867,'BANSHEE','Banshee','Banshee',130,48666,1,5876,3500,1,1014,703,73,96,97,71,55,143,137,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4438,1);
+REPLACE INTO `mob_db` VALUES (1868,'G_BANSHEE','Banshee','Banshee',130,48666,1,0,0,1,1014,703,73,96,97,71,55,143,137,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1869,'FLAME_SKULL','Flame Skull','Flame Skull',121,21276,1,2332,2890,1,1074,135,93,40,111,90,60,70,139,65,10,12,0,6,68,0x3195,150,972,648,432,0,0,0,0,0,0,0,7005,5000,2425,20,13170,20,958,6000,0,0,0,0,0,0,0,0,0,0,4439,1);
+REPLACE INTO `mob_db` VALUES (1870,'NECROMANCER','Necromancer','Necromancer',133,91304,1,5980,5980,1,1359,1006,84,73,108,54,77,116,137,30,10,12,1,1,89,0x37B5,150,1816,1320,420,0,0,0,0,0,0,0,7752,3000,1624,20,932,4500,2532,10,717,100,609,100,7117,1500,0,0,0,0,4440,1);
+REPLACE INTO `mob_db` VALUES (1871,'FALLINGBISHOP','Fallen Bishop','Falling Bishop',138,5655000,1,3510000,1890000,1,4290,4636,274,382,186,165,95,226,273,86,10,12,1,6,47,0x37B5,150,432,432,360,1350000,607,5500,608,3500,732,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,1614,2000,6223,500,0,0,0,0,4441,1);
+REPLACE INTO `mob_db` VALUES (1872,'BEELZEBUB_FLY','Hell Fly','Hell Fly',127,502000,1,0,0,1,900,152,98,55,99,90,52,55,125,80,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1873,'BEELZEBUB','Beelzebub','Beelzebub',147,6805000,1,0,0,1,5250,2100,288,265,155,235,200,225,306,66,10,12,0,6,88,0x37B5,100,100,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1874,'BEELZEBUB_','Beelzebub','Beelzebub',147,4805000,1,9165000,7050000,2,6666,4444,418,265,178,236,200,250,327,66,10,12,2,6,88,0x37B5,100,212,504,432,3525000,617,5500,607,5000,12030,5500,7754,9000,2423,2000,1565,2000,2000,2000,2702,2000,6223,1000,607,2750,0,0,0,0,4145,1);
+REPLACE INTO `mob_db` VALUES (1875,'TRISTAN_3RD','Tristan III','Tristan III',80,43000,0,1,1,2,1503,260,25,30,5,10,10,69,84,1,10,12,1,1,89,0x3695,175,1816,1152,360,0,0,0,0,0,0,0,7754,9000,938,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1876,'E_LORD_OF_DEATH','Lord of the Dead','Lord of the Dead',99,99000000,0,141850,39011,3,4459,802,75,73,120,120,120,169,180,106,10,12,2,6,67,0x37B5,180,1446,1296,360,59104,5022,10000,608,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1877,'CRYSTAL_5','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,7863,10,644,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Shining Plant',1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Eclipse Pet','Eclipse',6,1800,0,0,0,1,20,26,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Moscovia
-REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Wood Goblin',81,5499,1,1106,1245,1,193,208,144,12,73,19,56,15,56,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1881,'LES','Les','Les',82,6216,1,1205,1356,1,270,300,123,30,63,20,35,25,52,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1882,'VAVAYAGA','Baba Yaga','Baba-Yaga',87,6498,1,1188,1337,2,282,353,63,60,69,45,30,60,51,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzhas','Uzhas',85,7140,1,1294,1455,1,271,306,49,8,69,14,41,30,55,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Mavka','Mavka',84,5421,1,1253,1530,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gopinich','Gopinich',97,1120500,1,714240,580320,3,1988,3849,355,121,127,102,143,102,152,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Mavka','Mavka',84,5421,1,0,0,7,263,323,98,58,65,31,50,35,81,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
-REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',94,9990,1,0,0,2,388,438,68,38,68,47,50,45,49,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1888,'GARM_BABY_R','Garm Baby','Baby Hatii',61,15199,0,90,90,1,680,1580,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1889,'GARM_R','Marozka\'s Guard','Marozka\'s Guard',73,100000,0,900,900,3,900,2200,20,23,85,126,10,50,95,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1890,'GOPINICH_R','The Immortal Koshei','The Immortal Koshei',85,299321,0,900,900,3,1868,6124,20,42,50,65,55,50,152,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1891,'G_RANDGRIS_','Valkyrie','Valkyrie',99,1567200,1,0,0,3,5560,9980,40,42,100,120,80,120,220,210,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1878,'E_SHINING_PLANT','Shining Plant','Mystic Plant',1,100,0,0,0,1,1,1,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,1,1,1,0,0,0,0,0,0,0,7864,3000,906,1500,511,500,507,2000,508,1500,914,500,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1879,'ECLIPSE_P','Eclipse Pet','Eclipse Pet',6,1800,0,0,0,1,20,6,0,40,1,36,6,0,11,80,10,12,1,2,60,0x37B5,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Moscovia
+REPLACE INTO `mob_db` VALUES (1880,'WOOD_GOBLIN','Wood Goblin','Leshij',81,5499,1,1216,1245,1,212,15,144,12,73,19,56,15,67,25,10,12,1,3,62,0x81,320,2304,840,360,0,0,0,0,0,0,0,2719,5,7203,4000,7201,2000,907,2000,916,500,7032,500,574,50,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1881,'LES','Les','Lesavka',82,6216,1,1326,1356,1,297,30,123,30,63,20,35,25,62,30,10,12,1,3,82,0x1089,230,1728,720,576,0,0,0,0,0,0,0,7100,2000,511,1000,711,1000,905,2500,2270,1,521,500,510,50,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1882,'VAVAYAGA','Baba Yaga','Baba-Yaga',87,6498,1,1306,1337,2,310,71,63,60,69,45,30,60,61,35,10,12,1,7,21,0x3885,270,1536,600,420,0,0,0,0,0,0,0,7099,1000,7762,5000,1630,10,7226,150,539,1500,519,1500,580,1500,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1883,'UZHAS','Uzhas','Kikimora',85,7140,1,1422,1455,1,298,35,49,8,69,14,41,30,66,20,10,12,1,7,61,0x3885,200,576,672,384,0,0,0,0,0,0,0,520,900,1573,5,621,100,522,100,918,3500,579,1500,603,3,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1884,'MAVKA','Mavka','Mavka',84,5421,1,1378,1530,7,289,60,98,58,65,31,50,35,97,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,1572,5,629,300,707,300,710,50,747,1500,748,300,510,3000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1885,'GOPINICH','Gopinich','Gopinch',97,1120500,1,857088,580320,3,2584,1861,355,121,127,102,143,102,182,76,10,12,2,2,62,0x37B5,150,1536,864,432,357120,607,5500,617,5000,617,5000,617,4000,2621,200,12080,1000,1737,100,1417,5,7444,5000,5007,1,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1886,'G_MAVKA','Mavka','Mavka',84,5421,1,0,0,7,289,60,98,58,65,31,50,35,97,30,10,12,1,3,62,0x3885,170,1536,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (1887,'FREEZER_R','Freezer','Freezer',94,9990,1,0,0,2,604,50,68,38,68,47,50,45,59,25,10,12,1,2,41,0x3695,250,1452,483,528,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1888,'GARM_BABY_R','Hatii Baby','Hatii Baby',61,15199,0,90,90,1,680,900,24,13,45,30,36,55,85,30,10,12,1,2,41,0x3885,450,879,672,576,0,0,0,0,0,0,0,0,0,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1889,'GARM_R','Marozka\'s Guard','Marozka\'s Guard',73,100000,0,990,900,3,990,1300,20,23,85,126,10,50,114,60,10,12,2,2,81,0x37B5,400,608,408,336,0,0,0,0,0,0,0,7053,2000,7066,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1890,'GOPINICH_R','Koschei the Immortal','Koschei the Immortal',85,599321,0,990,900,3,2055,4256,20,42,50,65,55,50,182,35,10,12,2,2,62,0x3295,150,1536,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1891,'G_RANDGRIS_','Valkyrie','Valkyrie',141,1005000,1,0,0,3,6343,3206,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,0,0,0,0,0,0,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,7510,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1892,'G_LOLI_RURI','Lolo Ruri','Lolo Ruri',109,15280,1,0,0,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1893,'G_KNIGHT_OF_ABYSS','Knight of the Abyss','Abysmal Knight',122,23297,1,0,0,1,810,1002,102,50,121,55,68,70,97,37,10,12,2,7,87,0x3695,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1894,'POURING','Pouring','Pouring',15,777,1,7,7,1,7,14,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6296,9000,6296,100,6296,100,909,3000,909,2000,909,2000,909,2000,0,0,0,0,909,2000);
+REPLACE INTO `mob_db` VALUES (1894,'POURING','Pouring','Pouring',15,777,1,7,7,1,7,7,0,7,7,7,7,17,17,7,0,0,0,3,61,0x11AB,300,1672,672,480,0,0,0,0,0,0,0,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,6451,10000,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1895,'EVENT_SEYREN','Seyren','Seyren Windsor',91,88902,0,0,0,1,2100,2530,63,12,90,89,72,20,99,25,10,12,1,6,63,0x3295,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1896,'EVENT_KATRINN','Katrinn','Kathryne Keyron',92,47780,0,0,0,1,497,1697,10,74,1,5,77,180,110,39,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1897,'EVENT_BAPHOMET_','Baphomet','Baphomet',81,668000,0,0,0,2,3220,4040,35,45,1,152,30,85,120,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1898,'EVENT_ZOMBIE','Zombie','Zombie',12,434,0,0,0,1,67,79,0,10,1,1,1,1,1,1,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,7884,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# WoE Second Edition; Battlegrounds
-REPLACE INTO `mob_db` VALUES (1899,'SWORD_GUARDIAN_','Sword Guardian','Sword Guardian',133,70000,0,0,0,2,451,580,122,33,122,87,54,65,103,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,1,0,0,12,1840,2520,64,62,95,80,33,90,165,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1901,'E_CONDOR','Condor','Condor',10,15,0,90,90,1,13,20,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1081,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Box',99,49,0,0,0,0,0,0,100,0,0,0,0,0,999,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1904,'BOMBPORING','Bomb Poring','Bomb Poring',28,1000000,1,415,256,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,600500,1,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1906,'BARRICADE_','Barricade','Barricade',98,600,1,0,0,1,0,0,160,99,1,17,1,80,126,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1908,'S_EMPEL_2','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,2,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1909,'OBJ_A','Food Storage','Food Storage',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Food Depot','Food Depot',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Neutrality Flag','Neutrality Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,650,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,750,1,0,0,0,1,2,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Dimentional Gorge (12.1)
-REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',151,7000000,1,0,0,2,3560,6200,400,65,165,182,180,225,180,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',151,5000000,1,4050000,3042000,2,3020,5900,425,65,165,185,200,245,180,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',132,63900,1,4392,3294,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1919,'MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',132,64922,1,5094,3821,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1920,'MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',133,94800,1,5220,3780,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1921,'MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',134,77389,1,4608,4056,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',132,63900,1,0,0,1,1267,1412,199,35,126,91,63,61,76,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',132,64922,1,0,0,1,1083,1242,92,5,121,86,71,65,75,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',133,94800,1,0,0,2,812,1175,111,37,102,59,55,82,98,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',134,77389,1,0,0,1,823,1422,109,54,114,88,62,97,109,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# God Item Creation (WoE SE); Catacombs
-REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Jakk',1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12396,1000,6298,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',1,1000,0,0,0,1,1,2,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12397,1000,6299,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,10,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1929,'BAPHOMET_I','Great Demon Baphomet','Unsealed Baphomet',98,4520500,1,4068000,2268000,2,4200,6500,190,45,140,152,5,85,200,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1);
-REPLACE INTO `mob_db` VALUES (1930,'PIAMETTE','Piamette','Piamette',90,3000500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1931,'WISH_MAIDEN','Wish Maiden','Wish Maiden',98,3567700,1,0,0,3,6500,9800,40,42,100,120,30,120,220,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1932,'GARDEN_KEEPER','Garden Keeper','Garden Keeper',80,100,1,0,0,1,1,2,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1933,'GARDEN_WATCHER','Garden Watcher','Garden Watcher',81,300000,1,0,0,1,1666,2609,88,55,30,57,56,126,128,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1934,'BLUE_FLOWER','Blue Flower','Blue Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1935,'RED_FLOWER','Red Flower','Red Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1936,'YELL_FLOWER','Yellow Flower','Yellow Flower',98,10500,1,0,0,0,1,2,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1937,'CONSTANT_','Constant','Constant',108,11000,0,0,0,1,660,804,92,82,126,98,62,57,91,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1938,'TREASURE_BOX41','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,80,658,500,12999,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1939,'TREASURE_BOX42','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,80,658,500,12999,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1940,'TREASURE_BOX43','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,80,658,500,12999,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1941,'TREASURE_BOX44','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,80,658,500,12999,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1942,'TREASURE_BOX45','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,80,658,500,12999,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1943,'TREASURE_BOX46','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,80,658,500,12999,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1944,'TREASURE_BOX47','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,80,658,500,12999,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1945,'TREASURE_BOX48','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,80,658,500,12999,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1946,'TREASURE_BOX49','Treasure Chest','Treasure Chest',99,0,0,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,80,658,500,12999,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1947,'PIAMETTE_','Piamette','Piamette',90,500500,1,0,0,2,1500,2700,56,35,1,66,5,99,120,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1948,'G_YGNIZEM','Ygnizem','Egnigem Cenia',136,44327,1,0,0,1,790,1018,124,8,144,92,86,69,99,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Battlegrounds Guardians
-REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN','Camp Guardian','Camp Guardian',86,457599,1,0,0,2,7590,9140,96,33,110,40,5,65,125,65,14,16,2,7,80,0x2085,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN','Camp Guardian','Camp Guardian',80,241212,1,0,0,12,1840,2520,64,62,95,80,5,90,165,55,14,16,2,7,80,0x2085,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Ravies Sister's 'Valyrie's Gift' monsters.
-REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,0,0,0,0,607,200);
-REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,0,0,0,0,608,250);
-REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,0,0,0,0,604,300);
-REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,0,0,0,0,603,100);
-# ?
-REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',1,1,1,0,0,0,0,0,0,0,0,0,0,0,999,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12281,9000,12281,2000,12281,1000,721,2000,723,2000,727,2000,732,100,0,0,0,0,719,2000);
-# Endless Tower
-REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,5000000,1,3600000,1800000,2,5400,8600,410,40,190,60,80,220,264,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1);
-REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,2400500,1,1430000,1215000,12,4400,8000,171,66,90,70,40,160,190,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1);
-REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,1,0,0,12,4040,4720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,1,0,0,12,2040,2720,71,66,1,35,33,180,125,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
-REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',10,15,1,0,0,1,13,20,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2156,894,1,460,1050,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- WoE Second Edition; Battlegrounds
+REPLACE INTO `mob_db` VALUES (1899,'SWORD_GUARDIAN_','Sword Guardian','Sword Guardian',133,70000,0,0,0,2,677,129,122,33,122,87,54,65,155,65,14,16,2,7,80,0x20A5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1900,'BOW_GUARDIAN_','Archer Guardian','Archer Guardian',80,80404,1,0,0,12,2024,680,64,62,95,80,33,90,198,55,14,16,2,7,80,0x20A5,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1901,'E_CONDOR','Condor','Condor',10,15,0,90,90,1,13,7,10,15,1,1,1,50,100,100,10,12,0,2,26,0x1081,150,1148,648,480,0,0,0,0,0,0,0,7973,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1902,'E_TREASURE1','Treasure Box','Treasure Chest',99,49,0,0,0,0,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7782,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1903,'E_TREASURE2','Treasure Box','Treasure Chest',99,49,0,0,0,0,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,7783,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1904,'BOMBPORING','Bomb Poring','Bombring',28,1000000,1,415,256,1,120,200,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1905,'BARRICADE','Barricade','Barricade',98,600500,1,0,0,1,0,0,0,0,1,17,1,80,151,20,10,12,2,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1906,'BARRICADE_','Barricade','Barricade',98,600,1,0,0,1,0,0,160,99,1,17,1,80,151,20,10,12,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1907,'S_EMPEL_1','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,1,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1908,'S_EMPEL_2','Guardian Stone','Guardian Stone',90,120500,1,0,0,0,1,1,64,50,1,1,1,1,1,1,0,0,0,0,20,0x120,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1909,'OBJ_A','Food Storage','Food Storage',90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1910,'OBJ_B','Food Depot','Food Depot',90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1911,'OBJ_NEUTRAL','Neutrality Flag','Neutrality Flag',90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1912,'OBJ_FLAG_A','Lion Flag','Lion Flag',90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1913,'OBJ_FLAG_B','Eagle Flag','Eagle Flag',90,650,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1914,'OBJ_A2','Blue Crystal','Blue Crystal',90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1915,'OBJ_B2','Pink Crystal','Pink Crystal',90,750,1,0,0,0,1,1,160,99,1,1,1,1,1,1,0,0,2,0,20,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Dimentional Gorge (12.1)
+REPLACE INTO `mob_db` VALUES (1916,'MOROCC','Satan Morroc','Satan Morroc',151,7000000,1,0,0,2,5340,2640,400,65,165,182,180,225,270,89,10,12,2,6,87,0x37B5,100,312,624,432,0,0,0,0,0,0,0,5808,1500,2374,7000,2375,7000,2433,7000,7799,9000,7798,9000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1917,'MOROCC_','Wounded Morroc','Wounded Morroc',151,5000000,1,5265000,3042000,2,4530,2880,425,65,165,185,200,245,270,89,10,12,2,6,87,0x37B5,100,312,624,432,2025000,607,5500,617,5000,617,5000,5808,1000,2374,5000,2375,5000,2433,5000,7799,9000,7798,9000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1918,'MOROCC_1','Incarnation of Morroc','Incarnation of Morroc',132,63900,1,5710,3294,1,1901,145,199,35,126,91,63,61,114,37,10,12,2,8,27,0x37B5,110,576,480,432,0,0,0,0,0,0,0,2111,10,7799,1000,7798,3000,985,160,7054,4850,2537,3,1541,20,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1919,'MOROCC_2','Incarnation of Morroc','Incarnation of Morroc',132,64922,1,6622,3821,1,1625,159,92,5,121,86,71,65,113,44,10,12,1,6,67,0x37B5,150,576,648,300,0,0,0,0,0,0,0,2536,3,7799,1000,7798,3000,984,160,7053,3500,2130,15,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1920,'MOROCC_3','Incarnation of Morroc','Incarnation of Morroc',133,94800,1,6786,3780,2,1218,363,111,37,102,59,55,82,147,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,2508,10,7799,1000,7798,3000,985,160,7054,4850,2728,3,1182,15,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1921,'MOROCC_4','Incarnation of Morroc','Incarnation of Morroc',134,77389,1,5990,4056,1,1235,599,109,54,114,88,62,97,164,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,2729,5,7799,1000,7798,3000,984,160,7053,3500,2129,20,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1922,'G_MOROCC_1','Incarnation of Morroc','Shadow of Morroc',132,63900,1,0,0,1,1901,145,199,35,126,91,63,61,114,37,10,12,2,8,27,0x37B5,110,312,480,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1923,'G_MOROCC_2','Incarnation of Morroc','Shadow of Morroc',132,64922,1,0,0,1,1625,159,92,5,121,86,71,65,113,44,10,12,1,6,67,0x37B5,150,312,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1924,'G_MOROCC_3','Incarnation of Morroc','Shadow of Morroc',133,94800,1,0,0,2,1218,363,111,37,102,59,55,82,147,54,10,12,1,6,69,0x37B5,150,212,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1925,'G_MOROCC_4','Incarnation of Morroc','Shadow of Morroc',134,77389,1,0,0,1,1235,599,109,54,114,88,62,97,164,43,10,12,1,6,68,0x37B5,150,1536,648,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- God Item Creation (WoE SE); Catacombs
+REPLACE INTO `mob_db` VALUES (1926,'JAKK_H','Jakk','Shameless Jakk',1,1000,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,12192,2000,535,10000,6298,5000,12192,1000,535,5000,12130,1000,11550,1000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1927,'WHISPER_H','Whisper','Whisper',1,1000,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,0,6,68,0x3195,150,1960,960,504,0,0,0,0,0,0,0,12192,2000,6299,5000,535,10000,12130,2000,11550,1000,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1928,'DEVIRUCHI_H','Deviruchi','Deviruchi',46,500,0,0,0,1,5,5,10,25,1,69,40,55,70,30,10,12,0,6,27,0x3795,150,980,600,384,0,0,0,0,0,0,0,1038,3000,1039,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1929,'BAPHOMET_I','Great Demon Baphomet','Unsealed Baphomet',98,4520500,1,4881600,2268000,2,5460,2300,190,45,140,152,5,85,240,95,10,12,2,6,67,0x37B5,100,768,768,576,0,0,0,0,0,0,0,6004,500,2514,7000,1181,5000,2655,100,2513,7000,2327,7000,1466,9000,0,0,0,0,4147,1);
+REPLACE INTO `mob_db` VALUES (1930,'PIAMETTE','Piamette','Piamette',90,3000500,1,0,0,2,1650,1200,56,35,1,66,5,99,144,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1931,'WISH_MAIDEN','Wish Maiden','Wish Maiden',98,3567700,1,0,0,3,8450,3300,40,42,100,120,30,120,264,210,10,12,2,8,28,0x37B5,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1932,'GARDEN_KEEPER','Garden Keeper','Garden Keeper',80,100,1,0,0,1,1,1,160,99,1,1,1,1,1,1,10,12,0,0,42,0xE1,100,768,768,576,0,0,0,0,0,0,0,7839,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1933,'GARDEN_WATCHER','Garden Watcher','Garden Watcher',81,300000,1,0,0,1,1833,943,88,55,30,57,56,126,154,114,10,12,1,8,80,0x37B5,100,432,480,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1934,'BLUE_FLOWER','Blue Flower','Blue Flower',98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1935,'RED_FLOWER','Red Flower','Red Flower',98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1936,'YELL_FLOWER','Yellow Flower','Yellow Flower',98,10500,1,0,0,0,1,1,160,99,1,1,1,1,1,1,10,12,1,3,22,0x60,100,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1937,'CONSTANT_','Constant','Constant',108,11000,0,0,0,1,858,144,92,82,126,98,62,57,109,34,10,12,0,0,67,0x3885,150,720,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1938,'TREASURE_BOX41','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7830,10,658,500,604,10000,984,4850,985,7275,2514,40,1625,150,1268,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1939,'TREASURE_BOX42','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7831,10,658,500,604,10000,984,4850,985,7275,2513,40,1375,150,1269,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1940,'TREASURE_BOX43','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7832,10,658,500,604,10000,984,4850,985,7275,13027,150,1376,150,1271,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1941,'TREASURE_BOX44','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7833,10,658,500,604,10000,984,4850,985,7275,13404,150,1730,150,2001,50,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1942,'TREASURE_BOX45','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7834,10,658,500,604,10000,984,4850,985,7275,1176,150,1734,150,1819,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1943,'TREASURE_BOX46','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7835,10,658,500,604,10000,984,4850,985,7275,1421,150,1731,150,1822,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1944,'TREASURE_BOX47','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7836,10,658,500,604,10000,984,4850,985,7275,1478,150,1732,150,2531,50,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1945,'TREASURE_BOX48','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7837,10,658,500,604,10000,984,4850,985,7275,1624,150,1733,150,1821,150,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1946,'TREASURE_BOX49','Treasure Chest','Treasure Chest',99,0,1,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,0,0,0,20,0x120,0,0,0,0,0,0,0,0,0,0,0,7838,10,658,500,604,10000,984,4850,985,7275,1626,150,1270,150,2532,50,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1947,'PIAMETTE_','Piamette','Piamette',90,500500,1,0,0,2,1650,1200,56,35,1,66,5,99,144,15,10,12,0,7,20,0x37B5,100,432,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1948,'G_YGNIZEM','Ygnizem','Ygnizem',136,40327,1,0,0,1,1985,328,224,8,144,92,86,69,149,68,10,12,1,7,43,0x3885,145,576,432,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Battlegrounds Guardians
+REPLACE INTO `mob_db` VALUES (1949,'B_S_GUARDIAN','Camp Guardian','Camp Guardian',86,457599,1,0,0,2,8349,1550,96,33,110,40,5,65,150,65,14,16,2,7,80,0x2085,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1950,'B_B_GUARDIAN','Camp Guardian','Camp Guardian',80,241212,1,0,0,12,2024,680,64,62,95,80,5,90,198,55,14,16,2,7,80,0x2085,170,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Ravies Sister's 'Valyrie's Gift' monsters.
+REPLACE INTO `mob_db` VALUES (1951,'CRYSTAL_6','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,665,4900,0,0,532,6500,558,5000,607,200,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1952,'CRYSTAL_7','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,667,4900,0,0,531,6500,558,5000,608,250,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1953,'CRYSTAL_8','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,664,4900,0,0,534,6500,558,5000,604,300,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1954,'CRYSTAL_9','Crystal','Crystal',1,15,1,0,0,0,0,0,160,99,1,1,1,1,999,1,0,0,0,0,20,0x161,190,0,0,0,0,0,0,0,0,0,0,539,3800,530,4500,561,5000,666,4900,0,0,533,6500,558,5000,603,100,0,0,0,0);
+-- ?
+REPLACE INTO `mob_db` VALUES (1955,'TREASURE_BOX_I','Treasure Chest','Treasure Chest',1,40,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x83,0,0,0,0,0,0,0,0,0,0,0,12396,1000,12397,1000,6424,1000,909,5000,538,1000,530,1000,0,0,0,0,0,0,0,0);
+-- Endless Tower
+REPLACE INTO `mob_db` VALUES (1956,'NAGHT_SIEGER','Naght Sieger','Naght Sieger',99,5000000,1,4320000,1800000,2,7020,3200,410,40,190,60,80,220,317,30,16,16,2,6,88,0x37B5,100,76,432,504,0,0,0,0,0,0,0,13412,9000,13413,9000,2542,9000,5017,9000,616,9000,2514,9000,7294,9000,0,0,0,0,4457,1);
+REPLACE INTO `mob_db` VALUES (1957,'ENTWEIHEN','Entweihen Crothen','Entweihen Crothen',90,2400500,1,1573000,1215000,12,4840,3600,171,66,90,70,40,160,228,30,14,16,1,6,87,0x1A4,0,140,540,576,0,0,0,0,0,0,0,1636,9000,1631,9000,2513,9000,1624,9000,616,9000,1618,9000,7291,9000,0,0,0,0,4451,1);
+REPLACE INTO `mob_db` VALUES (1958,'G_ENTWEIHEN_R','Thorny Skeleton','Thorny Skeleton',89,5400000,1,0,0,12,4444,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,432,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1959,'G_ENTWEIHEN_H','Thorn of Recovery','Thorn of Recovery',89,350000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,88,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1960,'G_ENTWEIHEN_M','Thorn of Magic','Thorn of Magic',89,5400000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,1024,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1961,'G_ENTWEIHEN_S','Thorn of Purification','Thorn of Purification',89,5400000,1,0,0,12,2244,680,71,66,1,35,33,180,150,30,14,16,0,6,87,0x1A4,0,2864,288,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (1962,'ANTONIO_','Christmas Thief','Christmas Thief',10,15,1,0,0,1,13,7,160,99,1,1,1,50,100,100,10,12,1,7,20,0x83,100,720,720,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1963,'P_CHUNG_E','New Year Doll','New Year Doll',49,23900,0,2156,894,1,460,590,8,15,38,65,43,30,90,15,10,12,1,7,40,0x3695,170,1728,816,1188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (1964,'NIGHTMARE_T','Nightmare','Nightmare',30,2000,0,461,348,1,100,200,0,40,1,100,1,1,100,1,10,12,2,2,68,0x120,150,1816,816,432,0,0,0,0,0,0,0,505,2000,510,3000,7913,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1965,'M_WILD_ROSE','Wild Rose','Wild Rose',38,4000,50,0,0,1,100,145,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1966,'M_DOPPELGANGER','Doppelganger','Doppelganger',72,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1967,'M_YGNIZEM','Ygnizem','Egnigem Cenia',79,7800,200,0,0,1,200,250,30,20,0,38,30,35,65,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1968,'E_STROUF','Strouf','Strouf',48,11990,0,5544,3776,1,200,1250,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1);
-REPLACE INTO `mob_db` VALUES (1969,'E_MARC','Marc','Marc',36,6900,0,1778,1125,1,220,280,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1);
-REPLACE INTO `mob_db` VALUES (1970,'E_OBEAUNE','Obeune','Obeune',31,3952,0,1159,733,1,141,165,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1);
-REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',19,1017,0,243,153,1,74,85,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1);
-REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',21,2087,0,392,252,1,84,106,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1);
-REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,909,7000,938,400,512,1000,713,1500,12303,3000,0,0,0,0,0,0,0,0,0,0);
-# WoE SE Guild Dungeon
-REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',118,20320,0,3402,2556,2,599,897,87,94,121,58,48,122,60,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,0,0,0,0,0,0,4450,1);
-REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder Master',106,10135,0,2430,1845,6,471,559,73,62,103,67,42,69,69,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1);
-REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',113,15800,0,2700,2070,1,645,737,113,44,110,55,65,57,95,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1);
-REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Metaling',107,11500,0,2610,1980,1,672,784,134,65,105,63,86,58,56,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1);
-REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Vesper',121,22100,0,3348,3020,2,780,902,155,43,135,62,80,48,89,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1);
-REPLACE INTO `mob_db` VALUES (1979,'ZAKUDAM','Zukadam','Zakudam',115,17200,0,2880,2160,3,650,780,106,92,122,66,70,61,66,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1);
-REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,633600,0,90000,90000,1,1180,1400,22,10,85,81,25,40,55,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,0,0,0,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0);
-# Orc Dungeon Instance
-REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Safeguard Chief',81,44193,1,0,0,1,489,639,101,45,75,16,40,31,69,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Sniper',78,54835,1,0,0,9,460,503,67,31,55,32,24,30,125,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Depraved Orc Spirit',87,80087,0,0,0,1,496,759,23,30,1,31,41,93,67,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Shaman Cargalache',80,50058,0,0,0,1,423,812,56,10,60,35,52,18,79,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Another World (13.1)
-REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',37,45000,0,0,0,1,305,360,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',128,33336,1,3762,3092,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1);
-REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',125,24992,1,3201,2711,2,601,713,143,25,133,71,69,39,86,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1);
-REPLACE INTO `mob_db` VALUES (1988,'NEPENTHES','Nepenthes','Nepenthes',114,15099,1,2599,1793,7,602,727,25,5,94,32,41,39,150,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1);
-REPLACE INTO `mob_db` VALUES (1989,'HILLSRION','Hillslion','Hillthrion',123,21422,1,2909,1698,1,450,552,83,11,110,69,72,41,102,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7054,4850,7938,1000,0,0,0,0,4453,1);
-REPLACE INTO `mob_db` VALUES (1990,'HARDROCK_MOMMOTH','Hardrock Mammoth','Hardrock Mammoth',137,1900944,1,142293,81178,2,1552,2326,449,43,191,66,102,49,131,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1);
-REPLACE INTO `mob_db` VALUES (1991,'TENDRILRION','Tendrillion','Tendrillion',126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1);
-REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1);
-REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1);
-REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1);
-REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1);
-# REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','Bacsojin','White Lady',97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',123,21422,1,0,0,1,450,552,83,15,110,69,72,41,102,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',118,20667,1,2930,2003,2,521,609,98,17,103,62,66,27,77,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1);
-# Additional Monsters
-# REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Game Master',50,7000,250,0,0,1,25,25,10,10,44,121,1,60,75,110,10,12,1,7,20,0x120,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Spring Rabbit','Spring Rabbit',50,8000,0,3584,1589,1,585,813,47,21,45,61,5,15,77,90,10,12,1,2,42,0x120,160,1120,552,511,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','White Lady','White Lady',97,720500,1,0,0,2,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Evil Nymph','Evil Nymph',63,16029,0,0,0,2,399,1090,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,700,0,30,1,30,5,73,90,30,10,12,0,0,81,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,700,0,30,1,30,5,54,90,30,10,12,0,0,87,0x120,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,700,0,30,1,30,5,56,90,30,10,12,0,0,83,0x120,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',82,4000000,0,90000,90000,3,8000,10000,40,40,60,110,200,250,166,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',82,2000000,0,90000,90000,1,16000,20000,40,40,60,110,200,250,166,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',66,500000,0,9,9,1,1200,3200,25,15,65,50,20,20,85,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Ghoul','Ghoul',40,99999,0,979,560,1,420,500,100,20,1,20,29,0,45,20,10,12,1,1,49,0x120,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Zombie','Zombie',15,99999,0,45,30,1,67,79,100,10,1,8,7,0,15,0,10,12,1,1,29,0x120,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Enter The Unknown (13.2)
-REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',114,20099,1,1995,1205,1,556,666,56,3,21,58,47,34,71,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1);
-REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',101,100000,1,2000,1500,0,1,2,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1);
-REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',113,17002,1,2101,2419,1,251,640,59,35,89,55,55,95,66,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1);
-REPLACE INTO `mob_db` VALUES (2016,'AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',121,33209,1,4155,4155,1,616,1066,23,8,95,61,25,25,86,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,0,0,2787,10,0,0,0,0,0,0,0,0,4443,1);
-REPLACE INTO `mob_db` VALUES (2017,'RATA','Rata','Rata',131,58299,1,7787,6119,1,720,931,81,46,101,74,71,51,98,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1);
-REPLACE INTO `mob_db` VALUES (2018,'DUNEYRR','Duneyrr','Duneyrr',135,63342,1,8601,7298,1,833,1134,144,28,133,69,72,55,110,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1);
-REPLACE INTO `mob_db` VALUES (2019,'ANCIENT_TREE','Ancient Tree','Ancient Tree',144,388933,1,7308,5481,1,788,864,226,37,148,72,93,58,99,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1);
-REPLACE INTO `mob_db` VALUES (2020,'RHYNCHO','Rhyncho','Rhyncho',139,337220,1,6107,4579,1,575,776,68,12,119,98,62,48,79,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1);
-REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',139,345560,1,6107,4579,10,550,726,61,14,107,85,60,58,101,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1);
-REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggur\'s Shadow',117,3452000,0,4320000,3510000,2,4040,7880,60,75,1,34,62,236,188,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,0,0,0,0,0,0,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1);
-REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1);
-REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',133,45739,1,6553,3595,1,871,974,359,12,189,25,125,45,69,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1);
-# REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Mystcase','Mystcase',10,10,0,77,77,1,10,20,1,99,1,1,1,1,48,1,10,12,1,0,20,0x120,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,0,0,0,0,573,10);
-REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552500,0,45000,22500,1,3050,4300,40,35,1,66,66,45,88,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,0,0,0,0,902,2000);
-REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,0,0,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
-# REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1);
-REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hiden Priest',90,240500,0,0,0,2,1300,1983,0,30,1,32,40,100,82,40,10,12,2,6,89,0x37B5,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion',80,120000,0,0,0,1,305,610,0,10,1,19,32,0,63,20,10,12,1,7,47,0x37B5,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,99999,0,0,0,1,3000,6000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x120,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,100,0,0,0,1,1,2,160,99,0,0,0,0,0,0,7,12,0,3,22,0x120,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,600,0,0,1,9,9,5,40,40,10,12,0,2,23,0x120,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Nihility Zem',90,200500,0,0,0,0,1,2,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie Randgris',98,11780,0,0,0,1,780,930,16,20,1,24,39,0,72,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie Randgris','Valkyrie Randgris',90,5500,15,0,0,1,10,160,16,20,1,20,40,0,20,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie Randgris','Valkyrie Randgris',90,10500,15,0,0,1,300,450,16,40,1,20,80,0,80,20,10,12,1,8,66,0x120,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,570,950,56,35,64,85,40,25,88,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,950,1146,48,35,58,87,55,35,132,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1160,1440,48,30,77,139,80,35,159,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Mechanic Fixed Autonomous Weapon Platforms
-REPLACE INTO `mob_db` VALUES (2042,'SILVERSNIPER','Silver Sniper','Silver Sniper',100,4500,0,0,0,9,300,300,80,10,10,60,10,10,100,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2043,'MAGICDECOY_FIRE','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2044,'MAGICDECOY_WATER','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2045,'MAGICDECOY_EARTH','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2046,'MAGICDECOY_WIND','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,150,150,16,60,10,10,10,100,50,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
-REPLACE INTO `mob_db` VALUES (2047,'W_NAGA','Naga','Naga',99,46708,0,0,0,3,492,605,61,15,113,42,30,18,122,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',99,8780,0,0,0,1,536,656,24,5,1,23,22,1,89,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2049,'W_BRADIUM_GOLEM','Bradium Golem','Bradium Golem',99,45200,0,0,0,1,720,886,125,18,0,10,82,2,60,12,10,12,2,0,42,0x3895,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',99,33220,0,0,0,1,421,516,13,12,1,23,19,8,77,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2052,'E_DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,2010,2010,2,3027,5112,330,168,118,136,154,142,161,66,10,12,2,6,89,0x37B5,100,868,768,480,1005,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1);
-# REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1040,1880,72,28,15,35,40,15,120,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,998,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1);
-# REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2055,'E_INCUBUS','Incubus','Incubus',75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2056,'E_ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2057,'E_CRAMP','Suspicious Mouse','Strange Mouse',1,4720,0,0,0,1,1,2,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2058,'M_MIMIC','Mimic','Mimic',51,6120,182,0,0,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,0x120,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2059,'M_DISGUISE','Disguise','Disguise',55,7543,180,0,0,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,0x120,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2060,'M_ALICE','Alice','Alice',62,10000,221,0,0,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,0x120,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2061,'E_STAPO','Stapo','Stapo',23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1);
-# REPLACE INTO `mob_db` VALUES (2062,'E_POPORING','Poporing','poporing',14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1);
-# REPLACE INTO `mob_db` VALUES (2063,'E_DROPS','Drops','Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1);
-# REPLACE INTO `mob_db` VALUES (2064,'E_MAGMARING','Magmaring','Magmaring',40,5300,0,1899,1719,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,7955,2000,7956,2000,7957,2000,7958,2000,0,0,0,0,0,0,4432,1);
-# REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',26,889,0,443,224,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,7958,4000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1);
+REPLACE INTO `mob_db` VALUES (1965,'M_WILD_ROSE','Wild Rose','Wild Rose',38,4000,50,0,0,1,100,45,0,15,0,85,15,35,65,80,10,12,0,2,24,0x120,100,964,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1966,'M_DOPPELGANGER','Doppelganger','Doppelganger',72,7800,200,0,0,1,220,50,30,20,0,38,30,35,78,65,10,12,1,6,67,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1967,'M_YGNIZEM','Ygnizem','Egnigem Cenia',79,7800,200,0,0,1,220,50,30,20,0,38,30,35,78,65,10,12,1,7,43,0x120,100,300,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1968,'E_STROUF','Strouf','Strouf',48,11990,0,5544,3776,1,200,1050,8,50,1,40,45,92,43,65,10,12,2,5,61,0x120,150,1872,672,384,0,0,0,0,0,0,0,951,5335,756,230,2241,4,1461,4,949,3000,720,40,956,1500,0,0,0,0,4111,1);
+REPLACE INTO `mob_db` VALUES (1969,'E_MARC','Marc','Marc',36,6900,0,1778,1125,1,220,60,8,10,1,36,36,20,56,30,10,12,1,5,41,0x120,150,1272,72,480,0,0,0,0,0,0,0,995,36,956,9000,756,190,951,1000,720,20,717,200,509,700,0,0,0,0,4105,1);
+REPLACE INTO `mob_db` VALUES (1970,'E_OBEAUNE','Obeune','Obeaune',31,3952,0,1159,733,1,141,24,0,40,1,31,31,55,74,85,10,12,1,5,41,0x120,200,1872,672,288,0,0,0,0,0,0,0,995,26,950,9000,5014,2,2326,20,720,20,951,500,748,60,0,0,0,0,4093,1);
+REPLACE INTO `mob_db` VALUES (1971,'E_VADON','Vadon','Vadon',19,5000,0,243,153,1,74,11,32,0,1,19,16,10,36,15,10,12,0,5,21,0x120,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,10,943,100,757,80,717,50,0,0,0,0,4049,1);
+REPLACE INTO `mob_db` VALUES (1972,'E_MARINA','Marina','Marina',21,2087,0,392,252,1,84,22,0,5,1,21,21,0,36,10,10,12,0,3,41,0x120,400,2280,1080,864,0,0,0,0,0,0,0,1052,5000,938,1500,991,90,995,4,717,200,631,40,0,0,0,0,0,0,4055,1);
+REPLACE INTO `mob_db` VALUES (1973,'E_PORING','Poring','Poring',99,10,0,2,1,1,7,3,0,5,1,1,1,0,6,30,10,12,1,3,21,0x120,400,1872,672,480,0,0,0,0,0,0,0,644,10000,603,10000,617,10000,616,5000,909,5000,0,0,0,0,0,0,0,0,0,0);
+-- WoE SE Guild Dungeon
+REPLACE INTO `mob_db` VALUES (1974,'BANSHEE_MASTER','Banshee Master','Banshee Master',118,20320,0,4422,2556,2,839,298,87,94,121,58,48,122,84,44,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,2748,2,2528,10,934,1500,7054,5335,2135,20,0,0,0,0,4450,1);
+REPLACE INTO `mob_db` VALUES (1975,'BEHOLDER_MASTER','Beholder Master','Beholder Master',106,10135,0,2916,1845,6,612,88,73,62,103,67,42,69,83,32,10,12,1,0,44,0x3885,190,336,840,360,0,0,0,0,0,0,0,576,3000,605,100,996,100,985,10,2386,10,2749,2,603,2,0,0,0,0,4466,1);
+REPLACE INTO `mob_db` VALUES (1976,'COBALT_MINERAL','Cobalt Mineral','Cobalt Mineral',113,15800,0,3510,2070,1,903,92,113,44,110,55,65,57,133,41,10,12,1,0,40,0x3885,200,648,480,360,0,0,0,0,0,0,0,7321,3000,728,500,13414,5,984,80,1011,800,715,100,969,2,0,0,0,0,4475,1);
+REPLACE INTO `mob_db` VALUES (1977,'HEAVY_METALING','Heavy Metaling','Heavy Metaling',107,11500,0,3132,1980,1,874,112,134,65,105,63,86,58,67,38,10,12,0,0,20,0x3885,200,384,672,480,0,0,0,0,0,0,0,7325,4000,1002,1000,998,500,7126,1000,7317,200,13038,5,7312,5000,0,0,0,0,4467,1);
+REPLACE INTO `mob_db` VALUES (1978,'HELL_APOCALIPS','Hell Apocalips','Hell Vesper',121,22100,0,4352,3020,2,1092,122,155,43,135,62,80,48,125,37,10,12,2,0,60,0x3885,250,1840,1440,384,0,0,0,0,0,0,0,7095,5335,7094,2400,7093,2200,985,5,2391,10,1484,4,999,2500,0,0,0,0,4477,1);
+REPLACE INTO `mob_db` VALUES (1979,'ZAKUDAM','Zukadam','Zakudam',115,17200,0,3744,2160,3,910,130,106,92,122,66,70,61,92,55,10,12,2,7,60,0x3885,180,580,288,360,0,0,0,0,0,0,0,7317,5000,999,500,984,200,985,200,13156,5,13167,5,2390,10,0,0,0,0,4474,1);
+REPLACE INTO `mob_db` VALUES (1980,'KUBLIN','Kubkin','Kublin',85,633600,0,99000,90000,1,1298,220,22,10,85,81,25,40,66,20,10,12,1,7,22,0x37B5,100,964,648,300,45000,6010,10000,608,0,732,0,998,270,911,9000,756,43,2297,3,1061,2500,0,0,507,1800,0,0,0,0,0,0);
+-- Orc Dungeon Instance
+REPLACE INTO `mob_db` VALUES (1981,'I_HIGH_ORC','Safeguard Chief','Orc Elite Guard',81,44193,1,0,0,1,538,150,101,45,75,16,40,31,83,20,10,12,2,7,43,0x3695,150,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1982,'I_ORC_ARCHER','Orc Sniper','Orc Bowman',78,54835,1,0,0,9,506,43,67,31,55,32,24,30,150,15,10,12,1,7,22,0x3095,300,1960,620,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1983,'I_ORC_SKELETON','Depraved Orc Spirit','Orc Undead',87,80087,0,0,0,1,546,263,23,30,1,31,41,93,80,30,10,12,1,1,29,0x3885,130,2420,720,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1984,'I_ORC_LADY','Shaman Cargalache','Orc Lady',80,50058,0,0,0,1,465,389,56,10,60,35,52,18,95,20,10,12,1,7,42,0x3695,145,1050,900,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Another World (13.1)
+REPLACE INTO `mob_db` VALUES (1985,'DANDELION','Dandelion Member','Dandelion Member',37,45000,0,0,0,1,305,55,0,10,28,19,32,0,63,20,10,12,1,7,47,0x3695,250,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1986,'TATACHO','Tatacho','Tatacho',128,33336,1,4890,3092,2,1018,72,151,14,119,33,70,56,109,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,1544,20,1925,10,6020,4000,6021,3000,579,3100,6224,10,1061,2500,0,0,0,0,4442,1);
+REPLACE INTO `mob_db` VALUES (1987,'CENTIPEDE','Centipede','Centipede',125,24992,1,4160,2711,2,841,112,143,25,133,71,69,39,120,49,10,12,1,4,45,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2746,2,2747,2,1741,10,1042,5335,912,5000,6224,10,943,2500,0,0,0,0,4447,1);
+REPLACE INTO `mob_db` VALUES (1988,'NEPENTHES','Nepenthes','Nepenthes',114,15099,1,3378,1793,7,843,125,25,5,94,32,41,39,210,59,10,12,1,3,45,0x84,1000,500,576,504,0,0,0,0,0,0,0,5399,1,1979,1,1926,1,1740,1,6041,3000,993,50,905,9000,0,0,0,0,4470,1);
+REPLACE INTO `mob_db` VALUES (1989,'HILLSRION','Hillslion','Hillslion',123,21422,1,3782,1698,1,630,102,83,11,110,69,72,41,143,12,10,12,0,2,22,0x308D,130,400,780,576,0,0,0,0,0,0,0,2440,10,1825,20,6032,3000,6020,2000,1268,10,7938,1200,7054,4850,0,0,0,0,4453,1);
+REPLACE INTO `mob_db` VALUES (1990,'HARDROCK_MOMMOTH','Hardrock Mammoth','Hardrock Mammoth',137,1900944,1,184980,81178,2,2328,774,449,43,191,66,102,49,197,51,10,12,2,2,62,0x37B5,150,1000,660,588,0,0,0,0,0,0,0,5398,100,2133,200,1483,500,13039,400,6022,9000,2257,20,985,9000,0,0,0,0,4462,1);
+REPLACE INTO `mob_db` VALUES (1991,'TENDRILRION','Tendrillion','Tendrillion',126,1397451,1,131004,75299,2,1403,1320,132,123,144,66,77,181,203,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1);
+REPLACE INTO `mob_db` VALUES (1992,'CORNUS','Cornus','Cornus',120,20722,1,8112,4004,2,403,522,66,95,51,47,59,99,130,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1);
+REPLACE INTO `mob_db` VALUES (1993,'NAGA','Naga','Naga',117,21099,1,3826,2212,3,685,102,72,5,112,65,71,32,99,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1);
+REPLACE INTO `mob_db` VALUES (1994,'LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',109,12466,1,2946,1806,1,589,111,59,55,88,89,55,32,143,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,15043,10,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1);
+REPLACE INTO `mob_db` VALUES (1995,'PINGUICULA','Pinguicula','Pinguicula',105,13058,1,2920,2662,1,546,322,46,77,67,60,64,107,77,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1);
+REPLACE INTO `mob_db` VALUES (1996,'BACSOJIN_T','White Lady','White Lady',97,720500,1,801792,542880,3,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1997,'G_TATACHO','Tatacho','Tatacho',128,33336,1,0,0,2,1018,72,151,14,119,33,70,56,109,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1998,'G_HILLSRION','Hillslion','Hillslion',123,21422,1,0,0,1,630,102,83,15,110,69,72,41,143,12,10,12,0,2,22,0x308D,100,400,780,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (1999,'CENTIPEDE_LARVA','Centipede Larva','Centipede Larva',118,20667,1,3808,2003,2,729,88,98,17,103,62,66,27,108,44,10,12,0,4,25,0x3795,150,1000,792,336,0,0,0,0,0,0,0,2406,9,732,50,0,0,1042,5335,912,5000,955,9000,943,2500,0,0,0,0,4452,1);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (2000,'M_GAMEMASTER','Male Game Master','Male Game Master',50,7000,250,0,0,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,0x0081,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2001,'F_GAMEMASTER','Female Game Master','Female Game Master',50,7000,250,0,0,1,25,0,10,10,44,121,1,60,75,110,10,12,1,7,20,0x0081,200,300,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2002,'T_SPRING_RABBIT','Talisman Ghost','Talisman Ghost',50,8000,0,3584,1589,1,585,228,47,21,45,61,5,15,77,90,10,12,1,2,42,0x0083,160,1120,552,0,0,0,0,0,0,0,0,12188,1000,6061,500,6068,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2003,'T_BACSOJIN','Talisman Ghost','Talisman Ghost',97,720500,1,0,0,2,1414,2036,210,178,118,244,98,126,246,102,10,12,2,7,41,0x3695,160,576,960,480,0,0,0,0,0,0,0,7406,1000,7407,1000,6062,1000,6063,1000,6064,1000,6065,1000,6066,1000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2004,'T_WICKED_NYMPH','Talisman Ghost','Talisman Ghost',63,16029,0,0,0,2,399,691,20,75,1,64,12,69,100,80,10,12,1,6,67,0x3695,200,637,1008,360,0,0,0,0,0,0,0,7406,800,7407,800,6063,800,6064,800,6065,800,6066,800,6067,800,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2005,'T_PLASMA_B','Plasma','Plasma',44,8200,0,0,0,3,300,400,0,30,1,30,5,73,90,30,10,12,0,0,81,0x3885,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6062,500,6063,500,6064,500,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2006,'T_PLASMA_P','Plasma','Plasma',49,5900,0,0,0,3,300,400,0,30,1,30,5,54,90,30,10,12,0,0,87,0x3885,150,608,1440,576,0,0,0,0,0,0,0,6062,500,6063,500,6064,500,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2007,'T_PLASMA_R','Plasma','Plasma',43,5700,0,0,0,3,300,400,0,30,1,30,5,56,90,30,10,12,0,0,83,0x3885,150,608,1440,576,0,0,0,0,0,0,0,7406,500,7407,500,6064,500,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2008,'WOOMAWANG','Woomawang','Woomawang',82,4000000,0,99000,90000,3,8800,2000,40,40,60,110,200,250,199,66,10,12,2,6,48,0x3695,250,828,528,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2009,'WOOMAWANG_','Woomawang','Woomawang',82,2000000,0,99000,90000,1,17600,4000,40,40,60,110,200,250,199,66,10,12,1,6,48,0x3695,100,414,1080,336,0,0,0,0,0,0,0,7930,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2010,'G_MAJORUROS','Ox','Ox',66,500000,0,9,9,1,1260,2000,25,15,65,50,20,20,94,48,10,12,2,6,28,0x3885,250,1100,960,780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2011,'E_GHOUL','Tenacious Ghoul','Tenacious Ghoul',40,99999,0,979,560,1,420,80,100,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,12192,100,535,0,535,0,0,0,0,0,4110,1);
+REPLACE INTO `mob_db` VALUES (2012,'E_ZOMBIE','Tenacious Zombie','Tenacious Zombie',15,99999,0,45,30,1,67,12,100,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,6,938,1000,958,50,12192,100,535,0,535,0,0,0,0,0,4038,1);
+-- Enter The Unknown (13.2)
+REPLACE INTO `mob_db` VALUES (2013,'DRACO','Draco','Draco',114,20099,1,2594,1205,1,778,110,56,3,21,58,47,34,99,66,10,12,1,9,22,0x1089,250,576,960,504,0,0,0,0,0,0,0,6073,3000,7123,100,1035,100,1037,1000,1036,1000,518,500,2399,10,0,0,0,0,4444,1);
+REPLACE INTO `mob_db` VALUES (2014,'DRACO_EGG','Draco Egg','Draco Egg',101,100000,1,2400,1500,0,1,1,384,30,1,1,135,92,1,98,10,12,1,9,82,0x0,1000,24,0,0,0,0,0,0,0,0,0,7032,5000,5015,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4471,1);
+REPLACE INTO `mob_db` VALUES (2015,'PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',113,17002,1,2730,2419,1,451,789,59,35,89,55,55,95,92,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1);
+REPLACE INTO `mob_db` VALUES (2016,'AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',121,33209,1,5402,4155,1,862,450,23,8,95,61,25,25,120,40,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,6075,1000,7326,5000,12353,100,1061,2500,2787,10,0,0,0,0,0,0,0,0,4443,1);
+REPLACE INTO `mob_db` VALUES (2017,'RATA','Rata','Rata',131,58299,1,10122,6119,1,1080,211,81,46,101,74,71,51,147,56,10,12,1,7,62,0x3295,150,792,540,420,0,0,0,0,0,0,0,12346,5000,1026,5000,6089,500,1548,100,6224,10,0,0,0,0,0,0,0,0,4459,1);
+REPLACE INTO `mob_db` VALUES (2018,'DUNEYRR','Duneyrr','Duneyrr',135,63342,1,11180,7298,1,1250,301,144,28,133,69,72,55,165,44,10,12,1,7,62,0x3295,200,672,420,360,0,0,0,0,0,0,0,515,5000,6020,4000,6089,500,2783,1,1188,10,1384,100,6224,10,0,0,0,0,4458,1);
+REPLACE INTO `mob_db` VALUES (2019,'ANCIENT_TREE','Ancient Tree','Ancient Tree',144,388933,1,9500,5481,1,1182,76,226,37,148,72,93,58,149,30,10,12,2,3,62,0x308D,290,504,960,576,0,0,0,0,0,0,0,7197,1000,7198,1000,7201,5000,1643,10,2450,30,7939,1000,0,0,0,0,0,0,4473,1);
+REPLACE INTO `mob_db` VALUES (2020,'RHYNCHO','Rhyncho','Rhyncho',139,337220,1,7938,4579,1,863,201,68,12,119,98,62,48,119,46,10,12,1,0,61,0x308D,240,576,660,420,0,0,0,0,0,0,0,7326,5000,972,5,6087,500,0,0,0,0,0,0,0,0,0,0,0,0,4460,1);
+REPLACE INTO `mob_db` VALUES (2021,'PHYLLA','Phylla','Phylla',139,345560,1,7938,4579,10,825,176,61,14,107,85,60,58,152,42,10,12,1,0,61,0x2085,240,360,780,432,0,0,0,0,0,0,0,7326,5000,971,5,6088,500,0,0,0,0,0,0,0,0,0,0,0,0,4461,1);
+REPLACE INTO `mob_db` VALUES (2022,'S_NYDHOG','Nidhoggr\'s Shadow','Nidhoggur\'s Shadow',117,3452000,0,5616000,3510000,2,6656,3840,60,75,1,34,62,236,263,34,10,12,2,9,87,0x37B5,150,1596,1620,864,2160000,617,5500,617,5000,616,2000,6091,5000,7444,5000,6224,1000,1484,500,1170,500,1417,500,2554,2000,0,0,0,0,4456,1);
+REPLACE INTO `mob_db` VALUES (2023,'DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,9918,5721,1,1353,157,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3195,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1);
+REPLACE INTO `mob_db` VALUES (2024,'BRADIUM_GOLEM','Bradium Golem','Bradium Golem',133,45739,1,8518,3595,1,1307,103,559,12,189,25,125,45,104,33,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,7067,3000,953,5000,6090,500,2138,10,12738,10,6224,500,0,0,0,0,0,0,4472,1);
+REPLACE INTO `mob_db` VALUES (2025,'MYSTCASE_EVENT','Wild Gift Box','Wild Gift Box',10,10,0,77,77,1,10,10,1,99,1,1,1,1,48,1,10,12,1,0,20,0x0081,400,1248,1248,432,0,0,0,0,0,0,0,558,5000,558,5000,559,1000,560,1000,561,1000,573,1000,573,10,573,10,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2026,'DANDELION_','Runaway Dandelion Member','Runaway Dandelion Member',90,552500,0,49500,22500,1,3355,1250,40,35,1,66,66,45,106,66,10,12,1,7,27,0x3695,230,1772,72,384,0,0,0,0,0,0,0,7031,5000,579,500,7016,2000,581,3000,12125,500,511,5000,7032,3000,902,2000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2027,'G_DARK_SHADOW','Dark Shadow','Dark Shadow',147,434300,1,0,0,1,1353,157,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Additional Monsters
+-- REPLACE INTO `mob_db` VALUES (2028,'E_MINOROUS','Minorous','Minorous',1,741,0,0,0,1,30,48,4,5,6,4,6,6,5,3,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,7606,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2029,'E_MINOROUS_','Minorous','Minorous',10,15,0,9,0,1,100,150,160,99,1,1,1,1,100,100,10,12,2,2,43,0x120,200,1360,960,432,0,0,0,0,0,0,0,941,10,6119,2000,6119,4000,6119,1000,516,1000,2289,1,577,1000,0,0,0,0,644,1);
+REPLACE INTO `mob_db` VALUES (2030,'HIDEN_PRIEST','Hiden Priest','Hidden Priest',90,240500,0,0,0,2,1430,683,0,30,1,32,40,100,98,40,10,12,2,6,89,0x37B5,150,432,432,360,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2031,'DANDELION_H','Dandelion','Dandelion Executive',80,120000,0,0,0,1,336,305,0,10,1,19,32,0,76,20,10,12,1,7,47,0x37B5,250,1772,72,384,0,0,0,0,0,0,0,12379,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2032,'GUARDIAN_FOREST','Forest Guardian','Forest Guardian',50,99999,0,0,0,1,3000,3000,160,99,100,100,100,100,100,100,10,12,0,6,27,0x308D,200,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2033,'GOLDEN_TULIP','Golden Tulip','Golden Tulip',1,100,0,0,0,1,1,1,160,99,0,0,0,0,0,0,7,12,0,3,22,0x0,2000,1,1,1,0,0,0,0,0,0,0,7951,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2034,'M_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',9,164,15,0,0,1,500,100,0,0,1,9,9,5,40,40,10,12,0,2,23,0x0081,100,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2035,'NIHILITY_ZEM','Nihility Zem','Stone of Futility',90,200500,0,0,0,0,1,1,0,20,1,1,1,0,1,20,10,12,0,4,22,0x100,1000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2036,'VALKYRIE_N','Valkyrie Randgris','Valkyrie',98,11780,0,0,0,1,1014,150,16,20,1,24,39,0,86,25,10,12,1,1,69,0x308D,170,576,576,480,0,0,0,0,0,0,0,6154,9000,6154,5000,6154,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2037,'VALKYRIE_A','Valkyrie','Valkyrie',90,5500,15,0,0,1,11,150,16,20,1,20,40,0,24,20,10,12,1,8,66,0x0081,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2038,'VALKYRIE_B','Valkyrie','Valkyrie',90,10500,15,0,0,1,330,150,16,40,1,20,80,0,96,20,10,12,1,8,66,0x0081,100,576,576,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2039,'EXECUTIONER_R','Executioner','Executioner',65,28980,0,0,0,2,599,380,56,35,64,85,40,25,97,60,10,12,2,0,47,0x37B5,200,768,500,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2040,'TIRFING_R','Tirfing','Ogretooth',71,29900,0,0,0,1,1045,196,48,35,58,87,55,35,158,65,10,12,1,0,67,0x37B5,100,816,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2041,'MYSTELTAINN_R','Mysteltainn','Mysteltainn',76,33350,0,0,0,2,1276,280,48,30,77,139,80,35,191,65,10,12,2,0,87,0x37B5,250,1152,500,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Mechanic Fixed Autonomous Weapon Platforms
+REPLACE INTO `mob_db` VALUES (2042,'SILVERSNIPER','Silver Sniper','Silver Sniper',100,4500,0,0,0,9,390,0,80,10,10,60,10,10,120,10,10,12,1,0,20,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2043,'MAGICDECOY_FIRE','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,23,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2044,'MAGICDECOY_WATER','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,21,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2045,'MAGICDECOY_EARTH','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,22,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2046,'MAGICDECOY_WIND','Magic Decoy','Magic Decoy',100,2500,0,0,0,7,195,0,16,60,10,10,10,100,60,10,10,12,1,0,24,0x84,2000,504,1020,360,0,0,0,0,0,0,0,999,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (2047,'W_NAGA','Naga','Naga',99,46708,0,0,0,3,640,113,61,15,113,42,30,18,146,13,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,926,5000,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2048,'W_PINGUICULA_D','Dark Pinguicula','Dark Pinguicula',99,8780,0,0,0,1,697,120,24,5,1,23,22,1,107,2,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6086,1000,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2049,'W_BRADIUM_GOLEM','Bradium Golem','Bradium Golem',99,45200,0,0,0,1,936,166,125,18,0,10,82,2,72,12,10,12,2,0,42,0x3295,300,1008,1200,540,0,0,0,0,0,0,0,0,0,0,0,6090,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2050,'W_AQUA_ELEMENTAL','Aqua Elemental','Aqua Elemental',99,33220,0,0,0,1,547,95,13,12,1,23,19,8,92,2,10,12,2,0,81,0x3095,230,504,960,576,0,0,0,0,0,0,0,0,0,0,0,12353,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2051,'E_BAPHOMET','Baphomet','Baphomet',1,1,0,0,0,1,1,1,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,768,768,576,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2052,'E_DARKLORD','Dark Lord','Dark Lord',1,1,0,0,0,1,1,1,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,1005,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2053,'NC_DIMIK','Dimik','Dimik',77,10000,0,0,0,5,1144,840,72,28,15,35,40,15,144,42,10,12,1,0,40,0x3885,200,576,720,432,0,0,0,0,0,0,0,7319,2000,7352,50,999,300,7094,300,13153,5,984,10,12128,50,0,0,0,0,4370,1);
+-- REPLACE INTO `mob_db` VALUES (2054,'E_BATHORY','Bathory','Bathory',86,5242,1,0,0,1,229,325,61,41,66,38,40,55,56,50,10,12,1,7,27,0x3695,100,1504,840,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2055,'E_INCUBUS','Incubus','Incubus',75,17281,0,0,0,2,0,0,58,46,1,97,95,103,89,87,10,12,1,6,67,0x3795,165,850,600,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2056,'E_ZHERLTHSH','Zherlthsh','Zealotus',63,18300,0,0,0,1,0,0,10,15,70,85,40,30,125,60,10,12,1,7,60,0x308D,200,800,2112,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2057,'E_CRAMP','Suspicious Mouse','Sticky Rat',1,4720,0,0,0,1,1,1,100,100,1,1,1,1,1,1,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2058,'M_MIMIC','Mimic','Mimic',51,6120,182,0,0,1,800,150,10,40,44,121,1,60,75,110,10,12,1,0,60,0x3095,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2059,'M_DISGUISE','Disguise','Disguise',55,7543,180,0,0,2,526,167,18,29,0,72,45,35,48,65,10,12,1,6,82,0x3885,147,516,768,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2060,'M_ALICE','Alice','Alice',62,10000,221,0,0,1,700,150,5,5,64,64,42,85,100,130,10,12,1,7,60,0x0091,200,502,1999,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2061,'E_STAPO','Stapo','Stapo',23,666,0,299,199,1,135,370,90,5,12,11,15,12,23,1,10,12,0,0,42,0x83,300,936,792,432,0,0,0,0,0,0,0,909,1000,7312,1000,512,1000,7126,100,993,10,1821,3,7956,5000,0,0,0,0,4424,1);
+-- REPLACE INTO `mob_db` VALUES (2062,'E_POPORING','Poporing','poporing',14,344,0,73,40,1,59,72,0,10,1,14,14,0,19,15,10,12,1,3,25,0x83,300,1672,672,480,0,0,0,0,0,0,0,938,5500,910,1500,511,500,514,200,7957,2000,1207,5,512,250,0,0,0,0,4033,1);
+-- REPLACE INTO `mob_db` VALUES (2063,'E_DROPS','Drops','Drops',3,55,0,4,3,1,10,13,0,0,1,3,3,0,12,15,10,12,1,3,23,0x83,400,1372,672,480,0,0,0,0,0,0,0,909,7500,1602,80,938,500,512,1100,713,1700,7955,2000,620,20,0,0,0,0,4004,1);
+-- REPLACE INTO `mob_db` VALUES (2064,'E_MAGMARING','Magmaring','Magmaring',40,5300,0,1899,1719,1,550,700,25,24,40,60,30,10,60,17,10,12,0,0,43,0x83,300,1472,384,288,0,0,0,0,0,0,0,7097,3000,757,34,7955,2000,7956,2000,7957,2000,7958,2000,0,0,0,0,0,0,4432,1);
+-- REPLACE INTO `mob_db` VALUES (2065,'E_METALING','Metaling','Metaling',26,889,0,443,224,1,135,270,5,3,30,15,10,18,35,2,10,12,0,0,20,0x83,300,384,672,480,0,0,0,0,0,0,0,7325,4000,7958,4000,998,500,7126,1000,7317,200,13103,5,7312,5000,0,0,0,0,4341,1);
REPLACE INTO `mob_db` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',5,50,1,1,1,1,140,158,8,10,1,30,1,1,30,1,10,12,0,4,64,0x37B5,170,1084,2304,576,0,5586,10000,5586,0,5586,0,601,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
REPLACE INTO `mob_db` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x120,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
-# Brasilis
-REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0);
-# Event MVP
-REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Ragunta','Ragunta',150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000);
-# Additional Monsters
-REPLACE INTO `mob_db` VALUES (2076,'S_WIND_GHOST','Shadow of Deception','Shadow of Deception',105,190800,1,0,0,1,462,957,64,51,62,44,25,105,85,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2077,'S_SKOGUL','Shadow of Illusion','Shadow of Illusion',105,244400,1,0,0,1,910,1166,72,15,100,88,63,99,95,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2078,'S_SUCCUBUS','Shadow of Pleasure','Shadow of Pleasure',105,206660,1,0,0,1,880,1204,76,48,100,70,45,110,102,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Crystal','Crystal',77,7777777,1,3777777,3777777,0,17777,25554,77,77,1,7,7,77,77,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Crystal','Crystal',7,77,1,7,7,0,7,14,7,7,1,7,7,7,7,77,0,0,2,0,60,0x120,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2081,'E_HYDRA','Suspicious Hydra','Strange Hydra',34,854,1,0,0,7,1,2,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2082,'G_PIRANHA','Piranha','Piranha',75,4522,1,0,0,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# El Dicastes (13.3)
-REPLACE INTO `mob_db` VALUES (2083,'HORN_SCARABA','Scaraba','One-Horned Scaraba',130,51100,1,5220,4011,1,633,724,135,20,44,59,55,21,71,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1);
-REPLACE INTO `mob_db` VALUES (2084,'HORN_SCARABA2','Scaraba','Two-Horned Scaraba',134,58900,1,5780,4549,1,690,795,150,38,44,68,72,45,84,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,2,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1);
-REPLACE INTO `mob_db` VALUES (2085,'ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,6330,5255,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,10,993,2,0,0,0,0,0,0,0,0,4505,1);
-REPLACE INTO `mob_db` VALUES (2086,'RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,6990,5995,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,2,12735,10,15000,10,993,2,0,0,0,0,0,0,0,0,4505,1);
-REPLACE INTO `mob_db` VALUES (2087,'QUEEN_SCARABA','Queen Scaraba','Scaraba Queen',140,2441600,1,410220,212200,3,1889,3129,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,0,0,0,4507,1);
-REPLACE INTO `mob_db` VALUES (2088,'HORN_SCARABA_EGG','Scaraba Egg','Scaraba Egg',125,63000,1,4000,3000,0,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2089,'HORN_SCARABA2_EGG','Scaraba Egg','Scaraba Egg',126,66000,1,4000,3000,0,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2090,'ANTLER_SCARABA_EGG','Antler Scaraba Egg','Antler Scaraba Egg',127,69000,1,4000,3000,0,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2091,'RAKE_SCARABA_EGG','Rake Scaraba Egg','Rake Scaraba Egg',128,72000,1,4000,3000,0,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,10,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2092,'DOLOMEDES','Dolomedes','Dolomedes',132,54591,1,5155,5155,3,677,963,112,52,149,34,82,55,95,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,2,12738,10,6224,500,1984,2,0,0,0,0,4506,1);
-REPLACE INTO `mob_db` VALUES (2093,'BOTARING','Botaring','Botaring',15,15,1,7,7,2,20,40,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,0,0,0,0,603,500);
-# Additional MVPs
-REPLACE INTO `mob_db` VALUES (2094,'E_ORK_HERO2','Orc Hero','Orc Hero',50,362000,1,2010,2010,1,662,1103,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1);
-REPLACE INTO `mob_db` VALUES (2095,'E_EDDGA','Eddga','Eddga',65,247500,1,2010,2010,1,866,1342,166,70,92,80,103,66,90,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1030,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1);
-REPLACE INTO `mob_db` VALUES (2096,'E_OSIRIS2','Osiris','Osiris',68,475840,1,2010,2010,1,1580,2483,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,2000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1);
-REPLACE INTO `mob_db` VALUES (2097,'E_DRACULA','Dracula','Dracula',75,350000,1,2010,2010,3,1322,3134,152,146,86,99,88,92,145,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1);
-REPLACE INTO `mob_db` VALUES (2098,'E_DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,2010,2010,1,1639,2815,246,86,122,122,105,67,169,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,723,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1);
-REPLACE INTO `mob_db` VALUES (2099,'E_MISTRESS','Mistress','Mistress',78,378000,1,2010,2010,1,985,2352,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1);
-REPLACE INTO `mob_db` VALUES (2100,'E_BAPHOMET2','Baphomet','Baphomet',81,668000,1,2010,2010,2,2864,4148,279,45,120,125,30,85,155,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1);
-REPLACE INTO `mob_db` VALUES (2101,'E_LORD_OF_DEATH2','Lord of Death','Lord of the Dead',94,603883,1,2010,2010,3,4116,5078,336,73,140,99,30,109,100,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1);
-REPLACE INTO `mob_db` VALUES (2102,'E_DARKLORD','Dark Lord','Dark Lord',1,1,0,0,0,1,1,2,2,0,1,1,1,1,1,1,10,12,2,6,20,0x37B5,100,868,768,480,0,0,0,0,0,0,0,12396,5000,12397,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2103,'E_KTULLANUX','Ktullanux','Ktullanux',98,2626000,1,2010,2010,3,2888,5568,129,78,85,126,30,125,177,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1);
-REPLACE INTO `mob_db` VALUES (2104,'E_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,2010,2010,3,2217,4203,314,185,122,172,107,135,196,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1);
-REPLACE INTO `mob_db` VALUES (2105,'E_TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,2010,2010,2,2438,4504,394,123,116,123,154,99,181,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1);
-REPLACE INTO `mob_db` VALUES (2106,'E_APOCALIPS_H','Vesper','Vesper',128,3802000,1,2010,2010,3,2620,7276,402,109,177,195,165,130,182,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1);
-REPLACE INTO `mob_db` VALUES (2107,'E_FALLINGBISHOP','Fallen Bishop','Fallen Bishop Hibram',138,5655000,1,2010,2010,1,2860,4496,274,182,186,165,95,226,182,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1);
-REPLACE INTO `mob_db` VALUES (2108,'E_GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2010,2010,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1);
-REPLACE INTO `mob_db` VALUES (2109,'E_RANDGRIS','Valkyrie Randgris','Valkyrie Randgris1',141,2205000,1,2010,2010,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1);
-REPLACE INTO `mob_db` VALUES (2110,'E_IFRIT','Ifrit','Ifrit',146,6935000,1,2010,2010,3,5375,8764,436,218,180,201,156,190,199,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1);
-REPLACE INTO `mob_db` VALUES (2111,'E_B_HARWORD','Whitesmith Harword','Whitesmith Howard',160,6750000,1,2010,2010,1,3500,4965,301,106,275,148,156,72,177,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1);
-REPLACE INTO `mob_db` VALUES (2112,'E_B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,2010,2010,1,4290,6632,567,155,303,165,181,110,178,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2113,'E_B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,2010,2010,1,4055,5433,445,98,211,181,114,83,225,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,13017,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1);
-# Sorcerer Elemental Spirits
-# 2114,EL_AGNI_S,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2115,EL_AGNI_M,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2116,EL_AGNI_L,Agni,Agni,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2117,EL_AQUA_S,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2118,EL_AQUA_M,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2119,EL_AQUA_L,Aqua,Aqua,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2120,EL_VENTUS_S,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,0,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2121,EL_VENTUS_M,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,1,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2122,EL_VENTUS_L,Ventus,Ventus,100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,2,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2123,EL_TERA_S,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2124,EL_TERA_M,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-# 2125,EL_TERA_L,Tera,Tera,100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0
-REPLACE INTO `mob_db` VALUES (2126,'M_ANOPHELES','Anopheles','Anopheles',100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2127,'M_HORNET','Hornet','Hornet',110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2128,'M_HORNET2','Hornet','Hornet',120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2129,'M_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2130,'M_LUCIOLA_VESPA2','Luciola Vespa','Luciola Vespa',140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Bifrost (14.1)
-REPLACE INTO `mob_db` VALUES (2131,'LOST_DRAGON','Lost Dragon','Lost Dragon',135,608920,0,30000,30000,3,1050,1580,60,51,140,81,69,122,98,61,10,12,2,9,67,0x3695,150,840,648,576,15000,617,2500,616,5000,0,0,2610,1000,13062,1000,607,1000,608,500,610,500,1985,500,2854,300,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2132,'POM_SPIDER','Pom Spider','Pom Spider',145,122110,1,8010,8037,1,632,847,240,115,156,85,178,88,139,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,13431,10,1654,3,0,0,0,0,0,0,0,0,4514,1);
-REPLACE INTO `mob_db` VALUES (2133,'ANGRA_MANTIS','Angra Mantis','Angra Mantis',144,91720,1,7790,7020,1,579,756,175,81,122,155,119,81,132,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,5000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,4513,1);
-REPLACE INTO `mob_db` VALUES (2134,'PARUS','Parus','Parus',142,86990,1,7310,6990,1,511,663,161,39,80,136,128,44,105,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,5000,7063,1000,12736,100,6383,5000,6383,3000,6383,1000,0,0,0,0,0,0,4512,1);
+-- Brasilis
+REPLACE INTO `mob_db` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,1,89146,77950,2,1378,962,32,66,140,99,30,109,120,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2069,'IARA','Iara','Iara',79,5890,1,1176,890,1,188,99,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,1,988,1023,1,200,41,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,1,1112,1120,1,231,57,33,44,68,51,50,35,80,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,1,792,512,1,211,42,44,15,69,30,45,5,71,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,1,692,544,1,174,35,12,12,54,14,40,35,48,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,1,652,450,1,147,35,42,12,32,23,38,20,50,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0);
+-- Event MVP
+REPLACE INTO `mob_db` VALUES (2075,'E_VADON_X','Vadon','Vadon',1,700,0,32000,26000,5,4620,7220,42,32,200,1,30,35,222,32,10,12,2,0,20,0x120,150,1632,432,540,0,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,4049,1);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (2076,'S_WIND_GHOST','Shadow of Deception','Shadow of Deception',105,190800,1,0,0,1,601,495,64,51,62,44,25,105,102,20,10,12,1,6,64,0x3795,150,1056,1056,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2077,'S_SKOGUL','Shadow of Illusion','Shadow of Illusion',105,244400,1,0,0,1,1183,256,72,15,100,88,63,99,114,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2078,'S_SUCCUBUS','Shadow of Pleasure','Shadow of Pleasure',105,206660,1,0,0,1,1144,324,76,48,100,70,45,110,122,85,10,12,1,6,67,0x3795,155,1306,1056,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2079,'CRYSTAL_H','Mother Crystal','Mother Crystal',77,7777777,1,4155554,3777777,0,19555,7777,77,77,1,7,7,77,92,77,0,0,2,0,60,0x3695,177,1152,1152,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2080,'CRYSTAL_L','Large Crystal','Large Crystal',7,77,1,7,7,0,7,7,7,7,1,7,7,7,7,77,0,0,2,0,60,0x3695,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2081,'E_HYDRA','Suspicious Hydra','Strange Hydra',34,854,1,0,0,7,1,1,100,100,1,1,1,1,1,1,10,12,0,3,41,0x0,1000,800,432,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2082,'G_PIRANHA','Piranha','Piranha',75,4522,1,0,0,1,200,41,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3295,200,768,480,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- El Dicastes (13.3)
+REPLACE INTO `mob_db` VALUES (2083,'HORN_SCARABA','Scaraba','Uni Horn Scaraba',130,51100,1,5220,4011,1,886,91,135,20,44,59,55,21,99,33,10,12,0,4,22,0x1189,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1);
+REPLACE INTO `mob_db` VALUES (2084,'HORN_SCARABA2','Scaraba','Horn Scaraba',134,58900,1,5780,4549,1,1935,105,150,38,44,68,72,45,126,51,10,12,0,4,22,0x1189,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1);
+REPLACE INTO `mob_db` VALUES (2085,'ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,6330,5255,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,10,7939,100,993,100,0,0,0,0,0,0,0,0,4505,1);
+REPLACE INTO `mob_db` VALUES (2086,'RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,6990,5995,1,1645,112,250,70,90,66,145,52,168,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,10,12735,10,15000,100,993,100,0,0,0,0,0,0,0,0,4505,1);
+REPLACE INTO `mob_db` VALUES (2087,'QUEEN_SCARABA','Queen Scaraba','Queen Scaraba',140,2441600,1,533286,212200,3,2834,1240,350,220,100,88,82,149,317,144,10,12,2,4,62,0x37B5,120,864,1000,360,205110,616,5500,616,5000,616,2000,6326,7000,1191,1000,2364,1000,1196,400,18103,500,0,0,0,0,0,1,0,0,4507,1);
+REPLACE INTO `mob_db` VALUES (2088,'HORN_SCARABA_EGG','Scaraba Egg','Uni Horn Scaraba Egg',125,63000,1,5200,3000,0,1,1,230,55,1,1,130,34,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2089,'HORN_SCARABA2_EGG','Scaraba Egg','Horn Scaraba Egg',126,66000,1,5200,3000,0,1,1,250,62,1,1,130,48,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2090,'ANTLER_SCARABA_EGG','Antler Scaraba Egg','Antler Scaraba Egg',127,69000,1,5200,3000,0,1,1,235,180,1,1,130,82,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2091,'RAKE_SCARABA_EGG','Rake Scaraba Egg','Rake Scaraba Egg',128,72000,1,5200,3000,0,1,1,290,44,1,1,130,39,1,80,10,12,0,4,20,0x100,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,10,2153,500,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2092,'DOLOMEDES','Dolomedes','Dolomedes',132,54591,1,6702,5154,3,1016,286,112,52,149,34,82,55,143,67,10,12,2,4,61,0x3985,250,360,360,600,0,0,0,0,0,0,0,6319,3000,6325,5000,6090,500,2789,10,12738,10,6224,500,1984,10,0,0,0,0,4506,1);
+REPLACE INTO `mob_db` VALUES (2093,'BOTARING','Botaring','Botaring',15,15,1,7,7,2,20,20,20,20,10,10,10,10,77,77,10,12,0,0,26,0x81,170,1872,672,480,0,0,0,0,0,0,0,12492,7000,12492,3500,12492,1000,5204,700,664,2000,665,2000,666,2000,603,500,0,0,0,0);
+-- Additional MVPs
+REPLACE INTO `mob_db` VALUES (2094,'E_ORK_HERO2','Orc Hero','Orc Hero',50,362000,1,2010,2010,1,662,441,197,70,97,82,107,71,144,43,10,12,2,7,42,0x37B5,150,1678,780,648,1005,725,2000,607,5000,607,5000,968,9700,10018,500,1366,150,12539,50,1124,1000,985,4559,1387,100,0,0,0,0,4143,1);
+REPLACE INTO `mob_db` VALUES (2095,'E_EDDGA','Eddga','Eddga',65,947500,1,2010,2010,1,1509,776,166,70,92,80,103,66,139,85,10,12,2,2,23,0x37B5,300,872,1344,432,1005,1029,5000,1030,3000,1030,3000,1133,150,2268,250,518,10000,12539,50,1030,250,985,2300,13046,100,0,0,0,0,4074,1);
+REPLACE INTO `mob_db` VALUES (2096,'E_OSIRIS2','Osiris','Osiris',68,475840,1,2010,2010,1,1580,903,172,164,97,99,86,131,145,67,10,12,1,1,89,0x37B5,100,1072,672,384,1005,603,4000,608,500,608,500,617,2000,1232,150,2235,200,12539,50,1009,1000,5053,150,1285,100,0,0,0,0,4144,1);
+REPLACE INTO `mob_db` VALUES (2097,'E_DRACULA','Dracula','Dracula',75,350000,1,2210,2010,3,1454,1812,152,146,86,99,88,92,174,82,10,12,2,6,87,0x37B5,145,1290,1140,576,1005,607,5500,732,5000,732,5000,607,4700,1473,5,1722,5,2507,15,2621,4,1557,4,12539,50,0,0,0,0,4134,1);
+REPLACE INTO `mob_db` VALUES (2098,'E_DOPPELGANGER','Doppelganger','Doppelganger',77,380000,1,2210,2010,1,1803,1176,246,86,122,122,105,67,203,72,10,12,1,6,67,0x37B5,100,480,480,288,1005,724,1500,505,0,505,0,2317,250,1162,220,1168,150,2258,350,12539,50,985,3686,984,2700,0,0,0,0,4127,1);
+REPLACE INTO `mob_db` VALUES (2099,'E_MISTRESS','Mistress','Mistress',78,378000,1,2010,2010,1,985,1367,187,192,76,186,88,113,172,79,10,12,0,4,84,0x37B5,100,1148,648,300,1005,996,1500,526,3000,526,3000,12539,50,518,10000,2249,250,616,1000,7018,10,985,4268,16001,100,0,0,0,0,4132,1);
+REPLACE INTO `mob_db` VALUES (2100,'E_BAPHOMET2','Baphomet','Baphomet',81,668000,1,2210,2010,2,3150,1284,279,45,120,125,30,85,186,85,10,12,2,6,67,0x37B5,100,768,768,576,1005,607,2000,750,5000,750,5000,12539,100,2256,300,1476,50,714,500,5160,10,985,5432,984,4171,0,0,0,0,4147,1);
+REPLACE INTO `mob_db` VALUES (2101,'E_LORD_OF_DEATH2','Lord of Death','Lord of the Dead',94,603883,1,2412,2010,3,5351,962,336,73,140,99,30,109,120,90,10,12,2,6,67,0x37B5,180,1446,1296,360,1005,607,5500,732,5000,732,5000,7108,5335,1417,5,12539,100,2621,2,7109,10,1306,1,1529,2,0,0,0,0,4210,1);
+REPLACE INTO `mob_db` VALUES (2102,'E_DARK_LORD','Dark Lord','Dark Lord',96,1190900,1,2412,2010,2,3935,2085,330,168,118,136,154,142,193,66,10,12,2,6,89,0x37B5,100,868,768,480,0,7005,6000,5093,2000,5093,2000,1615,800,2004,100,1237,300,2334,300,12539,100,985,5141,5162,10,0,0,0,0,4169,1);
+REPLACE INTO `mob_db` VALUES (2103,'E_KTULLANUX','Ktullanux','Ktullanux',98,2626000,1,2412,2010,3,3754,2680,129,78,85,126,30,125,212,112,10,12,2,2,81,0x37B5,400,432,840,216,1005,607,5500,617,5000,617,5000,7562,9000,616,3000,2509,3000,2111,5000,617,5000,607,5000,12539,100,0,0,0,0,4419,1);
+REPLACE INTO `mob_db` VALUES (2104,'E_DARK_SNAKE_LORD','Dark Snake Lord','Evil Snake Lord',105,1101000,1,2412,2010,3,2882,1986,314,185,122,172,107,135,235,88,10,12,2,2,68,0x37B5,200,588,816,420,1005,607,5500,617,5500,617,5500,7169,5820,10020,5100,1471,80,12539,50,1474,500,7226,900,661,2000,0,0,0,0,4330,1);
+REPLACE INTO `mob_db` VALUES (2105,'E_TURTLE_GENERAL','Turtle General','Turtle General',110,1442000,1,2412,2010,2,3169,2066,394,123,116,123,154,99,217,98,10,12,2,2,42,0x37B5,200,900,1000,500,1005,967,5500,607,2000,607,2000,1529,8,1306,5,7480,200,1417,9,7070,5335,1141,80,12539,50,0,0,0,0,4246,1);
+REPLACE INTO `mob_db` VALUES (2106,'E_APOCALIPS_H','Vesper','Vesper',128,3802000,1,2612,2010,3,3668,4656,402,109,177,195,165,130,255,102,10,12,2,2,46,0x37B5,180,504,912,432,1005,617,5500,603,2000,603,2000,7095,5000,7094,3000,12539,50,2659,100,2660,100,2661,100,2662,100,0,0,0,0,4374,1);
+REPLACE INTO `mob_db` VALUES (2107,'E_FALLINGBISHOP','Fallen Bishop','Fallen Bishop',138,5655000,1,2612,2010,1,4290,4636,274,382,186,165,95,226,273,86,10,12,1,6,47,0x37B5,150,432,432,360,1005,607,5500,608,2000,608,2000,523,10000,1420,1000,2677,500,1422,1000,985,5432,12539,200,6223,500,0,0,0,0,4441,1);
+REPLACE INTO `mob_db` VALUES (2108,'E_GLOOMUNDERNIGHT','Gloom Under Night','Gloom Under Night',139,3005000,1,2612,2010,3,6592,2785,479,262,191,223,187,155,362,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1005,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,12539,200,0,0,0,0,4410,1);
+REPLACE INTO `mob_db` VALUES (2109,'E_RANDGRIS','Valkyrie Randgris','Valkyrie Randgris',141,3205000,1,2612,2010,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,1005,617,5500,603,2000,603,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,12539,200,0,0,0,0,4407,1);
+REPLACE INTO `mob_db` VALUES (2110,'E_IFRIT','Ifrit','Ifrit',146,6935000,1,2612,2010,3,8063,3389,436,218,180,201,156,190,299,77,10,12,2,0,83,0x37B5,130,212,384,360,1005,617,5500,6223,2000,6223,2000,994,10000,2677,3000,2678,200,2679,200,1471,2000,1133,2000,12539,200,0,0,0,0,4430,1);
+REPLACE INTO `mob_db` VALUES (2111,'E_B_HARWORD','Whitesmith Harword','MasterSmith Howard',160,6750000,1,2612,2010,1,5250,1465,301,106,275,148,156,72,266,60,10,12,1,7,82,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1138,3500,1140,2500,12539,200,1365,3500,1364,3500,1369,2500,1368,3500,0,0,0,0,4361,1);
+REPLACE INTO `mob_db` VALUES (2112,'E_B_SEYREN','Lord Knight Seyren','Lord Knight Seyren',160,4680000,1,2612,2010,1,6435,2342,567,155,303,165,181,110,267,66,10,12,1,7,83,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1132,2500,2342,3500,12539,200,1470,3500,1469,3000,1166,2500,1415,1500,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2113,'E_B_EREMES','Assassin Cross Eremes','Assassin Cross Eremes',160,4230000,1,2612,2010,1,6083,1378,445,98,211,181,114,83,338,60,10,12,1,7,85,0x37B5,100,76,384,288,1005,617,5500,603,2000,603,2000,1234,1500,1230,1500,12539,200,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,1);
+-- Sorcerer Elemental Spirits
+-- REPLACE INTO `mob_db` VALUES ( 2114,'EL_AGNI_S','Agni','Agni',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2115,'EL_AGNI_M','Agni','Agni',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2116,'EL_AGNI_L','Agni','Agni',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,83,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2117,'EL_AQUA_S','Aqua','Aqua',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2118,'EL_AQUA_M','Aqua','Aqua',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2119,'EL_AQUA_L','Aqua','Aqua',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,81,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2120,'EL_VENTUS_S','Ventus','Ventus',100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,0,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2121,'EL_VENTUS_M','Ventus','Ventus',100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,1,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2122,'EL_VENTUS_L','Ventus','Ventus',100,0,1,0,0,4,0,0,0,0,0,0,0,0,0,0,5,0,2,0,84,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2123,'EL_TERA_S','Tera','Tera',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2124,'EL_TERA_M','Tera','Tera',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,1,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2125,'EL_TERA_L','Tera','Tera',100,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,5,0,2,0,82,0x120,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2126,'M_ANOPHELES','Anopheles','Anopheles',100,8000,1,0,0,1,300,400,0,0,40,70,40,40,80,40,10,12,0,4,64,0x3985,170,1084,2304,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2127,'M_HORNET','Hornet','Hornet',110,9000,1,0,0,1,350,450,0,0,40,70,40,40,90,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2128,'M_HORNET2','Hornet','Hornet',120,10000,1,0,0,1,400,500,0,0,40,70,40,40,100,40,10,12,0,4,24,0x1181,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2129,'M_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',130,11000,1,0,0,1,450,650,0,0,60,80,50,50,110,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES ( 2130,'M_LUCIOLA_VESPA2','Luciola Vespa','Luciola Vespa',140,12000,1,0,0,1,500,700,0,0,60,80,50,50,120,50,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Bifrost (14.1)
+REPLACE INTO `mob_db` VALUES (2131,'LOST_DRAGON','Lost Dragon','Lost Dragon',135,608920,0,39000,30000,3,1975,530,60,51,140,81,69,122,147,61,10,12,2,9,67,0x3695,150,840,648,576,0,616,500,617,5000,617,5000,2610,1000,2854,100,13062,100,607,500,608,500,1985,100,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2132,'POM_SPIDER','Pom Spider','Pom Spider',145,122110,1,10412,8037,1,948,215,240,115,156,85,178,88,209,102,10,12,1,4,62,0x3985,250,864,1056,576,0,0,0,0,0,0,0,12573,500,11520,1000,1042,1000,1654,2,13431,50,0,0,0,0,0,0,0,0,4514,1);
+REPLACE INTO `mob_db` VALUES (2133,'ANGRA_MANTIS','Angra Mantis','Angra Mantis',144,91720,1,10126,7020,1,869,177,175,81,122,155,119,81,198,79,10,12,1,4,42,0x3985,150,576,480,480,0,0,0,0,0,0,0,6086,3000,7194,1000,997,10,1830,10,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2134,'PARUS','Parus','Parus',142,86990,1,9502,6990,1,767,152,161,39,80,136,128,44,158,51,10,12,0,2,42,0x3885,180,384,792,432,0,0,0,0,0,0,0,6393,3000,7063,1000,12736,100,6383,3000,6383,3000,6383,3000,0,0,0,0,0,0,4512,1);
REPLACE INTO `mob_db` VALUES (2135,'CREEPER','Creeper','Creeper',100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2136,'LITTLE_FATUM','Little Fatum','Little Fatum',142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1);
-REPLACE INTO `mob_db` VALUES (2137,'MIMING','Miming','Miming',140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1);
-REPLACE INTO `mob_db` VALUES (2138,'NYDHOG_MEMORY1_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2139,'NYDHOG_MEMORY1_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2140,'NYDHOG_MEMORY2_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2141,'NYDHOG_MEMORY2_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2142,'NYDHOG_MEMORY3_1','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2143,'NYDHOG_MEMORY3_2','Nydhogg\'s Memory','Nydhogg\'s Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2144,'G_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2145,'G_RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2146,'G_S_NYDHOG','G_S_NYDHOG','G_S_NYDHOG',117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2136,'LITTLE_FATUM','Little Fatum','Little Fatum',142,85100,1,9750,6500,1,663,452,51,198,10,66,17,148,222,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,3000,7938,100,11519,100,2465,2,0,0,0,0,0,0,0,0,0,0,4511,1);
+REPLACE INTO `mob_db` VALUES (2137,'MIMING','Miming','Miming',140,81200,1,9230,6300,1,645,222,120,120,90,66,105,77,200,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,3000,7938,100,969,1,2853,2,0,0,0,0,0,0,0,0,0,0,4510,1);
+REPLACE INTO `mob_db` VALUES (2138,'NYDHOG_MEMORY1_1','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2139,'NYDHOG_MEMORY1_2','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2140,'NYDHOG_MEMORY2_1','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2141,'NYDHOG_MEMORY2_2','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2142,'NYDHOG_MEMORY3_1','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2143,'NYDHOG_MEMORY3_2','Nydhogg\'s Memory','Nydhoggur Memory',130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2144,'G_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,62600,1,0,0,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2145,'G_RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,67700,1,0,0,1,1645,112,250,70,90,66,145,52,168,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2146,'G_S_NYDHOG','G_S_NYDHOG','Shade of Dragon',117,300000,0,0,0,2,1176,840,60,60,1,30,30,136,123,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2147,'E_WHITE_PLANT','White Plant','White Plant',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2148,'E_BLUE_PLANT','Blue Plant','Blue Plant',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2149,'E_SAVAGE_BABE','Savage Babe','Savage Babe',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2150,'WATERMELON','Watermelon','Watermelon',12,10,0,0,0,1,7,10,1,1,1,1,1,1,6,30,10,12,1,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,6411,5000,911,2000,7198,2000,741,100,0,0,0,0,0,0,0,0,0,0,0,0);
-# Dewata
-REPLACE INTO `mob_db` VALUES (2151,'ALNOLDI','Alnoldi','Rafflesia Alnoldi',80,5149,0,1399,1280,1,378,447,80,20,1,32,24,61,85,30,10,12,1,3,22,0x3895,300,768,768,576,0,0,0,0,0,0,0,705,250,520,425,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1);
-REPLACE INTO `mob_db` VALUES (2152,'COMODO','Comodo','Comodo',81,4002,0,1072,1581,1,427,469,92,11,50,52,35,20,94,48,10,12,1,2,65,0x3895,165,432,432,360,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1);
-REPLACE INTO `mob_db` VALUES (2153,'CENDRAWASIH','Cendrawasih','Cendrawasih',84,5556,0,2612,2687,1,297,467,72,33,50,77,51,58,92,45,10,12,1,8,23,0x3895,220,768,768,576,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1);
-REPLACE INTO `mob_db` VALUES (2154,'BANASPATY','Banaspaty','Banaspaty',85,4680,0,1164,1688,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x3895,220,1872,672,480,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1);
-REPLACE INTO `mob_db` VALUES (2155,'BUTOIJO','Butoijo','Butoijo',88,7524,0,1355,1752,1,358,460,77,12,50,65,30,30,106,44,10,12,2,6,43,0x4995,200,1100,483,528,0,0,0,0,0,0,0,938,2750,537,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1);
-REPLACE INTO `mob_db` VALUES (2156,'LEAK','Leak','Leak',94,1266000,0,472800,300120,1,3723,5007,280,128,100,125,30,85,186,55,10,12,2,6,47,0x37B5,150,151,288,360,236400,607,5500,617,2250,616,450,1422,10,617,2500,607,2500,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1);
-REPLACE INTO `mob_db` VALUES (2157,'G_BANASPATY','Banaspaty','Banaspaty',85,4680,0,0,0,1,200,382,63,89,1,78,35,77,79,20,10,12,0,0,63,0x37B5,220,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Homunculus S Summons
-REPLACE INTO `mob_db` VALUES (2158,'S_HORNET','Hornet','Hornet',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2159,'S_GIANT_HORNET','Giant Hornet','Giant Hornet',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2160,'S_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Nightmare Scaraba Hole
-REPLACE INTO `mob_db` VALUES (2161,'I_HORN_SCARABA','Gold One-Horn Scaraba','Gold One-Horn Scaraba',130,204400,0,15660,12033,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6324,10000,1433,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1);
-REPLACE INTO `mob_db` VALUES (2162,'I_HORN_SCARABA2','Gold Two-Horn Scaraba','Gold Two-Horn Scaraba',134,235600,0,17340,13647,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x3795,150,76,384,288,0,0,0,0,0,0,0,6323,10000,13061,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1);
-REPLACE INTO `mob_db` VALUES (2163,'I_ANTLER_SCARABA','Gold Antler Scaraba','Gold Antler Scaraba',136,250400,0,18990,15675,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x3795,220,76,384,288,0,0,0,0,0,0,0,6322,10000,1930,4,12735,20,7939,20,993,4,0,0,0,0,0,0,0,0,4508,1);
-REPLACE INTO `mob_db` VALUES (2164,'I_RAKE_SCARABA','Gold Rake Scaraba','Gold Rake Scaraba',139,270800,0,20970,16785,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x3795,200,76,384,288,0,0,0,0,0,0,0,6321,10000,16010,4,12735,20,15000,20,993,4,0,0,0,0,0,0,0,0,4508,1);
-REPLACE INTO `mob_db` VALUES (2165,'I_QUEEN_SCARABA','Gold Queen Scaraba','Gold Queen Scaraba',140,6441600,0,4102200,2122000,3,3778,6258,350,220,100,138,82,249,261,144,10,12,2,4,62,0x37B5,200,768,768,576,2051100,616,5500,616,5000,616,2000,6326,10000,1191,2000,2364,2000,1196,800,18103,1000,0,0,0,0,0,0,0,0,4509,1);
-REPLACE INTO `mob_db` VALUES (2166,'I_HORN_SCARABA_EGG','Gold One-Horn Scaraba Egg','Gold One-Horn Scaraba Egg',125,126000,0,12000,9000,1,1,2,230,55,1,1,130,34,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2167,'I_HORN_SCARABA2_EGG','Gold Two-Horn Scaraba Egg','Gold Two-Horn Scaraba Egg',126,132000,0,12000,9000,1,1,2,250,62,1,1,130,48,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2168,'I_ANTLER_SCARABA_EGG','Gold Antler Scaraba Egg','Gold Antler Scaraba Egg',127,138000,0,12000,9000,1,1,2,235,180,1,1,130,82,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2169,'I_RAKE_SCARABA_EGG','Gold Rake Scaraba Egg','Gold Rake Scaraba Egg',128,144000,0,12000,9000,1,1,2,290,44,1,1,130,39,1,80,10,12,0,4,20,0x0,1000,24,1,1,0,0,0,0,0,0,0,7032,10000,518,200,985,20,2153,20,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2170,'I_G_ANTLER_SCARABA','Gold Antler Scaraba','Gold Antler Scaraba',136,250400,0,0,0,1,824,1644,155,102,1,149,59,229,141,45,10,12,1,4,42,0x37B5,220,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2171,'I_G_RAKE_SCARABA','Gold Rake Scaraba','Gold Rake Scaraba',139,270800,0,0,0,1,1660,1884,250,70,1,116,145,152,162,77,10,12,1,4,42,0x37B5,200,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2172,'I_G_HORN_SCARABA','Gold One-Horn Scaraba','Gold One-Horn Scaraba',130,204400,0,0,0,1,1266,1448,135,20,1,109,55,121,121,33,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2173,'I_G_HORN_SCARABA2','Gold Two-Horn Scaraba','Gold Two-Horn Scaraba',134,235600,0,0,0,1,1380,1590,150,38,1,118,72,145,134,51,10,12,0,4,22,0x37B5,150,76,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Malangdo Island
-REPLACE INTO `mob_db` VALUES (2174,'MD_VADON','Deep Sea Vadon','Deep Sea Vadon',95,120000,0,1500,1500,1,710,1384,154,21,1,63,84,60,99,45,10,12,0,5,21,0x37B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,5,943,100,757,40,717,50,0,0,0,0,4049,1);
-REPLACE INTO `mob_db` VALUES (2175,'MD_MARSE','Deep Sea Marse','Deep Sea Marse',95,120000,0,1500,1500,1,740,1456,58,218,1,51,75,30,99,30,10,12,0,5,41,0x37B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,717,200,720,10,995,12,1007,5,514,300,0,0,0,0,4095,1);
-REPLACE INTO `mob_db` VALUES (2176,'MD_CRAB','Deep Sea Crab','Deep Sea Crab',95,120000,0,1500,1500,1,600,1176,136,15,54,42,72,21,84,45,7,12,0,5,21,0x37B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,13,0,0,0,0,757,37,0,0,0,0,4153,1);
-REPLACE INTO `mob_db` VALUES (2177,'MD_CORNUTUS','Deep Sea Cornutus','Deep Sea Cornutus',100,160000,0,1500,1500,1,715,1392,342,48,1,81,135,48,51,45,10,12,0,5,21,0x37B5,200,1248,48,480,0,0,0,0,0,0,0,991,45,961,5500,911,800,757,53,2106,5,943,1000,717,100,0,0,0,0,4061,1);
-REPLACE INTO `mob_db` VALUES (2178,'MD_SHELLFISH','Deep Sea Shellfish','Deep Sea Shellfish',100,160000,0,1500,1500,1,740,1408,43,215,1,33,144,75,78,30,10,12,0,5,21,0x37B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,0,0,0,0,4273,1);
-REPLACE INTO `mob_db` VALUES (2179,'MD_KUKRE','Deep Sea Kukre','Deep Sea Kukre',100,160000,0,1500,1500,1,595,1160,123,33,1,90,66,60,96,60,10,12,0,5,21,0x37B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,507,650,928,450,623,20,0,0,0,0,4027,1);
-REPLACE INTO `mob_db` VALUES (2180,'MD_STROUF','Deep Sea Strouf','Deep Sea Strouf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2181,'MD_SWORD_FISH','Deep Sea Sword Fish','Deep Sea Sword Fish',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2182,'MD_MARC','Deep Sea Marc','Deep Sea Marc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2183,'MD_ANOLIAN','Deep Sea Anolian','Deep Sea Anolian',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2184,'MD_OBEAUNE','Deep Sea Obeaune','Deep Sea Obeaune',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2185,'MD_KAPHA','Deep Sea Kapha','Deep Sea Kapha',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2186,'COELACANTH_N_E','Coelacanth','Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2187,'COELACANTH_N_A','Dark Coelacanth','Dark Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4527,1);
-REPLACE INTO `mob_db` VALUES (2188,'COELACANTH_N_M','Weird Coelacanth','Weird Coelacanth',100,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4526,1);
-REPLACE INTO `mob_db` VALUES (2189,'COELACANTH_H_M','Mutant Coelacanth','Mutant Coelacanth',140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4528,1);
-REPLACE INTO `mob_db` VALUES (2190,'COELACANTH_H_A','Violent Coelacanth','Violent Coelacanth',140,2200000,0,0,0,1,7,10,130,65,1,1,1,1,6,30,10,12,2,5,41,0x37B5,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4529,1);
-REPLACE INTO `mob_db` VALUES (2191,'MD_SEAWEED','Seaweed','Seaweed',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2192,'MD_OCTOPUS','Octopus','Octopus',90,6000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x3795,150,768,768,576,0,0,0,0,0,0,0,1024,3000,962,3000,12615,10,0,0,0,0,0,0,0,0,0,0,0,0,4533,1);
-REPLACE INTO `mob_db` VALUES (2193,'MD_OCTOPUS_LEG','Octopus Leg','Octopus Leg',90,500000,0,4000,2000,1,778,1167,154,21,100,100,100,100,100,100,10,12,0,5,41,0x1A4,400,768,768,576,0,0,0,0,0,0,0,12613,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2194,'MD_GIANT_OCTOPUS','Giant Octupus','Giant Octopus',95,500000,0,40000,20000,2,1900,2850,154,21,100,50,50,150,150,50,10,12,2,5,41,0x37B5,400,768,768,576,0,0,0,0,0,0,0,12615,7000,12615,3000,12614,3000,12617,1000,12642,1000,12623,500,0,0,0,0,0,0,4534,1);
-REPLACE INTO `mob_db` VALUES (2195,'MD_G_KUKRE','Kukre','Kukre',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2196,'MD_G_STROUF','Strouf','Strouf',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2197,'RED_ERUMA','Red Eruma','Red Eruma',91,9900,0,1909,1909,1,620,930,102,102,1,75,40,40,75,30,10,12,1,5,41,0x89,150,768,768,576,0,0,0,0,0,0,0,6426,7000,965,4000,966,4000,1056,2000,757,200,756,50,603,10,0,0,0,0,4531,1);
-REPLACE INTO `mob_db` VALUES (2198,'KING_DRAMOH','King Dramoh','King Dramoh',117,28800,0,3350,1300,1,1320,1848,480,22,100,70,30,50,100,70,10,12,2,5,41,0x37B5,120,432,432,360,0,0,0,0,0,0,0,960,7000,943,3000,7938,500,995,100,6256,100,1523,1,13035,1,0,0,0,0,4524,1);
-REPLACE INTO `mob_db` VALUES (2199,'SIORAVA','Siorava','Siorava',87,6500,0,1200,1200,1,450,675,20,40,1,30,25,55,60,30,10,12,0,0,21,0x83,200,1872,672,480,0,0,0,0,0,0,0,958,7000,7071,3000,7005,1000,932,1000,12624,500,1202,10,13034,1,0,0,0,0,4530,1);
-# Izlude Dungeon F6
-# REPLACE INTO `mob_db` VALUES (2200,'J_TAINI','Taini','Taini',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2201,'SROPHO','Sropho','Sropho',113,24002,0,1934,1900,1,571,856,44,91,100,50,30,70,90,30,10,12,1,5,41,0x3795,135,700,600,360,0,0,0,0,0,0,0,951,7000,7938,500,756,250,12012,25,1971,25,1972,10,0,0,0,0,0,0,4522,1);
-REPLACE INTO `mob_db` VALUES (2202,'KRAKEN','Kraken','Kraken',124,5602800,0,983332,961111,3,3823,4969,55,229,150,150,150,180,180,150,10,12,2,5,81,0x37B5,150,768,768,576,491666,607,5500,617,2250,616,450,962,9000,1422,1000,1484,500,1131,300,2347,100,7444,5000,0,0,0,0,0,0,4525,1);
-REPLACE INTO `mob_db` VALUES (2203,'POT_DOFLE','Pot Dofle','Pot Dofle',115,25211,0,2650,1350,1,1088,1632,122,55,100,50,50,70,100,30,10,12,0,5,41,0x1089,135,768,768,576,0,0,0,0,0,0,0,1056,3000,7013,1000,1024,500,6257,100,969,2,617,1,0,0,0,0,0,0,4523,1);
-REPLACE INTO `mob_db` VALUES (2204,'SEDORA','Sedora','Sedora',110,22050,0,1853,1739,1,758,1137,92,55,100,50,50,30,70,30,10,12,1,5,41,0x3795,120,504,960,576,0,0,0,0,0,0,0,962,5000,1024,5000,6256,100,7939,100,2424,10,603,5,0,0,0,0,0,0,4521,1);
-# REPLACE INTO `mob_db` VALUES (2205,'TACNU','Tacnu','Tacnu',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2206,'KRAKEN_LEG','Kraken Leg','Kraken Leg',124,39190,0,0,0,2,1685,2190,128,158,100,100,100,130,130,100,10,12,2,5,81,0x37B5,150,768,768,576,0,0,0,0,0,0,0,7565,10,6253,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# REPLACE INTO `mob_db` VALUES (2207,'RACARCH','Racarch','Racarch',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2208,'WILD_RIDER','Wild Rider','Wild Rider',95,33300,0,8300,3300,1,1320,1848,480,22,100,100,30,70,100,30,10,12,2,5,41,0x37B5,150,432,432,360,0,0,0,0,0,0,0,956,7000,12624,7000,720,4000,995,2000,7938,1000,617,1000,0,0,0,0,0,0,4532,1);
-# Additional Monsters
-REPLACE INTO `mob_db` VALUES (2209,'E_THIEF_BUG','Thief Bug','Thief Bug',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2210,'XMAS_LUNATIC','Xmas Lunatic','Christmas Lunatic',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2211,'E_TEDDY_BEAR','Teddy Bear','Teddy Bear',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2150,'WATERMELON','Watermelon','Ripe Watermelon',12,10,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,3,21,0x40,2000,96,96,96,0,0,0,0,0,0,0,905,3000,7186,2000,7198,3000,6411,14000,6411,2000,6411,2000,0,0,0,0,0,0,0,0);
+-- Dewata
+REPLACE INTO `mob_db` VALUES (2151,'ALNOLDI','Rafflesia Arnoldi','Rafflesia Arnoldi',80,5149,1,1472,1280,2,378,69,80,20,40,32,24,61,85,30,10,12,1,3,22,0x3885,300,500,576,504,0,0,0,0,0,0,0,705,250,520,426,905,4500,711,300,521,250,2269,100,0,0,0,0,0,0,4515,1);
+REPLACE INTO `mob_db` VALUES (2152,'COMODO','Comodo','Comodo',81,4002,1,1178,1480,2,427,42,92,11,65,52,35,20,94,48,10,12,1,2,65,0x3885,180,500,576,504,0,0,0,0,0,0,0,6403,5000,517,9000,911,9000,908,5000,0,0,0,0,0,0,0,0,0,0,4516,1);
+REPLACE INTO `mob_db` VALUES (2153,'CENDRAWASIH','Cendrawasih','Cendrawasih',84,5556,1,1442,1486,1,297,170,72,33,58,77,51,58,92,45,10,12,1,8,24,0x3885,200,576,720,360,0,0,0,0,0,0,0,6405,9000,7063,8000,916,9000,0,0,0,0,0,0,0,0,0,0,0,0,4517,1);
+REPLACE INTO `mob_db` VALUES (2154,'BANASPATY','Banaspaty','Banaspaty',85,4680,1,1610,1088,1,200,182,63,89,61,78,35,77,79,20,10,12,0,0,63,0x3885,250,1152,2304,432,0,0,0,0,0,0,0,1003,1000,912,2000,985,1500,756,1500,1752,500,0,0,0,0,0,0,0,0,4518,1);
+REPLACE INTO `mob_db` VALUES (2155,'BUTOIJO','Butoijo','Butoijo',88,7524,1,1490,1552,1,358,102,77,12,66,65,30,30,106,44,10,12,2,6,43,0x3885,170,576,768,432,0,0,0,0,0,0,0,938,2750,517,500,520,450,0,0,0,0,0,0,0,0,0,0,0,0,4519,1);
+REPLACE INTO `mob_db` VALUES (2156,'LEAK','Leak','Leak',94,1266000,1,472800,300120,2,3723,1284,280,128,122,125,30,85,186,55,10,12,2,6,47,0x37B5,130,576,576,360,0,617,5000,617,5000,617,5000,1422,10,617,2500,607,1250,15032,500,12738,3500,518,2500,969,2000,0,0,0,0,4520,1);
+REPLACE INTO `mob_db` VALUES (2157,'G_BANASPATY','Butoijo','Banaspaty',85,4680,1,0,0,1,182,182,63,89,61,78,35,77,66,20,10,12,0,0,63,0x83,250,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Homunculus S Summons
+REPLACE INTO `mob_db` VALUES (2158,'S_HORNET','Hornet','Hornet',95,5000,1,0,0,1,381,494,7,1,62,54,54,65,76,55,10,12,0,4,24,0x83,150,1292,792,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2159,'S_GIANT_HORNET','Giant Hornet','Giant Hornet',110,11960,0,0,0,1,456,579,80,43,117,65,67,72,77,34,10,12,0,4,24,0x83,155,1292,792,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2160,'S_LUCIOLA_VESPA','Luciola Vespa','Luciola Vespa',130,16466,1,0,0,1,677,831,59,55,88,89,55,32,119,59,10,12,1,4,24,0x83,110,1000,864,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Nightmare Scaraba Hole
+REPLACE INTO `mob_db` VALUES (2161,'I_HORN_SCARABA','Scaraba','Uni Horn Scaraba',130,204400,1,17880,16044,1,1270,590,135,10,84,109,115,31,111,53,10,12,0,4,22,0x3395,200,384,672,360,0,0,0,0,0,0,0,6324,6500,1433,10,12735,100,7939,100,993,100,617,10,12107,10,0,0,0,0,4508,1);
+REPLACE INTO `mob_db` VALUES (2162,'I_HORN_SCARABA2','Scaraba','Horn Scaraba',134,235600,1,20120,18196,1,690,3090,150,15,44,28,72,125,184,51,10,12,0,4,22,0x3395,150,336,360,360,0,0,0,0,0,0,0,6323,6500,13061,10,12735,100,7939,100,993,100,617,10,12107,10,0,0,0,0,4508,1);
+REPLACE INTO `mob_db` VALUES (2163,'I_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,250400,1,20320,21020,1,412,3211,155,20,23,59,59,209,191,45,10,12,1,4,42,0x3395,200,504,624,360,0,0,0,0,0,0,0,6322,6500,1930,10,12735,100,7939,100,993,10,617,10,12107,10,0,0,0,0,4508,1);
+REPLACE INTO `mob_db` VALUES (2164,'I_RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,270800,1,22960,23980,1,1830,630,250,25,94,136,145,42,152,97,10,12,1,4,42,0x3395,140,588,768,480,0,0,0,0,0,0,0,6321,6500,16010,10,12735,100,15000,100,993,100,617,10,12107,10,0,0,0,0,4508,1);
+REPLACE INTO `mob_db` VALUES (2165,'I_QUEEN_SCARABA','Queen Scaraba','Queen Scaraba',140,6441600,1,1210220,612200,3,4889,6440,350,220,100,88,82,149,211,144,10,12,2,4,62,0x37B5,120,864,1000,360,0,616,5000,616,5000,616,5000,6326,5000,1191,700,2364,700,1196,400,18103,500,12608,1000,12539,1000,12103,100,0,0,4509,1);
+REPLACE INTO `mob_db` VALUES (2166,'I_HORN_SCARABA_EGG','Scaraba Egg','Uni Horn Scaraba Egg',125,126000,1,12000,9000,0,1,1,280,55,1,1,130,34,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2167,'I_HORN_SCARABA2_EGG','Scaraba Egg','Horn Scaraba Egg',126,132000,1,12000,9000,0,1,1,300,62,1,1,130,48,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2168,'I_ANTLER_SCARABA_EGG','Antler Scaraba Egg','Antler Scaraba Egg',127,138000,1,12000,9000,0,1,1,285,180,1,1,130,82,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2169,'I_RAKE_SCARABA_EGG','Rake Scaraba Egg','Rake Scaraba Egg',128,144000,1,12000,9000,0,1,1,340,44,1,1,130,39,1,80,10,12,0,4,22,0x0,2000,96,1,480,0,0,0,0,0,0,0,7032,5000,518,100,985,100,2153,500,617,10,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2170,'I_G_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,250400,1,0,0,1,412,3211,155,15,23,59,59,209,191,45,10,12,1,4,42,0x3395,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2171,'I_G_RAKE_SCARABA','Rake Scaraba','Rake Scaraba',139,270800,1,0,0,1,1830,630,250,20,94,136,145,42,152,97,10,12,1,4,42,0x3395,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2172,'I_G_HORN_SCARABA','Scaraba','Rake Scaraba',130,204400,1,0,0,1,1270,590,135,10,84,109,115,31,111,53,10,12,0,4,22,0x3395,200,384,672,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2173,'I_G_HORN_SCARABA2','Scaraba','Horn Scaraba',134,235600,1,0,0,1,690,3090,150,15,44,28,72,125,184,51,10,12,0,4,22,0x3395,150,336,360,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Malangdo Island
+REPLACE INTO `mob_db` VALUES (2174,'MD_VADON','Ancient Crustacean','Ancient Crustacea',95,120000,1,1500,1500,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,21,0x33B5,300,1632,432,540,0,0,0,0,0,0,0,991,40,960,9000,910,3000,2313,6,943,100,757,40,0,0,12615,4,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2175,'MD_MARSE','Deepsea Marse','Deepsea Marse',95,120000,1,1500,1500,1,500,820,58,218,133,37,85,156,133,60,10,12,0,5,41,0x33B5,300,1956,756,528,0,0,0,0,0,0,0,1024,9000,962,3000,0,0,720,10,995,12,1007,6,514,300,12615,4,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2176,'MD_CRAB','Deepsea Crab','Deepsea Crab',95,120000,1,1500,1500,1,696,234,136,15,122,54,84,37,98,65,7,12,0,5,21,0x33B5,200,992,792,360,0,0,0,0,0,0,0,964,5500,960,1500,7049,700,1001,14,0,0,0,0,757,38,12615,4,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2177,'MD_CORNUTUS','Deepsea Cornutus','Deepsea Cornutus',100,160000,1,1500,1500,1,1129,237,342,48,122,87,135,66,137,75,10,12,0,5,21,0x33B5,200,1248,48,480,0,0,0,0,0,0,0,991,46,961,5500,911,800,757,54,2106,6,943,1000,0,0,12615,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2178,'MD_SHELLFISH','Deepsea Shellfish','Deepsea Shellfish',100,160000,1,1500,1500,1,720,1122,43,215,72,31,68,225,166,60,10,12,0,5,41,0x33B5,200,864,864,384,0,0,0,0,0,0,0,965,5500,966,1000,7049,500,1056,1000,1001,10,0,0,757,18,12615,4,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2179,'MD_KUKRE','Ancient Kukre','Ancient Kukre',100,160000,1,1500,1500,1,975,118,123,33,125,80,112,60,102,30,10,12,0,4,21,0x33B5,150,1776,576,288,0,0,0,0,0,0,0,991,30,955,5500,910,400,528,500,0,0,928,450,623,20,12615,4,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2180,'MD_STROUF','Ancient Sea Lord','Ancient Sea Lord',145,400000,1,2000,2000,1,1200,3500,67,221,149,126,81,252,183,66,10,12,2,5,61,0x33B5,150,1872,672,384,0,0,0,0,0,0,0,951,5336,756,116,0,0,1461,2,949,3000,720,20,956,1500,12614,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2181,'MD_SWORD_FISH','Ancient Sword Fish','Ancient Sword Fish',145,400000,1,2000,2000,1,1849,235,255,17,155,156,115,85,194,65,10,12,2,5,41,0x33B5,200,1968,768,384,0,0,0,0,0,0,0,995,10,963,9000,756,34,2257,2,757,50,0,0,956,600,12614,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2182,'MD_MARC','Ancient Seahorse','Ancient Seahorse',145,400000,1,2000,2000,1,1423,331,255,51,150,145,221,83,148,66,10,12,1,5,41,0x33B5,150,1272,72,480,0,0,0,0,0,0,0,995,18,956,9000,756,96,951,1000,720,10,0,0,509,700,12612,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2183,'MD_ANOLIAN','Mutant Anolian','Mutant Anolian',151,700000,1,2200,2200,1,2122,312,268,22,177,188,205,126,198,61,10,12,1,5,41,0x33B5,190,900,500,864,0,0,0,0,0,0,0,7003,4850,1754,2000,0,0,10019,10,16003,6,2625,2,984,134,12614,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2184,'MD_OBEAUNE','Deepsea Mermaid','Deepsea Mermaid',151,700000,1,2200,2200,1,1502,3845,68,326,166,87,101,233,196,55,10,12,1,6,61,0x33B5,200,1872,672,288,0,0,0,0,0,0,0,995,14,950,9000,0,0,2326,10,720,10,951,500,748,30,12614,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2185,'MD_KAPHA','Transform Kapha','Transform Kapha',151,700000,1,2200,2200,1,2590,256,261,58,167,209,128,61,191,20,10,12,1,6,41,0x33B5,165,2012,1728,672,0,0,0,0,0,0,0,7149,6500,7053,3500,0,0,521,2300,708,2,1915,10,13008,6,12612,6,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2186,'COELACANTH_N_E','Coelacanth','Coelacanth',100,1200000,1,400000,400000,1,1290,1290,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,4000,12615,4000,12623,1400,12614,4000,12615,4000,12615,4000,12615,4000,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2187,'COELACANTH_N_A','Dark Coelacanth','Dark Coelacanth',100,2200000,1,1000000,1000000,1,1890,1890,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,10000,12615,10000,12623,1500,12614,10000,12615,10000,12615,10000,0,0,0,0,4527,1);
+REPLACE INTO `mob_db` VALUES (2188,'COELACANTH_N_M','Grotesque Coelacanth','Grotesque Coelacanth',100,2200000,1,1000000,1000000,1,1890,1890,280,280,160,160,160,160,160,160,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,10000,12614,10000,12615,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4526,1);
+REPLACE INTO `mob_db` VALUES (2189,'COELACANTH_H_M','Mutant Coelacanth','Mutant Coelacanth',155,5200000,1,3000000,3000000,1,5500,5500,280,280,260,260,260,260,260,260,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,14000,6423,14000,12612,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4528,1);
+REPLACE INTO `mob_db` VALUES (2190,'COELACANTH_H_A','Ferocious Coelacanth','Ferocious Coelacanth',155,5200000,1,3000000,3000000,1,5500,5500,280,280,260,260,260,260,260,260,10,12,2,5,41,0x37B5,165,864,864,432,0,0,0,0,0,0,0,12617,14000,6423,10000,12612,10000,12623,10000,12614,10000,12615,10000,12615,10000,0,0,0,0,4529,1);
+REPLACE INTO `mob_db` VALUES (2191,'MD_SEAWEED','Seaweed','Seaweed',100,100000,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,5,21,0x1E4,2000,384,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2192,'MD_OCTOPUS','Small Octopus','Small Octopus',90,6000,1,4000,2000,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,41,0x33B5,300,576,2160,504,0,0,0,0,0,0,0,1024,5000,962,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4533,1);
+REPLACE INTO `mob_db` VALUES (2193,'MD_OCTOPUS_LEG','Octupus Leg','Octopus Leg',90,500000,1,4000,2000,1,778,225,154,21,145,91,138,60,113,45,10,12,0,5,41,0x1A4,300,432,720,360,0,0,0,0,0,0,0,1024,9000,962,5000,938,5000,0,0,0,0,0,0,0,0,12615,2,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2194,'MD_GIANT_OCTOPUS','Giant Octopus','Giant Octopus',95,500000,1,40000,20000,1,1900,1200,154,21,145,91,138,60,113,45,10,12,2,5,41,0x37B5,300,576,1584,360,0,0,0,0,0,0,0,12618,3000,12614,1000,12623,500,13534,3000,0,0,0,0,12615,4000,12615,4000,0,0,4534,1);
+REPLACE INTO `mob_db` VALUES (2195,'MD_G_KUKRE','Ancient Kukre','Ancient Kukre',100,160000,1,0,0,1,975,118,123,33,125,80,112,60,102,30,10,12,0,4,21,0x3395,150,1776,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2196,'MD_G_STROUF','Ancient Sea Lord','Ancient Sea Lord',145,400000,1,0,0,1,1200,3500,67,221,149,126,81,252,183,66,10,12,2,5,61,0x33B5,150,1872,672,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2197,'RED_ERUMA','Red Eruma','Red Eruma',91,9900,1,1908,1908,1,620,290,102,102,77,90,88,21,99,21,10,12,1,5,41,0x1089,140,768,1224,432,0,0,0,0,0,0,0,965,5000,966,2000,1056,3000,757,100,756,100,603,20,6426,1400,0,0,0,0,4531,1);
+REPLACE INTO `mob_db` VALUES (2198,'KING_DRAMOH','King Kray','King Kray',117,28800,0,6700,2600,1,1320,330,480,22,119,44,150,89,130,44,10,12,2,5,41,0x37B5,140,576,720,720,0,0,0,0,0,0,0,6256,100,960,5000,943,5000,1523,50,7938,200,995,50,991,50,0,0,0,0,4524,1);
+REPLACE INTO `mob_db` VALUES (2199,'SIORAVA','Siorava','Siorava',87,6500,1,1200,1200,1,450,210,20,40,10,40,66,70,67,10,10,12,0,0,21,0x83,250,1536,1296,576,0,0,0,0,0,0,0,12624,1400,7005,1000,932,1000,958,1000,7071,1000,13034,2,1202,2,0,0,0,0,4530,1);
+-- Izlude Dungeon F6
+-- REPLACE INTO `mob_db` VALUES (2200,'J_TAINI','Taini','Taini',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2201,'SROPHO','Sropho','Squidgitte',113,24002,0,3868,3800,1,571,565,44,91,77,53,33,133,99,66,10,12,1,5,41,0x3795,200,768,792,432,0,0,0,0,0,0,0,951,5000,1972,4,1971,4,12012,100,756,100,7938,100,991,50,0,0,0,0,4522,1);
+REPLACE INTO `mob_db` VALUES (2202,'KRAKEN','Kraken','Kraken',124,5602800,0,1966664,1922222,3,3823,1830,55,229,196,99,165,117,162,99,10,12,2,5,81,0x37B5,130,432,864,360,491666,617,5000,616,5000,616,5000,962,5000,1484,500,1131,500,1422,500,2347,500,7444,5000,995,500,0,0,0,0,4525,1);
+REPLACE INTO `mob_db` VALUES (2203,'POT_DOFLE','Pot Dofle','Octo Pot',115,25211,0,5300,2700,1,1088,212,122,55,133,54,78,33,114,26,10,12,0,5,41,0x1089,180,1008,936,432,0,0,0,0,0,0,0,6257,10,7013,1000,969,6,1056,1000,1024,1000,617,20,991,50,0,0,0,0,4523,1);
+REPLACE INTO `mob_db` VALUES (2204,'SEDORA','Sedora','Lamp Rey',110,22050,0,3706,3478,1,758,444,92,55,126,118,61,107,109,84,10,12,1,5,41,0x3795,150,768,792,432,0,0,0,0,0,0,0,962,5000,2424,6,6256,30,7939,30,1024,3000,603,10,991,50,0,0,0,0,4521,1);
+-- REPLACE INTO `mob_db` VALUES (2205,'TACNU','Tacnu','Tacnu',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2206,'KRAKEN_LEG','Kraken Leg','Kraken Tentacle',124,39190,0,0,0,1,1685,555,128,158,130,92,53,128,189,54,10,12,2,5,61,0x37B5,2000,576,864,240,0,0,0,0,0,0,0,7565,2,6253,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- REPLACE INTO `mob_db` VALUES (2207,'RACARCH','Racarch','Racarch',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2208,'WILD_RIDER','Wild Rider','Wild Rider',95,33300,0,8300,3300,1,1320,330,480,22,89,124,89,56,112,56,10,12,2,5,41,0x37B5,120,432,792,360,0,0,0,0,0,0,0,12624,5000,956,5000,720,5000,7938,1000,617,2000,995,1000,0,0,0,0,0,0,4532,1);
+-- Additional Monsters
+REPLACE INTO `mob_db` VALUES (2209,'E_THIEF_BUG','Thief Bug','Agile Shadow',1,10,1,0,0,1,1,1,1,1,1,100,1,1,1,1,10,12,0,4,60,0x181,100,1288,288,768,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2210,'XMAS_LUNATIC','Xmas Lunatic','Christmas Snow Rabbit',1,100,1,0,0,1,1,1,0,0,10,1,1,1,1,1,10,12,0,2,20,0x83,200,1456,456,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2211,'E_TEDDY_BEAR','Teddy Bear','Christmas Teddy Bear',10,10,1,0,0,1,1,1,0,1,1,1,1,1,100,1,10,12,0,0,20,0x83,160,512,780,504,0,0,0,0,0,0,0,603,1000,644,3000,530,1000,529,1000,644,500,617,10,7034,1000,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2212,'E_KNIGHT_OF_WINDSTORM','Knight of Windstorm','Stormy Knight',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2213,'M_WANDER_MAN','Wander Man','Wanderer',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2214,'M_WICKED_NYMPH','Wicked Nymph','Evil Nymph',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2215,'M_KASA','Kasa','Kasa',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2216,'M_SALAMANDER','Salamander','Salamander',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2217,'M_TEDDY_BEAR','Teddy Bear','Teddy Bear',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2213,'M_WANDER_MAN','Wander Man','Wanderer',81,8614,220,0,0,2,1100,200,60,20,80,110,63,51,85,90,10,12,1,6,24,0x83,100,672,500,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2214,'M_WICKED_NYMPH','Wicked Nymph','Evil Nymph',85,6157,256,0,0,2,420,200,30,45,40,50,40,92,60,110,10,12,1,6,67,0x83,200,637,1008,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2215,'M_KASA','Kasa','Kasa',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,2,0,63,0x83,150,800,600,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2216,'M_SALAMANDER','Salamander','Salamander',87,9517,260,0,0,2,900,200,60,68,90,80,65,45,87,95,10,12,2,0,63,0x83,160,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2217,'M_TEDDY_BEAR','Teddy Bear','Teddy Bear',85,14493,243,0,0,1,600,200,100,70,60,20,85,50,75,130,10,12,0,0,60,0x83,200,512,780,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2218,'E_OCTOPUS_LEG','Octopus Leg','Octopus Tentacle',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2219,'E_GIANT_OCTOPUS','Giant Octopus','Giant Octopus',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2220,'E_QUVE','Quve','Quve',1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Lighthalzen Biolab F4
-REPLACE INTO `mob_db` VALUES (2221,'RANDEL','Randel','Randel',141,478745,0,32367,24055,1,3055,4277,180,56,142,69,86,49,132,55,10,12,1,7,66,0x3095,170,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,617,10,1435,1,2162,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2222,'FLAMEL','Flamel','Flamel',141,316468,0,31166,21445,1,1074,1503,93,40,138,79,62,53,82,48,10,12,1,7,63,0x3095,180,76,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,984,100,617,10,16010,10,15044,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2223,'CELIA','Celia','Celia',141,253145,0,22107,19017,1,1612,2256,74,312,108,78,55,144,139,49,10,12,1,7,68,0x3295,150,1152,384,288,0,0,0,0,0,0,0,7345,3000,6470,300,6471,300,985,100,1654,10,2853,10,18111,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2224,'CHEN','Chen','Chen',141,218721,2000,25684,19810,1,2501,3501,125,56,126,74,71,123,99,65,10,12,1,6,81,0x3295,180,1152,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1814,10,1659,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2225,'GERTIE','Gertie','Gertie',141,266926,0,24267,20233,1,3684,5157,108,10,145,87,59,67,127,76,10,12,1,6,85,0x3195,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,617,10,13061,10,18109,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2226,'ALPHOCCIO','Alphoccio','Alphoccio',142,256202,0,22192,20322,1,1273,1782,84,15,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,984,100,617,10,1930,10,2161,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2227,'TRENTINI','Trentini','Trentini',142,204962,0,15995,13248,1,1070,1498,70,12,121,126,67,80,165,42,10,12,1,7,64,0x3095,180,76,384,288,0,0,0,0,0,0,0,7347,2000,6470,300,6471,300,985,100,1984,10,2465,10,2892,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2228,'G_RANDEL','Paladin Randel','Paladin Randel',160,3870000,0,18000,10000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2229,'G_FLAMEL','Creator Flamel','Creator Flamel',160,2230000,0,18000,10000,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2230,'G_CELIA','Professor Celia','Professor Celia',160,1847804,0,18000,10000,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2231,'G_CHEN','Champion Chen','Champion Chen',160,2249350,5000,18000,10000,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2232,'G_GERTIE','Stalker Gertie','Stalker Gertie',160,2057279,0,18000,10000,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2233,'G_ALPHOCCIO','Clown Alphoccio','Clown Alphoccio',160,1894278,0,18000,10000,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6223,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2234,'G_TRENTINI','Gypsy Trentini','Gypsy Trentini',160,1894278,0,18000,10000,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,0,0,0,0,0,0,0,6224,100,617,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2235,'B_RANDEL','Paladin Randel','Paladin Randel',160,6870000,0,4621500,2664000,1,3055,4277,667,151,303,165,181,110,178,66,10,12,1,7,86,0x37B5,100,76,384,288,2310750,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13062,5000,2160,5000,1490,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2236,'B_FLAMEL','Creator Flamel','Creator Flamel',160,4230000,0,5223570,2630354,1,1074,1503,253,133,275,148,156,72,177,60,10,12,1,7,83,0x37B5,100,76,384,288,2611785,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1387,5000,1392,5000,1393,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2237,'B_CELIA','Professor Celia','Professor Celia',160,3847804,0,5027308,2509792,1,1612,2256,201,543,165,190,142,236,199,93,10,12,1,7,88,0x37B5,150,1152,384,288,2513654,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,2854,5000,1584,5000,2582,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2238,'B_CHEN','Champion Chen','Champion Chen',160,4249350,5000,5113568,2934974,1,2501,3501,216,134,172,150,164,203,155,88,10,12,1,6,81,0x37B5,125,1152,384,288,2556784,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,1285,5000,1813,5000,16017,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2239,'B_GERTIE','Stalker Gertie','Stalker Gertie',160,4057279,0,4420698,2691274,1,3684,5157,251,107,211,181,114,83,225,60,10,12,1,6,85,0x37B5,100,76,384,288,2210349,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6224,9000,13069,5000,13070,5000,1291,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2240,'B_ALPHOCCIO','Clown Alphoccio','Clown Alphoccio',160,3894278,0,4226036,2468972,1,1273,1782,201,109,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2113018,617,5500,603,2250,732,450,12623,9000,12616,9000,616,9000,6223,9000,18103,5000,1290,5000,1913,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2241,'B_TRENTINI','Gypsy Trentini','Gypsy Trentini',160,3894278,0,4463758,2563096,1,1070,1498,181,112,176,258,155,132,309,95,10,12,1,7,84,0x37B5,100,76,384,288,2231879,0,0,0,0,0,0,12623,9000,12616,9000,616,9000,6224,9000,18103,5000,18110,5000,1963,5000,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2242,'MD_DESERT_WOLF','Desert Wolf','Desert Wolf',135,551578,0,0,0,1,1040,1158,151,39,93,69,63,61,82,42,10,12,1,6,20,0x37B5,200,1120,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2243,'MD_DESERT_WOLF_B','Desert Wolf','Desert Wolf',130,274531,0,0,0,1,66,82,13,0,10,12,8,5,17,7,10,12,0,6,20,0x37B5,300,1600,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Fix me! 2244 needs new info.
-REPLACE INTO `mob_db` VALUES (2244,'QUEST_CHEN','Champion Chen','Champion Chen',99,15000,2000,0,0,1,1700,3000,216,134,126,74,71,123,99,65,10,12,1,7,68,0x37B5,180,1152,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2245,'EXP_TEST','Exp Test','Exp Test',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2246,'Q_WOOTAN_FIGHTER','Wootan Fighter','Wootan Fighter',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2247,'Q_INCREASE_SOIL','Increase Soil','Mi Gao',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2248,'GOLDPORING','Gold Poring','Gold Poring',1,15,0,0,0,1,1,2,160,5,1,1,1,1,6,30,10,12,1,3,21,0xC3,400,1872,672,480,0,0,0,0,0,0,0,7602,3000,7470,3000,6012,3000,6485,3000,6486,3000,6487,3000,6487,3000,0,0,0,0,0,0);
-# Hall of Abyss Guild Dungeon
-REPLACE INTO `mob_db` VALUES (2249,'PYURIEL','Pyuriel','Pyuriel',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2250,'LORA','Lora','Lora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2251,'GIOIA','Gioia','Gioia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2252,'ELVIRA','Elvira','Elvira',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2253,'DAEHYON','Daehyon','Daehyon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2254,'SOHEON','Soheon','Soheon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2255,'KADES','Kades','Kades',143,2466698,0,0,0,1,700,1000,479,262,100,100,100,100,100,100,10,12,2,0,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2256,'RUDO','Rudo','Rudo',135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2220,'E_QUVE','Quve','Messenger of Devil',10,20,1,0,0,1,13,8,1,0,1,1,1,50,100,100,10,12,0,1,29,0x83,150,912,1248,576,0,0,0,0,0,0,0,558,10000,561,6000,529,16000,530,16000,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Lighthalzen Biolab F4
+REPLACE INTO `mob_db` VALUES (2221,'RANDEL','Randal','Randel',141,478745,1,64734,48110,1,3055,1230,180,56,158,74,213,50,185,65,10,12,1,7,66,0x3095,180,76,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,617,200,985,200,1435,20,2162,20,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2222,'FLAMEL','Flamel','Flamel',141,316468,1,52794,46160,1,2017,1602,86,12,141,78,70,81,147,51,10,12,1,7,63,0x3095,180,1152,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,617,200,984,200,15044,20,16010,2,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2223,'CELIA','Celia','Celia',141,253145,1,44214,38034,1,1612,2450,74,312,136,99,61,121,121,49,10,12,1,7,68,0x3095,180,1152,864,288,0,0,0,0,0,0,0,7345,4000,6471,2,2853,40,985,200,18111,20,1654,2,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2224,'CHEN','Chen','Chen',141,279562,25,51368,39620,1,2501,1248,125,56,122,81,83,130,201,61,10,12,1,6,81,0x3195,180,76,768,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,984,200,1830,20,1814,10,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2225,'GERTIE','Gertie','Gertie',141,266926,1,48534,40466,1,3684,1207,108,10,180,125,55,51,211,45,10,12,1,6,85,0x3195,150,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,985,200,18109,20,13061,20,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2226,'ALPHOCCIO','Alphoccio','Alphoccio',142,256202,1,44384,40644,1,1273,3076,84,15,120,97,71,181,81,81,10,12,1,7,64,0x3095,180,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,617,200,984,200,2161,20,1930,20,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2227,'TRENTINI','Trentini','Trentini',142,204962,1,31990,26496,2,1070,3206,70,12,115,81,65,194,95,76,10,12,1,7,64,0x3095,180,76,864,288,0,0,0,0,0,0,0,6471,2,7347,4000,2465,40,985,200,2892,20,1984,20,6470,300,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2228,'G_RANDEL','Paladin Randel','Randel',160,3163000,1,0,0,1,5537,3017,667,151,291,155,201,101,265,66,10,12,1,7,86,0x37B5,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2229,'G_FLAMEL','Biochemist Flamel','Flamel',160,2531750,1,0,0,1,2355,2514,253,113,159,175,157,170,237,71,10,12,1,7,83,0x37B5,100,1152,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2230,'G_CELIA','Scholar Celia','Celia',160,2025160,1,0,0,1,2481,3114,201,543,165,148,171,155,267,85,10,12,1,7,68,0x37B5,100,1152,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2231,'G_CHEN','Champion Chen','Chen',160,2236500,1553,0,0,1,3617,1947,216,134,180,165,165,50,298,66,10,12,1,7,81,0x37B5,100,76,768,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2232,'G_GERTIE','Stalker Gertie','Gertie',160,2135410,1,0,0,1,6162,1274,251,107,217,315,127,51,333,61,10,12,1,7,85,0x37B5,100,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2233,'G_ALPHOCCIO','Minstel Alphoccio','Alphoccio',160,2049620,1,0,0,1,2641,3749,201,109,219,161,130,107,270,99,10,12,1,7,84,0x37B5,150,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2234,'G_TRENTINI','Gypsy Trentini','Trentini',160,2049620,1,0,0,2,2016,4036,181,112,167,247,165,217,233,61,10,12,1,7,84,0x37B5,150,76,864,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2235,'B_RANDEL','Paladin Randel','Randel',160,6870000,1,7348978,3908302,1,5537,3017,667,151,291,155,201,101,265,66,10,12,1,7,86,0x37B5,100,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,2160,4000,13062,4000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2236,'B_FLAMEL','Biochemist Flamel','Flamel',160,4230000,1,5223570,2630354,1,2355,2514,253,113,159,175,157,170,237,71,10,12,1,7,83,0x37B5,100,1152,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,1393,4000,1392,4000,1387,4000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2237,'B_CELIA','Scholar Celia','Celia',160,3847804,1,5027308,2509792,1,2481,3114,201,543,165,148,171,155,267,85,10,12,1,7,68,0x37B5,100,1152,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,2854,4000,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2238,'B_CHEN','Champion Chen','Chen',160,4249350,1553,5113568,2934974,1,3617,1947,216,134,180,165,165,50,298,66,10,12,1,6,81,0x37B5,100,76,768,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,1285,4000,1813,4000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2239,'B_GERTIE','Stalker Gertie','Gertie',160,4057279,1,4420698,2691274,1,6162,1274,251,107,217,315,127,51,333,61,10,12,1,6,85,0x37B5,100,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,13070,4000,13069,4000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2240,'B_ALPHOCCIO','Minstel Alphoccio','Alphoccio',160,3894278,1,4226036,2468972,1,2641,3749,201,109,219,161,130,107,270,99,10,12,1,7,84,0x37B5,150,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6223,4000,18103,4000,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2241,'B_TRENTINI','Gypsy Trentini','Trentini',160,3894278,1,4463758,2563096,2,2016,4036,181,112,167,247,165,217,233,61,10,12,1,7,84,0x37B5,150,76,864,288,0,12246,5000,617,5000,6471,5000,12623,10000,12616,10000,616,6000,6224,4000,1985,4000,18103,4000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2242,'MD_DESERT_WOLF','Desert Wolf','Desert Wolf',135,551578,1,0,0,1,676,59,151,39,151,69,63,72,98,42,10,12,1,6,20,0x83,150,200,420,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2243,'MD_DESERT_WOLF_B','Baby Desert Wolf','Baby Desert Wolf',130,274531,1,0,0,1,33,8,13,123,101,12,8,121,17,7,10,12,0,6,20,0x83,130,200,900,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2244,'QUEST_CHEN','Champion Chen','Dark Martial Arts Master',130,300,1,0,0,1,103,23,25,56,122,81,83,130,201,61,10,12,1,1,81,0x83,300,200,768,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2245,'EXP_TEST','EXP_TEST','Experience Test',1,100,1,200,200,1,8,1,2,5,6,1,1,0,6,5,10,12,1,7,21,0x0,400,1000,480,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2246,'Q_WOOTAN_FIGHTER','Q_WOOTAN_FIGHTER','Wootan Fighter',95,9000,1,2800,4000,1,255,36,103,8,63,14,36,5,62,15,10,12,1,7,43,0x0,200,912,1344,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2247,'Q_INCREASE_SOIL','Q_INCREASE_SOIL','Mi Gao',95,20000,1,2800,4000,1,365,30,112,39,67,23,41,49,94,30,10,12,1,0,62,0x0,445,106,1056,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2248,'GOLDPORING','Golden Poring','Golden Poring',1,15,1,0,0,0,0,0,160,5,1,1,1,1,999,1,10,12,1,3,21,0x81,400,1872,672,480,0,0,0,0,0,0,0,6012,4000,6485,4000,6486,4000,6487,4000,7470,4000,7602,4000,12696,10000,12697,10000,0,0,0,0);
+-- Hall of Abyss Guild Dungeon
+REPLACE INTO `mob_db` VALUES (2249,'PYURIEL','Pyuriel','Angry Student Pyuriel',141,2205000,1,3000246,2400000,2,2515,1513,388,206,196,131,125,276,401,156,10,12,1,7,83,0x37B5,100,576,1380,360,750061,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2250,'LORA','Lora','Warrior Laura',136,500255,1,33134,27576,2,1985,1701,224,58,144,92,86,69,149,68,10,12,0,7,43,0x3795,130,1600,432,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2251,'GIOIA','Gioia','Gioia',146,2507989,1,3006902,2607094,1,1105,2601,436,218,180,201,156,190,299,77,10,12,2,0,84,0x37B5,100,1344,2592,432,751725,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2252,'ELVIRA','Elvira','Elvira',138,501765,1,35694,27138,3,699,2101,171,68,189,105,92,85,198,72,10,12,0,0,64,0x3795,120,880,1224,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2253,'DAEHYON','Daehyon','General Daehyon',142,2500148,1,3003122,2548440,2,2710,1410,494,123,116,123,154,99,217,98,10,12,2,7,62,0x37B5,100,900,792,432,750780,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2254,'SOHEON','Soheon','Samurai Soheon',137,502015,1,31430,25080,2,1591,1036,210,178,118,244,98,126,246,102,10,12,1,7,64,0x3795,120,1000,1008,432,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2255,'KADES','Kades','Dark Guardian Kades',143,2505000,1,3208000,2620000,1,2201,2001,479,262,191,223,187,155,362,163,10,12,2,0,67,0x37B5,100,900,648,480,802000,616,5000,617,5000,617,5000,12623,200,617,6000,616,1000,12675,6000,12679,4000,12680,2000,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2256,'RUDO','Rudo','Rudo',135,501489,1,27266,24818,1,1401,1501,196,96,106,65,61,42,125,72,10,12,0,8,66,0x3795,120,1576,504,360,0,0,0,0,0,0,0,12623,10,617,6000,616,100,12675,100,12679,1000,12680,1000,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2257,'I_PIAMETTE','Piamette','Piamette',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2258,'I_PIAMETTE_','Piamette','Piamette',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2259,'I_GARDEN_KEEPER','Garden Keeper','Garden Keeper',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1413,19 +1411,19 @@ REPLACE INTO `mob_db` VALUES (2273,'I_WHIKEBAIN_','Whikebain','Wickebine Tres',1
REPLACE INTO `mob_db` VALUES (2274,'I_YGNIZEM','Ygnizem','Egnigem Cenia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2275,'I_YGNIZEM_','Ygnizem','Egnigem Cenia',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2276,'I_DOPPELGANGER','Doppelganger','Doppelganger',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2277,'G_LORA','Lora','Lora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2278,'G_ELVIRA','Elvira','Elvira',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2279,'G_SOHEON','Soheon','Soheon',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2280,'G_RUDO','Rudo','Rudo',135,501489,0,0,0,1,700,1000,96,196,100,100,100,100,100,100,10,12,0,8,66,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2281,'GLD_DARK_SHADOW','Abysmal Dark Shadow','Abysmal Dark Shadow',147,214109,0,7630,5721,1,902,1059,140,44,155,126,89,108,142,76,10,12,0,0,87,0x37B5,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,5,6089,1000,2783,5,1385,10,6224,10,0,0,0,0,4449,1);
-REPLACE INTO `mob_db` VALUES (2282,'GLD_DARK_FRAME','Abysmal Dark Frame','Abysmal Dark Frame',145,200018,0,992,1115,1,318,348,81,37,69,37,36,10,53,5,10,12,1,6,67,0x37B5,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,0,0,0,0,1000,80,747,3,0,0,0,0,4170,1);
-REPLACE INTO `mob_db` VALUES (2283,'GLD_DARK_PRIEST','Abysmal Dark Priest','Abysmal Dark Priest',141,191878,0,2430,1667,2,355,554,62,41,5,60,41,89,78,42,10,12,1,6,89,0x37B5,200,864,1252,476,0,0,0,0,0,0,0,1557,5,2626,30,505,100,716,450,1009,50,2319,5,1241,1,0,0,0,0,4171,1);
-REPLACE INTO `mob_db` VALUES (2284,'GLD_KOBOLD_1','Abysmal Kobold','Abysmal Kobold',143,180483,0,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x37B5,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (2285,'GLD_KOBOLD_2','Abysmal Kobold','Abysmal Kobold',142,181340,0,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x37B5,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (2286,'GLD_KOBOLD_3','Abysmal Kobold','Abysmal Kobold',141,182830,0,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x37B5,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1);
-REPLACE INTO `mob_db` VALUES (2287,'GLD_KOBOLD_ARCHER','Abysmal Kobold Archer','Abysmal Kobold Archer',142,180530,0,2160,2620,9,586,619,84,5,99,39,48,30,103,25,10,12,0,7,23,0x37B5,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,1763,2000,1711,5,756,79,0,0,0,0,4292,1);
-REPLACE INTO `mob_db` VALUES (2288,'GLD_TREASURE','Treasure Chest','Treasure Chest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
+REPLACE INTO `mob_db` VALUES (2277,'G_LORA','Lora','Warrior Laura',136,500255,1,0,0,2,1985,1701,224,58,144,92,86,69,149,68,10,12,0,7,43,0x3795,130,1600,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2278,'G_ELVIRA','Elvira','Elvira',138,501765,1,0,0,3,699,2101,171,68,189,105,92,85,198,72,10,12,0,0,64,0x3795,120,880,1224,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2279,'G_SOHEON','Soheon','Soheon',137,502015,1,0,0,2,1591,1036,210,178,118,244,98,126,246,102,10,12,1,7,64,0x3795,120,1000,1008,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2280,'G_RUDO','Rudo','Rudo',135,501489,1,0,0,1,1401,1501,196,96,106,65,61,42,125,72,10,12,0,8,66,0x3795,120,1576,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2281,'GLD_DARK_SHADOW','Abysmal Dark Shadow','Dark Shadow',147,204109,1,23000,20200,1,1653,1621,140,44,155,126,89,108,213,76,10,12,0,0,47,0x3795,220,768,1776,648,0,0,0,0,0,0,0,7205,5000,2609,1000,13038,6,6089,1000,2783,2,12676,4,6224,4,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2282,'GLD_DARK_FRAME','Abysmal Dark Frame','Dark Frame',145,180018,1,20202,20006,1,1850,1601,81,37,69,37,36,10,64,5,10,12,1,6,67,0x3795,200,920,720,200,0,0,0,0,0,0,0,7054,4656,734,1000,2505,30,1587,2,12676,100,1000,80,747,4,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2283,'GLD_DARK_PRIEST','Abysmal Dark Priest','Dark Priest',141,181878,0,21096,21602,2,1326,1651,62,41,5,60,41,89,94,42,10,12,1,6,89,0x3795,200,864,1252,476,0,0,0,0,0,0,0,1586,2,2898,2,12680,4,716,450,1009,2,2319,6,7005,3000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2284,'GLD_KOBOLD_1','Abysmal Kobold','Dark Axe Kobold',145,194830,1,22080,21460,1,1851,201,103,25,109,76,61,53,98,30,10,12,1,7,44,0x3795,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1396,2,12679,4,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2285,'GLD_KOBOLD_2','Abysmal Kobold','Dark Hammer Kobold',142,181340,1,20720,20300,1,1401,133,117,59,96,61,55,48,95,20,10,12,1,7,45,0x3795,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1396,2,12679,4,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2286,'GLD_KOBOLD_3','Abysmal Kobold','Dark Mace Kobold',141,182830,1,20240,20600,1,1301,134,109,48,103,64,59,42,80,20,10,12,1,7,43,0x3795,300,1228,528,360,0,0,0,0,0,0,0,999,100,1034,5336,912,700,985,26,1436,2,12679,4,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2287,'GLD_KOBOLD_ARCHER','Abysmal Kobold Archer','Dark Kobold Archer',142,180530,1,21140,20200,9,1504,121,84,5,99,39,48,30,124,25,10,12,0,7,23,0x3795,200,1008,1008,384,0,0,0,0,0,0,0,912,250,999,60,1034,4850,5118,50,12676,10,18114,10,756,80,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2288,'GLD_TREASURE','Treasure Chest','Treasure Chest',140,5,0,0,0,1,0,0,100,0,0,0,0,0,1199,0,0,0,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,11547,4000,11548,2000,11549,2000,12675,100,7444,100,12680,100,11547,4000,1661,20,0,0,0,0);
+-- Additional Monsters
REPLACE INTO `mob_db` VALUES (2289,'E_FABRE','Fabre','Fabre',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2290,'J_THIEF_BUG','Thief Bug','Thief Bug',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2291,'E_HORNET','Hornet','Hornet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1443,171 +1441,171 @@ REPLACE INTO `mob_db` VALUES (2302,'E_HUNTER_FLY','Hunter Fly','Hunter Fly',1,50
REPLACE INTO `mob_db` VALUES (2303,'E_MAYA','Maya','Maya',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2304,'E_QUEEN_SCARABA','Queen Scaraba','Queen Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2305,'E_UNGOLIANT','Ungoliant','Ungoliant',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2306,'E_GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2306,'E_GOLDEN_BUG','Golden Thief Bug','Golden Thief Bug',12,15,0,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,2,4,43,0x83,100,768,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2307,'J_MISTRESS','Mistress','Mistress',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2308,'KO_KAGE','Zanzou','Zanzou',1,50,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,7,20,0x0,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Malaya Port
-REPLACE INTO `mob_db` VALUES (2309,'BUNGISNGIS','Bungisngis','Bungisngis',121,25513,0,1960,1650,1,851,1276,115,35,100,100,30,30,100,30,10,12,2,7,42,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,2000,6510,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2310,'ENGKANTO','Engkanto','Engkanto',125,23948,0,1723,1547,1,675,1012,101,41,100,100,30,30,125,30,10,12,1,7,40,0x3795,200,1000,792,336,0,0,0,0,0,0,0,7054,1000,6510,2000,528,1000,12700,100,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2311,'MANANANGGAL','Manananggal','Manananggal',107,20451,0,1415,1410,1,801,1201,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,3000,6511,2000,6510,1000,7006,500,913,500,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2312,'MANGKUKULAM','Mangkukulam','Mangkukulam',110,20151,0,1517,1351,1,582,873,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,7071,2000,6510,2000,6511,1000,7054,1000,12700,50,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2313,'TIKBALANG','Tikbalang','Tikbalang',115,22131,0,1756,1351,1,781,1171,84,34,100,125,30,30,100,30,10,12,2,2,64,0x3795,150,1000,768,360,0,0,0,0,0,0,0,6496,500,12700,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2314,'TIYANAK','Tiyanak','Tiyanak',105,17146,0,1314,1101,1,457,685,76,21,100,100,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,938,1000,6508,1500,6509,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2315,'WAKWAK','Wakwak','Wakwak',111,20451,0,1374,1254,1,561,841,24,71,100,200,30,30,100,30,10,12,0,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,6508,4000,6509,2000,12700,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2316,'JEJELING','Jejeling','Jejeling',100,10247,0,801,741,1,675,1012,100,26,100,100,30,30,100,30,10,12,2,3,42,0x81,400,1872,672,480,0,0,0,0,0,0,0,6498,1000,909,750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2317,'BANGUNGOT_1','Bangungot','Bangungot',115,1519517,0,781541,761201,1,2561,3329,411,95,200,100,30,250,200,100,10,12,1,6,47,0x37B5,200,768,768,576,100,607,5500,617,2250,616,450,6499,7000,6524,2000,6517,2000,2491,1000,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2318,'BANGUNGOT_2','Bangungot','Bangungot',99,1519517,0,0,0,1,7,10,411,95,200,100,30,250,200,100,10,12,1,6,47,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2319,'BUWAYA','Buwaya','Buwaya',151,4090365,0,3000012,2801564,1,3614,4698,201,78,200,250,30,250,150,100,10,12,2,9,81,0x37B5,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6525,2000,6518,2000,2590,1000,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2320,'BAKONAWA_1','Bakonawa','Bakonawa',156,3351884,0,2510111,2345151,9,4801,6241,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,100,607,5500,617,2250,616,450,6499,7000,6523,2000,6516,2000,15051,1000,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2321,'BAKONAWA_2','Bakonawa','Bakonawa',156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2322,'BAKONAWA_3','Bakonawa','Bakonawa',156,3351884,0,0,0,9,4182,5526,472,0,250,200,30,200,250,100,10,12,2,9,81,0x1A4,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2323,'EVENT_BOMB','Bomb Poring','Bomb Poring',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2324,'EVENT_RANGE','Penomena','Penomena',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2325,'M_BAPHOMET_','Baphomet','Baphomet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2326,'M_GALAPAGO','Galapago','Galapago',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2327,'BANGUNGOT_3','Bangungot','Bangungot',115,250,0,0,0,1,80,94,45,0,10,14,25,0,29,0,10,12,1,3,43,0x30F5,200,1372,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2328,'MA_DRUM','Drum','Drum',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2329,'BUWAYA_EGG','Buwaya Egg','Buwaya Egg',100,10000,0,0,0,1,7,10,90,90,1,1,50,50,1,80,10,12,0,0,60,0x0,1000,24,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2330,'BUWAYA_SLAVE','Buwaya Slave','Buwaya Slave',135,20145,0,0,0,1,2300,3100,105,71,100,50,70,50,100,30,10,12,0,3,22,0x3795,250,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2331,'MA_SEAW','Seaweed','Seaweed',100,10,0,0,0,1,7,10,0,5,1,1,100,100,1,30,10,12,0,3,21,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2332,'BUWAYA_GHOST','Fake Buwaya','Fake Buwaya',138,30000,0,30000,30000,1,2726,3398,481,78,150,200,30,200,100,100,10,12,0,3,81,0x37B5,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2333,'BUWAYA_WEAK','Buwaya\'s Weakness','Buwaya\'s Weakness',138,20,0,0,0,1,7,10,100,78,1,1,1,1,6,30,10,12,0,3,81,0x60,100,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2334,'G_WAKWAK','Wakwak','Wakwak',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2335,'MA_TREASURE','Treasure Chest','Treasure Chest',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2336,'DOMOVOI','Domovoi','Domovoi',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2337,'HIDDEN_MOB','Hidden Mob','Hidden Mob',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2338,'MD_MANANANGGAL','Bangungot Manananggal','Bangungot Manananggal',107,204511,0,0,0,1,901,1124,64,31,100,100,30,30,200,30,10,12,1,6,47,0x3795,120,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2339,'MD_MANGKUKULAM','Bangungot Mangkukulam','Bangungot Mangkukulam',110,102154,0,0,0,1,598,766,89,75,100,100,30,30,100,30,10,12,1,6,47,0x3795,120,1000,792,336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2340,'MD_TIYANAK','Tiyanak','Tiyanak',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2341,'RWC_BOSS2011','RWC Boss','RWC Boss',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Mercenary Monsters
-REPLACE INTO `mob_db` VALUES (2342,'MER_DIABOLIC','Diabolic','Diabolic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2343,'HIDDEN_MOB_W','Hidden Mob','Hidden Mob',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Malaya Port
+REPLACE INTO `mob_db` VALUES (2309,'BUNGISNGIS','Bungisngis','Bungisngis',121,25513,0,3880,3300,1,851,151,115,35,71,32,61,30,74,19,10,12,2,7,42,0x3795,200,1568,432,360,0,0,0,0,0,0,0,7054,2000,6511,2000,985,20,12700,200,0,0,0,0,0,0,0,0,0,0,4582,1);
+REPLACE INTO `mob_db` VALUES (2310,'ENGKANTO','Engkanto','Engkanto',125,23948,1,3446,3094,1,675,124,101,41,68,57,49,57,81,27,10,12,1,7,40,0x3795,200,1424,576,360,0,0,0,0,0,0,0,7054,2000,6511,2000,528,2000,12700,200,0,0,0,0,0,0,0,0,0,0,4583,1);
+REPLACE INTO `mob_db` VALUES (2311,'MANANANGGAL','Manananggal','Manananggal',107,20451,1,2830,2820,1,801,103,64,31,75,85,45,71,75,46,10,12,1,6,47,0x3795,100,280,720,360,0,0,0,0,0,0,0,6508,4000,6510,2000,7006,2000,913,2000,6511,2000,6509,2000,12700,200,0,0,0,0,4584,1);
+REPLACE INTO `mob_db` VALUES (2312,'MANGKUKULAM','Mangkukulam','Mangkukulam',110,20151,1,3034,2702,1,582,196,89,75,35,71,31,82,64,52,10,12,1,6,40,0x3795,150,1664,336,480,0,0,0,0,0,0,0,7054,2000,6510,2000,7071,2000,6511,2000,6509,2000,12700,200,0,0,0,0,0,0,4585,1);
+REPLACE INTO `mob_db` VALUES (2313,'TIKBALANG','Tikbalang','Tikbalang',115,22131,1,3512,2702,1,781,115,84,34,71,52,84,44,64,46,10,12,2,2,64,0x3795,130,1064,936,360,0,0,0,0,0,0,0,0,0,6496,1000,984,20,12700,200,0,0,0,0,0,0,0,0,0,0,4586,1);
+REPLACE INTO `mob_db` VALUES (2314,'TIYANAK','Tiyanak','Tiyanak',105,17146,1,2628,2202,1,457,251,76,21,41,58,41,51,72,47,10,12,0,6,47,0x3795,100,496,504,360,0,0,0,0,0,0,0,6508,3000,0,0,6509,2000,938,2000,0,0,0,0,0,0,0,0,0,0,4587,1);
+REPLACE INTO `mob_db` VALUES (2315,'WAKWAK','Wakwak','Wakwak',111,20012,1,2748,2508,1,561,301,24,71,54,75,64,65,77,31,10,12,0,6,47,0x3795,100,424,576,360,0,0,0,0,0,0,0,6508,3000,6509,2000,12700,400,0,0,0,0,0,0,0,0,0,0,0,0,4588,1);
+REPLACE INTO `mob_db` VALUES (2316,'JEJELING','Jejeling','Jejeling',100,10247,1,1602,1482,1,450,715,100,26,51,71,84,54,15,104,10,12,2,3,42,0x81,400,1328,672,480,0,0,0,0,0,0,0,6498,4000,909,2000,6511,200,6510,200,6509,200,12700,200,0,0,0,0,0,0,4589,1);
+REPLACE INTO `mob_db` VALUES (2317,'BANGUNGOT_1','Bangungot','Bangungot',115,1519517,1,0,0,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x37B5,200,920,1080,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4590,1);
+REPLACE INTO `mob_db` VALUES (2318,'BANGUNGOT_2','Bangungot','Bangungot',99,1409758,1,0,0,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x60,2000,920,1080,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2319,'BUWAYA','Buwaya','Buwaya',151,4090365,1,6000024,5603128,1,3614,3501,201,78,151,201,130,231,310,66,10,12,2,9,81,0x37B5,100,1424,576,360,1500006,0,0,0,0,0,0,6518,4000,6525,100,6499,4000,2590,2000,2169,200,0,0,6499,20000,0,0,0,0,4592,1);
+REPLACE INTO `mob_db` VALUES (2320,'BAKONAWA_1','Bakonawa','Bakonawa',156,3351884,1,0,0,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4591,1);
+REPLACE INTO `mob_db` VALUES (2321,'BAKONAWA_2','Bakonawa','Bakonawa',156,3351884,1,0,0,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2322,'BAKONAWA_3','Bakonawa','Bakonawa',156,3351884,1,5020222,4690302,10,4801,2501,472,0,251,134,194,70,237,66,10,12,2,9,81,0x1A4,2000,440,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2323,'EVENT_BOMB','Bomb Poring','Bomb Poring',100,50000,1,0,0,1,120,320,160,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,200,1672,672,480,0,0,0,0,0,0,0,664,1000,665,1000,666,1000,667,1000,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2324,'EVENT_RANGE','Penomena','Penomena',100,50000,1,0,0,7,481,522,160,99,76,38,35,35,107,10,10,12,1,5,25,0x3695,200,832,500,600,0,0,0,0,0,0,0,664,1000,665,1000,666,1000,667,1000,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2325,'M_BAPHOMET_','Baphomet','Baphomet Jr.',57,7510,204,0,0,1,810,145,70,40,52,60,36,17,57,25,10,12,0,6,27,0x37B5,100,868,480,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2326,'M_GALAPAGO','Galapago','Galapago',45,7513,201,0,0,1,760,155,70,40,30,28,29,18,30,16,10,12,0,2,22,0x37B5,165,1430,1080,1080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2327,'BANGUNGOT_3','Bangungot','Bangungot Doll',115,250,1,1563082,1522402,1,2561,1504,411,95,151,192,110,112,251,57,10,12,1,6,47,0x30F5,2000,0,0,0,0,0,0,0,0,0,0,6517,4000,6524,100,6499,4000,2491,2000,2169,200,0,0,6499,20000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2328,'MA_DRUM','Drum','Book',1,200,0,0,0,1,1,1,100,99,0,0,0,0,0,0,10,12,0,0,20,0x40,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2329,'BUWAYA_EGG','Buwaya\'s Egg','Buwaya\'s Egg',100,10000,1,0,0,0,1,1,90,90,1,1,1,1,1,1,10,12,0,0,60,0x0,2000,1001,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2330,'BUWAYA_SLAVE','Buwaya\'s Slave','Slave',135,20145,1,0,0,1,2413,2041,105,71,151,120,110,102,143,61,10,12,0,3,22,0x3795,200,576,960,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2331,'MA_SEAW','Seaweed','Seaweed',100,10,1,0,0,1,1,1,1,1,1,1,1,1,1,1,10,12,0,5,21,0x1C4,2000,384,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2332,'BUWAYA_GHOST','Fake Buwaya','Buwaya',138,30000,1,0,0,1,1280,1252,481,78,201,248,174,112,371,57,10,12,0,3,81,0x37B5,100,1424,576,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2333,'BUWAYA_WEAK','Buwaya\'s Weakness','Weakpoint',138,20,1,0,0,1,0,1,100,78,0,0,0,0,0,0,10,12,0,3,81,0x60,2000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2334,'G_WAKWAK','Wakwak','Wakwak',145,194830,1,0,0,1,1544,3171,24,104,101,154,104,184,151,71,10,12,0,6,47,0x83,100,424,576,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2335,'MA_TREASURE','Treasure Chest','Bakonawa\'s Treasure',140,5,0,0,0,1,0,0,100,0,0,0,0,0,1199,0,10,12,0,0,26,0x120,0,0,0,0,0,0,0,0,0,0,0,6516,4000,6523,100,6499,4000,15051,2000,2169,200,969,4000,6499,20000,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2336,'DOMOVOI','Domovoi','Domovoi',38,898,1,135,152,1,63,74,40,0,20,11,34,20,19,10,10,12,0,2,22,0x83,200,800,1200,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2337,'HIDDEN_MOB','Hidden Mob','Monster',151,10000,200,0,0,7,0,1000,200,10,200,200,200,200,200,200,12,12,0,4,88,0x1C4,2000,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2338,'MD_MANANANGGAL','Bangungot Manananggal','Manananggal',107,204511,1,0,0,1,801,103,64,31,75,85,45,71,75,46,10,12,1,6,47,0x3795,100,280,720,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2339,'MD_MANGKUKULAM','Bangungot Mangkukulam','Mangkukulam',110,102154,1,0,0,1,582,196,89,75,35,71,31,82,64,52,10,12,1,6,40,0x3795,150,1664,336,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2340,'MD_TIYANAK','Tiyanak','Tiyanak',105,50211,1,0,0,1,457,251,76,21,41,58,41,51,72,47,10,12,0,6,47,0x3795,100,496,504,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2341,'RWC_BOSS2011','RWC Boss','2011 RWC Boss',141,3205000,1,2600000,2200000,3,7343,4412,588,506,196,131,125,276,401,156,10,12,2,8,86,0x37B5,100,576,576,480,650000,616,5000,616,5000,616,5000,12539,10000,7444,10000,12608,10000,12549,10000,12623,10000,617,10000,12696,10000,12697,10000,0,0,0,0);
+-- Additional Mercenary Monsters
+REPLACE INTO `mob_db` VALUES (2342,'MER_DIABOLIC','Diabolic','Diabolic',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2343,'HIDDEN_MOB_W','Hidden Mob','Monster',151,10000,200,0,0,7,0,1000,200,10,200,200,200,200,200,200,12,12,0,4,88,0x1C4,2000,0,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2344,'MER_WISH_MAIDEN','Wish Maiden','Wish Maiden',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2345,'MER_ZHERLTHSH','Zherlthsh','Zealotus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2345,'MER_ZHERLTHSH','Zherlthsh','Zealotus',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2346,'MER_KTULLANUX','Ktullanux','Ktullanux',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2347,'MER_EDDGA','Eddga','Eddga',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2348,'MER_CIVIL_SERVANT','Civil Servant','Mao Guai',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2349,'MER_LOLI_RURI','Loli Ruri','Loli Ruri',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2350,'MER_SEDORA','Sedora','Sedora',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2351,'MER_CHEPET','Chepet','Chepet',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Nightmare Pyrimids
+REPLACE INTO `mob_db` VALUES (2347,'MER_EDDGA','Eddga','Eddga',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2348,'MER_CIVIL_SERVANT','Civil Servant','Mao Guai',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2349,'MER_LOLI_RURI','Loli Ruri','Loli Ruri',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2350,'MER_SEDORA','Sedora','Lamp Rey',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2351,'MER_CHEPET','Chepet','Chepet',83,9815,234,0,0,2,1100,200,60,60,85,90,71,43,85,105,10,12,0,6,47,0x37B5,150,1080,780,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Nightmare Pyramids
REPLACE INTO `mob_db` VALUES (2352,'E_RSX_0805','RSX 0805','RSX 0805',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2353,'N_MINOROUS','Nightmare Minorous','Nightmare Minorous',121,27141,0,16176,12252,1,853,1279,131,41,1,1,1,1,6,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2354,'N_MUMMY','Nightmare Mummy','Nightmare Mummy',117,22557,0,15480,11670,1,761,1141,110,21,1,1,1,1,6,30,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2355,'N_VERIT','Nightmare Verit','Nightmare Verit',115,21034,0,5280,4584,1,623,934,82,20,1,1,1,1,6,30,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2356,'N_MIMIC','Nightmare Mimic','Nightmare Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2357,'G_N_MIMIC','Nightmare Mimic','Nightmare Mimic',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2358,'N_ARCLOUSE','Nightmare Arclouse','Nightmare Arclouse',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2359,'G_N_ARCLOUSE','Nightmare Arclouse','Nightmare Arclouse',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2360,'N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Nightmare Ancient Mummy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2361,'G_N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Nightmare Ancient Mummy',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2362,'N_AMON_RA','Nightmare Amon Ra','Nightmare Amon Ra',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Eclage (14.2)
-REPLACE INTO `mob_db` VALUES (2363,'MENBLATT','Menblatt','Menblatt',143,82200,0,4150,3421,1,816,1224,79,50,1,1,1,1,6,30,10,12,1,4,44,0x3795,145,472,576,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2364,'PETAL','Petal','Petal',141,81031,0,4058,3361,1,671,1006,73,33,1,1,1,1,6,30,10,12,1,2,24,0x3795,200,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2365,'CENERE','Cenere','Cenere',146,130131,0,7117,5712,1,1802,2342,87,81,1,1,1,1,6,30,10,12,0,3,24,0x3795,300,1500,500,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2366,'ANTIQUE_BOOK','Antique Book','Antique Book',143,134615,0,7225,5870,1,1861,2419,74,42,1,1,1,1,6,30,10,12,0,0,60,0x3795,150,176,912,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2367,'LICHTERN_B','Blue Lichtern','Blue Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2368,'LICHTERN_Y','Yellow Lichtern','Yellow Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2369,'LICHTERN_R','Red Lichtern','Red Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2370,'LICHTERN_G','Green Lichtern','Green Lichtern',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2371,'FAITHFUL_MANAGER','Faithful Manager','Faithful Manager',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Additional Monsters
+REPLACE INTO `mob_db` VALUES (2353,'N_MINOROUS','Nightmare Minorous','Minorous (Nightmare)',121,27141,1,4402,3820,1,853,154,131,41,71,47,51,51,81,30,10,12,2,2,43,0x3795,200,1360,960,432,0,0,0,0,0,0,0,941,10000,756,400,1361,4,1005,20,6254,200,1301,400,568,600,0,0,0,0,4126,1);
+REPLACE INTO `mob_db` VALUES (2354,'N_MUMMY','Nightmare Mummy','Mummy (Nightmare)',117,22557,1,4300,3242,1,761,192,110,21,61,5,21,1,72,0,10,12,1,1,49,0x3795,300,1772,72,384,0,0,0,0,0,0,0,930,18000,756,200,934,1000,2604,4,2611,20,525,500,508,2000,0,0,0,0,4106,1);
+REPLACE INTO `mob_db` VALUES (2355,'N_VERIT','Nightmare Verit','Verit (Nightmare)',115,21034,1,4148,3142,1,623,142,82,20,57,7,31,15,7,7,10,12,1,1,29,0x3795,250,2468,768,480,0,0,0,0,0,0,0,929,18000,912,1400,930,2200,509,1200,2609,4,2612,400,639,40,0,0,0,0,4107,1);
+REPLACE INTO `mob_db` VALUES (2356,'N_MIMIC','Nightmare Mimic','Mimic (Nightmare)',137,63101,1,6402,5408,1,1345,413,210,40,71,180,35,21,61,0,10,12,1,0,60,0x3795,100,972,500,288,0,0,0,0,0,0,0,617,12,603,100,1065,2400,7938,2000,0,0,2626,4,757,540,0,0,0,0,4205,1);
+REPLACE INTO `mob_db` VALUES (2357,'G_N_MIMIC','Nightmare Mimic','Mimic (Nightmare)',137,63101,1,0,0,1,1345,413,210,40,71,180,35,21,61,0,10,12,1,0,60,0x3795,100,972,500,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2358,'N_ARCLOUSE','Nightmare Arclouse','Arclouze (Nightmare)',134,48013,1,5012,4606,1,1104,341,101,45,65,85,51,45,251,31,10,12,1,4,42,0x3795,100,960,500,480,0,0,0,0,0,0,0,1096,7000,938,6000,943,1600,912,1000,716,600,997,40,912,5000,0,0,0,0,4240,1);
+REPLACE INTO `mob_db` VALUES (2359,'G_N_ARCLOUSE','Nightmare Arclouse','Arclouze (Nightmare)',134,48013,1,0,0,1,1104,341,101,45,65,85,51,45,251,31,10,12,1,4,42,0x3795,100,960,500,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2360,'N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Ancient Mummy',141,90157,1,9424,8002,1,1841,347,142,51,126,75,61,85,187,24,10,12,1,1,49,0x3795,175,1772,120,384,0,0,0,0,0,0,0,930,9000,934,3600,2624,4,2611,300,12735,20,756,300,757,200,0,0,0,0,4248,1);
+REPLACE INTO `mob_db` VALUES (2361,'G_N_ANCIENT_MUMMY','Nightmare Ancient Mummy','Ancient Mummy (Nightmare)',141,90157,1,0,0,1,1841,347,142,51,126,75,61,85,187,24,10,12,1,1,49,0x3795,175,1772,120,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2362,'N_AMON_RA','Nightmare Amon Ra','Amon Ra (Nightmare)',145,2515784,1,3252974,2604174,3,4106,3201,367,301,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,813243,607,5500,608,3500,732,5500,5053,300,2615,100,7211,14000,985,7600,616,800,1552,20,607,3000,0,0,0,0,4236,1);
+-- Eclage (14.2)
+REPLACE INTO `mob_db` VALUES (2363,'MENBLATT','Menblatt','Menblatt',143,82200,1,8300,6842,3,816,201,79,50,70,68,40,55,108,30,10,12,1,4,44,0x3795,145,472,1056,480,0,0,0,0,0,0,0,6557,3000,7168,1000,7163,2304,12813,5,0,0,0,0,0,0,7199,500,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2364,'PETAL','Petal','Petal',141,81031,1,8116,6722,9,671,173,73,33,70,82,55,45,108,25,10,12,1,2,24,0x3795,200,1500,768,480,0,0,0,0,0,0,0,6558,3000,12346,1000,1026,1000,6089,250,12814,5,0,0,0,0,7199,500,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2365,'CENERE','Cenere','Cenere',146,130131,1,14234,11424,1,1802,1031,87,81,67,39,30,35,95,45,10,12,0,3,24,0x3795,300,1500,720,360,0,0,0,0,0,0,0,6561,5000,7322,500,7001,1500,7320,1000,12815,500,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2366,'ANTIQUE_BOOK','Antique Book','Antique Book',148,134615,1,14450,11740,1,1861,1213,74,42,67,53,32,44,125,5,10,12,0,0,60,0x3795,150,864,960,480,0,0,0,0,0,0,0,6560,3000,7015,1000,1097,1000,12812,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2367,'LICHTERN_B','Blue Lichtern','Lichtern',149,131211,1,14374,11402,1,1513,1410,76,41,124,74,60,55,92,50,10,12,0,0,81,0x3795,150,480,1728,480,0,0,0,0,0,0,0,1000,1000,1001,1000,995,20,12812,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2368,'LICHTERN_Y','Yellow Lichtern','Lichtern',147,131513,1,14142,11620,1,1416,1561,84,51,141,94,75,91,144,50,10,12,0,0,88,0x3795,150,0,3456,480,0,0,0,0,0,0,0,1000,1000,1001,1000,997,20,12815,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2369,'LICHTERN_R','Red Lichtern','Lichtern',149,135718,1,14402,12026,1,1647,1449,111,53,147,77,66,65,133,50,10,12,0,0,83,0x3795,150,0,4032,480,0,0,0,0,0,0,0,1000,1000,1001,1000,994,20,12813,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2370,'LICHTERN_G','Green Lichtern','Lichtern',151,133451,1,14428,11420,1,1547,1594,120,57,121,60,58,62,102,50,10,12,0,0,82,0x3795,100,0,2304,480,0,0,0,0,0,0,0,1000,1000,1001,1000,996,20,12814,5,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2371,'FAITHFUL_MANAGER','Faithful Manager','Faithful Manager',155,151548,1,17352,13002,3,2091,1607,204,141,80,28,40,25,88,45,10,12,2,0,80,0x3795,200,480,1536,480,0,0,0,0,0,0,0,6559,3000,12353,1000,970,100,971,100,972,100,0,0,0,0,0,0,0,0,0,0);
+-- Additional Monsters
REPLACE INTO `mob_db` VALUES (2372,'SOIL','Soil','Soil',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2373,'ROCK','Rock','Rock',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2374,'THICKET','Thicket','Thicket',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2375,'MOROCC_4_142','Incarnation of Morroc','Incarnation of Morroc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2376,'MOROCC_2_142','Incarnation of Morroc','Incarnation of Morroc',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2377,'E_NOVUS_','Novus','Novus',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2378,'MER_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2379,'XMAS_SMOKEY_SOCK','Smokey Sock','Smokey Sock',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2380,'XMAS_SMOKEY_GIFT','Smokey Gift','Smokey Gift',1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# Monster's Waitting To Be Coded In
-# 2381,E_VADON_X_S
-# 2382,E_VADON_X_H
-# 2383,E_VADON_X_H_S
-# 2384,KRAKEN_LEG_1
-# 2385,KRAKEN_LEG_2
-# 2386,KRAKEN_LEG_3
-# 2387,KRAKEN_LEG_4
-# 2388,KRAKEN_LEG_5
-# 2389,G_KRAKEN_LEG_1
-# 2390,G_KRAKEN_LEG_2
-# 2391,G_KRAKEN_LEG_3
-# 2392,G_KRAKEN_LEG_4
-# 2393,G_KRAKEN_LEG_5
-# 2394,MERMAN_SE
-# 2395,SEIREN
-# 2396,POSEIDON
-# 2397,KRAKEN_BABY
-# 2398,LITTLE_PORING
-# 2399,E_MINI_DEMON
-# 2400,E_DIABOLIC
-# 2401,G_PORING
-# 2402,POPORING_IMMUNE_M
-# 2403,POPORING_IMMUNE_A
-# 2404,DEAD_PLANKTON
-# 2405,WEAK_SKELETON
-# 2406,WEAK_SKEL_SOLDIER
-# 2407,SAILOR_SKELETON
-REPLACE INTO `mob_db` VALUES (2408,'DUMMY_10','Dummy 10','Dummy 10',10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2409,'DUMMY_50','Dummy 50','Dummy 50',50,99999999,1,0,0,0,0,0,50,50,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2410,'DUMMY_100','Dummy 100','Dummy 100',100,99999999,1,0,0,0,0,0,90,90,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db` VALUES (2411,'DUMMY_150','Dummy 150','Dummy 150',150,99999999,1,0,0,0,0,0,120,120,0,0,0,0,0,0,0,200,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# 2412,E_VALKIWI
-REPLACE INTO `mob_db` VALUES (2413,'DUMMY_10_FIRE','Dummy 10','Dummy 10',10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,1,0,23,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# 2414,RUNAWAY_BOOK
-# 2415,L_SEYREN
-# 2416,L_EREMES
-# 2417,L_HARWORD
-# 2418,L_SHECIL
-# 2419,L_KATRINN
-# 2420,L_MAGALETA
-# 2421,L_YGNIZEM
-# 2422,L_WHIKEBAIN
-# 2423,L_ARMAIA
-# 2424,L_KAVAC
-# 2425,L_DANCER
-# 2426,L_RAWREL
-# 2427,L_EREND
-# 2428,G_L_SEYREN
-# 2429,G_L_EREMES
-# 2430,G_L_HARWORD
-# 2431,G_L_SHECIL
-# 2432,G_L_KATRINN
-# 2433,G_L_MAGALETA
-# 2434,G_L_YGNIZEM
-# 2435,G_L_WHIKEBAIN
-# 2436,G_L_ARMAIA
-# 2437,G_L_KAVAC
-# 2438,G_L_DANCER
-# 2439,G_L_RAWREL
-# 2440,G_L_EREND
-# 2441,B_NOVICE
-# 2442,B_SUPERNOVICE
-# 2443,AIRA
-# 2444,KULUNA
-# 2445,MALLINA
-# 2446,EZELLA
-# 2447,LUNE
-# 2448,MORIN
-# 2449,NASARIN
-# 2450,THIEF_PORING
-# 2451,BABY_STRANGE
-# 2452,TREASURE_BOX_TE
-# 2453,TREASURE_BOX_TE_1
-# 2454,TREASURE_BOX_TE_2
-# 2455,TREASURE_BOX_TE_3
-# 2456,TREASURE_BOX_TE_4
-# 2457,TREASURE_BOX_TE_5
-# 2458,TREASURE_BOX_TE_6
-# 2459,TREASURE_BOX_TE_7
-# 2460,TREASURE_BOX_TE_8
-# 2461,TREASURE_BOX_TE_9
-# 2462,TREASURE_BOX_TE_10
-# 2463,E_BOMBPORING
-# Old Glast Heim (currently placeholders)
+REPLACE INTO `mob_db` VALUES (2378,'MER_ANTLER_SCARABA','Antler Scaraba','Antler Scaraba',136,30000,1,0,0,1,1418,410,155,102,23,99,59,129,137,45,10,12,1,4,42,0x37B5,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2379,'XMAS_SMOKEY_SOCK','Smokey Sock','Socks Stealing Raccoon',10,10,1,0,0,1,70,11,1,0,1,1,16,5,100,100,10,12,0,2,22,0x181,200,1576,576,420,0,0,0,0,0,0,0,6535,6000,6535,6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2380,'XMAS_SMOKEY_GIFT','Smokey Gift','Gift Stealing Raccoon',10,10,1,0,0,1,70,11,1,0,1,1,16,5,100,100,10,12,0,2,22,0x181,200,1576,576,420,0,0,0,0,0,0,0,7909,6000,7910,6000,7909,6000,7910,6000,0,0,0,0,0,0,0,0,0,0,0,0);
+-- Monsters Waitting To Be Coded In
+-- 2381,E_VADON_X_S
+-- 2382,E_VADON_X_H
+-- 2383,E_VADON_X_H_S
+-- 2384,KRAKEN_LEG_1
+-- 2385,KRAKEN_LEG_2
+-- 2386,KRAKEN_LEG_3
+-- 2387,KRAKEN_LEG_4
+-- 2388,KRAKEN_LEG_5
+-- 2389,G_KRAKEN_LEG_1
+-- 2390,G_KRAKEN_LEG_2
+-- 2391,G_KRAKEN_LEG_3
+-- 2392,G_KRAKEN_LEG_4
+-- 2393,G_KRAKEN_LEG_5
+-- 2394,MERMAN_SE
+-- 2395,SEIREN
+-- 2396,POSEIDON
+-- 2397,KRAKEN_BABY
+REPLACE INTO `mob_db` VALUES (2398,'LITTLE_PORING','LITTLE_PORING','Baby Poring',1,40,1,18,10,1,8,1,2,5,6,1,1,0,6,5,10,12,0,3,21,0x0,400,1872,672,480,0,0,0,0,0,0,0,909,9000,1202,100,938,1000,512,5000,507,1000,512,500,507,1000,0,0,0,0,4545,100);
+-- 2399,E_MINI_DEMON
+-- 2400,E_DIABOLIC
+REPLACE INTO `mob_db` VALUES (2401,'G_PORING','G_PORING','Poring',1,60,1,0,0,1,8,1,2,5,6,1,1,0,6,5,10,12,1,3,21,0x0,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2402,'POPORING_IMMUNE_M','POPORING_IMMUNE_M','Poporing',30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2403,'POPORING_IMMUNE_A','POPORING_IMMUNE_A','Poporing',30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0,300,1672,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2404,'DEAD_PLANKTON','DEAD_PLANKTON','DEAD_PLANKTON',9,95,1,15,11,1,18,19,21,3,14,5,10,0,10,3,10,12,0,1,29,0x0,400,2208,1008,324,0,0,0,0,0,0,0,1052,2000,910,70,938,170,970,1,0,0,630,5,645,10,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2405,'WEAK_SKELETON','WEAK_SKELETON','WEAK_SKELETON',18,280,1,29,21,1,25,33,12,2,15,5,10,0,12,0,10,12,1,1,29,0x0,200,2228,528,576,0,0,0,0,0,0,0,1010,45,932,800,1505,40,909,1500,507,500,2609,15,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2406,'WEAK_SKEL_SOLDIER','WEAK_SKEL_SOLDIER','WEAK_SKEL_SOLDIER',23,468,1,36,40,1,66,75,28,5,18,9,28,5,43,5,10,12,1,1,29,0x0,200,2276,576,432,0,0,0,0,0,0,0,932,1300,756,15,1214,3,507,170,934,2,2315,1,1216,10,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2407,'SAILOR_SKELETON','SAILOR_SKELETON','SAILOR_SKELETON',19,310,1,29,21,1,27,35,12,2,15,5,10,0,12,0,10,12,1,1,29,0x0,200,2228,528,576,0,0,0,0,0,0,0,932,700,2287,4,7477,1,2211,60,1104,60,756,10,628,5,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2408,'DUMMY_10','Lv. 10','Lv 10',10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2409,'DUMMY_50','Lv. 50','Lv 50',50,99999999,1,0,0,0,0,0,50,50,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2410,'DUMMY_100','Lv. 100','Lv 100',100,99999999,1,0,0,0,0,0,90,90,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2411,'DUMMY_150','Lv. 150','Lv 150',150,99999999,1,0,0,0,0,0,120,120,0,0,0,0,0,0,0,0,1,0,20,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- 2412,E_VALKIWI
+REPLACE INTO `mob_db` VALUES (2413,'DUMMY_10_FIRE','DUMMY_10_FIRE','DUMMY_10_FIRE',10,99999999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,23,0x0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+-- 2414,RUNAWAY_BOOK
+-- 2415,L_SEYREN
+-- 2416,L_EREMES
+-- 2417,L_HARWORD
+-- 2418,L_SHECIL
+-- 2419,L_KATRINN
+-- 2420,L_MAGALETA
+-- 2421,L_YGNIZEM
+-- 2422,L_WHIKEBAIN
+-- 2423,L_ARMAIA
+-- 2424,L_KAVAC
+-- 2425,L_DANCER
+-- 2426,L_RAWREL
+-- 2427,L_EREND
+-- 2428,G_L_SEYREN
+-- 2429,G_L_EREMES
+-- 2430,G_L_HARWORD
+-- 2431,G_L_SHECIL
+-- 2432,G_L_KATRINN
+-- 2433,G_L_MAGALETA
+-- 2434,G_L_YGNIZEM
+-- 2435,G_L_WHIKEBAIN
+-- 2436,G_L_ARMAIA
+-- 2437,G_L_KAVAC
+-- 2438,G_L_DANCER
+-- 2439,G_L_RAWREL
+-- 2440,G_L_EREND
+-- 2441,B_NOVICE
+-- 2442,B_SUPERNOVICE
+-- 2443,AIRA
+-- 2444,KULUNA
+-- 2445,MALLINA
+-- 2446,EZELLA
+-- 2447,LUNE
+-- 2448,MORIN
+-- 2449,NASARIN
+-- 2450,THIEF_PORING
+-- 2451,BABY_STRANGE
+-- 2452,TREASURE_BOX_TE
+-- 2453,TREASURE_BOX_TE_1
+-- 2454,TREASURE_BOX_TE_2
+-- 2455,TREASURE_BOX_TE_3
+-- 2456,TREASURE_BOX_TE_4
+-- 2457,TREASURE_BOX_TE_5
+-- 2458,TREASURE_BOX_TE_6
+-- 2459,TREASURE_BOX_TE_7
+-- 2460,TREASURE_BOX_TE_8
+-- 2461,TREASURE_BOX_TE_9
+-- 2462,TREASURE_BOX_TE_10
+-- 2463,E_BOMBPORING
+-- Old Glast Heim (currently placeholders)
REPLACE INTO `mob_db` VALUES (2464,'MG_ZOMBIE','Zombie','Zombie',17,9340,1,117,87,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2465,'MG_WRAITH','Wraith','Wraith',77,23168,1,1190,1191,1,335,396,80,40,62,26,30,55,76,5,10,12,2,1,89,0x3695,300,1816,576,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2466,'MG_GHOUL','Ghoul','Ghoul',61,12614,1,583,656,1,216,245,78,5,56,12,19,11,27,10,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
@@ -1621,637 +1619,637 @@ REPLACE INTO `mob_db` VALUES (2473,'MG_M_UNDEAD_KNIGHT','Undead Knight','Undead
REPLACE INTO `mob_db` VALUES (2474,'MG_F_UNDEAD_KNIGHT','Undead Knight','Undead Knight',133,500000,0,4500,3375,2,751,880,122,62,122,87,54,65,103,65,14,16,2,7,80,0x37B5,170,140,384,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2475,'MG_CORRUPTION_ROOT','Root of Corruption','Root of Corruption',136,3190000,1,240120,187920,3,710,1762,213,123,86,89,120,131,101,92,14,12,2,7,62,0x1A4,170,854,2016,480,120060,607,5500,608,3500,732,5500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db` VALUES (2476,'MG_AMDARAIS','Amdarias','Amdarias',143,3283990,1,74288,77950,2,8860,10022,32,66,140,159,30,109,300,90,10,12,2,2,63,0x37B5,200,1152,1152,576,37144,617,5500,617,5000,616,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-# 2477,NG_WANDER_MAN
-# 2478,NG_RIDEWORD
-# 2479,NG_MIMIC
-# 2480,NG_EVIL_DRUID
-# 2481,NG_WRAITH_DEAD
-# 2482,G_MG_KHALITZBURG
-# 2483,NG_BAPHOMET
-# 2484,G_NG_BAPHOMET_
-# 2485,NG_CHIMERA
-# 2486,ISIS_ANNIV
-# 2487,PASANA_ANNIV
-# 2488,OSIRIS_ANNIV
-# 2489,GM_WOMAN
-# 2490,GM_SAY
-# 2491,GM_SMOKIE
-# 2492,GM_PHOENIX
-# 2493,GM_MEN
-# 2494,GM_HINALLE
-# 2495,HIDDEN_MOB2
-# 2496,I_UZHAS
-# 2497,I_DOKEBI
-# 2498,G_WISH_MAIDEN
-# 2499,J_PORING
-# 2500,E_MEGALODON
-# 2501,E_ASTER
-# 2502,E_CRAB
-# 2503,E_SHELLFISH
-# 2504,E_COELACANTH_N_E
-# 2505,E_RED_ERUMA
-# 2506,E_KING_DRAMOH
-# 2507,E_CORNUTUS
-# 2508,E_PENOMENA
-# 2509,KRAKEN_LEG_6
-# 2510,WATERMELON_1
-# 2511,WATERMELON_2
-# 2512,WATERMELON_3
-# 2513,WATERMELON_4
-# 2514,WATERMELON_5
-# 2515,WATERMELON_6
-# 2516,WATERMELON_7
-# 2517,WATERMELON_8
-# 2518,WATERMELON_9
-# 2519,WATERMELON_10
-# 2520,WATERMELON_11
-# 2521,WATERMELON_12
-# 2522,WATERMELON_13
-# 2523,WATERMELON_14
-# 2524,WATERMELON_15
-# 2525,WATERMELON_16
-# 2526,E_BANDIT
-# 2527,ME_ANOPHELES
-# 2528,FACEWORM
-# 2529,FACEWORM_QUEEN
-# 2530,FACEWORM_DARK
-# 2531,VENOM_BUG
-# 2532,FACEWORM_QUEEN_R
-# 2533,FACEWORM_QUEEN_G
-# 2534,FACEWORM_QUEEN_B
-# 2535,FACEWORM_QUEEN_Y
-# 2536,HIDDEN_MOB3
-# 2537,HIDDEN_MOB4
-# 2538,E_KING_PORING
-# 2539,HIDDEN_MOB5
-# 2540,FACEWORM_EGG
-# 2541,FACEWORM_LARVA
-# 2542,IRENE_ELDER
-# 2543,PAYONSOLDIER
-# 2544,PAYONSOLDIER2
-# 2545,GUARDDOG
-# 2546,GUARDDOG2
-# 2547,MER_GARM_BABY
-# 2548,MER_HILLSRION
-# 2549,GEFFEN_MAGE_1
-# 2550,GEFFEN_MAGE_2
-# 2551,GEFFEN_MAGE_3_1
-# 2552,GEFFEN_MAGE_3_2
-# 2553,GEFFEN_MAGE_3_3
-# 2554,GEFFEN_MAGE_4
-# 2555,GEFFEN_MAGE_5
-# 2556,GEFFEN_MAGE_6
-# 2557,GEFFEN_MAGE_7
-# 2558,GEFFEN_MAGE_8
-# 2559,GEFFEN_MAGE_9
-# 2560,GEFFEN_MAGE_10
-# 2561,GEFFEN_MAGE_11
-# 2562,GEFFEN_MAGE_12
-# 2563,FEI_KANABIAN
-# 2564,GEFFEN_FENRIR
-# 2565,ALPHONSE
-# 2566,ALPHONSE_JR
-# 2567,E_GEFFEN_MAGE_3_2
-# 2568,E_GEFFEN_MAGE_3_3
-# 2569,G_ANOPHELES
-# 2570,G_BREEZE
-# 2571,G_BUTOIJO
-# 2572,G_CARAMEL
-# 2573,G_CHONCHON
-# 2574,G_CIVIL_SERVANT
-# 2575,G_COCO
-# 2576,G_CREAMY
-# 2577,G_FABRE
-# 2578,G_HORN
-# 2579,G_HYLOZOIST
-# 2580,G_KAHO
-# 2581,G_LUDE
-# 2582,G_LUNATIC
-# 2583,G_MARTIN
-# 2584,G_MINERAL
-# 2585,G_MOLE
-# 2586,G_NERAID
-# 2587,G_OBSIDIAN
-# 2588,G_PITMAN
-# 2589,G_POPORING
-# 2590,G_ROCKER
-# 2591,G_SAVAGE
-# 2592,G_SIORAVA
-# 2593,G_SIROMA
-# 2594,G_SNOWIER
-# 2595,G_STAINER
-# 2596,G_STAPO
-# 2597,G_STEEL_CHONCHON
-# 2598,G_UNGOLIANT
-# 2599,G_WILD_RIDER
-# 2600,G_WOLF
-# 2601,G_YOYO
-# 2602,G_ZIPPER_BEAR
-# 2603,C1_ZOMBIE_SLAUGHTER
-# 2604,C2_ZOMBIE_PRISONER
-# 2605,C3_ZOMBIE_MASTER
-# 2606,C4_ZOMBIE
-# 2607,C5_ZAKUDAM
-# 2608,C1_YOYO
-# 2609,C2_YOYO
-# 2610,C3_WORM_TAIL
-# 2611,C4_WOOTAN_FIGHTER
-# 2612,C5_WOOD_GOBLIN
-# 2613,C1_WOLF
-# 2614,C2_WIND_GHOST
-# 2615,C3_WILOW
-# 2616,C4_WILD_ROSE
-# 2617,C5_WICKED_NYMPH
-# 2618,C2_WHISPER
-# 2619,C3_WEAK_SKELETON
-# 2620,C4_WANDER_MAN
-# 2621,C5_VIOLY
-# 2622,C1_VIOLY
-# 2623,C2_VIOLY
-# 2624,C3_VENOMOUS
-# 2625,C4_VENATU_1
-# 2626,C5_VAVAYAGA
-# 2627,C1_VANBERK
-# 2628,C2_VADON
-# 2629,C3_UNGOLIANT
-# 2630,C4_TOUCAN
-# 2631,C5_TIYANAK
-# 2632,C2_THIEF_BUG
-# 2633,C3_THIEF_BUG
-# 2634,C4_THIEF_BUG
-# 2635,C5_THARA_FROG
-# 2636,C1_TEDDY_BEAR
-# 2637,C2_TATACHO
-# 2638,C3_TAROU
-# 2639,C4_TAMRUAN
-# 2640,C5_STING
-# 2641,C1_STEM_WORM
-# 2642,C2_STEEL_CHONCHON
-# 2643,C3_STAPO
-# 2644,C4_STALACTIC_GOLEM
-# 2645,C5_STAINER
-# 2646,C1_SPORE
-# 2647,C2_SOLIDER
-# 2648,C3_SOLDIER_SKELETON
-# 2649,C4_SOLDIER_SKELETON
-# 2650,C5_SOLACE
-# 2651,C1_SOHEE
-# 2652,C2_SNOWIER
-# 2653,C3_SNAKE
-# 2654,C4_SMOKIE
-# 2655,C5_SLEEPER
-# 2656,C1_SLEEPER
-# 2657,C2_SKOGUL
-# 2658,C3_SKELETON_GENERAL
-# 2659,C4_SKELETON_GENERAL
-# 2660,C5_SKEL_WORKER
-# 2661,C1_SIROMA
-# 2662,C2_SIDE_WINDER
-# 2663,C3_SIDE_WINDER
-# 2664,C4_SHINOBI
-# 2665,C5_SHELTER
-# 2666,C1_SHELLFISH
-# 2667,C2_SHECIL
-# 2668,C3_SEE_OTTER
-# 2669,C4_SEDORA
-# 2670,C5_SCORPION
-# 2671,C1_SAVAGE_BABE
-# 2672,C2_SAVAGE
-# 2673,C3_SAVAGE
-# 2674,C4_SAND_MAN
-# 2675,C5_SALAMANDER
-# 2676,C1_SAILOR_SKELETON
-# 2677,C2_ROWEEN
-# 2678,C3_RODA_FROG
-# 2679,C4_RODA_FROG
-# 2680,C5_ROCKER
-# 2681,C1_RIDEWORD
-# 2682,C2_RIDEWORD
-# 2683,C3_RICE_CAKE_BOY
-# 2684,C4_RETRIBUTION
-# 2685,C5_RETRIBUTION
-# 2686,C1_RETRIBUTION
-# 2687,C2_REQUIEM
-# 2688,C3_REMOVAL
-# 2689,C5_RED_ERUMA
-# 2690,C1_RAYDRIC
-# 2691,C2_RAYDRIC
-# 2692,C3_RAWREL
-# 2693,C4_RAKE_SCARABA
-# 2694,C5_RAGGLER
-# 2695,C1_RAFFLESIA
-# 2696,C3_PORING
-# 2697,C4_PORING
-# 2698,C5_PORING
-# 2699,C1_PORING
-# 2700,C2_PORCELLIO
-# 2701,C3_POPORING
-# 2702,C4_POPORING
-# 2703,C5_POPORING
-# 2704,C1_POISON_TOAD
-# 2705,C2_POISON_SPORE
-# 2706,C3_PLASMA_Y
-# 2707,C4_PLANKTON
-# 2708,C5_PITMAN
-# 2709,C1_PIRANHA
-# 2710,C2_PINGUICULA_D
-# 2711,C3_PINGUICULA
-# 2712,C4_PICKY_
-# 2713,C5_PHEN
-# 2714,C1_PETIT
-# 2715,C2_PETIT
-# 2716,C3_PENOMENA
-# 2717,C4_PENOMENA
-# 2718,C5_PECOPECO
-# 2719,C1_PASANA
-# 2720,C2_PARASITE
-# 2721,C3_OWL_DUKE
-# 2722,C4_ORK_WARRIOR
-# 2723,C5_ORC_ZOMBIE
-# 2724,C1_ORC_SKELETON
-# 2725,C2_ORC_LADY
-# 2726,C3_OBSERVATION
-# 2727,C4_NOXIOUS
-# 2728,C5_NOVUS
-# 2729,C1_NOVUS
-# 2730,C2_NOVUS
-# 2731,C3_NOVUS
-# 2732,C4_NIGHTMARE_TERROR
-# 2733,C5_NG_WRAITH_DEAD
-# 2734,C1_NG_WANDER_MAN
-# 2735,C2_NEPENTHES
-# 2736,C3_NECROMANCER
-# 2737,C4_MYSTCASE
-# 2738,C5_MUSCIPULAR
-# 2739,C1_MUMMY
-# 2740,C2_MUMMY
-# 2741,C3_MUKA
-# 2742,C4_MOROCC_1
-# 2743,C5_MOROCC_1
-# 2744,C1_MOROCC_1
-# 2745,C2_MOLE
-# 2746,C3_MIYABI_NINGYO
-# 2747,C4_MINOROUS
-# 2748,C5_MINOROUS
-# 2749,C1_MINOROUS
-# 2750,C2_MINERAL
-# 2751,C3_MIMING
-# 2752,C4_MIMIC
-# 2753,C5_MIMIC
-# 2754,C1_METALLER
-# 2755,C2_METALING
-# 2756,C3_METALING
-# 2757,C4_MERMAN
-# 2758,C5_MENBLATT
-# 2759,C1_MEDUSA
-# 2760,C2_MARTIN
-# 2761,C3_MARIONETTE
-# 2762,C4_MARIN
-# 2763,C5_MARDUK
-# 2764,C1_MANTIS
-# 2765,C2_MANDRAGORA
-# 2766,C3_MANANANGGAL
-# 2767,C4_MAJORUROS
-# 2768,C5_MAGNOLIA
-# 2769,C1_MAGMARING
-# 2770,C2_LUNATIC
-# 2771,C3_LUNATIC
-# 2772,C4_LUDE
-# 2773,C5_LUCIOLA_VESPA
-# 2774,C1_LOLI_RURI
-# 2775,C2_LIVE_PEACH_TREE
-# 2776,C3_LITTLE_PORING
-# 2777,C4_LITTLE_FATUM
-# 2778,C5_LI_ME_MANG_RYANG
-# 2779,C1_LES
-# 2780,C2_LEIB_OLMAI
-# 2781,C3_LEAF_CAT
-# 2782,C4_L_WHIKEBAIN
-# 2783,C5_L_EREMES
-# 2784,C1_KOBOLD_ARCHER
-# 2785,C2_KOBOLD_1
-# 2786,C3_KNOCKER
-# 2787,C4_KIND_OF_BEETLE
-# 2788,C5_KASA
-# 2789,C1_KARAKASA
-# 2790,C2_ISIS
-# 2791,C3_ISILLA
-# 2792,C4_INJUSTICE
-# 2793,C5_INCREASE_SOIL
-# 2794,C1_ICE_TITAN
-# 2795,C2_IARA
-# 2796,C3_HYEGUN
-# 2797,C4_HUNTER_FLY
-# 2798,C5_HORNET
-# 2799,C1_HORN_SCARABA
-# 2800,C2_HORN
-# 2801,C3_HODREMLIN
-# 2802,C4_HODE
-# 2803,C5_HILL_WIND_1
-# 2804,C1_HILL_WIND_1
-# 2805,C2_HIGH_ORC
-# 2806,C3_HARPY
-# 2807,C4_HARPY
-# 2808,C5_GREEN_IGUANA
-# 2809,C1_GREATEST_GENERAL
-# 2810,C2_GRAND_PECO
-# 2811,C3_GRAND_PECO
-# 2812,C4_GOLEM
-# 2813,C5_GOBLIN_1
-# 2814,C1_GOBLIN_1
-# 2815,C2_GOAT
-# 2816,C3_GOAT
-# 2817,C4_GLD_KOBOLD_2
-# 2818,C5_GLD_KOBOLD_2
-# 2819,C1_GLD_DARK_SHADOW
-# 2820,C2_GLD_DARK_SHADOW
-# 2821,C3_GIANT_HONET
-# 2822,C4_GHOUL
-# 2823,C5_GHOUL
-# 2824,C1_GEOGRAPHER
-# 2825,C2_GEOGRAPHER
-# 2826,C3_GARGOYLE
-# 2827,C4_GARGOYLE
-# 2828,C5_GALION
-# 2829,C1_FUR_SEAL
-# 2830,C2_FREEZER
-# 2831,C3_FREEZER
-# 2832,C4_FERUS_
-# 2833,C5_FARMILIAR
-# 2834,C1_FAKE_ANGEL
-# 2835,C2_FABRE
-# 2836,C3_FABRE
-# 2837,C4_EXPLOSION
-# 2838,C5_EVIL_DRUID
-# 2839,C1_ELDER_WILOW
-# 2840,C2_ELDER_WILOW
-# 2841,C3_ECHIO
-# 2842,C4_DUSTINESS
-# 2843,C1_DRYAD
-# 2844,C2_DROSERA
-# 2845,C3_DROPS
-# 2846,C4_DRILLER
-# 2847,C5_DRAINLIAR
-# 2848,C1_DRAGON_TAIL
-# 2849,C2_DRACO
-# 2850,C3_DOLOMEDES
-# 2851,C4_DOKEBI
-# 2852,C5_DISGUISE
-# 2853,C1_DIMIK_1
-# 2854,C2_DEVIRUCHI
-# 2855,C3_DESERT_WOLF_B
-# 2856,C4_DESERT_WOLF_B
-# 2857,C5_DENIRO
-# 2858,C1_DEATHWORD
-# 2859,C2_DEATHWORD
-# 2860,C3_DEATHWORD
-# 2861,C4_DARK_PRIEST
-# 2862,C5_DANCING_DRAGON
-# 2863,C1_CREAMY
-# 2864,C2_CORNUTUS
-# 2865,C3_COOKIE
-# 2866,C4_CONSTANT
-# 2867,C5_COMODO
-# 2868,C1_COCO
-# 2869,C2_COCO
-# 2870,C3_CLOCK
-# 2871,C4_CLOCK
-# 2872,C5_CHONCHON
-# 2873,C1_CENTIPEDE
-# 2874,C2_CENERE
-# 2875,C3_CELIA
-# 2876,C4_CATERPILLAR
-# 2877,C5_CARAT
-# 2878,C1_CARAMEL
-# 2879,C2_BUNGISNGIS
-# 2880,C3_BREEZE
-# 2881,C4_BREEZE
-# 2882,C5_BRADIUM_GOLEM
-# 2883,C1_BLOOD_BUTTERFLY
-# 2884,C3_BIGFOOT
-# 2885,C4_BATHORY
-# 2886,C5_BANSHEE_MASTER
-# 2887,C1_BANSHEE
-# 2888,C2_BANASPATY
-# 2889,C3_ASSULTER
-# 2890,C4_ARGOS
-# 2891,C5_ARGIOPE
-# 2892,C1_ARGIOPE
-# 2893,C2_ARCLOUSE
-# 2894,C3_ARCLOUSE
-# 2895,C4_APOCALIPS
-# 2896,C5_ANTLER_SCARABA
-# 2897,C1_ANTIQUE_BOOK
-# 2898,C2_ANTIQUE_BOOK
-# 2899,C4_ANOLIAN
-# 2900,C5_ANGRA_MANTIS
-# 2901,C1_ANGRA_MANTIS
-# 2902,C2_ANDRE
-# 2903,C3_ANCIENT_MIMIC
-# 2904,C4_ANACONDAQ
-# 2905,C5_AMBERNITE
-# 2906,C1_ALNOLDI
-# 2907,C2_ALLIGATOR
-# 2908,C3_ALIZA
-# 2909,C4_ALICEL
-# 2910,C5_ALARM
-# 2911,C1_AGAV
-# 2912,C2_ACIDUS_
-# 2913,C3_ACIDUS_
-# 2914,E_GEFFEN_MAGE_3_1
-# 2915,HIDDEN_MOB6
-# 2916,BIG_BEN
-# 2917,BIG_BELL
-# 2918,TIME_KEEPER
-# 2919,NEO_PUNK
-# 2920,ARC_ELDER
-# 2921,OWL_VISCOUNT
-# 2922,G_OWL_VISCOUNT
-# 2923,OWL_MARQUEES
-# 2924,T_ELDER_WILOW
-# 2925,T_WILOW
-# 2926,T_HARPY
-# 2927,T_MINERAL
-# 2928,T_GIBBET
-# 2929,T_PLASMA_G
-# 2930,T_SOLACE
-# 2931,T_METALING
-# 2932,T_POPORING
-# 2933,T_DEVILING
-# 2934,T_ARCHANGELING
-# 2935,T_EVIL_CLOUD_HERMIT
-# 2936,E_GHOSTRING
-# 2937,M_LOKI
-# 2938,MM_MAGIC_SEAL
-# 2939,MM_EVIL_SHADOW1
-# 2940,MM_EVIL_SHADOW2
-# 2941,MM_EVIL_SHADOW3
-# 2942,MM_EVIL_FANATICS
-# 2943,MM_ICE_MINE
-# 2944,J_HORNET
-# 2945,J_MUMMY
-# 2946,J_ANUBIS
-# 2947,J_EGGYRA
-# 2948,CURSED_SOLDIER
-# 2949,CURSED_SENTINEL
-# 2950,BROKEN_MIND
-# 2951,FLOATING_WORD
-# 2952,LIKE_LOVE
-# 2953,CURSED_MEMORY
-# 2954,COLORLESS_VOW
-# 2955,OLD_FRIENDSHIP
-# 2956,SWEET_SLAUGHTER
-# 2957,FORGOTTEN_NAME
-# 2958,FATAL_DAYS
-# 2959,TORTUROUS_REDEEMER
-# 2960,MM_FLAMECROSS
-# 2961,E_TORTUROUS_REDEEMER
-# 2962,E_DEVILING
-# 2963,WOODIE
-# 2964,EXP_1000
-# 2965,TW_APOCALIPS_H
-# 2966,TW_B_EREMES
-# 2967,TW_B_HARWORD
-# 2968,TW_B_SEYREN
-# 2969,TW_BAPHOMET2
-# 2970,TW_DARK_LORD
-# 2971,TW_DARK_SNAKE_LORD
-# 2972,TW_DOPPELGANGER
-# 2973,TW_DRACULA
-# 2974,TW_EDDGA
-# 2975,TW_FALLINGBISHOP
-# 2976,TW_GLOOMUNDERNIGHT
-# 2977,TW_IFRIT
-# 2978,TW_KTULLANUX
-# 2979,TW_LORD_OF_DEATH2
-# 2980,TW_MISTRESS
-# 2981,TW_ORK_HERO2
-# 2982,TW_OSIRIS2
-# 2983,TW_RANDGRIS
-# 2984,TW_TURTLE_GENERAL
-# 2985,E_MYSTERIOUS_BUG
-# 2986,J_XMAS_SMOKEY_GIFT
-# 2987,XM_TREE
-# 2988,XM_ANTONIO
-# 2989,XM_COOKIE
-# 2990,XM_CRUISER
-# 2991,XM_MYSTCASE
-# 2992,XM_LUDE
-# 2993,XM_HYLOZOIST
-# 2994,XM_MARIONETTE
-# 2995,XM_TEDDY_BEAR
-# 2996,XM_CELINE_KIMI
-# 2997,G_XM_CELINE_KIMI
-# 2998,EP14_MORS_EVENT
-# 2999,EP14_MORS_BOSSA
-# 3000,EP14_MORS_BOSSB
-# 3001,EP14_MORS_MOB1
-# 3002,EP14_MORS_MOB2
-# 3003,EP14_MORS_MOB3
-# 3004,EP14_MORS_MOB4
-# 3005,EP14_MORS_MOB5
-# 3006,EP14_MORS_MOB6
-# 3007,EP14_MORS_DUMMY
-# 3008,EP14_MORS_HIDDEN
-# 3009,EP14_3_DEATH_BOSS
-# 3010,EP14_3_DEATH_A_MOB1
-# 3011,EP14_3_DEATH_A_MOB2
-# 3012,EP14_3_DEATH_A_MOB3
-# 3013,EP14_3_DEATH_B_MOB1
-# 3014,EP14_3_DEATH_B_MOB2
-# 3015,EP14_3_DEATH_B_MOB3
-# 3016,EP14_3_DEATH_C_MOB1
-# 3017,EP14_3_DEATH_C_MOB2
-# 3018,EP14_3_DEATH_C_MOB3
-# 3019,CELINE_KIMI
-# 3020,FIRE_CONDOR
-# 3021,FIRE_SAND_MAN
-# 3022,FIRE_FRILLDORA
-# 3023,FIRE_GOLEM
-# 3024,14_3_MERCENARY_A
-# 3025,14_3_MERCENARY_B
-# 3026,FIREPIT
-# 3027,FULBUK
-# 3028,SONIA
-# 3029,GRIM_REAPER_ANKOU
-# 3030,STANDING_SOUL
-# 3031,MUTANT_NECROMANCER
-# 3032,MUTANT_GHOUL
-# 3033,MUTANT_OSIRIS
-# 3034,MUTANT_ARCHER_SKELETON
-# 3035,MUTANT_WRAITH_DEAD
-# 3036,MUTANT_VERIT
-# 3037,MUTANT_LUDE
-# 3038,HIDDEN_MOB7
-# 3039,B_MOROCC_1
-# 3040,B_MOROCC_2
-# 3041,B_MOROCC_4
-# 3042,WATERMELON_17
-# 3043,WATERMELON_18
-# 3044,WATERMELON_19
-# 3045,WATERMELON_20
-# 3046,WATERMELON_21
-# 3047,WATERMELON_22
-# 3048,WATERMELON_23
-# 3049,WATERMELON_24
-# 3050,WATERMELON_25
-# 3051,WATERMELON_26
-# 3052,WATERMELON_27
-# 3053,WATERMELON_28
-# 3054,WATERMELON_29
-# 3055,WATERMELON_30
-# 3056,WATERMELON_31
-# 3057,WATERMELON_32
-# 3058,WATERMELON_33
-# 3059,EIGHT_DIVISION
-# 3060,E_QUESTION_OCTOPUS
-# 3061,E_ANGRY_MIMIC
-# 3062,GIANT_DEVIRUCHI
-# 3063,DEVIRUCHI_W
-# 3064,GIANT_DEVIRUCHI_W
-# 3065,E_ICE_MINE
-# 3066,SNAKE_NEWYEAR
-# 3067,E_ORC_WOMAN
-# 3068,E_PYTHON_SKIN
-# 3069,PERE1
-# 3070,PERE2
-# 3071,PERE3
-# 3072,PERE4
-# 3073,GRAND_PERE
-# 3074,TIMEHOLDER
-# 3075,WA_TREASURE
-# 3076,WA_MONSTER_1
-# 3077,WA_MONSTER_2
-# 3078,WA_MONSTER_3
-# 3079,WA_MONSTER_4
-# 3080,WA_MONSTER_5
-# 3081,WA_MONSTER_6
-# 3082,WA_MONSTER_7
-# 3083,WA_MONSTER_8
-# 3084,WA_MONSTER_9
-# 3085,WA_MONSTER_10
-# 3086,WA_MERCENARY
-# 3087,M_NYDHOG
-# 3088,MM_BRINARANEA_BABY
-# 3089,MM_LOCO_KASA
-# 3090,MM_LOCO_SALAMANDER
-# 3091,MM_BRINARANEA
-# 3092,MM_MUSPELLSKOLL
-# 3093,MM_BRINARANEA_CORE
-# 3094,MM_MUSPELLSKOLL_CORE
-# 3095,MM_GOD_SHADOW
-# 3096,MM_MOROCC_KID
-# 3097,MM_MOROCC_ADT
-# 3098,MM_MOROCC_ORIGIN
-# 3099,MM_MOROCC_REST
-# 3100,MM_MANA_BLACK
-# 3101,MM_MANA_WHITE
-# 3102,MM_MANA_RED
-# 3103,MM_MANA_YELLOW
-# 3104,MM_MANA_BLUE
-# 3105,MM_GB_MOROCC_1
-# 3106,MM_GB_MOROCC_4
-# 3107,E_EASTER_BUNNY
-# 3108,JITTERBUG1
-# 3109,JITTERBUG2
+-- 2477,NG_WANDER_MAN
+-- 2478,NG_RIDEWORD
+-- 2479,NG_MIMIC
+-- 2480,NG_EVIL_DRUID
+-- 2481,NG_WRAITH_DEAD
+-- 2482,G_MG_KHALITZBURG
+-- 2483,NG_BAPHOMET
+-- 2484,G_NG_BAPHOMET_
+-- 2485,NG_CHIMERA
+-- 2486,ISIS_ANNIV
+-- 2487,PASANA_ANNIV
+-- 2488,OSIRIS_ANNIV
+-- 2489,GM_WOMAN
+-- 2490,GM_SAY
+-- 2491,GM_SMOKIE
+-- 2492,GM_PHOENIX
+-- 2493,GM_MEN
+-- 2494,GM_HINALLE
+-- 2495,HIDDEN_MOB2
+-- 2496,I_UZHAS
+-- 2497,I_DOKEBI
+-- 2498,G_WISH_MAIDEN
+-- 2499,J_PORING
+-- 2500,E_MEGALODON
+-- 2501,E_ASTER
+-- 2502,E_CRAB
+-- 2503,E_SHELLFISH
+-- 2504,E_COELACANTH_N_E
+-- 2505,E_RED_ERUMA
+-- 2506,E_KING_DRAMOH
+-- 2507,E_CORNUTUS
+-- 2508,E_PENOMENA
+-- 2509,KRAKEN_LEG_6
+-- 2510,WATERMELON_1
+-- 2511,WATERMELON_2
+-- 2512,WATERMELON_3
+-- 2513,WATERMELON_4
+-- 2514,WATERMELON_5
+-- 2515,WATERMELON_6
+-- 2516,WATERMELON_7
+-- 2517,WATERMELON_8
+-- 2518,WATERMELON_9
+-- 2519,WATERMELON_10
+-- 2520,WATERMELON_11
+-- 2521,WATERMELON_12
+-- 2522,WATERMELON_13
+-- 2523,WATERMELON_14
+-- 2524,WATERMELON_15
+-- 2525,WATERMELON_16
+-- 2526,E_BANDIT
+-- 2527,ME_ANOPHELES
+-- 2528,FACEWORM
+-- 2529,FACEWORM_QUEEN
+-- 2530,FACEWORM_DARK
+-- 2531,VENOM_BUG
+-- 2532,FACEWORM_QUEEN_R
+-- 2533,FACEWORM_QUEEN_G
+-- 2534,FACEWORM_QUEEN_B
+-- 2535,FACEWORM_QUEEN_Y
+-- 2536,HIDDEN_MOB3
+-- 2537,HIDDEN_MOB4
+-- 2538,E_KING_PORING
+-- 2539,HIDDEN_MOB5
+-- 2540,FACEWORM_EGG
+-- 2541,FACEWORM_LARVA
+-- 2542,IRENE_ELDER
+-- 2543,PAYONSOLDIER
+-- 2544,PAYONSOLDIER2
+-- 2545,GUARDDOG
+-- 2546,GUARDDOG2
+-- 2547,MER_GARM_BABY
+-- 2548,MER_HILLSRION
+-- 2549,GEFFEN_MAGE_1
+-- 2550,GEFFEN_MAGE_2
+-- 2551,GEFFEN_MAGE_3_1
+-- 2552,GEFFEN_MAGE_3_2
+-- 2553,GEFFEN_MAGE_3_3
+-- 2554,GEFFEN_MAGE_4
+-- 2555,GEFFEN_MAGE_5
+-- 2556,GEFFEN_MAGE_6
+-- 2557,GEFFEN_MAGE_7
+-- 2558,GEFFEN_MAGE_8
+-- 2559,GEFFEN_MAGE_9
+-- 2560,GEFFEN_MAGE_10
+-- 2561,GEFFEN_MAGE_11
+-- 2562,GEFFEN_MAGE_12
+-- 2563,FEI_KANABIAN
+-- 2564,GEFFEN_FENRIR
+-- 2565,ALPHONSE
+-- 2566,ALPHONSE_JR
+-- 2567,E_GEFFEN_MAGE_3_2
+-- 2568,E_GEFFEN_MAGE_3_3
+-- 2569,G_ANOPHELES
+-- 2570,G_BREEZE
+-- 2571,G_BUTOIJO
+-- 2572,G_CARAMEL
+-- 2573,G_CHONCHON
+-- 2574,G_CIVIL_SERVANT
+-- 2575,G_COCO
+-- 2576,G_CREAMY
+-- 2577,G_FABRE
+-- 2578,G_HORN
+-- 2579,G_HYLOZOIST
+-- 2580,G_KAHO
+-- 2581,G_LUDE
+-- 2582,G_LUNATIC
+-- 2583,G_MARTIN
+-- 2584,G_MINERAL
+-- 2585,G_MOLE
+-- 2586,G_NERAID
+-- 2587,G_OBSIDIAN
+-- 2588,G_PITMAN
+-- 2589,G_POPORING
+-- 2590,G_ROCKER
+-- 2591,G_SAVAGE
+-- 2592,G_SIORAVA
+-- 2593,G_SIROMA
+-- 2594,G_SNOWIER
+-- 2595,G_STAINER
+-- 2596,G_STAPO
+-- 2597,G_STEEL_CHONCHON
+-- 2598,G_UNGOLIANT
+-- 2599,G_WILD_RIDER
+-- 2600,G_WOLF
+-- 2601,G_YOYO
+-- 2602,G_ZIPPER_BEAR
+-- 2603,C1_ZOMBIE_SLAUGHTER
+-- 2604,C2_ZOMBIE_PRISONER
+-- 2605,C3_ZOMBIE_MASTER
+-- 2606,C4_ZOMBIE
+-- 2607,C5_ZAKUDAM
+-- 2608,C1_YOYO
+-- 2609,C2_YOYO
+-- 2610,C3_WORM_TAIL
+-- 2611,C4_WOOTAN_FIGHTER
+-- 2612,C5_WOOD_GOBLIN
+-- 2613,C1_WOLF
+-- 2614,C2_WIND_GHOST
+-- 2615,C3_WILOW
+-- 2616,C4_WILD_ROSE
+-- 2617,C5_WICKED_NYMPH
+-- 2618,C2_WHISPER
+-- 2619,C3_WEAK_SKELETON
+-- 2620,C4_WANDER_MAN
+-- 2621,C5_VIOLY
+-- 2622,C1_VIOLY
+-- 2623,C2_VIOLY
+-- 2624,C3_VENOMOUS
+-- 2625,C4_VENATU_1
+-- 2626,C5_VAVAYAGA
+-- 2627,C1_VANBERK
+-- 2628,C2_VADON
+-- 2629,C3_UNGOLIANT
+-- 2630,C4_TOUCAN
+-- 2631,C5_TIYANAK
+-- 2632,C2_THIEF_BUG
+-- 2633,C3_THIEF_BUG
+-- 2634,C4_THIEF_BUG
+-- 2635,C5_THARA_FROG
+-- 2636,C1_TEDDY_BEAR
+-- 2637,C2_TATACHO
+-- 2638,C3_TAROU
+-- 2639,C4_TAMRUAN
+-- 2640,C5_STING
+-- 2641,C1_STEM_WORM
+-- 2642,C2_STEEL_CHONCHON
+-- 2643,C3_STAPO
+-- 2644,C4_STALACTIC_GOLEM
+-- 2645,C5_STAINER
+-- 2646,C1_SPORE
+-- 2647,C2_SOLIDER
+-- 2648,C3_SOLDIER_SKELETON
+-- 2649,C4_SOLDIER_SKELETON
+-- 2650,C5_SOLACE
+-- 2651,C1_SOHEE
+-- 2652,C2_SNOWIER
+-- 2653,C3_SNAKE
+-- 2654,C4_SMOKIE
+-- 2655,C5_SLEEPER
+-- 2656,C1_SLEEPER
+-- 2657,C2_SKOGUL
+-- 2658,C3_SKELETON_GENERAL
+-- 2659,C4_SKELETON_GENERAL
+-- 2660,C5_SKEL_WORKER
+-- 2661,C1_SIROMA
+-- 2662,C2_SIDE_WINDER
+-- 2663,C3_SIDE_WINDER
+-- 2664,C4_SHINOBI
+-- 2665,C5_SHELTER
+-- 2666,C1_SHELLFISH
+-- 2667,C2_SHECIL
+-- 2668,C3_SEE_OTTER
+-- 2669,C4_SEDORA
+-- 2670,C5_SCORPION
+-- 2671,C1_SAVAGE_BABE
+-- 2672,C2_SAVAGE
+-- 2673,C3_SAVAGE
+-- 2674,C4_SAND_MAN
+-- 2675,C5_SALAMANDER
+-- 2676,C1_SAILOR_SKELETON
+-- 2677,C2_ROWEEN
+-- 2678,C3_RODA_FROG
+-- 2679,C4_RODA_FROG
+-- 2680,C5_ROCKER
+-- 2681,C1_RIDEWORD
+-- 2682,C2_RIDEWORD
+-- 2683,C3_RICE_CAKE_BOY
+-- 2684,C4_RETRIBUTION
+-- 2685,C5_RETRIBUTION
+-- 2686,C1_RETRIBUTION
+-- 2687,C2_REQUIEM
+-- 2688,C3_REMOVAL
+-- 2689,C5_RED_ERUMA
+-- 2690,C1_RAYDRIC
+-- 2691,C2_RAYDRIC
+-- 2692,C3_RAWREL
+-- 2693,C4_RAKE_SCARABA
+-- 2694,C5_RAGGLER
+-- 2695,C1_RAFFLESIA
+-- 2696,C3_PORING
+-- 2697,C4_PORING
+-- 2698,C5_PORING
+-- 2699,C1_PORING
+-- 2700,C2_PORCELLIO
+-- 2701,C3_POPORING
+-- 2702,C4_POPORING
+-- 2703,C5_POPORING
+-- 2704,C1_POISON_TOAD
+-- 2705,C2_POISON_SPORE
+-- 2706,C3_PLASMA_Y
+-- 2707,C4_PLANKTON
+-- 2708,C5_PITMAN
+-- 2709,C1_PIRANHA
+-- 2710,C2_PINGUICULA_D
+-- 2711,C3_PINGUICULA
+-- 2712,C4_PICKY_
+-- 2713,C5_PHEN
+-- 2714,C1_PETIT
+-- 2715,C2_PETIT
+-- 2716,C3_PENOMENA
+-- 2717,C4_PENOMENA
+-- 2718,C5_PECOPECO
+-- 2719,C1_PASANA
+-- 2720,C2_PARASITE
+-- 2721,C3_OWL_DUKE
+-- 2722,C4_ORK_WARRIOR
+-- 2723,C5_ORC_ZOMBIE
+-- 2724,C1_ORC_SKELETON
+-- 2725,C2_ORC_LADY
+-- 2726,C3_OBSERVATION
+-- 2727,C4_NOXIOUS
+-- 2728,C5_NOVUS
+-- 2729,C1_NOVUS
+-- 2730,C2_NOVUS
+-- 2731,C3_NOVUS
+-- 2732,C4_NIGHTMARE_TERROR
+-- 2733,C5_NG_WRAITH_DEAD
+-- 2734,C1_NG_WANDER_MAN
+-- 2735,C2_NEPENTHES
+-- 2736,C3_NECROMANCER
+-- 2737,C4_MYSTCASE
+-- 2738,C5_MUSCIPULAR
+-- 2739,C1_MUMMY
+-- 2740,C2_MUMMY
+-- 2741,C3_MUKA
+-- 2742,C4_MOROCC_1
+-- 2743,C5_MOROCC_1
+-- 2744,C1_MOROCC_1
+-- 2745,C2_MOLE
+-- 2746,C3_MIYABI_NINGYO
+-- 2747,C4_MINOROUS
+-- 2748,C5_MINOROUS
+-- 2749,C1_MINOROUS
+-- 2750,C2_MINERAL
+-- 2751,C3_MIMING
+-- 2752,C4_MIMIC
+-- 2753,C5_MIMIC
+-- 2754,C1_METALLER
+-- 2755,C2_METALING
+-- 2756,C3_METALING
+-- 2757,C4_MERMAN
+-- 2758,C5_MENBLATT
+-- 2759,C1_MEDUSA
+-- 2760,C2_MARTIN
+-- 2761,C3_MARIONETTE
+-- 2762,C4_MARIN
+-- 2763,C5_MARDUK
+-- 2764,C1_MANTIS
+-- 2765,C2_MANDRAGORA
+-- 2766,C3_MANANANGGAL
+-- 2767,C4_MAJORUROS
+-- 2768,C5_MAGNOLIA
+-- 2769,C1_MAGMARING
+-- 2770,C2_LUNATIC
+-- 2771,C3_LUNATIC
+-- 2772,C4_LUDE
+-- 2773,C5_LUCIOLA_VESPA
+-- 2774,C1_LOLI_RURI
+-- 2775,C2_LIVE_PEACH_TREE
+-- 2776,C3_LITTLE_PORING
+-- 2777,C4_LITTLE_FATUM
+-- 2778,C5_LI_ME_MANG_RYANG
+-- 2779,C1_LES
+-- 2780,C2_LEIB_OLMAI
+-- 2781,C3_LEAF_CAT
+-- 2782,C4_L_WHIKEBAIN
+-- 2783,C5_L_EREMES
+-- 2784,C1_KOBOLD_ARCHER
+-- 2785,C2_KOBOLD_1
+-- 2786,C3_KNOCKER
+-- 2787,C4_KIND_OF_BEETLE
+-- 2788,C5_KASA
+-- 2789,C1_KARAKASA
+-- 2790,C2_ISIS
+-- 2791,C3_ISILLA
+-- 2792,C4_INJUSTICE
+-- 2793,C5_INCREASE_SOIL
+-- 2794,C1_ICE_TITAN
+-- 2795,C2_IARA
+-- 2796,C3_HYEGUN
+-- 2797,C4_HUNTER_FLY
+-- 2798,C5_HORNET
+-- 2799,C1_HORN_SCARABA
+-- 2800,C2_HORN
+-- 2801,C3_HODREMLIN
+-- 2802,C4_HODE
+-- 2803,C5_HILL_WIND_1
+-- 2804,C1_HILL_WIND_1
+-- 2805,C2_HIGH_ORC
+-- 2806,C3_HARPY
+-- 2807,C4_HARPY
+-- 2808,C5_GREEN_IGUANA
+-- 2809,C1_GREATEST_GENERAL
+-- 2810,C2_GRAND_PECO
+-- 2811,C3_GRAND_PECO
+-- 2812,C4_GOLEM
+-- 2813,C5_GOBLIN_1
+-- 2814,C1_GOBLIN_1
+-- 2815,C2_GOAT
+-- 2816,C3_GOAT
+-- 2817,C4_GLD_KOBOLD_2
+-- 2818,C5_GLD_KOBOLD_2
+-- 2819,C1_GLD_DARK_SHADOW
+-- 2820,C2_GLD_DARK_SHADOW
+-- 2821,C3_GIANT_HONET
+-- 2822,C4_GHOUL
+-- 2823,C5_GHOUL
+-- 2824,C1_GEOGRAPHER
+-- 2825,C2_GEOGRAPHER
+-- 2826,C3_GARGOYLE
+-- 2827,C4_GARGOYLE
+-- 2828,C5_GALION
+-- 2829,C1_FUR_SEAL
+-- 2830,C2_FREEZER
+-- 2831,C3_FREEZER
+-- 2832,C4_FERUS_
+-- 2833,C5_FARMILIAR
+-- 2834,C1_FAKE_ANGEL
+-- 2835,C2_FABRE
+-- 2836,C3_FABRE
+-- 2837,C4_EXPLOSION
+-- 2838,C5_EVIL_DRUID
+-- 2839,C1_ELDER_WILOW
+-- 2840,C2_ELDER_WILOW
+-- 2841,C3_ECHIO
+-- 2842,C4_DUSTINESS
+-- 2843,C1_DRYAD
+-- 2844,C2_DROSERA
+-- 2845,C3_DROPS
+-- 2846,C4_DRILLER
+-- 2847,C5_DRAINLIAR
+-- 2848,C1_DRAGON_TAIL
+-- 2849,C2_DRACO
+-- 2850,C3_DOLOMEDES
+-- 2851,C4_DOKEBI
+-- 2852,C5_DISGUISE
+-- 2853,C1_DIMIK_1
+-- 2854,C2_DEVIRUCHI
+-- 2855,C3_DESERT_WOLF_B
+-- 2856,C4_DESERT_WOLF_B
+-- 2857,C5_DENIRO
+-- 2858,C1_DEATHWORD
+-- 2859,C2_DEATHWORD
+-- 2860,C3_DEATHWORD
+-- 2861,C4_DARK_PRIEST
+-- 2862,C5_DANCING_DRAGON
+-- 2863,C1_CREAMY
+-- 2864,C2_CORNUTUS
+-- 2865,C3_COOKIE
+-- 2866,C4_CONSTANT
+-- 2867,C5_COMODO
+-- 2868,C1_COCO
+-- 2869,C2_COCO
+-- 2870,C3_CLOCK
+-- 2871,C4_CLOCK
+-- 2872,C5_CHONCHON
+-- 2873,C1_CENTIPEDE
+-- 2874,C2_CENERE
+-- 2875,C3_CELIA
+-- 2876,C4_CATERPILLAR
+-- 2877,C5_CARAT
+-- 2878,C1_CARAMEL
+-- 2879,C2_BUNGISNGIS
+-- 2880,C3_BREEZE
+-- 2881,C4_BREEZE
+-- 2882,C5_BRADIUM_GOLEM
+-- 2883,C1_BLOOD_BUTTERFLY
+-- 2884,C3_BIGFOOT
+-- 2885,C4_BATHORY
+-- 2886,C5_BANSHEE_MASTER
+-- 2887,C1_BANSHEE
+-- 2888,C2_BANASPATY
+-- 2889,C3_ASSULTER
+-- 2890,C4_ARGOS
+-- 2891,C5_ARGIOPE
+-- 2892,C1_ARGIOPE
+-- 2893,C2_ARCLOUSE
+-- 2894,C3_ARCLOUSE
+-- 2895,C4_APOCALIPS
+-- 2896,C5_ANTLER_SCARABA
+-- 2897,C1_ANTIQUE_BOOK
+-- 2898,C2_ANTIQUE_BOOK
+-- 2899,C4_ANOLIAN
+-- 2900,C5_ANGRA_MANTIS
+-- 2901,C1_ANGRA_MANTIS
+-- 2902,C2_ANDRE
+-- 2903,C3_ANCIENT_MIMIC
+-- 2904,C4_ANACONDAQ
+-- 2905,C5_AMBERNITE
+-- 2906,C1_ALNOLDI
+-- 2907,C2_ALLIGATOR
+-- 2908,C3_ALIZA
+-- 2909,C4_ALICEL
+-- 2910,C5_ALARM
+-- 2911,C1_AGAV
+-- 2912,C2_ACIDUS_
+-- 2913,C3_ACIDUS_
+-- 2914,E_GEFFEN_MAGE_3_1
+-- 2915,HIDDEN_MOB6
+-- 2916,BIG_BEN
+-- 2917,BIG_BELL
+-- 2918,TIME_KEEPER
+-- 2919,NEO_PUNK
+-- 2920,ARC_ELDER
+-- 2921,OWL_VISCOUNT
+-- 2922,G_OWL_VISCOUNT
+-- 2923,OWL_MARQUEES
+REPLACE INTO `mob_db` VALUES (2924,'T_ELDER_WILOW','Elder Willow','Elder Willow',34,599,1,116,131,1,80,14,45,0,10,14,25,0,29,0,10,12,1,3,43,0x3095,200,1372,672,432,0,0,0,0,0,0,0,6067,500,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2925,'T_WILOW','Willow','Willow',8,91,1,31,23,1,13,5,38,2,13,3,8,5,12,5,10,12,1,3,22,0x0081,200,1672,672,432,0,0,0,0,0,0,0,6065,500,6066,500,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2926,'T_HARPY','Harpy','Harpy',83,4423,1,660,760,1,340,41,69,44,71,39,50,31,125,12,10,12,1,6,64,0x3885,155,972,672,470,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2927,'T_MINERAL','Mineral','Mineral',96,8300,1,802,1013,1,751,57,127,23,70,61,40,50,74,50,10,12,0,0,40,0x0091,250,648,480,360,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2928,'T_GIBBET','Gibbet','Gibbet',105,12999,1,972,874,1,697,85,116,45,103,56,62,55,73,37,10,12,2,6,27,0x3885,180,917,1584,576,0,0,0,0,0,0,0,7406,500,7407,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2929,'T_PLASMA_G','Plasma','Plasma',116,24975,1,2176,1506,1,851,112,120,3,121,60,58,62,102,50,10,12,0,0,82,0x3885,100,1000,500,1000,0,0,0,0,0,0,0,6065,500,6066,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2930,'T_SOLACE','Solace','Solace',123,24729,1,2442,2409,2,1234,165,96,96,106,65,61,42,125,72,10,12,1,8,66,0x3295,180,576,420,360,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2931,'T_METALING','Metaling','Metaling',81,4300,1,524,537,1,188,39,69,28,58,30,49,17,60,5,10,12,0,0,20,0x0083,300,384,672,480,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2932,'T_POPORING','Poporing','Poporing',30,524,1,99,112,1,74,20,36,17,17,26,20,18,36,5,10,12,1,3,25,0x0083,300,1672,672,480,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2933,'T_DEVILING','Deviling','Deviling',66,16890,1,1197,1189,1,313,183,67,70,48,50,33,75,85,200,10,12,1,6,87,0x3695,200,1072,1056,384,0,0,0,0,0,0,0,7410,500,7411,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2934,'T_ARCHANGELING','Arc Angeling','Arc Angeling',84,25100,1,1789,1455,1,593,100,92,81,32,48,62,99,119,105,10,12,1,8,66,0x3695,180,1072,672,480,0,0,0,0,0,0,0,7410,500,7411,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2935,'T_EVIL_CLOUD_HERMIT','Taoist Hermit','Taoist Hermit',96,8266,1,902,563,10,611,30,66,46,63,57,45,60,119,45,10,12,2,0,40,0x2085,190,480,840,432,0,0,0,0,0,0,0,6067,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db` VALUES (2936,'E_GHOSTRING','E_GHOSTRING','E_GHOSTRING',1,10,0,0,0,1,1,2,100,99,0,0,0,0,0,0,7,12,0,3,20,0,300,1220,1080,648,0,0,0,0,0,0,0,535,2000,12192,2000,7225,2000,6658,4000,0,0,0,0,0,0,0,0,0,0,0,0);
+-- 2937,M_LOKI
+-- 2938,MM_MAGIC_SEAL
+-- 2939,MM_EVIL_SHADOW1
+-- 2940,MM_EVIL_SHADOW2
+-- 2941,MM_EVIL_SHADOW3
+-- 2942,MM_EVIL_FANATICS
+-- 2943,MM_ICE_MINE
+-- 2944,J_HORNET
+-- 2945,J_MUMMY
+-- 2946,J_ANUBIS
+-- 2947,J_EGGYRA
+-- 2948,CURSED_SOLDIER
+-- 2949,CURSED_SENTINEL
+-- 2950,BROKEN_MIND
+-- 2951,FLOATING_WORD
+-- 2952,LIKE_LOVE
+-- 2953,CURSED_MEMORY
+-- 2954,COLORLESS_VOW
+-- 2955,OLD_FRIENDSHIP
+-- 2956,SWEET_SLAUGHTER
+-- 2957,FORGOTTEN_NAME
+-- 2958,FATAL_DAYS
+-- 2959,TORTUROUS_REDEEMER
+-- 2960,MM_FLAMECROSS
+-- 2961,E_TORTUROUS_REDEEMER
+-- 2962,E_DEVILING
+-- 2963,WOODIE
+-- 2964,EXP_1000
+-- 2965,TW_APOCALIPS_H
+-- 2966,TW_B_EREMES
+-- 2967,TW_B_HARWORD
+-- 2968,TW_B_SEYREN
+-- 2969,TW_BAPHOMET2
+-- 2970,TW_DARK_LORD
+-- 2971,TW_DARK_SNAKE_LORD
+-- 2972,TW_DOPPELGANGER
+-- 2973,TW_DRACULA
+-- 2974,TW_EDDGA
+-- 2975,TW_FALLINGBISHOP
+-- 2976,TW_GLOOMUNDERNIGHT
+-- 2977,TW_IFRIT
+-- 2978,TW_KTULLANUX
+-- 2979,TW_LORD_OF_DEATH2
+-- 2980,TW_MISTRESS
+-- 2981,TW_ORK_HERO2
+-- 2982,TW_OSIRIS2
+-- 2983,TW_RANDGRIS
+-- 2984,TW_TURTLE_GENERAL
+-- 2985,E_MYSTERIOUS_BUG
+-- 2986,J_XMAS_SMOKEY_GIFT
+-- 2987,XM_TREE
+-- 2988,XM_ANTONIO
+-- 2989,XM_COOKIE
+-- 2990,XM_CRUISER
+-- 2991,XM_MYSTCASE
+-- 2992,XM_LUDE
+-- 2993,XM_HYLOZOIST
+-- 2994,XM_MARIONETTE
+-- 2995,XM_TEDDY_BEAR
+-- 2996,XM_CELINE_KIMI
+-- 2997,G_XM_CELINE_KIMI
+-- 2998,EP14_MORS_EVENT
+-- 2999,EP14_MORS_BOSSA
+-- 3000,EP14_MORS_BOSSB
+-- 3001,EP14_MORS_MOB1
+-- 3002,EP14_MORS_MOB2
+-- 3003,EP14_MORS_MOB3
+-- 3004,EP14_MORS_MOB4
+-- 3005,EP14_MORS_MOB5
+-- 3006,EP14_MORS_MOB6
+-- 3007,EP14_MORS_DUMMY
+-- 3008,EP14_MORS_HIDDEN
+-- 3009,EP14_3_DEATH_BOSS
+-- 3010,EP14_3_DEATH_A_MOB1
+-- 3011,EP14_3_DEATH_A_MOB2
+-- 3012,EP14_3_DEATH_A_MOB3
+-- 3013,EP14_3_DEATH_B_MOB1
+-- 3014,EP14_3_DEATH_B_MOB2
+-- 3015,EP14_3_DEATH_B_MOB3
+-- 3016,EP14_3_DEATH_C_MOB1
+-- 3017,EP14_3_DEATH_C_MOB2
+-- 3018,EP14_3_DEATH_C_MOB3
+-- 3019,CELINE_KIMI
+-- 3020,FIRE_CONDOR
+-- 3021,FIRE_SAND_MAN
+-- 3022,FIRE_FRILLDORA
+-- 3023,FIRE_GOLEM
+-- 3024,14_3_MERCENARY_A
+-- 3025,14_3_MERCENARY_B
+-- 3026,FIREPIT
+-- 3027,FULBUK
+-- 3028,SONIA
+-- 3029,GRIM_REAPER_ANKOU
+-- 3030,STANDING_SOUL
+-- 3031,MUTANT_NECROMANCER
+-- 3032,MUTANT_GHOUL
+-- 3033,MUTANT_OSIRIS
+-- 3034,MUTANT_ARCHER_SKELETON
+-- 3035,MUTANT_WRAITH_DEAD
+-- 3036,MUTANT_VERIT
+-- 3037,MUTANT_LUDE
+-- 3038,HIDDEN_MOB7
+-- 3039,B_MOROCC_1
+-- 3040,B_MOROCC_2
+-- 3041,B_MOROCC_4
+-- 3042,WATERMELON_17
+-- 3043,WATERMELON_18
+-- 3044,WATERMELON_19
+-- 3045,WATERMELON_20
+-- 3046,WATERMELON_21
+-- 3047,WATERMELON_22
+-- 3048,WATERMELON_23
+-- 3049,WATERMELON_24
+-- 3050,WATERMELON_25
+-- 3051,WATERMELON_26
+-- 3052,WATERMELON_27
+-- 3053,WATERMELON_28
+-- 3054,WATERMELON_29
+-- 3055,WATERMELON_30
+-- 3056,WATERMELON_31
+-- 3057,WATERMELON_32
+-- 3058,WATERMELON_33
+-- 3059,EIGHT_DIVISION
+-- 3060,E_QUESTION_OCTOPUS
+-- 3061,E_ANGRY_MIMIC
+-- 3062,GIANT_DEVIRUCHI
+-- 3063,DEVIRUCHI_W
+-- 3064,GIANT_DEVIRUCHI_W
+-- 3065,E_ICE_MINE
+-- 3066,SNAKE_NEWYEAR
+-- 3067,E_ORC_WOMAN
+-- 3068,E_PYTHON_SKIN
+-- 3069,PERE1
+-- 3070,PERE2
+-- 3071,PERE3
+-- 3072,PERE4
+-- 3073,GRAND_PERE
+-- 3074,TIMEHOLDER
+-- 3075,WA_TREASURE
+-- 3076,WA_MONSTER_1
+-- 3077,WA_MONSTER_2
+-- 3078,WA_MONSTER_3
+-- 3079,WA_MONSTER_4
+-- 3080,WA_MONSTER_5
+-- 3081,WA_MONSTER_6
+-- 3082,WA_MONSTER_7
+-- 3083,WA_MONSTER_8
+-- 3084,WA_MONSTER_9
+-- 3085,WA_MONSTER_10
+-- 3086,WA_MERCENARY
+-- 3087,M_NYDHOG
+-- 3088,MM_BRINARANEA_BABY
+-- 3089,MM_LOCO_KASA
+-- 3090,MM_LOCO_SALAMANDER
+-- 3091,MM_BRINARANEA
+-- 3092,MM_MUSPELLSKOLL
+-- 3093,MM_BRINARANEA_CORE
+-- 3094,MM_MUSPELLSKOLL_CORE
+-- 3095,MM_GOD_SHADOW
+-- 3096,MM_MOROCC_KID
+-- 3097,MM_MOROCC_ADT
+-- 3098,MM_MOROCC_ORIGIN
+-- 3099,MM_MOROCC_REST
+-- 3100,MM_MANA_BLACK
+-- 3101,MM_MANA_WHITE
+-- 3102,MM_MANA_RED
+-- 3103,MM_MANA_YELLOW
+-- 3104,MM_MANA_BLUE
+-- 3105,MM_GB_MOROCC_1
+-- 3106,MM_GB_MOROCC_4
+-- 3107,E_EASTER_BUNNY
+-- 3108,JITTERBUG1
+-- 3109,JITTERBUG2
diff --git a/sql-files/mob_skill_db.sql b/sql-files/mob_skill_db.sql
index b240711cb..7163fefa3 100644
--- a/sql-files/mob_skill_db.sql
+++ b/sql-files/mob_skill_db.sql
@@ -3,7 +3,7 @@
--
DROP TABLE IF EXISTS `mob_skill_db`;
-CREATE TABLE IF NOT EXISTS `mob_skill_db` (
+CREATE TABLE `mob_skill_db` (
`MOB_ID` SMALLINT(6) NOT NULL,
`INFO` TEXT NOT NULL,
`STATE` TEXT NOT NULL,
@@ -25,70 +25,61 @@ CREATE TABLE IF NOT EXISTS `mob_skill_db` (
`CHAT` TEXT
) ENGINE=MyISAM;
--- Based on Aegis Episode 11.3
---
+-- Mob Skill Database
+-- Based on Aegis Episode 11.3
+--
+-- Structure of Database:
-- REPLACE INTO `mob_skill_db` VALUES (MOB_ID,'dummy value (info only)','STATE',SKILL_ID,SKILL_LV,rate (10000 = 100%),casttime,delay,'cancelable','target','condition type','condition value',val1,val2,val3,val4,val5,'emotion','chat');
--- Example
--- 1001,Poring@TF_POISON,attack,52,3,100,1500,10000,no,target,always,0,,,,,7,
---
--- rate refers to the chance of the skill being casted when the condition is fulfilled.
--- delay is the time in milliseconds that has to be pass before recasting the same skill.
--
--- STATE:
--- any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
--- loot /attack / angry (like attack, except player has not attacked mob yet) /
--- chase (following target, after being attacked) / follow (following
--- target, without being attacked)
--- anytarget (attack+angry+chase+follow)
+-- RATE: the chance of the skill being casted when the condition is fulfilled (10000 = 100%).
+-- DELAY: the time (in milliseconds) before attempting to recast the same skill.
--
--- target: The target of the skill can be: target (current target) / self / friend /
--- master / randomtarget (any enemy within skill's range)
--- (the following are for ground-skills, a random target tile is selected from
--- the specified area):
--- around1 (3x3 area around self) / around2 (5x5 area around self) /
--- around3 (7x7 area around self) / around4 (9x9 area around self) /
--- around5 (3x3 area around target) / around6 (5x5 area around target) /
--- around7 (7x7 area around target) / around8 (9x9 area around target) /
--- around = around4
+-- STATE:
+-- any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
+-- loot /attack / angry (like attack, except player has not attacked mob yet) /
+-- chase (following target, after being attacked) / follow (following target,
+-- without being attacked) / anytarget (attack+angry+chase+follow)
--
--- conditions: (condition type) (value which specifies a condition value)
--- always unconditional
--- onspawn when the mob spawns/respawns.
--- myhpltmaxrate when the mob's hp drops to a certain %
--- myhpinrate when the mob's hp is in a certain % range ('a condition value'
--- is the lower cap, while 'a value 1' is the upper cap).
--- mystatuson If the mob has any abnormalities in status (condition value)
--- mystatusoff If the mob has ended any abnormalities in status (condition value)
--- friendhpltmaxrate when the mob's friend's hp drops to a certain %
--- friendhpinrate when the mob's friend's hp is in a certain % range (range
--- defined the same way as in myhpinrate)
--- friendstatuson If the friend has any abnormalities in status (condition value)
--- friendstatusoff If the friend has ended any abnormalities in status (condition value)
--- attackpcgt Attack PC becomes more than the number of specification
--- attackpcge Attack PC becomes equal or more than the number of specification.
--- slavelt when the number of slaves is lower than the original number of specification.
--- slavele when the number of slaves is lower or equal than the original number of specification.
--- closedattacked when melee attacked (close range attack)
--- longrangeattacked when long ranged attacked (like bows and far range weapons)
--- skillused when a skill is used on the mob
--- afterskill after the mob used certain skill.
--- casttargeted when a target is in cast range.
--- rudeattacked when a target is rude attacked
+-- TARGET:
+-- target (current target) / self / friend / master / randomtarget (any enemy within skill's range)
--
--- The character's state which can be specified to be a condition value by the statuson/statusoff system
--- anybad any type of state change
--- stone condition of being in stone state
--- freeze condition of being in frozen state
--- stun condition of being in stunned state
--- sleep condition of being in sleep state
--- poison condition of being in poisoned state
--- curse condition of being in cursed state
--- silence condition of being in silenced state
--- confusion condition of being in confusion state
--- blind condition of being in blind state
--- hiding condition of being in hidden state
--- sight condition of being in unhidden state
-
+-- The following are for ground-skills, a random target tile is selected from the specified area:
+-- around1 (3x3 area around self) / around2 (5x5 area around self) /
+-- around3 (7x7 area around self) / around4 (9x9 area around self) /
+-- around5 (3x3 area around target) / around6 (5x5 area around target) /
+-- around7 (7x7 area around target) / around8 (9x9 area around target) /
+-- around = around4
+--
+-- CONDITION:
+-- always Unconditional (no condition value).
+-- onspawn When mob spawns/respawns (no condition value).
+-- myhpltmaxrate When mob's HP drops to the specified %.
+-- myhpinrate When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- mystatuson If mob has the specified abnormality in status.
+-- mystatusoff If mob has ended the specified abnormality in status.
+-- friendhpltmaxrate When mob's friend's HP drops to the specified %.
+-- friendhpinrate When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- friendstatuson If friend has the specified abnormality in status.
+-- friendstatusoff If friend has ended the specified abnormality in status.
+-- attackpcgt When attack PCs become greater than specified number.
+-- attackpcge When attack PCs become greater than or equal to the specified number.
+-- slavelt When number of slaves is less than the original specified number.
+-- slavele When number of slaves is less than or equal to the original specified number.
+-- closedattacked When close range melee attacked (no condition value).
+-- longrangeattacked When long range attacked, ex. bows, guns, ranged skills (no condition value).
+-- skillused When the specified skill is used on the mob.
+-- afterskill After mob casts the specified skill.
+-- casttargeted When a target is in cast range (no condition value).
+-- rudeattacked When mob is rude attacked (no condition value).
+--
+-- Status abnormalities specified through the statuson/statusoff system:
+-- anybad (any type of state change) / stone / freeze / stun / sleep /
+-- poison / curse / silence / confusion / blind / hiding / sight (unhidden)
+--
+-- Note: if a negative MobID is provided, the skill will be treated as 'global':
+-- -1: added for all boss types.
+-- -2: added for all normal types.
+-- -4: added for all mobs.
REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1002,'Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -110,13 +101,13 @@ REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_GROUNDATTACK','attack',185,
REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1012,'Roda Frog@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_SLEEPATTACK','attack',182,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -125,15 +116,15 @@ REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','attack',347,
REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1020,'Mandragora@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -168,7 +159,7 @@ REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISON','attack',176,2,50
REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -193,14 +184,14 @@ REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@NPC_POISONATTACK','attack'
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','attack',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','chase',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKBREATH','attack',202,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -211,30 +202,30 @@ REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','idle',196,5,1
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,0,0,'no','self','onspawn',0,1029,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@WZ_QUAGMIRE','chase',92,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1101,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,5000,500,2000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -259,29 +250,29 @@ REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','attack',184,2,5
REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','angry',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'no','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'no','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','attack',30,48,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','chase',30,48,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,11,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,11,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1047,'PecoPeco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1047,'PecoPeco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1049,1050,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1048,'Thief Bug Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -304,37 +295,37 @@ REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_SPLASHATTACK','attack',174,1,
REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@AL_HEAL','idle',28,5,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@TF_HIDING','attack',51,1,500,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@TF_HIDING','attack',51,1,500,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1156,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -352,9 +343,9 @@ REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_MENTALBREAKER','attack',
REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_CHANGETELEKINESIS','attack',169,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_CHANGETELEKINESIS','attack',169,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_UNDEADATTACK','attack',347,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','attack',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','chase',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -362,22 +353,22 @@ REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','attack',20,3
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','chase',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','chase',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','angry',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','follow',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','angry',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','follow',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','angry',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','follow',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','angry',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','follow',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -388,10 +379,10 @@ REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','chase',86,3,5
REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,0,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -413,18 +404,18 @@ REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','follow',197
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','idle',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','idle',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MC_MAMMONITE','attack',42,20,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@SM_MAGNUM','attack',7,20,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MG_FIREBALL','chase',17,20,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MG_FIREBALL','chase',17,20,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','attack',196,10,10000,700,10000,'no','self','slavele',5,1608,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','idle',196,10,10000,700,10000,'no','self','slavele',5,1608,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1054,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@TF_HIDING','attack',51,1,1000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@TF_HIDING','attack',51,1,1000,0,5000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_DECAGI','chase',30,48,2000,0,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -432,11 +423,11 @@ REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','idle',26,1,5000
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','attack',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','chase',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@LK_SPIRALPIERCE','attack',397,5,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','attack',21,15,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','chase',21,15,10000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','chase',21,15,10000,1500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -444,7 +435,7 @@ REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GUIDEDATTACK','attack',17
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@CR_AUTOGUARD','attack',249,10,2000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -458,24 +449,24 @@ REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_SUMMONSLAVE','attack',196,5,1
REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_SUMMONSLAVE','idle',196,6,10000,0,0,'no','self','onspawn',0,1012,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1002,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1002,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_WATERATTACK','attack',184,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1011,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1011,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1013,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1013,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1063,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -485,20 +476,20 @@ REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_KEEPING','attack',201,1,
REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1031,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1095,1105,1160,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -516,10 +507,10 @@ REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@WZ_JUPITEL','chase',84,3,500,15
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -531,19 +522,19 @@ REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','idle',405,1,3000,
REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3795,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -564,12 +555,12 @@ REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@WZ_WATERBALL','chase',86,4,500
REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','attack',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','chase',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
@@ -578,12 +569,12 @@ REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@NPC_EMOTION','walk',197,1,2000,
REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_DECAGI','chase',30,48,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_DECAGI','chase',30,48,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','attack',114,1,500,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','chase',114,1,500,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -591,9 +582,9 @@ REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','chase',172,5,
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1192,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','attack',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','chase',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1113,'Drops@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -605,12 +596,12 @@ REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_WINDATTACK','attack',187
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,20,4000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,20,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,20,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','attack',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','chase',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -618,7 +609,7 @@ REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','idle',196,8,10
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1060,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@SM_MAGNUM','attack',7,20,3000,0,2000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@CR_AUTOGUARD','attack',249,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -646,21 +637,21 @@ REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','angry',135,1,2
REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,28,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@MG_SOULSTRIKE','chase',13,9,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,28,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','attack',196,5,10000,2000,10000,'no','self','slavele',3,1599,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','idle',196,5,10000,2000,10000,'no','self','slavele',3,1599,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1186,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@HT_SANDMAN','idle',119,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@HT_SANDMAN','idle',119,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -695,20 +686,20 @@ REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_COMBOATTACK','attack',171,2
REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FROSTDIVER','chase',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FROSTDIVER','chase',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',0,20,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','idle',197,1,100,0,60000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','attack',197,1,10000,0,60000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -731,7 +722,7 @@ REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,
REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@HT_FLASHER','idle',120,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@HT_FLASHER','idle',120,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -750,12 +741,12 @@ REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_CRITICALSLASH','attack',170
REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_RUN','idle',354,7,10000,0,30000,'no','master','alchemist',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','any',173,1,10000,3000,0,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,500,2000,5000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SPEEDUP','any',332,1,10000,0,700,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','any',173,1,10000,3000,0,'no','self','afterskill',354,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,500,2000,5000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SPEEDUP','any',332,1,10000,0,700,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -763,34 +754,34 @@ REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','idle',197,1,2000,0
REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@CR_AUTOGUARD','attack',249,10,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1477,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1477,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1194,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','chase',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
@@ -801,27 +792,27 @@ REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@BS_HAMMERFALL','attack',110,3
REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','chase',288,1,10000,1000,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','chase',288,1,10000,1000,5000,'no','target','skillused',89,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MC_MAMMONITE','attack',42,20,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -846,7 +837,7 @@ REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','attack',
REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -864,47 +855,47 @@ REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AC_CHARGEARROW','attack',148,1
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@MG_THUNDERSTORM','chase',21,9,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@MG_THUNDERSTORM','chase',21,9,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','attack',200,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1458,1464,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1458,1464,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','chase',666,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','attack',666,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','chase',666,5,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','attack',666,5,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_LICK','attack',206,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_PETRIFYATTACK','chase',180,5,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1558,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1558,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1127,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1161,'Plankton@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,0,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -929,17 +920,17 @@ REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_EMOTION','idle',19
REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_SUICIDE','attack',175,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_SUICIDE','attack',175,1,500,0,5000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -956,40 +947,40 @@ REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','chase',135,1,200
REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,28,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,28,NULL);
REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1188,'Bon Gun@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1188,'Bon Gun@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,5,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_INCAGI','chase',29,10,2000,700,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@CR_SHIELDCHARGE','attack',250,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','chase',653,5,10000,1500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','attack',653,5,10000,1500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','chase',653,5,10000,1500,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','attack',653,5,10000,1500,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_COLDBOLT','chase',14,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_FIREBOLT','chase',19,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1189,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@SM_PROVOKE','chase',6,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1016,7 +1007,7 @@ REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_POISON','attack',1
REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
@@ -1026,24 +1017,24 @@ REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_WINDATTACK','attack',187,1,20
REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1257,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_SHIELDBRAKE','attack',346,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -1062,14 +1053,14 @@ REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@SM_BASH','attack',5,5,500,800,
REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@AM_POTIONPITCHER','idle',231,4,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1079,7 +1070,7 @@ REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@RG_INTIMIDATE','attack',219,1
REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1087,15 +1078,15 @@ REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_FIREATTACK','attack',186,
REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@CR_SHIELDCHARGE','attack',250,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@HT_SKIDTRAP','idle',115,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@HT_SKIDTRAP','idle',115,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1215,'Stem Worm@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1119,74 +1110,74 @@ REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,2
REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1244,'Christmas Jakk@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,18,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1244,'Christmas Jakk@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,18,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','attack',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','idle',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','chase',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','attack',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','chase',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','attack',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','idle',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','chase',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','attack',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','chase',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,24,NULL);
REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_EMOTION','attack',197,1,2000,0,5000,'yes','self','always',0,17,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','attack',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','chase',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','attack',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,17,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','chase',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,17,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@PR_STRECOVERY','attack',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@PR_STRECOVERY','chase',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','chase',664,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','attack',664,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','chase',664,5,10000,1000,10000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','attack',664,5,10000,1000,10000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','chase',187,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','attack',187,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@CR_SHIELDCHARGE','attack',250,5,2000,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@CR_SHIELDCHARGE','attack',250,5,2000,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_HALLUCINATION','chase',207,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1515,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_DECAGI','chase',30,48,2000,0,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@WZ_STORMGUST','chase',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1195,21 +1186,21 @@ REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_GUIDEDATTACK','attack',172,5,
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1221,13 +1212,13 @@ REPLACE INTO `mob_skill_db` VALUES (1257,'Injustice@NPC_DARKNESSATTACK','attack'
REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,16,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,26,NULL);
REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@CR_REFLECTSHIELD','attack',252,2,500,0,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
@@ -1239,7 +1230,7 @@ REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@NPC_WINDATTACK','attack',187
REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@MG_FIREBALL','chase',17,20,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@SM_MAGNUM','attack',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','attack',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','chase',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1252,33 +1243,33 @@ REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','chase',197,1,200,
REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_CHANGEFIRE','attack',164,1,10000,2000,600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_CHANGEFIRE','attack',164,1,10000,2000,600000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','attack',83,5,2000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','chase',83,5,2000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','attack',83,5,2000,1500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','chase',83,5,2000,1500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_WEAPONBRAKER','attack',343,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -1298,25 +1289,25 @@ REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_WATERATTACK','attack',18
REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@MG_FIREWALL','chase',18,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELMBRAKE','attack',345,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','attack',196,3,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','idle',196,3,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','attack',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@CR_SHIELDCHARGE','attack',250,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1325,7 +1316,7 @@ REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@NPC_EMOTION','idle',197,1,2000,0
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,1744,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_BLINDATTACK','idle',177,3,10000,1500,5000,'no','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -1341,19 +1332,19 @@ REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@CR_AUTOGUARD','chase'
REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1279,'Tri-Joint@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_SAFETYWALL','attack',12,5,2000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_SAFETYWALL','attack',12,5,2000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,20,NULL);
REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,20,NULL);
REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1379,23 +1370,23 @@ REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@AS_SONICBLOW','attack
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1028,1016,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,18,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','attack',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','attack',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','attack',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','attack',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1422,8 +1413,8 @@ REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@AL_TELEPORT','idle',26,1
REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_DARKBREATH','attack',202,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
@@ -1432,17 +1423,17 @@ REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@KN_BRANDISHSPEAR','attac
REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1036,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1110,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1482,7 +1473,7 @@ REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@AL_TELEPORT','idle'
REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1180,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1512,32 +1503,32 @@ REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@SM_ENDURE','chase',8,1,50
REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@RG_STRIPSHIELD','attack',216,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','attack',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','chase',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_STUNATTACK','attack',179,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@TF_SPRINKLESAND','attack',149,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@TF_SPRINKLESAND','attack',149,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1547,12 +1538,12 @@ REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@TF_SPRINKLESAND','attack',14
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','attack',197,1,2000,0,600000,'yes','self','myhpltmaxrate',0,23,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','attack',197,1,2000,0,600000,'yes','self','myhpltmaxrate',20,23,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@TF_BACKSLIDING','attack',150,1,10000,500,600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_SUMMONSLAVE','chase',196,3,10000,0,600000,'yes','self','myhpltmaxrate',0,1364,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@TF_BACKSLIDING','attack',150,1,10000,500,600000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_SUMMONSLAVE','chase',196,3,10000,0,600000,'yes','self','myhpltmaxrate',10,1364,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
@@ -1599,7 +1590,7 @@ REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','attack',86,3,
REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1611,8 +1602,8 @@ REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@MG_FIREBALL','chase',17,9,2000,
REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@WZ_SIGHTRASHER','attack',81,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -1623,24 +1614,24 @@ REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@AL_TELEPORT','idle',26,1,500,
REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','chase',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','angry',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','follow',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','chase',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','angry',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','follow',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x1089,NULL,NULL,NULL,NULL,NULL);
@@ -1648,33 +1639,33 @@ REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_SPLASHATTACK','attack',174,1,
REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@AL_DECAGI','chase',30,48,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_STUNATTACK','attack',179,5,2000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
@@ -1685,18 +1676,18 @@ REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','angry',171,1,5
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','attack',19,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','attack',19,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','chase',20,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','attack',16,10,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','chase',20,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','attack',16,10,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_RUN','attack',354,1,2000,500,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_RUN','attack',354,1,2000,500,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','idle',19,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','idle',19,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','idle',15,9,10000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','idle',20,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','idle',16,10,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','idle',20,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','idle',16,10,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','chase',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1732,14 +1723,14 @@ REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@KN_SPEARSTAB','angry',58,10,50
REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@SM_ENDURE','follow',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','attack',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','chase',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','follow',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','attack',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','chase',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','follow',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','angry',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','follow',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','angry',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','follow',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@AM_DEMONSTRATION','attack',229,1,100,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1762,9 +1753,9 @@ REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@SM_MAGNUM','attack',7,9,500,50
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','idle',135,1,100,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1775,41 +1766,41 @@ REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','angry',149,1
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','attack',52,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','angry',52,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','angry',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','follow',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@CR_GRANDCROSS','attack',254,1,2000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','attack',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','chase',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','attack',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','chase',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_BARRIER','attack',204,1,500,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_BARRIER','attack',204,1,500,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','attack',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','chase',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','attack',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','idle',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','attack',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','chase',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','attack',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','idle',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@RG_INTIMIDATE','attack',219,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_DECAGI','chase',30,48,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@MO_BODYRELOCATION','chase',264,1,2000,200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1823,123 +1814,123 @@ REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','attack',17
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','attack',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','idle',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@AM_POTIONPITCHER','idle',231,4,500,500,5000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,2,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@AM_POTIONPITCHER','idle',231,4,500,500,5000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,0x108B,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1393,'G Mummy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1393,'G Mummy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,10000,0,0,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','attack',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','attack',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','attack',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,10000,0,0,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','attack',17,10,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_SIGHTRASHER','attack',81,10,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_WEAPONBRAKER','attack',343,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','attack',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','idle',26,1,2000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,10000,0,0,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','attack',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','attack',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','attack',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,10000,0,0,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','attack',17,10,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_SIGHTRASHER','attack',81,10,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_WEAPONBRAKER','attack',343,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','attack',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','idle',26,1,2000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,20,NULL);
REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_BARRIER','attack',204,1,2000,3000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_GUIDEDATTACK','attack',172,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_GUIDEDATTACK','attack',172,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_SUMMONSLAVE','attack',196,10,10000,2000,20000,'no','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_SUMMONSLAVE','idle',196,10,10000,2000,20000,'no','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','chase',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','attack',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','chase',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','attack',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','chase',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','attack',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','chase',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','attack',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','chase',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','attack',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','chase',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','attack',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,31,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,31,NULL);
REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@WZ_WATERBALL','chase',86,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,28,0x3885,NULL,NULL,NULL,NULL,NULL);
@@ -1947,10 +1938,10 @@ REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AL_TELEPORT','idle',26,1,500,0
REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AS_CLOAKING','idle',135,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@NPC_REBIRTH','dead',208,2,5000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@NPC_REBIRTH','dead',208,2,5000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@TF_BACKSLIDING','attack',150,1,10000,500,3600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@TF_BACKSLIDING','attack',150,1,10000,500,3600000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -1965,74 +1956,74 @@ REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_SILENCEATTACK','chas
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','chase',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','attack',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','chase',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','attack',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','chase',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','follow',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,16,NULL);
REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','angry',184,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,16,NULL);
REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_DARKSTRIKE','chase',340,5,2000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1409,'Rice Cake Boy@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','idle',231,3,10000,500,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','idle',231,3,10000,500,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_GUIDEDATTACK','chase',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','attack',20,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','chase',20,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Cloud Hermit@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1413,'Wild Ginseng@NPC_BARRIER','attack',204,1,2000,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Cloud Hermit@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1413,'Wild Ginseng@NPC_BARRIER','attack',204,1,2000,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1413,'Wild Ginseng@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@SA_DISPELL','attack',289,5,0,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','attack',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_STOP','attack',342,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@SM_MAGNUM','attack',7,20,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2106,15 +2097,15 @@ REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@TF_SPRINKLESAND','attack',
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','follow',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','follow',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','angry',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2201,20 +2192,20 @@ REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@NPC_EMOTION','chase',197,1,2
REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','follow',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','angry',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_GUIDEDATTACK','angry',172,5,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','follow',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','angry',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','chase',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','attack',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2363,9 +2354,9 @@ REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','an
REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','angry',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','angry',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','angry',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@KN_SPEARSTAB','angry',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2466,13 +2457,13 @@ REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','chase',184,1
REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','follow',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','angry',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@AL_HEAL','idle',28,5,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@KN_AUTOCOUNTER','angry',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2490,19 +2481,19 @@ REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','attack',111,1,5
REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','idle',26,1,5000,1000,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','idle',26,1,5000,1000,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','idle',379,10,10000,500,5000,'no','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','chase',379,10,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','attack',379,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','attack',379,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELMBRAKE','chase',345,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2510,28 +2501,28 @@ REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SHIELDBRAKE','
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@RG_INTIMIDATE','attack',219,10,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@KN_TWOHANDQUICKEN','attack',60,9,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@KN_TWOHANDQUICKEN','attack',60,9,2000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -2547,15 +2538,15 @@ REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@MG_FIREWALL','attack',18,
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AS_SONICBLOW','attack',136,10,10000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,20,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','chase',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','chase',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','attack',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','chase',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','attack',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_DARKBLESSING','attack',203,1,1000,2000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','idle',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','attack',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','chase',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','chase',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','attack',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','chase',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','attack',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_DARKBLESSING','attack',203,1,1000,2000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','idle',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','attack',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPARMOR','attack',217,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPHELM','attack',218,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPSHIELD','attack',216,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2567,53 +2558,53 @@ REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_CRITICALSLASH','attack',1
REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','chase',340,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','chase',76,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','attack',76,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_METAMORPHOSIS','attack',193,2,500,0,60000,'no','self','myhpltmaxrate',0,1509,1508,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_METAMORPHOSIS','attack',193,2,500,0,60000,'no','self','myhpltmaxrate',10,1509,1508,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1509,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1508,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',30,1509,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',30,1508,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','chase',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','attack',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','longrangeattacked',0,1474,1477,1438,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','casttargeted',0,1474,1477,1438,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'no','self','longrangeattacked',0,1474,1477,1438,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'no','self','casttargeted',0,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',8,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',9,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',1,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',8,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',9,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',3,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',3,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',18,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',89,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',21,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',28,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',79,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',83,1474,1477,1438,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','attack',83,11,5000,0,3000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -2624,32 +2615,32 @@ REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_DARKBLESSING','attack',203
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@AS_SONICBLOW','attack',136,5,500,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@NPC_DARKTHUNDER','chase',341,3,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@NPC_DARKTHUNDER','attack',341,3,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','attack',231,4,10000,500,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','idle',231,4,10000,500,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1515,'Garm Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1515,'Garm Baby@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1516,'Increase Soil@NPC_METAMORPHOSIS','attack',193,2,50,5000,5000,'no','self','always',0,1516,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1517,'Li Me Mang Ryang@NPC_RANGEATTACK','chase',160,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1517,'Li Me Mang Ryang@NPC_RANGEATTACK','chase',160,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,24,NULL);
REPLACE INTO `mob_skill_db` VALUES (1517,'Li Me Mang Ryang@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_WIDESLEEP','chase',668,5,10000,700,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_WIDESLEEP','attack',668,5,10000,700,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_WIDESLEEP','attack',668,5,10000,700,25000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -2662,35 +2653,35 @@ REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@RG_INTIMIDATE','attack',219,1,
REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@PR_LEXDIVINA','chase',76,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@TF_POISON','attack',52,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1520,'Boiled Rice@CR_AUTOGUARD','idle',249,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1520,'Boiled Rice@NPC_SUICIDE','attack',175,1,10000,4000,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1520,'Boiled Rice@NPC_SUICIDE','attack',175,1,10000,4000,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1555,'Parasite@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1575,'Flora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1579,'Hydra@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_SUMMONSLAVE','attack',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_SUMMONSLAVE','idle',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKNESSATTACK','attack',190,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',4,1793,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',4,1793,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','attack',159,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','chase',159,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_COMBOATTACK','attack',171,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
@@ -2703,77 +2694,77 @@ REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CRITICALSLASH','attack',
REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_SILENCEATTACK','attack',178,5,2000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1588,'Christmas Orc@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1588,'Christmas Orc@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1589,'Mandragora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_SPLASHATTACK','attack',174,1,500,0,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@CR_SHIELDCHARGE','attack',250,2,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','attack',149,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','chase',149,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_COMBOATTACK','attack',171,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_POWERUP','attack',349,2,3000,500,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_POWERUP','attack',349,2,3000,500,10000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@TF_THROWSTONE','chase',152,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_PETRIFYATTACK','attack',180,2,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_DARKBREATH','attack',202,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_DARKBREATH','attack',202,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_SUMMONSLAVE','attack',196,3,10000,700,30000,'no','self','slavele',0,1625,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_SUMMONSLAVE','idle',196,3,10000,700,30000,'no','self','slavele',0,1625,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_GROUNDATTACK','attack',185,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_TELEKINESISATTACK','attack',191,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','attack',159,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','attack',159,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_POISON','attack',176,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','chase',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','chase',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','attack',181,4,500,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','chase',181,4,500,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -2784,8 +2775,8 @@ REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_AGIUP','chase',350,5,2000
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_POWERUP','attack',349,5,2000,0,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','attack',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','idle',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1617,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2795,32 +2786,32 @@ REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_TELEPORT','idle',26,1,1000
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CRITICALSLASH','attack',170,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_GROUNDATTACK','attack',185,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_GRANDDARKNESS','attack',339,5,2000,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKSTRIKE','chase',340,10,2000,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','chase',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','chase',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','chase',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','chase',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_HIDING','idle',51,1,500,500,25000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_GROUNDATTACK','chase',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
@@ -2831,8 +2822,8 @@ REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARSTAB','attack',58,5,
REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2852,7 +2843,7 @@ REPLACE INTO `mob_skill_db` VALUES (1632,'Gremlin@NPC_CRITICALSLASH','attack',17
REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@MG_NAPALMBEAT','chase',11,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2860,13 +2851,13 @@ REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@AL_TELEPORT','walk',26,
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_MAGNUM','attack',7,9,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -2876,15 +2867,15 @@ REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','chase',135,
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_SONICBLOW','attack',136,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','idle',140,1,2000,0,50000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','attack',140,1,2000,0,50000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','idle',140,1,2000,0,50000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','attack',140,1,2000,0,50000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_POISONATTACK','attack',188,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2892,19 +2883,19 @@ REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@AL_TELEPORT','idle',2
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@MC_MAMMONITE','attack',42,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@MC_MAMMONITE','attack',42,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','chase',110,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','attack',110,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2912,31 +2903,31 @@ REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','attack',2
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2950,15 +2941,15 @@ REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_CRITICALSLASH','attack
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','idle',84,28,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','idle',17,20,10000,500,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,28,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,20,10000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,28,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,20,10000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -2987,33 +2978,33 @@ REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_EARTHSPIKE','attack
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@WZ_STORMGUST','idle',89,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@WZ_STORMGUST','walk',89,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_MAGNUM','attack',7,20,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3021,39 +3012,39 @@ REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3061,35 +3052,35 @@ REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','att
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','idle',116,5,2000,0,60000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','attack',116,5,500,0,5000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
@@ -3101,21 +3092,21 @@ REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_CRITICALSLASH','attac
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','idle',85,20,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','idle',83,11,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,5,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3133,86 +3124,86 @@ REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','att
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1641,1642,1643,1644,1645,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1641,1642,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_MAGNUM','attack',7,20,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1642,1643,1644,1645,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1640,1642,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1643,1644,1645,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1640,1641,1643,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,23,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@ST_FULLSTRIP','attack',476,5,1500,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,10000,0,1000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,10000,0,1000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,10000,0,1000,'yes','friend','friendhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3220,47 +3211,47 @@ REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE',
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1644,1645,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1640,1641,1642,1644,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1643,1645,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1640,1641,1642,1643,1645,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','idle',123,5,2000,0,10000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','attack',123,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SANDMAN','idle',119,5,2000,0,10000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
@@ -3271,26 +3262,26 @@ REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SHOCKWAVE','attack',11
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,5,10000,700,30000,'no','self','slavele',3,1640,1641,1642,1643,1644,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,5,10000,700,30000,'no','self','slavele',3,1640,1641,1642,1643,1644,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1643,1644,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,1640,1641,1642,1643,1644,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','idle',85,20,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','idle',83,11,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3302,58 +3293,58 @@ REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','attac
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','chase',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','attack',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_MAGNUM','attack',7,9,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_PROVOKE','chase',6,9,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',52,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',42,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_STUNATTACK','attack',179,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_PNEUMA','idle',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_PNEUMA','idle',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,22,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','chase',30,1,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','chase',30,1,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,10000,1000,1000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,10000,1000,1000,'no','target','skillused',46,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','chase',46,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','idle',13,9,5000,0,1000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','idle',20,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3365,72 +3356,72 @@ REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','att
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,5,3000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,3,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_MAGNUM','attack',7,20,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@LK_SPIRALPIERCE','attack',397,2,2500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWATER','attack',162,1,10000,500,10000,'no','self','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWIND','attack',165,1,10000,500,10000,'no','self','skillused',4,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWATER','attack',162,1,10000,500,10000,'no','self','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWIND','attack',165,1,10000,500,10000,'no','self','skillused',84,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',52,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',42,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','attack',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','chase',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','attack',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','chase',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,10000,1000,1000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,10000,1000,1000,'no','target','skillused',46,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','chase',46,10,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_SHOWER','attack',47,10,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FROSTDIVER','chase',15,9,10000,500,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','chase',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,5,1000,1000,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3444,7 +3435,7 @@ REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attac
REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3484,36 +3475,36 @@ REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,3
REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_WATERATTACK','attack',184,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,0,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3524,16 +3515,16 @@ REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_EMOTION','idle',197,1,2
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@KN_PIERCE','attack',56,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_PIERCINGATT','attack',158,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','chase',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@NPC_UNDEADATTACK','attack',347,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',5,1365,1669,1675,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',15,1365,1669,1675,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3550,26 +3541,26 @@ REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','idle',196,2
REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','attack',196,2,10000,0,6000000,'yes','self','slavele',0,1023,1273,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','chase',196,2,10000,0,6000000,'yes','self','slavele',0,1023,1273,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_TELEPORT','attack',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_COMBOATTACK','attack',171,1,1000,0,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_STUNATTACK','attack',179,5,500,0,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_DEFENDER','attack',205,1,500,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_DEFENDER','attack',205,1,500,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_SUMMONSLAVE','attack',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_SUMMONSLAVE','idle',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -3582,88 +3573,86 @@ REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@NPC_GROUNDATTACK','attac
REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0xC3,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@SM_BASH','attack',5,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','chase',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','attack',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','chase',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','attack',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','chase',13,9,3000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','attack',13,9,3000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_NAPALMBEAT','attack',11,7,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_NAPALMBEAT','attack',11,7,4000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','chase',182,5,1000,300,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','attack',182,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','chase',182,5,1000,300,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','attack',182,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','chase',19,7,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','attack',19,7,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBALL','chase',17,5,3000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBALL','attack',17,7,2000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_FIREATTACK','attack',186,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','chase',16,8,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','attack',16,8,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_FIREATTACK','attack',186,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','chase',16,8,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','attack',16,8,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','chase',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','chase',340,9,3000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','attack',340,9,3000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','chase',15,9,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','chase',14,6,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','attack',14,6,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@WZ_WATERBALL','attack',86,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-
-# Thanatos Tower Mobs
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+-- Thanatos Tower Mobs
REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_SPLASHATTACK','attack',174,1,1000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@CR_AUTOGUARD','chase',249,3,1000,0,250000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@CR_AUTOGUARD','attack',249,3,500,0,250000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@RG_INTIMIDATE','attack',219,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','chase',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','chase',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKTHUNDER','chase',341,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKTHUNDER','attack',341,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_GRANDDARKNESS','attack',339,1,500,700,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKCROSS','attack',338,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@KN_BOWLINGBASH','attack',62,7,500,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_GRANDDARKNESS','attack',339,1,500,700,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKCROSS','attack',338,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@KN_BOWLINGBASH','attack',62,7,500,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@CR_GRANDCROSS','attack',254,1,1000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@CR_GRANDCROSS','attack',254,1,1000,1500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXDIVINA','chase',76,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
@@ -3671,60 +3660,60 @@ REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXDIVINA','attack',76,10,50
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@MG_NAPALMBEAT','attack',11,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@MG_NAPALMBEAT','chase',11,5,1000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@WZ_SIGHTRASHER','attack',81,20,1000,0,10000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@KN_BOWLINGBASH','attack',62,4,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@KN_BOWLINGBASH','attack',62,4,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','attack',6,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','chase',6,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','attack',6,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','chase',6,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MAGICALATTACK','attack',192,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','attack',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','attack',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_DARKTHUNDER','attack',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_DECAGI','attack',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_TWOHANDQUICKEN','attack',60,20,3000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_TWOHANDQUICKEN','attack',60,20,3000,0,300000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CHANGEHOLY','attack',167,1,5000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CHANGEHOLY','attack',167,1,5000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_STORMGUST','chase',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_VERMILION','chase',85,20,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_STORMGUST','attack',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3737,29 +3726,29 @@ REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','idle',26,1,1000
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','attack',26,1,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@WZ_SIGHTRASHER','attack',81,20,1000,0,10000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','attack',6,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','attack',6,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3770,21 +3759,20 @@ REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_DARKTHUNDER','attac
REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_DECAGI','attack',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-
-# Abyss Lake
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+-- Abyss Lake
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_FIREATTACK','attack',186,6,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_STUNATTACK','attack',179,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','idle',17,9,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@SM_MAGNUM','attack',7,9,2000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@WZ_FIREPILLAR','idle',80,3,100,0,30000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,44,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@SM_MAGNUM','attack',7,9,2000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@WZ_FIREPILLAR','idle',80,3,100,0,30000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -3799,18 +3787,18 @@ REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_EMOTION','idle',197,1,2000,0
REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_PIERCINGATT','attack',158,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,37,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_WINDATTACK','attack',187,6,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','idle',20,8,2000,1000,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','chase',20,8,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','chase',20,8,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','attack',20,8,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,44,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3819,7 +3807,7 @@ REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@AL_TELEPORT','idle',26,1,10000,0
REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_SUMMONSLAVE','attack',196,1,10000,2000,5000,'no','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_SUMMONSLAVE','idle',196,1,10000,2000,5000,'no','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3828,15 +3816,15 @@ REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','attack',352,1,1
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_FIREBREATH','attack',654,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_FIREBREATH','attack',654,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3844,19 +3832,19 @@ REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_VERMILION','chase',85,20,200
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@MG_FIREBALL','chase',17,20,5000,500,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@SM_PROVOKE','attack',6,10,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@WZ_METEOR','attack',83,11,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
@@ -3864,14 +3852,13 @@ REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','chase',196,4,1
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1721,'Dragon Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,1715,1718,NULL,NULL,NULL,NULL,NULL);
-
-# Kiel dungeon
+REPLACE INTO `mob_skill_db` VALUES (1721,'Dragon Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,1715,1718,NULL,NULL,NULL,NULL,NULL);
+-- Kiel dungeon
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','chase',7,5,2500,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','attack',7,5,2500,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','idle',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3890,16 +3877,16 @@ REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_SUMMONSLAVE','idle',196,
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@HW_GANBANTEIN','attack',483,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_MAGNUM','chase',7,20,1000,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_MAGNUM','attack',7,20,1000,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','chase',663,5,10000,500,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','attack',663,5,10000,500,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','chase',663,5,10000,500,25000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','attack',663,5,10000,500,25000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_POWERUP','attack',349,4,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_POWERUP','attack',349,4,3000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_POWERUP','attack',349,4,3000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3908,7 +3895,7 @@ REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@KN_BRANDISHSPEAR','attack',5
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_PNEUMA','attack',25,1,10000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3922,13 +3909,13 @@ REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@CR_AUTOGUARD','attack',249,5,100
REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@SM_BASH','attack',5,10,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@SM_BASH','attack',5,10,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,52,NULL);
REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','walk',197,1,500,0,30000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','idle',197,1,500,0,30000,'yes','self','always',0,54,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','idle',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','walk',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','chase',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','attack',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','idle',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','walk',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','chase',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','attack',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3943,16 +3930,16 @@ REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@CR_AUTOGUARD','attack',249,5,100
REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
@@ -3972,15 +3959,15 @@ REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','atta
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HW_GANBANTEIN','attack',483,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -3988,8 +3975,8 @@ REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_HOLYATTACK','att
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@MG_THUNDERSTORM','attack',21,15,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@TF_HIDING','idle',51,1,2000,0,180000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
@@ -4004,55 +3991,55 @@ REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_DARKNESSATTACK','attack',190,
REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_CHANGEUNDEAD','attack',348,2,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_SUMMONSLAVE','attack',196,1,100,0,3600000,'no','self','slavele',0,1761,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','attack',21,7,1000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','chase',21,7,1000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','attack',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','chase',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','attack',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','chase',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','chase',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','attack',217,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','chase',217,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_SUMMONSLAVE','any',196,2,10000,700,60000,'no','self','onspawn',0,1763,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@CR_HOLYCROSS','attack',253,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','chase',13,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','attack',13,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_SUMMONSLAVE','any',196,2,10000,700,60000,'no','self','onspawn',0,1764,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
@@ -4072,47 +4059,47 @@ REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_CHANGEUNDEAD','attack',348,2,
REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','attack',21,4,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','chase',21,4,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','attack',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','chase',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','attack',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','chase',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_SAFETYWALL','attack',12,5,500,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_SAFETYWALL','attack',12,5,500,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@CR_HOLYCROSS','attack',253,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','chase',13,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','attack',13,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SAFETYWALL','attack',12,5,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SAFETYWALL','attack',12,5,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@KN_BRANDISHSPEAR','attack',57,20,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@WZ_JUPITEL','attack',84,28,100,2000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKNESSATTACK','attack',190,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_SUMMONSLAVE','attack',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_SUMMONSLAVE','idle',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREATTACK','attack',186,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4121,9 +4108,9 @@ REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_FIREPILLAR','idle
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,2000,700,50000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_SIGHTRASHER','attack',81,20,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@MG_FIREBALL','attack',17,20,1000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4135,93 +4122,93 @@ REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_SUMMONSLAVE','id
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','attack',21,5,500,1200,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','chase',21,5,500,1200,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@AS_SONICBLOW','attack',136,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_DARKNESSATTACK','attack',190,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_DARKNESSATTACK','attack',190,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,52,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@RG_STRIPARMOR','attack',217,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,52,NULL);
REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@SA_DISPELL','attack',289,1,200,0,100000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@SA_DISPELL','attack',289,1,200,0,100000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,4,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@SM_ENDURE','chase',8,3,5000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,45,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','myhpltmaxrate',1,28,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','myhpltmaxrate',1,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@CR_AUTOGUARD','attack',249,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','chase',14,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','attack',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4235,11 +4222,11 @@ REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','attack',352,
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_STORMGUST','chase',89,10,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4249,15 +4236,15 @@ REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_WATERBALL','attack',86,10
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','chase',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','attack',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_GROUNDATTACK','attack',185,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_PETRIFYATTACK','attack',180,5,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@KN_PIERCE','attack',56,5,500,700,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4276,59 +4263,59 @@ REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_EMOTION','idle',197,1,2000,
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_SUMMONSLAVE','attack',196,3,10000,1000,30000,'no','self','slavele',3,1794,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_SUMMONSLAVE','idle',196,3,10000,1000,30000,'no','self','slavele',3,1794,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@NPC_KEEPING','attack',201,1,1000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@NPC_KEEPING','attack',201,1,1000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@SM_BASH','attack',5,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','attack',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','idle',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DEFENDER','idle',205,1,10000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@KN_TWOHANDQUICKEN','attack',60,20,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_BLEEDING','attack',660,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@KN_TWOHANDQUICKEN','attack',60,20,2000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_BLEEDING','attack',660,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DARKNESSATTACK','attack',190,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
@@ -4360,56 +4347,56 @@ REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','chase',83,11
REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_VERMILION','attack',85,20,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','attack',83,11,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# Guild Dungeon SE (13.1)
+-- Guild Dungeon SE (13.1)
REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','attack',21,5,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','chase',21,5,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1814,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',30,1814,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@PR_LEXAETERNA','chase',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@PR_LEXAETERNA','attack',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','attack',28,11,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','attack',28,11,2000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKTHUNDER','chase',341,5,8000,700,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_GRANDDARKNESS','attack',339,10,2000,900,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKCROSS','attack',338,10,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@WZ_VERMILION','attack',85,10,2500,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_COMBOATTACK','attack',171,6,2500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_COMBOATTACK','attack',171,6,2500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,24,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AS_VENOMDUST','attack',140,10,3500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_LICK','attack',206,5,4000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@KN_TWOHANDQUICKEN','attack',60,20,5000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','attack',28,9,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','chase',28,9,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_LICK','attack',206,5,4000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@KN_TWOHANDQUICKEN','attack',60,20,5000,0,120000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','attack',28,9,10000,0,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','chase',28,9,10000,0,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','chase',19,10,3000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','attack',19,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','chase',19,10,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','chase',19,10,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_WATERBALL','attack',86,5,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_WATERBALL','chase',86,5,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_METEOR','attack',83,5,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4423,15 +4410,15 @@ REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@SA_DISPELL','attack',
REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@SA_DISPELL','chase',289,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','attack',110,11,10000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','chase',110,11,5000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',12,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','myhpltmaxrate',12,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','attack',110,11,10000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','chase',110,11,5000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_GRANDCROSS','attack',254,10,5000,100,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_STORMGUST','attack',89,10,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4439,16 +4426,16 @@ REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_VERMILION','chase',85,20,200
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@MG_FIREBALL','chase',17,20,5000,500,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_MAXIMIZE','chase',114,5,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_MAXIMIZE','chase',114,5,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4460,12 +4447,12 @@ REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','chase',197,1
REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x308D,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4489,17 +4476,16 @@ REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,2
REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-# Thor Volcano (11.2)
+-- Thor Volcano (11.2)
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@KN_SPEARBOOMERANG','chase',59,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_SHIELDCHARGE','attack',250,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_DOUBLE','idle',46,10,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_SHOWER','idle',47,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4511,7 +4497,7 @@ REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_CHARGEARROW','attack',
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_BLEEDING','attack',660,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4521,14 +4507,14 @@ REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_FIREATTACK','attack',18
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','attack',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','idle',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','chase',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
@@ -4536,14 +4522,14 @@ REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','attack',352,1,10
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','attack',83,11,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','attack',83,11,2000,500,5000,'no','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4561,7 +4547,7 @@ REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_SIGHTRASHER','attack',81,20,10
REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@LK_SPIRALPIERCE','attack',397,1,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','chase',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','attack',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@HW_GANBANTEIN','attack',483,5,5000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@HW_GANBANTEIN','attack',483,5,5000,500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4570,9 +4556,9 @@ REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_FIREATTACK','attack',18
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','idle',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','chase',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -4602,12 +4588,12 @@ REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_FIREATTACK','attack',186,5,100
REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@WZ_SIGHTRASHER','attack',81,20,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@RG_STRIPARMOR','attack',217,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@RG_STRIPARMOR','attack',217,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@HT_LANDMINE','idle',116,2,4000,1000,18000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_SPRINKLESAND','attack',149,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','chase',152,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','attack',152,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','chase',152,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','attack',152,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','idle',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','chase',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','attack',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
@@ -4616,14 +4602,13 @@ REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@SM_BASH','attack',5,5,500,0,50
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_GRIMTOOTH','idle',137,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_GRIMTOOTH','chase',137,5,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_GRIMTOOTH','chase',137,5,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@ASC_BREAKER','chase',379,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_SONICBLOW','attack',136,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -4631,14 +4616,13 @@ REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@AL_TELEPORT','idle',26,1
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@ST_FULLSTRIP','attack',476,5,100,1500,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@KN_TWOHANDQUICKEN','attack',60,5,500,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@KN_TWOHANDQUICKEN','attack',60,5,500,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_EARTHSPIKE','attack',90,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_HEAVENDRIVE','attack',91,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','attack',92,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','chase',92,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_PULSESTRIKE','attack',661,1,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-
-# Cursed Abbey (11.3)
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_PULSESTRIKE','attack',661,1,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+-- Cursed Abbey (11.3)
REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4648,16 +4632,16 @@ REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_DOUBLE','attack',46,5
REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@NPC_MAGICALATTACK','attack',192,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_SHOWER','attack',47,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@AL_HEAL','idle',28,1,10000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@AS_SONICBLOW','attack',136,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@AS_SONICBLOW','attack',136,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
@@ -4667,7 +4651,7 @@ REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_CRITICALWOUND','attack',67
REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
@@ -4690,12 +4674,12 @@ REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CALLSLAVE','idle',352,
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_FIREBALL','chase',17,5,2000,300,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','attack',21,5,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','chase',21,5,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','attack',92,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','chase',92,5,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','chase',677,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','attack',677,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','attack',92,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','chase',92,5,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','chase',677,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','attack',677,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4703,8 +4687,8 @@ REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','chase',34
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','attack',340,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CHANGEUNDEAD','attack',348,1,500,500,6000000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSBREATH','attack',658,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,3000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,3000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,1000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4723,20 +4707,20 @@ REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_GRANDDARKNESS','atta
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@CR_GRANDCROSS','chase',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@CR_GRANDCROSS','attack',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_VAMPIRE_GIFT','attack',679,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'no','target','myhpltmaxrate',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'no','target','myhpltmaxrate',44,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_MAGICMIRROR','attack',671,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_WIDESILENCE','chase',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_WIDESILENCE','attack',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKNESSATTACK','attack',190,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKNESSBREATH','attack',658,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4747,15 +4731,15 @@ REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_WINDATTACK','attack',187,
REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_MENTALBREAKER','attack',159,1,200,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','attack',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','chase',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','idle',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','chase',193,1,10000,5000,5000,'no','self','myhpltmaxrate',0,1874,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','attack',193,1,10000,5000,5000,'no','self','myhpltmaxrate',0,1874,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','chase',193,1,10000,5000,5000,'no','self','myhpltmaxrate',50,1874,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','attack',193,1,10000,5000,5000,'no','self','myhpltmaxrate',50,1874,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@LK_SPIRALPIERCE','attack',397,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4765,14 +4749,14 @@ REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_WIDESILENCE','attack',66
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4781,49 +4765,48 @@ REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','chase',196
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','idle',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','chase',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','attack',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@SA_LANDPROTECTOR','attack',288,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_MAGICMIRROR','attack',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EXPULSION','attack',674,1,50,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@LK_SPIRALPIERCE','attack',397,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_PULSESTRIKE','attack',661,5,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','attack',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','chase',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1875,'Tristan@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Moscovia (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,42,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1875,'Tristan@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Moscovia (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1881,'Les@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_COMBOATTACK','attack',171,2,3000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_POISON','attack',176,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@WZ_WATERBALL','chase',86,1,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@NPC_COMBOATTACK','attack',171,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@WZ_WATERBALL','attack',86,2,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@WZ_WATERBALL','attack',86,2,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_MAGICALATTACK','chase',192,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_POISON','attack',176,2,2000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@WZ_WATERBALL','attack',86,3,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_CURSEATTACK','attack',181,2,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@WZ_WATERBALL','attack',86,3,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_CURSEATTACK','attack',181,2,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@AL_HEAL','idle',28,5,10000,2000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@AL_HEAL','idle',28,5,10000,2000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@WZ_EARTHSPIKE','chase',90,2,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_GROUNDATTACK','attack',185,2,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_SILENCEATTACK','attack',178,2,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_SILENCEATTACK','attack',178,2,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SUMMONSLAVE','attack',196,5,10000,1000,30000,'no','self','slavele',1,1886,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SUMMONSLAVE','chase',196,5,5000,1000,30000,'no','self','slavele',0,1886,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4832,12 +4815,12 @@ REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_QUAGMIRE','chase',92,5,500
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','chase',352,1,5000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_METEOR','attack',83,11,5000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_METEOR','attack',83,11,5000,1500,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@MG_FIREBALL','attack',17,20,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_AGIUP','attack',350,5,3000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@KN_TWOHANDQUICKEN','attack',60,20,5000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_POWERUP','attack',349,5,6000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_AGIUP','attack',350,5,3000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@KN_TWOHANDQUICKEN','attack',60,20,5000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_POWERUP','attack',349,5,6000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_HEAVENDRIVE','chase',91,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@SM_MAGNUM','attack',7,20,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SILENCEATTACK','attack',178,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4846,10 +4829,10 @@ REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_HEAVENDRIVE','attack',91,5
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_QUAGMIRE','attack',92,5,5000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@AL_HEAL','idle',28,9,10000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@AL_HEAL','idle',28,9,10000,1000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@WZ_EARTHSPIKE','chase',90,4,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_GROUNDATTACK','attack',185,4,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_SILENCEATTACK','attack',178,4,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_SILENCEATTACK','attack',178,4,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4859,7 +4842,7 @@ REPLACE INTO `mob_skill_db` VALUES (1888,'Garm Baby@MG_FROSTDIVER','chase',15,10
REPLACE INTO `mob_skill_db` VALUES (1888,'Garm Baby@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_QUAGMIRE','chase',92,1,5000,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4870,15 +4853,14 @@ REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@NPC_SILENCEATTACK'
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_HEAVENDRIVE','attack',91,5,5000,500,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_QUAGMIRE','attack',92,1,5000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@KN_BRANDISHSPEAR','attack',57,20,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@WZ_JUPITEL','attack',84,28,100,2000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4886,57 +4868,55 @@ REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','chase',89,10,20
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','attack',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
REPLACE INTO `mob_skill_db` VALUES (1904,'Bomb Poring@NPC_SELFDESTRUCTION','any',173,1,10000,3000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Satan Morroc (12.1)
-#5% HP - Dragon Fear
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-#10% HP - Talk
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-#30% HP - Earthquake Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#40% HP - Mixed Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#50% HP - Vampire Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#60% HP - Hell Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#80% HP - Magic Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Satan Morroc (12.1)
+-- 5% HP - Dragon Fear
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+-- 10% HP - Talk
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,16);
+-- 30% HP - Earthquake Combo
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',11,30,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',11,30,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',684,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',684,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',678,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',678,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 40% HP - Mixed Combo
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',31,40,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',31,40,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',661,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',661,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',666,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',666,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 50% HP - Vampire Combo
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',41,50,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',41,50,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',679,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',679,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',680,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',680,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 60% HP - Hell Combo
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',51,60,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',51,60,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',668,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',668,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',683,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',683,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 80% HP - Magic Combo
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',61,80,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',61,80,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',16,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',16,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',19,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',19,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -4947,53 +4927,53 @@ REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','idle',1
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#5% HP - Dragon Fear
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-#10% HP - Talk
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-#30% HP - Earthquake Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#40% HP - Mixed Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#50% HP - Vampire Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#60% HP - Hell Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#80% HP - Magic Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 5% HP - Dragon Fear
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+-- 10% HP - Talk
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,16);
+-- 30% HP - Earthquake Combo
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',11,30,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',11,30,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',684,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',684,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',678,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',678,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 40% HP - Mixed Combo
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',31,40,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',31,40,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',661,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',661,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',666,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',666,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 50% HP - Vampire Combo
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',41,50,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',41,50,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',679,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',679,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',680,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',680,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 60% HP - Hell Combo
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',51,60,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',51,60,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',668,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',668,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',683,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',683,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 80% HP - Magic Combo
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',61,80,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',61,80,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',16,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',16,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',19,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',19,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5005,56 +4985,56 @@ REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SUMMONSLAVE','idle'
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','chase',289,5,100,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','attack',289,5,100,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','chase',677,5,5000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','attack',677,5,5000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@SM_MAGNUM','attack',7,20,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,5000,5000,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,5000,5000,100000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','attack',673,3,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','idle',673,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','chase',673,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','chase',60,20,10000,800,60000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','attack',60,20,10000,800,60000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','chase',60,20,10000,800,60000,'no','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','attack',60,20,10000,800,60000,'no','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5072,7 +5052,7 @@ REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_SUMMONSLAVE'
REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_WIDEBLEEDING','chase',665,2,10000,500,100000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,2000,700,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,2000,700,100000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@SM_MAGNUM','attack',7,20,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
@@ -5081,82 +5061,80 @@ REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUN
REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUND','idle',673,4,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUND','chase',673,4,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-
-# Sealed Shrine (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','attack',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
+REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,28,NULL);
+-- Sealed Shrine (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,25);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','attack',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,25);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,19);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@AS_SONICBLOW','attack',136,5,500,0,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKNESSBREATH','attack',658,3,2000,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','chase',662,3,10000,800,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','attack',662,3,10000,800,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@AS_SONICBLOW','attack',136,5,500,0,20000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,20);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKNESSBREATH','attack',658,3,2000,800,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','chase',662,3,10000,800,15000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','attack',662,3,10000,800,15000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,22);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','idle',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','chase',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','attack',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','chase',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','idle',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','chase',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','attack',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','chase',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,20);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,21);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@KN_BRANDISHSPEAR','chase',57,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@KN_BRANDISHSPEAR','attack',57,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','chase',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','attack',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','chase',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','attack',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','attack',85,10,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,5000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,3);
-
-# Fallacious Okolnir (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','attack',85,10,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,5000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,23);
+-- Fallacious Okolnir (12.1)
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_METEOR','idle',83,11,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','chase',662,5,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','attack',662,5,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','chase',662,5,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','attack',662,5,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',0,1947,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','chase',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',0,1947,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',70,1947,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','chase',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',70,1947,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_METEOR','idle',83,11,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','attack',196,5,10000,2000,5000,'no','self','slavele',1,1933,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','idle',196,5,10000,2000,5000,'no','self','slavele',1,1933,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5164,11 +5142,11 @@ REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','chase',1
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','attack',350,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','chase',350,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','chase',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','attack',350,5,10000,0,100000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','chase',350,5,10000,0,100000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','chase',60,20,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5179,59 +5157,58 @@ REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_BRANDISHSPEAR','attack'
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','chase',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','chase',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKCROSS','attack',338,5,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','attack',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','chase',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','attack',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','chase',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','chase',662,2,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','attack',662,2,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKBLESSING','attack',203,1,300,0,2000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','chase',662,2,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','attack',662,2,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKBLESSING','attack',203,1,300,0,2000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-# Endless Tower (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+-- Endless Tower (13.1)
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_BRANDISHSPEAR','attack',57,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','chase',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','attack',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','chase',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','attack',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_DARKSTRIKE','chase',340,10,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HALLUCINATION','chase',207,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SHIELDBRAKE','attack',346,10,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5242,13 +5219,13 @@ REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_FIREATTACK','attack',
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','chase',179,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','attack',179,2,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','chase',379,3,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','attack',379,3,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','chase',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','attack',379,3,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','chase',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5259,33 +5236,33 @@ REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_ALLHEAL','idle',687,1
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ASC_BREAKER','attack',379,5,500,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_EVILLAND','attack',670,4,10000,800,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ASC_BREAKER','attack',379,5,500,1000,20000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_EVILLAND','attack',670,4,10000,800,50000,'no','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKSTRIKE','attack',340,10,2000,0,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKNESSATTACK','attack',190,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKNESSATTACK','attack',190,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@AC_SHOWER','attack',47,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_WIDECURSE','attack',677,5,5000,300,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',3,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','idle',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','attack',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','idle',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','attack',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@SN_SHARPSHOOTING','attack',382,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@AC_SHOWER','attack',47,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','attack',28,11,10000,300,2000,'no','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','attack',28,11,10000,300,2000,'no','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_FROSTDIVER','attack',15,9,10000,500,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5295,16 +5272,15 @@ REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_SOULSTRIKE','attack'
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_HEAVENDRIVE','attack',91,3,3000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DARKTHUNDER','attack',341,5,500,1500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_STORMGUST','attack',89,5,500,1500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','chase',672,5,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','attack',672,5,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','chase',289,5,500,2000,40000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','attack',289,5,500,2000,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-
-# Guild Dungeon SE (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- Guild Dungeon SE (13.1)
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5312,78 +5288,76 @@ REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CRITICALWOUND','att
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3795,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1868,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,52,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,39,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@SA_DISPELL','attack',289,1,100,1000,100000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@SA_DISPELL','attack',289,1,100,1000,100000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1774,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_SPLASHATTACK','attack',174,1,500,0,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPARMOR','attack',217,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPARMOR','attack',217,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1668,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Memory of Orc Dungeon (13.1)
+-- Memory of Orc Dungeon (13.1)
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_BASH','attack',5,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_BASH','chase',5,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,0,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_MAGNUM','attack',7,7,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_PULSESTRIKE','chase',661,2,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_PULSESTRIKE','attack',661,2,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@NPC_EMOTION','attack',197,1,100,0,60000,'yes','self','myhpltmaxrate',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@NPC_EMOTION','attack',197,1,100,0,60000,'yes','self','myhpltmaxrate',60,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@AC_DOUBLE','attack',46,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-#The New World Mob Skill (13.1)
-REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','attack',348,1,3000,500,600000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','chase',348,1,3000,500,600000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- The New World Mob Skill (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','attack',348,1,3000,500,600000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','chase',348,1,3000,500,600000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5391,29 +5365,29 @@ REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AS_VENOMDUST','attack',140,1
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,12,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','idle',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','chase',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','attack',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
@@ -5423,125 +5397,125 @@ REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','chase',
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','attack',197,1,1000,0,5000,'yes','self','always',0,19,0xA1,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_WATERBALL','attack',86,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@LK_SPIRALPIERCE','attack',397,1,500,3000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','chase',678,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','attack',678,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','chase',6,10,500,600,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','attack',6,10,500,600,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','chase',678,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','attack',678,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','chase',6,10,500,600,120000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','attack',6,10,500,600,120000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','chase',653,2,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','attack',653,2,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','chase',653,2,10000,2000,30000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','attack',653,2,10000,2000,30000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','attack',6,10,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','attack',6,10,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','always',0,7,0x36B5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_EMOTION','attack',197,1,1000,0,10000,'yes','self','always',0,19,0x38A5,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','chase',668,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','attack',668,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','chase',668,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','attack',668,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_GROUNDATTACK','attack',185,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_GROUNDATTACK','attack',185,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',0,NULL,0x38A5,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','idle',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_PULSESTRIKE','attack',661,3,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','idle',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','chase',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','attack',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_PULSESTRIKE','attack',661,3,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','idle',687,1,10000,1500,5000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','chase',687,1,10000,1500,5000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','attack',687,1,10000,1500,5000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','attack',6,3,2000,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','attack',6,3,2000,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@WZ_WATERBALL','attack',86,9,1000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_POISONATTACK','attack',188,2,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PULSESTRIKE','attack',661,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PULSESTRIKE','attack',661,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','idle',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','attack',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','chase',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','idle',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','attack',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','chase',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','around1','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#
+--
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','attack',196,1,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','chase',196,1,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','idle',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','chase',193,6,10000,5000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','attack',193,6,10000,5000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','chase',193,6,10000,5000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','attack',193,6,10000,5000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@LK_SPIRALPIERCE','attack',397,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5551,14 +5525,14 @@ REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_WIDESILENCE','attack',66
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','attack',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','chase',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','attack',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','chase',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5567,23 +5541,23 @@ REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SUMMONSLAVE','chase',196
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SUMMONSLAVE','idle',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_STONESKIN','chase',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_STONESKIN','attack',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@SA_LANDPROTECTOR','attack',288,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SHIELDBRAKE','attack',346,10,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_MAGICMIRROR','attack',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_EXPULSION','attack',674,1,50,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@LK_SPIRALPIERCE','attack',397,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_PULSESTRIKE','attack',661,5,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_ACIDBREATH','attack',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_ACIDBREATH','chase',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,42,NULL);
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -5592,10 +5566,9 @@ REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_EMOTION','idle',197,1,20
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_SUMMONSLAVE','idle',196,1,10000,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-
-# Into the Unknown (13.2)
+-- Into the Unknown (13.2)
REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,44,NULL);
REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@TF_THROWSTONE','chase',152,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5603,14 +5576,14 @@ REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_PIERCINGATT','attack',158,5,
REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_FIREBREATH','attack',654,3,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5618,7 +5591,7 @@ REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_WATERBALL','attack',
REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_COLDBOLT','attack',14,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLOWCAST','attack',672,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5628,14 +5601,14 @@ REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','chase',340,3,200
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','attack',340,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_ARMORBRAKE','attack',344,3,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_ARMORBRAKE','attack',344,3,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,24,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5645,20 +5618,19 @@ REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@PF_SPIDERWEB','chase',405,1,30
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@KN_TWOHANDQUICKEN','attack',60,5,500,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@KN_TWOHANDQUICKEN','attack',60,5,500,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
@@ -5684,54 +5656,51 @@ REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SUMMONSLAVE','i
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','idle',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','chase',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','attack',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','chase',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','attack',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_POWERUP','attack',349,5,6000,0,60000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','attack',670,4,500,0,25000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','chase',92,5,10000,700,5000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','attack',92,5,10000,700,120000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','chase',653,2,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','attack',653,2,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','idle',353,1,2000,200,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','chase',353,1,2000,200,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','idle',670,10,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','chase',670,10,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','attack',662,2,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DARKNESSBREATH','attack',658,10,10000,800,35000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SLOWCAST','attack',672,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','chase',677,5,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','attack',677,5,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_FIREBREATH','attack',654,5,10000,800,15000,'no','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','chase',668,5,10000,3000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','attack',668,5,30000,1000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','chase',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','attack',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_POWERUP','attack',349,5,6000,0,60000,'yes','self','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','attack',670,4,500,0,25000,'yes','target','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','chase',92,5,10000,700,5000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','attack',92,5,10000,700,120000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','chase',653,2,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','attack',653,2,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','idle',353,1,2000,200,5000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','chase',353,1,2000,200,5000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','idle',670,10,500,0,120000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','chase',670,10,500,0,120000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','attack',662,2,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DARKNESSBREATH','attack',658,10,10000,800,35000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SLOWCAST','attack',672,5,10000,0,60000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','chase',677,5,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','attack',677,5,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_FIREBREATH','attack',654,5,10000,800,15000,'no','target','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','chase',668,5,10000,3000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','attack',668,5,30000,1000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@MG_FIREBALL','chase',17,5,10000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_METEOR','attack',83,10,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_METEOR','attack',83,10,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_PULSESTRIKE','attack',661,5,2000,10000,40000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_PULSESTRIKE','attack',661,5,2000,10000,40000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,31);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,20,NULL);
REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_BLINDATTACK','attack',177,2,1000,0,6000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_POISON','attack',176,3,1000,500,60000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,8);
-
+REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_BLINDATTACK','attack',177,2,1000,0,6000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,29);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_POISON','attack',176,3,1000,500,60000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,27);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,28);
REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Brasilis
+-- Brasilis
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5741,10 +5710,10 @@ REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_FIREATTACK','attack',186,5
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','attack',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','idle',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','chase',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -5781,24 +5750,24 @@ REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_GROUNDATTACK','attack',185,
REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AS_SONICBLOW','attack',136,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,30,NULL);
REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','idle',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','attack',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','idle',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','attack',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','attack',26,1,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','idle',26,1,4000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','attack',26,1,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','idle',26,1,4000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_WATERATTACK','attack',184,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
@@ -5808,28 +5777,29 @@ REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','attack',14,3,500
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#****
-# NC Mechanic Summons
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- ****
+-- NC Mechanic Summons
+REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@MG_FIREBOLT','attack',19,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@MG_FIREBOLT','chase',19,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@MG_COLDBOLT','attack',14,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@MG_COLDBOLT','chase',14,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@WZ_EARTHSPIKE','attack',90,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@WZ_EARTHSPIKE','chase',90,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@MG_LIGHTNINGBOLT','attack',20,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@MG_LIGHTNINGBOLT','chase',20,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+
diff --git a/sql-files/mob_skill_db2.sql b/sql-files/mob_skill_db2.sql
index 0df6e8de5..cf270f8b3 100644
--- a/sql-files/mob_skill_db2.sql
+++ b/sql-files/mob_skill_db2.sql
@@ -3,12 +3,12 @@
--
DROP TABLE IF EXISTS `mob_skill_db2`;
-CREATE TABLE IF NOT EXISTS `mob_skill_db2` (
+CREATE TABLE `mob_skill_db2` (
`MOB_ID` SMALLINT(6) NOT NULL,
`INFO` TEXT NOT NULL,
`STATE` TEXT NOT NULL,
`SKILL_ID` SMALLINT(6) NOT NULL,
- `SKILL_LV` tinyint(4) NOT NULL,
+ `SKILL_LV` TINYINT(4) NOT NULL,
`RATE` SMALLINT(4) NOT NULL,
`CASTTIME` MEDIUMINT(9) NOT NULL,
`DELAY` INT(9) NOT NULL,
@@ -25,81 +25,136 @@ CREATE TABLE IF NOT EXISTS `mob_skill_db2` (
`CHAT` TEXT
) ENGINE=MyISAM;
--- Mob Skill Database
+-- Custom Mob Skill Database
--
--- Structure of Database:
+-- Structure of Database:
-- INSERT INTO `mob_skill_db2` (`MOB_ID`, `INFO`, `STATE`, `SKILL_ID`, `SKILL_LV`, `RATE`, `CASTTIME`, `DELAY`, `CANCELABLE`, `TARGET`, `CONDITION`, `CONDITION_VALUE`, `VAL1`, `VAL2`, `VAL3`, `VAL4`, `VAL5`, `EMOTION`, `CHAT`);
+--
+-- RATE: the chance of the skill being casted when the condition is fulfilled (10000 = 100%).
+-- DELAY: the time (in milliseconds) before attempting to recast the same skill.
+--
+-- STATE:
+-- any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
+-- loot /attack / angry (like attack, except player has not attacked mob yet) /
+-- chase (following target, after being attacked) / follow (following target,
+-- without being attacked) / anytarget (attack+angry+chase+follow)
+--
+-- TARGET:
+-- target (current target) / self / friend / master / randomtarget (any enemy within skill's range)
+--
+-- The following are for ground-skills, a random target tile is selected from the specified area:
+-- around1 (3x3 area around self) / around2 (5x5 area around self) /
+-- around3 (7x7 area around self) / around4 (9x9 area around self) /
+-- around5 (3x3 area around target) / around6 (5x5 area around target) /
+-- around7 (7x7 area around target) / around8 (9x9 area around target) /
+-- around = around4
+--
+-- CONDITION:
+-- always Unconditional (no condition value).
+-- onspawn When mob spawns/respawns (no condition value).
+-- myhpltmaxrate When mob's HP drops to the specified %.
+-- myhpinrate When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- mystatuson If mob has the specified abnormality in status.
+-- mystatusoff If mob has ended the specified abnormality in status.
+-- friendhpltmaxrate When mob's friend's HP drops to the specified %.
+-- friendhpinrate When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- friendstatuson If friend has the specified abnormality in status.
+-- friendstatusoff If friend has ended the specified abnormality in status.
+-- attackpcgt When attack PCs become greater than specified number.
+-- attackpcge When attack PCs become greater than or equal to the specified number.
+-- slavelt When number of slaves is less than the original specified number.
+-- slavele When number of slaves is less than or equal to the original specified number.
+-- closedattacked When close range melee attacked (no condition value).
+-- longrangeattacked When long range attacked, ex. bows, guns, ranged skills (no condition value).
+-- skillused When the specified skill is used on the mob.
+-- afterskill After mob casts the specified skill.
+-- casttargeted When a target is in cast range (no condition value).
+-- rudeattacked When mob is rude attacked (no condition value).
+--
+-- Status abnormalities specified through the statuson/statusoff system:
+-- anybad (any type of state change) / stone / freeze / stun / sleep /
+-- poison / curse / silence / confusion / blind / hiding / sight (unhidden)
+--
+-- Note: if a negative MobID is provided, the skill will be treated as 'global':
+-- -1: added for all boss types.
+-- -2: added for all normal types.
+-- -4: added for all mobs.
+-- rAthena Dev Team
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@MO_BODYRELOCATION','chase',264,1,200,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_DARKSTRIKE','chase',340,10,200,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1902,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1902,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@WZ_VERMILION','attack',85,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@WZ_VERMILION','chase',85,10,200,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1900,'Valaris@WZ_VERMILION','chase',85,10,500,500,2000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_EMOTION','chase',197,1,20,0,5000,'yes','self','always',0,19,129,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_EMOTION','idle',197,1,200,0,5000,'yes','self','always',0,6,1173,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_EMOTION','walk',197,1,200,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@NPC_HALLUCINATION','chase',207,1,50,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1901,'Valaris\'s Worshipper@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@MO_BODYRELOCATION','chase',264,1,200,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@NPC_DARKSTRIKE','chase',340,10,200,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@WZ_VERMILION','attack',85,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@WZ_VERMILION','chase',85,10,200,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1902,'MC Cameri@WZ_VERMILION','chase',85,10,500,500,2000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@AC_DOUBLE','attack',46,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@AC_SHOWER','attack',47,8,2000,1000,5000,'no','target','attackpcgt',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_AGIUP','chase',350,5,2500,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_POWERUP','attack',349,5,500,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@SN_SHARPSHOOTING','attack',382,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@HT_SKIDTRAP','idle',115,5,50,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@HT_FREEZINGTRAP','idle',120,5,50,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@HT_FREEZINGTRAP','idle',121,5,50,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@HT_FLASHER','idle',120,5,50,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_SUMMONSLAVE','idle',196,5,10000,2000,120000,'no','self','slavele',1,1659,1660,1661,1662,1663,0,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_CALLSLAVE','attack',352,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_CALLSLAVE','idle',352,1,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_CHANGEWATER','attack',162,1,10000,2000,600000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@NPC_CHANGETELEKINESIS','attack',169,1,500,2000,5000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,7,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1903,'Poki#3@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Easter Bunny (not in the db?? it's in db2!)
+-- REPLACE INTO `mob_skill_db` VALUES (1921,'Easter Bunny@NPC_SUMMONSLAVE','attack',196,5,10000,3000,10000,'no','self','slavele',2,1063,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1921,'Easter Bunny@NPC_SUMMONSLAVE','idle',196,5,5000,2000,40000,'no','self','always',2,1920,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Custom Fire Poring. Warning, Colides with META_DENIRO
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@AL_HEAL','idle',28,10,10000,0,2000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@AL_HEAL','walk',28,10,10000,0,2000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@AL_TELEPORT','attack',26,1,1000,5000,60000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@NPC_DARKBLESSING','attack',203,1,1000,2000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@NPC_SUMMONSLAVE','attack',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@NPC_SUMMONSLAVE','idle',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@RG_INTIMIDATE','attack',219,5,1000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@RG_STRIPARMOR','attack',217,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@RG_STRIPHELM','attack',218,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@RG_STRIPSHIELD','attack',216,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (1239,'Fire Poring@RG_STRIPWEAPON','attack',215,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- iRO Halloween Event 2009
+-- REPLACE INTO `mob_skill_db` VALUES (3014,'Halloween Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (3014,'Halloween Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (3014,'Halloween Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- REPLACE INTO `mob_skill_db` VALUES (3014,'Halloween Whisper@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
+-- Here you can place your custom mob skills
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@AL_TELEPORT", "walk", 26, 1, 500, 0, 5000, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@KN_BRANDISHSPEAR", "attack", 57, 10, 2000, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@MO_BODYRELOCATION", "chase", 264, 1, 200, 200, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_ARMORBRAKE", "attack", 344, 10, 2000, 0, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_CALLSLAVE", "attack", 352, 1, 10000, 0, 30000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_CALLSLAVE", "idle", 352, 1, 10000, 0, 30000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_DARKBREATH", "attack", 202, 5, 2000, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_DARKSTRIKE", "chase", 340, 10, 200, 0, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_GUIDEDATTACK", "attack", 172, 5, 500, 0, 20000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_POWERUP", "attack", 349, 5, 10000, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, 6, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_SUMMONSLAVE", "attack", 196, 6, 10000, 700, 10000, "no", "self", "slavele", 3, 1902, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@NPC_SUMMONSLAVE", "idle", 196, 6, 10000, 700, 10000, "no", "self", "slavele", 3, 1902, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@WZ_VERMILION", "attack", 85, 10, 2000, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@WZ_VERMILION", "chase", 85, 10, 200, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1900, "Valaris@WZ_VERMILION", "chase", 85, 10, 500, 500, 2000, "no", "target", "skillused", 18, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_CURSEATTACK", "attack", 181, 3, 500, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_DARKNESSATTACK", "attack", 190, 2, 500, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 6, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "chase", 197, 1, 20, 0, 5000, "yes", "self", "always", 0, 19, 129, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "idle", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 6, 1173, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "walk", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 2, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_HALLUCINATION", "attack", 207, 1, 500, 500, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@NPC_HALLUCINATION", "chase", 207, 1, 50, 500, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1901, "Valaris's Worshipper@SA_DISPELL", "attack", 289, 1, 0, 0, 30000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@AL_TELEPORT", "walk", 26, 1, 500, 0, 5000, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@KN_BRANDISHSPEAR", "attack", 57, 10, 2000, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@MO_BODYRELOCATION", "chase", 264, 1, 200, 200, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@NPC_ARMORBRAKE", "attack", 344, 10, 2000, 0, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@NPC_DARKBREATH", "attack", 202, 5, 2000, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@NPC_DARKSTRIKE", "chase", 340, 10, 200, 0, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@NPC_GUIDEDATTACK", "attack", 172, 5, 500, 0, 20000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@NPC_POWERUP", "attack", 349, 5, 10000, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, 6, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@WZ_VERMILION", "attack", 85, 10, 2000, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@WZ_VERMILION", "chase", 85, 10, 200, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1902, "MC Cameri@WZ_VERMILION", "chase", 85, 10, 500, 500, 2000, "no", "target", "skillused", 18, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@AC_DOUBLE", "attack", 46, 10, 500, 1000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@AC_SHOWER", "attack", 47, 8, 2000, 1000, 5000, "no", "target", "attackpcgt", 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@BS_MAXIMIZE", "chase", 114, 5, 500, 1000, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@BS_MAXIMIZE", "attack", 114, 5, 500, 1000, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_AGIUP", "chase", 350, 5, 2500, 0, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_POWERUP", "attack", 349, 5, 500, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@SN_SHARPSHOOTING", "attack", 382, 5, 500, 1000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@HT_SKIDTRAP", "idle", 115, 5, 50, 0, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@HT_FREEZINGTRAP", "idle", 120, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@HT_FREEZINGTRAP", "idle", 121, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@AC_CHARGEARROW", "attack", 148, 1, 500, 0, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@HT_FLASHER", "idle", 120, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_SUMMONSLAVE", "idle", 196, 5, 10000, 2000, 120000, "no", "self", "slavele", 1, 1659, 1660, 1661, 1662, 1663, 0, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_CALLSLAVE", "attack", 352, 1, 2000, 0, 10000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_CALLSLAVE", "idle", 352, 1, 2000, 0, 10000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_CHANGEWATER", "attack", 162, 1, 10000, 2000, 600000, "no", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@NPC_CHANGETELEKINESIS", "attack", 169, 1, 500, 2000, 5000, "no", "self", "myhpltmaxrate", 10, NULL, NULL, NULL, NULL, NULL, 7, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1903, "Poki#3@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1921, "Easter Bunny@NPC_SUMMONSLAVE", "attack", 196, 5, 10000, 3000, 10000, "no", "self", "slavele", 2, 1063, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1921, "Easter Bunny@NPC_SUMMONSLAVE", "idle", 196, 5, 5000, 2000, 40000, "no", "self", "always", 2, 1920, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@AL_HEAL", "idle", 28, 10, 10000, 0, 2000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 4, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@AL_HEAL", "walk", 28, 10, 10000, 0, 2000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 4, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@AL_TELEPORT", "attack", 26, 1, 1000, 5000, 60000, "no", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@NPC_DARKBLESSING", "attack", 203, 1, 1000, 2000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 18, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@NPC_SUMMONSLAVE", "attack", 196, 16, 10000, 2000, 10000, "no", "self", "slavele", 3, 1491, 1431, 1433, NULL, NULL, 18, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@NPC_SUMMONSLAVE", "idle", 196, 16, 10000, 2000, 10000, "no", "self", "slavele", 3, 1491, 1431, 1433, NULL, NULL, 18, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@RG_INTIMIDATE", "attack", 219, 5, 1000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@RG_STRIPARMOR", "attack", 217, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@RG_STRIPHELM", "attack", 218, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@RG_STRIPSHIELD", "attack", 216, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(1239, "Fire Poring@RG_STRIPWEAPON", "attack", 215, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(3014, "Halloween Whisper@AS_CLOAKING", "idle", 135, 1, 2000, 200, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(3014, "Halloween Whisper@AS_CLOAKING", "chase", 135, 1, 2000, 200, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(3014, "Halloween Whisper@NPC_EMOTION", "idle", 197, 1, 2000, 0, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-# REPLACE INTO mob_skill_db2 VALUES(3014, "Halloween Whisper@NPC_EMOTION", "chase", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 19, 0x81, NULL, NULL, NULL, NULL, NULL);
diff --git a/sql-files/mob_skill_db_re.sql b/sql-files/mob_skill_db_re.sql
index 8810ef1e5..8427ff2bd 100644
--- a/sql-files/mob_skill_db_re.sql
+++ b/sql-files/mob_skill_db_re.sql
@@ -1,9 +1,9 @@
--
--- Table structure for table `mob_skill_db`
+-- Table structure for table `mob_skill_db_re`
--
-DROP TABLE IF EXISTS `mob_skill_db`;
-CREATE TABLE IF NOT EXISTS `mob_skill_db` (
+DROP TABLE IF EXISTS `mob_skill_db_re`;
+CREATE TABLE `mob_skill_db_re` (
`MOB_ID` SMALLINT(6) NOT NULL,
`INFO` TEXT NOT NULL,
`STATE` TEXT NOT NULL,
@@ -25,7725 +25,8003 @@ CREATE TABLE IF NOT EXISTS `mob_skill_db` (
`CHAT` TEXT
) ENGINE=MyISAM;
--- Based on Aegis Episode 11.3
---
+-- Mob Skill Database
+-- Based on Aegis Episode 14.2
+--
+-- Structure of Database:
-- REPLACE INTO `mob_skill_db` VALUES (MOB_ID,'dummy value (info only)','STATE',SKILL_ID,SKILL_LV,rate (10000 = 100%),casttime,delay,'cancelable','target','condition type','condition value',val1,val2,val3,val4,val5,'emotion','chat');
--- Example
--- 1001,Poring@TF_POISON,attack,52,3,100,1500,10000,no,target,always,0,,,,,7,
--
--- rate refers to the chance of the skill being casted when the condition is fulfilled.
--- delay is the time in milliseconds that has to be pass before recasting the same skill.
+-- RATE: the chance of the skill being casted when the condition is fulfilled (10000 = 100%).
+-- DELAY: the time (in milliseconds) before attempting to recast the same skill.
--
--- STATE:
--- any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
--- loot /attack / angry (like attack, except player has not attacked mob yet) /
--- chase (following target, after being attacked) / follow (following
--- target, without being attacked)
--- anytarget (attack+angry+chase+follow)
+-- STATE:
+-- any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
+-- loot /attack / angry (like attack, except player has not attacked mob yet) /
+-- chase (following target, after being attacked) / follow (following target,
+-- without being attacked) / anytarget (attack+angry+chase+follow)
--
--- target: The target of the skill can be: target (current target) / self / friend /
--- master / randomtarget (any enemy within skill's range)
--- (the following are for ground-skills, a random target tile is selected from
--- the specified area):
--- around1 (3x3 area around self) / around2 (5x5 area around self) /
--- around3 (7x7 area around self) / around4 (9x9 area around self) /
--- around5 (3x3 area around target) / around6 (5x5 area around target) /
--- around7 (7x7 area around target) / around8 (9x9 area around target) /
--- around = around4
+-- TARGET:
+-- target (current target) / self / friend / master / randomtarget (any enemy within skill's range)
--
--- conditions: (condition type) (value which specifies a condition value)
--- always unconditional
--- onspawn when the mob spawns/respawns.
--- myhpltmaxrate when the mob's hp drops to a certain %
--- myhpinrate when the mob's hp is in a certain % range ('a condition value'
--- is the lower cap, while 'a value 1' is the upper cap).
--- mystatuson If the mob has any abnormalities in status (condition value)
--- mystatusoff If the mob has ended any abnormalities in status (condition value)
--- friendhpltmaxrate when the mob's friend's hp drops to a certain %
--- friendhpinrate when the mob's friend's hp is in a certain % range (range
--- defined the same way as in myhpinrate)
--- friendstatuson If the friend has any abnormalities in status (condition value)
--- friendstatusoff If the friend has ended any abnormalities in status (condition value)
--- attackpcgt Attack PC becomes more than the number of specification
--- attackpcge Attack PC becomes equal or more than the number of specification.
--- slavelt when the number of slaves is lower than the original number of specification.
--- slavele when the number of slaves is lower or equal than the original number of specification.
--- closedattacked when melee attacked (close range attack)
--- longrangeattacked when long ranged attacked (like bows and far range weapons)
--- skillused when a skill is used on the mob
--- afterskill after the mob used certain skill.
--- casttargeted when a target is in cast range.
--- rudeattacked when a target is rude attacked
+-- The following are for ground-skills, a random target tile is selected from the specified area:
+-- around1 (3x3 area around self) / around2 (5x5 area around self) /
+-- around3 (7x7 area around self) / around4 (9x9 area around self) /
+-- around5 (3x3 area around target) / around6 (5x5 area around target) /
+-- around7 (7x7 area around target) / around8 (9x9 area around target) /
+-- around = around4
--
--- The character's state which can be specified to be a condition value by the statuson/statusoff system
--- anybad any type of state change
--- stone condition of being in stone state
--- freeze condition of being in frozen state
--- stun condition of being in stunned state
--- sleep condition of being in sleep state
--- poison condition of being in poisoned state
--- curse condition of being in cursed state
--- silence condition of being in silenced state
--- confusion condition of being in confusion state
--- blind condition of being in blind state
--- hiding condition of being in hidden state
--- sight condition of being in unhidden state
-
-REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1002,'Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1002,'Poring@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1004,'Hornet@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1004,'Hornet@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1007,'Fabre@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1007,'Fabre@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1008,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1008,'Pupa@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1008,'Pupa@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1018,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@BS_ADRENALINE','attack',111,1,500,1500,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,5,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1012,'Roda Frog@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_SLEEPATTACK','attack',182,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_POISON','angry',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1020,'Mandragora@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1024,'Worm Tail@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1025,'Snake@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1025,'Snake@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1028,'Skeleton Soldier@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1030,'Anacondaq@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1030,'Anacondaq@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1034,'Thara Frog@NPC_WATERATTACK','attack',184,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3985,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1036,'Ghoul@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1036,'Ghoul@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- CONDITION:
+-- always Unconditional (no condition value).
+-- onspawn When mob spawns/respawns (no condition value).
+-- myhpltmaxrate When mob's HP drops to the specified %.
+-- myhpinrate When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- mystatuson If mob has the specified abnormality in status.
+-- mystatusoff If mob has ended the specified abnormality in status.
+-- friendhpltmaxrate When mob's friend's HP drops to the specified %.
+-- friendhpinrate When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+-- friendstatuson If friend has the specified abnormality in status.
+-- friendstatusoff If friend has ended the specified abnormality in status.
+-- attackpcgt When attack PCs become greater than specified number.
+-- attackpcge When attack PCs become greater than or equal to the specified number.
+-- slavelt When number of slaves is less than the original specified number.
+-- slavele When number of slaves is less than or equal to the original specified number.
+-- closedattacked When close range melee attacked (no condition value).
+-- longrangeattacked When long range attacked, ex. bows, guns, ranged skills (no condition value).
+-- skillused When the specified skill is used on the mob.
+-- afterskill After mob casts the specified skill.
+-- casttargeted When a target is in cast range (no condition value).
+-- rudeattacked When mob is rude attacked (no condition value).
+--
+-- Status abnormalities specified through the statuson/statusoff system:
+-- anybad (any type of state change) / stone / freeze / stun / sleep /
+-- poison / curse / silence / confusion / blind / hiding / sight (unhidden)
+--
+-- Note: if a negative MobID is provided, the skill will be treated as 'global':
+-- -1: added for all boss types.
+-- -2: added for all normal types.
+-- -4: added for all mobs.
+REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1001,'Scorpion@NPC_POISONATTACK','attack',188,1,500,300,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1002,'Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1002,'Poring@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1004,'Hornet@NPC_PIERCINGATT','attack',158,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1004,'Hornet@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1005,'Familiar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1007,'Fabre@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1008,'Pupa@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@BS_ADRENALINE','attack',111,1,500,1500,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,5,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1009,'Condor@NPC_WINDATTACK','attack',187,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1010,'Willow@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1011,'Chonchon@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1012,'Roda Frog@NPC_WATERATTACK','attack',184,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1013,'Wolf@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_SLEEPATTACK','attack',182,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1014,'Spore@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_POISON','angry',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1015,'Zombie@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1016,'Archer Skeleton@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1018,'Creamy@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@AS_SONICBLOW','attack',136,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1019,'Peco Peco@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1020,'Mandragora@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',NULL,27,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1023,'Orc Warrior@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1024,'Wormtail@NPC_GROUNDATTACK','attack',185,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1025,'Boa@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1025,'Boa@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1026,'Munak@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1028,'Soldier Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1029,'Isis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1030,'Anacondaq@NPC_POISON','attack',176,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1030,'Anacondaq@NPC_POISONATTACK','attack',188,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1031,'Poporing@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1032,'Verit@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1033,'Elder Willow@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1034,'Thara Frog@NPC_LICK','attack',206,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1034,'Thara Frog@NPC_WATERATTACK','attack',184,3,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_WINDATTACK','angry',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1035,'Hunter Fly@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1036,'Ghoul@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1036,'Ghoul@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1037,'Side Winder@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','attack',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','chase',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKBREATH','attack',202,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKBREATH','chase',202,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POISONATTACK','attack',188,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','attack',181,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_CURSEATTACK','chase',181,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKBREATH','attack',202,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKBREATH','chase',202,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POISONATTACK','attack',188,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,0,0,'no','self','onspawn',0,1029,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,0,0,'no','self','onspawn',0,1029,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@WZ_QUAGMIRE','chase',92,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1038,'Osiris@WZ_QUAGMIRE','chase',92,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_CRITICALWOUND','attack',673,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1101,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','attack',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1039,'Baphomet@WZ_VERMILION','chase',85,10,5000,500,2000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1042,'Steel Chonchon@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1042,'Steel Chonchon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','angry',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@CR_SHIELDCHARGE','attack',250,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1040,'Golem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1041,'Mummy@NPC_UNDEADATTACK','attack',347,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1042,'Steel Chonchon@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1042,'Steel Chonchon@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1044,'Obeaune@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','angry',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1045,'Marc@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','attack',30,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','chase',30,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'no','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','attack',30,48,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@AL_DECAGI','chase',30,48,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,11,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1047,'PecoPeco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1047,'PecoPeco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1049,1050,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1048,'Thief Bug Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1048,'Thief Bug Egg@NPC_METAMORPHOSIS','idle',193,4,10,2000,5000,'no','self','always',0,1051,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1049,'Picky@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1049,'Picky@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1050,'Shell Picky@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1050,'Shell Picky@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1051,'Thief Bug Larva@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1051,'Thief Bug Larva@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1052,'Rocker@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1052,'Rocker@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1053,'Thief Bug Female@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1053,'Thief Bug Female@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1054,'Thief Bug Male@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1054,'Thief Bug Male@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@BS_HAMMERFALL','chase',110,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1046,'Doppelganger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1047,'Peco Peco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1047,'Peco Peco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',NULL,1049,1050,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1048,'Thief Bug Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1049,'Picky@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1049,'Picky@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1050,'Picky@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1050,'Picky@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1051,'Thief Bug@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1051,'Thief Bug@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1052,'Rocker@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1052,'Rocker@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1053,'Female Thief Bug@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1053,'Female Thief Bug@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1054,'Male Thief Bug@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1054,'Male Thief Bug@NPC_AGIUP','loot',350,1,1000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1055,'Muka@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@AL_HEAL','idle',28,5,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@TF_HIDING','attack',51,1,500,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1056,'Smokie@TF_HIDING','attack',51,1,500,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1057,'Yoyo@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1058,'Metaller@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_BLEEDING','attack',660,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_STOP','attack',342,1,2000,0,15000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1156,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1156,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_STOP','attack',342,1,2000,0,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@WZ_JUPITEL','attack',84,28,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@WZ_JUPITEL','chase',84,28,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@WZ_JUPITEL','attack',84,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1059,'Mistress@WZ_JUPITEL','chase',84,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1060,'Bigfoot@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_MENTALBREAKER','attack',159,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1063,'Lunatic@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_CHANGETELEKINESIS','attack',169,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_UNDEADATTACK','attack',347,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','attack',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','chase',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','attack',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','chase',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','angry',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','follow',15,9,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','angry',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','follow',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','angry',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@SA_DISPELL','follow',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_MENTALBREAKER','attack',159,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1061,'Nightmare@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1062,'Santa Poring@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_CHANGETELEKINESIS','attack',169,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1064,'Megalodon@NPC_UNDEADATTACK','attack',347,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','angry',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','attack',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','follow',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_FROSTDIVER','chase',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','angry',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','attack',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','follow',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1065,'Strouf@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1066,'Vadon@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1068,'Hydra@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','angry',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','follow',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1073,'Crab@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1074,'Shellfish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1076,'Skeleton@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1076,'Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1067,'Cornutus@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1068,'Hydra@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_CRITICALWOUND','attack',673,1,100,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1069,'Swordfish@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1070,'Kukre@NPC_WATERATTACK','attack',184,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@NPC_BLEEDING','attack',660,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1071,'Pirate Skeleton@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','angry',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','follow',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1072,'Kaho@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1073,'Crab@NPC_CRITICALWOUND','attack',673,1,1000,0,120000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1073,'Crab@NPC_WATERATTACK','attack',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1074,'Shellfish@NPC_WATERATTACK','attack',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1076,'Skeleton@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1076,'Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1077,'Poison Spore@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','idle',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MC_MAMMONITE','attack',42,20,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@SM_MAGNUM','attack',7,20,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MG_FIREBALL','chase',17,20,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@HP_ASSUMPTIO','idle',361,5,10000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MC_MAMMONITE','attack',42,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@MG_FIREBALL','chase',17,10,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','attack',196,10,10000,700,10000,'no','self','slavele',5,1608,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','idle',196,10,10000,700,10000,'no','self','slavele',5,1608,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1054,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@TF_HIDING','attack',51,1,1000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_DECAGI','chase',30,48,2000,0,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@SM_MAGNUM','attack',7,10,2000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1086,'Golden Thief Bug@TF_HIDING','attack',51,1,1000,0,5000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_DECAGI','chase',30,10,2000,0,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','attack',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','chase',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@LK_SPIRALPIERCE','attack',397,5,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','attack',21,15,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','chase',21,15,10000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@CR_AUTOGUARD','attack',249,10,2000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@CR_AUTOGUARD','attack',249,10,2000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@LK_SPIRALPIERCE','attack',397,5,1500,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','attack',21,10,2000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@MG_THUNDERSTORM','chase',21,10,10000,1500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','attack',344,10,2000,500,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_ARMORBRAKE','chase',344,10,2000,500,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_BLEEDING','attack',660,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1087,'Orc Hero@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1052,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1052,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1088,'Vocal@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1052,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1012,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1012,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_SUMMONSLAVE','idle',196,6,10000,0,0,'no','self','onspawn',0,1012,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1089,'Toad@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1002,1113,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1002,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_WATERATTACK','attack',184,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1002,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1090,'Mastering@NPC_WATERATTACK','attack',184,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',0,1011,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1011,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'yes','self','slavele',0,1011,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'yes','self','slavele',0,1011,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1011,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1091,'Dragon Fly@NPC_WINDATTACK','attack',187,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1013,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,27,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1013,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1092,'Vagabond Wolf@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1013,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1063,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'yes','self','slavele',3,1063,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1093,'Eclipse@NPC_SUMMONSLAVE','idle',196,8,10000,0,0,'no','self','onspawn',0,1063,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1094,'Ambernite@NPC_WATERATTACK','attack',184,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1095,'Andre@NPC_GROUNDATTACK','attack',185,2,1500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1031,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,1095,1105,1160,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1096,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1097,'Ant Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',NULL,1095,1105,1160,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKBREATH','attack',202,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKBREATH','attack',202,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1098,'Anubis@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_POISON','attack',176,3,1500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1099,'Argiope@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1100,'Argos@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1105,'Deniro@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1105,'Deniro@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1107,'Baby Desert Wolf@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1107,'Baby Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@WZ_WATERBALL','chase',86,4,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1101,'Baphomet Jr.@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,30,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1102,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1103,'Caramel@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1104,'Coco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1105,'Deniro@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1105,'Deniro@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1106,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1107,'Baby Desert Wolf@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1107,'Baby Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@NPC_WATERATTACK','attack',184,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1108,'Deviace@WZ_WATERBALL','chase',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','attack',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','chase',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_DECAGI','chase',30,48,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1109,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','attack',111,1,500,1500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@BS_ADRENALINE','chase',111,1,500,1500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1110,'Dokebi@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1111,'Drainliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_DECAGI','chase',30,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','attack',114,1,500,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','chase',114,1,500,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_BLEEDING','attack',660,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_DRAGONFEAR','attack',659,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1566,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1192,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','attack',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','chase',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1113,'Drops@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1113,'Drops@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@NPC_WATERATTACK','chase',184,5,2000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','attack',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1112,'Drake@WZ_WATERBALL','chase',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1113,'Drops@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1113,'Drops@NPC_FIREATTACK','attack',186,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1114,'Dustiness@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,20,4000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,20,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','attack',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','chase',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'no','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','attack',229,5,2000,0,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AM_DEMONSTRATION','chase',229,5,2000,0,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,10,4000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@MG_FIREBALL','chase',17,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_BLEEDING','attack',660,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'yes','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'yes','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1060,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@SM_MAGNUM','attack',7,20,3000,0,2000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@CR_AUTOGUARD','attack',249,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1115,'Eddga@SM_MAGNUM','attack',7,10,3000,0,2000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@CR_AUTOGUARD','attack',249,2,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@CR_AUTOGUARD','chase',249,2,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_UNDEADATTACK','chase',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1116,'Eggyra@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_CURSEATTACK','chase',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@NPC_UNDEADATTACK','chase',347,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1117,'Evil Druid@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1118,'Flora@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_COMBOATTACK','angry',171,1,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_COMBOATTACK','attack',171,1,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_FIREATTACK','angry',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1119,'Frilldora@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@MG_SOULSTRIKE','chase',13,9,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','attack',196,5,10000,2000,10000,'no','self','slavele',3,1599,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','idle',196,5,10000,2000,10000,'no','self','slavele',3,1599,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@MG_SOULSTRIKE','chase',13,9,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1186,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@HT_SANDMAN','idle',119,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,18,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1128,'Horn@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1128,'Horn@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1120,'Ghostring@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@HT_SANDMAN','idle',119,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,8,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1121,'Giearth@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,18,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1122,'Goblin@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1123,'Goblin@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1124,'Goblin@NPC_POISONATTACK','attack',188,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1125,'Goblin@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1126,'Goblin@NPC_WATERATTACK','attack',184,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1127,'Hode@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1128,'Horn@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1128,'Horn@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@MG_SIGHT','chase',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FROSTDIVER','chase',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',0,20,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','idle',197,1,100,0,60000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','attack',197,1,10000,0,60000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',0,22,0x83,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@MG_SIGHT','chase',10,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1129,'Horong@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1130,'Jakk@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_FROSTDIVER','chase',15,9,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','idle',197,1,100,0,60000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION','attack',197,1,10000,0,60000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',NULL,20,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',NULL,22,0x0083,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1131,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold 1@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@HT_FLASHER','idle',120,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3195,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1132,'Khalitzburg@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1133,'Kobold@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1134,'Kobold@NPC_POISONATTACK','attack',188,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1135,'Kobold@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@HT_FLASHER','idle',120,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1138,'Magnolia@NPC_UNDEADATTACK','attack',347,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1139,'Mantis@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_RUN','idle',354,7,10000,0,30000,'no','master','alchemist',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','any',173,1,10000,3000,0,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,500,2000,5000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SPEEDUP','any',332,1,10000,0,700,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1140,'Marduk@NPC_MAGICALATTACK','attack',192,2,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1141,'Marina@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_RANDOMMOVE','idle',331,1,10000,0,30000,'yes','target','alchemist',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,0,0,'yes','self','alchemist',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,500,2000,5000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SELFDESTRUCTION','idle',173,1,10000,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1142,'Marine Sphere@NPC_SPEEDUP','idle',332,1,10000,0,700,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1143,'Marionette@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1144,'Marse@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1145,'Martin@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1146,'Matyr@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','attack',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_HEAL','chase',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@CR_AUTOGUARD','attack',249,10,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@CR_AUTOGUARD','attack',249,10,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1477,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1477,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1194,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','chase',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3795,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1147,'Maya@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1148,'Medusa@NPC_PETRIFYATTACK','chase',180,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','chase',288,1,10000,1000,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1149,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','attack',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_HEAL','chase',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MC_MAMMONITE','attack',42,20,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_DISPELL','attack',289,5,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_DISPELL','chase',289,5,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@BS_HAMMERFALL','attack',110,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@BS_HAMMERFALL','chase',110,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MC_MAMMONITE','attack',42,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1471,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1471,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1180,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@BS_HAMMERFALL','chase',110,11,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@BS_HAMMERFALL','attack',110,11,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_DISPELL','attack',289,5,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_DISPELL','chase',289,5,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@SA_LANDPROTECTOR','chase',288,1,10000,1000,5000,'no','target','skillused',89,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1150,'Moonlight Flower@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1151,'Myst@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1152,'Orc Skeleton@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1153,'Orc Zombie@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AC_CHARGEARROW','attack',148,1,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1154,'Pasana@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1155,'Petite@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@AL_INCAGI','chase',29,5,2000,700,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1156,'Petite@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AC_CHARGEARROW','attack',148,1,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@MG_THUNDERSTORM','chase',21,9,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','attack',200,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@MG_THUNDERSTORM','chase',21,9,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','attack',200,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_ENERGYDRAIN','chase',200,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1458,1464,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1157,'Pharaoh@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1458,1464,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1158,'Phen@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','chase',666,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','attack',666,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_LICK','attack',206,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_PETRIFYATTACK','chase',180,5,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_LICK','attack',206,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_PETRIFYATTACK','chase',180,5,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1558,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1558,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_SUMMONSLAVE','idle',196,10,10000,0,0,'no','self','onspawn',0,1127,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1161,'Plankton@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','attack',666,5,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@NPC_WIDESTONE','chase',666,5,10000,500,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1159,'Phreeoni@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1160,'Piere@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1161,'Plankton@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_EMOTION','walk',197,1,200,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@NPC_GROUNDATTACK','angry',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1167,'Savage Babe@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1167,'Savage Babe@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_SUICIDE','attack',175,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,28,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1180,'Nine-Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1188,'Bon Gun@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1188,'Bon Gun@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1163,'Raydric@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_DARKNESSATTACK','attack',190,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_EMOTION','walk',197,1,200,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1164,'Requiem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@NPC_GROUNDATTACK','angry',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1165,'Sandman@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1166,'Savage@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1167,'Savage Babe@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1167,'Savage Babe@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1169,'Skeleton Worker@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_SUICIDE','attack',175,1,500,0,5000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1170,'Sohee@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1174,'Stainer@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1175,'Tarou@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1176,'Vitata@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1177,'Zenorc@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1178,'Zerom@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,28,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1179,'Whisper@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1180,'Nine Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1188,'Bongun@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1188,'Bongun@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@AC_DOUBLE','attack',46,5,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,5,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_INCAGI','chase',29,10,2000,700,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,5,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1189,'Orc Archer@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_INCAGI','chase',29,10,2000,700,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@CR_SHIELDCHARGE','attack',250,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','chase',653,5,10000,1500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','attack',653,5,10000,1500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_COLDBOLT','chase',14,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_FIREBOLT','chase',19,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@BS_HAMMERFALL','attack',110,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@BS_HAMMERFALL','chase',110,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@CR_SHIELDCHARGE','attack',250,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_COLDBOLT','chase',14,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@MG_FIREBOLT','chase',19,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','attack',653,5,10000,1500,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_EARTHQUAKE','chase',653,5,10000,1500,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1473,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1189,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@SM_PROVOKE','chase',6,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@PR_LEXDIVINA','chase',76,10,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1190,'Orc Lord@SM_PROVOKE','chase',6,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1191,'Mimic@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1192,'Wraith@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1193,'Alarm@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouse@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouse@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouse@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1196,'Skeleton Prisoner@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouze@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouze@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouze@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1194,'Arclouze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1195,'Rideword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1196,'Skeleton Prisoner@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1196,'Skeleton Prisoner@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1257,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1200,'Zherlthsh@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_SHIELDBRAKE','attack',346,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_POISONATTACK','attack',188,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1197,'Zombie Prisoner@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_BLEEDING','attack',660,3,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,1,300,1000,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKBREATH','chase',202,2,500,800,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKCROSS','attack',338,3,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1198,'Dark Priest@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1199,'Punk@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,30,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1200,'Zealotus@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1257,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1201,'Rybio@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1202,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@NPC_HELMBRAKE','attack',345,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1204,'Tyrfing@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1203,'Mysteltainn@NPC_SHIELDBRAKE','attack',346,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@NPC_HELMBRAKE','attack',345,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1204,'Ogretooth@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@BS_MAXIMIZE','attack',114,5,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@BS_MAXIMIZE','chase',114,5,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@NPC_ARMORBRAKE','attack',344,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@NPC_ARMORBRAKE','attack',344,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1205,'Executioner@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_WATERATTACK','attack',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@SM_BASH','attack',5,7,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1206,'Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@AM_POTIONPITCHER','idle',231,4,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,20,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1207,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_BLEEDING','attack',660,1,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@CR_SHIELDCHARGE','attack',250,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1208,'Wanderer@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISON','attack',176,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1209,'Cramp@NPC_POISONATTACK','attack',188,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1211,'Brilight@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@CR_SHIELDCHARGE','attack',250,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1213,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@HT_SKIDTRAP','idle',115,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1057,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1215,'Stem Worm@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1215,'Stem Worm@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@AC_CHARGEARROW','chase',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@NPC_SUMMONSLAVE','idle',196,2,10000,2000,600000,'no','self','slavele',0,1132,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1219,'Knight of Abyss@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@AM_POTIONPITCHER','idle',231,1,500,1500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@HT_SKIDTRAP','idle',115,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'yes','self','slavele',0,1057,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'yes','self','slavele',0,1057,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1214,'Choco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1215,'Stem Worm@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1215,'Stem Worm@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1216,'Penomena@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@AC_CHARGEARROW','chase',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@KN_BRANDISHSPEAR','attack',57,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1219,'Abysmal Knight@NPC_SUMMONSLAVE','idle',196,2,10000,2000,600000,'no','self','slavele',0,1132,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1242,'Marin@NPC_WATERATTACK','attack',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@NPC_WATERATTACK','angry',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1243,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1244,'Christmas Jakk@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,18,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3695,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1245,'Christmas Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','attack',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','idle',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','chase',26,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','attack',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','chase',354,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@NPC_HOLYATTACK','attack',189,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1246,'Christmas Cookie@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_TELEPORT','idle',26,1,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','attack',354,1,10000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_RUN','chase',354,1,10000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1247,'Antonio@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,24,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1248,'Cruiser@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,27,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1249,'Myst Case@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','attack',28,9,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_HEAL','chase',28,9,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_EMOTION','attack',197,1,2000,0,5000,'yes','self','always',0,17,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','attack',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','chase',229,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1743,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','attack',229,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,17,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@AM_DEMONSTRATION','chase',229,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,17,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_EMOTION','attack',197,1,2000,0,5000,'yes','self','always',NULL,17,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000,'yes','self','slavele',0,1743,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'yes','self','slavele',0,1743,NULL,NULL,NULL,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@PR_STRECOVERY','attack',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@PR_STRECOVERY','chase',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1250,'Chepet@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','chase',664,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','attack',664,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','chase',187,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','attack',187,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@CR_SHIELDCHARGE','attack',250,5,2000,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_HALLUCINATION','chase',207,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1515,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_DECAGI','chase',30,48,2000,0,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@WZ_STORMGUST','chase',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1252,'Garm@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@CR_SHIELDCHARGE','attack',250,5,2000,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_HALLUCINATION','chase',207,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1607,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','attack',664,5,10000,1000,10000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WIDEFREEZE','chase',664,5,10000,1000,10000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','attack',187,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@NPC_WINDATTACK','chase',187,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1251,'Stormy Knight@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@AL_DECAGI','chase',30,10,2000,0,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1606,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1252,'Hatii@WZ_STORMGUST','chase',89,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1255,'Neraid@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1257,'Injustice@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1257,'Injustice@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,16,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@CR_REFLECTSHIELD','attack',252,2,500,0,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@MG_FIREBALL','chase',17,20,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragon@SM_MAGNUM','attack',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','attack',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','chase',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_UNDEADATTACK','attack',347,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','attack',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1266,'Aster@NPC_RUN','chase',354,1,10000,0,3000,'no','self','always',0,NULL,0x81,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1253,'Gargoyle@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1254,'Raggler@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1255,'Nereid@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1255,'Nereid@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1255,'Nereid@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,0,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1255,'Nereid@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1256,'Pest@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1257,'Injustice@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1257,'Injustice@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@AC_DOUBLE','attack',46,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,16,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISON','attack',176,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1258,'Goblin Archer@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_CRITICALSLASH','attack',170,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1259,'Gryphon@NPC_WINDATTACK','attack',187,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@CR_REFLECTSHIELD','attack',252,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','attack',177,3,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLINDATTACK','chase',177,3,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1260,'Dark Frame@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1261,'Wild Rose@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragonoid@MG_FIREBALL','chase',17,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragonoid@NPC_BLEEDING','attack',660,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragonoid@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1262,'Mutant Dragonoid@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','attack',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@MG_LIGHTNINGBOLT','chase',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@NPC_UNDEADATTACK','attack',347,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1263,'Wind Ghost@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1264,'Merman@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1265,'Cookie@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1267,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_CHANGEFIRE','attack',164,1,10000,2000,600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','attack',83,5,2000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','chase',83,5,2000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_WEAPONBRAKER','attack',343,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@KN_BRANDISHSPEAR','attack',57,7,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_CHANGEFIRE','attack',164,1,10000,2000,600000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@NPC_WEAPONBRAKER','attack',343,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','attack',83,7,2000,1500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1268,'Bloody Knight@WZ_METEOR','chase',83,7,2000,1500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_CURSEATTACK','attack',181,4,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_GROUNDATTACK','attack',185,4,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1269,'Clock@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1270,'Tower Keeper@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_WATERATTACK','attack',184,4,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_CRITICALSLASH','attack',170,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1271,'Alligator@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0091,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@MG_FIREWALL','chase',18,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELMBRAKE','attack',345,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','attack',196,3,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','idle',196,3,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','attack',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@MG_FIREWALL','chase',18,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_CRITICALWOUND','attack',673,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_DARKBLESSING','attack',203,1,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_HELMBRAKE','attack',345,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','attack',196,3,10000,700,10000,'yes','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@NPC_SUMMONSLAVE','idle',196,3,10000,700,10000,'yes','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','attack',83,10,5000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,10,5000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1272,'Dark Lord@WZ_METEOR','chase',83,10,5000,500,2000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1273,'Orc Lady@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1274,'Megalith@NPC_STUNATTACK','attack',179,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@CR_SHIELDCHARGE','attack',250,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@CR_SHIELDCHARGE','attack',250,3,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1275,'Alice@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,1744,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@AC_DOUBLE','attack',46,5,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_BLINDATTACK','idle',177,3,10000,1500,5000,'no','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_BLINDATTACK','idle',177,3,10000,1500,5000,'no','randomtarget','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@WZ_EARTHSPIKE','idle',90,3,5000,1500,5000,'no','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@WZ_EARTHSPIKE','idle',90,3,5000,1500,5000,'no','randomtarget','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactite Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1279,'Tri-Joint@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,27,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1280,'Steam Goblin@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_SAFETYWALL','attack',12,5,2000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1276,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_BLINDATTACK','idle',177,3,10000,1500,5000,'no','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_BLINDATTACK','idle',177,3,10000,1500,5000,'no','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@WZ_EARTHSPIKE','idle',90,3,5000,1500,5000,'no','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1277,'Greatest General@WZ_EARTHSPIKE','idle',90,3,5000,1500,5000,'no','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1278,'Stalactic Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1279,'Tri Joint@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1280,'Goblin Steamrider@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,27,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1280,'Goblin Steamrider@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1280,'Goblin Steamrider@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1280,'Goblin Steamrider@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@MG_SAFETYWALL','attack',12,5,2000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1281,'Sage Worm@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@AC_DOUBLE','attack',46,3,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1282,'Kobold Archer@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SUMMONSLAVE','idle',196,4,10000,2000,60000,'no','self','slavele',0,1253,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SHIELDBRAKE','attack',346,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1285,'Guardian Archer@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1285,'Guardian Archer@AC_DOUBLE','attack',46,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1287,'Guardian Soldier@NPC_STUNATTACK','attack',179,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1287,'Guardian Soldier@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_FIREATTACK','attack',186,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SHIELDBRAKE','attack',346,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@NPC_SUMMONSLAVE','idle',196,4,10000,2000,60000,'yes','self','slavele',0,1253,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1283,'Chimera@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1285,'Archer Guardian@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1285,'Archer Guardian@AC_DOUBLE','attack',46,1,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1287,'Soldier Guardian@NPC_STUNATTACK','attack',179,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1287,'Soldier Guardian@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0xA1,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x37B5,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@KN_BRANDISHSPEAR','attack',57,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3695,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1194,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1289,'Maya Purple@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1028,1016,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1290,'Skeleton General@NPC_UNDEADATTACK','attack',347,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1291,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,18,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','attack',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','attack',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','attack',341,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,18,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','attack',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1109,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1292,'Mini Demon@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1018,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_CURSEATTACK','attack',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'yes','self','slavele',0,1018,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1293,'Creamy Fear@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3795,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1294,'Killer Mantis@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1139,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@MG_LIGHTNINGBOLT','attack',20,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0xA1,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x37B5,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@MG_LIGHTNINGBOLT','attack',20,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1320,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1295,'Owl Baron@SA_DISPELL','attack',289,5,0,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1296,'Kobold Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1133,1134,1135,1282,NULL,27,NULL);
REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_DARKBREATH','attack',202,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_UNDEADATTACK','attack',347,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1297,'Ancient Mummy@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1036,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_UNDEADATTACK','angry',347,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1298,'Zombie Master@NPC_UNDEADATTACK','attack',347,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@CR_SHIELDCHARGE','attack',250,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1299,'Goblin Leader@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',2,1122,1123,1124,1125,1126,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1300,'Caterpillar@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_DARKNESSATTACK','attack',190,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1301,'Am Mut@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1110,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@WZ_METEOR','attack',83,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@WZ_METEOR','chase',83,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@WZ_METEOR','attack',83,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1302,'Dark Illusion@WZ_METEOR','chase',83,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1303,'Giant Hornet@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3795,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1304,'Giant Spider@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1100,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@AS_VENOMDUST','attack',140,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1099,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1305,'Ancient Worm@NPC_CRITICALSLASH','attack',170,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@NPC_SUMMONSLAVE','idle',196,3,10000,2000,60000,'no','self','slavele',0,1243,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1307,'Cat\'o\'Nine Tails@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1180,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1306,'Leib Olmai@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1307,'Cat o\' Nine Tails@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1307,'Cat o\' Nine Tails@MC_MAMMONITE','attack',42,9,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1307,'Cat o\' Nine Tails@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1307,'Cat o\' Nine Tails@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1307,'Cat o\' Nine Tails@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1180,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@AC_DOUBLE','attack',46,5,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1308,'Panzer Goblin@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@MG_SIGHT','chase',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_BLINDATTACK','chase',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@WZ_SIGHTRASHER','attack',81,7,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@MG_SIGHT','chase',10,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_BLINDATTACK','chase',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_FIREATTACK','attack',186,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1129,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@RG_STRIPWEAPON','attack',215,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@RG_STRIPWEAPON','attack',215,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1309,'Gajomart@WZ_SIGHTRASHER','attack',81,7,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1149,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1310,'Majoruros@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_STUNATTACK','attack',179,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_STUNATTACK','attack',179,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@NPC_SUMMONSLAVE','idle',196,4,10000,2000,60000,'no','self','slavele',0,1166,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@RG_STRIPSHIELD','attack',216,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@RG_STRIPSHIELD','attack',216,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1311,'Gullinbursti@SM_ENDURE','chase',8,3,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','attack',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','chase',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_STUNATTACK','attack',179,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','attack',114,5,500,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@BS_MAXIMIZE','chase',114,5,500,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_BLEEDING','attack',660,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_STUNATTACK','attack',179,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@TF_SPRINKLESAND','attack',149,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1314,'Perimeter@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1312,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1313,'Mobster@TF_SPRINKLESAND','attack',149,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@NPC_STUNATTACK','attack',179,3,2000,0,0,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1314,'Permeter@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','attack',197,1,2000,0,600000,'yes','self','myhpltmaxrate',0,23,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@TF_BACKSLIDING','attack',150,1,10000,500,600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_SUMMONSLAVE','chase',196,3,10000,0,600000,'yes','self','myhpltmaxrate',0,1364,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','attack',197,1,2000,0,600000,'yes','self','myhpltmaxrate',20,23,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_COMBOATTACK','attack',171,1,1500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,24,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@TF_BACKSLIDING','attack',150,1,10000,500,600000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1315,'Assaulter@NPC_SUMMONSLAVE','chase',196,3,10000,0,600000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_WATERATTACK','attack',184,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@WZ_FIREPILLAR','idle',80,3,500,0,5000,'no','around2','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3695,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1316,'Solider@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1317,'Seal@NPC_WATERATTACK','attack',184,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1318,'Heater@WZ_FIREPILLAR','idle',80,3,500,0,5000,'no','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1319,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@MG_LIGHTNINGBOLT','attack',20,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@MG_LIGHTNINGBOLT','chase',20,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0xA1,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x37B5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x83,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@SM_BASH','attack',5,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@MG_LIGHTNINGBOLT','attack',20,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@MG_LIGHTNINGBOLT','chase',20,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@PR_LEXDIVINA','attack',76,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1320,'Owl Duke@PR_LEXDIVINA','chase',76,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1321,'Dragon Tail@NPC_WINDATTACK','attack',187,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0083,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@SM_BASH','attack',5,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1322,'Spring Rabbit@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@NPC_WATERATTACK','attack',184,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1323,'Sea Otter@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1365,'Apocalypse@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@NPC_SUMMONSLAVE','idle',196,2,10000,2000,60000,'no','self','slavele',0,1367,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@WZ_FIREPILLAR','idle',80,3,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1366,'Lava Golem@WZ_FIREPILLAR','idle',80,3,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@WZ_SIGHTRASHER','attack',81,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x1089,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_DARKSTRIKE','chase',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','angry',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_CURSEATTACK','follow',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1371,'Fake Angel@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x1089,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1367,'Blazer@WZ_SIGHTRASHER','attack',81,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1368,'Geographer@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1369,'Grand Peco@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1370,'Succubus@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_CURSEATTACK','angry',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_CURSEATTACK','attack',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_CURSEATTACK','follow',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_CURSEATTACK','chase',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_DARKSTRIKE','chase',340,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1371,'False Angel@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x1089,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@AL_DECAGI','chase',30,48,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_STUNATTACK','attack',179,5,2000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','attack',19,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','chase',20,7,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','attack',16,10,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_RUN','attack',354,1,2000,500,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','idle',19,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','idle',15,9,10000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','idle',20,7,10000,1500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','idle',16,10,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','chase',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','chase',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','angry',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','follow',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','angry',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','follow',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_DARKSTRIKE','angry',340,7,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_MENTALBREAKER','angry',159,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','idle',135,1,100,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_GROUNDATTACK','angry',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1372,'Goat@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@AL_DECAGI','chase',30,10,2000,0,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_STUNATTACK','attack',179,5,2000,0,0,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1373,'Lord of the Dead@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1374,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_BLEEDING','attack',660,1,500,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1375,'The Paper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','angry',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','follow',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1376,'Harpy@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','attack',19,7,10000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FIREBOLT','idle',19,7,10000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','idle',15,9,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','idle',20,7,10000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_LIGHTNINGBOLT','chase',20,7,10000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','attack',16,10,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@MG_STONECURSE','idle',16,10,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1377,'Elder@SA_DISPELL','attack',289,1,0,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','angry',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','follow',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_BLINDATTACK','chase',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','angry',180,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','follow',180,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1378,'Demon Pungus@NPC_PETRIFYATTACK','chase',180,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_DARKSTRIKE','angry',340,7,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_DARKSTRIKE','attack',340,7,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_MENTALBREAKER','angry',159,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1379,'Nightmare Terror@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','idle',135,1,100,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_COMBOATTACK','angry',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_GROUNDATTACK','angry',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1380,'Driller@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@SM_ENDURE','follow',8,3,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1381,'Grizzly@SM_ENDURE','follow',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','attack',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','chase',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','follow',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','angry',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','follow',83,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@AM_DEMONSTRATION','attack',229,1,100,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@AM_DEMONSTRATION','angry',229,1,100,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@SM_MAGNUM','angry',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_PIERCINGATT','attack',158,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@MG_FIREWALL','attack',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_FIREATTACK','chase',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','idle',135,1,100,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','angry',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','attack',52,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','angry',52,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','angry',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','follow',264,1,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','angry',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','angry',83,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','attack',83,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','follow',83,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1382,'Diabolic@WZ_METEOR','chase',83,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@AM_DEMONSTRATION','angry',229,2,100,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@AM_DEMONSTRATION','attack',229,2,100,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@NPC_FIREATTACK','angry',186,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@SM_MAGNUM','angry',7,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1383,'Explosion@SM_MAGNUM','attack',7,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1384,'Deleter@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@MG_FIREWALL','attack',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@NPC_FIREATTACK','chase',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1385,'Deleter@SM_MAGNUM','attack',7,9,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','angry',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','follow',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','idle',135,1,100,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','angry',205,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','follow',205,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','angry',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1386,'Sleeper@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','angry',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','follow',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@CR_GRANDCROSS','attack',254,1,2000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,11,10000,0,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,1000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,11,10000,0,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','attack',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','chase',70,10,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','angry',52,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1387,'Gig@TF_POISON','attack',52,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,10,10000,0,1000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,10,10000,0,1000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','attack',28,10,10000,0,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_HEAL','chase',28,10,10000,0,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_BARRIER','attack',204,1,500,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','attack',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','chase',189,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','attack',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_SUMMONSLAVE','idle',196,7,10000,700,60000,'no','self','slavele',3,1443,1246,1742,1743,1744,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@RG_INTIMIDATE','attack',219,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_DECAGI','chase',30,48,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@CR_GRANDCROSS','attack',254,1,2000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_BARRIER','attack',204,1,500,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','attack',189,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@NPC_HOLYATTACK','chase',189,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','attack',70,10,10000,500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@PR_SANCTUARY','chase',70,10,10000,500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1388,'Arc Angeling@RG_INTIMIDATE','attack',219,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_DECAGI','chase',30,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@MO_BODYRELOCATION','chase',264,1,2000,200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','attack',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','idle',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@AM_POTIONPITCHER','idle',231,4,500,500,5000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,0x108B,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1393,'G Mummy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1393,'G Mummy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','chase',90,5,10000,0,0,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_EARTHSPIKE','attack',90,5,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1395,'Wind Crystal@NPC_HELMBRAKE','attack',345,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@MG_LIGHTNINGBOLT','chase',20,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','chase',84,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_JUPITEL','attack',84,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','chase',85,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@WZ_VERMILION','attack',85,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1396,'Earth Crystal@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBOLT','chase',19,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','chase',17,20,10000,0,0,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@MG_FIREBALL','attack',17,10,4000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','chase',83,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@WZ_SIGHTRASHER','attack',81,10,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1397,'Fire Crystal@NPC_WEAPONBRAKER','attack',343,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@MG_COLDBOLT','chase',14,5,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_WATERBALL','attack',86,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','chase',89,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@SM_ENDURE','chase',8,7,10000,0,20000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_INCAGI','chase',29,1,5000,3000,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@KN_TWOHANDQUICKEN','attack',60,10,5000,3000,300000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_DECAGI','chase',30,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','chase',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_CHANGEDARKNESS','attack',168,1,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@AL_TELEPORT','walk',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1398,'Water Crystal@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','idle',26,1,2000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_BARRIER','attack',204,1,2000,3000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_GUIDEDATTACK','attack',172,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_SUMMONSLAVE','attack',196,10,10000,2000,20000,'no','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@NPC_SUMMONSLAVE','idle',196,10,10000,2000,20000,'no','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','chase',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_METEOR','attack',83,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','chase',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_STORMGUST','attack',89,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','chase',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1399,'Event Baphomet@WZ_VERMILION','attack',85,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@WZ_WATERBALL','chase',86,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,28,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@MO_BODYRELOCATION','chase',264,1,2000,200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_CRITICALWOUND','attack',673,2,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','attack',196,16,10000,700,5000,'yes','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1389,'Dracula@NPC_SUMMONSLAVE','idle',196,16,10000,700,5000,'yes','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1390,'Violy@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@AM_POTIONPITCHER','idle',231,4,500,500,5000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,0x108B,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1391,'Galapago@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1392,'Rotar Zairo@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1393,'Mummy@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1393,'Mummy@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@AL_TELEPORT','idle',26,1,2000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@NPC_BARRIER','attack',204,1,2000,3000,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,2000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@NPC_SUMMONSLAVE','attack',196,10,10000,2000,20000,'yes','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@NPC_SUMMONSLAVE','idle',196,10,10000,2000,20000,'yes','self','slavele',3,1026,1170,1029,1044,1749,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_METEOR','attack',83,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_METEOR','chase',83,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_STORMGUST','attack',89,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_STORMGUST','chase',89,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_VERMILION','attack',85,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1399,'Baphomet@WZ_VERMILION','chase',85,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',NULL,28,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,31,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,31,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1400,'Karakasa@WZ_WATERBALL','chase',86,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AS_CLOAKING','idle',135,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@NPC_REBIRTH','dead',208,2,5000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@TF_BACKSLIDING','attack',150,1,10000,500,3600000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1402,'Poison Toad@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1403,'Antique Firelock@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Ningyo@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','chase',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','attack',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','chase',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','follow',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','angry',184,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_DARKSTRIKE','chase',340,5,2000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1409,'Rice Cake Boy@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','idle',231,3,10000,500,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_GUIDEDATTACK','chase',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1410,'Live Peach Tree@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','attack',20,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','chase',20,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Cloud Hermit@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1413,'Wild Ginseng@NPC_BARRIER','attack',204,1,2000,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1413,'Wild Ginseng@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1416,'Wicked Nymph@SA_DISPELL','attack',289,5,0,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@AS_CLOAKING','idle',135,1,500,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@NPC_REBIRTH','dead',208,2,5000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1401,'Shinobi@TF_BACKSLIDING','attack',150,1,10000,500,3600000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1402,'Poisonous Toad@NPC_COMBOATTACK','attack',171,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1402,'Poisonous Toad@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1402,'Poisonous Toad@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1402,'Poisonous Toad@NPC_POISONATTACK','attack',188,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1403,'Firelock Soldier@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1403,'Firelock Soldier@AC_DOUBLE','attack',46,4,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1403,'Firelock Soldier@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1404,'Miyabi Doll@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','follow',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@NPC_STUNATTACK','chase',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','attack',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@SM_PROVOKE','chase',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','angry',90,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1405,'Tengu@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','angry',184,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@NPC_WATERATTACK','attack',184,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,16,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1406,'Kapha@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,16,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_DARKSTRIKE','chase',340,5,2000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1408,'Bloody Butterfly@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1409,'Dumpling Child@NPC_WINDATTACK','attack',187,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Enchanted Peach Tree@AM_POTIONPITCHER','idle',231,3,10000,500,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Enchanted Peach Tree@AM_POTIONPITCHER','attack',231,2,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Enchanted Peach Tree@AM_POTIONPITCHER','chase',231,2,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Enchanted Peach Tree@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1410,'Enchanted Peach Tree@NPC_GUIDEDATTACK','chase',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@AL_TELEPORT','attack',26,1,500,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','attack',20,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@MG_LIGHTNINGBOLT','chase',20,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1412,'Taoist Hermit@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1413,'Hermit Plant@NPC_BARRIER','attack',204,1,2000,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1413,'Hermit Plant@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1415,'Baby Leopard@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','attack',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','idle',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@AL_HEAL','chase',28,3,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@NPC_STOP','attack',342,1,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1416,'Evil Nymph@SA_DISPELL','attack',289,5,0,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1417,'Zipper Bear@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','attack',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_STOP','attack',342,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@SM_MAGNUM','attack',7,20,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1419,'Farmiliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1420,'Skeleton Archer@AC_DOUBLE','angry',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1420,'Skeleton Archer@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1420,'Skeleton Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1420,'Skeleton Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1423,'Ghoul@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1423,'Ghoul@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@KN_PIERCE','angry',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@NPC_POISONATTACK','angry',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1424,'Sidewinder@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@NPC_WATERATTACK','angry',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','follow',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','angry',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_WATERATTACK','angry',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_MENTALBREAKER','angry',159,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_TELEKINESISATTACK','angry',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_MENTALBREAKER','attack',159,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@AS_VENOMDUST','angry',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISONATTACK','angry',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISON','angry',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKBREATH','angry',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKNESSATTACK','angry',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','follow',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','follow',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','angry',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','angry',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','follow',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','follow',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','angry',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','angry',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FIREBALL','follow',17,5,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FROSTDIVER','follow',15,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_SOULSTRIKE','follow',13,9,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ENERGYDRAIN','follow',200,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_WINDATTACK','follow',187,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_DARKTHUNDER','follow',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_QUAGMIRE','follow',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FROSTDIVER','chase',15,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@AS_GRIMTOOTH','follow',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','attack',15,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POISON','attack',176,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POISONATTACK','attack',188,7,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_STOP','attack',342,1,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1418,'Evil Snake Lord@SM_MAGNUM','attack',7,10,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1419,'Familiar@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1419,'Familiar@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1419,'Familiar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1419,'Familiar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1420,'Archer Skeleton@AC_DOUBLE','angry',46,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1420,'Archer Skeleton@AC_DOUBLE','attack',46,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1420,'Archer Skeleton@NPC_FIREATTACK','angry',186,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1420,'Archer Skeleton@NPC_FIREATTACK','attack',186,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1421,'Isis@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1422,'Hunter Fly@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1423,'Ghoul@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1423,'Ghoul@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@KN_PIERCE','angry',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@NPC_POISONATTACK','angry',188,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1424,'Side Winder@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@NPC_WATERATTACK','angry',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','angry',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','follow',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1425,'Obeaune@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_WATERATTACK','angry',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1426,'Marc@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_MENTALBREAKER','angry',159,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_MENTALBREAKER','attack',159,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_TELEKINESISATTACK','angry',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1427,'Nightmare@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1428,'Poison Spore@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@AS_VENOMDUST','angry',140,1,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@AS_VENOMDUST','attack',140,1,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISON','angry',176,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISON','attack',176,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISONATTACK','angry',188,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1429,'Argiope@NPC_POISONATTACK','attack',188,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISON','angry',176,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISON','attack',176,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1430,'Argos@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKBREATH','angry',202,1,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKBREATH','attack',202,1,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKNESSATTACK','angry',190,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','angry',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','follow',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1431,'Baphomet Jr.@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@TF_SPRINKLESAND','angry',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1432,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','follow',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','angry',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','follow',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1433,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1434,'Drainliar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','angry',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','attack',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','follow',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','follow',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','angry',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','follow',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','angry',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1435,'Evil Druid@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1436,'Jakk@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FIREBALL','follow',17,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FIREBALL','chase',17,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FROSTDIVER','follow',15,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_FROSTDIVER','chase',15,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_SOULSTRIKE','follow',13,9,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@MG_SOULSTRIKE','chase',13,9,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ATTRICHANGE','idle',161,1,500,2000,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_DARKTHUNDER','follow',341,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_DARKTHUNDER','chase',341,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ENERGYDRAIN','follow',200,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_ENERGYDRAIN','chase',200,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_WINDATTACK','follow',187,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@NPC_WINDATTACK','chase',187,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_QUAGMIRE','follow',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1437,'Joker@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@AS_GRIMTOOTH','follow',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1438,'Khalitzburg@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1439,'High Orc@NPC_SMOKING','idle',195,1,500,0,36000000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1440,'Stem Worm@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_POISONATTACK','angry',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1441,'Penomena@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@NPC_EMOTION','follow',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@SM_ENDURE','follow',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1442,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','follow',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','angry',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_GUIDEDATTACK','angry',172,5,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','follow',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1443,'Cruiser@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','angry',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','follow',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','angry',18,10,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','attack',18,10,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','follow',18,10,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','chase',18,10,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_GUIDEDATTACK','angry',172,5,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_GUIDEDATTACK','attack',172,5,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','angry',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','chase',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@MG_FIREWALL','attack',18,10,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@NPC_GUIDEDATTACK','attack',172,5,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','chase',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','attack',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@KN_PIERCE','angry',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','follow',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','angry',180,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','follow',180,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','chase',177,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','attack',180,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','chase',180,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@MG_FIREBALL','follow',17,20,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@SM_MAGNUM','angry',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@MG_FIREBALL','chase',17,20,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragon@SM_MAGNUM','attack',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','follow',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','angry',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_MAGICALATTACK','angry',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','follow',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','angry',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','chase',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','attack',20,5,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@KN_PIERCE','angry',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_RANGEATTACK','follow',160,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_WATERATTACK','angry',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@AL_INCAGI','follow',29,1,500,700,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@AC_CHARGEARROW','angry',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1454,'Tri Joint@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1454,'Tri Joint@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@AC_DOUBLE','angry',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','follow',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1444,'Chepet@PR_STRECOVERY','chase',72,1,2000,700,5000,'yes','friend','friendstatuson','anybad',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_COMBOATTACK','angry',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1445,'Raggler@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1446,'Injustice@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@KN_PIERCE','angry',56,10,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1447,'Gryphon@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','angry',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','attack',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','follow',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLINDATTACK','chase',177,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','angry',180,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','attack',180,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','follow',180,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1448,'Dark Frame@NPC_PETRIFYATTACK','chase',180,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@MG_FIREBALL','follow',17,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@MG_FIREBALL','chase',17,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@NPC_FIREATTACK','angry',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@SM_MAGNUM','angry',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1449,'Mutant Dragonoid@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@HT_SHOCKWAVE','idle',118,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','angry',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','attack',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','follow',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@MG_LIGHTNINGBOLT','chase',20,5,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_MAGICALATTACK','angry',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','angry',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','follow',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1450,'Wind Ghost@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@KN_PIERCE','angry',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@KN_PIERCE','attack',56,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_RANGEATTACK','follow',160,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_WATERATTACK','angry',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1451,'Merman@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@AL_INCAGI','follow',29,1,500,700,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@AL_INCAGI','chase',29,1,500,700,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1452,'Orc Lady@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@AC_CHARGEARROW','angry',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1453,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1454,'Tri Joint@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1454,'Tri Joint@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@AC_DOUBLE','angry',46,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@NPC_FIREATTACK','angry',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1455,'Kobold Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','angry',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','follow',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','angry',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREWALL','follow',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_BLINDATTACK','follow',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_MAGICALATTACK','angry',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@MG_FIREWALL','follow',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@NPC_TELEKINESISATTACK','angry',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@AS_SONICBLOW','angry',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@BS_HAMMERFALL','angry',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@WZ_HEAVENDRIVE','angry',91,3,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1462,'Orc Skeleton@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1462,'Orc Skeleton@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1463,'Orc Zombie@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1463,'Orc Zombie@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_TELEKINESISATTACK','follow',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_TELEKINESISATTACK','follow',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@SM_MAGNUM','angry',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@SM_MAGNUM','attack',7,20,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1468,'Requim@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1468,'Requim@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1468,'Requim@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1468,'Requim@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','angry',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','angry',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@KN_SPEARSTAB','angry',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1472,'Bon Gun@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','angry',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','follow',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1456,'Chimera@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1457,'Mantis@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','angry',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','attack',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','follow',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREBOLT','chase',19,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREWALL','follow',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_BLINDATTACK','follow',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_FIREATTACK','angry',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_MAGICALATTACK','angry',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1458,'Marduk@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@HT_FREEZINGTRAP','idle',121,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@MG_FIREWALL','follow',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@NPC_TELEKINESISATTACK','angry',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1459,'Marionette@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@AS_SONICBLOW','angry',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1460,'Matyr@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@BS_HAMMERFALL','angry',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@WZ_HEAVENDRIVE','angry',91,3,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1461,'Minorous@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1462,'Orc Skeleton@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1462,'Orc Skeleton@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1463,'Orc Zombie@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1463,'Orc Zombie@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@SM_BASH','angry',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1464,'Pasana@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_TELEKINESISATTACK','follow',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1465,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_TELEKINESISATTACK','follow',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_WINDATTACK','angry',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1466,'Petite@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@SM_MAGNUM','angry',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1467,'Raydric@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1468,'Requiem@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1468,'Requiem@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1468,'Requiem@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1468,'Requiem@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1469,'Skeleton Worker@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','angry',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1470,'Zerom@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','angry',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_ATTRICHANGE','attack',161,1,500,2000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','angry',183,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1471,'Nine Tail@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1472,'Bongun@KN_SPEARSTAB','angry',58,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1472,'Bongun@KN_SPEARSTAB','attack',58,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1472,'Bongun@NPC_STUNATTACK','angry',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1472,'Bongun@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@AC_SHOWER','angry',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1474,'Mimic@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1474,'Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_DARKBREATH','angry',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_DARKBREATH','attack',202,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1477,'Arclouse@NPC_GROUNDATTACK','angry',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1477,'Arclouse@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_PIERCINGATT','angry',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1480,'Zombie Prisoner@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1480,'Zombie Prisoner@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_PETRIFYATTACK','angry',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@NPC_GUIDEDATTACK','angry',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@NPC_LICK','angry',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@SM_PROVOKE','follow',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1482,'Zherlthsh@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@NPC_POISON','angry',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@SM_PROVOKE','follow',6,5,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@SM_PROVOKE','chase',6,5,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_POISON','angry',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_WINDATTACK','angry',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@NPC_PIERCINGATT','angry',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1486,'Tirfing@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_AUTOCOUNTER','angry',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_SPEARBOOMERANG','follow',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','follow',184,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@SM_BASH','angry',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','chase',184,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','follow',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','angry',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@HT_ANKLESNARE','idle',117,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@NPC_GROUNDATTACK','angry',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1473,'Orc Archer@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1474,'Mimic@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1474,'Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','angry',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','follow',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_ENERGYDRAIN','angry',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1475,'Wraith@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_DARKBREATH','angry',202,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_DARKBREATH','attack',202,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1476,'Alarm@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1477,'Arclouze@NPC_GROUNDATTACK','angry',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1477,'Arclouze@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLINDATTACK','angry',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_PIERCINGATT','angry',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1478,'Rideword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1479,'Skeleton Prisoner@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1480,'Zombie Prisoner@NPC_POISON','angry',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1480,'Zombie Prisoner@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_PETRIFYATTACK','angry',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_WINDATTACK','angry',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1481,'Punk@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@NPC_GUIDEDATTACK','angry',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@NPC_LICK','angry',206,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@SM_PROVOKE','follow',6,10,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1482,'Zealotus@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@NPC_POISON','angry',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@SM_PROVOKE','follow',6,5,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1483,'Rybio@SM_PROVOKE','chase',6,5,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_POISON','angry',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_STUNATTACK','angry',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_WINDATTACK','angry',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1484,'Phendark@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_GUIDEDATTACK','angry',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1485,'Mysteltainn@NPC_GUIDEDATTACK','attack',172,1,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@AS_SONICBLOW','angry',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@NPC_DARKNESSATTACK','angry',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@NPC_PIERCINGATT','angry',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1486,'Ogretooth@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','angry',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','follow',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_AUTOCOUNTER','angry',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_SPEARBOOMERANG','follow',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1487,'Executioner@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','follow',184,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@NPC_WATERATTACK','chase',184,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@SM_BASH','angry',5,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1488,'Anolian@SM_BASH','attack',5,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@AL_HEAL','idle',28,5,10000,0,5000,'yes','self','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@KN_AUTOCOUNTER','angry',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@NPC_WINDATTACK','angry',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1490,'Wander Man@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','follow',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','angry',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@MC_MAMMONITE','angry',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','chase',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','attack',111,1,500,1500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','idle',26,1,5000,1000,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','idle',379,10,10000,500,5000,'no','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','chase',379,10,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@ASC_BREAKER','attack',379,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_HELMBRAKE','chase',345,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@RG_INTIMIDATE','attack',219,10,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1492,'Incantation Samurai@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','angry',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','angry',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','angry',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','angry',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','follow',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1489,'Sting@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@KN_AUTOCOUNTER','angry',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@NPC_SPLASHATTACK','angry',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@NPC_WINDATTACK','angry',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1490,'Wanderer@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','angry',111,1,500,1500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','attack',111,1,500,1500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','follow',111,1,500,1500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@BS_ADRENALINE','chase',111,1,500,1500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@MC_MAMMONITE','angry',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@NPC_DARKNESSATTACK','angry',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1491,'Dokebi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@AL_TELEPORT','idle',26,1,5000,1000,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@ASC_BREAKER','attack',379,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@ASC_BREAKER','chase',379,10,5000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@ASC_BREAKER','idle',379,10,10000,500,5000,'no','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_HELMBRAKE','chase',345,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_POISON','attack',176,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_POISONATTACK','attack',188,7,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1560,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1492,'Samurai Specter@RG_INTIMIDATE','attack',219,10,2000,0,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1493,'Dryad@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1494,'Beetle King@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1495,'Stone Shooter@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@KN_TWOHANDQUICKEN','attack',60,9,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_RUN','attack',354,1,500,0,5000,'yes','self','attackpcge',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_POISON','chase',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AL_HEAL','idle',28,11,10000,0,2000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AL_HEAL','walk',28,11,10000,0,2000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1497,'Wooden Golem@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1498,'Wootan Shooter@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@KN_TWOHANDQUICKEN','attack',60,9,2000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1499,'Wootan Fighter@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_ENERGYDRAIN','attack',200,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1500,'Parasite@NPC_POISON','chase',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AL_HEAL','idle',28,10,10000,0,2000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AL_HEAL','walk',28,10,10000,0,2000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@BS_HAMMERFALL','chase',110,11,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@BS_HAMMERFALL','attack',110,11,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@MG_FIREWALL','attack',18,10,10000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AS_SONICBLOW','attack',136,10,10000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,20,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','chase',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','chase',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','attack',83,11,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','chase',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','attack',89,10,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_DARKBLESSING','attack',203,1,1000,2000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','idle',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','attack',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPARMOR','attack',217,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPHELM','attack',218,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPSHIELD','attack',216,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPWEAPON','attack',215,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@NPC_CURSEATTACK','attack',181,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@NPC_UNDEADATTACK','attack',347,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@AS_SONICBLOW','attack',136,10,10000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@BS_HAMMERFALL','attack',110,10,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@BS_HAMMERFALL','chase',110,10,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@MG_FIREWALL','attack',18,10,10000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_DARKBLESSING','attack',203,1,1000,2000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','attack',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@NPC_SUMMONSLAVE','idle',196,16,10000,2000,10000,'no','self','slavele',3,1491,1431,1433,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPARMOR','attack',217,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPHELM','attack',218,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPSHIELD','attack',216,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@RG_STRIPWEAPON','attack',215,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','attack',83,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_METEOR','chase',83,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','attack',89,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_STORMGUST','chase',89,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1502,'Bring it on!@WZ_VERMILION','chase',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@NPC_CURSEATTACK','attack',181,3,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1503,'Gibbet@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1504,'Dullahan@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','chase',340,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','chase',76,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','attack',76,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_METAMORPHOSIS','attack',193,2,500,0,60000,'no','self','myhpltmaxrate',0,1509,1508,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1509,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1508,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','chase',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','attack',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1510,'Hylozoist@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','longrangeattacked',0,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','casttargeted',0,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'no','self','longrangeattacked',0,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'no','self','casttargeted',0,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',8,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',9,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',1,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',8,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',9,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'no','self','skillused',3,1474,1477,1438,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','skillused',3,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','attack',83,11,5000,0,3000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','idle',80,11,10000,0,2000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','idle',80,11,10000,0,2000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','attack',80,11,5000,0,2000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_DARKBLESSING','attack',203,1,5000,0,2000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,11,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','chase',340,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_DARKSTRIKE','attack',340,5,500,700,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','attack',76,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@PR_LEXDIVINA','chase',76,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1505,'Loli Ruri@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_COMBOATTACK','attack',171,2,1000,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_METAMORPHOSIS','attack',193,1,500,0,60000,'yes','self','myhpltmaxrate',10,1509,1508,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1506,'Disguise@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@AS_SONICBLOW','attack',136,7,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1507,'Bloody Murderer@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@MG_STONECURSE','attack',16,10,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1508,'Quve@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',30,1509,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',30,1508,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','attack',78,1,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1509,'Lude@PR_LEXAETERNA','chase',78,1,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1510,'Heirozoist@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1510,'Heirozoist@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1510,'Heirozoist@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1510,'Heirozoist@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@AS_SONICBLOW','attack',136,5,500,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1512,'Hyegun@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@NPC_DARKTHUNDER','chase',341,3,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@NPC_DARKTHUNDER','attack',341,3,500,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','attack',231,4,10000,500,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1513,'Civil Servant@AM_POTIONPITCHER','idle',231,4,10000,500,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1514,'Dancing Dragon@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1515,'Garm Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1515,'Garm Baby@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1516,'Increase Soil@NPC_METAMORPHOSIS','attack',193,2,50,5000,5000,'no','self','always',0,1516,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1517,'Li Me Mang Ryang@NPC_RANGEATTACK','chase',160,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1517,'Li Me Mang Ryang@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_WIDESLEEP','chase',668,5,10000,700,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_WIDESLEEP','attack',668,5,10000,700,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_SUMMONSLAVE','idle',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_SUMMONSLAVE','attack',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1518,'Bacsojin@NPC_SUMMONSLAVE','chase',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@RG_INTIMIDATE','attack',219,1,1000,1000,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@PR_LEXDIVINA','chase',76,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1519,'Chung E@TF_POISON','attack',52,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1520,'Boiled Rice@CR_AUTOGUARD','idle',249,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1520,'Boiled Rice@NPC_SUICIDE','attack',175,1,10000,4000,0,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AL_DECAGI','chase',30,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1566,'Wraith Dead@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1555,'Parasite@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1575,'Flora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1579,'Hydra@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1580,'Incubus@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_SUMMONSLAVE','attack',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_SUMMONSLAVE','idle',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKNESSATTACK','attack',190,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_DARKBLESSING','attack',203,1,5000,0,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','attack',80,10,5000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','idle',80,10,10000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_FIREPILLAR','idle',80,10,10000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','attack',83,10,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1511,'Amon Ra@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1512,'Yao Jun@AS_SONICBLOW','attack',136,5,500,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1512,'Yao Jun@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1512,'Yao Jun@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Mao Guai@AM_POTIONPITCHER','attack',231,4,10000,500,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Mao Guai@AM_POTIONPITCHER','idle',231,4,10000,500,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Mao Guai@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Mao Guai@NPC_DARKTHUNDER','attack',341,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1513,'Mao Guai@NPC_DARKTHUNDER','chase',341,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Zhu Po Long@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Zhu Po Long@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Zhu Po Long@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Zhu Po Long@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1514,'Zhu Po Long@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1515,'Hatii Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1515,'Hatii Baby@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1516,'Mi Gao@NPC_METAMORPHOSIS','attack',193,1,50,5000,5000,'no','self','always',NULL,1516,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1517,'Jing Guai@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1517,'Jing Guai@NPC_RANGEATTACK','chase',160,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,24,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_SUMMONSLAVE','attack',196,1,10000,0,5000,'yes','self','slavele',1,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_SUMMONSLAVE','idle',196,1,10000,0,5000,'yes','self','slavele',1,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_SUMMONSLAVE','chase',196,1,10000,0,5000,'yes','self','slavele',1,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_WIDESLEEP','chase',668,5,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@NPC_WIDESLEEP','attack',668,5,10000,700,25000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1518,'White Lady@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1519,'Green Maiden@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1519,'Green Maiden@PR_LEXDIVINA','chase',76,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1519,'Green Maiden@RG_INTIMIDATE','attack',219,1,1000,1000,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1519,'Green Maiden@TF_POISON','attack',52,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1520,'Dumpling@CR_AUTOGUARD','idle',249,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1520,'Dumpling@NPC_SUICIDE','attack',175,1,10000,4000,0,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1555,'Parasite@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1575,'Flora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1579,'Hydra@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKBREATH','attack',202,3,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@NPC_DARKNESSATTACK','attack',190,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1582,'Deviling@AL_DECAGI','chase',30,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',4,1793,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',4,1793,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','attack',159,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','chase',159,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_COMBOATTACK','attack',171,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_COMBOATTACK','chase',171,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_STUNATTACK','chase',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_GUIDEDATTACK','attack',172,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_GUIDEDATTACK','chase',172,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_SILENCEATTACK','attack',178,5,2000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1585,'Mime Monkey@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1588,'Christmas Orc@NPC_EMOTION','idle',197,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1589,'Mandragora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@NPC_REVENGE','idle',333,1,10000,0,0,'yes','target','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','loot',350,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_AGIUP','idle',350,1,0,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','idle',197,1,10000,0,3000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','attack',197,1,10000,0,3000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1609,'Dancing Dragon@NPC_EMOTION','chase',197,1,10000,0,3000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@AL_TELEPORT','chase',26,1,10000,0,0,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_COMBOATTACK','attack',171,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_COMBOATTACK','chase',171,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_CRITICALWOUND','attack',673,2,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_GUIDEDATTACK','attack',172,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_GUIDEDATTACK','chase',172,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','attack',159,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_MENTALBREAKER','chase',159,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_STUNATTACK','chase',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1793,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1583,'Tao Gunka@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1793,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1584,'Tamruan@NPC_SILENCEATTACK','attack',178,5,2000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','attack',28,1,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1586,'Leaf Cat@AL_HEAL','chase',28,1,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1587,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1589,'Mandragora@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1590,'Geographer@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1613,'Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@NPC_SPLASHATTACK','attack',174,1,500,0,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@CR_SHIELDCHARGE','attack',250,2,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1614,'Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@CR_SHIELDCHARGE','attack',250,2,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','attack',149,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','chase',149,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_COMBOATTACK','attack',171,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_POWERUP','attack',349,2,3000,500,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@TF_THROWSTONE','chase',152,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1617,'Waste Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_PETRIFYATTACK','attack',180,2,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_DARKBREATH','attack',202,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1615,'Obsidian@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@HT_CLAYMORETRAP','idle',123,5,500,0,300000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_COMBOATTACK','attack',171,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@NPC_POWERUP','attack',349,2,3000,500,10000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','attack',149,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1616,'Pitman@TF_SPRINKLESAND','chase',149,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1617,'Old Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1617,'Old Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1617,'Old Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1617,'Old Stove@TF_THROWSTONE','chase',152,1,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@AL_TELEPORT','attack',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_DARKBREATH','attack',202,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_PETRIFYATTACK','attack',180,2,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_SUMMONSLAVE','attack',196,3,10000,700,30000,'no','self','slavele',0,1625,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1618,'Ungoliant@NPC_SUMMONSLAVE','idle',196,3,10000,700,30000,'no','self','slavele',0,1625,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_GROUNDATTACK','attack',185,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_TELEKINESISATTACK','attack',191,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','attack',159,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_POISON','attack',176,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','chase',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','attack',181,4,500,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','chase',181,4,500,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@SA_DISPELL','attack',289,1,50,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,23,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_AGIUP','chase',350,5,2000,0,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_POWERUP','attack',349,5,2000,0,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','attack',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','idle',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1617,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_WEAPONBRAKER','attack',343,10,1000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_TELEPORT','idle',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@NPC_CRITICALSLASH','attack',170,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1623,'RSX 0806@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1624,'Waste Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_GROUNDATTACK','attack',185,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_GRANDDARKNESS','attack',339,5,2000,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKSTRIKE','chase',340,10,2000,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1626,'Dark Priest@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','chase',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','chase',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','chase',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_HIDING','idle',51,1,500,500,25000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_GROUNDATTACK','chase',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1628,'Mole@NPC_COMBOATTACK','chase',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_SUMMONSLAVE','idle',196,3,10000,0,5000,'no','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_SUMMONSLAVE','attack',196,3,10000,0,5000,'no','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1630,'Bacsojin@NPC_SUMMONSLAVE','chase',196,3,10000,0,5000,'no','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1631,'Chung E@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1631,'Chung E@RG_INTIMIDATE','attack',219,1,1000,1000,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1631,'Chung E@PR_LEXDIVINA','chase',76,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1631,'Chung E@TF_POISON','attack',52,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1632,'Gremlin@RG_STRIPARMOR','attack',217,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1632,'Gremlin@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@MG_NAPALMBEAT','chase',11,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1619,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','attack',159,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1620,'Noxious@NPC_TELEKINESISATTACK','attack',191,3,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','chase',173,1,500,2000,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1621,'Venomous@NPC_SELFDESTRUCTION','attack',173,1,500,2000,5000,'no','self','skillused',173,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','attack',181,4,500,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_CURSEATTACK','chase',181,4,500,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',NULL,23,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,7,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@NPC_SELFDESTRUCTION','chase',173,1,1000,2000,10000,'no','self','attackpcge',3,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1622,'Teddy Bear@SA_DISPELL','attack',289,1,50,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@AL_TELEPORT','idle',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_AGIUP','chase',350,5,2000,0,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_CRITICALSLASH','attack',170,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_CRITICALWOUND','attack',673,4,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_POWERUP','attack',349,5,2000,0,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_SUMMONSLAVE','attack',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_SUMMONSLAVE','idle',196,5,10000,2000,10000,'no','self','slavele',3,1624,1624,1621,1620,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1617,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1623,'RSX-0806@NPC_WEAPONBRAKER','attack',343,10,1000,0,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1624,'Old Stove@NPC_RANDOMATTACK','attack',183,3,500,200,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1624,'Old Stove@NPC_SPLASHATTACK','attack',174,1,1000,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1624,'Old Stove@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1624,'Old Stove@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_GROUNDATTACK','attack',185,2,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1625,'Porcellio@NPC_KEEPING','attack',201,1,2000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_DARKSTRIKE','chase',340,10,2000,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_GRANDDARKNESS','attack',339,5,2000,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1626,'Hellion Revenant@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_BLOODDRAIN','chase',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_COMBOATTACK','chase',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1627,'Anopheles@NPC_WINDATTACK','chase',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@NPC_COMBOATTACK','chase',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@NPC_GROUNDATTACK','chase',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@TF_HIDING','idle',51,1,500,500,25000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1628,'Holden@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,1,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1629,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_SUMMONSLAVE','attack',196,3,10000,0,5000,'yes','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_SUMMONSLAVE','idle',196,3,10000,0,5000,'yes','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@NPC_SUMMONSLAVE','chase',196,3,10000,0,5000,'yes','self','slavele',1,1631,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1630,'White Lady@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1631,'Green Maiden@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1631,'Green Maiden@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1631,'Green Maiden@PR_LEXDIVINA','chase',76,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1631,'Green Maiden@RG_INTIMIDATE','attack',219,1,1000,1000,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1631,'Green Maiden@TF_POISON','attack',52,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1632,'Gremlin@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1632,'Gremlin@RG_STRIPARMOR','attack',217,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@MG_NAPALMBEAT','chase',11,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1633,'Beholder@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_MAGNUM','attack',7,9,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1634,'Seyren Windsor@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_SONICBLOW','attack',136,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','idle',140,1,2000,0,50000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','attack',140,1,2000,0,50000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_POISONATTACK','attack',188,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_SONICBLOW','attack',136,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','attack',140,1,2000,0,50000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@AS_VENOMDUST','idle',140,1,2000,0,50000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_AGIUP','attack',350,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_POISONATTACK','attack',188,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1635,'Eremes Guile@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@MC_MAMMONITE','attack',42,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','chase',110,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','attack',110,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','attack',110,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_HAMMERFALL','chase',110,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@MC_MAMMONITE','attack',42,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1636,'Howard Alt-Eisen@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','attack',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','idle',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@AL_HEAL','chase',28,9,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1637,'Margaretha Sorin@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_SKIDTRAP','idle',115,5,2000,0,60000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_SKIDTRAP','attack',115,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FLASHER','idle',120,5,2000,0,60000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FLASHER','attack',120,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FREEZINGTRAP','idle',121,5,2000,0,60000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FREEZINGTRAP','attack',121,5,500,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FLASHER','attack',120,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FLASHER','idle',120,5,2000,0,60000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FREEZINGTRAP','attack',121,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_FREEZINGTRAP','idle',121,5,2000,0,60000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_SKIDTRAP','attack',115,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@HT_SKIDTRAP','idle',115,5,2000,0,60000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','attack',350,1,2000,0,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_AGIUP','idle',350,1,10000,0,35000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_POWERUP','attack',349,1,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1638,'Cecil Damon@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','idle',84,28,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','idle',17,20,10000,500,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,28,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,20,10000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','attack',84,28,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,28,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_THUNDERSTORM','attack',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_THUNDERSTORM','chase',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','attack',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_SIGHTRASHER','attack',81,20,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_QUAGMIRE','chase',92,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SAFETYWALL','attack',12,10,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@WZ_STORMGUST','idle',89,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@WZ_STORMGUST','walk',89,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_MAGNUM','attack',7,20,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','attack',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SAFETYWALL','attack',12,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_THUNDERSTORM','attack',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@MG_THUNDERSTORM','chase',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','attack',84,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','idle',84,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_JUPITEL','chase',84,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_QUAGMIRE','chase',92,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1639,'Kathryne Keyron@WZ_SIGHTRASHER','attack',81,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_MAGNUM','attack',7,10,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1640,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1642,'Whitesmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1641,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1642,'MasterSmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1643,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_ANKLESNARE','idle',117,5,2000,0,60000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_ANKLESNARE','attack',117,5,500,0,5000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_BLASTMINE','idle',122,5,2000,0,60000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_BLASTMINE','attack',122,5,500,0,5000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','idle',116,5,2000,0,60000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','attack',116,5,500,0,5000,'yes','around3','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','idle',116,5,2000,0,60000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_LANDMINE','attack',116,5,500,0,5000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_ANKLESNARE','idle',117,5,2000,0,60000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_ANKLESNARE','attack',117,5,500,0,5000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_BLASTMINE','idle',122,5,2000,0,60000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@HT_BLASTMINE','attack',122,5,500,0,5000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1644,'Sniper Cecil@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@RG_INTIMIDATE','attack',219,10,100,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'no','self','slavele',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','idle',85,20,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','idle',83,11,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,5,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','attack',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_FIREPILLAR','idle',80,11,5000,200,2000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_FIREPILLAR','attack',80,11,2000,200,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','attack',83,11,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_WATERBALL','chase',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_WATERBALL','attack',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_FIREPILLAR','idle',80,10,5000,200,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_FIREPILLAR','attack',80,10,2000,200,0,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','idle',83,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','attack',83,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_METEOR','chase',83,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','idle',85,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','attack',85,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_VERMILION','chase',85,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_WATERBALL','chase',86,5,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1645,'High Wizard Kathryne@WZ_WATERBALL','attack',86,5,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_MAGNUM','attack',7,20,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_MAGNUM','attack',7,10,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1646,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@MC_MAMMONITE','attack',42,20,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@ST_FULLSTRIP','attack',476,5,1500,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1648,'Whitesmith Howard@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,10000,0,1000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,10000,0,1000,'yes','friend','friendhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1647,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1648,'MasterSmith Howard@ST_FULLSTRIP','attack',476,5,1500,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,10,10000,0,1000,'yes','friend','friendhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,10,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,10,10000,0,1000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,10,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','idle',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@HP_ASSUMPTIO','chase',361,5,10000,1000,10000,'no','self','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXAETERNA','chase',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','attack',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','idle',76,10,10000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1649,'High Priest Margaretha@PR_LEXDIVINA','chase',76,10,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1643,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@AC_CHARGEARROW','attack',148,1,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','idle',123,5,2000,0,10000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','attack',123,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SANDMAN','idle',119,5,2000,0,10000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SANDMAN','attack',119,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SHOCKWAVE','idle',118,5,2000,0,10000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SHOCKWAVE','attack',118,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','attack',123,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_CLAYMORETRAP','idle',123,5,2000,0,10000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SANDMAN','attack',119,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SANDMAN','idle',119,5,2000,0,10000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SHOCKWAVE','attack',118,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@HT_SHOCKWAVE','idle',118,5,2000,0,10000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@NPC_WINDATTACK','attack',187,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1650,'Sniper Cecil@SN_SHARPSHOOTING','attack',382,5,2000,500,1500,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,5,10000,700,30000,'no','self','slavele',3,1640,1641,1642,1643,1644,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,5,10000,700,30000,'no','self','slavele',3,1640,1641,1642,1643,1644,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1642,1643,1644,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','idle',85,20,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','idle',83,11,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','attack',85,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_FIREPILLAR','idle',80,11,5000,200,2000,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_FIREPILLAR','attack',80,11,2000,200,0,'yes','around3','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,11,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','attack',83,11,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','chase',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','attack',86,5,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_GANBANTEIN','attack',483,1,10000,500,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@HW_NAPALMVULCAN','chase',400,5,2000,1000,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1644,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1642,1643,1644,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_FIREPILLAR','attack',80,10,2000,200,0,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_FIREPILLAR','idle',80,10,5000,200,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','attack',83,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','idle',83,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_METEOR','chase',83,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','attack',85,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','idle',85,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_VERMILION','chase',85,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','attack',86,5,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1651,'High Wizard Kathryne@WZ_WATERBALL','chase',86,5,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_BLEEDING','attack',660,3,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_MAGNUM','attack',7,9,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_PROVOKE','chase',6,9,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1652,'Egnigem Cenia@SM_PROVOKE','chase',6,9,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_STUNATTACK','attack',179,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',52,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1653,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_PNEUMA','idle',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','attack',30,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','chase',30,1,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',42,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,8,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1654,'Armeyer Dinze@NPC_STUNATTACK','attack',179,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_BLESSING','idle',34,10,10000,500,5000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','attack',30,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_DECAGI','chase',30,1,2000,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_PNEUMA','idle',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,22,NULL);
REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,10000,1000,1000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','chase',46,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1655,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','chase',46,1,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_DOUBLE','attack',46,1,10000,1000,1000,'no','target','skillused',46,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','idle',13,9,5000,0,1000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','idle',20,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_FROSTDIVER','chase',15,9,10000,500,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','chase',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,5,3000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,3,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1656,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_MAGNUM','attack',7,20,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@LK_SPIRALPIERCE','attack',397,2,2500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWATER','attack',162,1,10000,500,10000,'no','self','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWIND','attack',165,1,10000,500,10000,'no','self','skillused',4,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_FROSTDIVER','chase',15,9,10000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','idle',20,9,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_LIGHTNINGBOLT','chase',20,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,5,3000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','attack',13,3,2000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_SOULSTRIKE','idle',13,9,5000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1657,'Laurell Weinder@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,8,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'no','target','skillused',2,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,11,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','attack',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','chase',30,48,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,10000,1000,1000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','chase',46,10,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@LK_SPIRALPIERCE','attack',397,2,2500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_BLEEDING','attack',660,2,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,15,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWATER','attack',162,1,10000,500,10000,'no','self','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CHANGEWIND','attack',165,1,10000,500,10000,'no','self','skillused',84,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1659,1660,1661,1662,1663,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_BASH','attack',5,10,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_MAGNUM','attack',7,10,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','attack',6,10,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1658,'Egnigem Cenia@SM_PROVOKE','chase',6,10,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISON','attack',176,5,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@NPC_POISONATTACK','attack',188,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_POISON','attack',52,9,10000,1000,1000,'no','target','skillused',52,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1659,'Wickebine Tres@TF_THROWSTONE','chase',152,1,4000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@MC_MAMMONITE','attack',42,9,10000,800,1000,'yes','target','skillused',42,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,8,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_GROUNDATTACK','attack',185,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1660,'Armeyer Dinze@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_BLESSING','idle',34,10,10000,500,5000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','attack',30,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_DECAGI','chase',30,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','attack',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','idle',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@AL_HEAL','chase',28,10,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1661,'Errende Ebecee@NPC_SILENCEATTACK','attack',178,4,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','chase',46,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_DOUBLE','attack',46,10,10000,1000,1000,'no','target','skillused',46,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@AC_SHOWER','attack',47,10,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1662,'Kavach Icarus@NPC_WINDATTACK','attack',187,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FROSTDIVER','chase',15,9,10000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','chase',20,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_FROSTDIVER','chase',15,9,10000,500,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','chase',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@MG_SAFETYWALL','attack',12,10,2000,1000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',8,15,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,5,1000,1000,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,5,1000,1000,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,5,1000,1000,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,5,1000,1000,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,3,2000,500,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1663,'Laurell Weinder@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,5,1000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,3,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1664,'Photon Cannon@NPC_WINDATTACK','attack',187,1,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,5,1000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,3,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1665,'Photon Cannon@NPC_FIREATTACK','attack',186,1,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,5,1000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,3,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1666,'Photon Cannon@NPC_WATERATTACK','attack',184,1,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,5,1000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,3,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1667,'Photon Cannon@NPC_GROUNDATTACK','attack',185,1,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1668,'Archdam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1669,'Dimik@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1670,'Dimik@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_COMBOATTACK','attack',171,6,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_COMBOATTACK','chase',171,6,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_RANDOMATTACK','attack',183,2,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_COMBOATTACK','attack',171,6,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_COMBOATTACK','chase',171,6,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_DARKBREATH','attack',202,4,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1671,'Dimik@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1672,'Dimik@NPC_RANDOMATTACK','attack',183,2,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,10,500,1000,30000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,3,1000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,1,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_COMBOATTACK','attack',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_COMBOATTACK','chase',171,4,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1673,'Dimik@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,10,500,1000,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,3,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1674,'Monemus@NPC_FIREATTACK','attack',186,1,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1675,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1676,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1677,'Venatu@NPC_WINDATTACK','attack',187,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1678,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_WATERATTACK','attack',184,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','chase',197,1,100,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1679,'Venatu@NPC_WATERATTACK','attack',184,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,31,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@KN_PIERCE','attack',56,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_PIERCINGATT','attack',158,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@NPC_WINDATTACK','chase',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1680,'Hill Wind@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','chase',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@NPC_UNDEADATTACK','attack',347,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',5,1365,1669,1675,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@KN_PIERCE','attack',56,5,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_COMBOATTACK','chase',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,31,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,30,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1681,'Gemini-S58@NPC_PIERCINGATT','attack',158,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@NPC_UNDEADATTACK','attack',347,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1682,'Remover@SM_BASH','attack',5,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@KN_SPEARSTAB','attack',58,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1684,'Archdam@NPC_RANDOMATTACK','attack',183,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_POWERUP','attack',349,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CRITICALSLASH','attack',170,1,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@WZ_METEOR','attack',83,11,500,10000,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_EMOTION','idle',197,1,1000,0,0,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_EMOTION','idle',197,1,10000,0,5000,'no','self','slavele',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_CRITICALSLASH','attack',170,1,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_EMOTION','idle',197,1,1000,0,0,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_POWERUP','attack',349,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',15,1365,1669,1675,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1685,'Vesper@WZ_METEOR','attack',83,10,500,10000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_EMOTION','attack',197,1,10000,0,5000,'no','self','slavele',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','idle',196,2,10000,0,6000000,'yes','self','slavele',0,1023,1273,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','attack',196,2,10000,0,6000000,'yes','self','slavele',0,1023,1273,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','chase',196,2,10000,0,6000000,'yes','self','slavele',0,1023,1273,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AL_TELEPORT','attack',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_COMBOATTACK','attack',171,1,1000,0,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_STUNATTACK','attack',179,5,500,0,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_DEFENDER','attack',205,1,500,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_SUMMONSLAVE','attack',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_SUMMONSLAVE','idle',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tany@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_SUMMONSLAVE','idle',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_SUMMONSLAVE','attack',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1689,'Bacsojin@NPC_SUMMONSLAVE','chase',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0xC3,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@SM_BASH','attack',5,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1690,'Spring Rabbit@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','chase',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','attack',179,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','chase',13,9,3000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','attack',13,9,3000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_NAPALMBEAT','attack',11,7,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_EMOTION','idle',197,1,10000,0,5000,'no','self','slavele',0,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','attack',196,2,10000,0,6000000,'yes','self','slavele',0,1023,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','idle',196,2,10000,0,6000000,'yes','self','slavele',0,1023,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@NPC_SUMMONSLAVE','chase',196,2,10000,0,6000000,'yes','self','slavele',0,1023,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1686,'Orc Baby@SM_BASH','attack',5,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AL_TELEPORT','attack',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_COMBOATTACK','attack',171,1,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_DEFENDER','attack',205,1,500,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_STUNATTACK','attack',179,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_SUMMONSLAVE','attack',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1688,'Lady Tanee@NPC_SUMMONSLAVE','idle',196,5,10000,2000,5000,'no','self','slavele',2,1691,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@NPC_SUMMONSLAVE','attack',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@NPC_SUMMONSLAVE','idle',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@NPC_SUMMONSLAVE','chase',196,4,10000,0,5000,'yes','self','slavele',2,1690,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1689,'White Lady@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1690,'Lunar Rabbit@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0083,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1690,'Lunar Rabbit@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1691,'Kraben@NPC_STUNATTACK','attack',179,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1692,'Breeze@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_NAPALMBEAT','attack',11,7,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_NAPALMBEAT','attack',11,7,4000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','chase',182,5,1000,300,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','attack',182,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','chase',19,7,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','attack',19,7,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBALL','chase',17,5,3000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','attack',13,9,3000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@MG_SOULSTRIKE','chase',13,9,3000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','attack',179,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_STUNATTACK','chase',179,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1693,'Plasma@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBALL','attack',17,7,2000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_FIREATTACK','attack',186,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','chase',16,8,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','attack',16,8,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','chase',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','chase',340,9,3000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','attack',340,9,3000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBALL','chase',17,5,3000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','attack',19,7,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@MG_FIREBOLT','chase',19,7,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_FIREATTACK','attack',186,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','attack',182,5,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1694,'Plasma@NPC_SLEEPATTACK','chase',182,5,1000,300,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','attack',16,8,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@MG_STONECURSE','chase',16,8,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_EARTHSPIKE','chase',90,5,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1695,'Plasma@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','attack',340,9,3000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_DARKSTRIKE','chase',340,9,3000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1696,'Plasma@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','chase',15,9,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','chase',14,6,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','attack',14,6,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@WZ_WATERBALL','attack',86,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-
-# Thanatos Tower Mobs
-REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_SPLASHATTACK','attack',174,1,1000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1698,'Deathword@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','attack',14,6,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_COLDBOLT','chase',14,6,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@MG_FROSTDIVER','chase',15,9,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1697,'Plasma@WZ_WATERBALL','attack',86,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Thanatos Tower Mobs
+REPLACE INTO `mob_skill_db` VALUES (1698,'Death Word@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1698,'Death Word@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1698,'Death Word@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1698,'Death Word@NPC_SPLASHATTACK','attack',174,1,1000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@CR_AUTOGUARD','attack',249,3,500,0,250000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@CR_AUTOGUARD','chase',249,3,1000,0,250000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@CR_AUTOGUARD','attack',249,3,500,0,250000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@RG_INTIMIDATE','attack',219,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1700,'Observation@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','chase',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKTHUNDER','chase',341,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_DARKTHUNDER','attack',341,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1701,'Shelter@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_GRANDDARKNESS','attack',339,1,500,700,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKCROSS','attack',338,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@KN_BOWLINGBASH','attack',62,7,500,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1702,'Retribution@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@CR_GRANDCROSS','attack',254,1,1000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXDIVINA','chase',76,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@PR_LEXDIVINA','attack',76,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@MG_NAPALMBEAT','attack',11,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1703,'Solace@MG_NAPALMBEAT','chase',11,5,1000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1704,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@WZ_SIGHTRASHER','attack',81,20,1000,0,10000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@KN_BOWLINGBASH','attack',62,4,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','attack',6,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1705,'Thanatos Despero@SM_PROVOKE','chase',6,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1706,'Thanatos Maero@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MAGICALATTACK','attack',192,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','attack',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_DARKTHUNDER','attack',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_DECAGI','attack',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','attack',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','idle',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1707,'Thanatos Dolor@AL_HEAL','chase',28,8,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_TWOHANDQUICKEN','attack',60,20,3000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@NPC_CHANGEHOLY','attack',167,1,5000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_STORMGUST','chase',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_VERMILION','chase',85,20,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_STORMGUST','attack',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_VERMILION','attack',85,20,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_METEOR','chase',83,11,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@WZ_METEOR','attack',83,11,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@MG_SOULSTRIKE','chase',13,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@MG_SOULSTRIKE','attack',13,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1708,'Thanatos@AL_TELEPORT','attack',26,1,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1709,'Thanatos Odium@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@WZ_SIGHTRASHER','attack',81,20,1000,0,10000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','attack',6,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1710,'Thanatos Despero@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1711,'Thanatos Maero@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_MAGICALATTACK','attack',192,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_MENTALBREAKER','attack',159,2,500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_MENTALBREAKER','chase',159,2,500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_DARKTHUNDER','attack',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_DECAGI','attack',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','attack',28,11,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','idle',28,9,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1712,'Thanatos Dolor@AL_HEAL','chase',28,9,1000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-
-# Abyss Lake
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_FIREATTACK','attack',186,6,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_STUNATTACK','attack',179,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','idle',17,9,2000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@SM_MAGNUM','attack',7,9,2000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@WZ_FIREPILLAR','idle',80,3,100,0,30000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1699,'Ancient Mimic@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@RG_INTIMIDATE','attack',219,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1700,'Dame of Sentinel@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_BLINDATTACK','angry',177,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_BLINDATTACK','follow',177,7,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_DARKNESSATTACK','chase',190,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_DARKTHUNDER','attack',341,4,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1701,'Mistress of Shelter@NPC_DARKTHUNDER','chase',341,4,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@NPC_DARKCROSS','attack',338,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1702,'Baroness of Retribution@NPC_GRANDDARKNESS','attack',339,1,500,700,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@CR_GRANDCROSS','attack',254,1,1000,1500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@MG_NAPALMBEAT','attack',11,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@MG_NAPALMBEAT','chase',11,5,1000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@PR_LEXDIVINA','attack',76,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1703,'Lady Solace@PR_LEXDIVINA','chase',76,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1704,'Odium of Thanatos@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_BLEEDING','attack',660,3,1000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@SM_PROVOKE','attack',6,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@SM_PROVOKE','chase',6,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1705,'Despero of Thanatos@WZ_SIGHTRASHER','attack',81,10,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1706,'Maero of Thanatos@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_DECAGI','attack',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','attack',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','idle',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','chase',28,8,1000,0,5000,'yes','friend','friendhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','attack',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','idle',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_HEAL','chase',28,8,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@NPC_DARKTHUNDER','attack',341,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@NPC_MAGICALATTACK','attack',192,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@NPC_MENTALBREAKER','attack',159,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1707,'Dolor of Thanatos@NPC_MENTALBREAKER','chase',159,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@AL_TELEPORT','attack',26,1,500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@KN_TWOHANDQUICKEN','attack',60,10,3000,0,300000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@MG_SOULSTRIKE','attack',13,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@MG_SOULSTRIKE','chase',13,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_BLEEDING','attack',660,5,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_CHANGEHOLY','attack',167,1,5000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_EXPULSION','attack',674,1,1000,1000,10000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',0,1711,1710,1709,1712,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_METEOR','attack',83,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_METEOR','chase',83,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_STORMGUST','attack',89,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_STORMGUST','chase',89,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_VERMILION','attack',85,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1708,'Memory of Thanatos@WZ_VERMILION','chase',85,10,2000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_CHANGEDARKNESS','attack',168,1,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_POWERUP','attack',349,5,2000,0,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_POWERUP','attack',349,5,2000,0,10000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1709,'Odium of Thanatos@NPC_TELEKINESISATTACK','attack',191,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_AGIUP','attack',350,5,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_AGIUP','attack',350,5,2000,0,10000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_FIREATTACK','attack',186,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_STUNATTACK','attack',179,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@NPC_TELEKINESISATTACK','attack',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@SM_PROVOKE','attack',6,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1710,'Despero of Thanatos@WZ_SIGHTRASHER','attack',81,10,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@AS_SONICBLOW','attack',136,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@NPC_INVISIBLE','attack',353,1,500,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@NPC_INVISIBLE','idle',353,1,500,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1711,'Maero of Thanatos@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_DECAGI','attack',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','attack',28,10,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','idle',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','chase',28,9,1000,0,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','attack',28,10,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','idle',28,9,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_HEAL','chase',28,9,1000,0,5000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@NPC_DARKTHUNDER','attack',341,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@NPC_DARKTHUNDER','chase',341,9,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@NPC_MAGICALATTACK','attack',192,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@NPC_MENTALBREAKER','attack',159,2,500,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1712,'Dolor of Thanatos@NPC_MENTALBREAKER','chase',159,2,500,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Abyss Lake
REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,36,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','idle',17,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@MG_FIREBALL','chase',17,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,44,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_BLEEDING','attack',660,2,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_FIREATTACK','attack',186,6,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@NPC_STUNATTACK','attack',179,5,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@SM_MAGNUM','attack',7,9,2000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1713,'Acidus@WZ_FIREPILLAR','idle',80,3,100,0,30000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_PIERCINGATT','attack',158,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_WINDATTACK','attack',187,6,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','idle',20,8,2000,1000,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','chase',20,8,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','attack',20,8,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@KN_BRANDISHSPEAR','attack',57,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@KN_SPEARSTAB','attack',58,10,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,36,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1714,'Ferus@NPC_FIREATTACK','attack',186,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,37,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@NPC_PIERCINGATT','attack',158,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1715,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','attack',20,8,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','idle',20,8,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_LIGHTNINGBOLT','chase',20,8,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@MG_THUNDERSTORM','attack',21,9,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1716,'Acidus@NPC_WINDATTACK','attack',187,6,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_SUMMONSLAVE','attack',196,1,10000,2000,5000,'no','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_SUMMONSLAVE','idle',196,1,10000,2000,5000,'no','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_SUMMONSLAVE','chase',196,1,10000,2000,5000,'no','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_FIREBREATH','attack',654,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@MG_FIREBALL','chase',17,20,5000,500,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@SM_PROVOKE','attack',6,10,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1719,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@WZ_METEOR','attack',83,11,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_SUMMONSLAVE','chase',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1720,'Hydro@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1721,'Dragon Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,1715,1718,NULL,NULL,NULL,NULL,NULL);
-
-# Kiel dungeon
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','chase',7,5,2500,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','attack',7,5,2500,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','idle',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@KN_BRANDISHSPEAR','chase',57,6,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@KN_BRANDISHSPEAR','attack',57,6,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@KN_BRANDISHSPEAR','attack',57,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@KN_SPEARSTAB','attack',58,10,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1717,'Ferus@SM_PROVOKE','chase',6,10,2000,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,44,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1718,'Novus@SM_BASH','attack',5,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@MG_FIREBALL','chase',17,10,5000,500,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_CRITICALWOUND','attack',673,3,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_DARKBREATH','attack',202,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_FIREBREATH','attack',654,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_SUMMONSLAVE','attack',196,1,10000,2000,5000,'yes','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_SUMMONSLAVE','idle',196,1,10000,2000,5000,'yes','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_SUMMONSLAVE','chase',196,1,10000,2000,5000,'yes','self','slavele',0,1756,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@SM_PROVOKE','attack',6,10,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@WZ_METEOR','attack',83,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@WZ_METEOR','chase',83,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@WZ_VERMILION','attack',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1719,'Detardeurus@WZ_VERMILION','chase',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_BLEEDING','attack',660,2,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_CRITICALWOUND','attack',673,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@NPC_SUMMONSLAVE','chase',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1720,'Hydrolancer@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1721,'Dragon Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'yes','self','myhpltmaxrate',99,1715,1718,NULL,NULL,NULL,NULL,NULL);
+-- Kiel dungeon
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@AL_PNEUMA','attack',25,1,10000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',0,1739,1740,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',0,1739,1740,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@HW_GANBANTEIN','attack',483,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_MAGNUM','chase',7,20,1000,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_MAGNUM','attack',7,20,1000,0,3000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','chase',663,5,10000,500,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_WIDESILENCE','attack',663,5,10000,500,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_POWERUP','attack',349,4,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@NPC_POWERUP','attack',349,4,3000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@KN_BRANDISHSPEAR','chase',57,20,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@KN_BRANDISHSPEAR','attack',57,20,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_PNEUMA','attack',25,1,10000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel-D-01@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_GUIDEDATTACK','attack',172,1,1000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@KN_BRANDISHSPEAR','attack',57,6,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@KN_BRANDISHSPEAR','chase',57,6,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','idle',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@NPC_BLEEDING','attack',660,5,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','attack',7,5,2500,0,3000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1733,'Kiel@SM_MAGNUM','chase',7,5,2500,0,3000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@AL_PNEUMA','attack',25,1,10000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@AL_TELEPORT','walk',26,1,10000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@HW_GANBANTEIN','attack',483,1,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@KN_BRANDISHSPEAR','attack',57,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@KN_BRANDISHSPEAR','chase',57,10,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@MG_SAFETYWALL','attack',12,10,4000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_BLEEDING','attack',660,5,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_POWERUP','attack',349,4,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_POWERUP','attack',349,4,3000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',0,1739,1740,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',0,1739,1740,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_WIDESILENCE','attack',663,5,10000,500,25000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@NPC_WIDESILENCE','chase',663,5,10000,500,25000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@PR_LEXAETERNA','attack',78,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@PR_LEXDIVINA','attack',76,5,1000,0,30000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@SM_ENDURE','attack',8,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@SM_ENDURE','chase',8,10,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@SM_MAGNUM','attack',7,10,1000,0,3000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1734,'Kiel D-01@SM_MAGNUM','chase',7,10,1000,0,3000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@KN_SPEARSTAB','attack',58,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1735,'Alicel@NPC_GUIDEDATTACK','attack',172,1,1000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@CR_AUTOGUARD','attack',249,5,1000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@CR_AUTOGUARD','attack',249,5,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@KN_SPEARSTAB','attack',58,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1736,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@SM_BASH','attack',5,10,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','walk',197,1,500,0,30000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','idle',197,1,500,0,30000,'yes','self','always',0,54,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','idle',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','walk',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','chase',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','attack',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_GUIDEDATTACK','attack',172,1,1000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@KN_SPEARSTAB','attack',58,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','attack',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','idle',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','walk',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@AL_HEAL','chase',28,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','idle',197,1,500,0,30000,'yes','self','always',NULL,54,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@NPC_EMOTION','walk',197,1,500,0,30000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1737,'Aliza@SM_BASH','attack',5,10,2000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,52,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1738,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1739,'Alicel@NPC_GUIDEDATTACK','attack',172,1,1000,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@BS_MAXIMIZE','attack',114,5,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@BS_MAXIMIZE','chase',114,5,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@CR_AUTOGUARD','attack',249,5,1000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@CR_AUTOGUARD','attack',249,5,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@KN_SPEARSTAB','attack',58,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1740,'Aliot@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@NPC_HOLYATTACK','attack',189,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1741,'Christmas Cookie@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1742,'Carat@SM_PROVOKE','chase',6,10,2000,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1745,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,0,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1745,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,0,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1743,'Myst Case@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1744,'Wild Rose@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1745,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,0,0,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1745,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,0,0,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CRITICALWOUND','attack',673,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_SUMMONSLAVE','idle',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_SUMMONSLAVE','chase',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1765,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@HW_GANBANTEIN','attack',483,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@MG_THUNDERSTORM','attack',21,15,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@TF_HIDING','idle',51,1,2000,0,180000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@MG_SOULSTRIKE','chase',13,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@AS_GRIMTOOTH','idle',137,5,10000,0,700,'yes','randomtarget','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@NPC_CURSEATTACK','attack',181,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1751,'Valkyrie Randgris@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@AS_GRIMTOOTH','idle',137,5,10000,0,700,'yes','target','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@MG_SOULSTRIKE','chase',13,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@NPC_CURSEATTACK','attack',181,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@NPC_SUMMONSLAVE','attack',196,1,100,0,3600000,'no','self','slavele',0,1762,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@RG_STRIPARMOR','attack',217,3,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_POISON','attack',176,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_CHANGEUNDEAD','attack',348,2,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_SUMMONSLAVE','attack',196,1,100,0,3600000,'no','self','slavele',0,1761,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','attack',21,7,1000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','chase',21,7,1000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','attack',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','chase',30,48,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','chase',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','attack',217,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','chase',217,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1752,'Skogul@TF_HIDING','idle',51,1,2000,0,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_CHANGEUNDEAD','attack',348,2,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_POISON','attack',176,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@NPC_SUMMONSLAVE','attack',196,1,100,0,3600000,'yes','self','slavele',0,1761,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1753,'Frus@RG_STRIPARMOR','attack',217,3,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','attack',30,10,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_DECAGI','chase',30,10,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','attack',21,7,1000,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@MG_THUNDERSTORM','chase',21,7,1000,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_PETRIFYATTACK','chase',180,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@NPC_SUMMONSLAVE','any',196,2,10000,700,60000,'no','self','onspawn',0,1763,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@CR_HOLYCROSS','attack',253,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','chase',13,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','attack',13,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','attack',217,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@RG_STRIPARMOR','chase',217,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1754,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','friend','friendhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','attack',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_HEAL','idle',28,9,5000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@CR_HOLYCROSS','attack',253,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','attack',13,7,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@MG_SOULSTRIKE','chase',13,7,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','attack',189,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_HOLYATTACK','chase',189,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@NPC_SUMMONSLAVE','any',196,2,10000,700,60000,'no','self','onspawn',0,1764,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_SUMMONSLAVE','chase',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1756,'Hydro@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@TF_HIDING','idle',51,1,2000,0,180000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@MG_SOULSTRIKE','chase',13,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@AS_GRIMTOOTH','idle',137,5,10000,0,700,'yes','randomtarget','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@NPC_CURSEATTACK','attack',181,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@RG_STRIPARMOR','attack',217,3,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_POISON','attack',176,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_CHANGEUNDEAD','attack',348,2,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','attack',21,4,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','chase',21,4,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','attack',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','chase',30,5,500,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_SAFETYWALL','attack',12,5,500,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1755,'Skeggiold@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_SUMMONSLAVE','attack',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_SUMMONSLAVE','idle',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@NPC_SUMMONSLAVE','chase',196,4,10000,2000,5000,'no','self','slavele',2,1757,1758,1759,1760,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1756,'Hydrolancer@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@AS_GRIMTOOTH','idle',137,5,10000,0,700,'yes','target','mystatuson','hiding',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@MG_SOULSTRIKE','chase',13,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@NPC_BLEEDING','attack',660,2,500,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@NPC_CURSEATTACK','attack',181,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1761,'Skogul@TF_HIDING','idle',51,1,2000,0,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@MG_FIREWALL','chase',18,5,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_CHANGEUNDEAD','attack',348,2,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_DARKNESSATTACK','attack',190,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@NPC_POISON','attack',176,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1762,'Frus@RG_STRIPARMOR','attack',217,3,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','attack',30,5,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_DECAGI','chase',30,5,500,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@CR_HOLYCROSS','attack',253,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','chase',13,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','attack',13,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SAFETYWALL','attack',12,5,1000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_SAFETYWALL','attack',12,5,500,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','attack',21,4,500,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@MG_THUNDERSTORM','chase',21,4,500,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1763,'Skeggiold@NPC_PETRIFYATTACK','attack',180,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@CR_HOLYCROSS','attack',253,2,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SAFETYWALL','attack',12,5,1000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','attack',13,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@MG_SOULSTRIKE','chase',13,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','attack',189,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1764,'Skeggiold@NPC_HOLYATTACK','chase',189,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','attack',28,10,10000,500,10000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@KN_BRANDISHSPEAR','attack',57,20,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@WZ_JUPITEL','attack',84,28,100,2000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','attack',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_HOLYATTACK','chase',189,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','attack',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@NPC_SUMMONSLAVE','idle',196,5,10000,2000,60000,'no','self','slavele',3,1031,1062,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1766,'Angeling@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@AL_DECAGI','chase',30,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKNESSATTACK','attack',190,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','attack',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_DARKSTRIKE','chase',340,5,3000,700,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_SUMMONSLAVE','attack',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1767,'Deviling@NPC_SUMMONSLAVE','idle',196,7,10000,2000,10000,'no','self','slavele',3,1595,1595,1595,1433,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREATTACK','attack',186,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_TELEKINESISATTACK','attack',191,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_FIREPILLAR','idle',80,11,1000,0,5000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,2000,700,50000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_SIGHTRASHER','attack',81,20,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@MG_FIREBALL','attack',17,20,1000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@MG_FIREBALL','chase',17,20,10000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'no','self','slavele',3,1786,1787,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'no','self','slavele',3,1786,1787,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@KN_BRANDISHSPEAR','attack',57,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1765,'Valkyrie@WZ_JUPITEL','attack',84,10,100,2000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','attack',21,5,500,1200,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','chase',21,5,500,1200,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@AS_SONICBLOW','attack',136,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_DARKNESSATTACK','attack',190,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,52,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@RG_STRIPARMOR','attack',217,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@SA_DISPELL','attack',289,1,200,0,100000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,4,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@MG_FIREBALL','attack',17,10,1000,500,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@MG_FIREBALL','chase',17,10,10000,500,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_BLEEDING','attack',660,3,2000,0,50000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREATTACK','attack',186,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,2000,700,50000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'no','self','slavele',3,1786,1787,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'no','self','slavele',3,1786,1787,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@NPC_TELEKINESISATTACK','attack',191,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_FIREPILLAR','idle',80,10,1000,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1768,'Gloom Under Night@WZ_SIGHTRASHER','attack',81,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1769,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1770,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1771,'Vanberk@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','attack',21,5,500,1200,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@MG_THUNDERSTORM','chase',21,5,500,1200,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1772,'Isilla@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@AS_SONICBLOW','attack',136,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_DARKNESSATTACK','attack',190,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,52,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1773,'Hodremlin@RG_STRIPARMOR','attack',217,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,52,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@SA_DISPELL','attack',289,1,200,0,100000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1774,'Seeker@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@NPC_WATERATTACK','attack',184,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1775,'Snowier@SM_ENDURE','chase',8,3,5000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,45,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','myhpltmaxrate',1,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,45,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','myhpltmaxrate',1,28,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@CR_AUTOGUARD','attack',249,3,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','chase',14,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','attack',14,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@NPC_GUIDEDATTACK','attack',172,2,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WATERATTACK','attack',184,10,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','myhpltmaxrate',1,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1776,'Siroma@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1777,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@CR_AUTOGUARD','attack',249,3,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','attack',14,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@MG_COLDBOLT','chase',14,3,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@NPC_GUIDEDATTACK','attack',172,2,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1778,'Gazeti@NPC_WATERATTACK','attack',184,2,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_CRITICALWOUND','attack',673,3,4000,0,50000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_STORMGUST','chase',89,10,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_STORMGUST','attack',89,10,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','chase',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','attack',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_GROUNDATTACK','attack',185,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_PETRIFYATTACK','attack',180,5,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@KN_PIERCE','attack',56,5,500,700,5000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_GROUNDATTACK','attack',185,1,1000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_COMBOATTACK','attack',171,4,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x31B5,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WATERATTACK','attack',184,10,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','attack',88,10,5000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_FROSTNOVA','chase',88,10,5000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_STORMGUST','attack',89,10,5000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_STORMGUST','chase',89,10,5000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1779,'Ktullanux@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_GROUNDATTACK','attack',185,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1780,'Muscipular@NPC_PETRIFYATTACK','attack',180,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@KN_PIERCE','attack',56,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_GROUNDATTACK','attack',185,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_GUIDEDATTACK','attack',172,3,500,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1781,'Drosera@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_COMBOATTACK','attack',171,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1782,'Roween@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_SUMMONSLAVE','attack',196,3,10000,1000,30000,'no','self','slavele',3,1794,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_SUMMONSLAVE','idle',196,3,10000,1000,30000,'no','self','slavele',3,1794,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@NPC_KEEPING','attack',201,1,1000,1000,5000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@SM_BASH','attack',5,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','attack',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','idle',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DEFENDER','idle',205,1,10000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@KN_TWOHANDQUICKEN','attack',60,20,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_BLEEDING','attack',660,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DARKNESSATTACK','attack',190,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1783,'Galion@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@NPC_KEEPING','attack',201,1,1000,1000,5000,'no','self','myhpltmaxrate',25,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1784,'Stapo@SM_BASH','attack',5,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_DECAGI','chase',30,48,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@KN_BOWLINGBASH','attack',62,7,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x31B5,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@KN_TWOHANDQUICKEN','attack',60,10,2000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_BLEEDING','attack',660,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_BLEEDING','attack',660,5,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DARKNESSATTACK','attack',190,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_DEFENDER','idle',205,1,10000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_POWERUP','attack',349,2,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','attack',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@NPC_SUMMONSLAVE','idle',196,3,10000,700,30000,'no','self','slavele',0,1791,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1785,'Atroce@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','attack',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','idle',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@AL_HEAL','chase',28,9,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','attack',13,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_SOULSTRIKE','chase',13,9,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','attack',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_CURSEATTACK','chase',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@NPC_HOLYATTACK','attack',189,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1786,'Agav@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@CR_HOLYCROSS','attack',253,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_HOLYATTACK','attack',189,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@NPC_SLEEPATTACK','attack',182,4,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1787,'Echio@SM_BASH','attack',5,7,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','attack',15,5,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@MG_FROSTDIVER','chase',15,7,10000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1788,'Ice Titan@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_COMBOATTACK','attack',171,4,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@KN_BOWLINGBASH','attack',62,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@KN_BOWLINGBASH','attack',62,10,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@CR_GRANDCROSS','attack',254,10,2000,1500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_STORMGUST','idle',89,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_VERMILION','idle',85,20,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','idle',83,11,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_STORMGUST','chase',89,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_VERMILION','chase',85,20,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_VERMILION','chase',85,20,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','chase',83,11,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_VERMILION','attack',85,20,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1795,'Bloody Knight@WZ_METEOR','attack',83,11,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# Guild Dungeon SE (13.1)
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','attack',21,5,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','chase',21,5,500,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','attack',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','chase',114,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@NPC_METAMORPHOSIS','attack',193,1,1000,0,60000,'no','self','myhpltmaxrate',0,1814,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@PR_LEXAETERNA','chase',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@PR_LEXAETERNA','attack',78,1,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1791,'Galion@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_COMBOATTACK','attack',171,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1794,'Roween@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Guild Dungeon SE (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','attack',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','idle',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@AL_HEAL','chase',28,5,3000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','attack',21,5,500,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@MG_THUNDERSTORM','chase',21,5,500,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','attack',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_CURSEATTACK','chase',181,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@NPC_HOLYATTACK','attack',189,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','attack',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1796,'Aunoe@PR_LEXDIVINA','chase',76,1,5000,0,5000,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@AS_SONICBLOW','attack',136,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','attack',114,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@BS_MAXIMIZE','chase',114,5,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@NPC_SLEEPATTACK','attack',182,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1797,'Fanat@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@AL_TELEPORT','attack',26,1,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1812,'Delightful Lude@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','attack',28,10,2000,500,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AL_HEAL','attack',28,11,2000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKTHUNDER','chase',341,5,8000,700,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_GRANDDARKNESS','attack',339,10,2000,900,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKCROSS','attack',338,10,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@WZ_VERMILION','attack',85,10,2500,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_COMBOATTACK','attack',171,6,2500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AS_VENOMDUST','attack',140,10,3500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_LICK','attack',206,5,4000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@KN_TWOHANDQUICKEN','attack',60,20,5000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','attack',28,9,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_HEAL','chase',28,9,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','chase',19,10,3000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','attack',19,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREBOLT','chase',19,10,4000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_WATERBALL','attack',86,5,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_WATERBALL','chase',86,5,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_METEOR','attack',83,5,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@WZ_METEOR','chase',83,5,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MC_MAMMONITE','attack',42,20,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREWALL','attack',18,10,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@MG_FIREWALL','chase',18,10,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@SA_DISPELL','attack',289,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1814,'Moonlight Flower@SA_DISPELL','chase',289,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','attack',110,11,10000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_HAMMERFALL','chase',110,11,5000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@CR_GRANDCROSS','attack',254,10,5000,100,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_STORMGUST','attack',89,10,2000,1000,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@MG_FIREBALL','chase',17,20,5000,500,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@BS_MAXIMIZE','chase',114,5,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1817,'Detale@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,30,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@AS_VENOMDUST','attack',140,10,3500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@KN_TWOHANDQUICKEN','attack',60,10,5000,0,120000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,27,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_COMBOATTACK','attack',171,6,2500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,24,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKCROSS','attack',338,10,2000,1500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_DARKTHUNDER','chase',341,5,8000,700,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_GRANDDARKNESS','attack',339,10,2000,900,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_LICK','attack',206,5,4000,0,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1813,'Hydrolancer@WZ_VERMILION','attack',85,10,2500,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@AL_HEAL','attack',28,9,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@AL_HEAL','chase',28,9,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MC_MAMMONITE','attack',42,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MG_FIREBOLT','attack',19,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MG_FIREBOLT','chase',19,10,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MG_FIREBOLT','chase',19,10,4000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MG_FIREWALL','attack',18,10,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@MG_FIREWALL','chase',18,10,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@SA_DISPELL','attack',289,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@SA_DISPELL','chase',289,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@WZ_METEOR','attack',83,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@WZ_METEOR','chase',83,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@WZ_WATERBALL','attack',86,5,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1814,'Fox Queen@WZ_WATERBALL','chase',86,5,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@BS_HAMMERFALL','attack',110,10,10000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@BS_HAMMERFALL','chase',110,10,5000,0,5000,'yes','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@BS_MAXIMIZE','chase',114,5,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@CR_GRANDCROSS','attack',254,10,5000,100,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'yes','self','myhpltmaxrate',12,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@MG_FIREBALL','chase',17,10,5000,500,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@NPC_DARKBREATH','attack',202,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',12,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@WZ_METEOR','attack',83,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@WZ_METEOR','chase',83,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@WZ_STORMGUST','attack',89,10,2000,1000,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@WZ_VERMILION','attack',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1817,'Detardeurus@WZ_VERMILION','chase',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,30,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1819,'Bathory@NPC_STOP','attack',342,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@NPC_STUNATTACK','attack',179,2,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1820,'Bigfoot@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@NPC_FIREATTACK','attack',186,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1821,'Desert Wolf@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1824,'Garm Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1824,'Garm Baby@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1825,'Christmas Goblin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1825,'Christmas Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,18,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1825,'Christmas Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1825,'Christmas Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1825,'Christmas Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_CURSEATTACK','attack',181,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1822,'Deviruchi@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1823,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1824,'Baby Hatii@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1824,'Baby Hatii@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1825,'Santa Goblin@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1825,'Santa Goblin@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1825,'Santa Goblin@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1825,'Santa Goblin@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,18,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1825,'Santa Goblin@NPC_WINDATTACK','attack',187,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_MENTALBREAKER','attack',159,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1826,'Myst@NPC_POISONATTACK','attack',188,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@KN_SPEARSTAB','attack',58,10,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1827,'Sasquatch@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-# Thor Volcano (11.2)
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@KN_SPEARBOOMERANG','chase',59,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@CR_SHIELDCHARGE','attack',250,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_DOUBLE','idle',46,10,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_SHOWER','idle',47,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_CHARGEARROW','idle',148,1,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_CHARGEARROW','chase',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_DOUBLE','attack',46,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_SHOWER','attack',47,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_BLEEDING','attack',660,5,1500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Guardian@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Thor Volcano (11.2)
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@CR_SHIELDCHARGE','attack',250,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@KN_SPEARBOOMERANG','chase',59,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1829,'Sword Master@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_CHARGEARROW','attack',148,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_CHARGEARROW','idle',148,1,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_CHARGEARROW','chase',148,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_DOUBLE','attack',46,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_DOUBLE','idle',46,10,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_SHOWER','attack',47,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AC_SHOWER','idle',47,5,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@NPC_BLEEDING','attack',660,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@NPC_COMBOATTACK','attack',171,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@NPC_STUNATTACK','attack',179,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1830,'Bow Master@NPC_WIDEBLEEDING','attack',665,4,10000,0,15000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@CR_REFLECTSHIELD','idle',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@CR_REFLECTSHIELD','idle',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@KN_TWOHANDQUICKEN','attack',60,10,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1831,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','attack',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','idle',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_SUMMONSLAVE','chase',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','attack',83,11,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1832,'Ifrit@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','idle',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','chase',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','attack',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_FIREPILLAR','idle',80,5,10000,500,30000,'no','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@NPC_FIREBREATH','chase',654,10,2000,1500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@NPC_FIREBREATH','attack',654,10,2000,1500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','idle',17,20,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','chase',17,20,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','attack',17,20,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_SIGHTRASHER','attack',81,20,1000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@LK_SPIRALPIERCE','attack',397,1,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','chase',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','attack',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@HW_GANBANTEIN','attack',483,5,5000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','attack',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','idle',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@CR_REFLECTSHIELD','chase',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@HW_GANBANTEIN','attack',483,1,5000,500,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@LK_SPIRALPIERCE','attack',397,1,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','attack',17,10,5000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@NPC_FIREBREATH','attack',654,10,2000,1500,15000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@NPC_FIREBREATH','chase',654,10,2000,1500,15000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_FIREPILLAR','idle',80,5,10000,500,30000,'no','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','attack',83,1,5000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_METEOR','chase',83,1,5000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1833,'Kasa@WZ_SIGHTRASHER','attack',81,10,1000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@KN_TWOHANDQUICKEN','attack',60,10,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1834,'Salamander@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','idle',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','chase',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','attack',252,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_FIREPILLAR','idle',80,5,10000,500,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@NPC_FIREBREATH','chase',654,10,2000,3000,200000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@NPC_FIREBREATH','attack',654,10,2000,3000,200000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','attack',17,10,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_SIGHTRASHER','attack',81,10,1000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@LK_SPIRALPIERCE','attack',397,1,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_METEOR','chase',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_METEOR','attack',83,1,5000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@NPC_FIREATTACK','attack',186,2,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@MG_FIREBOLT','attack',19,2,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@SM_BASH','attack',5,4,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@MG_FIREBALL','chase',17,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@KN_BRANDISHSPEAR','attack',57,8,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBALL','attack',17,10,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBALL','chase',17,10,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_FIREATTACK','attack',186,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@WZ_SIGHTRASHER','attack',81,20,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@RG_STRIPARMOR','attack',217,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@HT_LANDMINE','idle',116,2,4000,1000,18000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_SPRINKLESAND','attack',149,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','chase',152,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','attack',152,1,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','idle',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','chase',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_SUMMONSLAVE','attack',196,2,10000,1000,60000,'no','self','slavele',1,1829,1830,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_GRIMTOOTH','idle',137,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_GRIMTOOTH','chase',137,5,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@ASC_BREAKER','chase',379,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@AS_SONICBLOW','attack',136,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1839,'Byorgue@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','attack',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','idle',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@CR_REFLECTSHIELD','chase',252,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@LK_SPIRALPIERCE','attack',397,1,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','attack',17,10,5000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@NPC_FIREBREATH','attack',654,10,2000,3000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@NPC_FIREBREATH','chase',654,10,2000,3000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_FIREPILLAR','idle',80,5,10000,500,30000,'no','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_METEOR','attack',83,1,5000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_METEOR','chase',83,1,5000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1835,'Kasa@WZ_SIGHTRASHER','attack',81,10,1000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@MG_FIREBALL','chase',17,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@MG_FIREBOLT','attack',19,2,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@NPC_FIREATTACK','attack',186,2,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@SM_BASH','attack',5,4,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1836,'Magmaring@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@KN_BRANDISHSPEAR','attack',57,8,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBALL','attack',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBALL','chase',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@MG_SIGHT','idle',10,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_FIREATTACK','attack',186,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@RG_STRIPARMOR','attack',217,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1837,'Imp@WZ_SIGHTRASHER','attack',81,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@HT_LANDMINE','idle',116,2,4000,1000,18000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@NPC_GROUNDATTACK','attack',185,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_SPRINKLESAND','attack',149,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','attack',152,1,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1838,'Knocker@TF_THROWSTONE','chase',152,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@AS_GRIMTOOTH','idle',137,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@AS_GRIMTOOTH','chase',137,5,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@AS_SONICBLOW','attack',136,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@ASC_BREAKER','chase',379,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_SUMMONSLAVE','attack',196,2,10000,1000,60000000,'no','self','slavele',0,1829,1830,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_SUMMONSLAVE','idle',196,2,10000,1000,60000000,'no','self','slavele',0,1829,1830,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@NPC_SUMMONSLAVE','chase',196,2,10000,1000,60000000,'no','self','slavele',0,1829,1830,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1839,'Byrogue@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@KN_TWOHANDQUICKEN','attack',60,5,500,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_PULSESTRIKE','attack',661,1,500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@ST_FULLSTRIP','attack',476,5,100,1500,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@KN_TWOHANDQUICKEN','attack',60,5,500,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_EARTHSPIKE','attack',90,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_HEAVENDRIVE','attack',91,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','attack',92,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','chase',92,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@NPC_PULSESTRIKE','attack',661,1,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-
-# Cursed Abbey (11.3)
-REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_DOUBLE','attack',46,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@NPC_MAGICALATTACK','attack',192,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_SHOWER','attack',47,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@AL_HEAL','idle',28,1,10000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@AS_SONICBLOW','attack',136,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1866,'Hell Poodle@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,29,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@MG_FIREBALL','chase',17,5,1500,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@ST_FULLSTRIP','attack',476,5,100,1500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_EARTHSPIKE','attack',90,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_HEAVENDRIVE','attack',91,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','attack',92,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1840,'Golden Savage@WZ_QUAGMIRE','chase',92,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1851,'Mobster@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1851,'Mobster@KN_SPEARSTAB','attack',58,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1851,'Mobster@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1851,'Mobster@TF_SPRINKLESAND','attack',149,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- Cursed Abbey (11.3)
+REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@AS_SONICBLOW','attack',136,5,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1864,'Zombie Slaughter@NPC_POISON','attack',176,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_DOUBLE','attack',46,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@AC_SHOWER','attack',47,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1865,'Ragged Zombie@NPC_MAGICALATTACK','attack',192,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hellhound@AL_HEAL','idle',28,1,10000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hellhound@AS_SONICBLOW','attack',136,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hellhound@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1866,'Hellhound@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1867,'Banshee@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1868,'Banshee@NPC_WIDECURSE','attack',677,1,500,800,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@MG_FIREBALL','chase',17,5,1500,500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1869,'Flame Skull@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_FIREBALL','chase',17,5,2000,300,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','attack',21,5,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','chase',21,5,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CALLSLAVE','attack',352,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CALLSLAVE','idle',352,1,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CHANGEUNDEAD','attack',348,1,500,500,6000000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSBREATH','attack',658,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','attack',340,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','chase',340,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SUMMONSLAVE','attack',196,2,10000,0,300000,'yes','self','slavele',0,1864,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SUMMONSLAVE','idle',196,2,10000,0,300000,'yes','self','slavele',0,1864,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SUMMONSLAVE','chase',196,2,10000,0,300000,'yes','self','slavele',0,1864,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SUMMONSLAVE','attack',196,2,10000,0,300000,'yes','self','slavele',0,1864,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CALLSLAVE','attack',352,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CALLSLAVE','idle',352,1,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_FIREBALL','chase',17,5,2000,300,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','attack',21,5,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@MG_THUNDERSTORM','chase',21,5,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','attack',92,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','chase',92,5,500,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','chase',677,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','attack',677,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','chase',340,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKSTRIKE','attack',340,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_CHANGEUNDEAD','attack',348,1,500,500,6000000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DARKNESSBREATH','attack',658,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,3000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,1000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'no','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'no','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_WIDECURSE','attack',677,5,2000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKCROSS','attack',338,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@CR_HOLYCROSS','attack',253,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_GRANDDARKNESS','chase',339,10,500,1300,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_GRANDDARKNESS','attack',339,10,500,1300,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@CR_GRANDCROSS','chase',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@CR_GRANDCROSS','attack',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_VAMPIRE_GIFT','attack',679,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'no','target','myhpltmaxrate',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_MAGICMIRROR','attack',671,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_WIDESILENCE','chase',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_WIDESILENCE','attack',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKNESSATTACK','attack',190,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1871,'Fallen Bishop@NPC_DARKNESSBREATH','attack',658,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_CRITICALWOUND','attack',673,5,10,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_WINDATTACK','attack',187,4,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_MENTALBREAKER','attack',159,1,200,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','attack',677,1,500,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@NPC_WIDECURSE','chase',677,1,500,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,1000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_METEOR','chase',83,3,3000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','attack',92,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1870,'Necromancer@WZ_QUAGMIRE','chase',92,5,500,200,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@CR_GRANDCROSS','attack',254,10,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@CR_GRANDCROSS','chase',254,10,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@CR_HOLYCROSS','attack',253,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_DARKCROSS','attack',338,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_DARKNESSATTACK','attack',190,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_DARKNESSBREATH','attack',658,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'yes','self','myhpltmaxrate',44,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_GRANDDARKNESS','attack',339,10,500,1300,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_GRANDDARKNESS','chase',339,10,500,1300,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_MAGICMIRROR','attack',671,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'yes','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'yes','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_VAMPIRE_GIFT','attack',679,2,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_WIDECURSE','attack',677,5,2000,800,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_WIDESILENCE','attack',663,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@NPC_WIDESILENCE','chase',663,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1871,'Falling Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_CRITICALWOUND','attack',673,5,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_MENTALBREAKER','attack',159,1,200,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1872,'Hell Fly@NPC_WINDATTACK','attack',187,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@LK_SPIRALPIERCE','attack',397,5,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','attack',193,1,10000,5000,5000,'no','self','myhpltmaxrate',50,1874,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','chase',193,1,10000,5000,5000,'no','self','myhpltmaxrate',50,1874,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_PULSESTRIKE','attack',661,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','attack',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','chase',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','idle',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','chase',193,1,10000,5000,5000,'no','self','myhpltmaxrate',0,1874,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_METAMORPHOSIS','attack',193,1,10000,5000,5000,'no','self','myhpltmaxrate',0,1874,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@LK_SPIRALPIERCE','attack',397,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_PULSESTRIKE','attack',661,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_WIDESLEEP','attack',668,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_WIDESILENCE','attack',663,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_SUMMONSLAVE','chase',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_WIDESILENCE','attack',663,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1873,'Beelzebub@NPC_WIDESLEEP','attack',668,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@LK_SPIRALPIERCE','attack',397,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','attack',657,1,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','chase',657,1,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EXPULSION','attack',674,1,50,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_MAGICMIRROR','attack',671,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_PULSESTRIKE','attack',661,5,10000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','attack',675,4,10000,1000,30000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','chase',675,4,10000,1000,30000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','attack',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','chase',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','idle',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','chase',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_STONESKIN','attack',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@SA_LANDPROTECTOR','attack',288,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SHIELDBRAKE','attack',346,10,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_MAGICMIRROR','attack',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_EXPULSION','attack',674,1,50,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@LK_SPIRALPIERCE','attack',397,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_PULSESTRIKE','attack',661,5,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','attack',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_ACIDBREATH','chase',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1875,'Tristan@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Moscovia (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1880,'Wood Goblin@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1881,'Les@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_COMBOATTACK','attack',171,2,3000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1881,'Les@NPC_POISON','attack',176,2,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@WZ_WATERBALL','chase',86,1,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@NPC_COMBOATTACK','attack',171,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1882,'Baba Yaga@WZ_WATERBALL','attack',86,2,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_MAGICALATTACK','chase',192,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_POISON','attack',176,2,2000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@WZ_WATERBALL','attack',86,3,2000,3000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1883,'Uzhas@NPC_CURSEATTACK','attack',181,2,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@AL_HEAL','idle',28,5,10000,2000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@WZ_EARTHSPIKE','chase',90,2,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_GROUNDATTACK','attack',185,2,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_SILENCEATTACK','attack',178,2,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SUMMONSLAVE','attack',196,5,10000,1000,30000,'no','self','slavele',1,1886,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SUMMONSLAVE','chase',196,5,5000,1000,30000,'no','self','slavele',0,1886,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SUMMONSLAVE','idle',196,5,10000,1000,30000,'no','self','slavele',0,1886,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_QUAGMIRE','chase',92,5,5000,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','chase',352,1,5000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_METEOR','attack',83,11,5000,1500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@MG_FIREBALL','attack',17,20,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_AGIUP','attack',350,5,3000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@KN_TWOHANDQUICKEN','attack',60,20,5000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_POWERUP','attack',349,5,6000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_HEAVENDRIVE','chase',91,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@SM_MAGNUM','attack',7,20,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SILENCEATTACK','attack',178,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_MENTALBREAKER','chase',159,5,500,800,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_HEAVENDRIVE','attack',91,5,5000,500,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1885,'Gopinich@WZ_QUAGMIRE','attack',92,5,5000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@AL_HEAL','idle',28,9,10000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@WZ_EARTHSPIKE','chase',90,4,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_GROUNDATTACK','attack',185,4,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_SILENCEATTACK','attack',178,4,2000,2000,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1888,'Garm Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1888,'Garm Baby@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_QUAGMIRE','chase',92,1,5000,200,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@MG_FIREBALL','attack',17,20,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_HEAVENDRIVE','chase',91,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@SM_MAGNUM','attack',7,9,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@NPC_SILENCEATTACK','attack',178,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_HEAVENDRIVE','attack',91,5,5000,500,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1890,'The Immortal Koshei@WZ_QUAGMIRE','attack',92,1,5000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','idle',28,11,10000,500,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','attack',28,11,10000,500,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_SUMMONSLAVE','chase',196,10,10000,0,10000,'yes','self','slavele',5,1872,1872,1011,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1874,'Beelzebub@SA_LANDPROTECTOR','attack',288,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Moscovia (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1880,'Leshij@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1880,'Leshij@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1880,'Leshij@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1880,'Leshij@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1880,'Leshij@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1881,'Lesavka@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1881,'Lesavka@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1881,'Lesavka@NPC_COMBOATTACK','attack',171,2,3000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1881,'Lesavka@NPC_POISON','attack',176,2,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1882,'Baba-Yaga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1882,'Baba-Yaga@NPC_COMBOATTACK','attack',171,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1882,'Baba-Yaga@WZ_WATERBALL','attack',86,2,2000,3000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1882,'Baba-Yaga@WZ_WATERBALL','chase',86,1,5000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Kikimora@NPC_CURSEATTACK','attack',181,2,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Kikimora@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Kikimora@NPC_MAGICALATTACK','chase',192,1,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Kikimora@NPC_POISON','attack',176,2,2000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1883,'Kikimora@WZ_WATERBALL','attack',86,3,2000,3000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@AL_HEAL','idle',28,5,10000,2000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_GROUNDATTACK','attack',185,2,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@NPC_SILENCEATTACK','attack',178,2,2000,2000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1884,'Mavka@WZ_EARTHSPIKE','chase',90,2,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@KN_TWOHANDQUICKEN','attack',60,10,5000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@MG_FIREBALL','attack',17,10,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_AGIUP','attack',350,5,3000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_CALLSLAVE','chase',352,1,5000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_MENTALBREAKER','chase',159,5,500,800,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_POWERUP','attack',349,5,6000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_SILENCEATTACK','attack',178,5,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_SUMMONSLAVE','attack',196,5,10000,1000,30000,'no','self','slavele',1,1886,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_SUMMONSLAVE','idle',196,5,10000,1000,30000,'no','self','slavele',0,1886,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@NPC_SUMMONSLAVE','chase',196,5,5000,1000,30000,'no','self','slavele',0,1886,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@SM_MAGNUM','attack',7,10,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@WZ_HEAVENDRIVE','attack',91,5,5000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@WZ_HEAVENDRIVE','chase',91,5,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@WZ_METEOR','attack',83,10,5000,1500,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@WZ_QUAGMIRE','attack',92,5,5000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1885,'Zmey Gorynych@WZ_QUAGMIRE','chase',92,5,5000,200,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@AL_HEAL','idle',28,9,10000,1000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_GROUNDATTACK','attack',185,4,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@NPC_SILENCEATTACK','attack',178,4,2000,2000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1886,'Mavka@WZ_EARTHSPIKE','chase',90,4,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','attack',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_COLDBOLT','chase',14,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@MG_FROSTDIVER','attack',15,9,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1887,'Freezer@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1888,'Hatii Baby@MG_FROSTDIVER','chase',15,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1888,'Hatii Baby@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1889,'Marozka\'s Guard@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@MG_FIREBALL','attack',17,10,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@MG_FIREBALL','chase',17,9,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@NPC_SILENCEATTACK','attack',178,5,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@NPC_SILENCEATTACK','chase',178,5,5000,700,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@SM_MAGNUM','attack',7,9,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@WZ_HEAVENDRIVE','attack',91,5,5000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@WZ_HEAVENDRIVE','chase',91,5,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@WZ_QUAGMIRE','attack',92,1,5000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1890,'Koshei the Immortal@WZ_QUAGMIRE','chase',92,1,5000,200,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','attack',28,10,10000,500,10000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_HEAL','idle',28,10,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@KN_BRANDISHSPEAR','attack',57,20,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@WZ_JUPITEL','attack',84,28,100,2000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@KN_BRANDISHSPEAR','attack',57,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_ARMORBRAKE','attack',344,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1891,'Valkyrie@WZ_JUPITEL','attack',84,10,100,2000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','chase',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','attack',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (1904,'Bomb Poring@NPC_SELFDESTRUCTION','any',173,1,10000,3000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Satan Morroc (12.1)
-#5% HP - Dragon Fear
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-#10% HP - Talk
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-#30% HP - Earthquake Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#40% HP - Mixed Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#50% HP - Vampire Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#60% HP - Hell Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#80% HP - Magic Combo
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','attack',89,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_STORMGUST','chase',89,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','attack',86,10,10000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1894,'Pouring@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1904,'Bombring@NPC_SELFDESTRUCTION','attack',173,1,10000,3000,0,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1904,'Bombring@NPC_SELFDESTRUCTION','idle',173,1,10000,3000,0,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1904,'Bombring@NPC_SELFDESTRUCTION','chase',173,1,10000,3000,0,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Satan Morroc (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,1,10000,0,600000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','attack',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,4);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','chase',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,4);
REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','onspawn',0,1922,1923,1924,1925,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#5% HP - Dragon Fear
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,7);
-#10% HP - Talk
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','attack',682,10,10000,0,600000,'no','self','myhpinrate',6,10,NULL,NULL,NULL,NULL,NULL,6);
-#30% HP - Earthquake Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpinrate',1,30,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','afterskill',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#40% HP - Mixed Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpinrate',1,40,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'no','self','afterskill',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#50% HP - Vampire Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpinrate',1,50,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','afterskill',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#60% HP - Hell Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpinrate',1,60,NULL,NULL,NULL,NULL,NULL,3);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','afterskill',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','afterskill',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#80% HP - Magic Combo
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpinrate',1,80,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','afterskill',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','afterskill',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','chase',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','attack',84,28,10000,1000,20000,'no','target','afterskill',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,1,10000,0,600000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','attack',682,10,10000,0,600000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_TALK','chase',682,10,10000,0,600000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','attack',84,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_JUPITEL','chase',84,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1916,'Satan Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,1,10000,0,600000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','attack',19,10,10000,300,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FIREBOLT','chase',19,10,10000,300,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','attack',15,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_FROSTDIVER','chase',15,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','attack',16,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@MG_STONECURSE','chase',16,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,2);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','attack',659,10,10000,0,600000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_DRAGONFEAR','chase',659,10,10000,0,600000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,17);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','attack',653,10,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EARTHQUAKE','chase',653,10,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','attack',662,5,10000,800,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLJUDGEMENT','chase',662,5,10000,800,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','attack',683,1,10000,800,35000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_HELLPOWER','chase',683,1,10000,800,35000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','attack',661,5,10000,800,60000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_PULSESTRIKE','chase',661,5,10000,800,60000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,14);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SUMMONSLAVE','attack',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,4);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SUMMONSLAVE','chase',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,4);
REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','onspawn',0,1922,1923,1924,1925,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','slavele',1,1922,1923,1924,1925,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_SHIELDBRAKE','attack',346,10,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,1,10000,0,600000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','attack',682,10,10000,0,600000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_TALK','chase',682,10,10000,0,600000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,16);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','attack',679,9,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_VAMPIRE_GIFT','chase',679,9,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,15);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','attack',684,1,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDEHELLDIGNITY','chase',684,1,10000,2000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,6);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','attack',668,5,10000,700,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESLEEP','chase',668,5,10000,700,35000,'no','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,3);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','attack',680,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESOULDRAIN','chase',680,10,10000,1000,50000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','attack',678,5,10000,1300,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@NPC_WIDESTUN','chase',678,5,10000,1300,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@SA_LANDPROTECTOR','attack',288,1,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','attack',84,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_JUPITEL','chase',84,10,10000,1000,20000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','attack',83,5,10000,800,60000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1917,'Wounded Morroc@WZ_METEOR','chase',83,5,10000,800,60000,'no','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','chase',289,5,100,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','attack',289,5,100,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','chase',677,5,5000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','attack',677,5,5000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,10000,2000,30000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','attack',677,5,5000,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@NPC_WIDECURSE','chase',677,5,5000,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','attack',289,5,100,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1918,'Incarnation of Morroc@SA_DISPELL','chase',289,5,100,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@SM_MAGNUM','attack',7,20,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,5000,5000,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,5000,5000,100000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1919,'Incarnation of Morroc@SM_MAGNUM','attack',7,10,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','attack',673,3,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','idle',673,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','chase',673,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','attack',673,3,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','idle',673,3,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_CRITICALWOUND','chase',673,3,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1920,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,10,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,10,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','chase',28,10,10000,500,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,10,10000,500,0,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,500,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','chase',60,20,10000,800,60000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@KN_TWOHANDQUICKEN','attack',60,20,10000,800,60000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@WZ_VERMILION','chase',85,5,5000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@WZ_VERMILION','attack',85,5,2000,700,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@WZ_JUPITEL','chase',84,5,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1922,'Incarnation of Morroc@WZ_JUPITEL','attack',84,5,3000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_SUMMONSLAVE','chase',196,7,10000,1000,10000,'no','self','slavele',0,1937,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_SUMMONSLAVE','attack',196,7,10000,1000,10000,'no','self','slavele',0,1937,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_WIDEBLEEDING','chase',665,2,10000,500,100000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@NPC_EARTHQUAKE','attack',653,1,2000,700,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1923,'Incarnation of Morroc@SM_MAGNUM','attack',7,20,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUND','attack',673,4,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUND','idle',673,4,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_CRITICALWOUND','chase',673,4,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','chase',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1924,'Incarnation of Morroc@NPC_WIDESILENCE','attack',663,2,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',0,9,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','chase',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','attack',28,11,10000,300,0,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1925,'Incarnation of Morroc@AL_HEAL','idle',28,11,10000,300,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-
-# Sealed Shrine (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','attack',682,1,10000,0,6000000,'yes','target','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@AS_SONICBLOW','attack',136,5,500,0,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKNESSBREATH','attack',658,3,2000,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','chase',662,3,10000,800,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_HELLJUDGEMENT','attack',662,3,10000,800,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','idle',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','chase',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_INVINCIBLE','attack',685,1,10000,1000,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','chase',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@KN_BRANDISHSPEAR','chase',57,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@KN_BRANDISHSPEAR','attack',57,20,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','chase',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_DARKBREATH','attack',202,1,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','attack',85,10,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,5000,500,10000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@WZ_VERMILION','chase',85,20,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1929,'Great Demon Baphomet@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,3);
-
-# Fallacious Okolnir (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_METEOR','idle',83,11,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','chase',662,5,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','attack',662,5,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',0,1947,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','chase',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',0,1947,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_METEOR','idle',83,11,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1921,'Incarnation of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@KN_TWOHANDQUICKEN','attack',60,10,10000,800,60000,'no','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@KN_TWOHANDQUICKEN','chase',60,10,10000,800,60000,'no','self','myhpltmaxrate',45,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_GRANDDARKNESS','attack',339,5,500,2000,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_MAGICMIRROR','chase',671,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_PULSESTRIKE','chase',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@WZ_JUPITEL','attack',84,5,3000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@WZ_JUPITEL','chase',84,5,5000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@WZ_VERMILION','attack',85,5,2000,700,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1922,'Shadow of Morroc@WZ_VERMILION','chase',85,5,5000,700,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_EARTHQUAKE','attack',653,1,2000,700,100000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_SUMMONSLAVE','attack',196,7,10000,1000,10000,'no','self','slavele',0,1937,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_SUMMONSLAVE','chase',196,7,10000,1000,10000,'no','self','slavele',0,1937,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@NPC_WIDEBLEEDING','chase',665,2,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1923,'Shadow of Morroc@SM_MAGNUM','attack',7,10,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_CRITICALWOUND','attack',673,4,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_CRITICALWOUND','idle',673,4,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_CRITICALWOUND','chase',673,4,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_WIDESILENCE','attack',663,2,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1924,'Shadow of Morroc@NPC_WIDESILENCE','chase',663,2,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@AL_HEAL','attack',28,10,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@AL_HEAL','idle',28,10,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@AL_HEAL','chase',28,10,10000,300,0,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@AL_HEAL','idle',28,10,10000,300,0,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'yes','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@NPC_EMOTION','attack',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@NPC_EMOTION','idle',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1925,'Shadow of Morroc@NPC_EMOTION','chase',197,1,10000,0,30000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1927,'Whisper@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+-- Sealed Shrine (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@AS_SONICBLOW','attack',136,5,500,0,20000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,20);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@KN_BRANDISHSPEAR','attack',57,5,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@KN_BRANDISHSPEAR','chase',57,5,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,23);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_DARKBREATH','attack',202,1,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_DARKBREATH','chase',202,1,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_DARKNESSBREATH','attack',658,3,2000,800,5000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_EVILLAND','attack',670,10,10000,1000,50000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_EVILLAND','chase',670,10,10000,1000,50000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_HELLJUDGEMENT','attack',662,3,10000,800,15000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,22);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_HELLJUDGEMENT','chase',662,3,10000,800,15000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,24);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_INVINCIBLE','attack',685,1,10000,1000,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_INVINCIBLE','idle',685,1,10000,1000,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_INVINCIBLE','chase',685,1,10000,1000,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,21);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_PULSESTRIKE','chase',661,5,10000,2500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,20);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',2,1431,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,19);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_TALK','attack',682,1,10000,0,6000000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,25);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@NPC_TALK','chase',682,1,10000,0,6000000,'yes','self','myhpltmaxrate',2,NULL,NULL,NULL,NULL,NULL,NULL,25);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@WZ_VERMILION','attack',85,10,2000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@WZ_VERMILION','chase',85,10,2000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1929,'Unsealed Baphomet@WZ_VERMILION','chase',85,10,5000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+-- Fallacious Okolnir (12.1)
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','attack',662,5,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_HELLJUDGEMENT','chase',662,5,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','attack',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_SUMMONSLAVE','chase',196,3,10000,2000,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','attack',84,10,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_JUPITEL','chase',84,10,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_METEOR','idle',83,10,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1930,'Piamette@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','chase',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@LK_SPIRALPIERCE','attack',397,1,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','attack',350,5,10000,0,100000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','chase',350,5,10000,0,100000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','attack',196,5,10000,2000,5000,'no','self','slavele',1,1933,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','idle',196,5,10000,2000,5000,'no','self','slavele',1,1933,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_SUMMONSLAVE','chase',196,5,10000,2000,5000,'no','self','slavele',1,1933,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','attack',350,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_AGIUP','chase',350,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','chase',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@LK_SPIRALPIERCE','attack',397,1,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','chase',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKCROSS','attack',338,5,2000,1500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','attack',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','chase',252,3,10000,0,400000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','chase',662,2,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','attack',662,2,5000,800,35000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','chase',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','attack',84,28,5000,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKBLESSING','attack',203,1,300,0,2000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,11,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-# Endless Tower (12.1)
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_BRANDISHSPEAR','attack',57,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','chase',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','attack',662,3,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_DARKSTRIKE','chase',340,10,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HALLUCINATION','chase',207,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SHIELDBRAKE','attack',346,10,200,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WATERATTACK','chase',184,1,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WATERATTACK','attack',184,1,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_FIREATTACK','chase',186,1,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_FIREATTACK','attack',186,1,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','chase',179,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','attack',179,2,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','chase',379,3,5000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','attack',379,3,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','chase',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SUMMONSLAVE','idle',196,4,10000,0,30000,'yes','self','onspawn',0,1605,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_METEOR','idle',83,10,10000,300,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1931,'Wish Maiden@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','attack',354,1,10000,0,0,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1932,'Garden Keeper@NPC_RUN','chase',354,1,10000,0,0,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','attack',252,3,10000,0,400000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@CR_REFLECTSHIELD','chase',252,3,10000,0,400000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@MG_SAFETYWALL','attack',12,5,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','attack',202,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKBREATH','chase',202,1,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_DARKCROSS','attack',338,5,2000,1500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','attack',84,4,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1933,'Garden Watcher@WZ_JUPITEL','chase',84,4,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','attack',173,1,10000,1000,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1937,'Constant@NPC_SELFDESTRUCTION','chase',173,1,2000,1000,0,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,10,10000,500,5000,'no','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,10,10000,500,5000,'no','friend','friendhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@AL_HEAL','chase',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','attack',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','idle',361,5,5000,1000,5000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@HP_ASSUMPTIO','chase',361,5,5000,1000,10000,'no','friend','friendhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','attack',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_FROSTDIVER','chase',15,10,3000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','attack',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@MG_THUNDERSTORM','chase',21,9,2000,1500,10000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','attack',673,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_CRITICALWOUND','chase',673,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKBLESSING','attack',203,1,300,0,2000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','attack',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_DARKNESSBREATH','chase',658,2,500,800,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','attack',662,2,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_HELLJUDGEMENT','chase',662,2,5000,800,35000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','attack',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDECURSE','chase',677,5,10000,700,35000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','attack',84,10,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_JUPITEL','chase',84,10,5000,1000,20000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1947,'Piamette@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Endless Tower (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','attack',379,3,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@ASC_BREAKER','chase',379,3,5000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_BRANDISHSPEAR','attack',57,3,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ASC_BREAKER','attack',379,5,500,1000,20000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_EVILLAND','attack',670,4,10000,800,50000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKSTRIKE','attack',340,10,2000,0,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKNESSATTACK','attack',190,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@AC_SHOWER','attack',47,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','attack',83,11,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_WIDECURSE','attack',677,5,5000,300,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',1,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',9,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','skillused',3,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,11,10000,0,0,'yes','target','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','idle',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','attack',8219,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@SN_SHARPSHOOTING','attack',382,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@AC_SHOWER','attack',47,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','attack',28,11,10000,300,2000,'no','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,11,10000,300,4000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_FROSTDIVER','attack',15,9,10000,500,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_FIREBOLT','attack',19,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_COLDBOLT','attack',14,7,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_HEAVENDRIVE','attack',91,3,3000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DARKTHUNDER','attack',341,5,500,1500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_STORMGUST','attack',89,5,500,1500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','chase',672,5,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','attack',672,5,10000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','chase',289,5,500,2000,40000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','attack',289,5,500,2000,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-
-# Guild Dungeon SE (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_DARKSTRIKE','chase',340,10,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_FIREATTACK','attack',186,1,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_FIREATTACK','chase',186,1,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HALLUCINATION','chase',207,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','attack',662,3,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_HELLJUDGEMENT','chase',662,3,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SHIELDBRAKE','attack',346,10,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','attack',179,2,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_STUNATTACK','chase',179,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WATERATTACK','attack',184,1,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WATERATTACK','chase',184,1,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDEBLEEDING','attack',665,3,3000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','attack',663,5,3000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@NPC_WIDESILENCE','chase',663,5,3000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','attack',83,10,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_METEOR','chase',83,10,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','attack',89,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1956,'Naght Sieger@WZ_STORMGUST','chase',89,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@AC_SHOWER','attack',47,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ASC_BREAKER','attack',379,5,500,1000,20000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','attack',8219,5,10000,0,180000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@ML_DEFENDER','idle',8219,5,10000,0,180000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKNESSATTACK','attack',190,3,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_DARKSTRIKE','attack',340,10,2000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_EVILLAND','attack',670,4,10000,800,50000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_PULSESTRIKE','attack',661,5,10000,2500,30000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@NPC_WIDECURSE','attack',677,5,5000,300,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','attack',83,10,2000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1957,'Entweihen Crothen@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@AC_SHOWER','attack',47,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1958,'Thorny Skeleton@SN_SHARPSHOOTING','attack',382,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','attack',28,10,10000,300,2000,'no','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,10,10000,300,4000,'no','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@AL_HEAL','idle',28,10,10000,300,4000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1959,'Thorn of Recovery@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_COLDBOLT','attack',14,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_FIREBOLT','attack',19,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_FROSTDIVER','attack',15,9,10000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_LIGHTNINGBOLT','attack',20,7,10000,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_SOULSTRIKE','attack',13,9,5000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@MG_THUNDERSTORM','attack',21,5,2000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DARKTHUNDER','attack',341,5,500,1500,15000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_HEAVENDRIVE','attack',91,3,3000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1960,'Thorn of Magic@WZ_STORMGUST','attack',89,5,500,1500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','attack',672,5,10000,500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@NPC_SLOWCAST','chase',672,5,10000,500,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','attack',289,5,500,2000,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1961,'Thorn of Purification@SA_DISPELL','chase',289,5,500,2000,40000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@NPC_METAMORPHOSIS','attack',193,1,10000,5000,5000,'yes','self','myhpltmaxrate',98,2075,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@NPC_METAMORPHOSIS','idle',193,1,10000,5000,5000,'yes','self','myhpltmaxrate',98,2075,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@NPC_METAMORPHOSIS','chase',193,1,10000,5000,5000,'yes','self','myhpltmaxrate',98,2075,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@NPC_STUNATTACK','attack',179,2,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1971,'Vadon@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Guild Dungeon SE (13.1)
REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,7,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,NULL,0x3795,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1868,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKNESSATTACK','attack',190,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','attack',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_DARKSTRIKE','chase',340,9,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,7,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,NULL,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_VAMPIRE_GIFT','attack',679,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1974,'Banshee Master@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@SA_DISPELL','attack',289,1,100,1000,100000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1774,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,52,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','attack',159,3,200,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_MENTALBREAKER','chase',159,3,200,800,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','attack',180,3,200,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@NPC_PETRIFYATTACK','chase',180,3,200,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@SA_DISPELL','attack',289,1,100,1000,100000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1975,'Beholder Master@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_SPLASHATTACK','attack',174,1,500,0,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@CR_REFLECTSHIELD','attack',252,2,1000,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_BARRIER','attack',204,1,500,3000,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_RANDOMATTACK','attack',183,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@NPC_SPLASHATTACK','attack',174,1,500,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1976,'Cobalt Mineral@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPARMOR','attack',217,3,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Apocalips@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1979,'Zukadam@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1668,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Memory of Orc Dungeon (13.1)
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_BASH','attack',5,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_BASH','chase',5,10,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@SM_MAGNUM','attack',7,7,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_PULSESTRIKE','chase',661,2,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1981,'Safeguard Chief@NPC_PULSESTRIKE','attack',661,2,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@NPC_EMOTION','attack',197,1,100,0,60000,'yes','self','myhpltmaxrate',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Sniper@AC_DOUBLE','attack',46,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1983,'Depraved Orc Spirit@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1984,'Shaman Cargalache@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# New World (13.1)
-REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','attack',348,1,3000,500,600000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_CHANGEUNDEAD','chase',348,1,3000,500,600000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@MC_MAMMONITE','attack',42,5,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPARMOR','attack',217,3,500,0,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1977,'Heavy Metaling@RG_STRIPWEAPON','attack',215,3,500,0,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@KN_BRANDISHSPEAR','attack',57,5,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@NPC_DARKTHUNDER','attack',341,4,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1978,'Hell Vesper@NPC_SELFDESTRUCTION','attack',173,1,1000,2000,5000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@KN_SPEARSTAB','attack',58,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@NPC_GUIDEDATTACK','attack',172,2,500,1000,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@NPC_PIERCINGATT','attack',158,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1979,'Zakudam@NPC_RANDOMATTACK','attack',183,5,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Memory of Orc Dungeon (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@CR_AUTOGUARD','chase',249,5,500,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@NPC_PULSESTRIKE','attack',661,2,500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@NPC_PULSESTRIKE','chase',661,2,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@SM_BASH','attack',5,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@SM_BASH','chase',5,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1981,'Orc Elite Guard@SM_MAGNUM','attack',7,7,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Bowman@AC_DOUBLE','attack',46,1,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Bowman@AC_SHOWER','attack',47,5,2000,1000,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1982,'Orc Bowman@NPC_EMOTION','attack',197,1,100,0,60000,'yes','self','myhpltmaxrate',60,6,0xB695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1983,'Orc Undead@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1983,'Orc Undead@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1983,'Orc Undead@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1984,'Orc Lady@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1984,'Orc Lady@NPC_EVILLAND','attack',670,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1984,'Orc Lady@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+-- The New World Mob Skill (13.1)
+REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion Member@NPC_CHANGEUNDEAD2','attack',696,1,3000,500,600000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion Member@NPC_CHANGEUNDEAD2','chase',696,1,3000,500,600000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1985,'Dandelion Member@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1986,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','around1','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1989,'Hillsrion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','around1','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1987,'Centipede@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1988,'Nepenthes@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1989,'Hillslion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@LK_SPIRALPIERCE','attack',397,1,500,3000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','attack',653,2,10000,2000,30000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','chase',653,2,10000,2000,30000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','attack',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','always',NULL,7,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','attack',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','idle',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','chase',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_SUMMONSLAVE','attack',196,3,10000,0,30000,'yes','self','slavele',0,1997,1997,1997,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','always',0,7,0x36B5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EMOTION','attack',197,1,1000,0,5000,'yes','self','always',0,19,0xA1,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_WATERBALL','attack',86,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@LK_SPIRALPIERCE','attack',397,1,500,3000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','chase',678,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','attack',678,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','chase',6,10,500,600,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','attack',6,10,500,600,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','chase',653,2,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_EARTHQUAKE','attack',653,2,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_PROVOKE','attack',6,10,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','always',0,7,0x36B5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_EMOTION','attack',197,1,1000,0,10000,'yes','self','always',0,19,0x38A5,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','chase',668,1,500,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDESLEEP','attack',668,1,500,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_GROUNDATTACK','attack',185,4,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',0,NULL,0x38A5,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrilion@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','attack',678,1,500,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@NPC_WIDESTUN','chase',678,1,500,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','attack',6,10,500,600,120000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@SM_PROVOKE','chase',6,10,500,600,120000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1990,'Hardrock Mammoth@WZ_WATERBALL','attack',86,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@HW_GANBANTEIN','attack',483,1,3000,0,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_DRAGONFEAR','attack',659,2,500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_EMOTION','attack',197,1,1000,0,10000,'yes','self','always',NULL,19,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','always',NULL,7,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_GROUNDATTACK','attack',185,4,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_WIDEBLEEDING','attack',665,1,10000,500,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_WIDEBLEEDING','chase',665,1,10000,500,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_WIDESLEEP','attack',668,1,500,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@NPC_WIDESLEEP','chase',668,1,500,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',NULL,NULL,0x3885,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@SM_MAGNUM','attack',7,5,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@SM_PROVOKE','attack',6,10,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1991,'Tendrillion@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','idle',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_PULSESTRIKE','attack',661,3,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','idle',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','chase',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','attack',687,1,10000,1500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','idle',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','attack',687,1,10000,2000,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','idle',687,1,10000,2000,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_ALLHEAL','chase',687,1,10000,2000,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@NPC_PULSESTRIKE','attack',661,3,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1992,'Cornus@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','attack',6,3,2000,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@WZ_WATERBALL','attack',86,9,1000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','attack',6,3,2000,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1993,'Naga@WZ_WATERBALL','attack',86,2,1000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_POISONATTACK','attack',188,2,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PULSESTRIKE','attack',661,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_POISONATTACK','attack',188,2,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1994,'Luciola Vespa@NPC_PULSESTRIKE','attack',661,2,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','idle',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','chase',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@HP_ASSUMPTIO','attack',361,5,10000,500,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','idle',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','attack',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (1996,'Bacsojin@NPC_SUMMONSLAVE','chase',196,1,10000,0,5000,'yes','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@NPC_STUNATTACK','attack',179,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1997,'Tatacho@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALWOUND','chase',673,2,2000,500,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALWOUND','attack',673,2,2000,700,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','chase',170,1,500,300,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_CRITICALSLASH','attack',170,1,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1998,'Hillsrion@NPC_COMBOATTACK','attack',171,3,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','around1','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','attack',196,1,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','chase',196,1,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SUMMONSLAVE','idle',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','chase',193,6,10000,5000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_METAMORPHOSIS','attack',193,6,10000,5000,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_SHIELDBRAKE','attack',346,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@LK_SPIRALPIERCE','attack',397,5,2000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_PULSESTRIKE','attack',661,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_WIDESLEEP','attack',668,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_WIDESILENCE','attack',663,5,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2008,'Woomawang@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_TELEPORT','chase',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','attack',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_RUN','chase',354,10,10000,0,0,'yes','self','myhpltmaxrate',1,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@AL_HEAL','idle',28,9,10000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SUMMONSLAVE','attack',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SUMMONSLAVE','chase',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SUMMONSLAVE','idle',196,6,10000,0,10000,'yes','self','slavele',5,2010,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_STONESKIN','chase',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_STONESKIN','attack',675,4,10000,1000,30000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@SA_LANDPROTECTOR','attack',288,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SHIELDBRAKE','attack',346,10,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_MAGICMIRROR','attack',671,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_EXPULSION','attack',674,1,50,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','attack',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESTONE','chase',666,5,10000,500,15000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@LK_SPIRALPIERCE','attack',397,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_PULSESTRIKE','attack',661,5,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_ACIDBREATH','attack',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_ACIDBREATH','chase',657,1,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_VAMPIRE_GIFT','attack',679,1,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2009,'Woomawang@NPC_WIDESOULDRAIN','attack',680,7,1000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@NPC_SUMMONSLAVE','idle',196,1,10000,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@WZ_HEAVENDRIVE','attack',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2010,'Majoruros@WZ_HEAVENDRIVE','chase',91,5,500,1200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-
-# Into the Unknown (13.2)
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@TF_THROWSTONE','chase',152,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_PIERCINGATT','attack',158,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_FIREBREATH','attack',654,3,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1995,'Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@AS_VENOMDUST','attack',140,1,500,1500,5000,'no','around1','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (1999,'Centipede Larva@NPC_POISONATTACK','attack',188,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Into the Unknown (13.2)
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_COMBOATTACK','attack',171,2,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_FIREBREATH','attack',654,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@SM_PROVOKE','chase',6,10,2000,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,44,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2013,'Draco@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2014,'Draco Egg@NPC_METAMORPHOSIS','idle',193,1,10,2000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_WATERBALL','attack',86,4,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_COLDBOLT','attack',14,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLOWCAST','attack',672,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@TF_THROWSTONE','chase',152,1,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','chase',340,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','attack',340,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2015,'Dark Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_COLDBOLT','attack',14,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@NPC_SLOWCAST','attack',672,2,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2016,'Aqua Elemental@WZ_WATERBALL','attack',86,4,2000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@KN_AUTOCOUNTER','attack',61,5,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_ARMORBRAKE','attack',344,3,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,24,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','attack',340,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_DARKSTRIKE','chase',340,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_ARMORBRAKE','attack',344,3,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@ASC_METEORASSAULT','attack',406,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_DARKSTRIKE','chase',340,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_DARKSTRIKE','attack',340,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@PF_SPIDERWEB','chase',405,1,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@KN_TWOHANDQUICKEN','attack',60,5,500,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@SM_MAGNUM','attack',7,10,500,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@TF_THROWSTONE','chase',152,1,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2017,'Rata@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','attack',28,5,5000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@AS_SONICBLOW','attack',136,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@KN_TWOHANDQUICKEN','attack',60,5,500,0,300000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','attack',21,5,1000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@MG_THUNDERSTORM','chase',21,5,1000,1500,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_BLINDATTACK','chase',177,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_DARKSTRIKE','attack',340,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_DARKSTRIKE','chase',340,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_MAGICALATTACK','attack',192,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@NPC_UNDEADATTACK','attack',347,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@PF_SPIDERWEB','chase',405,1,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','attack',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2018,'Duneyrr@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@AL_HEAL','idle',28,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_PIERCINGATT','attack',158,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_STUNATTACK','attack',179,5,500,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@PR_LEXDIVINA','chase',76,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@MG_COLDBOLT','attack',14,3,3000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@NPC_WATERATTACK','attack',184,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@WZ_WATERBALL','attack',86,3,2000,100,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2027,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2027,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','onspawn',0,2027,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','idle',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','chase',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_MAGICMIRROR','attack',671,3,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','chase',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_STONESKIN','attack',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_POWERUP','attack',349,5,6000,0,60000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','attack',670,4,500,0,25000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','chase',92,5,10000,700,5000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_QUAGMIRE','attack',92,5,10000,700,120000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','chase',653,2,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EARTHQUAKE','attack',653,2,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','idle',353,1,2000,200,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_INVISIBLE','chase',353,1,2000,200,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','idle',670,10,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_EVILLAND','chase',670,10,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_HELLJUDGEMENT','attack',662,2,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DARKNESSBREATH','attack',658,10,10000,800,35000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_SLOWCAST','attack',672,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','chase',677,5,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDECURSE','attack',677,5,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_FIREBREATH','attack',654,5,10000,800,15000,'no','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','chase',668,5,10000,3000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_WIDESLEEP','attack',668,5,30000,1000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@MG_FIREBALL','chase',17,5,10000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@WZ_METEOR','attack',83,10,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_PULSESTRIKE','attack',661,5,2000,10000,40000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
-REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggr\'s Shadow@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_BLINDATTACK','attack',177,2,1000,0,6000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_POISON','attack',176,3,1000,500,60000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (2026,'Dandelion@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,8);
-
-REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-#****
-# NC Mechanic Summons
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@MG_FIREBOLT','attack',19,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@MG_FIREBOLT','chase',19,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy Fire@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@MG_COLDBOLT','attack',14,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@MG_COLDBOLT','chase',14,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy Water@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@WZ_EARTHSPIKE','attack',90,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@WZ_EARTHSPIKE','chase',90,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy Earth@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@MG_LIGHTNINGBOLT','attack',20,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@MG_LIGHTNINGBOLT','chase',20,10,10000,800,3500,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','chase',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','idle',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy Wind@AL_HEAL','attack',28,10,10000,0,1000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_ATTRICHANGE','idle',161,1,500,2000,50000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',0,20,0x81,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION','idle',197,1,100,0,60000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION','attack',197,1,10000,0,60000,'yes','self','always',0,6,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',0,22,0xC3,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2019,'Ancient Tree@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_CRITICALSLASH','attack',170,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2020,'Rhyncho@NPC_STUNATTACK','attack',179,5,500,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@MG_COLDBOLT','attack',14,3,3000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@NPC_WATERATTACK','attack',184,1,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@PR_LEXDIVINA','chase',76,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2021,'Phylla@WZ_WATERBALL','attack',86,3,2000,100,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@MG_FIREBALL','chase',17,5,10000,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_DARKNESSBREATH','attack',658,10,10000,800,35000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_EARTHQUAKE','attack',653,2,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,33);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_EARTHQUAKE','chase',653,2,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_EVILLAND','attack',670,4,500,0,25000,'yes','self','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_EVILLAND','idle',670,10,500,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_EVILLAND','chase',670,10,500,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_FIREBREATH','attack',654,5,10000,800,15000,'no','target','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_HELLJUDGEMENT','attack',662,2,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_INVISIBLE','idle',353,1,2000,200,5000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_INVISIBLE','chase',353,1,2000,200,5000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_MAGICMIRROR','attack',671,3,10000,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_MAGICMIRROR','idle',671,3,10000,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_MAGICMIRROR','chase',671,3,10000,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_POWERUP','attack',349,5,6000,0,60000,'yes','self','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_PULSESTRIKE','attack',661,5,2000,10000,40000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,31);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_SLOWCAST','attack',672,5,10000,0,60000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_STONESKIN','attack',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_STONESKIN','chase',675,3,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2027,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2027,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','onspawn',0,2027,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDEBLEEDING','attack',665,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDEBLEEDING','chase',665,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDECURSE','attack',677,5,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDECURSE','chase',677,5,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDESLEEP','attack',668,5,10000,1000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDESLEEP','chase',668,5,10000,3000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@NPC_WIDESTONE','chase',666,5,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@WZ_METEOR','attack',83,10,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@WZ_QUAGMIRE','attack',92,5,10000,700,120000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2022,'Nidhoggur\'s Shadow@WZ_QUAGMIRE','chase',92,5,10000,700,5000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2023,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2024,'Bradium Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Runaway Dandelion Member@NPC_BLINDATTACK','attack',177,2,1000,0,6000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,29);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Runaway Dandelion Member@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,27);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Runaway Dandelion Member@NPC_POISON','attack',176,3,1000,500,60000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,30);
+REPLACE INTO `mob_skill_db` VALUES (2026,'Runaway Dandelion Member@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,28);
+REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2027,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2042,'Silver Sniper@NPC_REVENGE','idle',333,1,10000,0,0,'yes','self','masterattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2043,'Magic Decoy@MG_FIREBOLT','idle',19,10,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2044,'Magic Decoy@MG_COLDBOLT','idle',14,10,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2045,'Magic Decoy@WZ_EARTHSPIKE','idle',90,10,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2046,'Magic Decoy@MG_LIGHTNINGBOLT','idle',20,10,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@AL_HEAL','idle',28,9,10000,3000,5000,'yes','friend','friendhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@AL_HEAL','idle',28,9,5000,500,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_BLOODDRAIN','attack',199,1,5000,500,5000,'yes','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_SPLASHATTACK','attack',174,1,3000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@WZ_WATERBALL','attack',86,4,2000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@MG_COLDBOLT','attack',14,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@NPC_SLOWCAST','attack',672,2,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',0,6,0x3885,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@SM_PROVOKE','chase',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@SM_PROVOKE','attack',6,3,500,600,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2047,'Naga@HW_GANBANTEIN','attack',483,1,2000,0,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@MG_FIREWALL','chase',18,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_DARKBLESSING','attack',203,1,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_HELMBRAKE','attack',345,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_SUMMONSLAVE','attack',196,2,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@NPC_SUMMONSLAVE','idle',196,2,10000,700,10000,'no','self','slavele',3,1605,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@WZ_METEOR','attack',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2052,'Dark Lord@WZ_METEOR','chase',83,11,5000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Brasilis
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@CR_REFLECTSHIELD','idle',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@KN_TWOHANDQUICKEN','attack',60,20,2000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2048,'Dark Pinguicula@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2049,'Bradium Golem@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@MG_COLDBOLT','attack',14,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@MG_FROSTDIVER','chase',15,9,10000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@NPC_SLEEPATTACK','attack',182,3,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@NPC_SLOWCAST','attack',672,2,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@WZ_FROSTNOVA','attack',88,10,10000,1500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2050,'Aqua Elemental@WZ_WATERBALL','attack',86,4,2000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_ATTRICHANGE','idle',161,1,500,2000,50000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,10,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION','idle',197,1,100,0,60000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION','attack',197,1,10000,0,60000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',NULL,20,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2053,'Dimik@NPC_EMOTION_ON','idle',474,1,100,0,60000,'yes','self','always',NULL,22,0x0083,NULL,NULL,NULL,NULL,NULL);
+-- Brasilis
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@CR_REFLECTSHIELD','attack',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@CR_REFLECTSHIELD','idle',252,3,1000,0,200000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@KN_TWOHANDQUICKEN','attack',60,10,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','idle',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@MG_FIREBALL','chase',17,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','attack',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','idle',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_SUMMONSLAVE','chase',196,5,10000,1000,30000,'no','self','slavele',1,2082,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_WATERATTACK','attack',184,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,3,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@MG_FROSTDIVER','chase',15,10,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_WATERATTACK','attack',184,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_CURSEATTACK','attack',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREBOLT','attack',19,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREBOLT','chase',19,5,2000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AS_SONICBLOW','attack',136,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,7,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','idle',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','attack',16,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@AL_INCAGI','chase',29,1,500,700,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','attack',26,1,3000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-# REPLACE INTO `mob_skill_db` VALUES (2080,'Crystal@AL_TELEPORT','idle',26,1,4000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_WATERATTACK','attack',184,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# El Dicastes (13.3)
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_COMBOATTACK','chase',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,19,0x181,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2083,'Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',0,6,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,19,0x181,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2084,'Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',0,6,0x3195,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2068,'Boitata@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@MG_FROSTDIVER','attack',15,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@MG_FROSTDIVER','chase',15,10,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,3,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@NPC_WATERATTACK','attack',184,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@SM_BASH','attack',5,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2069,'Iara@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@NPC_WATERATTACK','attack',184,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2070,'Piranha@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREBOLT','attack',19,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREBOLT','chase',19,5,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@MG_FIREWALL','chase',18,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_CURSEATTACK','attack',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_CURSEATTACK','chase',181,1,1000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2071,'Headless Mule@SM_BASH','attack',5,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@AS_SONICBLOW','attack',136,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_COMBOATTACK','attack',171,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_DARKNESSATTACK','attack',190,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2072,'Jaguar@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_TELEKINESISATTACK','chase',191,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2073,'Toucan@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@AL_INCAGI','chase',29,1,500,700,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','attack',16,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@MG_STONECURSE','idle',16,5,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2074,'Curupira@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2080,'Large Crystal@AL_TELEPORT','attack',26,1,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2080,'Large Crystal@AL_TELEPORT','idle',26,1,4000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@NPC_WATERATTACK','attack',184,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2082,'Piranha@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- 13.2 (Dicastes)
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_BLEEDING','attack',660,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_COMBOATTACK','chase',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2083,'Uni Horn Scaraba@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@NPC_STOP','attack',342,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2084,'Horn Scaraba@SM_BASH','attack',5,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@PF_SPIDERWEB','chase',405,1,300,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@PF_SPIDERWEB','chase',405,1,300,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',0,6,0x3095,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@CR_AUTOGUARD','attack',249,10,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2085,'Antler Scaraba@PF_SPIDERWEB','chase',405,1,300,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2086,'Rake Scaraba@PF_SPIDERWEB','chase',405,1,300,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','attack',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','chase',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','attack',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_HEAL','chase',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@CR_AUTOGUARD','attack',249,10,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2145,2144,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2145,2144,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2088,'Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2083,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2089,'Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2084,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2090,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2085,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2091,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2086,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@AS_VENOMDUST','angry',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_DECAGI','chase',30,11,2000,0,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_ARMORBRAKE','attack',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_ARMORBRAKE','chase',344,10,2000,500,300000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@LK_SPIRALPIERCE','attack',397,5,1500,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,15,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@MG_THUNDERSTORM','attack',21,15,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@MG_THUNDERSTORM','chase',21,10,10000,1500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@CR_AUTOGUARD','attack',249,10,2000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'no','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@MG_FIREBALL','chase',17,20,4000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@MG_FIREBALL','chase',17,20,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AM_DEMONSTRATION','attack',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AM_DEMONSTRATION','chase',229,5,2000,0,2000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'no','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'no','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_WIDEBLEEDING','attack',665,4,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2087,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2088,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2083,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2089,'Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2084,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2090,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2085,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2091,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2086,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@AS_VENOMDUST','angry',140,1,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_POISON','attack',176,2,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2092,'Dolomedes@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_DECAGI','chase',30,10,2000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@CR_AUTOGUARD','attack',249,10,2000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@LK_SPIRALPIERCE','attack',397,5,1500,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@MG_THUNDERSTORM','attack',21,10,2000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@MG_THUNDERSTORM','chase',21,10,10000,1500,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_ARMORBRAKE','attack',344,10,2000,500,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_ARMORBRAKE','chase',344,10,2000,500,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'yes','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2094,'Orc Hero@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'yes','self','slavele',3,1439,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AM_DEMONSTRATION','attack',229,5,2000,0,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AM_DEMONSTRATION','chase',229,5,2000,0,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@MG_FIREBALL','chase',17,10,4000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@MG_FIREBALL','chase',17,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_BLEEDING','attack',660,5,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_SUMMONSLAVE','attack',196,8,10000,700,10000,'yes','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_SUMMONSLAVE','idle',196,8,10000,700,10000,'yes','self','slavele',3,1603,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,1060,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@SM_MAGNUM','attack',7,20,3000,0,2000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@MG_STONECURSE','attack',16,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CURSEATTACK','attack',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CURSEATTACK','chase',181,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKBREATH','attack',202,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKBREATH','chase',202,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_POISONATTACK','attack',188,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,0,0,'no','self','onspawn',0,1029,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2095,'Eddga@SM_MAGNUM','attack',7,10,3000,0,2000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@AS_VENOMDUST','attack',140,5,2000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@ASC_METEORASSAULT','attack',406,10,10000,500,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@MG_STONECURSE','attack',16,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CURSEATTACK','attack',181,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_CURSEATTACK','chase',181,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKBREATH','attack',202,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKBREATH','chase',202,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKTHUNDER','chase',341,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,700,10000,'yes','self','slavele',3,1522,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_SUMMONSLAVE','idle',196,7,10000,0,0,'no','self','onspawn',0,1029,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKTHUNDER','chase',341,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@NPC_DARKTHUNDER','chase',341,10,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@WZ_QUAGMIRE','chase',92,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_DECAGI','chase',30,11,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@MO_BODYRELOCATION','chase',264,1,2000,200,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SUMMONSLAVE','attack',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SUMMONSLAVE','idle',196,16,10000,700,5000,'no','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,20,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'no','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_DECAGI','attack',30,11,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_DECAGI','chase',30,11,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'no','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','chase',110,11,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','attack',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','chase',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','target','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','target','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@SM_BASH','attack',5,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2096,'Osiris@WZ_QUAGMIRE','chase',92,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_DECAGI','chase',30,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@AS_GRIMTOOTH','chase',137,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@MO_BODYRELOCATION','chase',264,1,2000,200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_BLOODDRAIN','attack',199,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_ENERGYDRAIN','chase',200,1,3000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_ENERGYDRAIN','chase',200,1,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_HELLJUDGEMENT','attack',662,10,10000,500,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_HELLJUDGEMENT','chase',662,10,10000,500,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','attack',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','idle',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_INVISIBLE','chase',353,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SUMMONSLAVE','attack',196,16,10000,700,5000,'yes','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2097,'Dracula@NPC_SUMMONSLAVE','idle',196,16,10000,700,5000,'yes','self','slavele',5,1419,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_DECAGI','attack',30,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_DECAGI','chase',30,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','attack',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','chase',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@BS_HAMMERFALL','chase',110,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@CR_AUTOGUARD','attack',249,10,2000,500,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@CR_AUTOGUARD','chase',249,10,2000,500,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@KN_TWOHANDQUICKEN','attack',60,10,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@LK_SPIRALPIERCE','attack',397,5,10000,1000,10000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2098,'Doppelganger@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',3,1427,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','attack',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','chase',28,10,10000,0,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_PNEUMA','attack',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_PNEUMA','chase',25,1,2000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','attack',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','chase',178,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SILENCEATTACK','chase',178,5,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_STOP','attack',342,1,2000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1604,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1156,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_STOP','attack',342,1,2000,0,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@WZ_JUPITEL','attack',84,28,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@WZ_JUPITEL','chase',84,28,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@WZ_JUPITEL','attack',84,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2099,'Mistress@WZ_JUPITEL','chase',84,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@MO_BODYRELOCATION','chase',264,1,2000,200,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_DARKBREATH','attack',202,5,2000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_DARKSTRIKE','chase',340,10,2000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_EARTHQUAKE','attack',653,5,10000,2000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_EARTHQUAKE','chase',653,5,10000,2000,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'yes','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'yes','self','slavele',3,1431,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,1101,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','chase',85,20,5000,500,2000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@AL_DECAGI','chase',30,11,2000,0,60000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_STUNATTACK','attack',179,5,2000,0,0,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of Death@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WATERATTACK','attack',184,10,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'no','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_STORMGUST','chase',89,10,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_STORMGUST','attack',89,11,5000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_FROSTNOVA','chase',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_FROSTNOVA','attack',88,10,5000,0,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_HEAL','idle',28,11,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@MG_FROSTDIVER','attack',15,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@MG_FROSTDIVER','chase',15,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_STOP','attack',342,1,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@SM_MAGNUM','attack',7,20,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2104,'Dark Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@BS_MAXIMIZE','attack',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@BS_MAXIMIZE','chase',114,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_STUNATTACK','attack',179,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'no','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',5,1669,1675,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_POWERUP','attack',349,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CRITICALSLASH','attack',170,1,5000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@WZ_METEOR','attack',83,11,500,10000,20000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_EMOTION','idle',197,1,1000,0,0,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_SUMMONSLAVE','idle',196,2,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDECURSE','attack',677,5,2000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKCROSS','attack',338,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_HOLYCROSS','attack',253,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_GRANDDARKNESS','chase',339,10,500,1300,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_GRANDDARKNESS','attack',339,10,500,1300,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_GRANDCROSS','chase',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_GRANDCROSS','attack',254,10,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_VAMPIRE_GIFT','attack',679,2,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'no','target','myhpltmaxrate',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_MAGICMIRROR','attack',671,1,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDESILENCE','chase',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDESILENCE','attack',663,5,5000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKNESSATTACK','attack',190,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKNESSBREATH','attack',658,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_FIREATTACK','attack',186,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_TELEKINESISATTACK','attack',191,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@WZ_FIREPILLAR','idle',80,11,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_POWERUP','attack',349,5,2000,700,50000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@SM_MAGNUM','attack',7,20,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@WZ_SIGHTRASHER','attack',81,20,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@MG_FIREBALL','attack',17,20,1000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@MG_FIREBALL','chase',17,20,10000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'no','self','slavele',3,1787,1787,1786,1786,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'no','self','slavele',3,1787,1787,1786,1786,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','idle',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','chase',196,3,10000,2000,5000,'no','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','attack',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','chase',85,10,2000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2100,'Baphomet@WZ_VERMILION','chase',85,10,5000,500,2000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@AL_DECAGI','chase',30,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_CHANGEUNDEAD','attack',348,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_DARKSTRIKE','chase',340,10,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_GRANDDARKNESS','attack',339,10,1000,700,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_STUNATTACK','attack',179,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'yes','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2101,'Lord of the Dead@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'yes','self','slavele',3,1490,1490,1509,1508,1179,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@MG_FIREWALL','chase',18,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_DARKBLESSING','attack',203,1,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_HELLJUDGEMENT','attack',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_HELLJUDGEMENT','chase',662,5,10000,800,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_HELMBRAKE','attack',345,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@WZ_METEOR','attack',83,10,5000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@WZ_METEOR','chase',83,10,5000,500,2000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2102,'Dark Lord@WZ_METEOR','chase',83,10,5000,500,2000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_SUMMONSLAVE','attack',196,6,10000,700,30000,'yes','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_SUMMONSLAVE','idle',196,6,10000,700,30000,'yes','self','slavele',3,1788,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WATERATTACK','attack',184,10,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WIDEFREEZE','attack',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@NPC_WIDEFREEZE','chase',664,5,10000,0,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_FROSTNOVA','attack',88,10,5000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_FROSTNOVA','chase',88,10,5000,0,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_STORMGUST','attack',89,10,5000,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_STORMGUST','chase',89,10,5000,1000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2103,'Ktullanux@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@MG_FROSTDIVER','attack',15,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@MG_FROSTDIVER','chase',15,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_DARKBREATH','attack',202,5,2000,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_SHIELDBRAKE','attack',346,10,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_STOP','attack',342,1,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',2,1531,1531,1564,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2104,'Evil Snake Lord@SM_MAGNUM','attack',7,10,2000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@BS_MAXIMIZE','attack',114,5,500,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@BS_MAXIMIZE','chase',114,5,500,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_SUMMONSLAVE','attack',196,6,10000,700,10000,'yes','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_SUMMONSLAVE','idle',196,6,10000,700,10000,'yes','self','slavele',3,1364,1594,1600,1601,1602,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@WZ_WATERBALL','attack',86,5,2000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2105,'Turtle General@WZ_WATERBALL','chase',86,10,10000,500,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CALLSLAVE','attack',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CALLSLAVE','idle',352,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_CRITICALSLASH','attack',170,1,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_EMOTION','idle',197,1,1000,0,0,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_POWERUP','attack',349,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'yes','self','slavele',15,1669,1675,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1365,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2106,'Vesper@WZ_METEOR','attack',83,10,500,10000,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_GRANDCROSS','attack',254,10,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_GRANDCROSS','chase',254,10,500,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@CR_HOLYCROSS','attack',253,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@MG_SAFETYWALL','attack',12,10,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKCROSS','attack',338,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKNESSATTACK','attack',190,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKNESSBREATH','attack',658,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_DARKSTRIKE','chase',340,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_EVILLAND','attack',670,10,10000,1000,600000,'yes','self','myhpltmaxrate',44,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_EVILLAND','attack',670,7,500,500,5000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_GRANDDARKNESS','attack',339,10,500,1300,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_GRANDDARKNESS','chase',339,10,500,1300,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_HELLJUDGEMENT','attack',662,4,10000,800,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_HELLJUDGEMENT','chase',662,4,10000,800,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_MAGICMIRROR','attack',671,1,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SLOWCAST','attack',672,5,2000,800,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SLOWCAST','chase',672,5,2000,300,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1868,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_VAMPIRE_GIFT','attack',679,2,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDECURSE','attack',677,5,2000,800,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDESILENCE','attack',663,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@NPC_WIDESILENCE','chase',663,5,5000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@PR_LEXAETERNA','attack',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2107,'Fallen Bishop@PR_LEXAETERNA','chase',78,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@KN_PIERCE','attack',56,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@MG_FIREBALL','attack',17,10,1000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@MG_FIREBALL','chase',17,10,10000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_FIREBREATH','chase',654,10,2000,500,10000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_POWERUP','attack',349,5,2000,700,50000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_POWERUP','attack',349,5,10000,700,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_SUMMONSLAVE','attack',196,4,10000,700,30000,'yes','self','slavele',3,1787,1787,1786,1786,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_SUMMONSLAVE','idle',196,4,10000,700,30000,'yes','self','slavele',3,1787,1787,1786,1786,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@NPC_TELEKINESISATTACK','attack',191,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@WZ_FIREPILLAR','idle',80,10,1000,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2108,'Gloom Under Night@WZ_SIGHTRASHER','attack',81,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','attack',196,3,10000,2000,5000,'yes','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','idle',196,3,10000,2000,5000,'yes','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','chase',196,3,10000,2000,5000,'yes','self','slavele',1,1891,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_SUMMONSLAVE','idle',196,3,10000,0,0,'no','self','onspawn',0,1765,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@HW_GANBANTEIN','attack',483,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@KN_TWOHANDQUICKEN','attack',60,20,10000,0,90000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@KN_BRANDISHSPEAR','attack',57,20,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@MG_THUNDERSTORM','attack',21,15,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@WZ_VERMILION','attack',85,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@WZ_VERMILION','chase',85,20,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_HEAL','idle',28,11,10000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','attack',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','idle',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','chase',196,2,10000,1000,30000,'no','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@WZ_METEOR','attack',83,11,2000,500,5000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1641,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@MC_MAMMONITE','attack',42,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@MC_MAMMONITE','attack',42,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@BS_HAMMERFALL','chase',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@BS_HAMMERFALL','attack',110,11,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@ST_FULLSTRIP','attack',476,5,1500,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2111,'Whitesmith Harword@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1641,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@WZ_VERMILION','attack',85,10,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2109,'Valkyrie Randgris@WZ_VERMILION','chase',85,10,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_FIREBREATH','attack',654,10,2000,500,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_FIREBREATH','chase',654,10,2000,500,5000,'yes','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','attack',196,2,10000,1000,30000,'yes','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','idle',196,2,10000,1000,30000,'yes','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@NPC_SUMMONSLAVE','chase',196,2,10000,1000,30000,'yes','self','slavele',1,1834,1835,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2110,'Ifrit@WZ_METEOR','attack',83,10,2000,500,5000,'yes','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@BS_ADRENALINE','attack',111,10,2000,0,150000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@BS_HAMMERFALL','attack',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@BS_HAMMERFALL','chase',110,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@BS_MAXIMIZE','attack',114,1,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@MC_MAMMONITE','attack',42,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_ARMORBRAKE','attack',344,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CHANGEGROUND','attack',163,1,10000,500,6000000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_HELMBRAKE','attack',345,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_SHIELDBRAKE','attack',346,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_SPLASHATTACK','attack',174,1,1000,0,0,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1640,1641,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1640,1641,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@NPC_WATERATTACK','attack',184,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2111,'MasterSmith Howard@ST_FULLSTRIP','attack',476,5,1500,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_SPEARBOOMERANG','idle',59,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_SPEARBOOMERANG','chase',59,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@LK_SPIRALPIERCE','attack',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@LK_SPIRALPIERCE','chase',397,5,2000,0,5000,'yes','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1641,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1641,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_BASH','attack',5,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_BASH','attack',5,10,2000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_MAGNUM','attack',7,10,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_FIREATTACK','attack',186,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,1640,1642,1643,1644,1645,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-
-# Bifrost (14.1)
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','idle',687,1,3000,20000,20000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','walk',687,1,3000,20000,20000,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_MAGICMIRROR','chase',671,1,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_MAGICMIRROR','attack',671,1,10000,0,120000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_STONESKIN','chase',675,1,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_STONESKIN','attack',675,1,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,4);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_POWERUP','attack',349,1,6000,0,60000,'yes','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','attack',670,2,500,0,25000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_QUAGMIRE','chase',92,2,10000,700,5000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_QUAGMIRE','attack',92,2,10000,700,120000,'no','target','myhpltmaxrate',8,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EARTHQUAKE','chase',653,1,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EARTHQUAKE','attack',653,1,10000,10000,180000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESTONE','chase',666,1,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESTONE','attack',666,1,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','idle',670,5,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','chase',670,5,500,0,120000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_HELLJUDGEMENT','chase',662,1,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_HELLJUDGEMENT','attack',662,1,10000,7000,25000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,2);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DARKNESSBREATH','attack',658,3,10000,800,35000,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_SLOWCAST','attack',672,1,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDECURSE','chase',677,1,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDECURSE','attack',677,1,10000,1000,25000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_FIREBREATH','attack',654,1,10000,800,15000,'no','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESLEEP','chase',668,1,10000,3000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESLEEP','attack',668,1,30000,1000,20000,'no','self','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@MG_FIREBALL','chase',17,1,10000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DRAGONFEAR','chase',659,1,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DRAGONFEAR','attack',659,1,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_METEOR','attack',83,3,2000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@SA_DISPELL','attack',289,1,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_PULSESTRIKE','attack',661,1,2000,10000,40000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,1);
-REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@AS_VENOMDUST','angry',140,1,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@CR_AUTOGUARD','attack',249,2,700,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_PROVOKE','attack',6,10,1000,0,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2112,'Lord Knight Seyren@SM_PROVOKE','chase',6,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','idle',137,5,10000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,2000,0,0,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_GRIMTOOTH','chase',137,5,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_SONICBLOW','attack',136,10,3000,0,0,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_VENOMDUST','attack',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@AS_VENOMDUST','idle',140,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@ASC_BREAKER','chase',379,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@ASC_METEORASSAULT','attack',406,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_GUIDEDATTACK','attack',172,10,2000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'yes','self','slavele',3,1640,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'yes','self','slavele',3,1640,1642,1643,1644,1645,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2113,'Assassin Cross Eremes@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- 14.1
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@MG_FIREBALL','chase',17,1,10000,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','idle',687,1,10000,120000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','idle',687,1,3000,20000,20000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_ALLHEAL','walk',687,1,3000,20000,20000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DARKNESSBREATH','attack',658,3,10000,800,35000,'no','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DRAGONFEAR','attack',659,1,2000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_DRAGONFEAR','chase',659,1,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EARTHQUAKE','attack',653,4,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EARTHQUAKE','chase',653,4,10000,10000,180000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','attack',670,2,500,0,25000,'yes','self','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','idle',670,5,500,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_EVILLAND','chase',670,5,500,0,120000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_FIREBREATH','attack',654,1,10000,800,15000,'no','target','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_HELLJUDGEMENT','attack',662,1,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_HELLJUDGEMENT','chase',662,1,10000,7000,25000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,32);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_MAGICMIRROR','attack',671,1,10000,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_MAGICMIRROR','chase',671,1,10000,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_POWERUP','attack',349,1,6000,0,60000,'yes','self','myhpltmaxrate',15,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_PULSESTRIKE','attack',661,1,2000,10000,40000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,31);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_SLOWCAST','attack',672,1,10000,0,60000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_STONESKIN','attack',675,1,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_STONESKIN','chase',675,1,10000,2500,300000,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,34);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'no','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'no','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDEBLEEDING','attack',665,3,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDEBLEEDING','chase',665,3,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDECURSE','attack',677,2,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDECURSE','chase',677,2,10000,1000,25000,'no','self','myhpltmaxrate',75,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESLEEP','attack',668,3,3000,1000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESLEEP','chase',668,3,10000,3000,20000,'no','self','myhpltmaxrate',95,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESTONE','attack',666,1,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@NPC_WIDESTONE','chase',666,1,10000,0,60000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@SA_DISPELL','attack',289,1,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_METEOR','attack',83,3,2000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_QUAGMIRE','attack',92,2,10000,700,120000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2131,'Lost Dragon@WZ_QUAGMIRE','chase',92,2,10000,700,5000,'no','target','myhpltmaxrate',28,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@AS_VENOMDUST','angry',140,1,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_BLEEDING','attack',660,2,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_POISON','attack',176,2,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@NPC_POISONATTACK','attack',188,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@PF_SPIDERWEB','attack',405,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@PF_SPIDERWEB','idle',405,1,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2132,'Pom Spider@WZ_QUAGMIRE','chase',92,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@CR_AUTOGUARD','attack',249,2,700,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
REPLACE INTO `mob_skill_db` VALUES (2133,'Angra Mantis@NPC_SUMMONSLAVE','idle',196,1,10000,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,1,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_HEAVENDRIVE','attack',91,2,500,500,25000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',0,2,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@MG_LIGHTNINGBOLT','chase',20,5,10000,1500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@MG_THUNDERSTORM','attack',21,3,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_COMBOATTACK','attack',171,2,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2138,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (2138,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,5);
-REPLACE INTO `mob_skill_db` VALUES (2139,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (2139,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,6);
-REPLACE INTO `mob_skill_db` VALUES (2140,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (2140,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,7);
-REPLACE INTO `mob_skill_db` VALUES (2141,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,8);
-REPLACE INTO `mob_skill_db` VALUES (2141,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,8);
-REPLACE INTO `mob_skill_db` VALUES (2142,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (2142,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,9);
-REPLACE INTO `mob_skill_db` VALUES (2143,'Nydhogg\'s Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-REPLACE INTO `mob_skill_db` VALUES (2143,'Nydhogg\'s Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,0);
-
-# Queen Scaraba Slaves
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@BS_ADRENALINE','attack',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@BS_ADRENALINE','chase',111,10,500,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_GROUNDATTACK','attack',185,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_SILENCEATTACK','attack',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@SM_PROVOKE','angry',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@SM_PROVOKE','follow',6,10,2000,600,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,23,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,1,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_EARTHSPIKE','attack',90,3,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2134,'Parus@WZ_HEAVENDRIVE','attack',91,2,500,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@MG_LIGHTNINGBOLT','chase',20,5,10000,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@MG_THUNDERSTORM','attack',21,3,2000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_EMOTION','walk',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@PR_LEXAETERNA','attack',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@PR_LEXAETERNA','chase',78,1,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@SA_REVERSEORCISH','attack',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@SA_REVERSEORCISH','chase',294,1,50,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@TF_SPRINKLESAND','attack',149,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2136,'Little Fatum@WZ_JUPITEL','chase',84,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@MG_COLDBOLT','attack',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@MG_COLDBOLT','chase',14,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_BLEEDING','attack',660,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_COMBOATTACK','attack',171,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALSLASH','angry',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_CRITICALWOUND','attack',673,1,50,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_SILENCEATTACK','attack',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_SILENCEATTACK','chase',178,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@SA_REVERSEORCISH','attack',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@SA_REVERSEORCISH','chase',294,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2137,'Miming@WZ_WATERBALL','attack',86,3,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2138,'Nydhoggur Memory@NPC_SUMMONSLAVE','idle',196,1,10000,0,0,'no','self','onspawn',0,2139,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2138,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,35);
+REPLACE INTO `mob_skill_db` VALUES (2138,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,35);
+REPLACE INTO `mob_skill_db` VALUES (2139,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,36);
+REPLACE INTO `mob_skill_db` VALUES (2139,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,36);
+REPLACE INTO `mob_skill_db` VALUES (2140,'Nydhoggur Memory@NPC_SUMMONSLAVE','idle',196,1,10000,0,0,'no','self','onspawn',0,2141,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2140,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,37);
+REPLACE INTO `mob_skill_db` VALUES (2140,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,37);
+REPLACE INTO `mob_skill_db` VALUES (2141,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,40);
+REPLACE INTO `mob_skill_db` VALUES (2141,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,38);
+REPLACE INTO `mob_skill_db` VALUES (2141,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,38);
+REPLACE INTO `mob_skill_db` VALUES (2142,'Nydhoggur Memory@NPC_SUMMONSLAVE','idle',196,1,10000,0,0,'no','self','onspawn',0,2143,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2142,'Nydhoggur Memory@NPC_TALK','attack',682,10,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,39);
+REPLACE INTO `mob_skill_db` VALUES (2142,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,39);
+REPLACE INTO `mob_skill_db` VALUES (2143,'Nydhoggur Memory@NPC_TALK','idle',682,10,2500,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,40);
+-- Queen Scaraba Slaves
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@BS_ADRENALINE','attack',111,10,500,1500,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@BS_ADRENALINE','chase',111,10,500,1500,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@WZ_QUAGMIRE','chase',92,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@WZ_QUAGMIRE','attack',92,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_WIDESTONE','chase',666,2,1000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_EVILLAND','chase',670,2,500,0,120000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_HELLJUDGEMENT','attack',662,1,500,7000,25000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_DARKNESSBREATH','attack',658,1,500,800,35000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_SLOWCAST','attack',672,1,200,0,60000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_FIREBREATH','attack',654,1,1000,800,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_WIDESLEEP','chase',668,1,200,3000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_WIDESLEEP','attack',668,1,200,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@MG_FIREBALL','chase',17,5,3000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_DRAGONFEAR','chase',659,2,1000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_DRAGONFEAR','attack',659,2,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2146,'G_S_NYDHOG@NPC_PULSESTRIKE','attack',661,1,500,10000,40000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Dewata
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@AL_HEAL','idle',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@AL_HEAL','chase',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@MG_SOULSTRIKE','chase',13,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@NPC_POISONATTACK','chase',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2151,'Alnoldi@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@AL_HEAL','attack',28,3,10000,500,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@KN_BOWLINGBASH','attack',62,5,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@AS_VENOMDUST','chase',140,1,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@AS_VENOMDUST','attack',140,1,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_POISON','attack',176,3,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_POISONATTACK','chase',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2144,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2145,'Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@MG_FIREBALL','chase',17,5,3000,0,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_CRITICALWOUND','attack',673,1,2000,0,30000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_DARKNESSBREATH','attack',658,1,500,800,35000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_DRAGONFEAR','attack',659,2,2000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_DRAGONFEAR','chase',659,2,1000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_EVILLAND','chase',670,2,500,0,120000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_FIREBREATH','attack',654,1,1000,800,15000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_HELLJUDGEMENT','attack',662,1,500,7000,25000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_HELLJUDGEMENT','chase',662,2,10000,7000,25000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_PULSESTRIKE','attack',661,1,500,10000,40000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_SLOWCAST','attack',672,1,200,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_WIDESLEEP','attack',668,1,200,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_WIDESLEEP','chase',668,1,200,3000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_WIDESTONE','attack',666,5,10000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@NPC_WIDESTONE','chase',666,2,1000,0,60000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@WZ_QUAGMIRE','attack',92,2,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2146,'Shade of Dragon@WZ_QUAGMIRE','chase',92,2,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2151,'Rafflesia Arnoldi@AL_HEAL','attack',28,8,10000,500,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2151,'Rafflesia Arnoldi@AL_HEAL','attack',28,8,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2151,'Rafflesia Arnoldi@MG_SOULSTRIKE','attack',13,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2151,'Rafflesia Arnoldi@NPC_GROUNDATTACK','attack',185,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2151,'Rafflesia Arnoldi@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@KN_SPEARSTAB','attack',58,3,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','always',NULL,28,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_POISON','attack',176,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2152,'Comodo@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_INCAGI','chase',29,5,500,700,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,30,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_AGIUP','chase',350,5,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_AGIUP','attack',350,5,2000,0,120000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_ALLHEAL','idle',687,1,10000,10000,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_ALLHEAL','chase',687,1,10000,10000,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_ALLHEAL','attack',687,1,10000,10000,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_HELLJUDGEMENT','chase',662,3,10000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_HELLJUDGEMENT','attack',662,3,10000,800,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@SA_LANDPROTECTOR','attack',288,1,10000,500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@AL_PNEUMA','chase',25,1,1000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@LK_SPIRALPIERCE','chase',397,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@LK_SPIRALPIERCE','attack',397,5,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_PULSESTRIKE','attack',661,5,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_SHIELDBRAKE','attack',346,5,1000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@WZ_SIGHTRASHER','attack',81,7,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@WZ_FIREPILLAR','idle',80,5,10000,0,30000,'yes','around2','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SLEEPATTACK','chase',182,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SLEEPATTACK','attack',182,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SILENCEATTACK','chase',178,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SILENCEATTACK','attack',178,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@LK_SPIRALPIERCE','attack',397,5,500,1000,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_ALLHEAL','idle',687,1,10000,10000,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_SHIELDBRAKE','attack',346,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@NPC_SUMMONSLAVE','idle',196,1,500,2000,60000,'no','self','slavele',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2153,'Cendrawasih@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@RG_STRIPWEAPON','attack',215,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2154,'Banaspaty@WZ_SIGHTRASHER','attack',81,7,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2155,'Butoijo@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_HEAL','attack',28,9,10000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_PNEUMA','attack',25,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_HEAL','idle',28,11,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_HEAL','chase',28,11,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@AL_HEAL','attack',28,11,10000,500,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@RG_STRIPWEAPON','attack',215,5,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SLOWCAST','attack',672,5,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_PULSESTRIKE','attack',661,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@SA_LANDPROTECTOR','attack',288,1,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_HELLJUDGEMENT','chase',662,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_HELLJUDGEMENT','attack',662,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_DRAGONFEAR','chase',659,5,10000,0,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_DRAGONFEAR','attack',659,5,10000,0,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDECURSE','chase',677,5,10000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDECURSE','attack',677,5,10000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESILENCE','chase',663,5,10000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESILENCE','attack',663,5,10000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDEBLEEDING','chase',665,5,5000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDEBLEEDING','attack',665,5,5000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESTUN','chase',678,5,2000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESTUN','attack',678,5,2000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESLEEP','chase',668,5,2000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESLEEP','attack',668,5,2000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','chase',196,5,10000,700,10000,'no','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','idle',196,5,10000,0,0,'no','self','onspawn',0,2154,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@MG_FIREBALL','chase',17,9,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@WZ_SIGHTRASHER','attack',81,7,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Scaraba Hole Nightmare Mode
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@RG_STRIPHELM','attack',218,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_HELMBRAKE','attack',345,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_BLEEDING','attack',660,2,500,500,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_COMBOATTACK','attack',171,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,20,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','chase',91,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','attack',91,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','chase',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2161,'Gold One-Horn Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@RG_STRIPSHIELD','attack',216,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_SHIELDBRAKE','attack',346,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_BLEEDING','attack',660,2,500,500,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@SM_BASH','attack',5,20,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_COMBOATTACK','attack',171,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,20,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','chase',21,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','attack',21,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','chase',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','attack',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2162,'Gold Two-Horn Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@RG_STRIPARMOR','attack',217,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_ARMORBRAKE','attack',344,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@BS_ADRENALINE','chase',111,10,1000,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@BS_ADRENALINE','attack',111,10,1000,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_BLEEDING','attack',660,3,1000,0,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_HEAVENDRIVE','chase',91,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_HEAVENDRIVE','attack',91,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_HEAVENDRIVE','chase',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2163,'Gold Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@RG_STRIPWEAPON','attack',215,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_WEAPONBRAKER','attack',343,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@MC_MAMMONITE','attack',42,20,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@BS_HAMMERFALL','attack',110,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_BLEEDING','attack',660,3,1000,0,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@MG_THUNDERSTORM','chase',21,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@MG_THUNDERSTORM','attack',21,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@MG_THUNDERSTORM','chase',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@MG_THUNDERSTORM','attack',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2164,'Gold Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_HEAL','attack',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_HEAL','attack',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_HEAL','chase',28,11,10000,0,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_HEAL','chase',28,11,10000,0,5000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@AL_TELEPORT','walk',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_POWERUP','attack',349,5,10000,0,120000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@KN_BRANDISHSPEAR','attack',57,20,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@WZ_HEAVENDRIVE','chase',91,20,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@WZ_HEAVENDRIVE','attack',91,20,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@CR_AUTOGUARD','attack',249,10,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_STONESKIN','idle',675,3,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_STONESKIN','chase',675,3,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_STONESKIN','attack',675,3,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_SUMMONSLAVE','chase',196,4,10000,700,10000,'no','self','slavele',3,2170,2171,2172,2173,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'no','self','slavele',3,2170,2171,2172,2173,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'no','self','slavele',3,2170,2171,2172,2173,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2165,'Gold Queen Scaraba@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,2161,2162,2163,2164,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2166,'Gold One-Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2161,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2167,'Gold Two-Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2162,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2168,'Gold Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2163,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2169,'Gold Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',9,2164,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@RG_STRIPARMOR','attack',217,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_ARMORBRAKE','attack',344,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@BS_ADRENALINE','chase',111,10,1000,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@BS_ADRENALINE','attack',111,10,1000,1500,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_STUNATTACK','attack',179,3,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_BLEEDING','attack',660,3,1000,0,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_HEAVENDRIVE','chase',91,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_HEAVENDRIVE','attack',91,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_HEAVENDRIVE','chase',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2170,'Gold Antler Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@RG_STRIPWEAPON','attack',215,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_WEAPONBRAKER','attack',343,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@MC_MAMMONITE','attack',42,20,1000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@BS_HAMMERFALL','attack',110,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_GROUNDATTACK','attack',185,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_BLEEDING','attack',660,3,1000,0,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@MG_THUNDERSTORM','chase',21,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@MG_THUNDERSTORM','attack',21,20,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@MG_THUNDERSTORM','chase',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@MG_THUNDERSTORM','attack',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2171,'Gold Rake Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@RG_STRIPHELM','attack',218,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_HELMBRAKE','attack',345,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_BLEEDING','attack',660,2,500,500,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_COMBOATTACK','attack',171,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,20,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','chase',91,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','attack',91,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','chase',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2172,'Gold One-Horn Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@RG_STRIPSHIELD','attack',216,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_SHIELDBRAKE','attack',346,10,500,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_BLEEDING','attack',660,2,500,500,3000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@SM_BASH','attack',5,20,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_CRITICALSLASH','attack',170,1,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_COMBOATTACK','attack',171,2,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,20,1000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','chase',21,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','attack',21,20,1000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','chase',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@MG_THUNDERSTORM','attack',21,5,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','idle',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','chase',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_WIDECONFUSE','attack',667,3,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_STONESKIN','idle',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_STONESKIN','chase',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2173,'Gold Two-Horn Scaraba@NPC_STONESKIN','attack',675,3,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Malangdo Island
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@MG_FROSTDIVER','chase',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2174,'Vadon@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@NPC_BLINDATTACK','attack',177,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,1,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x91,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@MG_FROSTDIVER','chase',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2175,'Marse@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2176,'Crab@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2176,'Crab@MG_FROSTDIVER','chase',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2176,'Crab@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@MG_THUNDERSTORM','chase',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2177,'Cornutus@MG_THUNDERSTORM','attack',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2178,'Shellfish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2178,'Shellfish@MG_THUNDERSTORM','chase',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2178,'Shellfish@MG_THUNDERSTORM','attack',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2179,'Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2179,'Kukre@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2179,'Kukre@MG_THUNDERSTORM','chase',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2179,'Kukre@MG_THUNDERSTORM','attack',21,9,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEBLEEDING','idle',665,5,5000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEBLEEDING','chase',665,5,5000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEBLEEDING','attack',665,5,5000,500,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEFREEZE','idle',664,5,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEFREEZE','chase',664,5,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@NPC_WIDEFREEZE','attack',664,5,10000,1000,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@WZ_STORMGUST','chase',89,3,10000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@WZ_STORMGUST','attack',89,3,10000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@WZ_WATERBALL','chase',86,3,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2193,'Octupus Leg@WZ_WATERBALL','attack',86,3,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_DRAGONFEAR','chase',659,5,10000,0,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_DRAGONFEAR','attack',659,5,10000,0,20000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEBLEEDING','idle',665,5,5000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEBLEEDING','chase',665,5,5000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEBLEEDING','attack',665,5,5000,500,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEFREEZE','idle',664,5,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@WZ_STORMGUST','chase',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@WZ_STORMGUST','attack',89,10,10000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@WZ_WATERBALL','chase',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octupus@WZ_WATERBALL','attack',86,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2197,'Red Eruma@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_BLEEDING','chase',660,1,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_BLEEDING','attack',660,1,500,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_STOP','attack',342,1,2000,500,15000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_STUNATTACK','chase',179,3,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2198,'King Dramoh@NPC_STUNATTACK','attack',179,3,2000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2199,'Siorava@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Izlude Dungeon F6
-REPLACE INTO `mob_skill_db` VALUES (2201,'Sropho@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2201,'Sropho@MG_FROSTDIVER','chase',15,9,2000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2201,'Sropho@MG_FROSTDIVER','attack',15,9,2000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2201,'Sropho@WZ_JUPITEL','chase',84,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2201,'Sropho@WZ_JUPITEL','attack',84,4,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@LK_SPIRALPIERCE','attack',397,5,500,1000,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CALLSLAVE','attack',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CALLSLAVE','idle',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CALLSLAVE','chase',352,1,10000,0,15000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_EXPULSION','attack',674,1,100,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_HELLJUDGEMENT','attack',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_HELLJUDGEMENT','chase',662,5,10000,700,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_PULSESTRIKE','attack',661,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SHIELDBRAKE','attack',346,10,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','attack',196,5,10000,0,10000,'yes','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','idle',196,5,10000,0,10000,'yes','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_SUMMONSLAVE','chase',196,5,10000,0,10000,'yes','self','slavele',3,2157,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESILENCE','attack',663,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@NPC_WIDESLEEP','attack',668,5,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2156,'Leak@SA_LANDPROTECTOR','attack',288,1,10000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_FIREATTACK','attack',186,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_HALLUCINATION','attack',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@NPC_HALLUCINATION','chase',207,1,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@RG_STRIPWEAPON','attack',215,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2157,'Banaspaty@WZ_SIGHTRASHER','attack',81,7,1000,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2158,'Hornet@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2158,'Hornet@NPC_POISONATTACK','attack',188,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2158,'Hornet@NPC_WINDATTACK','attack',187,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_BLEEDING','attack',660,2,200,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_PIERCINGATT','attack',158,4,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_POISONATTACK','attack',188,2,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_SILENCEATTACK','chase',178,3,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2159,'Giant Hornet@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2160,'Luciola Vespa@NPC_BLEEDING','attack',660,3,200,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2160,'Luciola Vespa@NPC_COMBOATTACK','attack',171,1,3000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2160,'Luciola Vespa@NPC_PIERCINGATT','attack',158,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2160,'Luciola Vespa@NPC_POISONATTACK','attack',188,3,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2160,'Luciola Vespa@NPC_PULSESTRIKE','attack',661,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@MG_STONECURSE','attack',16,5,200,500,15000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3295,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_HELMBRAKE','attack',345,10,10000,0,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2161,'Uni Horn Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@MG_STONECURSE','attack',16,5,200,500,15000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@MG_THUNDERSTORM','chase',21,10,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@MG_THUNDERSTORM','chase',21,4,4000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3295,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@RG_STRIPSHIELD','attack',216,5,10000,0,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@SM_BASH','attack',5,5,500,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2162,'Horn Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@BS_MAXIMIZE','attack',114,10,500,1500,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@MG_THUNDERSTORM','chase',21,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@MG_THUNDERSTORM','chase',21,4,4000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3295,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@RG_STRIPARMOR','attack',217,1,10000,0,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2163,'Antler Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',429,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',430,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','attack',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','idle',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','walk',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@AL_TELEPORT','chase',26,1,10000,0,5000,'no','self','skillused',428,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,5000,500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@MC_MAMMONITE','attack',42,10,500,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3295,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_PULSESTRIKE','attack',661,2,2000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_WEAPONBRAKER','attack',343,10,10000,0,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2164,'Rake Scaraba@WZ_HEAVENDRIVE','attack',91,5,2000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_HEAL','attack',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_HEAL','chase',28,10,10000,0,5000,'no','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_HEAL','attack',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_HEAL','chase',28,10,10000,0,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_TELEPORT','idle',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@HW_GANBANTEIN','attack',483,5,10000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@KN_BRANDISHSPEAR','attack',57,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_ARMORBRAKE','attack',344,10,10000,0,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_POWERUP','attack',349,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_PULSESTRIKE','attack',661,2,2000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_STONESKIN','attack',675,5,500,0,10000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_STONESKIN','chase',675,5,500,0,10000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'no','self','slavele',3,2145,2171,2170,2172,2173,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'no','self','slavele',3,2145,2171,2170,2172,2173,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_WIDESILENCE','attack',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_WIDESILENCE','chase',663,5,10000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_WIDESOULDRAIN','attack',680,10,10000,2000,15000,'no','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@NPC_WIDESTONE','attack',666,3,10000,2000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@SA_LANDPROTECTOR','attack',288,5,10000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@ST_FULLSTRIP','attack',476,5,10000,0,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@WZ_HEAVENDRIVE','attack',91,5,10000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2165,'Queen Scaraba@WZ_HEAVENDRIVE','chase',91,5,10000,0,5000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,2000,2000,5000,'no','self','myhpltmaxrate',99,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',429,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',429,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',429,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',429,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',430,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',430,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',430,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',430,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',428,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',428,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',428,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2166,'Uni Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',428,2161,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,2000,2000,5000,'no','self','myhpltmaxrate',99,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',429,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',429,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',429,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',429,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',430,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',430,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',430,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',430,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',428,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',428,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',428,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2167,'Horn Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',428,2162,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,2000,2000,5000,'no','self','myhpltmaxrate',99,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',429,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',429,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',429,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',429,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',430,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',430,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',430,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',430,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',428,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',428,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',428,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2168,'Antler Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',428,2163,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,2000,2000,5000,'no','self','myhpltmaxrate',99,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,100,2000,5000,'no','self','myhpltmaxrate',99,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',429,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',429,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',429,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',429,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',430,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',430,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',430,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',430,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','attack',193,1,10000,400,5000,'no','self','skillused',428,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','idle',193,1,10000,400,5000,'no','self','skillused',428,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','walk',193,1,10000,400,5000,'no','self','skillused',428,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2169,'Rake Scaraba Egg@NPC_METAMORPHOSIS','chase',193,1,10000,400,5000,'no','self','skillused',428,2164,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@BS_MAXIMIZE','attack',114,10,500,1500,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@MG_THUNDERSTORM','chase',21,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@MG_THUNDERSTORM','chase',21,4,4000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_PULSESTRIKE','attack',661,2,2000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_STUNATTACK','attack',179,3,500,1500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@NPC_WIDEFREEZE','attack',664,5,100,0,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@RG_STRIPARMOR','attack',217,5,10000,0,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2170,'Antler Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@BS_HAMMERFALL','attack',110,5,5000,500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@MC_MAMMONITE','attack',42,10,500,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_EMOTION','chase',197,1,1000,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,6,0x3295,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_PULSESTRIKE','attack',661,2,2000,0,30000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_WEAPONBRAKER','attack',343,10,10000,0,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@NPC_WIDEFREEZE','attack',664,5,100,0,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2171,'Rake Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@KN_TWOHANDQUICKEN','attack',60,10,10000,0,300000,'no','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@MG_STONECURSE','attack',16,5,200,500,15000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_HELMBRAKE','attack',345,10,10000,0,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@NPC_WIDEFREEZE','attack',664,5,100,0,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2172,'Rake Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@MG_STONECURSE','attack',16,5,200,500,15000,'no','target','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@MG_THUNDERSTORM','chase',21,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@MG_THUNDERSTORM','chase',21,4,4000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_DEFENDER','attack',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_DEFENDER','idle',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_DEFENDER','walk',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_DEFENDER','chase',205,10,10000,0,5000,'no','self','skillused',2008,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','attack',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','idle',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','walk',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_STONESKIN','chase',675,4,10000,0,1000,'no','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_WIDECONFUSE','attack',667,5,1000,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_WIDECONFUSE','idle',667,5,10000,0,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@NPC_WIDEFREEZE','attack',664,5,100,0,15000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@RG_STRIPSHIELD','attack',216,5,10000,0,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@SA_DISPELL','attack',289,5,3000,0,15000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@SM_BASH','attack',5,5,500,0,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@WZ_EARTHSPIKE','attack',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@WZ_EARTHSPIKE','chase',90,5,6000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2173,'Horn Scaraba@WZ_HEAVENDRIVE','attack',91,5,5000,1000,5000,'no','target','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Malangdo Island
+REPLACE INTO `mob_skill_db` VALUES (2174,'Ancient Crustacea@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2174,'Ancient Crustacea@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2174,'Ancient Crustacea@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2174,'Ancient Crustacea@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2174,'Ancient Crustacea@ST_FULLSTRIP','attack',476,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@AL_HEAL','attack',28,5,10000,500,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@AL_HEAL','attack',28,5,10000,500,5000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0091,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@NPC_STOP','attack',342,1,200,0,600000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2175,'Deepsea Marse@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2177,'Deepsea Cornutus@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2177,'Deepsea Cornutus@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2177,'Deepsea Cornutus@NPC_KEEPING','attack',201,1,2000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2177,'Deepsea Cornutus@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2178,'Deepsea Shellfish@MG_FROSTDIVER','chase',15,9,3000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2178,'Deepsea Shellfish@MG_LIGHTNINGBOLT','chase',20,5,200,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,12,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2178,'Deepsea Shellfish@NPC_STUNATTACK','attack',179,3,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2178,'Deepsea Shellfish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2178,'Deepsea Shellfish@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2179,'Ancient Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2179,'Ancient Kukre@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2179,'Ancient Kukre@ST_FULLSTRIP','attack',476,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2179,'Ancient Kukre@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@AL_HEAL','attack',28,7,10000,500,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@AL_HEAL','attack',28,7,10000,500,5000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_FROSTDIVER','angry',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_FROSTDIVER','attack',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_FROSTDIVER','follow',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_FROSTDIVER','chase',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_LIGHTNINGBOLT','angry',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_LIGHTNINGBOLT','attack',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_LIGHTNINGBOLT','follow',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@NPC_STOP','attack',342,1,200,0,600000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@WZ_FROSTNOVA','chase',88,7,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2180,'Ancient Sea Lord@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@NPC_CRITICALWOUND','attack',673,5,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@WZ_WATERBALL','angry',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2181,'Ancient Sword Fish@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_CRITICALWOUND','attack',673,5,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_EVILLAND','attack',670,10,10000,0,15000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_STUNATTACK','angry',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_STUNATTACK','attack',179,2,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_WATERATTACK','angry',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@NPC_WATERATTACK','attack',184,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2182,'Ancient Seahorse@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@NPC_CRITICALWOUND','attack',673,2,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3695,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2183,'Mutant Anolian@SM_BASH','attack',5,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,2,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@NPC_STOP','attack',342,1,100,0,600000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@PR_LEXDIVINA','attack',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@PR_LEXDIVINA','chase',76,5,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@ST_FULLSTRIP','attack',476,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2184,'Deepsea Mermaid@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@MC_MAMMONITE','attack',42,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,8,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_PIERCINGATT','attack',158,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_WATERATTACK','angry',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@NPC_WATERATTACK','attack',184,3,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@ST_FULLSTRIP','attack',476,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@WZ_WATERBALL','follow',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,16,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2185,'Transform Kapha@WZ_WATERBALL','chase',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,16,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@AL_DECAGI','chase',30,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_CRITICALWOUND','attack',673,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_WATERATTACK','chase',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_WIDEBLEEDING','attack',665,1,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@NPC_WIDEBLEEDING','chase',665,1,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@WZ_WATERBALL','attack',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2186,'Coelacanth@WZ_WATERBALL','chase',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@AL_DECAGI','chase',30,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@HW_GANBANTEIN','attack',483,1,10000,500,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_CRITICALWOUND','attack',673,3,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',3,2195,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',3,2195,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_WATERATTACK','chase',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_WIDEBLEEDING','attack',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@NPC_WIDEBLEEDING','chase',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_JUPITEL','attack',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_JUPITEL','chase',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_WATERBALL','attack',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2187,'Dark Coelacanth@WZ_WATERBALL','chase',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@AL_DECAGI','chase',30,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@HW_GANBANTEIN','attack',483,1,10000,500,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_ARMORBRAKE','attack',344,10,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_CRITICALWOUND','attack',673,3,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',3,2195,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',3,2195,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_WATERATTACK','chase',184,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_WIDEBLEEDING','attack',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@NPC_WIDEBLEEDING','chase',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_JUPITEL','attack',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_JUPITEL','chase',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_WATERBALL','attack',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2188,'Grotesque Coelacanth@WZ_WATERBALL','chase',86,10,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@HW_GANBANTEIN','attack',483,1,10000,500,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_CRITICALWOUND','attack',673,4,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'yes','self','slavele',3,2196,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'yes','self','slavele',3,2196,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_WATERATTACK','attack',184,10,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_WIDEBLEEDING','attack',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_WIDEBLEEDING','chase',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_WIDEFREEZE','attack',664,5,10000,0,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@NPC_WIDEFREEZE','chase',664,5,10000,0,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_JUPITEL','attack',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_JUPITEL','chase',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2189,'Mutant Coelacanth@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@BS_MAXIMIZE','attack',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@BS_MAXIMIZE','chase',114,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@HW_GANBANTEIN','attack',483,1,10000,500,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@MG_FROSTDIVER','idle',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@MG_FROSTDIVER','chase',15,10,5000,1000,7000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_AGIUP','attack',350,5,10000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_CRITICALWOUND','attack',673,4,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_GUIDEDATTACK','attack',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_GUIDEDATTACK','chase',172,5,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_POWERUP','attack',349,5,10000,0,25000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_RANDOMATTACK','attack',183,8,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'yes','self','slavele',3,2196,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'yes','self','slavele',3,2196,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_WATERATTACK','attack',184,10,1000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_WIDEBLEEDING','attack',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_WIDEBLEEDING','chase',665,3,10000,500,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_WIDEFREEZE','attack',664,5,10000,0,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@NPC_WIDEFREEZE','chase',664,5,10000,0,30000,'yes','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@SA_DISPELL','attack',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@SA_DISPELL','chase',289,5,10000,0,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_JUPITEL','attack',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_JUPITEL','chase',84,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_WATERBALL','attack',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2190,'Ferocious Coelacanth@WZ_WATERBALL','chase',86,10,5000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2191,'Seaweed@AL_HEAL','attack',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2191,'Seaweed@NPC_INVINCIBLE','idle',685,1,10000,0,60000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDEBLEEDING','attack',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDEBLEEDING','chase',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDECURSE','chase',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDEFREEZE','attack',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDEFREEZE','chase',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESILENCE','attack',663,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESILENCE','chase',663,1,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESLEEP','attack',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESLEEP','chase',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESOULDRAIN','attack',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESOULDRAIN','chase',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESTUN','attack',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2193,'Octopus Leg@NPC_WIDESTUN','chase',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_DRAGONFEAR','attack',659,5,10000,0,30000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDEBLEEDING','attack',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDEBLEEDING','chase',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDECURSE','chase',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDEFREEZE','attack',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDEFREEZE','chase',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESILENCE','attack',663,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESILENCE','chase',663,1,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESLEEP','attack',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESLEEP','chase',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESOULDRAIN','attack',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESOULDRAIN','chase',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESTUN','attack',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@NPC_WIDESTUN','chase',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@WZ_WATERBALL','attack',86,10,10000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2194,'Giant Octopus@WZ_WATERBALL','chase',86,10,10000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2195,'Ancient Kukre@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2195,'Ancient Kukre@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2195,'Ancient Kukre@ST_FULLSTRIP','attack',476,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2195,'Ancient Kukre@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@AL_HEAL','attack',28,7,10000,500,5000,'yes','friend','friendhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@AL_HEAL','attack',28,7,10000,500,5000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_FROSTDIVER','angry',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_FROSTDIVER','attack',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_FROSTDIVER','follow',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_FROSTDIVER','chase',15,9,1000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_LIGHTNINGBOLT','attack',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@MG_LIGHTNINGBOLT','chase',20,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@NPC_BLEEDING','attack',660,3,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@NPC_STOP','attack',342,1,200,0,600000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@NPC_WATERATTACK','angry',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@WZ_FROSTNOVA','chase',88,7,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2196,'Ancient Sea Lord@WZ_WATERBALL','attack',86,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2197,'Red Eruma@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2197,'Red Eruma@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2197,'Red Eruma@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2198,'King Kray@NPC_DEFENDER','attack',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2198,'King Kray@NPC_STOP','attack',342,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,38,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2198,'King Kray@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2198,'King Kray@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2199,'Siorava@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2199,'Siorava@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2199,'Siorava@TF_THROWSTONE','chase',152,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- Izlude Dungeon F6
+REPLACE INTO `mob_skill_db` VALUES (2201,'Squidgitte@AL_RUWACH','idle',24,1,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2201,'Squidgitte@NPC_COMBOATTACK','attack',171,1,1000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2201,'Squidgitte@NPC_EMOTION','idle',197,1,3000,0,5000,'yes','self','always',NULL,5,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2201,'Squidgitte@NPC_WATERATTACK','attack',184,3,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2201,'Squidgitte@WZ_JUPITEL','chase',84,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_EARTHQUAKE','chase',653,2,10000,1000,60000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_EARTHQUAKE','attack',653,2,10000,1000,60000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_AGIUP','attack',350,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_AGIUP','chase',350,5,10000,0,60000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_DRAGONFEAR','attack',659,5,10000,0,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECONFUSE','chase',667,2,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECONFUSE','attack',667,2,10000,0,10000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@SM_BASH','attack',5,10,2000,800,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_COMBOATTACK','attack',171,2,2000,700,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_PULSESTRIKE','attack',661,5,2000,0,15000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@MG_FROSTDIVER','chase',15,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@MG_FROSTDIVER','attack',15,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_STORMGUST','chase',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_STORMGUST','attack',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@CR_REFLECTSHIELD','idle',252,1,1000,0,200000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@CR_REFLECTSHIELD','chase',252,1,1000,0,200000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@CR_REFLECTSHIELD','attack',252,1,1000,0,200000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_HELLJUDGEMENT','chase',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEFREEZE','idle',664,5,10000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEFREEZE','chase',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEFREEZE','attack',664,5,10000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESLEEP','idle',668,5,10000,700,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESLEEP','chase',668,5,10000,700,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESLEEP','attack',668,5,10000,700,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESILENCE','idle',663,5,10000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESILENCE','chase',663,5,10000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESILENCE','attack',663,5,10000,1000,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECURSE','idle',677,5,10000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECURSE','chase',677,5,10000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECURSE','attack',677,5,10000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEBLEEDING','chase',665,2,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEBLEEDING','attack',665,2,10000,500,60000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_SUMMONSLAVE','chase',196,4,10000,700,10000,'no','self','slavele',3,2206,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_DRAGONFEAR','attack',659,5,10000,0,30000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_HELLJUDGEMENT','attack',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_HELLJUDGEMENT','chase',662,2,2000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_SUMMONSLAVE','attack',196,4,10000,700,10000,'no','self','slavele',3,2206,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_SUMMONSLAVE','idle',196,4,10000,700,10000,'no','self','slavele',3,2206,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_SUMMONSLAVE','idle',196,4,10000,0,0,'no','self','onspawn',0,2206,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@AL_HEAL','chase',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@AL_HEAL','attack',28,1,10000,500,5000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@KN_SPEARBOOMERANG','chase',59,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@NPC_STONESKIN','chase',675,3,1000,500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2203,'Pot Dofle@NPC_STONESKIN','attack',675,3,1000,500,30000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2204,'Sedora@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2204,'Sedora@AS_SONICBLOW','attack',136,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2204,'Sedora@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDEFREEZE','idle',664,5,2000,1000,20000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDEFREEZE','chase',664,5,2000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDEFREEZE','attack',664,5,2000,1000,20000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDECURSE','idle',677,5,2000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDECURSE','chase',677,5,2000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@NPC_WIDECURSE','attack',677,5,2000,800,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@MG_FROSTDIVER','chase',15,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@MG_FROSTDIVER','attack',15,10,2000,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@WZ_STORMGUST','chase',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Leg@WZ_STORMGUST','attack',89,10,2000,1000,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@NPC_WATERATTACK','attack',184,10,1000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@NPC_STUNATTACK','attack',179,3,2000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@WZ_WATERBALL','chase',86,7,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@WZ_WATERBALL','attack',86,7,2000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Bio 4
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WATERATTACK','attack',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WATERATTACK','chase',184,5,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEBLEEDING','attack',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEBLEEDING','chase',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDECURSE','chase',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEFREEZE','attack',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDEFREEZE','chase',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESILENCE','attack',663,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESILENCE','chase',663,1,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESLEEP','attack',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESLEEP','chase',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESOULDRAIN','attack',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESOULDRAIN','chase',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESTUN','attack',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@NPC_WIDESTUN','chase',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_FROSTNOVA','attack',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_FROSTNOVA','chase',88,10,3000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_WATERBALL','attack',86,10,10000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2202,'Kraken@WZ_WATERBALL','chase',86,10,10000,500,25000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2203,'Octo Pot@AL_HEAL','attack',28,3,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2203,'Octo Pot@NPC_DEFENDER','chase',205,1,500,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2203,'Octo Pot@NPC_GROUNDATTACK','attack',185,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2203,'Octo Pot@NPC_KEEPING','attack',201,1,1000,0,5000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2203,'Octo Pot@NPC_RANGEATTACK','chase',160,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@AS_SONICBLOW','attack',136,10,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@NPC_BLEEDING','attack',660,1,2000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,18,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@NPC_SPLASHATTACK','attack',174,1,2000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2204,'Lamp Rey@NPC_WATERATTACK','attack',184,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDEBLEEDING','attack',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDEBLEEDING','chase',665,1,10000,500,100000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDECURSE','attack',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDECURSE','chase',677,1,500,800,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDEFREEZE','attack',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDEFREEZE','chase',664,1,10000,1000,20000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESILENCE','attack',663,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESILENCE','chase',663,1,10000,1000,20000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESLEEP','attack',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESLEEP','chase',668,1,10000,700,25000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESOULDRAIN','attack',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESOULDRAIN','chase',680,1,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESTUN','attack',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2206,'Kraken Tentacle@NPC_WIDESTUN','chase',678,1,10000,1300,180000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@NPC_AGIUP','chase',350,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,27,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2208,'Wild Rider@WZ_WATERBALL','attack',86,4,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2220,'Messenger of Devil@AL_TELEPORT','attack',26,1,1000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2220,'Messenger of Devil@NPC_EMOTION','idle',197,1,2000,0,0,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Bio 4
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','attack',28,4,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','idle',28,4,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','chase',28,4,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','attack',28,4,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','idle',28,4,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_HEAL','chase',28,4,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_DEFENDER','chase',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@SM_MAGNUM','attack',7,9,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@PA_PRESSURE','chase',367,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_SHIELDBOOMERANG','chase',251,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_GRANDCROSS','chase',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_GRANDCROSS','attack',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_AUTOGUARD','attack',249,5,2000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_GRANDCROSS','attack',254,1,500,1500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_REFLECTSHIELD','attack',252,5,100,0,200000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_REFLECTSHIELD','attack',252,5,10000,0,200000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2221,'Randel@PA_PRESSURE','attack',367,1,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@CR_ACIDDEMONSTRATION','chase',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@CR_ACIDDEMONSTRATION','attack',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_ACIDTERROR','attack',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_DEMONSTRATION','angry',229,1,100,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_DEMONSTRATION','attack',229,1,100,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','attack',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','idle',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@AM_POTIONPITCHER','chase',231,4,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@CR_ACIDDEMONSTRATION','attack',490,1,1000,3000,300000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_AGIUP','attack',350,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_FIREATTACK','attack',186,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2222,'Flamel@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','attack',288,1,5000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@PF_SOULBURN','attack',375,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@PF_MINDBREAKER','attack',402,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SOULSTRIKE','chase',13,20,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_THUNDERSTORM','chase',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_THUNDERSTORM','attack',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','idle',17,20,10000,500,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','chase',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','attack',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','attack',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','chase',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SAFETYWALL','attack',12,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',137,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_THUNDERSTORM','attack',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@MG_THUNDERSTORM','chase',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@SA_LANDPROTECTOR','attack',288,1,1000,1500,30000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,33,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2223,'Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','attack',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','idle',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','chase',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','attack',28,3,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','idle',28,3,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','chase',28,3,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@MO_EXTREMITYFIST','attack',271,5,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_COMBOATTACK','chase',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_COMBOATTACK','attack',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','idle',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','idle',28,3,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','chase',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','chase',28,3,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','attack',28,3,3000,0,2000,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@AL_HEAL','attack',28,3,3000,0,2000,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@MO_BALKYOUNG','attack',1016,5,100,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@MO_EXTREMITYFIST','attack',271,1,1000,3000,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_AGIUP','attack',350,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2224,'Chen@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@ST_REJECTSWORD','idle',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@ST_REJECTSWORD','chase',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@ST_REJECTSWORD','attack',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@TF_HIDING','attack',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPSHIELD','attack',216,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPARMOR','attack',217,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_BACKSTAP','attack',212,10,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_RAID','attack',214,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@TF_POISON','attack',52,10,10000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@SM_BASH','chase',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@SM_BASH','attack',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_AGIUP','attack',350,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_POISONATTACK','attack',188,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_INTIMIDATE','attack',219,1,100,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPARMOR','attack',217,1,500,0,60000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPHELM','attack',218,1,500,0,60000,'yes','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPSHIELD','attack',216,1,500,0,60000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@RG_STRIPWEAPON','attack',215,1,500,0,60000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@ST_FULLSTRIP','attack',476,1,100,0,60000,'no','target','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,43,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2225,'Gertie@TF_POISON','attack',52,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_PULSESTRIKE','attack',661,5,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@CG_TAROTCARD','chase',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@CG_TAROTCARD','attack',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@WZ_FROSTNOVA','chase',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@WZ_FROSTNOVA','attack',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@BA_MUSICALSTRIKE','chase',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@BA_MUSICALSTRIKE','attack',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2226,'Alphoccio@BA_DISSONANCE','chase',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2226,'Alphoccio@BA_DISSONANCE','attack',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_DISSONANCE','attack',2540,3,1000,1000,100000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2226,'Alphoccio@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_PULSESTRIKE','attack',661,5,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@CG_TAROTCARD','chase',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@CG_TAROTCARD','attack',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_WIDESTUN','chase',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_WIDESTUN','attack',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@DC_THROWARROW','chase',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@DC_THROWARROW','attack',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2227,'Trentini@DC_UGLYDANCE','chase',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2227,'Trentini@DC_UGLYDANCE','attack',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@WZ_STORMGUST','idle',89,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@WZ_STORMGUST','walk',89,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_DEFENDER','chase',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@SM_MAGNUM','attack',7,9,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@PA_PRESSURE','chase',367,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_SHIELDBOOMERANG','chase',251,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_HOLYCROSS','attack',253,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_GRANDCROSS','chase',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@CR_GRANDCROSS','attack',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2228,'Paladin Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@CR_ACIDDEMONSTRATION','chase',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@CR_ACIDDEMONSTRATION','attack',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_ACIDTERROR','attack',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2229,'Creator Flamel@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@SA_LANDPROTECTOR','attack',288,1,5000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@PF_SOULBURN','attack',375,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@PF_MINDBREAKER','attack',402,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_SOULSTRIKE','chase',13,20,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_THUNDERSTORM','chase',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_THUNDERSTORM','attack',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBOLT','attack',19,10,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_COLDBOLT','attack',14,10,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBALL','idle',17,20,10000,500,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBALL','chase',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@MG_FIREBALL','attack',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2230,'Professor Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@MO_EXTREMITYFIST','attack',271,5,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_COMBOATTACK','chase',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_COMBOATTACK','attack',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_COMBOATTACK','attack',171,5,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2231,'Champion Chen@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@ST_REJECTSWORD','idle',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@ST_REJECTSWORD','chase',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@ST_REJECTSWORD','attack',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_INVISIBLE','chase',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@TF_HIDING','attack',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_STRIPSHIELD','attack',216,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_STRIPARMOR','attack',217,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_BACKSTAP','attack',212,10,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@RG_RAID','attack',214,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@TF_POISON','attack',52,10,10000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@SM_BASH','chase',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@SM_BASH','attack',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_GUIDEDATTACK','attack',172,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2232,'Stalker Gertie@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_PULSESTRIKE','attack',661,5,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@CG_TAROTCARD','chase',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@CG_TAROTCARD','attack',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@CG_TAROTCARD','attack',489,5,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@WZ_FROSTNOVA','chase',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@WZ_FROSTNOVA','attack',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@BA_MUSICALSTRIKE','chase',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@BA_MUSICALSTRIKE','attack',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2233,'Clown Alphoccio@BA_DISSONANCE','chase',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2233,'Clown Alphoccio@BA_DISSONANCE','attack',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2233,'Clown Alphoccio@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_PULSESTRIKE','attack',661,5,10000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@CG_TAROTCARD','chase',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@CG_TAROTCARD','attack',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@CG_TAROTCARD','attack',489,5,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_WIDESTUN','chase',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_WIDESTUN','attack',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@DC_THROWARROW','chase',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@DC_THROWARROW','attack',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2234,'Gypsy Trentini@DC_UGLYDANCE','chase',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2234,'Gypsy Trentini@DC_UGLYDANCE','attack',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2234,'Gypsy Trentini@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2229,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2229,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2229,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_REFLECTSHIELD','idle',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_REFLECTSHIELD','chase',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_REFLECTSHIELD','attack',252,10,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_DEFENDER','idle',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_DEFENDER','chase',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_DEFENDER','attack',205,5,10000,0,180000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@SM_ENDURE','chase',8,10,2000,0,30000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@SM_MAGNUM','attack',7,9,1000,0,0,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@KN_TWOHANDQUICKEN','attack',60,20,10000,0,300000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@PA_PRESSURE','chase',367,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_SHIELDBOOMERANG','chase',251,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_SHIELDCHARGE','attack',250,5,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_HOLYCROSS','attack',253,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_GRANDCROSS','chase',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@CR_GRANDCROSS','attack',254,10,5000,100,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2235,'Paladin Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2230,2231,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_CANNIBALIZE','idle',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','longrangeattacked',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_CANNIBALIZE','chase',232,5,5000,0,10000,'no','around2','casttargeted',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@CR_ACIDDEMONSTRATION','chase',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@CR_ACIDDEMONSTRATION','attack',490,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_ACIDTERROR','chase',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_ACIDTERROR','attack',230,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','idle',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','chase',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@AM_POTIONPITCHER','attack',231,4,2000,0,0,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,5,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2236,'Creator Flamel@NPC_FIREATTACK','attack',186,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2231,2232,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2231,2232,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2229,2231,2232,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_SIGHT','idle',10,1,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_SIGHT','idle',10,1,10000,0,5000,'yes','self','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_SAFETYWALL','attack',12,10,2000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','chase',288,1,10000,0,5000,'no','target','skillused',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@SA_LANDPROTECTOR','attack',288,1,5000,0,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@PF_SPIDERWEB','attack',405,1,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@PF_SOULBURN','attack',375,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@PF_MINDBREAKER','attack',402,5,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_SOULSTRIKE','chase',13,20,5000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_THUNDERSTORM','chase',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_THUNDERSTORM','attack',21,15,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBOLT','attack',19,10,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_COLDBOLT','attack',14,10,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBALL','idle',17,20,10000,500,10000,'no','randomtarget','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBALL','chase',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@MG_FIREBALL','attack',17,20,3000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2237,'Professor Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2229,2230,2232,2234,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@MO_EXTREMITYFIST','attack',271,5,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_COMBOATTACK','chase',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_COMBOATTACK','attack',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_COMBOATTACK','attack',171,5,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2238,'Champion Chen@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2229,2230,2231,2233,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@ST_REJECTSWORD','idle',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@ST_REJECTSWORD','chase',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@ST_REJECTSWORD','attack',390,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_INVISIBLE','idle',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_INVISIBLE','chase',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_INVISIBLE','attack',353,1,2000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@TF_HIDING','attack',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_INTIMIDATE','attack',219,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_STRIPSHIELD','attack',216,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_STRIPARMOR','attack',217,5,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_BACKSTAP','attack',212,10,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@RG_RAID','attack',214,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@TF_POISON','attack',52,10,10000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@SM_BASH','chase',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@SM_BASH','attack',5,10,5000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_GUIDEDATTACK','attack',172,10,2000,0,0,'yes','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2239,'Stalker Gertie@NPC_POISONATTACK','attack',188,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_PULSESTRIKE','attack',661,5,2000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@CG_TAROTCARD','chase',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@CG_TAROTCARD','attack',489,5,10000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@CG_TAROTCARD','attack',489,5,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@WZ_FROSTNOVA','chase',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@WZ_FROSTNOVA','attack',88,10,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@BA_MUSICALSTRIKE','chase',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@BA_MUSICALSTRIKE','attack',316,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2240,'Clown Alphoccio@BA_DISSONANCE','chase',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2240,'Clown Alphoccio@BA_DISSONANCE','attack',317,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2240,'Clown Alphoccio@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',0,2228,2229,2230,2231,2232,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_PULSESTRIKE','attack',661,5,10000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_SLOWCAST','chase',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_SLOWCAST','attack',672,5,10000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@CG_TAROTCARD','chase',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@CG_TAROTCARD','attack',489,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@CG_TAROTCARD','attack',489,5,2000,0,0,'no','target','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,8,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@CG_ARROWVULCAN','chase',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@CG_ARROWVULCAN','attack',394,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_WIDESTUN','chase',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_WIDESTUN','attack',678,5,5000,0,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@DC_THROWARROW','chase',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@DC_THROWARROW','attack',324,5,10000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not working properly
-# REPLACE INTO `mob_skill_db` VALUES ( 2241,'Gypsy Trentini@DC_UGLYDANCE','chase',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# REPLACE INTO `mob_skill_db` VALUES ( 2241,'Gypsy Trentini@DC_UGLYDANCE','attack',325,5,500,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@AC_DOUBLE','attack',46,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@AC_SHOWER','attack',47,10,2000,0,3000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_AGIUP','idle',350,5,10000,0,35000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2241,'Gypsy Trentini@NPC_WINDATTACK','attack',187,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_INCAGI','idle',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_INCAGI','chase',29,10,10000,1000,240000,'no','friend','friendhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@MO_BODYRELOCATION','chase',264,1,3000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@MO_EXTREMITYFIST','attack',271,5,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@NPC_COMBOATTACK','chase',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@NPC_COMBOATTACK','attack',171,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','idle',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','chase',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','friend','friendhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@AL_HEAL','attack',28,11,3000,0,1500,'yes','self','myhpltmaxrate',9,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2244,'Champion Chen@NPC_WATERATTACK','attack',184,5,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-
-# Guild Dungeon F2
-# currently not enough info about the new guild dungeon mob's skills to finish
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2250,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2249,'Pyuriel@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2250,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_AGIUP','attack',350,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_SLOWCAST','attack',672,1,1000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_SLOWCAST','chase',672,1,1000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_UGLYDANCE','attack',2541,3,1000,1000,100000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2227,'Trentini@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@AL_HEAL','attack',28,4,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@AL_HEAL','attack',28,4,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_AUTOGUARD','attack',249,5,2000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_GRANDCROSS','attack',254,1,500,1500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_REFLECTSHIELD','attack',252,5,100,0,200000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_REFLECTSHIELD','attack',252,5,10000,0,200000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@PA_PRESSURE','attack',367,2,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@WZ_STORMGUST','idle',89,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2228,'Randel@WZ_STORMGUST','walk',89,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_ACIDTERROR','chase',230,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','attack',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','idle',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','chase',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','attack',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','idle',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@AM_POTIONPITCHER','chase',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@CR_ACIDDEMONSTRATION','attack',490,1,1000,3000,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_FIREATTACK','attack',186,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@WZ_STORMGUST','idle',89,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2229,'Flamel@WZ_STORMGUST','walk',89,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBALL','attack',17,10,3000,500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBALL','idle',17,10,10000,500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBALL','chase',17,10,3000,500,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBALL','chase',17,10,10000,500,10000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_SAFETYWALL','attack',12,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_THUNDERSTORM','attack',21,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@MG_THUNDERSTORM','chase',21,10,3000,1000,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'yes','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@NPC_MENTALBREAKER','angry',159,1,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'yes','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@SA_DISPELL','attack',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@SA_DISPELL','chase',289,5,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@SA_LANDPROTECTOR','attack',288,1,1000,1500,30000,'yes','target','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,33,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_HEAVENDRIVE','attack',91,5,2000,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2230,'Celia@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','attack',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','idle',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','chase',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','attack',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','idle',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_HEAL','chase',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@MO_BALKYOUNG','attack',1016,5,100,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@MO_EXTREMITYFIST','attack',271,1,1000,2000,300000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@MO_EXTREMITYFIST','attack',271,1,1000,3000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_POWERUP','attack',349,1,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'yes','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2231,'Chen@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_POISON','attack',176,5,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_POISONATTACK','attack',188,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_SELFDESTRUCTION','attack',173,1,2000,2000,0,'no','self','myhpltmaxrate',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@RG_CLOSECONFINE','attack',1005,1,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@RG_STRIPARMOR','attack',217,1,500,0,60000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@RG_STRIPHELM','attack',218,1,500,0,60000,'yes','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@RG_STRIPSHIELD','attack',216,1,500,0,60000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@RG_STRIPWEAPON','attack',215,1,500,0,60000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@ST_FULLSTRIP','attack',476,1,100,0,60000,'no','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,34,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2232,'Gertie@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_DISSONANCE','attack',2540,3,1000,1000,120000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_SLOWCAST','attack',672,1,2000,800,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_SLOWCAST','chase',672,1,2000,300,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2233,'Alphoccio@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_SLOWCAST','attack',672,1,1000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_SLOWCAST','chase',672,1,1000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_UGLYDANCE','attack',2541,3,1000,1000,120000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@WZ_METEOR','idle',83,1,10000,0,0,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2234,'Trentini@WZ_METEOR','walk',83,1,5000,0,5000,'yes','target','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_HEAL','attack',28,7,10000,0,1000,'yes','friend','friendhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_HEAL','idle',28,7,3000,0,1500,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_HEAL','attack',28,7,10000,0,1000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_HEAL','idle',28,7,3000,0,1500,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_AUTOGUARD','attack',249,5,2000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_GRANDCROSS','attack',254,1,500,1500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_HOLYCROSS','attack',253,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_REFLECTSHIELD','attack',252,5,100,0,200000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_REFLECTSHIELD','attack',252,5,10000,0,200000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_DEFENDER','attack',205,1,1000,0,5000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_HOLYATTACK','attack',189,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2229,2230,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2229,2230,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2235,'Randel@PA_PRESSURE','attack',367,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_ACIDTERROR','chase',230,5,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','attack',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','idle',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','chase',231,5,10000,500,5000,'yes','friend','friendhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','attack',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','idle',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@AM_POTIONPITCHER','chase',231,5,10000,500,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,5,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@CR_ACIDDEMONSTRATION','attack',490,1,1000,2000,12000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@CR_ACIDDEMONSTRATION','attack',490,3,1000,2500,60000,'no','target','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CHANGEFIRE','attack',164,1,10000,500,60000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CHANGEHOLY','attack',167,1,10000,500,60000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,60000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_FIREATTACK','attack',186,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2230,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2236,'Flamel@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2230,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_COLDBOLT','attack',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_COLDBOLT','chase',14,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBALL','attack',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBALL','idle',17,10,10000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBALL','chase',17,10,3000,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBALL','chase',17,10,10000,500,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBOLT','attack',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREBOLT','chase',19,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREWALL','attack',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FIREWALL','chase',18,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FROSTDIVER','attack',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FROSTDIVER','idle',15,10,10000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FROSTDIVER','chase',15,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_FROSTDIVER','chase',15,10,10000,1000,10000,'no','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_LIGHTNINGBOLT','attack',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_LIGHTNINGBOLT','chase',20,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_SAFETYWALL','attack',12,10,3000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_THUNDERSTORM','attack',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@MG_THUNDERSTORM','chase',21,10,3000,1000,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_ATTRICHANGE','attack',161,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_MENTALBREAKER','attack',159,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_MENTALBREAKER','chase',159,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2231,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_WIDESOULDRAIN','attack',680,5,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@NPC_WIDESOULDRAIN','chase',680,5,1000,500,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,42,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@SA_LANDPROTECTOR','attack',288,5,1000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@WZ_EARTHSPIKE','attack',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@WZ_EARTHSPIKE','chase',90,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@WZ_HEAVENDRIVE','attack',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2237,'Celia@WZ_HEAVENDRIVE','chase',91,5,3000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_DECAGI','chase',30,10,2000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','attack',28,6,10000,0,1000,'yes','friend','friendhpltmaxrate',5,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','attack',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','idle',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','chase',28,6,3000,0,2000,'yes','friend','friendhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','attack',28,6,10000,0,1000,'yes','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','attack',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','idle',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_HEAL','chase',28,6,3000,0,2000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_PNEUMA','attack',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_PNEUMA','idle',25,1,10000,0,0,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@AL_PNEUMA','chase',25,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@MO_BODYRELOCATION','chase',264,1,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_HOLYATTACK','attack',189,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_POWERUP','attack',349,1,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_POWERUP','attack',349,1,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2238,'Chen@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2232,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@AS_CLOAKING','attack',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@AS_CLOAKING','idle',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@AS_CLOAKING','chase',135,1,2000,200,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_ARMORBRAKE','attack',344,1,500,0,20000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CHANGEWIND','attack',165,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_HELMBRAKE','attack',345,1,500,0,2000,'yes','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_POISON','attack',176,5,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_POISONATTACK','attack',188,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_SHIELDBRAKE','attack',346,5,500,0,20000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2233,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@NPC_WEAPONBRAKER','attack',343,1,500,0,30000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@RG_STRIPARMOR','attack',217,5,500,0,20000,'yes','target','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@RG_STRIPHELM','attack',218,5,500,0,20000,'yes','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@RG_STRIPSHIELD','attack',216,5,500,0,20000,'yes','target','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@RG_STRIPWEAPON','attack',215,5,500,0,20000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2239,'Gertie@ST_FULLSTRIP','attack',476,5,100,1000,30000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,37,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_ASSASSINCROSS','attack',2539,10,1000,1000,150000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CHANGEHOLY','attack',167,1,10000,500,6000000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CHANGETELEKINESIS','attack',169,1,10000,500,6000000,'no','self','myhpltmaxrate',10,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CHANGEWATER','attack',162,1,10000,500,6000000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_POWERUP','attack',349,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_POWERUP','attack',349,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2240,'Alphoccio@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_AGIUP','attack',350,5,2000,0,100000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_AGIUP','attack',350,5,2000,0,25000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_PULSESTRIKE','attack',661,3,1000,1000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_SLOWCAST','attack',672,1,2000,800,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_SLOWCAST','chase',672,1,2000,300,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_STUNATTACK','attack',179,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_SUMMONMONSTER','attack',209,5,10000,700,60000000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2228,2229,2230,2231,2232,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_UGLYDANCE','attack',2541,5,1000,1000,70000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_VAMPIRE_GIFT','attack',679,10,10000,1000,10000,'no','self','myhpltmaxrate',70,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2241,'Trentini@NPC_WINDATTACK','attack',187,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2242,'Desert Wolf@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2242,'Desert Wolf@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2242,'Desert Wolf@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2242,'Desert Wolf@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2242,'Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2243,'Baby Desert Wolf@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2243,'Baby Desert Wolf@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2243,'Baby Desert Wolf@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2243,'Baby Desert Wolf@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2243,'Baby Desert Wolf@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Guild Dungeon F2
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_CRITICALWOUND','attack',673,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_SUMMONSLAVE','attack',196,1,10000,2000,5000,'no','self','slavele',1,2277,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_SUMMONSLAVE','idle',196,1,10000,2000,5000,'no','self','slavele',1,2277,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@NPC_SUMMONSLAVE','chase',196,1,10000,2000,5000,'no','self','slavele',1,2277,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2249,'Angry Student Pyuriel@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_BLEEDING','attack',660,3,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@SM_MAGNUM','attack',7,9,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2250,'Warrior Laura@SM_PROVOKE','chase',6,9,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@AL_HEAL','idle',28,1,10000,0,10000,'yes','self','myhpltmaxrate',99,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@AL_PNEUMA','idle',25,1,10000,0,1000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2252,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2252,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2254,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2253,'Daehyon@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2254,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@NPC_CALLSLAVE','attack',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@NPC_CALLSLAVE','idle',352,1,10000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@NPC_SUMMONSLAVE','attack',196,5,10000,700,10000,'no','self','slavele',3,2256,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2255,'Kades@NPC_SUMMONSLAVE','idle',196,5,10000,700,10000,'no','self','slavele',3,2256,NULL,NULL,NULL,NULL,NULL,NULL);
-#
-REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLINDATTACK','chase',177,3,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,1,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@CR_REFLECTSHIELD','attack',252,2,500,0,300000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKCROSS','attack',338,10,5000,0,10000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,5,1000,1000,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKBREATH','chase',202,5,500,800,30000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKNESSATTACK','attack',190,3,500,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2284,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2284,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2284,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2284,'Kobold@NPC_WINDATTACK','attack',187,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2285,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2285,'Kobold@NPC_POISONATTACK','attack',188,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2285,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2285,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2286,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,22,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2286,'Kobold@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2286,'Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',0,19,0x81,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2286,'Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,9,0x308D,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2287,'Kobold Archer@AC_DOUBLE','attack',46,1,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2287,'Kobold Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,20,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2287,'Kobold Archer@NPC_FIREATTACK','attack',186,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
-
-# Malaya Port
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@BS_HAMMERFALL','attack',110,5,1000,1500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@AS_VENOMDUST','chase',140,1,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@AS_VENOMDUST','attack',140,1,1000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@AL_DECAGI','chase',30,5,2000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@SM_PROVOKE','chase',6,5,1000,600,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@SM_PROVOKE','attack',6,5,1000,600,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@NPC_BLINDATTACK','chase',177,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@NPC_BLINDATTACK','attack',177,5,1000,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@AL_TELEPORT','attack',26,1,100,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_BLOODDRAIN','chase',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_COMBOATTACK','chase',171,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_COMBOATTACK','attack',171,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@AL_TELEPORT','idle',26,1,500,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@AL_TELEPORT','attack',26,1,50,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKTHUNDER','chase',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKTHUNDER','attack',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@AL_DECAGI','chase',30,10,5000,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@AL_INCAGI','chase',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@AL_INCAGI','attack',29,10,2000,0,240000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@TF_HIDING','idle',51,1,1000,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@TF_HIDING','attack',51,1,1000,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@BS_MAXIMIZE','chase',114,10,1000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@BS_MAXIMIZE','attack',114,10,1000,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@NPC_LICK','attack',206,3,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@SM_BASH','attack',5,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@TF_HIDING','idle',51,1,500,500,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@TF_HIDING','attack',51,1,500,500,50000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_REBIRTH','dead',208,3,5000,0,10000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@KN_TWOHANDQUICKEN','attack',60,9,10000,0,100000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@MG_SAFETYWALL','attack',12,10,1000,1000,10000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@MG_THUNDERSTORM','attack',21,10,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_CRITICALWOUND','attack',673,3,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_DRAGONFEAR','attack',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_DRAGONFEAR','chase',659,5,10000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_EARTHQUAKE','attack',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_EARTHQUAKE','chase',653,5,10000,500,20000,'no','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_FIREBREATH','attack',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_FIREBREATH','chase',654,10,2000,500,5000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_PULSESTRIKE','attack',661,5,10000,0,15000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_SUMMONSLAVE','attack',196,1,10000,1000,30000,'no','self','slavele',1,2278,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_SUMMONSLAVE','idle',196,1,10000,1000,30000,'no','self','slavele',1,2278,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@NPC_SUMMONSLAVE','chase',196,1,10000,1000,30000,'no','self','slavele',1,2278,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@SA_LANDPROTECTOR','attack',288,3,5000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@ST_FULLSTRIP','attack',476,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2251,'Gioia@WZ_METEOR','idle',83,9,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@KN_TWOHANDQUICKEN','attack',60,10,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'yes','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@WZ_JUPITEL','attack',84,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@WZ_JUPITEL','attack',84,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@WZ_JUPITEL','chase',84,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2252,'Elvira@WZ_JUPITEL','chase',84,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@BS_MAXIMIZE','attack',114,5,500,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@BS_MAXIMIZE','chase',114,5,500,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_AGIUP','attack',350,5,10000,0,120000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_BLEEDING','attack',660,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_GROUNDATTACK','attack',185,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_STUNATTACK','attack',179,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_SUMMONSLAVE','attack',196,1,10000,700,10000,'yes','self','slavele',1,2279,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_SUMMONSLAVE','idle',196,1,10000,700,10000,'yes','self','slavele',1,2279,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@NPC_WEAPONBRAKER','attack',343,10,500,0,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@WZ_WATERBALL','attack',86,5,2000,500,20000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2253,'General Daehyon@WZ_WATERBALL','chase',86,10,10000,500,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@AL_TELEPORT','idle',26,1,1000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2254,'Samurai Soheon@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@AM_DEMONSTRATION','attack',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@AM_DEMONSTRATION','chase',229,5,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@KN_PIERCE','attack',56,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@MG_FIREBALL','attack',17,10,1000,500,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@MG_FIREBALL','chase',17,10,10000,500,20000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_BLEEDING','attack',660,3,2000,0,50000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_FIREATTACK','attack',186,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_FIREBREATH','chase',654,10,2000,500,10000,'no','target','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_POWERUP','attack',349,5,2000,700,50000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_POWERUP','attack',349,5,10000,700,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_SUMMONSLAVE','attack',196,1,10000,700,30000,'no','self','slavele',1,2280,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_SUMMONSLAVE','idle',196,1,10000,700,30000,'no','self','slavele',1,2280,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@NPC_TELEKINESISATTACK','attack',191,10,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@SM_MAGNUM','attack',7,10,10000,0,5000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@WZ_FIREPILLAR','idle',80,10,1000,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2255,'Dark Guardian Kades@WZ_SIGHTRASHER','attack',81,10,2000,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@MG_NAPALMBEAT','attack',11,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@MG_NAPALMBEAT','chase',11,5,1000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2256,'Rudo@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_BLEEDING','attack',660,3,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_CRITICALSLASH','attack',170,1,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_EMOTION','attack',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_EMOTION','idle',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_EMOTION','chase',197,1,10000,0,5000,'yes','self','skillused',28,15,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@NPC_FIREATTACK','attack',186,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@SM_BASH','attack',5,9,1000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@SM_BASH','attack',5,9,10000,800,1000,'no','target','skillused',5,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@SM_MAGNUM','attack',7,9,5000,500,5000,'no','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2277,'Warrior Laura@SM_PROVOKE','chase',6,9,500,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@KN_TWOHANDQUICKEN','attack',60,10,2000,0,300000,'yes','self','myhpltmaxrate',40,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@NPC_CRITICALSLASH','attack',170,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@NPC_WIDEBLEEDING','attack',665,2,10000,500,100000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@SM_MAGNUM','attack',7,7,1000,0,10000,'yes','self','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@WZ_JUPITEL','attack',84,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@WZ_JUPITEL','attack',84,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@WZ_JUPITEL','chase',84,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2278,'Elvira@WZ_JUPITEL','chase',84,10,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@AS_SONICBLOW','attack',136,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@NPC_CRITICALWOUND','attack',673,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@NPC_INVISIBLE','chase',353,1,2000,1000,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@NPC_STOP','attack',342,1,2000,500,15000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@PR_SANCTUARY','attack',70,10,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@WZ_WATERBALL','attack',86,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2279,'Soheon@WZ_WATERBALL','chase',86,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@AS_SONICBLOW','attack',136,10,1000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@MG_NAPALMBEAT','attack',11,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@MG_NAPALMBEAT','chase',11,5,1000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@NPC_BLEEDING','attack',660,3,500,500,10000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@NPC_FIREATTACK','attack',186,5,2000,1000,200000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@NPC_HOLYATTACK','attack',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2280,'Rudo@NPC_HOLYATTACK','chase',189,2,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,18,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_DARKNESSBREATH','attack',658,1,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_DARKSTRIKE','chase',340,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2281,'Dark Shadow@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@CR_REFLECTSHIELD','attack',252,2,500,0,300000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLINDATTACK','attack',177,3,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLINDATTACK','chase',177,3,1500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,26,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2282,'Dark Frame@NPC_PETRIFYATTACK','chase',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@MO_BODYRELOCATION','chase',264,1,10000,0,5000,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_BLEEDING','attack',660,3,10,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_CHANGEUNDEAD','attack',348,1,300,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKBREATH','chase',202,2,500,800,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKCROSS','attack',338,3,5000,0,10000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2283,'Dark Priest@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2284,'Dark Axe Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2284,'Dark Axe Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2284,'Dark Axe Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2284,'Dark Axe Kobold@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2285,'Dark Hammer Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2285,'Dark Hammer Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2285,'Dark Hammer Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2285,'Dark Hammer Kobold@NPC_POISONATTACK','attack',188,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2286,'Dark Mace Kobold@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2286,'Dark Mace Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2286,'Dark Mace Kobold@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2286,'Dark Mace Kobold@NPC_FIREATTACK','attack',186,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2287,'Dark Kobold Archer@AC_DOUBLE','attack',46,3,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2287,'Dark Kobold Archer@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,20,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2287,'Dark Kobold Archer@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+-- Malaya Port
+REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@BS_HAMMERFALL','attack',110,5,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@CR_AUTOGUARD','attack',249,5,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@CR_AUTOGUARD','chase',249,5,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@NPC_STUNATTACK','attack',179,4,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2309,'Bungisngis@SM_ENDURE','chase',8,1,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,20,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@AL_DECAGI','chase',30,3,2000,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,28,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@NPC_CURSEATTACK','attack',181,5,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@NPC_POISON','attack',176,4,500,800,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2310,'Engkanto@SM_PROVOKE','chase',6,10,500,600,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,4,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_COMBOATTACK','angry',171,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_COMBOATTACK','attack',171,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_WINDATTACK','angry',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2311,'Manananggal@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_DARKTHUNDER','attack',341,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2312,'Mangkukulam@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@AL_DECAGI','chase',30,10,2000,0,60000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@BS_MAXIMIZE','attack',114,1,500,0,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@NPC_AGIUP','attack',350,10,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,16,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@NPC_LICK','attack',206,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,37,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@NPC_WINDATTACK','attack',187,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@TF_HIDING','idle',51,1,500,500,25000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2313,'Tikbalang@TF_HIDING','attack',51,1,2000,500,5000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2314,'Tiyanak@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@AL_TELEPORT','idle',26,1,500,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@AL_TELEPORT','attack',26,1,50,0,30000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_BLOODDRAIN','chase',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_DARKTHUNDER','chase',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_DARKTHUNDER','attack',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_CURSEATTACK','chase',181,3,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,0,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2316,'Jejeling@WZ_WATERBALL','chase',86,7,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2316,'Jejeling@WZ_WATERBALL','attack',86,7,500,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-# currently not enough info about the 3 mvp's skills to finish
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_ALLHEAL','idle',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_ALLHEAL','walk',687,1,3000,10000,10000,'no','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@AS_SONICBLOW','attack',136,10,2000,0,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_PULSESTRIKE','attack',661,5,10000,0,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@BS_HAMMERFALL','chase',110,11,5000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@BS_HAMMERFALL','attack',110,11,10000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_VERMILION','chase',85,20,5000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_VERMILION','attack',85,20,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_METEOR','chase',83,11,5000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_METEOR','attack',83,11,2000,500,20000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_ALLHEAL','idle',687,1,10000,30000,30000,'yes','self','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2318,'Bangungot@NPC_ALLHEAL','idle',687,1,10000,2000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@CR_REFLECTSHIELD','idle',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_STORMGUST','chase',89,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_STORMGUST','attack',89,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_STORMGUST','attack',89,10,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_VERMILION','attack',85,20,10000,500,10000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_METEOR','idle',83,11,10000,0,0,'yes','randomtarget','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_METEOR','attack',83,11,10000,0,1000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-#
-REPLACE INTO `mob_skill_db` VALUES (2329,'Buwaya Egg@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',0,19,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2329,'Buwaya Egg@NPC_METAMORPHOSIS','idle',193,1,1000,2000,5000,'no','self','always',0,2330,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,32,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,4,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@TF_THROWSTONE','chase',152,1,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@NPC_PIERCINGATT','attack',158,5,500,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2330,'Buwaya Slave@NPC_FIREBREATH','attack',654,3,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_DECAGI','chase',30,10,10000,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_HEAL','idle',28,5,10000,500,5000,'no','friend','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_HEAL','chase',28,5,10000,500,5000,'no','friend','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_HEAL','attack',28,5,10000,500,5000,'no','friend','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@CR_REFLECTSHIELD','idle',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,2,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@NPC_DRAGONFEAR','attack',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_METEOR','attack',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_METEOR','chase',83,11,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_VERMILION','chase',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_VERMILION','attack',85,20,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_STORMGUST','chase',89,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2332,'Fake Buwaya@WZ_STORMGUST','attack',89,10,2000,500,2000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2338,'Bangungot Manananggal@NPC_BLOODDRAIN','chase',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2338,'Bangungot Manananggal@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','randomtarget','myhpltmaxrate',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2338,'Bangungot Manananggal@NPC_COMBOATTACK','chase',171,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2338,'Bangungot Manananggal@NPC_COMBOATTACK','attack',171,5,1000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,7,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2339,'Bangungot Mangkukulam@NPC_DARKTHUNDER','chase',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2339,'Bangungot Mangkukulam@NPC_DARKTHUNDER','attack',341,3,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2339,'Bangungot Mangkukulam@NPC_DARKSTRIKE','chase',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-REPLACE INTO `mob_skill_db` VALUES (2339,'Bangungot Mangkukulam@NPC_DARKSTRIKE','attack',340,9,1000,500,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_CURSEATTACK','attack',181,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_DARKNESSATTACK','attack',190,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_DARKTHUNDER','attack',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_DARKTHUNDER','chase',341,3,500,1500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2315,'Wakwak@NPC_ENERGYDRAIN','chase',200,1,500,0,5000,'yes','target','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2316,'Jejeling@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2316,'Jejeling@NPC_WATERATTACK','attack',184,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2316,'Jejeling@WZ_WATERBALL','attack',86,4,500,1000,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@BS_HAMMERFALL','attack',110,10,1000,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_CRITICALWOUND','attack',673,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_METEOR','attack',83,10,2000,500,5000,'no','target','myhpltmaxrate',90,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2317,'Bangungot@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2318,'Bangungot@NPC_ALLHEAL','attack',687,1,3000,2000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2318,'Bangungot@NPC_ALLHEAL','idle',687,1,3000,2000,5000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@CR_REFLECTSHIELD','chase',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_CRITICALWOUND','attack',673,3,2000,0,60000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_ICEBREATH','attack',655,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@SM_PROVOKE','attack',6,10,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_JUPITEL','attack',84,10,10000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_STORMGUST','attack',89,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_STORMGUST','chase',89,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_VERMILION','attack',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_VERMILION','chase',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2319,'Buwaya@WZ_WATERBALL','chase',86,10,5000,500,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_BLEEDING','attack',660,2,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_CRITICALWOUND','attack',673,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2320,'Bakonawa@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@AL_HEAL','attack',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@AL_HEAL','chase',28,10,10000,0,5000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,47,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@AS_SONICBLOW','attack',136,10,2000,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@CR_REFLECTSHIELD','attack',252,5,10000,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_ARMORBRAKE','attack',344,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_BLEEDING','attack',660,2,2000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_CRITICALWOUND','attack',673,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_ICEBREATH','attack',655,5,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_POWERUP','attack',349,3,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_RANDOMATTACK','attack',183,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_METEOR','attack',83,10,2000,1000,30000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_STORMGUST','attack',89,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_STORMGUST','chase',89,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_VERMILION','attack',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_VERMILION','chase',85,10,2000,500,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_WATERBALL','chase',86,10,5000,500,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2322,'Bakonawa@WZ_WATERBALL','chase',86,10,5000,500,1000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2329,'Buwaya\'s Egg@NPC_METAMORPHOSIS','idle',193,1,2000,2000,5000,'no','self','always',NULL,2330,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@NPC_COMBOATTACK','attack',171,2,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',NULL,32,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@NPC_FIREBREATH','attack',654,3,500,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@NPC_GROUNDATTACK','attack',185,5,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@NPC_PIERCINGATT','attack',158,5,500,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@SM_PROVOKE','chase',6,10,2000,600,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,44,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2330,'Slave@TF_THROWSTONE','chase',152,1,2000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_DECAGI','idle',30,1,10000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2331,'Seaweed@AL_HEAL','idle',28,9,10000,500,5000,'yes','friend','friendhpltmaxrate',100,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2337,'Monster@NPC_INVISIBLE','attack',353,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2337,'Monster@NPC_INVISIBLE','idle',353,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2337,'Monster@WZ_METEOR','attack',83,5,10000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_BLOODDRAIN','attack',199,1,1000,0,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_COMBOATTACK','angry',171,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_COMBOATTACK','attack',171,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,1,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_WINDATTACK','angry',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2338,'Manananggal@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_BLINDATTACK','attack',177,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_DARKSTRIKE','attack',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_DARKSTRIKE','chase',340,9,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_DARKTHUNDER','attack',341,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_MENTALBREAKER','attack',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2339,'Mangkukulam@NPC_MENTALBREAKER','chase',159,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,14,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2340,'Tiyanak@NPC_REBIRTH','dead',208,3,2000,0,10000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@AS_SONICBLOW','attack',136,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@CR_HOLYCROSS','attack',253,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@HP_ASSUMPTIO','attack',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@HP_ASSUMPTIO','chase',361,5,10000,0,100000,'yes','self','myhpltmaxrate',60,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@HW_GANBANTEIN','attack',483,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@KN_BRANDISHSPEAR','attack',57,10,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@KN_TWOHANDQUICKEN','attack',60,10,10000,0,90000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@MG_THUNDERSTORM','attack',21,10,10000,1500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_AGIUP','attack',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_AGIUP','chase',350,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_CALLSLAVE','attack',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_CALLSLAVE','idle',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_CALLSLAVE','chase',352,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_CRITICALWOUND','attack',673,4,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_EARTHQUAKE','attack',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_EARTHQUAKE','chase',653,5,10000,1000,25000,'no','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_HOLYATTACK','attack',189,10,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_POWERUP','attack',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_POWERUP','chase',349,5,10000,0,30000,'yes','self','myhpltmaxrate',30,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_PULSESTRIKE','attack',661,5,2000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_SUMMONSLAVE','attack',196,1,10000,2000,5000,'no','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_SUMMONSLAVE','idle',196,1,10000,2000,5000,'no','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@NPC_SUMMONSLAVE','chase',196,1,10000,2000,5000,'no','self','slavele',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@SA_DISPELL','attack',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@SA_DISPELL','chase',289,5,10000,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@WZ_VERMILION','attack',85,10,1000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2341,'2011 RWC Boss@WZ_VERMILION','chase',85,10,2000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2343,'Monster@NPC_INVISIBLE','attack',353,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2343,'Monster@NPC_INVISIBLE','idle',353,1,10000,0,30000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2343,'Monster@WZ_STORMGUST','attack',89,5,10000,0,1000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Nightmare Pyramids
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@BS_HAMMERFALL','attack',110,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,6,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@NPC_FIREATTACK','attack',186,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2353,'Minorous (Nightmare)@WZ_HEAVENDRIVE','attack',91,3,500,1200,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_COMBOATTACK','angry',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_COMBOATTACK','attack',171,1,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_EMOTION','follow',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,9,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2354,'Mummy (Nightmare)@NPC_UNDEADATTACK','attack',347,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2355,'Verit (Nightmare)@NPC_EMOTION','loot',197,1,2000,0,5000,'yes','self','always',NULL,2,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2355,'Verit (Nightmare)@NPC_POISON','attack',176,3,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2355,'Verit (Nightmare)@NPC_PROVOCATION','chase',194,1,200,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,19,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2356,'Mimic (Nightmare)@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2356,'Mimic (Nightmare)@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2356,'Mimic (Nightmare)@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2356,'Mimic (Nightmare)@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2356,'Mimic (Nightmare)@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,29,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2357,'Mimic (Nightmare)@NPC_BLOODDRAIN','angry',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2357,'Mimic (Nightmare)@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2358,'Arclouze (Nightmare)@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2358,'Arclouze (Nightmare)@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2358,'Arclouze (Nightmare)@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2358,'Arclouze (Nightmare)@NPC_GROUNDATTACK','attack',185,3,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2359,'Arclouze (Nightmare)@NPC_GROUNDATTACK','angry',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2359,'Arclouze (Nightmare)@NPC_GROUNDATTACK','attack',185,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2360,'Ancient Mummy@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2360,'Ancient Mummy@NPC_DARKBREATH','attack',202,4,500,800,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2360,'Ancient Mummy@NPC_UNDEADATTACK','attack',347,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@AL_TELEPORT','idle',26,1,10000,0,0,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@AL_TELEPORT','walk',26,1,5000,0,5000,'yes','self','rudeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_BLOODDRAIN','attack',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_BLOODDRAIN','idle',199,1,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_CRITICALWOUND','attack',673,2,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_DARKBLESSING','attack',203,1,5000,0,2000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','attack',209,5,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@NPC_SUMMONMONSTER','idle',209,5,5000,0,10000,'yes','self','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_FIREPILLAR','attack',80,10,5000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_FIREPILLAR','idle',80,10,10000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_FIREPILLAR','idle',80,10,10000,0,2000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','attack',83,10,5000,0,3000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','casttargeted',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',28,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',18,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',21,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',79,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',83,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2362,'Amon Ra (Nightmare)@WZ_METEOR','idle',83,10,10000,0,0,'yes','target','skillused',89,NULL,NULL,NULL,NULL,NULL,9,NULL);
+-- Eclage
+REPLACE INTO `mob_skill_db` VALUES (2363,'Menblatt@KN_PIERCE','attack',56,10,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2363,'Menblatt@NPC_DARKSTRIKE','chase',340,5,2000,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2363,'Menblatt@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2363,'Menblatt@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2364,'Petal@NPC_COMBOATTACK','attack',171,4,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2364,'Petal@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,22,0x308D,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2364,'Petal@NPC_WINDATTACK','attack',187,2,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2365,'Cenere@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2365,'Cenere@NPC_EMOTION','chase',197,1,200,0,5000,'yes','self','always',NULL,19,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2365,'Cenere@NPC_EMOTION','idle',197,1,2000,0,5000,'yes','self','always',NULL,7,0x3095,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2365,'Cenere@NPC_PETRIFYATTACK','attack',180,3,500,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,7,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2365,'Cenere@NPC_WINDATTACK','attack',187,2,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2366,'Antique Book@NPC_BLINDATTACK','attack',177,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2366,'Antique Book@NPC_BLOODDRAIN','attack',199,1,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2366,'Antique Book@NPC_PIERCINGATT','attack',158,3,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,2,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@MG_COLDBOLT','attack',14,6,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@MG_COLDBOLT','chase',14,6,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@MG_FROSTDIVER','attack',15,9,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@MG_FROSTDIVER','chase',15,9,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@NPC_WATERATTACK','attack',184,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2367,'Lichtern@WZ_WATERBALL','attack',86,3,500,1500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@MG_NAPALMBEAT','attack',11,7,2000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@MG_NAPALMBEAT','attack',11,7,4000,0,5000,'yes','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@MG_SOULSTRIKE','attack',13,9,3000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@MG_SOULSTRIKE','chase',13,9,3000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@NPC_STUNATTACK','attack',179,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@NPC_STUNATTACK','chase',179,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,39,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2368,'Lichtern@NPC_TELEKINESISATTACK','attack',191,5,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@MG_FIREBALL','attack',17,7,2000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@MG_FIREBALL','chase',17,5,3000,500,5000,'no','target','attackpcge',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@MG_FIREBOLT','attack',19,7,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@MG_FIREBOLT','chase',19,7,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@NPC_FIREATTACK','attack',186,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@NPC_SLEEPATTACK','attack',182,5,1000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2369,'Lichtern@NPC_SLEEPATTACK','chase',182,5,1000,300,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@MG_STONECURSE','attack',16,8,2000,500,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@MG_STONECURSE','chase',16,8,2000,500,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,29,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@NPC_GROUNDATTACK','attack',185,3,1000,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,21,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@WZ_EARTHSPIKE','attack',90,5,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@WZ_EARTHSPIKE','chase',90,5,3000,1000,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@WZ_QUAGMIRE','attack',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2370,'Lichtern@WZ_QUAGMIRE','chase',92,5,500,700,5000,'no','target','always',NULL,NULL,NULL,NULL,NULL,NULL,11,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@AL_TELEPORT','idle',26,1,500,0,5000,'yes','self','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_EMOTION','idle',197,1,200,0,30000,'yes','self','always',NULL,9,0x0081,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_EMOTION_ON','attack',474,1,10000,0,30000,'yes','self','always',NULL,6,0x3885,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_SILENCEATTACK','attack',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_SILENCEATTACK','chase',178,5,500,700,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_SLEEPATTACK','attack',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@NPC_SLEEPATTACK','chase',182,5,500,0,5000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@SA_DISPELL','attack',289,1,500,0,30000,'yes','target','always',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2371,'Faithful Manager@WZ_FIREPILLAR','idle',80,5,500,0,5000,'yes','around2','always',NULL,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2408,'Lv 10@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2409,'Lv 50@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2410,'Lv 100@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2411,'Lv 150@AL_HEAL','idle',28,10,10000,0,10000,'yes','self','myhpltmaxrate',50,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+-- Old Glast Heim
+REPLACE INTO `mob_skill_db` VALUES (2464,'Zombie@AL_HEAL','idle',28,10,10000,0,5000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,26);
+REPLACE INTO `mob_skill_db` VALUES (2464,'Zombie@NPC_UNDEADATTACK','chase',347,10,8000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2465,'Wraith@NPC_ENERGYDRAIN','attack',200,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2466,'Ghoul@NPC_UNDEADATTACK','chase',347,10,8000,1000,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2467,'Arclouze@NPC_GROUNDATTACK','attack',185,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@BS_MAXIMIZE','attack',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@BS_MAXIMIZE','chase',114,5,500,1000,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@CR_AUTOGUARD','chase',249,2,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@NPC_EMOTION','chase',197,1,2000,0,5000,'yes','self','always',0,0,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2468,'Raydric@SM_MAGNUM','attack',7,9,500,500,5000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2469,'Raydric Archer@AC_CHARGEARROW','attack',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2469,'Raydric Archer@CR_AUTOGUARD','attack',249,2,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2469,'Raydric Archer@NPC_DARKNESSATTACK','attack',190,10,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2470,'Abysmal Knight@AC_CHARGEARROW','chase',148,1,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2470,'Abysmal Knight@CR_AUTOGUARD','attack',249,10,500,0,300000,'yes','self','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2470,'Abysmal Knight@CR_AUTOGUARD','chase',249,10,2000,0,300000,'yes','self','longrangeattacked',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2470,'Abysmal Knight@KN_BRANDISHSPEAR','attack',57,20,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2470,'Abysmal Knight@NPC_DARKNESSATTACK','attack',190,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@CR_SHIELDCHARGE','attack',250,5,500,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@KN_BRANDISHSPEAR','attack',57,5,500,1000,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@NPC_CHANGEFIRE','attack',164,1,10000,2000,600000,'no','self','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@NPC_DARKNESSATTACK','attack',190,2,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,9,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@NPC_WEAPONBRAKER','attack',343,5,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@WZ_METEOR','attack',83,5,2000,0,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2472,'Bloody Knight@WZ_METEOR','chase',83,5,2000,0,5000,'no','target','myhpltmaxrate',20,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2475,'Root of Corruption@NPC_DARKSTRIKE','attack',340,10,2000,0,5000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2475,'Root of Corruption@NPC_HELLJUDGEMENT','idle',662,10,10000,4000,100,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2475,'Root of Corruption@NPC_HELLJUDGEMENT','attack',662,10,10000,1000,10000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2475,'Root of Corruption@NPC_PETRIFYATTACK','attack',180,5,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,3,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2475,'Root of Corruption@NPC_SILENCEATTACK','attack',178,10,2000,0,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@MG_FIREBALL','chase',17,20,5000,500,1000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_CRITICALSLASH','attack',170,1,500,500,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_DARKBREATH','attack',202,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,36,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_DRAGONFEAR','chase',659,5,10000,0,30000,'no','self','always',0,NULL,NULL,NULL,NULL,NULL,6,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_DRAGONFEAR','attack',659,5,2000,1000,20000,'no','self','myhpltmaxrate',80,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_FIREBREATH','attack',654,5,500,800,5000,'no','target','always',0,NULL,NULL,NULL,NULL,NULL,32,NULL);
+REPLACE INTO `mob_skill_db` VALUES (2476,'Amdarias@NPC_WEAPONBRAKER','attack',343,10,500,0,30000,'yes','target','always',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+
diff --git a/sql-files/upgrades/2014-09-01--16-53.sql b/sql-files/upgrades/2014-09-01--16-53.sql
new file mode 100644
index 000000000..9827c002d
--- /dev/null
+++ b/sql-files/upgrades/2014-09-01--16-53.sql
@@ -0,0 +1,5 @@
+#1409590380
+ALTER TABLE `account_data` CHANGE `base_exp` `base_exp` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
+CHANGE `base_drop` `base_drop` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100',
+CHANGE `base_death` `base_death` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '100';
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1409590380);
diff --git a/sql-files/upgrades/2014-11-03--00-45.sql b/sql-files/upgrades/2014-11-03--00-45.sql
new file mode 100644
index 000000000..19d0a8ff5
--- /dev/null
+++ b/sql-files/upgrades/2014-11-03--00-45.sql
@@ -0,0 +1,3 @@
+#1414975503
+ALTER TABLE `char` ADD COLUMN `sex` ENUM('M','F','U') NOT NULL DEFAULT 'U';
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1414975503);
diff --git a/sql-files/upgrades/index.txt b/sql-files/upgrades/index.txt
index ab8ee772d..13495c82d 100644
--- a/sql-files/upgrades/index.txt
+++ b/sql-files/upgrades/index.txt
@@ -23,3 +23,5 @@
2014-04-07--22-04.sql
2014-04-26--10-00.sql
2014-05-17--00-06.sql
+2014-09-01--16-53.sql
+2014-11-03--00-45.sql \ No newline at end of file
diff --git a/src/char/HPMchar.c b/src/char/HPMchar.c
new file mode 100644
index 000000000..4b153b244
--- /dev/null
+++ b/src/char/HPMchar.c
@@ -0,0 +1,53 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#define HERCULES_CORE
+
+#include "HPMchar.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#include "../common/HPM.h"
+#include "../common/cbasetypes.h"
+#include "../common/conf.h"
+#include "../common/db.h"
+#include "../common/des.h"
+#include "../common/ers.h"
+#include "../common/malloc.h"
+#include "../common/mapindex.h"
+#include "../common/mmo.h"
+#include "../common/showmsg.h"
+#include "../common/socket.h"
+#include "../common/strlib.h"
+#include "../common/sysinfo.h"
+
+#include "../common/HPMDataCheck.h"
+
+bool HPM_char_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr) {
+ /* record address */
+ switch( type ) {
+ default:
+ return false;
+ }
+ return true;
+}
+
+void HPM_char_plugin_load_sub(struct hplugin *plugin) {
+}
+
+void HPM_char_do_init(void) {
+#if 0 // TODO (HPMDataCheck is disabled for the time being)
+ HPM->datacheck_init(HPMDataCheck, HPMDataCheckLen, HPMDataCheckVer);
+#else
+ HPM->DataCheck = NULL;
+#endif
+}
+
+void HPM_char_do_final(void) {
+#if 0 // TODO (HPMDataCheck is disabled for the time being)
+ HPM->datacheck_final();
+#endif
+}
diff --git a/src/char/HPMchar.h b/src/char/HPMchar.h
new file mode 100644
index 000000000..9d367725c
--- /dev/null
+++ b/src/char/HPMchar.h
@@ -0,0 +1,21 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#ifndef CHAR_HPMCHAR_H
+#define CHAR_HPMCHAR_H
+
+#include "../common/cbasetypes.h"
+#include "../common/HPM.h"
+
+struct hplugin;
+
+bool HPM_char_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr);
+
+void HPM_char_plugin_load_sub(struct hplugin *plugin);
+
+void HPM_char_do_final(void);
+
+void HPM_char_do_init(void);
+
+#endif /* CHAR_HPMCHAR_H */
+
diff --git a/src/char/Makefile.in b/src/char/Makefile.in
index 59dc56076..20d19966e 100644
--- a/src/char/Makefile.in
+++ b/src/char/Makefile.in
@@ -22,13 +22,13 @@ MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o
MT19937AR_H = $(MT19937AR_D)/mt19937ar.h
MT19937AR_INCLUDE = -I$(MT19937AR_D)
-CHAR_C = char.c inter.c int_auction.c int_elemental.c int_guild.c int_homun.c \
- int_mail.c int_mercenary.c int_party.c int_pet.c int_quest.c \
- int_storage.c pincode.c
+CHAR_C = char.c HPMchar.c loginif.c mapif.c geoip.c inter.c int_auction.c int_elemental.c int_guild.c \
+ int_homun.c int_mail.c int_mercenary.c int_party.c int_pet.c \
+ int_quest.c int_storage.c pincode.c
CHAR_OBJ = $(addprefix obj_sql/, $(patsubst %.c,%.o,$(CHAR_C)))
-CHAR_H = char.h inter.h int_auction.h int_elemental.h int_guild.h int_homun.h \
- int_mail.h int_mercenary.h int_party.h int_pet.h int_quest.h \
- int_storage.h pincode.h
+CHAR_H = char.h HPMchar.h loginif.h mapif.h geoip.h inter.h int_auction.h int_elemental.h int_guild.h \
+ int_homun.h int_mail.h int_mercenary.h int_party.h int_pet.h \
+ int_quest.h int_storage.h pincode.h
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
@@ -91,7 +91,7 @@ char-server: ../../char-server@EXEEXT@
../../char-server@EXEEXT@: $(CHAR_SERVER_SQL_DEPENDS) Makefile
@echo " LD $(notdir $@)"
- @$(CC) @LDFLAGS@ -o ../../char-server@EXEEXT@ $(CHAR_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
+ @$(CC) @STATIC@ @LDFLAGS@ -o ../../char-server@EXEEXT@ $(CHAR_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
$(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@
# char object files
diff --git a/src/char/char.c b/src/char/char.c
index 9abb17257..698832bfb 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -15,13 +15,21 @@
#include <sys/types.h>
#include <time.h>
+#include "HPMchar.h"
+#include "geoip.h"
+#include "int_auction.h"
#include "int_elemental.h"
#include "int_guild.h"
#include "int_homun.h"
+#include "int_mail.h"
#include "int_mercenary.h"
#include "int_party.h"
+#include "int_pet.h"
+#include "int_quest.h"
#include "int_storage.h"
#include "inter.h"
+#include "loginif.h"
+#include "mapif.h"
#include "pincode.h"
#include "../common/HPM.h"
#include "../common/cbasetypes.h"
@@ -38,9 +46,9 @@
#include "../common/utils.h"
// private declarations
-#define CHAR_CONF_NAME "conf/char-server.conf"
-#define LAN_CONF_NAME "conf/subnet.conf"
-#define SQL_CONF_NAME "conf/inter-server.conf"
+#define CHAR_CONF_NAME "conf/char-server.conf"
+#define LAN_CONF_NAME "conf/subnet.conf"
+#define SQL_CONF_NAME "conf/inter-server.conf"
char char_db[256] = "char";
char scdata_db[256] = "sc_data";
@@ -79,43 +87,26 @@ char acc_reg_str_db[32] = "acc_reg_str_db";
char char_reg_str_db[32] = "char_reg_str_db";
char char_reg_num_db[32] = "char_reg_num_db";
+struct char_interface char_s;
+
// show loading/saving messages
int save_log = 1;
-static DBMap* char_db_; // int char_id -> struct mmo_charstatus*
-
char db_path[1024] = "db";
int db_use_sql_item_db;
int db_use_sql_mob_db;
int db_use_sql_mob_skill_db;
-struct mmo_map_server {
- int fd;
- uint32 ip;
- uint16 port;
- int users;
- unsigned short *map;
- unsigned short maps;
-} server[MAX_MAP_SERVERS];
-
-int char_fd=-1;
-char userid[24];
-char passwd[24];
-char server_name[20];
char wisp_server_name[NAME_LENGTH] = "Server";
char login_ip_str[128];
uint32 login_ip = 0;
uint16 login_port = 6900;
char char_ip_str[128];
-uint32 char_ip = 0;
char bind_ip_str[128];
uint32 bind_ip = INADDR_ANY;
-uint16 char_port = 6121;
-int char_server_type = 0;
int char_maintenance_min_group_id = 0;
bool char_new = true;
-int char_new_display = 0;
bool name_ignoring_case = false; // Allow or not identical name for characters but with a different case by [Yor]
int char_name_option = 0; // Option to know which letters/symbols are authorized in the name of a character (0: all, 1: only those in char_name_letters, 2: all EXCEPT those in char_name_letters) by [Yor]
@@ -126,10 +117,10 @@ char char_name_letters[1024] = ""; // list of letters/symbols allowed (or not) i
int char_del_level = 0; //From which level u can delete character [Lupus]
int char_del_delay = 86400;
-int log_char = 1; // logging char or not [devil]
-int log_inter = 1; // logging inter or not [devil]
+int log_char = 1; // logging char or not [devil]
+int log_inter = 1; // logging inter or not [devil]
-int char_aegis_delete = 0; // Verify if char is in guild/party or char and reacts as Aegis does (doesn't allow deletion), see char_delete2_req for more information
+int char_aegis_delete = 0; // Verify if char is in guild/party or char and reacts as Aegis does (doesn't allow deletion), see chr->delete2_req for more information
// Advanced subnet check [LuzZza]
struct s_subnet {
@@ -171,31 +162,16 @@ unsigned short skillid2idx[MAX_SKILL_ID];
//-----------------------------------------------------
#define AUTH_TIMEOUT 30000
-struct auth_node {
- int account_id;
- int char_id;
- uint32 login_id1;
- uint32 login_id2;
- uint32 ip;
- int sex;
- time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited)
- int group_id;
- unsigned changing_mapservers : 1;
-};
-
-static DBMap* auth_db; // int account_id -> struct auth_node*
+static DBMap* auth_db; // int account_id -> struct char_auth_node*
//-----------------------------------------------------
// Online User Database
//-----------------------------------------------------
-static int chardb_waiting_disconnect(int tid, int64 tick, int id, intptr_t data);
-int delete_char_sql(int char_id);
-
/**
* @see DBCreateData
*/
-static DBData create_online_char_data(DBKey key, va_list args)
+static DBData char_create_online_char_data(DBKey key, va_list args)
{
struct online_char_data* character;
CREATE(character, struct online_char_data, 1);
@@ -208,52 +184,62 @@ static DBData create_online_char_data(DBKey key, va_list args)
return DB->ptr2data(character);
}
-void set_char_charselect(int account_id)
+void char_set_account_online(int account_id)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x272b;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
+}
+
+void char_set_account_offline(int account_id)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x272c;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
+}
+
+void char_set_char_charselect(int account_id)
{
struct online_char_data* character;
- character = (struct online_char_data*)idb_ensure(online_char_db, account_id, create_online_char_data);
+ character = (struct online_char_data*)idb_ensure(chr->online_char_db, account_id, chr->create_online_char_data);
if( character->server > -1 )
- if( server[character->server].users > 0 ) // Prevent this value from going negative.
- server[character->server].users--;
+ if( chr->server[character->server].users > 0 ) // Prevent this value from going negative.
+ chr->server[character->server].users--;
character->char_id = -1;
character->server = -1;
if(character->pincode_enable == -1)
- character->pincode_enable = *pincode->charselect + *pincode->enabled;
+ character->pincode_enable = pincode->charselect + pincode->enabled;
if(character->waiting_disconnect != INVALID_TIMER) {
- timer->delete(character->waiting_disconnect, chardb_waiting_disconnect);
+ timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}
- if (login_fd > 0 && !session[login_fd]->flag.eof)
- {
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x272b;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
- }
-
+ if (chr->login_fd > 0 && !session[chr->login_fd]->flag.eof)
+ chr->set_account_online(account_id);
}
-void set_char_online(int map_id, int char_id, int account_id)
+void char_set_char_online(int map_id, int char_id, int account_id)
{
struct online_char_data* character;
struct mmo_charstatus *cp;
//Update DB
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `online`='1' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='1' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
//Check to see for online conflicts
- character = (struct online_char_data*)idb_ensure(online_char_db, account_id, create_online_char_data);
+ character = (struct online_char_data*)idb_ensure(chr->online_char_db, account_id, chr->create_online_char_data);
if( character->char_id != -1 && character->server > -1 && character->server != map_id )
{
- ShowNotice("set_char_online: Character %d:%d marked in map server %d, but map server %d claims to have (%d:%d) online!\n",
+ ShowNotice("chr->set_char_online: Character %d:%d marked in map server %d, but map server %d claims to have (%d:%d) online!\n",
character->account_id, character->char_id, character->server, map_id, account_id, char_id);
- mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
+ mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
}
//Update state data
@@ -261,56 +247,51 @@ void set_char_online(int map_id, int char_id, int account_id)
character->server = map_id;
if( character->server > -1 )
- server[character->server].users++;
+ chr->server[character->server].users++;
//Get rid of disconnect timer
if(character->waiting_disconnect != INVALID_TIMER) {
- timer->delete(character->waiting_disconnect, chardb_waiting_disconnect);
+ timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}
//Set char online in guild cache. If char is in memory, use the guild id on it, otherwise seek it.
- cp = (struct mmo_charstatus*)idb_get(char_db_,char_id);
- inter_guild_CharOnline(char_id, cp?cp->guild_id:-1);
+ cp = (struct mmo_charstatus*)idb_get(chr->char_db_,char_id);
+ inter_guild->CharOnline(char_id, cp?cp->guild_id:-1);
//Notify login server
- if (login_fd > 0 && !session[login_fd]->flag.eof)
- {
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x272b;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
- }
+ if (chr->login_fd > 0 && !session[chr->login_fd]->flag.eof)
+ chr->set_account_online(account_id);
}
-void set_char_offline(int char_id, int account_id)
+void char_set_char_offline(int char_id, int account_id)
{
struct online_char_data* character;
if ( char_id == -1 )
{
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `online`='0' WHERE `account_id`='%d'", char_db, account_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='0' WHERE `account_id`='%d'", char_db, account_id) )
+ Sql_ShowDebug(inter->sql_handle);
}
else
{
- struct mmo_charstatus* cp = (struct mmo_charstatus*)idb_get(char_db_,char_id);
- inter_guild_CharOffline(char_id, cp?cp->guild_id:-1);
+ struct mmo_charstatus* cp = (struct mmo_charstatus*)idb_get(chr->char_db_,char_id);
+ inter_guild->CharOffline(char_id, cp?cp->guild_id:-1);
if (cp)
- idb_remove(char_db_,char_id);
+ idb_remove(chr->char_db_,char_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `online`='0' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online`='0' WHERE `char_id`='%d' LIMIT 1", char_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
}
- if ((character = (struct online_char_data*)idb_get(online_char_db, account_id)) != NULL)
- { //We don't free yet to avoid aCalloc/aFree spamming during char change. [Skotlex]
+ if ((character = (struct online_char_data*)idb_get(chr->online_char_db, account_id)) != NULL) {
+ //We don't free yet to avoid aCalloc/aFree spamming during char change. [Skotlex]
if( character->server > -1 )
- if( server[character->server].users > 0 ) // Prevent this value from going negative.
- server[character->server].users--;
+ if( chr->server[character->server].users > 0 ) // Prevent this value from going negative.
+ chr->server[character->server].users--;
if(character->waiting_disconnect != INVALID_TIMER){
- timer->delete(character->waiting_disconnect, chardb_waiting_disconnect);
+ timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}
@@ -325,13 +306,8 @@ void set_char_offline(int char_id, int account_id)
}
//Remove char if 1- Set all offline, or 2- character is no longer connected to char-server.
- if (login_fd > 0 && !session[login_fd]->flag.eof && (char_id == -1 || character == NULL || character->fd == -1))
- {
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x272c;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
- }
+ if (chr->login_fd > 0 && !session[chr->login_fd]->flag.eof && (char_id == -1 || character == NULL || character->fd == -1))
+ chr->set_account_offline(account_id);
}
/**
@@ -345,7 +321,7 @@ static int char_db_setoffline(DBKey key, DBData *data, va_list ap)
character->char_id = -1;
character->server = -1;
if(character->waiting_disconnect != INVALID_TIMER){
- timer->delete(character->waiting_disconnect, chardb_waiting_disconnect);
+ timer->delete(character->waiting_disconnect, chr->waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}
} else if (character->server == server_id)
@@ -366,46 +342,51 @@ static int char_db_kickoffline(DBKey key, DBData *data, va_list ap)
//Kick out any connected characters, and set them offline as appropriate.
if (character->server > -1)
- mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 1);
+ mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 1);
else if (character->waiting_disconnect == INVALID_TIMER)
- set_char_offline(character->char_id, character->account_id);
+ chr->set_char_offline(character->char_id, character->account_id);
else
return 0; // fail
return 1;
}
-void set_all_offline(int id)
+void char_set_login_all_offline(void)
+{
+ //Tell login-server to also mark all our characters as offline.
+ WFIFOHEAD(chr->login_fd,2);
+ WFIFOW(chr->login_fd,0) = 0x2737;
+ WFIFOSET(chr->login_fd,2);
+}
+
+void char_set_all_offline(int id)
{
if (id < 0)
ShowNotice("Sending all users offline.\n");
else
ShowNotice("Sending users of map-server %d offline.\n",id);
- online_char_db->foreach(online_char_db,char_db_kickoffline,id);
+ chr->online_char_db->foreach(chr->online_char_db,chr->db_kickoffline,id);
- if (id >= 0 || login_fd <= 0 || session[login_fd]->flag.eof)
+ if (id >= 0 || chr->login_fd <= 0 || session[chr->login_fd]->flag.eof)
return;
- //Tell login-server to also mark all our characters as offline.
- WFIFOHEAD(login_fd,2);
- WFIFOW(login_fd,0) = 0x2737;
- WFIFOSET(login_fd,2);
+ chr->set_login_all_offline();
}
-void set_all_offline_sql(void)
+void char_set_all_offline_sql(void)
{
//Set all players to 'OFFLINE'
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `online` = '0'", char_db) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `online` = '0'", guild_member_db) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `connect_member` = '0'", guild_db) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online` = '0'", char_db) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `online` = '0'", guild_member_db) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `connect_member` = '0'", guild_db) )
+ Sql_ShowDebug(inter->sql_handle);
}
/**
* @see DBCreateData
*/
-static DBData create_charstatus(DBKey key, va_list args)
+static DBData char_create_charstatus(DBKey key, va_list args)
{
struct mmo_charstatus *cp;
cp = (struct mmo_charstatus *) aCalloc(1,sizeof(struct mmo_charstatus));
@@ -413,9 +394,7 @@ static DBData create_charstatus(DBKey key, va_list args)
return DB->ptr2data(cp);
}
-int inventory_to_sql(const struct item items[], int max, int id);
-
-int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
+int char_mmo_char_tosql(int char_id, struct mmo_charstatus* p)
{
int i = 0;
int count = 0;
@@ -427,14 +406,14 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
if (char_id!=p->char_id) return 0;
- cp = idb_ensure(char_db_, char_id, create_charstatus);
+ cp = idb_ensure(chr->char_db_, char_id, chr->create_charstatus);
StrBuf->Init(&buf);
memset(save_status, 0, sizeof(save_status));
//map inventory data
if( memcmp(p->inventory, cp->inventory, sizeof(p->inventory)) ) {
- if (!inventory_to_sql(p->inventory, MAX_INVENTORY, p->char_id))
+ if (!chr->inventory_to_sql(p->inventory, MAX_INVENTORY, p->char_id))
strcat(save_status, " inventory");
else
errors++;
@@ -442,7 +421,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
//map cart data
if( memcmp(p->cart, cp->cart, sizeof(p->cart)) ) {
- if (!memitemdata_to_sql(p->cart, MAX_CART, p->char_id, TABLE_CART))
+ if (!chr->memitemdata_to_sql(p->cart, MAX_CART, p->char_id, TABLE_CART))
strcat(save_status, " cart");
else
errors++;
@@ -450,12 +429,12 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
//map storage data
if( memcmp(p->storage.items, cp->storage.items, sizeof(p->storage.items)) ) {
- if (!memitemdata_to_sql(p->storage.items, MAX_STORAGE, p->account_id, TABLE_STORAGE))
+ if (!chr->memitemdata_to_sql(p->storage.items, MAX_STORAGE, p->account_id, TABLE_STORAGE))
strcat(save_status, " storage");
else
errors++;
}
-
+
if (
(p->base_exp != cp->base_exp) || (p->base_level != cp->base_level) ||
(p->job_level != cp->job_level) || (p->job_exp != cp->job_exp) ||
@@ -474,23 +453,40 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
(p->head_mid != cp->head_mid) || (p->head_bottom != cp->head_bottom) || (p->delete_date != cp->delete_date) ||
(p->rename != cp->rename) || (p->slotchange != cp->slotchange) || (p->robe != cp->robe) ||
(p->show_equip != cp->show_equip) || (p->allow_party != cp->allow_party) || (p->font != cp->font) ||
- (p->uniqueitem_counter != cp->uniqueitem_counter )
- ) { //Save status
+ (p->uniqueitem_counter != cp->uniqueitem_counter ) || (p->sex != cp->sex)
+ ) {
+ //Save status
unsigned int opt = 0;
-
+ char sex;
+
if( p->allow_party )
opt |= OPT_ALLOW_PARTY;
if( p->show_equip )
opt |= OPT_SHOW_EQUIP;
-
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `base_level`='%d', `job_level`='%d',"
+
+ switch (p->sex)
+ {
+ case 0:
+ sex = 'F';
+ break;
+ case 1:
+ sex = 'M';
+ break;
+ case 99:
+ default:
+ sex = 'U';
+ break;
+ }
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `base_level`='%d', `job_level`='%d',"
"`base_exp`='%u', `job_exp`='%u', `zeny`='%d',"
"`max_hp`='%d',`hp`='%d',`max_sp`='%d',`sp`='%d',`status_point`='%d',`skill_point`='%d',"
"`str`='%d',`agi`='%d',`vit`='%d',`int`='%d',`dex`='%d',`luk`='%d',"
"`option`='%d',`party_id`='%d',`guild_id`='%d',`pet_id`='%d',`homun_id`='%d',`elemental_id`='%d',"
"`weapon`='%d',`shield`='%d',`head_top`='%d',`head_mid`='%d',`head_bottom`='%d',"
"`last_map`='%s',`last_x`='%d',`last_y`='%d',`save_map`='%s',`save_x`='%d',`save_y`='%d', `rename`='%d',"
- "`delete_date`='%lu',`robe`='%d',`slotchange`='%d', `char_opt`='%u', `font`='%u', `uniqueitem_counter` ='%u'"
+ "`delete_date`='%lu',`robe`='%d',`slotchange`='%d', `char_opt`='%u', `font`='%u', `uniqueitem_counter` ='%u',"
+ " sex = '%c'"
" WHERE `account_id`='%d' AND `char_id` = '%d'",
char_db, p->base_level, p->job_level,
p->base_exp, p->job_exp, p->zeny,
@@ -501,18 +497,18 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
mapindex_id2name(p->last_point.map), p->last_point.x, p->last_point.y,
mapindex_id2name(p->save_point.map), p->save_point.x, p->save_point.y, p->rename,
(unsigned long)p->delete_date, // FIXME: platform-dependent size
- p->robe,p->slotchange,opt,p->font,p->uniqueitem_counter,
+ p->robe,p->slotchange,opt,p->font,p->uniqueitem_counter, sex,
p->account_id, p->char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
} else
strcat(save_status, " status");
}
-
+
if( p->bank_vault != cp->bank_vault || p->mod_exp != cp->mod_exp || p->mod_drop != cp->mod_drop || p->mod_death != cp->mod_death ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`account_id`,`bank_vault`,`base_exp`,`base_drop`,`base_death`) VALUES ('%d','%d','%d','%d','%d')",account_data_db,p->account_id,p->bank_vault,p->mod_exp,p->mod_drop,p->mod_death) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`account_id`,`bank_vault`,`base_exp`,`base_drop`,`base_death`) VALUES ('%d','%d','%d','%d','%d')",account_data_db,p->account_id,p->bank_vault,p->mod_exp,p->mod_drop,p->mod_death) ) {
+ Sql_ShowDebug(inter->sql_handle);
errors++;
} else
strcat(save_status, " accdata");
@@ -524,11 +520,11 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
(p->class_ != cp->class_) ||
(p->partner_id != cp->partner_id) || (p->father != cp->father) ||
(p->mother != cp->mother) || (p->child != cp->child) ||
- (p->karma != cp->karma) || (p->manner != cp->manner) ||
+ (p->karma != cp->karma) || (p->manner != cp->manner) ||
(p->fame != cp->fame)
)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `class`='%d',"
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `class`='%d',"
"`hair`='%d',`hair_color`='%d',`clothes_color`='%d',"
"`partner_id`='%d', `father`='%d', `mother`='%d', `child`='%d',"
"`karma`='%d',`manner`='%d', `fame`='%d'"
@@ -539,7 +535,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
p->karma, p->manner, p->fame,
p->account_id, p->char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
} else
strcat(save_status, " status2");
@@ -551,7 +547,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
(p->spear_calls != cp->spear_calls) || (p->spear_faith != cp->spear_faith) ||
(p->sword_calls != cp->sword_calls) || (p->sword_faith != cp->sword_faith) )
{
- if (mercenary_owner_tosql(char_id, p))
+ if (inter_mercenary->owner_tosql(char_id, p))
strcat(save_status, " mercenary");
else
errors++;
@@ -563,9 +559,9 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
char esc_mapname[NAME_LENGTH*2+1];
//`memo` (`memo_id`,`char_id`,`map`,`x`,`y`)
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, p->char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, p->char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
@@ -578,16 +574,16 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
{
if( count )
StrBuf->AppendStr(&buf, ",");
- SQL->EscapeString(sql_handle, esc_mapname, mapindex_id2name(p->memo_point[i].map));
+ SQL->EscapeString(inter->sql_handle, esc_mapname, mapindex_id2name(p->memo_point[i].map));
StrBuf->Printf(&buf, "('%d', '%s', '%d', '%d')", char_id, esc_mapname, p->memo_point[i].x, p->memo_point[i].y);
++count;
}
}
if( count )
{
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -597,8 +593,8 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
//skills
if( memcmp(p->skill, cp->skill, sizeof(p->skill)) ) {
//`skill` (`char_id`, `id`, `lv`)
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, p->char_id) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, p->char_id) ) {
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
@@ -607,7 +603,6 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
//insert here.
for( i = 0, count = 0; i < MAX_SKILL; ++i ) {
if( p->skill[i].id != 0 && p->skill[i].flag != SKILL_FLAG_TEMPORARY ) {
-
if( p->skill[i].lv == 0 && ( p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT ) )
continue;
if( p->skill[i].flag != SKILL_FLAG_PERMANENT && p->skill[i].flag != SKILL_FLAG_PERM_GRANTED && (p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0) == 0 )
@@ -622,9 +617,9 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
}
if( count )
{
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -641,11 +636,11 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
}
}
- if(diff == 1)
- { //Save friends
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", friend_db, char_id) )
+ if(diff == 1) {
+ //Save friends
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", friend_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
@@ -663,9 +658,9 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
}
if( count )
{
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -687,15 +682,15 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
}
}
if(diff) {
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
} else
strcat(save_status, " hotkeys");
}
#endif
-
+
StrBuf->Destroy(&buf);
if (save_status[0]!='\0' && save_log)
ShowInfo("Saved char %d - %s:%s.\n", char_id, p->name, save_status);
@@ -705,7 +700,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus* p)
}
/// Saves an array of 'item' entries into the specified table.
-int memitemdata_to_sql(const struct item items[], int max, int id, int tableswitch)
+int char_memitemdata_to_sql(const struct item items[], int max, int id, int tableswitch)
{
StringBuf buf;
SqlStmt* stmt;
@@ -736,11 +731,11 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`");
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `%s`='%d'", tablename, selectoption, id);
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
@@ -750,6 +745,7 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
return 1;
}
+ memset(&item, 0, sizeof(item));
SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
@@ -759,7 +755,7 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, 0, NULL, NULL);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
SQL->StmtBindColumn(stmt, 9+j, SQLDT_SHORT, &item.card[j], 0, NULL, NULL);
// bit array indicating which inventory items have already been matched
@@ -776,33 +772,34 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
continue;
if( items[i].nameid == item.nameid
- && items[i].card[0] == item.card[0]
- && items[i].card[2] == item.card[2]
- && items[i].card[3] == item.card[3]
- ) { //They are the same item.
+ && items[i].card[0] == item.card[0]
+ && items[i].card[2] == item.card[2]
+ && items[i].card[3] == item.card[3]
+ ) {
+ //They are the same item.
ARR_FIND( 0, MAX_SLOTS, j, items[i].card[j] != item.card[j] );
- if( j == MAX_SLOTS &&
- items[i].amount == item.amount &&
- items[i].equip == item.equip &&
- items[i].identify == item.identify &&
- items[i].refine == item.refine &&
- items[i].attribute == item.attribute &&
- items[i].expire_time == item.expire_time &&
- items[i].bound == item.bound )
- ; //Do nothing.
- else
- {
+ if( j == MAX_SLOTS
+ && items[i].amount == item.amount
+ && items[i].equip == item.equip
+ && items[i].identify == item.identify
+ && items[i].refine == item.refine
+ && items[i].attribute == item.attribute
+ && items[i].expire_time == item.expire_time
+ && items[i].bound == item.bound
+ ) {
+ ; //Do nothing.
+ } else {
// update all fields.
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "UPDATE `%s` SET `amount`='%d', `equip`='%d', `identify`='%d', `refine`='%d',`attribute`='%d', `expire_time`='%u', `bound`='%d'",
tablename, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].bound);
- for( j = 0; j < MAX_SLOTS; ++j )for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`=%d", j, items[i].card[j]);
- StrBuf->Printf(&buf, " WHERE `id`='%d' LIMIT 1", item.id);
+ StrBuf->Printf(&buf, " WHERE `id`='%d' LIMIT 1", item.id);
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -813,9 +810,9 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
}
if( !found )
{// Item not present in inventory, remove it.
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE from `%s` where `id`='%d' LIMIT 1", tablename, item.id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE from `%s` where `id`='%d' LIMIT 1", tablename, item.id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -824,7 +821,7 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "INSERT INTO `%s`(`%s`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`", tablename, selectoption);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->AppendStr(&buf, ") VALUES ");
@@ -843,14 +840,14 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
StrBuf->Printf(&buf, "('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%u', '%d', '%"PRIu64"'",
id, items[i].nameid, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].bound, items[i].unique_id);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", '%d'", items[i].card[j]);
StrBuf->AppendStr(&buf, ")");
}
- if( found && SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
+ if( found && SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
@@ -859,9 +856,9 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit
return errors;
}
-/* pretty much a copy of memitemdata_to_sql except it handles inventory_db exclusively,
+/* pretty much a copy of chr->memitemdata_to_sql except it handles inventory_db exclusively,
* - this is required because inventory db is the only one with the 'favorite' column. */
-int inventory_to_sql(const struct item items[], int max, int id) {
+int char_inventory_to_sql(const struct item items[], int max, int id) {
StringBuf buf;
SqlStmt* stmt;
int i;
@@ -879,11 +876,11 @@ int inventory_to_sql(const struct item items[], int max, int id) {
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `favorite`, `bound`");
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`='%d'", inventory_db, id);
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
@@ -893,6 +890,7 @@ int inventory_to_sql(const struct item items[], int max, int id) {
return 1;
}
+ memset(&item, 0, sizeof(item));
SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
@@ -903,7 +901,7 @@ int inventory_to_sql(const struct item items[], int max, int id) {
SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 8, SQLDT_CHAR, &item.favorite, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 9, SQLDT_UCHAR, &item.bound, 0, NULL, NULL);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
SQL->StmtBindColumn(stmt, 10+j, SQLDT_SHORT, &item.card[j], 0, NULL, NULL);
// bit array indicating which inventory items have already been matched
@@ -918,32 +916,34 @@ int inventory_to_sql(const struct item items[], int max, int id) {
continue;
if( items[i].nameid == item.nameid
- && items[i].card[0] == item.card[0]
- && items[i].card[2] == item.card[2]
- && items[i].card[3] == item.card[3]
- ) { //They are the same item.
+ && items[i].card[0] == item.card[0]
+ && items[i].card[2] == item.card[2]
+ && items[i].card[3] == item.card[3]
+ ) {
+ //They are the same item.
ARR_FIND( 0, MAX_SLOTS, j, items[i].card[j] != item.card[j] );
- if( j == MAX_SLOTS &&
- items[i].amount == item.amount &&
- items[i].equip == item.equip &&
- items[i].identify == item.identify &&
- items[i].refine == item.refine &&
- items[i].attribute == item.attribute &&
- items[i].expire_time == item.expire_time &&
- items[i].favorite == item.favorite &&
- items[i].bound == item.bound )
- ; //Do nothing.
- else {
+ if( j == MAX_SLOTS
+ && items[i].amount == item.amount
+ && items[i].equip == item.equip
+ && items[i].identify == item.identify
+ && items[i].refine == item.refine
+ && items[i].attribute == item.attribute
+ && items[i].expire_time == item.expire_time
+ && items[i].favorite == item.favorite
+ && items[i].bound == item.bound
+ ) {
+ ; //Do nothing.
+ } else {
// update all fields.
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "UPDATE `%s` SET `amount`='%d', `equip`='%d', `identify`='%d', `refine`='%d',`attribute`='%d', `expire_time`='%u', `favorite`='%d', `bound`='%d'",
- inventory_db, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].favorite, items[i].bound);
- for( j = 0; j < MAX_SLOTS; ++j )
- StrBuf->Printf(&buf, ", `card%d`=%d", j, items[i].card[j]);
+ inventory_db, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].favorite, items[i].bound);
+ for( j = 0; j < MAX_SLOTS; ++j )
+ StrBuf->Printf(&buf, ", `card%d`=%d", j, items[i].card[j]);
StrBuf->Printf(&buf, " WHERE `id`='%d' LIMIT 1", item.id);
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) ) {
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -953,8 +953,8 @@ int inventory_to_sql(const struct item items[], int max, int id) {
}
}
if( !found ) {// Item not present in inventory, remove it.
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE from `%s` where `id`='%d' LIMIT 1", inventory_db, item.id) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE from `%s` where `id`='%d' LIMIT 1", inventory_db, item.id) ) {
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
}
@@ -963,7 +963,7 @@ int inventory_to_sql(const struct item items[], int max, int id) {
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "INSERT INTO `%s` (`char_id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `favorite`, `bound`, `unique_id`", inventory_db);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->AppendStr(&buf, ") VALUES ");
@@ -981,13 +981,13 @@ int inventory_to_sql(const struct item items[], int max, int id) {
StrBuf->Printf(&buf, "('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%u', '%d', '%d', '%"PRIu64"'",
id, items[i].nameid, items[i].amount, items[i].equip, items[i].identify, items[i].refine, items[i].attribute, items[i].expire_time, items[i].favorite, items[i].bound, items[i].unique_id);
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", '%d'", items[i].card[j]);
StrBuf->AppendStr(&buf, ")");
}
- if( found && SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) ) {
- Sql_ShowDebug(sql_handle);
+ if( found && SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) ) {
+ Sql_ShowDebug(inter->sql_handle);
errors++;
}
@@ -997,20 +997,18 @@ int inventory_to_sql(const struct item items[], int max, int id) {
return errors;
}
-
-int mmo_char_tobuf(uint8* buf, struct mmo_charstatus* p);
-
//=====================================================================================================
// Loads the basic character rooster for the given account. Returns total buffer used.
-int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
+int char_mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
{
SqlStmt* stmt;
struct mmo_charstatus p;
int j = 0, i;
char last_map[MAP_NAME_LENGTH_EXT];
time_t unban_time = 0;
+ char sex[2];
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( stmt == NULL ) {
SqlStmt_ShowDebug(stmt);
return 0;
@@ -1021,68 +1019,80 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
sd->found_char[i] = -1;
sd->unban_time[i] = 0;
}
-
+
// read char data
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT "
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT "
"`char_id`,`char_num`,`name`,`class`,`base_level`,`job_level`,`base_exp`,`job_exp`,`zeny`,"
"`str`,`agi`,`vit`,`int`,`dex`,`luk`,`max_hp`,`hp`,`max_sp`,`sp`,"
"`status_point`,`skill_point`,`option`,`karma`,`manner`,`hair`,`hair_color`,"
"`clothes_color`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`last_map`,`rename`,`delete_date`,"
- "`robe`,`slotchange`,`unban_time`"
+ "`robe`,`slotchange`,`unban_time`,`sex`"
" FROM `%s` WHERE `account_id`='%d' AND `char_num` < '%d'", char_db, sd->account_id, MAX_CHARS)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p.char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &p.slot, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &p.name, sizeof(p.name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_SHORT, &p.class_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_UINT, &p.base_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p.job_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p.base_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p.job_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &p.zeny, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_SHORT, &p.str, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p.agi, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p.vit, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p.int_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p.dex, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p.luk, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_INT, &p.max_hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p.hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p.max_sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p.sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_UINT, &p.status_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p.skill_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p.option, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UCHAR, &p.karma, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_SHORT, &p.manner, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p.hair, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_SHORT, &p.hair_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_SHORT, &p.clothes_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_SHORT, &p.weapon, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_SHORT, &p.shield, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_SHORT, &p.head_top, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p.head_mid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p.head_bottom, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_USHORT, &p.rename, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_UINT32, &p.delete_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p.robe, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_USHORT, &p.slotchange, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_LONG, &unban_time, 0, NULL, NULL)
- )
- {
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p.char_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &p.slot, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &p.name, sizeof(p.name), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_SHORT, &p.class_, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_UINT, &p.base_level, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p.job_level, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p.base_exp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p.job_exp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &p.zeny, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_SHORT, &p.str, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p.agi, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p.vit, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p.int_, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p.dex, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p.luk, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_INT, &p.max_hp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p.hp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p.max_sp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p.sp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_UINT, &p.status_point, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p.skill_point, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p.option, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UCHAR, &p.karma, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_SHORT, &p.manner, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p.hair, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_SHORT, &p.hair_color, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_SHORT, &p.clothes_color, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_SHORT, &p.weapon, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_SHORT, &p.shield, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_SHORT, &p.head_top, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p.head_mid, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p.head_bottom, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_USHORT, &p.rename, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_UINT32, &p.delete_date, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p.robe, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_USHORT, &p.slotchange, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_LONG, &unban_time, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_ENUM, &sex, sizeof(sex), NULL, NULL)
+ ) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
return 0;
}
-
+
for( i = 0; i < MAX_CHARS && SQL_SUCCESS == SQL->StmtNextRow(stmt); i++ ) {
p.last_point.map = mapindex->name2id(last_map);
sd->found_char[p.slot] = p.char_id;
sd->unban_time[p.slot] = unban_time;
- j += mmo_char_tobuf(WBUFP(buf, j), &p);
+ switch( sex[0] ) {
+ case 'M':
+ p.sex = 1;
+ break;
+ case 'F':
+ p.sex = 0;
+ break;
+ case 'U':
+ default:
+ p.sex = 99;
+ break;
+ }
+ j += chr->mmo_char_tobuf(WBUFP(buf, j), &p);
}
-
+
memset(sd->new_name,0,sizeof(sd->new_name));
SQL->StmtFree(stmt);
@@ -1090,7 +1100,7 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
}
//=====================================================================================================
-int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything)
+int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything)
{
int i,j;
char t_msg[128] = "";
@@ -1110,12 +1120,13 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
#endif
unsigned int opt;
int account_id;
+ char sex[2];
memset(p, 0, sizeof(struct mmo_charstatus));
if (save_log) ShowInfo("Char load request (%d)\n", char_id);
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( stmt == NULL )
{
SqlStmt_ShowDebug(stmt);
@@ -1123,74 +1134,74 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
}
// read char data
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT "
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT "
"`char_id`,`account_id`,`char_num`,`name`,`class`,`base_level`,`job_level`,`base_exp`,`job_exp`,`zeny`,"
"`str`,`agi`,`vit`,`int`,`dex`,`luk`,`max_hp`,`hp`,`max_sp`,`sp`,"
"`status_point`,`skill_point`,`option`,`karma`,`manner`,`party_id`,`guild_id`,`pet_id`,`homun_id`,`elemental_id`,`hair`,"
"`hair_color`,`clothes_color`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`last_map`,`last_x`,`last_y`,"
"`save_map`,`save_x`,`save_y`,`partner_id`,`father`,`mother`,`child`,`fame`,`rename`,`delete_date`,`robe`,`slotchange`,"
- "`char_opt`,`font`,`uniqueitem_counter`"
+ "`char_opt`,`font`,`uniqueitem_counter`,`sex`"
" FROM `%s` WHERE `char_id`=? LIMIT 1", char_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &p->account_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &p->slot, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &p->name, sizeof(p->name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_SHORT, &p->class_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p->base_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p->job_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p->base_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UINT, &p->job_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_INT, &p->zeny, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p->str, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p->agi, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p->vit, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p->int_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p->dex, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_SHORT, &p->luk, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p->max_hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p->hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p->max_sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p->sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p->status_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p->skill_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UINT, &p->option, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_UCHAR, &p->karma, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p->manner, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_INT, &p->party_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_INT, &p->guild_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_INT, &p->pet_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_INT, &p->hom_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_INT, &p->ele_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p->hair, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p->hair_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p->clothes_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_SHORT, &p->weapon, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_SHORT, &p->shield, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p->head_top, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p->head_mid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_SHORT, &p->head_bottom, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_SHORT, &p->last_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 40, SQLDT_SHORT, &p->last_point.y, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 41, SQLDT_STRING, &save_map, sizeof(save_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 42, SQLDT_SHORT, &p->save_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 43, SQLDT_SHORT, &p->save_point.y, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 44, SQLDT_INT, &p->partner_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 45, SQLDT_INT, &p->father, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 46, SQLDT_INT, &p->mother, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 47, SQLDT_INT, &p->child, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 48, SQLDT_INT, &p->fame, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 49, SQLDT_USHORT, &p->rename, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 50, SQLDT_UINT32, &p->delete_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 51, SQLDT_SHORT, &p->robe, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 52, SQLDT_USHORT, &p->slotchange, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 53, SQLDT_UINT, &opt, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 54, SQLDT_UCHAR, &p->font, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 55, SQLDT_UINT, &p->uniqueitem_counter, 0, NULL, NULL)
- )
- {
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->char_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &p->account_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &p->slot, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &p->name, sizeof(p->name), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_SHORT, &p->class_, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_UINT, &p->base_level, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT, &p->job_level, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &p->base_exp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UINT, &p->job_exp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_INT, &p->zeny, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p->str, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p->agi, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p->vit, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p->int_, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p->dex, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_SHORT, &p->luk, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p->max_hp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p->hp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p->max_sp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p->sp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_UINT, &p->status_point, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p->skill_point, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UINT, &p->option, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_UCHAR, &p->karma, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p->manner, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_INT, &p->party_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_INT, &p->guild_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_INT, &p->pet_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_INT, &p->hom_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_INT, &p->ele_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p->hair, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p->hair_color, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p->clothes_color, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_SHORT, &p->weapon, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_SHORT, &p->shield, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p->head_top, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p->head_mid, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_SHORT, &p->head_bottom, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_SHORT, &p->last_point.x, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 40, SQLDT_SHORT, &p->last_point.y, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 41, SQLDT_STRING, &save_map, sizeof(save_map), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 42, SQLDT_SHORT, &p->save_point.x, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 43, SQLDT_SHORT, &p->save_point.y, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 44, SQLDT_INT, &p->partner_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 45, SQLDT_INT, &p->father, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 46, SQLDT_INT, &p->mother, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 47, SQLDT_INT, &p->child, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 48, SQLDT_INT, &p->fame, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 49, SQLDT_USHORT, &p->rename, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 50, SQLDT_UINT32, &p->delete_date, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 51, SQLDT_SHORT, &p->robe, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 52, SQLDT_USHORT, &p->slotchange, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 53, SQLDT_UINT, &opt, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 54, SQLDT_UCHAR, &p->font, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 55, SQLDT_UINT, &p->uniqueitem_counter, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 56, SQLDT_ENUM, &sex, sizeof(sex), NULL, NULL)
+ ) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
return 0;
@@ -1201,24 +1212,37 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
SQL->StmtFree(stmt);
return 0;
}
-
+
+ switch( sex[0] ) {
+ case 'M':
+ p->sex = 1;
+ break;
+ case 'F':
+ p->sex = 0;
+ break;
+ case 'U':
+ default:
+ p->sex = 99;
+ break;
+ }
+
account_id = p->account_id;
-
+
p->last_point.map = mapindex->name2id(last_map);
p->save_point.map = mapindex->name2id(save_map);
if( p->last_point.map == 0 ) {
- p->last_point.map = (unsigned short)strdb_iget(mapindex->db, MAP_DEFAULT);
- p->last_point.x = MAP_DEFAULT_X;
- p->last_point.y = MAP_DEFAULT_Y;
+ p->last_point.map = (unsigned short)strdb_iget(mapindex->db, mapindex->default_map);
+ p->last_point.x = mapindex->default_x;
+ p->last_point.y = mapindex->default_y;
}
-
+
if( p->save_point.map == 0 ) {
- p->save_point.map = (unsigned short)strdb_iget(mapindex->db, MAP_DEFAULT);
- p->save_point.x = MAP_DEFAULT_X;
- p->save_point.y = MAP_DEFAULT_Y;
+ p->save_point.map = (unsigned short)strdb_iget(mapindex->db, mapindex->default_map);
+ p->save_point.x = mapindex->default_x;
+ p->save_point.y = mapindex->default_y;
}
-
+
strcat(t_msg, " status");
if (!load_everything) // For quick selection of data when displaying the char menu
@@ -1229,12 +1253,14 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
//read memo data
//`memo` (`memo_id`,`char_id`,`map`,`x`,`y`)
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `map`,`x`,`y` FROM `%s` WHERE `char_id`=? ORDER by `memo_id` LIMIT %d", memo_db, MAX_MEMOPOINTS)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &point_map, sizeof(point_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_point.y, 0, NULL, NULL) )
+ memset(&tmp_point, 0, sizeof(tmp_point));
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `map`,`x`,`y` FROM `%s` WHERE `char_id`=? ORDER by `memo_id` LIMIT %d", memo_db, MAX_MEMOPOINTS)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &point_map, sizeof(point_map), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_point.x, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_point.y, 0, NULL, NULL)
+ )
SqlStmt_ShowDebug(stmt);
for( i = 0; i < MAX_MEMOPOINTS && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i ) {
@@ -1245,27 +1271,29 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
//read inventory
//`inventory` (`id`,`char_id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `expire_time`, `favorite`, `bound`, `unique_id`)
- StrBuf->Init(&buf);
+ StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `favorite`, `bound`, `unique_id`");
- for( i = 0; i < MAX_SLOTS; ++i )
+ for( i = 0; i < MAX_SLOTS; ++i )
StrBuf->Printf(&buf, ", `card%d`", i);
StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`=? LIMIT %d", inventory_db, MAX_INVENTORY);
- if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_CHAR, &tmp_item.favorite, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UCHAR, &tmp_item.bound, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_UINT64, &tmp_item.unique_id, 0, NULL, NULL) )
- SqlStmt_ShowDebug(stmt);
+ memset(&tmp_item, 0, sizeof(tmp_item));
+ if (SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_CHAR, &tmp_item.favorite, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UCHAR, &tmp_item.bound, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_UINT64, &tmp_item.unique_id, 0, NULL, NULL)
+ )
+ SqlStmt_ShowDebug(stmt);
for( i = 0; i < MAX_SLOTS; ++i )
if( SQL_ERROR == SQL->StmtBindColumn(stmt, 11+i, SQLDT_SHORT, &tmp_item.card[i], 0, NULL, NULL) )
SqlStmt_ShowDebug(stmt);
@@ -1277,27 +1305,28 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
//read cart
//`cart_inventory` (`id`,`char_id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, expire_time`, `bound`, `unique_id`)
- StrBuf->Clear(&buf);
+ StrBuf->Clear(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`");
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`=? LIMIT %d", cart_db, MAX_CART);
memset(&tmp_item, 0, sizeof(tmp_item));
- if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &tmp_item.bound, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &tmp_item.unique_id, 0, NULL, NULL) )
- SqlStmt_ShowDebug(stmt);
+ if (SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &tmp_item.expire_time, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &tmp_item.bound, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &tmp_item.unique_id, 0, NULL, NULL)
+ )
+ SqlStmt_ShowDebug(stmt);
for( i = 0; i < MAX_SLOTS; ++i )
if( SQL_ERROR == SQL->StmtBindColumn(stmt, 10+i, SQLDT_SHORT, &tmp_item.card[i], 0, NULL, NULL) )
SqlStmt_ShowDebug(stmt);
@@ -1307,19 +1336,21 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
strcat(t_msg, " cart");
//read storage
- storage_fromsql(p->account_id, &p->storage);
+ inter_storage->fromsql(p->account_id, &p->storage);
strcat(t_msg, " storage");
//read skill
//`skill` (`char_id`, `id`, `lv`)
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id , 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR , &tmp_skill.lv , 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR , &tmp_skill.flag, 0, NULL, NULL) )
+ memset(&tmp_skill, 0, sizeof(tmp_skill));
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id , 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR , &tmp_skill.lv , 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR , &tmp_skill.flag, 0, NULL, NULL)
+ )
SqlStmt_ShowDebug(stmt);
-
+
if( tmp_skill.flag != SKILL_FLAG_PERM_GRANTED )
tmp_skill.flag = SKILL_FLAG_PERMANENT;
@@ -1327,18 +1358,19 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
if( skillid2idx[tmp_skill.id] )
memcpy(&p->skill[skillid2idx[tmp_skill.id]], &tmp_skill, sizeof(tmp_skill));
else
- ShowWarning("mmo_char_fromsql: ignoring invalid skill (id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n", tmp_skill.id, tmp_skill.lv, p->name, p->account_id, p->char_id);
+ ShowWarning("chr->mmo_char_fromsql: ignoring invalid skill (id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n", tmp_skill.id, tmp_skill.lv, p->name, p->account_id, p->char_id);
}
strcat(t_msg, " skills");
//read friends
//`friends` (`char_id`, `friend_account`, `friend_id`)
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT c.`account_id`, c.`char_id`, c.`name` FROM `%s` c LEFT JOIN `%s` f ON f.`friend_account` = c.`account_id` AND f.`friend_id` = c.`char_id` WHERE f.`char_id`=? LIMIT %d", char_db, friend_db, MAX_FRIENDS)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_friend.account_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_friend.char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &tmp_friend.name, sizeof(tmp_friend.name), NULL, NULL) )
+ memset(&tmp_friend, 0, sizeof(tmp_friend));
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT c.`account_id`, c.`char_id`, c.`name` FROM `%s` c LEFT JOIN `%s` f ON f.`friend_account` = c.`account_id` AND f.`friend_id` = c.`char_id` WHERE f.`char_id`=? LIMIT %d", char_db, friend_db, MAX_FRIENDS)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_friend.account_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_friend.char_id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &tmp_friend.name, sizeof(tmp_friend.name), NULL, NULL) )
SqlStmt_ShowDebug(stmt);
for( i = 0; i < MAX_FRIENDS && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i )
@@ -1348,13 +1380,14 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
#ifdef HOTKEY_SAVING
//read hotkeys
//`hotkey` (`char_id`, `hotkey`, `type`, `itemskill_id`, `skill_lvl`
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `hotkey`, `type`, `itemskill_id`, `skill_lvl` FROM `%s` WHERE `char_id`=?", hotkey_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &hotkey_num, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_hotkey.type, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_hotkey.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &tmp_hotkey.lv, 0, NULL, NULL) )
+ memset(&tmp_hotkey, 0, sizeof(tmp_hotkey));
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `hotkey`, `type`, `itemskill_id`, `skill_lvl` FROM `%s` WHERE `char_id`=?", hotkey_db)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &hotkey_num, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_hotkey.type, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_hotkey.id, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &tmp_hotkey.lv, 0, NULL, NULL) )
SqlStmt_ShowDebug(stmt);
while( SQL_SUCCESS == SQL->StmtNextRow(stmt) )
@@ -1362,32 +1395,32 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
if( hotkey_num >= 0 && hotkey_num < MAX_HOTKEYS )
memcpy(&p->hotkeys[hotkey_num], &tmp_hotkey, sizeof(tmp_hotkey));
else
- ShowWarning("mmo_char_fromsql: ignoring invalid hotkey (hotkey=%d,type=%u,id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n", hotkey_num, tmp_hotkey.type, tmp_hotkey.id, tmp_hotkey.lv, p->name, p->account_id, p->char_id);
+ ShowWarning("chr->mmo_char_fromsql: ignoring invalid hotkey (hotkey=%d,type=%u,id=%u,lv=%u) of character %s (AID=%d,CID=%d)\n", hotkey_num, tmp_hotkey.type, tmp_hotkey.id, tmp_hotkey.lv, p->name, p->account_id, p->char_id);
}
strcat(t_msg, " hotkeys");
#endif
/* Mercenary Owner DataBase */
- mercenary_owner_fromsql(char_id, p);
+ inter_mercenary->owner_fromsql(char_id, p);
strcat(t_msg, " mercenary");
/* default */
p->mod_exp = p->mod_drop = p->mod_death = 100;
-
+
//`account_data` (`account_id`,`bank_vault`,`base_exp`,`base_drop`,`base_death`)
- if( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `bank_vault`,`base_exp`,`base_drop`,`base_death` FROM `%s` WHERE `account_id`=? LIMIT 1", account_data_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &account_id, 0)
- || SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->bank_vault, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_USHORT, &p->mod_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_USHORT, &p->mod_drop, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &p->mod_death, 0, NULL, NULL) )
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `bank_vault`,`base_exp`,`base_drop`,`base_death` FROM `%s` WHERE `account_id`=? LIMIT 1", account_data_db)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &account_id, 0)
+ || SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->bank_vault, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_USHORT, &p->mod_exp, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_USHORT, &p->mod_drop, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &p->mod_death, 0, NULL, NULL) )
SqlStmt_ShowDebug(stmt);
-
+
if( SQL_SUCCESS == SQL->StmtNextRow(stmt) )
strcat(t_msg, " accdata");
- if (save_log) ShowInfo("Loaded char (%d - %s): %s\n", char_id, p->name, t_msg); //ok. all data load successfully!
+ if (save_log) ShowInfo("Loaded char (%d - %s): %s\n", char_id, p->name, t_msg); //ok. all data load successfully!
SQL->StmtFree(stmt);
StrBuf->Destroy(&buf);
@@ -1396,16 +1429,16 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything
p->allow_party = true;
if( opt & OPT_SHOW_EQUIP )
p->show_equip = true;
-
- cp = idb_ensure(char_db_, char_id, create_charstatus);
+
+ cp = idb_ensure(chr->char_db_, char_id, chr->create_charstatus);
memcpy(cp, p, sizeof(struct mmo_charstatus));
return 1;
}
//==========================================================================================================
-int mmo_char_sql_init(void)
+int char_mmo_char_sql_init(void)
{
- char_db_= idb_alloc(DB_OPT_RELEASE_DATA);
+ chr->char_db_= idb_alloc(DB_OPT_RELEASE_DATA);
//the 'set offline' part is now in check_login_conn ...
//if the server connects to loginserver
@@ -1414,63 +1447,63 @@ int mmo_char_sql_init(void)
// Force all users offline in sql when starting char-server
// (useful when servers crashes and don't clean the database)
- set_all_offline_sql();
+ chr->set_all_offline_sql();
return 0;
}
+
/* [Ind/Hercules] - special thanks to Yommy for providing the packet structure/data */
-bool char_slotchange(struct char_session_data *sd, int fd, unsigned short from, unsigned short to) {
+bool char_char_slotchange(struct char_session_data *sd, int fd, unsigned short from, unsigned short to) {
struct mmo_charstatus char_dat;
int from_id = 0;
if( from > MAX_CHARS || to > MAX_CHARS || ( sd->char_slots && to > sd->char_slots ) || sd->found_char[from] <= 0 )
return false;
- if( !mmo_char_fromsql(sd->found_char[from], &char_dat, false) ) // Only the short data is needed.
+ if( !chr->mmo_char_fromsql(sd->found_char[from], &char_dat, false) ) // Only the short data is needed.
return false;
if( char_dat.slotchange == 0 )
return false;
from_id = sd->found_char[from];
-
+
if( sd->found_char[to] > 0 ) {/* moving char to occupied slot */
bool result = false;
/* update both at once */
- if( SQL_SUCCESS != SQL->QueryStr(sql_handle, "START TRANSACTION")
- || SQL_SUCCESS != SQL->Query(sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, from, sd->found_char[to])
- || SQL_SUCCESS != SQL->Query(sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from]) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_SUCCESS != SQL->QueryStr(inter->sql_handle, "START TRANSACTION")
+ || SQL_SUCCESS != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, from, sd->found_char[to])
+ || SQL_SUCCESS != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from]) )
+ Sql_ShowDebug(inter->sql_handle);
else
result = true;
-
- if( SQL_ERROR == SQL->QueryStr(sql_handle, (result == true) ? "COMMIT" : "ROLLBACK") ) {
- Sql_ShowDebug(sql_handle);
+
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, (result == true) ? "COMMIT" : "ROLLBACK") ) {
+ Sql_ShowDebug(inter->sql_handle);
result = false;
}
if( !result )
return false;
-
} else {/* slot is free. */
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from] ) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_num`='%d' WHERE `char_id`='%d' LIMIT 1", char_db, to, sd->found_char[from] ) ) {
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
}
-
+
/* update count */
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `slotchange`=`slotchange`-1 WHERE `char_id`='%d' LIMIT 1", char_db, from_id ) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `slotchange`=`slotchange`-1 WHERE `char_id`='%d' LIMIT 1", char_db, from_id ) ) {
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
-
+
return true;
}
//-----------------------------------
// Function to change character's names
//-----------------------------------
-int rename_char_sql(struct char_session_data *sd, int char_id)
+int char_rename_char_sql(struct char_session_data *sd, int char_id)
{
struct mmo_charstatus char_dat;
char esc_name[NAME_LENGTH*2+1];
@@ -1478,30 +1511,30 @@ int rename_char_sql(struct char_session_data *sd, int char_id)
if( sd->new_name[0] == 0 ) // Not ready for rename
return 2;
- if( !mmo_char_fromsql(char_id, &char_dat, false) ) // Only the short data is needed.
+ if( !chr->mmo_char_fromsql(char_id, &char_dat, false) ) // Only the short data is needed.
return 2;
if( char_dat.rename == 0 )
return 1;
- SQL->EscapeStringLen(sql_handle, esc_name, sd->new_name, strnlen(sd->new_name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, sd->new_name, strnlen(sd->new_name, NAME_LENGTH));
// check if the char exist
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT 1 FROM `%s` WHERE `name` LIKE '%s' LIMIT 1", char_db, esc_name) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE `name` LIKE '%s' LIMIT 1", char_db, esc_name) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 4;
}
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `name` = '%s', `rename` = '%d' WHERE `char_id` = '%d'", char_db, esc_name, --char_dat.rename, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `name` = '%s', `rename` = '%d' WHERE `char_id` = '%d'", char_db, esc_name, --char_dat.rename, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 3;
}
// Change character's name into guild_db.
if( char_dat.guild_id )
- inter_guild_charname_changed(char_dat.guild_id, sd->account_id, char_id, sd->new_name);
+ inter_guild->charname_changed(char_dat.guild_id, sd->account_id, char_id, sd->new_name);
safestrncpy(char_dat.name, sd->new_name, NAME_LENGTH);
memset(sd->new_name,0,sizeof(sd->new_name));
@@ -1509,17 +1542,17 @@ int rename_char_sql(struct char_session_data *sd, int char_id)
// log change
if( log_char )
{
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
"VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '0', '0', '0', '0', '0', '0', '0', '0')",
charlog_db, "change char name", sd->account_id, char_dat.char_id, char_dat.slot, esc_name) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
return 0;
}
-int check_char_name(char * name, char * esc_name)
+int char_check_char_name(char * name, char * esc_name)
{
int i;
@@ -1554,17 +1587,17 @@ int check_char_name(char * name, char * esc_name)
return -5;
}
if( name_ignoring_case ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT 1 FROM `%s` WHERE BINARY `name` = '%s' LIMIT 1", char_db, esc_name) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE BINARY `name` = '%s' LIMIT 1", char_db, esc_name) ) {
+ Sql_ShowDebug(inter->sql_handle);
return -2;
}
} else {
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT 1 FROM `%s` WHERE `name` = '%s' LIMIT 1", char_db, esc_name) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT 1 FROM `%s` WHERE `name` = '%s' LIMIT 1", char_db, esc_name) ) {
+ Sql_ShowDebug(inter->sql_handle);
return -2;
}
}
- if( SQL->NumRows(sql_handle) > 0 )
+ if( SQL->NumRows(inter->sql_handle) > 0 )
return -1; // name already exists
return 0;
@@ -1580,25 +1613,19 @@ int check_char_name(char * name, char * esc_name)
* -5: 'Symbols in Character Names are forbidden'
* char_id: Success
**/
-#if PACKETVER >= 20120307
-int make_new_char_sql(struct char_session_data* sd, char* name_, int slot, int hair_color, int hair_style) {
- int str = 1, agi = 1, vit = 1, int_ = 1, dex = 1, luk = 1;
-#else
-int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style) {
-#endif
-
+int char_make_new_char_sql(struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style) {
char name[NAME_LENGTH];
char esc_name[NAME_LENGTH*2+1];
int char_id, flag, k, l;
safestrncpy(name, name_, NAME_LENGTH);
normalize_name(name,TRIM_CHARS);
- SQL->EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
- flag = check_char_name(name,esc_name);
+ flag = chr->check_char_name(name,esc_name);
if( flag < 0 )
return flag;
-
+
//check other inputs
#if PACKETVER >= 20120307
if(slot < 0 || slot >= sd->char_slots)
@@ -1620,41 +1647,41 @@ int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int ag
#if PACKETVER >= 20120307
//Insert the new char entry to the database
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `status_point`,`str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `status_point`,`str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
"`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
"'%d', '%d', '%s', '%d', '%d','%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
char_db, sd->account_id , slot, esc_name, start_zeny, 48, str, agi, vit, int_, dex, luk,
(40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
mapindex_id2name(start_point.map), start_point.x, start_point.y, mapindex_id2name(start_point.map), start_point.x, start_point.y) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return -2; //No, stop the procedure!
}
#else
//Insert the new char entry to the database
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
"`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
"'%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
char_db, sd->account_id , slot, esc_name, start_zeny, str, agi, vit, int_, dex, luk,
(40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
mapindex_id2name(start_point.map), start_point.x, start_point.y, mapindex_id2name(start_point.map), start_point.x, start_point.y) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return -2; //No, stop the procedure!
}
#endif
//Retrieve the newly auto-generated char id
- char_id = (int)SQL->LastInsertId(sql_handle);
+ char_id = (int)SQL->LastInsertId(inter->sql_handle);
if( !char_id )
return -2;
// Validation success, log result
if (log_char) {
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`time`, `char_msg`,`account_id`,`char_id`,`char_num`,`name`,`str`,`agi`,`vit`,`int`,`dex`,`luk`,`hair`,`hair_color`)"
"VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
charlog_db, "make new char", sd->account_id, char_id, slot, esc_name, str, agi, vit, int_, dex, luk, hair_style, hair_color) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
//Give the char the default items
@@ -1662,21 +1689,21 @@ int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int ag
// FIXME: How to define if an item is stackable without having to lookup itemdb? [panikon]
if( start_items[k+2] == 1 )
{
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')",
inventory_db, char_id, start_items[k], start_items[k + 1], 1) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
else if( start_items[k+2] == 0 )
{
// Non-stackable items should have their own entries (issue: 7279)
for( l = 0; l < start_items[k+1]; l++ )
{
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')",
inventory_db, char_id, start_items[k], 1, 1)
)
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
}
}
@@ -1688,19 +1715,19 @@ int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int ag
/*----------------------------------------------------------------------------------------------------------*/
/* Divorce Players */
/*----------------------------------------------------------------------------------------------------------*/
-int divorce_char_sql(int partner_id1, int partner_id2)
+int char_divorce_char_sql(int partner_id1, int partner_id2)
{
unsigned char buf[64];
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `partner_id`='0' WHERE `char_id`='%d' OR `char_id`='%d' LIMIT 2", char_db, partner_id1, partner_id2) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE (`nameid`='%d' OR `nameid`='%d') AND (`char_id`='%d' OR `char_id`='%d') LIMIT 2", inventory_db, WEDDING_RING_M, WEDDING_RING_F, partner_id1, partner_id2) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `partner_id`='0' WHERE `char_id`='%d' OR `char_id`='%d' LIMIT 2", char_db, partner_id1, partner_id2) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE (`nameid`='%d' OR `nameid`='%d') AND (`char_id`='%d' OR `char_id`='%d') LIMIT 2", inventory_db, WEDDING_RING_M, WEDDING_RING_F, partner_id1, partner_id2) )
+ Sql_ShowDebug(inter->sql_handle);
WBUFW(buf,0) = 0x2b12;
WBUFL(buf,2) = partner_id1;
WBUFL(buf,6) = partner_id2;
- mapif_sendall(buf,10);
+ mapif->sendall(buf,10);
return 0;
}
@@ -1711,7 +1738,7 @@ int divorce_char_sql(int partner_id1, int partner_id2)
/* Returns 0 if successful
* Returns < 0 for error
*/
-int delete_char_sql(int char_id)
+int char_delete_char_sql(int char_id)
{
char name[NAME_LENGTH];
char esc_name[NAME_LENGTH*2+1]; //Name needs be escaped.
@@ -1719,30 +1746,30 @@ int delete_char_sql(int char_id)
char *data;
size_t len;
- if (SQL_ERROR == SQL->Query(sql_handle, "SELECT `name`,`account_id`,`party_id`,`guild_id`,`base_level`,`homun_id`,`partner_id`,`father`,`mother`,`elemental_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id))
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `name`,`account_id`,`party_id`,`guild_id`,`base_level`,`homun_id`,`partner_id`,`father`,`mother`,`elemental_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id))
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- ShowError("delete_char_sql: Unable to fetch character data, deletion aborted.\n");
- SQL->FreeResult(sql_handle);
+ ShowError("chr->delete_char_sql: Unable to fetch character data, deletion aborted.\n");
+ SQL->FreeResult(inter->sql_handle);
return -1;
}
- SQL->GetData(sql_handle, 0, &data, &len); safestrncpy(name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 1, &data, NULL); account_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); party_id = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); guild_id = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); base_level = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); hom_id = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); partner_id = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); father_id = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); mother_id = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, &len); safestrncpy(name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); party_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); guild_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); base_level = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); hom_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); partner_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); father_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); mother_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL);
elemental_id = atoi(data);
- SQL->EscapeStringLen(sql_handle, esc_name, name, min(len, NAME_LENGTH));
- SQL->FreeResult(sql_handle);
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, min(len, NAME_LENGTH));
+ SQL->FreeResult(inter->sql_handle);
//check for config char del condition [Lupus]
// TODO: Move this out to packet processing (0x68/0x1fb).
@@ -1755,135 +1782,135 @@ int delete_char_sql(int char_id)
/* Divorce [Wizputer] */
if( partner_id )
- divorce_char_sql(char_id, partner_id);
+ chr->divorce_char_sql(char_id, partner_id);
/* De-addopt [Zephyrus] */
if( father_id || mother_id )
{ // Char is Baby
unsigned char buf[64];
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `child`='0' WHERE `char_id`='%d' OR `char_id`='%d'", char_db, father_id, mother_id) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '410'AND (`char_id`='%d' OR `char_id`='%d')", skill_db, father_id, mother_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `child`='0' WHERE `char_id`='%d' OR `char_id`='%d'", char_db, father_id, mother_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `id` = '410'AND (`char_id`='%d' OR `char_id`='%d')", skill_db, father_id, mother_id) )
+ Sql_ShowDebug(inter->sql_handle);
WBUFW(buf,0) = 0x2b25;
WBUFL(buf,2) = father_id;
WBUFL(buf,6) = mother_id;
WBUFL(buf,10) = char_id; // Baby
- mapif_sendall(buf,14);
+ mapif->sendall(buf,14);
}
//Make the character leave the party [Skotlex]
if (party_id)
- inter_party_leave(party_id, account_id, char_id);
+ inter_party->leave(party_id, account_id, char_id);
/* delete char's pet */
//Delete the hatched pet if you have one...
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `incubate` = '0'", pet_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `incubate` = '0'", pet_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
//Delete all pets that are stored in eggs (inventory + cart)
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, inventory_db, inventory_db, char_id) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, cart_db, cart_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, inventory_db, inventory_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` USING `%s` JOIN `%s` ON `pet_id` = `card1`|`card2`<<16 WHERE `%s`.char_id = '%d' AND card0 = -256", pet_db, pet_db, cart_db, cart_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* remove homunculus */
if( hom_id )
- mapif_homunculus_delete(hom_id);
+ mapif->homunculus_delete(hom_id);
/* remove elemental */
if (elemental_id)
- mapif_elemental_delete(elemental_id);
+ mapif->elemental_delete(elemental_id);
/* remove mercenary data */
- mercenary_owner_delete(char_id);
+ inter_mercenary->owner_delete(char_id);
/* delete char's friends list */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", friend_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", friend_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete char from other's friend list */
//NOTE: Won't this cause problems for people who are already online? [Skotlex]
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `friend_id` = '%d'", friend_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `friend_id` = '%d'", friend_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
#ifdef HOTKEY_SAVING
/* delete hotkeys */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", hotkey_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", hotkey_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
#endif
/* delete inventory */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", inventory_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", inventory_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete cart inventory */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", cart_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", cart_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete memo areas */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", memo_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete character registry */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_str_db, char_id) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_num_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_str_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_reg_num_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete skills */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", skill_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
/* delete mails (only received) */
- if (SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `dest_id`='%d'", mail_db, char_id))
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `dest_id`='%d'", mail_db, char_id))
+ Sql_ShowDebug(inter->sql_handle);
#ifdef ENABLE_SC_SAVING
/* status changes */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, account_id, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, account_id, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
#endif
/* delete character */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
else if( log_char ) {
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `char_msg`, `name`)"
" VALUES (NOW(), '%d', '%d', '%d', 'Deleted character', '%s')",
charlog_db, account_id, char_id, 0, esc_name) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
- /* No need as we used inter_guild_leave [Skotlex]
+ /* No need as we used inter_guild->leave [Skotlex]
// Also delete info from guildtables.
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", guild_member_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d'", guild_member_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
*/
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `char_id` = '%d'", guild_db, char_id) )
- Sql_ShowDebug(sql_handle);
- else if( SQL->NumRows(sql_handle) > 0 )
- mapif_parse_BreakGuild(0,guild_id);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `guild_id` FROM `%s` WHERE `char_id` = '%d'", guild_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL->NumRows(inter->sql_handle) > 0 )
+ mapif->parse_BreakGuild(0,guild_id);
else if( guild_id )
- inter_guild_leave(guild_id, account_id, char_id);// Leave your guild.
+ inter_guild->leave(guild_id, account_id, char_id);// Leave your guild.
return 0;
}
//---------------------------------------------------------------------
// This function return the number of online players in all map-servers
//---------------------------------------------------------------------
-int count_users(void)
+int char_count_users(void)
{
int i, users;
users = 0;
- for(i = 0; i < ARRAYLENGTH(server); i++) {
- if (server[i].fd > 0) {
- users += server[i].users;
+ for(i = 0; i < ARRAYLENGTH(chr->server); i++) {
+ if (chr->server[i].fd > 0) {
+ users += chr->server[i].users;
}
}
return users;
@@ -1892,8 +1919,8 @@ int count_users(void)
// Writes char data to the buffer in the format used by the client.
// Used in packets 0x6b (chars info) and 0x6d (new char info)
// Returns the size
-#define MAX_CHAR_BUF 144 //Max size (for WFIFOHEAD calls)
-int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) {
+#define MAX_CHAR_BUF 150 //Max size (for WFIFOHEAD calls)
+int char_mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) {
unsigned short offset = 0;
uint8* buf;
@@ -1927,8 +1954,15 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) {
WBUFW(buf,52) = p->class_;
WBUFW(buf,54) = p->hair;
+#if PACKETVER >= 20141022
+ //When the weapon is sent and your option is riding, the client crashes on login!?
+ WBUFL(buf,56) = p->option&(0x20|0x80000|0x100000|0x200000|0x400000|0x800000|0x1000000|0x2000000|0x4000000|0x8000000) ? 0 : p->weapon;
+ offset+=2;
+ buf = WBUFP(buffer,offset);
+#else
//When the weapon is sent and your option is riding, the client crashes on login!?
WBUFW(buf,56) = p->option&(0x20|0x80000|0x100000|0x200000|0x400000|0x800000|0x1000000|0x2000000|0x4000000|0x8000000) ? 0 : p->weapon;
+#endif
WBUFW(buf,58) = p->base_level;
WBUFW(buf,60) = min(p->skill_point, INT16_MAX);
@@ -1964,40 +1998,44 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) {
#endif
#if PACKETVER != 20111116 //2011-11-16 wants 136, ask gravity.
#if PACKETVER >= 20110928
- WBUFL(buf,132) = ( p->slotchange > 0 ) ? 1 : 0; // change slot feature (0 = disabled, otherwise enabled)
+ WBUFL(buf,132) = ( p->slotchange > 0 ) ? 1 : 0; // change slot feature (0 = disabled, otherwise enabled)
offset += 4;
#endif
#if PACKETVER >= 20111025
WBUFL(buf,136) = ( p->rename > 0 ) ? 1 : 0; // (0 = disabled, otherwise displays "Add-Ons" sidebar)
offset += 4;
#endif
+ #if PACKETVER >= 20141016
+ WBUFB(buf,140) = p->sex;// sex - (0 = female, 1 = male, 99 = logindefined)
+ offset += 1;
+ #endif
#endif
return 106+offset;
}
-
+
/* Made Possible by Yommy~! <3 */
-void mmo_char_send099d(int fd, struct char_session_data *sd) {
+void char_mmo_char_send099d(int fd, struct char_session_data *sd) {
WFIFOHEAD(fd,4 + (MAX_CHARS*MAX_CHAR_BUF));
WFIFOW(fd,0) = 0x99d;
- WFIFOW(fd,2) = mmo_chars_fromsql(sd, WFIFOP(fd,4)) + 4;
+ WFIFOW(fd,2) = chr->mmo_chars_fromsql(sd, WFIFOP(fd,4)) + 4;
WFIFOSET(fd,WFIFOW(fd,2));
}
+
/* Sends character ban list */
/* Made Possible by Yommy~! <3 */
-void mmo_char_send020d(int fd, struct char_session_data *sd) {
+void char_mmo_char_send_ban_list(int fd, struct char_session_data *sd) {
int i;
time_t now = time(NULL);
-
+
ARR_FIND(0, MAX_CHARS, i, sd->unban_time[i]);
-
if( i != MAX_CHARS ) {
int c;
-
+
WFIFOHEAD(fd, 4 + (MAX_CHARS*24));
WFIFOW(fd, 0) = 0x20d;
-
+
for(i = 0, c = 0; i < MAX_CHARS; i++) {
if( sd->unban_time[i] ) {
timestamp2string((char*)WFIFOP(fd,8 + (28*c)), 20, sd->unban_time[i], "%Y-%m-%d %H:%M:%S");
@@ -2009,24 +2047,23 @@ void mmo_char_send020d(int fd, struct char_session_data *sd) {
WFIFOL(fd, 4 + (24*c)) = 0;
/* also update on mysql */
sd->unban_time[i] = 0;
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `unban_time`='0' WHERE `char_id`='%d' LIMIT 1", char_db, sd->found_char[i]) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `unban_time`='0' WHERE `char_id`='%d' LIMIT 1", char_db, sd->found_char[i]) )
+ Sql_ShowDebug(inter->sql_handle);
}
c++;
}
}
-
+
WFIFOW(fd, 2) = 4 + (24*c);
-
+
WFIFOSET(fd, WFIFOW(fd, 2));
}
}
-int mmo_char_send006b(int fd, struct char_session_data* sd);
+
//----------------------------------------
// [Ind/Hercules] notify client about charselect window data
//----------------------------------------
-void mmo_char_send082d(int fd, struct char_session_data* sd) {
-
+void char_mmo_char_send_slots_info(int fd, struct char_session_data* sd) {
WFIFOHEAD(fd,29);
WFIFOW(fd,0) = 0x82d;
WFIFOW(fd,2) = 29;
@@ -2037,13 +2074,11 @@ void mmo_char_send082d(int fd, struct char_session_data* sd) {
WFIFOB(fd,8) = sd->char_slots;
memset(WFIFOP(fd,9), 0, 20); // unused bytes
WFIFOSET(fd,29);
- mmo_char_send006b(fd,sd);
-
}
//----------------------------------------
// Function to send characters to a player
//----------------------------------------
-int mmo_char_send006b(int fd, struct char_session_data* sd)
+int char_mmo_char_send_characters(int fd, struct char_session_data* sd)
{
int j, offset = 0;
#if PACKETVER >= 20100413
@@ -2051,7 +2086,7 @@ int mmo_char_send006b(int fd, struct char_session_data* sd)
#endif
if (save_log)
ShowInfo("Loading Char Data ("CL_BOLD"%d"CL_RESET")\n",sd->account_id);
-
+
j = 24 + offset; // offset
WFIFOHEAD(fd,j + MAX_CHARS*MAX_CHAR_BUF);
WFIFOW(fd,0) = 0x6b;
@@ -2061,82 +2096,82 @@ int mmo_char_send006b(int fd, struct char_session_data* sd)
WFIFOB(fd,6) = MAX_CHARS; // Premium slots. AKA any existent chars past sd->char_slots but within MAX_CHARS will show a 'Premium Service' in red
#endif
memset(WFIFOP(fd,4 + offset), 0, 20); // unknown bytes
- j+=mmo_chars_fromsql(sd, WFIFOP(fd,j));
+ j+=chr->mmo_chars_fromsql(sd, WFIFOP(fd,j));
WFIFOW(fd,2) = j; // packet len
WFIFOSET(fd,j);
return 0;
}
-int char_married(int pl1, int pl2)
+int char_char_married(int pl1, int pl2)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `partner_id` FROM `%s` WHERE `char_id` = '%d'", char_db, pl1) )
- Sql_ShowDebug(sql_handle);
- else if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `partner_id` FROM `%s` WHERE `char_id` = '%d'", char_db, pl1) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
if( pl2 == atoi(data) )
{
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 1;
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 0;
}
-int char_child(int parent_id, int child_id)
+int char_char_child(int parent_id, int child_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `child` FROM `%s` WHERE `char_id` = '%d'", char_db, parent_id) )
- Sql_ShowDebug(sql_handle);
- else if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `child` FROM `%s` WHERE `char_id` = '%d'", char_db, parent_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
if( child_id == atoi(data) )
{
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 1;
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 0;
}
-int char_family(int cid1, int cid2, int cid3)
+int char_char_family(int cid1, int cid2, int cid3)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`,`partner_id`,`child` FROM `%s` WHERE `char_id` IN ('%d','%d','%d')", char_db, cid1, cid2, cid3) )
- Sql_ShowDebug(sql_handle);
- else while( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`,`partner_id`,`child` FROM `%s` WHERE `char_id` IN ('%d','%d','%d')", char_db, cid1, cid2, cid3) )
+ Sql_ShowDebug(inter->sql_handle);
+ else while( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
int charid;
int partnerid;
int childid;
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL); charid = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); partnerid = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); childid = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); charid = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); partnerid = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); childid = atoi(data);
if( (cid1 == charid && ((cid2 == partnerid && cid3 == childid ) || (cid2 == childid && cid3 == partnerid))) ||
(cid1 == partnerid && ((cid2 == charid && cid3 == childid ) || (cid2 == childid && cid3 == charid ))) ||
(cid1 == childid && ((cid2 == charid && cid3 == partnerid) || (cid2 == partnerid && cid3 == charid ))) )
{
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return childid;
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 0;
}
//----------------------------------------------------------------------
// Force disconnection of an online player (with account value) by [Yor]
//----------------------------------------------------------------------
-void disconnect_player(int account_id)
+void char_disconnect_player(int account_id)
{
int i;
struct char_session_data* sd;
@@ -2147,163 +2182,421 @@ void disconnect_player(int account_id)
set_eof(i);
}
+void char_authfail_fd(int fd, int type)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x81;
+ WFIFOB(fd,2) = type;
+ WFIFOSET(fd,3);
+}
+
+void char_request_account_data(int account_id)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x2716;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
+}
+
static void char_auth_ok(int fd, struct char_session_data *sd)
{
struct online_char_data* character;
- if( (character = (struct online_char_data*)idb_get(online_char_db, sd->account_id)) != NULL )
- { // check if character is not online already. [Skotlex]
- if (character->server > -1)
- { //Character already online. KICK KICK KICK
- mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
+ if( (character = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id)) != NULL ) {
+ // check if character is not online already. [Skotlex]
+ if (character->server > -1) {
+ //Character already online. KICK KICK KICK
+ mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
if (character->waiting_disconnect == INVALID_TIMER)
- character->waiting_disconnect = timer->add(timer->gettick()+20000, chardb_waiting_disconnect, character->account_id, 0);
+ character->waiting_disconnect = timer->add(timer->gettick()+20000, chr->waiting_disconnect, character->account_id, 0);
if (character)
character->pincode_enable = -1;
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 8;
- WFIFOSET(fd,3);
+ chr->authfail_fd(fd, 8);
return;
}
- if (character->fd >= 0 && character->fd != fd)
- { //There's already a connection from this account that hasn't picked a char yet.
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 8;
- WFIFOSET(fd,3);
+ if (character->fd >= 0 && character->fd != fd) {
+ //There's already a connection from this account that hasn't picked a char yet.
+ chr->authfail_fd(fd, 8);
return;
}
character->fd = fd;
}
- if (login_fd > 0) {
- // request account data
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x2716;
- WFIFOL(login_fd,2) = sd->account_id;
- WFIFOSET(login_fd,6);
+ if (chr->login_fd > 0) {
+ chr->request_account_data(sd->account_id);
}
// mark session as 'authed'
sd->auth = true;
// set char online on charserver
- set_char_charselect(sd->account_id);
+ chr->set_char_charselect(sd->account_id);
// continues when account data is received...
}
-int send_accounts_tologin(int tid, int64 tick, int id, intptr_t data);
-void mapif_server_reset(int id);
-
+void char_ping_login_server(int fd)
+{
+ WFIFOHEAD(fd,2);// sends a ping packet to login server (will receive pong 0x2718)
+ WFIFOW(fd,0) = 0x2719;
+ WFIFOSET(fd,2);
+}
-/// Resets all the data.
-void loginif_reset(void)
+int char_parse_fromlogin_connection_state(int fd)
{
- int id;
- // TODO kick everyone out and reset everything or wait for connect and try to reacquire locks [FlavioJS]
- for( id = 0; id < ARRAYLENGTH(server); ++id )
- mapif_server_reset(id);
- flush_fifos();
- exit(EXIT_FAILURE);
+ if (RFIFOB(fd,2)) {
+ //printf("connect login server error : %d\n", RFIFOB(fd,2));
+ ShowError("Can not connect to login-server.\n");
+ ShowError("The server communication passwords (default s1/p1) are probably invalid.\n");
+ ShowError("Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S.\n");
+ ShowError("The communication passwords are set in /conf/map-server.conf and /conf/char-server.conf\n");
+ set_eof(fd);
+ return 1;
+ } else {
+ ShowStatus("Connected to login-server (connection #%d).\n", fd);
+ loginif->on_ready();
+ }
+ RFIFOSKIP(fd,3);
+ return 0;
}
+// 0 - rejected from server
+//
+void char_auth_error(int fd, unsigned char flag)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x6c;
+ WFIFOB(fd,2) = flag;
+ WFIFOSET(fd,3);
+}
-/// Checks the conditions for the server to stop.
-/// Releases the cookie when all characters are saved.
-/// If all the conditions are met, it stops the core loop.
-void loginif_check_shutdown(void)
+void char_parse_fromlogin_auth_state(int fd)
{
- if( runflag != CHARSERVER_ST_SHUTDOWN )
- return;
- runflag = CORE_ST_STOP;
+ struct char_session_data* sd = NULL;
+ int account_id = RFIFOL(fd,2);
+ uint32 login_id1 = RFIFOL(fd,6);
+ uint32 login_id2 = RFIFOL(fd,10);
+ uint8 sex = RFIFOB(fd,14);
+ uint8 result = RFIFOB(fd,15);
+ int request_id = RFIFOL(fd,16);
+ uint32 version = RFIFOL(fd,20);
+ uint8 clienttype = RFIFOB(fd,24);
+ int group_id = RFIFOL(fd,25);
+ unsigned int expiration_time = RFIFOL(fd, 29);
+ RFIFOSKIP(fd,33);
+
+ if( session_isActive(request_id) && (sd=(struct char_session_data*)session[request_id]->session_data) &&
+ !sd->auth && sd->account_id == account_id && sd->login_id1 == login_id1 && sd->login_id2 == login_id2 && sd->sex == sex )
+ {
+ int client_fd = request_id;
+ sd->version = version;
+ sd->clienttype = clienttype;
+ switch( result ) {
+ case 0:// ok
+ /* restrictions apply */
+ if( chr->server_type == CST_MAINTENANCE && group_id < char_maintenance_min_group_id ) {
+ chr->auth_error(client_fd, 0);
+ break;
+ }
+ /* the client will already deny this request, this check is to avoid someone bypassing. */
+ if( chr->server_type == CST_PAYING && (time_t)expiration_time < time(NULL) ) {
+ chr->auth_error(client_fd, 0);
+ break;
+ }
+ chr->auth_ok(client_fd, sd);
+ break;
+ case 1:// auth failed
+ chr->auth_error(client_fd, 0);
+ break;
+ }
+ }
}
+void char_parse_fromlogin_account_data(int fd)
+{
+ struct char_session_data* sd = (struct char_session_data*)session[fd]->session_data;
+ int i;
+ // find the authenticated session with this account id
+ ARR_FIND( 0, sockt->fd_max, i, session[i] && (sd = (struct char_session_data*)session[i]->session_data) && sd->auth && sd->account_id == RFIFOL(fd,2) );
+ if( i < sockt->fd_max ) {
+ memcpy(sd->email, RFIFOP(fd,6), 40);
+ sd->expiration_time = (time_t)RFIFOL(fd,46);
+ sd->group_id = RFIFOB(fd,50);
+ sd->char_slots = RFIFOB(fd,51);
+ if( sd->char_slots > MAX_CHARS ) {
+ ShowError("Account '%d' `character_slots` column is higher than supported MAX_CHARS (%d), update MAX_CHARS in mmo.h! capping to MAX_CHARS...\n",sd->account_id,sd->char_slots);
+ sd->char_slots = MAX_CHARS;/* cap to maximum */
+ } else if ( sd->char_slots <= 0 )/* no value aka 0 in sql */
+ sd->char_slots = MAX_CHARS;/* cap to maximum */
+ safestrncpy(sd->birthdate, (const char*)RFIFOP(fd,52), sizeof(sd->birthdate));
+ safestrncpy(sd->pincode, (const char*)RFIFOP(fd,63), sizeof(sd->pincode));
+ sd->pincode_change = RFIFOL(fd,68);
+ // continued from chr->auth_ok...
+ if( (max_connect_user == 0 && sd->group_id != gm_allow_group) ||
+ ( max_connect_user > 0 && chr->count_users() >= max_connect_user && sd->group_id != gm_allow_group ) ) {
+ // refuse connection (over populated)
+ chr->auth_error(i, 0);
+ } else {
+ // send characters to player
+ #if PACKETVER >= 20130000
+ chr->mmo_char_send_slots_info(i, sd);
+ chr->mmo_char_send_characters(i, sd);
+ #else
+ chr->mmo_char_send_characters(i, sd);
+ #endif
+ #if PACKETVER >= 20060819
+ chr->mmo_char_send_ban_list(i, sd);
+ #endif
+ #if PACKETVER >= 20110309
+ pincode->handle(i, sd);
+ #endif
+ }
+ }
+ RFIFOSKIP(fd,72);
+}
-/// Called when the connection to Login Server is disconnected.
-void loginif_on_disconnect(void)
+void char_parse_fromlogin_login_pong(int fd)
{
- ShowWarning("Connection to Login Server lost.\n\n");
+ RFIFOSKIP(fd,2);
+ session[fd]->flag.ping = 0;
}
+void char_changesex(int account_id, int sex)
+{
+ unsigned char buf[7];
+
+ WBUFW(buf,0) = 0x2b0d;
+ WBUFL(buf,2) = account_id;
+ WBUFB(buf,6) = sex;
+ mapif->sendall(buf, 7);
+}
-/// Called when all the connection steps are completed.
-void loginif_on_ready(void)
+int char_parse_fromlogin_changesex_reply(int fd)
{
+ int char_id[MAX_CHARS];
+ int class_[MAX_CHARS];
+ int guild_id[MAX_CHARS];
+ int num;
int i;
+ char* data;
+ struct char_auth_node* node;
+
+ int acc = RFIFOL(fd,2);
+ int sex = RFIFOB(fd,6);
+
+ RFIFOSKIP(fd,7);
+
+ // This should _never_ happen
+ if( acc <= 0 ) {
+ ShowError("Received invalid account id from login server! (aid: %d)\n", acc);
+ return 1;
+ }
- loginif_check_shutdown();
+ node = (struct char_auth_node*)idb_get(auth_db, acc);
+ if( node != NULL )
+ node->sex = sex;
- //Send online accounts to login server.
- send_accounts_tologin(INVALID_TIMER, timer->gettick(), 0, 0);
+ // get characters
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`,`class`,`guild_id` FROM `%s` WHERE `account_id` = '%d'", char_db, acc) )
+ Sql_ShowDebug(inter->sql_handle);
+ for( i = 0; i < MAX_CHARS && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
+ {
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); char_id[i] = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); class_[i] = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); guild_id[i] = atoi(data);
+ }
+ num = i;
+ for( i = 0; i < num; ++i )
+ {
+ if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER ||
+ class_[i] == JOB_CLOWN || class_[i] == JOB_GYPSY ||
+ class_[i] == JOB_BABY_BARD || class_[i] == JOB_BABY_DANCER ||
+ class_[i] == JOB_MINSTREL || class_[i] == JOB_WANDERER ||
+ class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T ||
+ class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER ||
+ class_[i] == JOB_KAGEROU || class_[i] == JOB_OBORO )
+ {
+ // job modification
+ if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER )
+ class_[i] = (sex ? JOB_BARD : JOB_DANCER);
+ else if( class_[i] == JOB_CLOWN || class_[i] == JOB_GYPSY )
+ class_[i] = (sex ? JOB_CLOWN : JOB_GYPSY);
+ else if( class_[i] == JOB_BABY_BARD || class_[i] == JOB_BABY_DANCER )
+ class_[i] = (sex ? JOB_BABY_BARD : JOB_BABY_DANCER);
+ else if( class_[i] == JOB_MINSTREL || class_[i] == JOB_WANDERER )
+ class_[i] = (sex ? JOB_MINSTREL : JOB_WANDERER);
+ else if( class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T )
+ class_[i] = (sex ? JOB_MINSTREL_T : JOB_WANDERER_T);
+ else if( class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER )
+ class_[i] = (sex ? JOB_BABY_MINSTREL : JOB_BABY_WANDERER);
+ else if( class_[i] == JOB_KAGEROU || class_[i] == JOB_OBORO )
+ class_[i] = (sex ? JOB_KAGEROU : JOB_OBORO);
+ }
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `equip`='0' WHERE `char_id`='%d'", inventory_db, char_id[i]) )
+ Sql_ShowDebug(inter->sql_handle);
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
+ "UPDATE `%s` SET `class`='%d', `weapon`='0', `shield`='0', `head_top`='0', `head_mid`='0', "
+ "`head_bottom`='0' WHERE `char_id`='%d'",
+ char_db, class_[i], char_id[i]) )
+ Sql_ShowDebug(inter->sql_handle);
+
+ if( guild_id[i] )// If there is a guild, update the guild_member data [Skotlex]
+ inter_guild->sex_changed(guild_id[i], acc, char_id[i], sex);
+ }
+ SQL->FreeResult(inter->sql_handle);
+
+ // disconnect player if online on char-server
+ chr->disconnect_player(acc);
- // if no map-server already connected, display a message...
- ARR_FIND( 0, ARRAYLENGTH(server), i, server[i].fd > 0 && server[i].map[0] );
- if( i == ARRAYLENGTH(server) )
- ShowStatus("Awaiting maps from map-server.\n");
+ // notify all mapservers about this change
+ chr->changesex(acc, sex);
+ return 0;
}
+void char_parse_fromlogin_account_reg2(int fd)
+{
+ //Receive account_reg2 registry, forward to map servers.
+ mapif->sendall(RFIFOP(fd, 0), RFIFOW(fd,2));
+ RFIFOSKIP(fd, RFIFOW(fd,2));
+}
-int parse_fromlogin(int fd) {
- struct char_session_data* sd = NULL;
+void mapif_ban(int id, unsigned int flag, int status)
+{
+ // send to all map-servers to disconnect the player
+ unsigned char buf[11];
+ WBUFW(buf,0) = 0x2b14;
+ WBUFL(buf,2) = id;
+ WBUFB(buf,6) = flag; // 0: change of status, 1: ban
+ WBUFL(buf,7) = status; // status or final date of a banishment
+ mapif->sendall(buf, 11);
+}
+
+void char_parse_fromlogin_ban(int fd)
+{
+ mapif->ban(RFIFOL(fd,2), RFIFOB(fd,6), RFIFOL(fd,7));
+ // disconnect player if online on char-server
+ chr->disconnect_player(RFIFOL(fd,2));
+ RFIFOSKIP(fd,11);
+}
+
+void char_parse_fromlogin_kick(int fd)
+{
+ int aid = RFIFOL(fd,2);
+ struct online_char_data* character = (struct online_char_data*)idb_get(chr->online_char_db, aid);
+ RFIFOSKIP(fd,6);
+ if( character != NULL )
+ {// account is already marked as online!
+ if( character->server > -1 ) {
+ //Kick it from the map server it is on.
+ mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
+ if (character->waiting_disconnect == INVALID_TIMER)
+ character->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, chr->waiting_disconnect, character->account_id, 0);
+ }
+ else
+ {// Manual kick from char server.
+ struct char_session_data *tsd;
+ int i;
+ ARR_FIND( 0, sockt->fd_max, i, session[i] && (tsd = (struct char_session_data*)session[i]->session_data) && tsd->account_id == aid );
+ if( i < sockt->fd_max )
+ {
+ chr->authfail_fd(i, 2);
+ set_eof(i);
+ }
+ else // still moving to the map-server
+ chr->set_char_offline(-1, aid);
+ }
+ }
+ idb_remove(auth_db, aid);// reject auth attempts from map-server
+}
+void char_update_ip(int fd)
+{
+ WFIFOHEAD(fd,6);
+ WFIFOW(fd,0) = 0x2736;
+ WFIFOL(fd,2) = htonl(chr->ip);
+ WFIFOSET(fd,6);
+}
+
+void char_parse_fromlogin_update_ip(int fd)
+{
+ unsigned char buf[2];
+ uint32 new_ip = 0;
+
+ WBUFW(buf,0) = 0x2b1e;
+ mapif->sendall(buf, 2);
+
+ new_ip = host2ip(login_ip_str);
+ if (new_ip && new_ip != login_ip)
+ login_ip = new_ip; //Update login ip, too.
+
+ new_ip = host2ip(char_ip_str);
+ if (new_ip && new_ip != chr->ip) {
+ //Update ip.
+ chr->ip = new_ip;
+ ShowInfo("Updating IP for [%s].\n", char_ip_str);
+ // notify login server about the change
+ chr->update_ip(fd);
+ }
+ RFIFOSKIP(fd,2);
+}
+
+void char_parse_fromlogin_accinfo2_failed(int fd)
+{
+ mapif->parse_accinfo2(false, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1, 0, 0);
+ RFIFOSKIP(fd,18);
+}
+
+void char_parse_fromlogin_accinfo2_ok(int fd)
+{
+ mapif->parse_accinfo2(true, RFIFOL(fd,167), RFIFOL(fd,171), RFIFOL(fd,175), RFIFOL(fd,179),
+ (char*)RFIFOP(fd,2), (char*)RFIFOP(fd,26), (char*)RFIFOP(fd,59),
+ (char*)RFIFOP(fd,99), (char*)RFIFOP(fd,119), (char*)RFIFOP(fd,151),
+ (char*)RFIFOP(fd,156), RFIFOL(fd,115), RFIFOL(fd,143), RFIFOL(fd,147));
+ RFIFOSKIP(fd,183);
+}
+
+int char_parse_fromlogin(int fd) {
// only process data from the login-server
- if( fd != login_fd ) {
- ShowDebug("parse_fromlogin: Disconnecting invalid session #%d (is not the login-server)\n", fd);
+ if( fd != chr->login_fd ) {
+ ShowDebug("chr->parse_fromlogin: Disconnecting invalid session #%d (is not the login-server)\n", fd);
do_close(fd);
return 0;
}
if( session[fd]->flag.eof ) {
do_close(fd);
- login_fd = -1;
- loginif_on_disconnect();
+ chr->login_fd = -1;
+ loginif->on_disconnect();
return 0;
} else if ( session[fd]->flag.ping ) {/* we've reached stall time */
if( DIFF_TICK(sockt->last_tick, session[fd]->rdata_tick) > (sockt->stall_time * 2) ) {/* we can't wait any longer */
set_eof(fd);
return 0;
} else if( session[fd]->flag.ping != 2 ) { /* we haven't sent ping out yet */
- WFIFOHEAD(fd,2);// sends a ping packet to login server (will receive pong 0x2718)
- WFIFOW(fd,0) = 0x2719;
- WFIFOSET(fd,2);
-
+ chr->ping_login_server(fd);
session[fd]->flag.ping = 2;
}
}
- sd = (struct char_session_data*)session[fd]->session_data;
-
while(RFIFOREST(fd) >= 2) {
uint16 command = RFIFOW(fd,0);
-
+
if( HPM->packetsc[hpParse_FromLogin] ) {
int success = HPM->parse_packets(fd,hpParse_FromLogin);
if( success == 1 ) continue;
else if( success == 2 ) return 0;
}
-
- switch( command ) {
+ switch (command) {
// acknowledgment of connect-to-loginserver request
case 0x2711:
if (RFIFOREST(fd) < 3)
return 0;
-
- if (RFIFOB(fd,2)) {
- //printf("connect login server error : %d\n", RFIFOB(fd,2));
- ShowError("Can not connect to login-server.\n");
- ShowError("The server communication passwords (default s1/p1) are probably invalid.\n");
- ShowError("Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S.\n");
- ShowError("The communication passwords are set in /conf/map-server.conf and /conf/char-server.conf\n");
- set_eof(fd);
+ if (chr->parse_fromlogin_connection_state(fd))
return 0;
- } else {
- ShowStatus("Connected to login-server (connection #%d).\n", fd);
- loginif_on_ready();
- }
- RFIFOSKIP(fd,3);
break;
// acknowledgment of account authentication request
@@ -2311,100 +2604,15 @@ int parse_fromlogin(int fd) {
if (RFIFOREST(fd) < 33)
return 0;
{
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- uint8 sex = RFIFOB(fd,14);
- uint8 result = RFIFOB(fd,15);
- int request_id = RFIFOL(fd,16);
- uint32 version = RFIFOL(fd,20);
- uint8 clienttype = RFIFOB(fd,24);
- int group_id = RFIFOL(fd,25);
- unsigned int expiration_time = RFIFOL(fd, 29);
- RFIFOSKIP(fd,33);
-
- if( session_isActive(request_id) && (sd=(struct char_session_data*)session[request_id]->session_data) &&
- !sd->auth && sd->account_id == account_id && sd->login_id1 == login_id1 && sd->login_id2 == login_id2 && sd->sex == sex )
- {
- int client_fd = request_id;
- sd->version = version;
- sd->clienttype = clienttype;
- switch( result ) {
- case 0:// ok
- /* restrictions apply */
- if( char_server_type == CST_MAINTENANCE && group_id < char_maintenance_min_group_id ) {
- WFIFOHEAD(client_fd,3);
- WFIFOW(client_fd,0) = 0x6c;
- WFIFOB(client_fd,2) = 0;// rejected from server
- WFIFOSET(client_fd,3);
- break;
- }
- /* the client will already deny this request, this check is to avoid someone bypassing. */
- if( char_server_type == CST_PAYING && (time_t)expiration_time < time(NULL) ) {
- WFIFOHEAD(client_fd,3);
- WFIFOW(client_fd,0) = 0x6c;
- WFIFOB(client_fd,2) = 0;// rejected from server
- WFIFOSET(client_fd,3);
- break;
- }
- char_auth_ok(client_fd, sd);
- break;
- case 1:// auth failed
- WFIFOHEAD(client_fd,3);
- WFIFOW(client_fd,0) = 0x6c;
- WFIFOB(client_fd,2) = 0;// rejected from server
- WFIFOSET(client_fd,3);
- break;
- }
- }
+ chr->parse_fromlogin_auth_state(fd);
}
break;
case 0x2717: // account data
{
- int i;
if (RFIFOREST(fd) < 72)
return 0;
-
- // find the authenticated session with this account id
- ARR_FIND( 0, sockt->fd_max, i, session[i] && (sd = (struct char_session_data*)session[i]->session_data) && sd->auth && sd->account_id == RFIFOL(fd,2) );
- if( i < sockt->fd_max ) {
- memcpy(sd->email, RFIFOP(fd,6), 40);
- sd->expiration_time = (time_t)RFIFOL(fd,46);
- sd->group_id = RFIFOB(fd,50);
- sd->char_slots = RFIFOB(fd,51);
- if( sd->char_slots > MAX_CHARS ) {
- ShowError("Account '%d' `character_slots` column is higher than supported MAX_CHARS (%d), update MAX_CHARS in mmo.h! capping to MAX_CHARS...\n",sd->account_id,sd->char_slots);
- sd->char_slots = MAX_CHARS;/* cap to maximum */
- } else if ( sd->char_slots <= 0 )/* no value aka 0 in sql */
- sd->char_slots = MAX_CHARS;/* cap to maximum */
- safestrncpy(sd->birthdate, (const char*)RFIFOP(fd,52), sizeof(sd->birthdate));
- safestrncpy(sd->pincode, (const char*)RFIFOP(fd,63), sizeof(sd->pincode));
- sd->pincode_change = RFIFOL(fd,68);
- // continued from char_auth_ok...
- if( (max_connect_user == 0 && sd->group_id != gm_allow_group) ||
- ( max_connect_user > 0 && count_users() >= max_connect_user && sd->group_id != gm_allow_group ) ) {
- // refuse connection (over populated)
- WFIFOHEAD(i,3);
- WFIFOW(i,0) = 0x6c;
- WFIFOW(i,2) = 0;
- WFIFOSET(i,3);
- } else {
- // send characters to player
- #if PACKETVER >= 20130000
- mmo_char_send082d(i, sd);
- #else
- mmo_char_send006b(i, sd);
- #endif
- #if PACKETVER >= 20060819
- mmo_char_send020d(i, sd);
- #endif
- #if PACKETVER >= 20110309
- pincode->handle(i, sd);
- #endif
- }
- }
- RFIFOSKIP(fd,72);
+ chr->parse_fromlogin_account_data(fd);
}
break;
@@ -2412,8 +2620,7 @@ int parse_fromlogin(int fd) {
case 0x2718:
if (RFIFOREST(fd) < 2)
return 0;
- RFIFOSKIP(fd,2);
- session[fd]->flag.ping = 0;
+ chr->parse_fromlogin_login_pong(fd);
break;
// changesex reply
@@ -2421,90 +2628,8 @@ int parse_fromlogin(int fd) {
if (RFIFOREST(fd) < 7)
return 0;
{
- unsigned char buf[7];
-
- int char_id[MAX_CHARS];
- int class_[MAX_CHARS];
- int guild_id[MAX_CHARS];
- int num;
- int i;
- char* data;
- struct auth_node* node;
-
- int acc = RFIFOL(fd,2);
- int sex = RFIFOB(fd,6);
-
- RFIFOSKIP(fd,7);
-
- // This should _never_ happen
- if( acc <= 0 ) {
- ShowError("Received invalid account id from login server! (aid: %d)\n", acc);
+ if (chr->parse_fromlogin_changesex_reply(fd))
return 0;
- }
-
- node = (struct auth_node*)idb_get(auth_db, acc);
- if( node != NULL )
- node->sex = sex;
-
- // get characters
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`,`class`,`guild_id` FROM `%s` WHERE `account_id` = '%d'", char_db, acc) )
- Sql_ShowDebug(sql_handle);
- for( i = 0; i < MAX_CHARS && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
- {
- SQL->GetData(sql_handle, 0, &data, NULL); char_id[i] = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); class_[i] = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); guild_id[i] = atoi(data);
- }
- num = i;
- for( i = 0; i < num; ++i )
- {
- if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER ||
- class_[i] == JOB_CLOWN || class_[i] == JOB_GYPSY ||
- class_[i] == JOB_BABY_BARD || class_[i] == JOB_BABY_DANCER ||
- class_[i] == JOB_MINSTREL || class_[i] == JOB_WANDERER ||
- class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T ||
- class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER ||
- class_[i] == JOB_KAGEROU || class_[i] == JOB_OBORO )
- {
- // job modification
- if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER )
- class_[i] = (sex ? JOB_BARD : JOB_DANCER);
- else if( class_[i] == JOB_CLOWN || class_[i] == JOB_GYPSY )
- class_[i] = (sex ? JOB_CLOWN : JOB_GYPSY);
- else if( class_[i] == JOB_BABY_BARD || class_[i] == JOB_BABY_DANCER )
- class_[i] = (sex ? JOB_BABY_BARD : JOB_BABY_DANCER);
- else if( class_[i] == JOB_MINSTREL || class_[i] == JOB_WANDERER )
- class_[i] = (sex ? JOB_MINSTREL : JOB_WANDERER);
- else if( class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T )
- class_[i] = (sex ? JOB_MINSTREL_T : JOB_WANDERER_T);
- else if( class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER )
- class_[i] = (sex ? JOB_BABY_MINSTREL : JOB_BABY_WANDERER);
- else if( class_[i] == JOB_KAGEROU || class_[i] == JOB_OBORO )
- class_[i] = (sex ? JOB_KAGEROU : JOB_OBORO);
- }
-
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `equip`='0' WHERE `char_id`='%d'", inventory_db, char_id[i]) )
- Sql_ShowDebug(sql_handle);
-
- if( SQL_ERROR == SQL->Query(sql_handle,
- "UPDATE `%s` SET `class`='%d', `weapon`='0', `shield`='0', `head_top`='0', `head_mid`='0', "
- "`head_bottom`='0' WHERE `char_id`='%d'",
- char_db, class_[i], char_id[i]) )
- Sql_ShowDebug(sql_handle);
-
- if( guild_id[i] )// If there is a guild, update the guild_member data [Skotlex]
- inter_guild_sex_changed(guild_id[i], acc, char_id[i], sex);
- }
- SQL->FreeResult(sql_handle);
-
- // disconnect player if online on char-server
- disconnect_player(acc);
-
- // notify all mapservers about this change
- WBUFW(buf,0) = 0x2b0d;
- WBUFL(buf,2) = acc;
- WBUFB(buf,6) = sex;
- mapif_sendall(buf, 7);
}
break;
@@ -2512,28 +2637,14 @@ int parse_fromlogin(int fd) {
case 0x3804:
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
- //Receive account_reg2 registry, forward to map servers.
- mapif_sendall(RFIFOP(fd, 0), RFIFOW(fd,2));
- RFIFOSKIP(fd, RFIFOW(fd,2));
+ chr->parse_fromlogin_account_reg2(fd);
break;
// State change of account/ban notification (from login-server)
case 0x2731:
if (RFIFOREST(fd) < 11)
return 0;
-
- { // send to all map-servers to disconnect the player
- unsigned char buf[11];
- WBUFW(buf,0) = 0x2b14;
- WBUFL(buf,2) = RFIFOL(fd,2);
- WBUFB(buf,6) = RFIFOB(fd,6); // 0: change of status, 1: ban
- WBUFL(buf,7) = RFIFOL(fd,7); // status or final date of a banishment
- mapif_sendall(buf, 11);
- }
- // disconnect player if online on char-server
- disconnect_player(RFIFOL(fd,2));
-
- RFIFOSKIP(fd,11);
+ chr->parse_fromlogin_ban(fd);
break;
// Login server request to kick a character out. [Skotlex]
@@ -2541,64 +2652,14 @@ int parse_fromlogin(int fd) {
if (RFIFOREST(fd) < 6)
return 0;
{
- int aid = RFIFOL(fd,2);
- struct online_char_data* character = (struct online_char_data*)idb_get(online_char_db, aid);
- RFIFOSKIP(fd,6);
- if( character != NULL )
- {// account is already marked as online!
- if( character->server > -1 )
- { //Kick it from the map server it is on.
- mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
- if (character->waiting_disconnect == INVALID_TIMER)
- character->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, chardb_waiting_disconnect, character->account_id, 0);
- }
- else
- {// Manual kick from char server.
- struct char_session_data *tsd;
- int i;
- ARR_FIND( 0, sockt->fd_max, i, session[i] && (tsd = (struct char_session_data*)session[i]->session_data) && tsd->account_id == aid );
- if( i < sockt->fd_max )
- {
- WFIFOHEAD(i,3);
- WFIFOW(i,0) = 0x81;
- WFIFOB(i,2) = 2; // "Someone has already logged in with this id"
- WFIFOSET(i,3);
- set_eof(i);
- }
- else // still moving to the map-server
- set_char_offline(-1, aid);
- }
- }
- idb_remove(auth_db, aid);// reject auth attempts from map-server
+ chr->parse_fromlogin_kick(fd);
}
break;
// ip address update signal from login server
case 0x2735:
{
- unsigned char buf[2];
- uint32 new_ip = 0;
-
- WBUFW(buf,0) = 0x2b1e;
- mapif_sendall(buf, 2);
-
- new_ip = host2ip(login_ip_str);
- if (new_ip && new_ip != login_ip)
- login_ip = new_ip; //Update login ip, too.
-
- new_ip = host2ip(char_ip_str);
- if (new_ip && new_ip != char_ip)
- { //Update ip.
- char_ip = new_ip;
- ShowInfo("Updating IP for [%s].\n", char_ip_str);
- // notify login server about the change
- WFIFOHEAD(fd,6);
- WFIFOW(fd,0) = 0x2736;
- WFIFOL(fd,2) = htonl(char_ip);
- WFIFOSET(fd,6);
- }
-
- RFIFOSKIP(fd,2);
+ chr->parse_fromlogin_update_ip(fd);
}
break;
@@ -2606,20 +2667,14 @@ int parse_fromlogin(int fd) {
if (RFIFOREST(fd) < 18)
return 0;
- mapif_parse_accinfo2(false, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14),
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1, 0, 0);
- RFIFOSKIP(fd,18);
+ chr->parse_fromlogin_accinfo2_failed(fd);
break;
case 0x2737: // Successful accinfo lookup to forward to mapserver
if (RFIFOREST(fd) < 183)
return 0;
- mapif_parse_accinfo2(true, RFIFOL(fd,167), RFIFOL(fd,171), RFIFOL(fd,175), RFIFOL(fd,179),
- (char*)RFIFOP(fd,2), (char*)RFIFOP(fd,26), (char*)RFIFOP(fd,59),
- (char*)RFIFOP(fd,99), (char*)RFIFOP(fd,119), (char*)RFIFOP(fd,151),
- (char*)RFIFOP(fd,156), RFIFOL(fd,115), RFIFOL(fd,143), RFIFOL(fd,147));
- RFIFOSKIP(fd,183);
+ chr->parse_fromlogin_accinfo2_ok(fd);
break;
default:
@@ -2633,110 +2688,88 @@ int parse_fromlogin(int fd) {
return 0;
}
-int check_connect_login_server(int tid, int64 tick, int id, intptr_t data);
-
-void do_init_loginif(void)
-{
- // establish char-login connection if not present
- timer->add_func_list(check_connect_login_server, "check_connect_login_server");
- timer->add_interval(timer->gettick() + 1000, check_connect_login_server, 0, 0, 10 * 1000);
-
- // send a list of all online account IDs to login server
- timer->add_func_list(send_accounts_tologin, "send_accounts_tologin");
- timer->add_interval(timer->gettick() + 1000, send_accounts_tologin, 0, 0, 3600 * 1000); //Sync online accounts every hour
-}
-
-void do_final_loginif(void)
+int char_request_accreg2(int account_id, int char_id)
{
- if( login_fd != -1 )
- {
- do_close(login_fd);
- login_fd = -1;
- }
-}
-
-int request_accreg2(int account_id, int char_id)
-{
- if (login_fd > 0) {
- WFIFOHEAD(login_fd,10);
- WFIFOW(login_fd,0) = 0x272e;
- WFIFOL(login_fd,2) = account_id;
- WFIFOL(login_fd,6) = char_id;
- WFIFOSET(login_fd,10);
+ if (chr->login_fd > 0) {
+ WFIFOHEAD(chr->login_fd,10);
+ WFIFOW(chr->login_fd,0) = 0x272e;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOL(chr->login_fd,6) = char_id;
+ WFIFOSET(chr->login_fd,10);
return 1;
}
return 0;
}
+
/**
- * Handles global account reg saving that continues with global_accreg_to_login_add and global_accreg_to_send
+ * Handles global account reg saving that continues with chr->global_accreg_to_login_add and global_accreg_to_send
**/
-void global_accreg_to_login_start (int account_id, int char_id) {
- WFIFOHEAD(login_fd, 60000 + 300);
- WFIFOW(login_fd,0) = 0x2728;
- WFIFOW(login_fd,2) = 14;
- WFIFOL(login_fd,4) = account_id;
- WFIFOL(login_fd,8) = char_id;
- WFIFOW(login_fd,12) = 0;/* count */
+void char_global_accreg_to_login_start (int account_id, int char_id) {
+ WFIFOHEAD(chr->login_fd, 60000 + 300);
+ WFIFOW(chr->login_fd,0) = 0x2728;
+ WFIFOW(chr->login_fd,2) = 14;
+ WFIFOL(chr->login_fd,4) = account_id;
+ WFIFOL(chr->login_fd,8) = char_id;
+ WFIFOW(chr->login_fd,12) = 0;/* count */
}
+
/**
- * Completes global account reg saving that starts global_accreg_to_login_start and continues with global_accreg_to_login_add
+ * Completes global account reg saving that starts chr->global_accreg_to_login_start and continues with chr->global_accreg_to_login_add
**/
-void global_accreg_to_login_send (void) {
- WFIFOSET(login_fd, WFIFOW(login_fd,2));
+void char_global_accreg_to_login_send (void) {
+ WFIFOSET(chr->login_fd, WFIFOW(chr->login_fd,2));
}
+
/**
- * Handles global account reg saving that starts global_accreg_to_login_start and ends with global_accreg_to_send
+ * Handles global account reg saving that starts chr->global_accreg_to_login_start and ends with global_accreg_to_send
**/
-void global_accreg_to_login_add (const char *key, unsigned int index, intptr_t val, bool is_string) {
- int nlen = WFIFOW(login_fd, 2);
- size_t len;
-
- len = strlen(key)+1;
-
- WFIFOB(login_fd, nlen) = (unsigned char)len;/* won't be higher; the column size is 32 */
+void char_global_accreg_to_login_add (const char *key, unsigned int index, intptr_t val, bool is_string) {
+ int nlen = WFIFOW(chr->login_fd, 2);
+ size_t len = strlen(key)+1;
+
+ WFIFOB(chr->login_fd, nlen) = (unsigned char)len;/* won't be higher; the column size is 32 */
nlen += 1;
-
- safestrncpy((char*)WFIFOP(login_fd,nlen), key, len);
+
+ safestrncpy((char*)WFIFOP(chr->login_fd,nlen), key, len);
nlen += len;
-
- WFIFOL(login_fd, nlen) = index;
+
+ WFIFOL(chr->login_fd, nlen) = index;
nlen += 4;
-
+
if( is_string ) {
- WFIFOB(login_fd, nlen) = val ? 2 : 3;
+ WFIFOB(chr->login_fd, nlen) = val ? 2 : 3;
nlen += 1;
-
+
if( val ) {
char *sval = (char*)val;
len = strlen(sval)+1;
-
- WFIFOB(login_fd, nlen) = (unsigned char)len;/* won't be higher; the column size is 254 */
+
+ WFIFOB(chr->login_fd, nlen) = (unsigned char)len;/* won't be higher; the column size is 254 */
nlen += 1;
-
- safestrncpy((char*)WFIFOP(login_fd,nlen), sval, len);
+
+ safestrncpy((char*)WFIFOP(chr->login_fd,nlen), sval, len);
nlen += len;
}
-
} else {
- WFIFOB(login_fd, nlen) = val ? 0 : 1;
+ WFIFOB(chr->login_fd, nlen) = val ? 0 : 1;
nlen += 1;
-
+
if( val ) {
- WFIFOL(login_fd, nlen) = (int)val;
+ WFIFOL(chr->login_fd, nlen) = (int)val;
nlen += 4;
}
-
}
-
- WFIFOW(login_fd,12) += 1;
-
- WFIFOW(login_fd, 2) = nlen;
- if( WFIFOW(login_fd, 2) > 60000 ) {
- int account_id = WFIFOL(login_fd,4), char_id = WFIFOL(login_fd,8);
- global_accreg_to_login_send();
- global_accreg_to_login_start(account_id,char_id);/* prepare next */
+
+ WFIFOW(chr->login_fd,12) += 1;
+
+ WFIFOW(chr->login_fd, 2) = nlen;
+ if( WFIFOW(chr->login_fd, 2) > 60000 ) {
+ int account_id = WFIFOL(chr->login_fd,4), char_id = WFIFOL(chr->login_fd,8);
+ chr->global_accreg_to_login_send();
+ chr->global_accreg_to_login_start(account_id,char_id);/* prepare next */
}
}
+
void char_read_fame_list(void) {
int i;
char* data;
@@ -2747,51 +2780,51 @@ void char_read_fame_list(void) {
memset(chemist_fame_list, 0, sizeof(chemist_fame_list));
memset(taekwon_fame_list, 0, sizeof(taekwon_fame_list));
// Build Blacksmith ranking list
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_BLACKSMITH, JOB_WHITESMITH, JOB_BABY_BLACKSMITH, JOB_MECHANIC, JOB_MECHANIC_T, JOB_BABY_MECHANIC, fame_list_size_smith) )
- Sql_ShowDebug(sql_handle);
- for( i = 0; i < fame_list_size_smith && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_BLACKSMITH, JOB_WHITESMITH, JOB_BABY_BLACKSMITH, JOB_MECHANIC, JOB_MECHANIC_T, JOB_BABY_MECHANIC, fame_list_size_smith) )
+ Sql_ShowDebug(inter->sql_handle);
+ for( i = 0; i < fame_list_size_smith && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
// char_id
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
smith_fame_list[i].id = atoi(data);
// fame
- SQL->GetData(sql_handle, 1, &data, &len);
+ SQL->GetData(inter->sql_handle, 1, &data, &len);
smith_fame_list[i].fame = atoi(data);
// name
- SQL->GetData(sql_handle, 2, &data, &len);
+ SQL->GetData(inter->sql_handle, 2, &data, &len);
memcpy(smith_fame_list[i].name, data, min(len, NAME_LENGTH));
}
// Build Alchemist ranking list
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_ALCHEMIST, JOB_CREATOR, JOB_BABY_ALCHEMIST, JOB_GENETIC, JOB_GENETIC_T, JOB_BABY_GENETIC, fame_list_size_chemist) )
- Sql_ShowDebug(sql_handle);
- for( i = 0; i < fame_list_size_chemist && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d' OR `class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_ALCHEMIST, JOB_CREATOR, JOB_BABY_ALCHEMIST, JOB_GENETIC, JOB_GENETIC_T, JOB_BABY_GENETIC, fame_list_size_chemist) )
+ Sql_ShowDebug(inter->sql_handle);
+ for( i = 0; i < fame_list_size_chemist && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
// char_id
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
chemist_fame_list[i].id = atoi(data);
// fame
- SQL->GetData(sql_handle, 1, &data, &len);
+ SQL->GetData(inter->sql_handle, 1, &data, &len);
chemist_fame_list[i].fame = atoi(data);
// name
- SQL->GetData(sql_handle, 2, &data, &len);
+ SQL->GetData(inter->sql_handle, 2, &data, &len);
memcpy(chemist_fame_list[i].name, data, min(len, NAME_LENGTH));
}
// Build Taekwon ranking list
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_TAEKWON, fame_list_size_taekwon) )
- Sql_ShowDebug(sql_handle);
- for( i = 0; i < fame_list_size_taekwon && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`,`fame`,`name` FROM `%s` WHERE `fame`>0 AND (`class`='%d') ORDER BY `fame` DESC LIMIT 0,%d", char_db, JOB_TAEKWON, fame_list_size_taekwon) )
+ Sql_ShowDebug(inter->sql_handle);
+ for( i = 0; i < fame_list_size_taekwon && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
// char_id
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
taekwon_fame_list[i].id = atoi(data);
// fame
- SQL->GetData(sql_handle, 1, &data, &len);
+ SQL->GetData(inter->sql_handle, 1, &data, &len);
taekwon_fame_list[i].fame = atoi(data);
// name
- SQL->GetData(sql_handle, 2, &data, &len);
+ SQL->GetData(inter->sql_handle, 2, &data, &len);
memcpy(taekwon_fame_list[i].name, data, min(len, NAME_LENGTH));
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
// Send map-servers the fame ranking lists
@@ -2823,9 +2856,9 @@ int char_send_fame_list(int fd) {
WBUFW(buf, 2) = len;
if (fd != -1)
- mapif_send(fd, buf, len);
+ mapif->send(fd, buf, len);
else
- mapif_sendall(buf, len);
+ mapif->sendall(buf, len);
return 0;
}
@@ -2836,7 +2869,7 @@ void char_update_fame_list(int type, int index, int fame) {
WBUFB(buf,2) = type;
WBUFB(buf,3) = index;
WBUFL(buf,4) = fame;
- mapif_sendall(buf, 8);
+ mapif->sendall(buf, 8);
}
//Loads a character's name and stores it in the buffer given (must be NAME_LENGTH in size)
@@ -2846,11 +2879,11 @@ int char_loadName(int char_id, char* name)
char* data;
size_t len;
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `name` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
- Sql_ShowDebug(sql_handle);
- else if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `name` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
- SQL->GetData(sql_handle, 0, &data, &len);
+ SQL->GetData(inter->sql_handle, 0, &data, &len);
safestrncpy(name, data, NAME_LENGTH);
return 1;
}
@@ -2861,24 +2894,20 @@ int char_loadName(int char_id, char* name)
return 0;
}
-int search_mapserver(unsigned short map, uint32 ip, uint16 port);
-
-
/// Initializes a server structure.
void mapif_server_init(int id)
{
- //memset(&server[id], 0, sizeof(server[id]));
- server[id].fd = -1;
+ //memset(&chr->server[id], 0, sizeof(server[id]));
+ chr->server[id].fd = -1;
}
-
/// Destroys a server structure.
void mapif_server_destroy(int id)
{
- if( server[id].fd == -1 )
+ if( chr->server[id].fd == -1 )
{
- do_close(server[id].fd);
- server[id].fd = -1;
+ do_close(chr->server[id].fd);
+ chr->server[id].fd = -1;
}
}
@@ -2888,254 +2917,940 @@ void mapif_server_reset(int id)
{
int i,j;
unsigned char buf[16384];
- int fd = server[id].fd;
+ int fd = chr->server[id].fd;
//Notify other map servers that this one is gone. [Skotlex]
WBUFW(buf,0) = 0x2b20;
- WBUFL(buf,4) = htonl(server[id].ip);
- WBUFW(buf,8) = htons(server[id].port);
+ WBUFL(buf,4) = htonl(chr->server[id].ip);
+ WBUFW(buf,8) = htons(chr->server[id].port);
j = 0;
- for(i = 0; i < server[id].maps; i++)
- if (server[id].map[i])
- WBUFW(buf,10+(j++)*4) = server[id].map[i];
+ for(i = 0; i < chr->server[id].maps; i++)
+ if (chr->server[id].map[i])
+ WBUFW(buf,10+(j++)*4) = chr->server[id].map[i];
if (j > 0) {
WBUFW(buf,2) = j * 4 + 10;
- mapif_sendallwos(fd, buf, WBUFW(buf,2));
+ mapif->sendallwos(fd, buf, WBUFW(buf,2));
}
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `index`='%d'", ragsrvinfo_db, server[id].fd) )
- Sql_ShowDebug(sql_handle);
- online_char_db->foreach(online_char_db,char_db_setoffline,id); //Tag relevant chars as 'in disconnected' server.
- mapif_server_destroy(id);
- mapif_server_init(id);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `index`='%d'", ragsrvinfo_db, chr->server[id].fd) )
+ Sql_ShowDebug(inter->sql_handle);
+ chr->online_char_db->foreach(chr->online_char_db,chr->db_setoffline,id); //Tag relevant chars as 'in disconnected' server.
+ mapif->server_destroy(id);
+ mapif->server_init(id);
}
-
/// Called when the connection to a Map Server is disconnected.
void mapif_on_disconnect(int id)
{
ShowStatus("Map-server #%d has disconnected.\n", id);
- mapif_server_reset(id);
+ mapif->server_reset(id);
}
void mapif_on_parse_accinfo(int account_id, int u_fd, int u_aid, int u_group, int map_fd) {
- WFIFOHEAD(login_fd,22);
- WFIFOW(login_fd,0) = 0x2740;
- WFIFOL(login_fd,2) = account_id;
- WFIFOL(login_fd,6) = u_fd;
- WFIFOL(login_fd,10) = u_aid;
- WFIFOL(login_fd,14) = u_group;
- WFIFOL(login_fd,18) = map_fd;
- WFIFOSET(login_fd,22);
+ WFIFOHEAD(chr->login_fd,22);
+ WFIFOW(chr->login_fd,0) = 0x2740;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOL(chr->login_fd,6) = u_fd;
+ WFIFOL(chr->login_fd,10) = u_aid;
+ WFIFOL(chr->login_fd,14) = u_group;
+ WFIFOL(chr->login_fd,18) = map_fd;
+ WFIFOSET(chr->login_fd,22);
}
-int parse_frommap(int fd)
+void char_parse_frommap_datasync(int fd)
{
- int i, j;
+ sockt->datasync(fd, false);
+ RFIFOSKIP(fd,RFIFOW(fd,2));
+}
+
+void char_parse_frommap_skillid2idx(int fd)
+{
+ int i;
+ int j = RFIFOW(fd, 2) - 4;
+
+ memset(&skillid2idx, 0, sizeof(skillid2idx));
+ if( j )
+ j /= 4;
+ for(i = 0; i < j; i++) {
+ if( RFIFOW(fd, 4 + (i*4)) > MAX_SKILL_ID ) {
+ ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n",RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)),RFIFOW(fd, 4 + (i*4)),MAX_SKILL_ID);
+ continue;
+ }
+ skillid2idx[RFIFOW(fd, 4 + (i*4))] = RFIFOW(fd, 6 + (i*4));
+ }
+ RFIFOSKIP(fd, RFIFOW(fd, 2));
+}
+
+void char_map_received_ok(int fd)
+{
+ WFIFOHEAD(fd, 3 + NAME_LENGTH);
+ WFIFOW(fd,0) = 0x2afb;
+ WFIFOB(fd,2) = 0;
+ memcpy(WFIFOP(fd,3), wisp_server_name, NAME_LENGTH);
+ WFIFOSET(fd,3+NAME_LENGTH);
+}
+
+void char_send_maps(int fd, int id, int j)
+{
+ unsigned char buf[16384];
+ int x,i;
+
+ if (j == 0) {
+ ShowWarning("Map-server %d has NO maps.\n", id);
+ } else {
+ // Transmitting maps information to the other map-servers
+ WBUFW(buf,0) = 0x2b04;
+ WBUFW(buf,2) = j * 4 + 10;
+ WBUFL(buf,4) = htonl(chr->server[id].ip);
+ WBUFW(buf,8) = htons(chr->server[id].port);
+ memcpy(WBUFP(buf,10), RFIFOP(fd,4), j * 4);
+ mapif->sendallwos(fd, buf, WBUFW(buf,2));
+ }
+ // Transmitting the maps of the other map-servers to the new map-server
+ for(x = 0; x < ARRAYLENGTH(chr->server); x++) {
+ if (chr->server[x].fd > 0 && x != id) {
+ WFIFOHEAD(fd,10 +4*ARRAYLENGTH(chr->server[x].map));
+ WFIFOW(fd,0) = 0x2b04;
+ WFIFOL(fd,4) = htonl(chr->server[x].ip);
+ WFIFOW(fd,8) = htons(chr->server[x].port);
+ j = 0;
+ for(i = 0; i < ARRAYLENGTH(chr->server[x].map); i++)
+ if (chr->server[x].map[i])
+ WFIFOW(fd,10+(j++)*4) = chr->server[x].map[i];
+ if (j > 0) {
+ WFIFOW(fd,2) = j * 4 + 10;
+ WFIFOSET(fd,WFIFOW(fd,2));
+ }
+ }
+ }
+}
+
+void char_parse_frommap_map_names(int fd, int id)
+{
+ int i,j = 0;
+
+ if( chr->server[id].map != NULL ) { aFree(chr->server[id].map); chr->server[id].map = NULL; }
+
+ chr->server[id].maps = ( RFIFOW(fd, 2) - 4 ) / 4;
+ CREATE(chr->server[id].map, unsigned short, chr->server[id].maps);
+
+
+ for(i = 4; i < RFIFOW(fd,2); i += 4) {
+ chr->server[id].map[j] = RFIFOW(fd,i);
+ j++;
+ }
+
+ ShowStatus("Map-Server %d connected: %d maps, from IP %d.%d.%d.%d port %d.\n",
+ id, j, CONVIP(chr->server[id].ip), chr->server[id].port);
+ ShowStatus("Map-server %d loading complete.\n", id);
+
+ // send name for wisp to player
+ chr->map_received_ok(fd);
+ chr->send_fame_list(fd); //Send fame list.
+ chr->send_maps(fd, id, j);
+ RFIFOSKIP(fd,RFIFOW(fd,2));
+}
+
+void char_send_scdata(int fd, int aid, int cid)
+{
+ #ifdef ENABLE_SC_SAVING
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `type`, `tick`, `val1`, `val2`, `val3`, `val4` "
+ "FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'",
+ scdata_db, aid, cid) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ return;
+ }
+ if( SQL->NumRows(inter->sql_handle) > 0 ) {
+ struct status_change_data scdata;
+ int count;
+ char* data;
+
+ memset(&scdata, 0, sizeof(scdata));
+ WFIFOHEAD(fd,14+50*sizeof(struct status_change_data));
+ WFIFOW(fd,0) = 0x2b1d;
+ WFIFOL(fd,4) = aid;
+ WFIFOL(fd,8) = cid;
+ for( count = 0; count < 50 && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++count )
+ {
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); scdata.type = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); scdata.tick = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); scdata.val1 = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); scdata.val2 = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); scdata.val3 = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); scdata.val4 = atoi(data);
+ memcpy(WFIFOP(fd, 14+count*sizeof(struct status_change_data)), &scdata, sizeof(struct status_change_data));
+ }
+ if (count >= 50)
+ ShowWarning("Too many status changes for %d:%d, some of them were not loaded.\n", aid, cid);
+ if (count > 0) {
+ WFIFOW(fd,2) = 14 + count*sizeof(struct status_change_data);
+ WFIFOW(fd,12) = count;
+ WFIFOSET(fd,WFIFOW(fd,2));
+
+ //Clear the data once loaded.
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ } else { //no sc (needs a response)
+ WFIFOHEAD(fd,14);
+ WFIFOW(fd,0) = 0x2b1d;
+ WFIFOW(fd,2) = 14;
+ WFIFOL(fd,4) = aid;
+ WFIFOL(fd,8) = cid;
+ WFIFOW(fd,12) = 0;
+ WFIFOSET(fd,WFIFOW(fd,2));
+ }
+ SQL->FreeResult(inter->sql_handle);
+ #endif
+}
+
+void char_parse_frommap_request_scdata(int fd)
+{
+ #ifdef ENABLE_SC_SAVING
+ int aid = RFIFOL(fd,2);
+ int cid = RFIFOL(fd,6);
+ chr->send_scdata(fd, aid, cid);
+ #endif
+ RFIFOSKIP(fd, 10);
+}
+
+void char_parse_frommap_set_users_count(int fd, int id)
+{
+ if (RFIFOW(fd,2) != chr->server[id].users) {
+ chr->server[id].users = RFIFOW(fd,2);
+ ShowInfo("User Count: %d (Server: %d)\n", chr->server[id].users, id);
+ }
+ RFIFOSKIP(fd, 4);
+}
+
+void char_parse_frommap_set_users(int fd, int id)
+{
+ //TODO: When data mismatches memory, update guild/party online/offline states.
+ int aid, cid, i;
+ struct online_char_data* character;
+
+ chr->server[id].users = RFIFOW(fd,4);
+ chr->online_char_db->foreach(chr->online_char_db,chr->db_setoffline,id); //Set all chars from this server as 'unknown'
+ for(i = 0; i < chr->server[id].users; i++) {
+ aid = RFIFOL(fd,6+i*8);
+ cid = RFIFOL(fd,6+i*8+4);
+ character = idb_ensure(chr->online_char_db, aid, chr->create_online_char_data);
+ if( character->server > -1 && character->server != id )
+ {
+ ShowNotice("Set map user: Character (%d:%d) marked on map server %d, but map server %d claims to have (%d:%d) online!\n",
+ character->account_id, character->char_id, character->server, id, aid, cid);
+ mapif->disconnectplayer(chr->server[character->server].fd, character->account_id, character->char_id, 2);
+ }
+ character->server = id;
+ character->char_id = cid;
+ }
+ //If any chars remain in -2, they will be cleaned in the cleanup timer.
+ RFIFOSKIP(fd,RFIFOW(fd,2));
+}
+
+void char_save_character_ack(int fd, int aid, int cid)
+{
+ WFIFOHEAD(fd,10);
+ WFIFOW(fd,0) = 0x2b21; //Save ack only needed on final save.
+ WFIFOL(fd,2) = aid;
+ WFIFOL(fd,6) = cid;
+ WFIFOSET(fd,10);
+}
+
+void char_parse_frommap_save_character(int fd, int id)
+{
+ int aid = RFIFOL(fd,4), cid = RFIFOL(fd,8), size = RFIFOW(fd,2);
+ struct online_char_data* character;
+
+ if (size - 13 != sizeof(struct mmo_charstatus)) {
+ ShowError("parse_from_map (save-char): Size mismatch! %d != %"PRIuS"\n", size-13, sizeof(struct mmo_charstatus));
+ RFIFOSKIP(fd,size);
+ return;
+ }
+ //Check account only if this ain't final save. Final-save goes through because of the char-map reconnect
+ if (RFIFOB(fd,12)
+ || ( (character = (struct online_char_data*)idb_get(chr->online_char_db, aid)) != NULL
+ && character->char_id == cid)
+ ) {
+ struct mmo_charstatus char_dat;
+ memcpy(&char_dat, RFIFOP(fd,13), sizeof(struct mmo_charstatus));
+ chr->mmo_char_tosql(cid, &char_dat);
+ } else {
+ //This may be valid on char-server reconnection, when re-sending characters that already logged off.
+ ShowError("parse_from_map (save-char): Received data for non-existing/offline character (%d:%d).\n", aid, cid);
+ chr->set_char_online(id, cid, aid);
+ }
+
+ if (RFIFOB(fd,12)) {
+ //Flag, set character offline after saving. [Skotlex]
+ chr->set_char_offline(cid, aid);
+ chr->save_character_ack(fd, aid, cid);
+ }
+ RFIFOSKIP(fd,size);
+}
+
+// 0 - not ok
+// 1 - ok
+void char_select_ack(int fd, int account_id, uint8 flag)
+{
+ WFIFOHEAD(fd,7);
+ WFIFOW(fd,0) = 0x2b03;
+ WFIFOL(fd,2) = account_id;
+ WFIFOB(fd,6) = flag;
+ WFIFOSET(fd,7);
+}
+
+void char_parse_frommap_char_select_req(int fd)
+{
+ int account_id = RFIFOL(fd,2);
+ uint32 login_id1 = RFIFOL(fd,6);
+ uint32 login_id2 = RFIFOL(fd,10);
+ uint32 ip = RFIFOL(fd,14);
+ int32 group_id = RFIFOL(fd, 18);
+ RFIFOSKIP(fd,22);
+
+ if( runflag != CHARSERVER_ST_RUNNING )
+ {
+ chr->select_ack(fd, account_id, 0);
+ }
+ else
+ {
+ struct char_auth_node* node;
+
+ // create temporary auth entry
+ CREATE(node, struct char_auth_node, 1);
+ node->account_id = account_id;
+ node->char_id = 0;
+ node->login_id1 = login_id1;
+ node->login_id2 = login_id2;
+ node->group_id = group_id;
+ //node->sex = 0;
+ node->ip = ntohl(ip);
+ /* sounds troublesome. */
+ //node->expiration_time = 0; // unlimited/unknown time by default (not display in map-server)
+ //node->gmlevel = 0;
+ idb_put(auth_db, account_id, node);
+
+ //Set char to "@ char select" in online db [Kevin]
+ chr->set_char_charselect(account_id);
+ chr->select_ack(fd, account_id, 1);
+ }
+}
+
+void char_change_map_server_ack(int fd, uint8 *data, bool ok)
+{
+ WFIFOHEAD(fd,30);
+ WFIFOW(fd,0) = 0x2b06;
+ memcpy(WFIFOP(fd,2), data, 28);
+ if (!ok)
+ WFIFOL(fd,6) = 0; //Set login1 to 0.
+ WFIFOSET(fd,30);
+}
+
+void char_parse_frommap_change_map_server(int fd)
+{
+ int map_id, map_fd = -1;
+ struct mmo_charstatus* char_data;
+
+ map_id = chr->search_mapserver(RFIFOW(fd,18), ntohl(RFIFOL(fd,24)), ntohs(RFIFOW(fd,28))); //Locate mapserver by ip and port.
+ if (map_id >= 0)
+ map_fd = chr->server[map_id].fd;
+ //Char should just had been saved before this packet, so this should be safe. [Skotlex]
+ char_data = (struct mmo_charstatus*)uidb_get(chr->char_db_,RFIFOL(fd,14));
+ if (char_data == NULL) {
+ //Really shouldn't happen.
+ struct mmo_charstatus char_dat;
+ chr->mmo_char_fromsql(RFIFOL(fd,14), &char_dat, true);
+ char_data = (struct mmo_charstatus*)uidb_get(chr->char_db_,RFIFOL(fd,14));
+ }
+
+ if (runflag == CHARSERVER_ST_RUNNING && session_isActive(map_fd) && char_data) {
+ //Send the map server the auth of this player.
+ struct online_char_data* data;
+ struct char_auth_node* node;
+
+ //Update the "last map" as this is where the player must be spawned on the new map server.
+ char_data->last_point.map = RFIFOW(fd,18);
+ char_data->last_point.x = RFIFOW(fd,20);
+ char_data->last_point.y = RFIFOW(fd,22);
+ char_data->sex = RFIFOB(fd,30);
+
+ // create temporary auth entry
+ CREATE(node, struct char_auth_node, 1);
+ node->account_id = RFIFOL(fd,2);
+ node->char_id = RFIFOL(fd,14);
+ node->login_id1 = RFIFOL(fd,6);
+ node->login_id2 = RFIFOL(fd,10);
+ node->sex = RFIFOB(fd,30);
+ node->expiration_time = 0; // FIXME (this thing isn't really supported we could as well purge it instead of fixing)
+ node->ip = ntohl(RFIFOL(fd,31));
+ node->group_id = RFIFOL(fd,35);
+ node->changing_mapservers = 1;
+ idb_put(auth_db, RFIFOL(fd,2), node);
+
+ data = idb_ensure(chr->online_char_db, RFIFOL(fd,2), chr->create_online_char_data);
+ data->char_id = char_data->char_id;
+ data->server = map_id; //Update server where char is.
+
+ //Reply with an ack.
+ chr->change_map_server_ack(fd, RFIFOP(fd,2), true);
+ } else { //Reply with nak
+ chr->change_map_server_ack(fd, RFIFOP(fd,2), false);
+ }
+ RFIFOSKIP(fd,39);
+}
+
+void char_parse_frommap_remove_friend(int fd)
+{
+ int char_id = RFIFOL(fd,2);
+ int friend_id = RFIFOL(fd,6);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `friend_id`='%d' LIMIT 1",
+ friend_db, char_id, friend_id) ) {
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ RFIFOSKIP(fd,10);
+}
+
+void char_char_name_ack(int fd, int char_id)
+{
+ WFIFOHEAD(fd,30);
+ WFIFOW(fd,0) = 0x2b09;
+ WFIFOL(fd,2) = char_id;
+ chr->loadName(char_id, (char*)WFIFOP(fd,6));
+ WFIFOSET(fd,30);
+}
+
+void char_parse_frommap_char_name_request(int fd)
+{
+ chr->char_name_ack(fd, RFIFOL(fd,2));
+ RFIFOSKIP(fd,6);
+}
+
+void char_parse_frommap_change_email(int fd)
+{
+ if (chr->login_fd > 0) { // don't send request if no login-server
+ WFIFOHEAD(chr->login_fd,86);
+ memcpy(WFIFOP(chr->login_fd,0), RFIFOP(fd,0),86); // 0x2722 <account_id>.L <actual_e-mail>.40B <new_e-mail>.40B
+ WFIFOW(chr->login_fd,0) = 0x2722;
+ WFIFOSET(chr->login_fd,86);
+ }
+ RFIFOSKIP(fd, 86);
+}
+
+void mapif_char_ban(int char_id, time_t timestamp)
+{
+ unsigned char buf[11];
+ WBUFW(buf,0) = 0x2b14;
+ WBUFL(buf,2) = char_id;
+ WBUFB(buf,6) = 2;
+ WBUFL(buf,7) = (unsigned int)timestamp;
+ mapif->sendall(buf, 11);
+}
+
+void char_ban(int account_id, int char_id, time_t *unban_time, short year, short month, short day, short hour, short minute, short second)
+{
+ time_t timestamp;
+ struct tm *tmtime;
+ SqlStmt* stmt = SQL->StmtMalloc(inter->sql_handle);
+
+ if (*unban_time == 0 || *unban_time < time(NULL))
+ timestamp = time(NULL); // new ban
+ else
+ timestamp = *unban_time; // add to existing ban
+
+ tmtime = localtime(&timestamp);
+ tmtime->tm_year = tmtime->tm_year + year;
+ tmtime->tm_mon = tmtime->tm_mon + month;
+ tmtime->tm_mday = tmtime->tm_mday + day;
+ tmtime->tm_hour = tmtime->tm_hour + hour;
+ tmtime->tm_min = tmtime->tm_min + minute;
+ tmtime->tm_sec = tmtime->tm_sec + second;
+ timestamp = mktime(tmtime);
+
+ if( SQL_SUCCESS != SQL->StmtPrepare(stmt,
+ "UPDATE `%s` SET `unban_time` = ? WHERE `char_id` = ? LIMIT 1",
+ char_db)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_LONG, (void*)&timestamp, sizeof(timestamp))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_INT, (void*)&char_id, sizeof(char_id))
+ || SQL_SUCCESS != SQL->StmtExecute(stmt)
+
+ ) {
+ SqlStmt_ShowDebug(stmt);
+ }
+
+ SQL->StmtFree(stmt);
+
+ // condition applies; send to all map-servers to disconnect the player
+ if( timestamp > time(NULL) ) {
+ mapif->char_ban(char_id, timestamp);
+ // disconnect player if online on char-server
+ chr->disconnect_player(account_id);
+ }
+}
+
+void char_unban(int char_id, int *result)
+{
+ /* handled by char server, so no redirection */
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `unban_time` = '0' WHERE `char_id` = '%d' LIMIT 1", char_db, char_id) ) {
+ Sql_ShowDebug(inter->sql_handle);
+ *result = 1;
+ }
+}
+
+void char_ask_name_ack(int fd, int acc, const char* name, int type, int result)
+{
+ WFIFOHEAD(fd,34);
+ WFIFOW(fd, 0) = 0x2b0f;
+ WFIFOL(fd, 2) = acc;
+ safestrncpy((char*)WFIFOP(fd,6), name, NAME_LENGTH);
+ WFIFOW(fd,30) = type;
+ WFIFOW(fd,32) = result;
+ WFIFOSET(fd,34);
+}
+
+void char_parse_frommap_change_account(int fd)
+{
+ int result = 0; // 0-login-server request done, 1-player not found, 2-gm level too low, 3-login-server offline
+ char esc_name[NAME_LENGTH*2+1];
+
+ int acc = RFIFOL(fd,2); // account_id of who ask (-1 if server itself made this request)
+ const char* name = (char*)RFIFOP(fd,6); // name of the target character
+ int type = RFIFOW(fd,30); // type of operation: 1-block, 2-ban, 3-unblock, 4-unban, 5 changesex, 6 charban, 7 charunban
+ short year = RFIFOW(fd,32);
+ short month = RFIFOW(fd,34);
+ short day = RFIFOW(fd,36);
+ short hour = RFIFOW(fd,38);
+ short minute = RFIFOW(fd,40);
+ short second = RFIFOW(fd,42);
+ RFIFOSKIP(fd,44);
+
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`char_id`,`unban_time` FROM `%s` WHERE `name` = '%s'", char_db, esc_name) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL->NumRows(inter->sql_handle) == 0 ) {
+ result = 1; // 1-player not found
+ } else if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) ) {
+ Sql_ShowDebug(inter->sql_handle);
+ result = 1; // 1-player not found
+ } else {
+ int account_id, char_id;
+ char* data;
+ time_t unban_time;
+
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); unban_time = atol(data);
+
+ if( chr->login_fd <= 0 ) {
+ result = 3; // 3-login-server offline
+#if 0 //FIXME: need to move this check to login server [ultramage]
+ } else if( acc != -1 && isGM(acc) < isGM(account_id) ) {
+ result = 2; // 2-gm level too low
+#endif // 0
+ } else {
+ switch( type ) {
+ case 1: // block
+ loginif->block_account(account_id, 5);
+ break;
+ case 2: // ban
+ loginif->ban_account(account_id, year, month, day, hour, minute, second);
+ break;
+ case 3: // unblock
+ loginif->block_account(account_id, 0);
+ break;
+ case 4: // unban
+ loginif->unban_account(account_id);
+ break;
+ case 5: // changesex
+ loginif->changesex(account_id);
+ break;
+ case 6: //char ban
+ /* handled by char server, so no redirection */
+ {
+ chr->ban(account_id, char_id, &unban_time, year, month, day, hour, minute, second);
+ }
+ break;
+ case 7: //char unban
+ chr->unban(char_id, &result);
+ break;
+
+ }
+ }
+ }
+
+ SQL->FreeResult(inter->sql_handle);
+
+ // send answer if a player ask, not if the server ask
+ if( acc != -1 && type != 5 ) { // Don't send answer for changesex
+ chr->ask_name_ack(fd, acc, name, type, result);
+ }
+}
+
+void char_parse_frommap_fame_list(int fd)
+{
+ int cid = RFIFOL(fd, 2);
+ int fame = RFIFOL(fd, 6);
+ char type = RFIFOB(fd, 10);
+ int size;
+ struct fame_list* list;
+ int player_pos;
+ int fame_pos;
+
+ switch(type) {
+ case RANKTYPE_BLACKSMITH: size = fame_list_size_smith; list = smith_fame_list; break;
+ case RANKTYPE_ALCHEMIST: size = fame_list_size_chemist; list = chemist_fame_list; break;
+ case RANKTYPE_TAEKWON: size = fame_list_size_taekwon; list = taekwon_fame_list; break;
+ default: size = 0; list = NULL; break;
+ }
+
+ ARR_FIND(0, size, player_pos, list[player_pos].id == cid);// position of the player
+ ARR_FIND(0, size, fame_pos, list[fame_pos].fame <= fame);// where the player should be
+
+ if( player_pos == size && fame_pos == size )
+ ;// not on list and not enough fame to get on it
+ else if( fame_pos == player_pos ) {
+ // same position
+ list[player_pos].fame = fame;
+ chr->update_fame_list(type, player_pos, fame);
+ } else {
+ // move in the list
+ if( player_pos == size ) {
+ // new ranker - not in the list
+ ARR_MOVE(size - 1, fame_pos, list, struct fame_list);
+ list[fame_pos].id = cid;
+ list[fame_pos].fame = fame;
+ chr->loadName(cid, list[fame_pos].name);
+ } else {
+ // already in the list
+ if( fame_pos == size )
+ --fame_pos;// move to the end of the list
+ ARR_MOVE(player_pos, fame_pos, list, struct fame_list);
+ list[fame_pos].fame = fame;
+ }
+ chr->send_fame_list(-1);
+ }
+
+ RFIFOSKIP(fd,11);
+}
+
+void char_parse_frommap_divorce_char(int fd)
+{
+ chr->divorce_char_sql(RFIFOL(fd,2), RFIFOL(fd,6));
+ RFIFOSKIP(fd,10);
+}
+
+void char_parse_frommap_ragsrvinfo(int fd)
+{
+ char esc_server_name[sizeof(chr->server_name)*2+1];
+
+ SQL->EscapeString(inter->sql_handle, esc_server_name, chr->server_name);
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` SET `index`='%d',`name`='%s',`exp`='%d',`jexp`='%d',`drop`='%d'",
+ ragsrvinfo_db, fd, esc_server_name, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ RFIFOSKIP(fd,14);
+}
+
+void char_parse_frommap_set_char_offline(int fd)
+{
+ chr->set_char_offline(RFIFOL(fd,2),RFIFOL(fd,6));
+ RFIFOSKIP(fd,10);
+}
+
+void char_parse_frommap_set_all_offline(int fd, int id)
+{
+ chr->set_all_offline(id);
+ RFIFOSKIP(fd,2);
+}
+
+void char_parse_frommap_set_char_online(int fd, int id)
+{
+ chr->set_char_online(id, RFIFOL(fd,2),RFIFOL(fd,6));
+ RFIFOSKIP(fd,10);
+}
+
+void char_parse_frommap_build_fame_list(int fd)
+{
+ chr->read_fame_list();
+ chr->send_fame_list(-1);
+ RFIFOSKIP(fd,2);
+}
+
+void char_parse_frommap_save_status_change_data(int fd)
+{
+ #ifdef ENABLE_SC_SAVING
+ int aid = RFIFOL(fd, 4);
+ int cid = RFIFOL(fd, 8);
+ int count = RFIFOW(fd, 12);
+
+ /* clear; ensure no left overs e.g. permanent */
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
+ Sql_ShowDebug(inter->sql_handle);
+
+ if( count > 0 )
+ {
+ struct status_change_data data;
+ StringBuf buf;
+ int i;
+
+ StrBuf->Init(&buf);
+ StrBuf->Printf(&buf, "INSERT INTO `%s` (`account_id`, `char_id`, `type`, `tick`, `val1`, `val2`, `val3`, `val4`) VALUES ", scdata_db);
+ for( i = 0; i < count; ++i )
+ {
+ memcpy (&data, RFIFOP(fd, 14+i*sizeof(struct status_change_data)), sizeof(struct status_change_data));
+ if( i > 0 )
+ StrBuf->AppendStr(&buf, ", ");
+ StrBuf->Printf(&buf, "('%d','%d','%hu','%d','%d','%d','%d','%d')", aid, cid,
+ data.type, data.tick, data.val1, data.val2, data.val3, data.val4);
+ }
+ if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
+ StrBuf->Destroy(&buf);
+ }
+ #endif
+ RFIFOSKIP(fd, RFIFOW(fd, 2));
+}
+
+void char_send_pong(int fd)
+{
+ WFIFOHEAD(fd,2);
+ WFIFOW(fd,0) = 0x2b24;
+ WFIFOSET(fd,2);
+}
+
+void char_parse_frommap_ping(int fd)
+{
+ chr->send_pong(fd);
+ RFIFOSKIP(fd,2);
+}
+
+void char_map_auth_ok(int fd, int account_id, struct char_auth_node* node, struct mmo_charstatus* cd)
+{
+ WFIFOHEAD(fd,25 + sizeof(struct mmo_charstatus));
+ WFIFOW(fd,0) = 0x2afd;
+ WFIFOW(fd,2) = 25 + sizeof(struct mmo_charstatus);
+ WFIFOL(fd,4) = account_id;
+ if (node)
+ {
+ WFIFOL(fd,8) = node->login_id1;
+ WFIFOL(fd,12) = node->login_id2;
+ WFIFOL(fd,16) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT"
+ WFIFOL(fd,20) = node->group_id;
+ WFIFOB(fd,24) = node->changing_mapservers;
+ }
+ else
+ {
+ WFIFOL(fd,8) = 0;
+ WFIFOL(fd,12) = 0;
+ WFIFOL(fd,16) = 0;
+ WFIFOL(fd,20) = 0;
+ WFIFOB(fd,24) = 0;
+ }
+ memcpy(WFIFOP(fd,25), cd, sizeof(struct mmo_charstatus));
+ WFIFOSET(fd, WFIFOW(fd,2));
+}
+
+void char_map_auth_failed(int fd, int account_id, int char_id, int login_id1, char sex, uint32 ip)
+{
+ WFIFOHEAD(fd,19);
+ WFIFOW(fd,0) = 0x2b27;
+ WFIFOL(fd,2) = account_id;
+ WFIFOL(fd,6) = char_id;
+ WFIFOL(fd,10) = login_id1;
+ WFIFOB(fd,14) = sex;
+ WFIFOL(fd,15) = htonl(ip);
+ WFIFOSET(fd,19);
+}
+
+void char_parse_frommap_auth_request(int fd, int id)
+{
+ struct mmo_charstatus char_dat;
+ struct char_auth_node* node;
+ struct mmo_charstatus* cd;
+
+ int account_id = RFIFOL(fd,2);
+ int char_id = RFIFOL(fd,6);
+ int login_id1 = RFIFOL(fd,10);
+ char sex = RFIFOB(fd,14);
+ uint32 ip = ntohl(RFIFOL(fd,15));
+ char standalone = RFIFOB(fd, 19);
+ RFIFOSKIP(fd,20);
+
+ node = (struct char_auth_node*)idb_get(auth_db, account_id);
+ cd = (struct mmo_charstatus*)uidb_get(chr->char_db_,char_id);
+
+ if( cd == NULL ) { //Really shouldn't happen.
+ chr->mmo_char_fromsql(char_id, &char_dat, true);
+ cd = (struct mmo_charstatus*)uidb_get(chr->char_db_,char_id);
+ }
+
+ if( runflag == CHARSERVER_ST_RUNNING && cd && standalone ) {
+ cd->sex = sex;
+
+ chr->map_auth_ok(fd, account_id, NULL, cd);
+ chr->set_char_online(id, char_id, account_id);
+ return;
+ }
+
+ if( runflag == CHARSERVER_ST_RUNNING &&
+ cd != NULL &&
+ node != NULL &&
+ node->account_id == account_id &&
+ node->char_id == char_id &&
+ node->login_id1 == login_id1 /*&&
+ node->sex == sex &&
+ node->ip == ip*/ )
+ {// auth ok
+ if( cd->sex == 99 )
+ cd->sex = sex;
+
+ chr->map_auth_ok(fd, account_id, node, cd);
+ // only use the auth once and mark user online
+ idb_remove(auth_db, account_id);
+ chr->set_char_online(id, char_id, account_id);
+ }
+ else
+ {// auth failed
+ chr->map_auth_failed(fd, account_id, char_id, login_id1, sex, ip);
+ }
+}
+
+void char_parse_frommap_update_ip(int fd, int id)
+{
+ chr->server[id].ip = ntohl(RFIFOL(fd, 2));
+ ShowInfo("Updated IP address of map-server #%d to %d.%d.%d.%d.\n", id, CONVIP(chr->server[id].ip));
+ RFIFOSKIP(fd,6);
+}
+
+void char_parse_frommap_request_stats_report(int fd)
+{
+ int sfd;/* stat server fd */
+ struct hSockOpt opt;
+ RFIFOSKIP(fd, 2);/* we skip first 2 bytes which are the 0x3008, so we end up with a buffer equal to the one we send */
+
+ opt.silent = 1;
+ opt.setTimeo = 1;
+
+ if( (sfd = make_connection(host2ip("stats.hercules.ws"),(uint16)25427,&opt) ) == -1 ) {
+ RFIFOSKIP(fd, RFIFOW(fd,2) );/* skip this packet */
+ RFIFOFLUSH(fd);
+ return;/* connection not possible, we drop the report */
+ }
+
+ session[sfd]->flag.server = 1;/* to ensure we won't drop our own packet */
+ realloc_fifo(sfd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
+
+ WFIFOHEAD(sfd, RFIFOW(fd,2) );
+
+ memcpy((char*)WFIFOP(sfd,0), (char*)RFIFOP(fd, 0), RFIFOW(fd,2));
+
+ WFIFOSET(sfd, RFIFOW(fd,2) );
+
+ flush_fifo(sfd);
+
+ do_close(sfd);
+
+ RFIFOSKIP(fd, RFIFOW(fd,2) );/* skip this packet */
+ RFIFOFLUSH(fd);
+}
+
+void char_parse_frommap_scdata_update(int fd)
+{
+ int account_id = RFIFOL(fd, 2);
+ int char_id = RFIFOL(fd, 6);
+ int val1 = RFIFOL(fd, 12);
+ int val2 = RFIFOL(fd, 16);
+ int val3 = RFIFOL(fd, 20);
+ int val4 = RFIFOL(fd, 24);
+ short type = RFIFOW(fd, 10);
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`account_id`,`char_id`,`type`,`tick`,`val1`,`val2`,`val3`,`val4`) VALUES ('%d','%d','%d',-1,'%d','%d','%d','%d')",
+ scdata_db, account_id, char_id, type, val1, val2, val3, val4) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ RFIFOSKIP(fd, 28);
+}
+
+void char_parse_frommap_scdata_delete(int fd)
+{
+ int account_id = RFIFOL(fd, 2);
+ int char_id = RFIFOL(fd, 6);
+ short type = RFIFOW(fd, 10);
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id` = '%d' AND `type` = '%d' LIMIT 1",
+ scdata_db, account_id, char_id, type) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ RFIFOSKIP(fd, 12);
+}
+
+int char_parse_frommap(int fd)
+{
+ int i;
int id;
- ARR_FIND( 0, ARRAYLENGTH(server), id, server[id].fd == fd );
- if( id == ARRAYLENGTH(server) ) {// not a map server
- ShowDebug("parse_frommap: Disconnecting invalid session #%d (is not a map-server)\n", fd);
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), id, chr->server[id].fd == fd );
+ if( id == ARRAYLENGTH(chr->server) ) {// not a map server
+ ShowDebug("chr->parse_frommap: Disconnecting invalid session #%d (is not a map-server)\n", fd);
do_close(fd);
return 0;
}
if( session[fd]->flag.eof ) {
do_close(fd);
- server[id].fd = -1;
- mapif_on_disconnect(id);
+ chr->server[id].fd = -1;
+ mapif->on_disconnect(id);
return 0;
}
while(RFIFOREST(fd) >= 2) {
-
if( HPM->packetsc[hpParse_FromMap] ) {
if( (i = HPM->parse_packets(fd,hpParse_FromMap)) ) {
if( i == 1 ) continue;
if( i == 2 ) return 0;
}
}
-
- switch(RFIFOW(fd,0)) {
+ switch(RFIFOW(fd,0)) {
case 0x2b0a:
if( RFIFOREST(fd) < RFIFOW(fd, 2) )
return 0;
- sockt->datasync(fd, false);
- RFIFOSKIP(fd,RFIFOW(fd,2));
+ chr->parse_frommap_datasync(fd);
break;
case 0x2b0b:
if( RFIFOREST(fd) < RFIFOW(fd, 2) )
return 0;
- memset(&skillid2idx, 0, sizeof(skillid2idx));
- j = RFIFOW(fd, 2) - 4;
- if( j )
- j /= 4;
- for(i = 0; i < j; i++) {
- if( RFIFOW(fd, 4 + (i*4)) > MAX_SKILL_ID ) {
- ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n",RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)),RFIFOW(fd, 4 + (i*4)),MAX_SKILL_ID);
- continue;
- }
- skillid2idx[RFIFOW(fd, 4 + (i*4))] = RFIFOW(fd, 6 + (i*4));
- }
- RFIFOSKIP(fd, RFIFOW(fd, 2));
+ chr->parse_frommap_skillid2idx(fd);
break;
case 0x2afa: // Receiving map names list from the map-server
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
- if( server[id].map != NULL ) { aFree(server[id].map); server[id].map = NULL; }
-
- server[id].maps = ( RFIFOW(fd, 2) - 4 ) / 4;
- CREATE(server[id].map, unsigned short, server[id].maps);
-
- j = 0;
- for(i = 4; i < RFIFOW(fd,2); i += 4) {
- server[id].map[j] = RFIFOW(fd,i);
- j++;
- }
-
- ShowStatus("Map-Server %d connected: %d maps, from IP %d.%d.%d.%d port %d.\n",
- id, j, CONVIP(server[id].ip), server[id].port);
- ShowStatus("Map-server %d loading complete.\n", id);
-
- // send name for wisp to player
- WFIFOHEAD(fd, 3 + NAME_LENGTH);
- WFIFOW(fd,0) = 0x2afb;
- WFIFOB(fd,2) = 0;
- memcpy(WFIFOP(fd,3), wisp_server_name, NAME_LENGTH);
- WFIFOSET(fd,3+NAME_LENGTH);
-
- char_send_fame_list(fd); //Send fame list.
-
- {
- unsigned char buf[16384];
- int x;
- if (j == 0) {
- ShowWarning("Map-server %d has NO maps.\n", id);
- } else {
- // Transmitting maps information to the other map-servers
- WBUFW(buf,0) = 0x2b04;
- WBUFW(buf,2) = j * 4 + 10;
- WBUFL(buf,4) = htonl(server[id].ip);
- WBUFW(buf,8) = htons(server[id].port);
- memcpy(WBUFP(buf,10), RFIFOP(fd,4), j * 4);
- mapif_sendallwos(fd, buf, WBUFW(buf,2));
- }
- // Transmitting the maps of the other map-servers to the new map-server
- for(x = 0; x < ARRAYLENGTH(server); x++) {
- if (server[x].fd > 0 && x != id) {
- WFIFOHEAD(fd,10 +4*ARRAYLENGTH(server[x].map));
- WFIFOW(fd,0) = 0x2b04;
- WFIFOL(fd,4) = htonl(server[x].ip);
- WFIFOW(fd,8) = htons(server[x].port);
- j = 0;
- for(i = 0; i < ARRAYLENGTH(server[x].map); i++)
- if (server[x].map[i])
- WFIFOW(fd,10+(j++)*4) = server[x].map[i];
- if (j > 0) {
- WFIFOW(fd,2) = j * 4 + 10;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
- }
- }
- }
- RFIFOSKIP(fd,RFIFOW(fd,2));
+ chr->parse_frommap_map_names(fd, id);
break;
case 0x2afc: //Packet command is now used for sc_data request. [Skotlex]
if (RFIFOREST(fd) < 10)
return 0;
{
- #ifdef ENABLE_SC_SAVING
- int aid, cid;
- aid = RFIFOL(fd,2);
- cid = RFIFOL(fd,6);
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `type`, `tick`, `val1`, `val2`, `val3`, `val4` "
- "FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'",
- scdata_db, aid, cid) )
- {
- Sql_ShowDebug(sql_handle);
- break;
- }
- if( SQL->NumRows(sql_handle) > 0 ) {
- struct status_change_data scdata;
- int count;
- char* data;
-
- WFIFOHEAD(fd,14+50*sizeof(struct status_change_data));
- WFIFOW(fd,0) = 0x2b1d;
- WFIFOL(fd,4) = aid;
- WFIFOL(fd,8) = cid;
- for( count = 0; count < 50 && SQL_SUCCESS == SQL->NextRow(sql_handle); ++count )
- {
- SQL->GetData(sql_handle, 0, &data, NULL); scdata.type = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); scdata.tick = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); scdata.val1 = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); scdata.val2 = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); scdata.val3 = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); scdata.val4 = atoi(data);
- memcpy(WFIFOP(fd, 14+count*sizeof(struct status_change_data)), &scdata, sizeof(struct status_change_data));
- }
- if (count >= 50)
- ShowWarning("Too many status changes for %d:%d, some of them were not loaded.\n", aid, cid);
- if (count > 0) {
- WFIFOW(fd,2) = 14 + count*sizeof(struct status_change_data);
- WFIFOW(fd,12) = count;
- WFIFOSET(fd,WFIFOW(fd,2));
-
- //Clear the data once loaded.
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
- Sql_ShowDebug(sql_handle);
- }
- } else { //no sc (needs a response)
- WFIFOHEAD(fd,14);
- WFIFOW(fd,0) = 0x2b1d;
- WFIFOW(fd,2) = 14;
- WFIFOL(fd,4) = aid;
- WFIFOL(fd,8) = cid;
- WFIFOW(fd,12) = 0;
- WFIFOSET(fd,WFIFOW(fd,2));
- }
- SQL->FreeResult(sql_handle);
- #endif
- RFIFOSKIP(fd, 10);
+ chr->parse_frommap_request_scdata(fd);
}
break;
case 0x2afe: //set MAP user count
if (RFIFOREST(fd) < 4)
return 0;
- if (RFIFOW(fd,2) != server[id].users) {
- server[id].users = RFIFOW(fd,2);
- ShowInfo("User Count: %d (Server: %d)\n", server[id].users, id);
- }
- RFIFOSKIP(fd, 4);
+ chr->parse_frommap_set_users_count(fd, id);
break;
case 0x2aff: //set MAP users
if (RFIFOREST(fd) < 6 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
{
- //TODO: When data mismatches memory, update guild/party online/offline states.
- int aid, cid;
- struct online_char_data* character;
-
- server[id].users = RFIFOW(fd,4);
- online_char_db->foreach(online_char_db,char_db_setoffline,id); //Set all chars from this server as 'unknown'
- for(i = 0; i < server[id].users; i++) {
- aid = RFIFOL(fd,6+i*8);
- cid = RFIFOL(fd,6+i*8+4);
- character = idb_ensure(online_char_db, aid, create_online_char_data);
- if( character->server > -1 && character->server != id )
- {
- ShowNotice("Set map user: Character (%d:%d) marked on map server %d, but map server %d claims to have (%d:%d) online!\n",
- character->account_id, character->char_id, character->server, id, aid, cid);
- mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
- }
- character->server = id;
- character->char_id = cid;
- }
- //If any chars remain in -2, they will be cleaned in the cleanup timer.
- RFIFOSKIP(fd,RFIFOW(fd,2));
+ chr->parse_frommap_set_users(fd, id);
}
break;
@@ -3143,37 +3858,8 @@ int parse_frommap(int fd)
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
{
- int aid = RFIFOL(fd,4), cid = RFIFOL(fd,8), size = RFIFOW(fd,2);
- struct online_char_data* character;
+ chr->parse_frommap_save_character(fd, id);
- if (size - 13 != sizeof(struct mmo_charstatus)) {
- ShowError("parse_from_map (save-char): Size mismatch! %d != %"PRIuS"\n", size-13, sizeof(struct mmo_charstatus));
- RFIFOSKIP(fd,size);
- break;
- }
- //Check account only if this ain't final save. Final-save goes through because of the char-map reconnect
- if (RFIFOB(fd,12) || (
- (character = (struct online_char_data*)idb_get(online_char_db, aid)) != NULL &&
- character->char_id == cid))
- {
- struct mmo_charstatus char_dat;
- memcpy(&char_dat, RFIFOP(fd,13), sizeof(struct mmo_charstatus));
- mmo_char_tosql(cid, &char_dat);
- } else { //This may be valid on char-server reconnection, when re-sending characters that already logged off.
- ShowError("parse_from_map (save-char): Received data for non-existing/offline character (%d:%d).\n", aid, cid);
- set_char_online(id, cid, aid);
- }
-
- if (RFIFOB(fd,12))
- { //Flag, set character offline after saving. [Skotlex]
- set_char_offline(cid, aid);
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x2b21; //Save ack only needed on final save.
- WFIFOL(fd,2) = aid;
- WFIFOL(fd,6) = cid;
- WFIFOSET(fd,10);
- }
- RFIFOSKIP(fd,size);
}
break;
@@ -3181,48 +3867,7 @@ int parse_frommap(int fd)
if( RFIFOREST(fd) < 22 )
return 0;
{
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- uint32 ip = RFIFOL(fd,14);
- int32 group_id = RFIFOL(fd, 18);
- RFIFOSKIP(fd,22);
-
- if( runflag != CHARSERVER_ST_RUNNING )
- {
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x2b03;
- WFIFOL(fd,2) = account_id;
- WFIFOB(fd,6) = 0;// not ok
- WFIFOSET(fd,7);
- }
- else
- {
- struct auth_node* node;
-
- // create temporary auth entry
- CREATE(node, struct auth_node, 1);
- node->account_id = account_id;
- node->char_id = 0;
- node->login_id1 = login_id1;
- node->login_id2 = login_id2;
- node->group_id = group_id;
- //node->sex = 0;
- node->ip = ntohl(ip);
- /* sounds troublesome. */
- //node->expiration_time = 0; // unlimited/unknown time by default (not display in map-server)
- //node->gmlevel = 0;
- idb_put(auth_db, account_id, node);
-
- //Set char to "@ char select" in online db [Kevin]
- set_char_charselect(account_id);
-
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x2b03;
- WFIFOL(fd,2) = account_id;
- WFIFOB(fd,6) = 1;// ok
- WFIFOSET(fd,7);
- }
+ chr->parse_frommap_char_select_req(fd);
}
break;
@@ -3230,63 +3875,7 @@ int parse_frommap(int fd)
if (RFIFOREST(fd) < 39)
return 0;
{
- int map_id, map_fd = -1;
- struct mmo_charstatus* char_data;
- struct mmo_charstatus char_dat;
-
- map_id = search_mapserver(RFIFOW(fd,18), ntohl(RFIFOL(fd,24)), ntohs(RFIFOW(fd,28))); //Locate mapserver by ip and port.
- if (map_id >= 0)
- map_fd = server[map_id].fd;
- //Char should just had been saved before this packet, so this should be safe. [Skotlex]
- char_data = (struct mmo_charstatus*)uidb_get(char_db_,RFIFOL(fd,14));
- if (char_data == NULL) { //Really shouldn't happen.
- mmo_char_fromsql(RFIFOL(fd,14), &char_dat, true);
- char_data = (struct mmo_charstatus*)uidb_get(char_db_,RFIFOL(fd,14));
- }
-
- if( runflag == CHARSERVER_ST_RUNNING &&
- session_isActive(map_fd) &&
- char_data )
- { //Send the map server the auth of this player.
- struct online_char_data* data;
- struct auth_node* node;
-
- //Update the "last map" as this is where the player must be spawned on the new map server.
- char_data->last_point.map = RFIFOW(fd,18);
- char_data->last_point.x = RFIFOW(fd,20);
- char_data->last_point.y = RFIFOW(fd,22);
- char_data->sex = RFIFOB(fd,30);
-
- // create temporary auth entry
- CREATE(node, struct auth_node, 1);
- node->account_id = RFIFOL(fd,2);
- node->char_id = RFIFOL(fd,14);
- node->login_id1 = RFIFOL(fd,6);
- node->login_id2 = RFIFOL(fd,10);
- node->sex = RFIFOB(fd,30);
- node->expiration_time = 0; // FIXME (this thing isn't really supported we could as well purge it instead of fixing)
- node->ip = ntohl(RFIFOL(fd,31));
- node->group_id = RFIFOL(fd,35);
- node->changing_mapservers = 1;
- idb_put(auth_db, RFIFOL(fd,2), node);
-
- data = idb_ensure(online_char_db, RFIFOL(fd,2), create_online_char_data);
- data->char_id = char_data->char_id;
- data->server = map_id; //Update server where char is.
-
- //Reply with an ack.
- WFIFOHEAD(fd,30);
- WFIFOW(fd,0) = 0x2b06;
- memcpy(WFIFOP(fd,2), RFIFOP(fd,2), 28);
- WFIFOSET(fd,30);
- } else { //Reply with nak
- WFIFOHEAD(fd,30);
- WFIFOW(fd,0) = 0x2b06;
- memcpy(WFIFOP(fd,2), RFIFOP(fd,2), 28);
- WFIFOL(fd,6) = 0; //Set login1 to 0.
- WFIFOSET(fd,30);
- }
- RFIFOSKIP(fd,39);
+ chr->parse_frommap_change_map_server(fd);
}
break;
@@ -3294,15 +3883,7 @@ int parse_frommap(int fd)
if (RFIFOREST(fd) < 10)
return 0;
{
- int char_id, friend_id;
- char_id = RFIFOL(fd,2);
- friend_id = RFIFOL(fd,6);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id`='%d' AND `friend_id`='%d' LIMIT 1",
- friend_db, char_id, friend_id) ) {
- Sql_ShowDebug(sql_handle);
- break;
- }
- RFIFOSKIP(fd,10);
+ chr->parse_frommap_remove_friend(fd);
}
break;
@@ -3310,182 +3891,20 @@ int parse_frommap(int fd)
if (RFIFOREST(fd) < 6)
return 0;
- WFIFOHEAD(fd,30);
- WFIFOW(fd,0) = 0x2b09;
- WFIFOL(fd,2) = RFIFOL(fd,2);
- char_loadName((int)RFIFOL(fd,2), (char*)WFIFOP(fd,6));
- WFIFOSET(fd,30);
-
- RFIFOSKIP(fd,6);
+ chr->parse_frommap_char_name_request(fd);
break;
case 0x2b0c: // Map server send information to change an email of an account -> login-server
if (RFIFOREST(fd) < 86)
return 0;
- if (login_fd > 0) { // don't send request if no login-server
- WFIFOHEAD(login_fd,86);
- memcpy(WFIFOP(login_fd,0), RFIFOP(fd,0),86); // 0x2722 <account_id>.L <actual_e-mail>.40B <new_e-mail>.40B
- WFIFOW(login_fd,0) = 0x2722;
- WFIFOSET(login_fd,86);
- }
- RFIFOSKIP(fd, 86);
+ chr->parse_frommap_change_email(fd);
break;
case 0x2b0e: // Request from map-server to change an account's or character's status (accounts will just be forwarded to login server)
if (RFIFOREST(fd) < 44)
return 0;
{
- int result = 0; // 0-login-server request done, 1-player not found, 2-gm level too low, 3-login-server offline
- char esc_name[NAME_LENGTH*2+1];
-
- int acc = RFIFOL(fd,2); // account_id of who ask (-1 if server itself made this request)
- const char* name = (char*)RFIFOP(fd,6); // name of the target character
- int type = RFIFOW(fd,30); // type of operation: 1-block, 2-ban, 3-unblock, 4-unban, 5 changesex, 6 charban, 7 charunban
- short year = RFIFOW(fd,32);
- short month = RFIFOW(fd,34);
- short day = RFIFOW(fd,36);
- short hour = RFIFOW(fd,38);
- short minute = RFIFOW(fd,40);
- short second = RFIFOW(fd,42);
- RFIFOSKIP(fd,44);
-
- SQL->EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
-
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`char_id`,`unban_time` FROM `%s` WHERE `name` = '%s'", char_db, esc_name) )
- Sql_ShowDebug(sql_handle);
- else if( SQL->NumRows(sql_handle) == 0 ) {
- result = 1; // 1-player not found
- } else if( SQL_SUCCESS != SQL->NextRow(sql_handle) ) {
- Sql_ShowDebug(sql_handle);
- result = 1; // 1-player not found
- } else {
- int account_id, char_id;
- char* data;
- time_t unban_time;
-
- SQL->GetData(sql_handle, 0, &data, NULL); account_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); char_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); unban_time = atol(data);
-
- if( login_fd <= 0 )
- result = 3; // 3-login-server offline
- //FIXME: need to move this check to login server [ultramage]
- // else
- // if( acc != -1 && isGM(acc) < isGM(account_id) )
- // result = 2; // 2-gm level too low
- else {
- switch( type ) {
- case 1: // block
- WFIFOHEAD(login_fd,10);
- WFIFOW(login_fd,0) = 0x2724;
- WFIFOL(login_fd,2) = account_id;
- WFIFOL(login_fd,6) = 5; // new account status
- WFIFOSET(login_fd,10);
- break;
- case 2: // ban
- WFIFOHEAD(login_fd,18);
- WFIFOW(login_fd, 0) = 0x2725;
- WFIFOL(login_fd, 2) = account_id;
- WFIFOW(login_fd, 6) = year;
- WFIFOW(login_fd, 8) = month;
- WFIFOW(login_fd,10) = day;
- WFIFOW(login_fd,12) = hour;
- WFIFOW(login_fd,14) = minute;
- WFIFOW(login_fd,16) = second;
- WFIFOSET(login_fd,18);
- break;
- case 3: // unblock
- WFIFOHEAD(login_fd,10);
- WFIFOW(login_fd,0) = 0x2724;
- WFIFOL(login_fd,2) = account_id;
- WFIFOL(login_fd,6) = 0; // new account status
- WFIFOSET(login_fd,10);
- break;
- case 4: // unban
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x272a;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
- break;
- case 5: // changesex
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x2727;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
- break;
- case 6: //char ban
- /* handled by char server, so no redirection */
- {
- time_t timestamp;
- struct tm *tmtime;
- SqlStmt* stmt = SQL->StmtMalloc(sql_handle);
-
- if (unban_time == 0 || unban_time < time(NULL))
- timestamp = time(NULL); // new ban
- else
- timestamp = unban_time; // add to existing ban
-
- tmtime = localtime(&timestamp);
- tmtime->tm_year = tmtime->tm_year + year;
- tmtime->tm_mon = tmtime->tm_mon + month;
- tmtime->tm_mday = tmtime->tm_mday + day;
- tmtime->tm_hour = tmtime->tm_hour + hour;
- tmtime->tm_min = tmtime->tm_min + minute;
- tmtime->tm_sec = tmtime->tm_sec + second;
- timestamp = mktime(tmtime);
-
- if( SQL_SUCCESS != SQL->StmtPrepare(stmt,
- "UPDATE `%s` SET `unban_time` = ? WHERE `char_id` = ? LIMIT 1",
- char_db)
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_LONG, (void*)&timestamp, sizeof(timestamp))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_INT, (void*)&char_id, sizeof(char_id))
- || SQL_SUCCESS != SQL->StmtExecute(stmt)
-
- ) {
- SqlStmt_ShowDebug(stmt);
- }
-
- SQL->StmtFree(stmt);
-
- // condition applies; send to all map-servers to disconnect the player
- if( timestamp > time(NULL) ) {
- unsigned char buf[11];
-
- WBUFW(buf,0) = 0x2b14;
- WBUFL(buf,2) = char_id;
- WBUFB(buf,6) = 2;
- WBUFL(buf,7) = (unsigned int)timestamp;
- mapif_sendall(buf, 11);
-
- // disconnect player if online on char-server
- disconnect_player(account_id);
- }
- }
- break;
- case 7: //char unban
- /* handled by char server, so no redirection */
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `unban_time` = '0' WHERE `char_id` = '%d' LIMIT 1", char_db, char_id) ) {
- Sql_ShowDebug(sql_handle);
- result = 1;
- }
- break;
-
- }
- }
- }
-
- SQL->FreeResult(sql_handle);
-
- // send answer if a player ask, not if the server ask
- if( acc != -1 && type != 5 ) { // Don't send answer for changesex
- WFIFOHEAD(fd,34);
- WFIFOW(fd, 0) = 0x2b0f;
- WFIFOL(fd, 2) = acc;
- safestrncpy((char*)WFIFOP(fd,6), name, NAME_LENGTH);
- WFIFOW(fd,30) = type;
- WFIFOW(fd,32) = result;
- WFIFOSET(fd,34);
- }
+ chr->parse_frommap_change_account(fd);
}
break;
@@ -3493,49 +3912,7 @@ int parse_frommap(int fd)
if (RFIFOREST(fd) < 11)
return 0;
{
- int cid = RFIFOL(fd, 2);
- int fame = RFIFOL(fd, 6);
- char type = RFIFOB(fd, 10);
- int size;
- struct fame_list* list;
- int player_pos;
- int fame_pos;
-
- switch(type) {
- case RANKTYPE_BLACKSMITH: size = fame_list_size_smith; list = smith_fame_list; break;
- case RANKTYPE_ALCHEMIST: size = fame_list_size_chemist; list = chemist_fame_list; break;
- case RANKTYPE_TAEKWON: size = fame_list_size_taekwon; list = taekwon_fame_list; break;
- default: size = 0; list = NULL; break;
- }
-
- ARR_FIND(0, size, player_pos, list[player_pos].id == cid);// position of the player
- ARR_FIND(0, size, fame_pos, list[fame_pos].fame <= fame);// where the player should be
-
- if( player_pos == size && fame_pos == size )
- ;// not on list and not enough fame to get on it
- else if( fame_pos == player_pos ) {
- // same position
- list[player_pos].fame = fame;
- char_update_fame_list(type, player_pos, fame);
- } else {
- // move in the list
- if( player_pos == size ) {
- // new ranker - not in the list
- ARR_MOVE(size - 1, fame_pos, list, struct fame_list);
- list[fame_pos].id = cid;
- list[fame_pos].fame = fame;
- char_loadName(cid, list[fame_pos].name);
- } else {
- // already in the list
- if( fame_pos == size )
- --fame_pos;// move to the end of the list
- ARR_MOVE(player_pos, fame_pos, list, struct fame_list);
- list[fame_pos].fame = fame;
- }
- char_send_fame_list(-1);
- }
-
- RFIFOSKIP(fd,11);
+ chr->parse_frommap_fame_list(fd);
}
break;
@@ -3544,96 +3921,49 @@ int parse_frommap(int fd)
if( RFIFOREST(fd) < 10 )
return 0;
- divorce_char_sql(RFIFOL(fd,2), RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
+ chr->parse_frommap_divorce_char(fd);
break;
case 0x2b16: // Receive rates [Wizputer]
if( RFIFOREST(fd) < 14 )
return 0;
{
- char esc_server_name[sizeof(server_name)*2+1];
-
- SQL->EscapeString(sql_handle, esc_server_name, server_name);
-
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` SET `index`='%d',`name`='%s',`exp`='%d',`jexp`='%d',`drop`='%d'",
- ragsrvinfo_db, fd, esc_server_name, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)) )
- Sql_ShowDebug(sql_handle);
- RFIFOSKIP(fd,14);
+ chr->parse_frommap_ragsrvinfo(fd);
}
break;
case 0x2b17: // Character disconnected set online 0 [Wizputer]
if (RFIFOREST(fd) < 6)
return 0;
- set_char_offline(RFIFOL(fd,2),RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
+ chr->parse_frommap_set_char_offline(fd);
break;
case 0x2b18: // Reset all chars to offline [Wizputer]
- set_all_offline(id);
- RFIFOSKIP(fd,2);
+ chr->parse_frommap_set_all_offline(fd, id);
break;
case 0x2b19: // Character set online [Wizputer]
if (RFIFOREST(fd) < 10)
return 0;
- set_char_online(id, RFIFOL(fd,2),RFIFOL(fd,6));
- RFIFOSKIP(fd,10);
+ chr->parse_frommap_set_char_online(fd, id);
break;
case 0x2b1a: // Build and send fame ranking lists [DracoRPG]
if (RFIFOREST(fd) < 2)
return 0;
- char_read_fame_list();
- char_send_fame_list(-1);
- RFIFOSKIP(fd,2);
+ chr->parse_frommap_build_fame_list(fd);
break;
case 0x2b1c: //Request to save status change data. [Skotlex]
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
{
- #ifdef ENABLE_SC_SAVING
- int count, aid, cid;
-
- aid = RFIFOL(fd, 4);
- cid = RFIFOL(fd, 8);
- count = RFIFOW(fd, 12);
-
- /* clear; ensure no left overs e.g. permanent */
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
- Sql_ShowDebug(sql_handle);
-
- if( count > 0 )
- {
- struct status_change_data data;
- StringBuf buf;
-
- StrBuf->Init(&buf);
- StrBuf->Printf(&buf, "INSERT INTO `%s` (`account_id`, `char_id`, `type`, `tick`, `val1`, `val2`, `val3`, `val4`) VALUES ", scdata_db);
- for( i = 0; i < count; ++i )
- {
- memcpy (&data, RFIFOP(fd, 14+i*sizeof(struct status_change_data)), sizeof(struct status_change_data));
- if( i > 0 )
- StrBuf->AppendStr(&buf, ", ");
- StrBuf->Printf(&buf, "('%d','%d','%hu','%d','%d','%d','%d','%d')", aid, cid,
- data.type, data.tick, data.val1, data.val2, data.val3, data.val4);
- }
- if( SQL_ERROR == SQL->QueryStr(sql_handle, StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
- StrBuf->Destroy(&buf);
- }
- #endif
- RFIFOSKIP(fd, RFIFOW(fd, 2));
+ chr->parse_frommap_save_status_change_data(fd);
}
break;
case 0x2b23: // map-server alive packet
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x2b24;
- WFIFOSET(fd,2);
- RFIFOSKIP(fd,2);
+ chr->parse_frommap_ping(fd);
break;
case 0x2b26: // auth request from map-server
@@ -3641,148 +3971,29 @@ int parse_frommap(int fd)
return 0;
{
- int account_id;
- int char_id;
- int login_id1;
- char sex, standalone;
- uint32 ip;
- struct auth_node* node;
- struct mmo_charstatus* cd;
- struct mmo_charstatus char_dat;
-
- account_id = RFIFOL(fd,2);
- char_id = RFIFOL(fd,6);
- login_id1 = RFIFOL(fd,10);
- sex = RFIFOB(fd,14);
- ip = ntohl(RFIFOL(fd,15));
- standalone = RFIFOB(fd, 19);
- RFIFOSKIP(fd,20);
-
- node = (struct auth_node*)idb_get(auth_db, account_id);
- cd = (struct mmo_charstatus*)uidb_get(char_db_,char_id);
-
- if( cd == NULL ) { //Really shouldn't happen.
- mmo_char_fromsql(char_id, &char_dat, true);
- cd = (struct mmo_charstatus*)uidb_get(char_db_,char_id);
- }
-
- if( runflag == CHARSERVER_ST_RUNNING && cd && standalone ) {
- cd->sex = sex;
-
- WFIFOHEAD(fd,25 + sizeof(struct mmo_charstatus));
- WFIFOW(fd,0) = 0x2afd;
- WFIFOW(fd,2) = 25 + sizeof(struct mmo_charstatus);
- WFIFOL(fd,4) = account_id;
- WFIFOL(fd,8) = 0;
- WFIFOL(fd,12) = 0;
- WFIFOL(fd,16) = 0;
- WFIFOL(fd,20) = 0;
- WFIFOB(fd,24) = 0;
- memcpy(WFIFOP(fd,25), cd, sizeof(struct mmo_charstatus));
- WFIFOSET(fd, WFIFOW(fd,2));
-
- set_char_online(id, char_id, account_id);
- break;
- }
-
- if( runflag == CHARSERVER_ST_RUNNING &&
- cd != NULL &&
- node != NULL &&
- node->account_id == account_id &&
- node->char_id == char_id &&
- node->login_id1 == login_id1 &&
- node->sex == sex /*&&
- node->ip == ip*/ )
- {// auth ok
- cd->sex = sex;
-
- WFIFOHEAD(fd,25 + sizeof(struct mmo_charstatus));
- WFIFOW(fd,0) = 0x2afd;
- WFIFOW(fd,2) = 25 + sizeof(struct mmo_charstatus);
- WFIFOL(fd,4) = account_id;
- WFIFOL(fd,8) = node->login_id1;
- WFIFOL(fd,12) = node->login_id2;
- WFIFOL(fd,16) = (uint32)node->expiration_time; // FIXME: will wrap to negative after "19-Jan-2038, 03:14:07 AM GMT"
- WFIFOL(fd,20) = node->group_id;
- WFIFOB(fd,24) = node->changing_mapservers;
- memcpy(WFIFOP(fd,25), cd, sizeof(struct mmo_charstatus));
- WFIFOSET(fd, WFIFOW(fd,2));
-
- // only use the auth once and mark user online
- idb_remove(auth_db, account_id);
- set_char_online(id, char_id, account_id);
- }
- else
- {// auth failed
- WFIFOHEAD(fd,19);
- WFIFOW(fd,0) = 0x2b27;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = char_id;
- WFIFOL(fd,10) = login_id1;
- WFIFOB(fd,14) = sex;
- WFIFOL(fd,15) = htonl(ip);
- WFIFOSET(fd,19);
- }
+ chr->parse_frommap_auth_request(fd, id);
}
break;
case 0x2736: // ip address update
if (RFIFOREST(fd) < 6) return 0;
- server[id].ip = ntohl(RFIFOL(fd, 2));
- ShowInfo("Updated IP address of map-server #%d to %d.%d.%d.%d.\n", id, CONVIP(server[id].ip));
- RFIFOSKIP(fd,6);
+ chr->parse_frommap_update_ip(fd, id);
break;
case 0x3008:
if( RFIFOREST(fd) < RFIFOW(fd,4) )
return 0;/* packet wasn't fully received yet (still fragmented) */
else {
- int sfd;/* stat server fd */
- struct hSockOpt opt;
- RFIFOSKIP(fd, 2);/* we skip first 2 bytes which are the 0x3008, so we end up with a buffer equal to the one we send */
-
- opt.silent = 1;
- opt.setTimeo = 1;
-
- if( (sfd = make_connection(host2ip("stats.hercules.ws"),(uint16)25427,&opt) ) == -1 ) {
- RFIFOSKIP(fd, RFIFOW(fd,2) );/* skip this packet */
- RFIFOFLUSH(fd);
- break;/* connection not possible, we drop the report */
- }
-
- session[sfd]->flag.server = 1;/* to ensure we won't drop our own packet */
- realloc_fifo(sfd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
- WFIFOHEAD(sfd, RFIFOW(fd,2) );
-
- memcpy((char*)WFIFOP(sfd,0), (char*)RFIFOP(fd, 0), RFIFOW(fd,2));
-
- WFIFOSET(sfd, RFIFOW(fd,2) );
-
- flush_fifo(sfd);
-
- do_close(sfd);
-
- RFIFOSKIP(fd, RFIFOW(fd,2) );/* skip this packet */
- RFIFOFLUSH(fd);
+ chr->parse_frommap_request_stats_report(fd);
}
break;
-
+
/* individual sc data insertion/update */
case 0x2740:
if( RFIFOREST(fd) < 28 )
return 0;
else {
- int account_id = RFIFOL(fd, 2), char_id = RFIFOL(fd, 6),
- val1 = RFIFOL(fd, 12), val2 = RFIFOL(fd, 16),
- val3 = RFIFOL(fd, 20), val4 = RFIFOL(fd, 24);
- short type = RFIFOW(fd, 10);
-
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`account_id`,`char_id`,`type`,`tick`,`val1`,`val2`,`val3`,`val4`) VALUES ('%d','%d','%d',-1,'%d','%d','%d','%d')",
- scdata_db, account_id, char_id, type, val1, val2, val3, val4) )
- Sql_ShowDebug(sql_handle);
-
- RFIFOSKIP(fd, 28);
+ chr->parse_frommap_scdata_update(fd);
}
break;
@@ -3791,24 +4002,16 @@ int parse_frommap(int fd)
if( RFIFOREST(fd) < 12 )
return 0;
else {
- int account_id = RFIFOL(fd, 2), char_id = RFIFOL(fd, 6);
- short type = RFIFOW(fd, 10);
-
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id` = '%d' AND `type` = '%d' LIMIT 1",
- scdata_db, account_id, char_id, type) )
- Sql_ShowDebug(sql_handle);
-
- RFIFOSKIP(fd, 12);
+ chr->parse_frommap_scdata_delete(fd);
}
break;
-
default:
{
// inter server - packet
- int r = inter_parse_frommap(fd);
- if (r == 1) break; // processed
- if (r == 2) return 0; // need more packet
+ int r = inter->parse_frommap(fd);
+ if (r == 1) break; // processed
+ if (r == 2) return 0; // need more packet
// no inter server packet. no char server packet -> disconnect
ShowError("Unknown packet 0x%04x from map server, disconnecting.\n", RFIFOW(fd,0));
@@ -3824,31 +4027,31 @@ int parse_frommap(int fd)
void do_init_mapif(void)
{
int i;
- for( i = 0; i < ARRAYLENGTH(server); ++i )
- mapif_server_init(i);
+ for( i = 0; i < ARRAYLENGTH(chr->server); ++i )
+ mapif->server_init(i);
}
void do_final_mapif(void)
{
int i;
- for( i = 0; i < ARRAYLENGTH(server); ++i )
- mapif_server_destroy(i);
+ for( i = 0; i < ARRAYLENGTH(chr->server); ++i )
+ mapif->server_destroy(i);
}
// Searches for the mapserver that has a given map (and optionally ip/port, if not -1).
// If found, returns the server's index in the 'server' array (otherwise returns -1).
-int search_mapserver(unsigned short map, uint32 ip, uint16 port)
+int char_search_mapserver(unsigned short map, uint32 ip, uint16 port)
{
int i, j;
- for(i = 0; i < ARRAYLENGTH(server); i++)
+ for(i = 0; i < ARRAYLENGTH(chr->server); i++)
{
- if (server[i].fd > 0
- && (ip == (uint32)-1 || server[i].ip == ip)
- && (port == (uint16)-1 || server[i].port == port))
+ if (chr->server[i].fd > 0
+ && (ip == (uint32)-1 || chr->server[i].ip == ip)
+ && (port == (uint16)-1 || chr->server[i].port == port))
{
- for (j = 0; server[i].map[j]; j++)
- if (server[i].map[j] == map)
+ for (j = 0; chr->server[i].map[j]; j++)
+ if (chr->server[i].map[j] == map)
return i;
}
}
@@ -3859,13 +4062,13 @@ int search_mapserver(unsigned short map, uint32 ip, uint16 port)
// Initialization process (currently only initialization inter_mapif)
static int char_mapif_init(int fd)
{
- return inter_mapif_init(fd);
+ return inter->mapif_init(fd);
}
//--------------------------------------------
// Test to know if an IP come from LAN or WAN.
//--------------------------------------------
-int lan_subnetcheck(uint32 ip)
+int char_lan_subnetcheck(uint32 ip)
{
int i;
ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) );
@@ -3902,6 +4105,14 @@ void char_delete2_ack(int fd, int char_id, uint32 result, time_t delete_date)
WFIFOSET(fd,14);
}
+void char_delete2_accept_actual_ack(int fd, int char_id, uint32 result)
+{
+ WFIFOHEAD(fd,10);
+ WFIFOW(fd,0) = 0x82a;
+ WFIFOL(fd,2) = char_id;
+ WFIFOL(fd,6) = result;
+ WFIFOSET(fd,10);
+}
/// @param result
/// 0 (0x718): An unknown error has occurred.
@@ -3913,22 +4124,15 @@ void char_delete2_ack(int fd, int char_id, uint32 result, time_t delete_date)
/// Any (0x718): An unknown error has occurred.
void char_delete2_accept_ack(int fd, int char_id, uint32 result)
{// HC: <082a>.W <char id>.L <Msg:0-5>.L
-
#if PACKETVER >= 20130000 /* not sure the exact date -- must refresh or client gets stuck */
if( result == 1 ) {
struct char_session_data* sd = (struct char_session_data*)session[fd]->session_data;
- mmo_char_send099d(fd, sd);
+ chr->mmo_char_send099d(fd, sd);
}
#endif
-
- WFIFOHEAD(fd,10);
- WFIFOW(fd,0) = 0x82a;
- WFIFOL(fd,2) = char_id;
- WFIFOL(fd,6) = result;
- WFIFOSET(fd,10);
+ chr->delete2_accept_actual_ack(fd, char_id, result);
}
-
/// @param result
/// 1 (0x718): none/success, (if char id not in deletion process): An unknown error has occurred.
/// 2 (0x719): A database error occurred.
@@ -3942,7 +4146,6 @@ void char_delete2_cancel_ack(int fd, int char_id, uint32 result)
WFIFOSET(fd,10);
}
-
static void char_delete2_req(int fd, struct char_session_data* sd)
{// CH: <0827>.W <char id>.L
int char_id, party_id, guild_id, i;
@@ -3954,21 +4157,21 @@ static void char_delete2_req(int fd, struct char_session_data* sd)
ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == char_id );
if( i == MAX_CHARS )
{// character not found
- char_delete2_ack(fd, char_id, 3, 0);
+ chr->delete2_ack(fd, char_id, 3, 0);
return;
}
- if( SQL_SUCCESS != SQL->Query(sql_handle, "SELECT `delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->Query(inter->sql_handle, "SELECT `delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- Sql_ShowDebug(sql_handle);
- char_delete2_ack(fd, char_id, 3, 0);
+ Sql_ShowDebug(inter->sql_handle);
+ chr->delete2_ack(fd, char_id, 3, 0);
return;
}
- SQL->GetData(sql_handle, 0, &data, NULL); delete_date = strtoul(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); delete_date = strtoul(data, NULL, 10);
if( delete_date ) {// character already queued for deletion
- char_delete2_ack(fd, char_id, 0, 0);
+ chr->delete2_ack(fd, char_id, 0, 0);
return;
}
@@ -3977,26 +4180,26 @@ static void char_delete2_req(int fd, struct char_session_data* sd)
// see issue: 7338
if( char_aegis_delete )
{
- if( SQL_SUCCESS != SQL->Query(sql_handle, "SELECT `party_id`, `guild_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id)
- || SQL_SUCCESS != SQL->NextRow(sql_handle)
+ if( SQL_SUCCESS != SQL->Query(inter->sql_handle, "SELECT `party_id`, `guild_id` FROM `%s` WHERE `char_id`='%d'", char_db, char_id)
+ || SQL_SUCCESS != SQL->NextRow(inter->sql_handle)
)
{
- Sql_ShowDebug(sql_handle);
- char_delete2_ack(fd, char_id, 3, 0);
+ Sql_ShowDebug(inter->sql_handle);
+ chr->delete2_ack(fd, char_id, 3, 0);
return;
}
- SQL->GetData(sql_handle, 0, &data, NULL); party_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); guild_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); party_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); guild_id = atoi(data);
if( guild_id )
{
- char_delete2_ack(fd, char_id, 4, 0);
+ chr->delete2_ack(fd, char_id, 4, 0);
return;
}
if( party_id )
{
- char_delete2_ack(fd, char_id, 5, 0);
+ chr->delete2_ack(fd, char_id, 5, 0);
return;
}
}
@@ -4004,17 +4207,16 @@ static void char_delete2_req(int fd, struct char_session_data* sd)
// success
delete_date = time(NULL)+char_del_delay;
- if( SQL_SUCCESS != SQL->Query(sql_handle, "UPDATE `%s` SET `delete_date`='%lu' WHERE `char_id`='%d'", char_db, (unsigned long)delete_date, char_id) )
+ if( SQL_SUCCESS != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `delete_date`='%lu' WHERE `char_id`='%d'", char_db, (unsigned long)delete_date, char_id) )
{
- Sql_ShowDebug(sql_handle);
- char_delete2_ack(fd, char_id, 3, 0);
+ Sql_ShowDebug(inter->sql_handle);
+ chr->delete2_ack(fd, char_id, 3, 0);
return;
}
- char_delete2_ack(fd, char_id, 1, delete_date);
+ chr->delete2_ack(fd, char_id, 1, delete_date);
}
-
static void char_delete2_accept(int fd, struct char_session_data* sd)
{// CH: <0829>.W <char id>.L <birth date:YYMMDD>.6B
char birthdate[8+1];
@@ -4041,51 +4243,50 @@ static void char_delete2_accept(int fd, struct char_session_data* sd)
ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == char_id );
if( i == MAX_CHARS )
{// character not found
- char_delete2_accept_ack(fd, char_id, 3);
+ chr->delete2_accept_ack(fd, char_id, 3);
return;
}
- if( SQL_SUCCESS != SQL->Query(sql_handle, "SELECT `base_level`,`delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->Query(inter->sql_handle, "SELECT `base_level`,`delete_date` FROM `%s` WHERE `char_id`='%d'", char_db, char_id) || SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{// data error
- Sql_ShowDebug(sql_handle);
- char_delete2_accept_ack(fd, char_id, 3);
+ Sql_ShowDebug(inter->sql_handle);
+ chr->delete2_accept_ack(fd, char_id, 3);
return;
}
- SQL->GetData(sql_handle, 0, &data, NULL); base_level = (unsigned int)strtoul(data, NULL, 10);
- SQL->GetData(sql_handle, 1, &data, NULL); delete_date = strtoul(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); base_level = (unsigned int)strtoul(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); delete_date = strtoul(data, NULL, 10);
if( !delete_date || delete_date>time(NULL) )
{// not queued or delay not yet passed
- char_delete2_accept_ack(fd, char_id, 4);
+ chr->delete2_accept_ack(fd, char_id, 4);
return;
}
if( strcmp(sd->birthdate+2, birthdate) ) // +2 to cut off the century
{// birth date is wrong
- char_delete2_accept_ack(fd, char_id, 5);
+ chr->delete2_accept_ack(fd, char_id, 5);
return;
}
if( ( char_del_level > 0 && base_level >= (unsigned int)char_del_level ) || ( char_del_level < 0 && base_level <= (unsigned int)(-char_del_level) ) )
{// character level config restriction
- char_delete2_accept_ack(fd, char_id, 2);
+ chr->delete2_accept_ack(fd, char_id, 2);
return;
}
// success
- if( delete_char_sql(char_id) < 0 )
+ if( chr->delete_char_sql(char_id) < 0 )
{
- char_delete2_accept_ack(fd, char_id, 3);
+ chr->delete2_accept_ack(fd, char_id, 3);
return;
}
// refresh character list cache
sd->found_char[i] = -1;
-
- char_delete2_accept_ack(fd, char_id, 1);
-}
+ chr->delete2_accept_ack(fd, char_id, 1);
+}
static void char_delete2_cancel(int fd, struct char_session_data* sd)
{// CH: <082b>.W <char id>.L
@@ -4096,47 +4297,668 @@ static void char_delete2_cancel(int fd, struct char_session_data* sd)
ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == char_id );
if( i == MAX_CHARS )
{// character not found
- char_delete2_cancel_ack(fd, char_id, 2);
+ chr->delete2_cancel_ack(fd, char_id, 2);
return;
}
// there is no need to check, whether or not the character was
// queued for deletion, as the client prints an error message by
- // itself, if it was not the case (@see char_delete2_cancel_ack)
- if( SQL_SUCCESS != SQL->Query(sql_handle, "UPDATE `%s` SET `delete_date`='0' WHERE `char_id`='%d'", char_db, char_id) )
+ // itself, if it was not the case (@see chr->delete2_cancel_ack)
+ if( SQL_SUCCESS != SQL->Query(inter->sql_handle, "UPDATE `%s` SET `delete_date`='0' WHERE `char_id`='%d'", char_db, char_id) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ chr->delete2_cancel_ack(fd, char_id, 2);
+ return;
+ }
+
+ chr->delete2_cancel_ack(fd, char_id, 1);
+}
+
+void char_send_account_id(int fd, int account_id)
+{
+ WFIFOHEAD(fd,4);
+ WFIFOL(fd,0) = account_id;
+ WFIFOSET(fd,4);
+}
+
+void char_parse_char_connect(int fd, struct char_session_data* sd, uint32 ipl)
+{
+ int account_id = RFIFOL(fd,2);
+ uint32 login_id1 = RFIFOL(fd,6);
+ uint32 login_id2 = RFIFOL(fd,10);
+ int sex = RFIFOB(fd,16);
+ struct char_auth_node* node;
+
+ RFIFOSKIP(fd,17);
+
+ ShowInfo("request connect - account_id:%d/login_id1:%d/login_id2:%d\n", account_id, login_id1, login_id2);
+
+ if (sd) {
+ //Received again auth packet for already authenticated account?? Discard it.
+ //TODO: Perhaps log this as a hack attempt?
+ //TODO: and perhaps send back a reply?
+ return;
+ }
+
+ CREATE(session[fd]->session_data, struct char_session_data, 1);
+ sd = (struct char_session_data*)session[fd]->session_data;
+ sd->account_id = account_id;
+ sd->login_id1 = login_id1;
+ sd->login_id2 = login_id2;
+ sd->sex = sex;
+ sd->auth = false; // not authed yet
+
+ // send back account_id
+ chr->send_account_id(fd, account_id);
+
+ if( runflag != CHARSERVER_ST_RUNNING ) {
+ chr->auth_error(fd, 0);
+ return;
+ }
+
+ // search authentication
+ node = (struct char_auth_node*)idb_get(auth_db, account_id);
+ if( node != NULL &&
+ node->account_id == account_id &&
+ node->login_id1 == login_id1 &&
+ node->login_id2 == login_id2 /*&&
+ node->ip == ipl*/ )
+ {// authentication found (coming from map server)
+ /* restrictions apply */
+ if( chr->server_type == CST_MAINTENANCE && node->group_id < char_maintenance_min_group_id ) {
+ chr->auth_error(fd, 0);
+ return;
+ }
+ /* the client will already deny this request, this check is to avoid someone bypassing. */
+ if( chr->server_type == CST_PAYING && (time_t)node->expiration_time < time(NULL) ) {
+ chr->auth_error(fd, 0);
+ return;
+ }
+ idb_remove(auth_db, account_id);
+ chr->auth_ok(fd, sd);
+ }
+ else
+ {// authentication not found (coming from login server)
+ if (chr->login_fd > 0) { // don't send request if no login-server
+ loginif->auth(fd, sd, ipl);
+ } else { // if no login-server, we must refuse connection
+ chr->auth_error(fd, 0);
+ }
+ }
+}
+
+void char_send_map_info(int fd, int i, uint32 subnet_map_ip, struct mmo_charstatus *cd)
+{
+ WFIFOHEAD(fd,28);
+ WFIFOW(fd,0) = 0x71;
+ WFIFOL(fd,2) = cd->char_id;
+ mapindex->getmapname_ext(mapindex_id2name(cd->last_point.map), (char*)WFIFOP(fd,6));
+ WFIFOL(fd,22) = htonl((subnet_map_ip) ? subnet_map_ip : chr->server[i].ip);
+ WFIFOW(fd,26) = ntows(htons(chr->server[i].port)); // [!] LE byte order here [!]
+ WFIFOSET(fd,28);
+}
+
+void char_send_wait_char_server(int fd)
+{
+ WFIFOHEAD(fd, 24);
+ WFIFOW(fd, 0) = 0x840;
+ WFIFOW(fd, 2) = 24;
+ safestrncpy((char*)WFIFOP(fd,4), "0", 20);/* we can't send empty (otherwise the list will pop up) */
+ WFIFOSET(fd, 24);
+}
+
+int char_search_default_maps_mapserver(struct mmo_charstatus *cd)
+{
+ int i;
+ int j;
+ if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_PRONTERA)),-1,-1)) >= 0) {
+ cd->last_point.x = 273;
+ cd->last_point.y = 354;
+ } else if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_GEFFEN)),-1,-1)) >= 0) {
+ cd->last_point.x = 120;
+ cd->last_point.y = 100;
+ } else if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_MORROC)),-1,-1)) >= 0) {
+ cd->last_point.x = 160;
+ cd->last_point.y = 94;
+ } else if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_ALBERTA)),-1,-1)) >= 0) {
+ cd->last_point.x = 116;
+ cd->last_point.y = 57;
+ } else if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_PAYON)),-1,-1)) >= 0) {
+ cd->last_point.x = 87;
+ cd->last_point.y = 117;
+ } else if ((i = chr->search_mapserver((j=mapindex->name2id(MAP_IZLUDE)),-1,-1)) >= 0) {
+ cd->last_point.x = 94;
+ cd->last_point.y = 103;
+ }
+ if (i >= 0)
+ {
+ cd->last_point.map = j;
+ ShowWarning("Unable to find map-server for '%s', sending to major city '%s'.\n", mapindex_id2name(cd->last_point.map), mapindex_id2name(j));
+ }
+ return i;
+}
+
+void char_parse_char_select(int fd, struct char_session_data* sd, uint32 ipl)
+{
+ struct mmo_charstatus char_dat;
+ struct mmo_charstatus *cd;
+ struct char_auth_node* node;
+ char* data;
+ int char_id;
+ int server_id = 0;
+ int i;
+ int map_fd;
+ uint32 subnet_map_ip;
+ int slot = RFIFOB(fd,2);
+
+ RFIFOSKIP(fd,3);
+
+#if PACKETVER >= 20110309
+ if( pincode->enabled ){ // hack check
+ struct online_char_data* character;
+ character = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id);
+ if( character && character->pincode_enable == -1){
+ chr->auth_error(fd, 0);
+ return;
+ }
+ }
+#endif
+
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), server_id, chr->server[server_id].fd > 0 && chr->server[server_id].map );
+ /* not available, tell it to wait (client wont close; char select will respawn).
+ * magic response found by Ind thanks to Yommy <3 */
+ if( server_id == ARRAYLENGTH(chr->server) ) {
+ chr->send_wait_char_server(fd);
+ return;
+ }
+
+ if (SQL_SUCCESS != SQL->Query(inter->sql_handle, "SELECT `char_id` FROM `%s` WHERE `account_id`='%d' AND `char_num`='%d'", char_db, sd->account_id, slot)
+ || SQL_SUCCESS != SQL->NextRow(inter->sql_handle)
+ || SQL_SUCCESS != SQL->GetData(inter->sql_handle, 0, &data, NULL)
+ ) {
+ //Not found?? May be forged packet.
+ Sql_ShowDebug(inter->sql_handle);
+ SQL->FreeResult(inter->sql_handle);
+ chr->auth_error(fd, 0);
+ return;
+ }
+
+ char_id = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
+
+ /* client doesn't let it get to this point if you're banned, so its a forged packet */
+ if( sd->found_char[slot] == char_id && sd->unban_time[slot] > time(NULL) ) {
+ chr->auth_error(fd, 0);
+ return;
+ }
+
+ /* set char as online prior to loading its data so 3rd party applications will realize the sql data is not reliable */
+ chr->set_char_online(-2,char_id,sd->account_id);
+ if( !chr->mmo_char_fromsql(char_id, &char_dat, true) ) { /* failed? set it back offline */
+ chr->set_char_offline(char_id, sd->account_id);
+ /* failed to load something. REJECT! */
+ chr->auth_error(fd, 0);
+ return;/* jump off this boat */
+ }
+
+ //Have to switch over to the DB instance otherwise data won't propagate [Kevin]
+ cd = (struct mmo_charstatus *)idb_get(chr->char_db_, char_id);
+ if( cd->sex == 99 )
+ cd->sex = sd->sex;
+
+ if (log_char) {
+ char esc_name[NAME_LENGTH*2+1];
+ // FIXME: Why are we re-escaping the name if it was already escaped in rename/make_new_char? [Panikon]
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, char_dat.name, strnlen(char_dat.name, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
+ "INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `name`) VALUES (NOW(), '%d', '%d', '%d', '%s')",
+ charlog_db, sd->account_id, cd->char_id, slot, esc_name) )
+ Sql_ShowDebug(inter->sql_handle);
+ }
+ ShowInfo("Selected char: (Account %d: %d - %s)\n", sd->account_id, slot, char_dat.name);
+
+ // searching map server
+ i = chr->search_mapserver(cd->last_point.map, -1, -1);
+
+ // if map is not found, we check major cities
+ if (i < 0 || !cd->last_point.map) {
+ unsigned short j;
+ //First check that there's actually a map server online.
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), j, chr->server[j].fd >= 0 && chr->server[j].map );
+ if (j == ARRAYLENGTH(chr->server)) {
+ ShowInfo("Connection Closed. No map servers available.\n");
+ chr->authfail_fd(fd, 1);
+ return;
+ }
+ i = chr->search_default_maps_mapserver(cd);
+ if (i < 0)
+ {
+ ShowInfo("Connection Closed. No map server available that has a major city, and unable to find map-server for '%s'.\n", mapindex_id2name(cd->last_point.map));
+ chr->authfail_fd(fd, 1);
+ return;
+ }
+ }
+
+ //Send NEW auth packet [Kevin]
+ //FIXME: is this case even possible? [ultramage]
+ if ((map_fd = chr->server[i].fd) < 1 || session[map_fd] == NULL)
{
- Sql_ShowDebug(sql_handle);
- char_delete2_cancel_ack(fd, char_id, 2);
+ ShowError("chr->parse_char: Attempting to write to invalid session %d! Map Server #%d disconnected.\n", map_fd, i);
+ chr->server[i].fd = -1;
+ memset(&chr->server[i], 0, sizeof(struct mmo_map_server));
+ //Send server closed.
+ chr->authfail_fd(fd, 1);
return;
}
- char_delete2_cancel_ack(fd, char_id, 1);
+ subnet_map_ip = chr->lan_subnetcheck(ipl); // Advanced subnet check [LuzZza]
+ //Send player to map
+ chr->send_map_info(fd, i, subnet_map_ip, cd);
+
+ // create temporary auth entry
+ CREATE(node, struct char_auth_node, 1);
+ node->account_id = sd->account_id;
+ node->char_id = cd->char_id;
+ node->login_id1 = sd->login_id1;
+ node->login_id2 = sd->login_id2;
+ node->sex = sd->sex;
+ node->expiration_time = sd->expiration_time;
+ node->group_id = sd->group_id;
+ node->ip = ipl;
+ idb_put(auth_db, sd->account_id, node);
+}
+
+void char_creation_failed(int fd, int result)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x6e;
+ /* Others I found [Ind] */
+ /* 0x02 = Symbols in Character Names are forbidden */
+ /* 0x03 = You are not eligible to open the Character Slot. */
+ /* 0x0B = This service is only available for premium users. */
+ switch (result) {
+ case -1: WFIFOB(fd,2) = 0x00; break; // 'Charname already exists'
+ case -2: WFIFOB(fd,2) = 0xFF; break; // 'Char creation denied'
+ case -3: WFIFOB(fd,2) = 0x01; break; // 'You are underaged'
+ case -4: WFIFOB(fd,2) = 0x03; break; // 'You are not eligible to open the Character Slot.'
+ case -5: WFIFOB(fd,2) = 0x02; break; // 'Symbols in Character Names are forbidden'
+
+ default:
+ ShowWarning("chr->parse_char: Unknown result received from chr->make_new_char_sql!\n");
+ WFIFOB(fd,2) = 0xFF;
+ break;
+ }
+ WFIFOSET(fd,3);
+}
+
+void char_creation_ok(int fd, struct mmo_charstatus *char_dat)
+{
+ int len;
+
+ // send to player
+ WFIFOHEAD(fd,2+MAX_CHAR_BUF);
+ WFIFOW(fd,0) = 0x6d;
+ len = 2 + chr->mmo_char_tobuf(WFIFOP(fd,2), char_dat);
+ WFIFOSET(fd,len);
+}
+
+void char_parse_char_create_new_char(int fd, struct char_session_data* sd)
+{
+ int result;
+ if( !char_new ) //turn character creation on/off [Kevin]
+ result = -2;
+ else
+ #if PACKETVER >= 20120307
+ result = chr->make_new_char_sql(sd, (char*)RFIFOP(fd,2), 1, 1, 1, 1, 1, 1, RFIFOB(fd,26),RFIFOW(fd,27),RFIFOW(fd,29));
+ #else
+ result = chr->make_new_char_sql(sd, (char*)RFIFOP(fd,2),RFIFOB(fd,26),RFIFOB(fd,27),RFIFOB(fd,28),RFIFOB(fd,29),RFIFOB(fd,30),RFIFOB(fd,31),RFIFOB(fd,32),RFIFOW(fd,33),RFIFOW(fd,35));
+ #endif
+
+ if (result < 0) {
+ chr->creation_failed(fd, result);
+ } else {
+ // retrieve data
+ struct mmo_charstatus char_dat;
+ chr->mmo_char_fromsql(result, &char_dat, false); //Only the short data is needed.
+ chr->creation_ok(fd, &char_dat);
+
+ // add new entry to the chars list
+ sd->found_char[char_dat.slot] = result; // the char_id of the new char
+ }
+ #if PACKETVER >= 20120307
+ RFIFOSKIP(fd,31);
+ #else
+ RFIFOSKIP(fd,37);
+ #endif
+}
+
+// flag:
+// 0 = Incorrect Email address
+void char_delete_char_failed(int fd, int flag)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x70;
+ WFIFOB(fd,2) = flag;
+ WFIFOSET(fd,3);
}
+void char_delete_char_ok(int fd)
+{
+ WFIFOHEAD(fd,2);
+ WFIFOW(fd,0) = 0x6f;
+ WFIFOSET(fd,2);
+}
-int parse_char(int fd)
+void char_parse_char_delete_char(int fd, struct char_session_data* sd, unsigned short cmd)
{
char email[40];
+ int cid = RFIFOL(fd,2);
+ int i;
+
+#if PACKETVER >= 20110309
+ if( pincode->enabled ){ // hack check
+ struct online_char_data* character;
+ character = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id);
+ if( character && character->pincode_enable == -1 ){
+ chr->auth_error(fd, 0);
+ RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56);
+ return;
+ }
+ }
+#endif
+ ShowInfo(CL_RED"Request Char Deletion: "CL_GREEN"%d (%d)"CL_RESET"\n", sd->account_id, cid);
+ memcpy(email, RFIFOP(fd,6), 40);
+ RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56);
+
+ // Check if e-mail is correct
+ if (strcmpi(email, sd->email) != 0 /* emails don't match */
+ && ( strcmp("a@a.com", sd->email) != 0 /* it's not the default email */
+ || (strcmp("a@a.com", email) != 0 && strcmp("", email) != 0) /* sent email isn't the default */
+ )) {
+ //Fail
+ chr->delete_char_failed(fd, 0);
+ return;
+ }
+
+ // check if this char exists
+ ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
+ if( i == MAX_CHARS )
+ { // Such a character does not exist in the account
+ chr->delete_char_failed(fd, 0);
+ return;
+ }
+
+ // remove char from list and compact it
+ sd->found_char[i] = -1;
+
+ /* Delete character */
+ if(chr->delete_char_sql(cid)<0){
+ //can't delete the char
+ //either SQL error or can't delete by some CONFIG conditions
+ //del fail
+ chr->delete_char_failed(fd, 0);
+ return;
+ }
+ /* Char successfully deleted.*/
+ chr->delete_char_ok(fd);
+}
+
+void char_parse_char_ping(int fd)
+{
+ RFIFOSKIP(fd,6);
+}
+
+void char_allow_rename(int fd, int flag)
+{
+ WFIFOHEAD(fd, 4);
+ WFIFOW(fd,0) = 0x28e;
+ WFIFOW(fd,2) = flag;
+ WFIFOSET(fd,4);
+}
+
+void char_parse_char_rename_char(int fd, struct char_session_data* sd)
+{
+ int i, cid =RFIFOL(fd,2);
+ char name[NAME_LENGTH];
+ char esc_name[NAME_LENGTH*2+1];
+ safestrncpy(name, (char *)RFIFOP(fd,6), NAME_LENGTH);
+ RFIFOSKIP(fd,30);
+
+ ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
+ if( i == MAX_CHARS )
+ return;
+
+ normalize_name(name,TRIM_CHARS);
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
+ if( !chr->check_char_name(name,esc_name) ) {
+ i = 1;
+ safestrncpy(sd->new_name, name, NAME_LENGTH);
+ } else {
+ i = 0;
+ }
+
+ chr->allow_rename(fd, i);
+}
+
+void char_parse_char_rename_char2(int fd, struct char_session_data* sd)
+{
+ int i, aid = RFIFOL(fd,2), cid =RFIFOL(fd,6);
+ char name[NAME_LENGTH];
+ char esc_name[NAME_LENGTH*2+1];
+ safestrncpy(name, (char *)RFIFOP(fd,10), NAME_LENGTH);
+ RFIFOSKIP(fd,34);
+
+ if( aid != sd->account_id )
+ return;
+ ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
+ if( i == MAX_CHARS )
+ return;
+
+ normalize_name(name,TRIM_CHARS);
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
+ if( !chr->check_char_name(name,esc_name) )
+ {
+ i = 1;
+ safestrncpy(sd->new_name, name, NAME_LENGTH);
+ }
+ else
+ i = 0;
+
+ chr->allow_rename(fd, i);
+}
+
+void char_rename_char_ack(int fd, int flag)
+{
+ WFIFOHEAD(fd, 4);
+ WFIFOW(fd,0) = 0x290;
+ WFIFOW(fd,2) = flag;
+ WFIFOSET(fd,4);
+}
+
+void char_parse_char_rename_char_confirm(int fd, struct char_session_data* sd)
+{
+ int i;
+ int cid = RFIFOL(fd,2);
+ RFIFOSKIP(fd,6);
+
+ ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
+ if( i == MAX_CHARS )
+ return;
+ i = chr->rename_char_sql(sd, cid);
+
+ chr->rename_char_ack(fd, i);
+}
+
+void char_captcha_notsupported(int fd)
+{
+ WFIFOHEAD(fd,5);
+ WFIFOW(fd,0) = 0x7e9;
+ WFIFOW(fd,2) = 5;
+ WFIFOB(fd,4) = 1;
+ WFIFOSET(fd,5);
+}
+
+void char_parse_char_request_captcha(int fd)
+{
+ chr->captcha_notsupported(fd);
+ RFIFOSKIP(fd,8);
+}
+
+void char_parse_char_check_captcha(int fd)
+{
+ chr->captcha_notsupported(fd);
+ RFIFOSKIP(fd,32);
+}
+
+void char_parse_char_delete2_req(int fd, struct char_session_data* sd)
+{
+ chr->delete2_req(fd, sd);
+ RFIFOSKIP(fd,6);
+}
+
+void char_parse_char_delete2_accept(int fd, struct char_session_data* sd)
+{
+ chr->delete2_accept(fd, sd);
+ RFIFOSKIP(fd,12);
+}
+
+void char_parse_char_delete2_cancel(int fd, struct char_session_data* sd)
+{
+ chr->delete2_cancel(fd, sd);
+ RFIFOSKIP(fd,6);
+}
+
+// flag:
+// 0 - ok
+// 3 - error
+void char_login_map_server_ack(int fd, uint8 flag)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x2af9;
+ WFIFOB(fd,2) = flag;
+ WFIFOSET(fd,3);
+}
+
+void char_parse_char_login_map_server(int fd)
+{
+ char* l_user = (char*)RFIFOP(fd,2);
+ char* l_pass = (char*)RFIFOP(fd,26);
+ int i;
+ l_user[23] = '\0';
+ l_pass[23] = '\0';
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), i, chr->server[i].fd <= 0 );
+ if( runflag != CHARSERVER_ST_RUNNING ||
+ i == ARRAYLENGTH(chr->server) ||
+ strcmp(l_user, chr->userid) != 0 ||
+ strcmp(l_pass, chr->passwd) != 0 )
+ {
+ chr->login_map_server_ack(fd, 3);
+ } else {
+ chr->login_map_server_ack(fd, 0);
+
+ chr->server[i].fd = fd;
+ chr->server[i].ip = ntohl(RFIFOL(fd,54));
+ chr->server[i].port = ntohs(RFIFOW(fd,58));
+ chr->server[i].users = 0;
+ session[fd]->func_parse = chr->parse_frommap;
+ session[fd]->flag.server = 1;
+ realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
+ chr->mapif_init(fd);
+ }
+ sockt->datasync(fd, true);
+
+ RFIFOSKIP(fd,60);
+}
+
+void char_parse_char_pincode_check(int fd, struct char_session_data* sd)
+{
+ if( RFIFOL(fd,2) == sd->account_id )
+ pincode->check( fd, sd );
+
+ RFIFOSKIP(fd,10);
+}
+
+void char_parse_char_pincode_window(int fd, struct char_session_data* sd)
+{
+ if( RFIFOL(fd,2) == sd->account_id )
+ pincode->sendstate( fd, sd, PINCODE_NOTSET );
+
+ RFIFOSKIP(fd,6);
+}
+
+void char_parse_char_pincode_change(int fd, struct char_session_data* sd)
+{
+ if( RFIFOL(fd,2) == sd->account_id )
+ pincode->change( fd, sd );
+
+ RFIFOSKIP(fd,14);
+}
+
+void char_parse_char_pincode_first_pin(int fd, struct char_session_data* sd)
+{
+ if( RFIFOL(fd,2) == sd->account_id )
+ pincode->setnew( fd, sd );
+ RFIFOSKIP(fd,10);
+}
+
+void char_parse_char_request_chars(int fd, struct char_session_data* sd)
+{
+ chr->mmo_char_send099d(fd, sd);
+ RFIFOSKIP(fd,2);
+}
+
+void char_change_character_slot_ack(int fd, bool ret)
+{
+ WFIFOHEAD(fd, 8);
+ WFIFOW(fd, 0) = 0x8d5;
+ WFIFOW(fd, 2) = 8;
+ WFIFOW(fd, 4) = ret?0:1;
+ WFIFOW(fd, 6) = 0;/* we enforce it elsewhere, go 0 */
+ WFIFOSET(fd, 8);
+}
+
+void char_parse_char_move_character(int fd, struct char_session_data* sd)
+{
+ bool ret = chr->char_slotchange(sd, fd, RFIFOW(fd, 2), RFIFOW(fd, 4));
+ chr->change_character_slot_ack(fd, ret);
+ /* for some stupid reason it requires the char data again (gravity -_-) */
+ if( ret )
+#if PACKETVER >= 20130000
+ chr->mmo_char_send099d(fd, sd);
+#else
+ chr->mmo_char_send_characters(fd, sd);
+#endif
+ RFIFOSKIP(fd, 8);
+}
+
+int char_parse_char_unknown_packet(int fd, uint32 ipl)
+{
+ ShowError("chr->parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL));
+ set_eof(fd);
+ return 1;
+}
+
+int char_parse_char(int fd)
+{
unsigned short cmd;
- int map_fd;
struct char_session_data* sd;
uint32 ipl = session[fd]->client_addr;
sd = (struct char_session_data*)session[fd]->session_data;
// disconnect any player if no login-server.
- if(login_fd < 0)
+ if(chr->login_fd < 0)
set_eof(fd);
if(session[fd]->flag.eof)
{
- if( sd != NULL && sd->auth )
- { // already authed client
- struct online_char_data* data = (struct online_char_data*)idb_get(online_char_db, sd->account_id);
+ if( sd != NULL && sd->auth ) {
+ // already authed client
+ struct online_char_data* data = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id);
if( data != NULL && data->fd == fd)
data->fd = -1;
if( data == NULL || data->server == -1) //If it is not in any server, send it offline. [Skotlex]
- set_char_offline(-1,sd->account_id);
+ chr->set_char_offline(-1,sd->account_id);
}
do_close(fd);
return 0;
@@ -4151,101 +4973,17 @@ int parse_char(int fd)
if( success == 1 ) continue;
else if( success == 2 ) return 0;
}
-
+
cmd = RFIFOW(fd,0);
switch( cmd ) {
-
// request to connect
// 0065 <account id>.L <login id1>.L <login id2>.L <???>.W <sex>.B
case 0x65:
if( RFIFOREST(fd) < 17 )
return 0;
{
- struct auth_node* node;
-
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- int sex = RFIFOB(fd,16);
- RFIFOSKIP(fd,17);
-
- ShowInfo("request connect - account_id:%d/login_id1:%d/login_id2:%d\n", account_id, login_id1, login_id2);
-
- if (sd) {
- //Received again auth packet for already authenticated account?? Discard it.
- //TODO: Perhaps log this as a hack attempt?
- //TODO: and perhaps send back a reply?
- break;
- }
-
- CREATE(session[fd]->session_data, struct char_session_data, 1);
- sd = (struct char_session_data*)session[fd]->session_data;
- sd->account_id = account_id;
- sd->login_id1 = login_id1;
- sd->login_id2 = login_id2;
- sd->sex = sex;
- sd->auth = false; // not authed yet
-
- // send back account_id
- WFIFOHEAD(fd,4);
- WFIFOL(fd,0) = account_id;
- WFIFOSET(fd,4);
-
- if( runflag != CHARSERVER_ST_RUNNING ) {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;// rejected from server
- WFIFOSET(fd,3);
- break;
- }
-
- // search authentication
- node = (struct auth_node*)idb_get(auth_db, account_id);
- if( node != NULL &&
- node->account_id == account_id &&
- node->login_id1 == login_id1 &&
- node->login_id2 == login_id2 /*&&
- node->ip == ipl*/ )
- {// authentication found (coming from map server)
- /* restrictions apply */
- if( char_server_type == CST_MAINTENANCE && node->group_id < char_maintenance_min_group_id ) {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;// rejected from server
- WFIFOSET(fd,3);
- break;
- }
- /* the client will already deny this request, this check is to avoid someone bypassing. */
- if( char_server_type == CST_PAYING && (time_t)node->expiration_time < time(NULL) ) {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;// rejected from server
- WFIFOSET(fd,3);
- break;
- }
- idb_remove(auth_db, account_id);
- char_auth_ok(fd, sd);
- }
- else
- {// authentication not found (coming from login server)
- if (login_fd > 0) { // don't send request if no login-server
- WFIFOHEAD(login_fd,23);
- WFIFOW(login_fd,0) = 0x2712; // ask login-server to authenticate an account
- WFIFOL(login_fd,2) = sd->account_id;
- WFIFOL(login_fd,6) = sd->login_id1;
- WFIFOL(login_fd,10) = sd->login_id2;
- WFIFOB(login_fd,14) = sd->sex;
- WFIFOL(login_fd,15) = htonl(ipl);
- WFIFOL(login_fd,19) = fd;
- WFIFOSET(login_fd,23);
- } else { // if no login-server, we must refuse connection
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- }
- }
+ chr->parse_char_connect(fd, sd, ipl);
}
break;
@@ -4253,178 +4991,7 @@ int parse_char(int fd)
case 0x66:
FIFOSD_CHECK(3);
{
- struct mmo_charstatus char_dat;
- struct mmo_charstatus *cd;
- char* data;
- int char_id;
- uint32 subnet_map_ip;
- struct auth_node* node;
- int server_id = 0;
- int i;
-
- int slot = RFIFOB(fd,2);
- RFIFOSKIP(fd,3);
-
-#if PACKETVER >= 20110309
- if( *pincode->enabled ){ // hack check
- struct online_char_data* character;
- character = (struct online_char_data*)idb_get(online_char_db, sd->account_id);
- if( character && character->pincode_enable == -1){
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- break;
- }
- }
-#endif
-
- ARR_FIND( 0, ARRAYLENGTH(server), server_id, server[server_id].fd > 0 && server[server_id].map[0] );
- /* not available, tell it to wait (client wont close; char select will respawn).
- * magic response found by Ind thanks to Yommy <3 */
- if( server_id == ARRAYLENGTH(server) ) {
- WFIFOHEAD(fd, 24);
- WFIFOW(fd, 0) = 0x840;
- WFIFOW(fd, 2) = 24;
- safestrncpy((char*)WFIFOP(fd,4), "0", 20);/* we can't send empty (otherwise the list will pop up) */
- WFIFOSET(fd, 24);
- break;
- }
-
- if ( SQL_SUCCESS != SQL->Query(sql_handle, "SELECT `char_id` FROM `%s` WHERE `account_id`='%d' AND `char_num`='%d'", char_db, sd->account_id, slot)
- || SQL_SUCCESS != SQL->NextRow(sql_handle)
- || SQL_SUCCESS != SQL->GetData(sql_handle, 0, &data, NULL) )
- { //Not found?? May be forged packet.
- Sql_ShowDebug(sql_handle);
- SQL->FreeResult(sql_handle);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0; // rejected from server
- WFIFOSET(fd,3);
- break;
- }
-
- char_id = atoi(data);
- SQL->FreeResult(sql_handle);
-
- /* client doesn't let it get to this point if you're banned, so its a forged packet */
- if( sd->found_char[slot] == char_id && sd->unban_time[slot] > time(NULL) ) {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0; // rejected from server
- WFIFOSET(fd,3);
- break;
- }
-
- /* set char as online prior to loading its data so 3rd party applications will realize the sql data is not reliable */
- set_char_online(-2,char_id,sd->account_id);
- if( !mmo_char_fromsql(char_id, &char_dat, true) ) { /* failed? set it back offline */
- set_char_offline(char_id, sd->account_id);
- /* failed to load something. REJECT! */
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- break;/* jump off this boat */
- }
-
- //Have to switch over to the DB instance otherwise data won't propagate [Kevin]
- cd = (struct mmo_charstatus *)idb_get(char_db_, char_id);
- cd->sex = sd->sex;
-
- if (log_char) {
- char esc_name[NAME_LENGTH*2+1];
- // FIXME: Why are we re-escaping the name if it was already escaped in rename/make_new_char? [Panikon]
- SQL->EscapeStringLen(sql_handle, esc_name, char_dat.name, strnlen(char_dat.name, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle,
- "INSERT INTO `%s`(`time`, `account_id`, `char_id`, `char_num`, `name`) VALUES (NOW(), '%d', '%d', '%d', '%s')",
- charlog_db, sd->account_id, cd->char_id, slot, esc_name) )
- Sql_ShowDebug(sql_handle);
- }
- ShowInfo("Selected char: (Account %d: %d - %s)\n", sd->account_id, slot, char_dat.name);
-
- // searching map server
- i = search_mapserver(cd->last_point.map, -1, -1);
-
- // if map is not found, we check major cities
- if (i < 0 || !cd->last_point.map) {
- unsigned short j;
- //First check that there's actually a map server online.
- ARR_FIND( 0, ARRAYLENGTH(server), j, server[j].fd >= 0 && server[j].map[0] );
- if (j == ARRAYLENGTH(server)) {
- ShowInfo("Connection Closed. No map servers available.\n");
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
- break;
- }
- if ((i = search_mapserver((j=mapindex->name2id(MAP_PRONTERA)),-1,-1)) >= 0) {
- cd->last_point.x = 273;
- cd->last_point.y = 354;
- } else if ((i = search_mapserver((j=mapindex->name2id(MAP_GEFFEN)),-1,-1)) >= 0) {
- cd->last_point.x = 120;
- cd->last_point.y = 100;
- } else if ((i = search_mapserver((j=mapindex->name2id(MAP_MORROC)),-1,-1)) >= 0) {
- cd->last_point.x = 160;
- cd->last_point.y = 94;
- } else if ((i = search_mapserver((j=mapindex->name2id(MAP_ALBERTA)),-1,-1)) >= 0) {
- cd->last_point.x = 116;
- cd->last_point.y = 57;
- } else if ((i = search_mapserver((j=mapindex->name2id(MAP_PAYON)),-1,-1)) >= 0) {
- cd->last_point.x = 87;
- cd->last_point.y = 117;
- } else if ((i = search_mapserver((j=mapindex->name2id(MAP_IZLUDE)),-1,-1)) >= 0) {
- cd->last_point.x = 94;
- cd->last_point.y = 103;
- } else {
- ShowInfo("Connection Closed. No map server available that has a major city, and unable to find map-server for '%s'.\n", mapindex_id2name(cd->last_point.map));
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
- break;
- }
- ShowWarning("Unable to find map-server for '%s', sending to major city '%s'.\n", mapindex_id2name(cd->last_point.map), mapindex_id2name(j));
- cd->last_point.map = j;
- }
-
- //Send NEW auth packet [Kevin]
- //FIXME: is this case even possible? [ultramage]
- if ((map_fd = server[i].fd) < 1 || session[map_fd] == NULL)
- {
- ShowError("parse_char: Attempting to write to invalid session %d! Map Server #%d disconnected.\n", map_fd, i);
- server[i].fd = -1;
- memset(&server[i], 0, sizeof(struct mmo_map_server));
- //Send server closed.
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
- break;
- }
-
- //Send player to map
- WFIFOHEAD(fd,28);
- WFIFOW(fd,0) = 0x71;
- WFIFOL(fd,2) = cd->char_id;
- mapindex->getmapname_ext(mapindex_id2name(cd->last_point.map), (char*)WFIFOP(fd,6));
- subnet_map_ip = lan_subnetcheck(ipl); // Advanced subnet check [LuzZza]
- WFIFOL(fd,22) = htonl((subnet_map_ip) ? subnet_map_ip : server[i].ip);
- WFIFOW(fd,26) = ntows(htons(server[i].port)); // [!] LE byte order here [!]
- WFIFOSET(fd,28);
-
- // create temporary auth entry
- CREATE(node, struct auth_node, 1);
- node->account_id = sd->account_id;
- node->char_id = cd->char_id;
- node->login_id1 = sd->login_id1;
- node->login_id2 = sd->login_id2;
- node->sex = sd->sex;
- node->expiration_time = sd->expiration_time;
- node->group_id = sd->group_id;
- node->ip = ipl;
- idb_put(auth_db, sd->account_id, node);
+ chr->parse_char_select(fd, sd, ipl);
}
break;
@@ -4434,65 +5001,15 @@ int parse_char(int fd)
// S 0970 <name>.24B <slot>.B <hair color>.W <hair style>.W
case 0x970:
{
- int result;
FIFOSD_CHECK(31);
#else
// S 0067 <name>.24B <str>.B <agi>.B <vit>.B <int>.B <dex>.B <luk>.B <slot>.B <hair color>.W <hair style>.W
case 0x67:
{
- int result;
FIFOSD_CHECK(37);
#endif
- if( !char_new ) //turn character creation on/off [Kevin]
- result = -2;
- else
- #if PACKETVER >= 20120307
- result = make_new_char_sql(sd, (char*)RFIFOP(fd,2),RFIFOB(fd,26),RFIFOW(fd,27),RFIFOW(fd,29));
- #else
- result = make_new_char_sql(sd, (char*)RFIFOP(fd,2),RFIFOB(fd,26),RFIFOB(fd,27),RFIFOB(fd,28),RFIFOB(fd,29),RFIFOB(fd,30),RFIFOB(fd,31),RFIFOB(fd,32),RFIFOW(fd,33),RFIFOW(fd,35));
- #endif
-
- if (result < 0) {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6e;
- /* Others I found [Ind] */
- /* 0x02 = Symbols in Character Names are forbidden */
- /* 0x03 = You are not eligible to open the Character Slot. */
- /* 0x0B = This service is only available for premium users. */
- switch (result) {
- case -1: WFIFOB(fd,2) = 0x00; break; // 'Charname already exists'
- case -2: WFIFOB(fd,2) = 0xFF; break; // 'Char creation denied'
- case -3: WFIFOB(fd,2) = 0x01; break; // 'You are underaged'
- case -4: WFIFOB(fd,2) = 0x03; break; // 'You are not eligible to open the Character Slot.'
- case -5: WFIFOB(fd,2) = 0x02; break; // 'Symbols in Character Names are forbidden'
-
- default:
- ShowWarning("parse_char: Unknown result received from make_new_char_sql!\n");
- WFIFOB(fd,2) = 0xFF;
- break;
- }
- WFIFOSET(fd,3);
- } else {
- int len;
- // retrieve data
- struct mmo_charstatus char_dat;
- mmo_char_fromsql(result, &char_dat, false); //Only the short data is needed.
-
- // send to player
- WFIFOHEAD(fd,2+MAX_CHAR_BUF);
- WFIFOW(fd,0) = 0x6d;
- len = 2 + mmo_char_tobuf(WFIFOP(fd,2), &char_dat);
- WFIFOSET(fd,len);
-
- // add new entry to the chars list
- sd->found_char[char_dat.slot] = result; // the char_id of the new char
- }
- #if PACKETVER >= 20120307
- RFIFOSKIP(fd,31);
- #else
- RFIFOSKIP(fd,37);
- #endif
+ chr->parse_char_create_new_char(fd, sd);
}
break;
@@ -4503,67 +5020,7 @@ int parse_char(int fd)
if (cmd == 0x68) FIFOSD_CHECK(46);
if (cmd == 0x1fb) FIFOSD_CHECK(56);
{
- int cid = RFIFOL(fd,2);
- int i;
-#if PACKETVER >= 20110309
- if( *pincode->enabled ){ // hack check
- struct online_char_data* character;
- character = (struct online_char_data*)idb_get(online_char_db, sd->account_id);
- if( character && character->pincode_enable == -1 ){
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x6c;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- break;
- }
- }
-#endif
- ShowInfo(CL_RED"Request Char Deletion: "CL_GREEN"%d (%d)"CL_RESET"\n", sd->account_id, cid);
- memcpy(email, RFIFOP(fd,6), 40);
- RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56);
-
- // Check if e-mail is correct
- if(strcmpi(email, sd->email) && //email does not matches and
- (
- strcmp("a@a.com", sd->email) || //it is not default email, or
- (strcmp("a@a.com", email) && strcmp("", email)) //email sent does not matches default
- )) { //Fail
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x70;
- WFIFOB(fd,2) = 0; // 00 = Incorrect Email address
- WFIFOSET(fd,3);
- break;
- }
-
- // check if this char exists
- ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
- if( i == MAX_CHARS )
- { // Such a character does not exist in the account
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x70;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- break;
- }
-
- // remove char from list and compact it
- sd->found_char[i] = -1;
-
- /* Delete character */
- if(delete_char_sql(cid)<0){
- //can't delete the char
- //either SQL error or can't delete by some CONFIG conditions
- //del fail
- WFIFOHEAD(fd,3);
- WFIFOW(fd, 0) = 0x70;
- WFIFOB(fd, 2) = 0;
- WFIFOSET(fd, 3);
- break;
- }
- /* Char successfully deleted.*/
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x6f;
- WFIFOSET(fd,2);
+ chr->parse_char_delete_char(fd, sd, cmd);
}
break;
@@ -4572,35 +5029,14 @@ int parse_char(int fd)
case 0x187:
if (RFIFOREST(fd) < 6)
return 0;
- RFIFOSKIP(fd,6);
+ chr->parse_char_ping(fd);
break;
// char rename request
// R 08fc <char ID>.l <new name>.24B
case 0x8fc:
FIFOSD_CHECK(30);
{
- int i, cid =RFIFOL(fd,2);
- char name[NAME_LENGTH];
- char esc_name[NAME_LENGTH*2+1];
- safestrncpy(name, (char *)RFIFOP(fd,6), NAME_LENGTH);
- RFIFOSKIP(fd,30);
-
- ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
- if( i == MAX_CHARS )
- break;
-
- normalize_name(name,TRIM_CHARS);
- SQL->EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
- if( !check_char_name(name,esc_name) ) {
- i = 1;
- safestrncpy(sd->new_name, name, NAME_LENGTH);
- } else
- i = 0;
-
- WFIFOHEAD(fd, 4);
- WFIFOW(fd,0) = 0x28e;
- WFIFOW(fd,2) = i;
- WFIFOSET(fd,4);
+ chr->parse_char_rename_char(fd, sd);
}
break;
@@ -4609,32 +5045,7 @@ int parse_char(int fd)
case 0x28d:
FIFOSD_CHECK(34);
{
- int i, aid = RFIFOL(fd,2), cid =RFIFOL(fd,6);
- char name[NAME_LENGTH];
- char esc_name[NAME_LENGTH*2+1];
- safestrncpy(name, (char *)RFIFOP(fd,10), NAME_LENGTH);
- RFIFOSKIP(fd,34);
-
- if( aid != sd->account_id )
- break;
- ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
- if( i == MAX_CHARS )
- break;
-
- normalize_name(name,TRIM_CHARS);
- SQL->EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
- if( !check_char_name(name,esc_name) )
- {
- i = 1;
- safestrncpy(sd->new_name, name, NAME_LENGTH);
- }
- else
- i = 0;
-
- WFIFOHEAD(fd, 4);
- WFIFOW(fd,0) = 0x28e;
- WFIFOW(fd,2) = i;
- WFIFOSET(fd,4);
+ chr->parse_char_rename_char2(fd, sd);
}
break;
//Confirm change name.
@@ -4647,63 +5058,38 @@ int parse_char(int fd)
// 4: Another user is using this character name, so please select another one.
FIFOSD_CHECK(6);
{
- int i;
- int cid = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- ARR_FIND( 0, MAX_CHARS, i, sd->found_char[i] == cid );
- if( i == MAX_CHARS )
- break;
- i = rename_char_sql(sd, cid);
-
- WFIFOHEAD(fd, 4);
- WFIFOW(fd,0) = 0x290;
- WFIFOW(fd,2) = i;
- WFIFOSET(fd,4);
+ chr->parse_char_rename_char_confirm(fd, sd);
}
break;
// captcha code request (not implemented)
// R 07e5 <?>.w <aid>.l
case 0x7e5:
- WFIFOHEAD(fd,5);
- WFIFOW(fd,0) = 0x7e9;
- WFIFOW(fd,2) = 5;
- WFIFOB(fd,4) = 1;
- WFIFOSET(fd,5);
- RFIFOSKIP(fd,8);
+ chr->parse_char_request_captcha(fd);
break;
// captcha code check (not implemented)
// R 07e7 <len>.w <aid>.l <code>.b10 <?>.b14
case 0x7e7:
- WFIFOHEAD(fd,5);
- WFIFOW(fd,0) = 0x7e9;
- WFIFOW(fd,2) = 5;
- WFIFOB(fd,4) = 1;
- WFIFOSET(fd,5);
- RFIFOSKIP(fd,32);
+ chr->parse_char_check_captcha(fd);
break;
// deletion timer request
case 0x827:
FIFOSD_CHECK(6);
- char_delete2_req(fd, sd);
- RFIFOSKIP(fd,6);
+ chr->parse_char_delete2_req(fd, sd);
break;
// deletion accept request
case 0x829:
FIFOSD_CHECK(12);
- char_delete2_accept(fd, sd);
- RFIFOSKIP(fd,12);
+ chr->parse_char_delete2_accept(fd, sd);
break;
// deletion cancel request
case 0x82b:
FIFOSD_CHECK(6);
- char_delete2_cancel(fd, sd);
- RFIFOSKIP(fd,6);
+ chr->parse_char_delete2_cancel(fd, sd);
break;
// login as map-server
@@ -4711,112 +5097,51 @@ int parse_char(int fd)
if (RFIFOREST(fd) < 60)
return 0;
{
- char* l_user = (char*)RFIFOP(fd,2);
- char* l_pass = (char*)RFIFOP(fd,26);
- int i;
- l_user[23] = '\0';
- l_pass[23] = '\0';
- ARR_FIND( 0, ARRAYLENGTH(server), i, server[i].fd <= 0 );
- if( runflag != CHARSERVER_ST_RUNNING ||
- i == ARRAYLENGTH(server) ||
- strcmp(l_user, userid) != 0 ||
- strcmp(l_pass, passwd) != 0 )
- {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2af9;
- WFIFOB(fd,2) = 3;
- WFIFOSET(fd,3);
- } else {
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2af9;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
-
- server[i].fd = fd;
- server[i].ip = ntohl(RFIFOL(fd,54));
- server[i].port = ntohs(RFIFOW(fd,58));
- server[i].users = 0;
- session[fd]->func_parse = parse_frommap;
- session[fd]->flag.server = 1;
- realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
- char_mapif_init(fd);
- }
- sockt->datasync(fd, true);
-
- RFIFOSKIP(fd,60);
+ chr->parse_char_login_map_server(fd);
}
return 0; // avoid processing of follow-up packets here
-
+
// checks the entered pin
case 0x8b8:
- if( RFIFOREST(fd) < 10 )
- return 0;
-
- if( RFIFOL(fd,2) == sd->account_id )
- pincode->check( fd, sd );
-
- RFIFOSKIP(fd,10);
+ FIFOSD_CHECK(10);
+ chr->parse_char_pincode_check(fd, sd);
break;
-
+
// request for PIN window
case 0x8c5:
- if( RFIFOREST(fd) < 6 )
- return 0;
- if( RFIFOL(fd,2) == sd->account_id )
- pincode->sendstate( fd, sd, PINCODE_NOTSET );
-
- RFIFOSKIP(fd,6);
+ FIFOSD_CHECK(6);
+ chr->parse_char_pincode_window(fd, sd);
break;
-
+
// pincode change request
case 0x8be:
- if( RFIFOREST(fd) < 14 )
- return 0;
- if( RFIFOL(fd,2) == sd->account_id )
- pincode->change( fd, sd );
-
- RFIFOSKIP(fd,14);
+ FIFOSD_CHECK(14);
+ chr->parse_char_pincode_change(fd, sd);
break;
-
+
// activate PIN system and set first PIN
case 0x8ba:
- if( RFIFOREST(fd) < 10 )
- return 0;
- if( RFIFOL(fd,2) == sd->account_id )
- pincode->setnew( fd, sd );
- RFIFOSKIP(fd,10);
+ FIFOSD_CHECK(10);
+ chr->parse_char_pincode_first_pin(fd, sd);
break;
-
+
+ case 0x9a1:
+ FIFOSD_CHECK(2);
+ chr->parse_char_request_chars(fd, sd);
+ break;
+
/* 0x8d4 <from>.W <to>.W <unused>.W (2+2+2+2) */
case 0x8d4:
- if( RFIFOREST(fd) < 8 )
- return 0;
- else {
- bool ret;
- ret = char_slotchange(sd, fd, RFIFOW(fd, 2), RFIFOW(fd, 4));
- WFIFOHEAD(fd, 8);
- WFIFOW(fd, 0) = 0x8d5;
- WFIFOW(fd, 2) = 8;
- WFIFOW(fd, 4) = ret?0:1;
- WFIFOW(fd, 6) = 0;/* we enforce it elsewhere, go 0 */
- WFIFOSET(fd, 8);
- /* for some stupid reason it requires the char data again (gravity -_-) */
- if( ret )
-#if PACKETVER >= 20130000
- mmo_char_send099d(fd, sd);
-#else
- mmo_char_send006b(fd, sd);
-#endif
-
- RFIFOSKIP(fd, 8);
+ FIFOSD_CHECK(8);
+ {
+ chr->parse_char_move_character(fd, sd);
}
break;
-
+
// unknown packet received
default:
- ShowError("parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL));
- set_eof(fd);
- return 0;
+ if (chr->parse_char_unknown_packet(fd, ipl))
+ return 0;
}
}
@@ -4829,9 +5154,9 @@ int mapif_sendall(unsigned char *buf, unsigned int len)
int i, c;
c = 0;
- for(i = 0; i < ARRAYLENGTH(server); i++) {
+ for(i = 0; i < ARRAYLENGTH(chr->server); i++) {
int fd;
- if ((fd = server[i].fd) > 0) {
+ if ((fd = chr->server[i].fd) > 0) {
WFIFOHEAD(fd,len);
memcpy(WFIFOP(fd,0), buf, len);
WFIFOSET(fd,len);
@@ -4847,9 +5172,9 @@ int mapif_sendallwos(int sfd, unsigned char *buf, unsigned int len)
int i, c;
c = 0;
- for(i = 0; i < ARRAYLENGTH(server); i++) {
+ for(i = 0; i < ARRAYLENGTH(chr->server); i++) {
int fd;
- if ((fd = server[i].fd) > 0 && fd != sfd) {
+ if ((fd = chr->server[i].fd) > 0 && fd != sfd) {
WFIFOHEAD(fd,len);
memcpy(WFIFOP(fd,0), buf, len);
WFIFOSET(fd,len);
@@ -4864,8 +5189,8 @@ int mapif_send(int fd, unsigned char *buf, unsigned int len)
{
if (fd >= 0) {
int i;
- ARR_FIND( 0, ARRAYLENGTH(server), i, fd == server[i].fd );
- if( i < ARRAYLENGTH(server) )
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), i, fd == chr->server[i].fd );
+ if( i < ARRAYLENGTH(chr->server) )
{
WFIFOHEAD(fd,len);
memcpy(WFIFOP(fd,0), buf, len);
@@ -4876,9 +5201,17 @@ int mapif_send(int fd, unsigned char *buf, unsigned int len)
return 0;
}
-int broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
+void mapif_send_users_count(int users)
+{
uint8 buf[6];
- int users = count_users();
+ // send number of players to all map-servers
+ WBUFW(buf,0) = 0x2b00;
+ WBUFL(buf,2) = users;
+ mapif->sendall(buf,6);
+}
+
+int char_broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
+ int users = chr->count_users();
// only send an update when needed
static int prev_users = 0;
@@ -4886,19 +5219,13 @@ int broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
return 0;
prev_users = users;
- if( login_fd > 0 && session[login_fd] )
+ if( chr->login_fd > 0 && session[chr->login_fd] )
{
// send number of user to login server
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x2714;
- WFIFOL(login_fd,2) = users;
- WFIFOSET(login_fd,6);
+ loginif->send_users_count(users);
}
- // send number of players to all map-servers
- WBUFW(buf,0) = 0x2b00;
- WBUFL(buf,2) = users;
- mapif_sendall(buf,6);
+ mapif->send_users_count(users);
return 0;
}
@@ -4907,78 +5234,67 @@ int broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
* Load this character's account id into the 'online accounts' packet
* @see DBApply
*/
-static int send_accounts_tologin_sub(DBKey key, DBData *data, va_list ap)
+static int char_send_accounts_tologin_sub(DBKey key, DBData *data, va_list ap)
{
struct online_char_data* character = DB->data2ptr(data);
int* i = va_arg(ap, int*);
if(character->server > -1)
{
- WFIFOL(login_fd,8+(*i)*4) = character->account_id;
+ WFIFOL(chr->login_fd,8+(*i)*4) = character->account_id;
(*i)++;
return 1;
}
return 0;
}
-int send_accounts_tologin(int tid, int64 tick, int id, intptr_t data) {
- if (login_fd > 0 && session[login_fd])
+int char_send_accounts_tologin(int tid, int64 tick, int id, intptr_t data) {
+ if (chr->login_fd > 0 && session[chr->login_fd])
{
// send account list to login server
- int users = online_char_db->size(online_char_db);
+ int users = chr->online_char_db->size(chr->online_char_db);
int i = 0;
- WFIFOHEAD(login_fd,8+users*4);
- WFIFOW(login_fd,0) = 0x272d;
- online_char_db->foreach(online_char_db, send_accounts_tologin_sub, &i, users);
- WFIFOW(login_fd,2) = 8+ i*4;
- WFIFOL(login_fd,4) = i;
- WFIFOSET(login_fd,WFIFOW(login_fd,2));
+ WFIFOHEAD(chr->login_fd,8+users*4);
+ WFIFOW(chr->login_fd,0) = 0x272d;
+ chr->online_char_db->foreach(chr->online_char_db, chr->send_accounts_tologin_sub, &i, users);
+ WFIFOW(chr->login_fd,2) = 8+ i*4;
+ WFIFOL(chr->login_fd,4) = i;
+ WFIFOSET(chr->login_fd,WFIFOW(chr->login_fd,2));
}
return 0;
}
-int check_connect_login_server(int tid, int64 tick, int id, intptr_t data) {
- if (login_fd > 0 && session[login_fd] != NULL)
+int char_check_connect_login_server(int tid, int64 tick, int id, intptr_t data) {
+ if (chr->login_fd > 0 && session[chr->login_fd] != NULL)
return 0;
ShowInfo("Attempt to connect to login-server...\n");
- if ( (login_fd = make_connection(login_ip, login_port, NULL)) == -1) { //Try again later. [Skotlex]
- login_fd = 0;
+ if ( (chr->login_fd = make_connection(login_ip, login_port, NULL)) == -1) { //Try again later. [Skotlex]
+ chr->login_fd = 0;
return 0;
}
-
- session[login_fd]->func_parse = parse_fromlogin;
- session[login_fd]->flag.server = 1;
- realloc_fifo(login_fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
- WFIFOHEAD(login_fd,86);
- WFIFOW(login_fd,0) = 0x2710;
- memcpy(WFIFOP(login_fd,2), userid, 24);
- memcpy(WFIFOP(login_fd,26), passwd, 24);
- WFIFOL(login_fd,50) = 0;
- WFIFOL(login_fd,54) = htonl(char_ip);
- WFIFOW(login_fd,58) = htons(char_port);
- memcpy(WFIFOP(login_fd,60), server_name, 20);
- WFIFOW(login_fd,80) = 0;
- WFIFOW(login_fd,82) = char_server_type;
- WFIFOW(login_fd,84) = char_new_display; //only display (New) if they want to [Kevin]
- WFIFOSET(login_fd,86);
+
+ session[chr->login_fd]->func_parse = chr->parse_fromlogin;
+ session[chr->login_fd]->flag.server = 1;
+ realloc_fifo(chr->login_fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
+
+ loginif->connect_to_server();
return 1;
}
//------------------------------------------------
-//Invoked 15 seconds after mapif_disconnectplayer in case the map server doesn't
+//Invoked 15 seconds after mapif->disconnectplayer in case the map server doesn't
//replies/disconnect the player we tried to kick. [Skotlex]
//------------------------------------------------
-static int chardb_waiting_disconnect(int tid, int64 tick, int id, intptr_t data) {
+static int char_waiting_disconnect(int tid, int64 tick, int id, intptr_t data) {
struct online_char_data* character;
- if ((character = (struct online_char_data*)idb_get(online_char_db, id)) != NULL && character->waiting_disconnect == tid)
- { //Mark it offline due to timeout.
+ if ((character = (struct online_char_data*)idb_get(chr->online_char_db, id)) != NULL && character->waiting_disconnect == tid) {
+ //Mark it offline due to timeout.
character->waiting_disconnect = INVALID_TIMER;
- set_char_offline(character->char_id, character->account_id);
+ chr->set_char_offline(character->char_id, character->account_id);
}
return 0;
}
@@ -4986,21 +5302,21 @@ static int chardb_waiting_disconnect(int tid, int64 tick, int id, intptr_t data)
/**
* @see DBApply
*/
-static int online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
+static int char_online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
{
struct online_char_data *character= DB->data2ptr(data);
if (character->fd != -1)
return 0; //Character still connected
if (character->server == -2) //Unknown server.. set them offline
- set_char_offline(character->char_id, character->account_id);
+ chr->set_char_offline(character->char_id, character->account_id);
if (character->server < 0)
//Free data from players that have not been online for a while.
- db_remove(online_char_db, key);
+ db_remove(chr->online_char_db, key);
return 0;
}
-static int online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
- online_char_db->foreach(online_char_db, online_data_cleanup_sub);
+static int char_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
+ chr->online_char_db->foreach(chr->online_char_db, chr->online_data_cleanup_sub);
return 0;
}
@@ -5058,7 +5374,7 @@ int char_lan_config_read(const char *lancfgName)
return 0;
}
-void sql_config_read(const char* cfgName)
+void char_sql_config_read(const char* cfgName)
{
char line[1024], w1[1024], w2[1024];
FILE* fp;
@@ -5148,14 +5464,16 @@ void sql_config_read(const char* cfgName)
safestrncpy(acc_reg_str_db, w2, sizeof(acc_reg_str_db));
else if(!strcmpi(w1,"acc_reg_num_db"))
safestrncpy(acc_reg_num_db, w2, sizeof(acc_reg_num_db));
-
//support the import command, just like any other config
else if(!strcmpi(w1,"import"))
- sql_config_read(w2);
+ chr->sql_config_read(w2);
+ else
+ HPM->parseConf(w1, w2, HPCT_CHAR_INTER);
}
fclose(fp);
ShowInfo("Done reading %s.\n", cfgName);
}
+
void char_config_dispatch(char *w1, char *w2) {
bool (*dispatch_to[]) (char *w1, char *w2) = {
/* as many as it needs */
@@ -5166,7 +5484,10 @@ void char_config_dispatch(char *w1, char *w2) {
if( (*dispatch_to[i])(w1,w2) )
break;/* we found who this belongs to, can stop */
}
+ if (i == len)
+ HPM->parseConf(w1, w2, HPCT_CHAR);
}
+
int char_config_read(const char* cfgName)
{
char line[1024], w1[1024], w2[1024];
@@ -5195,11 +5516,11 @@ int char_config_read(const char* cfgName)
} else if(strcmpi(w1,"stdout_with_ansisequence")==0){
stdout_with_ansisequence = config_switch(w2);
} else if (strcmpi(w1, "userid") == 0) {
- safestrncpy(userid, w2, sizeof(userid));
+ safestrncpy(chr->userid, w2, sizeof(chr->userid));
} else if (strcmpi(w1, "passwd") == 0) {
- safestrncpy(passwd, w2, sizeof(passwd));
+ safestrncpy(chr->passwd, w2, sizeof(chr->passwd));
} else if (strcmpi(w1, "server_name") == 0) {
- safestrncpy(server_name, w2, sizeof(server_name));
+ safestrncpy(chr->server_name, w2, sizeof(chr->server_name));
} else if (strcmpi(w1, "wisp_server_name") == 0) {
if (strlen(w2) >= 4) {
safestrncpy(wisp_server_name, w2, sizeof(wisp_server_name));
@@ -5214,11 +5535,11 @@ int char_config_read(const char* cfgName)
} else if (strcmpi(w1, "login_port") == 0) {
login_port = atoi(w2);
} else if (strcmpi(w1, "char_ip") == 0) {
- char_ip = host2ip(w2);
- if (char_ip) {
+ chr->ip = host2ip(w2);
+ if (chr->ip) {
char ip_str[16];
safestrncpy(char_ip_str, w2, sizeof(char_ip_str));
- ShowStatus("Character server IP address : %s -> %s\n", w2, ip2str(char_ip, ip_str));
+ ShowStatus("Character server IP address : %s -> %s\n", w2, ip2str(chr->ip, ip_str));
}
} else if (strcmpi(w1, "bind_ip") == 0) {
bind_ip = host2ip(w2);
@@ -5228,13 +5549,13 @@ int char_config_read(const char* cfgName)
ShowStatus("Character server binding IP address : %s -> %s\n", w2, ip2str(bind_ip, ip_str));
}
} else if (strcmpi(w1, "char_port") == 0) {
- char_port = atoi(w2);
+ chr->port = atoi(w2);
} else if (strcmpi(w1, "char_server_type") == 0) {
- char_server_type = atoi(w2);
+ chr->server_type = atoi(w2);
} else if (strcmpi(w1, "char_new") == 0) {
char_new = (bool)atoi(w2);
} else if (strcmpi(w1, "char_new_display") == 0) {
- char_new_display = atoi(w2);
+ chr->new_display = atoi(w2);
} else if (strcmpi(w1, "max_connect_user") == 0) {
max_connect_user = atoi(w2);
if (max_connect_user < -1)
@@ -5277,7 +5598,7 @@ int char_config_read(const char* cfgName)
// Format is: id1,quantity1,stackable1,idN,quantityN,stackableN
if( i%3 )
{
- ShowWarning("char_config_read: There are not enough parameters in start_items, ignoring last item...\n");
+ ShowWarning("chr->config_read: There are not enough parameters in start_items, ignoring last item...\n");
if( i%3 == 1 )
start_items[i-1] = 0;
else
@@ -5287,8 +5608,8 @@ int char_config_read(const char* cfgName)
start_zeny = atoi(w2);
if (start_zeny < 0)
start_zeny = 0;
- } else if(strcmpi(w1,"log_char")==0) { //log char or not [devil]
- log_char = atoi(w2);
+ } else if(strcmpi(w1,"log_char")==0) {
+ log_char = atoi(w2); //log char or not [devil]
} else if (strcmpi(w1, "unknown_char_name") == 0) {
safestrncpy(unknown_char_name, w2, sizeof(unknown_char_name));
unknown_char_name[NAME_LENGTH-1] = '\0';
@@ -5329,9 +5650,9 @@ int char_config_read(const char* cfgName)
} else if (strcmpi(w1, "char_maintenance_min_group_id") == 0) {
char_maintenance_min_group_id = atoi(w2);
} else if (strcmpi(w1, "import") == 0) {
- char_config_read(w2);
+ chr->config_read(w2);
} else
- char_config_dispatch(w1,w2);
+ chr->config_dispatch(w1,w2);
}
fclose(fp);
@@ -5341,40 +5662,44 @@ int char_config_read(const char* cfgName)
int do_final(void) {
int i;
-
+
ShowStatus("Terminating...\n");
HPM->event(HPET_FINAL);
-
- set_all_offline(-1);
- set_all_offline_sql();
- inter_final();
+ chr->set_all_offline(-1);
+ chr->set_all_offline_sql();
+
+ inter->final();
flush_fifos();
do_final_mapif();
- do_final_loginif();
+ loginif->final();
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s`", ragsrvinfo_db) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s`", ragsrvinfo_db) )
+ Sql_ShowDebug(inter->sql_handle);
- char_db_->destroy(char_db_, NULL);
- online_char_db->destroy(online_char_db, NULL);
+ chr->char_db_->destroy(chr->char_db_, NULL);
+ chr->online_char_db->destroy(chr->online_char_db, NULL);
auth_db->destroy(auth_db, NULL);
- if( char_fd != -1 ) {
- do_close(char_fd);
- char_fd = -1;
+ if( chr->char_fd != -1 ) {
+ do_close(chr->char_fd);
+ chr->char_fd = -1;
}
- SQL->Free(sql_handle);
+ HPM_char_do_final();
+
+ SQL->Free(inter->sql_handle);
mapindex->final();
for(i = 0; i < MAX_MAP_SERVERS; i++ )
- if( server[i].map )
- aFree(server[i].map);
-
+ if( chr->server[i].map )
+ aFree(chr->server[i].map);
+
+ HPM->event(HPET_POST_FINAL);
+
ShowStatus("Finished.\n");
return EXIT_SUCCESS;
}
@@ -5391,7 +5716,6 @@ void set_server_type(void) {
SERVER_TYPE = SERVER_TYPE_CHAR;
}
-
/// Called when a terminate signal is received.
void do_shutdown(void)
{
@@ -5401,52 +5725,92 @@ void do_shutdown(void)
runflag = CHARSERVER_ST_SHUTDOWN;
ShowStatus("Shutting down...\n");
// TODO proper shutdown procedure; wait for acks?, kick all characters, ... [FlavoJS]
- for( id = 0; id < ARRAYLENGTH(server); ++id )
- mapif_server_reset(id);
- loginif_check_shutdown();
+ for( id = 0; id < ARRAYLENGTH(chr->server); ++id )
+ mapif->server_reset(id);
+ loginif->check_shutdown();
flush_fifos();
runflag = CORE_ST_STOP;
}
}
+void char_hp_symbols(void) {
+ HPM->share(mapindex,"mapindex");
+ HPM->share(chr, "chr");
+ HPM->share(geoip, "geoip");
+ HPM->share(inter_auction, "inter_auction");
+ HPM->share(inter_elemental, "inter_elemental");
+ HPM->share(inter_guild, "inter_guild");
+ HPM->share(inter_homunculus, "inter_homunculus");
+ HPM->share(inter_mail, "inter_mail");
+ HPM->share(inter_mercenary, "inter_mercenary");
+ HPM->share(inter_party, "inter_party");
+ HPM->share(inter_pet, "inter_pet");
+ HPM->share(inter_quest, "inter_quest");
+ HPM->share(inter_storage, "inter_storage");
+ HPM->share(inter, "inter");
+ HPM->share(loginif, "loginif");
+ HPM->share(mapif, "mapif");
+ HPM->share(pincode, "pincode");
+ HPM->share(inter->sql_handle, "sql_handle");
+}
int do_init(int argc, char **argv) {
int i;
memset(&skillid2idx, 0, sizeof(skillid2idx));
+ char_load_defaults();
+
for(i = 0; i < MAX_MAP_SERVERS; i++ )
- server[i].map = NULL;
+ chr->server[i].map = NULL;
+
+ HPM_char_do_init();
+ HPM->symbol_defaults_sub = char_hp_symbols;
+#if 0
+ /* TODO: Move to common code */
+ for( i = 1; i < argc; i++ ) {
+ const char* arg = argv[i];
+ if( strcmp(arg, "--load-plugin") == 0 ) {
+ if( map->arg_next_value(arg, i, argc, true) ) {
+ RECREATE(load_extras, char *, ++load_extras_count);
+ load_extras[load_extras_count-1] = argv[++i];
+ }
+ }
+ }
+ HPM->config_read((const char * const *)load_extras, load_extras_count);
+ if (load_extras) {
+ aFree(load_extras);
+ load_extras = NULL;
+ load_extras_count = 0;
+ }
+#endif
+ HPM->config_read(NULL, 0);
+ HPM->event(HPET_PRE_INIT);
- mapindex_defaults();
- pincode_defaults();
-
//Read map indexes
mapindex->init();
start_point.map = mapindex->name2id("new_zone01");
-
- char_config_read((argc < 2) ? CHAR_CONF_NAME : argv[1]);
- char_lan_config_read((argc > 3) ? argv[3] : LAN_CONF_NAME);
- sql_config_read(SQL_CONF_NAME);
- if (strcmp(userid, "s1")==0 && strcmp(passwd, "p1")==0) {
+ chr->config_read((argc < 2) ? CHAR_CONF_NAME : argv[1]);
+ chr->lan_config_read((argc > 3) ? argv[3] : LAN_CONF_NAME);
+ chr->sql_config_read(SQL_CONF_NAME);
+
+ if (strcmp(chr->userid, "s1")==0 && strcmp(chr->passwd, "p1")==0) {
ShowWarning("Using the default user/password s1/p1 is NOT RECOMMENDED.\n");
ShowNotice("Please edit your 'login' table to create a proper inter-server user/password (gender 'S')\n");
ShowNotice("And then change the user/password to use in conf/char-server.conf (or conf/import/char_conf.txt)\n");
}
-
- inter_init_sql((argc > 2) ? argv[2] : inter_cfgName); // inter server configuration
+
+ inter->init_sql((argc > 2) ? argv[2] : inter_cfgName); // inter server configuration
auth_db = idb_alloc(DB_OPT_RELEASE_DATA);
- online_char_db = idb_alloc(DB_OPT_RELEASE_DATA);
+ chr->online_char_db = idb_alloc(DB_OPT_RELEASE_DATA);
- HPM->share(sql_handle,"sql_handle");
- HPM->config_read(NULL, 0);
HPM->event(HPET_INIT);
-
- mmo_char_sql_init();
- char_read_fame_list(); //Read fame lists.
- if ((sockt->naddr_ != 0) && (!login_ip || !char_ip)) {
+ chr->mmo_char_sql_init();
+ chr->read_fame_list(); //Read fame lists.
+
+ if ((sockt->naddr_ != 0) && (!login_ip || !chr->ip)) {
char ip_str[16];
ip2str(sockt->addr_[0], ip_str);
@@ -5458,52 +5822,52 @@ int do_init(int argc, char **argv) {
safestrncpy(login_ip_str, ip_str, sizeof(login_ip_str));
login_ip = str2ip(login_ip_str);
}
- if (!char_ip) {
+ if (!chr->ip) {
safestrncpy(char_ip_str, ip_str, sizeof(char_ip_str));
- char_ip = str2ip(char_ip_str);
+ chr->ip = str2ip(char_ip_str);
}
}
- do_init_loginif();
+ loginif->init();
do_init_mapif();
// periodically update the overall user count on all mapservers + login server
- timer->add_func_list(broadcast_user_count, "broadcast_user_count");
- timer->add_interval(timer->gettick() + 1000, broadcast_user_count, 0, 0, 5 * 1000);
+ timer->add_func_list(chr->broadcast_user_count, "chr->broadcast_user_count");
+ timer->add_interval(timer->gettick() + 1000, chr->broadcast_user_count, 0, 0, 5 * 1000);
- // Timer to clear (online_char_db)
- timer->add_func_list(chardb_waiting_disconnect, "chardb_waiting_disconnect");
+ // Timer to clear (chr->online_char_db)
+ timer->add_func_list(chr->waiting_disconnect, "chr->waiting_disconnect");
// Online Data timers (checking if char still connected)
- timer->add_func_list(online_data_cleanup, "online_data_cleanup");
- timer->add_interval(timer->gettick() + 1000, online_data_cleanup, 0, 0, 600 * 1000);
+ timer->add_func_list(chr->online_data_cleanup, "chr->online_data_cleanup");
+ timer->add_interval(timer->gettick() + 1000, chr->online_data_cleanup, 0, 0, 600 * 1000);
//Cleaning the tables for NULL entries @ startup [Sirius]
//Chardb clean
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '0'", char_db) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '0'", char_db) )
+ Sql_ShowDebug(inter->sql_handle);
//guilddb clean
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_lv` = '0' AND `max_member` = '0' AND `exp` = '0' AND `next_exp` = '0' AND `average_lv` = '0'", guild_db) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_lv` = '0' AND `max_member` = '0' AND `exp` = '0' AND `next_exp` = '0' AND `average_lv` = '0'", guild_db) )
+ Sql_ShowDebug(inter->sql_handle);
//guildmemberdb clean
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '0' AND `account_id` = '0' AND `char_id` = '0'", guild_member_db) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '0' AND `account_id` = '0' AND `char_id` = '0'", guild_member_db) )
+ Sql_ShowDebug(inter->sql_handle);
- set_defaultparse(parse_char);
-
- if( (char_fd = make_listen_bind(bind_ip,char_port)) == -1 ) {
- ShowFatalError("Failed to bind to port '"CL_WHITE"%d"CL_RESET"'\n",char_port);
+ set_defaultparse(chr->parse_char);
+
+ if( (chr->char_fd = make_listen_bind(bind_ip,chr->port)) == -1 ) {
+ ShowFatalError("Failed to bind to port '"CL_WHITE"%d"CL_RESET"'\n",chr->port);
exit(EXIT_FAILURE);
}
-
- Sql_HerculesUpdateCheck(sql_handle);
+
+ Sql_HerculesUpdateCheck(inter->sql_handle);
#ifdef CONSOLE_INPUT
- console->input->setSQL(sql_handle);
+ console->input->setSQL(inter->sql_handle);
#endif
- ShowStatus("The char-server is "CL_GREEN"ready"CL_RESET" (Server is listening on the port %d).\n\n", char_port);
-
+ ShowStatus("The char-server is "CL_GREEN"ready"CL_RESET" (Server is listening on the port %d).\n\n", chr->port);
+
if( runflag != CORE_ST_STOP )
{
shutdown_callback = do_shutdown;
@@ -5511,6 +5875,206 @@ int do_init(int argc, char **argv) {
}
HPM->event(HPET_READY);
-
+
return 0;
}
+
+void char_load_defaults(void)
+{
+ mapindex_defaults();
+ pincode_defaults();
+ char_defaults();
+ loginif_defaults();
+ mapif_defaults();
+ inter_auction_defaults();
+ inter_elemental_defaults();
+ inter_guild_defaults();
+ inter_homunculus_defaults();
+ inter_mail_defaults();
+ inter_mercenary_defaults();
+ inter_party_defaults();
+ inter_pet_defaults();
+ inter_quest_defaults();
+ inter_storage_defaults();
+ inter_defaults();
+ geoip_defaults();
+}
+
+void char_defaults(void)
+{
+ chr = &char_s;
+
+ memset(chr->server, 0, sizeof(chr->server));
+
+ chr->login_fd = 0;
+ chr->char_fd = -1;
+ chr->online_char_db = NULL;
+ chr->char_db_ = NULL;
+
+ memset(chr->userid, 0, sizeof(chr->userid));
+ memset(chr->passwd, 0, sizeof(chr->passwd));
+
+ chr->ip = 0;
+ chr->port = 6121;
+ chr->server_type = 0;
+ chr->new_display = 0;
+
+ chr->waiting_disconnect = char_waiting_disconnect;
+ chr->delete_char_sql = char_delete_char_sql;
+ chr->create_online_char_data = char_create_online_char_data;
+ chr->set_account_online = char_set_account_online;
+ chr->set_account_offline = char_set_account_offline;
+ chr->set_char_charselect = char_set_char_charselect;
+ chr->set_char_online = char_set_char_online;
+ chr->set_char_offline = char_set_char_offline;
+ chr->db_setoffline = char_db_setoffline;
+ chr->db_kickoffline = char_db_kickoffline;
+ chr->set_login_all_offline = char_set_login_all_offline;
+ chr->set_all_offline = char_set_all_offline;
+ chr->set_all_offline_sql = char_set_all_offline_sql;
+ chr->create_charstatus = char_create_charstatus;
+ chr->mmo_char_tosql = char_mmo_char_tosql;
+ chr->memitemdata_to_sql = char_memitemdata_to_sql;
+ chr->inventory_to_sql = char_inventory_to_sql;
+ chr->mmo_chars_fromsql = char_mmo_chars_fromsql;
+ chr->mmo_char_fromsql = char_mmo_char_fromsql;
+ chr->mmo_char_sql_init = char_mmo_char_sql_init;
+ chr->char_slotchange = char_char_slotchange;
+ chr->rename_char_sql = char_rename_char_sql;
+ chr->check_char_name = char_check_char_name;
+ chr->make_new_char_sql = char_make_new_char_sql;
+ chr->divorce_char_sql = char_divorce_char_sql;
+ chr->count_users = char_count_users;
+ chr->mmo_char_tobuf = char_mmo_char_tobuf;
+ chr->mmo_char_send099d = char_mmo_char_send099d;
+ chr->mmo_char_send_ban_list = char_mmo_char_send_ban_list;
+ chr->mmo_char_send_slots_info = char_mmo_char_send_slots_info;
+ chr->mmo_char_send_characters = char_mmo_char_send_characters;
+ chr->char_married = char_char_married;
+ chr->char_child = char_char_child;
+ chr->char_family = char_char_family;
+ chr->disconnect_player = char_disconnect_player;
+ chr->authfail_fd = char_authfail_fd;
+ chr->request_account_data = char_request_account_data;
+ chr->auth_ok = char_auth_ok;
+ chr->ping_login_server = char_ping_login_server;
+ chr->parse_fromlogin_connection_state = char_parse_fromlogin_connection_state;
+ chr->auth_error = char_auth_error;
+ chr->parse_fromlogin_auth_state = char_parse_fromlogin_auth_state;
+ chr->parse_fromlogin_account_data = char_parse_fromlogin_account_data;
+ chr->parse_fromlogin_login_pong = char_parse_fromlogin_login_pong;
+ chr->changesex = char_changesex;
+ chr->parse_fromlogin_changesex_reply = char_parse_fromlogin_changesex_reply;
+ chr->parse_fromlogin_account_reg2 = char_parse_fromlogin_account_reg2;
+ chr->parse_fromlogin_ban = char_parse_fromlogin_ban;
+ chr->parse_fromlogin_kick = char_parse_fromlogin_kick;
+ chr->update_ip = char_update_ip;
+ chr->parse_fromlogin_update_ip = char_parse_fromlogin_update_ip;
+ chr->parse_fromlogin_accinfo2_failed = char_parse_fromlogin_accinfo2_failed;
+ chr->parse_fromlogin_accinfo2_ok = char_parse_fromlogin_accinfo2_ok;
+ chr->parse_fromlogin = char_parse_fromlogin;
+ chr->request_accreg2 = char_request_accreg2;
+ chr->global_accreg_to_login_start = char_global_accreg_to_login_start;
+ chr->global_accreg_to_login_send = char_global_accreg_to_login_send;
+ chr->global_accreg_to_login_add = char_global_accreg_to_login_add;
+ chr->read_fame_list = char_read_fame_list;
+ chr->send_fame_list = char_send_fame_list;
+ chr->update_fame_list = char_update_fame_list;
+ chr->loadName = char_loadName;
+ chr->parse_frommap_datasync = char_parse_frommap_datasync;
+ chr->parse_frommap_skillid2idx = char_parse_frommap_skillid2idx;
+ chr->map_received_ok = char_map_received_ok;
+ chr->send_maps = char_send_maps;
+ chr->parse_frommap_map_names = char_parse_frommap_map_names;
+ chr->send_scdata = char_send_scdata;
+ chr->parse_frommap_request_scdata = char_parse_frommap_request_scdata;
+ chr->parse_frommap_set_users_count = char_parse_frommap_set_users_count;
+ chr->parse_frommap_set_users = char_parse_frommap_set_users;
+ chr->save_character_ack = char_save_character_ack;
+ chr->parse_frommap_save_character = char_parse_frommap_save_character;
+ chr->select_ack = char_select_ack;
+ chr->parse_frommap_char_select_req = char_parse_frommap_char_select_req;
+ chr->change_map_server_ack = char_change_map_server_ack;
+ chr->parse_frommap_change_map_server = char_parse_frommap_change_map_server;
+ chr->parse_frommap_remove_friend = char_parse_frommap_remove_friend;
+ chr->char_name_ack = char_char_name_ack;
+ chr->parse_frommap_char_name_request = char_parse_frommap_char_name_request;
+ chr->parse_frommap_change_email = char_parse_frommap_change_email;
+ chr->ban = char_ban;
+ chr->unban = char_unban;
+ chr->ask_name_ack = char_ask_name_ack;
+ chr->parse_frommap_change_account = char_parse_frommap_change_account;
+ chr->parse_frommap_fame_list = char_parse_frommap_fame_list;
+ chr->parse_frommap_divorce_char = char_parse_frommap_divorce_char;
+ chr->parse_frommap_ragsrvinfo = char_parse_frommap_ragsrvinfo;
+ chr->parse_frommap_set_char_offline = char_parse_frommap_set_char_offline;
+ chr->parse_frommap_set_all_offline = char_parse_frommap_set_all_offline;
+ chr->parse_frommap_set_char_online = char_parse_frommap_set_char_online;
+ chr->parse_frommap_build_fame_list = char_parse_frommap_build_fame_list;
+ chr->parse_frommap_save_status_change_data = char_parse_frommap_save_status_change_data;
+ chr->send_pong = char_send_pong;
+ chr->parse_frommap_ping = char_parse_frommap_ping;
+ chr->map_auth_ok = char_map_auth_ok;
+ chr->map_auth_failed = char_map_auth_failed;
+ chr->parse_frommap_auth_request = char_parse_frommap_auth_request;
+ chr->parse_frommap_update_ip = char_parse_frommap_update_ip;
+ chr->parse_frommap_request_stats_report = char_parse_frommap_request_stats_report;
+ chr->parse_frommap_scdata_update = char_parse_frommap_scdata_update;
+ chr->parse_frommap_scdata_delete = char_parse_frommap_scdata_delete;
+ chr->parse_frommap = char_parse_frommap;
+ chr->search_mapserver = char_search_mapserver;
+ chr->mapif_init = char_mapif_init;
+ chr->lan_subnetcheck = char_lan_subnetcheck;
+ chr->delete2_ack = char_delete2_ack;
+ chr->delete2_accept_actual_ack = char_delete2_accept_actual_ack;
+ chr->delete2_accept_ack = char_delete2_accept_ack;
+ chr->delete2_cancel_ack = char_delete2_cancel_ack;
+ chr->delete2_req = char_delete2_req;
+ chr->delete2_accept = char_delete2_accept;
+ chr->delete2_cancel = char_delete2_cancel;
+ chr->send_account_id = char_send_account_id;
+ chr->parse_char_connect = char_parse_char_connect;
+ chr->send_map_info = char_send_map_info;
+ chr->send_wait_char_server = char_send_wait_char_server;
+ chr->search_default_maps_mapserver = char_search_default_maps_mapserver;
+ chr->parse_char_select = char_parse_char_select;
+ chr->creation_failed = char_creation_failed;
+ chr->creation_ok = char_creation_ok;
+ chr->parse_char_create_new_char = char_parse_char_create_new_char;
+ chr->delete_char_failed = char_delete_char_failed;
+ chr->delete_char_ok = char_delete_char_ok;
+ chr->parse_char_delete_char = char_parse_char_delete_char;
+ chr->parse_char_ping = char_parse_char_ping;
+ chr->allow_rename = char_allow_rename;
+ chr->parse_char_rename_char = char_parse_char_rename_char;
+ chr->parse_char_rename_char2 = char_parse_char_rename_char2;
+ chr->rename_char_ack = char_rename_char_ack;
+ chr->parse_char_rename_char_confirm = char_parse_char_rename_char_confirm;
+ chr->captcha_notsupported = char_captcha_notsupported;
+ chr->parse_char_request_captcha = char_parse_char_request_captcha;
+ chr->parse_char_check_captcha = char_parse_char_check_captcha;
+ chr->parse_char_delete2_req = char_parse_char_delete2_req;
+ chr->parse_char_delete2_accept = char_parse_char_delete2_accept;
+ chr->parse_char_delete2_cancel = char_parse_char_delete2_cancel;
+ chr->login_map_server_ack = char_login_map_server_ack;
+ chr->parse_char_login_map_server = char_parse_char_login_map_server;
+ chr->parse_char_pincode_check = char_parse_char_pincode_check;
+ chr->parse_char_pincode_window = char_parse_char_pincode_window;
+ chr->parse_char_pincode_change = char_parse_char_pincode_change;
+ chr->parse_char_pincode_first_pin = char_parse_char_pincode_first_pin;
+ chr->parse_char_request_chars = char_parse_char_request_chars;
+ chr->change_character_slot_ack = char_change_character_slot_ack;
+ chr->parse_char_move_character = char_parse_char_move_character;
+ chr->parse_char_unknown_packet = char_parse_char_unknown_packet;
+ chr->parse_char = char_parse_char;
+ chr->broadcast_user_count = char_broadcast_user_count;
+ chr->send_accounts_tologin_sub = char_send_accounts_tologin_sub;
+ chr->send_accounts_tologin = char_send_accounts_tologin;
+ chr->check_connect_login_server = char_check_connect_login_server;
+ chr->online_data_cleanup_sub = char_online_data_cleanup_sub;
+ chr->online_data_cleanup = char_online_data_cleanup;
+ chr->lan_config_read = char_lan_config_read;
+ chr->sql_config_read = char_sql_config_read;
+ chr->config_dispatch = char_config_dispatch;
+ chr->config_read = char_config_read;
+}
diff --git a/src/char/char.h b/src/char/char.h
index 5a70d2ca7..a6707a7f9 100644
--- a/src/char/char.h
+++ b/src/char/char.h
@@ -5,6 +5,7 @@
#ifndef COMMON_CHAR_H
#define COMMON_CHAR_H
+#include "../common/cbasetypes.h"
#include "../common/core.h" // CORE_ST_LAST
#include "../common/db.h"
@@ -14,8 +15,6 @@ enum E_CHARSERVER_ST {
CHARSERVER_ST_LAST
};
-struct mmo_charstatus;
-
struct char_session_data {
bool auth; // whether the session is authed or not
int account_id, login_id1, login_id2, sex;
@@ -44,7 +43,14 @@ struct online_char_data {
int pincode_enable;
};
-DBMap* online_char_db; // int account_id -> struct online_char_data*
+struct mmo_map_server {
+ int fd;
+ uint32 ip;
+ uint16 port;
+ int users;
+ unsigned short *map;
+ unsigned short maps;
+};
#define MAX_MAP_SERVERS 2
@@ -57,21 +63,6 @@ enum {
TABLE_GUILD_STORAGE,
};
-int memitemdata_to_sql(const struct item items[], int max, int id, int tableswitch);
-
-int mapif_sendall(unsigned char *buf,unsigned int len);
-int mapif_sendallwos(int fd,unsigned char *buf,unsigned int len);
-int mapif_send(int fd,unsigned char *buf,unsigned int len);
-void mapif_on_parse_accinfo(int account_id,int u_fd, int aid, int castergroup, int map_fd);
-
-void disconnect_player(int account_id);
-
-int char_married(int pl1,int pl2);
-int char_child(int parent_id, int child_id);
-int char_family(int pl1,int pl2,int pl3);
-
-int request_accreg2(int account_id, int char_id);
-int login_fd;
extern int char_name_option;
extern char char_name_letters[];
extern bool char_gm_read;
@@ -119,8 +110,198 @@ extern int db_use_sql_mob_skill_db;
extern int guild_exp_rate;
extern int log_inter;
-void global_accreg_to_login_start (int account_id, int char_id);
-void global_accreg_to_login_send (void);
-void global_accreg_to_login_add (const char *key, unsigned int index, intptr_t val, bool is_string);
+void char_load_defaults();
+void char_defaults();
+
+struct char_auth_node {
+ int account_id;
+ int char_id;
+ uint32 login_id1;
+ uint32 login_id2;
+ uint32 ip;
+ int sex;
+ time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited)
+ int group_id;
+ unsigned changing_mapservers : 1;
+};
+
+/**
+ * char interface
+ **/
+struct char_interface {
+ struct mmo_map_server server[MAX_MAP_SERVERS];
+ int login_fd;
+ int char_fd;
+ DBMap* online_char_db; // int account_id -> struct online_char_data*
+ DBMap* char_db_;
+ char userid[NAME_LENGTH];
+ char passwd[NAME_LENGTH];
+ char server_name[20];
+ uint32 ip;
+ uint16 port;
+ int server_type;
+ int new_display;
+
+ int (*waiting_disconnect) (int tid, int64 tick, int id, intptr_t data);
+ int (*delete_char_sql) (int char_id);
+ DBData (*create_online_char_data) (DBKey key, va_list args);
+ void (*set_account_online) (int account_id);
+ void (*set_account_offline) (int account_id);
+ void (*set_char_charselect) (int account_id);
+ void (*set_char_online) (int map_id, int char_id, int account_id);
+ void (*set_char_offline) (int char_id, int account_id);
+ int (*db_setoffline) (DBKey key, DBData *data, va_list ap);
+ int (*db_kickoffline) (DBKey key, DBData *data, va_list ap);
+ void (*set_login_all_offline) (void);
+ void (*set_all_offline) (int id);
+ void (*set_all_offline_sql) (void);
+ DBData (*create_charstatus) (DBKey key, va_list args);
+ int (*mmo_char_tosql) (int char_id, struct mmo_charstatus* p);
+ int (*memitemdata_to_sql) (const struct item items[], int max, int id, int tableswitch);
+ int (*inventory_to_sql) (const struct item items[], int max, int id);
+ int (*mmo_chars_fromsql) (struct char_session_data* sd, uint8* buf);
+ int (*mmo_char_fromsql) (int char_id, struct mmo_charstatus* p, bool load_everything);
+ int (*mmo_char_sql_init) (void);
+ bool (*char_slotchange) (struct char_session_data *sd, int fd, unsigned short from, unsigned short to);
+ int (*rename_char_sql) (struct char_session_data *sd, int char_id);
+ int (*check_char_name) (char * name, char * esc_name);
+ int (*make_new_char_sql) (struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style);
+ int (*divorce_char_sql) (int partner_id1, int partner_id2);
+ int (*count_users) (void);
+ int (*mmo_char_tobuf) (uint8* buffer, struct mmo_charstatus* p);
+ void (*mmo_char_send099d) (int fd, struct char_session_data *sd);
+ void (*mmo_char_send_ban_list) (int fd, struct char_session_data *sd);
+ void (*mmo_char_send_slots_info) (int fd, struct char_session_data* sd);
+ int (*mmo_char_send_characters) (int fd, struct char_session_data* sd);
+ int (*char_married) (int pl1, int pl2);
+ int (*char_child) (int parent_id, int child_id);
+ int (*char_family) (int cid1, int cid2, int cid3);
+ void (*disconnect_player) (int account_id);
+ void (*authfail_fd) (int fd, int type);
+ void (*request_account_data) (int account_id);
+ void (*auth_ok) (int fd, struct char_session_data *sd);
+ void (*ping_login_server) (int fd);
+ int (*parse_fromlogin_connection_state) (int fd);
+ void (*auth_error) (int fd, unsigned char flag);
+ void (*parse_fromlogin_auth_state) (int fd);
+ void (*parse_fromlogin_account_data) (int fd);
+ void (*parse_fromlogin_login_pong) (int fd);
+ void (*changesex) (int account_id, int sex);
+ int (*parse_fromlogin_changesex_reply) (int fd);
+ void (*parse_fromlogin_account_reg2) (int fd);
+ void (*parse_fromlogin_ban) (int fd);
+ void (*parse_fromlogin_kick) (int fd);
+ void (*update_ip) (int fd);
+ void (*parse_fromlogin_update_ip) (int fd);
+ void (*parse_fromlogin_accinfo2_failed) (int fd);
+ void (*parse_fromlogin_accinfo2_ok) (int fd);
+ int (*parse_fromlogin) (int fd);
+ int (*request_accreg2) (int account_id, int char_id);
+ void (*global_accreg_to_login_start) (int account_id, int char_id);
+ void (*global_accreg_to_login_send) (void);
+ void (*global_accreg_to_login_add) (const char *key, unsigned int index, intptr_t val, bool is_string);
+ void (*read_fame_list) (void);
+ int (*send_fame_list) (int fd);
+ void (*update_fame_list) (int type, int index, int fame);
+ int (*loadName) (int char_id, char* name);
+ void (*parse_frommap_datasync) (int fd);
+ void (*parse_frommap_skillid2idx) (int fd);
+ void (*map_received_ok) (int fd);
+ void (*send_maps) (int fd, int id, int j);
+ void (*parse_frommap_map_names) (int fd, int id);
+ void (*send_scdata) (int fd, int aid, int cid);
+ void (*parse_frommap_request_scdata) (int fd);
+ void (*parse_frommap_set_users_count) (int fd, int id);
+ void (*parse_frommap_set_users) (int fd, int id);
+ void (*save_character_ack) (int fd, int aid, int cid);
+ void (*parse_frommap_save_character) (int fd, int id);
+ void (*select_ack) (int fd, int account_id, uint8 flag);
+ void (*parse_frommap_char_select_req) (int fd);
+ void (*change_map_server_ack) (int fd, uint8 *data, bool ok);
+ void (*parse_frommap_change_map_server) (int fd);
+ void (*parse_frommap_remove_friend) (int fd);
+ void (*char_name_ack) (int fd, int char_id);
+ void (*parse_frommap_char_name_request) (int fd);
+ void (*parse_frommap_change_email) (int fd);
+ void (*ban) (int account_id, int char_id, time_t *unban_time, short year, short month, short day, short hour, short minute, short second);
+ void (*unban) (int char_id, int *result);
+ void (*ask_name_ack) (int fd, int acc, const char* name, int type, int result);
+ void (*parse_frommap_change_account) (int fd);
+ void (*parse_frommap_fame_list) (int fd);
+ void (*parse_frommap_divorce_char) (int fd);
+ void (*parse_frommap_ragsrvinfo) (int fd);
+ void (*parse_frommap_set_char_offline) (int fd);
+ void (*parse_frommap_set_all_offline) (int fd, int id);
+ void (*parse_frommap_set_char_online) (int fd, int id);
+ void (*parse_frommap_build_fame_list) (int fd);
+ void (*parse_frommap_save_status_change_data) (int fd);
+ void (*send_pong) (int fd);
+ void (*parse_frommap_ping) (int fd);
+ void (*map_auth_ok) (int fd, int account_id, struct char_auth_node* node, struct mmo_charstatus* cd);
+ void (*map_auth_failed) (int fd, int account_id, int char_id, int login_id1, char sex, uint32 ip);
+ void (*parse_frommap_auth_request) (int fd, int id);
+ void (*parse_frommap_update_ip) (int fd, int id);
+ void (*parse_frommap_request_stats_report) (int fd);
+ void (*parse_frommap_scdata_update) (int fd);
+ void (*parse_frommap_scdata_delete) (int fd);
+ int (*parse_frommap) (int fd);
+ int (*search_mapserver) (unsigned short map, uint32 ip, uint16 port);
+ int (*mapif_init) (int fd);
+ int (*lan_subnetcheck) (uint32 ip);
+ void (*delete2_ack) (int fd, int char_id, uint32 result, time_t delete_date);
+ void (*delete2_accept_actual_ack) (int fd, int char_id, uint32 result);
+ void (*delete2_accept_ack) (int fd, int char_id, uint32 result);
+ void (*delete2_cancel_ack) (int fd, int char_id, uint32 result);
+ void (*delete2_req) (int fd, struct char_session_data* sd);
+ void (*delete2_accept) (int fd, struct char_session_data* sd);
+ void (*delete2_cancel) (int fd, struct char_session_data* sd);
+ void (*send_account_id) (int fd, int account_id);
+ void (*parse_char_connect) (int fd, struct char_session_data* sd, uint32 ipl);
+ void (*send_map_info) (int fd, int i, uint32 subnet_map_ip, struct mmo_charstatus *cd);
+ void (*send_wait_char_server) (int fd);
+ int (*search_default_maps_mapserver) (struct mmo_charstatus *cd);
+ void (*parse_char_select) (int fd, struct char_session_data* sd, uint32 ipl);
+ void (*creation_failed) (int fd, int result);
+ void (*creation_ok) (int fd, struct mmo_charstatus *char_dat);
+ void (*parse_char_create_new_char) (int fd, struct char_session_data* sd);
+ void (*delete_char_failed) (int fd, int flag);
+ void (*delete_char_ok) (int fd);
+ void (*parse_char_delete_char) (int fd, struct char_session_data* sd, unsigned short cmd);
+ void (*parse_char_ping) (int fd);
+ void (*allow_rename) (int fd, int flag);
+ void (*parse_char_rename_char) (int fd, struct char_session_data* sd);
+ void (*parse_char_rename_char2) (int fd, struct char_session_data* sd);
+ void (*rename_char_ack) (int fd, int flag);
+ void (*parse_char_rename_char_confirm) (int fd, struct char_session_data* sd);
+ void (*captcha_notsupported) (int fd);
+ void (*parse_char_request_captcha) (int fd);
+ void (*parse_char_check_captcha) (int fd);
+ void (*parse_char_delete2_req) (int fd, struct char_session_data* sd);
+ void (*parse_char_delete2_accept) (int fd, struct char_session_data* sd);
+ void (*parse_char_delete2_cancel) (int fd, struct char_session_data* sd);
+ void (*login_map_server_ack) (int fd, uint8 flag);
+ void (*parse_char_login_map_server) (int fd);
+ void (*parse_char_pincode_check) (int fd, struct char_session_data* sd);
+ void (*parse_char_pincode_window) (int fd, struct char_session_data* sd);
+ void (*parse_char_pincode_change) (int fd, struct char_session_data* sd);
+ void (*parse_char_pincode_first_pin) (int fd, struct char_session_data* sd);
+ void (*parse_char_request_chars) (int fd, struct char_session_data* sd);
+ void (*change_character_slot_ack) (int fd, bool ret);
+ void (*parse_char_move_character) (int fd, struct char_session_data* sd);
+ int (*parse_char_unknown_packet) (int fd, uint32 ipl);
+ int (*parse_char) (int fd);
+ int (*broadcast_user_count) (int tid, int64 tick, int id, intptr_t data);
+ int (*send_accounts_tologin_sub) (DBKey key, DBData *data, va_list ap);
+ int (*send_accounts_tologin) (int tid, int64 tick, int id, intptr_t data);
+ int (*check_connect_login_server) (int tid, int64 tick, int id, intptr_t data);
+ int (*online_data_cleanup_sub) (DBKey key, DBData *data, va_list ap);
+ int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data);
+ int (*lan_config_read) (const char *lancfgName);
+ void (*sql_config_read) (const char* cfgName);
+ void (*config_dispatch) (char *w1, char *w2);
+ int (*config_read) (const char* cfgName);
+};
+
+struct char_interface *chr;
#endif /* COMMON_CHAR_H */
diff --git a/src/char/geoip.c b/src/char/geoip.c
new file mode 100644
index 000000000..4fe03ab07
--- /dev/null
+++ b/src/char/geoip.c
@@ -0,0 +1,187 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#define HERCULES_CORE
+
+#include "geoip.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <sys/stat.h> // for stat/lstat/fstat - [Dekamaster/Ultimate GM Tool]
+
+#include "../common/cbasetypes.h"
+#include "../common/malloc.h"
+#include "../common/showmsg.h"
+
+struct s_geoip geoip_data;
+
+struct geoip_interface geoip_s;
+
+/* [Dekamaster/Nightroad] */
+#define GEOIP_MAX_COUNTRIES 255
+#define GEOIP_STRUCTURE_INFO_MAX_SIZE 20
+#define GEOIP_COUNTRY_BEGIN 16776960
+
+const char * geoip_countryname[GEOIP_MAX_COUNTRIES] = {"Unknown","Asia/Pacific Region","Europe","Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Netherlands Antilles",
+ "Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Azerbaijan","Bosnia and Herzegovina","Barbados",
+ "Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Bermuda","Brunei Darussalam","Bolivia",
+ "Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands","Congo, The Democratic Republic of the",
+ "Central African Republic","Congo","Switzerland","Cote D'Ivoire","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica",
+ "Cuba","Cape Verde","Christmas Island","Cyprus","Czech Republic","Germany","Djibouti","Denmark","Dominica","Dominican Republic",
+ "Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji",
+ "Falkland Islands (Malvinas)","Micronesia, Federated States of","Faroe Islands","France","France, Metropolitan","Gabon","United Kingdom","Grenada","Georgia","French Guiana",
+ "Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala",
+ "Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia",
+ "Ireland","Israel","India","British Indian Ocean Territory","Iraq","Iran, Islamic Republic of","Iceland","Italy","Jamaica","Jordan",
+ "Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait",
+ "Cayman Islands","Kazakhstan","Lao People's Democratic Republic","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania",
+ "Luxembourg","Latvia","Libyan Arab Jamahiriya","Morocco","Monaco","Moldova, Republic of","Madagascar","Marshall Islands","Macedonia","Mali",
+ "Myanmar","Mongolia","Macau","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives",
+ "Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua",
+ "Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia",
+ "Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestinian Territory","Portugal","Palau",
+ "Paraguay","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan",
+ "Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname",
+ "Sao Tome and Principe","El Salvador","Syrian Arab Republic","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand",
+ "Tajikistan","Tokelau","Turkmenistan","Tunisia","Tonga","Timor-Leste","Turkey","Trinidad and Tobago","Tuvalu","Taiwan",
+ "Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands","United States","Uruguay","Uzbekistan","Holy See (Vatican City State)","Saint Vincent and the Grenadines","Venezuela",
+ "Virgin Islands, British","Virgin Islands, U.S.","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","Serbia","South Africa",
+ "Zambia","Montenegro","Zimbabwe","Anonymous Proxy","Satellite Provider","Other","Aland Islands","Guernsey","Isle of Man","Jersey",
+ "Saint Barthelemy", "Saint Martin", "Bonaire, Saint Eustatius and Saba", "South Sudan"};
+
+/* [Dekamaster/Nightroad] */
+/* WHY NOT A DBMAP: There are millions of entries in GeoIP and it has its own algorithm to go quickly through them, a DBMap wouldn't be efficient */
+const char* geoip_getcountry(uint32 ipnum)
+{
+ int depth;
+ unsigned int x;
+ const unsigned char *buf;
+ unsigned int offset = 0;
+
+ if( geoip->data->active == false )
+ return geoip_countryname[0];
+
+ for (depth = 31; depth >= 0; depth--) {
+ buf = geoip->data->cache + (long)6 *offset;
+ if (ipnum & (1 << depth)) {
+ /* Take the right-hand branch */
+ x = (buf[3*1 + 0] << (0*8))
+ + (buf[3*1 + 1] << (1*8))
+ + (buf[3*1 + 2] << (2*8));
+ } else {
+ /* Take the left-hand branch */
+ x = (buf[3*0 + 0] << (0*8))
+ + (buf[3*0 + 1] << (1*8))
+ + (buf[3*0 + 2] << (2*8));
+ }
+ if (x >= GEOIP_COUNTRY_BEGIN) {
+ x = x-GEOIP_COUNTRY_BEGIN;
+
+ if( x > GEOIP_MAX_COUNTRIES )
+ return geoip_countryname[0];
+
+ return geoip_countryname[x];
+ }
+ offset = x;
+ }
+ ShowError("geoip_getcountry(): Error traversing database for ipnum %d\n", ipnum);
+ ShowWarning("geoip_getcountry(): Possible database corruption!\n");
+
+ return geoip_countryname[0];
+}
+
+/**
+ * Disables GeoIP
+ * frees geoip.cache
+ **/
+void geoip_final(bool shutdown)
+{
+ if (geoip->data->cache) {
+ aFree(geoip->data->cache);
+ geoip->data->cache = NULL;
+ }
+
+ if (geoip->data->active) {
+ if (!shutdown)
+ ShowStatus("GeoIP "CL_RED"disabled"CL_RESET".\n");
+ geoip->data->active = false;
+ }
+}
+
+/**
+ * Reads GeoIP database and stores it into memory
+ * geoip.cache should be freed after use!
+ * http://dev.maxmind.com/geoip/legacy/geolite/
+ **/
+void geoip_init(void)
+{
+ int i, fno;
+ char db_type = 1;
+ unsigned char delim[3];
+ struct stat bufa;
+ FILE *db;
+
+ geoip->data->active = true;
+
+ db = fopen("./db/GeoIP.dat","rb");
+ if (db == NULL) {
+ ShowError("geoip_readdb: Error reading GeoIP.dat!\n");
+ geoip->final(false);
+ return;
+ }
+ fno = fileno(db);
+ if (fstat(fno, &bufa) < 0) {
+ ShowError("geoip_readdb: Error stating GeoIP.dat! Error %d\n", errno);
+ geoip->final(false);
+ return;
+ }
+ geoip->data->cache = aMalloc( (sizeof(geoip->data->cache) * bufa.st_size) );
+ if (fread(geoip->data->cache, sizeof(unsigned char), bufa.st_size, db) != bufa.st_size) {
+ ShowError("geoip_cache: Couldn't read all elements!\n");
+ fclose(db);
+ geoip->final(false);
+ return;
+ }
+
+ // Search database type
+ fseek(db, -3l, SEEK_END);
+ for (i = 0; i < GEOIP_STRUCTURE_INFO_MAX_SIZE; i++) {
+ if (fread(delim, sizeof(delim[0]), 3, db) != 3) {
+ db_type = 0;
+ break;
+ }
+ if (delim[0] == 255 && delim[1] == 255 && delim[2] == 255) {
+ if (fread(&db_type, sizeof(db_type), 1, db) != 1) {
+ db_type = 0;
+ }
+ break;
+ } else {
+ fseek(db, -4l, SEEK_CUR);
+ }
+ }
+
+ fclose(db);
+
+ if (db_type != 1) {
+ if (db_type)
+ ShowError("geoip_init(): Database type is not supported %d!\n", db_type);
+ else
+ ShowError("geoip_init(): GeoIP is corrupted!\n");
+
+ geoip->final(false);
+ return;
+ }
+ ShowStatus("Finished Reading "CL_GREEN"GeoIP"CL_RESET" Database.\n");
+}
+
+void geoip_defaults(void)
+{
+ geoip = &geoip_s;
+
+ geoip->data = &geoip_data;
+
+ geoip->getcountry = geoip_getcountry;
+ geoip->final = geoip_final;
+ geoip->init = geoip_init;
+}
diff --git a/src/char/geoip.h b/src/char/geoip.h
new file mode 100644
index 000000000..8cad2f73b
--- /dev/null
+++ b/src/char/geoip.h
@@ -0,0 +1,32 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#ifndef CHAR_GEOIP_H
+#define CHAR_GEOIP_H
+
+#include "../common/cbasetypes.h"
+
+/**
+ * GeoIP information
+ **/
+struct s_geoip {
+ unsigned char *cache; // GeoIP.dat information see geoip->init()
+ bool active;
+};
+
+/**
+ * geoip interface
+ **/
+struct geoip_interface {
+ struct s_geoip *data;
+ const char* (*getcountry) (uint32 ipnum);
+ void (*final) (bool shutdown);
+ void (*init) (void);
+};
+
+struct geoip_interface *geoip;
+
+void geoip_defaults(void);
+
+#endif /* CHAR_GEOIP_H */
diff --git a/src/char/int_auction.c b/src/char/int_auction.c
index ddfef68c2..e28240ca6 100644
--- a/src/char/int_auction.c
+++ b/src/char/int_auction.c
@@ -13,6 +13,7 @@
#include "char.h"
#include "int_mail.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/db.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
@@ -22,16 +23,13 @@
#include "../common/strlib.h"
#include "../common/timer.h"
-static DBMap* auction_db_ = NULL; // int auction_id -> struct auction_data*
+struct inter_auction_interface inter_auction_s;
-void auction_delete(struct auction_data *auction);
-static int auction_end_timer(int tid, int64 tick, int id, intptr_t data);
-
-static int auction_count(int char_id, bool buy)
+static int inter_auction_count(int char_id, bool buy)
{
int i = 0;
struct auction_data *auction;
- DBIterator *iter = db_iterator(auction_db_);
+ DBIterator *iter = db_iterator(inter_auction->db);
for( auction = dbi_first(iter); dbi_exists(iter); auction = dbi_next(iter) )
{
@@ -43,7 +41,7 @@ static int auction_count(int char_id, bool buy)
return i;
}
-void auction_save(struct auction_data *auction)
+void inter_auction_save(struct auction_data *auction)
{
int j;
StringBuf buf;
@@ -59,7 +57,7 @@ void auction_save(struct auction_data *auction)
StrBuf->Printf(&buf, ", `card%d` = '%d'", j, auction->item.card[j]);
StrBuf->Printf(&buf, " WHERE `auction_id` = '%d'", auction->auction_id);
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_SUCCESS != SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, auction->seller_name, strnlen(auction->seller_name, NAME_LENGTH))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, auction->buyer_name, strnlen(auction->buyer_name, NAME_LENGTH))
@@ -73,7 +71,7 @@ void auction_save(struct auction_data *auction)
StrBuf->Destroy(&buf);
}
-unsigned int auction_create(struct auction_data *auction)
+unsigned int inter_auction_create(struct auction_data *auction)
{
int j;
StringBuf buf;
@@ -94,7 +92,7 @@ unsigned int auction_create(struct auction_data *auction)
StrBuf->Printf(&buf, ",'%d'", auction->item.card[j]);
StrBuf->AppendStr(&buf, ")");
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_SUCCESS != SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, auction->seller_name, strnlen(auction->seller_name, NAME_LENGTH))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, auction->buyer_name, strnlen(auction->buyer_name, NAME_LENGTH))
@@ -114,12 +112,12 @@ unsigned int auction_create(struct auction_data *auction)
auction->item.expire_time = 0;
auction->auction_id = (unsigned int)SQL->StmtLastInsertId(stmt);
- auction->auction_end_timer = timer->add( timer->gettick() + tick , auction_end_timer, auction->auction_id, 0);
+ auction->auction_end_timer = timer->add( timer->gettick() + tick , inter_auction->end_timer, auction->auction_id, 0);
ShowInfo("New Auction %u | time left %"PRId64" ms | By %s.\n", auction->auction_id, tick, auction->seller_name);
CREATE(auction_, struct auction_data, 1);
memcpy(auction_, auction, sizeof(struct auction_data));
- idb_put(auction_db_, auction_->auction_id, auction_);
+ idb_put(inter_auction->db, auction_->auction_id, auction_);
}
SQL->StmtFree(stmt);
@@ -128,49 +126,49 @@ unsigned int auction_create(struct auction_data *auction)
return auction->auction_id;
}
-static void mapif_Auction_message(int char_id, unsigned char result)
+void mapif_auction_message(int char_id, unsigned char result)
{
unsigned char buf[74];
-
+
WBUFW(buf,0) = 0x3854;
WBUFL(buf,2) = char_id;
WBUFL(buf,6) = result;
- mapif_sendall(buf,7);
+ mapif->sendall(buf,7);
}
-static int auction_end_timer(int tid, int64 tick, int id, intptr_t data) {
+static int inter_auction_end_timer(int tid, int64 tick, int id, intptr_t data) {
struct auction_data *auction;
- if( (auction = (struct auction_data *)idb_get(auction_db_, id)) != NULL )
+ if( (auction = (struct auction_data *)idb_get(inter_auction->db, id)) != NULL )
{
if( auction->buyer_id )
{
- mail_sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Thanks, you won the auction!.", 0, &auction->item);
- mapif_Auction_message(auction->buyer_id, 6); // You have won the auction
- mail_sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Payment for your auction!.", auction->price, NULL);
+ inter_mail->sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Thanks, you won the auction!.", 0, &auction->item);
+ mapif->auction_message(auction->buyer_id, 6); // You have won the auction
+ inter_mail->sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Payment for your auction!.", auction->price, NULL);
}
else
- mail_sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "No buyers have been found for your auction.", 0, &auction->item);
-
+ inter_mail->sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "No buyers have been found for your auction.", 0, &auction->item);
+
ShowInfo("Auction End: id %u.\n", auction->auction_id);
auction->auction_end_timer = INVALID_TIMER;
- auction_delete(auction);
+ inter_auction->delete_(auction);
}
return 0;
}
-void auction_delete(struct auction_data *auction)
+void inter_auction_delete(struct auction_data *auction)
{
unsigned int auction_id = auction->auction_id;
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `auction_id` = '%d'", auction_db, auction_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `auction_id` = '%d'", auction_db, auction_id) )
+ Sql_ShowDebug(inter->sql_handle);
if( auction->auction_end_timer != INVALID_TIMER )
- timer->delete(auction->auction_end_timer, auction_end_timer);
+ timer->delete(auction->auction_end_timer, inter_auction->end_timer);
- idb_remove(auction_db_, auction_id);
+ idb_remove(inter_auction->db, auction_id);
}
void inter_auctions_fromsql(void)
@@ -190,32 +188,32 @@ void inter_auctions_fromsql(void)
StrBuf->Printf(&buf, ",`card%d`", i);
StrBuf->Printf(&buf, " FROM `%s` ORDER BY `auction_id` DESC", auction_db);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
- while( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ while( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
CREATE(auction, struct auction_data, 1);
- SQL->GetData(sql_handle, 0, &data, NULL); auction->auction_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); auction->seller_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); safestrncpy(auction->seller_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 3, &data, NULL); auction->buyer_id = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); safestrncpy(auction->buyer_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 5, &data, NULL); auction->price = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); auction->buynow = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); auction->hours = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); auction->timestamp = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); auction->auction_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); auction->seller_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); safestrncpy(auction->seller_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); auction->buyer_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); safestrncpy(auction->buyer_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); auction->price = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); auction->buynow = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); auction->hours = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); auction->timestamp = atoi(data);
item = &auction->item;
- SQL->GetData(sql_handle, 9, &data, NULL); item->nameid = atoi(data);
- SQL->GetData(sql_handle,10, &data, NULL); safestrncpy(auction->item_name, data, ITEM_NAME_LENGTH);
- SQL->GetData(sql_handle,11, &data, NULL); auction->type = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); item->nameid = atoi(data);
+ SQL->GetData(inter->sql_handle,10, &data, NULL); safestrncpy(auction->item_name, data, ITEM_NAME_LENGTH);
+ SQL->GetData(inter->sql_handle,11, &data, NULL); auction->type = atoi(data);
- SQL->GetData(sql_handle,12, &data, NULL); item->refine = atoi(data);
- SQL->GetData(sql_handle,13, &data, NULL); item->attribute = atoi(data);
- SQL->GetData(sql_handle,14, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
+ SQL->GetData(inter->sql_handle,12, &data, NULL); item->refine = atoi(data);
+ SQL->GetData(inter->sql_handle,13, &data, NULL); item->attribute = atoi(data);
+ SQL->GetData(inter->sql_handle,14, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
item->identify = 1;
item->amount = 1;
@@ -223,7 +221,7 @@ void inter_auctions_fromsql(void)
for( i = 0; i < MAX_SLOTS; i++ )
{
- SQL->GetData(sql_handle, 15 + i, &data, NULL);
+ SQL->GetData(inter->sql_handle, 15 + i, &data, NULL);
item->card[i] = atoi(data);
}
@@ -232,14 +230,14 @@ void inter_auctions_fromsql(void)
else
endtick = tick + 10000; // 10 seconds to process ended auctions
- auction->auction_end_timer = timer->add(endtick, auction_end_timer, auction->auction_id, 0);
- idb_put(auction_db_, auction->auction_id, auction);
+ auction->auction_end_timer = timer->add(endtick, inter_auction->end_timer, auction->auction_id, 0);
+ idb_put(inter_auction->db, auction->auction_id, auction);
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
-static void mapif_Auction_sendlist(int fd, int char_id, short count, short pages, unsigned char *buf)
+void mapif_auction_sendlist(int fd, int char_id, short count, short pages, unsigned char *buf)
{
int len = (sizeof(struct auction_data) * count) + 12;
@@ -253,14 +251,14 @@ static void mapif_Auction_sendlist(int fd, int char_id, short count, short pages
WFIFOSET(fd,len);
}
-static void mapif_parse_Auction_requestlist(int fd)
+void mapif_parse_auction_requestlist(int fd)
{
char searchtext[NAME_LENGTH];
int char_id = RFIFOL(fd,4), len = sizeof(struct auction_data);
int price = RFIFOL(fd,10);
short type = RFIFOW(fd,8), page = max(1,RFIFOW(fd,14));
unsigned char buf[5 * sizeof(struct auction_data)];
- DBIterator *iter = db_iterator(auction_db_);
+ DBIterator *iter = db_iterator(inter_auction->db);
struct auction_data *auction;
short i = 0, j = 0, pages = 1;
@@ -293,10 +291,10 @@ static void mapif_parse_Auction_requestlist(int fd)
}
dbi_destroy(iter);
- mapif_Auction_sendlist(fd, char_id, j, pages, buf);
+ mapif->auction_sendlist(fd, char_id, j, pages, buf);
}
-static void mapif_Auction_register(int fd, struct auction_data *auction)
+void mapif_auction_register(int fd, struct auction_data *auction)
{
int len = sizeof(struct auction_data) + 4;
@@ -307,20 +305,20 @@ static void mapif_Auction_register(int fd, struct auction_data *auction)
WFIFOSET(fd,len);
}
-static void mapif_parse_Auction_register(int fd)
+void mapif_parse_auction_register(int fd)
{
struct auction_data auction;
if( RFIFOW(fd,2) != sizeof(struct auction_data) + 4 )
return;
memcpy(&auction, RFIFOP(fd,4), sizeof(struct auction_data));
- if( auction_count(auction.seller_id, false) < 5 )
- auction.auction_id = auction_create(&auction);
+ if( inter_auction->count(auction.seller_id, false) < 5 )
+ auction.auction_id = inter_auction->create(&auction);
- mapif_Auction_register(fd, &auction);
+ mapif->auction_register(fd, &auction);
}
-static void mapif_Auction_cancel(int fd, int char_id, unsigned char result)
+void mapif_auction_cancel(int fd, int char_id, unsigned char result)
{
WFIFOHEAD(fd,7);
WFIFOW(fd,0) = 0x3852;
@@ -329,36 +327,36 @@ static void mapif_Auction_cancel(int fd, int char_id, unsigned char result)
WFIFOSET(fd,7);
}
-static void mapif_parse_Auction_cancel(int fd)
+void mapif_parse_auction_cancel(int fd)
{
int char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6);
struct auction_data *auction;
- if( (auction = (struct auction_data *)idb_get(auction_db_, auction_id)) == NULL )
+ if( (auction = (struct auction_data *)idb_get(inter_auction->db, auction_id)) == NULL )
{
- mapif_Auction_cancel(fd, char_id, 1); // Bid Number is Incorrect
+ mapif->auction_cancel(fd, char_id, 1); // Bid Number is Incorrect
return;
}
if( auction->seller_id != char_id )
{
- mapif_Auction_cancel(fd, char_id, 2); // You cannot end the auction
+ mapif->auction_cancel(fd, char_id, 2); // You cannot end the auction
return;
}
if( auction->buyer_id > 0 )
{
- mapif_Auction_cancel(fd, char_id, 3); // An auction with at least one bidder cannot be canceled
+ mapif->auction_cancel(fd, char_id, 3); // An auction with at least one bidder cannot be canceled
return;
}
- mail_sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Auction canceled.", 0, &auction->item);
- auction_delete(auction);
+ inter_mail->sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Auction canceled.", 0, &auction->item);
+ inter_auction->delete_(auction);
- mapif_Auction_cancel(fd, char_id, 0); // The auction has been canceled
+ mapif->auction_cancel(fd, char_id, 0); // The auction has been canceled
}
-static void mapif_Auction_close(int fd, int char_id, unsigned char result)
+void mapif_auction_close(int fd, int char_id, unsigned char result)
{
WFIFOHEAD(fd,7);
WFIFOW(fd,0) = 0x3853;
@@ -367,40 +365,40 @@ static void mapif_Auction_close(int fd, int char_id, unsigned char result)
WFIFOSET(fd,7);
}
-static void mapif_parse_Auction_close(int fd)
+void mapif_parse_auction_close(int fd)
{
int char_id = RFIFOL(fd,2), auction_id = RFIFOL(fd,6);
struct auction_data *auction;
- if( (auction = (struct auction_data *)idb_get(auction_db_, auction_id)) == NULL )
+ if( (auction = (struct auction_data *)idb_get(inter_auction->db, auction_id)) == NULL )
{
- mapif_Auction_close(fd, char_id, 2); // Bid Number is Incorrect
+ mapif->auction_close(fd, char_id, 2); // Bid Number is Incorrect
return;
}
if( auction->seller_id != char_id )
{
- mapif_Auction_close(fd, char_id, 1); // You cannot end the auction
+ mapif->auction_close(fd, char_id, 1); // You cannot end the auction
return;
}
if( auction->buyer_id == 0 )
{
- mapif_Auction_close(fd, char_id, 1); // You cannot end the auction
+ mapif->auction_close(fd, char_id, 1); // You cannot end the auction
return;
}
// Send Money to Seller
- mail_sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Auction closed.", auction->price, NULL);
+ inter_mail->sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Auction closed.", auction->price, NULL);
// Send Item to Buyer
- mail_sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Auction winner.", 0, &auction->item);
- mapif_Auction_message(auction->buyer_id, 6); // You have won the auction
- auction_delete(auction);
+ inter_mail->sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Auction winner.", 0, &auction->item);
+ mapif->auction_message(auction->buyer_id, 6); // You have won the auction
+ inter_auction->delete_(auction);
- mapif_Auction_close(fd, char_id, 0); // You have ended the auction
+ mapif->auction_close(fd, char_id, 0); // You have ended the auction
}
-static void mapif_Auction_bid(int fd, int char_id, int bid, unsigned char result)
+void mapif_auction_bid(int fd, int char_id, int bid, unsigned char result)
{
WFIFOHEAD(fd,11);
WFIFOW(fd,0) = 0x3855;
@@ -410,21 +408,21 @@ static void mapif_Auction_bid(int fd, int char_id, int bid, unsigned char result
WFIFOSET(fd,11);
}
-static void mapif_parse_Auction_bid(int fd)
+void mapif_parse_auction_bid(int fd)
{
int char_id = RFIFOL(fd,4), bid = RFIFOL(fd,12);
unsigned int auction_id = RFIFOL(fd,8);
struct auction_data *auction;
- if( (auction = (struct auction_data *)idb_get(auction_db_, auction_id)) == NULL || auction->price >= bid || auction->seller_id == char_id )
+ if( (auction = (struct auction_data *)idb_get(inter_auction->db, auction_id)) == NULL || auction->price >= bid || auction->seller_id == char_id )
{
- mapif_Auction_bid(fd, char_id, bid, 0); // You have failed to bid in the auction
+ mapif->auction_bid(fd, char_id, bid, 0); // You have failed to bid in the auction
return;
}
- if( auction_count(char_id, true) > 4 && bid < auction->buynow && auction->buyer_id != char_id )
+ if( inter_auction->count(char_id, true) > 4 && bid < auction->buynow && auction->buyer_id != char_id )
{
- mapif_Auction_bid(fd, char_id, bid, 9); // You cannot place more than 5 bids at a time
+ mapif->auction_bid(fd, char_id, bid, 9); // You cannot place more than 5 bids at a time
return;
}
@@ -432,11 +430,11 @@ static void mapif_parse_Auction_bid(int fd)
{ // Send Money back to the previous Buyer
if( auction->buyer_id != char_id )
{
- mail_sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Someone has placed a higher bid.", auction->price, NULL);
- mapif_Auction_message(auction->buyer_id, 7); // You have failed to win the auction
+ inter_mail->sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "Someone has placed a higher bid.", auction->price, NULL);
+ mapif->auction_message(auction->buyer_id, 7); // You have failed to win the auction
}
else
- mail_sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "You have placed a higher bid.", auction->price, NULL);
+ inter_mail->sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "You have placed a higher bid.", auction->price, NULL);
}
auction->buyer_id = char_id;
@@ -445,19 +443,19 @@ static void mapif_parse_Auction_bid(int fd)
if( bid >= auction->buynow )
{ // Automatic won the auction
- mapif_Auction_bid(fd, char_id, bid - auction->buynow, 1); // You have successfully bid in the auction
+ mapif->auction_bid(fd, char_id, bid - auction->buynow, 1); // You have successfully bid in the auction
- mail_sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "You have won the auction.", 0, &auction->item);
- mapif_Auction_message(char_id, 6); // You have won the auction
- mail_sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Payment for your auction!.", auction->buynow, NULL);
+ inter_mail->sendmail(0, "Auction Manager", auction->buyer_id, auction->buyer_name, "Auction", "You have won the auction.", 0, &auction->item);
+ mapif->auction_message(char_id, 6); // You have won the auction
+ inter_mail->sendmail(0, "Auction Manager", auction->seller_id, auction->seller_name, "Auction", "Payment for your auction!.", auction->buynow, NULL);
- auction_delete(auction);
+ inter_auction->delete_(auction);
return;
}
- auction_save(auction);
+ inter_auction->save(auction);
- mapif_Auction_bid(fd, char_id, 0, 1); // You have successfully bid in the auction
+ mapif->auction_bid(fd, char_id, 0, 1); // You have successfully bid in the auction
}
/*==========================================
@@ -467,11 +465,11 @@ int inter_auction_parse_frommap(int fd)
{
switch(RFIFOW(fd,0))
{
- case 0x3050: mapif_parse_Auction_requestlist(fd); break;
- case 0x3051: mapif_parse_Auction_register(fd); break;
- case 0x3052: mapif_parse_Auction_cancel(fd); break;
- case 0x3053: mapif_parse_Auction_close(fd); break;
- case 0x3055: mapif_parse_Auction_bid(fd); break;
+ case 0x3050: mapif->parse_auction_requestlist(fd); break;
+ case 0x3051: mapif->parse_auction_register(fd); break;
+ case 0x3052: mapif->parse_auction_cancel(fd); break;
+ case 0x3053: mapif->parse_auction_close(fd); break;
+ case 0x3055: mapif->parse_auction_bid(fd); break;
default:
return 0;
}
@@ -480,15 +478,32 @@ int inter_auction_parse_frommap(int fd)
int inter_auction_sql_init(void)
{
- auction_db_ = idb_alloc(DB_OPT_RELEASE_DATA);
- inter_auctions_fromsql();
+ inter_auction->db = idb_alloc(DB_OPT_RELEASE_DATA);
+ inter_auction->fromsql();
return 0;
}
void inter_auction_sql_final(void)
{
- auction_db_->destroy(auction_db_,NULL);
+ inter_auction->db->destroy(inter_auction->db,NULL);
return;
}
+
+void inter_auction_defaults(void)
+{
+ inter_auction = &inter_auction_s;
+
+ inter_auction->db = NULL; // int auction_id -> struct auction_data*
+
+ inter_auction->count = inter_auction_count;
+ inter_auction->save = inter_auction_save;
+ inter_auction->create = inter_auction_create;
+ inter_auction->end_timer = inter_auction_end_timer;
+ inter_auction->delete_ = inter_auction_delete;
+ inter_auction->fromsql = inter_auctions_fromsql;
+ inter_auction->parse_frommap = inter_auction_parse_frommap;
+ inter_auction->sql_init = inter_auction_sql_init;
+ inter_auction->sql_final = inter_auction_sql_final;
+}
diff --git a/src/char/int_auction.h b/src/char/int_auction.h
index 17fd75a58..ad8ac7b67 100644
--- a/src/char/int_auction.h
+++ b/src/char/int_auction.h
@@ -4,9 +4,26 @@
#ifndef CHAR_INT_AUCTION_H
#define CHAR_INT_AUCTION_H
-int inter_auction_parse_frommap(int fd);
+#include "../common/mmo.h"
-int inter_auction_sql_init(void);
-void inter_auction_sql_final(void);
+void inter_auction_defaults(void);
+
+/**
+ * inter_auction_interface interface
+ **/
+struct inter_auction_interface {
+ DBMap* db; // int auction_id -> struct auction_data*
+ int (*count) (int char_id, bool buy);
+ void (*save) (struct auction_data *auction);
+ unsigned int (*create) (struct auction_data *auction);
+ int (*end_timer) (int tid, int64 tick, int id, intptr_t data);
+ void (*delete_) (struct auction_data *auction);
+ void (*fromsql) (void);
+ int (*parse_frommap) (int fd);
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+};
+
+struct inter_auction_interface *inter_auction;
#endif /* CHAR_INT_AUCTION_H */
diff --git a/src/char/int_elemental.c b/src/char/int_elemental.c
index 3a36e75a2..d14d1e1e0 100644
--- a/src/char/int_elemental.c
+++ b/src/char/int_elemental.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,28 +21,30 @@
#include "../common/strlib.h"
#include "../common/utils.h"
+struct inter_elemental_interface inter_elemental_s;
+
bool mapif_elemental_save(struct s_elemental* ele) {
bool flag = true;
-
+
if( ele->elemental_id == 0 ) { // Create new DB entry
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s` (`char_id`,`class`,`mode`,`hp`,`sp`,`max_hp`,`max_sp`,`atk1`,`atk2`,`matk`,`aspd`,`def`,`mdef`,`flee`,`hit`,`life_time`)"
"VALUES ('%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%d','%u')",
elemental_db, ele->char_id, ele->class_, ele->mode, ele->hp, ele->sp, ele->max_hp, ele->max_sp, ele->atk, ele->atk2, ele->matk, ele->amotion, ele->def, ele->mdef, ele->flee, ele->hit, ele->life_time) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
else
- ele->elemental_id = (int)SQL->LastInsertId(sql_handle);
- } else if( SQL_ERROR == SQL->Query(sql_handle,
+ ele->elemental_id = (int)SQL->LastInsertId(inter->sql_handle);
+ } else if( SQL_ERROR == SQL->Query(inter->sql_handle,
"UPDATE `%s` SET `char_id` = '%d', `class` = '%d', `mode` = '%d', `hp` = '%d', `sp` = '%d',"
"`max_hp` = '%d', `max_sp` = '%d', `atk1` = '%d', `atk2` = '%d', `matk` = '%d', `aspd` = '%d', `def` = '%d',"
"`mdef` = '%d', `flee` = '%d', `hit` = '%d', `life_time` = '%u' WHERE `ele_id` = '%d'",
elemental_db, ele->char_id, ele->class_, ele->mode, ele->hp, ele->sp, ele->max_hp, ele->max_sp, ele->atk, ele->atk2,
ele->matk, ele->amotion, ele->def, ele->mdef, ele->flee, ele->hit, ele->life_time, ele->elemental_id) )
{ // Update DB entry
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
return flag;
@@ -49,59 +52,59 @@ bool mapif_elemental_save(struct s_elemental* ele) {
bool mapif_elemental_load(int ele_id, int char_id, struct s_elemental *ele) {
char* data;
-
+
memset(ele, 0, sizeof(struct s_elemental));
ele->elemental_id = ele_id;
ele->char_id = char_id;
-
- if( SQL_ERROR == SQL->Query(sql_handle,
+
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"SELECT `class`, `mode`, `hp`, `sp`, `max_hp`, `max_sp`, `atk1`, `atk2`, `matk`, `aspd`,"
"`def`, `mdef`, `flee`, `hit`, `life_time` FROM `%s` WHERE `ele_id` = '%d' AND `char_id` = '%d'",
elemental_db, ele_id, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
-
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) ) {
- SQL->FreeResult(sql_handle);
+
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) ) {
+ SQL->FreeResult(inter->sql_handle);
return false;
}
-
- SQL->GetData(sql_handle, 0, &data, NULL); ele->class_ = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); ele->mode = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); ele->hp = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); ele->sp = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); ele->max_hp = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); ele->max_sp = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); ele->atk = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); ele->atk2 = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); ele->matk = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); ele->amotion = atoi(data);
- SQL->GetData(sql_handle, 10, &data, NULL); ele->def = atoi(data);
- SQL->GetData(sql_handle, 11, &data, NULL); ele->mdef = atoi(data);
- SQL->GetData(sql_handle, 12, &data, NULL); ele->flee = atoi(data);
- SQL->GetData(sql_handle, 13, &data, NULL); ele->hit = atoi(data);
- SQL->GetData(sql_handle, 14, &data, NULL); ele->life_time = atoi(data);
- SQL->FreeResult(sql_handle);
+
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); ele->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); ele->mode = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); ele->hp = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); ele->sp = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); ele->max_hp = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); ele->max_sp = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); ele->atk = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); ele->atk2 = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); ele->matk = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); ele->amotion = atoi(data);
+ SQL->GetData(inter->sql_handle, 10, &data, NULL); ele->def = atoi(data);
+ SQL->GetData(inter->sql_handle, 11, &data, NULL); ele->mdef = atoi(data);
+ SQL->GetData(inter->sql_handle, 12, &data, NULL); ele->flee = atoi(data);
+ SQL->GetData(inter->sql_handle, 13, &data, NULL); ele->hit = atoi(data);
+ SQL->GetData(inter->sql_handle, 14, &data, NULL); ele->life_time = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
if( save_log )
ShowInfo("Elemental loaded (%d - %d).\n", ele->elemental_id, ele->char_id);
-
+
return true;
}
bool mapif_elemental_delete(int ele_id) {
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `ele_id` = '%d'", elemental_db, ele_id) ) {
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `ele_id` = '%d'", elemental_db, ele_id) ) {
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
-
+
return true;
}
-static void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag) {
+void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag) {
int size = sizeof(struct s_elemental) + 5;
-
+
WFIFOHEAD(fd,size);
WFIFOW(fd,0) = 0x387c;
WFIFOW(fd,2) = size;
@@ -110,44 +113,45 @@ static void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char
WFIFOSET(fd,size);
}
-static void mapif_parse_elemental_create(int fd, struct s_elemental* ele) {
- bool result = mapif_elemental_save(ele);
- mapif_elemental_send(fd, ele, result);
+void mapif_parse_elemental_create(int fd, struct s_elemental* ele) {
+ bool result = mapif->elemental_save(ele);
+ mapif->elemental_send(fd, ele, result);
}
-static void mapif_parse_elemental_load(int fd, int ele_id, int char_id) {
+void mapif_parse_elemental_load(int fd, int ele_id, int char_id) {
struct s_elemental ele;
- bool result = mapif_elemental_load(ele_id, char_id, &ele);
- mapif_elemental_send(fd, &ele, result);
+ bool result = mapif->elemental_load(ele_id, char_id, &ele);
+ mapif->elemental_send(fd, &ele, result);
}
-static void mapif_elemental_deleted(int fd, unsigned char flag) {
+void mapif_elemental_deleted(int fd, unsigned char flag) {
WFIFOHEAD(fd,3);
WFIFOW(fd,0) = 0x387d;
WFIFOB(fd,2) = flag;
WFIFOSET(fd,3);
}
-static void mapif_parse_elemental_delete(int fd, int ele_id) {
- bool result = mapif_elemental_delete(ele_id);
- mapif_elemental_deleted(fd, result);
+void mapif_parse_elemental_delete(int fd, int ele_id) {
+ bool result = mapif->elemental_delete(ele_id);
+ mapif->elemental_deleted(fd, result);
}
-static void mapif_elemental_saved(int fd, unsigned char flag) {
+void mapif_elemental_saved(int fd, unsigned char flag) {
WFIFOHEAD(fd,3);
WFIFOW(fd,0) = 0x387e;
WFIFOB(fd,2) = flag;
WFIFOSET(fd,3);
}
-static void mapif_parse_elemental_save(int fd, struct s_elemental* ele) {
- bool result = mapif_elemental_save(ele);
- mapif_elemental_saved(fd, result);
+void mapif_parse_elemental_save(int fd, struct s_elemental* ele) {
+ bool result = mapif->elemental_save(ele);
+ mapif->elemental_saved(fd, result);
}
void inter_elemental_sql_init(void) {
return;
}
+
void inter_elemental_sql_final(void) {
return;
}
@@ -157,14 +161,23 @@ void inter_elemental_sql_final(void) {
*------------------------------------------*/
int inter_elemental_parse_frommap(int fd) {
unsigned short cmd = RFIFOW(fd,0);
-
+
switch( cmd ) {
- case 0x307c: mapif_parse_elemental_create(fd, (struct s_elemental*)RFIFOP(fd,4)); break;
- case 0x307d: mapif_parse_elemental_load(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
- case 0x307e: mapif_parse_elemental_delete(fd, (int)RFIFOL(fd,2)); break;
- case 0x307f: mapif_parse_elemental_save(fd, (struct s_elemental*)RFIFOP(fd,4)); break;
+ case 0x307c: mapif->parse_elemental_create(fd, (struct s_elemental*)RFIFOP(fd,4)); break;
+ case 0x307d: mapif->parse_elemental_load(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
+ case 0x307e: mapif->parse_elemental_delete(fd, (int)RFIFOL(fd,2)); break;
+ case 0x307f: mapif->parse_elemental_save(fd, (struct s_elemental*)RFIFOP(fd,4)); break;
default:
return 0;
}
return 1;
}
+
+void inter_elemental_defaults(void)
+{
+ inter_elemental = &inter_elemental_s;
+
+ inter_elemental->sql_init = inter_elemental_sql_init;
+ inter_elemental->sql_final = inter_elemental_sql_final;
+ inter_elemental->parse_frommap = inter_elemental_parse_frommap;
+}
diff --git a/src/char/int_elemental.h b/src/char/int_elemental.h
index e28cfedea..611d97550 100644
--- a/src/char/int_elemental.h
+++ b/src/char/int_elemental.h
@@ -6,10 +6,17 @@
#include "../common/cbasetypes.h"
-void inter_elemental_sql_init(void);
-void inter_elemental_sql_final(void);
-int inter_elemental_parse_frommap(int fd);
+void inter_elemental_defaults(void);
-bool mapif_elemental_delete(int ele_id);
+/**
+ * inter_elemental_interface interface
+ **/
+struct inter_elemental_interface {
+ void (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*parse_frommap) (int fd);
+};
+
+struct inter_elemental_interface *inter_elemental;
#endif /* CHAR_INT_ELEMENTAL_H */
diff --git a/src/char/int_guild.c b/src/char/int_guild.c
index a6fcfe48c..a5623f83d 100644
--- a/src/char/int_guild.c
+++ b/src/char/int_guild.c
@@ -13,6 +13,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/cbasetypes.h"
#include "../common/db.h"
#include "../common/malloc.h"
@@ -33,26 +34,14 @@
#define GUILD_ALLIANCE_TYPE_MASK 0x01
#define GUILD_ALLIANCE_REMOVE 0x08
-static const char dataToHex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
-//Guild cache
-static DBMap* guild_db_; // int guild_id -> struct guild*
-static DBMap *castle_db;
+struct inter_guild_interface inter_guild_s;
-static unsigned int guild_exp[MAX_GUILDLEVEL];
-
-int mapif_parse_GuildLeave(int fd,int guild_id,int account_id,int char_id,int flag,const char *mes);
-int mapif_guild_broken(int guild_id,int flag);
-static bool guild_check_empty(struct guild *g);
-int guild_calcinfo(struct guild *g);
-int mapif_guild_basicinfochanged(int guild_id,int type,const void *data,int len);
-int mapif_guild_info(int fd,struct guild *g);
-int inter_guild_tosql(struct guild *g,int flag);
+static const char dataToHex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-static int guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
+int inter_guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
static int last_id = 0; //To know in which guild we were.
int state = 0; //0: Have not reached last guild. 1: Reached last guild, ready for save. 2: Some guild saved, don't do further saving.
- DBIterator *iter = db_iterator(guild_db_);
+ DBIterator *iter = db_iterator(inter_guild->guild_db);
DBKey key;
struct guild* g;
@@ -66,7 +55,7 @@ static int guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
else
if( state == 1 && g->save_flag&GS_MASK )
{
- inter_guild_tosql(g, g->save_flag&GS_MASK);
+ inter_guild->tosql(g, g->save_flag&GS_MASK);
g->save_flag &= ~GS_MASK;
//Some guild saved.
@@ -78,7 +67,7 @@ static int guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
{// Nothing to save, guild is ready for removal.
if (save_log)
ShowInfo("Guild Unloaded (%d - %s)\n", g->guild_id, g->name);
- db_remove(guild_db_, key);
+ db_remove(inter_guild->guild_db, key);
}
}
dbi_destroy(iter);
@@ -86,18 +75,18 @@ static int guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
if( state != 2 ) //Reached the end of the guild db without saving.
last_id = 0; //Reset guild saved, return to beginning.
- state = guild_db_->size(guild_db_);
+ state = inter_guild->guild_db->size(inter_guild->guild_db);
if( state < 1 ) state = 1; //Calculate the time slot for the next save.
- timer->add(tick + autosave_interval/state, guild_save_timer, 0, 0);
+ timer->add(tick + autosave_interval/state, inter_guild->save_timer, 0, 0);
return 0;
}
int inter_guild_removemember_tosql(int account_id, int char_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE from `%s` where `account_id` = '%d' and `char_id` = '%d'", guild_member_db, account_id, char_id) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `guild_id` = '0' WHERE `char_id` = '%d'", char_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE from `%s` where `account_id` = '%d' and `char_id` = '%d'", guild_member_db, account_id, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `guild_id` = '0' WHERE `char_id` = '%d'", char_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
@@ -131,8 +120,8 @@ int inter_guild_tosql(struct guild *g,int flag)
ShowInfo("Save guild request ("CL_BOLD"%d"CL_RESET" - flag 0x%x).",g->guild_id, flag);
#endif
- SQL->EscapeStringLen(sql_handle, esc_name, g->name, strnlen(g->name, NAME_LENGTH));
- SQL->EscapeStringLen(sql_handle, esc_master, g->master, strnlen(g->master, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, g->name, strnlen(g->name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_master, g->master, strnlen(g->master, NAME_LENGTH));
*t_info = '\0';
// Insert a new guild the guild
@@ -141,18 +130,18 @@ int inter_guild_tosql(struct guild *g,int flag)
strcat(t_info, " guild_create");
// Create a new guild
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` "
"(`name`,`master`,`guild_lv`,`max_member`,`average_lv`,`char_id`) "
"VALUES ('%s', '%s', '%d', '%d', '%d', '%d')",
guild_db, esc_name, esc_master, g->guild_lv, g->max_member, g->average_lv, g->member[0].char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
if (g->guild_id == -1)
return 0; //Failed to create guild!
}
else
{
- g->guild_id = (int)SQL->LastInsertId(sql_handle);
+ g->guild_id = (int)SQL->LastInsertId(inter->sql_handle);
new_guild = 1;
}
}
@@ -210,8 +199,8 @@ int inter_guild_tosql(struct guild *g,int flag)
StrBuf->AppendStr(&buf, ", ");
else
add_comma = true;
- SQL->EscapeStringLen(sql_handle, esc_mes1, g->mes1, strnlen(g->mes1, sizeof(g->mes1)));
- SQL->EscapeStringLen(sql_handle, esc_mes2, g->mes2, strnlen(g->mes2, sizeof(g->mes2)));
+ SQL->EscapeStringLen(inter->sql_handle, esc_mes1, g->mes1, strnlen(g->mes1, sizeof(g->mes1)));
+ SQL->EscapeStringLen(inter->sql_handle, esc_mes2, g->mes2, strnlen(g->mes2, sizeof(g->mes2)));
StrBuf->Printf(&buf, "`mes1`='%s', `mes2`='%s'", esc_mes1, esc_mes2);
}
if (flag & GS_LEVEL)
@@ -219,13 +208,15 @@ int inter_guild_tosql(struct guild *g,int flag)
strcat(t_info, " level");
if( add_comma )
StrBuf->AppendStr(&buf, ", ");
- //else //last condition using add_coma setting
- // add_comma = true;
+#if 0
+ else //last condition using add_coma setting
+ add_comma = true;
+#endif // 0
StrBuf->Printf(&buf, "`guild_lv`=%d, `skill_point`=%d, `exp`=%"PRIu64", `next_exp`=%u, `max_member`=%d", g->guild_lv, g->skill_point, g->exp, g->next_exp, g->max_member);
}
StrBuf->Printf(&buf, " WHERE `guild_id`=%d", g->guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "%s", StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "%s", StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
}
@@ -241,18 +232,18 @@ int inter_guild_tosql(struct guild *g,int flag)
continue;
if(m->account_id) {
//Since nothing references guild member table as foreign keys, it's safe to use REPLACE INTO
- SQL->EscapeStringLen(sql_handle, esc_name, m->name, strnlen(m->name, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`,`char_id`,`hair`,`hair_color`,`gender`,`class`,`lv`,`exp`,`exp_payper`,`online`,`position`,`name`) "
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, m->name, strnlen(m->name, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`,`char_id`,`hair`,`hair_color`,`gender`,`class`,`lv`,`exp`,`exp_payper`,`online`,`position`,`name`) "
"VALUES ('%d','%d','%d','%d','%d','%d','%d','%d','%"PRIu64"','%d','%d','%d','%s')",
guild_member_db, g->guild_id, m->account_id, m->char_id,
m->hair, m->hair_color, m->gender,
m->class_, m->lv, m->exp, m->exp_payper, m->online, m->position, esc_name) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
if (m->modified&GS_MEMBER_NEW || new_guild == 1)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `guild_id` = '%d' WHERE `char_id` = '%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `guild_id` = '%d' WHERE `char_id` = '%d'",
char_db, g->guild_id, m->char_id) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
m->modified = GS_MEMBER_UNMODIFIED;
}
@@ -266,10 +257,10 @@ int inter_guild_tosql(struct guild *g,int flag)
struct guild_position *p = &g->position[i];
if (!p->modified)
continue;
- SQL->EscapeStringLen(sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`guild_id`,`position`,`name`,`mode`,`exp_mode`) VALUES ('%d','%d','%s','%d','%d')",
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`position`,`name`,`mode`,`exp_mode`) VALUES ('%d','%d','%s','%d','%d')",
guild_position_db, g->guild_id, i, esc_name, p->mode, p->exp_mode) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
p->modified = GS_POSITION_UNMODIFIED;
}
}
@@ -280,10 +271,10 @@ int inter_guild_tosql(struct guild *g,int flag)
// NOTE: no need to do it on both sides since both guilds in memory had
// their info changed, not to mention this would also mess up oppositions!
// [Skotlex]
- //if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d' OR `alliance_id`='%d'", guild_alliance_db, g->guild_id, g->guild_id) )
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d'", guild_alliance_db, g->guild_id) )
+ //if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d' OR `alliance_id`='%d'", guild_alliance_db, g->guild_id, g->guild_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d'", guild_alliance_db, g->guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
else
{
@@ -293,11 +284,11 @@ int inter_guild_tosql(struct guild *g,int flag)
struct guild_alliance *a=&g->alliance[i];
if(a->guild_id>0)
{
- SQL->EscapeStringLen(sql_handle, esc_name, a->name, strnlen(a->name, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`guild_id`,`opposition`,`alliance_id`,`name`) "
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, a->name, strnlen(a->name, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`opposition`,`alliance_id`,`name`) "
"VALUES ('%d','%d','%d','%s')",
guild_alliance_db, g->guild_id, a->opposition, a->guild_id, esc_name) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
}
}
@@ -311,11 +302,11 @@ int inter_guild_tosql(struct guild *g,int flag)
if(e->account_id>0){
char esc_mes[sizeof(e->mes)*2+1];
- SQL->EscapeStringLen(sql_handle, esc_name, e->name, strnlen(e->name, NAME_LENGTH));
- SQL->EscapeStringLen(sql_handle, esc_mes, e->mes, strnlen(e->mes, sizeof(e->mes)));
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`,`name`,`mes`) "
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, e->name, strnlen(e->name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_mes, e->mes, strnlen(e->mes, sizeof(e->mes)));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`,`name`,`mes`) "
"VALUES ('%d','%d','%s','%s')", guild_expulsion_db, g->guild_id, e->account_id, esc_name, esc_mes) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
}
}
@@ -325,9 +316,9 @@ int inter_guild_tosql(struct guild *g,int flag)
//printf("- Insert guild %d to guild_skill\n",g->guild_id);
for(i=0;i<MAX_GUILDSKILL;i++){
if (g->skill[i].id>0 && g->skill[i].lv>0){
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`guild_id`,`id`,`lv`) VALUES ('%d','%d','%d')",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`id`,`lv`) VALUES ('%d','%d','%d')",
guild_skill_db, g->guild_id, g->skill[i].id, g->skill[i].lv) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
}
}
@@ -349,7 +340,7 @@ struct guild * inter_guild_fromsql(int guild_id)
if( guild_id <= 0 )
return NULL;
- g = (struct guild*)idb_get(guild_db_, guild_id);
+ g = (struct guild*)idb_get(inter_guild->guild_db, guild_id);
if( g )
return g;
@@ -357,38 +348,38 @@ struct guild * inter_guild_fromsql(int guild_id)
ShowInfo("Guild load request (%d)...\n", guild_id);
#endif
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT g.`name`,c.`name`,g.`guild_lv`,g.`connect_member`,g.`max_member`,g.`average_lv`,g.`exp`,g.`next_exp`,g.`skill_point`,g.`mes1`,g.`mes2`,g.`emblem_len`,g.`emblem_id`,g.`emblem_data` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT g.`name`,c.`name`,g.`guild_lv`,g.`connect_member`,g.`max_member`,g.`average_lv`,g.`exp`,g.`next_exp`,g.`skill_point`,g.`mes1`,g.`mes2`,g.`emblem_len`,g.`emblem_id`,g.`emblem_data` "
"FROM `%s` g LEFT JOIN `%s` c ON c.`char_id` = g.`char_id` WHERE g.`guild_id`='%d'", guild_db, char_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return NULL;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
return NULL;// Guild does not exists.
CREATE(g, struct guild, 1);
g->guild_id = guild_id;
- SQL->GetData(sql_handle, 0, &data, &len); memcpy(g->name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 1, &data, &len); memcpy(g->master, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 2, &data, NULL); g->guild_lv = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); g->connect_member = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); g->max_member = atoi(data);
- if( g->max_member > MAX_GUILD )
- { // Fix reduction of MAX_GUILD [PoW]
+ SQL->GetData(inter->sql_handle, 0, &data, &len); memcpy(g->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 1, &data, &len); memcpy(g->master, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); g->guild_lv = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); g->connect_member = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); g->max_member = atoi(data);
+ if (g->max_member > MAX_GUILD) {
+ // Fix reduction of MAX_GUILD [PoW]
ShowWarning("Guild %d:%s specifies higher capacity (%d) than MAX_GUILD (%d)\n", guild_id, g->name, g->max_member, MAX_GUILD);
g->max_member = MAX_GUILD;
}
- SQL->GetData(sql_handle, 5, &data, NULL); g->average_lv = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); g->exp = strtoull(data, NULL, 10);
- SQL->GetData(sql_handle, 7, &data, NULL); g->next_exp = (unsigned int)strtoul(data, NULL, 10);
- SQL->GetData(sql_handle, 8, &data, NULL); g->skill_point = atoi(data);
- SQL->GetData(sql_handle, 9, &data, &len); memcpy(g->mes1, data, min(len, sizeof(g->mes1)));
- SQL->GetData(sql_handle, 10, &data, &len); memcpy(g->mes2, data, min(len, sizeof(g->mes2)));
- SQL->GetData(sql_handle, 11, &data, &len); g->emblem_len = atoi(data);
- SQL->GetData(sql_handle, 12, &data, &len); g->emblem_id = atoi(data);
- SQL->GetData(sql_handle, 13, &data, &len);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); g->average_lv = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); g->exp = strtoull(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); g->next_exp = (unsigned int)strtoul(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); g->skill_point = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, &len); memcpy(g->mes1, data, min(len, sizeof(g->mes1)));
+ SQL->GetData(inter->sql_handle, 10, &data, &len); memcpy(g->mes2, data, min(len, sizeof(g->mes2)));
+ SQL->GetData(inter->sql_handle, 11, &data, &len); g->emblem_len = atoi(data);
+ SQL->GetData(inter->sql_handle, 12, &data, &len); g->emblem_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 13, &data, &len);
// convert emblem data from hexadecimal to binary
//TODO: why not store it in the db as binary directly? [ultramage]
for( i = 0, p = g->emblem_data; i < g->emblem_len; ++i, ++p )
@@ -412,112 +403,112 @@ struct guild * inter_guild_fromsql(int guild_id)
}
// load guild member info
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`char_id`,`hair`,`hair_color`,`gender`,`class`,`lv`,`exp`,`exp_payper`,`online`,`position`,`name` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`char_id`,`hair`,`hair_color`,`gender`,`class`,`lv`,`exp`,`exp_payper`,`online`,`position`,`name` "
"FROM `%s` WHERE `guild_id`='%d' ORDER BY `position`", guild_member_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
aFree(g);
return NULL;
}
- for( i = 0; i < g->max_member && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for( i = 0; i < g->max_member && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
struct guild_member* m = &g->member[i];
- SQL->GetData(sql_handle, 0, &data, NULL); m->account_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); m->char_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); m->hair = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); m->hair_color = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); m->gender = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); m->class_ = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); m->lv = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); m->exp = strtoull(data, NULL, 10);
- SQL->GetData(sql_handle, 8, &data, NULL); m->exp_payper = (unsigned int)atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); m->online = atoi(data);
- SQL->GetData(sql_handle, 10, &data, NULL); m->position = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); m->account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); m->char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); m->hair = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); m->hair_color = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); m->gender = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); m->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); m->lv = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); m->exp = strtoull(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); m->exp_payper = (unsigned int)atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); m->online = atoi(data);
+ SQL->GetData(inter->sql_handle, 10, &data, NULL); m->position = atoi(data);
if( m->position >= MAX_GUILDPOSITION ) // Fix reduction of MAX_GUILDPOSITION [PoW]
m->position = MAX_GUILDPOSITION - 1;
- SQL->GetData(sql_handle, 11, &data, &len); memcpy(m->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 11, &data, &len); memcpy(m->name, data, min(len, NAME_LENGTH));
m->modified = GS_MEMBER_UNMODIFIED;
}
//printf("- Read guild_position %d from sql \n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `position`,`name`,`mode`,`exp_mode` FROM `%s` WHERE `guild_id`='%d'", guild_position_db, guild_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `position`,`name`,`mode`,`exp_mode` FROM `%s` WHERE `guild_id`='%d'", guild_position_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
aFree(g);
return NULL;
}
- while( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ while( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
int position;
struct guild_position *pos;
- SQL->GetData(sql_handle, 0, &data, NULL); position = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); position = atoi(data);
if( position < 0 || position >= MAX_GUILDPOSITION )
continue;// invalid position
pos = &g->position[position];
- SQL->GetData(sql_handle, 1, &data, &len); memcpy(pos->name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 2, &data, NULL); pos->mode = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); pos->exp_mode = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, &len); memcpy(pos->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); pos->mode = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); pos->exp_mode = atoi(data);
pos->modified = GS_POSITION_UNMODIFIED;
}
//printf("- Read guild_alliance %d from sql \n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `opposition`,`alliance_id`,`name` FROM `%s` WHERE `guild_id`='%d'", guild_alliance_db, guild_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `opposition`,`alliance_id`,`name` FROM `%s` WHERE `guild_id`='%d'", guild_alliance_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
aFree(g);
return NULL;
}
- for( i = 0; i < MAX_GUILDALLIANCE && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for( i = 0; i < MAX_GUILDALLIANCE && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
struct guild_alliance* a = &g->alliance[i];
- SQL->GetData(sql_handle, 0, &data, NULL); a->opposition = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); a->guild_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, &len); memcpy(a->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); a->opposition = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); a->guild_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(a->name, data, min(len, NAME_LENGTH));
}
//printf("- Read guild_expulsion %d from sql \n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`name`,`mes` FROM `%s` WHERE `guild_id`='%d'", guild_expulsion_db, guild_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`name`,`mes` FROM `%s` WHERE `guild_id`='%d'", guild_expulsion_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
aFree(g);
return NULL;
}
- for( i = 0; i < MAX_GUILDEXPULSION && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for( i = 0; i < MAX_GUILDEXPULSION && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
struct guild_expulsion *e = &g->expulsion[i];
- SQL->GetData(sql_handle, 0, &data, NULL); e->account_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, &len); memcpy(e->name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 2, &data, &len); memcpy(e->mes, data, min(len, sizeof(e->mes)));
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); e->account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, &len); memcpy(e->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(e->mes, data, min(len, sizeof(e->mes)));
}
//printf("- Read guild_skill %d from sql \n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `id`,`lv` FROM `%s` WHERE `guild_id`='%d' ORDER BY `id`", guild_skill_db, guild_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `id`,`lv` FROM `%s` WHERE `guild_id`='%d' ORDER BY `id`", guild_skill_db, guild_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
aFree(g);
return NULL;
}
- for(i = 0; i < MAX_GUILDSKILL; i++)
- { //Skill IDs must always be initialized. [Skotlex]
+ for (i = 0; i < MAX_GUILDSKILL; i++) {
+ //Skill IDs must always be initialized. [Skotlex]
g->skill[i].id = i + GD_SKILLBASE;
}
- while( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ while( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
int id;
- SQL->GetData(sql_handle, 0, &data, NULL); id = atoi(data) - GD_SKILLBASE;
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); id = atoi(data) - GD_SKILLBASE;
if( id < 0 || id >= MAX_GUILDSKILL )
continue;// invalid guild skill
- SQL->GetData(sql_handle, 1, &data, NULL); g->skill[id].lv = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); g->skill[id].lv = atoi(data);
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
- idb_put(guild_db_, guild_id, g); //Add to cache
+ idb_put(inter_guild->guild_db, guild_id, g); //Add to cache
g->save_flag |= GS_REMOVE; //But set it to be removed, in case it is not needed for long.
if (save_log)
@@ -527,7 +518,7 @@ struct guild * inter_guild_fromsql(int guild_id)
}
// `guild_castle` (`castle_id`, `guild_id`, `economy`, `defense`, `triggerE`, `triggerD`, `nextTime`, `payTime`, `createTime`, `visibleC`, `visibleG0`, `visibleG1`, `visibleG2`, `visibleG3`, `visibleG4`, `visibleG5`, `visibleG6`, `visibleG7`)
-int inter_guildcastle_tosql(struct guild_castle *gc)
+int inter_guild_castle_tosql(struct guild_castle *gc)
{
StringBuf buf;
int i;
@@ -540,8 +531,8 @@ int inter_guildcastle_tosql(struct guild_castle *gc)
for (i = 0; i < MAX_GUARDIANS; ++i)
StrBuf->Printf(&buf, ", `visibleG%d`='%d'", i, gc->guardian[i].visible);
- if (SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)))
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)))
+ Sql_ShowDebug(inter->sql_handle);
else if(save_log)
ShowInfo("Saved guild castle (%d)\n", gc->castle_id);
@@ -550,12 +541,12 @@ int inter_guildcastle_tosql(struct guild_castle *gc)
}
// Read guild_castle from SQL
-static struct guild_castle* inter_guildcastle_fromsql(int castle_id)
+struct guild_castle* inter_guild_castle_fromsql(int castle_id)
{
char *data;
int i;
StringBuf buf;
- struct guild_castle *gc = idb_get(castle_db, castle_id);
+ struct guild_castle *gc = idb_get(inter_guild->castle_db, castle_id);
if (gc != NULL)
return gc;
@@ -566,8 +557,8 @@ static struct guild_castle* inter_guildcastle_fromsql(int castle_id)
for (i = 0; i < MAX_GUARDIANS; ++i)
StrBuf->Printf(&buf, ", `visibleG%d`", i);
StrBuf->Printf(&buf, " FROM `%s` WHERE `castle_id`='%d'", guild_castle_db, castle_id);
- if (SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf))) {
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf))) {
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
return NULL;
}
@@ -576,23 +567,23 @@ static struct guild_castle* inter_guildcastle_fromsql(int castle_id)
CREATE(gc, struct guild_castle, 1);
gc->castle_id = castle_id;
- if (SQL_SUCCESS == SQL->NextRow(sql_handle)) {
- SQL->GetData(sql_handle, 1, &data, NULL); gc->guild_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); gc->economy = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); gc->defense = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); gc->triggerE = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); gc->triggerD = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); gc->nextTime = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); gc->payTime = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); gc->createTime = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); gc->visibleC = atoi(data);
+ if (SQL_SUCCESS == SQL->NextRow(inter->sql_handle)) {
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); gc->guild_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); gc->economy = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); gc->defense = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); gc->triggerE = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); gc->triggerD = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); gc->nextTime = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); gc->payTime = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); gc->createTime = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); gc->visibleC = atoi(data);
for (i = 10; i < 10+MAX_GUARDIANS; i++) {
- SQL->GetData(sql_handle, i, &data, NULL); gc->guardian[i-10].visible = atoi(data);
+ SQL->GetData(inter->sql_handle, i, &data, NULL); gc->guardian[i-10].visible = atoi(data);
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
- idb_put(castle_db, castle_id, gc);
+ idb_put(inter_guild->castle_db, castle_id, gc);
if (save_log)
ShowInfo("Loaded guild castle (%d - guild %d)\n", castle_id, gc->guild_id);
@@ -602,7 +593,7 @@ static struct guild_castle* inter_guildcastle_fromsql(int castle_id)
// Read exp_guild.txt
-static bool exp_guild_parse_row(char* split[], int column, int current) {
+bool inter_guild_exp_parse_row(char* split[], int column, int current) {
int64 exp = strtoll(split[0], NULL, 10);
if (exp < 0 || exp >= UINT_MAX) {
@@ -610,7 +601,7 @@ static bool exp_guild_parse_row(char* split[], int column, int current) {
return false;
}
- guild_exp[current] = (unsigned int)exp;
+ inter_guild->exp[current] = (unsigned int)exp;
return true;
}
@@ -621,29 +612,29 @@ int inter_guild_CharOnline(int char_id, int guild_id) {
if (guild_id == -1) {
//Get guild_id from the database
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT guild_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT guild_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
guild_id = atoi(data);
}
else
{
guild_id = 0;
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
if (guild_id == 0)
return 0; //No guild...
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(!g) {
ShowError("Character %d's guild %d not found!\n", char_id, guild_id);
return 0;
@@ -672,30 +663,30 @@ int inter_guild_CharOffline(int char_id, int guild_id)
if (guild_id == -1)
{
//Get guild_id from the database
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT guild_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT guild_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
guild_id = atoi(data);
}
else
{
guild_id = 0;
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
if (guild_id == 0)
return 0; //No guild...
//Character has a guild, set character offline and check if they were the only member online
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if (g == NULL) //Guild not found?
return 0;
@@ -723,25 +714,25 @@ int inter_guild_CharOffline(int char_id, int guild_id)
int inter_guild_sql_init(void)
{
//Initialize the guild cache
- guild_db_= idb_alloc(DB_OPT_RELEASE_DATA);
- castle_db = idb_alloc(DB_OPT_RELEASE_DATA);
+ inter_guild->guild_db= idb_alloc(DB_OPT_RELEASE_DATA);
+ inter_guild->castle_db = idb_alloc(DB_OPT_RELEASE_DATA);
//Read exp file
- sv->readdb("db", DBPATH"exp_guild.txt", ',', 1, 1, MAX_GUILDLEVEL, exp_guild_parse_row);
+ sv->readdb("db", DBPATH"exp_guild.txt", ',', 1, 1, MAX_GUILDLEVEL, inter_guild->exp_parse_row);
- timer->add_func_list(guild_save_timer, "guild_save_timer");
- timer->add(timer->gettick() + 10000, guild_save_timer, 0, 0);
+ timer->add_func_list(inter_guild->save_timer, "inter_guild->save_timer");
+ timer->add(timer->gettick() + 10000, inter_guild->save_timer, 0, 0);
return 0;
}
/**
* @see DBApply
*/
-static int guild_db_final(DBKey key, DBData *data, va_list ap)
+int inter_guild_db_final(DBKey key, DBData *data, va_list ap)
{
struct guild *g = DB->data2ptr(data);
if (g->save_flag&GS_MASK) {
- inter_guild_tosql(g, g->save_flag&GS_MASK);
+ inter_guild->tosql(g, g->save_flag&GS_MASK);
return 1;
}
return 0;
@@ -749,42 +740,42 @@ static int guild_db_final(DBKey key, DBData *data, va_list ap)
void inter_guild_sql_final(void)
{
- guild_db_->destroy(guild_db_, guild_db_final);
- db_destroy(castle_db);
+ inter_guild->guild_db->destroy(inter_guild->guild_db, inter_guild->db_final);
+ db_destroy(inter_guild->castle_db);
return;
}
// Get guild_id by its name. Returns 0 if not found, -1 on error.
-int search_guildname(char *str)
+int inter_guild_search_guildname(char *str)
{
int guild_id;
char esc_name[NAME_LENGTH*2+1];
- SQL->EscapeStringLen(sql_handle, esc_name, str, safestrnlen(str, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, str, safestrnlen(str, NAME_LENGTH));
//Lookup guilds with the same name
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT guild_id FROM `%s` WHERE name='%s'", guild_db, esc_name) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT guild_id FROM `%s` WHERE name='%s'", guild_db, esc_name) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return -1;
}
- if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
guild_id = atoi(data);
}
else
{
guild_id = 0;
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return guild_id;
}
// Check if guild is empty
-static bool guild_check_empty(struct guild *g)
+static bool inter_guild_check_empty(struct guild *g)
{
int i;
ARR_FIND( 0, g->max_member, i, g->member[i].account_id > 0 );
@@ -796,16 +787,16 @@ static bool guild_check_empty(struct guild *g)
return true;
}
-unsigned int guild_nextexp(int level) {
+unsigned int inter_guild_nextexp(int level) {
if (level == 0)
return 1;
if (level <= 0 || level >= MAX_GUILDLEVEL)
return 0;
- return guild_exp[level-1];
+ return inter_guild->exp[level-1];
}
-int guild_checkskill(struct guild *g,int id)
+int inter_guild_checkskill(struct guild *g,int id)
{
int idx = id - GD_SKILLBASE;
@@ -815,7 +806,7 @@ int guild_checkskill(struct guild *g,int id)
return g->skill[idx].lv;
}
-int guild_calcinfo(struct guild *g)
+int inter_guild_calcinfo(struct guild *g)
{
int i,c;
unsigned int nextexp;
@@ -823,21 +814,21 @@ int guild_calcinfo(struct guild *g)
if(g->guild_lv<=0)
g->guild_lv = 1;
- nextexp = guild_nextexp(g->guild_lv);
+ nextexp = inter_guild->nextexp(g->guild_lv);
// Consume guild exp and increase guild level
while(g->exp >= nextexp && nextexp > 0) { // nextexp would be 0 if g->guild_lv was >= MAX_GUILDLEVEL
g->exp-=nextexp;
g->guild_lv++;
g->skill_point++;
- nextexp = guild_nextexp(g->guild_lv);
+ nextexp = inter_guild->nextexp(g->guild_lv);
}
// Save next exp step
g->next_exp = nextexp;
// Set the max number of members, Guild Extension skill - currently adds 6 to max per skill lv.
- g->max_member = 16 + guild_checkskill(g, GD_EXTENSION) * 6;
+ g->max_member = 16 + inter_guild->checkskill(g, GD_EXTENSION) * 6;
if(g->max_member > MAX_GUILD)
{
ShowError("Guild %d:%s has capacity for too many guild members (%d), max supported is %d\n", g->guild_id, g->name, g->max_member, MAX_GUILD);
@@ -869,10 +860,9 @@ int guild_calcinfo(struct guild *g)
g->average_lv /= c;
// Check if guild stats has change
- if(g->max_member != before.max_member || g->guild_lv != before.guild_lv || g->skill_point != before.skill_point )
- {
+ if (g->max_member != before.max_member || g->guild_lv != before.guild_lv || g->skill_point != before.skill_point) {
g->save_flag |= GS_LEVEL;
- mapif_guild_info(-1,g);
+ mapif->guild_info(-1,g);
return 1;
}
@@ -882,7 +872,7 @@ int guild_calcinfo(struct guild *g)
//-------------------------------------------------------------------
// Packet sent to map server
-int mapif_guild_created(int fd,int account_id,struct guild *g)
+int mapif_guild_created(int fd, int account_id, struct guild *g)
{
WFIFOHEAD(fd, 10);
WFIFOW(fd,0)=0x3830;
@@ -899,7 +889,7 @@ int mapif_guild_created(int fd,int account_id,struct guild *g)
}
// Guild not found
-int mapif_guild_noinfo(int fd,int guild_id)
+int mapif_guild_noinfo(int fd, int guild_id)
{
unsigned char buf[12];
WBUFW(buf,0)=0x3831;
@@ -907,28 +897,28 @@ int mapif_guild_noinfo(int fd,int guild_id)
WBUFL(buf,4)=guild_id;
ShowWarning("int_guild: info not found %d\n",guild_id);
if(fd<0)
- mapif_sendall(buf,8);
+ mapif->sendall(buf,8);
else
- mapif_send(fd,buf,8);
+ mapif->send(fd,buf,8);
return 0;
}
// Send guild info
-int mapif_guild_info(int fd,struct guild *g)
+int mapif_guild_info(int fd, struct guild *g)
{
unsigned char buf[8+sizeof(struct guild)];
WBUFW(buf,0)=0x3831;
WBUFW(buf,2)=4+sizeof(struct guild);
memcpy(buf+4,g,sizeof(struct guild));
if(fd<0)
- mapif_sendall(buf,WBUFW(buf,2));
+ mapif->sendall(buf,WBUFW(buf,2));
else
- mapif_send(fd,buf,WBUFW(buf,2));
+ mapif->send(fd,buf,WBUFW(buf,2));
return 0;
}
// ACK member add
-int mapif_guild_memberadded(int fd,int guild_id,int account_id,int char_id,int flag)
+int mapif_guild_memberadded(int fd, int guild_id, int account_id, int char_id, int flag)
{
WFIFOHEAD(fd, 15);
WFIFOW(fd,0)=0x3832;
@@ -951,13 +941,13 @@ int mapif_guild_withdraw(int guild_id,int account_id,int char_id,int flag, const
WBUFB(buf,14)=flag;
memcpy(WBUFP(buf,15),mes,40);
memcpy(WBUFP(buf,55),name,NAME_LENGTH);
- mapif_sendall(buf,55+NAME_LENGTH);
+ mapif->sendall(buf,55+NAME_LENGTH);
ShowInfo("int_guild: guild withdraw (%d - %d: %s - %s)\n",guild_id,account_id,name,mes);
return 0;
}
// Send short member's info
-int mapif_guild_memberinfoshort(struct guild *g,int idx)
+int mapif_guild_memberinfoshort(struct guild *g, int idx)
{
unsigned char buf[19];
WBUFW(buf, 0)=0x3835;
@@ -967,24 +957,24 @@ int mapif_guild_memberinfoshort(struct guild *g,int idx)
WBUFB(buf,14)=(unsigned char)g->member[idx].online;
WBUFW(buf,15)=g->member[idx].lv;
WBUFW(buf,17)=g->member[idx].class_;
- mapif_sendall(buf,19);
+ mapif->sendall(buf,19);
return 0;
}
// Send guild broken
-int mapif_guild_broken(int guild_id,int flag)
+int mapif_guild_broken(int guild_id, int flag)
{
unsigned char buf[7];
WBUFW(buf,0)=0x3836;
WBUFL(buf,2)=guild_id;
WBUFB(buf,6)=flag;
- mapif_sendall(buf,7);
+ mapif->sendall(buf,7);
ShowInfo("int_guild: Guild broken (%d)\n",guild_id);
return 0;
}
// Send guild message
-int mapif_guild_message(int guild_id,int account_id,char *mes,int len, int sfd)
+int mapif_guild_message(int guild_id, int account_id, char *mes, int len, int sfd)
{
unsigned char buf[512];
if (len > 500)
@@ -994,12 +984,12 @@ int mapif_guild_message(int guild_id,int account_id,char *mes,int len, int sfd)
WBUFL(buf,4)=guild_id;
WBUFL(buf,8)=account_id;
memcpy(WBUFP(buf,12),mes,len);
- mapif_sendallwos(sfd, buf,len+12);
+ mapif->sendallwos(sfd, buf,len+12);
return 0;
}
// Send basic info
-int mapif_guild_basicinfochanged(int guild_id,int type,const void *data,int len)
+int mapif_guild_basicinfochanged(int guild_id, int type, const void *data, int len)
{
unsigned char buf[2048];
if (len > 2038)
@@ -1009,12 +999,12 @@ int mapif_guild_basicinfochanged(int guild_id,int type,const void *data,int len)
WBUFL(buf, 4)=guild_id;
WBUFW(buf, 8)=type;
memcpy(WBUFP(buf,10),data,len);
- mapif_sendall(buf,len+10);
+ mapif->sendall(buf,len+10);
return 0;
}
// Send member info
-int mapif_guild_memberinfochanged(int guild_id,int account_id,int char_id, int type,const void *data,int len)
+int mapif_guild_memberinfochanged(int guild_id, int account_id, int char_id, int type, const void *data, int len)
{
unsigned char buf[2048];
if (len > 2030)
@@ -1026,24 +1016,24 @@ int mapif_guild_memberinfochanged(int guild_id,int account_id,int char_id, int t
WBUFL(buf,12)=char_id;
WBUFW(buf,16)=type;
memcpy(WBUFP(buf,18),data,len);
- mapif_sendall(buf,len+18);
+ mapif->sendall(buf,len+18);
return 0;
}
// ACK guild skill up
-int mapif_guild_skillupack(int guild_id,uint16 skill_id,int account_id)
+int mapif_guild_skillupack(int guild_id, uint16 skill_id, int account_id)
{
unsigned char buf[14];
WBUFW(buf, 0)=0x383c;
WBUFL(buf, 2)=guild_id;
WBUFL(buf, 6)=skill_id;
WBUFL(buf,10)=account_id;
- mapif_sendall(buf,14);
+ mapif->sendall(buf,14);
return 0;
}
// ACK guild alliance
-int mapif_guild_alliance(int guild_id1,int guild_id2,int account_id1,int account_id2,int flag,const char *name1,const char *name2)
+int mapif_guild_alliance(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2)
{
unsigned char buf[19+2*NAME_LENGTH];
WBUFW(buf, 0)=0x383d;
@@ -1054,12 +1044,12 @@ int mapif_guild_alliance(int guild_id1,int guild_id2,int account_id1,int account
WBUFB(buf,18)=flag;
memcpy(WBUFP(buf,19),name1,NAME_LENGTH);
memcpy(WBUFP(buf,19+NAME_LENGTH),name2,NAME_LENGTH);
- mapif_sendall(buf,19+2*NAME_LENGTH);
+ mapif->sendall(buf,19+2*NAME_LENGTH);
return 0;
}
// Send a guild position desc
-int mapif_guild_position(struct guild *g,int idx)
+int mapif_guild_position(struct guild *g, int idx)
{
unsigned char buf[12 + sizeof(struct guild_position)];
WBUFW(buf,0)=0x383b;
@@ -1067,7 +1057,7 @@ int mapif_guild_position(struct guild *g,int idx)
WBUFL(buf,4)=g->guild_id;
WBUFL(buf,8)=idx;
memcpy(WBUFP(buf,12),&g->position[idx],sizeof(struct guild_position));
- mapif_sendall(buf,WBUFW(buf,2));
+ mapif->sendall(buf,WBUFW(buf,2));
return 0;
}
@@ -1079,7 +1069,7 @@ int mapif_guild_notice(struct guild *g)
WBUFL(buf,2)=g->guild_id;
memcpy(WBUFP(buf,6),g->mes1,MAX_GUILDMES1);
memcpy(WBUFP(buf,66),g->mes2,MAX_GUILDMES2);
- mapif_sendall(buf,186);
+ mapif->sendall(buf,186);
return 0;
}
@@ -1092,7 +1082,7 @@ int mapif_guild_emblem(struct guild *g)
WBUFL(buf,4)=g->guild_id;
WBUFL(buf,8)=g->emblem_id;
memcpy(WBUFP(buf,12),g->emblem_data,g->emblem_len);
- mapif_sendall(buf,WBUFW(buf,2));
+ mapif->sendall(buf,WBUFW(buf,2));
return 0;
}
@@ -1103,7 +1093,7 @@ int mapif_guild_master_changed(struct guild *g, int aid, int cid)
WBUFL(buf,2)=g->guild_id;
WBUFL(buf,6)=aid;
WBUFL(buf,10)=cid;
- mapif_sendall(buf,14);
+ mapif->sendall(buf,14);
return 0;
}
@@ -1118,7 +1108,7 @@ int mapif_guild_castle_dataload(int fd, int sz, int *castle_ids)
WFIFOW(fd, 0) = 0x3840;
WFIFOW(fd, 2) = len;
for (i = 0; i < num; i++) {
- gc = inter_guildcastle_fromsql(*(castle_ids++));
+ gc = inter_guild->castle_fromsql(*(castle_ids++));
memcpy(WFIFOP(fd, 4 + i * sizeof(*gc)), gc, sizeof(*gc));
}
WFIFOSET(fd, len);
@@ -1137,22 +1127,22 @@ int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member
#ifdef NOISY
ShowInfo("Creating Guild (%s)\n", name);
#endif
- if(search_guildname(name) != 0){
+ if(inter_guild->search_guildname(name) != 0){
ShowInfo("int_guild: guild with same name exists [%s]\n",name);
- mapif_guild_created(fd,account_id,NULL);
+ mapif->guild_created(fd,account_id,NULL);
return 0;
}
// Check Authorized letters/symbols in the name of the character
if (char_name_option == 1) { // only letters/symbols in char_name_letters are authorized
for (i = 0; i < NAME_LENGTH && name[i]; i++)
if (strchr(char_name_letters, name[i]) == NULL) {
- mapif_guild_created(fd,account_id,NULL);
+ mapif->guild_created(fd,account_id,NULL);
return 0;
}
} else if (char_name_option == 2) { // letters/symbols in char_name_letters are forbidden
for (i = 0; i < NAME_LENGTH && name[i]; i++)
if (strchr(char_name_letters, name[i]) != NULL) {
- mapif_guild_created(fd,account_id,NULL);
+ mapif->guild_created(fd,account_id,NULL);
return 0;
}
}
@@ -1186,53 +1176,53 @@ int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member
g->guild_id= -1; //Request to create guild.
// Create the guild
- if (!inter_guild_tosql(g,GS_BASIC|GS_POSITION|GS_SKILL|GS_MEMBER)) {
+ if (!inter_guild->tosql(g,GS_BASIC|GS_POSITION|GS_SKILL|GS_MEMBER)) {
//Failed to Create guild....
ShowError("Failed to create Guild %s (Guild Master: %s)\n", g->name, g->master);
- mapif_guild_created(fd,account_id,NULL);
+ mapif->guild_created(fd,account_id,NULL);
aFree(g);
return 0;
}
ShowInfo("Created Guild %d - %s (Guild Master: %s)\n", g->guild_id, g->name, g->master);
//Add to cache
- idb_put(guild_db_, g->guild_id, g);
+ idb_put(inter_guild->guild_db, g->guild_id, g);
// Report to client
- mapif_guild_created(fd,account_id,g);
- mapif_guild_info(fd,g);
+ mapif->guild_created(fd,account_id,g);
+ mapif->guild_info(fd,g);
if(log_inter)
- inter_log("guild %s (id=%d) created by master %s (id=%d)\n",
+ inter->log("guild %s (id=%d) created by master %s (id=%d)\n",
name, g->guild_id, master->name, master->account_id );
return 0;
}
// Return guild info to client
-int mapif_parse_GuildInfo(int fd,int guild_id)
+int mapif_parse_GuildInfo(int fd, int guild_id)
{
- struct guild * g = inter_guild_fromsql(guild_id); //We use this because on start-up the info of castle-owned guilds is required. [Skotlex]
+ struct guild * g = inter_guild->fromsql(guild_id); //We use this because on start-up the info of castle-owned guilds is required. [Skotlex]
if(g)
{
- if (!guild_calcinfo(g))
- mapif_guild_info(fd,g);
+ if (!inter_guild->calcinfo(g))
+ mapif->guild_info(fd,g);
}
else
- mapif_guild_noinfo(fd,guild_id); // Failed to load info
+ mapif->guild_noinfo(fd,guild_id); // Failed to load info
return 0;
}
// Add member to guild
-int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m)
+int mapif_parse_GuildAddMember(int fd, int guild_id, struct guild_member *m)
{
struct guild * g;
int i;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL){
// Failed to add
- mapif_guild_memberadded(fd,guild_id,m->account_id,m->char_id,1);
+ mapif->guild_memberadded(fd,guild_id,m->account_id,m->char_id,1);
return 0;
}
@@ -1243,9 +1233,9 @@ int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m)
{
memcpy(&g->member[i],m,sizeof(struct guild_member));
g->member[i].modified = (GS_MEMBER_NEW | GS_MEMBER_MODIFIED);
- mapif_guild_memberadded(fd,guild_id,m->account_id,m->char_id,0);
- if (!guild_calcinfo(g)) //Send members if it was not invoked.
- mapif_guild_info(-1,g);
+ mapif->guild_memberadded(fd,guild_id,m->account_id,m->char_id,0);
+ if (!inter_guild->calcinfo(g)) //Send members if it was not invoked.
+ mapif->guild_info(-1,g);
g->save_flag |= GS_MEMBER;
if (g->save_flag&GS_REMOVE)
@@ -1255,7 +1245,7 @@ int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m)
}
// Failed to add
- mapif_guild_memberadded(fd,guild_id,m->account_id,m->char_id,1);
+ mapif->guild_memberadded(fd,guild_id,m->account_id,m->char_id,1);
return 0;
}
@@ -1264,13 +1254,13 @@ int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, in
{
int i;
- struct guild* g = inter_guild_fromsql(guild_id);
+ struct guild* g = inter_guild->fromsql(guild_id);
if( g == NULL )
{
// Unknown guild, just update the player
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `guild_id`='0' WHERE `account_id`='%d' AND `char_id`='%d'", char_db, account_id, char_id) )
- Sql_ShowDebug(sql_handle);
- // mapif_guild_withdraw(guild_id,account_id,char_id,flag,g->member[i].name,mes);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `guild_id`='0' WHERE `account_id`='%d' AND `char_id`='%d'", char_db, account_id, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ // mapif->guild_withdraw(guild_id,account_id,char_id,flag,g->member[i].name,mes);
return 0;
}
@@ -1282,8 +1272,8 @@ int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, in
return 0;
}
- if( flag )
- { // Write expulsion reason
+ if (flag) {
+ // Write expulsion reason
// Find an empty slot
int j;
ARR_FIND( 0, MAX_GUILDEXPULSION, j, g->expulsion[j].account_id == 0 );
@@ -1300,17 +1290,17 @@ int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, in
safestrncpy(g->expulsion[j].mes, mes, 40);
}
- mapif_guild_withdraw(guild_id,account_id,char_id,flag,g->member[i].name,mes);
- inter_guild_removemember_tosql(g->member[i].account_id,g->member[i].char_id);
+ mapif->guild_withdraw(guild_id,account_id,char_id,flag,g->member[i].name,mes);
+ inter_guild->removemember_tosql(g->member[i].account_id,g->member[i].char_id);
memset(&g->member[i],0,sizeof(struct guild_member));
- if( guild_check_empty(g) )
- mapif_parse_BreakGuild(-1,guild_id); //Break the guild.
+ if( inter_guild->check_empty(g) )
+ mapif->parse_BreakGuild(-1,guild_id); //Break the guild.
else {
//Update member info.
- if (!guild_calcinfo(g))
- mapif_guild_info(fd,g);
+ if (!inter_guild->calcinfo(g))
+ mapif->guild_info(fd,g);
g->save_flag |= GS_EXPULSION;
}
@@ -1318,14 +1308,14 @@ int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, in
}
// Change member info
-int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,int account_id,int char_id,int online,int lv,int class_)
+int mapif_parse_GuildChangeMemberInfoShort(int fd, int guild_id, int account_id, int char_id, int online, int lv, int class_)
{
// Could speed up by manipulating only guild_member
struct guild * g;
int i,sum,c;
int prev_count, prev_alv;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL)
return 0;
@@ -1336,7 +1326,7 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,int account_id,in
g->member[i].lv = lv;
g->member[i].class_ = class_;
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfoshort(g,i);
+ mapif->guild_memberinfoshort(g,i);
}
prev_count = g->connect_member;
@@ -1371,58 +1361,58 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,int account_id,in
}
// BreakGuild
-int mapif_parse_BreakGuild(int fd,int guild_id)
+int mapif_parse_BreakGuild(int fd, int guild_id)
{
struct guild * g;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL)
return 0;
// Delete guild from sql
//printf("- Delete guild %d from guild\n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_member_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_member_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_castle_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_castle_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_storage_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_storage_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d' OR `alliance_id` = '%d'", guild_alliance_db, guild_id, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d' OR `alliance_id` = '%d'", guild_alliance_db, guild_id, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_position_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_position_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_skill_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_skill_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_expulsion_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id` = '%d'", guild_expulsion_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
//printf("- Update guild %d of char\n",guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `guild_id`='0' WHERE `guild_id`='%d'", char_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `guild_id`='0' WHERE `guild_id`='%d'", char_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
- mapif_guild_broken(guild_id,0);
+ mapif->guild_broken(guild_id,0);
if(log_inter)
- inter_log("guild %s (id=%d) broken\n",g->name,guild_id);
+ inter->log("guild %s (id=%d) broken\n",g->name,guild_id);
//Remove the guild from memory. [Skotlex]
- idb_remove(guild_db_, guild_id);
+ idb_remove(inter_guild->guild_db, guild_id);
return 0;
}
// Forward Guild message to others map servers
-int mapif_parse_GuildMessage(int fd,int guild_id,int account_id,char *mes,int len)
+int mapif_parse_GuildMessage(int fd, int guild_id, int account_id, char *mes, int len)
{
- return mapif_guild_message(guild_id,account_id,mes,len, fd);
+ return mapif->guild_message(guild_id,account_id,mes,len, fd);
}
/**
@@ -1433,7 +1423,7 @@ int mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void
struct guild *g;
struct guild_skill gd_skill;
short value;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if( g == NULL )
return 0;
@@ -1444,7 +1434,7 @@ int mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void
if( value < 0 && abs(value) > g->exp )
return 0;
g->exp += value;
- guild_calcinfo(g);
+ inter_guild->calcinfo(g);
break;
case GBI_GUILDLV:
@@ -1466,39 +1456,39 @@ int mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void
case GBI_SKILLLV:
gd_skill = *((const struct guild_skill*)data);
memcpy(&(g->skill[(gd_skill.id - GD_SKILLBASE)]), &gd_skill, sizeof(gd_skill));
- if( !guild_calcinfo(g) )
- mapif_guild_info(-1,g);
+ if( !inter_guild->calcinfo(g) )
+ mapif->guild_info(-1,g);
g->save_flag |= GS_SKILL;
- mapif_guild_skillupack(g->guild_id, gd_skill.id, 0);
+ mapif->guild_skillupack(g->guild_id, gd_skill.id, 0);
break;
default:
ShowError("int_guild: GuildBasicInfoChange: Unknown type %d, see mmo.h::guild_basic_info for more information\n",type);
return 0;
}
- mapif_guild_info(-1,g);
+ mapif->guild_info(-1,g);
g->save_flag |= GS_LEVEL;
- // Information is already sent in mapif_guild_info
- //mapif_guild_basicinfochanged(guild_id,type,data,len);
+ // Information is already sent in mapif->guild_info
+ //mapif->guild_basicinfochanged(guild_id,type,data,len);
return 0;
}
// Modification of the guild
-int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int char_id,int type,const char *data,int len)
+int mapif_parse_GuildMemberInfoChange(int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len)
{
// Could make some improvement in speed, because only change guild_member
int i;
struct guild * g;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL)
return 0;
// Search the member
- for(i=0;i<g->max_member;i++)
- if( g->member[i].account_id==account_id &&
- g->member[i].char_id==char_id )
- break;
+ for (i = 0; i < g->max_member; i++) {
+ if (g->member[i].account_id == account_id && g->member[i].char_id==char_id)
+ break;
+ }
// Not Found
if(i==g->max_member){
@@ -1513,12 +1503,12 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].position=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER;
break;
}
case GMI_EXP:
- { // EXP
+ {
uint64 exp, old_exp=g->member[i].exp;
g->member[i].exp=*((uint64 *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
@@ -1536,11 +1526,11 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
else
g->exp+=exp;
- guild_calcinfo(g);
- mapif_guild_basicinfochanged(guild_id,GBI_EXP,&g->exp,sizeof(g->exp));
+ inter_guild->calcinfo(g);
+ mapif->guild_basicinfochanged(guild_id,GBI_EXP,&g->exp,sizeof(g->exp));
g->save_flag |= GS_LEVEL;
}
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER;
break;
}
@@ -1548,7 +1538,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].hair=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER; //Save new data.
break;
}
@@ -1556,7 +1546,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].hair_color=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER; //Save new data.
break;
}
@@ -1564,7 +1554,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].gender=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER; //Save new data.
break;
}
@@ -1572,7 +1562,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].class_=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER; //Save new data.
break;
}
@@ -1580,7 +1570,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
{
g->member[i].lv=*((short *)data);
g->member[i].modified = GS_MEMBER_MODIFIED;
- mapif_guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
+ mapif->guild_memberinfochanged(guild_id,account_id,char_id,type,data,len);
g->save_flag |= GS_MEMBER; //Save new data.
break;
}
@@ -1591,17 +1581,17 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha
return 0;
}
-int inter_guild_sex_changed(int guild_id,int account_id,int char_id, short gender)
+int inter_guild_sex_changed(int guild_id, int account_id, int char_id, short gender)
{
- return mapif_parse_GuildMemberInfoChange(0, guild_id, account_id, char_id, GMI_GENDER, (const char*)&gender, sizeof(gender));
+ return mapif->parse_GuildMemberInfoChange(0, guild_id, account_id, char_id, GMI_GENDER, (const char*)&gender, sizeof(gender));
}
-int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char *name)
+int inter_guild_charname_changed(int guild_id, int account_id, int char_id, char *name)
{
struct guild *g;
int i, flag = 0;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if( g == NULL )
{
ShowError("inter_guild_charrenamed: Can't find guild %d.\n", guild_id);
@@ -1624,38 +1614,38 @@ int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char
g->member[i].modified = GS_MEMBER_MODIFIED;
flag |= GS_MEMBER;
- if( !inter_guild_tosql(g, flag) )
+ if( !inter_guild->tosql(g, flag) )
return 0;
- mapif_guild_info(-1,g);
+ mapif->guild_info(-1,g);
return 0;
}
// Change a position desc
-int mapif_parse_GuildPosition(int fd,int guild_id,int idx,struct guild_position *p)
+int mapif_parse_GuildPosition(int fd, int guild_id, int idx, struct guild_position *p)
{
// Could make some improvement in speed, because only change guild_position
struct guild * g;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL || idx<0 || idx>=MAX_GUILDPOSITION)
return 0;
memcpy(&g->position[idx],p,sizeof(struct guild_position));
- mapif_guild_position(g,idx);
+ mapif->guild_position(g,idx);
g->position[idx].modified = GS_POSITION_MODIFIED;
g->save_flag |= GS_POSITION; // Change guild_position
return 0;
}
// Guild Skill UP
-int mapif_parse_GuildSkillUp(int fd,int guild_id,uint16 skill_id,int account_id,int max)
+int mapif_parse_GuildSkillUp(int fd, int guild_id, uint16 skill_id, int account_id, int max)
{
struct guild * g;
int idx = skill_id - GD_SKILLBASE;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g == NULL || idx < 0 || idx >= MAX_GUILDSKILL)
return 0;
@@ -1663,16 +1653,16 @@ int mapif_parse_GuildSkillUp(int fd,int guild_id,uint16 skill_id,int account_id,
{
g->skill[idx].lv++;
g->skill_point--;
- if (!guild_calcinfo(g))
- mapif_guild_info(-1,g);
- mapif_guild_skillupack(guild_id,skill_id,account_id);
+ if (!inter_guild->calcinfo(g))
+ mapif->guild_info(-1,g);
+ mapif->guild_skillupack(guild_id,skill_id,account_id);
g->save_flag |= (GS_LEVEL|GS_SKILL); // Change guild & guild_skill
}
return 0;
}
//Manual deletion of an alliance when partnering guild does not exists. [Skotlex]
-static int mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int account_id1, int account_id2, int flag)
+int mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int account_id1, int account_id2, int flag)
{
int i;
char name[NAME_LENGTH];
@@ -1684,22 +1674,22 @@ static int mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int ac
strcpy(name, g->alliance[i].name);
g->alliance[i].guild_id=0;
- mapif_guild_alliance(g->guild_id,guild_id,account_id1,account_id2,flag,g->name,name);
+ mapif->guild_alliance(g->guild_id,guild_id,account_id1,account_id2,flag,g->name,name);
g->save_flag |= GS_ALLIANCE;
return 0;
}
// Alliance modification
-int mapif_parse_GuildAlliance(int fd,int guild_id1,int guild_id2,int account_id1,int account_id2,int flag)
+int mapif_parse_GuildAlliance(int fd, int guild_id1, int guild_id2, int account_id1, int account_id2, int flag)
{
// Could speed up
struct guild *g[2] = { NULL };
int j,i;
- g[0] = inter_guild_fromsql(guild_id1);
- g[1] = inter_guild_fromsql(guild_id2);
+ g[0] = inter_guild->fromsql(guild_id1);
+ g[1] = inter_guild->fromsql(guild_id2);
if(g[0] && g[1]==NULL && (flag & GUILD_ALLIANCE_REMOVE)) //Requested to remove an alliance with a not found guild.
- return mapif_parse_GuildDeleteAlliance(g[0], guild_id2, account_id1, account_id2, flag); //Try to do a manual removal of said guild.
+ return mapif->parse_GuildDeleteAlliance(g[0], guild_id2, account_id1, account_id2, flag); //Try to do a manual removal of said guild.
if(g[0]==NULL || g[1]==NULL)
return 0;
@@ -1726,7 +1716,7 @@ int mapif_parse_GuildAlliance(int fd,int guild_id1,int guild_id2,int account_id1
}
// Send on all map the new alliance/opposition
- mapif_guild_alliance(guild_id1,guild_id2,account_id1,account_id2,flag,g[0]->name,g[1]->name);
+ mapif->guild_alliance(guild_id1,guild_id2,account_id1,account_id2,flag,g[0]->name,g[1]->name);
// Mark the two guild to be saved
g[0]->save_flag |= GS_ALLIANCE;
@@ -1735,25 +1725,25 @@ int mapif_parse_GuildAlliance(int fd,int guild_id1,int guild_id2,int account_id1
}
// Change guild message
-int mapif_parse_GuildNotice(int fd,int guild_id,const char *mes1,const char *mes2)
+int mapif_parse_GuildNotice(int fd, int guild_id, const char *mes1, const char *mes2)
{
struct guild *g;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL)
return 0;
memcpy(g->mes1,mes1,MAX_GUILDMES1);
memcpy(g->mes2,mes2,MAX_GUILDMES2);
- g->save_flag |= GS_MES; //Change mes of guild
- return mapif_guild_notice(g);
+ g->save_flag |= GS_MES; //Change mes of guild
+ return mapif->guild_notice(g);
}
-int mapif_parse_GuildEmblem(int fd,int len,int guild_id,int dummy,const char *data)
+int mapif_parse_GuildEmblem(int fd, int len, int guild_id, int dummy, const char *data)
{
struct guild * g;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL)
return 0;
@@ -1763,21 +1753,21 @@ int mapif_parse_GuildEmblem(int fd,int len,int guild_id,int dummy,const char *da
memcpy(g->emblem_data,data,len);
g->emblem_len=len;
g->emblem_id++;
- g->save_flag |= GS_EMBLEM; //Change guild
- return mapif_guild_emblem(g);
+ g->save_flag |= GS_EMBLEM; //Change guild
+ return mapif->guild_emblem(g);
}
int mapif_parse_GuildCastleDataLoad(int fd, int len, int *castle_ids)
{
- return mapif_guild_castle_dataload(fd, len, castle_ids);
+ return mapif->guild_castle_dataload(fd, len, castle_ids);
}
int mapif_parse_GuildCastleDataSave(int fd, int castle_id, int index, int value)
{
- struct guild_castle *gc = inter_guildcastle_fromsql(castle_id);
+ struct guild_castle *gc = inter_guild->castle_fromsql(castle_id);
if (gc == NULL) {
- ShowError("mapif_parse_GuildCastleDataSave: castle id=%d not found\n", castle_id);
+ ShowError("mapif->parse_GuildCastleDataSave: castle id=%d not found\n", castle_id);
return 0;
}
@@ -1785,8 +1775,8 @@ int mapif_parse_GuildCastleDataSave(int fd, int castle_id, int index, int value)
case 1:
if (log_inter && gc->guild_id != value) {
int gid = (value) ? value : gc->guild_id;
- struct guild *g = idb_get(guild_db_, gid);
- inter_log("guild %s (id=%d) %s castle id=%d\n",
+ struct guild *g = idb_get(inter_guild->guild_db, gid);
+ inter->log("guild %s (id=%d) %s castle id=%d\n",
(g) ? g->name : "??", gid, (value) ? "occupy" : "abandon", castle_id);
}
gc->guild_id = value;
@@ -1804,10 +1794,10 @@ int mapif_parse_GuildCastleDataSave(int fd, int castle_id, int index, int value)
gc->guardian[index-10].visible = value;
break;
}
- ShowError("mapif_parse_GuildCastleDataSave: not found index=%d\n", index);
+ ShowError("mapif->parse_GuildCastleDataSave: not found index=%d\n", index);
return 0;
}
- inter_guildcastle_tosql(gc);
+ inter_guild->castle_tosql(gc);
return 0;
}
@@ -1817,7 +1807,7 @@ int mapif_parse_GuildMasterChange(int fd, int guild_id, const char* name, int le
struct guild_member gm;
int pos;
- g = inter_guild_fromsql(guild_id);
+ g = inter_guild->fromsql(guild_id);
if(g==NULL || len > NAME_LENGTH)
return 0;
@@ -1845,7 +1835,7 @@ int mapif_parse_GuildMasterChange(int fd, int guild_id, const char* name, int le
ShowInfo("int_guild: Guildmaster Changed to %s (Guild %d - %s)\n",g->master, guild_id, g->name);
g->save_flag |= (GS_BASIC|GS_MEMBER); //Save main data and member data.
- return mapif_guild_master_changed(g, g->member[0].account_id, g->member[0].char_id);
+ return mapif->guild_master_changed(g, g->member[0].account_id, g->member[0].char_id);
}
// Communication from the map server
@@ -1853,29 +1843,29 @@ int mapif_parse_GuildMasterChange(int fd, int guild_id, const char* name, int le
// Data packet length that you set to inter.c
//- Shouldn't do checking and packet length, RFIFOSKIP is done by the caller
// Must Return
-// 1 : ok
-// 0 : error
+// 1 : ok
+// 0 : error
int inter_guild_parse_frommap(int fd)
{
RFIFOHEAD(fd);
switch(RFIFOW(fd,0)) {
- case 0x3030: mapif_parse_CreateGuild(fd,RFIFOL(fd,4),(char*)RFIFOP(fd,8),(struct guild_member *)RFIFOP(fd,32)); break;
- case 0x3031: mapif_parse_GuildInfo(fd,RFIFOL(fd,2)); break;
- case 0x3032: mapif_parse_GuildAddMember(fd,RFIFOL(fd,4),(struct guild_member *)RFIFOP(fd,8)); break;
- case 0x3033: mapif_parse_GuildMasterChange(fd,RFIFOL(fd,4),(const char*)RFIFOP(fd,8),RFIFOW(fd,2)-8); break;
- case 0x3034: mapif_parse_GuildLeave(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),(const char*)RFIFOP(fd,15)); break;
- case 0x3035: mapif_parse_GuildChangeMemberInfoShort(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),RFIFOW(fd,15),RFIFOW(fd,17)); break;
- case 0x3036: mapif_parse_BreakGuild(fd,RFIFOL(fd,2)); break;
- case 0x3037: mapif_parse_GuildMessage(fd,RFIFOL(fd,4),RFIFOL(fd,8),(char*)RFIFOP(fd,12),RFIFOW(fd,2)-12); break;
- case 0x3039: mapif_parse_GuildBasicInfoChange(fd,RFIFOL(fd,4),RFIFOW(fd,8),(const int16 *)RFIFOP(fd,10),RFIFOW(fd,2)-10); break;
- case 0x303A: mapif_parse_GuildMemberInfoChange(fd,RFIFOL(fd,4),RFIFOL(fd,8),RFIFOL(fd,12),RFIFOW(fd,16),(const char*)RFIFOP(fd,18),RFIFOW(fd,2)-18); break;
- case 0x303B: mapif_parse_GuildPosition(fd,RFIFOL(fd,4),RFIFOL(fd,8),(struct guild_position *)RFIFOP(fd,12)); break;
- case 0x303C: mapif_parse_GuildSkillUp(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14)); break;
- case 0x303D: mapif_parse_GuildAlliance(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14),RFIFOB(fd,18)); break;
- case 0x303E: mapif_parse_GuildNotice(fd,RFIFOL(fd,2),(const char*)RFIFOP(fd,6),(const char*)RFIFOP(fd,66)); break;
- case 0x303F: mapif_parse_GuildEmblem(fd,RFIFOW(fd,2)-12,RFIFOL(fd,4),RFIFOL(fd,8),(const char*)RFIFOP(fd,12)); break;
- case 0x3040: mapif_parse_GuildCastleDataLoad(fd,RFIFOW(fd,2),(int *)RFIFOP(fd,4)); break;
- case 0x3041: mapif_parse_GuildCastleDataSave(fd,RFIFOW(fd,2),RFIFOB(fd,4),RFIFOL(fd,5)); break;
+ case 0x3030: mapif->parse_CreateGuild(fd,RFIFOL(fd,4),(char*)RFIFOP(fd,8),(struct guild_member *)RFIFOP(fd,32)); break;
+ case 0x3031: mapif->parse_GuildInfo(fd,RFIFOL(fd,2)); break;
+ case 0x3032: mapif->parse_GuildAddMember(fd,RFIFOL(fd,4),(struct guild_member *)RFIFOP(fd,8)); break;
+ case 0x3033: mapif->parse_GuildMasterChange(fd,RFIFOL(fd,4),(const char*)RFIFOP(fd,8),RFIFOW(fd,2)-8); break;
+ case 0x3034: mapif->parse_GuildLeave(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),(const char*)RFIFOP(fd,15)); break;
+ case 0x3035: mapif->parse_GuildChangeMemberInfoShort(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),RFIFOW(fd,15),RFIFOW(fd,17)); break;
+ case 0x3036: mapif->parse_BreakGuild(fd,RFIFOL(fd,2)); break;
+ case 0x3037: mapif->parse_GuildMessage(fd,RFIFOL(fd,4),RFIFOL(fd,8),(char*)RFIFOP(fd,12),RFIFOW(fd,2)-12); break;
+ case 0x3039: mapif->parse_GuildBasicInfoChange(fd,RFIFOL(fd,4),RFIFOW(fd,8),(const int16 *)RFIFOP(fd,10),RFIFOW(fd,2)-10); break;
+ case 0x303A: mapif->parse_GuildMemberInfoChange(fd,RFIFOL(fd,4),RFIFOL(fd,8),RFIFOL(fd,12),RFIFOW(fd,16),(const char*)RFIFOP(fd,18),RFIFOW(fd,2)-18); break;
+ case 0x303B: mapif->parse_GuildPosition(fd,RFIFOL(fd,4),RFIFOL(fd,8),(struct guild_position *)RFIFOP(fd,12)); break;
+ case 0x303C: mapif->parse_GuildSkillUp(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14)); break;
+ case 0x303D: mapif->parse_GuildAlliance(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14),RFIFOB(fd,18)); break;
+ case 0x303E: mapif->parse_GuildNotice(fd,RFIFOL(fd,2),(const char*)RFIFOP(fd,6),(const char*)RFIFOP(fd,66)); break;
+ case 0x303F: mapif->parse_GuildEmblem(fd,RFIFOW(fd,2)-12,RFIFOL(fd,4),RFIFOL(fd,8),(const char*)RFIFOP(fd,12)); break;
+ case 0x3040: mapif->parse_GuildCastleDataLoad(fd,RFIFOW(fd,2),(int *)RFIFOP(fd,4)); break;
+ case 0x3041: mapif->parse_GuildCastleDataSave(fd,RFIFOW(fd,2),RFIFOB(fd,4),RFIFOL(fd,5)); break;
default:
return 0;
@@ -1887,10 +1877,41 @@ int inter_guild_parse_frommap(int fd)
//Leave request from the server (for deleting character from guild)
int inter_guild_leave(int guild_id, int account_id, int char_id)
{
- return mapif_parse_GuildLeave(-1, guild_id, account_id, char_id, 0, "** Character Deleted **");
+ return mapif->parse_GuildLeave(-1, guild_id, account_id, char_id, 0, "** Character Deleted **");
}
int inter_guild_broken(int guild_id)
{
- return mapif_guild_broken(guild_id, 0);
+ return mapif->guild_broken(guild_id, 0);
+}
+
+void inter_guild_defaults(void)
+{
+ inter_guild = &inter_guild_s;
+
+ inter_guild->guild_db = NULL;
+ inter_guild->castle_db = NULL;
+
+ inter_guild->save_timer = inter_guild_save_timer;
+ inter_guild->removemember_tosql = inter_guild_removemember_tosql;
+ inter_guild->tosql = inter_guild_tosql;
+ inter_guild->fromsql = inter_guild_fromsql;
+ inter_guild->castle_tosql = inter_guild_castle_tosql;
+ inter_guild->castle_fromsql = inter_guild_castle_fromsql;
+ inter_guild->exp_parse_row = inter_guild_exp_parse_row;
+ inter_guild->CharOnline = inter_guild_CharOnline;
+ inter_guild->CharOffline = inter_guild_CharOffline;
+ inter_guild->sql_init = inter_guild_sql_init;
+ inter_guild->db_final = inter_guild_db_final;
+ inter_guild->sql_final = inter_guild_sql_final;
+ inter_guild->search_guildname = inter_guild_search_guildname;
+ inter_guild->check_empty = inter_guild_check_empty;
+ inter_guild->nextexp = inter_guild_nextexp;
+ inter_guild->checkskill = inter_guild_checkskill;
+ inter_guild->calcinfo = inter_guild_calcinfo;
+ inter_guild->sex_changed = inter_guild_sex_changed;
+ inter_guild->charname_changed = inter_guild_charname_changed;
+ inter_guild->parse_frommap = inter_guild_parse_frommap;
+ inter_guild->leave = inter_guild_leave;
+ inter_guild->broken = inter_guild_broken;
}
diff --git a/src/char/int_guild.h b/src/char/int_guild.h
index bc457d86b..960150f4f 100644
--- a/src/char/int_guild.h
+++ b/src/char/int_guild.h
@@ -4,6 +4,8 @@
#ifndef CHAR_INT_GUILD_H
#define CHAR_INT_GUILD_H
+#include "../common/mmo.h"
+
enum {
GS_BASIC = 0x0001,
GS_MEMBER = 0x0002,
@@ -20,15 +22,40 @@ enum {
GS_REMOVE = 0x8000,
};
-int inter_guild_parse_frommap(int fd);
-int inter_guild_sql_init(void);
-void inter_guild_sql_final(void);
-int inter_guild_leave(int guild_id,int account_id,int char_id);
-int mapif_parse_BreakGuild(int fd,int guild_id);
-int inter_guild_broken(int guild_id);
-int inter_guild_sex_changed(int guild_id,int account_id,int char_id, short gender);
-int inter_guild_charname_changed(int guild_id,int account_id, int char_id, char *name);
-int inter_guild_CharOnline(int char_id, int guild_id);
-int inter_guild_CharOffline(int char_id, int guild_id);
+void inter_guild_defaults(void);
+
+/**
+ * inter_guild interface
+ **/
+struct inter_guild_interface {
+ DBMap* guild_db; // int guild_id -> struct guild*
+ DBMap* castle_db;
+ unsigned int exp[MAX_GUILDLEVEL];
+
+ int (*save_timer) (int tid, int64 tick, int id, intptr_t data);
+ int (*removemember_tosql) (int account_id, int char_id);
+ int (*tosql) (struct guild *g, int flag);
+ struct guild* (*fromsql) (int guild_id);
+ int (*castle_tosql) (struct guild_castle *gc);
+ struct guild_castle* (*castle_fromsql) (int castle_id);
+ bool (*exp_parse_row) (char* split[], int column, int current);
+ int (*CharOnline) (int char_id, int guild_id);
+ int (*CharOffline) (int char_id, int guild_id);
+ int (*sql_init) (void);
+ int (*db_final) (DBKey key, DBData *data, va_list ap);
+ void (*sql_final) (void);
+ int (*search_guildname) (char *str);
+ bool (*check_empty) (struct guild *g);
+ unsigned int (*nextexp) (int level);
+ int (*checkskill) (struct guild *g, int id);
+ int (*calcinfo) (struct guild *g);
+ int (*sex_changed) (int guild_id, int account_id, int char_id, short gender);
+ int (*charname_changed) (int guild_id, int account_id, int char_id, char *name);
+ int (*parse_frommap) (int fd);
+ int (*leave) (int guild_id, int account_id, int char_id);
+ int (*broken) (int guild_id);
+};
+
+struct inter_guild_interface *inter_guild;
#endif /* CHAR_INT_GUILD_H */
diff --git a/src/char/int_homun.c b/src/char/int_homun.c
index acde9eb38..7f9323bdd 100644
--- a/src/char/int_homun.c
+++ b/src/char/int_homun.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,6 +21,8 @@
#include "../common/strlib.h"
#include "../common/utils.h"
+struct inter_homunculus_interface inter_homunculus_s;
+
int inter_homunculus_sql_init(void)
{
return 0;
@@ -29,7 +32,7 @@ void inter_homunculus_sql_final(void)
return;
}
-static void mapif_homunculus_created(int fd, int account_id, struct s_homunculus *sh, unsigned char flag)
+void mapif_homunculus_created(int fd, int account_id, struct s_homunculus *sh, unsigned char flag)
{
WFIFOHEAD(fd, sizeof(struct s_homunculus)+9);
WFIFOW(fd,0) = 0x3890;
@@ -40,7 +43,7 @@ static void mapif_homunculus_created(int fd, int account_id, struct s_homunculus
WFIFOSET(fd, WFIFOW(fd,2));
}
-static void mapif_homunculus_deleted(int fd, int flag)
+void mapif_homunculus_deleted(int fd, int flag)
{
WFIFOHEAD(fd, 3);
WFIFOW(fd, 0) = 0x3893;
@@ -48,7 +51,7 @@ static void mapif_homunculus_deleted(int fd, int flag)
WFIFOSET(fd, 3);
}
-static void mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus *hd)
+void mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus *hd)
{
WFIFOHEAD(fd, sizeof(struct s_homunculus)+9);
WFIFOW(fd,0) = 0x3891;
@@ -67,7 +70,7 @@ static void mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus
WFIFOSET(fd, sizeof(struct s_homunculus)+9);
}
-static void mapif_homunculus_saved(int fd, int account_id, bool flag)
+void mapif_homunculus_saved(int fd, int account_id, bool flag)
{
WFIFOHEAD(fd, 7);
WFIFOW(fd,0) = 0x3892;
@@ -76,7 +79,7 @@ static void mapif_homunculus_saved(int fd, int account_id, bool flag)
WFIFOSET(fd, 7);
}
-static void mapif_homunculus_renamed(int fd, int account_id, int char_id, unsigned char flag, char* name)
+void mapif_homunculus_renamed(int fd, int account_id, int char_id, unsigned char flag, char* name)
{
WFIFOHEAD(fd, NAME_LENGTH+12);
WFIFOW(fd, 0) = 0x3894;
@@ -92,31 +95,31 @@ bool mapif_homunculus_save(struct s_homunculus* hd)
bool flag = true;
char esc_name[NAME_LENGTH*2+1];
- SQL->EscapeStringLen(sql_handle, esc_name, hd->name, strnlen(hd->name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, hd->name, strnlen(hd->name, NAME_LENGTH));
if( hd->hom_id == 0 )
{// new homunculus
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` "
"(`char_id`, `class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`, `rename_flag`, `vaporize`) "
"VALUES ('%d', '%d', '%d', '%s', '%d', '%u', '%u', '%d', '%d', %d, '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
homunculus_db, hd->char_id, hd->class_, hd->prev_class, esc_name, hd->level, hd->exp, hd->intimacy, hd->hunger, hd->str, hd->agi, hd->vit, hd->int_, hd->dex, hd->luk,
hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
else
{
- hd->hom_id = (int)SQL->LastInsertId(sql_handle);
+ hd->hom_id = (int)SQL->LastInsertId(inter->sql_handle);
}
}
else
{
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `char_id`='%d', `class`='%d',`prev_class`='%d',`name`='%s',`level`='%d',`exp`='%u',`intimacy`='%u',`hunger`='%d', `str`='%d', `agi`='%d', `vit`='%d', `int`='%d', `dex`='%d', `luk`='%d', `hp`='%d',`max_hp`='%d',`sp`='%d',`max_sp`='%d',`skill_point`='%d', `rename_flag`='%d', `vaporize`='%d' WHERE `homun_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_id`='%d', `class`='%d',`prev_class`='%d',`name`='%s',`level`='%d',`exp`='%u',`intimacy`='%u',`hunger`='%d', `str`='%d', `agi`='%d', `vit`='%d', `int`='%d', `dex`='%d', `luk`='%d', `hp`='%d',`max_hp`='%d',`sp`='%d',`max_sp`='%d',`skill_point`='%d', `rename_flag`='%d', `vaporize`='%d' WHERE `homun_id`='%d'",
homunculus_db, hd->char_id, hd->class_, hd->prev_class, esc_name, hd->level, hd->exp, hd->intimacy, hd->hunger, hd->str, hd->agi, hd->vit, hd->int_, hd->dex, hd->luk,
hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize, hd->hom_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
else
@@ -124,7 +127,7 @@ bool mapif_homunculus_save(struct s_homunculus* hd)
SqlStmt* stmt;
int i;
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_ERROR == SQL->StmtPrepare(stmt, "REPLACE INTO `%s` (`homun_id`, `id`, `lv`) VALUES (%d, ?, ?)", skill_homunculus_db, hd->hom_id) )
SqlStmt_ShowDebug(stmt);
for( i = 0; i < MAX_HOMUNSKILL; ++i )
@@ -149,8 +152,6 @@ bool mapif_homunculus_save(struct s_homunculus* hd)
return flag;
}
-
-
// Load an homunculus
bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
{
@@ -160,61 +161,61 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
memset(hd, 0, sizeof(*hd));
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `homun_id`,`char_id`,`class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`,`rename_flag`, `vaporize` FROM `%s` WHERE `homun_id`='%u'", homunculus_db, homun_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `homun_id`,`char_id`,`class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`,`rename_flag`, `vaporize` FROM `%s` WHERE `homun_id`='%u'", homunculus_db, homun_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
- if( !SQL->NumRows(sql_handle) )
- { //No homunculus found.
- SQL->FreeResult(sql_handle);
+ if (!SQL->NumRows(inter->sql_handle)) {
+ //No homunculus found.
+ SQL->FreeResult(inter->sql_handle);
return false;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- Sql_ShowDebug(sql_handle);
- SQL->FreeResult(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return false;
}
hd->hom_id = homun_id;
- SQL->GetData(sql_handle, 1, &data, NULL); hd->char_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); hd->class_ = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); hd->prev_class = atoi(data);
- SQL->GetData(sql_handle, 4, &data, &len); safestrncpy(hd->name, data, sizeof(hd->name));
- SQL->GetData(sql_handle, 5, &data, NULL); hd->level = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); hd->exp = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); hd->intimacy = (unsigned int)strtoul(data, NULL, 10);
- SQL->GetData(sql_handle, 8, &data, NULL); hd->hunger = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); hd->str = atoi(data);
- SQL->GetData(sql_handle, 10, &data, NULL); hd->agi = atoi(data);
- SQL->GetData(sql_handle, 11, &data, NULL); hd->vit = atoi(data);
- SQL->GetData(sql_handle, 12, &data, NULL); hd->int_ = atoi(data);
- SQL->GetData(sql_handle, 13, &data, NULL); hd->dex = atoi(data);
- SQL->GetData(sql_handle, 14, &data, NULL); hd->luk = atoi(data);
- SQL->GetData(sql_handle, 15, &data, NULL); hd->hp = atoi(data);
- SQL->GetData(sql_handle, 16, &data, NULL); hd->max_hp = atoi(data);
- SQL->GetData(sql_handle, 17, &data, NULL); hd->sp = atoi(data);
- SQL->GetData(sql_handle, 18, &data, NULL); hd->max_sp = atoi(data);
- SQL->GetData(sql_handle, 19, &data, NULL); hd->skillpts = atoi(data);
- SQL->GetData(sql_handle, 20, &data, NULL); hd->rename_flag = atoi(data);
- SQL->GetData(sql_handle, 21, &data, NULL); hd->vaporize = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); hd->char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); hd->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); hd->prev_class = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, &len); safestrncpy(hd->name, data, sizeof(hd->name));
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); hd->level = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); hd->exp = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); hd->intimacy = (unsigned int)strtoul(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); hd->hunger = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); hd->str = atoi(data);
+ SQL->GetData(inter->sql_handle, 10, &data, NULL); hd->agi = atoi(data);
+ SQL->GetData(inter->sql_handle, 11, &data, NULL); hd->vit = atoi(data);
+ SQL->GetData(inter->sql_handle, 12, &data, NULL); hd->int_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 13, &data, NULL); hd->dex = atoi(data);
+ SQL->GetData(inter->sql_handle, 14, &data, NULL); hd->luk = atoi(data);
+ SQL->GetData(inter->sql_handle, 15, &data, NULL); hd->hp = atoi(data);
+ SQL->GetData(inter->sql_handle, 16, &data, NULL); hd->max_hp = atoi(data);
+ SQL->GetData(inter->sql_handle, 17, &data, NULL); hd->sp = atoi(data);
+ SQL->GetData(inter->sql_handle, 18, &data, NULL); hd->max_sp = atoi(data);
+ SQL->GetData(inter->sql_handle, 19, &data, NULL); hd->skillpts = atoi(data);
+ SQL->GetData(inter->sql_handle, 20, &data, NULL); hd->rename_flag = atoi(data);
+ SQL->GetData(inter->sql_handle, 21, &data, NULL); hd->vaporize = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
hd->intimacy = cap_value(hd->intimacy, 0, 100000);
hd->hunger = cap_value(hd->hunger, 0, 100);
// Load Homunculus Skill
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `id`,`lv` FROM `%s` WHERE `homun_id`=%d", skill_homunculus_db, homun_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `id`,`lv` FROM `%s` WHERE `homun_id`=%d", skill_homunculus_db, homun_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
- while( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ while( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
// id
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
i = atoi(data);
if( i < HM_SKILLBASE || i >= HM_SKILLBASE + MAX_HOMUNSKILL )
continue;// invalid skill id
@@ -222,10 +223,10 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
hd->hskill[i].id = (unsigned short)atoi(data);
// lv
- SQL->GetData(sql_handle, 1, &data, NULL);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL);
hd->hskill[i].lv = (unsigned char)atoi(data);
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
if( save_log )
ShowInfo("Homunculus loaded (%d - %s).\n", hd->hom_id, hd->name);
@@ -235,10 +236,10 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
bool mapif_homunculus_delete(int homun_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `homun_id` = '%u'", homunculus_db, homun_id)
- || SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `homun_id` = '%u'", skill_homunculus_db, homun_id)
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `homun_id` = '%u'", homunculus_db, homun_id)
+ || SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `homun_id` = '%u'", skill_homunculus_db, homun_id)
) {
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
return true;
@@ -266,35 +267,35 @@ bool mapif_homunculus_rename(char *name)
}
-static void mapif_parse_homunculus_create(int fd, int len, int account_id, struct s_homunculus* phd)
+void mapif_parse_homunculus_create(int fd, int len, int account_id, struct s_homunculus* phd)
{
- bool result = mapif_homunculus_save(phd);
- mapif_homunculus_created(fd, account_id, phd, result);
+ bool result = mapif->homunculus_save(phd);
+ mapif->homunculus_created(fd, account_id, phd, result);
}
-static void mapif_parse_homunculus_delete(int fd, int homun_id)
+void mapif_parse_homunculus_delete(int fd, int homun_id)
{
- bool result = mapif_homunculus_delete(homun_id);
- mapif_homunculus_deleted(fd, result);
+ bool result = mapif->homunculus_delete(homun_id);
+ mapif->homunculus_deleted(fd, result);
}
-static void mapif_parse_homunculus_load(int fd, int account_id, int homun_id)
+void mapif_parse_homunculus_load(int fd, int account_id, int homun_id)
{
struct s_homunculus hd;
- bool result = mapif_homunculus_load(homun_id, &hd);
- mapif_homunculus_loaded(fd, account_id, ( result ? &hd : NULL ));
+ bool result = mapif->homunculus_load(homun_id, &hd);
+ mapif->homunculus_loaded(fd, account_id, ( result ? &hd : NULL ));
}
-static void mapif_parse_homunculus_save(int fd, int len, int account_id, struct s_homunculus* phd)
+void mapif_parse_homunculus_save(int fd, int len, int account_id, struct s_homunculus* phd)
{
- bool result = mapif_homunculus_save(phd);
- mapif_homunculus_saved(fd, account_id, result);
+ bool result = mapif->homunculus_save(phd);
+ mapif->homunculus_saved(fd, account_id, result);
}
-static void mapif_parse_homunculus_rename(int fd, int account_id, int char_id, char* name)
+void mapif_parse_homunculus_rename(int fd, int account_id, int char_id, char* name)
{
- bool result = mapif_homunculus_rename(name);
- mapif_homunculus_renamed(fd, account_id, char_id, result, name);
+ bool result = mapif->homunculus_rename(name);
+ mapif->homunculus_renamed(fd, account_id, char_id, result, name);
}
/*==========================================
@@ -306,13 +307,22 @@ int inter_homunculus_parse_frommap(int fd)
switch( cmd )
{
- case 0x3090: mapif_parse_homunculus_create(fd, (int)RFIFOW(fd,2), (int)RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,8)); break;
- case 0x3091: mapif_parse_homunculus_load (fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
- case 0x3092: mapif_parse_homunculus_save (fd, (int)RFIFOW(fd,2), (int)RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,8)); break;
- case 0x3093: mapif_parse_homunculus_delete(fd, (int)RFIFOL(fd,2)); break;
- case 0x3094: mapif_parse_homunculus_rename(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6), (char*)RFIFOP(fd,10)); break;
+ case 0x3090: mapif->parse_homunculus_create(fd, (int)RFIFOW(fd,2), (int)RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,8)); break;
+ case 0x3091: mapif->parse_homunculus_load (fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
+ case 0x3092: mapif->parse_homunculus_save (fd, (int)RFIFOW(fd,2), (int)RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,8)); break;
+ case 0x3093: mapif->parse_homunculus_delete(fd, (int)RFIFOL(fd,2)); break;
+ case 0x3094: mapif->parse_homunculus_rename(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6), (char*)RFIFOP(fd,10)); break;
default:
return 0;
}
return 1;
}
+
+void inter_homunculus_defaults(void)
+{
+ inter_homunculus = &inter_homunculus_s;
+
+ inter_homunculus->sql_init = inter_homunculus_sql_init;
+ inter_homunculus->sql_final = inter_homunculus_sql_final;
+ inter_homunculus->parse_frommap = inter_homunculus_parse_frommap;
+}
diff --git a/src/char/int_homun.h b/src/char/int_homun.h
index 6fa4f9dc7..5bfa355d4 100644
--- a/src/char/int_homun.h
+++ b/src/char/int_homun.h
@@ -8,13 +8,17 @@
struct s_homunculus;
-int inter_homunculus_sql_init(void);
-void inter_homunculus_sql_final(void);
-int inter_homunculus_parse_frommap(int fd);
+void inter_homunculus_defaults(void);
-bool mapif_homunculus_save(struct s_homunculus* hd);
-bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd);
-bool mapif_homunculus_delete(int homun_id);
-bool mapif_homunculus_rename(char *name);
+/**
+ * inter_homunculus interface
+ **/
+struct inter_homunculus_interface {
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*parse_frommap) (int fd);
+};
+
+struct inter_homunculus_interface *inter_homunculus;
#endif /* CHAR_INT_HOMUN_H */
diff --git a/src/char/int_mail.c b/src/char/int_mail.c
index 86a36d59f..2c0a85f33 100644
--- a/src/char/int_mail.c
+++ b/src/char/int_mail.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,7 +21,9 @@
#include "../common/strlib.h"
#include "../common/timer.h"
-static int mail_fromsql(int char_id, struct mail_data* md)
+struct inter_mail_interface inter_mail_s;
+
+static int inter_mail_fromsql(int char_id, struct mail_data* md)
{
int i, j;
struct mail_message *msg;
@@ -42,45 +45,45 @@ static int mail_fromsql(int char_id, struct mail_data* md)
StrBuf->Printf(&buf, " FROM `%s` WHERE `dest_id`='%d' AND `status` < 3 ORDER BY `id` LIMIT %d",
mail_db, char_id, MAIL_MAX_INBOX + 1);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
- for (i = 0; i < MAIL_MAX_INBOX && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for (i = 0; i < MAIL_MAX_INBOX && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
msg = &md->msg[i];
- SQL->GetData(sql_handle, 0, &data, NULL); msg->id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); safestrncpy(msg->send_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 2, &data, NULL); msg->send_id = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); safestrncpy(msg->dest_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 4, &data, NULL); msg->dest_id = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); safestrncpy(msg->title, data, MAIL_TITLE_LENGTH);
- SQL->GetData(sql_handle, 6, &data, NULL); safestrncpy(msg->body, data, MAIL_BODY_LENGTH);
- SQL->GetData(sql_handle, 7, &data, NULL); msg->timestamp = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); msg->status = (mail_status)atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); msg->zeny = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); msg->id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); safestrncpy(msg->send_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); msg->send_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); safestrncpy(msg->dest_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); msg->dest_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); safestrncpy(msg->title, data, MAIL_TITLE_LENGTH);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); safestrncpy(msg->body, data, MAIL_BODY_LENGTH);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); msg->timestamp = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); msg->status = (mail_status)atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); msg->zeny = atoi(data);
item = &msg->item;
- SQL->GetData(sql_handle,10, &data, NULL); item->amount = (short)atoi(data);
- SQL->GetData(sql_handle,11, &data, NULL); item->nameid = atoi(data);
- SQL->GetData(sql_handle,12, &data, NULL); item->refine = atoi(data);
- SQL->GetData(sql_handle,13, &data, NULL); item->attribute = atoi(data);
- SQL->GetData(sql_handle,14, &data, NULL); item->identify = atoi(data);
- SQL->GetData(sql_handle,15, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
+ SQL->GetData(inter->sql_handle,10, &data, NULL); item->amount = (short)atoi(data);
+ SQL->GetData(inter->sql_handle,11, &data, NULL); item->nameid = atoi(data);
+ SQL->GetData(inter->sql_handle,12, &data, NULL); item->refine = atoi(data);
+ SQL->GetData(inter->sql_handle,13, &data, NULL); item->attribute = atoi(data);
+ SQL->GetData(inter->sql_handle,14, &data, NULL); item->identify = atoi(data);
+ SQL->GetData(inter->sql_handle,15, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
item->expire_time = 0;
item->bound = 0;
for (j = 0; j < MAX_SLOTS; j++)
{
- SQL->GetData(sql_handle, 16 + j, &data, NULL);
+ SQL->GetData(inter->sql_handle, 16 + j, &data, NULL);
item->card[j] = atoi(data);
}
}
- md->full = ( SQL->NumRows(sql_handle) > MAIL_MAX_INBOX );
+ md->full = ( SQL->NumRows(inter->sql_handle) > MAIL_MAX_INBOX );
md->amount = i;
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
md->unchecked = 0;
md->unread = 0;
@@ -89,8 +92,8 @@ static int mail_fromsql(int char_id, struct mail_data* md)
msg = &md->msg[i];
if( msg->status == MAIL_NEW )
{
- if ( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `status` = '%d' WHERE `id` = '%d'", mail_db, MAIL_UNREAD, msg->id) )
- Sql_ShowDebug(sql_handle);
+ if ( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `status` = '%d' WHERE `id` = '%d'", mail_db, MAIL_UNREAD, msg->id) )
+ Sql_ShowDebug(inter->sql_handle);
msg->status = MAIL_UNREAD;
md->unchecked++;
@@ -105,7 +108,7 @@ static int mail_fromsql(int char_id, struct mail_data* md)
/// Stores a single message in the database.
/// Returns the message's ID if successful (or 0 if it fails).
-int mail_savemessage(struct mail_message* msg)
+int inter_mail_savemessage(struct mail_message* msg)
{
StringBuf buf;
SqlStmt* stmt;
@@ -123,7 +126,7 @@ int mail_savemessage(struct mail_message* msg)
StrBuf->AppendStr(&buf, ")");
// prepare and execute query
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_SUCCESS != SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, msg->send_name, strnlen(msg->send_name, NAME_LENGTH))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, msg->dest_name, strnlen(msg->dest_name, NAME_LENGTH))
@@ -144,10 +147,11 @@ int mail_savemessage(struct mail_message* msg)
/// Retrieves a single message from the database.
/// Returns true if the operation succeeds (or false if it fails).
-static bool mail_loadmessage(int mail_id, struct mail_message* msg)
+static bool inter_mail_loadmessage(int mail_id, struct mail_message* msg)
{
int j;
StringBuf buf;
+ memset(msg, 0, sizeof(struct mail_message)); // Initialize data
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`,`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,"
@@ -156,11 +160,11 @@ static bool mail_loadmessage(int mail_id, struct mail_message* msg)
StrBuf->Printf(&buf, ",`card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `id` = '%d'", mail_db, mail_id);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf))
- || SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf))
+ || SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- Sql_ShowDebug(sql_handle);
- SQL->FreeResult(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
+ SQL->FreeResult(inter->sql_handle);
StrBuf->Destroy(&buf);
return false;
}
@@ -168,75 +172,77 @@ static bool mail_loadmessage(int mail_id, struct mail_message* msg)
{
char* data;
- SQL->GetData(sql_handle, 0, &data, NULL); msg->id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); safestrncpy(msg->send_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 2, &data, NULL); msg->send_id = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); safestrncpy(msg->dest_name, data, NAME_LENGTH);
- SQL->GetData(sql_handle, 4, &data, NULL); msg->dest_id = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); safestrncpy(msg->title, data, MAIL_TITLE_LENGTH);
- SQL->GetData(sql_handle, 6, &data, NULL); safestrncpy(msg->body, data, MAIL_BODY_LENGTH);
- SQL->GetData(sql_handle, 7, &data, NULL); msg->timestamp = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); msg->status = (mail_status)atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); msg->zeny = atoi(data);
- SQL->GetData(sql_handle,10, &data, NULL); msg->item.amount = (short)atoi(data);
- SQL->GetData(sql_handle,11, &data, NULL); msg->item.nameid = atoi(data);
- SQL->GetData(sql_handle,12, &data, NULL); msg->item.refine = atoi(data);
- SQL->GetData(sql_handle,13, &data, NULL); msg->item.attribute = atoi(data);
- SQL->GetData(sql_handle,14, &data, NULL); msg->item.identify = atoi(data);
- SQL->GetData(sql_handle,15, &data, NULL); msg->item.unique_id = strtoull(data, NULL, 10);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); msg->id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); safestrncpy(msg->send_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); msg->send_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); safestrncpy(msg->dest_name, data, NAME_LENGTH);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); msg->dest_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); safestrncpy(msg->title, data, MAIL_TITLE_LENGTH);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); safestrncpy(msg->body, data, MAIL_BODY_LENGTH);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); msg->timestamp = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); msg->status = (mail_status)atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); msg->zeny = atoi(data);
+ SQL->GetData(inter->sql_handle,10, &data, NULL); msg->item.amount = (short)atoi(data);
+ SQL->GetData(inter->sql_handle,11, &data, NULL); msg->item.nameid = atoi(data);
+ SQL->GetData(inter->sql_handle,12, &data, NULL); msg->item.refine = atoi(data);
+ SQL->GetData(inter->sql_handle,13, &data, NULL); msg->item.attribute = atoi(data);
+ SQL->GetData(inter->sql_handle,14, &data, NULL); msg->item.identify = atoi(data);
+ SQL->GetData(inter->sql_handle,15, &data, NULL); msg->item.unique_id = strtoull(data, NULL, 10);
msg->item.expire_time = 0;
msg->item.bound = 0;
for( j = 0; j < MAX_SLOTS; j++ )
{
- SQL->GetData(sql_handle,16 + j, &data, NULL);
+ SQL->GetData(inter->sql_handle,16 + j, &data, NULL);
msg->item.card[j] = atoi(data);
}
}
StrBuf->Destroy(&buf);
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return true;
}
-/*==========================================
- * Client Inbox Request
- *------------------------------------------*/
-static void mapif_Mail_sendinbox(int fd, int char_id, unsigned char flag)
+void mapif_mail_sendinbox(int fd, int char_id, unsigned char flag, struct mail_data *md)
{
- struct mail_data md;
- mail_fromsql(char_id, &md);
-
//FIXME: dumping the whole structure like this is unsafe [ultramage]
- WFIFOHEAD(fd, sizeof(md) + 9);
+ WFIFOHEAD(fd, sizeof(struct mail_data) + 9);
WFIFOW(fd,0) = 0x3848;
- WFIFOW(fd,2) = sizeof(md) + 9;
+ WFIFOW(fd,2) = sizeof(struct mail_data) + 9;
WFIFOL(fd,4) = char_id;
WFIFOB(fd,8) = flag;
- memcpy(WFIFOP(fd,9),&md,sizeof(md));
+ memcpy(WFIFOP(fd,9),md,sizeof(struct mail_data));
WFIFOSET(fd,WFIFOW(fd,2));
}
-static void mapif_parse_Mail_requestinbox(int fd)
+/*==========================================
+ * Client Inbox Request
+ *------------------------------------------*/
+void mapif_parse_mail_requestinbox(int fd)
{
- mapif_Mail_sendinbox(fd, RFIFOL(fd,2), RFIFOB(fd,6));
+ int char_id = RFIFOL(fd,2);
+ unsigned char flag = RFIFOB(fd,6);
+ struct mail_data md;
+ memset(&md, 0, sizeof(md));
+ inter_mail->fromsql(char_id, &md);
+ mapif->mail_sendinbox(fd, char_id, flag, &md);
}
/*==========================================
* Mark mail as 'Read'
*------------------------------------------*/
-static void mapif_parse_Mail_read(int fd)
+void mapif_parse_mail_read(int fd)
{
int mail_id = RFIFOL(fd,2);
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `status` = '%d' WHERE `id` = '%d'", mail_db, MAIL_READ, mail_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `status` = '%d' WHERE `id` = '%d'", mail_db, MAIL_READ, mail_id) )
+ Sql_ShowDebug(inter->sql_handle);
}
/*==========================================
* Client Attachment Request
*------------------------------------------*/
-static bool mail_DeleteAttach(int mail_id)
+static bool inter_mail_DeleteAttach(int mail_id)
{
StringBuf buf;
int i;
@@ -247,9 +253,9 @@ static bool mail_DeleteAttach(int mail_id)
StrBuf->Printf(&buf, ", `card%d` = '0'", i);
StrBuf->Printf(&buf, " WHERE `id` = '%d'", mail_id);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
return false;
@@ -259,11 +265,23 @@ static bool mail_DeleteAttach(int mail_id)
return true;
}
-static void mapif_Mail_getattach(int fd, int char_id, int mail_id)
+void mapif_mail_sendattach(int fd, int char_id, struct mail_message *msg)
+{
+ WFIFOHEAD(fd, sizeof(struct item) + 12);
+ WFIFOW(fd,0) = 0x384a;
+ WFIFOW(fd,2) = sizeof(struct item) + 12;
+ WFIFOL(fd,4) = char_id;
+ WFIFOL(fd,8) = (msg->zeny > 0)?msg->zeny:0;
+ memcpy(WFIFOP(fd,12), &msg->item, sizeof(struct item));
+ WFIFOSET(fd,WFIFOW(fd,2));
+}
+
+void mapif_mail_getattach(int fd, int char_id, int mail_id)
{
struct mail_message msg;
+ memset(&msg, 0, sizeof(msg));
- if( !mail_loadmessage(mail_id, &msg) )
+ if( !inter_mail->loadmessage(mail_id, &msg) )
return;
if( msg.dest_id != char_id )
@@ -275,35 +293,22 @@ static void mapif_Mail_getattach(int fd, int char_id, int mail_id)
if( (msg.item.nameid < 1 || msg.item.amount < 1) && msg.zeny < 1 )
return; // No Attachment
- if( !mail_DeleteAttach(mail_id) )
+ if( !inter_mail->DeleteAttach(mail_id) )
return;
- WFIFOHEAD(fd, sizeof(struct item) + 12);
- WFIFOW(fd,0) = 0x384a;
- WFIFOW(fd,2) = sizeof(struct item) + 12;
- WFIFOL(fd,4) = char_id;
- WFIFOL(fd,8) = (msg.zeny > 0)?msg.zeny:0;
- memcpy(WFIFOP(fd,12), &msg.item, sizeof(struct item));
- WFIFOSET(fd,WFIFOW(fd,2));
+ mapif->mail_sendattach(fd, char_id, &msg);
}
-static void mapif_parse_Mail_getattach(int fd)
+void mapif_parse_mail_getattach(int fd)
{
- mapif_Mail_getattach(fd, RFIFOL(fd,2), RFIFOL(fd,6));
+ mapif->mail_getattach(fd, RFIFOL(fd,2), RFIFOL(fd,6));
}
/*==========================================
* Delete Mail
*------------------------------------------*/
-static void mapif_Mail_delete(int fd, int char_id, int mail_id)
+void mapif_mail_delete(int fd, int char_id, int mail_id, bool failed)
{
- bool failed = false;
- if ( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", mail_db, mail_id) )
- {
- Sql_ShowDebug(sql_handle);
- failed = true;
- }
-
WFIFOHEAD(fd,11);
WFIFOW(fd,0) = 0x384b;
WFIFOL(fd,2) = char_id;
@@ -312,18 +317,26 @@ static void mapif_Mail_delete(int fd, int char_id, int mail_id)
WFIFOSET(fd,11);
}
-static void mapif_parse_Mail_delete(int fd)
+void mapif_parse_mail_delete(int fd)
{
- mapif_Mail_delete(fd, RFIFOL(fd,2), RFIFOL(fd,6));
+ int char_id = RFIFOL(fd,2);
+ int mail_id = RFIFOL(fd,6);
+ bool failed = false;
+ if ( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", mail_db, mail_id) )
+ {
+ Sql_ShowDebug(inter->sql_handle);
+ failed = true;
+ }
+ mapif->mail_delete(fd, char_id, mail_id, failed);
}
/*==========================================
* Report New Mail to Map Server
*------------------------------------------*/
-void mapif_Mail_new(struct mail_message *msg)
+void mapif_mail_new(struct mail_message *msg)
{
unsigned char buf[74];
-
+
if( !msg || !msg->id )
return;
@@ -332,23 +345,35 @@ void mapif_Mail_new(struct mail_message *msg)
WBUFL(buf,6) = msg->id;
memcpy(WBUFP(buf,10), msg->send_name, NAME_LENGTH);
memcpy(WBUFP(buf,34), msg->title, MAIL_TITLE_LENGTH);
- mapif_sendall(buf, 74);
+ mapif->sendall(buf, 74);
}
/*==========================================
* Return Mail
*------------------------------------------*/
-static void mapif_Mail_return(int fd, int char_id, int mail_id)
+void mapif_mail_return(int fd, int char_id, int mail_id, int new_mail)
+{
+ WFIFOHEAD(fd,11);
+ WFIFOW(fd,0) = 0x384c;
+ WFIFOL(fd,2) = char_id;
+ WFIFOL(fd,6) = mail_id;
+ WFIFOB(fd,10) = (new_mail == 0);
+ WFIFOSET(fd,11);
+}
+
+void mapif_parse_mail_return(int fd)
{
+ int char_id = RFIFOL(fd,2);
+ int mail_id = RFIFOL(fd,6);
struct mail_message msg;
int new_mail = 0;
- if( mail_loadmessage(mail_id, &msg) )
+ if( inter_mail->loadmessage(mail_id, &msg) )
{
if( msg.dest_id != char_id)
return;
- else if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", mail_db, mail_id) )
- Sql_ShowDebug(sql_handle);
+ else if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", mail_db, mail_id) )
+ Sql_ShowDebug(inter->sql_handle);
else
{
char temp_[MAIL_TITLE_LENGTH];
@@ -366,31 +391,21 @@ static void mapif_Mail_return(int fd, int char_id, int mail_id)
msg.status = MAIL_NEW;
msg.timestamp = time(NULL);
- new_mail = mail_savemessage(&msg);
- mapif_Mail_new(&msg);
+ new_mail = inter_mail->savemessage(&msg);
+ mapif->mail_new(&msg);
}
}
- WFIFOHEAD(fd,11);
- WFIFOW(fd,0) = 0x384c;
- WFIFOL(fd,2) = char_id;
- WFIFOL(fd,6) = mail_id;
- WFIFOB(fd,10) = (new_mail == 0);
- WFIFOSET(fd,11);
-}
-
-static void mapif_parse_Mail_return(int fd)
-{
- mapif_Mail_return(fd, RFIFOL(fd,2), RFIFOL(fd,6));
+ mapif->mail_return(fd, char_id, mail_id, new_mail);
}
/*==========================================
* Send Mail
*------------------------------------------*/
-static void mapif_Mail_send(int fd, struct mail_message* msg)
+void mapif_mail_send(int fd, struct mail_message* msg)
{
int len = sizeof(struct mail_message) + 4;
-
+
WFIFOHEAD(fd,len);
WFIFOW(fd,0) = 0x384d;
WFIFOW(fd,2) = len;
@@ -398,7 +413,7 @@ static void mapif_Mail_send(int fd, struct mail_message* msg)
WFIFOSET(fd,len);
}
-static void mapif_parse_Mail_send(int fd)
+void mapif_parse_mail_send(int fd)
{
struct mail_message msg;
char esc_name[NAME_LENGTH*2+1];
@@ -411,31 +426,31 @@ static void mapif_parse_Mail_send(int fd)
memcpy(&msg, RFIFOP(fd,8), sizeof(struct mail_message));
// Try to find the Dest Char by Name
- SQL->EscapeStringLen(sql_handle, esc_name, msg.dest_name, strnlen(msg.dest_name, NAME_LENGTH));
- if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`, `char_id` FROM `%s` WHERE `name` = '%s'", char_db, esc_name) )
- Sql_ShowDebug(sql_handle);
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, msg.dest_name, strnlen(msg.dest_name, NAME_LENGTH));
+ if ( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`, `char_id` FROM `%s` WHERE `name` = '%s'", char_db, esc_name) )
+ Sql_ShowDebug(inter->sql_handle);
else
- if ( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if ( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
char *data;
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
if (atoi(data) != account_id)
{ // Cannot send mail to char in the same account
- SQL->GetData(sql_handle, 1, &data, NULL);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL);
msg.dest_id = atoi(data);
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
msg.status = MAIL_NEW;
if( msg.dest_id > 0 )
- msg.id = mail_savemessage(&msg);
+ msg.id = inter_mail->savemessage(&msg);
- mapif_Mail_send(fd, &msg); // notify sender
- mapif_Mail_new(&msg); // notify recipient
+ mapif->mail_send(fd, &msg); // notify sender
+ mapif->mail_new(&msg); // notify recipient
}
-void mail_sendmail(int send_id, const char* send_name, int dest_id, const char* dest_name, const char* title, const char* body, int zeny, struct item *item)
+void inter_mail_sendmail(int send_id, const char* send_name, int dest_id, const char* dest_name, const char* title, const char* body, int zeny, struct item *item)
{
struct mail_message msg;
memset(&msg, 0, sizeof(struct mail_message));
@@ -452,8 +467,8 @@ void mail_sendmail(int send_id, const char* send_name, int dest_id, const char*
msg.timestamp = time(NULL);
- mail_savemessage(&msg);
- mapif_Mail_new(&msg);
+ inter_mail->savemessage(&msg);
+ mapif->mail_new(&msg);
}
/*==========================================
@@ -463,12 +478,12 @@ int inter_mail_parse_frommap(int fd)
{
switch(RFIFOW(fd,0))
{
- case 0x3048: mapif_parse_Mail_requestinbox(fd); break;
- case 0x3049: mapif_parse_Mail_read(fd); break;
- case 0x304a: mapif_parse_Mail_getattach(fd); break;
- case 0x304b: mapif_parse_Mail_delete(fd); break;
- case 0x304c: mapif_parse_Mail_return(fd); break;
- case 0x304d: mapif_parse_Mail_send(fd); break;
+ case 0x3048: mapif->parse_mail_requestinbox(fd); break;
+ case 0x3049: mapif->parse_mail_read(fd); break;
+ case 0x304a: mapif->parse_mail_getattach(fd); break;
+ case 0x304b: mapif->parse_mail_delete(fd); break;
+ case 0x304c: mapif->parse_mail_return(fd); break;
+ case 0x304d: mapif->parse_mail_send(fd); break;
default:
return 0;
}
@@ -484,3 +499,17 @@ void inter_mail_sql_final(void)
{
return;
}
+
+void inter_mail_defaults(void)
+{
+ inter_mail = &inter_mail_s;
+
+ inter_mail->savemessage = inter_mail_savemessage;
+ inter_mail->DeleteAttach = inter_mail_DeleteAttach;
+ inter_mail->sendmail = inter_mail_sendmail;
+ inter_mail->parse_frommap = inter_mail_parse_frommap;
+ inter_mail->sql_init = inter_mail_sql_init;
+ inter_mail->sql_final = inter_mail_sql_final;
+ inter_mail->fromsql = inter_mail_fromsql;
+ inter_mail->loadmessage = inter_mail_loadmessage;
+}
diff --git a/src/char/int_mail.h b/src/char/int_mail.h
index 8800061d7..5ce7bafa2 100644
--- a/src/char/int_mail.h
+++ b/src/char/int_mail.h
@@ -4,16 +4,28 @@
#ifndef CHAR_INT_MAIL_H
#define CHAR_INT_MAIL_H
+#include "../common/cbasetypes.h"
+
struct item;
+struct mail_data;
struct mail_message;
-int inter_mail_parse_frommap(int fd);
-void mail_sendmail(int send_id, const char* send_name, int dest_id, const char* dest_name, const char* title, const char* body, int zeny, struct item *item);
+void inter_mail_defaults(void);
-int inter_mail_sql_init(void);
-void inter_mail_sql_final(void);
+/**
+ * inter_mail interface
+ **/
+struct inter_mail_interface {
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*parse_frommap) (int fd);
+ int (*fromsql) (int char_id, struct mail_data* md);
+ int (*savemessage) (struct mail_message* msg);
+ bool (*loadmessage) (int mail_id, struct mail_message* msg);
+ bool (*DeleteAttach) (int mail_id);
+ void (*sendmail) (int send_id, const char* send_name, int dest_id, const char* dest_name, const char* title, const char* body, int zeny, struct item *item);
+};
-int mail_savemessage(struct mail_message* msg);
-void mapif_Mail_new(struct mail_message *msg);
+struct inter_mail_interface *inter_mail;
#endif /* CHAR_INT_MAIL_H */
diff --git a/src/char/int_mercenary.c b/src/char/int_mercenary.c
index 1dffb656c..2bd94b97e 100644
--- a/src/char/int_mercenary.c
+++ b/src/char/int_mercenary.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,53 +21,55 @@
#include "../common/strlib.h"
#include "../common/utils.h"
-bool mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status)
+struct inter_mercenary_interface inter_mercenary_s;
+
+bool inter_mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status)
{
char* data;
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `merc_id`, `arch_calls`, `arch_faith`, `spear_calls`, `spear_faith`, `sword_calls`, `sword_faith` FROM `%s` WHERE `char_id` = '%d'", mercenary_owner_db, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `merc_id`, `arch_calls`, `arch_faith`, `spear_calls`, `spear_faith`, `sword_calls`, `sword_faith` FROM `%s` WHERE `char_id` = '%d'", mercenary_owner_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return false;
}
- SQL->GetData(sql_handle, 0, &data, NULL); status->mer_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); status->arch_calls = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); status->arch_faith = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); status->spear_calls = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); status->spear_faith = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); status->sword_calls = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); status->sword_faith = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); status->mer_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); status->arch_calls = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); status->arch_faith = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); status->spear_calls = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); status->spear_faith = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); status->sword_calls = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); status->sword_faith = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
return true;
}
-bool mercenary_owner_tosql(int char_id, struct mmo_charstatus *status)
+bool inter_mercenary_owner_tosql(int char_id, struct mmo_charstatus *status)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`char_id`, `merc_id`, `arch_calls`, `arch_faith`, `spear_calls`, `spear_faith`, `sword_calls`, `sword_faith`) VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`char_id`, `merc_id`, `arch_calls`, `arch_faith`, `spear_calls`, `spear_faith`, `sword_calls`, `sword_faith`) VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
mercenary_owner_db, char_id, status->mer_id, status->arch_calls, status->arch_faith, status->spear_calls, status->spear_faith, status->sword_calls, status->sword_faith) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
return true;
}
-bool mercenary_owner_delete(int char_id)
+bool inter_mercenary_owner_delete(int char_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", mercenary_owner_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", mercenary_owner_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", mercenary_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d'", mercenary_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
return true;
}
@@ -77,21 +80,21 @@ bool mapif_mercenary_save(struct s_mercenary* merc)
if( merc->mercenary_id == 0 )
{ // Create new DB entry
- if( SQL_ERROR == SQL->Query(sql_handle,
+ if( SQL_ERROR == SQL->Query(inter->sql_handle,
"INSERT INTO `%s` (`char_id`,`class`,`hp`,`sp`,`kill_counter`,`life_time`) VALUES ('%d','%d','%d','%d','%u','%u')",
mercenary_db, merc->char_id, merc->class_, merc->hp, merc->sp, merc->kill_count, merc->life_time) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
else
- merc->mercenary_id = (int)SQL->LastInsertId(sql_handle);
+ merc->mercenary_id = (int)SQL->LastInsertId(inter->sql_handle);
}
- else if( SQL_ERROR == SQL->Query(sql_handle,
+ else if( SQL_ERROR == SQL->Query(inter->sql_handle,
"UPDATE `%s` SET `char_id` = '%d', `class` = '%d', `hp` = '%d', `sp` = '%d', `kill_counter` = '%u', `life_time` = '%u' WHERE `mer_id` = '%d'",
mercenary_db, merc->char_id, merc->class_, merc->hp, merc->sp, merc->kill_count, merc->life_time, merc->mercenary_id) )
{ // Update DB entry
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
flag = false;
}
@@ -106,42 +109,42 @@ bool mapif_mercenary_load(int merc_id, int char_id, struct s_mercenary *merc)
merc->mercenary_id = merc_id;
merc->char_id = char_id;
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `class`, `hp`, `sp`, `kill_counter`, `life_time` FROM `%s` WHERE `mer_id` = '%d' AND `char_id` = '%d'", mercenary_db, merc_id, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `class`, `hp`, `sp`, `kill_counter`, `life_time` FROM `%s` WHERE `mer_id` = '%d' AND `char_id` = '%d'", mercenary_db, merc_id, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return false;
}
- SQL->GetData(sql_handle, 0, &data, NULL); merc->class_ = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); merc->hp = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); merc->sp = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); merc->kill_count = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); merc->life_time = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); merc->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); merc->hp = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); merc->sp = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); merc->kill_count = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); merc->life_time = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
if( save_log )
ShowInfo("Mercenary loaded (%d - %d).\n", merc->mercenary_id, merc->char_id);
-
+
return true;
}
bool mapif_mercenary_delete(int merc_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `mer_id` = '%d'", mercenary_db, merc_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `mer_id` = '%d'", mercenary_db, merc_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
return true;
}
-static void mapif_mercenary_send(int fd, struct s_mercenary *merc, unsigned char flag)
+void mapif_mercenary_send(int fd, struct s_mercenary *merc, unsigned char flag)
{
int size = sizeof(struct s_mercenary) + 5;
@@ -153,20 +156,20 @@ static void mapif_mercenary_send(int fd, struct s_mercenary *merc, unsigned char
WFIFOSET(fd,size);
}
-static void mapif_parse_mercenary_create(int fd, struct s_mercenary* merc)
+void mapif_parse_mercenary_create(int fd, struct s_mercenary* merc)
{
- bool result = mapif_mercenary_save(merc);
- mapif_mercenary_send(fd, merc, result);
+ bool result = mapif->mercenary_save(merc);
+ mapif->mercenary_send(fd, merc, result);
}
-static void mapif_parse_mercenary_load(int fd, int merc_id, int char_id)
+void mapif_parse_mercenary_load(int fd, int merc_id, int char_id)
{
struct s_mercenary merc;
- bool result = mapif_mercenary_load(merc_id, char_id, &merc);
- mapif_mercenary_send(fd, &merc, result);
+ bool result = mapif->mercenary_load(merc_id, char_id, &merc);
+ mapif->mercenary_send(fd, &merc, result);
}
-static void mapif_mercenary_deleted(int fd, unsigned char flag)
+void mapif_mercenary_deleted(int fd, unsigned char flag)
{
WFIFOHEAD(fd,3);
WFIFOW(fd,0) = 0x3871;
@@ -174,13 +177,13 @@ static void mapif_mercenary_deleted(int fd, unsigned char flag)
WFIFOSET(fd,3);
}
-static void mapif_parse_mercenary_delete(int fd, int merc_id)
+void mapif_parse_mercenary_delete(int fd, int merc_id)
{
- bool result = mapif_mercenary_delete(merc_id);
- mapif_mercenary_deleted(fd, result);
+ bool result = mapif->mercenary_delete(merc_id);
+ mapif->mercenary_deleted(fd, result);
}
-static void mapif_mercenary_saved(int fd, unsigned char flag)
+void mapif_mercenary_saved(int fd, unsigned char flag)
{
WFIFOHEAD(fd,3);
WFIFOW(fd,0) = 0x3872;
@@ -188,10 +191,10 @@ static void mapif_mercenary_saved(int fd, unsigned char flag)
WFIFOSET(fd,3);
}
-static void mapif_parse_mercenary_save(int fd, struct s_mercenary* merc)
+void mapif_parse_mercenary_save(int fd, struct s_mercenary* merc)
{
- bool result = mapif_mercenary_save(merc);
- mapif_mercenary_saved(fd, result);
+ bool result = mapif->mercenary_save(merc);
+ mapif->mercenary_saved(fd, result);
}
int inter_mercenary_sql_init(void)
@@ -212,12 +215,25 @@ int inter_mercenary_parse_frommap(int fd)
switch( cmd )
{
- case 0x3070: mapif_parse_mercenary_create(fd, (struct s_mercenary*)RFIFOP(fd,4)); break;
- case 0x3071: mapif_parse_mercenary_load(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
- case 0x3072: mapif_parse_mercenary_delete(fd, (int)RFIFOL(fd,2)); break;
- case 0x3073: mapif_parse_mercenary_save(fd, (struct s_mercenary*)RFIFOP(fd,4)); break;
+ case 0x3070: mapif->parse_mercenary_create(fd, (struct s_mercenary*)RFIFOP(fd,4)); break;
+ case 0x3071: mapif->parse_mercenary_load(fd, (int)RFIFOL(fd,2), (int)RFIFOL(fd,6)); break;
+ case 0x3072: mapif->parse_mercenary_delete(fd, (int)RFIFOL(fd,2)); break;
+ case 0x3073: mapif->parse_mercenary_save(fd, (struct s_mercenary*)RFIFOP(fd,4)); break;
default:
return 0;
}
return 1;
}
+
+void inter_mercenary_defaults(void)
+{
+ inter_mercenary = &inter_mercenary_s;
+
+ inter_mercenary->owner_fromsql = inter_mercenary_owner_fromsql;
+ inter_mercenary->owner_tosql = inter_mercenary_owner_tosql;
+ inter_mercenary->owner_delete = inter_mercenary_owner_delete;
+
+ inter_mercenary->sql_init = inter_mercenary_sql_init;
+ inter_mercenary->sql_final = inter_mercenary_sql_final;
+ inter_mercenary->parse_frommap = inter_mercenary_parse_frommap;
+}
diff --git a/src/char/int_mercenary.h b/src/char/int_mercenary.h
index b03c20de3..b22ea61b2 100644
--- a/src/char/int_mercenary.h
+++ b/src/char/int_mercenary.h
@@ -8,15 +8,20 @@
struct mmo_charstatus;
-int inter_mercenary_sql_init(void);
-void inter_mercenary_sql_final(void);
-int inter_mercenary_parse_frommap(int fd);
+void inter_mercenary_defaults(void);
-// Mercenary Owner Database
-bool mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status);
-bool mercenary_owner_tosql(int char_id, struct mmo_charstatus *status);
-bool mercenary_owner_delete(int char_id);
+/**
+ * inter_mercenary interface
+ **/
+struct inter_mercenary_interface {
+ bool (*owner_fromsql) (int char_id, struct mmo_charstatus *status);
+ bool (*owner_tosql) (int char_id, struct mmo_charstatus *status);
+ bool (*owner_delete) (int char_id);
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*parse_frommap) (int fd);
+};
-bool mapif_mercenary_delete(int merc_id);
+struct inter_mercenary_interface *inter_mercenary;
#endif /* CHAR_INT_MERCENARY_H */
diff --git a/src/char/int_party.c b/src/char/int_party.c
index a8722fbe3..b16f106be 100644
--- a/src/char/int_party.c
+++ b/src/char/int_party.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/cbasetypes.h"
#include "../common/db.h"
#include "../common/malloc.h"
@@ -22,24 +23,10 @@
#include "../common/sql.h"
#include "../common/strlib.h"
-struct party_data {
- struct party party;
- unsigned int min_lv, max_lv;
- int family; //Is this party a family? if so, this holds the child id.
- unsigned char size; //Total size of party.
-};
-
-static struct party_data *party_pt;
-static DBMap* party_db_; // int party_id -> struct party_data*
-
-int mapif_party_broken(int party_id,int flag);
-int party_check_empty(struct party_data *p);
-int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id);
-int party_check_exp_share(struct party_data *p);
-int mapif_party_optionchanged(int fd,struct party *p, int account_id, int flag);
+struct inter_party_interface inter_party_s;
//Updates party's level range and unsets even share if broken.
-static int int_party_check_lv(struct party_data *p) {
+static int inter_party_check_lv(struct party_data *p) {
int i;
unsigned int lv;
p->min_lv = UINT_MAX;
@@ -56,15 +43,15 @@ static int int_party_check_lv(struct party_data *p) {
if (lv > p->max_lv) p->max_lv = lv;
}
- if (p->party.exp && !party_check_exp_share(p)) {
+ if (p->party.exp && !inter_party->check_exp_share(p)) {
p->party.exp = 0;
- mapif_party_optionchanged(0, &p->party, 0, 0);
+ mapif->party_optionchanged(0, &p->party, 0, 0);
return 0;
}
return 1;
}
//Calculates the state of a party.
-static void int_party_calc_state(struct party_data *p)
+static void inter_party_calc_state(struct party_data *p)
{
int i;
unsigned int lv;
@@ -81,7 +68,7 @@ static void int_party_calc_state(struct party_data *p)
if(p->party.member[i].online)
p->party.count++;
}
- if( p->size == 2 && ( char_child(p->party.member[0].char_id,p->party.member[1].char_id) || char_child(p->party.member[1].char_id,p->party.member[0].char_id) ) ) {
+ if( p->size == 2 && ( chr->char_child(p->party.member[0].char_id,p->party.member[1].char_id) || chr->char_child(p->party.member[1].char_id,p->party.member[0].char_id) ) ) {
//Child should be able to share with either of their parents [RoM]
if(p->party.member[0].class_&0x2000) //first slot is the child?
p->family = p->party.member[0].char_id;
@@ -89,7 +76,7 @@ static void int_party_calc_state(struct party_data *p)
p->family = p->party.member[1].char_id;
} else if( p->size == 3 ) {
//Check Family State.
- p->family = char_family(
+ p->family = chr->char_family(
p->party.member[0].char_id,
p->party.member[1].char_id,
p->party.member[2].char_id
@@ -108,9 +95,9 @@ static void int_party_calc_state(struct party_data *p)
}
}
- if (p->party.exp && !party_check_exp_share(p)) {
+ if (p->party.exp && !inter_party->check_exp_share(p)) {
p->party.exp = 0; //Set off even share.
- mapif_party_optionchanged(0, &p->party, 0, 0);
+ mapif->party_optionchanged(0, &p->party, 0, 0);
}
return;
}
@@ -129,59 +116,59 @@ int inter_party_tosql(struct party *p, int flag, int index)
#ifdef NOISY
ShowInfo("Save party request ("CL_BOLD"%d"CL_RESET" - %s).\n", party_id, p->name);
#endif
- SQL->EscapeStringLen(sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
if( flag & PS_BREAK )
{// Break the party
// we'll skip name-checking and just reset everyone with the same party id [celest]
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d'", char_db, party_id) )
- Sql_ShowDebug(sql_handle);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `party_id`='%d'", party_db, party_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d'", char_db, party_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `party_id`='%d'", party_db, party_id) )
+ Sql_ShowDebug(inter->sql_handle);
//Remove from memory
- idb_remove(party_db_, party_id);
+ idb_remove(inter_party->db, party_id);
return 1;
}
if( flag & PS_CREATE )
{// Create party
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` "
"(`name`, `exp`, `item`, `leader_id`, `leader_char`) "
"VALUES ('%s', '%d', '%d', '%d', '%d')",
party_db, esc_name, p->exp, p->item, p->member[index].account_id, p->member[index].char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- party_id = p->party_id = (int)SQL->LastInsertId(sql_handle);
+ party_id = p->party_id = (int)SQL->LastInsertId(inter->sql_handle);
}
if( flag & PS_BASIC )
{// Update party info.
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `name`='%s', `exp`='%d', `item`='%d' WHERE `party_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `name`='%s', `exp`='%d', `item`='%d' WHERE `party_id`='%d'",
party_db, esc_name, p->exp, p->item, party_id) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
if( flag & PS_LEADER )
{// Update leader
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `leader_id`='%d', `leader_char`='%d' WHERE `party_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `leader_id`='%d', `leader_char`='%d' WHERE `party_id`='%d'",
party_db, p->member[index].account_id, p->member[index].char_id, party_id) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
-
+
if( flag & PS_ADDMEMBER )
{// Add one party member.
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `party_id`='%d' WHERE `account_id`='%d' AND `char_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `party_id`='%d' WHERE `account_id`='%d' AND `char_id`='%d'",
char_db, party_id, p->member[index].account_id, p->member[index].char_id) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
if( flag & PS_DELMEMBER )
{// Remove one party member.
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d' AND `account_id`='%d' AND `char_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d' AND `account_id`='%d' AND `char_id`='%d'",
char_db, party_id, p->member[index].account_id, p->member[index].char_id) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
}
if( save_log )
@@ -205,124 +192,124 @@ struct party_data *inter_party_fromsql(int party_id)
#endif
if( party_id <= 0 )
return NULL;
-
+
//Load from memory
- p = (struct party_data*)idb_get(party_db_, party_id);
+ p = (struct party_data*)idb_get(inter_party->db, party_id);
if( p != NULL )
return p;
- p = party_pt;
+ p = inter_party->pt;
memset(p, 0, sizeof(struct party_data));
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `party_id`, `name`,`exp`,`item`, `leader_id`, `leader_char` FROM `%s` WHERE `party_id`='%d'", party_db, party_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `party_id`, `name`,`exp`,`item`, `leader_id`, `leader_char` FROM `%s` WHERE `party_id`='%d'", party_db, party_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return NULL;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
return NULL;
p->party.party_id = party_id;
- SQL->GetData(sql_handle, 1, &data, &len); memcpy(p->party.name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 2, &data, NULL); p->party.exp = (atoi(data) ? 1 : 0);
- SQL->GetData(sql_handle, 3, &data, NULL); p->party.item = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); leader_id = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); leader_char = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->GetData(inter->sql_handle, 1, &data, &len); memcpy(p->party.name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); p->party.exp = (atoi(data) ? 1 : 0);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); p->party.item = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); leader_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); leader_char = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
// Load members
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`char_id`,`name`,`base_level`,`last_map`,`online`,`class` FROM `%s` WHERE `party_id`='%d'", char_db, party_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`char_id`,`name`,`base_level`,`last_map`,`online`,`class` FROM `%s` WHERE `party_id`='%d'", char_db, party_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return NULL;
}
- for( i = 0; i < MAX_PARTY && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for( i = 0; i < MAX_PARTY && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
m = &p->party.member[i];
- SQL->GetData(sql_handle, 0, &data, NULL); m->account_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); m->char_id = atoi(data);
- SQL->GetData(sql_handle, 2, &data, &len); memcpy(m->name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 3, &data, NULL); m->lv = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); m->map = mapindex->name2id(data);
- SQL->GetData(sql_handle, 5, &data, NULL); m->online = (atoi(data) ? 1 : 0);
- SQL->GetData(sql_handle, 6, &data, NULL); m->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); m->account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); m->char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(m->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); m->lv = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); m->map = mapindex->name2id(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); m->online = (atoi(data) ? 1 : 0);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); m->class_ = atoi(data);
m->leader = (m->account_id == leader_id && m->char_id == leader_char ? 1 : 0);
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
if( save_log )
ShowInfo("Party loaded (%d - %s).\n", party_id, p->party.name);
//Add party to memory.
CREATE(p, struct party_data, 1);
- memcpy(p, party_pt, sizeof(struct party_data));
+ memcpy(p, inter_party->pt, sizeof(struct party_data));
//init state
- int_party_calc_state(p);
- idb_put(party_db_, party_id, p);
+ inter_party->calc_state(p);
+ idb_put(inter_party->db, party_id, p);
return p;
}
int inter_party_sql_init(void)
{
//memory alloc
- party_db_ = idb_alloc(DB_OPT_RELEASE_DATA);
- party_pt = (struct party_data*)aCalloc(sizeof(struct party_data), 1);
- if (!party_pt) {
- ShowFatalError("inter_party_sql_init: Out of Memory!\n");
+ inter_party->db = idb_alloc(DB_OPT_RELEASE_DATA);
+ inter_party->pt = (struct party_data*)aCalloc(sizeof(struct party_data), 1);
+ if (!inter_party->pt) {
+ ShowFatalError("inter_party->sql_init: Out of Memory!\n");
exit(EXIT_FAILURE);
}
/* Uncomment the following if you want to do a party_db cleanup (remove parties with no members) on startup.[Skotlex]
ShowStatus("cleaning party table...\n");
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` USING `%s` LEFT JOIN `%s` ON `%s`.leader_id =`%s`.account_id AND `%s`.leader_char = `%s`.char_id WHERE `%s`.account_id IS NULL",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` USING `%s` LEFT JOIN `%s` ON `%s`.leader_id =`%s`.account_id AND `%s`.leader_char = `%s`.char_id WHERE `%s`.account_id IS NULL",
party_db, party_db, char_db, party_db, char_db, party_db, char_db, char_db) )
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
*/
return 0;
}
void inter_party_sql_final(void)
{
- party_db_->destroy(party_db_, NULL);
- aFree(party_pt);
+ inter_party->db->destroy(inter_party->db, NULL);
+ aFree(inter_party->pt);
return;
}
// Search for the party according to its name
-struct party_data* search_partyname(char* str)
+struct party_data* inter_party_search_partyname(const char *const str)
{
char esc_name[NAME_LENGTH*2+1];
char* data;
struct party_data* p = NULL;
- SQL->EscapeStringLen(sql_handle, esc_name, str, safestrnlen(str, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `party_id` FROM `%s` WHERE `name`='%s'", party_db, esc_name) )
- Sql_ShowDebug(sql_handle);
- else if( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
- SQL->GetData(sql_handle, 0, &data, NULL);
- p = inter_party_fromsql(atoi(data));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, str, safestrnlen(str, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `party_id` FROM `%s` WHERE `name`='%s'", party_db, esc_name) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) {
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
+ p = inter_party->fromsql(atoi(data));
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return p;
}
// Returns whether this party can keep having exp share or not.
-int party_check_exp_share(struct party_data *p)
+int inter_party_check_exp_share(struct party_data *const p)
{
return (p->party.count < 2 || p->max_lv - p->min_lv <= party_share_level);
}
// Is there any member in the party?
-int party_check_empty(struct party_data *p)
+int inter_party_check_empty(struct party_data *p)
{
int i;
if (p==NULL||p->party.party_id==0) return 1;
for(i=0;i<MAX_PARTY && !p->party.member[i].account_id;i++);
if (i < MAX_PARTY) return 0;
// If there is no member, then break the party
- mapif_party_broken(p->party.party_id,0);
- inter_party_tosql(&p->party, PS_BREAK, 0);
+ mapif->party_broken(p->party.party_id,0);
+ inter_party->tosql(&p->party, PS_BREAK, 0);
return 1;
}
@@ -331,7 +318,7 @@ int party_check_empty(struct party_data *p)
// Create a party whether or not
-int mapif_party_created(int fd,int account_id,int char_id,struct party *p)
+int mapif_party_created(int fd, int account_id, int char_id, struct party *p)
{
WFIFOHEAD(fd, 39);
WFIFOW(fd,0)=0x3820;
@@ -353,7 +340,7 @@ int mapif_party_created(int fd,int account_id,int char_id,struct party *p)
}
//Party information not found
-static void mapif_party_noinfo(int fd, int party_id, int char_id)
+void mapif_party_noinfo(int fd, int party_id, int char_id)
{
WFIFOHEAD(fd, 12);
WFIFOW(fd,0) = 0x3821;
@@ -365,7 +352,7 @@ static void mapif_party_noinfo(int fd, int party_id, int char_id)
}
//Digest party information
-static void mapif_party_info(int fd, struct party* p, int char_id)
+void mapif_party_info(int fd, struct party* p, int char_id)
{
unsigned char buf[8 + sizeof(struct party)];
WBUFW(buf,0) = 0x3821;
@@ -374,9 +361,9 @@ static void mapif_party_info(int fd, struct party* p, int char_id)
memcpy(WBUFP(buf,8), p, sizeof(struct party));
if(fd<0)
- mapif_sendall(buf,WBUFW(buf,2));
+ mapif->sendall(buf,WBUFW(buf,2));
else
- mapif_send(fd,buf,WBUFW(buf,2));
+ mapif->send(fd,buf,WBUFW(buf,2));
}
//Whether or not additional party members
@@ -393,7 +380,7 @@ int mapif_party_memberadded(int fd, int party_id, int account_id, int char_id, i
}
// Party setting change notification
-int mapif_party_optionchanged(int fd,struct party *p,int account_id,int flag)
+int mapif_party_optionchanged(int fd, struct party *p, int account_id, int flag)
{
unsigned char buf[16];
WBUFW(buf,0)=0x3823;
@@ -403,9 +390,9 @@ int mapif_party_optionchanged(int fd,struct party *p,int account_id,int flag)
WBUFW(buf,12)=p->item;
WBUFB(buf,14)=flag;
if(flag==0)
- mapif_sendall(buf,15);
+ mapif->sendall(buf,15);
else
- mapif_send(fd,buf,15);
+ mapif->send(fd,buf,15);
return 0;
}
@@ -417,12 +404,12 @@ int mapif_party_withdraw(int party_id,int account_id, int char_id) {
WBUFL(buf,2) = party_id;
WBUFL(buf,6) = account_id;
WBUFL(buf,10) = char_id;
- mapif_sendall(buf, 14);
+ mapif->sendall(buf, 14);
return 0;
}
//Party map update notification
-int mapif_party_membermoved(struct party *p,int idx)
+int mapif_party_membermoved(struct party *p, int idx)
{
unsigned char buf[20];
@@ -433,24 +420,24 @@ int mapif_party_membermoved(struct party *p,int idx)
WBUFW(buf,14) = p->member[idx].map;
WBUFB(buf,16) = p->member[idx].online;
WBUFW(buf,17) = p->member[idx].lv;
- mapif_sendall(buf, 19);
+ mapif->sendall(buf, 19);
return 0;
}
//Dissolution party notification
-int mapif_party_broken(int party_id,int flag)
+int mapif_party_broken(int party_id, int flag)
{
unsigned char buf[16];
WBUFW(buf,0)=0x3826;
WBUFL(buf,2)=party_id;
WBUFB(buf,6)=flag;
- mapif_sendall(buf,7);
+ mapif->sendall(buf,7);
//printf("int_party: broken %d\n",party_id);
return 0;
}
//Remarks in the party
-int mapif_party_message(int party_id,int account_id,char *mes,int len, int sfd)
+int mapif_party_message(int party_id, int account_id, char *mes, int len, int sfd)
{
unsigned char buf[512];
WBUFW(buf,0)=0x3827;
@@ -458,7 +445,7 @@ int mapif_party_message(int party_id,int account_id,char *mes,int len, int sfd)
WBUFL(buf,4)=party_id;
WBUFL(buf,8)=account_id;
memcpy(WBUFP(buf,12),mes,len);
- mapif_sendallwos(sfd, buf,len+12);
+ mapif->sendallwos(sfd, buf,len+12);
return 0;
}
@@ -471,8 +458,8 @@ int mapif_parse_CreateParty(int fd, char *name, int item, int item2, struct part
{
struct party_data *p;
int i;
- if( (p=search_partyname(name))!=NULL){
- mapif_party_created(fd,leader->account_id,leader->char_id,NULL);
+ if( (p=inter_party->search_partyname(name))!=NULL){
+ mapif->party_created(fd,leader->account_id,leader->char_id,NULL);
return 0;
}
// Check Authorized letters/symbols in the name of the character
@@ -481,22 +468,22 @@ int mapif_parse_CreateParty(int fd, char *name, int item, int item2, struct part
if (strchr(char_name_letters, name[i]) == NULL) {
if( name[i] == '"' ) { /* client-special-char */
normalize_name(name,"\"");
- mapif_parse_CreateParty(fd,name,item,item2,leader);
+ mapif->parse_CreateParty(fd,name,item,item2,leader);
return 0;
}
- mapif_party_created(fd,leader->account_id,leader->char_id,NULL);
+ mapif->party_created(fd,leader->account_id,leader->char_id,NULL);
return 0;
}
} else if (char_name_option == 2) { // letters/symbols in char_name_letters are forbidden
for (i = 0; i < NAME_LENGTH && name[i]; i++)
if (strchr(char_name_letters, name[i]) != NULL) {
- mapif_party_created(fd,leader->account_id,leader->char_id,NULL);
+ mapif->party_created(fd,leader->account_id,leader->char_id,NULL);
return 0;
}
}
p = (struct party_data*)aCalloc(1, sizeof(struct party_data));
-
+
memcpy(p->party.name,name,NAME_LENGTH);
p->party.exp=0;
p->party.item=(item?1:0)|(item2?2:0);
@@ -506,30 +493,30 @@ int mapif_parse_CreateParty(int fd, char *name, int item, int item2, struct part
p->party.member[0].online=1;
p->party.party_id=-1;//New party.
- if (inter_party_tosql(&p->party,PS_CREATE|PS_ADDMEMBER,0)) {
+ if (inter_party->tosql(&p->party,PS_CREATE|PS_ADDMEMBER,0)) {
//Add party to db
- int_party_calc_state(p);
- idb_put(party_db_, p->party.party_id, p);
- mapif_party_info(fd, &p->party, 0);
- mapif_party_created(fd,leader->account_id,leader->char_id,&p->party);
+ inter_party->calc_state(p);
+ idb_put(inter_party->db, p->party.party_id, p);
+ mapif->party_info(fd, &p->party, 0);
+ mapif->party_created(fd,leader->account_id,leader->char_id,&p->party);
} else { //Failed to create party.
aFree(p);
- mapif_party_created(fd,leader->account_id,leader->char_id,NULL);
+ mapif->party_created(fd,leader->account_id,leader->char_id,NULL);
}
return 0;
}
// Party information request
-static void mapif_parse_PartyInfo(int fd, int party_id, int char_id)
+void mapif_parse_PartyInfo(int fd, int party_id, int char_id)
{
struct party_data *p;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if (p)
- mapif_party_info(fd, &p->party, char_id);
+ mapif->party_info(fd, &p->party, char_id);
else
- mapif_party_noinfo(fd, party_id, char_id);
+ mapif->party_noinfo(fd, party_id, char_id);
}
// Add a player to party request
@@ -538,16 +525,16 @@ int mapif_parse_PartyAddMember(int fd, int party_id, struct party_member *member
struct party_data *p;
int i;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if( p == NULL || p->size == MAX_PARTY ) {
- mapif_party_memberadded(fd, party_id, member->account_id, member->char_id, 1);
+ mapif->party_memberadded(fd, party_id, member->account_id, member->char_id, 1);
return 0;
}
ARR_FIND( 0, MAX_PARTY, i, p->party.member[i].account_id == 0 );
if( i == MAX_PARTY )
{// Party full
- mapif_party_memberadded(fd, party_id, member->account_id, member->char_id, 1);
+ mapif->party_memberadded(fd, party_id, member->account_id, member->char_id, 1);
return 0;
}
@@ -556,16 +543,16 @@ int mapif_parse_PartyAddMember(int fd, int party_id, struct party_member *member
if (p->party.member[i].online) p->party.count++;
p->size++;
if (p->size == 2 || p->size == 3) // Check family state. And also accept either of their Parents. [RoM]
- int_party_calc_state(p);
+ inter_party->calc_state(p);
else //Check even share range.
if (member->lv < p->min_lv || member->lv > p->max_lv || p->family) {
if (p->family) p->family = 0; //Family state broken.
- int_party_check_lv(p);
+ inter_party->check_lv(p);
}
- mapif_party_info(-1, &p->party, 0);
- mapif_party_memberadded(fd, party_id, member->account_id, member->char_id, 0);
- inter_party_tosql(&p->party, PS_ADDMEMBER, i);
+ mapif->party_info(-1, &p->party, 0);
+ mapif->party_memberadded(fd, party_id, member->account_id, member->char_id, 0);
+ inter_party->tosql(&p->party, PS_ADDMEMBER, i);
return 0;
}
@@ -575,19 +562,19 @@ int mapif_parse_PartyChangeOption(int fd,int party_id,int account_id,int exp,int
{
struct party_data *p;
int flag = 0;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if(!p)
return 0;
p->party.exp=exp;
- if( exp && !party_check_exp_share(p) ){
+ if( exp && !inter_party->check_exp_share(p) ){
flag|=0x01;
p->party.exp=0;
}
p->party.item = item&0x3; //Filter out invalid values.
- mapif_party_optionchanged(fd,&p->party,account_id,flag);
- inter_party_tosql(&p->party, PS_BASIC, 0);
+ mapif->party_optionchanged(fd,&p->party,account_id,flag);
+ inter_party->tosql(&p->party, PS_BASIC, 0);
return 0;
}
@@ -597,11 +584,11 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id)
struct party_data *p;
int i,j=-1;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if( p == NULL )
{// Party does not exists?
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d'", char_db, party_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `party_id`='0' WHERE `party_id`='%d'", char_db, party_id) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
@@ -614,19 +601,19 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id)
if (i >= MAX_PARTY)
return 0; //Member not found?
- mapif_party_withdraw(party_id, account_id, char_id);
+ mapif->party_withdraw(party_id, account_id, char_id);
if (p->party.member[i].leader){
p->party.member[i].account_id = 0;
for (j = 0; j < MAX_PARTY; j++) {
if (!p->party.member[j].account_id)
continue;
- mapif_party_withdraw(party_id, p->party.member[j].account_id, p->party.member[j].char_id);
+ mapif->party_withdraw(party_id, p->party.member[j].account_id, p->party.member[j].char_id);
p->party.member[j].account_id = 0;
}
//Party gets deleted on the check_empty call below.
} else {
- inter_party_tosql(&p->party,PS_DELMEMBER,i);
+ inter_party->tosql(&p->party,PS_DELMEMBER,i);
j = p->party.member[i].lv;
if(p->party.member[i].online) p->party.count--;
memset(&p->party.member[i], 0, sizeof(struct party_member));
@@ -634,12 +621,12 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id)
if (j == p->min_lv || j == p->max_lv || p->family)
{
if(p->family) p->family = 0; //Family state broken.
- int_party_check_lv(p);
+ inter_party->check_lv(p);
}
}
-
- if (party_check_empty(p) == 0)
- mapif_party_info(-1, &p->party, 0);
+
+ if (inter_party->check_empty(p) == 0)
+ mapif->party_info(-1, &p->party, 0);
return 0;
}
// When member goes to other map or levels up.
@@ -648,7 +635,7 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
struct party_data *p;
int i;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if (p == NULL)
return 0;
@@ -674,10 +661,10 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
)
{
p->party.member[i].lv = lv;
- int_party_check_lv(p);
+ inter_party->check_lv(p);
}
//Send online/offline update.
- mapif_party_membermoved(&p->party, i);
+ mapif->party_membermoved(&p->party, i);
}
if (p->party.member[i].lv != lv) {
@@ -685,7 +672,7 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
p->party.member[i].lv == p->max_lv)
{
p->party.member[i].lv = lv;
- int_party_check_lv(p);
+ inter_party->check_lv(p);
} else
p->party.member[i].lv = lv;
//There is no need to send level update to map servers
@@ -694,50 +681,47 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
if (p->party.member[i].map != map) {
p->party.member[i].map = map;
- mapif_party_membermoved(&p->party, i);
+ mapif->party_membermoved(&p->party, i);
}
return 0;
}
//Request party dissolution
-int mapif_parse_BreakParty(int fd,int party_id)
+int mapif_parse_BreakParty(int fd, int party_id)
{
struct party_data *p;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if(!p)
return 0;
- inter_party_tosql(&p->party,PS_BREAK,0);
- mapif_party_broken(fd,party_id);
+ inter_party->tosql(&p->party,PS_BREAK,0);
+ mapif->party_broken(fd,party_id);
return 0;
}
//Party sending the message
-int mapif_parse_PartyMessage(int fd,int party_id,int account_id,char *mes,int len)
+int mapif_parse_PartyMessage(int fd, int party_id, int account_id, char *mes, int len)
{
- return mapif_party_message(party_id,account_id,mes,len, fd);
+ return mapif->party_message(party_id,account_id,mes,len, fd);
}
-int mapif_parse_PartyLeaderChange(int fd,int party_id,int account_id,int char_id)
+int mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, int char_id)
{
struct party_data *p;
int i;
- p = inter_party_fromsql(party_id);
+ p = inter_party->fromsql(party_id);
if(!p)
return 0;
- for (i = 0; i < MAX_PARTY; i++)
- {
+ for (i = 0; i < MAX_PARTY; i++) {
if(p->party.member[i].leader)
p->party.member[i].leader = 0;
- if(p->party.member[i].account_id == account_id &&
- p->party.member[i].char_id == char_id)
- {
+ if(p->party.member[i].account_id == account_id && p->party.member[i].char_id == char_id) {
p->party.member[i].leader = 1;
- inter_party_tosql(&p->party,PS_LEADER, i);
+ inter_party->tosql(&p->party,PS_LEADER, i);
}
}
return 1;
@@ -749,21 +733,21 @@ int mapif_parse_PartyLeaderChange(int fd,int party_id,int account_id,int char_id
// Data packet length is set to inter.c that you
// Do NOT go and check the packet length, RFIFOSKIP is done by the caller
// Return :
-// 0 : error
-// 1 : ok
+// 0 : error
+// 1 : ok
int inter_party_parse_frommap(int fd)
{
RFIFOHEAD(fd);
switch(RFIFOW(fd,0)) {
- case 0x3020: mapif_parse_CreateParty(fd, (char*)RFIFOP(fd,4), RFIFOB(fd,28), RFIFOB(fd,29), (struct party_member*)RFIFOP(fd,30)); break;
- case 0x3021: mapif_parse_PartyInfo(fd, RFIFOL(fd,2), RFIFOL(fd,6)); break;
- case 0x3022: mapif_parse_PartyAddMember(fd, RFIFOL(fd,4), (struct party_member*)RFIFOP(fd,8)); break;
- case 0x3023: mapif_parse_PartyChangeOption(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOW(fd,10), RFIFOW(fd,12)); break;
- case 0x3024: mapif_parse_PartyLeave(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
- case 0x3025: mapif_parse_PartyChangeMap(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOW(fd,14), RFIFOB(fd,16), RFIFOW(fd,17)); break;
- case 0x3026: mapif_parse_BreakParty(fd, RFIFOL(fd,2)); break;
- case 0x3027: mapif_parse_PartyMessage(fd, RFIFOL(fd,4), RFIFOL(fd,8), (char*)RFIFOP(fd,12), RFIFOW(fd,2)-12); break;
- case 0x3029: mapif_parse_PartyLeaderChange(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
+ case 0x3020: mapif->parse_CreateParty(fd, (char*)RFIFOP(fd,4), RFIFOB(fd,28), RFIFOB(fd,29), (struct party_member*)RFIFOP(fd,30)); break;
+ case 0x3021: mapif->parse_PartyInfo(fd, RFIFOL(fd,2), RFIFOL(fd,6)); break;
+ case 0x3022: mapif->parse_PartyAddMember(fd, RFIFOL(fd,4), (struct party_member*)RFIFOP(fd,8)); break;
+ case 0x3023: mapif->parse_PartyChangeOption(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOW(fd,10), RFIFOW(fd,12)); break;
+ case 0x3024: mapif->parse_PartyLeave(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
+ case 0x3025: mapif->parse_PartyChangeMap(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOW(fd,14), RFIFOB(fd,16), RFIFOW(fd,17)); break;
+ case 0x3026: mapif->parse_BreakParty(fd, RFIFOL(fd,2)); break;
+ case 0x3027: mapif->parse_PartyMessage(fd, RFIFOL(fd,4), RFIFOL(fd,8), (char*)RFIFOP(fd,12), RFIFOW(fd,2)-12); break;
+ case 0x3029: mapif->parse_PartyLeaderChange(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
default:
return 0;
}
@@ -773,7 +757,7 @@ int inter_party_parse_frommap(int fd)
//Leave request from the server (for delete character)
int inter_party_leave(int party_id,int account_id, int char_id)
{
- return mapif_parse_PartyLeave(-1,party_id,account_id, char_id);
+ return mapif->parse_PartyLeave(-1,party_id,account_id, char_id);
}
int inter_party_CharOnline(int char_id, int party_id)
@@ -785,23 +769,23 @@ int inter_party_CharOnline(int char_id, int party_id)
{// Get party_id from the database
char* data;
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT party_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT party_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
return 0; //Eh? No party?
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
party_id = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
if (party_id == 0)
return 0; //No party...
-
- p = inter_party_fromsql(party_id);
+
+ p = inter_party->fromsql(party_id);
if(!p) {
ShowError("Character %d's party %d not found!\n", char_id, party_id);
return 0;
@@ -815,7 +799,7 @@ int inter_party_CharOnline(int char_id, int party_id)
p->party.count++;
if (p->party.member[i].lv < p->min_lv ||
p->party.member[i].lv > p->max_lv)
- int_party_check_lv(p);
+ inter_party->check_lv(p);
}
break;
}
@@ -831,24 +815,24 @@ int inter_party_CharOffline(int char_id, int party_id) {
{// Get guild_id from the database
char* data;
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT party_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT party_id FROM `%s` WHERE char_id='%d'", char_db, char_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
return 0; //Eh? No party?
- SQL->GetData(sql_handle, 0, &data, NULL);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
party_id = atoi(data);
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
if (party_id == 0)
return 0; //No party...
-
+
//Character has a party, set character offline and check if they were the only member online
- if ((p = inter_party_fromsql(party_id)) == NULL)
+ if ((p = inter_party->fromsql(party_id)) == NULL)
return 0;
//Set member offline
@@ -859,13 +843,35 @@ int inter_party_CharOffline(int char_id, int party_id) {
p->party.count--;
if(p->party.member[i].lv == p->min_lv ||
p->party.member[i].lv == p->max_lv)
- int_party_check_lv(p);
+ inter_party->check_lv(p);
break;
}
}
if(!p->party.count)
//Parties don't have any data that needs be saved at this point... so just remove it from memory.
- idb_remove(party_db_, party_id);
+ idb_remove(inter_party->db, party_id);
return 1;
}
+
+void inter_party_defaults(void)
+{
+ inter_party = &inter_party_s;
+
+ inter_party->pt = NULL;
+ inter_party->db = NULL;
+
+ inter_party->sql_init = inter_party_sql_init;
+ inter_party->sql_final = inter_party_sql_final;
+ inter_party->check_lv = inter_party_check_lv;
+ inter_party->calc_state = inter_party_calc_state;
+ inter_party->tosql = inter_party_tosql;
+ inter_party->fromsql = inter_party_fromsql;
+ inter_party->search_partyname = inter_party_search_partyname;
+ inter_party->check_exp_share = inter_party_check_exp_share;
+ inter_party->check_empty = inter_party_check_empty;
+ inter_party->parse_frommap = inter_party_parse_frommap;
+ inter_party->leave = inter_party_leave;
+ inter_party->CharOnline = inter_party_CharOnline;
+ inter_party->CharOffline = inter_party_CharOffline;
+}
diff --git a/src/char/int_party.h b/src/char/int_party.h
index 2b24b1d1a..0c70a5300 100644
--- a/src/char/int_party.h
+++ b/src/char/int_party.h
@@ -4,6 +4,8 @@
#ifndef CHAR_INT_PARTY_H
#define CHAR_INT_PARTY_H
+#include "../common/mmo.h"
+
//Party Flags on what to save/delete.
enum {
PS_CREATE = 0x01, //Create a new party entry (index holds leader's info)
@@ -14,11 +16,36 @@ enum {
PS_BREAK = 0x20, //Specify that this party must be deleted.
};
-int inter_party_parse_frommap(int fd);
-int inter_party_sql_init(void);
-void inter_party_sql_final(void);
-int inter_party_leave(int party_id,int account_id, int char_id);
-int inter_party_CharOnline(int char_id, int party_id);
-int inter_party_CharOffline(int char_id, int party_id);
+struct party_data {
+ struct party party;
+ unsigned int min_lv, max_lv;
+ int family; //Is this party a family? if so, this holds the child id.
+ unsigned char size; //Total size of party.
+};
+
+void inter_party_defaults(void);
+
+/**
+ * inter_party interface
+ **/
+struct inter_party_interface {
+ struct party_data *pt;
+ DBMap* db; // int party_id -> struct party_data*
+ int (*check_lv) (struct party_data *p);
+ void (*calc_state) (struct party_data *p);
+ int (*tosql) (struct party *p, int flag, int index);
+ struct party_data* (*fromsql) (int party_id);
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ struct party_data* (*search_partyname) (const char *str);
+ int (*check_exp_share) (struct party_data *p);
+ int (*check_empty) (struct party_data *p);
+ int (*parse_frommap) (int fd);
+ int (*leave) (int party_id,int account_id, int char_id);
+ int (*CharOnline) (int char_id, int party_id);
+ int (*CharOffline) (int char_id, int party_id);
+};
+
+struct inter_party_interface *inter_party;
#endif /* CHAR_INT_PARTY_H */
diff --git a/src/char/int_pet.c b/src/char/int_pet.c
index bf7961462..b37037844 100644
--- a/src/char/int_pet.c
+++ b/src/char/int_pet.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,7 +21,7 @@
#include "../common/strlib.h"
#include "../common/utils.h"
-struct s_pet *pet_pt;
+struct inter_pet_interface inter_pet_s;
//---------------------------------------------------------
int inter_pet_tosql(int pet_id, struct s_pet* p)
@@ -28,30 +29,30 @@ int inter_pet_tosql(int pet_id, struct s_pet* p)
//`pet` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`)
char esc_name[NAME_LENGTH*2+1];// escaped pet name
- SQL->EscapeStringLen(sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH));
p->hungry = cap_value(p->hungry, 0, 100);
p->intimate = cap_value(p->intimate, 0, 1000);
if( pet_id == -1 )
{// New pet.
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` "
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` "
"(`class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`) "
"VALUES ('%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
pet_db, p->class_, esc_name, p->account_id, p->char_id, p->level, p->egg_id,
p->equip, p->intimate, p->hungry, p->rename_flag, p->incubate) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- p->pet_id = (int)SQL->LastInsertId(sql_handle);
+ p->pet_id = (int)SQL->LastInsertId(inter->sql_handle);
}
else
{// Update pet.
- if( SQL_ERROR == SQL->Query(sql_handle, "UPDATE `%s` SET `class`='%d',`name`='%s',`account_id`='%d',`char_id`='%d',`level`='%d',`egg_id`='%d',`equip`='%d',`intimate`='%d',`hungry`='%d',`rename_flag`='%d',`incubate`='%d' WHERE `pet_id`='%d'",
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `class`='%d',`name`='%s',`account_id`='%d',`char_id`='%d',`level`='%d',`egg_id`='%d',`equip`='%d',`intimate`='%d',`hungry`='%d',`rename_flag`='%d',`incubate`='%d' WHERE `pet_id`='%d'",
pet_db, p->class_, esc_name, p->account_id, p->char_id, p->level, p->egg_id,
p->equip, p->intimate, p->hungry, p->rename_flag, p->incubate, p->pet_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
}
@@ -73,28 +74,28 @@ int inter_pet_fromsql(int pet_id, struct s_pet* p)
//`pet` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`)
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate` FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate` FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
- if( SQL_SUCCESS == SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) )
{
p->pet_id = pet_id;
- SQL->GetData(sql_handle, 1, &data, NULL); p->class_ = atoi(data);
- SQL->GetData(sql_handle, 2, &data, &len); memcpy(p->name, data, min(len, NAME_LENGTH));
- SQL->GetData(sql_handle, 3, &data, NULL); p->account_id = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); p->char_id = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); p->level = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); p->egg_id = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); p->equip = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); p->intimate = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); p->hungry = atoi(data);
- SQL->GetData(sql_handle, 10, &data, NULL); p->rename_flag = atoi(data);
- SQL->GetData(sql_handle, 11, &data, NULL); p->incubate = atoi(data);
-
- SQL->FreeResult(sql_handle);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); p->class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(p->name, data, min(len, NAME_LENGTH));
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); p->account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); p->char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); p->level = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); p->egg_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); p->equip = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); p->intimate = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); p->hungry = atoi(data);
+ SQL->GetData(inter->sql_handle, 10, &data, NULL); p->rename_flag = atoi(data);
+ SQL->GetData(inter->sql_handle, 11, &data, NULL); p->incubate = atoi(data);
+
+ SQL->FreeResult(inter->sql_handle);
p->hungry = cap_value(p->hungry, 0, 100);
p->intimate = cap_value(p->intimate, 0, 1000);
@@ -106,21 +107,21 @@ int inter_pet_fromsql(int pet_id, struct s_pet* p)
}
//----------------------------------------------
-int inter_pet_sql_init(void){
+int inter_pet_sql_init(void) {
//memory alloc
- pet_pt = (struct s_pet*)aCalloc(sizeof(struct s_pet), 1);
+ inter_pet->pt = (struct s_pet*)aCalloc(sizeof(struct s_pet), 1);
return 0;
}
-void inter_pet_sql_final(void){
- if (pet_pt) aFree(pet_pt);
+void inter_pet_sql_final(void) {
+ if (inter_pet->pt) aFree(inter_pet->pt);
return;
}
//----------------------------------
-int inter_pet_delete(int pet_id){
+int inter_pet_delete(int pet_id) {
ShowInfo("delete pet request: %d...\n",pet_id);
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
//------------------------------------------------------
@@ -142,7 +143,8 @@ int mapif_pet_created(int fd, int account_id, struct s_pet *p)
return 0;
}
-int mapif_pet_info(int fd, int account_id, struct s_pet *p){
+int mapif_pet_info(int fd, int account_id, struct s_pet *p)
+{
WFIFOHEAD(fd, sizeof(struct s_pet) + 9);
WFIFOW(fd, 0) =0x3881;
WFIFOW(fd, 2) =sizeof(struct s_pet) + 9;
@@ -154,7 +156,8 @@ int mapif_pet_info(int fd, int account_id, struct s_pet *p){
return 0;
}
-int mapif_pet_noinfo(int fd, int account_id){
+int mapif_pet_noinfo(int fd, int account_id)
+{
WFIFOHEAD(fd, sizeof(struct s_pet) + 9);
WFIFOW(fd, 0) =0x3881;
WFIFOW(fd, 2) =sizeof(struct s_pet) + 9;
@@ -166,7 +169,8 @@ int mapif_pet_noinfo(int fd, int account_id){
return 0;
}
-int mapif_save_pet_ack(int fd, int account_id, int flag){
+int mapif_save_pet_ack(int fd, int account_id, int flag)
+{
WFIFOHEAD(fd, 7);
WFIFOW(fd, 0) =0x3882;
WFIFOL(fd, 2) =account_id;
@@ -176,7 +180,8 @@ int mapif_save_pet_ack(int fd, int account_id, int flag){
return 0;
}
-int mapif_delete_pet_ack(int fd, int flag){
+int mapif_delete_pet_ack(int fd, int flag)
+{
WFIFOHEAD(fd, 3);
WFIFOW(fd, 0) =0x3883;
WFIFOB(fd, 2) =flag;
@@ -188,63 +193,65 @@ int mapif_delete_pet_ack(int fd, int flag){
int mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id,
short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name)
{
- memset(pet_pt, 0, sizeof(struct s_pet));
- safestrncpy(pet_pt->name, pet_name, NAME_LENGTH);
+ memset(inter_pet->pt, 0, sizeof(struct s_pet));
+ safestrncpy(inter_pet->pt->name, pet_name, NAME_LENGTH);
if(incubate == 1)
- pet_pt->account_id = pet_pt->char_id = 0;
+ inter_pet->pt->account_id = inter_pet->pt->char_id = 0;
else {
- pet_pt->account_id = account_id;
- pet_pt->char_id = char_id;
+ inter_pet->pt->account_id = account_id;
+ inter_pet->pt->char_id = char_id;
}
- pet_pt->class_ = pet_class;
- pet_pt->level = pet_lv;
- pet_pt->egg_id = pet_egg_id;
- pet_pt->equip = pet_equip;
- pet_pt->intimate = intimate;
- pet_pt->hungry = hungry;
- pet_pt->rename_flag = rename_flag;
- pet_pt->incubate = incubate;
-
- if(pet_pt->hungry < 0)
- pet_pt->hungry = 0;
- else if(pet_pt->hungry > 100)
- pet_pt->hungry = 100;
- if(pet_pt->intimate < 0)
- pet_pt->intimate = 0;
- else if(pet_pt->intimate > 1000)
- pet_pt->intimate = 1000;
-
- pet_pt->pet_id = -1; //Signal NEW pet.
- if (inter_pet_tosql(pet_pt->pet_id,pet_pt))
- mapif_pet_created(fd, account_id, pet_pt);
- else //Failed...
- mapif_pet_created(fd, account_id, NULL);
+ inter_pet->pt->class_ = pet_class;
+ inter_pet->pt->level = pet_lv;
+ inter_pet->pt->egg_id = pet_egg_id;
+ inter_pet->pt->equip = pet_equip;
+ inter_pet->pt->intimate = intimate;
+ inter_pet->pt->hungry = hungry;
+ inter_pet->pt->rename_flag = rename_flag;
+ inter_pet->pt->incubate = incubate;
+
+ if(inter_pet->pt->hungry < 0)
+ inter_pet->pt->hungry = 0;
+ else if(inter_pet->pt->hungry > 100)
+ inter_pet->pt->hungry = 100;
+ if(inter_pet->pt->intimate < 0)
+ inter_pet->pt->intimate = 0;
+ else if(inter_pet->pt->intimate > 1000)
+ inter_pet->pt->intimate = 1000;
+
+ inter_pet->pt->pet_id = -1; //Signal NEW pet.
+ if (inter_pet->tosql(inter_pet->pt->pet_id,inter_pet->pt))
+ mapif->pet_created(fd, account_id, inter_pet->pt);
+ else //Failed...
+ mapif->pet_created(fd, account_id, NULL);
return 0;
}
-int mapif_load_pet(int fd, int account_id, int char_id, int pet_id){
- memset(pet_pt, 0, sizeof(struct s_pet));
+int mapif_load_pet(int fd, int account_id, int char_id, int pet_id)
+{
+ memset(inter_pet->pt, 0, sizeof(struct s_pet));
- inter_pet_fromsql(pet_id, pet_pt);
+ inter_pet->fromsql(pet_id, inter_pet->pt);
- if(pet_pt!=NULL) {
- if(pet_pt->incubate == 1) {
- pet_pt->account_id = pet_pt->char_id = 0;
- mapif_pet_info(fd, account_id, pet_pt);
+ if(inter_pet->pt!=NULL) {
+ if(inter_pet->pt->incubate == 1) {
+ inter_pet->pt->account_id = inter_pet->pt->char_id = 0;
+ mapif->pet_info(fd, account_id, inter_pet->pt);
}
- else if(account_id == pet_pt->account_id && char_id == pet_pt->char_id)
- mapif_pet_info(fd, account_id, pet_pt);
+ else if(account_id == inter_pet->pt->account_id && char_id == inter_pet->pt->char_id)
+ mapif->pet_info(fd, account_id, inter_pet->pt);
else
- mapif_pet_noinfo(fd, account_id);
+ mapif->pet_noinfo(fd, account_id);
}
else
- mapif_pet_noinfo(fd, account_id);
+ mapif->pet_noinfo(fd, account_id);
return 0;
}
-int mapif_save_pet(int fd, int account_id, struct s_pet *data) {
+int mapif_save_pet(int fd, int account_id, struct s_pet *data)
+{
//here process pet save request.
int len;
RFIFOHEAD(fd);
@@ -262,52 +269,72 @@ int mapif_save_pet(int fd, int account_id, struct s_pet *data) {
data->intimate = 0;
else if (data->intimate > 1000)
data->intimate = 1000;
- inter_pet_tosql(data->pet_id,data);
- mapif_save_pet_ack(fd, account_id, 0);
+ inter_pet->tosql(data->pet_id,data);
+ mapif->save_pet_ack(fd, account_id, 0);
return 0;
}
-int mapif_delete_pet(int fd, int pet_id){
- mapif_delete_pet_ack(fd, inter_pet_delete(pet_id));
+int mapif_delete_pet(int fd, int pet_id)
+{
+ mapif->delete_pet_ack(fd, inter_pet->delete_(pet_id));
return 0;
}
-int mapif_parse_CreatePet(int fd){
+int mapif_parse_CreatePet(int fd)
+{
RFIFOHEAD(fd);
- mapif_create_pet(fd, RFIFOL(fd, 2), RFIFOL(fd, 6), RFIFOW(fd, 10), RFIFOW(fd, 12), RFIFOW(fd, 14), RFIFOW(fd, 16), RFIFOW(fd, 18),
+ mapif->create_pet(fd, RFIFOL(fd, 2), RFIFOL(fd, 6), RFIFOW(fd, 10), RFIFOW(fd, 12), RFIFOW(fd, 14), RFIFOW(fd, 16), RFIFOW(fd, 18),
RFIFOW(fd, 20), RFIFOB(fd, 22), RFIFOB(fd, 23), (char*)RFIFOP(fd, 24));
return 0;
}
-int mapif_parse_LoadPet(int fd){
+int mapif_parse_LoadPet(int fd)
+{
RFIFOHEAD(fd);
- mapif_load_pet(fd, RFIFOL(fd, 2), RFIFOL(fd, 6), RFIFOL(fd, 10));
+ mapif->load_pet(fd, RFIFOL(fd, 2), RFIFOL(fd, 6), RFIFOL(fd, 10));
return 0;
}
-int mapif_parse_SavePet(int fd){
+int mapif_parse_SavePet(int fd)
+{
RFIFOHEAD(fd);
- mapif_save_pet(fd, RFIFOL(fd, 4), (struct s_pet *) RFIFOP(fd, 8));
+ mapif->save_pet(fd, RFIFOL(fd, 4), (struct s_pet *) RFIFOP(fd, 8));
return 0;
}
-int mapif_parse_DeletePet(int fd){
+int mapif_parse_DeletePet(int fd)
+{
RFIFOHEAD(fd);
- mapif_delete_pet(fd, RFIFOL(fd, 2));
+ mapif->delete_pet(fd, RFIFOL(fd, 2));
return 0;
}
-int inter_pet_parse_frommap(int fd){
+int inter_pet_parse_frommap(int fd)
+{
RFIFOHEAD(fd);
switch(RFIFOW(fd, 0)){
- case 0x3080: mapif_parse_CreatePet(fd); break;
- case 0x3081: mapif_parse_LoadPet(fd); break;
- case 0x3082: mapif_parse_SavePet(fd); break;
- case 0x3083: mapif_parse_DeletePet(fd); break;
+ case 0x3080: mapif->parse_CreatePet(fd); break;
+ case 0x3081: mapif->parse_LoadPet(fd); break;
+ case 0x3082: mapif->parse_SavePet(fd); break;
+ case 0x3083: mapif->parse_DeletePet(fd); break;
default:
return 0;
}
return 1;
}
+
+void inter_pet_defaults(void)
+{
+ inter_pet = &inter_pet_s;
+
+ inter_pet->pt = NULL;
+
+ inter_pet->tosql = inter_pet_tosql;
+ inter_pet->fromsql = inter_pet_fromsql;
+ inter_pet->sql_init = inter_pet_sql_init;
+ inter_pet->sql_final = inter_pet_sql_final;
+ inter_pet->delete_ = inter_pet_delete;
+ inter_pet->parse_frommap = inter_pet_parse_frommap;
+}
diff --git a/src/char/int_pet.h b/src/char/int_pet.h
index 52642fc54..873613307 100644
--- a/src/char/int_pet.h
+++ b/src/char/int_pet.h
@@ -6,16 +6,21 @@
struct s_pet;
-int inter_pet_init(void);
-void inter_pet_sql_final(void);
-int inter_pet_save(void);
-int inter_pet_delete(int pet_id);
+void inter_pet_defaults(void);
-int inter_pet_parse_frommap(int fd);
-int inter_pet_sql_init(void);
-//extern char pet_txt[256];
+/**
+ * inter_pet interface
+ **/
+struct inter_pet_interface {
+ struct s_pet *pt;
+ int (*tosql) (int pet_id, struct s_pet* p);
+ int (*fromsql) (int pet_id, struct s_pet* p);
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*delete_) (int pet_id);
+ int (*parse_frommap) (int fd);
+};
-//Exported for use in the TXT-SQL converter.
-int inter_pet_tosql(int pet_id, struct s_pet *p);
+struct inter_pet_interface *inter_pet;
#endif /* CHAR_INT_PET_H */
diff --git a/src/char/int_quest.c b/src/char/int_quest.c
index d4155b0d6..b993cbc14 100644
--- a/src/char/int_quest.c
+++ b/src/char/int_quest.c
@@ -12,6 +12,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/db.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
@@ -21,6 +22,8 @@
#include "../common/strlib.h"
#include "../common/timer.h"
+struct inter_quest_interface inter_quest_s;
+
/**
* Loads the entire questlog for a character.
*
@@ -29,7 +32,8 @@
* @return Array of found entries. It has *count entries, and it is care of the
* caller to aFree() it afterwards.
*/
-struct quest *mapif_quests_fromsql(int char_id, int *count) {
+struct quest *mapif_quests_fromsql(int char_id, int *count)
+{
struct quest *questlog = NULL;
struct quest tmp_quest;
SqlStmt *stmt;
@@ -40,7 +44,7 @@ struct quest *mapif_quests_fromsql(int char_id, int *count) {
if (!count)
return NULL;
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if (stmt == NULL) {
SqlStmt_ShowDebug(stmt);
*count = 0;
@@ -106,9 +110,10 @@ struct quest *mapif_quests_fromsql(int char_id, int *count) {
* @param quest_id Quest ID
* @return false in case of errors, true otherwise
*/
-bool mapif_quest_delete(int char_id, int quest_id) {
- if (SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_db, quest_id, char_id)) {
- Sql_ShowDebug(sql_handle);
+bool mapif_quest_delete(int char_id, int quest_id)
+{
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_db, quest_id, char_id)) {
+ Sql_ShowDebug(inter->sql_handle);
return false;
}
@@ -122,7 +127,8 @@ bool mapif_quest_delete(int char_id, int quest_id) {
* @param qd Quest data
* @return false in case of errors, true otherwise
*/
-bool mapif_quest_add(int char_id, struct quest qd) {
+bool mapif_quest_add(int char_id, struct quest qd)
+{
StringBuf buf;
int i;
@@ -136,8 +142,8 @@ bool mapif_quest_add(int char_id, struct quest qd) {
StrBuf->Printf(&buf, ", '%d'", qd.count[i]);
}
StrBuf->AppendStr(&buf, ")");
- if (SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf))) {
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf))) {
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
return false;
}
@@ -153,7 +159,8 @@ bool mapif_quest_add(int char_id, struct quest qd) {
* @param qd Quest data
* @return false in case of errors, true otherwise
*/
-bool mapif_quest_update(int char_id, struct quest qd) {
+bool mapif_quest_update(int char_id, struct quest qd)
+{
StringBuf buf;
int i;
@@ -164,8 +171,8 @@ bool mapif_quest_update(int char_id, struct quest qd) {
}
StrBuf->Printf(&buf, " WHERE `quest_id` = '%d' AND `char_id` = '%d'", qd.quest_id, char_id);
- if (SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf))) {
- Sql_ShowDebug(sql_handle);
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf))) {
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
return false;
}
@@ -174,6 +181,15 @@ bool mapif_quest_update(int char_id, struct quest qd) {
return true;
}
+void mapif_quest_save_ack(int fd, int char_id, bool success)
+{
+ WFIFOHEAD(fd,7);
+ WFIFOW(fd,0) = 0x3861;
+ WFIFOL(fd,2) = char_id;
+ WFIFOB(fd,6) = success?1:0;
+ WFIFOSET(fd,7);
+}
+
/**
* Handles the save request from mapserver for a character's questlog.
*
@@ -181,7 +197,8 @@ bool mapif_quest_update(int char_id, struct quest qd) {
*
* @see inter_parse_frommap
*/
-int mapif_parse_quest_save(int fd) {
+int mapif_parse_quest_save(int fd)
+{
int i, j, k, old_n, new_n = (RFIFOW(fd,2)-8)/sizeof(struct quest);
int char_id = RFIFOL(fd,4);
struct quest *old_qd = NULL, *new_qd = NULL;
@@ -190,7 +207,7 @@ int mapif_parse_quest_save(int fd) {
if (new_n > 0)
new_qd = (struct quest*)RFIFOP(fd,8);
- old_qd = mapif_quests_fromsql(char_id, &old_n);
+ old_qd = mapif->quests_fromsql(char_id, &old_n);
for (i = 0; i < new_n; i++) {
ARR_FIND( 0, old_n, j, new_qd[i].quest_id == old_qd[j].quest_id );
@@ -200,7 +217,7 @@ int mapif_parse_quest_save(int fd) {
// Only states and counts are changeable.
ARR_FIND( 0, MAX_QUEST_OBJECTIVES, k, new_qd[i].count[k] != old_qd[j].count[k] );
if (k != MAX_QUEST_OBJECTIVES || new_qd[i].state != old_qd[j].state)
- success &= mapif_quest_update(char_id, new_qd[i]);
+ success &= mapif->quest_update(char_id, new_qd[i]);
if (j < (--old_n)) {
// Compact array
@@ -209,26 +226,35 @@ int mapif_parse_quest_save(int fd) {
}
} else {
// Add new quests
- success &= mapif_quest_add(char_id, new_qd[i]);
+ success &= mapif->quest_add(char_id, new_qd[i]);
}
}
for (i = 0; i < old_n; i++) // Quests not in new_qd but in old_qd are to be erased.
- success &= mapif_quest_delete(char_id, old_qd[i].quest_id);
+ success &= mapif->quest_delete(char_id, old_qd[i].quest_id);
if (old_qd)
aFree(old_qd);
// Send ack
- WFIFOHEAD(fd,7);
- WFIFOW(fd,0) = 0x3861;
- WFIFOL(fd,2) = char_id;
- WFIFOB(fd,6) = success?1:0;
- WFIFOSET(fd,7);
+ mapif->quest_save_ack(fd, char_id, success);
return 0;
}
+void mapif_send_quests(int fd, int char_id, struct quest *tmp_questlog, int num_quests)
+{
+ WFIFOHEAD(fd,num_quests*sizeof(struct quest)+8);
+ WFIFOW(fd,0) = 0x3860;
+ WFIFOW(fd,2) = num_quests*sizeof(struct quest)+8;
+ WFIFOL(fd,4) = char_id;
+
+ if (num_quests > 0)
+ memcpy(WFIFOP(fd,8), tmp_questlog, sizeof(struct quest)*num_quests);
+
+ WFIFOSET(fd,num_quests*sizeof(struct quest)+8);
+}
+
/**
* Sends questlog to the map server
*
@@ -238,22 +264,14 @@ int mapif_parse_quest_save(int fd) {
*
* @see inter_parse_frommap
*/
-int mapif_parse_quest_load(int fd) {
+int mapif_parse_quest_load(int fd)
+{
int char_id = RFIFOL(fd,2);
struct quest *tmp_questlog = NULL;
int num_quests;
- tmp_questlog = mapif_quests_fromsql(char_id, &num_quests);
-
- WFIFOHEAD(fd,num_quests*sizeof(struct quest)+8);
- WFIFOW(fd,0) = 0x3860;
- WFIFOW(fd,2) = num_quests*sizeof(struct quest)+8;
- WFIFOL(fd,4) = char_id;
-
- if (num_quests > 0)
- memcpy(WFIFOP(fd,8), tmp_questlog, sizeof(struct quest)*num_quests);
-
- WFIFOSET(fd,num_quests*sizeof(struct quest)+8);
+ tmp_questlog = mapif->quests_fromsql(char_id, &num_quests);
+ mapif->send_quests(fd, char_id, tmp_questlog, num_quests);
if (tmp_questlog)
aFree(tmp_questlog);
@@ -266,12 +284,20 @@ int mapif_parse_quest_load(int fd) {
*
* @see inter_parse_frommap
*/
-int inter_quest_parse_frommap(int fd) {
+int inter_quest_parse_frommap(int fd)
+{
switch(RFIFOW(fd,0)) {
- case 0x3060: mapif_parse_quest_load(fd); break;
- case 0x3061: mapif_parse_quest_save(fd); break;
+ case 0x3060: mapif->parse_quest_load(fd); break;
+ case 0x3061: mapif->parse_quest_save(fd); break;
default:
return 0;
}
return 1;
}
+
+void inter_quest_defaults(void)
+{
+ inter_quest = &inter_quest_s;
+
+ inter_quest->parse_frommap = inter_quest_parse_frommap;
+}
diff --git a/src/char/int_quest.h b/src/char/int_quest.h
index f0dd370ea..265a3f97a 100644
--- a/src/char/int_quest.h
+++ b/src/char/int_quest.h
@@ -4,7 +4,16 @@
#ifndef CHAR_QUEST_H
#define CHAR_QUEST_H
-int inter_quest_parse_frommap(int fd);
+void inter_quest_defaults(void);
+
+/**
+ * inter_quest interface
+ **/
+struct inter_quest_interface {
+ int (*parse_frommap) (int fd);
+};
+
+struct inter_quest_interface *inter_quest;
#endif /* CHAR_QUEST_H */
diff --git a/src/char/int_storage.c b/src/char/int_storage.c
index 882d9b2a5..d64e11b89 100644
--- a/src/char/int_storage.c
+++ b/src/char/int_storage.c
@@ -13,6 +13,7 @@
#include "char.h"
#include "inter.h"
+#include "mapif.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/showmsg.h"
@@ -20,17 +21,19 @@
#include "../common/sql.h"
#include "../common/strlib.h" // StringBuf
-#define STORAGE_MEMINC 16
+#define STORAGE_MEMINC 16
+
+struct inter_storage_interface inter_storage_s;
/// Save storage data to sql
-int storage_tosql(int account_id, struct storage_data* p)
+int inter_storage_tosql(int account_id, struct storage_data* p)
{
- memitemdata_to_sql(p->items, MAX_STORAGE, account_id, TABLE_STORAGE);
+ chr->memitemdata_to_sql(p->items, MAX_STORAGE, account_id, TABLE_STORAGE);
return 0;
}
/// Load storage data to mem
-int storage_fromsql(int account_id, struct storage_data* p)
+int inter_storage_fromsql(int account_id, struct storage_data* p)
{
StringBuf buf;
struct item* item;
@@ -44,50 +47,50 @@ int storage_fromsql(int account_id, struct storage_data* p)
// storage {`account_id`/`id`/`nameid`/`amount`/`equip`/`identify`/`refine`/`attribute`/`card0`/`card1`/`card2`/`card3`}
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`,`nameid`,`amount`,`equip`,`identify`,`refine`,`attribute`,`expire_time`,`bound`,`unique_id`");
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ",`card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `account_id`='%d' ORDER BY `nameid`", storage_db, account_id);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
- for( i = 0; i < MAX_STORAGE && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i )
+ for( i = 0; i < MAX_STORAGE && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i )
{
item = &p->items[i];
- SQL->GetData(sql_handle, 0, &data, NULL); item->id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); item->nameid = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); item->amount = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); item->equip = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); item->identify = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); item->refine = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); item->attribute = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); item->expire_time = (unsigned int)atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); item->bound = atoi(data);
- SQL->GetData(sql_handle, 9, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
- for( j = 0; j < MAX_SLOTS; ++j )
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); item->id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); item->nameid = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); item->amount = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); item->equip = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); item->identify = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); item->refine = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); item->attribute = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); item->expire_time = (unsigned int)atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); item->bound = atoi(data);
+ SQL->GetData(inter->sql_handle, 9, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
+ for( j = 0; j < MAX_SLOTS; ++j )
{
- SQL->GetData(sql_handle, 10+j, &data, NULL); item->card[j] = atoi(data);
+ SQL->GetData(inter->sql_handle, 10+j, &data, NULL); item->card[j] = atoi(data);
}
}
p->storage_amount = i;
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
ShowInfo("storage load complete from DB - id: %d (total: %d)\n", account_id, p->storage_amount);
return 1;
}
/// Save guild_storage data to sql
-int guild_storage_tosql(int guild_id, struct guild_storage* p)
+int inter_storage_guild_storage_tosql(int guild_id, struct guild_storage* p)
{
- memitemdata_to_sql(p->items, MAX_GUILD_STORAGE, guild_id, TABLE_GUILD_STORAGE);
+ chr->memitemdata_to_sql(p->items, MAX_GUILD_STORAGE, guild_id, TABLE_GUILD_STORAGE);
ShowInfo ("guild storage save to DB - guild: %d\n", guild_id);
return 0;
}
/// Load guild_storage data to mem
-int guild_storage_fromsql(int guild_id, struct guild_storage* p)
+int inter_storage_guild_storage_fromsql(int guild_id, struct guild_storage* p)
{
StringBuf buf;
struct item* item;
@@ -102,34 +105,34 @@ int guild_storage_fromsql(int guild_id, struct guild_storage* p)
// storage {`guild_id`/`id`/`nameid`/`amount`/`equip`/`identify`/`refine`/`attribute`/`card0`/`card1`/`card2`/`card3`}
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, "SELECT `id`,`nameid`,`amount`,`equip`,`identify`,`refine`,`attribute`,`bound`,`unique_id`");
- for( j = 0; j < MAX_SLOTS; ++j )
+ for( j = 0; j < MAX_SLOTS; ++j )
StrBuf->Printf(&buf, ",`card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `guild_id`='%d' ORDER BY `nameid`", guild_storage_db, guild_id);
- if( SQL_ERROR == SQL->Query(sql_handle, StrBuf->Value(&buf)) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, StrBuf->Value(&buf)) )
+ Sql_ShowDebug(inter->sql_handle);
StrBuf->Destroy(&buf);
- for( i = 0; i < MAX_GUILD_STORAGE && SQL_SUCCESS == SQL->NextRow(sql_handle); ++i ) {
+ for( i = 0; i < MAX_GUILD_STORAGE && SQL_SUCCESS == SQL->NextRow(inter->sql_handle); ++i ) {
item = &p->items[i];
- SQL->GetData(sql_handle, 0, &data, NULL); item->id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); item->nameid = atoi(data);
- SQL->GetData(sql_handle, 2, &data, NULL); item->amount = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); item->equip = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); item->identify = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); item->refine = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); item->attribute = atoi(data);
- SQL->GetData(sql_handle, 7, &data, NULL); item->bound = atoi(data);
- SQL->GetData(sql_handle, 8, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
- item->expire_time = 0;
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); item->id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); item->nameid = atoi(data);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); item->amount = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); item->equip = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); item->identify = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); item->refine = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); item->attribute = atoi(data);
+ SQL->GetData(inter->sql_handle, 7, &data, NULL); item->bound = atoi(data);
+ SQL->GetData(inter->sql_handle, 8, &data, NULL); item->unique_id = strtoull(data, NULL, 10);
+ item->expire_time = 0;
for( j = 0; j < MAX_SLOTS; ++j ) {
- SQL->GetData(sql_handle, 9+j, &data, NULL); item->card[j] = atoi(data);
+ SQL->GetData(inter->sql_handle, 9+j, &data, NULL); item->card[j] = atoi(data);
}
}
p->storage_amount = i;
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
ShowInfo("guild storage load complete from DB - id: %d (total: %d)\n", guild_id, p->storage_amount);
return 0;
@@ -150,25 +153,25 @@ void inter_storage_sql_final(void)
// q?f[^?
int inter_storage_delete(int account_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id`='%d'", storage_db, account_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id`='%d'", storage_db, account_id) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
-int inter_guild_storage_delete(int guild_id)
+int inter_storage_guild_storage_delete(int guild_id)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d'", guild_storage_db, guild_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `guild_id`='%d'", guild_storage_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
//---------------------------------------------------------
// packet from map server
-int mapif_load_guild_storage(int fd,int account_id,int guild_id, char flag)
+int mapif_load_guild_storage(int fd, int account_id, int guild_id, char flag)
{
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id) )
- Sql_ShowDebug(sql_handle);
- else if( SQL->NumRows(sql_handle) > 0 )
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id) )
+ Sql_ShowDebug(inter->sql_handle);
+ else if( SQL->NumRows(inter->sql_handle) > 0 )
{// guild exists
WFIFOHEAD(fd, sizeof(struct guild_storage)+13);
WFIFOW(fd,0) = 0x3818;
@@ -176,12 +179,12 @@ int mapif_load_guild_storage(int fd,int account_id,int guild_id, char flag)
WFIFOL(fd,4) = account_id;
WFIFOL(fd,8) = guild_id;
WFIFOB(fd,12) = flag; //1 open storage, 0 don't open
- guild_storage_fromsql(guild_id, (struct guild_storage*)WFIFOP(fd,13));
- WFIFOSET(fd, WFIFOW(fd,2));
+ inter_storage->guild_storage_fromsql(guild_id, (struct guild_storage*)WFIFOP(fd,13));
+ WFIFOSET(fd, WFIFOW(fd,2));
return 0;
}
// guild does not exist
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
WFIFOHEAD(fd, 12);
WFIFOW(fd,0) = 0x3818;
WFIFOW(fd,2) = 12;
@@ -190,7 +193,7 @@ int mapif_load_guild_storage(int fd,int account_id,int guild_id, char flag)
WFIFOSET(fd, 12);
return 0;
}
-int mapif_save_guild_storage_ack(int fd,int account_id,int guild_id,int fail)
+int mapif_save_guild_storage_ack(int fd, int account_id, int guild_id, int fail)
{
WFIFOHEAD(fd,11);
WFIFOW(fd,0)=0x3819;
@@ -207,7 +210,7 @@ int mapif_save_guild_storage_ack(int fd,int account_id,int guild_id,int fail)
int mapif_parse_LoadGuildStorage(int fd)
{
RFIFOHEAD(fd);
- mapif_load_guild_storage(fd,RFIFOL(fd,2),RFIFOL(fd,6),1);
+ mapif->load_guild_storage(fd,RFIFOL(fd,2),RFIFOL(fd,6),1);
return 0;
}
@@ -223,18 +226,18 @@ int mapif_parse_SaveGuildStorage(int fd)
if (sizeof(struct guild_storage) != len - 12) {
ShowError("inter storage: data size mismatch: %d != %"PRIuS"\n", len - 12, sizeof(struct guild_storage));
} else {
- if (SQL_ERROR == SQL->Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id)) {
- Sql_ShowDebug(sql_handle);
- } else if(SQL->NumRows(sql_handle) > 0) {
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id)) {
+ Sql_ShowDebug(inter->sql_handle);
+ } else if(SQL->NumRows(inter->sql_handle) > 0) {
// guild exists
- SQL->FreeResult(sql_handle);
- guild_storage_tosql(guild_id, (struct guild_storage*)RFIFOP(fd,12));
- mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
+ SQL->FreeResult(inter->sql_handle);
+ inter_storage->guild_storage_tosql(guild_id, (struct guild_storage*)RFIFOP(fd,12));
+ mapif->save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
return 0;
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
}
- mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
+ mapif->save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
return 0;
}
@@ -249,6 +252,7 @@ int mapif_itembound_ack(int fd, int aid, int guild_id)
#endif
return 0;
}
+
//------------------------------------------------
//Guild bound items pull for offline characters [Akinari]
//Revised by [Mhalicot]
@@ -272,16 +276,17 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
StrBuf->Printf(&buf, ", `card%d`", j);
StrBuf->Printf(&buf, " FROM `%s` WHERE `char_id`='%d' AND `bound` = '%d'",inventory_db,char_id,IBT_GUILD);
- stmt = SQL->StmtMalloc(sql_handle);
+ stmt = SQL->StmtMalloc(inter->sql_handle);
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
SQL->StmtFree(stmt);
StrBuf->Destroy(&buf);
return 1;
}
+ memset(&item, 0, sizeof(item));
SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL);
SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
@@ -299,8 +304,8 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
memcpy(&items[i],&item,sizeof(struct item));
i++;
}
- SQL->FreeResult(sql_handle);
-
+ SQL->FreeResult(inter->sql_handle);
+
if(!i) { //No items found - No need to continue
StrBuf->Destroy(&buf);
SQL->StmtFree(stmt);
@@ -334,7 +339,7 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
SQL->StmtFree(stmt);
StrBuf->Destroy(&buf);
return 1;
@@ -368,7 +373,7 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
SQL->StmtFree(stmt);
StrBuf->Destroy(&buf);
return 1;
@@ -378,9 +383,9 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
//Now let's update the guild storage with those deleted items
/// TODO/FIXME:
- /// This approach is basically the same as the one from memitemdata_to_sql, but
+ /// This approach is basically the same as the one from chr->memitemdata_to_sql, but
/// the latter compares current database values and this is not needed in this case
- /// maybe sometime separate memitemdata_to_sql into different methods in order to use
+ /// maybe sometime separate chr->memitemdata_to_sql into different methods in order to use
/// call that function here as well [Panikon]
StrBuf->Clear(&buf);
StrBuf->Printf(&buf,"INSERT INTO `%s` (`guild_id`,`nameid`,`amount`,`equip`,`identify`,`refine`,"
@@ -405,7 +410,7 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
if( SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
|| SQL_ERROR == SQL->StmtExecute(stmt) )
{
- Sql_ShowDebug(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
SQL->StmtFree(stmt);
StrBuf->Destroy(&buf);
return 1;
@@ -415,29 +420,47 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
SQL->StmtFree(stmt);
//Finally reload storage and tell map we're done
- mapif_load_guild_storage(fd,aid,guild_id,0);
+ mapif->load_guild_storage(fd,aid,guild_id,0);
// If character is logged in char, disconnect
- disconnect_player(aid);
+ chr->disconnect_player(aid);
#endif
return 0;
}
-void mapif_parse_ItemBoundRetrieve(int fd) {
- mapif_parse_ItemBoundRetrieve_sub(fd);
+
+void mapif_parse_ItemBoundRetrieve(int fd)
+{
+ mapif->parse_ItemBoundRetrieve_sub(fd);
/* tell map server the operation is over and it can unlock the storage */
- mapif_itembound_ack(fd,RFIFOL(fd,6),RFIFOW(fd,10));
+ mapif->itembound_ack(fd,RFIFOL(fd,6),RFIFOW(fd,10));
}
+
int inter_storage_parse_frommap(int fd)
{
RFIFOHEAD(fd);
switch(RFIFOW(fd,0)){
- case 0x3018: mapif_parse_LoadGuildStorage(fd); break;
- case 0x3019: mapif_parse_SaveGuildStorage(fd); break;
+ case 0x3018: mapif->parse_LoadGuildStorage(fd); break;
+ case 0x3019: mapif->parse_SaveGuildStorage(fd); break;
#ifdef GP_BOUND_ITEMS
- case 0x3056: mapif_parse_ItemBoundRetrieve(fd); break;
+ case 0x3056: mapif->parse_ItemBoundRetrieve(fd); break;
#endif
default:
return 0;
}
return 1;
}
+
+void inter_storage_defaults(void)
+{
+ inter_storage = &inter_storage_s;
+
+ inter_storage->tosql = inter_storage_tosql;
+ inter_storage->fromsql = inter_storage_fromsql;
+ inter_storage->guild_storage_tosql = inter_storage_guild_storage_tosql;
+ inter_storage->guild_storage_fromsql = inter_storage_guild_storage_fromsql;
+ inter_storage->sql_init = inter_storage_sql_init;
+ inter_storage->sql_final = inter_storage_sql_final;
+ inter_storage->delete_ = inter_storage_delete;
+ inter_storage->guild_storage_delete = inter_storage_guild_storage_delete;
+ inter_storage->parse_frommap = inter_storage_parse_frommap;
+}
diff --git a/src/char/int_storage.h b/src/char/int_storage.h
index 1cef94d98..6c380f29b 100644
--- a/src/char/int_storage.h
+++ b/src/char/int_storage.h
@@ -7,16 +7,23 @@
struct storage_data;
struct guild_storage;
-int inter_storage_sql_init(void);
-void inter_storage_sql_final(void);
-int inter_storage_delete(int account_id);
-int inter_guild_storage_delete(int guild_id);
+void inter_storage_defaults(void);
-int inter_storage_parse_frommap(int fd);
+/**
+ * inter_storage interface
+ **/
+struct inter_storage_interface {
+ int (*tosql) (int account_id, struct storage_data* p);
+ int (*fromsql) (int account_id, struct storage_data* p);
+ int (*guild_storage_tosql) (int guild_id, struct guild_storage* p);
+ int (*guild_storage_fromsql) (int guild_id, struct guild_storage* p);
+ int (*sql_init) (void);
+ void (*sql_final) (void);
+ int (*delete_) (int account_id);
+ int (*guild_storage_delete) (int guild_id);
+ int (*parse_frommap) (int fd);
+};
-//Exported for use in the TXT-SQL converter.
-int storage_fromsql(int account_id, struct storage_data* p);
-int storage_tosql(int account_id,struct storage_data *p);
-int guild_storage_tosql(int guild_id, struct guild_storage *p);
+struct inter_storage_interface *inter_storage;
#endif /* CHAR_INT_STORAGE_H */
diff --git a/src/char/inter.c b/src/char/inter.c
index a7794c9c9..ab91e25b9 100644
--- a/src/char/inter.c
+++ b/src/char/inter.c
@@ -6,13 +6,12 @@
#include "inter.h"
-#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/stat.h> // for stat/lstat/fstat - [Dekamaster/Ultimate GM Tool]
#include "char.h"
+#include "geoip.h"
#include "int_auction.h"
#include "int_elemental.h"
#include "int_guild.h"
@@ -23,6 +22,7 @@
#include "int_pet.h"
#include "int_quest.h"
#include "int_storage.h"
+#include "mapif.h"
#include "../common/cbasetypes.h"
#include "../common/db.h"
#include "../common/malloc.h"
@@ -32,16 +32,15 @@
#include "../common/strlib.h"
#include "../common/timer.h"
-#define WISDATA_TTL (60*1000) //Wis data Time To Live (60 seconds)
-#define WISDELLIST_MAX 256 // Number of elements in the list Delete data Wis
+#define WISDATA_TTL (60*1000) // Wis data Time To Live (60 seconds)
+#define WISDELLIST_MAX 256 // Number of elements in the list Delete data Wis
-
-Sql* sql_handle = NULL;
+struct inter_interface inter_s;
int char_server_port = 3306;
char char_server_ip[32] = "127.0.0.1";
char char_server_id[32] = "ragnarok";
-char char_server_pw[32] = "ragnarok";
+char char_server_pw[100] = "ragnarok";
char char_server_db[32] = "ragnarok";
char default_codepage[32] = ""; //Feature by irmin.
@@ -49,7 +48,7 @@ unsigned int party_share_level = 10;
// recv. packet list
int inter_recv_packet_length[] = {
- -1,-1, 7,-1, -1,13,36, (2 + 4 + 4 + 4 + NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
+ -1,-1, 7,-1, -1,13,36, (2 + 4 + 4 + 4 + NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
6,-1, 0, 0, 0, 0, 0, 0, 10,-1, 0, 0, 0, 0, 0, 0, // 3010-
-1,10,-1,14, 14,19, 6,-1, 14,14, 0, 0, 0, 0, 0, 0, // 3020- Party
-1, 6,-1,-1, 55,19, 6,-1, 14,-1,-1,-1, 18,19,186,-1, // 3030-
@@ -72,7 +71,7 @@ static int wis_dellist[WISDELLIST_MAX], wis_delnum;
#define MAX_JOB_NAMES 150
static char* msg_table[MAX_JOB_NAMES]; // messages 550 ~ 699 are job names
-const char* msg_txt(int msg_number) {
+const char* inter_msg_txt(int msg_number) {
msg_number -= 550;
if (msg_number >= 0 && msg_number < MAX_JOB_NAMES &&
msg_table[msg_number] != NULL && msg_table[msg_number][0] != '\0')
@@ -84,14 +83,15 @@ const char* msg_txt(int msg_number) {
/**
* Reads Message Data.
*
- * This is a modified version of the mapserver's msg_config_read to
+ * This is a modified version of the mapserver's inter->msg_config_read to
* only read messages with IDs between 550 and 550+MAX_JOB_NAMES.
*
* @param[in] cfg_name configuration filename to read.
* @param[in] allow_override whether to allow duplicate message IDs to override the original value.
* @return success state.
*/
-bool msg_config_read(const char *cfg_name, bool allow_override) {
+bool inter_msg_config_read(const char *cfg_name, bool allow_override)
+{
int msg_number;
char line[1024], w1[1024], w2[1024];
FILE *fp;
@@ -112,7 +112,7 @@ bool msg_config_read(const char *cfg_name, bool allow_override) {
continue;
if (strcmpi(w1, "import") == 0)
- msg_config_read(w2, true);
+ inter->msg_config_read(w2, true);
else {
msg_number = atoi(w1);
if( msg_number < 550 || msg_number > (550+MAX_JOB_NAMES) )
@@ -141,13 +141,15 @@ bool msg_config_read(const char *cfg_name, bool allow_override) {
/*==========================================
* Cleanup Message Data
*------------------------------------------*/
-void do_final_msg(void) {
+void inter_do_final_msg(void)
+{
int i;
for (i = 0; i < MAX_JOB_NAMES; i++)
aFree(msg_table[i]);
}
/* from pc.c due to @accinfo. any ideas to replace this crap are more than welcome. */
-const char* job_name(int class_) {
+const char* inter_job_name(int class_)
+{
switch (class_) {
case JOB_NOVICE: // 550
case JOB_SWORDMAN: // 551
@@ -156,7 +158,7 @@ const char* job_name(int class_) {
case JOB_ACOLYTE: // 554
case JOB_MERCHANT: // 555
case JOB_THIEF: // 556
- return msg_txt(550 - JOB_NOVICE+class_);
+ return inter->msg_txt(550 - JOB_NOVICE+class_);
case JOB_KNIGHT: // 557
case JOB_PRIEST: // 558
@@ -164,10 +166,10 @@ const char* job_name(int class_) {
case JOB_BLACKSMITH: // 560
case JOB_HUNTER: // 561
case JOB_ASSASSIN: // 562
- return msg_txt(557 - JOB_KNIGHT+class_);
+ return inter->msg_txt(557 - JOB_KNIGHT+class_);
case JOB_KNIGHT2:
- return msg_txt(557);
+ return inter->msg_txt(557);
case JOB_CRUSADER: // 563
case JOB_MONK: // 564
@@ -176,20 +178,20 @@ const char* job_name(int class_) {
case JOB_ALCHEMIST: // 567
case JOB_BARD: // 568
case JOB_DANCER: // 569
- return msg_txt(563 - JOB_CRUSADER+class_);
+ return inter->msg_txt(563 - JOB_CRUSADER+class_);
case JOB_CRUSADER2:
- return msg_txt(563);
+ return inter->msg_txt(563);
case JOB_WEDDING: // 570
case JOB_SUPER_NOVICE: // 571
case JOB_GUNSLINGER: // 572
case JOB_NINJA: // 573
case JOB_XMAS: // 574
- return msg_txt(570 - JOB_WEDDING+class_);
+ return inter->msg_txt(570 - JOB_WEDDING+class_);
case JOB_SUMMER:
- return msg_txt(621);
+ return inter->msg_txt(621);
case JOB_NOVICE_HIGH: // 575
case JOB_SWORDMAN_HIGH: // 576
@@ -198,7 +200,7 @@ const char* job_name(int class_) {
case JOB_ACOLYTE_HIGH: // 579
case JOB_MERCHANT_HIGH: // 580
case JOB_THIEF_HIGH: // 581
- return msg_txt(575 - JOB_NOVICE_HIGH+class_);
+ return inter->msg_txt(575 - JOB_NOVICE_HIGH+class_);
case JOB_LORD_KNIGHT: // 582
case JOB_HIGH_PRIEST: // 583
@@ -206,10 +208,10 @@ const char* job_name(int class_) {
case JOB_WHITESMITH: // 585
case JOB_SNIPER: // 586
case JOB_ASSASSIN_CROSS: // 587
- return msg_txt(582 - JOB_LORD_KNIGHT+class_);
+ return inter->msg_txt(582 - JOB_LORD_KNIGHT+class_);
case JOB_LORD_KNIGHT2:
- return msg_txt(582);
+ return inter->msg_txt(582);
case JOB_PALADIN: // 588
case JOB_CHAMPION: // 589
@@ -218,10 +220,10 @@ const char* job_name(int class_) {
case JOB_CREATOR: // 592
case JOB_CLOWN: // 593
case JOB_GYPSY: // 594
- return msg_txt(588 - JOB_PALADIN + class_);
+ return inter->msg_txt(588 - JOB_PALADIN + class_);
case JOB_PALADIN2:
- return msg_txt(588);
+ return inter->msg_txt(588);
case JOB_BABY: // 595
case JOB_BABY_SWORDMAN: // 596
@@ -230,7 +232,7 @@ const char* job_name(int class_) {
case JOB_BABY_ACOLYTE: // 599
case JOB_BABY_MERCHANT: // 600
case JOB_BABY_THIEF: // 601
- return msg_txt(595 - JOB_BABY + class_);
+ return inter->msg_txt(595 - JOB_BABY + class_);
case JOB_BABY_KNIGHT: // 602
case JOB_BABY_PRIEST: // 603
@@ -238,10 +240,10 @@ const char* job_name(int class_) {
case JOB_BABY_BLACKSMITH: // 605
case JOB_BABY_HUNTER: // 606
case JOB_BABY_ASSASSIN: // 607
- return msg_txt(602 - JOB_BABY_KNIGHT + class_);
+ return inter->msg_txt(602 - JOB_BABY_KNIGHT + class_);
case JOB_BABY_KNIGHT2:
- return msg_txt(602);
+ return inter->msg_txt(602);
case JOB_BABY_CRUSADER: // 608
case JOB_BABY_MONK: // 609
@@ -250,26 +252,26 @@ const char* job_name(int class_) {
case JOB_BABY_ALCHEMIST: // 612
case JOB_BABY_BARD: // 613
case JOB_BABY_DANCER: // 614
- return msg_txt(608 - JOB_BABY_CRUSADER + class_);
+ return inter->msg_txt(608 - JOB_BABY_CRUSADER + class_);
case JOB_BABY_CRUSADER2:
- return msg_txt(608);
+ return inter->msg_txt(608);
case JOB_SUPER_BABY:
- return msg_txt(615);
+ return inter->msg_txt(615);
case JOB_TAEKWON:
- return msg_txt(616);
+ return inter->msg_txt(616);
case JOB_STAR_GLADIATOR:
case JOB_STAR_GLADIATOR2:
- return msg_txt(617);
+ return inter->msg_txt(617);
case JOB_SOUL_LINKER:
- return msg_txt(618);
+ return inter->msg_txt(618);
case JOB_GANGSI: // 622
case JOB_DEATH_KNIGHT: // 623
case JOB_DARK_COLLECTOR: // 624
- return msg_txt(622 - JOB_GANGSI+class_);
+ return inter->msg_txt(622 - JOB_GANGSI+class_);
case JOB_RUNE_KNIGHT: // 625
case JOB_WARLOCK: // 626
@@ -277,7 +279,7 @@ const char* job_name(int class_) {
case JOB_ARCH_BISHOP: // 628
case JOB_MECHANIC: // 629
case JOB_GUILLOTINE_CROSS: // 630
- return msg_txt(625 - JOB_RUNE_KNIGHT+class_);
+ return inter->msg_txt(625 - JOB_RUNE_KNIGHT+class_);
case JOB_RUNE_KNIGHT_T: // 656
case JOB_WARLOCK_T: // 657
@@ -285,7 +287,7 @@ const char* job_name(int class_) {
case JOB_ARCH_BISHOP_T: // 659
case JOB_MECHANIC_T: // 660
case JOB_GUILLOTINE_CROSS_T: // 661
- return msg_txt(656 - JOB_RUNE_KNIGHT_T+class_);
+ return inter->msg_txt(656 - JOB_RUNE_KNIGHT_T+class_);
case JOB_ROYAL_GUARD: // 631
case JOB_SORCERER: // 632
@@ -294,7 +296,7 @@ const char* job_name(int class_) {
case JOB_SURA: // 635
case JOB_GENETIC: // 636
case JOB_SHADOW_CHASER: // 637
- return msg_txt(631 - JOB_ROYAL_GUARD+class_);
+ return inter->msg_txt(631 - JOB_ROYAL_GUARD+class_);
case JOB_ROYAL_GUARD_T: // 662
case JOB_SORCERER_T: // 663
@@ -303,31 +305,31 @@ const char* job_name(int class_) {
case JOB_SURA_T: // 666
case JOB_GENETIC_T: // 667
case JOB_SHADOW_CHASER_T: // 668
- return msg_txt(662 - JOB_ROYAL_GUARD_T+class_);
+ return inter->msg_txt(662 - JOB_ROYAL_GUARD_T+class_);
case JOB_RUNE_KNIGHT2:
- return msg_txt(625);
+ return inter->msg_txt(625);
case JOB_RUNE_KNIGHT_T2:
- return msg_txt(656);
+ return inter->msg_txt(656);
case JOB_ROYAL_GUARD2:
- return msg_txt(631);
+ return inter->msg_txt(631);
case JOB_ROYAL_GUARD_T2:
- return msg_txt(662);
+ return inter->msg_txt(662);
case JOB_RANGER2:
- return msg_txt(627);
+ return inter->msg_txt(627);
case JOB_RANGER_T2:
- return msg_txt(658);
+ return inter->msg_txt(658);
case JOB_MECHANIC2:
- return msg_txt(629);
+ return inter->msg_txt(629);
case JOB_MECHANIC_T2:
- return msg_txt(660);
+ return inter->msg_txt(660);
case JOB_BABY_RUNE: // 638
case JOB_BABY_WARLOCK: // 639
@@ -342,197 +344,42 @@ const char* job_name(int class_) {
case JOB_BABY_SURA: // 648
case JOB_BABY_GENETIC: // 649
case JOB_BABY_CHASER: // 650
- return msg_txt(638 - JOB_BABY_RUNE+class_);
+ return inter->msg_txt(638 - JOB_BABY_RUNE+class_);
case JOB_BABY_RUNE2:
- return msg_txt(638);
+ return inter->msg_txt(638);
case JOB_BABY_GUARD2:
- return msg_txt(644);
+ return inter->msg_txt(644);
case JOB_BABY_RANGER2:
- return msg_txt(640);
+ return inter->msg_txt(640);
case JOB_BABY_MECHANIC2:
- return msg_txt(642);
+ return inter->msg_txt(642);
case JOB_SUPER_NOVICE_E: // 651
case JOB_SUPER_BABY_E: // 652
- return msg_txt(651 - JOB_SUPER_NOVICE_E+class_);
+ return inter->msg_txt(651 - JOB_SUPER_NOVICE_E+class_);
case JOB_KAGEROU: // 653
case JOB_OBORO: // 654
- return msg_txt(653 - JOB_KAGEROU+class_);
+ return inter->msg_txt(653 - JOB_KAGEROU+class_);
case JOB_REBELLION:
- return msg_txt(655);
+ return inter->msg_txt(655);
default:
- return msg_txt(620); // "Unknown Job"
- }
-}
-
-/* [Dekamaster/Nightroad] */
-#define GEOIP_MAX_COUNTRIES 255
-#define GEOIP_STRUCTURE_INFO_MAX_SIZE 20
-#define GEOIP_COUNTRY_BEGIN 16776960
-
-const char * geoip_countryname[GEOIP_MAX_COUNTRIES] = {"Unknown","Asia/Pacific Region","Europe","Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Netherlands Antilles",
- "Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Azerbaijan","Bosnia and Herzegovina","Barbados",
- "Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Bermuda","Brunei Darussalam","Bolivia",
- "Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands","Congo, The Democratic Republic of the",
- "Central African Republic","Congo","Switzerland","Cote D'Ivoire","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica",
- "Cuba","Cape Verde","Christmas Island","Cyprus","Czech Republic","Germany","Djibouti","Denmark","Dominica","Dominican Republic",
- "Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji",
- "Falkland Islands (Malvinas)","Micronesia, Federated States of","Faroe Islands","France","France, Metropolitan","Gabon","United Kingdom","Grenada","Georgia","French Guiana",
- "Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala",
- "Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia",
- "Ireland","Israel","India","British Indian Ocean Territory","Iraq","Iran, Islamic Republic of","Iceland","Italy","Jamaica","Jordan",
- "Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait",
- "Cayman Islands","Kazakhstan","Lao People's Democratic Republic","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania",
- "Luxembourg","Latvia","Libyan Arab Jamahiriya","Morocco","Monaco","Moldova, Republic of","Madagascar","Marshall Islands","Macedonia","Mali",
- "Myanmar","Mongolia","Macau","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives",
- "Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua",
- "Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia",
- "Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestinian Territory","Portugal","Palau",
- "Paraguay","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan",
- "Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname",
- "Sao Tome and Principe","El Salvador","Syrian Arab Republic","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand",
- "Tajikistan","Tokelau","Turkmenistan","Tunisia","Tonga","Timor-Leste","Turkey","Trinidad and Tobago","Tuvalu","Taiwan",
- "Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands","United States","Uruguay","Uzbekistan","Holy See (Vatican City State)","Saint Vincent and the Grenadines","Venezuela",
- "Virgin Islands, British","Virgin Islands, U.S.","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","Serbia","South Africa",
- "Zambia","Montenegro","Zimbabwe","Anonymous Proxy","Satellite Provider","Other","Aland Islands","Guernsey","Isle of Man","Jersey",
- "Saint Barthelemy", "Saint Martin", "Bonaire, Saint Eustatius and Saba", "South Sudan"};
-/**
- * GeoIP information
- **/
-struct s_geoip {
- unsigned char *cache; // GeoIP.dat information see geoip_init()
- bool active;
-} geoip;
-
-/* [Dekamaster/Nightroad] */
-/* WHY NOT A DBMAP: There are millions of entries in GeoIP and it has its own algorithm to go quickly through them, a DBMap wouldn't be efficient */
-const char* geoip_getcountry(uint32 ipnum){
- int depth;
- unsigned int x;
- const unsigned char *buf;
- unsigned int offset = 0;
-
- if( geoip.active == false )
- return geoip_countryname[0];
-
- for (depth = 31; depth >= 0; depth--) {
- buf = geoip.cache + (long)6 *offset;
- if (ipnum & (1 << depth)) {
- /* Take the right-hand branch */
- x = (buf[3*1 + 0] << (0*8))
- + (buf[3*1 + 1] << (1*8))
- + (buf[3*1 + 2] << (2*8));
- } else {
- /* Take the left-hand branch */
- x = (buf[3*0 + 0] << (0*8))
- + (buf[3*0 + 1] << (1*8))
- + (buf[3*0 + 2] << (2*8));
- }
- if (x >= GEOIP_COUNTRY_BEGIN) {
- x = x-GEOIP_COUNTRY_BEGIN;
-
- if( x > GEOIP_MAX_COUNTRIES )
- return geoip_countryname[0];
-
- return geoip_countryname[x];
- }
- offset = x;
- }
- ShowError("geoip_getcountry(): Error traversing database for ipnum %d\n", ipnum);
- ShowWarning("geoip_getcountry(): Possible database corruption!\n");
-
- return geoip_countryname[0];
-}
-
-/**
- * Disables GeoIP
- * frees geoip.cache
- **/
-void geoip_final(bool shutdown) {
- if (geoip.cache) {
- aFree(geoip.cache);
- geoip.cache = NULL;
- }
-
- if (geoip.active) {
- if (!shutdown)
- ShowStatus("GeoIP "CL_RED"disabled"CL_RESET".\n");
- geoip.active = false;
- }
-}
-
-/**
- * Reads GeoIP database and stores it into memory
- * geoip.cache should be freed after use!
- * http://dev.maxmind.com/geoip/legacy/geolite/
- **/
-void geoip_init(void) {
- int i, fno;
- char db_type = 1;
- unsigned char delim[3];
- struct stat bufa;
- FILE *db;
-
- geoip.active = true;
-
- db = fopen("./db/GeoIP.dat","rb");
- if( db == NULL ) {
- ShowError("geoip_readdb: Error reading GeoIP.dat!\n");
- geoip_final(false);
- return;
- }
- fno = fileno(db);
- if( fstat(fno, &bufa) < 0 ) {
- ShowError("geoip_readdb: Error stating GeoIP.dat! Error %d\n", errno);
- geoip_final(false);
- return;
- }
- geoip.cache = aMalloc( (sizeof(geoip.cache) * bufa.st_size) );
- if( fread(geoip.cache, sizeof(unsigned char), bufa.st_size, db) != bufa.st_size ) {
- ShowError("geoip_cache: Couldn't read all elements!\n");
- fclose(db);
- geoip_final(false);
- return;
- }
-
- // Search database type
- fseek(db, -3l, SEEK_END);
- for( i = 0; i < GEOIP_STRUCTURE_INFO_MAX_SIZE; i++ ) {
- fread(delim, sizeof(delim[0]), 3, db);
- if( delim[0] == 255 && delim[1] == 255 && delim[2] == 255 ) {
- fread(&db_type, sizeof(db_type), 1, db);
- break;
- } else {
- fseek(db, -4l, SEEK_CUR);
- }
- }
-
- fclose(db);
-
- if( db_type != 1 ) {
- if( db_type )
- ShowError("geoip_init(): Database type is not supported %d!\n", db_type);
- else
- ShowError("geoip_init(): GeoIP is corrupted!\n");
-
- geoip_final(false);
- return;
+ return inter->msg_txt(620); // "Unknown Job"
}
- ShowStatus("Finished Reading "CL_GREEN"GeoIP"CL_RESET" Database.\n");
}
/**
* Argument-list version of inter_msg_to_fd
* @see inter_msg_to_fd
*/
-void inter_vmsg_to_fd(int fd, int u_fd, int aid, char* msg, va_list ap) {
+void inter_vmsg_to_fd(int fd, int u_fd, int aid, char* msg, va_list ap)
+{
char msg_out[512];
va_list apcopy;
int len = 1;/* yes we start at 1 */
@@ -564,15 +411,17 @@ void inter_vmsg_to_fd(int fd, int u_fd, int aid, char* msg, va_list ap) {
* @param ... Additional parameters for (v)sprinf
*/
void inter_msg_to_fd(int fd, int u_fd, int aid, char *msg, ...) __attribute__((format(printf, 4, 5)));
-void inter_msg_to_fd(int fd, int u_fd, int aid, char *msg, ...) {
+void inter_msg_to_fd(int fd, int u_fd, int aid, char *msg, ...)
+{
va_list ap;
va_start(ap,msg);
- inter_vmsg_to_fd(fd, u_fd, aid, msg, ap);
+ inter->vmsg_to_fd(fd, u_fd, aid, msg, ap);
va_end(ap);
}
/* [Dekamaster/Nightroad] */
-void mapif_parse_accinfo(int fd) {
+void mapif_parse_accinfo(int fd)
+{
int u_fd = RFIFOL(fd,2), aid = RFIFOL(fd,6), castergroup = RFIFOL(fd,10);
char query[NAME_LENGTH], query_esq[NAME_LENGTH*2+1];
int account_id;
@@ -580,43 +429,44 @@ void mapif_parse_accinfo(int fd) {
safestrncpy(query, (char*) RFIFOP(fd,14), NAME_LENGTH);
- SQL->EscapeString(sql_handle, query_esq, query);
+ SQL->EscapeString(inter->sql_handle, query_esq, query);
account_id = atoi(query);
- if (account_id < START_ACCOUNT_NUM) { // is string
- if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`name`,`class`,`base_level`,`job_level`,`online` FROM `%s` WHERE `name` LIKE '%s' LIMIT 10", char_db, query_esq)
- || SQL->NumRows(sql_handle) == 0 ) {
- if( SQL->NumRows(sql_handle) == 0 ) {
- inter_msg_to_fd(fd, u_fd, aid, "No matches were found for your criteria, '%s'",query);
+ if (account_id < START_ACCOUNT_NUM) {
+ // is string
+ if ( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`name`,`class`,`base_level`,`job_level`,`online` FROM `%s` WHERE `name` LIKE '%s' LIMIT 10", char_db, query_esq)
+ || SQL->NumRows(inter->sql_handle) == 0 ) {
+ if( SQL->NumRows(inter->sql_handle) == 0 ) {
+ inter->msg_to_fd(fd, u_fd, aid, "No matches were found for your criteria, '%s'",query);
} else {
- Sql_ShowDebug(sql_handle);
- inter_msg_to_fd(fd, u_fd, aid, "An error occurred, bother your admin about it.");
+ Sql_ShowDebug(inter->sql_handle);
+ inter->msg_to_fd(fd, u_fd, aid, "An error occurred, bother your admin about it.");
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return;
} else {
- if( SQL->NumRows(sql_handle) == 1 ) {//we found a perfect match
- SQL->NextRow(sql_handle);
- SQL->GetData(sql_handle, 0, &data, NULL); account_id = atoi(data);
- SQL->FreeResult(sql_handle);
+ if( SQL->NumRows(inter->sql_handle) == 1 ) {//we found a perfect match
+ SQL->NextRow(inter->sql_handle);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); account_id = atoi(data);
+ SQL->FreeResult(inter->sql_handle);
} else {// more than one, listing... [Dekamaster/Nightroad]
- inter_msg_to_fd(fd, u_fd, aid, "Your query returned the following %d results, please be more specific...",(int)SQL->NumRows(sql_handle));
- while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
+ inter->msg_to_fd(fd, u_fd, aid, "Your query returned the following %d results, please be more specific...",(int)SQL->NumRows(inter->sql_handle));
+ while ( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) {
int class_;
short base_level, job_level, online;
char name[NAME_LENGTH];
- SQL->GetData(sql_handle, 0, &data, NULL); account_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); safestrncpy(name, data, sizeof(name));
- SQL->GetData(sql_handle, 2, &data, NULL); class_ = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); base_level = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); job_level = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); online = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); account_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); safestrncpy(name, data, sizeof(name));
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); base_level = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); job_level = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); online = atoi(data);
- inter_msg_to_fd(fd, u_fd, aid, "[AID: %d] %s | %s | Level: %d/%d | %s", account_id, name, job_name(class_), base_level, job_level, online?"Online":"Offline");
+ inter->msg_to_fd(fd, u_fd, aid, "[AID: %d] %s | %s | Level: %d/%d | %s", account_id, name, inter->job_name(class_), base_level, job_level, online?"Online":"Offline");
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return;
}
}
@@ -625,63 +475,66 @@ void mapif_parse_accinfo(int fd) {
/* it will only get here if we have a single match */
/* and we will send packet with account id to login server asking for account info */
if( account_id ) {
- mapif_on_parse_accinfo(account_id, u_fd, aid, castergroup, fd);
+ mapif->on_parse_accinfo(account_id, u_fd, aid, castergroup, fd);
}
return;
}
-void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state) {
+void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass,
+ const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate,
+ int group_id, int logincount, int state)
+{
if (map_fd <= 0 || !session_isActive(map_fd))
return; // check if we have a valid fd
if (!success) {
- inter_msg_to_fd(map_fd, u_fd, u_aid, "No account with ID '%d' was found.", account_id);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "No account with ID '%d' was found.", account_id);
return;
}
- inter_msg_to_fd(map_fd, u_fd, u_aid, "-- Account %d --", account_id);
- inter_msg_to_fd(map_fd, u_fd, u_aid, "User: %s | GM Group: %d | State: %d", userid, group_id, state);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "-- Account %d --", account_id);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "User: %s | GM Group: %d | State: %d", userid, group_id, state);
if (user_pass && *user_pass != '\0') { /* password is only received if your gm level is greater than the one you're searching for */
if (pin_code && *pin_code != '\0')
- inter_msg_to_fd(map_fd, u_fd, u_aid, "Password: %s (PIN:%s)", user_pass, pin_code);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "Password: %s (PIN:%s)", user_pass, pin_code);
else
- inter_msg_to_fd(map_fd, u_fd, u_aid, "Password: %s", user_pass );
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "Password: %s", user_pass );
}
- inter_msg_to_fd(map_fd, u_fd, u_aid, "Account e-mail: %s | Birthdate: %s", email, birthdate);
- inter_msg_to_fd(map_fd, u_fd, u_aid, "Last IP: %s (%s)", last_ip, geoip_getcountry(str2ip(last_ip)));
- inter_msg_to_fd(map_fd, u_fd, u_aid, "This user has logged %d times, the last time were at %s", logincount, lastlogin);
- inter_msg_to_fd(map_fd, u_fd, u_aid, "-- Character Details --");
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "Account e-mail: %s | Birthdate: %s", email, birthdate);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "Last IP: %s (%s)", last_ip, geoip->getcountry(str2ip(last_ip)));
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "This user has logged %d times, the last time were at %s", logincount, lastlogin);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "-- Character Details --");
- if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`, `name`, `char_num`, `class`, `base_level`, `job_level`, `online` "
+ if ( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `char_id`, `name`, `char_num`, `class`, `base_level`, `job_level`, `online` "
"FROM `%s` WHERE `account_id` = '%d' ORDER BY `char_num` LIMIT %d", char_db, account_id, MAX_CHARS)
- || SQL->NumRows(sql_handle) == 0 ) {
- if (SQL->NumRows(sql_handle) == 0) {
- inter_msg_to_fd(map_fd, u_fd, u_aid, "This account doesn't have characters.");
+ || SQL->NumRows(inter->sql_handle) == 0 ) {
+ if (SQL->NumRows(inter->sql_handle) == 0) {
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "This account doesn't have characters.");
} else {
- inter_msg_to_fd(map_fd, u_fd, u_aid, "An error occurred, bother your admin about it.");
- Sql_ShowDebug(sql_handle);
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "An error occurred, bother your admin about it.");
+ Sql_ShowDebug(inter->sql_handle);
}
} else {
- while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
+ while ( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) {
char *data;
int char_id, class_;
short char_num, base_level, job_level, online;
char name[NAME_LENGTH];
- SQL->GetData(sql_handle, 0, &data, NULL); char_id = atoi(data);
- SQL->GetData(sql_handle, 1, &data, NULL); safestrncpy(name, data, sizeof(name));
- SQL->GetData(sql_handle, 2, &data, NULL); char_num = atoi(data);
- SQL->GetData(sql_handle, 3, &data, NULL); class_ = atoi(data);
- SQL->GetData(sql_handle, 4, &data, NULL); base_level = atoi(data);
- SQL->GetData(sql_handle, 5, &data, NULL); job_level = atoi(data);
- SQL->GetData(sql_handle, 6, &data, NULL); online = atoi(data);
+ SQL->GetData(inter->sql_handle, 0, &data, NULL); char_id = atoi(data);
+ SQL->GetData(inter->sql_handle, 1, &data, NULL); safestrncpy(name, data, sizeof(name));
+ SQL->GetData(inter->sql_handle, 2, &data, NULL); char_num = atoi(data);
+ SQL->GetData(inter->sql_handle, 3, &data, NULL); class_ = atoi(data);
+ SQL->GetData(inter->sql_handle, 4, &data, NULL); base_level = atoi(data);
+ SQL->GetData(inter->sql_handle, 5, &data, NULL); job_level = atoi(data);
+ SQL->GetData(inter->sql_handle, 6, &data, NULL); online = atoi(data);
- inter_msg_to_fd(map_fd, u_fd, u_aid, "[Slot/CID: %d/%d] %s | %s | Level: %d/%d | %s", char_num, char_id, name, job_name(class_), base_level, job_level, online?"On":"Off");
+ inter->msg_to_fd(map_fd, u_fd, u_aid, "[Slot/CID: %d/%d] %s | %s | Level: %d/%d | %s", char_num, char_id, name, inter->job_name(class_), base_level, job_level, online?"On":"Off");
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return;
}
@@ -691,48 +544,52 @@ void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int acc
* @param val either str or int, depending on type
* @param type false when int, true otherwise
**/
-void inter_savereg(int account_id, int char_id, const char *key, unsigned int index, intptr_t val, bool is_string) {
+void inter_savereg(int account_id, int char_id, const char *key, unsigned int index, intptr_t val, bool is_string)
+{
/* to login server we go! */
if( key[0] == '#' && key[1] == '#' ) {/* global account reg */
- global_accreg_to_login_add(key,index,val,is_string);
+ if( session_isValid(chr->login_fd) )
+ chr->global_accreg_to_login_add(key,index,val,is_string);
+ else {
+ ShowError("Login server unavailable, cant perform update on '%s' variable for AID:%d CID:%d\n",key,account_id,char_id);
+ }
} else if ( key[0] == '#' ) {/* local account reg */
if( is_string ) {
if( val ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`account_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%s')", acc_reg_str_db, account_id, key, index, (char*)val) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`account_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%s')", acc_reg_str_db, account_id, key, index, (char*)val) )
+ Sql_ShowDebug(inter->sql_handle);
} else {
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", acc_reg_str_db, account_id, key, index) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", acc_reg_str_db, account_id, key, index) )
+ Sql_ShowDebug(inter->sql_handle);
}
} else {
if( val ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`account_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%d')", acc_reg_num_db, account_id, key, index, (int)val) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`account_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%d')", acc_reg_num_db, account_id, key, index, (int)val) )
+ Sql_ShowDebug(inter->sql_handle);
} else {
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", acc_reg_num_db, account_id, key, index) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", acc_reg_num_db, account_id, key, index) )
+ Sql_ShowDebug(inter->sql_handle);
}
}
} else { /* char reg */
if( is_string ) {
if( val ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`char_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%s')", char_reg_str_db, char_id, key, index, (char*)val) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`char_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%s')", char_reg_str_db, char_id, key, index, (char*)val) )
+ Sql_ShowDebug(inter->sql_handle);
} else {
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", char_reg_str_db, char_id, key, index) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", char_reg_str_db, char_id, key, index) )
+ Sql_ShowDebug(inter->sql_handle);
}
} else {
if( val ) {
- if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`char_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%d')", char_reg_num_db, char_id, key, index, (int)val) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`char_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%d')", char_reg_num_db, char_id, key, index, (int)val) )
+ Sql_ShowDebug(inter->sql_handle);
} else {
- if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", char_reg_num_db, char_id, key, index) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "DELETE FROM `%s` WHERE `char_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", char_reg_num_db, char_id, key, index) )
+ Sql_ShowDebug(inter->sql_handle);
}
}
}
-
}
// Load account_reg from sql (type=2)
@@ -744,21 +601,21 @@ int inter_accreg_fromsql(int account_id,int char_id, int fd, int type)
switch( type ) {
case 3: //char reg
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `char_id`='%d'", char_reg_str_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `char_id`='%d'", char_reg_str_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
break;
case 2: //account reg
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", acc_reg_str_db, account_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", acc_reg_str_db, account_id) )
+ Sql_ShowDebug(inter->sql_handle);
break;
case 1: //account2 reg
- ShowError("inter_accreg_fromsql: Char server shouldn't handle type 1 registry values (##). That is the login server's work!\n");
+ ShowError("inter->accreg_fromsql: Char server shouldn't handle type 1 registry values (##). That is the login server's work!\n");
return 0;
default:
- ShowError("inter_accreg_fromsql: Invalid type %d\n", type);
+ ShowError("inter->accreg_fromsql: Invalid type %d\n", type);
return 0;
}
-
+
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
/* 0x2 = length, set prior to being sent */
@@ -768,44 +625,43 @@ int inter_accreg_fromsql(int account_id,int char_id, int fd, int type)
WFIFOB(fd, 13) = 1;/* is string type */
WFIFOW(fd, 14) = 0;/* count */
plen = 16;
-
+
/**
* Vessel!
*
* str type
* { keyLength(B), key(<keyLength>), index(L), valLength(B), val(<valLength>) }
**/
- while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
-
- SQL->GetData(sql_handle, 0, &data, NULL);
+ while ( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) {
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
len = strlen(data)+1;
-
+
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 32 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
-
- SQL->GetData(sql_handle, 1, &data, NULL);
+
+ SQL->GetData(inter->sql_handle, 1, &data, NULL);
WFIFOL(fd, plen) = (unsigned int)atol(data);
plen += 4;
- SQL->GetData(sql_handle, 2, &data, NULL);
+ SQL->GetData(inter->sql_handle, 2, &data, NULL);
len = strlen(data)+1;
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 254 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
WFIFOW(fd, 14) += 1;
-
+
if( plen > 60000 ) {
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
/* prepare follow up */
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
@@ -818,24 +674,24 @@ int inter_accreg_fromsql(int account_id,int char_id, int fd, int type)
plen = 16;
}
}
-
+
/* mark & go. */
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
- SQL->FreeResult(sql_handle);
-
+ SQL->FreeResult(inter->sql_handle);
+
switch( type ) {
case 3: //char reg
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `char_id`='%d'", char_reg_num_db, char_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `char_id`='%d'", char_reg_num_db, char_id) )
+ Sql_ShowDebug(inter->sql_handle);
break;
case 2: //account reg
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", acc_reg_num_db, account_id) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", acc_reg_num_db, account_id) )
+ Sql_ShowDebug(inter->sql_handle);
break;
case 1: //account2 reg
- ShowError("inter_accreg_fromsql: Char server shouldn't handle type 1 registry values (##). That is the login server's work!\n");
+ ShowError("inter->accreg_fromsql: Char server shouldn't handle type 1 registry values (##). That is the login server's work!\n");
return 0;
}
@@ -848,40 +704,39 @@ int inter_accreg_fromsql(int account_id,int char_id, int fd, int type)
WFIFOB(fd, 13) = 0;/* is int type */
WFIFOW(fd, 14) = 0;/* count */
plen = 16;
-
+
/**
* Vessel!
*
* int type
* { keyLength(B), key(<keyLength>), index(L), value(L) }
**/
- while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
-
- SQL->GetData(sql_handle, 0, &data, NULL);
+ while ( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) {
+ SQL->GetData(inter->sql_handle, 0, &data, NULL);
len = strlen(data)+1;
-
+
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 32 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
-
- SQL->GetData(sql_handle, 1, &data, NULL);
-
+
+ SQL->GetData(inter->sql_handle, 1, &data, NULL);
+
WFIFOL(fd, plen) = (unsigned int)atol(data);
plen += 4;
-
- SQL->GetData(sql_handle, 2, &data, NULL);
-
+
+ SQL->GetData(inter->sql_handle, 2, &data, NULL);
+
WFIFOL(fd, plen) = atoi(data);
plen += 4;
-
+
WFIFOW(fd, 14) += 1;
-
+
if( plen > 60000 ) {
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
/* prepare follow up */
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
@@ -894,13 +749,13 @@ int inter_accreg_fromsql(int account_id,int char_id, int fd, int type)
plen = 16;
}
}
-
+
/* mark as complete & go. */
WFIFOB(fd, 12) = type;
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
- SQL->FreeResult(sql_handle);
+
+ SQL->FreeResult(inter->sql_handle);
return 1;
}
@@ -947,7 +802,7 @@ static int inter_config_read(const char* cfgName)
else if(!strcmpi(w1,"log_inter"))
log_inter = atoi(w2);
else if(!strcmpi(w1,"import"))
- inter_config_read(w2);
+ inter->config_read(w2);
}
fclose(fp);
@@ -960,7 +815,8 @@ static int inter_config_read(const char* cfgName)
* Save interlog into sql (arglist version)
* @see inter_log
*/
-int inter_vlog(char* fmt, va_list ap) {
+int inter_vlog(char* fmt, va_list ap)
+{
char str[255];
char esc_str[sizeof(str)*2+1];// escaped str
va_list apcopy;
@@ -969,9 +825,9 @@ int inter_vlog(char* fmt, va_list ap) {
vsnprintf(str, sizeof(str), fmt, apcopy);
va_end(apcopy);
- SQL->EscapeStringLen(sql_handle, esc_str, str, strnlen(str, sizeof(str)));
- if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` (`time`, `log`) VALUES (NOW(), '%s')", interlog_db, esc_str) )
- Sql_ShowDebug(sql_handle);
+ SQL->EscapeStringLen(inter->sql_handle, esc_str, str, strnlen(str, sizeof(str)));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` (`time`, `log`) VALUES (NOW(), '%s')", interlog_db, esc_str) )
+ Sql_ShowDebug(inter->sql_handle);
return 0;
}
@@ -982,12 +838,13 @@ int inter_vlog(char* fmt, va_list ap) {
* @param ... Additional (printf-like) arguments
* @return Always 0 // FIXME
*/
-int inter_log(char* fmt, ...) {
+int inter_log(char* fmt, ...)
+{
va_list ap;
int ret;
va_start(ap,fmt);
- ret = inter_vlog(fmt, ap);
+ ret = inter->vlog(fmt, ap);
va_end(ap);
return ret;
@@ -998,36 +855,36 @@ int inter_init_sql(const char *file)
{
//int i;
- inter_config_read(file);
+ inter->config_read(file);
//DB connection initialized
- sql_handle = SQL->Malloc();
+ inter->sql_handle = SQL->Malloc();
ShowInfo("Connect Character DB server.... (Character Server)\n");
- if( SQL_ERROR == SQL->Connect(sql_handle, char_server_id, char_server_pw, char_server_ip, (uint16)char_server_port, char_server_db) )
+ if( SQL_ERROR == SQL->Connect(inter->sql_handle, char_server_id, char_server_pw, char_server_ip, (uint16)char_server_port, char_server_db) )
{
- Sql_ShowDebug(sql_handle);
- SQL->Free(sql_handle);
+ Sql_ShowDebug(inter->sql_handle);
+ SQL->Free(inter->sql_handle);
exit(EXIT_FAILURE);
}
if( *default_codepage ) {
- if( SQL_ERROR == SQL->SetEncoding(sql_handle, default_codepage) )
- Sql_ShowDebug(sql_handle);
+ if( SQL_ERROR == SQL->SetEncoding(inter->sql_handle, default_codepage) )
+ Sql_ShowDebug(inter->sql_handle);
}
wis_db = idb_alloc(DB_OPT_RELEASE_DATA);
- inter_guild_sql_init();
- inter_storage_sql_init();
- inter_party_sql_init();
- inter_pet_sql_init();
- inter_homunculus_sql_init();
- inter_mercenary_sql_init();
- inter_elemental_sql_init();
- inter_mail_sql_init();
- inter_auction_sql_init();
-
- geoip_init();
- msg_config_read("conf/messages.conf", false);
+ inter_guild->sql_init();
+ inter_storage->sql_init();
+ inter_party->sql_init();
+ inter_pet->sql_init();
+ inter_homunculus->sql_init();
+ inter_mercenary->sql_init();
+ inter_elemental->sql_init();
+ inter_mail->sql_init();
+ inter_auction->sql_init();
+
+ geoip->init();
+ inter->msg_config_read("conf/messages.conf", false);
return 0;
}
@@ -1036,18 +893,18 @@ void inter_final(void)
{
wis_db->destroy(wis_db, NULL);
- inter_guild_sql_final();
- inter_storage_sql_final();
- inter_party_sql_final();
- inter_pet_sql_final();
- inter_homunculus_sql_final();
- inter_mercenary_sql_final();
- inter_elemental_sql_final();
- inter_mail_sql_final();
- inter_auction_sql_final();
-
- geoip_final(true);
- do_final_msg();
+ inter_guild->sql_final();
+ inter_storage->sql_final();
+ inter_party->sql_final();
+ inter_pet->sql_final();
+ inter_homunculus->sql_final();
+ inter_mercenary->sql_final();
+ inter_elemental->sql_final();
+ inter_mail->sql_final();
+ inter_auction->sql_final();
+
+ geoip->final(true);
+ inter->do_final_msg();
return;
}
@@ -1072,7 +929,7 @@ int mapif_broadcast(unsigned char *mes, int len, unsigned int fontColor, short f
WBUFW(buf,12) = fontAlign;
WBUFW(buf,14) = fontY;
memcpy(WBUFP(buf,16), mes, len - 16);
- mapif_sendallwos(sfd, buf, len);
+ mapif->sendallwos(sfd, buf, len);
if (buf)
aFree(buf);
@@ -1091,33 +948,40 @@ int mapif_wis_message(struct WisData *wd)
memcpy(WBUFP(buf, 8), wd->src, NAME_LENGTH);
memcpy(WBUFP(buf,32), wd->dst, NAME_LENGTH);
memcpy(WBUFP(buf,56), wd->msg, wd->len);
- wd->count = mapif_sendall(buf,WBUFW(buf,2));
+ wd->count = mapif->sendall(buf,WBUFW(buf,2));
return 0;
}
-// Wis sending result
-int mapif_wis_end(struct WisData *wd, int flag)
+void mapif_wis_response(int fd, unsigned char *src, int flag)
{
unsigned char buf[27];
-
WBUFW(buf, 0)=0x3802;
- memcpy(WBUFP(buf, 2),wd->src,24);
+ memcpy(WBUFP(buf, 2),src,24);
WBUFB(buf,26)=flag;
- mapif_send(wd->fd,buf,27);
+ mapif->send(fd,buf,27);
+}
+
+// Wis sending result
+int mapif_wis_end(struct WisData *wd, int flag)
+{
+ mapif->wis_response(wd->fd, wd->src, flag);
return 0;
}
+#if 0
// Account registry transfer to map-server
-//static void mapif_account_reg(int fd, unsigned char *src)
-//{
-// WBUFW(src,0)=0x3804; //NOTE: writing to RFIFO
-// mapif_sendallwos(fd, src, WBUFW(src,2));
-//}
+static void mapif_account_reg(int fd, unsigned char *src)
+{
+ WBUFW(src,0)=0x3804; //NOTE: writing to RFIFO
+ mapif->sendallwos(fd, src, WBUFW(src,2));
+}
+#endif // 0
// Send the requested account_reg
-int mapif_account_reg_reply(int fd,int account_id,int char_id, int type) {
- inter_accreg_fromsql(account_id,char_id,fd,type);
+int mapif_account_reg_reply(int fd,int account_id,int char_id, int type)
+{
+ inter->accreg_fromsql(account_id,char_id,fd,type);
return 0;
}
@@ -1142,7 +1006,7 @@ int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason)
* Existence check of WISP data
* @see DBApply
*/
-int check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap)
+int inter_check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap)
{
int64 tick;
struct WisData *wd = DB->data2ptr(data);
@@ -1154,19 +1018,19 @@ int check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap)
return 0;
}
-int check_ttl_wisdata(void)
+int inter_check_ttl_wisdata(void)
{
int64 tick = timer->gettick();
int i;
do {
wis_delnum = 0;
- wis_db->foreach(wis_db, check_ttl_wisdata_sub, tick);
+ wis_db->foreach(wis_db, inter->check_ttl_wisdata_sub, tick);
for(i = 0; i < wis_delnum; i++) {
struct WisData *wd = (struct WisData*)idb_get(wis_db, wis_dellist[i]);
ShowWarning("inter: wis data id=%d time out : from %s to %s\n", wd->id, wd->src, wd->dst);
// removed. not send information after a timeout. Just no answer for the player
- //mapif_wis_end(wd, 1); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
+ //mapif->wis_end(wd, 1); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
idb_remove(wis_db, wd->id);
}
} while(wis_delnum >= WISDELLIST_MAX);
@@ -1179,7 +1043,7 @@ int check_ttl_wisdata(void)
// broadcast sending
int mapif_parse_broadcast(int fd)
{
- mapif_broadcast(RFIFOP(fd,16), RFIFOW(fd,2), RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), fd);
+ mapif->broadcast(RFIFOP(fd,16), RFIFOW(fd,2), RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), fd);
return 0;
}
@@ -1207,41 +1071,32 @@ int mapif_parse_WisRequest(int fd)
safestrncpy(name, (char*)RFIFOP(fd,28), NAME_LENGTH); //Received name may be too large and not contain \0! [Skotlex]
- SQL->EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
- if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `name` FROM `%s` WHERE `name`='%s'", char_db, esc_name) )
- Sql_ShowDebug(sql_handle);
+ SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));
+ if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `name` FROM `%s` WHERE `name`='%s'", char_db, esc_name) )
+ Sql_ShowDebug(inter->sql_handle);
// search if character exists before to ask all map-servers
- if( SQL_SUCCESS != SQL->NextRow(sql_handle) )
+ if( SQL_SUCCESS != SQL->NextRow(inter->sql_handle) )
{
- unsigned char buf[27];
- WBUFW(buf, 0) = 0x3802;
- memcpy(WBUFP(buf, 2), RFIFOP(fd, 4), NAME_LENGTH);
- WBUFB(buf,26) = 1; // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- mapif_send(fd, buf, 27);
+ mapif->wis_response(fd, RFIFOP(fd, 4), 1);
}
else
{// Character exists. So, ask all map-servers
// to be sure of the correct name, rewrite it
- SQL->GetData(sql_handle, 0, &data, &len);
+ SQL->GetData(inter->sql_handle, 0, &data, &len);
memset(name, 0, NAME_LENGTH);
memcpy(name, data, min(len, NAME_LENGTH));
// if source is destination, don't ask other servers.
if( strncmp((const char*)RFIFOP(fd,4), name, NAME_LENGTH) == 0 )
{
- uint8 buf[27];
- WBUFW(buf, 0) = 0x3802;
- memcpy(WBUFP(buf, 2), RFIFOP(fd, 4), NAME_LENGTH);
- WBUFB(buf,26) = 1; // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- mapif_send(fd, buf, 27);
+ mapif->wis_response(fd, RFIFOP(fd, 4), 1);
}
else
{
-
CREATE(wd, struct WisData, 1);
// Whether the failure of previous wisp/page transmission (timeout)
- check_ttl_wisdata();
+ inter->check_ttl_wisdata();
wd->id = ++wisid;
wd->fd = fd;
@@ -1251,11 +1106,11 @@ int mapif_parse_WisRequest(int fd)
memcpy(wd->msg, RFIFOP(fd,52), wd->len);
wd->tick = timer->gettick();
idb_put(wis_db, wd->id, wd);
- mapif_wis_message(wd);
+ mapif->wis_message(wd);
}
}
- SQL->FreeResult(sql_handle);
+ SQL->FreeResult(inter->sql_handle);
return 0;
}
@@ -1270,10 +1125,10 @@ int mapif_parse_WisReply(int fd)
flag = RFIFOB(fd,6);
wd = (struct WisData*)idb_get(wis_db, id);
if (wd == NULL)
- return 0; // This wisp was probably suppress before, because it was timeout of because of target was found on another map-server
+ return 0; // This wisp was probably suppress before, because it was timeout of because of target was found on another map-server
if ((--wd->count) <= 0 || flag != 1) {
- mapif_wis_end(wd, flag); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
+ mapif->wis_end(wd, flag); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
idb_remove(wis_db, id);
}
@@ -1287,7 +1142,7 @@ int mapif_parse_WisToGM(int fd)
memcpy(WBUFP(buf,0), RFIFOP(fd,0), RFIFOW(fd,2));
WBUFW(buf, 0) = 0x3803;
- mapif_sendall(buf, RFIFOW(fd,2));
+ mapif->sendall(buf, RFIFOW(fd,2));
return 0;
}
@@ -1296,14 +1151,16 @@ int mapif_parse_WisToGM(int fd)
int mapif_parse_Registry(int fd)
{
int account_id = RFIFOL(fd, 4), char_id = RFIFOL(fd, 8), count = RFIFOW(fd, 12);
-
+
if( count ) {
int cursor = 14, i;
char key[32], sval[254];
unsigned int index;
-
- global_accreg_to_login_start(account_id,char_id);
-
+ bool isLoginActive = session_isActive(chr->login_fd);
+
+ if( isLoginActive )
+ chr->global_accreg_to_login_start(account_id,char_id);
+
for(i = 0; i < count; i++) {
safestrncpy(key, (char*)RFIFOP(fd, cursor + 1), RFIFOB(fd, cursor));
cursor += RFIFOB(fd, cursor) + 1;
@@ -1314,30 +1171,30 @@ int mapif_parse_Registry(int fd)
switch (RFIFOB(fd, cursor++)) {
/* int */
case 0:
- inter_savereg(account_id,char_id,key,index,RFIFOL(fd, cursor),false);
+ inter->savereg(account_id,char_id,key,index,RFIFOL(fd, cursor),false);
cursor += 4;
break;
case 1:
- inter_savereg(account_id,char_id,key,index,0,false);
+ inter->savereg(account_id,char_id,key,index,0,false);
break;
/* str */
case 2:
safestrncpy(sval, (char*)RFIFOP(fd, cursor + 1), RFIFOB(fd, cursor));
cursor += RFIFOB(fd, cursor) + 1;
- inter_savereg(account_id,char_id,key,index,(intptr_t)sval,true);
+ inter->savereg(account_id,char_id,key,index,(intptr_t)sval,true);
break;
case 3:
- inter_savereg(account_id,char_id,key,index,0,true);
+ inter->savereg(account_id,char_id,key,index,0,true);
break;
-
default:
- ShowError("mapif_parse_Registry: unknown type %d\n",RFIFOB(fd, cursor - 1));
+ ShowError("mapif->parse_Registry: unknown type %d\n",RFIFOB(fd, cursor - 1));
return 1;
}
}
-
- global_accreg_to_login_send();
+
+ if (isLoginActive)
+ chr->global_accreg_to_login_send();
}
return 0;
}
@@ -1346,15 +1203,15 @@ int mapif_parse_Registry(int fd)
int mapif_parse_RegistryRequest(int fd)
{
//Load Char Registry
- if (RFIFOB(fd,12)) mapif_account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),3);
+ if (RFIFOB(fd,12)) mapif->account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),3);
//Load Account Registry
- if (RFIFOB(fd,11)) mapif_account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),2);
+ if (RFIFOB(fd,11)) mapif->account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),2);
//Ask Login Server for Account2 values.
- if (RFIFOB(fd,10)) request_accreg2(RFIFOL(fd,2),RFIFOL(fd,6));
+ if (RFIFOB(fd,10)) chr->request_accreg2(RFIFOL(fd,2),RFIFOL(fd,6));
return 1;
}
-static void mapif_namechange_ack(int fd, int account_id, int char_id, int type, int flag, char *name)
+void mapif_namechange_ack(int fd, int account_id, int char_id, int type, int flag, const char *const name)
{
WFIFOHEAD(fd, NAME_LENGTH+13);
WFIFOW(fd, 0) = 0x3806;
@@ -1381,13 +1238,13 @@ int mapif_parse_NameChangeRequest(int fd)
if (char_name_option == 1) { // only letters/symbols in char_name_letters are authorized
for (i = 0; i < NAME_LENGTH && name[i]; i++)
if (strchr(char_name_letters, name[i]) == NULL) {
- mapif_namechange_ack(fd, account_id, char_id, type, 0, name);
+ mapif->namechange_ack(fd, account_id, char_id, type, 0, name);
return 0;
}
} else if (char_name_option == 2) { // letters/symbols in char_name_letters are forbidden
for (i = 0; i < NAME_LENGTH && name[i]; i++)
if (strchr(char_name_letters, name[i]) != NULL) {
- mapif_namechange_ack(fd, account_id, char_id, type, 0, name);
+ mapif->namechange_ack(fd, account_id, char_id, type, 0, name);
return 0;
}
}
@@ -1396,7 +1253,7 @@ int mapif_parse_NameChangeRequest(int fd)
//updated here, because changing it on the map won't make it be saved [Skotlex]
//name allowed.
- mapif_namechange_ack(fd, account_id, char_id, type, 1, name);
+ mapif->namechange_ack(fd, account_id, char_id, type, 1, name);
return 0;
}
@@ -1431,30 +1288,30 @@ int inter_parse_frommap(int fd)
return 0;
// Check packet length
- if((len = inter_check_length(fd, inter_recv_packet_length[cmd - 0x3000])) == 0)
+ if((len = inter->check_length(fd, inter_recv_packet_length[cmd - 0x3000])) == 0)
return 2;
switch(cmd) {
- case 0x3000: mapif_parse_broadcast(fd); break;
- case 0x3001: mapif_parse_WisRequest(fd); break;
- case 0x3002: mapif_parse_WisReply(fd); break;
- case 0x3003: mapif_parse_WisToGM(fd); break;
- case 0x3004: mapif_parse_Registry(fd); break;
- case 0x3005: mapif_parse_RegistryRequest(fd); break;
- case 0x3006: mapif_parse_NameChangeRequest(fd); break;
- case 0x3007: mapif_parse_accinfo(fd); break;
+ case 0x3000: mapif->parse_broadcast(fd); break;
+ case 0x3001: mapif->parse_WisRequest(fd); break;
+ case 0x3002: mapif->parse_WisReply(fd); break;
+ case 0x3003: mapif->parse_WisToGM(fd); break;
+ case 0x3004: mapif->parse_Registry(fd); break;
+ case 0x3005: mapif->parse_RegistryRequest(fd); break;
+ case 0x3006: mapif->parse_NameChangeRequest(fd); break;
+ case 0x3007: mapif->parse_accinfo(fd); break;
/* 0x3008 is used by the report stuff */
default:
- if( inter_party_parse_frommap(fd)
- || inter_guild_parse_frommap(fd)
- || inter_storage_parse_frommap(fd)
- || inter_pet_parse_frommap(fd)
- || inter_homunculus_parse_frommap(fd)
- || inter_mercenary_parse_frommap(fd)
- || inter_elemental_parse_frommap(fd)
- || inter_mail_parse_frommap(fd)
- || inter_auction_parse_frommap(fd)
- || inter_quest_parse_frommap(fd)
+ if( inter_party->parse_frommap(fd)
+ || inter_guild->parse_frommap(fd)
+ || inter_storage->parse_frommap(fd)
+ || inter_pet->parse_frommap(fd)
+ || inter_homunculus->parse_frommap(fd)
+ || inter_mercenary->parse_frommap(fd)
+ || inter_elemental->parse_frommap(fd)
+ || inter_mail->parse_frommap(fd)
+ || inter_auction->parse_frommap(fd)
+ || inter_quest->parse_frommap(fd)
)
break;
else
@@ -1465,4 +1322,28 @@ int inter_parse_frommap(int fd)
return 1;
}
-
+void inter_defaults(void)
+{
+ inter = &inter_s;
+
+ inter->sql_handle = NULL;
+
+ inter->msg_txt = inter_msg_txt;
+ inter->msg_config_read = inter_msg_config_read;
+ inter->do_final_msg = inter_do_final_msg;
+ inter->job_name = inter_job_name;
+ inter->vmsg_to_fd = inter_vmsg_to_fd;
+ inter->msg_to_fd = inter_msg_to_fd;
+ inter->savereg = inter_savereg;
+ inter->accreg_fromsql = inter_accreg_fromsql;
+ inter->config_read = inter_config_read;
+ inter->vlog = inter_vlog;
+ inter->log = inter_log;
+ inter->init_sql = inter_init_sql;
+ inter->mapif_init = inter_mapif_init;
+ inter->check_ttl_wisdata_sub = inter_check_ttl_wisdata_sub;
+ inter->check_ttl_wisdata = inter->check_ttl_wisdata;
+ inter->check_length = inter_check_length;
+ inter->parse_frommap = inter_parse_frommap;
+ inter->final = inter_final;
+}
diff --git a/src/char/inter.h b/src/char/inter.h
index d7d7c3c2b..c4bb43c1d 100644
--- a/src/char/inter.h
+++ b/src/char/inter.h
@@ -11,24 +11,37 @@
struct accreg;
-int inter_init_sql(const char *file);
-void inter_final(void);
-int inter_parse_frommap(int fd);
-int inter_mapif_init(int fd);
-int mapif_send_gmaccounts(void);
-int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason);
-void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
-
-int inter_log(char *fmt, ...) __attribute__((format(printf, 1, 2)));
-int inter_vlog(char *fmt, va_list ap);
-
#define inter_cfgName "conf/inter-server.conf"
extern unsigned int party_share_level;
-extern Sql* sql_handle;
-extern Sql* lsql_handle;
-
-int inter_accreg_tosql(int account_id, int char_id, struct accreg *reg, int type);
+void inter_defaults(void);
+
+/**
+ * inter interface
+ **/
+struct inter_interface {
+ Sql* sql_handle;
+ const char* (*msg_txt) (int msg_number);
+ bool (*msg_config_read) (const char *cfg_name, bool allow_override);
+ void (*do_final_msg) (void);
+ const char* (*job_name) (int class_);
+ void (*vmsg_to_fd) (int fd, int u_fd, int aid, char* msg, va_list ap);
+ void (*msg_to_fd) (int fd, int u_fd, int aid, char *msg, ...);
+ void (*savereg) (int account_id, int char_id, const char *key, unsigned int index, intptr_t val, bool is_string);
+ int (*accreg_fromsql) (int account_id,int char_id, int fd, int type);
+ int (*config_read) (const char* cfgName);
+ int (*vlog) (char* fmt, va_list ap);
+ int (*log) (char* fmt, ...);
+ int (*init_sql) (const char *file);
+ int (*mapif_init) (int fd);
+ int (*check_ttl_wisdata_sub) (DBKey key, DBData *data, va_list ap);
+ int (*check_ttl_wisdata) (void);
+ int (*check_length) (int fd, int length);
+ int (*parse_frommap) (int fd);
+ void (*final) (void);
+};
+
+struct inter_interface *inter;
#endif /* CHAR_INTER_H */
diff --git a/src/char/loginif.c b/src/char/loginif.c
new file mode 100644
index 000000000..5247e6c3e
--- /dev/null
+++ b/src/char/loginif.c
@@ -0,0 +1,181 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#define HERCULES_CORE
+
+#include "loginif.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "char.h"
+#include "mapif.h"
+
+#include "../common/cbasetypes.h"
+#include "../common/core.h"
+#include "../common/showmsg.h"
+#include "../common/socket.h"
+#include "../common/timer.h"
+
+struct loginif_interface loginif_s;
+
+/// Resets all the data.
+void loginif_reset(void)
+{
+ int id;
+ // TODO kick everyone out and reset everything or wait for connect and try to reacquire locks [FlavioJS]
+ for( id = 0; id < ARRAYLENGTH(chr->server); ++id )
+ mapif->server_reset(id);
+ flush_fifos();
+ exit(EXIT_FAILURE);
+}
+
+
+/// Checks the conditions for the server to stop.
+/// Releases the cookie when all characters are saved.
+/// If all the conditions are met, it stops the core loop.
+void loginif_check_shutdown(void)
+{
+ if( runflag != CHARSERVER_ST_SHUTDOWN )
+ return;
+ runflag = CORE_ST_STOP;
+}
+
+
+/// Called when the connection to Login Server is disconnected.
+void loginif_on_disconnect(void)
+{
+ ShowWarning("Connection to Login Server lost.\n\n");
+}
+
+
+/// Called when all the connection steps are completed.
+void loginif_on_ready(void)
+{
+ int i;
+
+ loginif->check_shutdown();
+
+ //Send online accounts to login server.
+ chr->send_accounts_tologin(INVALID_TIMER, timer->gettick(), 0, 0);
+
+ // if no map-server already connected, display a message...
+ ARR_FIND( 0, ARRAYLENGTH(chr->server), i, chr->server[i].fd > 0 && chr->server[i].map );
+ if( i == ARRAYLENGTH(chr->server) )
+ ShowStatus("Awaiting maps from map-server.\n");
+}
+
+void do_init_loginif(void)
+{
+ // establish char-login connection if not present
+ timer->add_func_list(chr->check_connect_login_server, "chr->check_connect_login_server");
+ timer->add_interval(timer->gettick() + 1000, chr->check_connect_login_server, 0, 0, 10 * 1000);
+
+ // send a list of all online account IDs to login server
+ timer->add_func_list(chr->send_accounts_tologin, "chr->send_accounts_tologin");
+ timer->add_interval(timer->gettick() + 1000, chr->send_accounts_tologin, 0, 0, 3600 * 1000); //Sync online accounts every hour
+}
+
+void do_final_loginif(void)
+{
+ if( chr->login_fd != -1 )
+ {
+ do_close(chr->login_fd);
+ chr->login_fd = -1;
+ }
+}
+
+void loginif_block_account(int account_id, int flag)
+{
+ WFIFOHEAD(chr->login_fd,10);
+ WFIFOW(chr->login_fd,0) = 0x2724;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOL(chr->login_fd,6) = flag; // new account status
+ WFIFOSET(chr->login_fd,10);
+}
+
+void loginif_ban_account(int account_id, short year, short month, short day, short hour, short minute, short second)
+{
+ WFIFOHEAD(chr->login_fd,18);
+ WFIFOW(chr->login_fd, 0) = 0x2725;
+ WFIFOL(chr->login_fd, 2) = account_id;
+ WFIFOW(chr->login_fd, 6) = year;
+ WFIFOW(chr->login_fd, 8) = month;
+ WFIFOW(chr->login_fd,10) = day;
+ WFIFOW(chr->login_fd,12) = hour;
+ WFIFOW(chr->login_fd,14) = minute;
+ WFIFOW(chr->login_fd,16) = second;
+ WFIFOSET(chr->login_fd,18);
+}
+
+void loginif_unban_account(int account_id)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x272a;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
+}
+
+void loginif_changesex(int account_id)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x2727;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
+}
+
+void loginif_auth(int fd, struct char_session_data* sd, uint32 ipl)
+{
+ WFIFOHEAD(chr->login_fd,23);
+ WFIFOW(chr->login_fd,0) = 0x2712; // ask login-server to authenticate an account
+ WFIFOL(chr->login_fd,2) = sd->account_id;
+ WFIFOL(chr->login_fd,6) = sd->login_id1;
+ WFIFOL(chr->login_fd,10) = sd->login_id2;
+ WFIFOB(chr->login_fd,14) = sd->sex;
+ WFIFOL(chr->login_fd,15) = htonl(ipl);
+ WFIFOL(chr->login_fd,19) = fd;
+ WFIFOSET(chr->login_fd,23);
+}
+
+void loginif_send_users_count(int users)
+{
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x2714;
+ WFIFOL(chr->login_fd,2) = users;
+ WFIFOSET(chr->login_fd,6);
+}
+
+void loginif_connect_to_server(void)
+{
+ WFIFOHEAD(chr->login_fd,86);
+ WFIFOW(chr->login_fd,0) = 0x2710;
+ memcpy(WFIFOP(chr->login_fd,2), chr->userid, NAME_LENGTH);
+ memcpy(WFIFOP(chr->login_fd,26), chr->passwd, NAME_LENGTH);
+ WFIFOL(chr->login_fd,50) = 0;
+ WFIFOL(chr->login_fd,54) = htonl(chr->ip);
+ WFIFOW(chr->login_fd,58) = htons(chr->port);
+ memcpy(WFIFOP(chr->login_fd,60), chr->server_name, 20);
+ WFIFOW(chr->login_fd,80) = 0;
+ WFIFOW(chr->login_fd,82) = chr->server_type;
+ WFIFOW(chr->login_fd,84) = chr->new_display; //only display (New) if they want to [Kevin]
+ WFIFOSET(chr->login_fd,86);
+}
+
+void loginif_defaults(void) {
+ loginif = &loginif_s;
+
+ loginif->init = do_init_loginif;
+ loginif->final = do_final_loginif;
+ loginif->reset = loginif_reset;
+ loginif->check_shutdown = loginif_check_shutdown;
+ loginif->on_disconnect = loginif_on_disconnect;
+ loginif->on_ready = loginif_on_ready;
+ loginif->block_account = loginif_block_account;
+ loginif->ban_account = loginif_ban_account;
+ loginif->unban_account = loginif_unban_account;
+ loginif->changesex = loginif_changesex;
+ loginif->auth = loginif_auth;
+ loginif->send_users_count = loginif_send_users_count;
+ loginif->connect_to_server = loginif_connect_to_server;
+}
diff --git a/src/char/loginif.h b/src/char/loginif.h
new file mode 100644
index 000000000..27eb62a1a
--- /dev/null
+++ b/src/char/loginif.h
@@ -0,0 +1,33 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#ifndef CHAR_LOGINIF_H
+#define CHAR_LOGINIF_H
+
+#include "char.h"
+
+/**
+ * loginif interface
+ **/
+struct loginif_interface {
+ void (*init) (void);
+ void (*final) (void);
+ void (*reset) (void);
+ void (*check_shutdown) (void);
+ void (*on_disconnect) (void);
+ void (*on_ready) (void);
+ void (*block_account) (int account_id, int flag);
+ void (*ban_account) (int account_id, short year, short month, short day, short hour, short minute, short second);
+ void (*unban_account) (int account_id);
+ void (*changesex) (int account_id);
+ void (*auth) (int fd, struct char_session_data* sd, uint32 ipl);
+ void (*send_users_count) (int users);
+ void (*connect_to_server) (void);
+};
+
+struct loginif_interface *loginif;
+
+void loginif_defaults(void);
+
+#endif /* CHAR_LOGINIF_H */
diff --git a/src/char/mapif.c b/src/char/mapif.c
new file mode 100644
index 000000000..65f2984fd
--- /dev/null
+++ b/src/char/mapif.c
@@ -0,0 +1,362 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#define HERCULES_CORE
+
+#include "mapif.h"
+
+#include <stdlib.h>
+
+#include "char.h"
+#include "int_auction.h"
+#include "int_homun.h"
+#include "int_guild.h"
+#include "../common/cbasetypes.h"
+#include "../common/mmo.h"
+#include "../common/random.h"
+#include "../common/showmsg.h"
+#include "../common/socket.h"
+#include "../common/strlib.h"
+
+void mapif_ban(int id, unsigned int flag, int status);
+void mapif_server_init(int id);
+void mapif_server_destroy(int id);
+void mapif_server_reset(int id);
+void mapif_on_disconnect(int id);
+void mapif_on_parse_accinfo(int account_id, int u_fd, int u_aid, int u_group, int map_fd);
+void mapif_char_ban(int char_id, time_t timestamp);
+int mapif_sendall(unsigned char *buf, unsigned int len);
+int mapif_sendallwos(int sfd, unsigned char *buf, unsigned int len);
+int mapif_send(int fd, unsigned char *buf, unsigned int len);
+void mapif_send_users_count(int users);
+void mapif_auction_message(int char_id, unsigned char result);
+void mapif_auction_sendlist(int fd, int char_id, short count, short pages, unsigned char *buf);
+void mapif_parse_auction_requestlist(int fd);
+void mapif_auction_register(int fd, struct auction_data *auction);
+void mapif_parse_auction_register(int fd);
+void mapif_auction_cancel(int fd, int char_id, unsigned char result);
+void mapif_parse_auction_cancel(int fd);
+void mapif_auction_close(int fd, int char_id, unsigned char result);
+void mapif_parse_auction_close(int fd);
+void mapif_auction_bid(int fd, int char_id, int bid, unsigned char result);
+void mapif_parse_auction_bid(int fd);
+bool mapif_elemental_save(struct s_elemental* ele);
+bool mapif_elemental_load(int ele_id, int char_id, struct s_elemental *ele);
+bool mapif_elemental_delete(int ele_id);
+void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag);
+void mapif_parse_elemental_create(int fd, struct s_elemental* ele);
+void mapif_parse_elemental_load(int fd, int ele_id, int char_id);
+void mapif_elemental_deleted(int fd, unsigned char flag);
+void mapif_parse_elemental_delete(int fd, int ele_id);
+void mapif_elemental_saved(int fd, unsigned char flag);
+void mapif_parse_elemental_save(int fd, struct s_elemental* ele);
+int mapif_guild_created(int fd, int account_id, struct guild *g);
+int mapif_guild_noinfo(int fd, int guild_id);
+int mapif_guild_info(int fd, struct guild *g);
+int mapif_guild_memberadded(int fd, int guild_id, int account_id, int char_id, int flag);
+int mapif_guild_withdraw(int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes);
+int mapif_guild_memberinfoshort(struct guild *g, int idx);
+int mapif_guild_broken(int guild_id, int flag);
+int mapif_guild_message(int guild_id,int account_id,char *mes,int len, int sfd);
+int mapif_guild_basicinfochanged(int guild_id, int type, const void *data, int len);
+int mapif_guild_memberinfochanged(int guild_id, int account_id, int char_id, int type, const void *data, int len);
+int mapif_guild_skillupack(int guild_id, uint16 skill_id, int account_id);
+int mapif_guild_alliance(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2);
+int mapif_guild_position(struct guild *g, int idx);
+int mapif_guild_notice(struct guild *g);
+int mapif_guild_emblem(struct guild *g);
+int mapif_guild_master_changed(struct guild *g, int aid, int cid);
+int mapif_guild_castle_dataload(int fd, int sz, int *castle_ids);
+int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member *master);
+int mapif_parse_GuildInfo(int fd, int guild_id);
+int mapif_parse_GuildAddMember(int fd, int guild_id, struct guild_member *m);
+int mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, int flag, const char *mes);
+int mapif_parse_GuildChangeMemberInfoShort(int fd, int guild_id, int account_id, int char_id, int online, int lv, int class_);
+int mapif_parse_BreakGuild(int fd, int guild_id);
+int mapif_parse_GuildMessage(int fd, int guild_id, int account_id, char *mes, int len);
+int mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void *data, int len);
+int mapif_parse_GuildMemberInfoChange(int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len);
+int mapif_parse_GuildPosition(int fd, int guild_id, int idx, struct guild_position *p);
+int mapif_parse_GuildSkillUp(int fd, int guild_id, uint16 skill_id, int account_id, int max);
+int mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int account_id1, int account_id2, int flag);
+int mapif_parse_GuildAlliance(int fd, int guild_id1, int guild_id2, int account_id1, int account_id2, int flag);
+int mapif_parse_GuildNotice(int fd, int guild_id, const char *mes1, const char *mes2);
+int mapif_parse_GuildEmblem(int fd, int len, int guild_id, int dummy, const char *data);
+int mapif_parse_GuildCastleDataLoad(int fd, int len, int *castle_ids);
+int mapif_parse_GuildCastleDataSave(int fd, int castle_id, int index, int value);
+int mapif_parse_GuildMasterChange(int fd, int guild_id, const char* name, int len);
+void mapif_homunculus_created(int fd, int account_id, struct s_homunculus *sh, unsigned char flag);
+void mapif_homunculus_deleted(int fd, int flag);
+void mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus *hd);
+void mapif_homunculus_saved(int fd, int account_id, bool flag);
+void mapif_homunculus_renamed(int fd, int account_id, int char_id, unsigned char flag, char* name);
+bool mapif_homunculus_save(struct s_homunculus* hd);
+bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd);
+bool mapif_homunculus_delete(int homun_id);
+bool mapif_homunculus_rename(char *name);
+void mapif_parse_homunculus_create(int fd, int len, int account_id, struct s_homunculus* phd);
+void mapif_parse_homunculus_delete(int fd, int homun_id);
+void mapif_parse_homunculus_load(int fd, int account_id, int homun_id);
+void mapif_parse_homunculus_save(int fd, int len, int account_id, struct s_homunculus* phd);
+void mapif_parse_homunculus_rename(int fd, int account_id, int char_id, char* name);
+void mapif_mail_sendinbox(int fd, int char_id, unsigned char flag, struct mail_data *md);
+void mapif_parse_mail_requestinbox(int fd);
+void mapif_parse_mail_read(int fd);
+void mapif_mail_sendattach(int fd, int char_id, struct mail_message *msg);
+void mapif_mail_getattach(int fd, int char_id, int mail_id);
+void mapif_parse_mail_getattach(int fd);
+void mapif_mail_delete(int fd, int char_id, int mail_id, bool failed);
+void mapif_parse_mail_delete(int fd);
+void mapif_mail_new(struct mail_message *msg);
+void mapif_mail_return(int fd, int char_id, int mail_id, int new_mail);
+void mapif_parse_mail_return(int fd);
+void mapif_mail_send(int fd, struct mail_message* msg);
+void mapif_parse_mail_send(int fd);
+bool mapif_mercenary_save(struct s_mercenary* merc);
+bool mapif_mercenary_load(int merc_id, int char_id, struct s_mercenary *merc);
+bool mapif_mercenary_delete(int merc_id);
+void mapif_mercenary_send(int fd, struct s_mercenary *merc, unsigned char flag);
+void mapif_parse_mercenary_create(int fd, struct s_mercenary* merc);
+void mapif_parse_mercenary_load(int fd, int merc_id, int char_id);
+void mapif_mercenary_deleted(int fd, unsigned char flag);
+void mapif_parse_mercenary_delete(int fd, int merc_id);
+void mapif_mercenary_saved(int fd, unsigned char flag);
+void mapif_parse_mercenary_save(int fd, struct s_mercenary* merc);
+int mapif_party_created(int fd, int account_id, int char_id, struct party *p);
+void mapif_party_noinfo(int fd, int party_id, int char_id);
+void mapif_party_info(int fd, struct party* p, int char_id);
+int mapif_party_memberadded(int fd, int party_id, int account_id, int char_id, int flag);
+int mapif_party_optionchanged(int fd, struct party *p, int account_id, int flag);
+int mapif_party_withdraw(int party_id,int account_id, int char_id);
+int mapif_party_membermoved(struct party *p, int idx);
+int mapif_party_broken(int party_id, int flag);
+int mapif_party_message(int party_id, int account_id, char *mes, int len, int sfd);
+int mapif_parse_CreateParty(int fd, char *name, int item, int item2, struct party_member *leader);
+void mapif_parse_PartyInfo(int fd, int party_id, int char_id);
+int mapif_parse_PartyAddMember(int fd, int party_id, struct party_member *member);
+int mapif_parse_PartyChangeOption(int fd,int party_id,int account_id,int exp,int item);
+int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id);
+int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv);
+int mapif_parse_BreakParty(int fd, int party_id);
+int mapif_parse_PartyMessage(int fd, int party_id, int account_id, char *mes, int len);
+int mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, int char_id);
+int mapif_pet_created(int fd, int account_id, struct s_pet *p);
+int mapif_pet_info(int fd, int account_id, struct s_pet *p);
+int mapif_pet_noinfo(int fd, int account_id);
+int mapif_save_pet_ack(int fd, int account_id, int flag);
+int mapif_delete_pet_ack(int fd, int flag);
+int mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id,
+ short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
+int mapif_load_pet(int fd, int account_id, int char_id, int pet_id);
+int mapif_save_pet(int fd, int account_id, struct s_pet *data);
+int mapif_delete_pet(int fd, int pet_id);
+int mapif_parse_CreatePet(int fd);
+int mapif_parse_LoadPet(int fd);
+int mapif_parse_SavePet(int fd);
+int mapif_parse_DeletePet(int fd);
+struct quest *mapif_quests_fromsql(int char_id, int *count);
+bool mapif_quest_delete(int char_id, int quest_id);
+bool mapif_quest_add(int char_id, struct quest qd);
+bool mapif_quest_update(int char_id, struct quest qd);
+void mapif_quest_save_ack(int fd, int char_id, bool success);
+int mapif_parse_quest_save(int fd);
+void mapif_send_quests(int fd, int char_id, struct quest *tmp_questlog, int num_quests);
+int mapif_parse_quest_load(int fd);
+int mapif_load_guild_storage(int fd,int account_id,int guild_id, char flag);
+int mapif_save_guild_storage_ack(int fd, int account_id, int guild_id, int fail);
+int mapif_parse_LoadGuildStorage(int fd);
+int mapif_parse_SaveGuildStorage(int fd);
+int mapif_itembound_ack(int fd, int aid, int guild_id);
+int mapif_parse_ItemBoundRetrieve_sub(int fd);
+void mapif_parse_ItemBoundRetrieve(int fd);
+void mapif_parse_accinfo(int fd);
+void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass,
+ const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
+int mapif_broadcast(unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
+int mapif_wis_message(struct WisData *wd);
+void mapif_wis_response(int fd, unsigned char *src, int flag);
+int mapif_wis_end(struct WisData *wd, int flag);
+int mapif_account_reg_reply(int fd,int account_id,int char_id, int type);
+int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason);
+int mapif_parse_broadcast(int fd);
+int mapif_parse_WisRequest(int fd);
+int mapif_parse_WisReply(int fd);
+int mapif_parse_WisToGM(int fd);
+int mapif_parse_Registry(int fd);
+int mapif_parse_RegistryRequest(int fd);
+void mapif_namechange_ack(int fd, int account_id, int char_id, int type, int flag, const char *const name);
+int mapif_parse_NameChangeRequest(int fd);
+
+struct mapif_interface mapif_s;
+
+void mapif_defaults(void) {
+ mapif = &mapif_s;
+
+ mapif->ban = mapif_ban;
+ mapif->server_init = mapif_server_init;
+ mapif->server_destroy = mapif_server_destroy;
+ mapif->server_reset = mapif_server_reset;
+ mapif->on_disconnect = mapif_on_disconnect;
+ mapif->on_parse_accinfo = mapif_on_parse_accinfo;
+ mapif->char_ban = mapif_char_ban;
+ mapif->sendall = mapif_sendall;
+ mapif->sendallwos = mapif_sendallwos;
+ mapif->send = mapif_send;
+ mapif->send_users_count = mapif_send_users_count;
+ mapif->auction_message = mapif_auction_message;
+ mapif->auction_sendlist = mapif_auction_sendlist;
+ mapif->parse_auction_requestlist = mapif_parse_auction_requestlist;
+ mapif->auction_register = mapif_auction_register;
+ mapif->parse_auction_register = mapif_parse_auction_register;
+ mapif->auction_cancel = mapif_auction_cancel;
+ mapif->parse_auction_cancel = mapif_parse_auction_cancel;
+ mapif->auction_close = mapif_auction_close;
+ mapif->parse_auction_close = mapif_parse_auction_close;
+ mapif->auction_bid = mapif_auction_bid;
+ mapif->parse_auction_bid = mapif_parse_auction_bid;
+ mapif->elemental_save = mapif_elemental_save;
+ mapif->elemental_load = mapif_elemental_load;
+ mapif->elemental_delete = mapif_elemental_delete;
+ mapif->elemental_send = mapif_elemental_send;
+ mapif->parse_elemental_create = mapif_parse_elemental_create;
+ mapif->parse_elemental_load = mapif_parse_elemental_load;
+ mapif->elemental_deleted = mapif_elemental_deleted;
+ mapif->parse_elemental_delete = mapif_parse_elemental_delete;
+ mapif->elemental_saved = mapif_elemental_saved;
+ mapif->parse_elemental_save = mapif_parse_elemental_save;
+ mapif->guild_created = mapif_guild_created;
+ mapif->guild_noinfo = mapif_guild_noinfo;
+ mapif->guild_info = mapif_guild_info;
+ mapif->guild_memberadded = mapif_guild_memberadded;
+ mapif->guild_withdraw = mapif_guild_withdraw;
+ mapif->guild_memberinfoshort = mapif_guild_memberinfoshort;
+ mapif->guild_broken = mapif_guild_broken;
+ mapif->guild_message = mapif_guild_message;
+ mapif->guild_basicinfochanged = mapif_guild_basicinfochanged;
+ mapif->guild_memberinfochanged = mapif_guild_memberinfochanged;
+ mapif->guild_skillupack = mapif_guild_skillupack;
+ mapif->guild_alliance = mapif_guild_alliance;
+ mapif->guild_position = mapif_guild_position;
+ mapif->guild_notice = mapif_guild_notice;
+ mapif->guild_emblem = mapif_guild_emblem;
+ mapif->guild_master_changed = mapif_guild_master_changed;
+ mapif->guild_castle_dataload = mapif_guild_castle_dataload;
+ mapif->parse_CreateGuild = mapif_parse_CreateGuild;
+ mapif->parse_GuildInfo = mapif_parse_GuildInfo;
+ mapif->parse_GuildAddMember = mapif_parse_GuildAddMember;
+ mapif->parse_GuildLeave = mapif_parse_GuildLeave;
+ mapif->parse_GuildChangeMemberInfoShort = mapif_parse_GuildChangeMemberInfoShort;
+ mapif->parse_BreakGuild = mapif_parse_BreakGuild;
+ mapif->parse_GuildMessage = mapif_parse_GuildMessage;
+ mapif->parse_GuildBasicInfoChange = mapif_parse_GuildBasicInfoChange;
+ mapif->parse_GuildMemberInfoChange = mapif_parse_GuildMemberInfoChange;
+ mapif->parse_GuildPosition = mapif_parse_GuildPosition;
+ mapif->parse_GuildSkillUp = mapif_parse_GuildSkillUp;
+ mapif->parse_GuildDeleteAlliance = mapif_parse_GuildDeleteAlliance;
+ mapif->parse_GuildAlliance = mapif_parse_GuildAlliance;
+ mapif->parse_GuildNotice = mapif_parse_GuildNotice;
+ mapif->parse_GuildEmblem = mapif_parse_GuildEmblem;
+ mapif->parse_GuildCastleDataLoad = mapif_parse_GuildCastleDataLoad;
+ mapif->parse_GuildCastleDataSave = mapif_parse_GuildCastleDataSave;
+ mapif->parse_GuildMasterChange = mapif_parse_GuildMasterChange;
+ mapif->homunculus_created = mapif_homunculus_created;
+ mapif->homunculus_deleted = mapif_homunculus_deleted;
+ mapif->homunculus_loaded = mapif_homunculus_loaded;
+ mapif->homunculus_saved = mapif_homunculus_saved;
+ mapif->homunculus_renamed = mapif_homunculus_renamed;
+ mapif->homunculus_save = mapif_homunculus_save;
+ mapif->homunculus_load = mapif_homunculus_load;
+ mapif->homunculus_delete = mapif_homunculus_delete;
+ mapif->homunculus_rename = mapif_homunculus_rename;
+ mapif->parse_homunculus_create = mapif_parse_homunculus_create;
+ mapif->parse_homunculus_delete = mapif_parse_homunculus_delete;
+ mapif->parse_homunculus_load = mapif_parse_homunculus_load;
+ mapif->parse_homunculus_save = mapif_parse_homunculus_save;
+ mapif->parse_homunculus_rename = mapif_parse_homunculus_rename;
+ mapif->mail_sendinbox = mapif_mail_sendinbox;
+ mapif->parse_mail_requestinbox = mapif_parse_mail_requestinbox;
+ mapif->parse_mail_read = mapif_parse_mail_read;
+ mapif->mail_sendattach = mapif_mail_sendattach;
+ mapif->mail_getattach = mapif_mail_getattach;
+ mapif->parse_mail_getattach = mapif_parse_mail_getattach;
+ mapif->mail_delete = mapif_mail_delete;
+ mapif->parse_mail_delete = mapif_parse_mail_delete;
+ mapif->mail_new = mapif_mail_new;
+ mapif->mail_return = mapif_mail_return;
+ mapif->parse_mail_return = mapif_parse_mail_return;
+ mapif->mail_send = mapif_mail_send;
+ mapif->parse_mail_send = mapif_parse_mail_send;
+ mapif->mercenary_save = mapif_mercenary_save;
+ mapif->mercenary_load = mapif_mercenary_load;
+ mapif->mercenary_delete = mapif_mercenary_delete;
+ mapif->mercenary_send = mapif_mercenary_send;
+ mapif->parse_mercenary_create = mapif_parse_mercenary_create;
+ mapif->parse_mercenary_load = mapif_parse_mercenary_load;
+ mapif->mercenary_deleted = mapif_mercenary_deleted;
+ mapif->parse_mercenary_delete = mapif_parse_mercenary_delete;
+ mapif->mercenary_saved = mapif_mercenary_saved;
+ mapif->parse_mercenary_save = mapif_parse_mercenary_save;
+ mapif->party_created = mapif_party_created;
+ mapif->party_noinfo = mapif_party_noinfo;
+ mapif->party_info = mapif_party_info;
+ mapif->party_memberadded = mapif_party_memberadded;
+ mapif->party_optionchanged = mapif_party_optionchanged;
+ mapif->party_withdraw = mapif_party_withdraw;
+ mapif->party_membermoved = mapif_party_membermoved;
+ mapif->party_broken = mapif_party_broken;
+ mapif->party_message = mapif_party_message;
+ mapif->parse_CreateParty = mapif_parse_CreateParty;
+ mapif->parse_PartyInfo = mapif_parse_PartyInfo;
+ mapif->parse_PartyAddMember = mapif_parse_PartyAddMember;
+ mapif->parse_PartyChangeOption = mapif_parse_PartyChangeOption;
+ mapif->parse_PartyLeave = mapif_parse_PartyLeave;
+ mapif->parse_PartyChangeMap = mapif_parse_PartyChangeMap;
+ mapif->parse_BreakParty = mapif_parse_BreakParty;
+ mapif->parse_PartyMessage = mapif_parse_PartyMessage;
+ mapif->parse_PartyLeaderChange = mapif_parse_PartyLeaderChange;
+ mapif->pet_created = mapif_pet_created;
+ mapif->pet_info = mapif_pet_info;
+ mapif->pet_noinfo = mapif_pet_noinfo;
+ mapif->save_pet_ack = mapif_save_pet_ack;
+ mapif->delete_pet_ack = mapif_delete_pet_ack;
+ mapif->create_pet = mapif_create_pet;
+ mapif->load_pet = mapif_load_pet;
+ mapif->save_pet = mapif_save_pet;
+ mapif->delete_pet = mapif_delete_pet;
+ mapif->parse_CreatePet = mapif_parse_CreatePet;
+ mapif->parse_LoadPet = mapif_parse_LoadPet;
+ mapif->parse_SavePet = mapif_parse_SavePet;
+ mapif->parse_DeletePet = mapif_parse_DeletePet;
+ mapif->quests_fromsql = mapif_quests_fromsql;
+ mapif->quest_delete = mapif_quest_delete;
+ mapif->quest_add = mapif_quest_add;
+ mapif->quest_update = mapif_quest_update;
+ mapif->quest_save_ack = mapif_quest_save_ack;
+ mapif->parse_quest_save = mapif_parse_quest_save;
+ mapif->send_quests = mapif_send_quests;
+ mapif->parse_quest_load = mapif_parse_quest_load;
+ mapif->load_guild_storage = mapif_load_guild_storage;
+ mapif->save_guild_storage_ack = mapif_save_guild_storage_ack;
+ mapif->parse_LoadGuildStorage = mapif_parse_LoadGuildStorage;
+ mapif->parse_SaveGuildStorage = mapif_parse_SaveGuildStorage;
+ mapif->itembound_ack = mapif_itembound_ack;
+ mapif->parse_ItemBoundRetrieve_sub = mapif_parse_ItemBoundRetrieve_sub;
+ mapif->parse_ItemBoundRetrieve = mapif_parse_ItemBoundRetrieve;
+ mapif->parse_accinfo = mapif_parse_accinfo;
+ mapif->parse_accinfo2 = mapif_parse_accinfo2;
+ mapif->broadcast = mapif_broadcast;
+ mapif->wis_message = mapif_wis_message;
+ mapif->wis_response = mapif_wis_response;
+ mapif->wis_end = mapif_wis_end;
+ mapif->account_reg_reply = mapif_account_reg_reply;
+ mapif->disconnectplayer = mapif_disconnectplayer;
+ mapif->parse_broadcast = mapif_parse_broadcast;
+ mapif->parse_WisRequest = mapif_parse_WisRequest;
+ mapif->parse_WisReply = mapif_parse_WisReply;
+ mapif->parse_WisToGM = mapif_parse_WisToGM;
+ mapif->parse_Registry = mapif_parse_Registry;
+ mapif->parse_RegistryRequest = mapif_parse_RegistryRequest;
+ mapif->namechange_ack = mapif_namechange_ack;
+ mapif->parse_NameChangeRequest = mapif_parse_NameChangeRequest;
+}
diff --git a/src/char/mapif.h b/src/char/mapif.h
new file mode 100644
index 000000000..f9c06256d
--- /dev/null
+++ b/src/char/mapif.h
@@ -0,0 +1,198 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+// Portions Copyright (c) Athena Dev Teams
+
+#ifndef CHAR_MAPIF_H
+#define CHAR_MAPIF_H
+
+#include "char.h"
+
+struct s_elemental;
+struct s_homunculus;
+struct s_mercenary;
+struct s_pet;
+struct guild_storage;
+struct storage_data;
+struct quest;
+struct mail_message;
+struct WisData;
+
+/**
+ * mapif interface
+ **/
+struct mapif_interface {
+ void (*ban) (int id, unsigned int flag, int status);
+ void (*server_init) (int id);
+ void (*server_destroy) (int id);
+ void (*server_reset) (int id);
+ void (*on_disconnect) (int id);
+ void (*on_parse_accinfo) (int account_id, int u_fd, int u_aid, int u_group, int map_fd);
+ void (*char_ban) (int char_id, time_t timestamp);
+ int (*sendall) (unsigned char *buf, unsigned int len);
+ int (*sendallwos) (int sfd, unsigned char *buf, unsigned int len);
+ int (*send) (int fd, unsigned char *buf, unsigned int len);
+ void (*send_users_count) (int users);
+ void (*auction_message) (int char_id, unsigned char result);
+ void (*auction_sendlist) (int fd, int char_id, short count, short pages, unsigned char *buf);
+ void (*parse_auction_requestlist) (int fd);
+ void (*auction_register) (int fd, struct auction_data *auction);
+ void (*parse_auction_register) (int fd);
+ void (*auction_cancel) (int fd, int char_id, unsigned char result);
+ void (*parse_auction_cancel) (int fd);
+ void (*auction_close) (int fd, int char_id, unsigned char result);
+ void (*parse_auction_close) (int fd);
+ void (*auction_bid) (int fd, int char_id, int bid, unsigned char result);
+ void (*parse_auction_bid) (int fd);
+ bool (*elemental_save) (struct s_elemental* ele);
+ bool (*elemental_load) (int ele_id, int char_id, struct s_elemental *ele);
+ bool (*elemental_delete) (int ele_id);
+ void (*elemental_send) (int fd, struct s_elemental *ele, unsigned char flag);
+ void (*parse_elemental_create) (int fd, struct s_elemental* ele);
+ void (*parse_elemental_load) (int fd, int ele_id, int char_id);
+ void (*elemental_deleted) (int fd, unsigned char flag);
+ void (*parse_elemental_delete) (int fd, int ele_id);
+ void (*elemental_saved) (int fd, unsigned char flag);
+ void (*parse_elemental_save) (int fd, struct s_elemental* ele);
+ int (*guild_created) (int fd, int account_id, struct guild *g);
+ int (*guild_noinfo) (int fd, int guild_id);
+ int (*guild_info) (int fd, struct guild *g);
+ int (*guild_memberadded) (int fd, int guild_id, int account_id, int char_id, int flag);
+ int (*guild_withdraw) (int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes);
+ int (*guild_memberinfoshort) (struct guild *g, int idx);
+ int (*guild_broken) (int guild_id, int flag);
+ int (*guild_message) (int guild_id,int account_id,char *mes,int len, int sfd);
+ int (*guild_basicinfochanged) (int guild_id, int type, const void *data, int len);
+ int (*guild_memberinfochanged) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
+ int (*guild_skillupack) (int guild_id, uint16 skill_id, int account_id);
+ int (*guild_alliance) (int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2);
+ int (*guild_position) (struct guild *g, int idx);
+ int (*guild_notice) (struct guild *g);
+ int (*guild_emblem) (struct guild *g);
+ int (*guild_master_changed) (struct guild *g, int aid, int cid);
+ int (*guild_castle_dataload) (int fd, int sz, int *castle_ids);
+ int (*parse_CreateGuild) (int fd,int account_id,char *name,struct guild_member *master);
+ int (*parse_GuildInfo) (int fd, int guild_id);
+ int (*parse_GuildAddMember) (int fd, int guild_id, struct guild_member *m);
+ int (*parse_GuildLeave) (int fd, int guild_id, int account_id, int char_id, int flag, const char *mes);
+ int (*parse_GuildChangeMemberInfoShort) (int fd, int guild_id, int account_id, int char_id, int online, int lv, int class_);
+ int (*parse_BreakGuild) (int fd, int guild_id);
+ int (*parse_GuildMessage) (int fd, int guild_id, int account_id, char *mes, int len);
+ int (*parse_GuildBasicInfoChange) (int fd, int guild_id, int type, const void *data, int len);
+ int (*parse_GuildMemberInfoChange) (int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len);
+ int (*parse_GuildPosition) (int fd, int guild_id, int idx, struct guild_position *p);
+ int (*parse_GuildSkillUp) (int fd, int guild_id, uint16 skill_id, int account_id, int max);
+ int (*parse_GuildDeleteAlliance) (struct guild *g, int guild_id, int account_id1, int account_id2, int flag);
+ int (*parse_GuildAlliance) (int fd, int guild_id1, int guild_id2, int account_id1, int account_id2, int flag);
+ int (*parse_GuildNotice) (int fd, int guild_id, const char *mes1, const char *mes2);
+ int (*parse_GuildEmblem) (int fd, int len, int guild_id, int dummy, const char *data);
+ int (*parse_GuildCastleDataLoad) (int fd, int len, int *castle_ids);
+ int (*parse_GuildCastleDataSave) (int fd, int castle_id, int index, int value);
+ int (*parse_GuildMasterChange) (int fd, int guild_id, const char* name, int len);
+ void (*homunculus_created) (int fd, int account_id, struct s_homunculus *sh, unsigned char flag);
+ void (*homunculus_deleted) (int fd, int flag);
+ void (*homunculus_loaded) (int fd, int account_id, struct s_homunculus *hd);
+ void (*homunculus_saved) (int fd, int account_id, bool flag);
+ void (*homunculus_renamed) (int fd, int account_id, int char_id, unsigned char flag, char* name);
+ bool (*homunculus_save) (struct s_homunculus* hd);
+ bool (*homunculus_load) (int homun_id, struct s_homunculus* hd);
+ bool (*homunculus_delete) (int homun_id);
+ bool (*homunculus_rename) (char *name);
+ void (*parse_homunculus_create) (int fd, int len, int account_id, struct s_homunculus* phd);
+ void (*parse_homunculus_delete) (int fd, int homun_id);
+ void (*parse_homunculus_load) (int fd, int account_id, int homun_id);
+ void (*parse_homunculus_save) (int fd, int len, int account_id, struct s_homunculus* phd);
+ void (*parse_homunculus_rename) (int fd, int account_id, int char_id, char* name);
+ void (*mail_sendinbox) (int fd, int char_id, unsigned char flag, struct mail_data *md);
+ void (*parse_mail_requestinbox) (int fd);
+ void (*parse_mail_read) (int fd);
+ void (*mail_sendattach) (int fd, int char_id, struct mail_message *msg);
+ void (*mail_getattach) (int fd, int char_id, int mail_id);
+ void (*parse_mail_getattach) (int fd);
+ void (*mail_delete) (int fd, int char_id, int mail_id, bool failed);
+ void (*parse_mail_delete) (int fd);
+ void (*mail_new) (struct mail_message *msg);
+ void (*mail_return) (int fd, int char_id, int mail_id, int new_mail);
+ void (*parse_mail_return) (int fd);
+ void (*mail_send) (int fd, struct mail_message* msg);
+ void (*parse_mail_send) (int fd);
+ bool (*mercenary_save) (struct s_mercenary* merc);
+ bool (*mercenary_load) (int merc_id, int char_id, struct s_mercenary *merc);
+ bool (*mercenary_delete) (int merc_id);
+ void (*mercenary_send) (int fd, struct s_mercenary *merc, unsigned char flag);
+ void (*parse_mercenary_create) (int fd, struct s_mercenary* merc);
+ void (*parse_mercenary_load) (int fd, int merc_id, int char_id);
+ void (*mercenary_deleted) (int fd, unsigned char flag);
+ void (*parse_mercenary_delete) (int fd, int merc_id);
+ void (*mercenary_saved) (int fd, unsigned char flag);
+ void (*parse_mercenary_save) (int fd, struct s_mercenary* merc);
+ int (*party_created) (int fd, int account_id, int char_id, struct party *p);
+ void (*party_noinfo) (int fd, int party_id, int char_id);
+ void (*party_info) (int fd, struct party* p, int char_id);
+ int (*party_memberadded) (int fd, int party_id, int account_id, int char_id, int flag);
+ int (*party_optionchanged) (int fd, struct party *p, int account_id, int flag);
+ int (*party_withdraw) (int party_id,int account_id, int char_id);
+ int (*party_membermoved) (struct party *p, int idx);
+ int (*party_broken) (int party_id, int flag);
+ int (*party_message) (int party_id, int account_id, char *mes, int len, int sfd);
+ int (*parse_CreateParty) (int fd, char *name, int item, int item2, struct party_member *leader);
+ void (*parse_PartyInfo) (int fd, int party_id, int char_id);
+ int (*parse_PartyAddMember) (int fd, int party_id, struct party_member *member);
+ int (*parse_PartyChangeOption) (int fd,int party_id,int account_id,int exp,int item);
+ int (*parse_PartyLeave) (int fd, int party_id, int account_id, int char_id);
+ int (*parse_PartyChangeMap) (int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv);
+ int (*parse_BreakParty) (int fd, int party_id);
+ int (*parse_PartyMessage) (int fd, int party_id, int account_id, char *mes, int len);
+ int (*parse_PartyLeaderChange) (int fd, int party_id, int account_id, int char_id);
+ int (*pet_created) (int fd, int account_id, struct s_pet *p);
+ int (*pet_info) (int fd, int account_id, struct s_pet *p);
+ int (*pet_noinfo) (int fd, int account_id);
+ int (*save_pet_ack) (int fd, int account_id, int flag);
+ int (*delete_pet_ack) (int fd, int flag);
+ int (*create_pet) (int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id,
+ short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
+ int (*load_pet) (int fd, int account_id, int char_id, int pet_id);
+ int (*save_pet) (int fd, int account_id, struct s_pet *data);
+ int (*delete_pet) (int fd, int pet_id);
+ int (*parse_CreatePet) (int fd);
+ int (*parse_LoadPet) (int fd);
+ int (*parse_SavePet) (int fd);
+ int (*parse_DeletePet) (int fd);
+ struct quest *(*quests_fromsql) (int char_id, int *count);
+ bool (*quest_delete) (int char_id, int quest_id);
+ bool (*quest_add) (int char_id, struct quest qd);
+ bool (*quest_update) (int char_id, struct quest qd);
+ void (*quest_save_ack) (int fd, int char_id, bool success);
+ int (*parse_quest_save) (int fd);
+ void (*send_quests) (int fd, int char_id, struct quest *tmp_questlog, int num_quests);
+ int (*parse_quest_load) (int fd);
+ int (*load_guild_storage) (int fd, int account_id, int guild_id, char flag);
+ int (*save_guild_storage_ack) (int fd, int account_id, int guild_id, int fail);
+ int (*parse_LoadGuildStorage) (int fd);
+ int (*parse_SaveGuildStorage) (int fd);
+ int (*itembound_ack) (int fd, int aid, int guild_id);
+ int (*parse_ItemBoundRetrieve_sub) (int fd);
+ void (*parse_ItemBoundRetrieve) (int fd);
+ void (*parse_accinfo) (int fd);
+ void (*parse_accinfo2) (bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass,
+ const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
+ int (*broadcast) (unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
+ int (*wis_message) (struct WisData *wd);
+ void (*wis_response) (int fd, unsigned char *src, int flag);
+ int (*wis_end) (struct WisData *wd, int flag);
+ int (*account_reg_reply) (int fd,int account_id,int char_id, int type);
+ int (*disconnectplayer) (int fd, int account_id, int char_id, int reason);
+ int (*parse_broadcast) (int fd);
+ int (*parse_WisRequest) (int fd);
+ int (*parse_WisReply) (int fd);
+ int (*parse_WisToGM) (int fd);
+ int (*parse_Registry) (int fd);
+ int (*parse_RegistryRequest) (int fd);
+ void (*namechange_ack) (int fd, int account_id, int char_id, int type, int flag, const char *name);
+ int (*parse_NameChangeRequest) (int fd);
+};
+
+struct mapif_interface *mapif;
+
+void mapif_defaults(void);
+
+#endif /* CHAR_MAPIF_H */
diff --git a/src/char/pincode.c b/src/char/pincode.c
index 18ad0ffc8..a3843ff53 100644
--- a/src/char/pincode.c
+++ b/src/char/pincode.c
@@ -16,24 +16,20 @@
#include "../common/socket.h"
#include "../common/strlib.h"
-int enabled = PINCODE_OK;
-int changetime = 0;
-int maxtry = 3;
-int charselect = 0;
-unsigned int multiplier = 0x3498, baseSeed = 0x881234;
+struct pincode_interface pincode_s;
void pincode_handle ( int fd, struct char_session_data* sd ) {
- struct online_char_data* character = (struct online_char_data*)idb_get(online_char_db, sd->account_id);
-
- if( character && character->pincode_enable > *pincode->charselect ){
- character->pincode_enable = *pincode->charselect * 2;
+ struct online_char_data* character = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id);
+
+ if( character && character->pincode_enable > pincode->charselect ){
+ character->pincode_enable = pincode->charselect * 2;
}else{
pincode->sendstate( fd, sd, PINCODE_OK );
return;
}
-
+
if( strlen(sd->pincode) == 4 ){
- if( *pincode->changetime && time(NULL) > (sd->pincode_change+*pincode->changetime) ){ // User hasn't changed his PIN code for a long time
+ if( pincode->changetime && time(NULL) > (sd->pincode_change+pincode->changetime) ){ // User hasn't changed his PIN code for a long time
pincode->sendstate( fd, sd, PINCODE_EXPIRED );
} else { // Ask user for his PIN code
pincode->sendstate( fd, sd, PINCODE_ASK );
@@ -47,13 +43,13 @@ void pincode_handle ( int fd, struct char_session_data* sd ) {
void pincode_check(int fd, struct char_session_data* sd) {
char pin[5] = "\0\0\0\0";
-
+
strncpy(pin, (char*)RFIFOP(fd, 6), 4+1);
pincode->decrypt(sd->pincode_seed, pin);
if( pincode->compare( fd, sd, pin ) ){
struct online_char_data* character;
- if( (character = (struct online_char_data*)idb_get(online_char_db, sd->account_id)) )
- character->pincode_enable = *pincode->charselect * 2;
+ if( (character = (struct online_char_data*)idb_get(chr->online_char_db, sd->account_id)) )
+ character->pincode_enable = pincode->charselect * 2;
pincode->sendstate( fd, sd, PINCODE_OK );
}
}
@@ -64,7 +60,7 @@ int pincode_compare(int fd, struct char_session_data* sd, char* pin) {
return 1;
} else {
pincode->sendstate( fd, sd, PINCODE_WRONG );
- if( *pincode->maxtry && ++sd->pincode_try >= *pincode->maxtry ){
+ if( pincode->maxtry && ++sd->pincode_try >= pincode->maxtry ){
pincode->error( sd->account_id );
}
return 0;
@@ -78,7 +74,7 @@ void pincode_change(int fd, struct char_session_data* sd) {
pincode->decrypt(sd->pincode_seed,oldpin);
if( !pincode->compare( fd, sd, oldpin ) )
return;
-
+
strncpy(newpin, (char*)RFIFOP(fd,10), sizeof(newpin));
pincode->decrypt(sd->pincode_seed,newpin);
pincode->update( sd->account_id, newpin );
@@ -115,26 +111,26 @@ void pincode_sendstate(int fd, struct char_session_data* sd, uint16 state) {
}
void pincode_notifyLoginPinUpdate(int account_id, char* pin) {
- WFIFOHEAD(login_fd,11);
- WFIFOW(login_fd,0) = 0x2738;
- WFIFOL(login_fd,2) = account_id;
- strncpy( (char*)WFIFOP(login_fd,6), pin, 5 );
- WFIFOSET(login_fd,11);
+ WFIFOHEAD(chr->login_fd,11);
+ WFIFOW(chr->login_fd,0) = 0x2738;
+ WFIFOL(chr->login_fd,2) = account_id;
+ strncpy( (char*)WFIFOP(chr->login_fd,6), pin, 5 );
+ WFIFOSET(chr->login_fd,11);
}
void pincode_notifyLoginPinError(int account_id) {
- WFIFOHEAD(login_fd,6);
- WFIFOW(login_fd,0) = 0x2739;
- WFIFOL(login_fd,2) = account_id;
- WFIFOSET(login_fd,6);
+ WFIFOHEAD(chr->login_fd,6);
+ WFIFOW(chr->login_fd,0) = 0x2739;
+ WFIFOL(chr->login_fd,2) = account_id;
+ WFIFOSET(chr->login_fd,6);
}
void pincode_decrypt(unsigned int userSeed, char* pin) {
int i, pos;
char tab[10] = {0,1,2,3,4,5,6,7,8,9};
-
+
for( i = 1; i < 10; i++ ){
- userSeed = *pincode->baseSeed + userSeed * *pincode->multiplier;
+ userSeed = pincode->baseSeed + userSeed * pincode->multiplier;
pos = userSeed % (i + 1);
if( i != pos ){
tab[i] ^= tab[pos];
@@ -142,55 +138,54 @@ void pincode_decrypt(unsigned int userSeed, char* pin) {
tab[i] ^= tab[pos];
}
}
-
+
for( i = 0; i < 4; i++ ){
pin[i] = tab[pin[i] - '0'];
}
-
+
sprintf(pin, "%d%d%d%d", pin[0], pin[1], pin[2], pin[3]);
}
bool pincode_config_read(char *w1, char *w2) {
-
+
while ( true ) {
-
if ( strcmpi(w1, "pincode_enabled") == 0 ) {
- enabled = atoi(w2);
+ pincode->enabled = atoi(w2);
#if PACKETVER < 20110309
- if( enabled ) {
+ if( pincode->enabled ) {
ShowWarning("pincode_enabled requires PACKETVER 20110309 or higher. disabling...\n");
- enabled = 0;
+ pincode->enabled = 0;
}
#endif
} else if ( strcmpi(w1, "pincode_changetime") == 0 ) {
- changetime = atoi(w2)*60;
+ pincode->changetime = atoi(w2)*60;
} else if ( strcmpi(w1, "pincode_maxtry") == 0 ) {
- maxtry = atoi(w2);
- if( maxtry > 3 ) {
- ShowWarning("pincode_maxtry is too high (%d); maximum allowed: 3! capping to 3...\n",maxtry);
- maxtry = 3;
+ pincode->maxtry = atoi(w2);
+ if( pincode->maxtry > 3 ) {
+ ShowWarning("pincode_maxtry is too high (%d); maximum allowed: 3! capping to 3...\n", pincode->maxtry);
+ pincode->maxtry = 3;
}
} else if ( strcmpi(w1, "pincode_charselect") == 0 ) {
- charselect = atoi(w2);
- } else
+ pincode->charselect = atoi(w2);
+ } else {
return false;
-
+ }
break;
}
-
+
return true;
}
void pincode_defaults(void) {
pincode = &pincode_s;
-
- pincode->enabled = &enabled;
- pincode->changetime = &changetime;
- pincode->maxtry = &maxtry;
- pincode->charselect = &charselect;
- pincode->multiplier = &multiplier;
- pincode->baseSeed = &baseSeed;
-
+
+ pincode->enabled = PINCODE_OK;
+ pincode->changetime = 0;
+ pincode->maxtry = 3;
+ pincode->charselect = 0;
+ pincode->multiplier = 0x3498;
+ pincode->baseSeed = 0x881234;
+
pincode->handle = pincode_handle;
pincode->decrypt = pincode_decrypt;
pincode->error = pincode_notifyLoginPinError;
diff --git a/src/char/pincode.h b/src/char/pincode.h
index 1ed05095e..f4265716a 100644
--- a/src/char/pincode.h
+++ b/src/char/pincode.h
@@ -7,22 +7,26 @@
#include "char.h"
-#define PINCODE_OK 0
-#define PINCODE_ASK 1
-#define PINCODE_NOTSET 2
-#define PINCODE_EXPIRED 3
-#define PINCODE_UNUSED 7
-#define PINCODE_WRONG 8
+enum PincodeResponseCode {
+ PINCODE_OK = 0,
+ PINCODE_ASK = 1,
+ PINCODE_NOTSET = 2,
+ PINCODE_EXPIRED = 3,
+ PINCODE_UNUSED = 7,
+ PINCODE_WRONG = 8,
+};
-/* Pincode Interface */
+/**
+ * pincode interface
+ **/
struct pincode_interface {
/* vars */
- int *enabled;
- int *changetime;
- int *maxtry;
- int *charselect;
- unsigned int *multiplier;
- unsigned int *baseSeed;
+ int enabled;
+ int changetime;
+ int maxtry;
+ int charselect;
+ unsigned int multiplier;
+ unsigned int baseSeed;
/* handler */
void (*handle) (int fd, struct char_session_data* sd);
void (*decrypt) (unsigned int userSeed, char* pin);
@@ -34,7 +38,7 @@ struct pincode_interface {
int (*compare) (int fd, struct char_session_data* sd, char* pin);
void (*check) (int fd, struct char_session_data* sd);
bool (*config_read) (char *w1, char *w2);
-} pincode_s;
+};
struct pincode_interface *pincode;
diff --git a/src/common/HPM.c b/src/common/HPM.c
index f39954175..51a595310 100644
--- a/src/common/HPM.c
+++ b/src/common/HPM.c
@@ -30,6 +30,14 @@
struct malloc_interface iMalloc_HPM;
struct malloc_interface *HPMiMalloc;
+struct HPM_interface HPM_s;
+
+/**
+ * (char*) data name -> (unsigned int) HPMDataCheck[] index
+ **/
+DBMap *datacheck_db;
+int datacheck_version;
+const struct s_HPMDataCheck *datacheck_data;
void hplugin_trigger_event(enum hp_event_types type) {
unsigned int i;
@@ -48,22 +56,22 @@ void hplugin_export_symbol(void *var, char *name) {
void *hplugin_import_symbol(char *name, unsigned int pID) {
unsigned int i;
-
+
for( i = 0; i < HPM->symbol_count; i++ ) {
if( strcmp(HPM->symbols[i]->name,name) == 0 )
return HPM->symbols[i]->ptr;
}
-
+
ShowError("HPM:get_symbol:%s: '"CL_WHITE"%s"CL_RESET"' not found!\n",HPM->pid2name(pID),name);
return NULL;
}
bool hplugin_iscompatible(char* version) {
unsigned int req_major = 0, req_minor = 0;
-
+
if( version == NULL )
return false;
-
+
sscanf(version, "%u.%u", &req_major, &req_minor);
return ( req_major == HPM->version[0] && req_minor <= HPM->version[1] ) ? true : false;
@@ -102,7 +110,7 @@ bool hplugin_populate(struct hplugin *plugin, const char *filename) {
HPM_POP(ShowFatalError),
};
int i, length = ARRAYLENGTH(ToLink);
-
+
for(i = 0; i < length; i++) {
if( !( Link = plugin_import(plugin->dll, ToLink[i].name,void **) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve '%s' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", ToLink[i].name, filename);
@@ -111,7 +119,7 @@ bool hplugin_populate(struct hplugin *plugin, const char *filename) {
}
*Link = ToLink[i].Ref;
}
-
+
return true;
}
#undef HPM_POP
@@ -122,56 +130,57 @@ struct hplugin *hplugin_load(const char* filename) {
bool anyEvent = false;
void **import_symbol_ref;
Sql **sql_handle;
+ int *HPMDataCheckVer;
unsigned int *HPMDataCheckLen;
struct s_HPMDataCheck *HPMDataCheck;
-
+
if( HPM->exists(filename) ) {
ShowWarning("HPM:plugin_load: attempting to load duplicate '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
return NULL;
}
-
+
plugin = HPM->create();
-
+
if( !( plugin->dll = plugin_open(filename) ) ){
ShowWarning("HPM:plugin_load: failed to load '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
if( !( info = plugin_import(plugin->dll, "pinfo",struct hplugin_info*) ) ) {
ShowDebug("HPM:plugin_load: failed to retrieve 'plugin_info' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
if( !(info->type & SERVER_TYPE) ) {
HPM->unload(plugin);
return NULL;
}
-
+
if( !HPM->iscompatible(info->req_version) ) {
ShowWarning("HPM:plugin_load: '"CL_WHITE"%s"CL_RESET"' incompatible version '%s' -> '%s', skipping...\n", filename, info->req_version, HPM_VERSION);
HPM->unload(plugin);
return NULL;
}
-
+
plugin->info = info;
plugin->filename = aStrdup(filename);
-
+
if( !( import_symbol_ref = plugin_import(plugin->dll, "import_symbol",void **) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve 'import_symbol' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
*import_symbol_ref = HPM->import_symbol;
-
+
if( !( sql_handle = plugin_import(plugin->dll, "mysql_handle",Sql **) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve 'mysql_handle' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
*sql_handle = HPM->import_symbol("sql_handle",plugin->idx);
if( !( HPMi = plugin_import(plugin->dll, "HPMi",struct HPMi_interface **) ) ) {
@@ -179,56 +188,63 @@ struct hplugin *hplugin_load(const char* filename) {
HPM->unload(plugin);
return NULL;
}
-
+
if( !( *HPMi = plugin_import(plugin->dll, "HPMi_s",struct HPMi_interface *) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve 'HPMi_s' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
plugin->hpi = *HPMi;
-
+
if( ( plugin->hpi->event[HPET_INIT] = plugin_import(plugin->dll, "plugin_init",void (*)(void)) ) )
anyEvent = true;
-
+
if( ( plugin->hpi->event[HPET_FINAL] = plugin_import(plugin->dll, "plugin_final",void (*)(void)) ) )
anyEvent = true;
-
+
if( ( plugin->hpi->event[HPET_READY] = plugin_import(plugin->dll, "server_online",void (*)(void)) ) )
anyEvent = true;
-
+
if( ( plugin->hpi->event[HPET_POST_FINAL] = plugin_import(plugin->dll, "server_post_final",void (*)(void)) ) )
anyEvent = true;
-
+
if( ( plugin->hpi->event[HPET_PRE_INIT] = plugin_import(plugin->dll, "server_preinit",void (*)(void)) ) )
anyEvent = true;
-
+
if( !anyEvent ) {
ShowWarning("HPM:plugin_load: no events found for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
if( !HPM->populate(plugin,filename) )
return NULL;
-
+
if( !( HPMDataCheckLen = plugin_import(plugin->dll, "HPMDataCheckLen", unsigned int *) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve 'HPMDataCheckLen' for '"CL_WHITE"%s"CL_RESET"', most likely not including HPMDataCheck.h, skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
+ if( !( HPMDataCheckVer = plugin_import(plugin->dll, "HPMDataCheckVer", int *) ) ) {
+ ShowWarning("HPM:plugin_load: failed to retrieve 'HPMDataCheckVer' for '"CL_WHITE"%s"CL_RESET"', most likely an outdated plugin, skipping...\n", filename);
+ HPM->unload(plugin);
+ return NULL;
+ }
+
if( !( HPMDataCheck = plugin_import(plugin->dll, "HPMDataCheck", struct s_HPMDataCheck *) ) ) {
ShowWarning("HPM:plugin_load: failed to retrieve 'HPMDataCheck' for '"CL_WHITE"%s"CL_RESET"', most likely not including HPMDataCheck.h, skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
- if( HPM->DataCheck && !HPM->DataCheck(HPMDataCheck,*HPMDataCheckLen,plugin->info->name) ) {
+
+ // TODO: Remove the HPM->DataCheck != NULL check once login and char support is complete
+ if (HPM->DataCheck != NULL && !HPM->DataCheck(HPMDataCheck,*HPMDataCheckLen,*HPMDataCheckVer,plugin->info->name)) {
ShowWarning("HPM:plugin_load: '"CL_WHITE"%s"CL_RESET"' failed DataCheck, out of sync from the core (recompile plugin), skipping...\n", filename);
HPM->unload(plugin);
return NULL;
}
-
+
/* id */
plugin->hpi->pid = plugin->idx;
/* core */
@@ -245,19 +261,19 @@ struct hplugin *hplugin_load(const char* filename) {
/* server specific */
if( HPM->load_sub )
HPM->load_sub(plugin);
-
+
return plugin;
}
void hplugin_unload(struct hplugin* plugin) {
unsigned int i = plugin->idx, cursor = 0;
-
+
if( plugin->filename )
aFree(plugin->filename);
if( plugin->dll )
plugin_close(plugin->dll);
/* TODO: for manual packet unload */
- /* - Go thru known packets and unlink any belonging to the plugin being removed */
+ /* - Go through known packets and unlink any belonging to the plugin being removed */
aFree(plugin);
if( !HPM->off ) {
HPM->plugins[i] = NULL;
@@ -281,59 +297,66 @@ void hplugins_config_read(const char * const *extra_plugins, int extra_plugins_c
const char *config_filename = "conf/plugins.conf"; // FIXME hardcoded name
FILE *fp;
int i;
-
-// uncomment once login/char support is wrapped up
-// if( !HPM->DataCheck ) {
-// ShowError("HPM:config_read: HPM->DataCheck not set! Failure\n");
-// return;
-// }
-
+
/* yes its ugly, its temporary and will be gone as soon as the new inter-server.conf is set */
if( (fp = fopen("conf/import/plugins.conf","r")) ) {
config_filename = "conf/import/plugins.conf";
fclose(fp);
}
-
+
if (libconfig->read_file(&plugins_conf, config_filename))
return;
if( HPM->symbol_defaults_sub )
HPM->symbol_defaults_sub();
-
+
plist = libconfig->lookup(&plugins_conf, "plugins_list");
for (i = 0; i < extra_plugins_count; i++) {
config_setting_t *entry = libconfig->setting_add(plist, NULL, CONFIG_TYPE_STRING);
config_setting_set_string(entry, extra_plugins[i]);
}
-
+
if (plist != NULL) {
int length = libconfig->setting_length(plist);
char filename[60];
- for(i = 0; i < length; i++) {
- if( !strcmpi(libconfig->setting_get_string_elem(plist,i),"HPMHooking") ) {//must load it first
+ char hooking_plugin_name[32];
+ const char *plugin_name_suffix = "";
+ if (SERVER_TYPE == SERVER_TYPE_LOGIN)
+ plugin_name_suffix = "_login";
+ else if (SERVER_TYPE == SERVER_TYPE_CHAR)
+ plugin_name_suffix = "_char";
+ else if (SERVER_TYPE == SERVER_TYPE_MAP)
+ plugin_name_suffix = "_map";
+ snprintf(hooking_plugin_name, sizeof(hooking_plugin_name), "HPMHooking%s", plugin_name_suffix);
+
+ for (i = 0; i < length; i++) {
+ const char *plugin_name = libconfig->setting_get_string_elem(plist,i);
+ if (strcmpi(plugin_name, "HPMHooking") == 0 || strcmpi(plugin_name, hooking_plugin_name) == 0) { //must load it first
struct hplugin *plugin;
- snprintf(filename, 60, "plugins/%s%s", libconfig->setting_get_string_elem(plist,i), DLL_EXT);
- if( ( plugin = HPM->load(filename) ) ) {
+ snprintf(filename, 60, "plugins/%s%s", hooking_plugin_name, DLL_EXT);
+ if ((plugin = HPM->load(filename))) {
bool (*func)(bool *fr);
bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
- if( ( func = plugin_import(plugin->dll, "Hooked",bool (*)(bool *)) ) && ( addhook_sub = plugin_import(plugin->dll, "HPM_Plugin_AddHook",bool (*)(enum HPluginHookType, const char *, void *, unsigned int)) ) ) {
- if( func(&HPM->force_return) ) {
+ if ((func = plugin_import(plugin->dll, "Hooked",bool (*)(bool *)))
+ && (addhook_sub = plugin_import(plugin->dll, "HPM_Plugin_AddHook",bool (*)(enum HPluginHookType, const char *, void *, unsigned int)))) {
+ if (func(&HPM->force_return)) {
HPM->hooking = true;
HPM->addhook_sub = addhook_sub;
}
}
}
+ break;
}
}
- for(i = 0; i < length; i++) {
- if( strcmpi(libconfig->setting_get_string_elem(plist,i),"HPMHooking") ) {//now all others
- snprintf(filename, 60, "plugins/%s%s", libconfig->setting_get_string_elem(plist,i), DLL_EXT);
- HPM->load(filename);
- }
+ for (i = 0; i < length; i++) {
+ if (strncmpi(libconfig->setting_get_string_elem(plist,i),"HPMHooking", 10) == 0) // Already loaded, skip
+ continue;
+ snprintf(filename, 60, "plugins/%s%s", libconfig->setting_get_string_elem(plist,i), DLL_EXT);
+ HPM->load(filename);
}
libconfig->destroy(&plugins_conf);
}
-
+
if( HPM->plugin_count )
ShowStatus("HPM: There are '"CL_WHITE"%d"CL_RESET"' plugins loaded, type '"CL_WHITE"plugins"CL_RESET"' to list them\n", HPM->plugin_count);
}
@@ -342,9 +365,9 @@ CPCMD(plugins) {
ShowInfo("HPC: there are no plugins loaded\n");
} else {
unsigned int i;
-
+
ShowInfo("HPC: There are '"CL_WHITE"%d"CL_RESET"' plugins loaded\n",HPM->plugin_count);
-
+
for(i = 0; i < HPM->plugin_count; i++) {
ShowInfo("HPC: - '"CL_WHITE"%s"CL_RESET"' (%s)\n",HPM->plugins[i]->info->name,HPM->plugins[i]->filename);
}
@@ -377,18 +400,18 @@ void hplugins_addToHPData(enum HPluginDataTypes type, unsigned int pluginID, voi
struct HPluginData *HPData, **HPDataSRC;
struct HPDataOperationStorage action;
unsigned int i, max;
-
+
HPM->grabHPData(&action,type,ptr);
if( action.hdatac == NULL ) { /* woo it failed! */
ShowError("HPM:addToHPData:%s: failed, type %d (%u|%u)\n",HPM->pid2name(pluginID),type,pluginID,index);
return;
}
-
+
/* flag */
HPDataSRC = *(action.HPDataSRCPtr);
max = *(action.hdatac);
-
+
/* duplicate check */
for(i = 0; i < max; i++) {
if( HPDataSRC[i]->pluginID == pluginID && HPDataSRC[i]->type == index ) {
@@ -396,20 +419,20 @@ void hplugins_addToHPData(enum HPluginDataTypes type, unsigned int pluginID, voi
return;
}
}
-
+
/* HPluginData is always same size, probably better to use the ERS (with reasonable chunk size e.g. 10/25/50) */
CREATE(HPData, struct HPluginData, 1);
-
+
/* input */
HPData->pluginID = pluginID;
HPData->type = index;
HPData->flag.free = autofree ? 1 : 0;
HPData->data = data;
-
+
/* resize */
*(action.hdatac) += 1;
RECREATE(*(action.HPDataSRCPtr),struct HPluginData *,*(action.hdatac));
-
+
/* RECREATE modified the address */
HPDataSRC = *(action.HPDataSRCPtr);
HPDataSRC[*(action.hdatac) - 1] = HPData;
@@ -419,23 +442,23 @@ void *hplugins_getFromHPData(enum HPluginDataTypes type, unsigned int pluginID,
struct HPDataOperationStorage action;
struct HPluginData **HPDataSRC;
unsigned int i, max;
-
+
HPM->grabHPData(&action,type,ptr);
-
+
if( action.hdatac == NULL ) { /* woo it failed! */
ShowError("HPM:getFromHPData:%s: failed, type %d (%u|%u)\n",HPM->pid2name(pluginID),type,pluginID,index);
return NULL;
}
-
+
/* flag */
HPDataSRC = *(action.HPDataSRCPtr);
max = *(action.hdatac);
-
+
for(i = 0; i < max; i++) {
if( HPDataSRC[i]->pluginID == pluginID && HPDataSRC[i]->type == index )
return HPDataSRC[i]->data;
}
-
+
return NULL;
}
@@ -443,30 +466,30 @@ void hplugins_removeFromHPData(enum HPluginDataTypes type, unsigned int pluginID
struct HPDataOperationStorage action;
struct HPluginData **HPDataSRC;
unsigned int i, max;
-
+
HPM->grabHPData(&action,type,ptr);
-
+
if( action.hdatac == NULL ) { /* woo it failed! */
ShowError("HPM:removeFromHPData:%s: failed, type %d (%u|%u)\n",HPM->pid2name(pluginID),type,pluginID,index);
return;
}
-
+
/* flag */
HPDataSRC = *(action.HPDataSRCPtr);
max = *(action.hdatac);
-
+
for(i = 0; i < max; i++) {
if( HPDataSRC[i]->pluginID == pluginID && HPDataSRC[i]->type == index )
break;
}
-
+
if( i != max ) {
unsigned int cursor;
-
+
aFree(HPDataSRC[i]->data);/* when its removed we delete it regardless of autofree */
aFree(HPDataSRC[i]);
HPDataSRC[i] = NULL;
-
+
for(i = 0, cursor = 0; i < max; i++) {
if( HPDataSRC[i] == NULL )
continue;
@@ -476,13 +499,12 @@ void hplugins_removeFromHPData(enum HPluginDataTypes type, unsigned int pluginID
}
*(action.hdatac) = cursor;
}
-
}
bool hplugins_addpacket(unsigned short cmd, short length,void (*receive) (int fd),unsigned int point,unsigned int pluginID) {
struct HPluginPacket *packet;
unsigned int i;
-
+
if( point >= hpPHP_MAX ) {
ShowError("HPM->addPacket:%s: unknown point '%u' specified for packet 0x%04x (len %d)\n",HPM->pid2name(pluginID),point,cmd,length);
return false;
@@ -494,15 +516,15 @@ bool hplugins_addpacket(unsigned short cmd, short length,void (*receive) (int fd
return false;
}
}
-
+
RECREATE(HPM->packets[point], struct HPluginPacket, ++HPM->packetsc[point]);
packet = &HPM->packets[point][HPM->packetsc[point] - 1];
-
+
packet->pluginID = pluginID;
packet->cmd = cmd;
packet->len = length;
packet->receive = receive;
-
+
return true;
}
/*
@@ -512,52 +534,52 @@ bool hplugins_addpacket(unsigned short cmd, short length,void (*receive) (int fd
*/
unsigned char hplugins_parse_packets(int fd, enum HPluginPacketHookingPoints point) {
unsigned int i;
-
+
for(i = 0; i < HPM->packetsc[point]; i++) {
if( HPM->packets[point][i].cmd == RFIFOW(fd,0) )
break;
}
-
+
if( i != HPM->packetsc[point] ) {
struct HPluginPacket *packet = &HPM->packets[point][i];
short length;
-
+
if( (length = packet->len) == -1 ) {
if( (length = RFIFOW(fd, 2)) > (int)RFIFOREST(fd) )
- return 2;
+ return 2;
}
-
+
packet->receive(fd);
RFIFOSKIP(fd, length);
return 1;
}
-
+
return 0;
}
char *hplugins_id2name (unsigned int pid) {
unsigned int i;
-
+
for( i = 0; i < HPM->plugin_count; i++ ) {
if( HPM->plugins[i]->idx == pid )
return HPM->plugins[i]->info->name;
}
-
+
return "UnknownPlugin";
}
char* HPM_file2ptr(const char *file) {
unsigned int i;
-
+
for(i = 0; i < HPM->fnamec; i++) {
if( HPM->fnames[i].addr == file )
return HPM->fnames[i].name;
}
-
+
i = HPM->fnamec;
-
+
/* we handle this memory outside of the server's memory manager because we need it to exist after the memory manager goes down */
HPM->fnames = realloc(HPM->fnames,(++HPM->fnamec)*sizeof(struct HPMFileNameCache));
-
+
HPM->fnames[i].addr = file;
HPM->fnames[i].name = strdup(file);
@@ -588,9 +610,9 @@ bool HPM_AddHook(enum HPluginHookType type, const char *target, void *hook, unsi
/* if not check if a sub-hooking list is available (from the server) and run it by */
if( HPM->addhook_sub && HPM->addhook_sub(type,target,hook,pID) )
return true;
-
+
ShowError("HPM:AddHook: unknown Hooking Point '%s'!\n",target);
-
+
return false;
}
void HPM_HookStop (const char *func, unsigned int pID) {
@@ -609,85 +631,135 @@ bool hpm_parse_arg(const char *arg, int *index, char *argv[], bool param) {
if( data->has_param && param ) *index += 1;
return true;
}
-
+
return false;
}
void hpm_arg_help(void) {
DBIterator *iter = db_iterator(HPM->arg_db);
struct HPMArgData *data = NULL;
-
+
for( data = dbi_first(iter); dbi_exists(iter); data = dbi_next(iter) ) {
if( data->help != NULL )
data->help();
else
ShowInfo(" %s (%s)\t\t<no description provided>\n",data->name,HPM->pid2name(data->pluginID));
}
-
+
dbi_destroy(iter);
}
bool hpm_add_arg(unsigned int pluginID, char *name, bool has_param, void (*func) (char *param),void (*help) (void)) {
struct HPMArgData *data = NULL;
-
+
if( strdb_exists(HPM->arg_db, name) ) {
ShowError("HPM:add_arg:%s duplicate! (from %s)\n",name,HPM->pid2name(pluginID));
return false;
}
-
+
CREATE(data, struct HPMArgData, 1);
-
+
data->pluginID = pluginID;
data->name = aStrdup(name);
data->func = func;
data->help = help;
data->has_param = has_param;
-
+
strdb_put(HPM->arg_db, data->name, data);
-
+
return true;
}
bool hplugins_addconf(unsigned int pluginID, enum HPluginConfType type, char *name, void (*func) (const char *val)) {
struct HPConfListenStorage *conf;
unsigned int i;
-
+
if( type >= HPCT_MAX ) {
ShowError("HPM->addConf:%s: unknown point '%u' specified for config '%s'\n",HPM->pid2name(pluginID),type,name);
return false;
}
-
+
for(i = 0; i < HPM->confsc[type]; i++) {
if( !strcmpi(name,HPM->confs[type][i].key) ) {
ShowError("HPM->addConf:%s: duplicate '%s', already in use by '%s'!",HPM->pid2name(pluginID),name,HPM->pid2name(HPM->confs[type][i].pluginID));
return false;
}
}
-
+
RECREATE(HPM->confs[type], struct HPConfListenStorage, ++HPM->confsc[type]);
conf = &HPM->confs[type][HPM->confsc[type] - 1];
-
+
conf->pluginID = pluginID;
safestrncpy(conf->key, name, HPM_ADDCONF_LENGTH);
conf->func = func;
-
+
return true;
}
bool hplugins_parse_conf(const char *w1, const char *w2, enum HPluginConfType point) {
unsigned int i;
-
+
/* exists? */
for(i = 0; i < HPM->confsc[point]; i++) {
if( !strcmpi(w1,HPM->confs[point][i].key) )
break;
}
-
+
/* trigger and we're set! */
if( i != HPM->confsc[point] ) {
HPM->confs[point][i].func(w2);
return true;
}
-
+
return false;
}
+/**
+ * Called by HPM->DataCheck on a plugins incoming data, ensures data structs in use are matching!
+ **/
+bool HPM_DataCheck(struct s_HPMDataCheck *src, unsigned int size, int version, char *name) {
+ unsigned int i, j;
+
+ if (version != datacheck_version) {
+ ShowError("HPMDataCheck:%s: DataCheck API version mismatch %d != %d\n", name, datacheck_version, version);
+ return false;
+ }
+
+ for (i = 0; i < size; i++) {
+ if (!(src[i].type|SERVER_TYPE))
+ continue;
+
+ if (!strdb_exists(datacheck_db, src[i].name)) {
+ ShowError("HPMDataCheck:%s: '%s' was not found\n",name,src[i].name);
+ return false;
+ } else {
+ j = strdb_uiget(datacheck_db, src[i].name);/* not double lookup; exists sets cache to found data */
+ if (src[i].size != datacheck_data[j].size) {
+ ShowWarning("HPMDataCheck:%s: '%s' size mismatch %u != %u\n",name,src[i].name,src[i].size,datacheck_data[j].size);
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
+void HPM_datacheck_init(const struct s_HPMDataCheck *src, unsigned int length, int version) {
+ unsigned int i;
+
+ datacheck_version = version;
+ datacheck_data = src;
+
+ /**
+ * Populates datacheck_db for easy lookup later on
+ **/
+ datacheck_db = strdb_alloc(DB_OPT_BASE,0);
+
+ for(i = 0; i < length; i++) {
+ strdb_uiput(datacheck_db, src[i].name, i);
+ }
+}
+
+void HPM_datacheck_final(void) {
+ db_destroy(datacheck_db);
+}
+
void hplugins_share_defaults(void) {
/* console */
#ifdef CONSOLE_INPUT
@@ -729,12 +801,15 @@ void hplugins_share_defaults(void) {
void hpm_init(void) {
unsigned int i;
-
+ datacheck_db = NULL;
+ datacheck_data = NULL;
+ datacheck_version = 0;
+
HPM->symbols = NULL;
HPM->plugins = NULL;
HPM->plugin_count = HPM->symbol_count = 0;
HPM->off = false;
-
+
memcpy(&iMalloc_HPM, iMalloc, sizeof(struct malloc_interface));
HPMiMalloc = &iMalloc_HPM;
HPMiMalloc->malloc = HPM_mmalloc;
@@ -744,21 +819,21 @@ void hpm_init(void) {
HPMiMalloc->astrdup = HPM_astrdup;
sscanf(HPM_VERSION, "%u.%u", &HPM->version[0], &HPM->version[1]);
-
+
if( HPM->version[0] == 0 && HPM->version[1] == 0 ) {
ShowError("HPM:init:failed to retrieve HPM version!!\n");
return;
}
-
+
for(i = 0; i < hpPHP_MAX; i++) {
HPM->packets[i] = NULL;
HPM->packetsc[i] = 0;
}
-
+
HPM->arg_db = strdb_alloc(DB_OPT_RELEASE_DATA, 0);
-
+
HPM->symbol_defaults();
-
+
#ifdef CONSOLE_INPUT
console->input->addCommand("plugins",CPCMD_A(plugins));
#endif
@@ -766,64 +841,63 @@ void hpm_init(void) {
}
void hpm_memdown(void) {
unsigned int i;
-
+
/* this memory is handled outside of the server's memory manager and thus cleared after memory manager goes down */
-
+
for( i = 0; i < HPM->fnamec; i++ ) {
free(HPM->fnames[i].name);
}
-
+
if( HPM->fnames )
free(HPM->fnames);
-
}
int hpm_arg_db_clear_sub(DBKey key, DBData *data, va_list args) {
struct HPMArgData *a = DB->data2ptr(data);
-
+
aFree(a->name);
-
+
return 0;
}
void hpm_final(void) {
unsigned int i;
-
+
HPM->off = true;
-
+
for( i = 0; i < HPM->plugin_count; i++ ) {
HPM->unload(HPM->plugins[i]);
}
-
+
if( HPM->plugins )
aFree(HPM->plugins);
-
+
for( i = 0; i < HPM->symbol_count; i++ ) {
aFree(HPM->symbols[i]);
}
-
+
if( HPM->symbols )
aFree(HPM->symbols);
-
+
for( i = 0; i < hpPHP_MAX; i++ ) {
if( HPM->packets[i] )
aFree(HPM->packets[i]);
}
-
+
for( i = 0; i < HPCT_MAX; i++ ) {
if( HPM->confsc[i] )
aFree(HPM->confs[i]);
}
-
+
HPM->arg_db->destroy(HPM->arg_db,HPM->arg_db_clear_sub);
-
+
/* HPM->fnames is cleared after the memory manager goes down */
iMalloc->post_shutdown = hpm_memdown;
-
+
return;
}
void hpm_defaults(void) {
unsigned int i;
HPM = &HPM_s;
-
+
HPM->fnames = NULL;
HPM->fnamec = 0;
HPM->force_return = false;
@@ -843,7 +917,7 @@ void hpm_defaults(void) {
/* */
HPM->init = hpm_init;
HPM->final = hpm_final;
-
+
HPM->create = hplugin_create;
HPM->load = hplugin_load;
HPM->unload = hplugin_unload;
@@ -866,5 +940,7 @@ void hpm_defaults(void) {
HPM->grabHPData = hplugins_grabHPData;
HPM->grabHPDataSub = NULL;
HPM->parseConf = hplugins_parse_conf;
- HPM->DataCheck = NULL;
+ HPM->DataCheck = HPM_DataCheck;
+ HPM->datacheck_init = HPM_datacheck_init;
+ HPM->datacheck_final = HPM_datacheck_final;
}
diff --git a/src/common/HPM.h b/src/common/HPM.h
index fe8d45066..4e1aa5beb 100644
--- a/src/common/HPM.h
+++ b/src/common/HPM.h
@@ -151,8 +151,10 @@ struct HPM_interface {
/* for custom config parsing */
bool (*parseConf) (const char *w1, const char *w2, enum HPluginConfType point);
/* validates plugin data */
- bool (*DataCheck) (struct s_HPMDataCheck *src, unsigned int size, char *name);
-} HPM_s;
+ bool (*DataCheck) (struct s_HPMDataCheck *src, unsigned int size, int version, char *name);
+ void (*datacheck_init) (const struct s_HPMDataCheck *src, unsigned int length, int version);
+ void (*datacheck_final) (void);
+};
struct HPM_interface *HPM;
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 79ec36472..e97a655e3 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -8,135 +8,222 @@
HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
+ #ifdef CHAR_CHAR_H
+ { "char_interface", sizeof(struct char_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_CHAR_H
+ #endif // CHAR_CHAR_H
+ #ifdef CHAR_GEOIP_H
+ { "geoip_interface", sizeof(struct geoip_interface), SERVER_TYPE_CHAR },
+ { "s_geoip", sizeof(struct s_geoip), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_GEOIP_H
+ #endif // CHAR_GEOIP_H
+ #ifdef CHAR_INTER_H
+ { "inter_interface", sizeof(struct inter_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INTER_H
+ #endif // CHAR_INTER_H
+ #ifdef CHAR_INT_AUCTION_H
+ { "inter_auction_interface", sizeof(struct inter_auction_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_AUCTION_H
+ #endif // CHAR_INT_AUCTION_H
+ #ifdef CHAR_INT_ELEMENTAL_H
+ { "inter_elemental_interface", sizeof(struct inter_elemental_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_ELEMENTAL_H
+ #endif // CHAR_INT_ELEMENTAL_H
+ #ifdef CHAR_INT_GUILD_H
+ { "inter_guild_interface", sizeof(struct inter_guild_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_GUILD_H
+ #endif // CHAR_INT_GUILD_H
+ #ifdef CHAR_INT_HOMUN_H
+ { "inter_homunculus_interface", sizeof(struct inter_homunculus_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_HOMUN_H
+ #endif // CHAR_INT_HOMUN_H
+ #ifdef CHAR_INT_MAIL_H
+ { "inter_mail_interface", sizeof(struct inter_mail_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_MAIL_H
+ #endif // CHAR_INT_MAIL_H
+ #ifdef CHAR_INT_MERCENARY_H
+ { "inter_mercenary_interface", sizeof(struct inter_mercenary_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_MERCENARY_H
+ #endif // CHAR_INT_MERCENARY_H
+ #ifdef CHAR_INT_PARTY_H
+ { "inter_party_interface", sizeof(struct inter_party_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_PARTY_H
+ #endif // CHAR_INT_PARTY_H
+ #ifdef CHAR_INT_PET_H
+ { "inter_pet_interface", sizeof(struct inter_pet_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_PET_H
+ #endif // CHAR_INT_PET_H
+ #ifdef CHAR_INT_QUEST_H
+ { "inter_quest_interface", sizeof(struct inter_quest_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_QUEST_H
+ #endif // CHAR_INT_QUEST_H
+ #ifdef CHAR_INT_STORAGE_H
+ { "inter_storage_interface", sizeof(struct inter_storage_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_INT_STORAGE_H
+ #endif // CHAR_INT_STORAGE_H
+ #ifdef CHAR_LOGINIF_H
+ { "loginif_interface", sizeof(struct loginif_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_LOGINIF_H
+ #endif // CHAR_LOGINIF_H
+ #ifdef CHAR_MAPIF_H
+ { "mapif_interface", sizeof(struct mapif_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_MAPIF_H
+ #endif // CHAR_MAPIF_H
+ #ifdef CHAR_PINCODE_H
+ { "pincode_interface", sizeof(struct pincode_interface), SERVER_TYPE_CHAR },
+ #else
+ #define CHAR_PINCODE_H
+ #endif // CHAR_PINCODE_H
#ifdef COMMON_CONF_H
- { "libconfig_interface", sizeof(struct libconfig_interface) },
+ { "libconfig_interface", sizeof(struct libconfig_interface), SERVER_TYPE_ALL },
#else
#define COMMON_CONF_H
#endif // COMMON_CONF_H
#ifdef COMMON_DB_H
- { "DBData", sizeof(struct DBData) },
- { "DBIterator", sizeof(struct DBIterator) },
- { "DBMap", sizeof(struct DBMap) },
+ { "DBData", sizeof(struct DBData), SERVER_TYPE_ALL },
+ { "DBIterator", sizeof(struct DBIterator), SERVER_TYPE_ALL },
+ { "DBMap", sizeof(struct DBMap), SERVER_TYPE_ALL },
#else
#define COMMON_DB_H
#endif // COMMON_DB_H
#ifdef COMMON_DES_H
- { "BIT64", sizeof(struct BIT64) },
+ { "BIT64", sizeof(struct BIT64), SERVER_TYPE_ALL },
#else
#define COMMON_DES_H
#endif // COMMON_DES_H
#ifdef COMMON_ERS_H
- { "eri", sizeof(struct eri) },
+ { "eri", sizeof(struct eri), SERVER_TYPE_ALL },
#else
#define COMMON_ERS_H
#endif // COMMON_ERS_H
#ifdef COMMON_MAPINDEX_H
- { "mapindex_interface", sizeof(struct mapindex_interface) },
+ { "mapindex_interface", sizeof(struct mapindex_interface), SERVER_TYPE_ALL },
#else
#define COMMON_MAPINDEX_H
#endif // COMMON_MAPINDEX_H
#ifdef COMMON_MMO_H
- { "quest", sizeof(struct quest) },
+ { "quest", sizeof(struct quest), SERVER_TYPE_ALL },
#else
#define COMMON_MMO_H
#endif // COMMON_MMO_H
#ifdef COMMON_SOCKET_H
- { "socket_interface", sizeof(struct socket_interface) },
+ { "socket_interface", sizeof(struct socket_interface), SERVER_TYPE_ALL },
#else
#define COMMON_SOCKET_H
#endif // COMMON_SOCKET_H
#ifdef COMMON_STRLIB_H
- { "StringBuf", sizeof(struct StringBuf) },
- { "s_svstate", sizeof(struct s_svstate) },
+ { "StringBuf", sizeof(struct StringBuf), SERVER_TYPE_ALL },
+ { "s_svstate", sizeof(struct s_svstate), SERVER_TYPE_ALL },
#else
#define COMMON_STRLIB_H
#endif // COMMON_STRLIB_H
#ifdef COMMON_SYSINFO_H
- { "sysinfo_interface", sizeof(struct sysinfo_interface) },
+ { "sysinfo_interface", sizeof(struct sysinfo_interface), SERVER_TYPE_ALL },
#else
#define COMMON_SYSINFO_H
#endif // COMMON_SYSINFO_H
+ #ifdef LOGIN_LOGIN_H
+ { "login_interface", sizeof(struct login_interface), SERVER_TYPE_LOGIN },
+ #else
+ #define LOGIN_LOGIN_H
+ #endif // LOGIN_LOGIN_H
#ifdef MAP_ATCOMMAND_H
- { "AliasInfo", sizeof(struct AliasInfo) },
- { "atcommand_interface", sizeof(struct atcommand_interface) },
+ { "AliasInfo", sizeof(struct AliasInfo), SERVER_TYPE_MAP },
+ { "atcommand_interface", sizeof(struct atcommand_interface), SERVER_TYPE_MAP },
#else
#define MAP_ATCOMMAND_H
#endif // MAP_ATCOMMAND_H
#ifdef MAP_BATTLE_H
- { "Damage", sizeof(struct Damage) },
- { "battle_interface", sizeof(struct battle_interface) },
+ { "Damage", sizeof(struct Damage), SERVER_TYPE_MAP },
+ { "battle_interface", sizeof(struct battle_interface), SERVER_TYPE_MAP },
#else
#define MAP_BATTLE_H
#endif // MAP_BATTLE_H
#ifdef MAP_BUYINGSTORE_H
- { "buyingstore_interface", sizeof(struct buyingstore_interface) },
- { "s_buyingstore_item", sizeof(struct s_buyingstore_item) },
+ { "buyingstore_interface", sizeof(struct buyingstore_interface), SERVER_TYPE_MAP },
+ { "s_buyingstore_item", sizeof(struct s_buyingstore_item), SERVER_TYPE_MAP },
#else
#define MAP_BUYINGSTORE_H
#endif // MAP_BUYINGSTORE_H
#ifdef MAP_CHRIF_H
- { "auth_node", sizeof(struct auth_node) },
+ { "auth_node", sizeof(struct auth_node), SERVER_TYPE_MAP },
#else
#define MAP_CHRIF_H
#endif // MAP_CHRIF_H
#ifdef MAP_CLIF_H
- { "clif_interface", sizeof(struct clif_interface) },
+ { "clif_interface", sizeof(struct clif_interface), SERVER_TYPE_MAP },
#else
#define MAP_CLIF_H
#endif // MAP_CLIF_H
#ifdef MAP_ELEMENTAL_H
- { "elemental_skill", sizeof(struct elemental_skill) },
+ { "elemental_skill", sizeof(struct elemental_skill), SERVER_TYPE_MAP },
#else
#define MAP_ELEMENTAL_H
#endif // MAP_ELEMENTAL_H
#ifdef MAP_GUILD_H
- { "eventlist", sizeof(struct eventlist) },
- { "guardian_data", sizeof(struct guardian_data) },
+ { "eventlist", sizeof(struct eventlist), SERVER_TYPE_MAP },
+ { "guardian_data", sizeof(struct guardian_data), SERVER_TYPE_MAP },
#else
#define MAP_GUILD_H
#endif // MAP_GUILD_H
#ifdef MAP_MAPREG_H
- { "mapreg_save", sizeof(struct mapreg_save) },
+ { "mapreg_save", sizeof(struct mapreg_save), SERVER_TYPE_MAP },
#else
#define MAP_MAPREG_H
#endif // MAP_MAPREG_H
#ifdef MAP_MAP_H
- { "map_data_other_server", sizeof(struct map_data_other_server) },
+ { "map_data_other_server", sizeof(struct map_data_other_server), SERVER_TYPE_MAP },
#else
#define MAP_MAP_H
#endif // MAP_MAP_H
#ifdef MAP_PACKETS_STRUCT_H
- { "EQUIPSLOTINFO", sizeof(struct EQUIPSLOTINFO) },
+ { "EQUIPSLOTINFO", sizeof(struct EQUIPSLOTINFO), SERVER_TYPE_MAP },
#else
#define MAP_PACKETS_STRUCT_H
#endif // MAP_PACKETS_STRUCT_H
#ifdef MAP_PC_H
- { "autotrade_vending", sizeof(struct autotrade_vending) },
- { "item_cd", sizeof(struct item_cd) },
+ { "autotrade_vending", sizeof(struct autotrade_vending), SERVER_TYPE_MAP },
+ { "item_cd", sizeof(struct item_cd), SERVER_TYPE_MAP },
#else
#define MAP_PC_H
#endif // MAP_PC_H
#ifdef MAP_SCRIPT_H
- { "Script_Config", sizeof(struct Script_Config) },
- { "reg_db", sizeof(struct reg_db) },
- { "script_interface", sizeof(struct script_interface) },
+ { "Script_Config", sizeof(struct Script_Config), SERVER_TYPE_MAP },
+ { "reg_db", sizeof(struct reg_db), SERVER_TYPE_MAP },
+ { "script_interface", sizeof(struct script_interface), SERVER_TYPE_MAP },
#else
#define MAP_SCRIPT_H
#endif // MAP_SCRIPT_H
#ifdef MAP_SEARCHSTORE_H
- { "searchstore_interface", sizeof(struct searchstore_interface) },
+ { "searchstore_interface", sizeof(struct searchstore_interface), SERVER_TYPE_MAP },
#else
#define MAP_SEARCHSTORE_H
#endif // MAP_SEARCHSTORE_H
#ifdef MAP_SKILL_H
- { "skill_cd", sizeof(struct skill_cd) },
- { "skill_condition", sizeof(struct skill_condition) },
- { "skill_interface", sizeof(struct skill_interface) },
- { "skill_unit_save", sizeof(struct skill_unit_save) },
+ { "skill_cd", sizeof(struct skill_cd), SERVER_TYPE_MAP },
+ { "skill_condition", sizeof(struct skill_condition), SERVER_TYPE_MAP },
+ { "skill_interface", sizeof(struct skill_interface), SERVER_TYPE_MAP },
+ { "skill_unit_save", sizeof(struct skill_unit_save), SERVER_TYPE_MAP },
#else
#define MAP_SKILL_H
#endif // MAP_SKILL_H
};
HPExport unsigned int HPMDataCheckLen = ARRAYLENGTH(HPMDataCheck);
+HPExport int HPMDataCheckVer = 1;
#endif /* HPM_DATA_CHECK_H */
diff --git a/src/common/HPMi.h b/src/common/HPMi.h
index 478cfbdd9..47f4e6b8b 100644
--- a/src/common/HPMi.h
+++ b/src/common/HPMi.h
@@ -36,6 +36,7 @@ struct hplugin_info {
struct s_HPMDataCheck {
char *name;
unsigned int size;
+ int type;
};
HPExport void *(*import_symbol) (char *name, unsigned int pID);
@@ -79,11 +80,20 @@ enum HPluginDataTypes {
HPDT_INSTANCE,
HPDT_GUILD,
HPDT_PARTY,
+ HPDT_MOBDB,
+ HPDT_MOBDATA,
+ HPDT_ITEMDATA,
};
/* used in macros and conf storage */
enum HPluginConfType {
- HPCT_BATTLE, /* battle-conf (map-server */
+ HPCT_BATTLE, /* battle-conf (map-server */
+ HPCT_LOGIN, /* login-server.conf (login-server) */
+ HPCT_CHAR, /* char-server.conf (char-server) */
+ HPCT_CHAR_INTER, /* inter-server.conf (char-server) */
+ HPCT_MAP_INTER, /* inter-server.conf (map-server) */
+ HPCT_LOG, /* logs.conf (map-server) */
+ HPCT_SCRIPT, /* script.conf (map-server) */
HPCT_MAX,
};
@@ -124,6 +134,18 @@ enum HPluginConfType {
#define addToINSTD(ptr,data,index,autofree) (HPMi->addToHPData(HPDT_INSTANCE,HPMi->pid,(ptr),(data),(index),(autofree)))
#define getFromINSTD(ptr,index) (HPMi->getFromHPData(HPDT_INSTANCE,HPMi->pid,(ptr),(index)))
#define removeFromINSTD(ptr,index) (HPMi->removeFromHPData(HPDT_INSTANCE,HPMi->pid,(ptr),(index)))
+/* mob_db */
+#define addToMOBDB(ptr,data,index,autofree) (HPMi->addToHPData(HPDT_MOBDB,HPMi->pid,(ptr),(data),(index),(autofree)))
+#define getFromMOBDB(ptr,index) (HPMi->getFromHPData(HPDT_MOBDB,HPMi->pid,(ptr),(index)))
+#define removeFromMOBDB(ptr,index) (HPMi->removeFromHPData(HPDT_MOBDB,HPMi->pid,(ptr),(index)))
+/* mob_data */
+#define addToMOBDATA(ptr,data,index,autofree) (HPMi->addToHPData(HPDT_MOBDATA,HPMi->pid,(ptr),(data),(index),(autofree)))
+#define getFromMOBDATA(ptr,index) (HPMi->getFromHPData(HPDT_MOBDATA,HPMi->pid,(ptr),(index)))
+#define removeFromMOBDATA(ptr,index) (HPMi->removeFromHPData(HPDT_MOBDATA,HPMi->pid,(ptr),(index)))
+/* item_data */
+#define addToITEMDATA(ptr,data,index,autofree) (HPMi->addToHPData(HPDT_ITEMDATA,HPMi->pid,(ptr),(data),(index),(autofree)))
+#define getFromITEMDATA(ptr,index) (HPMi->getFromHPData(HPDT_ITEMDATA,HPMi->pid,(ptr),(index)))
+#define removeFromITEMDATA(ptr,index) (HPMi->removeFromHPData(HPDT_ITEMDATA,HPMi->pid,(ptr),(index)))
/* HPMi->addCommand */
#define addAtcommand(cname,funcname) \
@@ -135,10 +157,16 @@ enum HPluginConfType {
/* HPMi->addScript */
#define addScriptCommand(cname,scinfo,funcname) \
if ( HPMi->addScript != NULL ) { \
- HPMi->addScript(cname,scinfo,buildin_ ## funcname); \
+ HPMi->addScript(cname,scinfo,buildin_ ## funcname, false); \
} else { \
ShowWarning("HPM (%s):addScriptCommand(\"%s\",\"%s\",%s) failed, addScript sub is NULL!\n",pinfo.name,cname,scinfo,# funcname);\
}
+#define addScriptCommandDeprecated(cname,scinfo,funcname) \
+ if ( HPMi->addScript != NULL ) { \
+ HPMi->addScript(cname,scinfo,buildin_ ## funcname, true); \
+ } else { \
+ ShowWarning("HPM (%s):addScriptCommandDeprecated(\"%s\",\"%s\",%s) failed, addScript sub is NULL!\n",pinfo.name,cname,scinfo,# funcname);\
+ }
/* HPMi->addCPCommand */
#define addCPCommand(cname,funcname) \
if ( HPMi->addCPCommand != NULL ) { \
@@ -150,6 +178,18 @@ enum HPluginConfType {
#define addPacket(cmd,len,receive,point) HPMi->addPacket(cmd,len,receive,point,HPMi->pid)
/* HPMi->addBattleConf */
#define addBattleConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_BATTLE,bcname,funcname)
+/* HPMi->addLogin */
+#define addLoginConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_LOGIN,bcname,funcname)
+/* HPMi->addChar */
+#define addCharConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_CHAR,bcname,funcname)
+/* HPMi->addCharInter */
+#define addCharInterConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_CHAR_INTER,bcname,funcname)
+/* HPMi->addMapInter */
+#define addMapInterConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_MAP_INTER,bcname,funcname)
+/* HPMi->addLog */
+#define addLogConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_LOG,bcname,funcname)
+/* HPMi->addScript */
+#define addScriptConf(bcname,funcname) HPMi->addConf(HPMi->pid,HPCT_SCRIPT,bcname,funcname)
/* HPMi->addPCGPermission */
#define addGroupPermission(pcgname,maskptr) HPMi->addPCGPermission(HPMi->pid,pcgname,&maskptr)
@@ -161,7 +201,7 @@ HPExport struct HPMi_interface {
/* */
void (*event[HPET_MAX]) (void);
bool (*addCommand) (char *name, bool (*func)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info));
- bool (*addScript) (char *name, char *args, bool (*func)(struct script_state *st));
+ bool (*addScript) (char *name, char *args, bool (*func)(struct script_state *st), bool isDeprecated);
void (*addCPCommand) (char *name, CParseFunc func);
/* HPM Custom Data */
void (*addToHPData) (enum HPluginDataTypes type, unsigned int pluginID, void *ptr, void *data, unsigned int index, bool autofree);
@@ -179,8 +219,9 @@ HPExport struct HPMi_interface {
bool (*addConf) (unsigned int pluginID, enum HPluginConfType type, char *name, void (*func) (const char *val));
/* pc group permission */
void (*addPCGPermission) (unsigned int pluginID, char *name, unsigned int *mask);
-} HPMi_s;
+};
#ifndef HERCULES_CORE
+HPExport struct HPMi_interface HPMi_s;
HPExport struct HPMi_interface *HPMi;
#endif
diff --git a/src/common/atomic.h b/src/common/atomic.h
index e73b1c464..a42dfad1c 100644
--- a/src/common/atomic.h
+++ b/src/common/atomic.h
@@ -8,9 +8,9 @@
// (Interlocked CompareExchange, Add .. and so on ..)
//
// Implementation varies / depends on:
-// - Architecture
-// - Compiler
-// - Operating System
+// - Architecture
+// - Compiler
+// - Operating System
//
// our Abstraction is fully API-Compatible to Microsoft's implementation @ NT5.0+
//
@@ -29,13 +29,13 @@ forceinline int64 InterlockedCompareExchange64(volatile int64 *dest, int64 exch,
_asm{
lea esi,_cmp;
lea edi,exch;
-
+
mov eax,[esi];
mov edx,4[esi];
mov ebx,[edi];
mov ecx,4[edi];
mov esi,dest;
-
+
lock CMPXCHG8B [esi];
}
}
@@ -109,7 +109,7 @@ static forceinline int64 InterlockedIncrement64(volatile int64 *addend){
static forceinline int32 InterlockedIncrement(volatile int32 *addend){
- return __sync_add_and_fetch(addend, 1);
+ return __sync_add_and_fetch(addend, 1);
}//end: InterlockedIncrement()
@@ -139,7 +139,7 @@ static forceinline int64 InterlockedExchange64(volatile int64 *target, int64 val
static forceinline int32 InterlockedExchange(volatile int32 *target, int32 val){
- return __sync_lock_test_and_set(target, val);
+ return __sync_lock_test_and_set(target, val);
}//end: InterlockedExchange()
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h
index 18bc0b8cb..df1d364d4 100644
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -117,56 +117,56 @@
// Integers with guaranteed _exact_ size.
//////////////////////////////////////////////////////////////////////////
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
+typedef int8_t int8;
+typedef int16_t int16;
+typedef int32_t int32;
+typedef int64_t int64;
-typedef int8_t sint8;
-typedef int16_t sint16;
-typedef int32_t sint32;
-typedef int64_t sint64;
+typedef int8_t sint8;
+typedef int16_t sint16;
+typedef int32_t sint32;
+typedef int64_t sint64;
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
+typedef uint8_t uint8;
+typedef uint16_t uint16;
+typedef uint32_t uint32;
+typedef uint64_t uint64;
#undef UINT8_MIN
#undef UINT16_MIN
#undef UINT32_MIN
#undef UINT64_MIN
-#define UINT8_MIN ((uint8) UINT8_C(0x00))
-#define UINT16_MIN ((uint16)UINT16_C(0x0000))
-#define UINT32_MIN ((uint32)UINT32_C(0x00000000))
-#define UINT64_MIN ((uint64)UINT64_C(0x0000000000000000))
+#define UINT8_MIN ((uint8) UINT8_C(0x00))
+#define UINT16_MIN ((uint16)UINT16_C(0x0000))
+#define UINT32_MIN ((uint32)UINT32_C(0x00000000))
+#define UINT64_MIN ((uint64)UINT64_C(0x0000000000000000))
#undef UINT8_MAX
#undef UINT16_MAX
#undef UINT32_MAX
#undef UINT64_MAX
-#define UINT8_MAX ((uint8) UINT8_C(0xFF))
-#define UINT16_MAX ((uint16)UINT16_C(0xFFFF))
-#define UINT32_MAX ((uint32)UINT32_C(0xFFFFFFFF))
-#define UINT64_MAX ((uint64)UINT64_C(0xFFFFFFFFFFFFFFFF))
+#define UINT8_MAX ((uint8) UINT8_C(0xFF))
+#define UINT16_MAX ((uint16)UINT16_C(0xFFFF))
+#define UINT32_MAX ((uint32)UINT32_C(0xFFFFFFFF))
+#define UINT64_MAX ((uint64)UINT64_C(0xFFFFFFFFFFFFFFFF))
#undef SINT8_MIN
#undef SINT16_MIN
#undef SINT32_MIN
#undef SINT64_MIN
-#define SINT8_MIN ((sint8) INT8_C(0x80))
-#define SINT16_MIN ((sint16)INT16_C(0x8000))
-#define SINT32_MIN ((sint32)INT32_C(0x80000000))
-#define SINT64_MIN ((sint32)INT64_C(0x8000000000000000))
+#define SINT8_MIN ((sint8) INT8_C(0x80))
+#define SINT16_MIN ((sint16)INT16_C(0x8000))
+#define SINT32_MIN ((sint32)INT32_C(0x80000000))
+#define SINT64_MIN ((sint32)INT64_C(0x8000000000000000))
#undef SINT8_MAX
#undef SINT16_MAX
#undef SINT32_MAX
#undef SINT64_MAX
-#define SINT8_MAX ((sint8) INT8_C(0x7F))
-#define SINT16_MAX ((sint16)INT16_C(0x7FFF))
-#define SINT32_MAX ((sint32)INT32_C(0x7FFFFFFF))
-#define SINT64_MAX ((sint64)INT64_C(0x7FFFFFFFFFFFFFFF))
+#define SINT8_MAX ((sint8) INT8_C(0x7F))
+#define SINT16_MAX ((sint16)INT16_C(0x7FFF))
+#define SINT32_MAX ((sint32)INT32_C(0x7FFFFFFF))
+#define SINT64_MAX ((sint64)INT64_C(0x7FFFFFFFFFFFFFFF))
//////////////////////////////////////////////////////////////////////////
// Integers with guaranteed _minimum_ size.
@@ -191,10 +191,10 @@ typedef unsigned long int ppuint32;
#if defined(WIN32) && !defined(MINGW) // does not have a signed size_t
//////////////////////////////
-#if defined(_WIN64) // native 64bit windows platform
-typedef __int64 ssize_t;
+#if defined(_WIN64) // native 64bit windows platform
+typedef __int64 ssize_t;
#else
-typedef int ssize_t;
+typedef int ssize_t;
#endif
//////////////////////////////
#endif
@@ -236,22 +236,22 @@ typedef uintptr_t uintptr;
// some redefine of function redefines for some Compilers
//////////////////////////////////////////////////////////////////////////
#if defined(_MSC_VER) || defined(__BORLANDC__)
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#define strncmpi strnicmp
-#define snprintf _snprintf
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+#define strncmpi strnicmp
+#define snprintf _snprintf
#if defined(_MSC_VER) && _MSC_VER < 1400
-#define vsnprintf _vsnprintf
+#define vsnprintf _vsnprintf
#endif
#else
-#define strcmpi strcasecmp
-#define stricmp strcasecmp
-#define strncmpi strncasecmp
-#define strnicmp strncasecmp
+#define strcmpi strcasecmp
+#define stricmp strcasecmp
+#define strncmpi strncasecmp
+#define strnicmp strncasecmp
#endif
#if defined(_MSC_VER) && _MSC_VER > 1200
-#define strtoull _strtoui64
-#define strtoll _strtoi64
+#define strtoull _strtoui64
+#define strtoll _strtoi64
#endif
// keyword replacement
@@ -286,8 +286,8 @@ typedef uintptr_t uintptr;
#ifndef __bool_true_false_are_defined
// If stdbool.h is not available or does not define this
typedef char bool;
-#define false (1==0)
-#define true (1==1)
+#define false (1==0)
+#define true (1==1)
#define __bool_true_false_are_defined
#endif // __bool_true_false_are_defined
@@ -308,18 +308,17 @@ typedef char bool;
#if 0 //to be activated soon, more tests needed on how VS works with the macro above
#ifdef WIN32
#undef swap
-#define swap(a,b)__asm \
-{ \
- __asm mov eax, dword ptr [a] \
- __asm cmp eax, dword ptr [b] \
- __asm je _ret \
- __asm xor eax, dword ptr [b] \
- __asm mov dword ptr [a], eax \
- __asm xor eax, dword ptr [b] \
- __asm mov dword ptr [b], eax \
- __asm xor eax, dword ptr [a] \
- __asm mov dword ptr [a], eax \
- __asm _ret: \
+#define swap(a,b)__asm { \
+ __asm mov eax, dword ptr [a] \
+ __asm cmp eax, dword ptr [b] \
+ __asm je _ret \
+ __asm xor eax, dword ptr [b] \
+ __asm mov dword ptr [a], eax \
+ __asm xor eax, dword ptr [b] \
+ __asm mov dword ptr [b], eax \
+ __asm xor eax, dword ptr [a] \
+ __asm mov dword ptr [a], eax \
+ __asm _ret: \
}
#endif
#endif
@@ -343,7 +342,7 @@ typedef char bool;
//////////////////////////////////////////////////////////////////////////
// number of bits in a byte
#ifndef NBBY
-#define NBBY 8
+#define NBBY 8
#endif
//////////////////////////////////////////////////////////////////////////
diff --git a/src/common/conf.c b/src/common/conf.c
index 46a034497..c974decf9 100644
--- a/src/common/conf.c
+++ b/src/common/conf.c
@@ -34,10 +34,10 @@ void config_setting_copy_simple(config_setting_t *parent, const config_setting_t
}
else {
config_setting_t *set;
-
+
if( libconfig->setting_get_member(parent, config_setting_name(src)) != NULL )
return;
-
+
if ((set = libconfig->setting_add(parent, config_setting_name(src), config_setting_type(src))) == NULL)
return;
@@ -83,14 +83,14 @@ void config_setting_copy_aggregate(config_setting_t *parent, const config_settin
if( libconfig->setting_get_member(parent, config_setting_name(src)) != NULL )
return;
-
+
newAgg = libconfig->setting_add(parent, config_setting_name(src), config_setting_type(src));
if (newAgg == NULL)
return;
n = config_setting_length(src);
-
+
for (i = 0; i < n; i++) {
if (config_setting_is_group(src)) {
libconfig->setting_copy_simple(newAgg, libconfig->setting_get_elem(src, i));
@@ -101,7 +101,6 @@ void config_setting_copy_aggregate(config_setting_t *parent, const config_settin
}
int config_setting_copy(config_setting_t *parent, const config_setting_t *src) {
-
if (!config_setting_is_group(parent) && !config_setting_is_list(parent))
return CONFIG_FALSE;
@@ -115,7 +114,7 @@ int config_setting_copy(config_setting_t *parent, const config_setting_t *src) {
void libconfig_defaults(void) {
libconfig = &libconfig_s;
-
+
libconfig->read = config_read;
libconfig->write = config_write;
/* */
@@ -146,6 +145,7 @@ void libconfig_defaults(void) {
/* */
libconfig->setting_set_int = config_setting_set_int;
libconfig->setting_set_int64 = config_setting_set_int64;
+ libconfig->setting_set_float = config_setting_set_float;
libconfig->setting_set_bool = config_setting_set_bool;
libconfig->setting_set_string = config_setting_set_string;
/* */
diff --git a/src/common/conf.h b/src/common/conf.h
index c232a035c..9ea5f5b72 100644
--- a/src/common/conf.h
+++ b/src/common/conf.h
@@ -22,21 +22,21 @@ struct libconfig_interface {
int (*read_string) (config_t *config, const char *str);
int (*read_file_src) (config_t *config, const char *filename);
int (*write_file) (config_t *config, const char *filename);
-
+
void (*set_destructor) (config_t *config, void (*destructor)(void *));
void (*set_include_dir) (config_t *config, const char *include_dir);
-
+
void (*init) (config_t *config);
void (*destroy) (config_t *config);
-
+
int (*setting_get_int) (const config_setting_t *setting);
long long (*setting_get_int64) (const config_setting_t *setting);
double (*setting_get_float) (const config_setting_t *setting);
-
+
int (*setting_get_bool) (const config_setting_t *setting);
-
+
const char * (*setting_get_string) (const config_setting_t *setting);
-
+
int (*setting_lookup_int) (const config_setting_t *setting, const char *name, int *value);
int (*setting_lookup_int64) (const config_setting_t *setting, const char *name, long long *value);
int (*setting_lookup_float) (const config_setting_t *setting, const char *name, double *value);
@@ -47,10 +47,10 @@ struct libconfig_interface {
int (*setting_set_float) (config_setting_t *setting, double value);
int (*setting_set_bool) (config_setting_t *setting, int value);
int (*setting_set_string) (config_setting_t *setting, const char *value);
-
+
int (*setting_set_format) (config_setting_t *setting, short format);
short (*setting_get_format) (const config_setting_t *setting);
-
+
int (*setting_get_int_elem) (const config_setting_t *setting, int idx);
long long (*setting_get_int64_elem) (const config_setting_t *setting, int idx);
double (*setting_get_float_elem) (const config_setting_t *setting, int idx);
@@ -61,19 +61,19 @@ struct libconfig_interface {
config_setting_t * (*setting_set_float_elem) (config_setting_t *setting, int idx, double value);
config_setting_t * (*setting_set_bool_elem) (config_setting_t *setting, int idx, int value);
config_setting_t * (*setting_set_string_elem) (config_setting_t *setting, int idx, const char *value);
-
+
int (*setting_index) (const config_setting_t *setting);
int (*setting_length) (const config_setting_t *setting);
-
+
config_setting_t * (*setting_get_elem) (const config_setting_t *setting, unsigned int idx);
config_setting_t * (*setting_get_member) (const config_setting_t *setting, const char *name);
-
+
config_setting_t * (*setting_add) (config_setting_t *parent, const char *name, int type);
int (*setting_remove) (config_setting_t *parent, const char *name);
-
+
int (*setting_remove_elem) (config_setting_t *parent, unsigned int idx);
void (*setting_set_hook) (config_setting_t *setting, void *hook);
-
+
config_setting_t * (*lookup) (const config_t *config, const char *path);
config_setting_t * (*lookup_from) (config_setting_t *setting, const char *path);
int (*lookup_int) (const config_t *config, const char *path, int *value);
@@ -81,7 +81,7 @@ struct libconfig_interface {
int (*lookup_float) (const config_t *config, const char *path, double *value);
int (*lookup_bool) (const config_t *config, const char *path, int *value);
int (*lookup_string) (const config_t *config, const char *path, const char **value);
-
+
/* those are custom and are from src/common/conf.c */
/* Functions to copy settings from libconfig/contrib */
int (*read_file) (config_t *config, const char *config_filename);
diff --git a/src/common/console.c b/src/common/console.c
index 6a82db555..6c5a5c886 100644
--- a/src/common/console.c
+++ b/src/common/console.c
@@ -43,7 +43,7 @@ struct console_input_interface console_input_s;
#endif
/*======================================
- * CORE : Display title
+ * CORE : Display title
*--------------------------------------*/
void display_title(void) {
const char *vcstype = sysinfo->vcstype();
@@ -80,18 +80,18 @@ int console_parse_key_pressed(void) {
fd_set fds;
tv.tv_sec = 0;
tv.tv_usec = 0;
-
+
FD_ZERO(&fds);
FD_SET(STDIN_FILENO, &fds);
-
+
select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
-
+
return FD_ISSET(STDIN_FILENO, &fds);
}
#endif /* _WIN32 */
/*======================================
- * CORE: Console commands
+ * CORE: Console commands
*--------------------------------------*/
/**
@@ -112,7 +112,9 @@ CPCMD_C(ers_report,server) {
* Displays memory usage
**/
CPCMD_C(mem_report,server) {
+#ifdef USE_MEMMGR
memmgr_report(line?atoi(line):0);
+#endif
}
/**
@@ -152,20 +154,22 @@ CPCMD_C(skip,update) {
}
/**
- * Defines a main category
- * Categories can't be used as commands!
+ * Defines a main category.
+ *
+ * Categories can't be used as commands!
* E.G.
- * sql update skip
- * 'sql' is the main category
+ * - sql update skip
+ * 'sql' is the main category
* CP_DEF_C(category)
**/
#define CP_DEF_C(x) { #x , NULL , NULL, NULL }
/**
- * Defines a sub-category
- * Sub-categories can't be used as commands!
+ * Defines a sub-category.
+ *
+ * Sub-categories can't be used as commands!
* E.G.
- * sql update skip
- * 'update' is a sub-category
+ * - sql update skip
+ * 'update' is a sub-category
* CP_DEF_C2(command, category)
**/
#define CP_DEF_C2(x,y) { #x , NULL , #y, NULL }
@@ -209,21 +213,21 @@ void console_load_defaults(void) {
};
unsigned int i, len = ARRAYLENGTH(default_list);
struct CParseEntry *cmd;
-
+
RECREATE(console->input->cmds,struct CParseEntry *, len);
-
+
for(i = 0; i < len; i++) {
CREATE(cmd, struct CParseEntry, 1);
-
+
safestrncpy(cmd->cmd, default_list[i].name, CP_CMD_LENGTH);
-
+
if( default_list[i].func )
cmd->u.func = default_list[i].func;
else
cmd->u.next = NULL;
-
+
cmd->next_count = 0;
-
+
console->input->cmd_count++;
console->input->cmds[i] = cmd;
default_list[i].self = cmd;
@@ -232,7 +236,7 @@ void console_load_defaults(void) {
console->input->cmd_list[console->input->cmd_list_count - 1] = cmd;
}
}
-
+
for(i = 0; i < len; i++) {
unsigned int k;
if( !default_list[i].connect )
@@ -256,10 +260,10 @@ void console_parse_create(char *name, CParseFunc func) {
char *tok;
char sublist[CP_CMD_LENGTH * 5];
struct CParseEntry *cmd;
-
+
safestrncpy(sublist, name, CP_CMD_LENGTH * 5);
tok = strtok(sublist,":");
-
+
for ( i = 0; i < console->input->cmd_list_count; i++ ) {
if( strcmpi(tok,console->input->cmd_list[i]->cmd) == 0 )
break;
@@ -278,12 +282,11 @@ void console_parse_create(char *name, CParseFunc func) {
cmd = console->input->cmd_list[i];
while( ( tok = strtok(NULL, ":") ) != NULL ) {
-
for(i = 0; i < cmd->next_count; i++) {
if( strcmpi(cmd->u.next[i]->cmd,tok) == 0 )
break;
}
-
+
if ( i == cmd->next_count ) {
RECREATE(console->input->cmds,struct CParseEntry *, ++console->input->cmd_count);
CREATE(console->input->cmds[console->input->cmd_count-1], struct CParseEntry, 1);
@@ -294,7 +297,6 @@ void console_parse_create(char *name, CParseFunc func) {
cmd = console->input->cmds[console->input->cmd_count-1];
continue;
}
-
}
cmd->u.func = func;
}
@@ -320,24 +322,24 @@ void console_parse_sub(char *line) {
char *tok;
char sublist[CP_CMD_LENGTH * 5];
unsigned int i, len = 0;
-
+
memcpy(bline, line, 200);
tok = strtok(line, " ");
-
+
for ( i = 0; i < console->input->cmd_list_count; i++ ) {
if( strcmpi(tok,console->input->cmd_list[i]->cmd) == 0 )
break;
}
-
+
if( i == console->input->cmd_list_count ) {
ShowError("'"CL_WHITE"%s"CL_RESET"' is not a known command, type '"CL_WHITE"help"CL_RESET"' to list all commands\n",line);
return;
}
-
+
cmd = console->input->cmd_list[i];
-
+
len += snprintf(sublist,CP_CMD_LENGTH * 5,"%s", cmd->cmd) + 1;
-
+
if( cmd->next_count == 0 && console->input->cmd_list[i]->u.func ) {
char *r = NULL;
if( (tok = strtok(NULL, " ")) ) {
@@ -381,8 +383,8 @@ void console_parse_sub(char *line) {
}
}
void console_parse(char* line) {
- int c, i = 0, len = MAX_CONSOLE_INPUT - 1;/* we leave room for the \0 :P */
-
+ int c, i = 0, len = MAX_CONSOLE_INPUT - 1;/* we leave room for the \0 :P */
+
while( (c = fgetc(stdin)) != EOF ) {
if( --len == 0 )
break;
@@ -391,33 +393,32 @@ void console_parse(char* line) {
break;/* new line~! we leave it for the next cycle */
}
}
-
+
line[i++] = '\0';
}
void *cThread_main(void *x) {
-
while( console->input->ptstate ) {/* loopx */
if( console->input->key_pressed() ) {
char input[MAX_CONSOLE_INPUT];
-
+
console->input->parse(input);
if( input[0] != '\0' ) {/* did we get something? */
EnterSpinLock(&console->input->ptlock);
-
+
if( cinput.count == CONSOLE_PARSE_SIZE ) {
LeaveSpinLock(&console->input->ptlock);
continue;/* drop */
}
-
+
safestrncpy(cinput.queue[cinput.count++],input,MAX_CONSOLE_INPUT);
LeaveSpinLock(&console->input->ptlock);
}
}
ramutex_lock( console->input->ptmutex );
- racond_wait( console->input->ptcond, console->input->ptmutex, -1 );
+ racond_wait( console->input->ptcond, console->input->ptmutex, -1 );
ramutex_unlock( console->input->ptmutex );
}
-
+
return NULL;
}
int console_parse_timer(int tid, int64 tick, int id, intptr_t data) {
@@ -435,7 +436,7 @@ void console_parse_final(void) {
if( console->input->ptstate ) {
InterlockedDecrement(&console->input->ptstate);
racond_signal(console->input->ptcond);
-
+
/* wait for thread to close */
rathread_wait(console->input->pthread, NULL);
@@ -445,22 +446,21 @@ void console_parse_final(void) {
}
void console_parse_init(void) {
cinput.count = 0;
-
+
console->input->ptstate = 1;
InitializeSpinLock(&console->input->ptlock);
-
+
console->input->ptmutex = ramutex_create();
console->input->ptcond = racond_create();
-
+
if( (console->input->pthread = rathread_create(console->input->pthread_main, NULL)) == NULL ){
ShowFatalError("console_parse_init: failed to spawn console_parse thread.\n");
exit(EXIT_FAILURE);
}
-
+
timer->add_func_list(console->input->parse_timer, "console_parse_timer");
timer->add_interval(timer->gettick() + 1000, console->input->parse_timer, 0, 0, 500);/* start listening in 1s; re-try every 0.5s */
-
}
void console_setSQL(Sql *SQL_handle) {
console->input->SQL = SQL_handle;
diff --git a/src/common/core.c b/src/common/core.c
index 99dbc36ec..04434a5dd 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -48,14 +48,14 @@ char **arg_v = NULL;
char *SERVER_NAME = NULL;
-#ifndef MINICORE // minimalist Core
+#ifndef MINICORE // minimalist Core
// Added by Gabuzomeu
//
// This is an implementation of signal() using sigaction() for portability.
// (sigaction() is POSIX; signal() is not.) Taken from Stevens' _Advanced
// Programming in the UNIX Environment_.
//
-#ifdef WIN32 // windows don't have SIGPIPE
+#ifdef WIN32 // windows don't have SIGPIPE
#define SIGPIPE SIGINT
#endif
@@ -69,7 +69,7 @@ sigfunc *compat_signal(int signo, sigfunc *func) {
sigemptyset(&sact.sa_mask);
sact.sa_flags = 0;
#ifdef SA_INTERRUPT
- sact.sa_flags |= SA_INTERRUPT; /* SunOS */
+ sact.sa_flags |= SA_INTERRUPT; /* SunOS */
#endif
if (sigaction(signo, &sact, &oact) < 0)
@@ -80,7 +80,7 @@ sigfunc *compat_signal(int signo, sigfunc *func) {
#endif
/*======================================
- * CORE : Console events for Windows
+ * CORE : Console events for Windows
*--------------------------------------*/
#ifdef _WIN32
static BOOL WINAPI console_handler(DWORD c_event) {
@@ -106,7 +106,7 @@ static void cevents_init(void) {
#endif
/*======================================
- * CORE : Signal Sub Function
+ * CORE : Signal Sub Function
*--------------------------------------*/
static void sig_proc(int sn) {
static int is_called = 0;
@@ -132,11 +132,11 @@ static void sig_proc(int sn) {
case SIGXFSZ:
// ignore and allow it to set errno to EFBIG
ShowWarning ("Max file size reached!\n");
- //run_flag = 0; // should we quit?
+ //run_flag = 0; // should we quit?
break;
case SIGPIPE:
- //ShowInfo ("Broken pipe found... closing socket\n"); // set to eof in socket.c
- break; // does nothing here
+ //ShowInfo ("Broken pipe found... closing socket\n"); // set to eof in socket.c
+ break; // does nothing here
#endif
}
}
@@ -185,7 +185,7 @@ void core_defaults(void) {
#endif
}
/*======================================
- * CORE : MAINROUTINE
+ * CORE : MAINROUTINE
*--------------------------------------*/
int main (int argc, char **argv) {
int retval = EXIT_SUCCESS;
@@ -209,7 +209,7 @@ int main (int argc, char **argv) {
}
}
}
-
+
iMalloc->init();// needed for Show* in display_title() [FlavioJS]
sysinfo->init();
@@ -229,7 +229,7 @@ int main (int argc, char **argv) {
rathread_init();
DB->init();
signals_init();
-
+
#ifdef _WIN32
cevents_init();
#endif
@@ -239,11 +239,11 @@ int main (int argc, char **argv) {
/* timer first */
rnd_init();
srand((unsigned int)timer->gettick());
-
+
console->init();
-
+
HCache->init();
-
+
HPM->init();
sockt->init();
@@ -258,7 +258,7 @@ int main (int argc, char **argv) {
}
console->final();
-
+
retval = do_final();
HPM->final();
timer->final();
diff --git a/src/common/db.c b/src/common/db.c
index f414ca04d..044df19aa 100644
--- a/src/common/db.c
+++ b/src/common/db.c
@@ -81,6 +81,8 @@
#include "../common/showmsg.h"
#include "../common/strlib.h"
+struct db_interface DB_s;
+
/*****************************************************************************\
* (1) Private typedefs, enums, structures, defines and global variables of *
* the database system. *
@@ -577,7 +579,7 @@ static void db_rebalance_erase(DBNode *node, DBNode **root)
x = x_parent;
x_parent = x_parent->parent;
} else {
- if (w->right == NULL || w->right->color == BLACK) {
+ if (w->right == NULL || w->right->color == BLACK) {
if (w->left) w->left->color = BLACK;
w->color = RED;
db_rotate_right(w, root);
@@ -1229,7 +1231,7 @@ static void db_release_both(DBKey key, DBData data, DBRelease which)
DBData* dbit_obj_first(DBIterator* self, DBKey* out_key)
{
DBIterator_impl* it = (DBIterator_impl*)self;
-
+
DB_COUNTSTAT(dbit_first);
// position before the first entry
it->ht_index = -1;
@@ -1251,7 +1253,7 @@ DBData* dbit_obj_first(DBIterator* self, DBKey* out_key)
DBData* dbit_obj_last(DBIterator* self, DBKey* out_key)
{
DBIterator_impl* it = (DBIterator_impl*)self;
-
+
DB_COUNTSTAT(dbit_last);
// position after the last entry
it->ht_index = HASH_SIZE;
@@ -1373,7 +1375,6 @@ DBData* dbit_obj_prev(DBIterator* self, DBKey* out_key)
node = &fake;
}
-
while( node )
{// next node
if( node->left )
@@ -1660,17 +1661,17 @@ static unsigned int db_obj_vgetall(DBMap* self, DBData **buf, unsigned int max,
}
va_end(argscopy);
}
-
+
if (node->left) {
node = node->left;
continue;
}
-
+
if (node->right) {
node = node->right;
continue;
}
-
+
while (node) {
parent = node->parent;
if (parent && parent->right && parent->left == node) {
@@ -1857,7 +1858,7 @@ static DBData* db_obj_ensure(DBMap* self, DBKey key, DBCreateData create, ...)
* @see #db_malloc_dbn(void)
* @see DBMap#put
* FIXME: If this method fails shouldn't it return another value?
- * Other functions rely on this to know if they were able to put something [Panikon]
+ * Other functions rely on this to know if they were able to put something [Panikon]
*/
static int db_obj_put(DBMap* self, DBKey key, DBData data, DBData *out_data)
{
@@ -1979,7 +1980,7 @@ static int db_obj_remove(DBMap* self, DBKey key, DBData *out_data)
db->alloc_file, db->alloc_line);
return 0; // nullpo candidate
}
- if (!(db->options&DB_OPT_ALLOW_NULL_KEY) && db_is_key_null(db->type, key)) {
+ if (!(db->options&DB_OPT_ALLOW_NULL_KEY) && db_is_key_null(db->type, key)) {
ShowError("db_remove: Attempted to use non-allowed NULL key for db allocated at %s:%d\n",db->alloc_file, db->alloc_line);
return 0; // nullpo candidate
}
@@ -2643,7 +2644,7 @@ DBKey db_str2key(const char *key)
DBKey db_i642key(int64 key)
{
DBKey ret;
-
+
DB_COUNTSTAT(db_i642key);
ret.i64 = key;
return ret;
@@ -2658,7 +2659,7 @@ DBKey db_i642key(int64 key)
DBKey db_ui642key(uint64 key)
{
DBKey ret;
-
+
DB_COUNTSTAT(db_ui642key);
ret.ui64 = key;
return ret;
diff --git a/src/common/db.h b/src/common/db.h
index bf59e37d6..88265c3e8 100644
--- a/src/common/db.h
+++ b/src/common/db.h
@@ -848,7 +848,7 @@ DBKey (*i642key) (int64 key);
* @public
*/
DBKey (*ui642key) (uint64 key);
-
+
/**
* Manual cast from 'int' to the struct DBData.
* @param data Data to be casted
@@ -914,7 +914,7 @@ void (*init) (void);
* @see #db_init(void)
*/
void (*final) (void);
-} DB_s;
+};
struct db_interface *DB;
@@ -1347,6 +1347,7 @@ void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
/////////////////////////////////////////////////////////////////////
// Binary heap library based on defines. (uses the vector defines above)
// uses aMalloc, aRealloc, aFree
+// WARNING: BHEAP implementation details affect behaviour of A* pathfinding
@@ -1459,6 +1460,21 @@ void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
+/// See BHEAP_PUSH. Version used by A* implementation, matching client bheap.
+///
+/// @param __heap Binary heap
+/// @param __val Value
+/// @param __topcmp Comparator
+/// @param __swp Swapper
+#define BHEAP_PUSH2(__heap,__val,__topcmp,__swp) \
+ do{ \
+ size_t _i_ = VECTOR_LENGTH(__heap); \
+ VECTOR_PUSH(__heap,__val); /* insert at end */ \
+ BHEAP_SIFTDOWN(__heap,0,_i_,__topcmp,__swp); \
+ }while(0)
+
+
+
/// Removes the top value of the heap. (using the '=' operator)
/// Assumes the heap is not empty.
///
@@ -1474,6 +1490,21 @@ void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
+/// See BHEAP_POP. Version used by A* implementation, matching client bheap.
+///
+/// @param __heap Binary heap
+/// @param __topcmp Comparator
+/// @param __swp Swapper
+#define BHEAP_POP2(__heap,__topcmp,__swp) \
+ do{ \
+ VECTOR_INDEX(__heap,0) = VECTOR_POP(__heap); /* put last at index */ \
+ if( !VECTOR_LENGTH(__heap) ) /* removed last, nothing to do */ \
+ break; \
+ BHEAP_SIFTUP(__heap,0,__topcmp,__swp); \
+ }while(0)
+
+
+
/// Removes the target value of the heap. (using the '=' operator)
/// Assumes the index exists.
///
@@ -1522,6 +1553,74 @@ void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
+/// Follow path up towards (but not all the way to) the root, swapping nodes until finding
+/// a place where the new item that was placed at __idx fits.
+/// Only goes as high as __startidx (usually 0).
+///
+/// @param __heap Binary heap
+/// @param __startidx Index of an ancestor of __idx
+/// @param __idx Index of an inserted element
+/// @param __topcmp Comparator
+/// @param __swp Swapper
+#define BHEAP_SIFTDOWN(__heap,__startidx,__idx,__topcmp,__swp) \
+ do{ \
+ size_t _i2_ = __idx; \
+ while( _i2_ > __startidx ) \
+ { /* restore heap property in parents */ \
+ size_t _parent_ = (_i2_-1)/2; \
+ if( __topcmp(VECTOR_INDEX(__heap,_parent_),VECTOR_INDEX(__heap,_i2_)) <= 0 ) \
+ break; /* done */ \
+ __swp(VECTOR_INDEX(__heap,_parent_),VECTOR_INDEX(__heap,_i2_)); \
+ _i2_ = _parent_; \
+ } \
+ }while(0)
+
+
+
+/// Repeatedly swap the smaller child with parent, after placing a new item at __idx.
+///
+/// @param __heap Binary heap
+/// @param __idx Index of an inserted element
+/// @param __topcmp Comparator
+/// @param __swp Swapper
+#define BHEAP_SIFTUP(__heap,__idx,__topcmp,__swp) \
+ do{ \
+ size_t _i_ = __idx; \
+ size_t _lchild_ = _i_*2 + 1; \
+ while( _lchild_ < VECTOR_LENGTH(__heap) ) \
+ { /* restore heap property in childs */ \
+ size_t _rchild_ = _i_*2 + 2; \
+ if( _rchild_ >= VECTOR_LENGTH(__heap) || __topcmp(VECTOR_INDEX(__heap,_lchild_),VECTOR_INDEX(__heap,_rchild_)) < 0 ) \
+ { /* left child */ \
+ __swp(VECTOR_INDEX(__heap,_i_),VECTOR_INDEX(__heap,_lchild_)); \
+ _i_ = _lchild_; \
+ } \
+ else \
+ { /* right child */ \
+ __swp(VECTOR_INDEX(__heap,_i_),VECTOR_INDEX(__heap,_rchild_)); \
+ _i_ = _rchild_; \
+ } \
+ _lchild_ = _i_*2 + 1; \
+ } \
+ BHEAP_SIFTDOWN(__heap,__idx,_i_,__topcmp,__swp); \
+ }while(0)
+
+
+
+/// Call this after modifying the item at __idx__ to restore the heap
+///
+/// @param __heap Binary heap
+/// @param __idx Index
+/// @param __topcmp Comparator
+/// @param __swp Swapper
+#define BHEAP_UPDATE(__heap,__idx,__topcmp,__swp) \
+ do{ \
+ BHEAP_SIFTDOWN(__heap,0,__idx,__topcmp,__swp); \
+ BHEAP_SIFTUP(__heap,__idx,__topcmp,__swp); \
+ }while(0)
+
+
+
/// Clears the binary heap, freeing allocated data.
///
/// @param __heap Binary heap
diff --git a/src/common/des.c b/src/common/des.c
index 7f952be76..89a920bc9 100644
--- a/src/common/des.c
+++ b/src/common/des.c
@@ -103,14 +103,14 @@ static void E(BIT64* src)
}
#endif
// optimized
- tmp.b[0] = ((src->b[7]<<5) | (src->b[4]>>3)) & 0x3f; // ..0 vutsr
- tmp.b[1] = ((src->b[4]<<1) | (src->b[5]>>7)) & 0x3f; // ..srqpo n
- tmp.b[2] = ((src->b[4]<<5) | (src->b[5]>>3)) & 0x3f; // ..o nmlkj
- tmp.b[3] = ((src->b[5]<<1) | (src->b[6]>>7)) & 0x3f; // ..kjihg f
- tmp.b[4] = ((src->b[5]<<5) | (src->b[6]>>3)) & 0x3f; // ..g fedcb
- tmp.b[5] = ((src->b[6]<<1) | (src->b[7]>>7)) & 0x3f; // ..cba98 7
- tmp.b[6] = ((src->b[6]<<5) | (src->b[7]>>3)) & 0x3f; // ..8 76543
- tmp.b[7] = ((src->b[7]<<1) | (src->b[4]>>7)) & 0x3f; // ..43210 v
+ tmp.b[0] = ((src->b[7]<<5) | (src->b[4]>>3)) & 0x3f; // ..0 vutsr
+ tmp.b[1] = ((src->b[4]<<1) | (src->b[5]>>7)) & 0x3f; // ..srqpo n
+ tmp.b[2] = ((src->b[4]<<5) | (src->b[5]>>3)) & 0x3f; // ..o nmlkj
+ tmp.b[3] = ((src->b[5]<<1) | (src->b[6]>>7)) & 0x3f; // ..kjihg f
+ tmp.b[4] = ((src->b[5]<<5) | (src->b[6]>>3)) & 0x3f; // ..g fedcb
+ tmp.b[5] = ((src->b[6]<<1) | (src->b[7]>>7)) & 0x3f; // ..cba98 7
+ tmp.b[6] = ((src->b[6]<<5) | (src->b[7]>>3)) & 0x3f; // ..8 76543
+ tmp.b[7] = ((src->b[7]<<1) | (src->b[4]>>7)) & 0x3f; // ..43210 v
*src = tmp;
}
diff --git a/src/common/ers.c b/src/common/ers.c
index c8a11d2a9..489d8f7ae 100644
--- a/src/common/ers.c
+++ b/src/common/ers.c
@@ -83,19 +83,19 @@ typedef struct ers_cache
// Free objects count
unsigned int Free;
-
+
// Used blocks count
unsigned int Used;
-
+
// Objects in-use count
unsigned int UsedObjs;
-
+
// Default = ERS_BLOCK_ENTRIES, can be adjusted for performance for individual cache sizes.
unsigned int ChunkSize;
-
+
// Misc options, some options are shared from the instance
enum ERSOptions Options;
-
+
// Linked list
struct ers_cache *Next, *Prev;
} ers_cache_t;
@@ -103,10 +103,10 @@ typedef struct ers_cache
struct ers_instance_t {
// Interface to ERS
struct eri VTable;
-
+
// Name, used for debugging purposes
char *Name;
-
+
// Misc options
enum ERSOptions Options;
@@ -115,7 +115,7 @@ struct ers_instance_t {
// Count of objects in use, used for detecting memory leaks
unsigned int Count;
-
+
#ifdef DEBUG
/* for data analysis [Ind/Hercules] */
unsigned int Peak;
@@ -149,7 +149,7 @@ static ers_cache_t *ers_find_cache(unsigned int size, enum ERSOptions Options) {
cache->Max = 0;
cache->ChunkSize = ERS_BLOCK_ENTRIES;
cache->Options = (Options & ERS_CACHE_OPTIONS);
-
+
if (CacheList == NULL)
{
CacheList = cache;
@@ -181,7 +181,7 @@ static void ers_free_cache(ers_cache_t *cache, bool remove)
CacheList = cache->Next;
aFree(cache->Blocks);
-
+
aFree(cache);
}
@@ -216,7 +216,7 @@ static void *ers_obj_alloc_entry(ERS *self)
instance->Count++;
instance->Cache->UsedObjs++;
-
+
#ifdef DEBUG
if( instance->Count > instance->Peak )
instance->Peak = instance->Count;
@@ -240,7 +240,7 @@ static void ers_obj_free_entry(ERS *self, void *entry)
if( instance->Cache->Options & ERS_OPT_CLEAN )
memset((unsigned char*)reuse + sizeof(struct ers_list), 0, instance->Cache->ObjectSize - sizeof(struct ers_list));
-
+
reuse->Next = instance->Cache->ReuseList;
instance->Cache->ReuseList = reuse;
instance->Count--;
@@ -277,27 +277,27 @@ static void ers_obj_destroy(ERS *self)
if (instance->Next)
instance->Next->Prev = instance->Prev;
-
+
if (instance->Prev)
instance->Prev->Next = instance->Next;
else
InstanceList = instance->Next;
-
+
if( instance->Options & ERS_OPT_FREE_NAME )
aFree(instance->Name);
-
+
aFree(instance);
}
void ers_cache_size(ERS *self, unsigned int new_size) {
struct ers_instance_t *instance = (struct ers_instance_t *)self;
-
+
nullpo_retv(instance);
-
+
if( !(instance->Cache->Options&ERS_OPT_FLEX_CHUNK) ) {
ShowWarning("ers_cache_size: '%s' has adjusted its chunk size to '%d', however ERS_OPT_FLEX_CHUNK is missing!\n",instance->Name,new_size);
}
-
+
instance->Cache->ChunkSize = new_size;
}
@@ -321,7 +321,7 @@ ERS *ers_new(uint32 size, char *name, enum ERSOptions options)
instance->Options = options;
instance->Cache = ers_find_cache(size,instance->Options);
-
+
instance->Cache->ReferenceCount++;
if (InstanceList == NULL) {
@@ -384,7 +384,7 @@ void ers_report(void) {
**/
void ers_final(void) {
struct ers_instance_t *instance = InstanceList, *next;
-
+
while( instance ) {
next = instance->Next;
ers_obj_destroy((ERS*)instance);
diff --git a/src/common/ers.h b/src/common/ers.h
index 904f7fb81..8c56118ae 100644
--- a/src/common/ers.h
+++ b/src/common/ers.h
@@ -77,7 +77,7 @@ enum ERSOptions {
ERS_OPT_FREE_NAME = 0x4,/* name is dynamic memory, and should be freed */
ERS_OPT_CLEAN = 0x8,/* clears used memory upon ers_free so that its all new to be reused on the next alloc */
ERS_OPT_FLEX_CHUNK = 0x10,/* signs that it should look for its own cache given it'll have a dynamic chunk size, so that it doesn't affect the other ERS it'd otherwise be sharing */
-
+
/* Compound, is used to determine whether it should be looking for a cache of matching options */
ERS_CACHE_OPTIONS = ERS_OPT_CLEAN|ERS_OPT_FLEX_CHUNK,
};
diff --git a/src/common/grfio.c b/src/common/grfio.c
index 5be0c8237..eeda7e4b5 100644
--- a/src/common/grfio.c
+++ b/src/common/grfio.c
@@ -21,7 +21,7 @@
#include "../common/utils.h"
//----------------------------
-// file entry table struct
+// file entry table struct
//----------------------------
typedef struct FILELIST {
int srclen; ///< compressed size
@@ -50,14 +50,14 @@ typedef struct FILELIST {
// stores info about every loaded file
-FILELIST* filelist = NULL;
-int filelist_entrys = 0;
-int filelist_maxentry = 0;
+FILELIST* filelist = NULL;
+int filelist_entrys = 0;
+int filelist_maxentry = 0;
// stores grf file names
-char** gentry_table = NULL;
-int gentry_entrys = 0;
-int gentry_maxentry = 0;
+char** gentry_table = NULL;
+int gentry_entrys = 0;
+int gentry_maxentry = 0;
// the path to the data directory
char data_dir[1024] = "";
@@ -109,22 +109,23 @@ static uint8_t grf_substitution(uint8_t in)
return out;
}
-/* this is not used anywhere, is it ok to delete? */
-//static void grf_shuffle_enc(BIT64* src) {
-// BIT64 out;
-//
-// out.b[0] = src->b[3];
-// out.b[1] = src->b[4];
-// out.b[2] = src->b[5];
-// out.b[3] = src->b[0];
-// out.b[4] = src->b[1];
-// out.b[5] = src->b[6];
-// out.b[6] = src->b[2];
-// out.b[7] = grf_substitution(src->b[7]);
-//
-// *src = out;
-//}
+#if 0 /* this is not used anywhere, is it ok to delete? */
+static void grf_shuffle_enc(BIT64* src)
+{
+ BIT64 out;
+ out.b[0] = src->b[3];
+ out.b[1] = src->b[4];
+ out.b[2] = src->b[5];
+ out.b[3] = src->b[0];
+ out.b[4] = src->b[1];
+ out.b[5] = src->b[6];
+ out.b[6] = src->b[2];
+ out.b[7] = grf_substitution(src->b[7]);
+
+ *src = out;
+}
+#endif // 0
static void grf_shuffle_dec(BIT64* src)
{
@@ -425,7 +426,7 @@ void* grfio_reads(const char* fname, int* size)
*size = declen;
} else {
if (entry != NULL && entry->gentry < 0) {
- entry->gentry = -entry->gentry; // local file checked
+ entry->gentry = -entry->gentry; // local file checked
} else {
ShowError("grfio_reads: %s not found (local file: %s)\n", fname, lfname);
return NULL;
@@ -515,7 +516,7 @@ static int grfio_entryread(const char* grfname, int gentry)
FILE* fp = fopen(grfname, "rb");
if( fp == NULL ) {
ShowWarning("GRF data file not found: '%s'\n",grfname);
- return 1; // 1:not found error
+ return 1; // 1:not found error
} else
ShowInfo("GRF data file found: '%s'\n",grfname);
@@ -527,7 +528,7 @@ static int grfio_entryread(const char* grfname, int gentry)
if( strcmp((const char*)grf_header,"Master of Magic") != 0 || fseek(fp,getlong(grf_header+0x1e),SEEK_CUR) != 0 ) {
fclose(fp);
ShowError("GRF %s read error\n", grfname);
- return 2; // 2:file format error
+ return 2; // 2:file format error
}
grf_version = getlong(grf_header+0x2a) >> 8;
@@ -565,11 +566,11 @@ static int grfio_entryread(const char* grfname, int gentry)
aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e;
aentry.type = type;
safestrncpy(aentry.fn, fname, sizeof(aentry.fn));
- aentry.fnd = NULL;
-#ifdef GRFIO_LOCAL
- aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck
+ aentry.fnd = NULL;
+#ifdef GRFIO_LOCAL
+ aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck
#else
- aentry.gentry = (char)(gentry+1); // With no first time LocalFileCheck
+ aentry.gentry = (char)(gentry+1); // With no first time LocalFileCheck
#endif
filelist_modify(&aentry);
}
@@ -584,8 +585,8 @@ static int grfio_entryread(const char* grfname, int gentry)
uLongf rSize, eSize;
if(fread(eheader,1,8,fp) != 8) ShowError("An error occurred in fread while reading header buffer\n");
- rSize = getlong(eheader); // Read Size
- eSize = getlong(eheader+4); // Extend Size
+ rSize = getlong(eheader); // Read Size
+ eSize = getlong(eheader+4); // Extend Size
if( (long)rSize > grf_size-ftell(fp) ) {
fclose(fp);
@@ -593,11 +594,11 @@ static int grfio_entryread(const char* grfname, int gentry)
return 4;
}
- rBuf = (unsigned char *)aMalloc(rSize); // Get a Read Size
- grf_filelist = (unsigned char *)aMalloc(eSize); // Get a Extend Size
+ rBuf = (unsigned char *)aMalloc(rSize); // Get a Read Size
+ grf_filelist = (unsigned char *)aMalloc(eSize); // Get a Extend Size
if(fread(rBuf,1,rSize,fp) != rSize) ShowError("An error occurred in fread \n");
fclose(fp);
- decode_zip(grf_filelist, &eSize, rBuf, rSize); // Decode function
+ decode_zip(grf_filelist, &eSize, rBuf, rSize); // Decode function
aFree(rBuf);
entrys = getlong(grf_header+0x26) - 7;
@@ -623,11 +624,11 @@ static int grfio_entryread(const char* grfname, int gentry)
aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e;
aentry.type = (char)type;
safestrncpy(aentry.fn, fname, sizeof(aentry.fn));
- aentry.fnd = NULL;
-#ifdef GRFIO_LOCAL
- aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck
+ aentry.fnd = NULL;
+#ifdef GRFIO_LOCAL
+ aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck
#else
- aentry.gentry = (char)(gentry+1); // With no first time LocalFileCheck
+ aentry.gentry = (char)(gentry+1); // With no first time LocalFileCheck
#endif
filelist_modify(&aentry);
}
@@ -642,9 +643,9 @@ static int grfio_entryread(const char* grfname, int gentry)
return 4;
}
- filelist_compact(); // Unnecessary area release of filelist
+ filelist_compact(); // Unnecessary area release of filelist
- return 0; // 0:no error
+ return 0; // 0:no error
}
@@ -714,7 +715,7 @@ static void grfio_resourcecheck(void)
fclose(fp);
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", i, "resnametable.txt");
- return; // we're done here!
+ return; // we're done here!
}
// read resnametable from loaded GRF's, only if it cannot be loaded from the data directory
@@ -745,12 +746,12 @@ static void grfio_resourcecheck(void)
/// Reads a grf file and adds it to the list.
static int grfio_add(const char* fname)
{
- if( gentry_entrys >= gentry_maxentry )
- {
- #define GENTRY_ADDS 4 // The number increment of gentry_table entries
+ if (gentry_entrys >= gentry_maxentry) {
+#define GENTRY_ADDS 4 // The number increment of gentry_table entries
gentry_maxentry += GENTRY_ADDS;
gentry_table = (char**)aRealloc(gentry_table, gentry_maxentry * sizeof(char*));
memset(gentry_table + (gentry_maxentry - GENTRY_ADDS), 0, sizeof(char*) * GENTRY_ADDS);
+#undef GENTRY_ADDS
}
gentry_table[gentry_entrys++] = aStrdup(fname);
@@ -792,7 +793,7 @@ void grfio_init(const char* fname)
FILE* data_conf;
int grf_num = 0;
- hashinit(); // hash table initialization
+ hashinit(); // hash table initialization
data_conf = fopen(fname, "r");
if( data_conf != NULL )
diff --git a/src/common/malloc.c b/src/common/malloc.c
index eae9ad423..244b1114c 100644
--- a/src/common/malloc.c
+++ b/src/common/malloc.c
@@ -143,7 +143,7 @@ void aFree_(void *p, const char *file, int line, const char *func)
* Since the complex processing, I might be slightly heavier.
*
* (I'm sorry for the poor description ^ ^;) such as data structures
-* Divided into "blocks" of a plurality of memory, "unit" of a plurality of blocks further
+* Divided into "blocks" of a plurality of memory, "unit" of a plurality of blocks further
* I have to divide. Size of the unit, a plurality of distribution equal to the capacity of one block
* That's what you have. For example, if one unit of 32KB, one block 1 Yu 32Byte
* Knit, or are able to gather 1024, gathered 512 units 64Byte
@@ -155,33 +155,33 @@ void aFree_(void *p, const char *file, int line, const char *func)
*/
/* Alignment of the block */
-#define BLOCK_ALIGNMENT1 16
-#define BLOCK_ALIGNMENT2 64
+#define BLOCK_ALIGNMENT1 16
+#define BLOCK_ALIGNMENT2 64
/* Amount of data entering a block */
-#define BLOCK_DATA_COUNT1 128
-#define BLOCK_DATA_COUNT2 608
+#define BLOCK_DATA_COUNT1 128
+#define BLOCK_DATA_COUNT2 608
/* The size of the block: 16*128 + 64*576 = 40KB */
-#define BLOCK_DATA_SIZE1 ( BLOCK_ALIGNMENT1 * BLOCK_DATA_COUNT1 )
-#define BLOCK_DATA_SIZE2 ( BLOCK_ALIGNMENT2 * BLOCK_DATA_COUNT2 )
-#define BLOCK_DATA_SIZE ( BLOCK_DATA_SIZE1 + BLOCK_DATA_SIZE2 )
+#define BLOCK_DATA_SIZE1 ( BLOCK_ALIGNMENT1 * BLOCK_DATA_COUNT1 )
+#define BLOCK_DATA_SIZE2 ( BLOCK_ALIGNMENT2 * BLOCK_DATA_COUNT2 )
+#define BLOCK_DATA_SIZE ( BLOCK_DATA_SIZE1 + BLOCK_DATA_SIZE2 )
/* The number of blocks to be allocated at a time. */
-#define BLOCK_ALLOC 104
+#define BLOCK_ALLOC 104
/* block */
struct block {
- struct block* block_next; /* Then the allocated area */
- struct block* unfill_prev; /* The previous area not filled */
- struct block* unfill_next; /* The next area not filled */
- unsigned short unit_size; /* The size of the unit */
- unsigned short unit_hash; /* The hash of the unit */
- unsigned short unit_count; /* The number of units */
- unsigned short unit_used; /* The number of used units */
- unsigned short unit_unfill; /* The number of unused units */
- unsigned short unit_maxused; /* The maximum value of units used */
- char data[ BLOCK_DATA_SIZE ];
+ struct block *block_next; ///< Then the allocated area
+ struct block *unfill_prev; ///< The previous area not filled
+ struct block *unfill_next; ///< The next area not filled
+ unsigned short unit_size; ///< The size of the unit
+ unsigned short unit_hash; ///< The hash of the unit
+ unsigned short unit_count; ///< The number of units
+ unsigned short unit_used; ///< The number of used units
+ unsigned short unit_unfill; ///< The number of unused units
+ unsigned short unit_maxused; ///< The maximum value of units used
+ char data[BLOCK_DATA_SIZE];
};
struct unit_head {
@@ -222,7 +222,7 @@ static unsigned short size2hash( size_t size )
return (unsigned short)(size - BLOCK_DATA_SIZE1 + BLOCK_ALIGNMENT2 - 1) / BLOCK_ALIGNMENT2
+ BLOCK_DATA_COUNT1;
} else {
- return 0xffff; // If it exceeds the block length hash I do not
+ return 0xffff; // If it exceeds the block length hash I do not
}
}
@@ -375,13 +375,13 @@ void *mrealloc_(void *memblock, size_t size, const char *file, int line, const c
void *mreallocz_(void *memblock, size_t size, const char *file, int line, const char *func) {
size_t old_size;
void *p = NULL;
-
+
if(memblock == NULL) {
p = iMalloc->malloc(size,file,line,func);
memset(p,0,size);
return p;
}
-
+
old_size = ((struct unit_head *)((char *)memblock - sizeof(struct unit_head) + sizeof(long)))->size;
if( old_size == 0 ) {
old_size = ((struct unit_head_large *)((char *)memblock - sizeof(struct unit_head_large) + sizeof(long)))->size;
@@ -702,7 +702,7 @@ void memmgr_report (int extra) {
unsigned int count;
} data[100];
memset(&data, 0, sizeof(data));
-
+
if( extra != 0 )
msize = extra;
@@ -732,7 +732,7 @@ void memmgr_report (int extra) {
}
block = block->block_next;
}
-
+
while(large) {
if( large->size > msize ) {
for( j = 0; j < 100; j++ ) {
@@ -760,7 +760,7 @@ void memmgr_report (int extra) {
}
ShowMessage("[malloc] : reporting %u instances | %.2f MB\n",count,(double)((size)/1024)/1024);
ShowMessage("[malloc] : internal usage %.2f MB | %.2f MB\n",(double)((memmgr_usage_bytes_t-memmgr_usage_bytes)/1024)/1024,(double)((memmgr_usage_bytes_t)/1024)/1024);
-
+
if (extra) {
ShowMessage("[malloc] : unit_head_large: %"PRIuS" bytes\n", sizeof(struct unit_head_large));
ShowMessage("[malloc] : unit_head: %"PRIuS" bytes\n", sizeof(struct unit_head));
@@ -822,8 +822,10 @@ void malloc_final (void) {
}
void malloc_init (void) {
+#ifdef USE_MEMMGR
memmgr_usage_bytes_t = 0;
memmgr_usage_bytes = 0;
+#endif
#if defined(DMALLOC) && defined(CYGWIN)
// http://dmalloc.com/docs/latest/online/dmalloc_19.html
dmalloc_debug_setup(getenv("DMALLOC_OPTIONS"));
@@ -848,19 +850,19 @@ void malloc_defaults(void) {
// Athena's built-in Memory Manager
#ifdef USE_MEMMGR
- iMalloc->malloc = mmalloc_;
- iMalloc->calloc = mcalloc_;
- iMalloc->realloc = mrealloc_;
- iMalloc->reallocz= mreallocz_;
- iMalloc->astrdup = mstrdup_;
- iMalloc->free = mfree_;
+ iMalloc->malloc = mmalloc_;
+ iMalloc->calloc = mcalloc_;
+ iMalloc->realloc = mrealloc_;
+ iMalloc->reallocz = mreallocz_;
+ iMalloc->astrdup = mstrdup_;
+ iMalloc->free = mfree_;
#else
- iMalloc->malloc = aMalloc_;
- iMalloc->calloc = aCalloc_;
- iMalloc->realloc = aRealloc_;
- iMalloc->reallocz= aRealloc_;/* not using memory manager huhum o.o perhaps we could still do something about */
- iMalloc->astrdup = aStrdup_;
- iMalloc->free = aFree_;
+ iMalloc->malloc = aMalloc_;
+ iMalloc->calloc = aCalloc_;
+ iMalloc->realloc = aRealloc_;
+ iMalloc->reallocz = aRealloc_;/* not using memory manager huhum o.o perhaps we could still do something about */
+ iMalloc->astrdup = aStrdup_;
+ iMalloc->free = aFree_;
#endif
iMalloc->post_shutdown = NULL;
}
diff --git a/src/common/malloc.h b/src/common/malloc.h
index 8dace2d68..53d2ebdd2 100644
--- a/src/common/malloc.h
+++ b/src/common/malloc.h
@@ -68,19 +68,19 @@
void malloc_defaults(void);
struct malloc_interface {
- void (*init) (void);
- void (*final) (void);
+ void (*init) (void);
+ void (*final) (void);
/* */
- void* (*malloc )(size_t size, const char *file, int line, const char *func);
- void* (*calloc )(size_t num, size_t size, const char *file, int line, const char *func);
- void* (*realloc )(void *p, size_t size, const char *file, int line, const char *func);
+ void* (*malloc)(size_t size, const char *file, int line, const char *func);
+ void* (*calloc)(size_t num, size_t size, const char *file, int line, const char *func);
+ void* (*realloc)(void *p, size_t size, const char *file, int line, const char *func);
void* (*reallocz)(void *p, size_t size, const char *file, int line, const char *func);
- char* (*astrdup )(const char *p, const char *file, int line, const char *func);
- void (*free )(void *p, const char *file, int line, const char *func);
+ char* (*astrdup)(const char *p, const char *file, int line, const char *func);
+ void (*free)(void *p, const char *file, int line, const char *func);
/* */
- void (*memory_check)(void);
- bool (*verify_ptr)(void* ptr);
- size_t (*usage) (void);
+ void (*memory_check)(void);
+ bool (*verify_ptr)(void* ptr);
+ size_t (*usage) (void);
/* */
void (*post_shutdown) (void);
};
diff --git a/src/common/mapindex.c b/src/common/mapindex.c
index f540c98d8..0d8a69726 100644
--- a/src/common/mapindex.c
+++ b/src/common/mapindex.c
@@ -24,7 +24,7 @@ struct mapindex_interface mapindex_s;
const char* mapindex_getmapname(const char* string, char* output) {
static char buf[MAP_NAME_LENGTH];
char* dest = (output != NULL) ? output : buf;
-
+
size_t len = strnlen(string, MAP_NAME_LENGTH_EXT);
if (len == MAP_NAME_LENGTH_EXT) {
ShowWarning("(mapindex_normalize_name) Map name '%*s' is too long!\n", 2*MAP_NAME_LENGTH_EXT, string);
@@ -32,11 +32,11 @@ const char* mapindex_getmapname(const char* string, char* output) {
}
if (len >= 4 && stricmp(&string[len-4], ".gat") == 0)
len -= 4; // strip .gat extension
-
+
len = min(len, MAP_NAME_LENGTH-1);
safestrncpy(dest, string, len+1);
memset(&dest[len], '\0', MAP_NAME_LENGTH-len);
-
+
return dest;
}
@@ -65,7 +65,7 @@ const char* mapindex_getmapname_ext(const char* string, char* output) {
}
memset(&dest[len], '\0', MAP_NAME_LENGTH_EXT-len);
-
+
return dest;
}
@@ -105,7 +105,7 @@ int mapindex_addmap(int index, const char* name) {
safestrncpy(mapindex->list[index].name, map_name, MAP_NAME_LENGTH);
strdb_iput(mapindex->db, map_name, index);
-
+
if (mapindex->num <= index)
mapindex->num = index+1;
@@ -115,12 +115,12 @@ int mapindex_addmap(int index, const char* name) {
unsigned short mapindex_name2id(const char* name) {
int i;
char map_name[MAP_NAME_LENGTH];
-
+
mapindex->getmapname(name, map_name);
if( (i = strdb_iget(mapindex->db, map_name)) )
return i;
-
+
ShowDebug("mapindex_name2id: Map \"%s\" not found in index list!\n", map_name);
return 0;
}
@@ -138,15 +138,15 @@ int mapindex_init(void) {
char line[1024];
int last_index = -1;
int index, total = 0;
- char map_name[12];
-
+ char map_name[13];
+
if( ( fp = fopen(mapindex->config_file,"r") ) == NULL ){
ShowFatalError("Unable to read mapindex config file %s!\n", mapindex->config_file);
exit(EXIT_FAILURE); //Server can't really run without this file.
}
mapindex->db = strdb_alloc(DB_OPT_DUP_KEY, MAP_NAME_LENGTH);
-
+
while(fgets(line, sizeof(line), fp)) {
if(line[0] == '/' && line[1] == '/')
continue;
@@ -165,13 +165,20 @@ int mapindex_init(void) {
}
fclose(fp);
- if( !strdb_iget(mapindex->db, MAP_DEFAULT) ) {
- ShowError("mapindex_init: MAP_DEFAULT '%s' not found in cache! update mapindex.h MAP_DEFAULT var!!!\n",MAP_DEFAULT);
- }
-
+ mapindex->check_default();
+
return total;
}
+bool mapindex_check_default(void)
+{
+ if (!strdb_iget(mapindex->db, mapindex->default_map)) {
+ ShowError("mapindex_init: MAP_DEFAULT '%s' not found in cache! update mapindex.h MAP_DEFAULT var!!!\n", mapindex->default_map);
+ return false;
+ }
+ return true;
+}
+
void mapindex_removemap(int index){
strdb_remove(mapindex->db, mapindex->list[index].name);
mapindex->list[index].name[0] = '\0';
@@ -183,14 +190,17 @@ void mapindex_final(void) {
void mapindex_defaults(void) {
mapindex = &mapindex_s;
-
+
/* TODO: place it in inter-server.conf? */
snprintf(mapindex->config_file, 80, "%s","db/map_index.txt");
/* */
mapindex->db = NULL;
mapindex->num = 0;
+ mapindex->default_map = MAP_DEFAULT;
+ mapindex->default_x = MAP_DEFAULT_X;
+ mapindex->default_y = MAP_DEFAULT_Y;
memset (&mapindex->list, 0, sizeof (mapindex->list));
-
+
/* */
mapindex->init = mapindex_init;
mapindex->final = mapindex_final;
@@ -201,4 +211,5 @@ void mapindex_defaults(void) {
mapindex->getmapname_ext = mapindex_getmapname_ext;
mapindex->name2id = mapindex_name2id;
mapindex->id2name = mapindex_id2name_sub;
+ mapindex->check_default = mapindex_check_default;
}
diff --git a/src/common/mapindex.h b/src/common/mapindex.h
index 446a2422d..91bf4562e 100644
--- a/src/common/mapindex.h
+++ b/src/common/mapindex.h
@@ -67,6 +67,12 @@ struct mapindex_interface {
DBMap *db;
/* number of entries in the index table */
int num;
+ /* default map name */
+ char *default_map;
+ /* default x on map */
+ int default_x;
+ /* default y on map */
+ int default_y;
/* index list -- since map server map count is *unlimited* this should be too */
struct {
char name[MAP_NAME_LENGTH];
@@ -84,6 +90,7 @@ struct mapindex_interface {
/* TODO: Hello World! make up your mind, this thing is int on some places and unsigned short on others */
unsigned short (*name2id) (const char*);
const char* (*id2name) (unsigned short,const char *file, int line, const char *func);
+ bool (*check_default) (void);
};
struct mapindex_interface *mapindex;
diff --git a/src/common/md5calc.c b/src/common/md5calc.c
index e7b506e27..18e502da2 100644
--- a/src/common/md5calc.c
+++ b/src/common/md5calc.c
@@ -25,22 +25,22 @@ static unsigned int *pX;
// String Table
static const unsigned int T[] = {
- 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, //0
- 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, //4
- 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, //8
- 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, //12
- 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, //16
- 0xd62f105d, 0x2441453, 0xd8a1e681, 0xe7d3fbc8, //20
- 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, //24
- 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, //28
- 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, //32
- 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, //36
- 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05, //40
- 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, //44
- 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, //48
- 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, //52
- 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, //56
- 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 //60
+ 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, //0
+ 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, //4
+ 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, //8
+ 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, //12
+ 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, //16
+ 0xd62f105d, 0x2441453, 0xd8a1e681, 0xe7d3fbc8, //20
+ 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, //24
+ 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, //28
+ 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, //32
+ 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, //36
+ 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05, //40
+ 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, //44
+ 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, //48
+ 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, //52
+ 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, //56
+ 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 //60
};
// ROTATE_LEFT The left is made to rotate x [ n-bit ]. This is diverted as it is from RFC.
@@ -49,25 +49,25 @@ static const unsigned int T[] = {
// The function used for other calculation
static unsigned int F(unsigned int X, unsigned int Y, unsigned int Z)
{
- return (X & Y) | (~X & Z);
+ return (X & Y) | (~X & Z);
}
static unsigned int G(unsigned int X, unsigned int Y, unsigned int Z)
{
- return (X & Z) | (Y & ~Z);
+ return (X & Z) | (Y & ~Z);
}
static unsigned int H(unsigned int X, unsigned int Y, unsigned int Z)
{
- return X ^ Y ^ Z;
+ return X ^ Y ^ Z;
}
static unsigned int I(unsigned int X, unsigned int Y, unsigned int Z)
{
- return Y ^ (X | ~Z);
+ return Y ^ (X | ~Z);
}
static unsigned int Round(unsigned int a, unsigned int b, unsigned int FGHI,
- unsigned int k, unsigned int s, unsigned int i)
+ unsigned int k, unsigned int s, unsigned int i)
{
- return b + ROTATE_LEFT(a + FGHI + pX[k] + T[i], s);
+ return b + ROTATE_LEFT(a + FGHI + pX[k] + T[i], s);
}
static void Round1(unsigned int *a, unsigned int b, unsigned int c,
@@ -113,103 +113,103 @@ static void MD5_Round_Calculate(const unsigned char *block,
| ( ((unsigned int )block[j+3]) << 24 );
- //Round 1
- Round1(&A,B,C,D, 0, 7, 0); Round1(&D,A,B,C, 1, 12, 1); Round1(&C,D,A,B, 2, 17, 2); Round1(&B,C,D,A, 3, 22, 3);
- Round1(&A,B,C,D, 4, 7, 4); Round1(&D,A,B,C, 5, 12, 5); Round1(&C,D,A,B, 6, 17, 6); Round1(&B,C,D,A, 7, 22, 7);
- Round1(&A,B,C,D, 8, 7, 8); Round1(&D,A,B,C, 9, 12, 9); Round1(&C,D,A,B, 10, 17, 10); Round1(&B,C,D,A, 11, 22, 11);
- Round1(&A,B,C,D, 12, 7, 12); Round1(&D,A,B,C, 13, 12, 13); Round1(&C,D,A,B, 14, 17, 14); Round1(&B,C,D,A, 15, 22, 15);
-
- //Round 2
- Round2(&A,B,C,D, 1, 5, 16); Round2(&D,A,B,C, 6, 9, 17); Round2(&C,D,A,B, 11, 14, 18); Round2(&B,C,D,A, 0, 20, 19);
- Round2(&A,B,C,D, 5, 5, 20); Round2(&D,A,B,C, 10, 9, 21); Round2(&C,D,A,B, 15, 14, 22); Round2(&B,C,D,A, 4, 20, 23);
- Round2(&A,B,C,D, 9, 5, 24); Round2(&D,A,B,C, 14, 9, 25); Round2(&C,D,A,B, 3, 14, 26); Round2(&B,C,D,A, 8, 20, 27);
- Round2(&A,B,C,D, 13, 5, 28); Round2(&D,A,B,C, 2, 9, 29); Round2(&C,D,A,B, 7, 14, 30); Round2(&B,C,D,A, 12, 20, 31);
-
- //Round 3
- Round3(&A,B,C,D, 5, 4, 32); Round3(&D,A,B,C, 8, 11, 33); Round3(&C,D,A,B, 11, 16, 34); Round3(&B,C,D,A, 14, 23, 35);
- Round3(&A,B,C,D, 1, 4, 36); Round3(&D,A,B,C, 4, 11, 37); Round3(&C,D,A,B, 7, 16, 38); Round3(&B,C,D,A, 10, 23, 39);
- Round3(&A,B,C,D, 13, 4, 40); Round3(&D,A,B,C, 0, 11, 41); Round3(&C,D,A,B, 3, 16, 42); Round3(&B,C,D,A, 6, 23, 43);
- Round3(&A,B,C,D, 9, 4, 44); Round3(&D,A,B,C, 12, 11, 45); Round3(&C,D,A,B, 15, 16, 46); Round3(&B,C,D,A, 2, 23, 47);
-
- //Round 4
- Round4(&A,B,C,D, 0, 6, 48); Round4(&D,A,B,C, 7, 10, 49); Round4(&C,D,A,B, 14, 15, 50); Round4(&B,C,D,A, 5, 21, 51);
- Round4(&A,B,C,D, 12, 6, 52); Round4(&D,A,B,C, 3, 10, 53); Round4(&C,D,A,B, 10, 15, 54); Round4(&B,C,D,A, 1, 21, 55);
- Round4(&A,B,C,D, 8, 6, 56); Round4(&D,A,B,C, 15, 10, 57); Round4(&C,D,A,B, 6, 15, 58); Round4(&B,C,D,A, 13, 21, 59);
- Round4(&A,B,C,D, 4, 6, 60); Round4(&D,A,B,C, 11, 10, 61); Round4(&C,D,A,B, 2, 15, 62); Round4(&B,C,D,A, 9, 21, 63);
-
- // Then perform the following additions. (let's add)
- *A2 = A + AA;
- *B2 = B + BB;
- *C2 = C + CC;
- *D2 = D + DD;
-
- //The clearance of confidential information
- memset(pX, 0, sizeof(X));
+ //Round 1
+ Round1(&A,B,C,D, 0, 7, 0); Round1(&D,A,B,C, 1, 12, 1); Round1(&C,D,A,B, 2, 17, 2); Round1(&B,C,D,A, 3, 22, 3);
+ Round1(&A,B,C,D, 4, 7, 4); Round1(&D,A,B,C, 5, 12, 5); Round1(&C,D,A,B, 6, 17, 6); Round1(&B,C,D,A, 7, 22, 7);
+ Round1(&A,B,C,D, 8, 7, 8); Round1(&D,A,B,C, 9, 12, 9); Round1(&C,D,A,B, 10, 17, 10); Round1(&B,C,D,A, 11, 22, 11);
+ Round1(&A,B,C,D, 12, 7, 12); Round1(&D,A,B,C, 13, 12, 13); Round1(&C,D,A,B, 14, 17, 14); Round1(&B,C,D,A, 15, 22, 15);
+
+ //Round 2
+ Round2(&A,B,C,D, 1, 5, 16); Round2(&D,A,B,C, 6, 9, 17); Round2(&C,D,A,B, 11, 14, 18); Round2(&B,C,D,A, 0, 20, 19);
+ Round2(&A,B,C,D, 5, 5, 20); Round2(&D,A,B,C, 10, 9, 21); Round2(&C,D,A,B, 15, 14, 22); Round2(&B,C,D,A, 4, 20, 23);
+ Round2(&A,B,C,D, 9, 5, 24); Round2(&D,A,B,C, 14, 9, 25); Round2(&C,D,A,B, 3, 14, 26); Round2(&B,C,D,A, 8, 20, 27);
+ Round2(&A,B,C,D, 13, 5, 28); Round2(&D,A,B,C, 2, 9, 29); Round2(&C,D,A,B, 7, 14, 30); Round2(&B,C,D,A, 12, 20, 31);
+
+ //Round 3
+ Round3(&A,B,C,D, 5, 4, 32); Round3(&D,A,B,C, 8, 11, 33); Round3(&C,D,A,B, 11, 16, 34); Round3(&B,C,D,A, 14, 23, 35);
+ Round3(&A,B,C,D, 1, 4, 36); Round3(&D,A,B,C, 4, 11, 37); Round3(&C,D,A,B, 7, 16, 38); Round3(&B,C,D,A, 10, 23, 39);
+ Round3(&A,B,C,D, 13, 4, 40); Round3(&D,A,B,C, 0, 11, 41); Round3(&C,D,A,B, 3, 16, 42); Round3(&B,C,D,A, 6, 23, 43);
+ Round3(&A,B,C,D, 9, 4, 44); Round3(&D,A,B,C, 12, 11, 45); Round3(&C,D,A,B, 15, 16, 46); Round3(&B,C,D,A, 2, 23, 47);
+
+ //Round 4
+ Round4(&A,B,C,D, 0, 6, 48); Round4(&D,A,B,C, 7, 10, 49); Round4(&C,D,A,B, 14, 15, 50); Round4(&B,C,D,A, 5, 21, 51);
+ Round4(&A,B,C,D, 12, 6, 52); Round4(&D,A,B,C, 3, 10, 53); Round4(&C,D,A,B, 10, 15, 54); Round4(&B,C,D,A, 1, 21, 55);
+ Round4(&A,B,C,D, 8, 6, 56); Round4(&D,A,B,C, 15, 10, 57); Round4(&C,D,A,B, 6, 15, 58); Round4(&B,C,D,A, 13, 21, 59);
+ Round4(&A,B,C,D, 4, 6, 60); Round4(&D,A,B,C, 11, 10, 61); Round4(&C,D,A,B, 2, 15, 62); Round4(&B,C,D,A, 9, 21, 63);
+
+ // Then perform the following additions. (let's add)
+ *A2 = A + AA;
+ *B2 = B + BB;
+ *C2 = C + CC;
+ *D2 = D + DD;
+
+ //The clearance of confidential information
+ memset(pX, 0, sizeof(X));
}
static void MD5_String2binary(const char * string, unsigned char * output)
{
//var
- /*8bit*/
- unsigned char padding_message[64]; //Extended message 512bit 64byte
- unsigned char *pstring; //The position of string in the present scanning notes is held.
-
- /*32bit*/
- unsigned int string_byte_len, //The byte chief of string is held.
- string_bit_len, //The bit length of string is held.
- copy_len, //The number of bytes which is used by 1-3 and which remained
- msg_digest[4]; //Message digest 128bit 4byte
- unsigned int *A = &msg_digest[0], //The message digest in accordance with RFC (reference)
- *B = &msg_digest[1],
- *C = &msg_digest[2],
- *D = &msg_digest[3];
+ /*8bit*/
+ unsigned char padding_message[64]; //Extended message 512bit 64byte
+ unsigned char *pstring; //The position of string in the present scanning notes is held.
+
+ /*32bit*/
+ unsigned int string_byte_len, //The byte chief of string is held.
+ string_bit_len, //The bit length of string is held.
+ copy_len, //The number of bytes which is used by 1-3 and which remained
+ msg_digest[4]; //Message digest 128bit 4byte
+ unsigned int *A = &msg_digest[0], //The message digest in accordance with RFC (reference)
+ *B = &msg_digest[1],
+ *C = &msg_digest[2],
+ *D = &msg_digest[3];
int i;
//prog
- //Step 3.Initialize MD Buffer (although it is the initialization; step 3 of A, B, C, and D -- unavoidable -- a head)
- *A = 0x67452301;
- *B = 0xefcdab89;
- *C = 0x98badcfe;
- *D = 0x10325476;
-
- //Step 1.Append Padding Bits (extension of a mark bit)
- //1-1
- string_byte_len = (unsigned int)strlen(string); //The byte chief of a character sequence is acquired.
- pstring = (unsigned char *)string; //The position of the present character sequence is set.
-
- //1-2 Repeat calculation until length becomes less than 64 bytes.
- for (i=string_byte_len; 64<=i; i-=64,pstring+=64)
- MD5_Round_Calculate(pstring, A,B,C,D);
-
- //1-3
- copy_len = string_byte_len % 64; //The number of bytes which remained is computed.
- strncpy((char *)padding_message, (char *)pstring, copy_len); //A message is copied to an extended bit sequence.
- memset(padding_message+copy_len, 0, 64 - copy_len); //It buries by 0 until it becomes extended bit length.
- padding_message[copy_len] |= 0x80; //The next of a message is 1.
-
- //1-4
- //If 56 bytes or more (less than 64 bytes) of remainder becomes, it will calculate by extending to 64 bytes.
- if (56 <= copy_len) {
- MD5_Round_Calculate(padding_message, A,B,C,D);
- memset(padding_message, 0, 56); //56 bytes is newly fill uped with 0.
- }
-
- //Step 2.Append Length (the information on length is added)
- string_bit_len = string_byte_len * 8; //From the byte chief to bit length (32 bytes of low rank)
- memcpy(&padding_message[56], &string_bit_len, 4); //32 bytes of low rank is set.
-
- //When bit length cannot be expressed in 32 bytes of low rank, it is a beam raising to a higher rank.
- if (UINT_MAX / 8 < string_byte_len) {
- unsigned int high = (string_byte_len - UINT_MAX / 8) * 8;
- memcpy(&padding_message[60], &high, 4);
- } else
- memset(&padding_message[60], 0, 4); //In this case, it is good for a higher rank at 0.
-
- //Step 4.Process Message in 16-Word Blocks (calculation of MD5)
- MD5_Round_Calculate(padding_message, A,B,C,D);
-
- //Step 5.Output (output)
- memcpy(output,msg_digest,16);
+ //Step 3.Initialize MD Buffer (although it is the initialization; step 3 of A, B, C, and D -- unavoidable -- a head)
+ *A = 0x67452301;
+ *B = 0xefcdab89;
+ *C = 0x98badcfe;
+ *D = 0x10325476;
+
+ //Step 1.Append Padding Bits (extension of a mark bit)
+ //1-1
+ string_byte_len = (unsigned int)strlen(string); //The byte chief of a character sequence is acquired.
+ pstring = (unsigned char *)string; //The position of the present character sequence is set.
+
+ //1-2 Repeat calculation until length becomes less than 64 bytes.
+ for (i=string_byte_len; 64<=i; i-=64,pstring+=64)
+ MD5_Round_Calculate(pstring, A,B,C,D);
+
+ //1-3
+ copy_len = string_byte_len % 64; //The number of bytes which remained is computed.
+ strncpy((char *)padding_message, (char *)pstring, copy_len); //A message is copied to an extended bit sequence.
+ memset(padding_message+copy_len, 0, 64 - copy_len); //It buries by 0 until it becomes extended bit length.
+ padding_message[copy_len] |= 0x80; //The next of a message is 1.
+
+ //1-4
+ //If 56 bytes or more (less than 64 bytes) of remainder becomes, it will calculate by extending to 64 bytes.
+ if (56 <= copy_len) {
+ MD5_Round_Calculate(padding_message, A,B,C,D);
+ memset(padding_message, 0, 56); //56 bytes is newly fill uped with 0.
+ }
+
+ //Step 2.Append Length (the information on length is added)
+ string_bit_len = string_byte_len * 8; //From the byte chief to bit length (32 bytes of low rank)
+ memcpy(&padding_message[56], &string_bit_len, 4); //32 bytes of low rank is set.
+
+ //When bit length cannot be expressed in 32 bytes of low rank, it is a beam raising to a higher rank.
+ if (UINT_MAX / 8 < string_byte_len) {
+ unsigned int high = (string_byte_len - UINT_MAX / 8) * 8;
+ memcpy(&padding_message[60], &high, 4);
+ } else
+ memset(&padding_message[60], 0, 4); //In this case, it is good for a higher rank at 0.
+
+ //Step 4.Process Message in 16-Word Blocks (calculation of MD5)
+ MD5_Round_Calculate(padding_message, A,B,C,D);
+
+ //Step 5.Output (output)
+ memcpy(output,msg_digest,16);
}
//-------------------------------------------------------------------
@@ -227,7 +227,7 @@ void MD5_String(const char * string, char * output)
unsigned char digest[16];
MD5_String2binary(string,digest);
- sprintf(output, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
+ sprintf(output, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
digest[ 0], digest[ 1], digest[ 2], digest[ 3],
digest[ 4], digest[ 5], digest[ 6], digest[ 7],
digest[ 8], digest[ 9], digest[10], digest[11],
diff --git a/src/common/mmo.h b/src/common/mmo.h
index ff7c1da28..ef42e49c0 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -49,7 +49,7 @@
// 20120307 - 2012-03-07aRagexeRE+ - 0x970
#ifndef PACKETVER
- #define PACKETVER 20131223
+ #define PACKETVER 20141022
#endif // PACKETVER
//Uncomment the following line if your client is ragexeRE instead of ragexe (required because of conflicting packets in ragexe vs ragexeRE).
@@ -73,14 +73,14 @@
#define HOTKEY_SAVING
#if PACKETVER < 20090603
- // (27 = 9 skills x 3 bars) (0x02b9,191)
- #define MAX_HOTKEYS 27
+ // (27 = 9 skills x 3 bars) (0x02b9,191)
+ #define MAX_HOTKEYS 27
#elif PACKETVER < 20090617
- // (36 = 9 skills x 4 bars) (0x07d9,254)
- #define MAX_HOTKEYS 36
+ // (36 = 9 skills x 4 bars) (0x07d9,254)
+ #define MAX_HOTKEYS 36
#else // >= 20090617
- // (38 = 9 skills x 4 bars & 2 Quickslots)(0x07d9,268)
- #define MAX_HOTKEYS 38
+ // (38 = 9 skills x 4 bars & 2 Quickslots)(0x07d9,268)
+ #define MAX_HOTKEYS 38
#endif // 20090603
#endif // 20070227
@@ -376,6 +376,14 @@ struct s_homunculus { //[orn]
int int_;
int dex;
int luk;
+
+ int str_value;
+ int agi_value;
+ int vit_value;
+ int int_value;
+ int dex_value;
+ int luk_value;
+
int8 spiritball; //for homun S [lighta]
};
@@ -469,7 +477,7 @@ struct mmo_charstatus {
/* `account_data` modifiers */
unsigned short mod_exp,mod_drop,mod_death;
-
+
unsigned char font;
uint32 uniqueitem_counter;
@@ -593,15 +601,15 @@ struct guild {
struct guild_alliance alliance[MAX_GUILDALLIANCE];
struct guild_expulsion expulsion[MAX_GUILDEXPULSION];
struct guild_skill skill[MAX_GUILDSKILL];
-
+
/* used on char.c to state what kind of data is being saved/processed */
unsigned short save_flag;
-
+
short *instance;
unsigned short instances;
-
+
struct hChSysCh *channel;
-
+
/* HPM Custom Struct */
struct HPluginData **hdata;
unsigned int hdatac;
diff --git a/src/common/mutex.c b/src/common/mutex.c
index f046febf6..31202d440 100644
--- a/src/common/mutex.c
+++ b/src/common/mutex.c
@@ -52,19 +52,19 @@ struct racond{
ramutex *ramutex_create(void) {
struct ramutex *m;
-
+
m = (struct ramutex*)aMalloc( sizeof(struct ramutex) );
if (m == NULL) {
ShowFatalError("ramutex_create: OOM while allocating %"PRIuS" bytes.\n", sizeof(struct ramutex));
return NULL;
}
-
+
#ifdef WIN32
InitializeCriticalSection(&m->hMutex);
#else
pthread_mutex_init(&m->hMutex, NULL);
#endif
-
+
return m;
}//end: ramutex_create()
@@ -101,7 +101,7 @@ bool ramutex_trylock(ramutex *m) {
#else
if(pthread_mutex_trylock(&m->hMutex) == 0)
return true;
-
+
return false;
#endif
}//end: ramutex_trylock()
@@ -126,7 +126,7 @@ void ramutex_unlock(ramutex *m) {
racond *racond_create(void) {
struct racond *c;
-
+
c = (struct racond*)aMalloc( sizeof(struct racond) );
if (c == NULL) {
ShowFatalError("racond_create: OOM while allocating %"PRIuS" bytes\n", sizeof(struct racond));
@@ -135,13 +135,13 @@ racond *racond_create(void) {
#ifdef WIN32
c->nWaiters = 0;
- c->events[ EVENT_COND_SIGNAL ] = CreateEvent( NULL, FALSE, FALSE, NULL );
- c->events[ EVENT_COND_BROADCAST ] = CreateEvent( NULL, TRUE, FALSE, NULL );
+ c->events[EVENT_COND_SIGNAL] = CreateEvent(NULL, FALSE, FALSE, NULL);
+ c->events[EVENT_COND_BROADCAST] = CreateEvent(NULL, TRUE, FALSE, NULL);
InitializeCriticalSection( &c->waiters_lock );
#else
pthread_cond_init(&c->hCond, NULL);
#endif
-
+
return c;
}//end: racond_create()
@@ -174,24 +174,20 @@ void racond_wait(racond *c, ramutex *m, sysint timeout_ticks) {
ms = INFINITE;
else
ms = (timeout_ticks > MAXDWORD) ? (MAXDWORD - 1) : (DWORD)timeout_ticks;
-
-
+
// we can release the mutex (m) here, cause win's
// manual reset events maintain state when used with
// SetEvent()
ramutex_unlock(m);
result = WaitForMultipleObjects(2, c->events, FALSE, ms);
-
-
+
EnterCriticalSection(&c->waiters_lock);
c->nWaiters--;
if( (result == WAIT_OBJECT_0 + EVENT_COND_BROADCAST) && (c->nWaiters == 0) )
is_last = true; // Broadcast called!
LeaveCriticalSection(&c->waiters_lock);
-
-
// we are the last waiter that has to be notified, or to stop waiting
// so we have to do a manual reset
if(is_last == true)
@@ -206,10 +202,10 @@ void racond_wait(racond *c, ramutex *m, sysint timeout_ticks) {
}else{
struct timespec wtime;
int64 exact_timeout = timer->gettick() + timeout_ticks;
-
+
wtime.tv_sec = exact_timeout/1000;
wtime.tv_nsec = (exact_timeout%1000)*1000000;
-
+
pthread_cond_timedwait( &c->hCond, &m->hMutex, &wtime);
}
@@ -219,13 +215,15 @@ void racond_wait(racond *c, ramutex *m, sysint timeout_ticks) {
void racond_signal(racond *c) {
#ifdef WIN32
-// bool has_waiters = false;
-// EnterCriticalSection(&c->waiters_lock);
-// if(c->nWaiters > 0)
-// has_waiters = true;
-// LeaveCriticalSection(&c->waiters_lock);
-
-// if(has_waiters == true)
+# if 0
+ bool has_waiters = false;
+ EnterCriticalSection(&c->waiters_lock);
+ if(c->nWaiters > 0)
+ has_waiters = true;
+ LeaveCriticalSection(&c->waiters_lock);
+
+ if(has_waiters == true)
+# endif // 0
SetEvent( c->events[ EVENT_COND_SIGNAL ] );
#else
pthread_cond_signal(&c->hCond);
@@ -235,13 +233,15 @@ void racond_signal(racond *c) {
void racond_broadcast(racond *c) {
#ifdef WIN32
-// bool has_waiters = false;
-// EnterCriticalSection(&c->waiters_lock);
-// if(c->nWaiters > 0)
-// has_waiters = true;
-// LeaveCriticalSection(&c->waiters_lock);
-
-// if(has_waiters == true)
+# if 0
+ bool has_waiters = false;
+ EnterCriticalSection(&c->waiters_lock);
+ if(c->nWaiters > 0)
+ has_waiters = true;
+ LeaveCriticalSection(&c->waiters_lock);
+
+ if(has_waiters == true)
+# endif // 0
SetEvent( c->events[ EVENT_COND_BROADCAST ] );
#else
pthread_cond_broadcast(&c->hCond);
diff --git a/src/common/nullpo.c b/src/common/nullpo.c
index a3471b00d..0333c02ef 100644
--- a/src/common/nullpo.c
+++ b/src/common/nullpo.c
@@ -24,10 +24,10 @@
void assert_report(const char *file, int line, const char *func, const char *targetname, const char *title) {
if (file == NULL)
file = "??";
-
+
if (func == NULL || *func == '\0')
func = "unknown";
-
+
ShowError("--- %s --------------------------------------------\n", title);
ShowError("%s:%d: '%s' in function `%s'\n", file, line, targetname, func);
ShowError("--- end %s ----------------------------------------\n", title);
diff --git a/src/common/showmsg.c b/src/common/showmsg.c
index f3982d364..0dd645eeb 100644
--- a/src/common/showmsg.c
+++ b/src/common/showmsg.c
@@ -93,20 +93,20 @@ int console_msg_log = 0;//[Ind] msg error logging
//
// \033[#;...;#m - Set Graphics Rendition (SGR)
//
-// printf("\x1b[1;31;40m"); // Bright red on black
-// printf("\x1b[3;33;45m"); // Blinking yellow on magenta (blink not implemented)
-// printf("\x1b[1;30;47m"); // Bright black (grey) on dim white
+// printf("\x1b[1;31;40m"); // Bright red on black
+// printf("\x1b[3;33;45m"); // Blinking yellow on magenta (blink not implemented)
+// printf("\x1b[1;30;47m"); // Bright black (grey) on dim white
//
// Style Foreground Background
-// 1st Digit 2nd Digit 3rd Digit RGB
-// 0 - Reset 30 - Black 40 - Black 000
-// 1 - FG Bright 31 - Red 41 - Red 100
-// 2 - Unknown 32 - Green 42 - Green 010
-// 3 - Blink 33 - Yellow 43 - Yellow 110
-// 4 - Underline 34 - Blue 44 - Blue 001
-// 5 - BG Bright 35 - Magenta 45 - Magenta 101
-// 6 - Unknown 36 - Cyan 46 - Cyan 011
-// 7 - Reverse 37 - White 47 - White 111
+// 1st Digit 2nd Digit 3rd Digit RGB
+// 0 - Reset 30 - Black 40 - Black 000
+// 1 - FG Bright 31 - Red 41 - Red 100
+// 2 - Unknown 32 - Green 42 - Green 010
+// 3 - Blink 33 - Yellow 43 - Yellow 110
+// 4 - Underline 34 - Blue 44 - Blue 001
+// 5 - BG Bright 35 - Magenta 45 - Magenta 101
+// 6 - Unknown 36 - Cyan 46 - Cyan 011
+// 7 - Reverse 37 - White 47 - White 111
// 8 - Concealed (invisible)
//
// \033[#A - Cursor Up (CUU)
@@ -181,7 +181,7 @@ Escape sequences for Select Character Set
#define is_console(handle) (FILE_TYPE_CHAR==GetFileType(handle))
///////////////////////////////////////////////////////////////////////////////
-int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
+int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
{
/////////////////////////////////////////////////////////////////
/* XXX Two streams are being used. Disabled to avoid inconsistency [flaviojs]
@@ -207,19 +207,18 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
// start with processing
p = BUFVAL(tempbuf);
- while ((q = strchr(p, 0x1b)) != NULL)
- { // find the escape character
+ while ((q = strchr(p, 0x1b)) != NULL) {
+ // find the escape character
if( 0==WriteConsole(handle, p, (DWORD)(q-p), &written, 0) ) // write up to the escape
WriteFile(handle, p, (DWORD)(q-p), &written, 0);
- if( q[1]!='[' )
- { // write the escape char (whatever purpose it has)
+ if (q[1]!='[') {
+ // write the escape char (whatever purpose it has)
if(0==WriteConsole(handle, q, 1, &written, 0) )
WriteFile(handle,q, 1, &written, 0);
- p=q+1; //and start searching again
- }
- else
- { // from here, we will skip the '\033['
+ p=q+1; //and start searching again
+ } else {
+ // from here, we will skip the '\033['
// we break at the first unprocessible position
// assuming regular text is starting there
uint8 numbers[16], numpoint=0;
@@ -231,84 +230,72 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
// skip escape and bracket
q=q+2;
- for(;;)
- {
- if( ISDIGIT(*q) )
- { // add number to number array, only accept 2digits, shift out the rest
+ for (;;) {
+ if (ISDIGIT(*q)) {
+ // add number to number array, only accept 2digits, shift out the rest
// so // \033[123456789m will become \033[89m
numbers[numpoint] = (numbers[numpoint]<<4) | (*q-'0');
++q;
// and next character
continue;
- }
- else if( *q == ';' )
- { // delimiter
- if(numpoint<sizeof(numbers)/sizeof(*numbers))
- { // go to next array position
+ } else if (*q == ';') {
+ // delimiter
+ if (numpoint < sizeof(numbers)/sizeof(*numbers)) {
+ // go to next array position
numpoint++;
- }
- else
- { // array is full, so we 'forget' the first value
+ } else {
+ // array is full, so we 'forget' the first value
memmove(numbers,numbers+1,sizeof(numbers)/sizeof(*numbers)-1);
numbers[sizeof(numbers)/sizeof(*numbers)-1]=0;
}
++q;
// and next number
continue;
- }
- else if( *q == 'm' )
- { // \033[#;...;#m - Set Graphics Rendition (SGR)
+ } else if (*q == 'm') {
+ // \033[#;...;#m - Set Graphics Rendition (SGR)
uint8 i;
- for(i=0; i<= numpoint; ++i)
- {
- if( 0x00 == (0xF0 & numbers[i]) )
- { // upper nibble 0
- if( 0 == numbers[i] )
- { // reset
+ for (i=0; i<= numpoint; ++i) {
+ if (0x00 == (0xF0 & numbers[i])) {
+ // upper nibble 0
+ if (0 == numbers[i]) {
+ // reset
info.wAttributes = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
- }
- else if( 1==numbers[i] )
- { // set foreground intensity
+ } else if (1 == numbers[i]) {
+ // set foreground intensity
info.wAttributes |= FOREGROUND_INTENSITY;
- }
- else if( 5==numbers[i] )
- { // set background intensity
+ } else if (5 == numbers[i]) {
+ // set background intensity
info.wAttributes |= BACKGROUND_INTENSITY;
- }
- else if( 7==numbers[i] )
- { // reverse colors (just xor them)
+ } else if (7 == numbers[i]) {
+ // reverse colors (just xor them)
info.wAttributes ^= FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE |
- BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE;
+ BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE;
}
//case '2': // not existing
- //case '3': // blinking (not implemented)
- //case '4': // underline (not implemented)
+ //case '3': // blinking (not implemented)
+ //case '4': // underline (not implemented)
//case '6': // not existing
//case '8': // concealed (not implemented)
//case '9': // not existing
- }
- else if( 0x20 == (0xF0 & numbers[i]) )
- { // off
+ } else if (0x20 == (0xF0 & numbers[i])) {
+ // off
- if( 1==numbers[i] )
- { // set foreground intensity off
+ if (1 == numbers[i]) {
+ // set foreground intensity off
info.wAttributes &= ~FOREGROUND_INTENSITY;
- }
- else if( 5==numbers[i] )
- { // set background intensity off
+ } else if (5 == numbers[i]) {
+ // set background intensity off
info.wAttributes &= ~BACKGROUND_INTENSITY;
- }
- else if( 7==numbers[i] )
- { // reverse colors (just xor them)
+ } else if (7 == numbers[i]) {
+ // reverse colors (just xor them)
info.wAttributes ^= FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE |
- BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE;
+ BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE;
}
- }
- else if( 0x30 == (0xF0 & numbers[i]) )
- { // foreground
+ } else if (0x30 == (0xF0 & numbers[i])) {
+ // foreground
uint8 num = numbers[i]&0x0F;
if(num==9) info.wAttributes |= FOREGROUND_INTENSITY;
- if(num>7) num=7; // set white for 37, 38 and 39
+ if(num>7) num=7; // set white for 37, 38 and 39
info.wAttributes &= ~(FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
if( (num & 0x01)>0 ) // lowest bit set = red
info.wAttributes |= FOREGROUND_RED;
@@ -316,12 +303,11 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
info.wAttributes |= FOREGROUND_GREEN;
if( (num & 0x04)>0 ) // third bit set = blue
info.wAttributes |= FOREGROUND_BLUE;
- }
- else if( 0x40 == (0xF0 & numbers[i]) )
- { // background
+ } else if (0x40 == (0xF0 & numbers[i])) {
+ // background
uint8 num = numbers[i]&0x0F;
if(num==9) info.wAttributes |= BACKGROUND_INTENSITY;
- if(num>7) num=7; // set white for 47, 48 and 49
+ if(num>7) num=7; // set white for 47, 48 and 49
info.wAttributes &= ~(BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
if( (num & 0x01)>0 ) // lowest bit set = red
info.wAttributes |= BACKGROUND_RED;
@@ -333,61 +319,51 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
}
// set the attributes
SetConsoleTextAttribute(handle, info.wAttributes);
- }
- else if( *q=='J' )
- { // \033[#J - Erase Display (ED)
- // \033[0J - Clears the screen from cursor to end of display. The cursor position is unchanged.
- // \033[1J - Clears the screen from start to cursor. The cursor position is unchanged.
- // \033[2J - Clears the screen and moves the cursor to the home position (line 1, column 1).
+ } else if (*q=='J') {
+ // \033[#J - Erase Display (ED)
+ // \033[0J - Clears the screen from cursor to end of display. The cursor position is unchanged.
+ // \033[1J - Clears the screen from start to cursor. The cursor position is unchanged.
+ // \033[2J - Clears the screen and moves the cursor to the home position (line 1, column 1).
uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F);
int cnt;
DWORD tmp;
COORD origin = {0,0};
- if(num==1)
- { // chars from start up to and including cursor
+ if (num == 1) {
+ // chars from start up to and including cursor
cnt = info.dwSize.X * info.dwCursorPosition.Y + info.dwCursorPosition.X + 1;
- }
- else if(num==2)
- { // Number of chars on screen.
+ } else if (num == 2) {
+ // Number of chars on screen.
cnt = info.dwSize.X * info.dwSize.Y;
SetConsoleCursorPosition(handle, origin);
- }
- else// 0 and default
- { // number of chars from cursor to end
+ } else { /* 0 and default */
+ // number of chars from cursor to end
origin = info.dwCursorPosition;
cnt = info.dwSize.X * (info.dwSize.Y - info.dwCursorPosition.Y) - info.dwCursorPosition.X;
}
FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
FillConsoleOutputCharacter(handle, ' ', cnt, origin, &tmp);
- }
- else if( *q=='K' )
- { // \033[K : clear line from actual position to end of the line
- // \033[0K - Clears all characters from the cursor position to the end of the line.
- // \033[1K - Clears all characters from start of line to the cursor position.
- // \033[2K - Clears all characters of the whole line.
+ } else if (*q=='K') {
+ // \033[K : clear line from actual position to end of the line
+ // \033[0K - Clears all characters from the cursor position to the end of the line.
+ // \033[1K - Clears all characters from start of line to the cursor position.
+ // \033[2K - Clears all characters of the whole line.
uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F);
COORD origin = {0,info.dwCursorPosition.Y}; //warning C4204
SHORT cnt;
DWORD tmp;
- if(num==1)
- {
+ if (num == 1) {
cnt = info.dwCursorPosition.X + 1;
- }
- else if(num==2)
- {
+ } else if (num == 2) {
cnt = info.dwSize.X;
- }
- else// 0 and default
- {
+ } else { /* 0 and default */
origin = info.dwCursorPosition;
cnt = info.dwSize.X - info.dwCursorPosition.X; // how many spaces until line is full
}
FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
FillConsoleOutputCharacter(handle, ' ', cnt, origin, &tmp);
- }
- else if( *q == 'H' || *q == 'f' )
- { // \033[#;#H - Cursor Position (CUP)
+ } else if (*q == 'H' || *q == 'f') {
+ // \033[#;#H - Cursor Position (CUP)
// \033[#;#f - Horizontal & Vertical Position
// The first # specifies the line number, the second # specifies the column.
// The default for both is 1
@@ -397,59 +373,52 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
if( info.dwCursorPosition.X >= info.dwSize.X ) info.dwCursorPosition.Y = info.dwSize.X-1;
if( info.dwCursorPosition.Y >= info.dwSize.Y ) info.dwCursorPosition.Y = info.dwSize.Y-1;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q=='s' )
- { // \033[s - Save Cursor Position (SCP)
+ } else if (*q=='s') {
+ // \033[s - Save Cursor Position (SCP)
/* XXX Two streams are being used. Disabled to avoid inconsistency [flaviojs]
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(handle, &info);
saveposition = info.dwCursorPosition;
*/
- }
- else if( *q=='u' )
- { // \033[u - Restore cursor position (RCP)
+ } else if (*q=='u') {
+ // \033[u - Restore cursor position (RCP)
/* XXX Two streams are being used. Disabled to avoid inconsistency [flaviojs]
SetConsoleCursorPosition(handle, saveposition);
*/
- }
- else if( *q == 'A' )
- { // \033[#A - Cursor Up (CUU)
+ } else if (*q == 'A') {
+ // \033[#A - Cursor Up (CUU)
// Moves the cursor UP # number of lines
info.dwCursorPosition.Y -= (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
if( info.dwCursorPosition.Y < 0 )
info.dwCursorPosition.Y = 0;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'B' )
- { // \033[#B - Cursor Down (CUD)
+ } else if (*q == 'B') {
+ // \033[#B - Cursor Down (CUD)
// Moves the cursor DOWN # number of lines
info.dwCursorPosition.Y += (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
if( info.dwCursorPosition.Y >= info.dwSize.Y )
info.dwCursorPosition.Y = info.dwSize.Y-1;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'C' )
- { // \033[#C - Cursor Forward (CUF)
+ } else if (*q == 'C') {
+ // \033[#C - Cursor Forward (CUF)
// Moves the cursor RIGHT # number of columns
info.dwCursorPosition.X += (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
if( info.dwCursorPosition.X >= info.dwSize.X )
info.dwCursorPosition.X = info.dwSize.X-1;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'D' )
- { // \033[#D - Cursor Backward (CUB)
+ } else if (*q == 'D') {
+ // \033[#D - Cursor Backward (CUB)
// Moves the cursor LEFT # number of columns
info.dwCursorPosition.X -= (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
if( info.dwCursorPosition.X < 0 )
info.dwCursorPosition.X = 0;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'E' )
- { // \033[#E - Cursor Next Line (CNL)
+ } else if (*q == 'E') {
+ // \033[#E - Cursor Next Line (CNL)
// Moves the cursor down the indicated # of rows, to column 1
info.dwCursorPosition.Y += (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
info.dwCursorPosition.X = 0;
@@ -457,9 +426,8 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
if( info.dwCursorPosition.Y >= info.dwSize.Y )
info.dwCursorPosition.Y = info.dwSize.Y-1;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'F' )
- { // \033[#F - Cursor Preceding Line (CPL)
+ } else if (*q == 'F') {
+ // \033[#F - Cursor Preceding Line (CPL)
// Moves the cursor up the indicated # of rows, to column 1.
info.dwCursorPosition.Y -= (numbers[numpoint])?(numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F):1;
info.dwCursorPosition.X = 0;
@@ -467,21 +435,18 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
if( info.dwCursorPosition.Y < 0 )
info.dwCursorPosition.Y = 0;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'G' )
- { // \033[#G - Cursor Horizontal Absolute (CHA)
+ } else if (*q == 'G') {
+ // \033[#G - Cursor Horizontal Absolute (CHA)
// Moves the cursor to indicated column in current row.
info.dwCursorPosition.X = (numbers[numpoint])?(numbers[numpoint]>>4)*10+((numbers[numpoint]&0x0F)-1):0;
if( info.dwCursorPosition.X >= info.dwSize.X )
info.dwCursorPosition.X = info.dwSize.X-1;
SetConsoleCursorPosition(handle, info.dwCursorPosition);
- }
- else if( *q == 'L' || *q == 'M' || *q == '@' || *q == 'P')
- { // not implemented, just skip
- }
- else
- { // no number nor valid sequencer
+ } else if (*q == 'L' || *q == 'M' || *q == '@' || *q == 'P') {
+ // not implemented, just skip
+ } else {
+ // no number nor valid sequencer
// something is fishy, we break and give the current char free
--q;
}
@@ -491,7 +456,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
}// end while
}
}
- if (*p) // write the rest of the buffer
+ if (*p) // write the rest of the buffer
if( 0==WriteConsole(handle, p, (DWORD)strlen(p), &written, 0) )
WriteFile(handle, p, (DWORD)strlen(p), &written, 0);
FREEBUF(tempbuf);
@@ -519,7 +484,7 @@ int FPRINTF(HANDLE handle, const char *fmt, ...) {
#define is_console(file) (0!=isatty(fileno(file)))
//vprintf_without_ansiformats
-int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
+int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
{
char *p, *q;
NEWBUF(tempbuf); // temporary buffer
@@ -538,88 +503,70 @@ int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
// start with processing
p = BUFVAL(tempbuf);
- while ((q = strchr(p, 0x1b)) != NULL)
- { // find the escape character
+ while ((q = strchr(p, 0x1b)) != NULL) {
+ // find the escape character
fprintf(file, "%.*s", (int)(q-p), p); // write up to the escape
- if( q[1]!='[' )
- { // write the escape char (whatever purpose it has)
+ if (q[1]!='[') {
+ // write the escape char (whatever purpose it has)
fprintf(file, "%.*s", 1, q);
- p=q+1; //and start searching again
- }
- else
- { // from here, we will skip the '\033['
+ p=q+1; //and start searching again
+ } else {
+ // from here, we will skip the '\033['
// we break at the first unprocessible position
// assuming regular text is starting there
// skip escape and bracket
q=q+2;
- while(1)
- {
- if( ISDIGIT(*q) )
- {
+ while(1) {
+ if (ISDIGIT(*q)) {
++q;
// and next character
continue;
- }
- else if( *q == ';' )
- { // delimiter
+ } else if (*q == ';') {
+ // delimiter
++q;
// and next number
continue;
- }
- else if( *q == 'm' )
- { // \033[#;...;#m - Set Graphics Rendition (SGR)
+ } else if (*q == 'm') {
+ // \033[#;...;#m - Set Graphics Rendition (SGR)
// set the attributes
+ } else if (*q=='J') {
+ // \033[#J - Erase Display (ED)
}
- else if( *q=='J' )
- { // \033[#J - Erase Display (ED)
- }
- else if( *q=='K' )
- { // \033[K : clear line from actual position to end of the line
- }
- else if( *q == 'H' || *q == 'f' )
- { // \033[#;#H - Cursor Position (CUP)
+ else if (*q=='K') {
+ // \033[K : clear line from actual position to end of the line
+ } else if (*q == 'H' || *q == 'f') {
+ // \033[#;#H - Cursor Position (CUP)
// \033[#;#f - Horizontal & Vertical Position
- }
- else if( *q=='s' )
- { // \033[s - Save Cursor Position (SCP)
- }
- else if( *q=='u' )
- { // \033[u - Restore cursor position (RCP)
- }
- else if( *q == 'A' )
- { // \033[#A - Cursor Up (CUU)
+ } else if (*q=='s') {
+ // \033[s - Save Cursor Position (SCP)
+ } else if (*q=='u') {
+ // \033[u - Restore cursor position (RCP)
+ } else if (*q == 'A') {
+ // \033[#A - Cursor Up (CUU)
// Moves the cursor UP # number of lines
- }
- else if( *q == 'B' )
- { // \033[#B - Cursor Down (CUD)
+ } else if (*q == 'B') {
+ // \033[#B - Cursor Down (CUD)
// Moves the cursor DOWN # number of lines
- }
- else if( *q == 'C' )
- { // \033[#C - Cursor Forward (CUF)
+ } else if (*q == 'C') {
+ // \033[#C - Cursor Forward (CUF)
// Moves the cursor RIGHT # number of columns
- }
- else if( *q == 'D' )
- { // \033[#D - Cursor Backward (CUB)
+ } else if (*q == 'D') {
+ // \033[#D - Cursor Backward (CUB)
// Moves the cursor LEFT # number of columns
- }
- else if( *q == 'E' )
- { // \033[#E - Cursor Next Line (CNL)
+ } else if (*q == 'E') {
+ // \033[#E - Cursor Next Line (CNL)
// Moves the cursor down the indicated # of rows, to column 1
- }
- else if( *q == 'F' )
- { // \033[#F - Cursor Preceding Line (CPL)
+ } else if (*q == 'F') {
+ // \033[#F - Cursor Preceding Line (CPL)
// Moves the cursor up the indicated # of rows, to column 1.
- }
- else if( *q == 'G' )
- { // \033[#G - Cursor Horizontal Absolute (CHA)
+ } else if (*q == 'G') {
+ // \033[#G - Cursor Horizontal Absolute (CHA)
// Moves the cursor to indicated column in current row.
- }
- else if( *q == 'L' || *q == 'M' || *q == '@' || *q == 'P')
- { // not implemented, just skip
- }
- else
- { // no number nor valid sequencer
+ } else if (*q == 'L' || *q == 'M' || *q == '@' || *q == 'P') {
+ // not implemented, just skip
+ } else {
+ // no number nor valid sequencer
// something is fishy, we break and give the current char free
--q;
}
@@ -629,7 +576,7 @@ int VFPRINTF(FILE *file, const char *fmt, va_list argptr)
}// end while
}
}
- if (*p) // write the rest of the buffer
+ if (*p) // write the rest of the buffer
fprintf(file, "%s", p);
FREEBUF(tempbuf);
return 0;
@@ -661,7 +608,7 @@ int vShowMessage_(enum msg_type flag, const char *string, va_list ap)
#if defined(DEBUGLOGMAP) || defined(DEBUGLOGCHAR) || defined(DEBUGLOGLOGIN)
FILE *fp;
#endif
-
+
if (!string || *string == '\0') {
ShowError("Empty string passed to vShowMessage_().\n");
return 1;
@@ -700,8 +647,8 @@ int vShowMessage_(enum msg_type flag, const char *string, va_list ap)
)
return 0; //Do not print it.
- if (timestamp_format[0] && flag != MSG_NONE)
- { //Display time format. [Skotlex]
+ if (timestamp_format[0] && flag != MSG_NONE) {
+ //Display time format. [Skotlex]
time_t t = time(NULL);
strftime(prefix, 80, timestamp_format, localtime(&t));
} else prefix[0]='\0';
@@ -738,8 +685,8 @@ int vShowMessage_(enum msg_type flag, const char *string, va_list ap)
return 1;
}
- if (flag == MSG_ERROR || flag == MSG_FATALERROR || flag == MSG_SQL)
- { //Send Errors to StdErr [Skotlex]
+ if (flag == MSG_ERROR || flag == MSG_FATALERROR || flag == MSG_SQL) {
+ //Send Errors to StdErr [Skotlex]
FPRINTF(STDERR, "%s ", prefix);
va_copy(apcopy, ap);
VFPRINTF(STDERR, string, apcopy);
@@ -757,7 +704,7 @@ int vShowMessage_(enum msg_type flag, const char *string, va_list ap)
#if defined(DEBUGLOGMAP) || defined(DEBUGLOGCHAR) || defined(DEBUGLOGLOGIN)
if(strlen(DEBUGLOGPATH) > 0) {
fp=fopen(DEBUGLOGPATH,"a");
- if (fp == NULL) {
+ if (fp == NULL) {
FPRINTF(STDERR, CL_RED"[ERROR]"CL_RESET": Could not open '"CL_WHITE"%s"CL_RESET"', access denied.\n", DEBUGLOGPATH);
FFLUSH(STDERR);
} else {
@@ -779,7 +726,7 @@ int vShowMessage_(enum msg_type flag, const char *string, va_list ap)
void ClearScreen(void)
{
#ifndef _WIN32
- ShowMessage(CL_CLS); // to prevent empty string passed messages
+ ShowMessage(CL_CLS); // to prevent empty string passed messages
#endif
}
int ShowMessage_(enum msg_type flag, const char *string, ...) __attribute__((format(printf, 2, 3)));
diff --git a/src/common/socket.c b/src/common/socket.c
index 0c48c7c46..09521c312 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -29,8 +29,12 @@
# include <errno.h>
# include <net/if.h>
# include <netdb.h>
+#if defined __linux__ || defined __linux
+# include <linux/tcp.h>
+#else
# include <netinet/in.h>
# include <netinet/tcp.h>
+#endif
# include <sys/ioctl.h>
# include <sys/socket.h>
# include <sys/time.h>
@@ -274,7 +278,7 @@ const char* error_msg(void)
}
/*======================================
- * CORE : Default processing functions
+ * CORE : Default processing functions
*--------------------------------------*/
int null_recv(int fd) { return 0; }
int null_send(int fd) { return 0; }
@@ -289,7 +293,7 @@ void set_defaultparse(ParseFunc defaultparse)
/*======================================
- * CORE : Socket options
+ * CORE : Socket options
*--------------------------------------*/
void set_nonblocking(int fd, unsigned long yes)
{
@@ -302,7 +306,7 @@ void set_nonblocking(int fd, unsigned long yes)
void setsocketopts(int fd, struct hSockOpt *opt) {
int yes = 1; // reuse fix
struct linger lopt;
-
+
#if !defined(WIN32)
// set SO_REAUSEADDR to true, unix only. on windows this option causes
// the previous owner of the socket to give up, which is not desirable
@@ -319,24 +323,31 @@ void setsocketopts(int fd, struct hSockOpt *opt) {
if( opt && opt->setTimeo ) {
struct timeval timeout;
-
+
timeout.tv_sec = 5;
timeout.tv_usec = 0;
-
+
sSetsockopt(fd,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(timeout));
sSetsockopt(fd,SOL_SOCKET,SO_SNDTIMEO,(char *)&timeout,sizeof(timeout));
}
-
+
// force the socket into no-wait, graceful-close mode (should be the default, but better make sure)
//(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/closesocket_2.asp)
lopt.l_onoff = 0; // SO_DONTLINGER
lopt.l_linger = 0; // Do not care
if( sSetsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&lopt, sizeof(lopt)) )
ShowWarning("setsocketopts: Unable to set SO_LINGER mode for connection #%d!\n", fd);
+
+#ifdef TCP_THIN_LINEAR_TIMEOUTS
+ setsockopt(fd, IPPROTO_TCP, TCP_THIN_LINEAR_TIMEOUTS, &yes, sizeof yes);
+#endif
+#ifdef TCP_THIN_DUPACK
+ setsockopt(fd, IPPROTO_TCP, TCP_THIN_DUPACK, &yes, sizeof yes);
+#endif
}
/*======================================
- * CORE : Socket Sub Function
+ * CORE : Socket Sub Function
*--------------------------------------*/
void set_eof(int fd)
{
@@ -448,7 +459,7 @@ void flush_fifos(void)
}
/*======================================
- * CORE : Connection functions
+ * CORE : Connection functions
*--------------------------------------*/
int connect_client(int listen_fd) {
int fd;
@@ -659,19 +670,19 @@ int realloc_writefifo(int fd, size_t addition)
if( !sockt->session_isValid(fd) ) // might not happen
return 0;
- if( session[fd]->wdata_size + addition > session[fd]->max_wdata )
- { // grow rule; grow in multiples of WFIFO_SIZE
+ if (session[fd]->wdata_size + addition > session[fd]->max_wdata) {
+ // grow rule; grow in multiples of WFIFO_SIZE
newsize = WFIFO_SIZE;
while( session[fd]->wdata_size + addition > newsize ) newsize += WFIFO_SIZE;
- }
- else
- if( session[fd]->max_wdata >= (size_t)2*(session[fd]->flag.server?FIFOSIZE_SERVERLINK:WFIFO_SIZE)
- && (session[fd]->wdata_size+addition)*4 < session[fd]->max_wdata )
- { // shrink rule, shrink by 2 when only a quarter of the fifo is used, don't shrink below nominal size.
+ } else if (session[fd]->max_wdata >= (size_t)2*(session[fd]->flag.server?FIFOSIZE_SERVERLINK:WFIFO_SIZE)
+ && (session[fd]->wdata_size+addition)*4 < session[fd]->max_wdata
+ ) {
+ // shrink rule, shrink by 2 when only a quarter of the fifo is used, don't shrink below nominal size.
newsize = session[fd]->max_wdata / 2;
- }
- else // no change
+ } else {
+ // no change
return 0;
+ }
RECREATE(session[fd]->wdata, unsigned char, newsize);
session[fd]->max_wdata = newsize;
@@ -682,7 +693,7 @@ int realloc_writefifo(int fd, size_t addition)
/// advance the RFIFO cursor (marking 'len' bytes as processed)
int RFIFOSKIP(int fd, size_t len)
{
- struct socket_data *s;
+ struct socket_data *s;
if ( !sockt->session_isActive(fd) )
return 0;
@@ -711,8 +722,8 @@ int WFIFOSET(int fd, size_t len)
return 0;
// we have written len bytes to the buffer already before calling WFIFOSET
- if(s->wdata_size+len > s->max_wdata)
- { // actually there was a buffer overflow already
+ if (s->wdata_size+len > s->max_wdata) {
+ // actually there was a buffer overflow already
uint32 ip = s->client_addr;
ShowFatalError("WFIFOSET: Write Buffer Overflow. Connection %d (%d.%d.%d.%d) has written %u bytes on a %u/%u bytes buffer.\n", fd, CONVIP(ip), (unsigned int)len, (unsigned int)s->wdata_size, (unsigned int)s->max_wdata);
ShowDebug("Likely command that caused it: 0x%x\n", (*(uint16*)(s->wdata + s->wdata_size)));
@@ -744,13 +755,6 @@ int WFIFOSET(int fd, size_t len)
return 0;
}
- if (s->wdata_size+len > WFIFO_MAX) { // reached maximum write fifo size
- ShowError("WFIFOSET: Maximum write buffer size for client connection %d exceeded, most likely caused by packet 0x%04x (len=%"PRIuS", ip=%u.%u.%u.%u).\n",
- fd, WFIFOW(fd,0), len, CONVIP(s->client_addr));
- set_eof(fd);
- return 0;
- }
-
}
s->wdata_size += len;
#ifdef SHOW_SERVER_STATS
@@ -846,8 +850,8 @@ int do_sockets(int next)
if(session[i]->wdata_size)
session[i]->func_send(i);
- if(session[i]->flag.eof) //func_send can't free a session, this is safe.
- { //Finally, even if there is no data to parse, connections signaled eof should be closed, so we call parse_func [Skotlex]
+ if (session[i]->flag.eof) { //func_send can't free a session, this is safe.
+ //Finally, even if there is no data to parse, connections signaled eof should be closed, so we call parse_func [Skotlex]
session[i]->func_parse(i); //This should close the session immediately.
}
}
@@ -877,7 +881,7 @@ int do_sockets(int next)
if(!session[i])
continue;
-
+
RFIFOFLUSH(i);
// after parse, check client's RFIFO size to know if there is an invalid packet (too big and not parsed)
if (session[i]->rdata_size == session[i]->max_rdata) {
@@ -890,7 +894,7 @@ int do_sockets(int next)
if (sockt->last_tick != socket_data_last_tick)
{
char buf[1024];
-
+
sprintf(buf, "In: %.03f kB/s (%.03f kB/s, Q: %.03f kB) | Out: %.03f kB/s (%.03f kB/s, Q: %.03f kB) | RAM: %.03f MB", socket_data_i/1024., socket_data_ci/1024., socket_data_qi/1024., socket_data_o/1024., socket_data_co/1024., socket_data_qo/1024., iMalloc->usage()/1024.);
#ifdef _WIN32
SetConsoleTitle(buf);
@@ -1239,7 +1243,7 @@ void socket_final(void)
aFree(session[0]->rdata);
aFree(session[0]->wdata);
aFree(session[0]);
-
+
aFree(session);
}
@@ -1403,7 +1407,7 @@ void socket_init(void)
#endif
CREATE(session, struct socket_data *, FD_SETSIZE);
-
+
socket_config_read(SOCKET_CONF_FILENAME);
// initialize last send-receive tick
@@ -1421,7 +1425,7 @@ void socket_init(void)
#endif
ShowInfo("Server supports up to '"CL_WHITE"%"PRId64""CL_RESET"' concurrent connections.\n", rlim_cur);
-
+
/* Hercules Plugin Manager */
HPM->share(session,"session");
}
@@ -1505,11 +1509,11 @@ void socket_datasync(int fd, bool send) {
WFIFOW(fd, 0) = 0x2b0a;
WFIFOW(fd, 2) = p_len;
-
+
for( i = 0; i < alen; i++ ) {
WFIFOL(fd, 4 + ( i * 4 ) ) = data_list[i].length;
}
-
+
WFIFOSET(fd, p_len);
} else {
for( i = 0; i < alen; i++ ) {
@@ -1609,7 +1613,7 @@ void send_shortlist_do_sends()
void socket_defaults(void) {
sockt = &sockt_s;
-
+
sockt->fd_max = 0;
/* */
sockt->stall_time = 60;
diff --git a/src/common/socket.h b/src/common/socket.h
index 42b0efe3b..b9c562a29 100644
--- a/src/common/socket.h
+++ b/src/common/socket.h
@@ -97,7 +97,7 @@ struct socket_data {
ParseFunc func_parse;
void* session_data; // stores application-specific data related to the session
-
+
struct HPluginData **hdata;
unsigned int hdatac;
};
diff --git a/src/common/spinlock.h b/src/common/spinlock.h
index bde36b8e5..85a78ed33 100644
--- a/src/common/spinlock.h
+++ b/src/common/spinlock.h
@@ -13,7 +13,7 @@
// For more information, see LICENCE in the main folder
//
//
-
+
#include "../common/atomic.h"
#include "../common/cbasetypes.h"
#include "../common/thread.h"
@@ -33,7 +33,7 @@ typedef struct __declspec( align(64) ) SPIN_LOCK{
typedef struct SPIN_LOCK{
volatile int32 lock;
volatile int32 nest; // nesting level.
-
+
volatile int32 sync_lock;
} __attribute__((aligned(64))) SPIN_LOCK;
#endif
@@ -56,7 +56,7 @@ static forceinline void FinalizeSpinLock(SPIN_LOCK *lck){
static forceinline void EnterSpinLock(SPIN_LOCK *lck){
int tid = rathread_get_tid();
-
+
// Get Sync Lock && Check if the requester thread already owns the lock.
// if it owns, increase nesting level
getsynclock(&lck->sync_lock);
@@ -67,18 +67,14 @@ static forceinline void EnterSpinLock(SPIN_LOCK *lck){
}
// drop sync lock
dropsynclock(&lck->sync_lock);
-
-
+
// Spin until we've got it !
while(1){
-
- if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
-
- InterlockedIncrement(&lck->nest);
- return; // Got Lock
- }
-
- rathread_yield(); // Force ctxswitch to another thread.
+ if(InterlockedCompareExchange(&lck->lock, tid, 0) == 0){
+ InterlockedIncrement(&lck->nest);
+ return; // Got Lock
+ }
+ rathread_yield(); // Force ctxswitch to another thread.
}
}
@@ -88,12 +84,12 @@ static forceinline void LeaveSpinLock(SPIN_LOCK *lck){
int tid = rathread_get_tid();
getsynclock(&lck->sync_lock);
-
+
if(InterlockedCompareExchange(&lck->lock, tid, tid) == tid){ // this thread owns the lock.
if(InterlockedDecrement(&lck->nest) == 0)
InterlockedExchange(&lck->lock, 0); // Unlock!
}
-
+
dropsynclock(&lck->sync_lock);
}
diff --git a/src/common/sql.c b/src/common/sql.c
index 8ae9d3cdb..7f89e9828 100644
--- a/src/common/sql.c
+++ b/src/common/sql.c
@@ -25,6 +25,8 @@ void hercules_mysql_error_handler(unsigned int ecode);
int mysql_reconnect_type;
unsigned int mysql_reconnect_count;
+struct sql_interface sql_s;
+
/// Sql handle
struct Sql {
StringBuf buf;
@@ -1002,10 +1004,10 @@ void Sql_HerculesUpdateCheck(Sql* self) {
FILE* ifp;/* index fp */
unsigned int performed = 0;
StringBuf buf;
-
+
if( self == NULL )
return;/* return silently, build has no mysql connection */
-
+
if( !( ifp = fopen("sql-files/upgrades/index.txt", "r") ) ) {
ShowError("SQL upgrade index was not found!\n");
return;
@@ -1053,7 +1055,7 @@ void Sql_HerculesUpdateCheck(Sql* self) {
ShowMessage("%s",StrBuf->Value(&buf));
ShowSQL("To manually skip, type: 'sql update skip <file name>'\n");
}
-
+
StrBuf->Destroy(&buf);
}
@@ -1061,21 +1063,21 @@ void Sql_HerculesUpdateSkip(Sql* self,const char *filename) {
char path[41];// "sql-files/upgrades/" (19) + "yyyy-mm-dd--hh-mm" (17) + ".sql" (4) + 1
char timestamp[11];// "1360186680" (10) + 1
FILE* ifp;/* index fp */
-
+
if( !self ) {
ShowError("SQL not hooked!\n");
return;
}
-
+
snprintf(path,41,"sql-files/upgrades/%s",filename);
-
+
if( !( ifp = fopen(path, "r") ) ) {
ShowError("Upgrade file '%s' was not found!\n",filename);
return;
}
-
+
fseek (ifp,1,SEEK_SET);/* woo. skip the # */
-
+
if( fgets(timestamp,sizeof(timestamp),ifp) ) {
unsigned int timestampui = (unsigned int)atol(timestamp);
if( SQL_ERROR == SQL->Query(self, "SELECT 1 FROM `sql_updates` WHERE `timestamp` = '%u' LIMIT 1", timestampui) )
diff --git a/src/common/sql.h b/src/common/sql.h
index b1f1f41c3..9a79b3f33 100644
--- a/src/common/sql.h
+++ b/src/common/sql.h
@@ -267,7 +267,7 @@ struct sql_interface {
void (*StmtShowDebug_)(SqlStmt* self, const char* debug_file, const unsigned long debug_line);
-} sql_s;
+};
struct sql_interface *SQL;
diff --git a/src/common/strlib.c b/src/common/strlib.c
index 592390770..8b63b4161 100644
--- a/src/common/strlib.c
+++ b/src/common/strlib.c
@@ -18,6 +18,10 @@
#define J_MAX_MALLOC_SIZE 65535
+struct strlib_interface strlib_s;
+struct stringbuf_interface stringbuf_s;
+struct sv_interface sv_s;
+
// escapes a string in-place (' -> \' , \ -> \\ , % -> _)
char* jstrescape (char* pt) {
//copy from here
@@ -58,11 +62,12 @@ char* jstrescapecpy (char* pt, const char* spt)
//a escape character is found, the target's final length increases! [Skotlex]
int i =0, j=0;
- if (!spt) { //Return an empty string [Skotlex]
+ if (!spt) {
+ //Return an empty string [Skotlex]
pt[0] = '\0';
return &pt[0];
}
-
+
while (spt[i] != '\0') {
switch (spt[i]) {
case '\'':
@@ -248,7 +253,8 @@ char* strtok_r_(char *s1, const char *s2, char **lasts) {
// for NetBSD 5.x and possibly some Solaris versions.
#if !(defined(WIN32) && defined(_MSC_VER) && _MSC_VER >= 1400) && !defined(HAVE_STRNLEN)
/* Find the length of STRING, but scan at most MAXLEN characters.
- If no '\0' terminator is found in that many characters, return MAXLEN. */
+ * If no '\0' terminator is found in that many characters, return MAXLEN.
+ */
size_t strnlen(const char* string, size_t maxlen) {
const char* end = (const char*)memchr(string, '\0', maxlen);
return end ? (size_t) (end - string) : maxlen;
@@ -1126,18 +1132,19 @@ void strlib_defaults(void) {
sv = &sv_s;
/* link~u! */
strlib->jstrescape = jstrescape;
+ strlib->jstrescapecpy = jstrescapecpy;
strlib->jmemescapecpy = jmemescapecpy;
strlib->remove_control_chars = remove_control_chars;
strlib->trim = trim;
strlib->normalize_name = normalize_name;
strlib->stristr = stristr;
-
+
#if !(defined(WIN32) && defined(_MSC_VER) && _MSC_VER >= 1400) && !defined(HAVE_STRNLEN)
strlib->strnlen = strnlen;
#else
strlib->strnlen = NULL;
#endif
-
+
#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER <= 1200
strlib->strtoull = strtoull;
#else
@@ -1150,7 +1157,7 @@ void strlib_defaults(void) {
strlib->safesnprintf = safesnprintf;
strlib->strline = strline;
strlib->bin2hex = bin2hex;
-
+
StrBuf->Malloc = StringBuf_Malloc;
StrBuf->Init = StringBuf_Init;
StrBuf->Printf = StringBuf_Printf;
@@ -1162,7 +1169,7 @@ void strlib_defaults(void) {
StrBuf->Clear = StringBuf_Clear;
StrBuf->Destroy = StringBuf_Destroy;
StrBuf->Free = StringBuf_Free;
-
+
sv->parse_next = sv_parse_next;
sv->parse = sv_parse;
sv->split = sv_split;
diff --git a/src/common/strlib.h b/src/common/strlib.h
index 00a588772..0c596cb8f 100644
--- a/src/common/strlib.h
+++ b/src/common/strlib.h
@@ -63,36 +63,36 @@ struct strlib_interface {
char *(*trim) (char* str);
char *(*normalize_name) (char* str,const char* delims);
const char *(*stristr) (const char *haystack, const char *needle);
-
+
/* only used when '!(defined(WIN32) && defined(_MSC_VER) && _MSC_VER >= 1400) && !defined(HAVE_STRNLEN)', needs to be defined at all times however */
size_t (*strnlen) (const char* string, size_t maxlen);
/* only used when 'defined(WIN32) && defined(_MSC_VER) && _MSC_VER <= 1200', needs to be defined at all times however */
uint64 (*strtoull) (const char* str, char** endptr, int base);
-
+
int (*e_mail_check) (char* email);
int (*config_switch) (const char* str);
-
+
/// strncpy that always null-terminates the string
char *(*safestrncpy) (char* dst, const char* src, size_t n);
-
+
/// doesn't crash on null pointer
size_t (*safestrnlen) (const char* string, size_t maxlen);
-
+
/// Works like snprintf, but always null-terminates the buffer.
/// Returns the size of the string (without null-terminator)
/// or -1 if the buffer is too small.
int (*safesnprintf) (char *buf, size_t sz, const char *fmt, ...) __attribute__((format(printf, 3, 4)));
-
+
/// Returns the line of the target position in the string.
/// Lines start at 1.
int (*strline) (const char* str, size_t pos);
-
+
/// Produces the hexadecimal representation of the given input.
/// The output buffer must be at least count*2+1 in size.
/// Returns true on success, false on failure.
bool (*bin2hex) (char* output, unsigned char* input, size_t count);
-} strlib_s;
+};
struct strlib_interface *strlib;
@@ -108,7 +108,7 @@ struct stringbuf_interface {
void (*Clear) (StringBuf* self);
void (*Destroy) (StringBuf* self);
void (*Free) (StringBuf* self);
-} stringbuf_s;
+};
struct stringbuf_interface *StrBuf;
@@ -119,14 +119,14 @@ struct sv_interface {
/// @param svstate Parse state
/// @return 1 if a field was parsed, 0 if done, -1 on error.
int (*parse_next) (struct s_svstate* svstate);
-
+
/// Parses a delim-separated string.
/// Starts parsing at startoff and fills the pos array with position pairs.
/// out_pos[0] and out_pos[1] are the start and end of line.
/// Other position pairs are the start and end of fields.
/// Returns the number of fields found or -1 if an error occurs.
int (*parse) (const char* str, int len, int startoff, char delim, int* out_pos, int npos, enum e_svopt opt);
-
+
/// Splits a delim-separated string.
/// WARNING: this function modifies the input string
/// Starts splitting at startoff and fills the out_fields array.
@@ -134,25 +134,25 @@ struct sv_interface {
/// Other entries are the start of fields (null-terminated).
/// Returns the number of fields found or -1 if an error occurs.
int (*split) (char* str, int len, int startoff, char delim, char** out_fields, int nfields, enum e_svopt opt);
-
+
/// Escapes src to out_dest according to the format of the C compiler.
/// Returns the length of the escaped string.
/// out_dest should be len*4+1 in size.
size_t (*escape_c) (char* out_dest, const char* src, size_t len, const char* escapes);
-
+
/// Unescapes src to out_dest according to the format of the C compiler.
/// Returns the length of the unescaped string.
/// out_dest should be len+1 in size and can be the same buffer as src.
size_t (*unescape_c) (char* out_dest, const char* src, size_t len);
-
+
/// Skips a C escape sequence (starting with '\\').
const char* (*skip_escaped_c) (const char* p);
-
+
/// Opens and parses a file containing delim-separated columns, feeding them to the specified callback function row by row.
/// Tracks the progress of the operation (current line number, number of successfully processed rows).
/// Returns 'true' if it was able to process the specified file, or 'false' if it could not be read.
bool (*readdb) (const char* directory, const char* filename, char delim, int mincols, int maxcols, int maxrows, bool (*parseproc)(char* fields[], int columns, int current));
-} sv_s;
+};
struct sv_interface *sv;
diff --git a/src/common/thread.c b/src/common/thread.c
index 1d0285302..a00bd6333 100644
--- a/src/common/thread.c
+++ b/src/common/thread.c
@@ -36,7 +36,7 @@
struct rAthread {
unsigned int myID;
-
+
RATHREAD_PRIO prio;
rAthreadProc proc;
void *param;
@@ -62,7 +62,7 @@ static struct rAthread l_threads[RA_THREADS_MAX];
void rathread_init(void) {
register unsigned int i;
memset(&l_threads, 0x00, RA_THREADS_MAX * sizeof(struct rAthread) );
-
+
for(i = 0; i < RA_THREADS_MAX; i++){
l_threads[i].myID = i;
}
@@ -80,7 +80,7 @@ void rathread_init(void) {
void rathread_final(void) {
register unsigned int i;
-
+
// Unterminated Threads Left?
// Shouldn't happen ..
// Kill 'em all!
@@ -91,8 +91,7 @@ void rathread_final(void) {
rathread_destroy(&l_threads[i]);
}
}
-
-
+
}//end: rathread_final()
@@ -112,7 +111,7 @@ static void *raThreadMainRedirector( void *p ){
sigset_t set; // on Posix Thread platforms
#endif
void *ret;
-
+
// Update myID @ TLS to right id.
#ifdef HAS_TLS
g_rathread_ID = ((rAthread*)p)->myID;
@@ -129,7 +128,7 @@ static void *raThreadMainRedirector( void *p ){
sigaddset(&set, SIGPIPE);
pthread_sigmask(SIG_BLOCK, &set, NULL);
-
+
#endif
@@ -181,14 +180,12 @@ rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack
break;
}
}
-
+
if(handle == NULL){
ShowError("rAthread: cannot create new thread (entryPoint: %p) - no free thread slot found!", entryPoint);
return NULL;
}
-
-
-
+
handle->proc = entryPoint;
handle->param = param;
@@ -197,7 +194,7 @@ rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack
#else
pthread_attr_init(&attr);
pthread_attr_setstacksize(&attr, szStack);
-
+
if(pthread_create(&handle->hThread, &attr, raThreadMainRedirector, (void*)handle) != 0){
handle->proc = NULL;
handle->param = NULL;
@@ -207,7 +204,7 @@ rAthread *rathread_createEx(rAthreadProc entryPoint, void *param, size_t szStack
#endif
rathread_prio_set( handle, prio );
-
+
return handle;
}//end: rathread_createEx
@@ -220,10 +217,9 @@ void rathread_destroy(rAthread *handle) {
}
#else
if( pthread_cancel( handle->hThread ) == 0){
-
// We have to join it, otherwise pthread wont re-cycle its internal resources assoc. with this thread.
pthread_join( handle->hThread, NULL );
-
+
// Tell our manager to release resources ;)
rat_thread_terminated(handle);
}
@@ -233,7 +229,7 @@ void rathread_destroy(rAthread *handle) {
rAthread *rathread_self(void) {
#ifdef HAS_TLS
rAthread *handle = &l_threads[g_rathread_ID];
-
+
if(handle->proc != NULL) // entry point set, so its used!
return handle;
#else
@@ -247,14 +243,13 @@ rAthread *rathread_self(void) {
pthread_t hSelf;
hSelf = pthread_self();
#endif
-
+
for(i = 0; i < RA_THREADS_MAX; i++){
if(l_threads[i].hThread == hSelf && l_threads[i].proc != NULL)
return &l_threads[i];
}
-
#endif
-
+
return NULL;
}//end: rathread_self()
@@ -270,14 +265,12 @@ int rathread_get_tid(void) {
#else
return (intptr_t)pthread_self();
#endif
-
#endif
-
+
}//end: rathread_get_tid()
bool rathread_wait(rAthread *handle, void **out_exitCode) {
-
// Hint:
// no thread data cleanup routine call here!
// its managed by the callProxy itself..
diff --git a/src/common/thread.h b/src/common/thread.h
index c7582366d..f00e7290d 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -104,8 +104,8 @@ RATHREAD_PRIO rathread_prio_get(rAthread *handle);
* Tells the OS scheduler to yield the execution of the calling thread
*
* @note: this will not "pause" the thread,
- * it just allows the OS to spent the remaining time
- * of the slice to another thread.
+ * it just allows the OS to spend the remaining time
+ * of the slice to another thread.
*/
void rathread_yield(void);
diff --git a/src/common/timer.c b/src/common/timer.c
index 5d0a45b99..f2bfa98b3 100644
--- a/src/common/timer.c
+++ b/src/common/timer.c
@@ -59,7 +59,7 @@ time_t start_time;
/*----------------------------
- * Timer debugging
+ * Timer debugging
*----------------------------*/
struct timer_func_list {
struct timer_func_list* next;
@@ -101,31 +101,31 @@ char* search_timer_func_list(TimerFunc func)
}
/*----------------------------
- * Get tick time
+ * Get tick time
*----------------------------*/
#if defined(ENABLE_RDTSC)
static uint64 RDTSC_BEGINTICK = 0, RDTSC_CLOCK = 0;
static __inline uint64 rdtsc_(void) {
- register union{
- uint64 qw;
- uint32 dw[2];
+ register union {
+ uint64 qw;
+ uint32 dw[2];
} t;
asm volatile("rdtsc":"=a"(t.dw[0]), "=d"(t.dw[1]) );
-
+
return t.qw;
}
static void rdtsc_calibrate(void){
uint64 t1, t2;
int32 i;
-
+
ShowStatus("Calibrating Timer Source, please wait... ");
-
+
RDTSC_CLOCK = 0;
-
+
for(i = 0; i < 5; i++){
t1 = rdtsc_();
usleep(1000000); //1000 MS
@@ -133,9 +133,9 @@ static void rdtsc_calibrate(void){
RDTSC_CLOCK += (t2 - t1) / 1000;
}
RDTSC_CLOCK /= 5;
-
+
RDTSC_BEGINTICK = rdtsc_();
-
+
ShowMessage(" done. (Frequency: %u Mhz)\n", (uint32)(RDTSC_CLOCK/1000) );
}
@@ -233,7 +233,7 @@ int64 timer_gettick(void) {
//////////////////////////////////////////////////////////////////////////
/*======================================
- * CORE : Timer Heap
+ * CORE : Timer Heap
*--------------------------------------*/
/// Adds a timer to the timer_heap
@@ -243,7 +243,7 @@ static void push_timer_heap(int tid) {
}
/*==========================
- * Timer Management
+ * Timer Management
*--------------------------*/
/// Returns a free timer id.
@@ -281,7 +281,7 @@ static int acquire_timer(void) {
/// Returns the timer's id.
int timer_add(int64 tick, TimerFunc func, int id, intptr_t data) {
int tid;
-
+
tid = acquire_timer();
timer_data[tid].tick = tick;
timer_data[tid].func = func;
@@ -304,7 +304,7 @@ int timer_add_interval(int64 tick, TimerFunc func, int id, intptr_t data, int in
tick, func, search_timer_func_list(func), id, data, DIFF_TICK(tick, timer->gettick()));
return INVALID_TIMER;
}
-
+
tid = acquire_timer();
timer_data[tid].tick = tick;
timer_data[tid].func = func;
@@ -351,7 +351,7 @@ int64 timer_addtick(int tid, int64 tick) {
/// Returns the new tick value, or -1 if it fails.
int64 timer_settick(int tid, int64 tick) {
size_t i;
-
+
// search timer position
ARR_FIND(0, BHEAP_LENGTH(timer_heap), i, BHEAP_DATA(timer_heap)[i] == tid);
if( i == BHEAP_LENGTH(timer_heap) ) {
@@ -444,8 +444,8 @@ void timer_final(void) {
struct timer_func_list *next;
for( tfl=tfl_root; tfl != NULL; tfl = next ) {
- next = tfl->next; // copy next pointer
- aFree(tfl->name); // free structures
+ next = tfl->next; // copy next pointer
+ aFree(tfl->name); // free structures
aFree(tfl);
}
diff --git a/src/common/utils.c b/src/common/utils.c
index 79232b25c..d73aab066 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -92,7 +92,8 @@ void ShowDump(const void *buffer, size_t length) {
#ifdef WIN32
static char* checkpath(char *path, const char *srcpath)
-{ // just make sure the char*path is not const
+{
+ // just make sure the char*path is not const
char *p=path;
if(NULL!=path && NULL!=srcpath)
while(*srcpath) {
@@ -112,16 +113,15 @@ void findfile(const char *p, const char *pat, void (func)(const char*))
WIN32_FIND_DATAA FindFileData;
HANDLE hFind;
char tmppath[MAX_PATH+1];
-
const char *path = (p ==NULL)? "." : p;
const char *pattern = (pat==NULL)? "" : pat;
-
+
checkpath(tmppath,path);
if( PATHSEP != tmppath[strlen(tmppath)-1])
strcat(tmppath, "\\*");
else
strcat(tmppath, "*");
-
+
hFind = FindFirstFileA(tmppath, &FindFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
@@ -153,7 +153,8 @@ void findfile(const char *p, const char *pat, void (func)(const char*))
#define MAX_DIR_PATH 2048
static char* checkpath(char *path, const char*srcpath)
-{ // just make sure the char*path is not const
+{
+ // just make sure the char*path is not const
char *p=path;
if(NULL!=path && NULL!=srcpath)
while(*srcpath) {
@@ -170,9 +171,9 @@ static char* checkpath(char *path, const char*srcpath)
void findfile(const char *p, const char *pat, void (func)(const char*))
{
- DIR* dir; // pointer to the scanned directory.
- struct dirent* entry; // pointer to one directory entry.
- struct stat dir_stat; // used by stat().
+ DIR* dir; ///< pointer to the scanned directory.
+ struct dirent* entry; ///< pointer to one directory entry.
+ struct stat dir_stat; ///< used by stat().
char tmppath[MAX_DIR_PATH+1];
char path[MAX_DIR_PATH+1]= ".";
const char *pattern = (pat==NULL)? "" : pat;
@@ -289,17 +290,17 @@ int32 MakeLongLE(int32 val)
// Reads an uint16 in little-endian from the buffer
uint16 GetUShort(const unsigned char* buf)
{
- return ( ((uint16)(buf[0])) )
- |( ((uint16)(buf[1])) << 0x08 );
+ return ( ((uint16)(buf[0])) )
+ | ( ((uint16)(buf[1])) << 0x08 );
}
// Reads an uint32 in little-endian from the buffer
uint32 GetULong(const unsigned char* buf)
{
- return ( ((uint32)(buf[0])) )
- |( ((uint32)(buf[1])) << 0x08 )
- |( ((uint32)(buf[2])) << 0x10 )
- |( ((uint32)(buf[3])) << 0x18 );
+ return ( ((uint32)(buf[0])) )
+ | ( ((uint32)(buf[1])) << 0x08 )
+ | ( ((uint32)(buf[2])) << 0x10 )
+ | ( ((uint32)(buf[3])) << 0x18 );
}
// Reads an int32 in little-endian from the buffer
@@ -356,15 +357,15 @@ bool HCache_check(const char *file) {
time_t rtime;
if( !(first = fopen(file,"rb")) )
- return false;
+ return false;
if( file[0] == '.' && file[1] == '/' )
- file += 2;
+ file += 2;
else if( file[0] == '.' )
- file++;
-
+ file++;
+
snprintf(s_path, 255, "./cache/%s", file);
-
+
if( !(second = fopen(s_path,"rb")) ) {
fclose(first);
return false;
@@ -375,34 +376,34 @@ bool HCache_check(const char *file) {
fclose(second);
return false;
}
-
+
fstat(fileno(first), &bufa);
fstat(fileno(second), &bufb);
-
+
fclose(first);
fclose(second);
-
+
if( bufa.st_mtime > bufb.st_mtime )
return false;
-
+
return true;
}
FILE *HCache_open(const char *file, const char *opt) {
FILE *first;
char s_path[255];
-
+
if( file[0] == '.' && file[1] == '/' )
file += 2;
else if( file[0] == '.' )
file++;
-
+
snprintf(s_path, 255, "./cache/%s", file);
-
+
if( !(first = fopen(s_path,opt)) ) {
return NULL;
}
-
+
if( opt[0] != 'r' ) {
char dT[1];/* 1-byte key to ensure our method is the latest, we can modify to ensure the method matches */
dT[0] = HCACHE_KEY;
@@ -410,19 +411,19 @@ FILE *HCache_open(const char *file, const char *opt) {
hwrite(&HCache->recompile_time,sizeof(HCache->recompile_time),1,first);
}
fseek(first, 20, SEEK_SET);/* skip first 20, might wanna store something else later */
-
+
return first;
}
void HCache_init(void) {
FILE *server;
-
+
if( (server = fopen(SERVER_NAME,"rb")) ) {
struct stat buf;
-
+
fstat(fileno(server), &buf);
HCache->recompile_time = buf.st_mtime;
fclose(server);
-
+
HCache->enabled = true;
} else
ShowWarning("Unable to open '%s', caching capabilities have been disabled!\n",SERVER_NAME);
@@ -437,11 +438,10 @@ size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream) {
}
void HCache_defaults(void) {
-
HCache = &HCache_s;
HCache->init = HCache_init;
-
+
HCache->check = HCache_check;
HCache->open = HCache_open;
HCache->recompile_time = 0;
diff --git a/src/common/winapi.h b/src/common/winapi.h
index a8a38f30e..f53d9cbbd 100644
--- a/src/common/winapi.h
+++ b/src/common/winapi.h
@@ -2,10 +2,10 @@
#define STRICT
-#define NTDDI_VERSION NTDDI_WIN2K
+#define NTDDI_VERSION NTDDI_WIN2K
#define _WIN32_WINNT 0x0500
-#define WINVER 0x0500
-#define _WIN32_IE 0x0600
+#define WINVER 0x0500
+#define _WIN32_IE 0x0600
#define WIN32_LEAN_AND_MEAN
#define NOCOMM
#define NOKANJI
diff --git a/src/config/classes/general.h b/src/config/classes/general.h
index b3da4a475..b75c907e3 100644
--- a/src/config/classes/general.h
+++ b/src/config/classes/general.h
@@ -22,6 +22,11 @@
#define MAX_SPIRITBALL 15
/**
+* Spirit Charm Limitation
+**/
+#define MAX_SPIRITCHARM 10
+
+/**
* when enabled, reflect damage doesn't bypass devotion (and thus damage is passed to crusader)
* uncomment to enable
**/
diff --git a/src/config/const.h b/src/config/const.h
index 2b5b180c4..e10d2ad2a 100644
--- a/src/config/const.h
+++ b/src/config/const.h
@@ -52,10 +52,14 @@
#define DEFTYPE_MAX CHAR_MAX
#endif
-/* ATCMD_FUNC(mobinfo) HIT and FLEE calculations */
+/* ATCMD_FUNC(mobinfo) HIT, FLEE, ATK, ATK2, MATK and MATK2 calculations */
#ifdef RENEWAL
#define MOB_FLEE(mobdata) ( (mobdata)->lv + (mobdata)->status.agi + 100 )
#define MOB_HIT(mobdata) ( (mobdata)->lv + (mobdata)->status.dex + 150 )
+ #define MOB_ATK1(mobdata) ( ((mobdata)->lv + (mobdata)->status.str) + (mobdata)->status.rhw.atk * 8 / 10 )
+ #define MOB_ATK2(mobdata) ( ((mobdata)->lv + (mobdata)->status.str) + (mobdata)->status.rhw.atk * 12 / 10 )
+ #define MOB_MATK1(mobdata)( ((mobdata)->lv + (mobdata)->status.int_) + (mobdata)->status.rhw.atk2 * 7 / 10 )
+ #define MOB_MATK2(mobdata)( ((mobdata)->lv + (mobdata)->status.int_) + (mobdata)->status.rhw.atk2 * 13 / 10 )
#define RE_SKILL_REDUCTION() do { \
wd.damage = battle->calc_elefix(src, target, skill_id, skill_lv, battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, 0, wd.flag), nk, n_ele, s_ele, s_ele_, false, flag.arrow); \
if( flag.lh ) \
@@ -69,17 +73,16 @@
/* Renewal's dmg level modifier, used as a macro for a easy way to turn off. */
#ifdef RENEWAL_LVDMG
#define RE_LVL_DMOD(val) do { \
- if( status->get_lv(src) > 100 && (val) > 0 ) \
+ if( (val) > 0 ) \
skillratio = skillratio * status->get_lv(src) / (val); \
} while(0)
#define RE_LVL_MDMOD(val) do { \
- if( status->get_lv(src) > 100 && (val) > 0) \
+ if ( (val) > 0 ) \
md.damage = md.damage * status->get_lv(src) / (val); \
} while(0)
/* ranger traps special */
#define RE_LVL_TMDMOD() do { \
- if( status->get_lv(src) > 100 ) \
- md.damage = md.damage * 150 / 100 + md.damage * status->get_lv(src) / 100; \
+ md.damage = md.damage * 150 / 100 + md.damage * status->get_lv(src) / 100; \
} while(0)
#else
#define RE_LVL_DMOD(val)
diff --git a/src/config/core.h b/src/config/core.h
index ac59563b5..da9296bda 100644
--- a/src/config/core.h
+++ b/src/config/core.h
@@ -35,15 +35,16 @@
//#define STATS_OPT_OUT
/// Uncomment to enable the Cell Stack Limit mod.
-/// It's only config is the battle_config cell_stack_limit.
-/// Only chars affected are those defined in BL_CHAR (mobs and players currently)
+/// It's only config is the battle_config custom_cell_stack_limit.
+/// Only chars affected are those defined in BL_CHAR
//#define CELL_NOSTACK
/// Uncomment to enable circular area checks.
-/// By default, all range checks in Aegis are of Square shapes, so a weapon range
-/// - of 10 allows you to attack from anywhere within a 21x21 area.
-/// Enabling this changes such checks to circular checks, which is more realistic,
-/// - but is not the official behavior.
+/// By default, most server-sided range checks in Aegis are of square shapes, so a monster
+/// with a range of 4 can attack anything within a 9x9 area.
+/// Client-sided range checks are, however, are always circular.
+/// Enabling this changes all checks to circular checks, which is more realistic,
+/// - but is not the official behaviour.
//#define CIRCULAR_AREA
//This is the distance at which @autoloot works,
diff --git a/src/login/HPMlogin.c b/src/login/HPMlogin.c
new file mode 100644
index 000000000..6b223d249
--- /dev/null
+++ b/src/login/HPMlogin.c
@@ -0,0 +1,53 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#define HERCULES_CORE
+
+#include "HPMlogin.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#include "../common/HPM.h"
+#include "../common/cbasetypes.h"
+#include "../common/conf.h"
+#include "../common/db.h"
+#include "../common/des.h"
+#include "../common/ers.h"
+#include "../common/malloc.h"
+#include "../common/mapindex.h"
+#include "../common/mmo.h"
+#include "../common/showmsg.h"
+#include "../common/socket.h"
+#include "../common/strlib.h"
+#include "../common/sysinfo.h"
+
+#include "../common/HPMDataCheck.h"
+
+bool HPM_login_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr) {
+ /* record address */
+ switch( type ) {
+ default:
+ return false;
+ }
+ return true;
+}
+
+void HPM_login_plugin_load_sub(struct hplugin *plugin) {
+}
+
+void HPM_login_do_init(void) {
+#if 0 // TODO (HPMDataCheck is disabled for the time being)
+ HPM->datacheck_init(HPMDataCheck, HPMDataCheckLen, HPMDataCheckVer);
+#else
+ HPM->DataCheck = NULL;
+#endif
+}
+
+void HPM_login_do_final(void) {
+#if 0 // TODO (HPMDataCheck is disabled for the time being)
+ HPM->datacheck_final();
+#endif
+}
diff --git a/src/login/HPMlogin.h b/src/login/HPMlogin.h
new file mode 100644
index 000000000..6bdc0fb7b
--- /dev/null
+++ b/src/login/HPMlogin.h
@@ -0,0 +1,20 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#ifndef LOGIN_HPMLOGIN_H
+#define LOGIN_HPMLOGIN_H
+
+#include "../common/cbasetypes.h"
+#include "../common/HPM.h"
+
+struct hplugin;
+
+bool HPM_login_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr);
+
+void HPM_login_plugin_load_sub(struct hplugin *plugin);
+
+void HPM_login_do_final(void);
+
+void HPM_login_do_init(void);
+
+#endif /* LOGIN_HPMLOGIN_H */
diff --git a/src/login/Makefile.in b/src/login/Makefile.in
index 7551eed5f..9b1db69c2 100644
--- a/src/login/Makefile.in
+++ b/src/login/Makefile.in
@@ -22,9 +22,9 @@ MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o
MT19937AR_H = $(MT19937AR_D)/mt19937ar.h
MT19937AR_INCLUDE = -I$(MT19937AR_D)
-LOGIN_C = account_sql.c ipban_sql.c login.c loginlog_sql.c
+LOGIN_C = account_sql.c HPMlogin.c ipban_sql.c login.c loginlog_sql.c
LOGIN_OBJ = $(addprefix obj_sql/, $(patsubst %.c,%.o,$(LOGIN_C)))
-LOGIN_H = login.h account.h ipban.h loginlog.h
+LOGIN_H = login.h account.h HPMlogin.h ipban.h loginlog.h
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
@@ -87,7 +87,7 @@ login-server: ../../login-server@EXEEXT@
../../login-server@EXEEXT@: $(LOGIN_SERVER_SQL_DEPENDS) Makefile
@echo " LD $(notdir $@)"
- @$(CC) @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
+ @$(CC) @STATIC@ @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
$(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@
# login object files
diff --git a/src/login/account.h b/src/login/account.h
index e15143ce9..fb7368d69 100644
--- a/src/login/account.h
+++ b/src/login/account.h
@@ -52,6 +52,10 @@ struct AccountDBIterator
bool (*next)(AccountDBIterator* self, struct mmo_account* acc);
};
+struct Account_engine {
+ AccountDB* (*constructor)(void);
+ AccountDB* db;
+};
struct AccountDB
{
diff --git a/src/login/account_sql.c b/src/login/account_sql.c
index 51e499369..adbb7914d 100644
--- a/src/login/account_sql.c
+++ b/src/login/account_sql.c
@@ -33,14 +33,14 @@ typedef struct AccountDB_SQL
char global_db_hostname[32];
uint16 global_db_port;
char global_db_username[32];
- char global_db_password[32];
+ char global_db_password[100];
char global_db_database[32];
char global_codepage[32];
// local sql settings
char db_hostname[32];
uint16 db_port;
char db_username[32];
- char db_password[32];
+ char db_password[100];
char db_database[32];
char codepage[32];
// other settings
@@ -169,6 +169,10 @@ static bool account_db_sql_init(AccountDB* self)
if( codepage[0] != '\0' && SQL_ERROR == SQL->SetEncoding(sql_handle, codepage) )
Sql_ShowDebug(sql_handle);
+ Sql_HerculesUpdateCheck(db->accounts);
+#ifdef CONSOLE_INPUT
+ console->input->setSQL(db->accounts);
+#endif
return true;
}
@@ -218,7 +222,7 @@ static bool account_db_sql_get_property(AccountDB* self, const char* key, char*
if( strcmpi(key, "db_username") == 0 )
safesnprintf(buf, buflen, "%s", db->global_db_username);
else
- if( strcmpi(key, "db_password") == 0 )
+ if( strcmpi(key, "db_password") == 0 )
safesnprintf(buf, buflen, "%s", db->global_db_password);
else
if( strcmpi(key, "db_database") == 0 )
@@ -244,7 +248,7 @@ static bool account_db_sql_get_property(AccountDB* self, const char* key, char*
if( strcmpi(key, "db_username") == 0 )
safesnprintf(buf, buflen, "%s", db->db_username);
else
- if( strcmpi(key, "db_password") == 0 )
+ if( strcmpi(key, "db_password") == 0 )
safesnprintf(buf, buflen, "%s", db->db_password);
else
if( strcmpi(key, "db_database") == 0 )
@@ -569,7 +573,7 @@ static bool mmo_auth_fromsql(AccountDB_SQL* db, struct mmo_account* acc, int acc
SQL->GetData(sql_handle, 13, &data, NULL); acc->char_slots = (uint8)atoi(data);
SQL->GetData(sql_handle, 14, &data, NULL); safestrncpy(acc->pincode, data, sizeof(acc->pincode));
SQL->GetData(sql_handle, 15, &data, NULL); acc->pincode_change = (unsigned int)atol(data);
-
+
SQL->FreeResult(sql_handle);
return true;
@@ -655,29 +659,25 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo
Sql* account_db_sql_up(AccountDB* self) {
AccountDB_SQL* db = (AccountDB_SQL*)self;
- Sql_HerculesUpdateCheck(db->accounts);
-#ifdef CONSOLE_INPUT
- console->input->setSQL(db->accounts);
-#endif
- return db->accounts;
+ return db ? db->accounts : NULL;
}
void mmo_save_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
Sql* sql_handle = ((AccountDB_SQL*)self)->accounts;
AccountDB_SQL* db = (AccountDB_SQL*)self;
int count = RFIFOW(fd, 12);
-
+
if( count ) {
int cursor = 14, i;
char key[32], sval[254];
unsigned int index;
-
+
for(i = 0; i < count; i++) {
safestrncpy(key, (char*)RFIFOP(fd, cursor + 1), RFIFOB(fd, cursor));
cursor += RFIFOB(fd, cursor) + 1;
-
+
index = RFIFOL(fd, cursor);
cursor += 4;
-
+
switch (RFIFOB(fd, cursor++)) {
/* int */
case 0:
@@ -700,24 +700,21 @@ void mmo_save_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `key` = '%s' AND `index` = '%u' LIMIT 1", db->global_acc_reg_str_db, account_id, key, index) )
Sql_ShowDebug(sql_handle);
break;
-
default:
ShowError("mmo_save_accreg2: DA HOO UNKNOWN TYPE %d\n",RFIFOB(fd, cursor - 1));
return;
}
-
}
-
}
-
}
+
void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
Sql* sql_handle = ((AccountDB_SQL*)self)->accounts;
AccountDB_SQL* db = (AccountDB_SQL*)self;
char* data;
int plen = 0;
size_t len;
-
+
if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", db->global_acc_reg_str_db, account_id) )
Sql_ShowDebug(sql_handle);
@@ -730,7 +727,7 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
WFIFOB(fd, 13) = 1;/* is string type */
WFIFOW(fd, 14) = 0;/* count */
plen = 16;
-
+
/**
* Vessel!
*
@@ -738,36 +735,35 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
* { keyLength(B), key(<keyLength>), index(L), valLength(B), val(<valLength>) }
**/
while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
-
SQL->GetData(sql_handle, 0, &data, NULL);
len = strlen(data)+1;
-
+
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 32 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
-
+
SQL->GetData(sql_handle, 1, &data, NULL);
-
+
WFIFOL(fd, plen) = (unsigned int)atol(data);
plen += 4;
-
+
SQL->GetData(sql_handle, 2, &data, NULL);
len = strlen(data)+1;
-
+
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 254 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
-
+
WFIFOW(fd, 14) += 1;
-
+
if( plen > 60000 ) {
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
/* prepare follow up */
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
@@ -780,16 +776,16 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
plen = 16;
}
}
-
+
/* mark & go. */
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
SQL->FreeResult(sql_handle);
-
+
if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%d'", db->global_acc_reg_num_db, account_id) )
Sql_ShowDebug(sql_handle);
-
+
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
/* 0x2 = length, set prior to being sent */
@@ -799,7 +795,7 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
WFIFOB(fd, 13) = 0;/* is int type */
WFIFOW(fd, 14) = 0;/* count */
plen = 16;
-
+
/**
* Vessel!
*
@@ -807,32 +803,31 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
* { keyLength(B), key(<keyLength>), index(L), value(L) }
**/
while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) {
-
SQL->GetData(sql_handle, 0, &data, NULL);
len = strlen(data)+1;
-
+
WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 32 */
plen += 1;
-
+
safestrncpy((char*)WFIFOP(fd,plen), data, len);
plen += len;
-
+
SQL->GetData(sql_handle, 1, &data, NULL);
-
+
WFIFOL(fd, plen) = (unsigned int)atol(data);
plen += 4;
-
+
SQL->GetData(sql_handle, 2, &data, NULL);
-
+
WFIFOL(fd, plen) = atoi(data);
plen += 4;
-
+
WFIFOW(fd, 14) += 1;
-
+
if( plen > 60000 ) {
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
/* prepare follow up */
WFIFOHEAD(fd, 60000 + 300);
WFIFOW(fd, 0) = 0x3804;
@@ -842,15 +837,15 @@ void mmo_send_accreg2(AccountDB* self, int fd, int account_id, int char_id) {
WFIFOB(fd, 12) = 0;/* var type (only set when all vars have been sent, regardless of type) */
WFIFOB(fd, 13) = 0;/* is int type */
WFIFOW(fd, 14) = 0;/* count */
-
+
plen = 16;
}
}
-
+
/* mark as complete & go. */
WFIFOB(fd, 12) = 1;
WFIFOW(fd, 2) = plen;
WFIFOSET(fd, plen);
-
+
SQL->FreeResult(sql_handle);
}
diff --git a/src/login/ipban_sql.c b/src/login/ipban_sql.c
index 081f28d84..bfc90ad11 100644
--- a/src/login/ipban_sql.c
+++ b/src/login/ipban_sql.c
@@ -23,14 +23,14 @@
static char global_db_hostname[32] = "127.0.0.1";
static uint16 global_db_port = 3306;
static char global_db_username[32] = "ragnarok";
-static char global_db_password[32] = "ragnarok";
+static char global_db_password[100] = "ragnarok";
static char global_db_database[32] = "ragnarok";
static char global_codepage[32] = "";
// local sql settings
static char ipban_db_hostname[32] = "";
static uint16 ipban_db_port = 0;
static char ipban_db_username[32] = "";
-static char ipban_db_password[32] = "";
+static char ipban_db_password[100] = "";
static char ipban_db_database[32] = "";
static char ipban_codepage[32] = "";
static char ipban_table[32] = "ipbanlist";
@@ -105,7 +105,7 @@ void ipban_final(void)
if( login_config.ipban_cleanup_interval > 0 )
// release data
timer->delete(cleanup_timer_id, ipban_cleanup);
-
+
ipban_cleanup(0,0,0,0); // always clean up on login-server stop
// close connections
diff --git a/src/login/login.c b/src/login/login.c
index c8e219602..c006d9c45 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -10,6 +10,7 @@
#include <stdlib.h>
#include <string.h>
+#include "HPMlogin.h"
#include "account.h"
#include "ipban.h"
#include "loginlog.h"
@@ -25,74 +26,26 @@
#include "../common/timer.h"
#include "../common/utils.h"
+struct login_interface login_s;
struct Login_Config login_config;
-
-int login_fd; // login server socket
struct mmo_char_server server[MAX_SERVERS]; // char server data
-static struct account_engine {
- AccountDB* (*constructor)(void);
- AccountDB* db;
-} account_engine[] = {
+struct Account_engine account_engine[] = {
{account_db_sql, NULL}
};
// account database
AccountDB* accounts = NULL;
-//Account registration flood protection [Kevin]
-int allowed_regs = 1;
-int time_allowed = 10; //in seconds
-
-// Advanced subnet check [LuzZza]
-struct s_subnet {
- uint32 mask;
- uint32 char_ip;
- uint32 map_ip;
-} subnet[16];
-
-int subnet_count = 0;
-
-int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip);
-
//-----------------------------------------------------
// Auth database
//-----------------------------------------------------
#define AUTH_TIMEOUT 30000
-struct auth_node {
-
- int account_id;
- uint32 login_id1;
- uint32 login_id2;
- uint32 ip;
- char sex;
- uint32 version;
- uint8 clienttype;
- int group_id;
- time_t expiration_time;
-};
-
-static DBMap* auth_db; // int account_id -> struct auth_node*
-
-
-//-----------------------------------------------------
-// Online User Database [Wizputer]
-//-----------------------------------------------------
-struct online_login_data {
-
- int account_id;
- int waiting_disconnect;
- int char_server;
-};
-
-static DBMap* online_db; // int account_id -> struct online_login_data*
-static int waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data);
-
/**
* @see DBCreateData
*/
-static DBData create_online_user(DBKey key, va_list args)
+static DBData login_create_online_user(DBKey key, va_list args)
{
struct online_login_data* p;
CREATE(p, struct online_login_data, 1);
@@ -102,38 +55,38 @@ static DBData create_online_user(DBKey key, va_list args)
return DB->ptr2data(p);
}
-struct online_login_data* add_online_user(int char_server, int account_id)
+struct online_login_data* login_add_online_user(int char_server, int account_id)
{
struct online_login_data* p;
- p = idb_ensure(online_db, account_id, create_online_user);
+ p = idb_ensure(login->online_db, account_id, login->create_online_user);
p->char_server = char_server;
if( p->waiting_disconnect != INVALID_TIMER )
{
- timer->delete(p->waiting_disconnect, waiting_disconnect_timer);
+ timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
p->waiting_disconnect = INVALID_TIMER;
}
return p;
}
-void remove_online_user(int account_id)
+void login_remove_online_user(int account_id)
{
struct online_login_data* p;
- p = (struct online_login_data*)idb_get(online_db, account_id);
+ p = (struct online_login_data*)idb_get(login->online_db, account_id);
if( p == NULL )
return;
if( p->waiting_disconnect != INVALID_TIMER )
- timer->delete(p->waiting_disconnect, waiting_disconnect_timer);
+ timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
- idb_remove(online_db, account_id);
+ idb_remove(login->online_db, account_id);
}
-static int waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data) {
- struct online_login_data* p = (struct online_login_data*)idb_get(online_db, id);
+static int login_waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data) {
+ struct online_login_data* p = (struct online_login_data*)idb_get(login->online_db, id);
if( p != NULL && p->waiting_disconnect == tid && p->account_id == id )
{
p->waiting_disconnect = INVALID_TIMER;
- remove_online_user(id);
- idb_remove(auth_db, id);
+ login->remove_online_user(id);
+ idb_remove(login->auth_db, id);
}
return 0;
}
@@ -141,7 +94,7 @@ static int waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data)
/**
* @see DBApply
*/
-static int online_db_setoffline(DBKey key, DBData *data, va_list ap)
+static int login_online_db_setoffline(DBKey key, DBData *data, va_list ap)
{
struct online_login_data* p = DB->data2ptr(data);
int server_id = va_arg(ap, int);
@@ -150,7 +103,7 @@ static int online_db_setoffline(DBKey key, DBData *data, va_list ap)
p->char_server = -1;
if( p->waiting_disconnect != INVALID_TIMER )
{
- timer->delete(p->waiting_disconnect, waiting_disconnect_timer);
+ timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
p->waiting_disconnect = INVALID_TIMER;
}
}
@@ -162,16 +115,16 @@ static int online_db_setoffline(DBKey key, DBData *data, va_list ap)
/**
* @see DBApply
*/
-static int online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
+static int login_online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
{
struct online_login_data *character= DB->data2ptr(data);
if (character->char_server == -2) //Unknown server.. set them offline
- remove_online_user(character->account_id);
+ login->remove_online_user(character->account_id);
return 0;
}
-static int online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
- online_db->foreach(online_db, online_data_cleanup_sub);
+static int login_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
+ login->online_db->foreach(login->online_db, login->online_data_cleanup_sub);
return 0;
}
@@ -221,7 +174,7 @@ void chrif_server_destroy(int id)
/// Resets all the data related to a server.
void chrif_server_reset(int id)
{
- online_db->foreach(online_db, online_db_setoffline, id); //Set all chars from this char server to offline.
+ login->online_db->foreach(login->online_db, login->online_db_setoffline, id); //Set all chars from this char server to offline.
chrif_server_destroy(id);
chrif_server_init(id);
}
@@ -238,7 +191,7 @@ void chrif_on_disconnect(int id)
//-----------------------------------------------------
// periodic ip address synchronization
//-----------------------------------------------------
-static int sync_ip_addresses(int tid, int64 tick, int id, intptr_t data) {
+static int login_sync_ip_addresses(int tid, int64 tick, int id, intptr_t data) {
uint8 buf[2];
ShowInfo("IP Sync in progress...\n");
WBUFW(buf,0) = 0x2735;
@@ -250,7 +203,7 @@ static int sync_ip_addresses(int tid, int64 tick, int id, intptr_t data) {
//-----------------------------------------------------
// encrypted/unencrypted password check (from eApp)
//-----------------------------------------------------
-bool check_encrypted(const char* str1, const char* str2, const char* passwd)
+bool login_check_encrypted(const char* str1, const char* str2, const char* passwd)
{
char tmpstr[64+1], md5str[32+1];
@@ -260,7 +213,7 @@ bool check_encrypted(const char* str1, const char* str2, const char* passwd)
return (0==strcmp(passwd, md5str));
}
-bool check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass)
+bool login_check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass)
{
if(passwdenc == 0)
{
@@ -270,20 +223,20 @@ bool check_password(const char* md5key, int passwdenc, const char* passwd, const
{
// password mode set to 1 -> md5(md5key, refpass) enable with <passwordencrypt></passwordencrypt>
// password mode set to 2 -> md5(refpass, md5key) enable with <passwordencrypt2></passwordencrypt2>
-
- return ((passwdenc&0x01) && check_encrypted(md5key, refpass, passwd)) ||
- ((passwdenc&0x02) && check_encrypted(refpass, md5key, passwd));
+
+ return ((passwdenc&0x01) && login->check_encrypted(md5key, refpass, passwd)) ||
+ ((passwdenc&0x02) && login->check_encrypted(refpass, md5key, passwd));
}
}
//--------------------------------------------
// Test to know if an IP come from LAN or WAN.
//--------------------------------------------
-int lan_subnetcheck(uint32 ip)
+int login_lan_subnetcheck(uint32 ip)
{
int i;
- ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) );
- return ( i < subnet_count ) ? subnet[i].char_ip : 0;
+ ARR_FIND( 0, login_config.subnet_count, i, (login_config.subnet[i].char_ip & login_config.subnet[i].mask) == (ip & login_config.subnet[i].mask) );
+ return ( i < login_config.subnet_count ) ? login_config.subnet[i].char_ip : 0;
}
//----------------------------------
@@ -313,31 +266,546 @@ int login_lan_config_read(const char *lancfgName)
if( strcmpi(w1, "subnet") == 0 )
{
- subnet[subnet_count].mask = str2ip(w2);
- subnet[subnet_count].char_ip = str2ip(w3);
- subnet[subnet_count].map_ip = str2ip(w4);
+ login_config.subnet[login_config.subnet_count].mask = str2ip(w2);
+ login_config.subnet[login_config.subnet_count].char_ip = str2ip(w3);
+ login_config.subnet[login_config.subnet_count].map_ip = str2ip(w4);
- if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip & subnet[subnet_count].mask) )
+ if( (login_config.subnet[login_config.subnet_count].char_ip
+ & login_config.subnet[login_config.subnet_count].mask) != (login_config.subnet[login_config.subnet_count].map_ip
+ & login_config.subnet[login_config.subnet_count].mask) )
{
ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4);
continue;
}
- subnet_count++;
+ login_config.subnet_count++;
}
}
- if( subnet_count > 1 ) /* only useful if there is more than 1 available */
- ShowStatus("Read information about %d subnetworks.\n", subnet_count);
+ if( login_config.subnet_count > 1 ) /* only useful if there is more than 1 available */
+ ShowStatus("Read information about %d subnetworks.\n", login_config.subnet_count);
fclose(fp);
return 0;
}
+void login_fromchar_auth_ack(int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node* node)
+{
+ WFIFOHEAD(fd,33);
+ WFIFOW(fd,0) = 0x2713;
+ WFIFOL(fd,2) = account_id;
+ WFIFOL(fd,6) = login_id1;
+ WFIFOL(fd,10) = login_id2;
+ WFIFOB(fd,14) = sex;
+ if (node)
+ {
+ WFIFOB(fd,15) = 0;// ok
+ WFIFOL(fd,16) = request_id;
+ WFIFOL(fd,20) = node->version;
+ WFIFOB(fd,24) = node->clienttype;
+ WFIFOL(fd,25) = node->group_id;
+ WFIFOL(fd,29) = (unsigned int)node->expiration_time;
+ }
+ else
+ {
+ WFIFOB(fd,15) = 1;// auth failed
+ WFIFOL(fd,16) = request_id;
+ WFIFOL(fd,20) = 0;
+ WFIFOB(fd,24) = 0;
+ WFIFOL(fd,25) = 0;
+ WFIFOL(fd,29) = 0;
+ }
+ WFIFOSET(fd,33);
+}
+
+void login_fromchar_parse_auth(int fd, int id, const char *const ip)
+{
+ struct login_auth_node* node;
+
+ int account_id = RFIFOL(fd,2);
+ uint32 login_id1 = RFIFOL(fd,6);
+ uint32 login_id2 = RFIFOL(fd,10);
+ uint8 sex = RFIFOB(fd,14);
+ //uint32 ip_ = ntohl(RFIFOL(fd,15));
+ int request_id = RFIFOL(fd,19);
+ RFIFOSKIP(fd,23);
+
+ node = (struct login_auth_node*)idb_get(login->auth_db, account_id);
+ if( runflag == LOGINSERVER_ST_RUNNING &&
+ node != NULL &&
+ node->account_id == account_id &&
+ node->login_id1 == login_id1 &&
+ node->login_id2 == login_id2 &&
+ node->sex == sex_num2str(sex) /*&&
+ node->ip == ip_*/ )
+ {// found
+ //ShowStatus("Char-server '%s': authentication of the account %d accepted (ip: %s).\n", server[id].name, account_id, ip);
+
+ // send ack
+ login->fromchar_auth_ack(fd, account_id, login_id1, login_id2, sex, request_id, node);
+ // each auth entry can only be used once
+ idb_remove(login->auth_db, account_id);
+ }
+ else
+ {// authentication not found
+ ShowStatus("Char-server '%s': authentication of the account %d REFUSED (ip: %s).\n", server[id].name, account_id, ip);
+ login->fromchar_auth_ack(fd, account_id, login_id1, login_id2, sex, request_id, NULL);
+ }
+}
+
+void login_fromchar_parse_update_users(int fd, int id)
+{
+ int users = RFIFOL(fd,2);
+ RFIFOSKIP(fd,6);
+
+ // how many users on world? (update)
+ if( server[id].users != users )
+ {
+ ShowStatus("set users %s : %d\n", server[id].name, users);
+
+ server[id].users = (uint16)users;
+ }
+}
+
+void login_fromchar_parse_request_change_email(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+ char email[40];
+
+ int account_id = RFIFOL(fd,2);
+ safestrncpy(email, (char*)RFIFOP(fd,6), 40); remove_control_chars(email);
+ RFIFOSKIP(fd,46);
+
+ if( e_mail_check(email) == 0 )
+ ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - e-mail is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip);
+ else
+ if( !accounts->load_num(accounts, &acc, account_id) || strcmp(acc.email, "a@a.com") == 0 || acc.email[0] == '\0' )
+ ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - account doesn't exist or e-mail of account isn't default e-mail (account: %d, ip: %s).\n", server[id].name, account_id, ip);
+ else {
+ memcpy(acc.email, email, 40);
+ ShowNotice("Char-server '%s': Create an e-mail on an account with a default e-mail (account: %d, new e-mail: %s, ip: %s).\n", server[id].name, account_id, email, ip);
+ // Save
+ accounts->save(accounts, &acc);
+ }
+}
+
+void login_fromchar_account(int fd, int account_id, struct mmo_account *acc)
+{
+ WFIFOHEAD(fd,72);
+ WFIFOW(fd,0) = 0x2717;
+ WFIFOL(fd,2) = account_id;
+ if (acc)
+ {
+ time_t expiration_time = 0;
+ char email[40] = "";
+ int group_id = 0;
+ uint8 char_slots = 0;
+ char birthdate[10+1] = "";
+ char pincode[4+1] = "\0\0\0\0";
+
+ safestrncpy(email, acc->email, sizeof(email));
+ expiration_time = acc->expiration_time;
+ group_id = acc->group_id;
+ char_slots = acc->char_slots;
+ safestrncpy(pincode, acc->pincode, sizeof(pincode));
+ safestrncpy(birthdate, acc->birthdate, sizeof(birthdate));
+ if( strlen(pincode) == 0 )
+ memset(pincode,'\0',sizeof(pincode));
+
+ safestrncpy((char*)WFIFOP(fd,6), email, 40);
+ WFIFOL(fd,46) = (uint32)expiration_time;
+ WFIFOB(fd,50) = (unsigned char)group_id;
+ WFIFOB(fd,51) = char_slots;
+ safestrncpy((char*)WFIFOP(fd,52), birthdate, 10+1);
+ safestrncpy((char*)WFIFOP(fd,63), pincode, 4+1 );
+ WFIFOL(fd,68) = acc->pincode_change;
+ }
+ else
+ {
+ safestrncpy((char*)WFIFOP(fd,6), "", 40);
+ WFIFOL(fd,46) = 0;
+ WFIFOB(fd,50) = 0;
+ WFIFOB(fd,51) = 0;
+ safestrncpy((char*)WFIFOP(fd,52), "", 10+1);
+ safestrncpy((char*)WFIFOP(fd,63), "\0\0\0\0", 4+1 );
+ WFIFOL(fd,68) = 0;
+ }
+ WFIFOSET(fd,72);
+}
+
+void login_fromchar_parse_account_data(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,2);
+ RFIFOSKIP(fd,6);
+
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ {
+ ShowNotice("Char-server '%s': account %d NOT found (ip: %s).\n", server[id].name, account_id, ip);
+ login->fromchar_account(fd, account_id, NULL);
+ }
+ else {
+ login->fromchar_account(fd, account_id, &acc);
+ }
+}
+
+void login_fromchar_pong(int fd)
+{
+ WFIFOHEAD(fd,2);
+ WFIFOW(fd,0) = 0x2718;
+ WFIFOSET(fd,2);
+}
+
+void login_fromchar_parse_ping(int fd)
+{
+ RFIFOSKIP(fd,2);
+ login->fromchar_pong(fd);
+}
+
+void login_fromchar_parse_change_email(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+ char actual_email[40];
+ char new_email[40];
+
+ int account_id = RFIFOL(fd,2);
+ safestrncpy(actual_email, (char*)RFIFOP(fd,6), 40);
+ safestrncpy(new_email, (char*)RFIFOP(fd,46), 40);
+ RFIFOSKIP(fd, 86);
+
+ if( e_mail_check(actual_email) == 0 )
+ ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip);
+ else
+ if( e_mail_check(new_email) == 0 )
+ ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip);
+ else
+ if( strcmpi(new_email, "a@a.com") == 0 )
+ ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip);
+ else
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but account doesn't exist (account: %d, ip: %s).\n", server[id].name, account_id, ip);
+ else
+ if( strcmpi(acc.email, actual_email) != 0 )
+ ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual e-mail is incorrect (account: %d (%s), actual e-mail: %s, proposed e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, acc.email, actual_email, ip);
+ else {
+ safestrncpy(acc.email, new_email, 40);
+ ShowNotice("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, new_email, ip);
+ // Save
+ accounts->save(accounts, &acc);
+ }
+}
+
+void login_fromchar_account_update_other(int account_id, unsigned int state)
+{
+ uint8 buf[11];
+ WBUFW(buf,0) = 0x2731;
+ WBUFL(buf,2) = account_id;
+ WBUFB(buf,6) = 0; // 0: change of state, 1: ban
+ WBUFL(buf,7) = state; // status or final date of a banishment
+ charif_sendallwos(-1, buf, 11);
+}
+
+void login_fromchar_parse_account_update(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,2);
+ unsigned int state = RFIFOL(fd,6);
+ RFIFOSKIP(fd,10);
+
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ ShowNotice("Char-server '%s': Error of Status change (account: %d not found, suggested status %d, ip: %s).\n", server[id].name, account_id, state, ip);
+ else
+ if( acc.state == state )
+ ShowNotice("Char-server '%s': Error of Status change - actual status is already the good status (account: %d, status %d, ip: %s).\n", server[id].name, account_id, state, ip);
+ else {
+ ShowNotice("Char-server '%s': Status change (account: %d, new status %d, ip: %s).\n", server[id].name, account_id, state, ip);
+
+ acc.state = state;
+ // Save
+ accounts->save(accounts, &acc);
+
+ // notify other servers
+ if (state != 0) {
+ login->fromchar_account_update_other(account_id, state);
+ }
+ }
+}
+
+void login_fromchar_ban(int account_id, time_t timestamp)
+{
+ uint8 buf[11];
+ WBUFW(buf,0) = 0x2731;
+ WBUFL(buf,2) = account_id;
+ WBUFB(buf,6) = 1; // 0: change of status, 1: ban
+ WBUFL(buf,7) = (uint32)timestamp; // status or final date of a banishment
+ charif_sendallwos(-1, buf, 11);
+}
+
+void login_fromchar_parse_ban(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,2);
+ int year = (short)RFIFOW(fd,6);
+ int month = (short)RFIFOW(fd,8);
+ int mday = (short)RFIFOW(fd,10);
+ int hour = (short)RFIFOW(fd,12);
+ int min = (short)RFIFOW(fd,14);
+ int sec = (short)RFIFOW(fd,16);
+ RFIFOSKIP(fd,18);
+
+ if (!accounts->load_num(accounts, &acc, account_id)) {
+ ShowNotice("Char-server '%s': Error of ban request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
+ } else {
+ time_t timestamp;
+ struct tm *tmtime;
+ if (acc.unban_time == 0 || acc.unban_time < time(NULL))
+ timestamp = time(NULL); // new ban
+ else
+ timestamp = acc.unban_time; // add to existing ban
+ tmtime = localtime(&timestamp);
+ tmtime->tm_year += year;
+ tmtime->tm_mon += month;
+ tmtime->tm_mday += mday;
+ tmtime->tm_hour += hour;
+ tmtime->tm_min += min;
+ tmtime->tm_sec += sec;
+ timestamp = mktime(tmtime);
+ if (timestamp == -1) {
+ ShowNotice("Char-server '%s': Error of ban request (account: %d, invalid date, ip: %s).\n", server[id].name, account_id, ip);
+ } else if( timestamp <= time(NULL) || timestamp == 0 ) {
+ ShowNotice("Char-server '%s': Error of ban request (account: %d, new date unbans the account, ip: %s).\n", server[id].name, account_id, ip);
+ } else {
+ char tmpstr[24];
+ timestamp2string(tmpstr, sizeof(tmpstr), timestamp, login_config.date_format);
+ ShowNotice("Char-server '%s': Ban request (account: %d, new final date of banishment: %ld (%s), ip: %s).\n",
+ server[id].name, account_id, (long)timestamp, tmpstr, ip);
+
+ acc.unban_time = timestamp;
+
+ // Save
+ accounts->save(accounts, &acc);
+
+ login->fromchar_ban(account_id, timestamp);
+ }
+ }
+}
+
+void login_fromchar_change_sex_other(int account_id, char sex)
+{
+ unsigned char buf[7];
+ WBUFW(buf,0) = 0x2723;
+ WBUFL(buf,2) = account_id;
+ WBUFB(buf,6) = sex_str2num(sex);
+ charif_sendallwos(-1, buf, 7);
+}
+
+void login_fromchar_parse_change_sex(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,2);
+ RFIFOSKIP(fd,6);
+
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ ShowNotice("Char-server '%s': Error of sex change (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
+ else
+ if( acc.sex == 'S' )
+ ShowNotice("Char-server '%s': Error of sex change - account to change is a Server account (account: %d, ip: %s).\n", server[id].name, account_id, ip);
+ else
+ {
+ char sex = ( acc.sex == 'M' ) ? 'F' : 'M'; //Change gender
+
+ ShowNotice("Char-server '%s': Sex change (account: %d, new sex %c, ip: %s).\n", server[id].name, account_id, sex, ip);
+
+ acc.sex = sex;
+ // Save
+ accounts->save(accounts, &acc);
+
+ // announce to other servers
+ login->fromchar_change_sex_other(account_id, sex);
+ }
+}
+
+void login_fromchar_parse_account_reg2(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,4);
+
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ ShowStatus("Char-server '%s': receiving (from the char-server) of account_reg2 (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
+ else {
+ mmo_save_accreg2(accounts,fd,account_id,RFIFOL(fd, 8));
+ }
+ RFIFOSKIP(fd,RFIFOW(fd,2));
+}
+
+void login_fromchar_parse_unban(int fd, int id, const char *const ip)
+{
+ struct mmo_account acc;
+
+ int account_id = RFIFOL(fd,2);
+ RFIFOSKIP(fd,6);
+
+ if( !accounts->load_num(accounts, &acc, account_id) )
+ ShowNotice("Char-server '%s': Error of Unban request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
+ else
+ if( acc.unban_time == 0 )
+ ShowNotice("Char-server '%s': Error of Unban request (account: %d, no change for unban date, ip: %s).\n", server[id].name, account_id, ip);
+ else
+ {
+ ShowNotice("Char-server '%s': Unban request (account: %d, ip: %s).\n", server[id].name, account_id, ip);
+ acc.unban_time = 0;
+ accounts->save(accounts, &acc);
+ }
+}
+
+void login_fromchar_parse_account_online(int fd, int id)
+{
+ login->add_online_user(id, RFIFOL(fd,2));
+ RFIFOSKIP(fd,6);
+}
+
+void login_fromchar_parse_account_offline(int fd)
+{
+ login->remove_online_user(RFIFOL(fd,2));
+ RFIFOSKIP(fd,6);
+}
+
+void login_fromchar_parse_online_accounts(int fd, int id)
+{
+ struct online_login_data *p;
+ int aid;
+ uint32 i, users;
+ login->online_db->foreach(login->online_db, login->online_db_setoffline, id); //Set all chars from this char-server offline first
+ users = RFIFOW(fd,4);
+ for (i = 0; i < users; i++) {
+ aid = RFIFOL(fd,6+i*4);
+ p = idb_ensure(login->online_db, aid, login->create_online_user);
+ p->char_server = id;
+ if (p->waiting_disconnect != INVALID_TIMER)
+ {
+ timer->delete(p->waiting_disconnect, login->waiting_disconnect_timer);
+ p->waiting_disconnect = INVALID_TIMER;
+ }
+ }
+}
+
+void login_fromchar_parse_request_account_reg2(int fd)
+{
+ int account_id = RFIFOL(fd,2);
+ int char_id = RFIFOL(fd,6);
+ RFIFOSKIP(fd,10);
+
+ mmo_send_accreg2(accounts,fd,account_id,char_id);
+}
+
+void login_fromchar_parse_update_wan_ip(int fd, int id)
+{
+ server[id].ip = ntohl(RFIFOL(fd,2));
+ ShowInfo("Updated IP of Server #%d to %d.%d.%d.%d.\n",id, CONVIP(server[id].ip));
+ RFIFOSKIP(fd,6);
+}
+
+void login_fromchar_parse_all_offline(int fd, int id)
+{
+ ShowInfo("Setting accounts from char-server %d offline.\n", id);
+ login->online_db->foreach(login->online_db, login->online_db_setoffline, id);
+ RFIFOSKIP(fd,2);
+}
+
+void login_fromchar_parse_change_pincode(int fd)
+{
+ struct mmo_account acc;
+
+ if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ) {
+ strncpy( acc.pincode, (char*)RFIFOP(fd,6), 5 );
+ acc.pincode_change = ((unsigned int)time( NULL ));
+ accounts->save(accounts, &acc);
+ }
+ RFIFOSKIP(fd,11);
+}
+
+bool login_fromchar_parse_wrong_pincode(int fd)
+{
+ struct mmo_account acc;
+
+ if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ) {
+ struct online_login_data* ld;
+
+ if( ( ld = (struct online_login_data*)idb_get(login->online_db,acc.account_id) ) == NULL )
+ {
+ RFIFOSKIP(fd,6);
+ return true;
+ }
+
+ login_log( host2ip(acc.last_ip), acc.userid, 100, "PIN Code check failed" );
+ }
+
+ login->remove_online_user(acc.account_id);
+ RFIFOSKIP(fd,6);
+ return false;
+}
+
+void login_fromchar_accinfo(int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc)
+{
+ if (acc)
+ {
+ WFIFOHEAD(fd,183);
+ WFIFOW(fd,0) = 0x2737;
+ safestrncpy((char*)WFIFOP(fd,2), acc->userid, NAME_LENGTH);
+ if (u_group >= acc->group_id)
+ safestrncpy((char*)WFIFOP(fd,26), acc->pass, 33);
+ else
+ memset(WFIFOP(fd,26), '\0', 33);
+ safestrncpy((char*)WFIFOP(fd,59), acc->email, 40);
+ safestrncpy((char*)WFIFOP(fd,99), acc->last_ip, 16);
+ WFIFOL(fd,115) = acc->group_id;
+ safestrncpy((char*)WFIFOP(fd,119), acc->lastlogin, 24);
+ WFIFOL(fd,143) = acc->logincount;
+ WFIFOL(fd,147) = acc->state;
+ if (u_group >= acc->group_id)
+ safestrncpy((char*)WFIFOP(fd,151), acc->pincode, 5);
+ else
+ memset(WFIFOP(fd,151), '\0', 5);
+ safestrncpy((char*)WFIFOP(fd,156), acc->birthdate, 11);
+ WFIFOL(fd,167) = map_fd;
+ WFIFOL(fd,171) = u_fd;
+ WFIFOL(fd,175) = u_aid;
+ WFIFOL(fd,179) = account_id;
+ WFIFOSET(fd,183);
+ }
+ else
+ {
+ WFIFOHEAD(fd,18);
+ WFIFOW(fd,0) = 0x2736;
+ WFIFOL(fd,2) = map_fd;
+ WFIFOL(fd,6) = u_fd;
+ WFIFOL(fd,10) = u_aid;
+ WFIFOL(fd,14) = account_id;
+ WFIFOSET(fd,18);
+ }
+}
+
+void login_fromchar_parse_accinfo(int fd)
+{
+ struct mmo_account acc;
+ int account_id = RFIFOL(fd, 2), u_fd = RFIFOL(fd, 6), u_aid = RFIFOL(fd, 10), u_group = RFIFOL(fd, 14), map_fd = RFIFOL(fd, 18);
+ if (accounts->load_num(accounts, &acc, account_id)) {
+ login->fromchar_accinfo(fd, account_id, u_fd, u_aid, u_group, map_fd, &acc);
+ } else {
+ login->fromchar_accinfo(fd, account_id, u_fd, u_aid, u_group, map_fd, NULL);
+ }
+ RFIFOSKIP(fd,22);
+}
+
//--------------------------------
// Packet parsing for char-servers
//--------------------------------
-int parse_fromchar(int fd)
+int login_parse_fromchar(int fd)
{
int j, id;
uint32 ipl;
@@ -346,7 +814,7 @@ int parse_fromchar(int fd)
ARR_FIND( 0, ARRAYLENGTH(server), id, server[id].fd == fd );
if( id == ARRAYLENGTH(server) )
{// not a char server
- ShowDebug("parse_fromchar: Disconnecting invalid session #%d (is not a char-server)\n", fd);
+ ShowDebug("login_parse_fromchar: Disconnecting invalid session #%d (is not a char-server)\n", fd);
set_eof(fd);
do_close(fd);
return 0;
@@ -372,69 +840,14 @@ int parse_fromchar(int fd)
if( j == 2 ) return 0;
}
}
-
+
switch( command ) {
case 0x2712: // request from char-server to authenticate an account
if( RFIFOREST(fd) < 23 )
return 0;
{
- struct auth_node* node;
-
- int account_id = RFIFOL(fd,2);
- uint32 login_id1 = RFIFOL(fd,6);
- uint32 login_id2 = RFIFOL(fd,10);
- uint8 sex = RFIFOB(fd,14);
- //uint32 ip_ = ntohl(RFIFOL(fd,15));
- int request_id = RFIFOL(fd,19);
- RFIFOSKIP(fd,23);
-
- node = (struct auth_node*)idb_get(auth_db, account_id);
- if( runflag == LOGINSERVER_ST_RUNNING &&
- node != NULL &&
- node->account_id == account_id &&
- node->login_id1 == login_id1 &&
- node->login_id2 == login_id2 &&
- node->sex == sex_num2str(sex) /*&&
- node->ip == ip_*/ )
- {// found
- //ShowStatus("Char-server '%s': authentication of the account %d accepted (ip: %s).\n", server[id].name, account_id, ip);
-
- // send ack
- WFIFOHEAD(fd,33);
- WFIFOW(fd,0) = 0x2713;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = login_id1;
- WFIFOL(fd,10) = login_id2;
- WFIFOB(fd,14) = sex;
- WFIFOB(fd,15) = 0;// ok
- WFIFOL(fd,16) = request_id;
- WFIFOL(fd,20) = node->version;
- WFIFOB(fd,24) = node->clienttype;
- WFIFOL(fd,25) = node->group_id;
- WFIFOL(fd,29) = (unsigned int)node->expiration_time;
- WFIFOSET(fd,33);
-
- // each auth entry can only be used once
- idb_remove(auth_db, account_id);
- }
- else
- {// authentication not found
- ShowStatus("Char-server '%s': authentication of the account %d REFUSED (ip: %s).\n", server[id].name, account_id, ip);
- WFIFOHEAD(fd,33);
- WFIFOW(fd,0) = 0x2713;
- WFIFOL(fd,2) = account_id;
- WFIFOL(fd,6) = login_id1;
- WFIFOL(fd,10) = login_id2;
- WFIFOB(fd,14) = sex;
- WFIFOB(fd,15) = 1;// auth failed
- WFIFOL(fd,16) = request_id;
- WFIFOL(fd,20) = 0;
- WFIFOB(fd,24) = 0;
- WFIFOL(fd,25) = 0;
- WFIFOL(fd,29) = 0;
- WFIFOSET(fd,33);
- }
+ login->fromchar_parse_auth(fd, id, ip);
}
break;
@@ -442,16 +855,7 @@ int parse_fromchar(int fd)
if( RFIFOREST(fd) < 6 )
return 0;
{
- int users = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- // how many users on world? (update)
- if( server[id].users != users )
- {
- ShowStatus("set users %s : %d\n", server[id].name, users);
-
- server[id].users = (uint16)users;
- }
+ login->fromchar_parse_update_users(fd, id);
}
break;
@@ -459,24 +863,7 @@ int parse_fromchar(int fd)
if (RFIFOREST(fd) < 46)
return 0;
{
- struct mmo_account acc;
- char email[40];
-
- int account_id = RFIFOL(fd,2);
- safestrncpy(email, (char*)RFIFOP(fd,6), 40); remove_control_chars(email);
- RFIFOSKIP(fd,46);
-
- if( e_mail_check(email) == 0 )
- ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - e-mail is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip);
- else
- if( !accounts->load_num(accounts, &acc, account_id) || strcmp(acc.email, "a@a.com") == 0 || acc.email[0] == '\0' )
- ShowNotice("Char-server '%s': Attempt to create an e-mail on an account with a default e-mail REFUSED - account doesn't exist or e-mail of account isn't default e-mail (account: %d, ip: %s).\n", server[id].name, account_id, ip);
- else {
- memcpy(acc.email, email, 40);
- ShowNotice("Char-server '%s': Create an e-mail on an account with a default e-mail (account: %d, new e-mail: %s, ip: %s).\n", server[id].name, account_id, email, ip);
- // Save
- accounts->save(accounts, &acc);
- }
+ login->fromchar_parse_request_change_email(fd, id, ip);
}
break;
@@ -484,86 +871,20 @@ int parse_fromchar(int fd)
if( RFIFOREST(fd) < 6 )
return 0;
{
- struct mmo_account acc;
- time_t expiration_time = 0;
- char email[40] = "";
- int group_id = 0;
- uint8 char_slots = 0;
- char birthdate[10+1] = "";
- char pincode[4+1] = "\0\0\0\0";
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowNotice("Char-server '%s': account %d NOT found (ip: %s).\n", server[id].name, account_id, ip);
- else {
- safestrncpy(email, acc.email, sizeof(email));
- expiration_time = acc.expiration_time;
- group_id = acc.group_id;
- char_slots = acc.char_slots;
- safestrncpy(pincode, acc.pincode, sizeof(pincode));
- safestrncpy(birthdate, acc.birthdate, sizeof(birthdate));
- if( strlen(pincode) == 0 )
- memset(pincode,'\0',sizeof(pincode));
- }
-
- WFIFOHEAD(fd,72);
- WFIFOW(fd,0) = 0x2717;
- WFIFOL(fd,2) = account_id;
- safestrncpy((char*)WFIFOP(fd,6), email, 40);
- WFIFOL(fd,46) = (uint32)expiration_time;
- WFIFOB(fd,50) = (unsigned char)group_id;
- WFIFOB(fd,51) = char_slots;
- safestrncpy((char*)WFIFOP(fd,52), birthdate, 10+1);
- safestrncpy((char*)WFIFOP(fd,63), pincode, 4+1 );
- WFIFOL(fd,68) = acc.pincode_change;
- WFIFOSET(fd,72);
+ login->fromchar_parse_account_data(fd, id, ip);
}
break;
case 0x2719: // ping request from charserver
- RFIFOSKIP(fd,2);
-
- WFIFOHEAD(fd,2);
- WFIFOW(fd,0) = 0x2718;
- WFIFOSET(fd,2);
+ login->fromchar_parse_ping(fd);
break;
// Map server send information to change an email of an account via char-server
- case 0x2722: // 0x2722 <account_id>.L <actual_e-mail>.40B <new_e-mail>.40B
+ case 0x2722: // 0x2722 <account_id>.L <actual_e-mail>.40B <new_e-mail>.40B
if (RFIFOREST(fd) < 86)
return 0;
{
- struct mmo_account acc;
- char actual_email[40];
- char new_email[40];
-
- int account_id = RFIFOL(fd,2);
- safestrncpy(actual_email, (char*)RFIFOP(fd,6), 40);
- safestrncpy(new_email, (char*)RFIFOP(fd,46), 40);
- RFIFOSKIP(fd, 86);
-
- if( e_mail_check(actual_email) == 0 )
- ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)\n", server[id].name, account_id, ip);
- else
- if( e_mail_check(new_email) == 0 )
- ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip);
- else
- if( strcmpi(new_email, "a@a.com") == 0 )
- ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)\n", server[id].name, account_id, ip);
- else
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but account doesn't exist (account: %d, ip: %s).\n", server[id].name, account_id, ip);
- else
- if( strcmpi(acc.email, actual_email) != 0 )
- ShowNotice("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual e-mail is incorrect (account: %d (%s), actual e-mail: %s, proposed e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, acc.email, actual_email, ip);
- else {
- safestrncpy(acc.email, new_email, 40);
- ShowNotice("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s).\n", server[id].name, account_id, acc.userid, new_email, ip);
- // Save
- accounts->save(accounts, &acc);
- }
+ login->fromchar_parse_change_email(fd, id, ip);
}
break;
@@ -571,34 +892,7 @@ int parse_fromchar(int fd)
if (RFIFOREST(fd) < 10)
return 0;
{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- unsigned int state = RFIFOL(fd,6);
- RFIFOSKIP(fd,10);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowNotice("Char-server '%s': Error of Status change (account: %d not found, suggested status %d, ip: %s).\n", server[id].name, account_id, state, ip);
- else
- if( acc.state == state )
- ShowNotice("Char-server '%s': Error of Status change - actual status is already the good status (account: %d, status %d, ip: %s).\n", server[id].name, account_id, state, ip);
- else {
- ShowNotice("Char-server '%s': Status change (account: %d, new status %d, ip: %s).\n", server[id].name, account_id, state, ip);
-
- acc.state = state;
- // Save
- accounts->save(accounts, &acc);
-
- // notify other servers
- if (state != 0) {
- uint8 buf[11];
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = 0; // 0: change of state, 1: ban
- WBUFL(buf,7) = state; // status or final date of a banishment
- charif_sendallwos(-1, buf, 11);
- }
- }
+ login->fromchar_parse_account_update(fd, id, ip);
}
break;
@@ -606,57 +900,7 @@ int parse_fromchar(int fd)
if (RFIFOREST(fd) < 18)
return 0;
{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- int year = (short)RFIFOW(fd,6);
- int month = (short)RFIFOW(fd,8);
- int mday = (short)RFIFOW(fd,10);
- int hour = (short)RFIFOW(fd,12);
- int min = (short)RFIFOW(fd,14);
- int sec = (short)RFIFOW(fd,16);
- RFIFOSKIP(fd,18);
-
- if (!accounts->load_num(accounts, &acc, account_id)) {
- ShowNotice("Char-server '%s': Error of ban request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
- } else {
- time_t timestamp;
- struct tm *tmtime;
- if (acc.unban_time == 0 || acc.unban_time < time(NULL))
- timestamp = time(NULL); // new ban
- else
- timestamp = acc.unban_time; // add to existing ban
- tmtime = localtime(&timestamp);
- tmtime->tm_year += year;
- tmtime->tm_mon += month;
- tmtime->tm_mday += mday;
- tmtime->tm_hour += hour;
- tmtime->tm_min += min;
- tmtime->tm_sec += sec;
- timestamp = mktime(tmtime);
- if (timestamp == -1) {
- ShowNotice("Char-server '%s': Error of ban request (account: %d, invalid date, ip: %s).\n", server[id].name, account_id, ip);
- } else if( timestamp <= time(NULL) || timestamp == 0 ) {
- ShowNotice("Char-server '%s': Error of ban request (account: %d, new date unbans the account, ip: %s).\n", server[id].name, account_id, ip);
- } else {
- uint8 buf[11];
- char tmpstr[24];
- timestamp2string(tmpstr, sizeof(tmpstr), timestamp, login_config.date_format);
- ShowNotice("Char-server '%s': Ban request (account: %d, new final date of banishment: %ld (%s), ip: %s).\n",
- server[id].name, account_id, (long)timestamp, tmpstr, ip);
-
- acc.unban_time = timestamp;
-
- // Save
- accounts->save(accounts, &acc);
-
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = 1; // 0: change of status, 1: ban
- WBUFL(buf,7) = (uint32)timestamp; // status or final date of a banishment
- charif_sendallwos(-1, buf, 11);
- }
- }
+ login->fromchar_parse_ban(fd, id, ip);
}
break;
@@ -664,109 +908,43 @@ int parse_fromchar(int fd)
if( RFIFOREST(fd) < 6 )
return 0;
{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowNotice("Char-server '%s': Error of sex change (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
- else
- if( acc.sex == 'S' )
- ShowNotice("Char-server '%s': Error of sex change - account to change is a Server account (account: %d, ip: %s).\n", server[id].name, account_id, ip);
- else
- {
- unsigned char buf[7];
- char sex = ( acc.sex == 'M' ) ? 'F' : 'M'; //Change gender
-
- ShowNotice("Char-server '%s': Sex change (account: %d, new sex %c, ip: %s).\n", server[id].name, account_id, sex, ip);
-
- acc.sex = sex;
- // Save
- accounts->save(accounts, &acc);
-
- // announce to other servers
- WBUFW(buf,0) = 0x2723;
- WBUFL(buf,2) = account_id;
- WBUFB(buf,6) = sex_str2num(sex);
- charif_sendallwos(-1, buf, 7);
- }
+ login->fromchar_parse_change_sex(fd, id, ip);
}
break;
- case 0x2728: // We receive account_reg2 from a char-server, and we send them to other map-servers.
+ case 0x2728: // We receive account_reg2 from a char-server, and we send them to other map-servers.
if( RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2) )
return 0;
{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,4);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowStatus("Char-server '%s': receiving (from the char-server) of account_reg2 (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
- else {
- mmo_save_accreg2(accounts,fd,account_id,RFIFOL(fd, 8));
- }
- RFIFOSKIP(fd,RFIFOW(fd,2));
+ login->fromchar_parse_account_reg2(fd, id, ip);
}
break;
- case 0x272a: // Receiving of map-server via char-server an unban request
+ case 0x272a: // Receiving of map-server via char-server an unban request
if( RFIFOREST(fd) < 6 )
return 0;
{
- struct mmo_account acc;
-
- int account_id = RFIFOL(fd,2);
- RFIFOSKIP(fd,6);
-
- if( !accounts->load_num(accounts, &acc, account_id) )
- ShowNotice("Char-server '%s': Error of Unban request (account: %d not found, ip: %s).\n", server[id].name, account_id, ip);
- else
- if( acc.unban_time == 0 )
- ShowNotice("Char-server '%s': Error of Unban request (account: %d, no change for unban date, ip: %s).\n", server[id].name, account_id, ip);
- else
- {
- ShowNotice("Char-server '%s': Unban request (account: %d, ip: %s).\n", server[id].name, account_id, ip);
- acc.unban_time = 0;
- accounts->save(accounts, &acc);
- }
+ login->fromchar_parse_unban(fd, id, ip);
}
break;
case 0x272b: // Set account_id to online [Wizputer]
if( RFIFOREST(fd) < 6 )
return 0;
- add_online_user(id, RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
+ login->fromchar_parse_account_online(fd, id);
break;
case 0x272c: // Set account_id to offline [Wizputer]
if( RFIFOREST(fd) < 6 )
return 0;
- remove_online_user(RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
+ login->fromchar_parse_account_offline(fd);
break;
- case 0x272d: // Receive list of all online accounts. [Skotlex]
+ case 0x272d: // Receive list of all online accounts. [Skotlex]
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
return 0;
{
- struct online_login_data *p;
- int aid;
- uint32 i, users;
- online_db->foreach(online_db, online_db_setoffline, id); //Set all chars from this char-server offline first
- users = RFIFOW(fd,4);
- for (i = 0; i < users; i++) {
- aid = RFIFOL(fd,6+i*4);
- p = idb_ensure(online_db, aid, create_online_user);
- p->char_server = id;
- if (p->waiting_disconnect != INVALID_TIMER)
- {
- timer->delete(p->waiting_disconnect, waiting_disconnect_timer);
- p->waiting_disconnect = INVALID_TIMER;
- }
- }
+ login->fromchar_parse_online_accounts(fd, id);
}
RFIFOSKIP(fd,RFIFOW(fd,2));
break;
@@ -775,107 +953,46 @@ int parse_fromchar(int fd)
if (RFIFOREST(fd) < 10)
return 0;
{
- int account_id = RFIFOL(fd,2);
- int char_id = RFIFOL(fd,6);
- RFIFOSKIP(fd,10);
-
- mmo_send_accreg2(accounts,fd,account_id,char_id);
+ login->fromchar_parse_request_account_reg2(fd);
}
break;
case 0x2736: // WAN IP update from char-server
if( RFIFOREST(fd) < 6 )
return 0;
- server[id].ip = ntohl(RFIFOL(fd,2));
- ShowInfo("Updated IP of Server #%d to %d.%d.%d.%d.\n",id, CONVIP(server[id].ip));
- RFIFOSKIP(fd,6);
+ login->fromchar_parse_update_wan_ip(fd, id);
break;
case 0x2737: //Request to set all offline.
- ShowInfo("Setting accounts from char-server %d offline.\n", id);
- online_db->foreach(online_db, online_db_setoffline, id);
- RFIFOSKIP(fd,2);
+ login->fromchar_parse_all_offline(fd, id);
break;
case 0x2738: //Change PIN Code for a account
if( RFIFOREST(fd) < 11 )
return 0;
else {
- struct mmo_account acc;
-
- if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ) {
- strncpy( acc.pincode, (char*)RFIFOP(fd,6), 5 );
- acc.pincode_change = ((unsigned int)time( NULL ));
- accounts->save(accounts, &acc);
- }
- RFIFOSKIP(fd,11);
+ login->fromchar_parse_change_pincode(fd);
}
break;
-
+
case 0x2739: // PIN Code was entered wrong too often
if( RFIFOREST(fd) < 6 )
return 0;
else {
- struct mmo_account acc;
-
- if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ) {
- struct online_login_data* ld;
-
- if( ( ld = (struct online_login_data*)idb_get(online_db,acc.account_id) ) == NULL )
- return 0;
-
- login_log( host2ip(acc.last_ip), acc.userid, 100, "PIN Code check failed" );
- }
-
- remove_online_user(acc.account_id);
- RFIFOSKIP(fd,6);
+ if (login->fromchar_parse_wrong_pincode(fd))
+ return 0;
}
break;
-
+
case 0x2740: // Accinfo request forwarded by charserver on mapserver's account
if( RFIFOREST(fd) < 22 )
return 0;
else {
- struct mmo_account acc;
- int account_id = RFIFOL(fd, 2), u_fd = RFIFOL(fd, 6), u_aid = RFIFOL(fd, 10), u_group = RFIFOL(fd, 14), map_fd = RFIFOL(fd, 18);
- if (accounts->load_num(accounts, &acc, account_id)) {
- WFIFOHEAD(fd,183);
- WFIFOW(fd,0) = 0x2737;
- safestrncpy((char*)WFIFOP(fd,2), acc.userid, NAME_LENGTH);
- if (u_group >= acc.group_id)
- safestrncpy((char*)WFIFOP(fd,26), acc.pass, 33);
- else
- memset(WFIFOP(fd,26), '\0', 33);
- safestrncpy((char*)WFIFOP(fd,59), acc.email, 40);
- safestrncpy((char*)WFIFOP(fd,99), acc.last_ip, 16);
- WFIFOL(fd,115) = acc.group_id;
- safestrncpy((char*)WFIFOP(fd,119), acc.lastlogin, 24);
- WFIFOL(fd,143) = acc.logincount;
- WFIFOL(fd,147) = acc.state;
- if (u_group >= acc.group_id)
- safestrncpy((char*)WFIFOP(fd,151), acc.pincode, 5);
- else
- memset(WFIFOP(fd,151), '\0', 5);
- safestrncpy((char*)WFIFOP(fd,156), acc.birthdate, 11);
- WFIFOL(fd,167) = map_fd;
- WFIFOL(fd,171) = u_fd;
- WFIFOL(fd,175) = u_aid;
- WFIFOL(fd,179) = account_id;
- WFIFOSET(fd,183);
- } else {
- WFIFOHEAD(fd,18);
- WFIFOW(fd,0) = 0x2736;
- WFIFOL(fd,2) = map_fd;
- WFIFOL(fd,6) = u_fd;
- WFIFOL(fd,10) = u_aid;
- WFIFOL(fd,14) = account_id;
- WFIFOSET(fd,18);
- }
- RFIFOSKIP(fd,22);
+ login->fromchar_parse_accinfo(fd);
}
break;
default:
- ShowError("parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n", command);
+ ShowError("login_parse_fromchar: Unknown packet 0x%x from a char-server! Disconnecting!\n", command);
set_eof(fd);
return 0;
} // switch
@@ -888,7 +1005,7 @@ int parse_fromchar(int fd)
//-------------------------------------
// Make new account
//-------------------------------------
-int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip) {
+int login_mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip) {
static int num_regs = 0; // registration counter
static int64 new_reg_tick = 0;
int64 tick = timer->gettick();
@@ -897,7 +1014,7 @@ int mmo_auth_new(const char* userid, const char* pass, const char sex, const cha
//Account Registration Flood Protection by [Kevin]
if( new_reg_tick == 0 )
new_reg_tick = timer->gettick();
- if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= allowed_regs ) {
+ if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= login_config.allowed_regs ) {
ShowNotice("Account registration denied (registration limit exceeded)\n");
return 3;
}
@@ -928,7 +1045,7 @@ int mmo_auth_new(const char* userid, const char* pass, const char sex, const cha
safestrncpy(acc.pincode, "\0", sizeof(acc.pincode));
acc.pincode_change = 0;
acc.char_slots = 0;
-
+
if( !accounts->create(accounts, &acc) )
return 0;
@@ -936,7 +1053,7 @@ int mmo_auth_new(const char* userid, const char* pass, const char sex, const cha
if( DIFF_TICK(tick, new_reg_tick) > 0 ) {// Update the registration check.
num_regs = 0;
- new_reg_tick = tick + time_allowed*1000;
+ new_reg_tick = tick + login_config.time_allowed*1000;
}
++num_regs;
@@ -946,7 +1063,7 @@ int mmo_auth_new(const char* userid, const char* pass, const char sex, const cha
//-----------------------------------------------------
// Check/authentication of a connection
//-----------------------------------------------------
-int mmo_auth(struct login_session_data* sd, bool isServer) {
+int login_mmo_auth(struct login_session_data* sd, bool isServer) {
struct mmo_account acc;
size_t len;
@@ -990,18 +1107,23 @@ int mmo_auth(struct login_session_data* sd, bool isServer) {
len -= 2;
sd->userid[len] = '\0';
- result = mmo_auth_new(sd->userid, sd->passwd, TOUPPER(sd->userid[len+1]), ip);
+ result = login->mmo_auth_new(sd->userid, sd->passwd, TOUPPER(sd->userid[len+1]), ip);
if( result != -1 )
return result;// Failed to make account. [Skotlex].
}
}
-
+
+ if( len <= 0 ) { /** a empty password is fine, a userid is not. **/
+ ShowNotice("Empty userid (received pass: '%s', ip: %s)\n", sd->passwd, ip);
+ return 0; // 0 = Unregistered ID
+ }
+
if( !accounts->load_str(accounts, &acc, sd->userid) ) {
ShowNotice("Unknown account (account: %s, received pass: %s, ip: %s)\n", sd->userid, sd->passwd, ip);
return 0; // 0 = Unregistered ID
}
- if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, acc.pass) ) {
+ if( !login->check_password(sd->md5key, sd->passwdenc, sd->passwd, acc.pass) ) {
ShowNotice("Invalid password (account: '%s', pass: '%s', received pass: '%s', ip: %s)\n", sd->userid, acc.pass, sd->passwd, ip);
return 1; // 1 = Incorrect Password
}
@@ -1017,7 +1139,7 @@ int mmo_auth(struct login_session_data* sd, bool isServer) {
ShowNotice("Connection refused (account: %s, pass: %s, state: %d, ip: %s)\n", sd->userid, sd->passwd, acc.state, ip);
return acc.state - 1;
}
-
+
if( login_config.client_hash_check && !isServer ) {
struct client_hash_node *node = NULL;
bool match = false;
@@ -1076,6 +1198,22 @@ int mmo_auth(struct login_session_data* sd, bool isServer) {
return -1; // account OK
}
+void login_connection_problem(int fd, uint8 status)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x81;
+ WFIFOB(fd,2) = status;
+ WFIFOSET(fd,3);
+}
+
+void login_kick(struct login_session_data* sd)
+{
+ uint8 buf[6];
+ WBUFW(buf,0) = 0x2734;
+ WBUFL(buf,2) = sd->account_id;
+ charif_sendallwos(-1, buf, 6);
+}
+
void login_auth_ok(struct login_session_data* sd)
{
int fd = sd->fd;
@@ -1083,32 +1221,23 @@ void login_auth_ok(struct login_session_data* sd)
uint8 server_num, n;
uint32 subnet_char_ip;
- struct auth_node* node;
+ struct login_auth_node* node;
int i;
if( runflag != LOGINSERVER_ST_RUNNING )
{
// players can only login while running
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1;// server closed
- WFIFOSET(fd,3);
+ login->connection_problem(fd, 1); // 01 = server closed
return;
}
if( login_config.group_id_to_connect >= 0 && sd->group_id != login_config.group_id_to_connect ) {
ShowStatus("Connection refused: the required group id for connection is %d (account: %s, group: %d).\n", login_config.group_id_to_connect, sd->userid, sd->group_id);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
+ login->connection_problem(fd, 1); // 01 = server closed
return;
} else if( login_config.min_group_id_to_connect >= 0 && login_config.group_id_to_connect == -1 && sd->group_id < login_config.min_group_id_to_connect ) {
ShowStatus("Connection refused: the minimum group id required for connection is %d (account: %s, group: %d).\n", login_config.min_group_id_to_connect, sd->userid, sd->group_id);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
+ login->connection_problem(fd, 1); // 01 = server closed
return;
}
@@ -1120,39 +1249,30 @@ void login_auth_ok(struct login_session_data* sd)
if( server_num == 0 )
{// if no char-server, don't send void list of servers, just disconnect the player with proper message
ShowStatus("Connection refused: there is no char-server online (account: %s).\n", sd->userid);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
+ login->connection_problem(fd, 1); // 01 = server closed
return;
}
{
- struct online_login_data* data = (struct online_login_data*)idb_get(online_db, sd->account_id);
+ struct online_login_data* data = (struct online_login_data*)idb_get(login->online_db, sd->account_id);
if( data )
{// account is already marked as online!
if( data->char_server > -1 )
{// Request char servers to kick this account out. [Skotlex]
- uint8 buf[6];
ShowNotice("User '%s' is already online - Rejected.\n", sd->userid);
- WBUFW(buf,0) = 0x2734;
- WBUFL(buf,2) = sd->account_id;
- charif_sendallwos(-1, buf, 6);
+ login->kick(sd);
if( data->waiting_disconnect == INVALID_TIMER )
- data->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, waiting_disconnect_timer, sd->account_id, 0);
+ data->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, login->waiting_disconnect_timer, sd->account_id, 0);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x81;
- WFIFOB(fd,2) = 8; // 08 = Server still recognizes your last login
- WFIFOSET(fd,3);
+ login->connection_problem(fd, 8); // 08 = Server still recognizes your last login
return;
}
else
if( data->char_server == -1 )
{// client has authed but did not access char-server yet
// wipe previous session
- idb_remove(auth_db, sd->account_id);
- remove_online_user(sd->account_id);
+ idb_remove(login->auth_db, sd->account_id);
+ login->remove_online_user(sd->account_id);
data = NULL;
}
}
@@ -1177,24 +1297,24 @@ void login_auth_ok(struct login_session_data* sd)
if( !session_isValid(server[i].fd) )
continue;
- subnet_char_ip = lan_subnetcheck(ip); // Advanced subnet check [LuzZza]
+ subnet_char_ip = login->lan_subnetcheck(ip); // Advanced subnet check [LuzZza]
WFIFOL(fd,47+n*32) = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip);
WFIFOW(fd,47+n*32+4) = ntows(htons(server[i].port)); // [!] LE byte order here [!]
memcpy(WFIFOP(fd,47+n*32+6), server[i].name, 20);
WFIFOW(fd,47+n*32+26) = server[i].users;
-
+
if( server[i].type == CST_PAYING && sd->expiration_time > time(NULL) )
WFIFOW(fd,47+n*32+28) = CST_NORMAL;
else
WFIFOW(fd,47+n*32+28) = server[i].type;
-
+
WFIFOW(fd,47+n*32+30) = server[i].new_;
n++;
}
WFIFOSET(fd,47+32*server_num);
// create temporary auth entry
- CREATE(node, struct auth_node, 1);
+ CREATE(node, struct login_auth_node, 1);
node->account_id = sd->account_id;
node->login_id1 = sd->login_id1;
node->login_id2 = sd->login_id2;
@@ -1204,16 +1324,16 @@ void login_auth_ok(struct login_session_data* sd)
node->clienttype = sd->clienttype;
node->group_id = sd->group_id;
node->expiration_time = sd->expiration_time;
- idb_put(auth_db, sd->account_id, node);
+ idb_put(login->auth_db, sd->account_id, node);
{
struct online_login_data* data;
// mark client as 'online'
- data = add_online_user(-1, sd->account_id);
+ data = login->add_online_user(-1, sd->account_id);
// schedule deletion of this node
- data->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, waiting_disconnect_timer, sd->account_id, 0);
+ data->waiting_disconnect = timer->add(timer->gettick()+AUTH_TIMEOUT, login->waiting_disconnect_timer, sd->account_id, 0);
}
}
@@ -1284,11 +1404,194 @@ void login_auth_failed(struct login_session_data* sd, int result)
#endif
}
+void login_login_error(int fd, uint8 status)
+{
+ WFIFOHEAD(fd,23);
+ WFIFOW(fd,0) = 0x6a;
+ WFIFOB(fd,2) = status;
+ WFIFOSET(fd,23);
+}
+
+void login_parse_ping(int fd, struct login_session_data* sd)
+{
+ RFIFOSKIP(fd,26);
+}
+
+void login_parse_client_md5(int fd, struct login_session_data* sd)
+{
+ sd->has_client_hash = 1;
+ memcpy(sd->client_hash, RFIFOP(fd, 2), 16);
+
+ RFIFOSKIP(fd,18);
+}
+
+bool login_parse_client_login(int fd, struct login_session_data* sd, const char *const ip)
+{
+ uint32 version;
+ char username[NAME_LENGTH];
+ char password[PASSWD_LEN];
+ unsigned char passhash[16];
+ uint8 clienttype;
+ int result;
+ uint16 command = RFIFOW(fd,0);
+ bool israwpass = (command==0x0064 || command==0x0277 || command==0x02b0 || command == 0x0825);
+
+ // Shinryo: For the time being, just use token as password.
+ if(command == 0x0825)
+ {
+ char *accname = (char *)RFIFOP(fd, 9);
+ char *token = (char *)RFIFOP(fd, 0x5C);
+ size_t uAccLen = strlen(accname);
+ size_t uTokenLen = RFIFOREST(fd) - 0x5C;
+
+ version = RFIFOL(fd,4);
+
+ if(uAccLen <= 0 || uTokenLen <= 0) {
+ login->auth_failed(sd, 3);
+ return true;
+ }
+
+ safestrncpy(username, accname, NAME_LENGTH);
+ safestrncpy(password, token, min(uTokenLen+1, PASSWD_LEN)); // Variable-length field, don't copy more than necessary
+ clienttype = RFIFOB(fd, 8);
+ }
+ else
+ {
+ version = RFIFOL(fd,2);
+ safestrncpy(username, (const char*)RFIFOP(fd,6), NAME_LENGTH);
+ if( israwpass )
+ {
+ safestrncpy(password, (const char*)RFIFOP(fd,30), NAME_LENGTH);
+ clienttype = RFIFOB(fd,54);
+ }
+ else
+ {
+ memcpy(passhash, RFIFOP(fd,30), 16);
+ clienttype = RFIFOB(fd,46);
+ }
+ }
+ RFIFOSKIP(fd,RFIFOREST(fd)); // assume no other packet was sent
+
+ sd->clienttype = clienttype;
+ sd->version = version;
+ safestrncpy(sd->userid, username, NAME_LENGTH);
+ if( israwpass )
+ {
+ ShowStatus("Request for connection of %s (ip: %s).\n", sd->userid, ip);
+ safestrncpy(sd->passwd, password, PASSWD_LEN);
+ if( login_config.use_md5_passwds )
+ MD5_String(sd->passwd, sd->passwd);
+ sd->passwdenc = 0;
+ }
+ else
+ {
+ ShowStatus("Request for connection (passwdenc mode) of %s (ip: %s).\n", sd->userid, ip);
+ bin2hex(sd->passwd, passhash, 16); // raw binary data here!
+ sd->passwdenc = PASSWORDENC;
+ }
+
+ if( sd->passwdenc != 0 && login_config.use_md5_passwds )
+ {
+ login->auth_failed(sd, 3); // send "rejected from server"
+ return true;
+ }
+
+ result = login->mmo_auth(sd, false);
+
+ if( result == -1 )
+ login->auth_ok(sd);
+ else
+ login->auth_failed(sd, result);
+ return false;
+}
+
+void login_send_coding_key(int fd, struct login_session_data* sd)
+{
+ WFIFOHEAD(fd,4 + sd->md5keylen);
+ WFIFOW(fd,0) = 0x01dc;
+ WFIFOW(fd,2) = 4 + sd->md5keylen;
+ memcpy(WFIFOP(fd,4), sd->md5key, sd->md5keylen);
+ WFIFOSET(fd,WFIFOW(fd,2));
+}
+
+void login_parse_request_coding_key(int fd, struct login_session_data* sd)
+{
+ memset(sd->md5key, '\0', sizeof(sd->md5key));
+ sd->md5keylen = (uint16)(12 + rnd() % 4);
+ MD5_Salt(sd->md5keylen, sd->md5key);
+
+ login->send_coding_key(fd, sd);
+}
+
+void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status)
+{
+ WFIFOHEAD(fd,3);
+ WFIFOW(fd,0) = 0x2711;
+ WFIFOB(fd,2) = status;
+ WFIFOSET(fd,3);
+}
+
+void login_parse_request_connection(int fd, struct login_session_data* sd, const char *const ip)
+{
+ char server_name[20];
+ char message[256];
+ uint32 server_ip;
+ uint16 server_port;
+ uint16 type;
+ uint16 new_;
+ int result;
+
+ safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH);
+ safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH);
+ if( login_config.use_md5_passwds )
+ MD5_String(sd->passwd, sd->passwd);
+ sd->passwdenc = 0;
+ sd->version = login_config.client_version_to_connect; // hack to skip version check
+ server_ip = ntohl(RFIFOL(fd,54));
+ server_port = ntohs(RFIFOW(fd,58));
+ safestrncpy(server_name, (char*)RFIFOP(fd,60), 20);
+ type = RFIFOW(fd,82);
+ new_ = RFIFOW(fd,84);
+ RFIFOSKIP(fd,86);
+
+ ShowInfo("Connection request of the char-server '%s' @ %u.%u.%u.%u:%u (account: '%s', pass: '%s', ip: '%s')\n", server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip);
+ sprintf(message, "charserver - %s@%u.%u.%u.%u:%u", server_name, CONVIP(server_ip), server_port);
+ login_log(session[fd]->client_addr, sd->userid, 100, message);
+
+ result = login->mmo_auth(sd, true);
+ if( runflag == LOGINSERVER_ST_RUNNING &&
+ result == -1 &&
+ sd->sex == 'S' &&
+ sd->account_id >= 0 && sd->account_id < ARRAYLENGTH(server) &&
+ !session_isValid(server[sd->account_id].fd) )
+ {
+ ShowStatus("Connection of the char-server '%s' accepted.\n", server_name);
+ safestrncpy(server[sd->account_id].name, server_name, sizeof(server[sd->account_id].name));
+ server[sd->account_id].fd = fd;
+ server[sd->account_id].ip = server_ip;
+ server[sd->account_id].port = server_port;
+ server[sd->account_id].users = 0;
+ server[sd->account_id].type = type;
+ server[sd->account_id].new_ = new_;
+
+ session[fd]->func_parse = login->parse_fromchar;
+ session[fd]->flag.server = 1;
+ realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
+
+ // send connection success
+ login->char_server_connection_status(fd, sd, 0);
+ }
+ else
+ {
+ ShowNotice("Connection of the char-server '%s' REFUSED.\n", server_name);
+ login->char_server_connection_status(fd, sd, 3);
+ }
+}
//----------------------------------------------------------------------------------------
// Default packet parsing (normal players or char-server connection requests)
//----------------------------------------------------------------------------------------
-int parse_login(int fd)
+int login_parse_login(int fd)
{
struct login_session_data* sd = (struct login_session_data*)session[fd]->session_data;
int result;
@@ -1311,10 +1614,7 @@ int parse_login(int fd)
{
ShowStatus("Connection refused: IP isn't authorized (deny/allow, ip: %s).\n", ip);
login_log(ipl, "unknown", -3, "ip banned");
- WFIFOHEAD(fd,23);
- WFIFOW(fd,0) = 0x6a;
- WFIFOB(fd,2) = 3; // 3 = Rejected from Server
- WFIFOSET(fd,23);
+ login->login_error(fd, 3); // 3 = Rejected from Server
set_eof(fd);
return 0;
}
@@ -1334,13 +1634,13 @@ int parse_login(int fd)
if( result == 2 ) return 0;
}
}
-
+
switch( command ) {
- case 0x0200: // New alive packet: structure: 0x200 <account.userid>.24B. used to verify if client is always alive.
+ case 0x0200: // New alive packet: structure: 0x200 <account.userid>.24B. used to verify if client is always alive.
if (RFIFOREST(fd) < 26)
return 0;
- RFIFOSKIP(fd,26);
+ login->parse_ping(fd, sd);
break;
// client md5 hash (binary)
@@ -1348,10 +1648,7 @@ int parse_login(int fd)
if (RFIFOREST(fd) < 18)
return 0;
- sd->has_client_hash = 1;
- memcpy(sd->client_hash, RFIFOP(fd, 2), 16);
-
- RFIFOSKIP(fd,18);
+ login->parse_client_md5(fd, sd);
break;
// request client login (raw password)
@@ -1376,159 +1673,23 @@ int parse_login(int fd)
return 0;
}
{
- uint32 version;
- char username[NAME_LENGTH];
- char password[PASSWD_LEN];
- unsigned char passhash[16];
- uint8 clienttype;
- bool israwpass = (command==0x0064 || command==0x0277 || command==0x02b0 || command == 0x0825);
-
- // Shinryo: For the time being, just use token as password.
- if(command == 0x0825)
- {
- char *accname = (char *)RFIFOP(fd, 9);
- char *token = (char *)RFIFOP(fd, 0x5C);
- size_t uAccLen = strlen(accname);
- size_t uTokenLen = RFIFOREST(fd) - 0x5C;
-
- version = RFIFOL(fd,4);
-
- if(uAccLen <= 0 || uTokenLen <= 0) {
- login_auth_failed(sd, 3);
- return 0;
- }
-
- safestrncpy(username, accname, NAME_LENGTH);
- safestrncpy(password, token, min(uTokenLen+1, PASSWD_LEN)); // Variable-length field, don't copy more than necessary
- clienttype = RFIFOB(fd, 8);
- }
- else
- {
- version = RFIFOL(fd,2);
- safestrncpy(username, (const char*)RFIFOP(fd,6), NAME_LENGTH);
- if( israwpass )
- {
- safestrncpy(password, (const char*)RFIFOP(fd,30), NAME_LENGTH);
- clienttype = RFIFOB(fd,54);
- }
- else
- {
- memcpy(passhash, RFIFOP(fd,30), 16);
- clienttype = RFIFOB(fd,46);
- }
- }
- RFIFOSKIP(fd,RFIFOREST(fd)); // assume no other packet was sent
-
- sd->clienttype = clienttype;
- sd->version = version;
- safestrncpy(sd->userid, username, NAME_LENGTH);
- if( israwpass )
- {
- ShowStatus("Request for connection of %s (ip: %s).\n", sd->userid, ip);
- safestrncpy(sd->passwd, password, PASSWD_LEN);
- if( login_config.use_md5_passwds )
- MD5_String(sd->passwd, sd->passwd);
- sd->passwdenc = 0;
- }
- else
- {
- ShowStatus("Request for connection (passwdenc mode) of %s (ip: %s).\n", sd->userid, ip);
- bin2hex(sd->passwd, passhash, 16); // raw binary data here!
- sd->passwdenc = PASSWORDENC;
- }
-
- if( sd->passwdenc != 0 && login_config.use_md5_passwds )
- {
- login_auth_failed(sd, 3); // send "rejected from server"
+ if (login->parse_client_login(fd, sd, ip))
return 0;
- }
-
- result = mmo_auth(sd, false);
-
- if( result == -1 )
- login_auth_ok(sd);
- else
- login_auth_failed(sd, result);
}
break;
- case 0x01db: // Sending request of the coding key
+ case 0x01db: // Sending request of the coding key
RFIFOSKIP(fd,2);
{
- memset(sd->md5key, '\0', sizeof(sd->md5key));
- sd->md5keylen = (uint16)(12 + rnd() % 4);
- MD5_Salt(sd->md5keylen, sd->md5key);
-
- WFIFOHEAD(fd,4 + sd->md5keylen);
- WFIFOW(fd,0) = 0x01dc;
- WFIFOW(fd,2) = 4 + sd->md5keylen;
- memcpy(WFIFOP(fd,4), sd->md5key, sd->md5keylen);
- WFIFOSET(fd,WFIFOW(fd,2));
+ login->parse_request_coding_key(fd, sd);
}
break;
- case 0x2710: // Connection request of a char-server
+ case 0x2710: // Connection request of a char-server
if (RFIFOREST(fd) < 86)
return 0;
{
- char server_name[20];
- char message[256];
- uint32 server_ip;
- uint16 server_port;
- uint16 type;
- uint16 new_;
-
- safestrncpy(sd->userid, (char*)RFIFOP(fd,2), NAME_LENGTH);
- safestrncpy(sd->passwd, (char*)RFIFOP(fd,26), NAME_LENGTH);
- if( login_config.use_md5_passwds )
- MD5_String(sd->passwd, sd->passwd);
- sd->passwdenc = 0;
- sd->version = login_config.client_version_to_connect; // hack to skip version check
- server_ip = ntohl(RFIFOL(fd,54));
- server_port = ntohs(RFIFOW(fd,58));
- safestrncpy(server_name, (char*)RFIFOP(fd,60), 20);
- type = RFIFOW(fd,82);
- new_ = RFIFOW(fd,84);
- RFIFOSKIP(fd,86);
-
- ShowInfo("Connection request of the char-server '%s' @ %u.%u.%u.%u:%u (account: '%s', pass: '%s', ip: '%s')\n", server_name, CONVIP(server_ip), server_port, sd->userid, sd->passwd, ip);
- sprintf(message, "charserver - %s@%u.%u.%u.%u:%u", server_name, CONVIP(server_ip), server_port);
- login_log(session[fd]->client_addr, sd->userid, 100, message);
-
- result = mmo_auth(sd, true);
- if( runflag == LOGINSERVER_ST_RUNNING &&
- result == -1 &&
- sd->sex == 'S' &&
- sd->account_id >= 0 && sd->account_id < ARRAYLENGTH(server) &&
- !session_isValid(server[sd->account_id].fd) )
- {
- ShowStatus("Connection of the char-server '%s' accepted.\n", server_name);
- safestrncpy(server[sd->account_id].name, server_name, sizeof(server[sd->account_id].name));
- server[sd->account_id].fd = fd;
- server[sd->account_id].ip = server_ip;
- server[sd->account_id].port = server_port;
- server[sd->account_id].users = 0;
- server[sd->account_id].type = type;
- server[sd->account_id].new_ = new_;
-
- session[fd]->func_parse = parse_fromchar;
- session[fd]->flag.server = 1;
- realloc_fifo(fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK);
-
- // send connection success
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2711;
- WFIFOB(fd,2) = 0;
- WFIFOSET(fd,3);
- }
- else
- {
- ShowNotice("Connection of the char-server '%s' REFUSED.\n", server_name);
- WFIFOHEAD(fd,3);
- WFIFOW(fd,0) = 0x2711;
- WFIFOB(fd,2) = 3;
- WFIFOSET(fd,3);
- }
+ login->parse_request_connection(fd, sd, ip);
}
return 0; // processing will continue elsewhere
@@ -1558,6 +1719,8 @@ void login_set_defaults()
login_config.min_group_id_to_connect = -1;
login_config.check_client_version = false;
login_config.client_version_to_connect = 20;
+ login_config.allowed_regs = 1;
+ login_config.time_allowed = 10;
login_config.ipban = true;
login_config.dynamic_pass_failure_ban = true;
@@ -1569,6 +1732,7 @@ void login_set_defaults()
login_config.client_hash_check = 0;
login_config.client_hash_nodes = NULL;
+ login_config.subnet_count = 0;
}
//-----------------------------------
@@ -1630,9 +1794,9 @@ int login_config_read(const char* cfgName)
else if(!strcmpi(w1, "date_format"))
safestrncpy(login_config.date_format, w2, sizeof(login_config.date_format));
else if(!strcmpi(w1, "allowed_regs")) //account flood protection system
- allowed_regs = atoi(w2);
+ login_config.allowed_regs = atoi(w2);
else if(!strcmpi(w1, "time_allowed"))
- time_allowed = atoi(w2);
+ login_config.time_allowed = atoi(w2);
else if(!strcmpi(w1, "use_dnsbl"))
login_config.use_dnsbl = (bool)config_switch(w2);
else if(!strcmpi(w1, "dnsbl_servers"))
@@ -1646,6 +1810,7 @@ int login_config_read(const char* cfgName)
else if(!strcmpi(w1, "client_hash")) {
int group = 0;
char md5[33];
+ memset(md5, '\0', 33);
if (sscanf(w2, "%d, %32s", &group, md5) == 2) {
struct client_hash_node *nnode;
@@ -1678,10 +1843,11 @@ int login_config_read(const char* cfgName)
else
{
AccountDB* db = account_engine[0].db;
- if( db )
+ if (db)
db->set_property(db, w1, w2);
ipban_config_read(w1, w2);
loginlog_config_read(w1, w2);
+ HPM->parseConf(w1, w2, HPCT_LOGIN);
}
}
fclose(fp);
@@ -1697,9 +1863,9 @@ int do_final(void) {
struct client_hash_node *hn = login_config.client_hash_nodes;
ShowStatus("Terminating...\n");
-
+
HPM->event(HPET_FINAL);
-
+
while (hn) {
struct client_hash_node *tmp = hn;
hn = hn->next;
@@ -1719,18 +1885,22 @@ int do_final(void) {
account_engine[0].db = NULL;
}
accounts = NULL; // destroyed in account_engine
- online_db->destroy(online_db, NULL);
- auth_db->destroy(auth_db, NULL);
-
+ login->online_db->destroy(login->online_db, NULL);
+ login->auth_db->destroy(login->auth_db, NULL);
+
for( i = 0; i < ARRAYLENGTH(server); ++i )
chrif_server_destroy(i);
- if( login_fd != -1 )
+ if( login->fd != -1 )
{
- do_close(login_fd);
- login_fd = -1;
+ do_close(login->fd);
+ login->fd = -1;
}
+ HPM_login_do_final();
+
+ HPM->event(HPET_POST_FINAL);
+
ShowStatus("Finished.\n");
return EXIT_SUCCESS;
}
@@ -1749,7 +1919,7 @@ void set_server_type(void) {
/// Called when a terminate signal is received.
-void do_shutdown(void)
+void do_shutdown_login(void)
{
if( runflag != LOGINSERVER_ST_SHUTDOWN )
{
@@ -1764,6 +1934,10 @@ void do_shutdown(void)
}
}
+void login_hp_symbols(void) {
+ HPM->share(account_db_sql_up(accounts),"sql_handle");
+ HPM->share(login,"login");
+}
//------------------------------
// Login server initialization
@@ -1774,12 +1948,43 @@ int do_init(int argc, char** argv)
// initialize engine (to accept config settings)
account_engine[0].db = account_engine[0].constructor();
+ accounts = account_engine[0].db;
+ if( accounts == NULL ) {
+ ShowFatalError("do_init: account engine 'sql' not found.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ login_defaults();
// read login-server configuration
login_set_defaults();
+
+ HPM_login_do_init();
+ HPM->symbol_defaults_sub = login_hp_symbols;
+ HPM->config_read(NULL, 0);
+#if 0
+ /* TODO: Move to common code */
+ for( i = 1; i < argc; i++ ) {
+ const char* arg = argv[i];
+ if( strcmp(arg, "--load-plugin") == 0 ) {
+ if( map->arg_next_value(arg, i, argc, true) ) {
+ RECREATE(load_extras, char *, ++load_extras_count);
+ load_extras[load_extras_count-1] = argv[++i];
+ }
+ }
+ }
+ HPM->config_read((const char * const *)load_extras, load_extras_count);
+ if (load_extras) {
+ aFree(load_extras);
+ load_extras = NULL;
+ load_extras_count = 0;
+ }
+#endif
+ HPM->event(HPET_PRE_INIT);
+
login_config_read((argc > 1) ? argv[1] : LOGIN_CONF_NAME);
- login_lan_config_read((argc > 2) ? argv[2] : LAN_CONF_NAME);
-
+ login->lan_config_read((argc > 2) ? argv[2] : LAN_CONF_NAME);
+
for( i = 0; i < ARRAYLENGTH(server); ++i )
chrif_server_init(i);
@@ -1789,59 +1994,115 @@ int do_init(int argc, char** argv)
// initialize static and dynamic ipban system
ipban_init();
-
+
// Online user database init
- online_db = idb_alloc(DB_OPT_RELEASE_DATA);
- timer->add_func_list(waiting_disconnect_timer, "waiting_disconnect_timer");
+ login->online_db = idb_alloc(DB_OPT_RELEASE_DATA);
+ timer->add_func_list(login->waiting_disconnect_timer, "login->waiting_disconnect_timer");
// Interserver auth init
- auth_db = idb_alloc(DB_OPT_RELEASE_DATA);
+ login->auth_db = idb_alloc(DB_OPT_RELEASE_DATA);
- // set default parser as parse_login function
- set_defaultparse(parse_login);
+ // set default parser as login_parse_login function
+ set_defaultparse(login->parse_login);
// every 10 minutes cleanup online account db.
- timer->add_func_list(online_data_cleanup, "online_data_cleanup");
- timer->add_interval(timer->gettick() + 600*1000, online_data_cleanup, 0, 0, 600*1000);
+ timer->add_func_list(login->online_data_cleanup, "login->online_data_cleanup");
+ timer->add_interval(timer->gettick() + 600*1000, login->online_data_cleanup, 0, 0, 600*1000);
// add timer to detect ip address change and perform update
if (login_config.ip_sync_interval) {
- timer->add_func_list(sync_ip_addresses, "sync_ip_addresses");
- timer->add_interval(timer->gettick() + login_config.ip_sync_interval, sync_ip_addresses, 0, 0, login_config.ip_sync_interval);
+ timer->add_func_list(login->sync_ip_addresses, "login->sync_ip_addresses");
+ timer->add_interval(timer->gettick() + login_config.ip_sync_interval, login->sync_ip_addresses, 0, 0, login_config.ip_sync_interval);
}
// Account database init
- accounts = account_engine[0].db;
- if( accounts == NULL ) {
- ShowFatalError("do_init: account engine 'sql' not found.\n");
+ if(!accounts->init(accounts)) {
+ ShowFatalError("do_init: Failed to initialize account engine 'sql'.\n");
exit(EXIT_FAILURE);
- } else {
-
- if(!accounts->init(accounts)) {
- ShowFatalError("do_init: Failed to initialize account engine 'sql'.\n");
- exit(EXIT_FAILURE);
- }
}
- HPM->share(account_db_sql_up(accounts),"sql_handle");
- HPM->config_read(NULL, 0);
HPM->event(HPET_INIT);
-
+
// server port open & binding
- if( (login_fd = make_listen_bind(login_config.login_ip,login_config.login_port)) == -1 ) {
+ if( (login->fd = make_listen_bind(login_config.login_ip,login_config.login_port)) == -1 ) {
ShowFatalError("Failed to bind to port '"CL_WHITE"%d"CL_RESET"'\n",login_config.login_port);
exit(EXIT_FAILURE);
}
-
+
if( runflag != CORE_ST_STOP ) {
- shutdown_callback = do_shutdown;
+ shutdown_callback = do_shutdown_login;
runflag = LOGINSERVER_ST_RUNNING;
}
-
+
ShowStatus("The login-server is "CL_GREEN"ready"CL_RESET" (Server is listening on the port %u).\n\n", login_config.login_port);
login_log(0, "login server", 100, "login server started");
-
+
HPM->event(HPET_READY);
-
+
return 0;
}
+
+void login_defaults(void) {
+ login = &login_s;
+
+ login->lc = &login_config;
+ login->accounts = accounts;
+
+ login->mmo_auth = login_mmo_auth;
+ login->mmo_auth_new = login_mmo_auth_new;
+ login->waiting_disconnect_timer = login_waiting_disconnect_timer;
+ login->create_online_user = login_create_online_user;
+ login->add_online_user = login_add_online_user;
+ login->remove_online_user = login_remove_online_user;
+ login->online_db_setoffline = login_online_db_setoffline;
+ login->online_data_cleanup_sub = login_online_data_cleanup_sub;
+ login->online_data_cleanup = login_online_data_cleanup;
+ login->sync_ip_addresses = login_sync_ip_addresses;
+ login->check_encrypted = login_check_encrypted;
+ login->check_password = login_check_password;
+ login->lan_subnetcheck = login_lan_subnetcheck;
+ login->lan_config_read = login_lan_config_read;
+
+ login->fromchar_auth_ack = login_fromchar_auth_ack;
+ login->fromchar_accinfo = login_fromchar_accinfo;
+ login->fromchar_account = login_fromchar_account;
+ login->fromchar_account_update_other = login_fromchar_account_update_other;
+ login->fromchar_ban = login_fromchar_ban;
+ login->fromchar_change_sex_other = login_fromchar_change_sex_other;
+ login->fromchar_pong = login_fromchar_pong;
+ login->fromchar_parse_auth = login_fromchar_parse_auth;
+ login->fromchar_parse_update_users = login_fromchar_parse_update_users;
+ login->fromchar_parse_request_change_email = login_fromchar_parse_request_change_email;
+ login->fromchar_parse_account_data = login_fromchar_parse_account_data;
+ login->fromchar_parse_ping = login_fromchar_parse_ping;
+ login->fromchar_parse_change_email = login_fromchar_parse_change_email;
+ login->fromchar_parse_account_update = login_fromchar_parse_account_update;
+ login->fromchar_parse_ban = login_fromchar_parse_ban;
+ login->fromchar_parse_change_sex = login_fromchar_parse_change_sex;
+ login->fromchar_parse_account_reg2 = login_fromchar_parse_account_reg2;
+ login->fromchar_parse_unban = login_fromchar_parse_unban;
+ login->fromchar_parse_account_online = login_fromchar_parse_account_online;
+ login->fromchar_parse_account_offline = login_fromchar_parse_account_offline;
+ login->fromchar_parse_online_accounts = login_fromchar_parse_online_accounts;
+ login->fromchar_parse_request_account_reg2 = login_fromchar_parse_request_account_reg2;
+ login->fromchar_parse_update_wan_ip = login_fromchar_parse_update_wan_ip;
+ login->fromchar_parse_all_offline = login_fromchar_parse_all_offline;
+ login->fromchar_parse_change_pincode = login_fromchar_parse_change_pincode;
+ login->fromchar_parse_wrong_pincode = login_fromchar_parse_wrong_pincode;
+ login->fromchar_parse_accinfo = login_fromchar_parse_accinfo;
+
+ login->parse_fromchar = login_parse_fromchar;
+ login->parse_login = login_parse_login;
+ login->parse_ping = login_parse_ping;
+ login->parse_client_md5 = login_parse_client_md5;
+ login->parse_client_login = login_parse_client_login;
+ login->parse_request_coding_key = login_parse_request_coding_key;
+ login->parse_request_connection = login_parse_request_connection;
+ login->auth_ok = login_auth_ok;
+ login->auth_failed = login_auth_failed;
+ login->char_server_connection_status = login_char_server_connection_status;
+ login->connection_problem = login_connection_problem;
+ login->kick = login_kick;
+ login->login_error = login_login_error;
+ login->send_coding_key = login_send_coding_key;
+}
diff --git a/src/login/login.h b/src/login/login.h
index 9b9d1e82c..4c9bbd8b7 100644
--- a/src/login/login.h
+++ b/src/login/login.h
@@ -8,6 +8,9 @@
#include "../common/core.h" // CORE_ST_LAST
#include "../common/mmo.h" // NAME_LENGTH,SEX_*
+struct mmo_account;
+struct AccountDB;
+
enum E_LOGINSERVER_ST
{
LOGINSERVER_ST_RUNNING = CORE_ST_LAST,
@@ -43,7 +46,7 @@ struct login_session_data {
int has_client_hash;
int fd;
-
+
time_t expiration_time;
};
@@ -66,30 +69,61 @@ struct client_hash_node {
struct Login_Config {
- uint32 login_ip; // the address to bind to
- uint16 login_port; // the port to bind to
- unsigned int ipban_cleanup_interval; // interval (in seconds) to clean up expired IP bans
- unsigned int ip_sync_interval; // interval (in minutes) to execute a DNS/IP update (for dynamic IPs)
- bool log_login; // whether to log login server actions or not
- char date_format[32]; // date format used in messages
- bool new_account_flag,new_acc_length_limit; // auto-registration via _M/_F ? / if yes minimum length is 4?
- int start_limited_time; // new account expiration time (-1: unlimited)
- bool use_md5_passwds; // work with password hashes instead of plaintext passwords?
- int group_id_to_connect; // required group id to connect
- int min_group_id_to_connect; // minimum group id to connect
- bool check_client_version; // check the clientversion set in the clientinfo ?
- uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled)
-
- bool ipban; // perform IP blocking (via contents of `ipbanlist`) ?
- bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ?
- unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures
- unsigned int dynamic_pass_failure_ban_limit; // number of failures needed to trigger the ipban
- unsigned int dynamic_pass_failure_ban_duration; // duration of the ipban
- bool use_dnsbl; // dns blacklist blocking ?
- char dnsbl_servs[1024]; // comma-separated list of dnsbl servers
-
- int client_hash_check; // flags for checking client md5
- struct client_hash_node *client_hash_nodes; // linked list containg md5 hash for each gm group
+ uint32 login_ip; ///< the address to bind to
+ uint16 login_port; ///< the port to bind to
+ unsigned int ipban_cleanup_interval; ///< interval (in seconds) to clean up expired IP bans
+ unsigned int ip_sync_interval; ///< interval (in minutes) to execute a DNS/IP update (for dynamic IPs)
+ bool log_login; ///< whether to log login server actions or not
+ char date_format[32]; ///< date format used in messages
+ bool new_account_flag,new_acc_length_limit; ///< auto-registration via _M/_F ? / if yes minimum length is 4?
+ int start_limited_time; ///< new account expiration time (-1: unlimited)
+ bool use_md5_passwds; ///< work with password hashes instead of plaintext passwords?
+ int group_id_to_connect; ///< required group id to connect
+ int min_group_id_to_connect; ///< minimum group id to connect
+ bool check_client_version; ///< check the clientversion set in the clientinfo ?
+ uint32 client_version_to_connect; ///< the client version needed to connect (if checking is enabled)
+ int allowed_regs; ///< account registration flood protection [Kevin]
+ int time_allowed; ///< time in seconds
+
+ bool ipban; ///< perform IP blocking (via contents of `ipbanlist`) ?
+ bool dynamic_pass_failure_ban; ///< automatic IP blocking due to failed login attemps ?
+ unsigned int dynamic_pass_failure_ban_interval; ///< how far to scan the loginlog for password failures
+ unsigned int dynamic_pass_failure_ban_limit; ///< number of failures needed to trigger the ipban
+ unsigned int dynamic_pass_failure_ban_duration; ///< duration of the ipban
+ bool use_dnsbl; ///< dns blacklist blocking ?
+ char dnsbl_servs[1024]; ///< comma-separated list of dnsbl servers
+
+ int client_hash_check; ///< flags for checking client md5
+ struct client_hash_node *client_hash_nodes; ///< linked list containg md5 hash for each gm group
+
+ /// Advanced subnet check [LuzZza]
+ struct s_subnet {
+ uint32 mask;
+ uint32 char_ip;
+ uint32 map_ip;
+ } subnet[16];
+ int subnet_count;
+};
+
+struct login_auth_node {
+ int account_id;
+ uint32 login_id1;
+ uint32 login_id2;
+ uint32 ip;
+ char sex;
+ uint32 version;
+ uint8 clienttype;
+ int group_id;
+ time_t expiration_time;
+};
+
+//-----------------------------------------------------
+// Online User Database [Wizputer]
+//-----------------------------------------------------
+struct online_login_data {
+ int account_id;
+ int waiting_disconnect;
+ int char_server;
};
#define sex_num2str(num) ( ((num) == SEX_FEMALE) ? 'F' : ((num) == SEX_MALE) ? 'M' : 'S' )
@@ -99,5 +133,75 @@ struct Login_Config {
extern struct mmo_char_server server[MAX_SERVERS];
extern struct Login_Config login_config;
+/**
+ * Login.c Interface
+ **/
+struct login_interface {
+ DBMap* auth_db;
+ DBMap* online_db;
+ int fd;
+ struct Login_Config *lc;
+ struct AccountDB* accounts;
+
+ int (*mmo_auth) (struct login_session_data* sd, bool isServer);
+ int (*mmo_auth_new) (const char* userid, const char* pass, const char sex, const char* last_ip);
+ int (*waiting_disconnect_timer) (int tid, int64 tick, int id, intptr_t data);
+ DBData (*create_online_user) (DBKey key, va_list args);
+ struct online_login_data* (*add_online_user) (int char_server, int account_id);
+ void (*remove_online_user) (int account_id);
+ int (*online_db_setoffline) (DBKey key, DBData *data, va_list ap);
+ int (*online_data_cleanup_sub) (DBKey key, DBData *data, va_list ap);
+ int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data);
+ int (*sync_ip_addresses) (int tid, int64 tick, int id, intptr_t data);
+ bool (*check_encrypted) (const char* str1, const char* str2, const char* passwd);
+ bool (*check_password) (const char* md5key, int passwdenc, const char* passwd, const char* refpass);
+ int (*lan_subnetcheck) (uint32 ip);
+ int (*lan_config_read) (const char *lancfgName);
+ void (*fromchar_accinfo) (int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc);
+ void (*fromchar_account) (int fd, int account_id, struct mmo_account *acc);
+ void (*fromchar_account_update_other) (int account_id, unsigned int state);
+ void (*fromchar_auth_ack) (int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node* node);
+ void (*fromchar_ban) (int account_id, time_t timestamp);
+ void (*fromchar_change_sex_other) (int account_id, char sex);
+ void (*fromchar_pong) (int fd);
+ void (*fromchar_parse_auth) (int fd, int id, const char *ip);
+ void (*fromchar_parse_update_users) (int fd, int id);
+ void (*fromchar_parse_request_change_email) (int fd, int id, const char *ip);
+ void (*fromchar_parse_account_data) (int fd, int id, const char *ip);
+ void (*fromchar_parse_ping) (int fd);
+ void (*fromchar_parse_change_email) (int fd, int id, const char *ip);
+ void (*fromchar_parse_account_update) (int fd, int id, const char *ip);
+ void (*fromchar_parse_ban) (int fd, int id, const char *ip);
+ void (*fromchar_parse_change_sex) (int fd, int id, const char *ip);
+ void (*fromchar_parse_account_reg2) (int fd, int id, const char *ip);
+ void (*fromchar_parse_unban) (int fd, int id, const char *ip);
+ void (*fromchar_parse_account_online) (int fd, int id);
+ void (*fromchar_parse_account_offline) (int fd);
+ void (*fromchar_parse_online_accounts) (int fd, int id);
+ void (*fromchar_parse_request_account_reg2) (int fd);
+ void (*fromchar_parse_update_wan_ip) (int fd, int id);
+ void (*fromchar_parse_all_offline) (int fd, int id);
+ void (*fromchar_parse_change_pincode) (int fd);
+ bool (*fromchar_parse_wrong_pincode) (int fd);
+ void (*fromchar_parse_accinfo) (int fd);
+ int (*parse_fromchar) (int fd);
+ void (*connection_problem) (int fd, uint8 status);
+ void (*kick) (struct login_session_data* sd);
+ void (*auth_ok) (struct login_session_data* sd);
+ void (*auth_failed) (struct login_session_data* sd, int result);
+ void (*login_error) (int fd, uint8 status);
+ void (*parse_ping) (int fd, struct login_session_data* sd);
+ void (*parse_client_md5) (int fd, struct login_session_data* sd);
+ bool (*parse_client_login) (int fd, struct login_session_data* sd, const char *ip);
+ void (*send_coding_key) (int fd, struct login_session_data* sd);
+ void (*parse_request_coding_key) (int fd, struct login_session_data* sd);
+ void (*char_server_connection_status) (int fd, struct login_session_data* sd, uint8 status);
+ void (*parse_request_connection) (int fd, struct login_session_data* sd, const char *ip);
+ int (*parse_login) (int fd);
+};
+
+struct login_interface *login;
+
+void login_defaults(void);
#endif /* LOGIN_LOGIN_H */
diff --git a/src/login/loginlog_sql.c b/src/login/loginlog_sql.c
index 2c0b1cc03..5654b4c5b 100644
--- a/src/login/loginlog_sql.c
+++ b/src/login/loginlog_sql.c
@@ -19,14 +19,14 @@
static char global_db_hostname[32] = "127.0.0.1";
static uint16 global_db_port = 3306;
static char global_db_username[32] = "ragnarok";
-static char global_db_password[32] = "ragnarok";
+static char global_db_password[100] = "ragnarok";
static char global_db_database[32] = "ragnarok";
static char global_codepage[32] = "";
// local sql settings
static char log_db_hostname[32] = "";
static uint16 log_db_port = 0;
static char log_db_username[32] = "";
-static char log_db_password[32] = "";
+static char log_db_password[100] = "";
static char log_db_database[32] = "";
static char log_codepage[32] = "";
static char log_login_db[256] = "loginlog";
diff --git a/src/map/HPMmap.c b/src/map/HPMmap.c
index cb8c979c6..f1cdec538 100644
--- a/src/map/HPMmap.c
+++ b/src/map/HPMmap.c
@@ -74,11 +74,6 @@ struct HPM_atcommand_list {
struct HPM_atcommand_list *atcommand_list = NULL;
unsigned int atcommand_list_items = 0;
-/**
- * (char*) data name -> (unsigned int) HPMDataCheck[] index
- **/
-DBMap *datacheck_db;
-
bool HPM_map_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr) {
/* record address */
switch( type ) {
@@ -106,6 +101,18 @@ bool HPM_map_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataType
ret->HPDataSRCPtr = (void**)(&((struct instance_data *)ptr)->hdata);
ret->hdatac = &((struct instance_data *)ptr)->hdatac;
break;
+ case HPDT_MOBDB:
+ ret->HPDataSRCPtr = (void**)(&((struct mob_db *)ptr)->hdata);
+ ret->hdatac = &((struct mob_db *)ptr)->hdatac;
+ break;
+ case HPDT_MOBDATA:
+ ret->HPDataSRCPtr = (void**)(&((struct mob_data *)ptr)->hdata);
+ ret->hdatac = &((struct mob_data *)ptr)->hdatac;
+ break;
+ case HPDT_ITEMDATA:
+ ret->HPDataSRCPtr = (void**)(&((struct item_data *)ptr)->hdata);
+ ret->hdatac = &((struct item_data *)ptr)->hdatac;
+ break;
default:
return false;
}
@@ -147,29 +154,6 @@ void HPM_map_atcommands(void) {
}
/**
- * Called by HPM->DataCheck on a plugins incoming data, ensures data structs in use are matching!
- **/
-bool HPM_map_DataCheck (struct s_HPMDataCheck *src, unsigned int size, char *name) {
- unsigned int i, j;
-
- for(i = 0; i < size; i++) {
-
- if( !strdb_exists(datacheck_db, src[i].name) ) {
- ShowError("HPMDataCheck:%s: '%s' was not found\n",name,src[i].name);
- return false;
- } else {
- j = strdb_uiget(datacheck_db, src[i].name);/* not double lookup; exists sets cache to found data */
- if( src[i].size != HPMDataCheck[j].size ) {
- ShowWarning("HPMDataCheck:%s: '%s' size mismatch %u != %u\n",name,src[i].name,src[i].size,HPMDataCheck[j].size);
- return false;
- }
- }
- }
-
- return true;
-}
-
-/**
* Adds a new group permission to the HPM-provided list
**/
void HPM_map_add_group_permission(unsigned int pluginID, char *name, unsigned int *mask) {
@@ -183,17 +167,9 @@ void HPM_map_add_group_permission(unsigned int pluginID, char *name, unsigned in
}
void HPM_map_do_init(void) {
- unsigned int i;
-
- /**
- * Populates datacheck_db for easy lookup later on
- **/
- datacheck_db = strdb_alloc(DB_OPT_BASE,0);
-
- for(i = 0; i < HPMDataCheckLen; i++) {
- strdb_uiput(datacheck_db, HPMDataCheck[i].name, i);
- }
-
+ HPM->load_sub = HPM_map_plugin_load_sub;
+ HPM->grabHPDataSub = HPM_map_grabHPData;
+ HPM->datacheck_init(HPMDataCheck, HPMDataCheckLen, HPMDataCheckVer);
}
void HPM_map_do_final(void) {
@@ -211,5 +187,5 @@ void HPM_map_do_final(void) {
if( pcg->HPMpermissions )
aFree(pcg->HPMpermissions);
- db_destroy(datacheck_db);
+ HPM->datacheck_final();
}
diff --git a/src/map/HPMmap.h b/src/map/HPMmap.h
index 99c4224ff..fa2f625c0 100644
--- a/src/map/HPMmap.h
+++ b/src/map/HPMmap.h
@@ -22,8 +22,6 @@ void HPM_map_do_final(void);
void HPM_map_add_group_permission(unsigned int pluginID, char *name, unsigned int *mask);
-bool HPM_map_DataCheck(struct s_HPMDataCheck *src, unsigned int size, char *name);
-
void HPM_map_do_init(void);
#endif /* MAP_HPMMAP_H */
diff --git a/src/map/Makefile.in b/src/map/Makefile.in
index fc58c9d70..ee8b7ac56 100644
--- a/src/map/Makefile.in
+++ b/src/map/Makefile.in
@@ -104,7 +104,7 @@ map-server: ../../map-server@EXEEXT@
../../map-server@EXEEXT@: $(MAP_SERVER_SQL_DEPENDS) Makefile
@echo " LD $(notdir $@)"
- @$(CC) @LDFLAGS@ -o ../../map-server@EXEEXT@ $(MAP_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
+ @$(CC) @STATIC@ @LDFLAGS@ -o ../../map-server@EXEEXT@ $(MAP_OBJ) $(COMMON_D)/obj_sql/common_sql.a \
$(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @PCRE_LIBS@ @MYSQL_LIBS@
# map object files
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index b5e8fa797..330fe6284 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -162,15 +162,15 @@ ACMD(send)
{
int len=0,off,end,type;
long num;
-
+
// read message type as hex number (without the 0x)
if(!message || !*message ||
!((sscanf(message, "len %x", &type)==1 && (len=1))
|| sscanf(message, "%x", &type)==1) ) {
clif->message(fd, msg_txt(900)); // Usage:
- clif->message(fd, msg_txt(901)); // @send len <packet hex number>
- clif->message(fd, msg_txt(902)); // @send <packet hex number> {<value>}*
- clif->message(fd, msg_txt(903)); // Value: <type=B(default),W,L><number> or S<length>"<string>"
+ clif->message(fd, msg_txt(901)); // @send len <packet hex number>
+ clif->message(fd, msg_txt(902)); // @send <packet hex number> {<value>}*
+ clif->message(fd, msg_txt(903)); // Value: <type=B(default),W,L><number> or S<length>"<string>"
return false;
}
@@ -200,14 +200,13 @@ ACMD(send)
} while(0) //define GET_VALUE
if (type > 0 && type < MAX_PACKET_DB) {
-
if(len)
{// show packet length
sprintf(atcmd_output, msg_txt(904), type, packet_db[type].len); // Packet 0x%x length: %d
clif->message(fd, atcmd_output);
return true;
}
-
+
len=packet_db[type].len;
off=2;
if(len == 0)
@@ -222,7 +221,7 @@ ACMD(send)
}
WFIFOHEAD(sd->fd, len);
WFIFOW(sd->fd,0)=TOW(type);
-
+
// parse packet contents
SKIP_VALUE(message);
while(*message != 0 && off < len){
@@ -266,7 +265,7 @@ ACMD(send)
++message;
}
}
-
+
// parse string
++message;
CHECK_EOS(message);
@@ -344,7 +343,7 @@ ACMD(send)
++message;
CHECK_EOS(message);
}
-
+
// terminate the string
if(off < end)
{// fill the rest with 0's
@@ -358,7 +357,7 @@ ACMD(send)
}
SKIP_VALUE(message);
}
-
+
if(packet_db[type].len == -1) {// send dynamic packet
WFIFOW(sd->fd,2)=TOW(off);
WFIFOSET(sd->fd,off);
@@ -388,21 +387,20 @@ ACMD(mapmove) {
unsigned short map_index;
short x = 0, y = 0;
int16 m = -1;
-
+
memset(map_name, '\0', sizeof(map_name));
-
+
if (!message || !*message ||
(sscanf(message, "%15s %hd %hd", map_name, &x, &y) < 3 &&
sscanf(message, "%15[^,],%hd,%hd", map_name, &x, &y) < 1)) {
-
clif->message(fd, msg_txt(909)); // Please enter a map (usage: @warp/@rura/@mapmove <mapname> <x> <y>).
return false;
}
-
+
map_index = mapindex->name2id(map_name);
if (map_index)
m = map->mapindex2mapid(map_index);
-
+
if (!map_index || m < 0) { // m < 0 means on different server or that map is disabled! [Kevin]
clif->message(fd, msg_txt(1)); // Map not found.
return false;
@@ -412,7 +410,7 @@ ACMD(mapmove) {
clif->message(fd, msg_txt(253)); // You already are at your destination!
return false;
}
-
+
if ((x || y) && map->getcell(m, x, y, CELL_CHKNOPASS) && pc_get_group_level(sd) < battle_config.gm_ignore_warpable_area) {
//This is to prevent the pc->setpos call from printing an error.
clif->message(fd, msg_txt(2));
@@ -431,7 +429,7 @@ ACMD(mapmove) {
clif->message(fd, msg_txt(1)); // Map not found.
return false;
}
-
+
clif->message(fd, msg_txt(0)); // Warped.
return true;
}
@@ -441,14 +439,14 @@ ACMD(mapmove) {
*------------------------------------------*/
ACMD(where) {
struct map_session_data* pl_sd;
-
+
memset(atcmd_player_name, '\0', sizeof atcmd_player_name);
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(910)); // Please enter a player name (usage: @where <char name>).
return false;
}
-
+
pl_sd = map->nick2sd(atcmd_player_name);
if (pl_sd == NULL ||
strncmp(pl_sd->status.name, atcmd_player_name, NAME_LENGTH) != 0 ||
@@ -457,10 +455,10 @@ ACMD(where) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
snprintf(atcmd_output, sizeof atcmd_output, "%s %s %d %d", pl_sd->status.name, mapindex_id2name(pl_sd->mapindex), pl_sd->bl.x, pl_sd->bl.y);
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -489,7 +487,7 @@ ACMD(jumpto) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(247)); // You are not authorized to warp to this map.
return false;
@@ -513,21 +511,21 @@ ACMD(jumpto) {
ACMD(jump)
{
short x = 0, y = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
sscanf(message, "%hd %hd", &x, &y);
-
+
if (map->list[sd->bl.m].flag.noteleport && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(248)); // You are not authorized to warp from your current map.
return false;
}
-
+
if( pc_isdead(sd) ) {
clif->message(fd, msg_txt(864)); // "You cannot use this command when dead."
return false;
}
-
+
if ((x || y) && map->getcell(sd->bl.m, x, y, CELL_CHKNOPASS)) {
//This is to prevent the pc->setpos call from printing an error.
clif->message(fd, msg_txt(2));
@@ -539,7 +537,7 @@ ACMD(jump)
clif->message(fd, msg_txt(253)); // You already are at your destination!
return false;
}
-
+
pc->setpos(sd, sd->mapindex, x, y, CLR_TELEPORT);
sprintf(atcmd_output, msg_txt(5), sd->bl.x, sd->bl.y); // Jumped to %d %d
clif->message(fd, atcmd_output);
@@ -565,25 +563,25 @@ ACMD(who) {
*/
int display_type = 1;
int map_id = -1;
-
+
if (stristr(info->command, "map") != NULL) {
if (sscanf(message, "%15s %23s", map_name, player_name) < 1 || (map_id = map->mapname2mapid(map_name)) < 0)
map_id = sd->bl.m;
} else {
sscanf(message, "%23s", player_name);
}
-
+
if (stristr(info->command, "2") != NULL)
display_type = 2;
else if (stristr(info->command, "3") != NULL)
display_type = 3;
-
+
level = pc_get_group_level(sd);
StrBuf->Init(&buf);
-
+
iter = mapit_getallusers();
- for (pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter)) {
- if (!((pc_has_permission(pl_sd, PC_PERM_HIDE_SESSION) || (pl_sd->sc.option & OPTION_INVISIBLE)) && pc_get_group_level(pl_sd) > level)) { // you can look only lower or same level
+ for (pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter)) {
+ if (!((pc_has_permission(pl_sd, PC_PERM_HIDE_SESSION) || pc_isinvisible(pl_sd)) && pc_get_group_level(pl_sd) > level)) { // you can look only lower or same level
if (stristr(pl_sd->status.name, player_name) == NULL // search with no case sensitive
|| (map_id >= 0 && pl_sd->bl.m != map_id))
continue;
@@ -598,7 +596,7 @@ ACMD(who) {
}
case 3: {
if (pc_has_permission(sd, PC_PERM_WHO_DISPLAY_AID))
- StrBuf->Printf(&buf, msg_txt(912), pl_sd->status.char_id, pl_sd->status.account_id); // "(CID:%d/AID:%d) "
+ StrBuf->Printf(&buf, msg_txt(912), pl_sd->status.char_id, pl_sd->status.account_id); // "(CID:%d/AID:%d) "
StrBuf->Printf(&buf, msg_txt(343), pl_sd->status.name); // "Name: %s "
if (pc_get_group_id(pl_sd) > 0) // Player title, if exists
StrBuf->Printf(&buf, msg_txt(344), pcg->get_name(pl_sd->group)); // "(%s) "
@@ -608,7 +606,7 @@ ACMD(who) {
default: {
struct party_data *p = party->search(pl_sd->status.party_id);
struct guild *g = pl_sd->guild;
-
+
StrBuf->Printf(&buf, msg_txt(343), pl_sd->status.name); // "Name: %s "
if (pc_get_group_id(pl_sd) > 0) // Player title, if exists
StrBuf->Printf(&buf, msg_txt(344), pcg->get_name(pl_sd->group)); // "(%s) "
@@ -619,13 +617,13 @@ ACMD(who) {
break;
}
}
- clif->message(fd, StrBuf->Value(&buf));
+ clif->colormes(fd, COLOR_DEFAULT, StrBuf->Value(&buf));/** for whatever reason clif->message crashes with some patterns, see bugreport:8186 **/
StrBuf->Clear(&buf);
count++;
}
}
mapit->free(iter);
-
+
if (map_id < 0) {
if (count == 0)
StrBuf->Printf(&buf, msg_txt(28)); // No player found.
@@ -659,65 +657,65 @@ ACMD(whogm)
char player_name[NAME_LENGTH];
struct guild *g;
struct party_data *p;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
memset(match_text, '\0', sizeof(match_text));
memset(player_name, '\0', sizeof(player_name));
-
+
if (sscanf(message, "%199[^\n]", match_text) < 1)
strcpy(match_text, "");
for (j = 0; match_text[j]; j++)
match_text[j] = TOLOWER(match_text[j]);
-
+
count = 0;
level = pc_get_group_level(sd);
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
pl_level = pc_get_group_level(pl_sd);
if (!pl_level)
continue;
-
+
if (match_text[0])
{
memcpy(player_name, pl_sd->status.name, NAME_LENGTH);
for (j = 0; player_name[j]; j++)
player_name[j] = TOLOWER(player_name[j]);
- // search with no case sensitive
+ // search with no case sensitive
if (strstr(player_name, match_text) == NULL)
continue;
}
if (pl_level > level) {
- if (pl_sd->sc.option & OPTION_INVISIBLE)
+ if (pc_isinvisible(pl_sd))
continue;
sprintf(atcmd_output, msg_txt(913), pl_sd->status.name); // Name: %s (GM)
clif->message(fd, atcmd_output);
count++;
continue;
}
-
+
sprintf(atcmd_output, msg_txt(914), // Name: %s (GM:%d) | Location: %s %d %d
pl_sd->status.name, pl_level,
mapindex_id2name(pl_sd->mapindex), pl_sd->bl.x, pl_sd->bl.y);
clif->message(fd, atcmd_output);
-
+
sprintf(atcmd_output, msg_txt(915), // BLvl: %d | Job: %s (Lvl: %d)
pl_sd->status.base_level,
pc->job_name(pl_sd->status.class_), pl_sd->status.job_level);
clif->message(fd, atcmd_output);
-
+
p = party->search(pl_sd->status.party_id);
g = pl_sd->guild;
-
- sprintf(atcmd_output,msg_txt(916), // Party: '%s' | Guild: '%s'
- p?p->party.name:msg_txt(917), g?g->name:msg_txt(917)); // None.
-
+
+ sprintf(atcmd_output,msg_txt(916), // Party: '%s' | Guild: '%s'
+ p?p->party.name:msg_txt(917), g?g->name:msg_txt(917)); // None.
+
clif->message(fd, atcmd_output);
count++;
}
mapit->free(iter);
-
+
if (count == 0)
clif->message(fd, msg_txt(150)); // No GM found.
else if (count == 1)
@@ -726,23 +724,23 @@ ACMD(whogm)
sprintf(atcmd_output, msg_txt(152), count); // %d GMs found.
clif->message(fd, atcmd_output);
}
-
+
return true;
}
/*==========================================
*
*------------------------------------------*/
-ACMD(save) {
-
+ACMD(save)
+{
pc->setsavepoint(sd, sd->mapindex, sd->bl.x, sd->bl.y);
if (sd->status.pet_id > 0 && sd->pd)
intif->save_petdata(sd->status.account_id, &sd->pd->pet);
-
+
chrif->save(sd,0);
-
+
clif->message(fd, msg_txt(6)); // Your save point has been changed.
-
+
return true;
}
@@ -751,7 +749,7 @@ ACMD(save) {
*------------------------------------------*/
ACMD(load) {
int16 m;
-
+
m = map->mapindex2mapid(sd->status.save_point.map);
if (m >= 0 && map->list[m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(249)); // You are not authorized to warp to your save map.
@@ -761,10 +759,10 @@ ACMD(load) {
clif->message(fd, msg_txt(248)); // You are not authorized to warp from your current map.
return false;
}
-
+
pc->setpos(sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_OUTSIGHT);
clif->message(fd, msg_txt(7)); // Warping to save point..
-
+
return true;
}
@@ -774,30 +772,30 @@ ACMD(load) {
ACMD(speed)
{
int speed;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d", &speed) < 1) {
sprintf(atcmd_output, msg_txt(918), MIN_WALK_SPEED, MAX_WALK_SPEED); // Please enter a speed value (usage: @speed <%d-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
sd->state.permanent_speed = 0;
-
+
if (speed < 0)
sd->base_status.speed = DEFAULT_WALK_SPEED;
else
sd->base_status.speed = cap_value(speed, MIN_WALK_SPEED, MAX_WALK_SPEED);
-
+
if( sd->base_status.speed != DEFAULT_WALK_SPEED ) {
sd->state.permanent_speed = 1; // Set lock when set to non-default speed.
clif->message(fd, msg_txt(8)); // Speed changed.
} else
clif->message(fd, msg_txt(172)); //Speed returned to normal.
-
+
status_calc_bl(&sd->bl, SCB_SPEED);
-
+
return true;
}
@@ -808,14 +806,14 @@ ACMD(storage)
{
if (sd->npc_id || sd->state.vending || sd->state.buyingstore || sd->state.trading || sd->state.storage_flag)
return false;
-
+
if (storage->open(sd) == 1) { //Already open.
clif->message(fd, msg_txt(250));
return false;
}
-
+
clif->message(fd, msg_txt(919)); // Storage opened.
-
+
return true;
}
@@ -829,20 +827,20 @@ ACMD(guildstorage)
clif->message(fd, msg_txt(252));
return false;
}
-
+
if (sd->npc_id || sd->state.vending || sd->state.buyingstore || sd->state.trading)
return false;
-
+
if (sd->state.storage_flag == 1) {
clif->message(fd, msg_txt(250));
return false;
}
-
+
if (sd->state.storage_flag == 2) {
clif->message(fd, msg_txt(251));
return false;
}
-
+
if( gstorage->open(sd) ) {
clif->message(fd, msg_txt(1201)); // Your guild's storage has already been opened by another member, try again later.
return false;
@@ -858,30 +856,30 @@ ACMD(guildstorage)
ACMD(option)
{
int param1 = 0, param2 = 0, param3 = 0;
-
+
if (!message || !*message || sscanf(message, "%d %d %d", &param1, &param2, &param3) < 1 || param1 < 0 || param2 < 0 || param3 < 0)
{// failed to match the parameters so inform the user of the options
const char* text;
-
+
// attempt to find the setting information for this command
text = atcommand_help_string( info );
-
+
// notify the user of the requirement to enter an option
clif->message(fd, msg_txt(921)); // Please enter at least one option.
-
+
if( text ) {// send the help text associated with this command
clif->messageln( fd, text );
}
-
+
return false;
}
-
+
sd->sc.opt1 = param1;
sd->sc.opt2 = param2;
pc->setoption(sd, param3);
-
+
clif->message(fd, msg_txt(9)); // Options changed.
-
+
return true;
}
@@ -889,17 +887,17 @@ ACMD(option)
*
*------------------------------------------*/
ACMD(hide) {
- if (sd->sc.option & OPTION_INVISIBLE) {
+ if (pc_isinvisible(sd)) {
sd->sc.option &= ~OPTION_INVISIBLE;
if (sd->disguise != -1 )
status->set_viewdata(&sd->bl, sd->disguise);
else
status->set_viewdata(&sd->bl, sd->status.class_);
clif->message(fd, msg_txt(10)); // Invisible: Off
-
+
// increment the number of pvp players on the map
map->list[sd->bl.m].users_pvp++;
-
+
if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank ) {
// register the player for ranking calculations
sd->pvp_timer = timer->add( timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0 );
@@ -910,10 +908,10 @@ ACMD(hide) {
sd->sc.option |= OPTION_INVISIBLE;
sd->vd.class_ = INVISIBLE_CLASS;
clif->message(fd, msg_txt(11)); // Invisible: On
-
+
// decrement the number of pvp players on the map
map->list[sd->bl.m].users_pvp--;
-
+
if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) {
// unregister the player for ranking
timer->delete( sd->pvp_timer, pc->calc_pvprank_timer );
@@ -921,7 +919,7 @@ ACMD(hide) {
}
}
clif->changeoption(&sd->bl);
-
+
return true;
}
@@ -931,11 +929,11 @@ ACMD(hide) {
ACMD(jobchange) {
int job = 0, upper = 0;
const char* text;
-
+
if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) {
upper = 0;
-
- if( message ) {
+
+ if( message ) {
int i;
bool found = false;
@@ -946,7 +944,7 @@ ACMD(jobchange) {
found = true;
}
}
-
+
// High Jobs, Babies and Third
for( i = JOB_NOVICE_HIGH; i < JOB_MAX && !found; i++ ){
if (strncmpi(message, pc->job_name(i), 16) == 0) {
@@ -954,7 +952,7 @@ ACMD(jobchange) {
found = true;
}
}
-
+
if (!found) {
text = atcommand_help_string(info);
if (text)
@@ -965,14 +963,14 @@ ACMD(jobchange) {
}
/* WHY DO WE LIST THEM THEN? */
// Deny direct transformation into dummy jobs
- if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER
- || job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
- || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
- ) {
+ if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER
+ || job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
+ || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
+ ) {
clif->message(fd, msg_txt(923)); //"You can not change to this job by command."
return true;
}
-
+
if (pcdb_checkid(job)) {
if (pc->jobchange(sd, job, upper) == 0)
clif->message(fd, msg_txt(12)); // Your job has been changed.
@@ -982,11 +980,11 @@ ACMD(jobchange) {
}
} else {
text = atcommand_help_string(info);
- if (text)
- clif->messageln(fd, text);
+ if (text)
+ clif->messageln(fd, text);
return false;
}
-
+
return true;
}
@@ -1022,15 +1020,15 @@ ACMD(alive)
ACMD(kami)
{
unsigned int color=0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if(*(info->command + 4) != 'c' && *(info->command + 4) != 'C') {
if (!message || !*message) {
clif->message(fd, msg_txt(980)); // Please enter a message (usage: @kami <message>).
return false;
}
-
+
sscanf(message, "%199[^\n]", atcmd_output);
if (stristr(info->command, "l") != NULL)
clif->broadcast(&sd->bl, atcmd_output, strlen(atcmd_output) + 1, BC_DEFAULT, ALL_SAMEMAP);
@@ -1041,7 +1039,7 @@ ACMD(kami)
clif->message(fd, msg_txt(981)); // Please enter color and message (usage: @kamic <color> <message>).
return false;
}
-
+
if(color > 0xFFFFFF) {
clif->message(fd, msg_txt(982)); // Invalid color.
return false;
@@ -1057,13 +1055,13 @@ ACMD(kami)
ACMD(heal)
{
int hp = 0, sp = 0; // [Valaris] thanks to fov
-
+
sscanf(message, "%d %d", &hp, &sp);
-
+
// some overflow checks
if( hp == INT_MIN ) hp++;
if( sp == INT_MIN ) sp++;
-
+
if ( hp == 0 && sp == 0 ) {
if (!status_percent_heal(&sd->bl, 100, 100))
clif->message(fd, msg_txt(157)); // HP and SP have already been recovered.
@@ -1071,7 +1069,7 @@ ACMD(heal)
clif->message(fd, msg_txt(17)); // HP, SP recovered.
return true;
}
-
+
if ( hp > 0 && sp >= 0 ) {
if(!status->heal(&sd->bl, hp, sp, 0))
clif->message(fd, msg_txt(157)); // HP and SP are already with the good value.
@@ -1079,14 +1077,14 @@ ACMD(heal)
clif->message(fd, msg_txt(17)); // HP, SP recovered.
return true;
}
-
+
if ( hp < 0 && sp <= 0 ) {
status->damage(NULL, &sd->bl, -hp, -sp, 0, 0);
clif->damage(&sd->bl,&sd->bl, 0, 0, -hp, 0, 4, 0);
clif->message(fd, msg_txt(156)); // HP or/and SP modified.
return true;
}
-
+
//Opposing signs.
if ( hp ) {
if (hp > 0)
@@ -1096,14 +1094,14 @@ ACMD(heal)
clif->damage(&sd->bl,&sd->bl, 0, 0, -hp, 0, 4, 0);
}
}
-
+
if ( sp ) {
if (sp > 0)
status->heal(&sd->bl, 0, sp, 0);
else
status->damage(NULL, &sd->bl, 0, -sp, 0, 0);
}
-
+
clif->message(fd, msg_txt(156)); // HP or/and SP modified.
return true;
}
@@ -1119,7 +1117,7 @@ ACMD(item)
struct item item_tmp;
struct item_data *item_data;
int get_count, i;
-
+
memset(item_name, '\0', sizeof(item_name));
if (!strcmpi(info->command,"itembound") && (!message || !*message || (
@@ -1128,24 +1126,24 @@ ACMD(item)
))) {
clif->message(fd, msg_txt(295)); // Please enter an item name or ID (usage: @itembound <item name/ID> <quantity> <bound_type>).
return false;
- } else if (!message || !*message || (
- sscanf(message, "\"%99[^\"]\" %d", item_name, &number) < 1 &&
- sscanf(message, "%99s %d", item_name, &number) < 1 ))
- {
- clif->message(fd, msg_txt(983)); // Please enter an item name or ID (usage: @item <item name/ID> <quantity>).
+ } else if (!message || !*message
+ || ( sscanf(message, "\"%99[^\"]\" %d", item_name, &number) < 1
+ && sscanf(message, "%99s %d", item_name, &number) < 1
+ )) {
+ clif->message(fd, msg_txt(983)); // Please enter an item name or ID (usage: @item <item name/ID> <quantity>).
return false;
}
-
+
if (number <= 0)
number = 1;
-
+
if ((item_data = itemdb->search_name(item_name)) == NULL &&
(item_data = itemdb->exists(atoi(item_name))) == NULL)
{
clif->message(fd, msg_txt(19)); // Invalid item ID or name.
return false;
}
-
+
if(!strcmpi(info->command,"itembound") ) {
if( !(bound >= IBT_MIN && bound <= IBT_MAX) ) {
clif->message(fd, msg_txt(298)); // Invalid bound type
@@ -1178,9 +1176,9 @@ ACMD(item)
clif->message(fd, msg_txt(498)); // Cannot create bounded pet eggs or pet armors.
return false;
}
- get_count = 1;
+ get_count = 1;
}
-
+
for (i = 0; i < number; i += get_count) {
// if not pet egg
if (!pet->create_egg(sd, item_id)) {
@@ -1188,12 +1186,12 @@ ACMD(item)
item_tmp.nameid = item_id;
item_tmp.identify = 1;
item_tmp.bound = (unsigned char)bound;
-
+
if ((flag = pc->additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))
clif->additem(sd, 0, 0, flag);
}
}
-
+
if (flag == 0)
clif->message(fd, msg_txt(18)); // Item created.
return true;
@@ -1210,24 +1208,24 @@ ACMD(item2)
int item_id, number = 0, bound = 0;
int identify = 0, refine = 0, attr = 0;
int c1 = 0, c2 = 0, c3 = 0, c4 = 0;
-
+
memset(item_name, '\0', sizeof(item_name));
-
+
if (!strcmpi(info->command,"itembound2") && (!message || !*message || (
sscanf(message, "\"%99[^\"]\" %d %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4, &bound) < 10 &&
sscanf(message, "%99s %d %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4, &bound) < 10 ))) {
clif->message(fd, msg_txt(296)); // Please enter all parameters (usage: @itembound2 <item name/ID> <quantity>
clif->message(fd, msg_txt(297)); // <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4> <bound_type>).
return false;
- } else if ( !message || !*message || (
- sscanf(message, "\"%99[^\"]\" %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9 &&
- sscanf(message, "%99s %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9
- )) {
+ } else if ( !message || !*message
+ || ( sscanf(message, "\"%99[^\"]\" %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9
+ && sscanf(message, "%99s %d %d %d %d %d %d %d %d", item_name, &number, &identify, &refine, &attr, &c1, &c2, &c3, &c4) < 9
+ )) {
clif->message(fd, msg_txt(984)); // Please enter all parameters (usage: @item2 <item name/ID> <quantity>
clif->message(fd, msg_txt(985)); // <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4>).
return false;
}
-
+
if (number <= 0)
number = 1;
@@ -1240,7 +1238,7 @@ ACMD(item2)
if ((item_data = itemdb->search_name(item_name)) != NULL ||
(item_data = itemdb->exists(atoi(item_name))) != NULL)
item_id = item_data->nameid;
-
+
if (item_id > 500) {
int flag = 0;
int loop, get_count, i;
@@ -1253,7 +1251,7 @@ ACMD(item2)
clif->message(fd, msg_txt(498)); // Cannot create bounded pet eggs or pet armors.
return false;
}
- loop = number;
+ loop = number;
get_count = 1;
if (item_data->type == IT_PETEGG) {
identify = 1;
@@ -1278,18 +1276,18 @@ ACMD(item2)
item_tmp.card[1] = c2;
item_tmp.card[2] = c3;
item_tmp.card[3] = c4;
-
+
if ((flag = pc->additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))
clif->additem(sd, 0, 0, flag);
}
-
+
if (flag == 0)
clif->message(fd, msg_txt(18)); // Item created.
} else {
clif->message(fd, msg_txt(19)); // Invalid item ID or name.
return false;
}
-
+
return true;
}
@@ -1299,14 +1297,14 @@ ACMD(item2)
ACMD(itemreset)
{
int i;
-
+
for (i = 0; i < MAX_INVENTORY; i++) {
if (sd->status.inventory[i].amount && sd->status.inventory[i].equip == 0) {
pc->delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_COMMAND);
}
}
clif->message(fd, msg_txt(20)); // All of your items have been removed.
-
+
return true;
}
@@ -1318,12 +1316,12 @@ ACMD(baselevelup)
int level=0, i=0, status_point=0;
level = atoi(message);
-
+
if (!message || !*message || !level) {
clif->message(fd, msg_txt(986)); // Please enter a level adjustment (usage: @lvup/@blevel/@baselvlup <number of levels>).
return false;
}
-
+
if (level > 0) {
if (sd->status.base_level >= pc->maxbaselv(sd)) { // check for max level by Valaris
clif->message(fd, msg_txt(47)); // Base level can't go any higher.
@@ -1333,7 +1331,7 @@ ACMD(baselevelup)
level = pc->maxbaselv(sd) - sd->status.base_level;
for (i = 0; i < level; i++)
status_point += pc->gets_status_point(sd->status.base_level + i);
-
+
sd->status.status_point += status_point;
sd->status.base_level += (unsigned int)level;
status_calc_pc(sd, SCO_FORCE);
@@ -1377,9 +1375,9 @@ ACMD(baselevelup)
ACMD(joblevelup)
{
int level=0;
-
+
level = atoi(message);
-
+
if (!message || !*message || !level) {
clif->message(fd, msg_txt(987)); // Please enter a level adjustment (usage: @joblvup/@jlevel/@joblvlup <number of levels>).
return false;
@@ -1405,7 +1403,7 @@ ACMD(joblevelup)
level = sd->status.job_level-1;
sd->status.job_level -= (unsigned int)level;
if (sd->status.skill_point < level)
- pc->resetskill(sd,0); //Reset skills since we need to subtract more points.
+ pc->resetskill(sd,0); //Reset skills since we need to subtract more points.
if (sd->status.skill_point < level)
sd->status.skill_point = 0;
else
@@ -1418,7 +1416,7 @@ ACMD(joblevelup)
clif->updatestatus(sd, SP_NEXTJOBEXP);
clif->updatestatus(sd, SP_SKILLPOINT);
status_calc_pc(sd, SCO_FORCE);
-
+
return true;
}
@@ -1429,7 +1427,7 @@ ACMD(help) {
const char *command_name = NULL;
char *default_command = "help";
AtCommandInfo *tinfo = NULL;
-
+
if (!message || !*message) {
command_name = default_command; // If no command_name specified, display help for @help.
} else {
@@ -1437,33 +1435,33 @@ ACMD(help) {
++message;
command_name = atcommand->check_alias(message);
}
-
+
if (!atcommand->can_use2(sd, command_name, COMMAND_ATCOMMAND)) {
sprintf(atcmd_output, msg_txt(153), message); // "%s is Unknown Command"
clif->message(fd, atcmd_output);
atcommand->get_suggestions(sd, command_name, true);
return false;
}
-
+
tinfo = atcommand->get_info_byname(atcommand->check_alias(command_name));
-
+
if ( !tinfo || tinfo->help == NULL ) {
sprintf(atcmd_output, msg_txt(988), atcommand->at_symbol, command_name); // There is no help for %c%s.
clif->message(fd, atcmd_output);
atcommand->get_suggestions(sd, command_name, true);
return false;
}
-
+
sprintf(atcmd_output, msg_txt(989), atcommand->at_symbol, command_name); // Help for command %c%s:
clif->message(fd, atcmd_output);
-
+
{ // Display aliases
DBIterator* iter;
AtCommandInfo *command_info;
AliasInfo *alias_info = NULL;
StringBuf buf;
bool has_aliases = false;
-
+
StrBuf->Init(&buf);
StrBuf->AppendStr(&buf, msg_txt(990)); // Available aliases:
command_info = atcommand->get_info_byname(command_name);
@@ -1479,7 +1477,7 @@ ACMD(help) {
clif->message(fd, StrBuf->Value(&buf));
StrBuf->Destroy(&buf);
}
-
+
// Display help contents
clif->message(fd, tinfo->help);
return true;
@@ -1512,16 +1510,16 @@ int atcommand_pvpoff_sub(struct block_list *bl,va_list ap)
return 0;
}
-ACMD(pvpoff) {
-
+ACMD(pvpoff)
+{
if (!map->list[sd->bl.m].flag.pvp) {
clif->message(fd, msg_txt(160)); // PvP is already Off.
return false;
}
-
+
map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone);
map->list[sd->bl.m].flag.pvp = 0;
-
+
if (!battle_config.pk_mode) {
clif->map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);
clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP);
@@ -1549,24 +1547,24 @@ int atcommand_pvpon_sub(struct block_list *bl,va_list ap)
return 0;
}
-ACMD(pvpon) {
-
+ACMD(pvpon)
+{
if (map->list[sd->bl.m].flag.pvp) {
clif->message(fd, msg_txt(161)); // PvP is already On.
return false;
}
-
+
map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_PVP_NAME));
map->list[sd->bl.m].flag.pvp = 1;
-
+
if (!battle_config.pk_mode) {// display pvp circle and rank
clif->map_property_mapall(sd->bl.m, MAPPROPERTY_FREEPVPZONE);
clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP);
map->foreachinmap(atcommand->pvpon_sub,sd->bl.m, BL_PC);
}
-
+
clif->message(fd, msg_txt(32)); // PvP: On.
-
+
return true;
}
@@ -1574,38 +1572,38 @@ ACMD(pvpon) {
*
*------------------------------------------*/
ACMD(gvgoff) {
-
+
if (!map->list[sd->bl.m].flag.gvg) {
clif->message(fd, msg_txt(162)); // GvG is already Off.
return false;
}
-
+
map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone);
map->list[sd->bl.m].flag.gvg = 0;
clif->map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);
clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP);
map->foreachinmap(atcommand->stopattack,sd->bl.m, BL_CHAR, 0);
clif->message(fd, msg_txt(33)); // GvG: Off.
-
+
return true;
}
/*==========================================
*
*------------------------------------------*/
-ACMD(gvgon) {
-
+ACMD(gvgon)
+{
if (map->list[sd->bl.m].flag.gvg) {
clif->message(fd, msg_txt(163)); // GvG is already On.
return false;
}
-
+
map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_GVG_NAME));
map->list[sd->bl.m].flag.gvg = 1;
clif->map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE);
clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP);
clif->message(fd, msg_txt(34)); // GvG: On.
-
+
return true;
}
@@ -1615,16 +1613,16 @@ ACMD(gvgon) {
ACMD(model)
{
int hair_style = 0, hair_color = 0, cloth_color = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d %d %d", &hair_style, &hair_color, &cloth_color) < 1) {
sprintf(atcmd_output, msg_txt(991), // Please enter at least one value (usage: @model <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d>).
MIN_HAIR_STYLE, MAX_HAIR_STYLE, MIN_HAIR_COLOR, MAX_HAIR_COLOR, MIN_CLOTH_COLOR, MAX_CLOTH_COLOR);
clif->message(fd, atcmd_output);
return false;
}
-
+
if (hair_style >= MIN_HAIR_STYLE && hair_style <= MAX_HAIR_STYLE &&
hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR &&
cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) {
@@ -1636,7 +1634,7 @@ ACMD(model)
clif->message(fd, msg_txt(37)); // An invalid number was specified.
return false;
}
-
+
return true;
}
@@ -1646,15 +1644,15 @@ ACMD(model)
ACMD(dye)
{
int cloth_color = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d", &cloth_color) < 1) {
sprintf(atcmd_output, msg_txt(992), MIN_CLOTH_COLOR, MAX_CLOTH_COLOR); // Please enter a clothes color (usage: @dye/@ccolor <clothes color: %d-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
if (cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) {
pc->changelook(sd, LOOK_CLOTHES_COLOR, cloth_color);
clif->message(fd, msg_txt(36)); // Appearance changed.
@@ -1662,7 +1660,7 @@ ACMD(dye)
clif->message(fd, msg_txt(37)); // An invalid number was specified.
return false;
}
-
+
return true;
}
@@ -1672,15 +1670,15 @@ ACMD(dye)
ACMD(hair_style)
{
int hair_style = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d", &hair_style) < 1) {
sprintf(atcmd_output, msg_txt(993), MIN_HAIR_STYLE, MAX_HAIR_STYLE); // Please enter a hair style (usage: @hairstyle/@hstyle <hair ID: %d-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
if (hair_style >= MIN_HAIR_STYLE && hair_style <= MAX_HAIR_STYLE) {
pc->changelook(sd, LOOK_HAIR, hair_style);
clif->message(fd, msg_txt(36)); // Appearance changed.
@@ -1688,7 +1686,7 @@ ACMD(hair_style)
clif->message(fd, msg_txt(37)); // An invalid number was specified.
return false;
}
-
+
return true;
}
@@ -1698,15 +1696,15 @@ ACMD(hair_style)
ACMD(hair_color)
{
int hair_color = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d", &hair_color) < 1) {
sprintf(atcmd_output, msg_txt(994), MIN_HAIR_COLOR, MAX_HAIR_COLOR); // Please enter a hair color (usage: @haircolor/@hcolor <hair color: %d-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
if (hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR) {
pc->changelook(sd, LOOK_HAIR_COLOR, hair_color);
clif->message(fd, msg_txt(36)); // Appearance changed.
@@ -1714,7 +1712,7 @@ ACMD(hair_color)
clif->message(fd, msg_txt(37)); // An invalid number was specified.
return false;
}
-
+
return true;
}
@@ -1725,7 +1723,7 @@ ACMD(go) {
int i;
int town = INT_MAX; // Initialized to INT_MAX instead of -1 to avoid conflicts with those who map [-3:-1] to @memo locations.
char map_name[MAP_NAME_LENGTH];
-
+
const struct {
char map[MAP_NAME_LENGTH];
int x, y;
@@ -1772,23 +1770,23 @@ ACMD(go) {
{ MAP_MALAYA, 242, 211, 5 }, // 34 = Malaya Port
{ MAP_ECLAGE, 110, 39, 3 }, // 35 = Eclage
};
-
+
memset(map_name, '\0', sizeof(map_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%11s", map_name) < 1) {
// no value matched so send the list of locations
const char* text;
-
+
// attempt to find the text help string
text = atcommand_help_string( info );
-
+
clif->message(fd, msg_txt(38)); // Invalid location number, or name.
-
+
if( text ) {// send the text to the client
clif->messageln( fd, text );
}
-
+
return false;
}
@@ -1852,7 +1850,7 @@ ACMD(go) {
clif->message(fd, msg_txt(38)); // Invalid location number or name.
return false;
}
-
+
return true;
}
@@ -1870,11 +1868,11 @@ ACMD(monster)
int i, k, range;
short mx, my;
unsigned int size;
-
+
memset(name, '\0', sizeof(name));
memset(monster, '\0', sizeof(monster));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(80)); // Please specify a display name or monster name/id.
return false;
@@ -1895,35 +1893,35 @@ ACMD(monster)
clif->message(fd, msg_txt(80)); // Give a display name and monster name/id please.
return false;
}
-
+
if ((mob_id = mob->db_searchname(monster)) == 0) // check name first (to avoid possible name beginning by a number)
mob_id = mob->db_checkid(atoi(monster));
-
+
if (mob_id == 0) {
clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
return false;
}
-
+
if (number <= 0)
number = 1;
-
+
if( !name[0] )
strcpy(name, "--ja--");
-
+
// If value of atcommand_spawn_quantity_limit directive is greater than or equal to 1 and quantity of monsters is greater than value of the directive
if (battle_config.atc_spawn_quantity_limit && number > battle_config.atc_spawn_quantity_limit)
number = battle_config.atc_spawn_quantity_limit;
-
+
if (strcmpi(info->command, "monstersmall") == 0)
- size = SZ_SMALL;
+ size = SZ_MEDIUM;
else if (strcmpi(info->command, "monsterbig") == 0)
size = SZ_BIG;
else
- size = SZ_MEDIUM;
-
+ size = SZ_SMALL;
+
if (battle_config.etc_log)
ShowInfo("%s monster='%s' name='%s' id=%d count=%d (%d,%d)\n", command, monster, name, mob_id, number, sd->bl.x, sd->bl.y);
-
+
count = 0;
range = (int)sqrt((float)number) +2; // calculation of an odd number (+ 4 area around)
for (i = 0; i < number; i++) {
@@ -1931,7 +1929,7 @@ ACMD(monster)
k = mob->once_spawn(sd, sd->bl.m, mx, my, name, mob_id, 1, eventname, size, AI_NONE|(mob_id == MOBID_EMPERIUM?0x200:0x0));
count += (k != 0) ? 1 : 0;
}
-
+
if (count != 0)
if (number == count)
clif->message(fd, msg_txt(39)); // All monster summoned!
@@ -1943,7 +1941,7 @@ ACMD(monster)
clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
return false;
}
-
+
return true;
}
@@ -1954,13 +1952,13 @@ int atkillmonster_sub(struct block_list *bl, va_list ap)
{
struct mob_data *md;
int flag;
-
+
nullpo_ret(md=(struct mob_data *)bl);
flag = va_arg(ap, int);
-
+
if (md->guardian_data)
return 0; //Do not touch WoE mobs!
-
+
if (flag)
status_zap(bl,md->status.hp, 0);
else
@@ -1971,22 +1969,22 @@ int atkillmonster_sub(struct block_list *bl, va_list ap)
ACMD(killmonster) {
int map_id, drop_flag;
char map_name[MAP_NAME_LENGTH_EXT];
-
+
memset(map_name, '\0', sizeof(map_name));
-
+
if (!message || !*message || sscanf(message, "%15s", map_name) < 1)
map_id = sd->bl.m;
else {
if ((map_id = map->mapname2mapid(map_name)) < 0)
map_id = sd->bl.m;
}
-
+
drop_flag = strcmpi(info->command, "killmonster2");
-
+
map->foreachinmap(atcommand->atkillmonster_sub, map_id, BL_MOB, -drop_flag);
-
+
clif->message(fd, msg_txt(165)); // All monsters killed!
-
+
return true;
}
@@ -1997,9 +1995,9 @@ ACMD(refine)
{
int i,j, position = 0, refine = 0, current_position, final_refine;
int count;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d %d", &position, &refine) < 2) {
clif->message(fd, msg_txt(996)); // Please enter a position and an amount (usage: @refine <equip position> <+/- amount>).
sprintf(atcmd_output, msg_txt(997), EQP_HEAD_LOW); // %d: Lower Headgear
@@ -2024,9 +2022,9 @@ ACMD(refine)
clif->message(fd, atcmd_output);
return false;
}
-
+
refine = cap_value(refine, -MAX_REFINE, MAX_REFINE);
-
+
count = 0;
for (j = 0; j < EQI_MAX; j++) {
if ((i = sd->equip_index[j]) < 0)
@@ -2038,10 +2036,10 @@ ACMD(refine)
continue;
if(j == EQI_HEAD_TOP && (sd->equip_index[EQI_HEAD_MID] == i || sd->equip_index[EQI_HEAD_LOW] == i))
continue;
-
+
if(position && !(sd->status.inventory[i].equip & position))
continue;
-
+
final_refine = cap_value(sd->status.inventory[i].refine + refine, 0, MAX_REFINE);
if (sd->status.inventory[i].refine != final_refine) {
sd->status.inventory[i].refine = final_refine;
@@ -2055,7 +2053,7 @@ ACMD(refine)
count++;
}
}
-
+
if (count == 0)
clif->message(fd, msg_txt(166)); // No item has been refined.
else if (count == 1)
@@ -2064,7 +2062,7 @@ ACMD(refine)
sprintf(atcmd_output, msg_txt(168), count); // %d items have been refined.
clif->message(fd, atcmd_output);
}
-
+
return true;
}
@@ -2077,10 +2075,10 @@ ACMD(produce)
int item_id, attribute = 0, star = 0;
struct item_data *item_data;
struct item tmp_item;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
memset(item_name, '\0', sizeof(item_name));
-
+
if (!message || !*message || (
sscanf(message, "\"%99[^\"]\" %d %d", item_name, &attribute, &star) < 1 &&
sscanf(message, "%99s %d %d", item_name, &attribute, &star) < 1
@@ -2088,15 +2086,15 @@ ACMD(produce)
clif->message(fd, msg_txt(1007)); // Please enter at least one item name/ID (usage: @produce <equip name/ID> <element> <# of very's>).
return false;
}
-
+
if ( (item_data = itemdb->search_name(item_name)) == NULL &&
(item_data = itemdb->exists(atoi(item_name))) == NULL ) {
clif->message(fd, msg_txt(170)); //This item is not an equipment.
return false;
}
-
+
item_id = item_data->nameid;
-
+
if (itemdb->isequip2(item_data)) {
int flag = 0;
if (attribute < MIN_ATTRIBUTE || attribute > MAX_ATTRIBUTE)
@@ -2114,7 +2112,7 @@ ACMD(produce)
tmp_item.card[3] = GetWord(sd->status.char_id, 1);
clif->produce_effect(sd, 0, item_id);
clif->misceffect(&sd->bl, 3);
-
+
if ((flag = pc->additem(sd, &tmp_item, 1, LOG_TYPE_COMMAND)))
clif->additem(sd, 0, 0, flag);
} else {
@@ -2122,7 +2120,7 @@ ACMD(produce)
clif->message(fd, atcmd_output);
return false;
}
-
+
return true;
}
@@ -2132,9 +2130,9 @@ ACMD(produce)
ACMD(memo)
{
int position = 0;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if( !message || !*message || sscanf(message, "%d", &position) < 1 )
{
int i;
@@ -2146,17 +2144,17 @@ ACMD(memo)
else
sprintf(atcmd_output, msg_txt(171), i); // %d - void
clif->message(sd->fd, atcmd_output);
- }
+ }
return true;
- }
-
+ }
+
if( position < 0 || position >= MAX_MEMOPOINTS )
{
sprintf(atcmd_output, msg_txt(1008), 0, MAX_MEMOPOINTS-1); // Please enter a valid position (usage: @memo <memo_position:%d-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
pc->memo(sd, position);
return true;
}
@@ -2166,9 +2164,9 @@ ACMD(memo)
*------------------------------------------*/
ACMD(gat) {
int y;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
for (y = 2; y >= -2; y--) {
sprintf(atcmd_output, "%s (x= %d, y= %d) %02X %02X %02X %02X %02X",
map->list[sd->bl.m].name, sd->bl.x - 2, sd->bl.y + y,
@@ -2177,10 +2175,10 @@ ACMD(gat) {
map->getcell(sd->bl.m, sd->bl.x, sd->bl.y + y, CELL_GETTYPE),
map->getcell(sd->bl.m, sd->bl.x + 1, sd->bl.y + y, CELL_GETTYPE),
map->getcell(sd->bl.m, sd->bl.x + 2, sd->bl.y + y, CELL_GETTYPE));
-
+
clif->message(fd, atcmd_output);
}
-
+
return true;
}
@@ -2190,19 +2188,19 @@ ACMD(gat) {
ACMD(displaystatus)
{
int i, type, flag, tick, val1 = 0, val2 = 0, val3 = 0;
-
+
if (!message || !*message || (i = sscanf(message, "%d %d %d %d %d %d", &type, &flag, &tick, &val1, &val2, &val3)) < 1) {
clif->message(fd, msg_txt(1009)); // Please enter a status type/flag (usage: @displaystatus <status type> <flag> <tick> {<val1> {<val2> {<val3>}}}).
return false;
}
if (i < 2) flag = 1;
if (i < 3) tick = 0;
-
+
if( flag == 0 )
clif->sc_end(&sd->bl,sd->bl.id,AREA,type);
else
clif->status_change(&sd->bl, type, flag, tick, val1, val2, val3);
-
+
return true;
}
@@ -2213,12 +2211,12 @@ ACMD(statuspoint)
{
int point;
unsigned int new_status_point;
-
+
if (!message || !*message || (point = atoi(message)) == 0) {
clif->message(fd, msg_txt(1010)); // Please enter a number (usage: @stpoint <number of points>).
return false;
}
-
+
if(point < 0)
{
if(sd->status.status_point < (unsigned int)(-point))
@@ -2238,7 +2236,7 @@ ACMD(statuspoint)
{
new_status_point = sd->status.status_point + point;
}
-
+
if (new_status_point != sd->status.status_point) {
sd->status.status_point = new_status_point;
clif->updatestatus(sd, SP_STATUSPOINT);
@@ -2250,7 +2248,7 @@ ACMD(statuspoint)
clif->message(fd, msg_txt(149)); // Unable to increase the number/value.
return false;
}
-
+
return true;
}
@@ -2261,12 +2259,12 @@ ACMD(skillpoint)
{
int point;
unsigned int new_skill_point;
-
+
if (!message || !*message || (point = atoi(message)) == 0) {
clif->message(fd, msg_txt(1011)); // Please enter a number (usage: @skpoint <number of points>).
return false;
}
-
+
if(point < 0)
{
if(sd->status.skill_point < (unsigned int)(-point))
@@ -2286,7 +2284,7 @@ ACMD(skillpoint)
{
new_skill_point = sd->status.skill_point + point;
}
-
+
if (new_skill_point != sd->status.skill_point) {
sd->status.skill_point = new_skill_point;
clif->updatestatus(sd, SP_SKILLPOINT);
@@ -2298,7 +2296,7 @@ ACMD(skillpoint)
clif->message(fd, msg_txt(149)); // Unable to increase the number/value.
return false;
}
-
+
return true;
}
@@ -2308,12 +2306,12 @@ ACMD(skillpoint)
ACMD(zeny)
{
int zeny=0, ret=-1;
-
+
if (!message || !*message || (zeny = atoi(message)) == 0) {
clif->message(fd, msg_txt(1012)); // Please enter an amount (usage: @zeny <amount>).
return false;
}
-
+
if(zeny > 0){
if((ret=pc->getzeny(sd,zeny,LOG_TYPE_COMMAND,NULL)) == 1)
clif->message(fd, msg_txt(149)); // Unable to increase the number/value.
@@ -2338,34 +2336,34 @@ ACMD(param) {
int i, value = 0, new_value, max;
const char* param[] = { "str", "agi", "vit", "int", "dex", "luk" };
short* stats[6];
- //we don't use direct initialization because it isn't part of the c standard.
-
+ //we don't use direct initialization because it isn't part of the c standard.
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) {
clif->message(fd, msg_txt(1013)); // Please enter a valid value (usage: @str/@agi/@vit/@int/@dex/@luk <+/-adjustment>).
return false;
}
-
+
ARR_FIND( 0, ARRAYLENGTH(param), i, strcmpi(info->command, param[i]) == 0 );
-
+
if( i == ARRAYLENGTH(param) || i > MAX_STATUS_TYPE) { // normally impossible...
clif->message(fd, msg_txt(1013)); // Please enter a valid value (usage: @str/@agi/@vit/@int/@dex/@luk <+/-adjustment>).
return false;
}
-
+
stats[0] = &sd->status.str;
stats[1] = &sd->status.agi;
stats[2] = &sd->status.vit;
stats[3] = &sd->status.int_;
stats[4] = &sd->status.dex;
stats[5] = &sd->status.luk;
-
+
if( battle_config.atcommand_max_stat_bypass )
max = SHRT_MAX;
else
max = pc_maxparameter(sd);
-
+
if(value < 0 && *stats[i] <= -value) {
new_value = 1;
} else if(max - *stats[i] < value) {
@@ -2373,7 +2371,7 @@ ACMD(param) {
} else {
new_value = *stats[i] + value;
}
-
+
if (new_value != *stats[i]) {
*stats[i] = new_value;
clif->updatestatus(sd, SP_STR + i);
@@ -2387,7 +2385,7 @@ ACMD(param) {
clif->message(fd, msg_txt(149)); // Unable to increase the number/value.
return false;
}
-
+
return true;
}
@@ -2397,15 +2395,15 @@ ACMD(param) {
ACMD(stat_all) {
int index, count, value, max, new_value;
short* stats[6];
- //we don't use direct initialization because it isn't part of the c standard.
-
+ //we don't use direct initialization because it isn't part of the c standard.
+
stats[0] = &sd->status.str;
stats[1] = &sd->status.agi;
stats[2] = &sd->status.vit;
stats[3] = &sd->status.int_;
stats[4] = &sd->status.dex;
stats[5] = &sd->status.luk;
-
+
if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) {
value = pc_maxparameter(sd);
max = pc_maxparameter(sd);
@@ -2415,17 +2413,16 @@ ACMD(stat_all) {
else
max = pc_maxparameter(sd);
}
-
+
count = 0;
for (index = 0; index < ARRAYLENGTH(stats); index++) {
-
if (value > 0 && *stats[index] > max - value)
new_value = max;
else if (value < 0 && *stats[index] <= -value)
new_value = 1;
else
new_value = *stats[index] +value;
-
+
if (new_value != (int)*stats[index]) {
*stats[index] = new_value;
clif->updatestatus(sd, SP_STR + index);
@@ -2433,7 +2430,7 @@ ACMD(stat_all) {
count++;
}
}
-
+
if (count > 0) { // if at least 1 stat modified
status_calc_pc(sd, SCO_FORCE);
clif->message(fd, msg_txt(84)); // All stats changed!
@@ -2444,7 +2441,7 @@ ACMD(stat_all) {
clif->message(fd, msg_txt(178)); // You cannot increase that stat anymore.
return false;
}
-
+
return true;
}
@@ -2455,12 +2452,12 @@ ACMD(guildlevelup) {
int level = 0;
int16 added_level;
struct guild *guild_info;
-
+
if (!message || !*message || sscanf(message, "%d", &level) < 1 || level == 0) {
clif->message(fd, msg_txt(1014)); // Please enter a valid level (usage: @guildlvup/@guildlvlup <# of levels>).
return false;
}
-
+
if (sd->status.guild_id <= 0 || (guild_info = sd->guild) == NULL) {
clif->message(fd, msg_txt(43)); // You're not in a guild.
return false;
@@ -2471,13 +2468,13 @@ ACMD(guildlevelup) {
return false;
}
#endif // 0
-
+
if (level > INT16_MAX || (level > 0 && level > MAX_GUILDLEVEL - guild_info->guild_lv)) // fix positive overflow
level = MAX_GUILDLEVEL - guild_info->guild_lv;
else if (level < INT16_MIN || (level < 0 && level < 1 - guild_info->guild_lv)) // fix negative overflow
level = 1 - guild_info->guild_lv;
added_level = (int16)level;
-
+
if (added_level != 0) {
intif->guild_change_basicinfo(guild_info->guild_id, GBI_GUILDLV, &added_level, sizeof(added_level));
clif->message(fd, msg_txt(179)); // Guild level changed.
@@ -2485,7 +2482,7 @@ ACMD(guildlevelup) {
clif->message(fd, msg_txt(45)); // Guild level change failed.
return false;
}
-
+
return true;
}
@@ -2496,12 +2493,12 @@ ACMD(makeegg)
{
struct item_data *item_data;
int id, pet_id;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1015)); // Please enter a monster/egg name/ID (usage: @makeegg <pet>).
return false;
}
-
+
if ((item_data = itemdb->search_name(message)) != NULL) // for egg name
id = item_data->nameid;
else
@@ -2509,7 +2506,7 @@ ACMD(makeegg)
;
else
id = atoi(message);
-
+
pet_id = pet->search_petDB_index(id, PET_CLASS);
if (pet_id < 0)
pet_id = pet->search_petDB_index(id, PET_EGG);
@@ -2524,7 +2521,7 @@ ACMD(makeegg)
clif->message(fd, msg_txt(180)); // The monster/egg name/id doesn't exist.
return false;
}
-
+
return true;
}
@@ -2539,7 +2536,7 @@ ACMD(hatch)
clif->message(fd, msg_txt(181)); // You already have a pet.
return false;
}
-
+
return true;
}
@@ -2550,29 +2547,29 @@ ACMD(petfriendly)
{
int friendly;
struct pet_data *pd;
-
+
if (!message || !*message || (friendly = atoi(message)) < 0) {
clif->message(fd, msg_txt(1016)); // Please enter a valid value (usage: @petfriendly <0-1000>).
return false;
}
-
+
pd = sd->pd;
if (!pd) {
clif->message(fd, msg_txt(184)); // Sorry, but you have no pet.
return false;
}
-
+
if (friendly < 0 || friendly > 1000)
{
clif->message(fd, msg_txt(37)); // An invalid number was specified.
return false;
}
-
+
if (friendly == pd->pet.intimate) {
clif->message(fd, msg_txt(183)); // Pet intimacy is already at maximum.
return false;
}
-
+
pet->set_intimate(pd, friendly);
clif->send_petstatus(sd);
clif->message(fd, msg_txt(182)); // Pet intimacy changed.
@@ -2586,12 +2583,12 @@ ACMD(pethungry)
{
int hungry;
struct pet_data *pd;
-
+
if (!message || !*message || (hungry = atoi(message)) < 0) {
clif->message(fd, msg_txt(1017)); // Please enter a valid number (usage: @pethungry <0-100>).
return false;
}
-
+
pd = sd->pd;
if (!sd->status.pet_id || !pd) {
clif->message(fd, msg_txt(184)); // Sorry, but you have no pet.
@@ -2605,11 +2602,11 @@ ACMD(pethungry)
clif->message(fd, msg_txt(186)); // Pet hunger is already at maximum.
return false;
}
-
+
pd->pet.hungry = hungry;
clif->send_petstatus(sd);
clif->message(fd, msg_txt(185)); // Pet hunger changed.
-
+
return true;
}
@@ -2628,12 +2625,12 @@ ACMD(petrename)
clif->message(fd, msg_txt(188)); // You can already rename your pet.
return false;
}
-
+
pd->pet.rename_flag = 0;
intif->save_petdata(sd->status.account_id, &pd->pet);
clif->send_petstatus(sd);
clif->message(fd, msg_txt(187)); // You can now rename your pet.
-
+
return true;
}
@@ -2642,24 +2639,23 @@ ACMD(petrename)
*------------------------------------------*/
ACMD(recall) {
struct map_session_data *pl_sd = NULL;
-
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1018)); // Please enter a player name (usage: @recall <char name/ID>).
return false;
}
-
+
if((pl_sd=map->nick2sd((char *)message)) == NULL && (pl_sd=map->charid2sd(atoi(message))) == NULL) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if ( pc_get_group_level(sd) < pc_get_group_level(pl_sd) )
{
clif->message(fd, msg_txt(81)); // Your GM level doesn't authorize you to preform this action on the specified player.
return false;
}
-
+
if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(1019)); // You are not authorized to warp someone to this map.
return false;
@@ -2674,7 +2670,7 @@ ACMD(recall) {
pc->setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN);
sprintf(atcmd_output, msg_txt(46), pl_sd->status.name); // %s recalled!
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -2684,17 +2680,17 @@ ACMD(recall) {
*------------------------------------------*/
ACMD(char_block)
{
-
+
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1021)); // Please enter a player name (usage: @block <char name>).
return false;
}
-
+
chrif->char_ask_name(sd->status.account_id, atcmd_player_name, 1, 0, 0, 0, 0, 0, 0); // type: 1 - block
clif->message(fd, msg_txt(88)); // Character name sent to char-server to ask it.
-
+
return true;
}
@@ -2719,17 +2715,17 @@ ACMD(char_ban)
int year, month, day, hour, minute, second, value;
time_t timestamp;
struct tm *tmtime;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%255s %23[^\n]", atcmd_output, atcmd_player_name) < 2) {
clif->message(fd, msg_txt(1022)); // Please enter ban time and a player name (usage: @ban <time> <char name>).
return false;
}
-
+
atcmd_output[sizeof(atcmd_output)-1] = '\0';
-
+
modif_p = atcmd_output;
year = month = day = hour = minute = second = 0;
while (modif_p[0] != '\0') {
@@ -2787,10 +2783,10 @@ ACMD(char_ban)
clif->message(fd,msg_txt(1023)); // You are not allowed to reduce the length of a ban.
return false;
}
-
+
chrif->char_ask_name(sd->status.account_id, atcmd_player_name, !strcmpi(info->command,"charban") ? 6 : 2, year, month, day, hour, minute, second); // type: 2 - ban; 6 - charban
clif->message(fd, msg_txt(88)); // Character name sent to char-server to ask it.
-
+
return true;
}
@@ -2799,18 +2795,17 @@ ACMD(char_ban)
*------------------------------------------*/
ACMD(char_unblock)
{
-
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1024)); // Please enter a player name (usage: @unblock <char name>).
return false;
}
-
+
// send answer to login server via char-server
chrif->char_ask_name(sd->status.account_id, atcmd_player_name, 3, 0, 0, 0, 0, 0, 0); // type: 3 - unblock
clif->message(fd, msg_txt(88)); // Character name sent to char-server to ask it.
-
+
return true;
}
@@ -2819,48 +2814,47 @@ ACMD(char_unblock)
*------------------------------------------*/
ACMD(char_unban)
{
-
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1025)); // Please enter a player name (usage: @unban <char name>).
return false;
}
-
+
// send answer to login server via char-server
chrif->char_ask_name(sd->status.account_id, atcmd_player_name, !strcmpi(info->command,"charunban") ? 7 : 4, 0, 0, 0, 0, 0, 0); // type: 4 - unban account; type 7 - unban character
clif->message(fd, msg_txt(88)); // Character name sent to char-server to ask it.
-
+
return true;
}
/*==========================================
*
*------------------------------------------*/
-ACMD(night) {
-
+ACMD(night)
+{
if (map->night_flag != 1) {
pc->map_night_timer(pc->night_timer_tid, 0, 0, 1);
} else {
clif->message(fd, msg_txt(89)); // Night mode is already enabled.
return false;
}
-
+
return true;
}
/*==========================================
*
*------------------------------------------*/
-ACMD(day) {
-
+ACMD(day)
+{
if (map->night_flag != 0) {
pc->map_day_timer(pc->day_timer_tid, 0, 0, 1);
} else {
clif->message(fd, msg_txt(90)); // Day mode is already enabled.
return false;
}
-
+
return true;
}
@@ -2871,7 +2865,7 @@ ACMD(doom)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
@@ -2883,9 +2877,9 @@ ACMD(doom)
}
}
mapit->free(iter);
-
+
clif->message(fd, msg_txt(62)); // Judgment was made.
-
+
return true;
}
@@ -2896,7 +2890,7 @@ ACMD(doommap)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
@@ -2908,19 +2902,19 @@ ACMD(doommap)
}
}
mapit->free(iter);
-
+
clif->message(fd, msg_txt(62)); // Judgment was made.
-
+
return true;
}
/*==========================================
*
*------------------------------------------*/
-void atcommand_raise_sub(struct map_session_data* sd) {
-
+void atcommand_raise_sub(struct map_session_data* sd)
+{
status->revive(&sd->bl, 100, 100);
-
+
clif->skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1);
clif->message(sd->fd, msg_txt(63)); // Mercy has been shown.
}
@@ -2932,15 +2926,15 @@ ACMD(raise)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
if( pc_isdead(pl_sd) )
atcommand->raise_sub(pl_sd);
mapit->free(iter);
-
+
clif->message(fd, msg_txt(64)); // Mercy has been granted.
-
+
return true;
}
@@ -2951,15 +2945,15 @@ ACMD(raisemap)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
if (sd->bl.m == pl_sd->bl.m && pc_isdead(pl_sd) )
atcommand->raise_sub(pl_sd);
mapit->free(iter);
-
+
clif->message(fd, msg_txt(64)); // Mercy has been granted.
-
+
return true;
}
@@ -2969,27 +2963,27 @@ ACMD(raisemap)
ACMD(kick)
{
struct map_session_data *pl_sd;
-
+
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1026)); // Please enter a player name (usage: @kick <char name/ID>).
return false;
}
-
+
if((pl_sd=map->nick2sd((char *)message)) == NULL && (pl_sd=map->charid2sd(atoi(message))) == NULL) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if ( pc_get_group_level(sd) < pc_get_group_level(pl_sd) )
{
clif->message(fd, msg_txt(81)); // Your GM level don't authorize you to do this action on this player.
return false;
}
-
+
clif->GM_kick(sd, pl_sd);
-
+
return true;
}
@@ -3000,7 +2994,7 @@ ACMD(kickall)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
@@ -3010,9 +3004,9 @@ ACMD(kickall)
}
}
mapit->free(iter);
-
+
clif->message(fd, msg_txt(195)); // All players have been kicked!
-
+
return true;
}
@@ -3025,7 +3019,7 @@ ACMD(allskill)
sd->status.skill_point = 0; // 0 skill points
clif->updatestatus(sd, SP_SKILLPOINT); // update
clif->message(fd, msg_txt(76)); // All skills have been added to your skill tree.
-
+
return true;
}
@@ -3035,21 +3029,21 @@ ACMD(allskill)
ACMD(questskill)
{
uint16 skill_id, index;
-
+
if (!message || !*message || (skill_id = atoi(message)) <= 0)
{// also send a list of skills applicable to this command
const char* text;
-
+
// attempt to find the text corresponding to this command
text = atcommand_help_string( info );
-
+
// send the error message as always
clif->message(fd, msg_txt(1027)); // Please enter a quest skill number.
-
+
if( text ) {// send the skill ID list associated with this command
clif->messageln( fd, text );
}
-
+
return false;
}
if( !(index = skill->get_index(skill_id)) ) {
@@ -3064,10 +3058,10 @@ ACMD(questskill)
clif->message(fd, msg_txt(196)); // You already have this quest skill.
return false;
}
-
+
pc->skill(sd, skill_id, 1, 0);
clif->message(fd, msg_txt(70)); // You have learned the skill.
-
+
return true;
}
@@ -3077,21 +3071,21 @@ ACMD(questskill)
ACMD(lostskill)
{
uint16 skill_id, index;
-
+
if (!message || !*message || (skill_id = atoi(message)) <= 0)
{// also send a list of skills applicable to this command
const char* text;
-
+
// attempt to find the text corresponding to this command
text = atcommand_help_string( info );
-
+
// send the error message as always
clif->message(fd, msg_txt(1027)); // Please enter a quest skill number.
-
+
if( text ) {// send the skill ID list associated with this command
clif->messageln( fd, text );
}
-
+
return false;
}
if ( !( index = skill->get_index(skill_id) ) ) {
@@ -3106,12 +3100,12 @@ ACMD(lostskill)
clif->message(fd, msg_txt(201)); // You don't have this quest skill.
return false;
}
-
+
sd->status.skill[index].lv = 0;
sd->status.skill[index].flag = 0;
clif->deleteskill(sd,skill_id);
clif->message(fd, msg_txt(71)); // You have forgotten the skill.
-
+
return true;
}
@@ -3122,9 +3116,9 @@ ACMD(spiritball)
{
int max_spiritballs;
int number;
-
+
max_spiritballs = min(ARRAYLENGTH(sd->spirit_timer), 0x7FFF);
-
+
if( !message || !*message || (number = atoi(message)) < 0 || number > max_spiritballs )
{
char msg[CHAT_SIZE_MAX];
@@ -3132,13 +3126,13 @@ ACMD(spiritball)
clif->message(fd, msg);
return false;
}
-
+
if( sd->spiritball > 0 )
pc->delspiritball(sd, sd->spiritball, 1);
sd->spiritball = number;
clif->spiritball(&sd->bl);
// no message, player can look the difference
-
+
return true;
}
@@ -3148,16 +3142,16 @@ ACMD(spiritball)
ACMD(party)
{
char party_name[NAME_LENGTH];
-
+
memset(party_name, '\0', sizeof(party_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", party_name) < 1) {
clif->message(fd, msg_txt(1029)); // Please enter a party name (usage: @party <party_name>).
return false;
}
-
+
party->create(sd, party_name, 0, 0);
-
+
return true;
}
@@ -3168,25 +3162,24 @@ ACMD(guild)
{
char guild_name[NAME_LENGTH];
int prev;
-
+
memset(guild_name, '\0', sizeof(guild_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", guild_name) < 1) {
clif->message(fd, msg_txt(1030)); // Please enter a guild name (usage: @guild <guild_name>).
return false;
}
-
+
prev = battle_config.guild_emperium_check;
battle_config.guild_emperium_check = 0;
guild->create(sd, guild_name);
battle_config.guild_emperium_check = prev;
-
+
return true;
}
ACMD(breakguild)
{
-
if (sd->status.guild_id) { // Check if the player has a guild
struct guild *g;
g = sd->guild; // Search the guild
@@ -3222,11 +3215,11 @@ ACMD(agitstart) {
clif->message(fd, msg_txt(73)); // War of Emperium is currently in progress.
return false;
}
-
+
map->agit_flag = 1;
guild->agit_start();
clif->message(fd, msg_txt(72)); // War of Emperium has been initiated.
-
+
return true;
}
@@ -3238,11 +3231,11 @@ ACMD(agitstart2) {
clif->message(fd, msg_txt(404)); // "War of Emperium SE is currently in progress."
return false;
}
-
+
map->agit2_flag = 1;
guild->agit2_start();
clif->message(fd, msg_txt(403)); // "War of Emperium SE has been initiated."
-
+
return true;
}
@@ -3254,11 +3247,11 @@ ACMD(agitend) {
clif->message(fd, msg_txt(75)); // War of Emperium is currently not in progress.
return false;
}
-
+
map->agit_flag = 0;
guild->agit_end();
clif->message(fd, msg_txt(74)); // War of Emperium has been ended.
-
+
return true;
}
@@ -3270,11 +3263,11 @@ ACMD(agitend2) {
clif->message(fd, msg_txt(406)); // "War of Emperium SE is currently not in progress."
return false;
}
-
+
map->agit2_flag = 0;
guild->agit2_end();
clif->message(fd, msg_txt(405)); // "War of Emperium SE has been ended."
-
+
return true;
}
@@ -3294,15 +3287,15 @@ ACMD(idsearch)
char item_name[100];
unsigned int i, match;
struct item_data *item_array[MAX_SEARCH];
-
+
memset(item_name, '\0', sizeof(item_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%99s", item_name) < 0) {
clif->message(fd, msg_txt(1031)); // Please enter part of an item name (usage: @idsearch <part_of_item_name>).
return false;
}
-
+
sprintf(atcmd_output, msg_txt(77), item_name); // Search results for '%s' (name: id):
clif->message(fd, atcmd_output);
match = itemdb->search_name_array(item_array, MAX_SEARCH, item_name, 0);
@@ -3317,7 +3310,7 @@ ACMD(idsearch)
}
sprintf(atcmd_output, msg_txt(79), match); // %d results found.
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -3329,14 +3322,14 @@ ACMD(recallall)
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
int count;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(1032)); // You are not authorized to warp someone to your current map.
return false;
}
-
+
count = 0;
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) ) {
@@ -3355,13 +3348,13 @@ ACMD(recallall)
}
}
mapit->free(iter);
-
+
clif->message(fd, msg_txt(92)); // All characters recalled!
if (count) {
sprintf(atcmd_output, msg_txt(1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled.
clif->message(fd, atcmd_output);
}
-
+
return true;
}
@@ -3375,29 +3368,29 @@ ACMD(guildrecall)
int count;
char guild_name[NAME_LENGTH];
struct guild *g;
-
+
memset(guild_name, '\0', sizeof(guild_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", guild_name) < 1) {
clif->message(fd, msg_txt(1034)); // Please enter a guild name/ID (usage: @guildrecall <guild_name/ID>).
return false;
}
-
+
if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(1032)); // You are not authorized to warp someone to your current map.
return false;
}
-
+
if ((g = guild->searchname(guild_name)) == NULL && // name first to avoid error when name begin with a number
(g = guild->search(atoi(message))) == NULL)
{
clif->message(fd, msg_txt(94)); // Incorrect name/ID, or no one from the guild is online.
return false;
}
-
+
count = 0;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
@@ -3411,14 +3404,14 @@ ACMD(guildrecall)
}
}
mapit->free(iter);
-
+
sprintf(atcmd_output, msg_txt(93), g->name); // All online characters of the %s guild have been recalled to your position.
clif->message(fd, atcmd_output);
if (count) {
sprintf(atcmd_output, msg_txt(1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled.
clif->message(fd, atcmd_output);
}
-
+
return true;
}
@@ -3432,29 +3425,29 @@ ACMD(partyrecall)
char party_name[NAME_LENGTH];
struct party_data *p;
int count;
-
+
memset(party_name, '\0', sizeof(party_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", party_name) < 1) {
clif->message(fd, msg_txt(1035)); // Please enter a party name/ID (usage: @partyrecall <party_name/ID>).
return false;
}
-
+
if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) {
clif->message(fd, msg_txt(1032)); // You are not authorized to warp someone to your current map.
return false;
}
-
+
if ((p = party->searchname(party_name)) == NULL && // name first to avoid error when name begin with a number
(p = party->search(atoi(message))) == NULL)
{
clif->message(fd, msg_txt(96)); // Incorrect name or ID, or no one from the party is online.
return false;
}
-
+
count = 0;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) ) {
if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.party_id == p->party.party_id) {
@@ -3467,14 +3460,14 @@ ACMD(partyrecall)
}
}
mapit->free(iter);
-
+
sprintf(atcmd_output, msg_txt(95), p->party.name); // All online characters of the %s party have been recalled to your position.
clif->message(fd, atcmd_output);
if (count) {
sprintf(atcmd_output, msg_txt(1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled.
clif->message(fd, atcmd_output);
}
-
+
return true;
}
@@ -3485,7 +3478,7 @@ ACMD(reloaditemdb)
{
itemdb->reload();
clif->message(fd, msg_txt(97)); // Item database has been reloaded.
-
+
return true;
}
@@ -3500,7 +3493,7 @@ ACMD(reloadmobdb) {
mercenary->read_skilldb();
elemental->reload_db();
clif->message(fd, msg_txt(98)); // Monster database has been reloaded.
-
+
return true;
}
@@ -3514,7 +3507,7 @@ ACMD(reloadskilldb)
elemental->reload_skilldb();
mercenary->read_skilldb();
clif->message(fd, msg_txt(99)); // Skill database has been reloaded.
-
+
return true;
}
@@ -3523,21 +3516,21 @@ ACMD(reloadskilldb)
*------------------------------------------*/
ACMD(reloadatcommand) {
config_t run_test;
-
+
if (libconfig->read_file(&run_test, "conf/groups.conf")) {
clif->message(fd, msg_txt(1036)); // Error reading groups.conf, reload failed.
return false;
}
-
+
libconfig->destroy(&run_test);
-
+
if (libconfig->read_file(&run_test, map->ATCOMMAND_CONF_FILENAME)) {
clif->message(fd, msg_txt(1037)); // Error reading atcommand.conf, reload failed.
return false;
}
-
+
libconfig->destroy(&run_test);
-
+
atcommand->doload();
pcg->reload();
clif->message(fd, msg_txt(254));
@@ -3550,9 +3543,9 @@ ACMD(reloadbattleconf)
{
struct Battle_Config prev_config;
memcpy(&prev_config, &battle_config, sizeof(prev_config));
-
+
battle->config_read(map->BATTLE_CONF_FILENAME);
-
+
if( prev_config.item_rate_mvp != battle_config.item_rate_mvp
|| prev_config.item_rate_common != battle_config.item_rate_common
|| prev_config.item_rate_common_boss != battle_config.item_rate_common_boss
@@ -3583,8 +3576,7 @@ ACMD(reloadbattleconf)
|| prev_config.item_drop_treasure_max != battle_config.item_drop_treasure_max
|| prev_config.base_exp_rate != battle_config.base_exp_rate
|| prev_config.job_exp_rate != battle_config.job_exp_rate
- )
- { // Exp or Drop rates changed.
+ ) { // Exp or Drop rates changed.
mob->reload(); //Needed as well so rate changes take effect.
chrif->ragsrvinfo(battle_config.base_exp_rate, battle_config.job_exp_rate, battle_config.item_rate_common);
}
@@ -3618,7 +3610,7 @@ ACMD(reloadscript) {
//atcommand_broadcast( fd, sd, "@broadcast", "Server is reloading scripts..." );
//atcommand_broadcast( fd, sd, "@broadcast", "You will feel a bit of lag at this point !" );
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) ) {
if (pl_sd->npc_id || pl_sd->npc_shopid) {
@@ -3638,14 +3630,14 @@ ACMD(reloadscript) {
}
}
mapit->free(iter);
-
+
flush_fifos();
map->reloadnpc(true, NULL, 0); // reload config files seeking for npcs
script->reload();
npc->reload();
-
+
clif->message(fd, msg_txt(100)); // Scripts have been reloaded.
-
+
return true;
}
@@ -3667,33 +3659,33 @@ ACMD(mapinfo) {
int i, m_id, chat_num = 0, list = 0, vend_num = 0;
unsigned short m_index;
char mapname[24];
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
memset(mapname, '\0', sizeof(mapname));
memset(direction, '\0', sizeof(direction));
-
+
sscanf(message, "%d %23[^\n]", &list, mapname);
-
+
if (list < 0 || list > 3) {
clif->message(fd, msg_txt(1038)); // Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
return false;
}
-
+
if (mapname[0] == '\0') {
safestrncpy(mapname, mapindex_id2name(sd->mapindex), MAP_NAME_LENGTH);
m_id = map->mapindex2mapid(sd->mapindex);
} else {
m_id = map->mapname2mapid(mapname);
}
-
+
if (m_id < 0) {
clif->message(fd, msg_txt(1)); // Map not found.
return false;
}
m_index = mapindex->name2id(mapname); //This one shouldn't fail since the previous seek did not.
-
+
clif->message(fd, msg_txt(1039)); // ------ Map Info ------
-
+
// count chats (for initial message)
chat_num = 0;
iter = mapit_getallusers();
@@ -3706,21 +3698,21 @@ ACMD(mapinfo) {
}
}
mapit->free(iter);
-
+
sprintf(atcmd_output, msg_txt(1040), mapname, map->list[m_id].zone->name, map->list[m_id].users, map->list[m_id].npc_num, chat_num, vend_num); // Map: %s (Zone:%s) | Players: %d | NPCs: %d | Chats: %d | Vendings: %d
clif->message(fd, atcmd_output);
clif->message(fd, msg_txt(1041)); // ------ Map Flags ------
if (map->list[m_id].flag.town)
clif->message(fd, msg_txt(1042)); // Town Map
-
+
if (battle_config.autotrade_mapflag == map->list[m_id].flag.autotrade)
clif->message(fd, msg_txt(1043)); // Autotrade Enabled
else
clif->message(fd, msg_txt(1044)); // Autotrade Disabled
-
+
if (map->list[m_id].flag.battleground)
clif->message(fd, msg_txt(1045)); // Battlegrounds ON
-
+
strcpy(atcmd_output,msg_txt(1046)); // PvP Flags:
if (map->list[m_id].flag.pvp)
strcat(atcmd_output, msg_txt(1047)); // Pvp ON |
@@ -3733,7 +3725,7 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.pvp_nocalcrank)
strcat(atcmd_output, msg_txt(1051)); // NoCalcRank |
clif->message(fd, atcmd_output);
-
+
strcpy(atcmd_output,msg_txt(1052)); // GvG Flags:
if (map->list[m_id].flag.gvg)
strcat(atcmd_output, msg_txt(1053)); // GvG ON |
@@ -3744,7 +3736,7 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.gvg_noparty)
strcat(atcmd_output, msg_txt(1056)); // NoParty |
clif->message(fd, atcmd_output);
-
+
strcpy(atcmd_output,msg_txt(1057)); // Teleport Flags:
if (map->list[m_id].flag.noteleport)
strcat(atcmd_output, msg_txt(1058)); // NoTeleport |
@@ -3759,12 +3751,12 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.nomemo)
strcat(atcmd_output, msg_txt(1064)); // NoMemo |
clif->message(fd, atcmd_output);
-
+
sprintf(atcmd_output, msg_txt(1065), // No Exp Penalty: %s | No Zeny Penalty: %s
(map->list[m_id].flag.noexppenalty) ? msg_txt(1066) : msg_txt(1067),
(map->list[m_id].flag.nozenypenalty) ? msg_txt(1066) : msg_txt(1067)); // On / Off
clif->message(fd, atcmd_output);
-
+
if (map->list[m_id].flag.nosave) {
if (!map->list[m_id].save.map)
clif->message(fd, msg_txt(1068)); // No Save (Return to last Save Point)
@@ -3777,7 +3769,7 @@ ACMD(mapinfo) {
clif->message(fd, atcmd_output);
}
}
-
+
strcpy(atcmd_output,msg_txt(1071)); // Weather Flags:
if (map->list[m_id].flag.snow)
strcat(atcmd_output, msg_txt(1072)); // Snow |
@@ -3796,7 +3788,7 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.nightenabled)
strcat(atcmd_output, msg_txt(1080)); // Displays Night |
clif->message(fd, atcmd_output);
-
+
strcpy(atcmd_output,msg_txt(1081)); // Other Flags:
if (map->list[m_id].flag.nobranch)
strcat(atcmd_output, msg_txt(1082)); // NoBranch |
@@ -3815,7 +3807,7 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.reset)
strcat(atcmd_output, msg_txt(1089)); // Reset |
clif->message(fd, atcmd_output);
-
+
strcpy(atcmd_output,msg_txt(1090)); // Other Flags:
if (map->list[m_id].nocommand)
strcat(atcmd_output, msg_txt(1091)); // NoCommand |
@@ -3832,7 +3824,7 @@ ACMD(mapinfo) {
if (map->list[m_id].flag.guildlock)
strcat(atcmd_output, msg_txt(1097)); // GuildLock |
clif->message(fd, atcmd_output);
-
+
switch (list) {
case 0:
// Do nothing. It's list 0, no additional display.
@@ -3881,8 +3873,8 @@ ACMD(mapinfo) {
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
{
if ((cd = (struct chat_data*)map->id2bl(pl_sd->chatID)) != NULL &&
- pl_sd->mapindex == m_index &&
- cd->usersd[0] == pl_sd)
+ pl_sd->mapindex == m_index &&
+ cd->usersd[0] == pl_sd)
{
sprintf(atcmd_output, msg_txt(1114), // Chat: %s | Player: %s | Location: %d %d
cd->title, pl_sd->status.name, cd->bl.x, cd->bl.y);
@@ -3898,7 +3890,7 @@ ACMD(mapinfo) {
clif->message(fd, msg_txt(1118)); // Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
return false;
}
-
+
return true;
}
@@ -3911,24 +3903,24 @@ ACMD(mount_peco)
clif->message(fd, msg_txt(212)); // Cannot mount while in disguise.
return false;
}
-
+
if( sd->sc.data[SC_ALL_RIDING] ) {
clif->message(fd, msg_txt(1476)); // You are already mounting something else
return false;
}
-
+
if( (sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT ) {
if( !pc->checkskill(sd,RK_DRAGONTRAINING) ) {
sprintf(atcmd_output, msg_txt(213), skill->get_desc(RK_DRAGONTRAINING)); // You need %s to mount!
clif->message(fd, atcmd_output);
return false;
}
- if( !(sd->sc.option&OPTION_DRAGON1) ) {
+ if (!pc_isridingdragon(sd)) {
clif->message(sd->fd,msg_txt(1119)); // You have mounted your Dragon.
- pc->setoption(sd, sd->sc.option|OPTION_DRAGON1);
+ pc->setridingdragon(sd, OPTION_DRAGON1);
} else {
clif->message(sd->fd,msg_txt(1120)); // You have released your Dragon.
- pc->setoption(sd, sd->sc.option&~OPTION_DRAGON1);
+ pc->setridingdragon(sd, 0);
}
return true;
}
@@ -3940,34 +3932,34 @@ ACMD(mount_peco)
}
if( !pc_isridingwug(sd) ) {
clif->message(sd->fd,msg_txt(1121)); // You have mounted your Warg.
- pc->setoption(sd, sd->sc.option|OPTION_WUGRIDER);
+ pc->setridingwug(sd, true);
} else {
clif->message(sd->fd,msg_txt(1122)); // You have released your Warg.
- pc->setoption(sd, sd->sc.option&~OPTION_WUGRIDER);
+ pc->setridingwug(sd, false);
}
return true;
}
if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {
if( !pc_ismadogear(sd) ) {
clif->message(sd->fd,msg_txt(1123)); // You have mounted your Mado Gear.
- pc->setoption(sd, sd->sc.option|OPTION_MADOGEAR);
+ pc->setmadogear(sd, true);
} else {
clif->message(sd->fd,msg_txt(1124)); // You have released your Mado Gear.
- pc->setoption(sd, sd->sc.option&~OPTION_MADOGEAR);
+ pc->setmadogear(sd, false);
}
return true;
}
if( sd->class_&MAPID_SWORDMAN && sd->class_&JOBL_2 ) {
- if( !pc_isriding(sd) ) { // if actually no peco
+ if (!pc_isridingpeco(sd)) { // if actually no peco
if (!pc->checkskill(sd, KN_RIDING)) {
sprintf(atcmd_output, msg_txt(213), skill->get_desc(KN_RIDING)); // You need %s to mount!
clif->message(fd, atcmd_output);
return false;
}
- pc->setoption(sd, sd->sc.option | OPTION_RIDING);
+ pc->setridingpeco(sd, true);
clif->message(fd, msg_txt(102)); // You have mounted a Peco Peco.
} else {//Dismount
- pc->setoption(sd, sd->sc.option & ~OPTION_RIDING);
+ pc->setridingpeco(sd, false);
clif->message(fd, msg_txt(214)); // You have released your Peco Peco.
}
return true;
@@ -3982,10 +3974,10 @@ ACMD(mount_peco)
ACMD(guildspy) {
char guild_name[NAME_LENGTH];
struct guild *g;
-
+
memset(guild_name, '\0', sizeof(guild_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!map->enable_spy)
{
clif->message(fd, msg_txt(1125)); // The mapserver has spy command support disabled.
@@ -3995,7 +3987,7 @@ ACMD(guildspy) {
clif->message(fd, msg_txt(1126)); // Please enter a guild name/ID (usage: @guildspy <guild_name/ID>).
return false;
}
-
+
if ((g = guild->searchname(guild_name)) != NULL || // name first to avoid error when name begin with a number
(g = guild->search(atoi(message))) != NULL) {
if (sd->guildspy == g->guild_id) {
@@ -4011,7 +4003,7 @@ ACMD(guildspy) {
clif->message(fd, msg_txt(94)); // Incorrect name/ID, or no one from the specified guild is online.
return false;
}
-
+
return true;
}
@@ -4021,21 +4013,21 @@ ACMD(guildspy) {
ACMD(partyspy) {
char party_name[NAME_LENGTH];
struct party_data *p;
-
+
memset(party_name, '\0', sizeof(party_name));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!map->enable_spy)
{
clif->message(fd, msg_txt(1125)); // The mapserver has spy command support disabled.
return false;
}
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", party_name) < 1) {
clif->message(fd, msg_txt(1127)); // Please enter a party name/ID (usage: @partyspy <party_name/ID>).
return false;
}
-
+
if ((p = party->searchname(party_name)) != NULL || // name first to avoid error when name begin with a number
(p = party->search(atoi(message))) != NULL) {
if (sd->partyspy == p->party.party_id) {
@@ -4051,7 +4043,7 @@ ACMD(partyspy) {
clif->message(fd, msg_txt(96)); // Incorrect name/ID, or no one from the specified party is online.
return false;
}
-
+
return true;
}
@@ -4061,7 +4053,7 @@ ACMD(partyspy) {
ACMD(repairall)
{
int count, i;
-
+
count = 0;
for (i = 0; i < MAX_INVENTORY; i++) {
if (sd->status.inventory[i].nameid && sd->status.inventory[i].attribute == 1) {
@@ -4070,7 +4062,7 @@ ACMD(repairall)
count++;
}
}
-
+
if (count > 0) {
clif->misceffect(&sd->bl, 3);
clif->equiplist(sd);
@@ -4079,7 +4071,7 @@ ACMD(repairall)
clif->message(fd, msg_txt(108)); // No item need to be repaired.
return false;
}
-
+
return true;
}
@@ -4088,14 +4080,14 @@ ACMD(repairall)
*------------------------------------------*/
ACMD(nuke) {
struct map_session_data *pl_sd;
-
+
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1128)); // Please enter a player name (usage: @nuke <char name>).
return false;
}
-
+
if ((pl_sd = map->nick2sd(atcmd_player_name)) != NULL) {
if (pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { // you can kill only lower or same GM level
skill->castend_nodamage_id(&pl_sd->bl, &pl_sd->bl, NPC_SELFDESTRUCTION, 99, timer->gettick(), 0);
@@ -4108,7 +4100,7 @@ ACMD(nuke) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
return true;
}
@@ -4118,14 +4110,14 @@ ACMD(nuke) {
ACMD(tonpc) {
char npcname[NAME_LENGTH+1];
struct npc_data *nd;
-
+
memset(npcname, 0, sizeof(npcname));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", npcname) < 1) {
clif->message(fd, msg_txt(1129)); // Please enter a NPC name (usage: @tonpc <NPC_name>).
return false;
}
-
+
if ((nd = npc->name2id(npcname)) != NULL) {
if (nd->bl.m != -1 && pc->setpos(sd, map_id2index(nd->bl.m), nd->bl.x, nd->bl.y, CLR_TELEPORT) == 0)
clif->message(fd, msg_txt(0)); // Warped.
@@ -4135,7 +4127,7 @@ ACMD(tonpc) {
clif->message(fd, msg_txt(111)); // This NPC doesn't exist.
return false;
}
-
+
return true;
}
@@ -4145,14 +4137,14 @@ ACMD(tonpc) {
ACMD(shownpc)
{
char NPCname[NAME_LENGTH+1];
-
+
memset(NPCname, '\0', sizeof(NPCname));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", NPCname) < 1) {
clif->message(fd, msg_txt(1130)); // Please enter a NPC name (usage: @enablenpc <NPC_name>).
return false;
}
-
+
if (npc->name2id(NPCname) != NULL) {
npc->enable(NPCname, 1);
clif->message(fd, msg_txt(110)); // Npc Enabled.
@@ -4160,7 +4152,7 @@ ACMD(shownpc)
clif->message(fd, msg_txt(111)); // This NPC doesn't exist.
return false;
}
-
+
return true;
}
@@ -4170,19 +4162,19 @@ ACMD(shownpc)
ACMD(hidenpc)
{
char NPCname[NAME_LENGTH+1];
-
+
memset(NPCname, '\0', sizeof(NPCname));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", NPCname) < 1) {
clif->message(fd, msg_txt(1131)); // Please enter a NPC name (usage: @hidenpc <NPC_name>).
return false;
}
-
+
if (npc->name2id(NPCname) == NULL) {
clif->message(fd, msg_txt(111)); // This NPC doesn't exist.
return false;
}
-
+
npc->enable(NPCname, 0);
clif->message(fd, msg_txt(112)); // Npc Disabled.
return true;
@@ -4191,26 +4183,26 @@ ACMD(hidenpc)
ACMD(loadnpc)
{
FILE *fp;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1132)); // Please enter a script file name (usage: @loadnpc <file name>).
return false;
}
-
+
// check if script file exists
if ((fp = fopen(message, "r")) == NULL) {
clif->message(fd, msg_txt(261));
return false;
}
fclose(fp);
-
+
// add to list of script sources and run it
npc->addsrcfile(message);
npc->parsesrcfile(message,true);
npc->read_event_script();
-
+
clif->message(fd, msg_txt(262));
-
+
return true;
}
@@ -4218,19 +4210,19 @@ ACMD(unloadnpc)
{
struct npc_data *nd;
char NPCname[NAME_LENGTH+1];
-
+
memset(NPCname, '\0', sizeof(NPCname));
-
+
if (!message || !*message || sscanf(message, "%24[^\n]", NPCname) < 1) {
clif->message(fd, msg_txt(1133)); // Please enter a NPC name (usage: @npcoff <NPC_name>).
return false;
}
-
+
if ((nd = npc->name2id(NPCname)) == NULL) {
clif->message(fd, msg_txt(111)); // This NPC doesn't exist.
return false;
}
-
+
npc->unload_duplicates(nd);
npc->unload(nd,true);
npc->read_event_script();
@@ -4246,16 +4238,16 @@ char* txt_time(unsigned int duration)
int days, hours, minutes, seconds;
static char temp1[CHAT_SIZE_MAX];
int tlen = 0;
-
+
memset(temp1, '\0', sizeof(temp1));
-
+
days = duration / (60 * 60 * 24);
duration = duration - (60 * 60 * 24 * days);
hours = duration / (60 * 60);
duration = duration - (60 * 60 * hours);
minutes = duration / 60;
seconds = duration - (60 * minutes);
-
+
if (days == 1)
tlen += sprintf(tlen + temp1, msg_txt(219), days); // %d day
else if (days > 1)
@@ -4272,7 +4264,7 @@ char* txt_time(unsigned int duration)
sprintf(tlen + temp1, msg_txt(225), seconds); // and %d second
else if (seconds > 1)
sprintf(tlen + temp1, msg_txt(226), seconds); // and %d seconds
-
+
return temp1;
}
@@ -4284,19 +4276,19 @@ ACMD(servertime) {
time_t time_server; // variable for number of seconds (used with time() function)
struct tm *datetime; // variable for time in structure ->tm_mday, ->tm_sec, ...
char temp[CHAT_SIZE_MAX];
-
+
memset(temp, '\0', sizeof(temp));
-
+
time(&time_server); // get time in seconds since 1/1/1970
datetime = localtime(&time_server); // convert seconds in structure
// like sprintf, but only for date/time (Sunday, November 02 2003 15:12:52)
strftime(temp, sizeof(temp)-1, msg_txt(230), datetime); // Server time (normal time): %A, %B %d %Y %X.
clif->message(fd, temp);
-
+
if (pc->day_timer_tid != INVALID_TIMER && pc->night_timer_tid != INVALID_TIMER) {
const struct TimerData * timer_data = timer->get(pc->night_timer_tid);
const struct TimerData * timer_data2 = timer->get(pc->day_timer_tid);
-
+
if (map->night_flag == 0) {
sprintf(temp, msg_txt(235), // Game time: The game is actually in daylight for %s.
txt_time((unsigned int)(DIFF_TICK(timer_data->tick,timer->gettick())/1000)));
@@ -4328,7 +4320,7 @@ ACMD(servertime) {
else
clif->message(fd, msg_txt(232)); // Game time: The game is in permanent night.
}
-
+
return true;
}
@@ -4341,7 +4333,7 @@ void get_jail_time(int jailtime, int* year, int* month, int* day, int* hour, int
const int factor_month = 43200; //30*24*60 = 43200
const int factor_day = 1440; //24*60 = 1440
const int factor_hour = 60;
-
+
*year = jailtime/factor_year;
jailtime -= *year*factor_year;
*month = jailtime/factor_month;
@@ -4351,7 +4343,7 @@ void get_jail_time(int jailtime, int* year, int* month, int* day, int* hour, int
*hour = jailtime/factor_hour;
jailtime -= *hour*factor_hour;
*minute = jailtime;
-
+
*year = *year > 0? *year : 0;
*month = *month > 0? *month : 0;
*day = *day > 0? *day : 0;
@@ -4368,31 +4360,31 @@ ACMD(jail) {
struct map_session_data *pl_sd;
int x, y;
unsigned short m_index;
-
+
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1134)); // Please enter a player name (usage: @jail <char_name>).
return false;
}
-
+
if ((pl_sd = map->nick2sd(atcmd_player_name)) == NULL) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
- if (pc_get_group_level(sd) < pc_get_group_level(pl_sd))
- { // you can jail only lower or same GM
+
+ if (pc_get_group_level(sd) < pc_get_group_level(pl_sd)) {
+ // you can jail only lower or same GM
clif->message(fd, msg_txt(81)); // Your GM level don't authorize you to do this action on this player.
return false;
}
-
+
if (pl_sd->sc.data[SC_JAILED])
{
clif->message(fd, msg_txt(118)); // Player warped in jails.
return false;
}
-
+
switch(rnd() % 2) { //Jail Locations
case 0:
m_index = mapindex->name2id(MAP_JAIL);
@@ -4405,7 +4397,7 @@ ACMD(jail) {
y = 75;
break;
}
-
+
//Duration of INT_MAX to specify infinity.
sc_start4(NULL,&pl_sd->bl,SC_JAILED,100,INT_MAX,m_index,x,y,1000);
clif->message(pl_sd->fd, msg_txt(117)); // You have been jailed by a GM.
@@ -4419,31 +4411,31 @@ ACMD(jail) {
*------------------------------------------*/
ACMD(unjail) {
struct map_session_data *pl_sd;
-
+
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
-
+
if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1135)); // Please enter a player name (usage: @unjail/@discharge <char_name>).
return false;
}
-
+
if ((pl_sd = map->nick2sd(atcmd_player_name)) == NULL) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if (pc_get_group_level(sd) < pc_get_group_level(pl_sd)) { // you can jail only lower or same GM
-
+
clif->message(fd, msg_txt(81)); // Your GM level don't authorize you to do this action on this player.
return false;
}
-
+
if (!pl_sd->sc.data[SC_JAILED])
{
clif->message(fd, msg_txt(119)); // This player is not in jails.
return false;
}
-
+
//Reset jail time to 1 sec.
sc_start(NULL,&pl_sd->bl,SC_JAILED,100,1,1000);
clif->message(pl_sd->fd, msg_txt(120)); // A GM has discharged you from jail.
@@ -4457,14 +4449,14 @@ ACMD(jailfor) {
char * modif_p;
int jailtime = 0,x,y;
short m_index = 0;
-
+
if (!message || !*message || sscanf(message, "%255s %23[^\n]",atcmd_output,atcmd_player_name) < 2) {
- clif->message(fd, msg_txt(400)); //Usage: @jailfor <time> <character name>
+ clif->message(fd, msg_txt(400)); //Usage: @jailfor <time> <character name>
return false;
}
-
+
atcmd_output[sizeof(atcmd_output)-1] = '\0';
-
+
modif_p = atcmd_output;
year = month = day = hour = minute = 0;
while (modif_p[0] != '\0') {
@@ -4499,33 +4491,32 @@ ACMD(jailfor) {
}
}
}
-
+
if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0) {
clif->message(fd, msg_txt(1136)); // Invalid time for jail command.
return false;
}
-
+
if ((pl_sd = map->nick2sd(atcmd_player_name)) == NULL) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if (pc_get_group_level(pl_sd) > pc_get_group_level(sd)) {
clif->message(fd, msg_txt(81)); // Your GM level don't authorize you to do this action on this player.
return false;
}
-
- jailtime = year*12*30*24*60 + month*30*24*60 + day*24*60 + hour*60 + minute; //In minutes
-
+
+ jailtime = year*12*30*24*60 + month*30*24*60 + day*24*60 + hour*60 + minute; //In minutes
+
if(jailtime==0) {
clif->message(fd, msg_txt(1136)); // Invalid time for jail command.
return false;
}
-
+
//Added by Coltaro
- if(pl_sd->sc.data[SC_JAILED] &&
- pl_sd->sc.data[SC_JAILED]->val1 != INT_MAX)
- { //Update the player's jail time
+ if (pl_sd->sc.data[SC_JAILED] && pl_sd->sc.data[SC_JAILED]->val1 != INT_MAX) {
+ //Update the player's jail time
jailtime += pl_sd->sc.data[SC_JAILED]->val1;
if (jailtime <= 0) {
jailtime = 0;
@@ -4534,15 +4525,15 @@ ACMD(jailfor) {
} else {
atcommand->get_jail_time(jailtime,&year,&month,&day,&hour,&minute);
sprintf(atcmd_output,msg_txt(402),msg_txt(1137),year,month,day,hour,minute); //%s in jail for %d years, %d months, %d days, %d hours and %d minutes
- clif->message(pl_sd->fd, atcmd_output);
+ clif->message(pl_sd->fd, atcmd_output);
sprintf(atcmd_output,msg_txt(402),msg_txt(1138),year,month,day,hour,minute); //This player is now in jail for %d years, %d months, %d days, %d hours and %d minutes
- clif->message(fd, atcmd_output);
+ clif->message(fd, atcmd_output);
}
} else if (jailtime < 0) {
clif->message(fd, msg_txt(1136));
return false;
}
-
+
//Jail locations, add more as you wish.
switch(rnd()%2)
{
@@ -4555,7 +4546,7 @@ ACMD(jailfor) {
x = 24; y = 75;
break;
}
-
+
sc_start4(NULL,&pl_sd->bl,SC_JAILED,100,jailtime,m_index,x,y,jailtime?60000:1000); //jailtime = 0: Time was reset to 0. Wait 1 second to warp player out (since it's done in status->change_timer).
return true;
}
@@ -4565,28 +4556,28 @@ ACMD(jailfor) {
ACMD(jailtime)
{
int year, month, day, hour, minute;
-
+
if (!sd->sc.data[SC_JAILED]) {
clif->message(fd, msg_txt(1139)); // You are not in jail.
return false;
}
-
+
if (sd->sc.data[SC_JAILED]->val1 == INT_MAX) {
clif->message(fd, msg_txt(1140)); // You have been jailed indefinitely.
return true;
}
-
+
if (sd->sc.data[SC_JAILED]->val1 <= 0) { // Was not jailed with @jailfor (maybe @jail? or warped there? or got recalled?)
clif->message(fd, msg_txt(1141)); // You have been jailed for an unknown amount of time.
return false;
}
-
+
//Get remaining jail time
atcommand->get_jail_time(sd->sc.data[SC_JAILED]->val1,&year,&month,&day,&hour,&minute);
sprintf(atcmd_output,msg_txt(402),msg_txt(1142),year,month,day,hour,minute); // You will remain in jail for %d years, %d months, %d days, %d hours and %d minutes
-
+
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -4596,17 +4587,18 @@ ACMD(jailtime)
ACMD(disguise)
{
int id = 0;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1143)); // Please enter a Monster/NPC name/ID (usage: @disguise <name/ID>).
return false;
}
-
- if ((id = atoi(message)) > 0)
- { //Acquired an ID
+
+ if ((id = atoi(message)) > 0) {
+ //Acquired an ID
if (!mob->db_checkid(id) && !npcdb_checkid(id))
id = 0; //Invalid id for either mobs or npcs.
- } else { //Acquired a Name
+ } else {
+ //Acquired a Name
if ((id = mob->db_searchname(message)) == 0)
{
struct npc_data* nd = npc->name2id(message);
@@ -4614,19 +4606,18 @@ ACMD(disguise)
id = nd->class_;
}
}
-
+
if (id == 0)
{
- clif->message(fd, msg_txt(123)); // Invalid Monster/NPC name/ID specified.
+ clif->message(fd, msg_txt(123)); // Invalid Monster/NPC name/ID specified.
return false;
}
-
- if(pc_isriding(sd))
- {
+
+ if (pc_hasmount(sd)) {
clif->message(fd, msg_txt(1144)); // Character cannot be disguised while mounted.
return false;
}
-
+
if(sd->sc.data[SC_MONSTER_TRANSFORM])
{
clif->message(fd, msg_txt(1487)); // Character cannot be disguised while in monster form.
@@ -4635,7 +4626,7 @@ ACMD(disguise)
pc->disguise(sd, id);
clif->message(fd, msg_txt(122)); // Disguise applied.
-
+
return true;
}
@@ -4647,25 +4638,25 @@ ACMD(disguiseall)
int mob_id=0;
struct map_session_data *pl_sd;
struct s_mapiterator* iter;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1145)); // Please enter a Monster/NPC name/ID (usage: @disguiseall <name/ID>).
return false;
}
-
+
if ((mob_id = mob->db_searchname(message)) == 0) // check name first (to avoid possible name begining by a number)
mob_id = atoi(message);
-
+
if (!mob->db_checkid(mob_id) && !npcdb_checkid(mob_id)) { //if mob or npc...
clif->message(fd, msg_txt(123)); // Monster/NPC name/id not found.
return false;
}
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
pc->disguise(pl_sd, mob_id);
mapit->free(iter);
-
+
clif->message(fd, msg_txt(122)); // Disguise applied.
return true;
}
@@ -4679,15 +4670,15 @@ ACMD(disguiseguild)
char monster[NAME_LENGTH], guild_name[NAME_LENGTH];
struct map_session_data *pl_sd;
struct guild *g;
-
+
memset(monster, '\0', sizeof(monster));
memset(guild_name, '\0', sizeof(guild_name));
-
+
if( !message || !*message || sscanf(message, "%23[^,], %23[^\r\n]", monster, guild_name) < 2 ) {
clif->message(fd, msg_txt(1146)); // Please enter a mob name/ID and guild name/ID (usage: @disguiseguild <mob name/ID>, <guild name/ID>).
return false;
}
-
+
if( (id = atoi(monster)) > 0 ) {
if( !mob->db_checkid(id) && !npcdb_checkid(id) )
id = 0;
@@ -4698,21 +4689,21 @@ ACMD(disguiseguild)
id = nd->class_;
}
}
-
+
if( id == 0 ) {
- clif->message(fd, msg_txt(123)); // Monster/NPC name/id hasn't been found.
+ clif->message(fd, msg_txt(123)); // Monster/NPC name/id hasn't been found.
return false;
}
-
+
if( (g = guild->searchname(guild_name)) == NULL && (g = guild->search(atoi(guild_name))) == NULL ) {
clif->message(fd, msg_txt(94)); // Incorrect name/ID, or no one from the guild is online.
return false;
}
-
- for( i = 0; i < g->max_member; i++ )
- if( (pl_sd = g->member[i].sd) && !pc_isriding(pl_sd) )
+
+ for (i = 0; i < g->max_member; i++)
+ if ((pl_sd = g->member[i].sd) && !pc_hasmount(pl_sd))
pc->disguise(pl_sd, id);
-
+
clif->message(fd, msg_txt(122)); // Disguise applied.
return true;
}
@@ -4730,7 +4721,7 @@ ACMD(undisguise)
clif->message(fd, msg_txt(125)); // You're not disguised.
return false;
}
-
+
return true;
}
@@ -4740,15 +4731,15 @@ ACMD(undisguise)
ACMD(undisguiseall) {
struct map_session_data *pl_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) )
if( pl_sd->disguise != -1 )
pc->disguise(pl_sd, -1);
mapit->free(iter);
-
+
clif->message(fd, msg_txt(124)); // Disguise removed.
-
+
return true;
}
@@ -4761,25 +4752,25 @@ ACMD(undisguiseguild)
struct map_session_data *pl_sd;
struct guild *g;
int i;
-
+
memset(guild_name, '\0', sizeof(guild_name));
-
+
if(!message || !*message || sscanf(message, "%23[^\n]", guild_name) < 1) {
clif->message(fd, msg_txt(1147)); // Please enter guild name/ID (usage: @undisguiseguild <guild name/ID>).
return false;
}
-
+
if( (g = guild->searchname(guild_name)) == NULL && (g = guild->search(atoi(message))) == NULL ) {
clif->message(fd, msg_txt(94)); // Incorrect name/ID, or no one from the guild is online.
return false;
}
-
+
for(i = 0; i < g->max_member; i++)
if( (pl_sd = g->member[i].sd) && pl_sd->disguise != -1 )
pc->disguise(pl_sd, -1);
-
+
clif->message(fd, msg_txt(124)); // Disguise removed.
-
+
return true;
}
@@ -4792,15 +4783,15 @@ ACMD(exp)
double nextb, nextj;
memset(output, '\0', sizeof(output));
-
+
nextb = pc->nextbaseexp(sd);
if (nextb)
nextb = sd->status.base_exp*100.0/nextb;
-
+
nextj = pc->nextjobexp(sd);
if (nextj)
nextj = sd->status.job_exp*100.0/nextj;
-
+
sprintf(output, msg_txt(1148), sd->status.base_level, nextb, sd->status.job_level, nextj); // Base Level: %d (%.3f%%) | Job Level: %d (%.3f%%)
clif->message(fd, output);
return true;
@@ -4812,17 +4803,16 @@ ACMD(exp)
*------------------------------------------*/
ACMD(broadcast)
{
-
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1149)); // Please enter a message (usage: @broadcast <message>).
return false;
}
-
+
sprintf(atcmd_output, "%s: %s", sd->status.name, message);
intif->broadcast(atcmd_output, strlen(atcmd_output) + 1, BC_DEFAULT);
-
+
return true;
}
@@ -4832,16 +4822,16 @@ ACMD(broadcast)
ACMD(localbroadcast)
{
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1150)); // Please enter a message (usage: @localbroadcast <message>).
return false;
}
-
+
sprintf(atcmd_output, "%s: %s", sd->status.name, message);
-
+
clif->broadcast(&sd->bl, atcmd_output, strlen(atcmd_output) + 1, BC_DEFAULT, ALL_SAMEMAP);
-
+
return true;
}
@@ -4852,15 +4842,15 @@ ACMD(email)
{
char actual_email[100];
char new_email[100];
-
+
memset(actual_email, '\0', sizeof(actual_email));
memset(new_email, '\0', sizeof(new_email));
-
+
if (!message || !*message || sscanf(message, "%99s %99s", actual_email, new_email) < 2) {
clif->message(fd, msg_txt(1151)); // Please enter two e-mail addresses (usage: @email <current@email> <new@email>).
return false;
}
-
+
if (e_mail_check(actual_email) == 0) {
clif->message(fd, msg_txt(144)); // Invalid e-mail. If your email hasn't been set, use a@a.com.
return false;
@@ -4874,7 +4864,7 @@ ACMD(email)
clif->message(fd, msg_txt(147)); // New e-mail must be different from the current e-mail address.
return false;
}
-
+
chrif->changeemail(sd->status.account_id, actual_email, new_email);
clif->message(fd, msg_txt(148)); // Information sended to login-server via char-server.
return true;
@@ -4886,12 +4876,12 @@ ACMD(email)
ACMD(effect)
{
int type = 0, flag = 0;
-
+
if (!message || !*message || sscanf(message, "%d", &type) < 1) {
clif->message(fd, msg_txt(1152)); // Please enter an effect number (usage: @effect <effect number>).
return false;
}
-
+
clif->specialeffect(&sd->bl, type, (send_target)flag);
clif->message(fd, msg_txt(229)); // Your effect has changed.
return true;
@@ -4904,7 +4894,7 @@ ACMD(effect)
ACMD(killer)
{
sd->state.killer = !sd->state.killer;
-
+
if(sd->state.killer)
clif->message(fd, msg_txt(241));
else {
@@ -4920,7 +4910,7 @@ ACMD(killer)
*------------------------------------------*/
ACMD(killable) {
sd->state.killable = !sd->state.killable;
-
+
if(sd->state.killable)
clif->message(fd, msg_txt(242));
else {
@@ -4959,29 +4949,29 @@ ACMD(npcmove) {
struct npc_data *nd = 0;
memset(atcmd_player_name, '\0', sizeof atcmd_player_name);
-
+
if (!message || !*message || sscanf(message, "%d %d %23[^\n]", &x, &y, atcmd_player_name) < 3) {
clif->message(fd, msg_txt(1153)); // Usage: @npcmove <X> <Y> <npc_name>
return false;
}
-
+
if ((nd = npc->name2id(atcmd_player_name)) == NULL) {
clif->message(fd, msg_txt(111)); // This NPC doesn't exist.
return false;
}
-
+
if ((m=nd->bl.m) < 0 || nd->bl.prev == NULL) {
clif->message(fd, msg_txt(1154)); // NPC is not in this map.
- return false; //Not on a map.
+ return false; //Not on a map.
}
-
+
x = cap_value(x, 0, map->list[m].xs-1);
y = cap_value(y, 0, map->list[m].ys-1);
map->foreachinrange(clif->outsight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl);
map->moveblock(&nd->bl, x, y, timer->gettick());
map->foreachinrange(clif->insight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl);
clif->message(fd, msg_txt(1155)); // NPC moved.
-
+
return true;
}
@@ -4995,14 +4985,14 @@ ACMD(addwarp)
int x,y;
unsigned short m;
struct npc_data* nd;
-
+
memset(warpname, '\0', sizeof(warpname));
-
+
if (!message || !*message || sscanf(message, "%31s %d %d %23[^\n]", mapname, &x, &y, warpname) < 4) {
clif->message(fd, msg_txt(1156)); // Usage: @addwarp <mapname> <X> <Y> <npc name>
return false;
}
-
+
m = mapindex->name2id(mapname);
if( m == 0 )
{
@@ -5010,11 +5000,11 @@ ACMD(addwarp)
clif->message(fd, atcmd_output);
return false;
}
-
+
nd = npc->add_warp(warpname, sd->bl.m, sd->bl.x, sd->bl.y, 2, 2, m, x, y);
if( nd == NULL )
return false;
-
+
sprintf(atcmd_output, msg_txt(1158), nd->exname); // New warp NPC '%s' created.
clif->message(fd, atcmd_output);
return true;
@@ -5026,22 +5016,21 @@ ACMD(addwarp)
*------------------------------------------*/
ACMD(follow) {
struct map_session_data *pl_sd = NULL;
-
+
if (!message || !*message) {
if (sd->followtarget == -1)
return false;
-
pc->stop_following (sd);
clif->message(fd, msg_txt(1159)); // Follow mode OFF.
return true;
}
-
+
if ( (pl_sd = map->nick2sd((char *)message)) == NULL )
{
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if (sd->followtarget == pl_sd->bl.id) {
pc->stop_following (sd);
clif->message(fd, msg_txt(1159)); // Follow mode OFF.
@@ -5049,7 +5038,7 @@ ACMD(follow) {
pc->follow(sd, pl_sd->bl.id);
clif->message(fd, msg_txt(1160)); // Follow mode ON.
}
-
+
return true;
}
@@ -5079,15 +5068,15 @@ ACMD(dropall)
ACMD(storeall)
{
int i;
-
- if (sd->state.storage_flag != 1)
- { //Open storage.
+
+ if (sd->state.storage_flag != 1) {
+ //Open storage.
if( storage->open(sd) == 1 ) {
clif->message(fd, msg_txt(1161)); // You currently cannot open your storage.
return false;
}
}
-
+
for (i = 0; i < MAX_INVENTORY; i++) {
if (sd->status.inventory[i].amount) {
if(sd->status.inventory[i].equip != 0)
@@ -5096,7 +5085,7 @@ ACMD(storeall)
}
}
storage->close(sd);
-
+
clif->message(fd, msg_txt(1162)); // All items stored.
return true;
}
@@ -5104,18 +5093,18 @@ ACMD(storeall)
ACMD(clearstorage)
{
int i, j;
-
+
if (sd->state.storage_flag == 1) {
clif->message(fd, msg_txt(250));
return false;
}
-
+
j = sd->status.storage.storage_amount;
for (i = 0; i < j; ++i) {
storage->delitem(sd, i, sd->status.storage.items[i].amount);
}
storage->close(sd);
-
+
clif->message(fd, msg_txt(1394)); // Your storage was cleaned.
return true;
}
@@ -5125,29 +5114,29 @@ ACMD(cleargstorage)
int i, j;
struct guild *g;
struct guild_storage *guild_storage;
-
+
g = sd->guild;
-
+
if (g == NULL) {
clif->message(fd, msg_txt(43));
return false;
}
-
+
if (sd->state.storage_flag == 1) {
clif->message(fd, msg_txt(250));
return false;
}
-
+
if (sd->state.storage_flag == 2) {
clif->message(fd, msg_txt(251));
return false;
}
-
- guild_storage = gstorage->id2storage2(sd->status.guild_id);
+
+ guild_storage = idb_get(gstorage->db,sd->status.guild_id);
if (guild_storage == NULL) {// Doesn't have opened @gstorage yet, so we skip the deletion since *shouldn't* have any item there.
return false;
}
-
+
j = guild_storage->storage_amount;
guild_storage->lock = 1; // Lock @gstorage: do not allow any item to be retrieved or stored from any guild member
for (i = 0; i < j; ++i) {
@@ -5155,7 +5144,7 @@ ACMD(cleargstorage)
}
gstorage->close(sd);
guild_storage->lock = 0; // Cleaning done, release lock
-
+
clif->message(fd, msg_txt(1395)); // Your guild storage was cleaned.
return true;
}
@@ -5163,24 +5152,24 @@ ACMD(cleargstorage)
ACMD(clearcart)
{
int i;
-
+
if (pc_iscarton(sd) == 0) {
clif->message(fd, msg_txt(1396)); // You do not have a cart to be cleaned.
return false;
}
-
+
if( sd->state.vending == 1 ) {
clif->message(fd, msg_txt(548)); // You can't clean a cart while vending!
- return false;
- }
-
+ return false;
+ }
+
for( i = 0; i < MAX_CART; i++ )
if(sd->status.cart[i].nameid > 0)
pc->cart_delitem(sd, i, sd->status.cart[i].amount, 1, LOG_TYPE_OTHER);
-
+
clif->clearcart(fd);
clif->updatestatus(sd,SP_CARTINFO);
-
+
clif->message(fd, msg_txt(1397)); // Your cart was cleaned.
return true;
}
@@ -5198,16 +5187,16 @@ ACMD(skillid) {
DBKey key;
DBData *data;
char partials[MAX_SKILLID_PARTIAL_RESULTS][MAX_SKILLID_PARTIAL_RESULTS_LEN];
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1163)); // Please enter a skill name to look up (usage: @skillid <skill name>).
return false;
}
-
+
skillen = strlen(message);
-
+
iter = db_iterator(skill->name2id_db);
-
+
for( data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key) ) {
idx = skill->get_index(DB->data2i(data));
if (strnicmp(key.str, message, skillen) == 0 || strnicmp(skill->db[idx].desc, message, skillen) == 0) {
@@ -5217,18 +5206,18 @@ ACMD(skillid) {
snprintf(partials[found++], MAX_SKILLID_PARTIAL_RESULTS_LEN, msg_txt(1164), DB->data2i(data), skill->db[idx].desc, key.str);
}
}
-
+
dbi_destroy(iter);
-
+
if( found ) {
sprintf(atcmd_output, msg_txt(1398), found); // -- Displaying first %d partial matches
clif->message(fd, atcmd_output);
}
-
+
for(i = 0; i < found; i++) { /* partials */
clif->message(fd, partials[i]);
}
-
+
return true;
}
@@ -5242,38 +5231,38 @@ ACMD(useskill) {
uint16 skill_id;
uint16 skill_lv;
char target[100];
-
+
if(!message || !*message || sscanf(message, "%hu %hu %23[^\n]", &skill_id, &skill_lv, target) != 3) {
clif->message(fd, msg_txt(1165)); // Usage: @useskill <skill ID> <skill level> <target>
return false;
}
-
+
if(!strcmp(target,"self"))
pl_sd = sd; //quick keyword
else if ( (pl_sd = map->nick2sd(target)) == NULL ) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if ( pc_get_group_level(sd) < pc_get_group_level(pl_sd) )
{
clif->message(fd, msg_txt(81)); // Your GM level don't authorized you to do this action on this player.
return false;
}
-
+
if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE+MAX_HOMUNSKILL
&& sd->hd && homun_alive(sd->hd)) // (If used with @useskill, put the homunc as dest)
bl = &sd->hd->bl;
else
bl = &sd->bl;
-
+
pc->delinvincibletimer(sd);
-
+
if (skill->get_inf(skill_id)&INF_GROUND_SKILL)
unit->skilluse_pos(bl, pl_sd->bl.x, pl_sd->bl.y, skill_id, skill_lv);
else
unit->skilluse_id(bl, pl_sd->bl.id, skill_id, skill_lv);
-
+
return true;
}
@@ -5287,7 +5276,7 @@ ACMD(displayskill) {
int64 tick;
uint16 skill_id;
uint16 skill_lv = 1;
-
+
if (!message || !*message || sscanf(message, "%hu %hu", &skill_id, &skill_lv) < 1) {
clif->message(fd, msg_txt(1166)); // Usage: @displayskill <skill ID> {<skill level>}
return false;
@@ -5310,32 +5299,32 @@ ACMD(skilltree) {
int meets, j, c=0;
char target[NAME_LENGTH];
struct skill_tree_entry *ent;
-
+
if(!message || !*message || sscanf(message, "%hu %23[^\r\n]", &skill_id, target) != 2) {
clif->message(fd, msg_txt(1167)); // Usage: @skilltree <skill ID> <target>
return false;
}
-
+
if ( (pl_sd = map->nick2sd(target)) == NULL ) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
c = pc->calc_skilltree_normalize_job(pl_sd);
c = pc->mapid2jobid(c, pl_sd->status.sex);
-
+
sprintf(atcmd_output, msg_txt(1168), pc->job_name(c), pc->checkskill(pl_sd, NV_BASIC)); // Player is using %s skill tree (%d basic points).
clif->message(fd, atcmd_output);
-
+
ARR_FIND( 0, MAX_SKILL_TREE, j, pc->skill_tree[c][j].id == 0 || pc->skill_tree[c][j].id == skill_id );
if( j == MAX_SKILL_TREE || pc->skill_tree[c][j].id == 0 )
{
clif->message(fd, msg_txt(1169)); // The player cannot use that skill.
return false;
}
-
+
ent = &pc->skill_tree[c][j];
-
+
meets = 1;
for(j=0;j<MAX_PC_SKILL_REQUIRE;j++)
{
@@ -5349,7 +5338,7 @@ ACMD(skilltree) {
if (meets == 1) {
clif->message(fd, msg_txt(1171)); // The player meets all the requirements for that skill.
}
-
+
return true;
}
@@ -5358,14 +5347,14 @@ void getring(struct map_session_data* sd) {
int flag, item_id;
struct item item_tmp;
item_id = (sd->status.sex) ? WEDDING_RING_M : WEDDING_RING_F;
-
+
memset(&item_tmp, 0, sizeof(item_tmp));
item_tmp.nameid = item_id;
item_tmp.identify = 1;
item_tmp.card[0] = 255;
item_tmp.card[2] = sd->status.partner_id;
item_tmp.card[3] = sd->status.partner_id >> 16;
-
+
if((flag = pc->additem(sd,&item_tmp,1,LOG_TYPE_COMMAND))) {
clif->additem(sd,0,0,flag);
map->addflooritem(&item_tmp,1,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0);
@@ -5379,17 +5368,17 @@ void getring(struct map_session_data* sd) {
ACMD(marry) {
struct map_session_data *pl_sd = NULL;
char player_name[NAME_LENGTH] = "";
-
+
if (!message || !*message || sscanf(message, "%23s", player_name) != 1) {
clif->message(fd, msg_txt(1172)); // Usage: @marry <char name>
return false;
}
-
+
if ((pl_sd = map->nick2sd(player_name)) == NULL) {
clif->message(fd, msg_txt(3));
return false;
}
-
+
if (pc->marriage(sd, pl_sd) == 0) {
clif->message(fd, msg_txt(1173)); // They are married... wish them well.
clif->wedding_effect(&pl_sd->bl); //wedding effect and music [Lupus]
@@ -5397,7 +5386,7 @@ ACMD(marry) {
getring(pl_sd);
return true;
}
-
+
clif->message(fd, msg_txt(1174)); // The two cannot wed because one is either a baby or already married.
return false;
}
@@ -5413,7 +5402,7 @@ ACMD(divorce)
clif->message(fd, atcmd_output);
return false;
}
-
+
sprintf(atcmd_output, msg_txt(1176), sd->status.name); // '%s' and his/her partner are now divorced.
clif->message(fd, atcmd_output);
return true;
@@ -5426,7 +5415,7 @@ ACMD(changelook)
{
int i, j = 0, k = 0;
int pos[7] = { LOOK_HEAD_TOP,LOOK_HEAD_MID,LOOK_HEAD_BOTTOM,LOOK_WEAPON,LOOK_SHIELD,LOOK_SHOES,LOOK_ROBE };
-
+
if((i = sscanf(message, "%d %d", &j, &k)) < 1) {
clif->message(fd, msg_txt(1177)); // Usage: @changelook {<position>} <view id>
clif->message(fd, msg_txt(1178)); // Position: 1-Top 2-Middle 3-Bottom 4-Weapon 5-Shield 6-Shoes 7-Robe
@@ -5435,13 +5424,13 @@ ACMD(changelook)
if (j < 1 || j > 7)
j = 1;
j = pos[j - 1];
- } else if( i == 1 ) { // position not defined, use HEAD_TOP as default
- k = j; // swap
+ } else if( i == 1 ) { // position not defined, use HEAD_TOP as default
+ k = j; // swap
j = LOOK_HEAD_TOP;
}
-
+
clif->changelook(&sd->bl,j,k);
-
+
return true;
}
@@ -5449,44 +5438,42 @@ ACMD(changelook)
* @autotrade by durf [Lupus] [Paradox924X]
* Turns on/off Autotrade for a specific player
*------------------------------------------*/
-ACMD(autotrade) {
-
+ACMD(autotrade)
+{
if( map->list[sd->bl.m].flag.autotrade != battle_config.autotrade_mapflag ) {
clif->message(fd, msg_txt(1179)); // Autotrade is not allowed in this map.
return false;
}
-
+
if( pc_isdead(sd) ) {
clif->message(fd, msg_txt(1180)); // You cannot autotrade when dead.
return false;
}
-
+
if( !sd->state.vending && !sd->state.buyingstore ) { //check if player is vending or buying
clif->message(fd, msg_txt(549)); // "You should have a shop open in order to use @autotrade."
return false;
}
-
+
sd->state.autotrade = 1;
if( battle_config.at_timeout ) {
int timeout = atoi(message);
- status->change_start(NULL,&sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,battle_config.at_timeout) : battle_config.at_timeout) * 60000, 0);
+ status->change_start(NULL,&sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0,
+ ((timeout > 0) ? min(timeout,battle_config.at_timeout) : battle_config.at_timeout) * 60000, SCFLAG_NONE);
}
+ clif->chsys_quit(sd);
+
+ clif->authfail_fd(sd->fd, 15);
+
/* currently standalone is not supporting buyingstores, so we rely on the previous method */
- if( sd->state.buyingstore ) {
- clif->authfail_fd(fd, 15);
+ if( sd->state.buyingstore )
return true;
- }
-
- clif->chsys_quit(sd);
-
- clif->authfail_fd(sd->fd, 15);
-
-
#ifdef AUTOTRADE_PERSISTENCY
+ sd->state.autotrade = 2;/** state will enter pre-save, we use it to rule out some criterias **/
pc->autotrade_prepare(sd);
-
+
return false;/* we fail to not cause it to proceed on is_atcommand */
#else
return true;
@@ -5500,27 +5487,27 @@ ACMD(autotrade) {
ACMD(changegm) {
struct guild *g;
struct map_session_data *pl_sd;
-
+
if (sd->status.guild_id == 0 || (g = sd->guild) == NULL || strcmp(g->master,sd->status.name)) {
clif->message(fd, msg_txt(1181)); // You need to be a Guild Master to use this command.
return false;
}
-
+
if( map->list[sd->bl.m].flag.guildlock || map->list[sd->bl.m].flag.gvg_castle ) {
clif->message(fd, msg_txt(1182)); // You cannot change guild leaders in this map.
return false;
}
-
+
if( !message[0] ) {
clif->message(fd, msg_txt(1183)); // Usage: @changegm <guild_member_name>
return false;
}
-
+
if((pl_sd=map->nick2sd((char *) message)) == NULL || pl_sd->status.guild_id != sd->status.guild_id) {
clif->message(fd, msg_txt(1184)); // Target character must be online and be a guild member.
return false;
}
-
+
guild->gm_change(sd->status.guild_id, pl_sd);
return true;
}
@@ -5530,12 +5517,12 @@ ACMD(changegm) {
* Changes the leader of a party.
*------------------------------------------*/
ACMD(changeleader) {
-
+
if( !message[0] ) {
clif->message(fd, msg_txt(1185)); // Usage: @changeleader <party_member_name>
return false;
}
-
+
if (party->changeleader(sd, map->nick2sd((char *) message)))
return true;
return false;
@@ -5550,37 +5537,37 @@ ACMD(partyoption)
struct party_data *p;
int mi, option;
char w1[16], w2[16];
-
+
if (sd->status.party_id == 0 || (p = party->search(sd->status.party_id)) == NULL)
{
clif->message(fd, msg_txt(282));
return false;
}
-
+
ARR_FIND( 0, MAX_PARTY, mi, p->data[mi].sd == sd );
if (mi == MAX_PARTY)
return false; //Shouldn't happen
-
+
if (!p->party.member[mi].leader)
{
clif->message(fd, msg_txt(282));
return false;
}
-
+
if(!message || !*message || sscanf(message, "%15s %15s", w1, w2) < 2)
{
clif->message(fd, msg_txt(1186)); // Usage: @partyoption <pickup share: yes/no> <item distribution: yes/no>
return false;
}
-
+
option = (config_switch(w1)?1:0)|(config_switch(w2)?2:0);
-
+
//Change item share type.
if (option != p->party.item)
party->changeoption(sd, p->party.exp, option);
else
clif->message(fd, msg_txt(286));
-
+
return true;
}
@@ -5606,14 +5593,14 @@ ACMD(autoloot)
}
if (rate < 0) rate = 0;
if (rate > 10000) rate = 10000;
-
+
sd->state.autoloot = rate;
if (sd->state.autoloot) {
snprintf(atcmd_output, sizeof atcmd_output, msg_txt(1187),((double)sd->state.autoloot)/100.); // Autolooting items with drop rates of %0.02f%% and below.
clif->message(fd, atcmd_output);
}else
clif->message(fd, msg_txt(1188)); // Autoloot is now off.
-
+
return true;
}
@@ -5625,7 +5612,7 @@ ACMD(autolootitem)
struct item_data *item_data = NULL;
int i;
int action = 3; // 1=add, 2=remove, 3=help+list (default), 4=reset
-
+
if (message && *message) {
if (message[0] == '+') {
message++;
@@ -5649,7 +5636,7 @@ ACMD(autolootitem)
}
}
}
-
+
switch(action) {
case 1:
ARR_FIND(0, AUTOLOOTITEM_SIZE, i, sd->state.autolootid[i] == item_data->nameid);
@@ -5813,8 +5800,8 @@ ACMD(autoloottype) {
/*==========================================
* It is made to snow.
*------------------------------------------*/
-ACMD(snow) {
-
+ACMD(snow)
+{
if (map->list[sd->bl.m].flag.snow) {
map->list[sd->bl.m].flag.snow=0;
clif->weather(sd->bl.m);
@@ -5824,7 +5811,7 @@ ACMD(snow) {
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(1204)); // It has started to snow.
}
-
+
return true;
}
@@ -5859,7 +5846,7 @@ ACMD(clouds) {
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(1208)); // Clouds appear.
}
-
+
return true;
}
@@ -5877,7 +5864,7 @@ ACMD(clouds2) {
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(1210)); // Alternative clouds appear.
}
-
+
return true;
}
@@ -5912,7 +5899,7 @@ ACMD(leaves) {
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(1214)); // Fallen leaves fall.
}
-
+
return true;
}
@@ -5930,15 +5917,15 @@ ACMD(fireworks) {
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(1216)); // Fireworks have launched.
}
-
+
return true;
}
/*==========================================
* Clearing Weather Effects by Dexity
*------------------------------------------*/
-ACMD(clearweather) {
-
+ACMD(clearweather)
+{
map->list[sd->bl.m].flag.snow=0;
map->list[sd->bl.m].flag.sakura=0;
map->list[sd->bl.m].flag.clouds=0;
@@ -5948,7 +5935,7 @@ ACMD(clearweather) {
map->list[sd->bl.m].flag.leaves=0;
clif->weather(sd->bl.m);
clif->message(fd, msg_txt(291)); // "Weather effects will disappear after teleporting or refreshing."
-
+
return true;
}
@@ -5958,24 +5945,24 @@ ACMD(clearweather) {
ACMD(sound)
{
char sound_file[100];
-
+
memset(sound_file, '\0', sizeof(sound_file));
-
+
if(!message || !*message || sscanf(message, "%99[^\n]", sound_file) < 1) {
clif->message(fd, msg_txt(1217)); // Please enter a sound filename (usage: @sound <filename>).
return false;
}
-
+
if(strstr(sound_file, ".wav") == NULL)
strcat(sound_file, ".wav");
-
+
clif->soundeffectall(&sd->bl, sound_file, 0, AREA);
-
+
return true;
}
/*==========================================
- * MOB Search
+ * MOB Search
*------------------------------------------*/
ACMD(mobsearch)
{
@@ -5983,12 +5970,12 @@ ACMD(mobsearch)
int mob_id;
int number = 0;
struct s_mapiterator* it;
-
+
if (!message || !*message || sscanf(message, "%99[^\n]", mob_name) < 1) {
clif->message(fd, msg_txt(1218)); // Please enter a monster name (usage: @mobsearch <monster name>).
return false;
}
-
+
if ((mob_id = atoi(mob_name)) == 0)
mob_id = mob->db_searchname(mob_name);
if(mob_id > 0 && mob->db_checkid(mob_id) == 0){
@@ -5997,24 +5984,24 @@ ACMD(mobsearch)
return false;
}
if(mob_id == atoi(mob_name) && mob->db(mob_id)->jname)
- strcpy(mob_name,mob->db(mob_id)->jname); // --ja--
- // strcpy(mob_name,mob_db(mob_id)->name); // --en--
-
+ strcpy(mob_name,mob->db(mob_id)->jname); // --ja--
+ //strcpy(mob_name,mob_db(mob_id)->name); // --en--
+
snprintf(atcmd_output, sizeof atcmd_output, msg_txt(1220), mob_name, mapindex_id2name(sd->mapindex)); // Mob Search... %s %s
clif->message(fd, atcmd_output);
-
+
it = mapit_geteachmob();
for(;;)
{
TBL_MOB* md = (TBL_MOB*)mapit->next(it);
if( md == NULL )
break;// no more mobs
-
+
if( md->bl.m != sd->bl.m )
continue;
if( mob_id != -1 && md->class_ != mob_id )
continue;
-
+
++number;
if( md->spawn_timer == INVALID_TIMER )
snprintf(atcmd_output, sizeof(atcmd_output), "%2d[%3d:%3d] %s", number, md->bl.x, md->bl.y, md->name);
@@ -6023,7 +6010,7 @@ ACMD(mobsearch)
clif->message(fd, atcmd_output);
}
mapit->free(it);
-
+
return true;
}
@@ -6034,7 +6021,7 @@ ACMD(mobsearch)
int atcommand_cleanfloor_sub(struct block_list *bl, va_list ap) {
nullpo_ret(bl);
map->clearflooritem(bl);
-
+
return 0;
}
@@ -6046,7 +6033,7 @@ ACMD(cleanmap) {
ACMD(cleanarea) {
int x0 = 0, y0 = 0, x1 = 0, y1 = 0;
-
+
if (!message || !*message || sscanf(message, "%d %d %d %d", &x0, &y0, &x1, &y1) < 1) {
map->foreachinrange(atcommand->cleanfloor_sub, &sd->bl, AREA_SIZE * 2, BL_ITEM);
} else if (sscanf(message, "%d %d %d %d", &x0, &y0, &x1, &y1) == 1) {
@@ -6054,7 +6041,7 @@ ACMD(cleanarea) {
} else if (sscanf(message, "%d %d %d %d", &x0, &y0, &x1, &y1) == 4) {
map->foreachinarea(atcommand->cleanfloor_sub, sd->bl.m, x0, y0, x1, y1, BL_ITEM);
}
-
+
clif->message(fd, msg_txt(1221)); // All dropped items have been cleaned up.
return true;
}
@@ -6069,12 +6056,12 @@ ACMD(npctalk)
struct npc_data *nd;
bool ifcolor=(*(info->command + 7) != 'c' && *(info->command + 7) != 'C')?0:1;
unsigned int color = 0;
-
+
if (sd->sc.count && //no "chatting" while muted.
(sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) ||
(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT)))
return false;
-
+
if(!ifcolor) {
if (!message || !*message || sscanf(message, "%23[^,], %99[^\n]", name, mes) < 2) {
clif->message(fd, msg_txt(1222)); // Please enter the correct parameters (usage: @npctalk <npc name>, <message>).
@@ -6087,18 +6074,18 @@ ACMD(npctalk)
return false;
}
}
-
+
if (!(nd = npc->name2id(name))) {
clif->message(fd, msg_txt(111)); // This NPC doesn't exist
return false;
}
-
+
strtok(name, "#"); // discard extra name identifier if present
snprintf(temp, sizeof(temp), "%s : %s", name, mes);
-
+
if(ifcolor) clif->messagecolor(&nd->bl,color,temp);
else clif->disp_overhead(&nd->bl, temp);
-
+
return true;
}
@@ -6106,29 +6093,29 @@ ACMD(pettalk)
{
char mes[100],temp[100];
struct pet_data *pd;
-
+
if ( battle_config.min_chat_delay ) {
if( DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0 )
return true;
sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
}
-
+
if(!sd->status.pet_id || !(pd=sd->pd))
{
clif->message(fd, msg_txt(184));
return false;
}
-
+
if (sd->sc.count && //no "chatting" while muted.
(sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) ||
(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT)))
return false;
-
+
if (!message || !*message || sscanf(message, "%99[^\n]", mes) < 1) {
clif->message(fd, msg_txt(1224)); // Please enter a message (usage: @pettalk <message>).
return false;
}
-
+
if (message[0] == '/')
{// pet emotion processing
const char* emo[] = {
@@ -6152,15 +6139,15 @@ ACMD(pettalk)
return true;
}
sd->emotionlasttime = time(NULL);
-
+
clif->emotion(&pd->bl, i);
return true;
}
}
-
+
snprintf(temp, sizeof temp ,"%s : %s", pd->pet.name, mes);
clif->disp_overhead(&pd->bl, temp);
-
+
return true;
}
@@ -6173,10 +6160,10 @@ ACMD(users)
int users[MAX_MAPINDEX];
int users_all;
struct s_mapiterator* iter;
-
+
memset(users, 0, sizeof(users));
users_all = 0;
-
+
// count users on each map
iter = mapit_getallusers();
for(;;)
@@ -6184,29 +6171,29 @@ ACMD(users)
struct map_session_data* sd2 = (struct map_session_data*)mapit->next(iter);
if( sd2 == NULL )
break;// no more users
-
+
if( sd2->mapindex >= MAX_MAPINDEX )
continue;// invalid mapindex
-
+
if( users[sd2->mapindex] < INT_MAX ) ++users[sd2->mapindex];
if( users_all < INT_MAX ) ++users_all;
}
mapit->free(iter);
-
+
// display results for each map
for( i = 0; i < MAX_MAPINDEX; ++i )
{
if( users[i] == 0 )
continue;// empty
-
+
safesnprintf(buf, sizeof(buf), "%s: %d (%.2f%%)", mapindex_id2name(i), users[i], (float)(100.0f*users[i]/users_all));
clif->message(sd->fd, buf);
}
-
+
// display overall count
safesnprintf(buf, sizeof(buf), "all: %d", users_all);
clif->message(sd->fd, buf);
-
+
return true;
}
@@ -6232,31 +6219,31 @@ ACMD(summon)
int duration = 0;
struct mob_data *md;
int64 tick=timer->gettick();
-
+
if (!message || !*message || sscanf(message, "%23s %d", name, &duration) < 1)
{
clif->message(fd, msg_txt(1225)); // Please enter a monster name (usage: @summon <monster name> {duration}).
return false;
}
-
+
if (duration < 1)
duration =1;
else if (duration > 60)
duration =60;
-
+
if ((mob_id = atoi(name)) == 0)
mob_id = mob->db_searchname(name);
if(mob_id == 0 || mob->db_checkid(mob_id) == 0)
{
- clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
+ clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
return false;
}
-
- md = mob->once_spawn_sub(&sd->bl, sd->bl.m, -1, -1, "--ja--", mob_id, "", SZ_MEDIUM, AI_NONE);
-
+
+ md = mob->once_spawn_sub(&sd->bl, sd->bl.m, -1, -1, "--ja--", mob_id, "", SZ_SMALL, AI_NONE);
+
if(!md)
return false;
-
+
md->master_id=sd->bl.id;
md->special_state.ai=1;
md->deletetimer=timer->add(tick+(duration*60000),mob->timer_delete,md->bl.id,0);
@@ -6264,8 +6251,8 @@ ACMD(summon)
mob->spawn(md);
sc_start4(NULL,&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE, 0, 60000);
clif->skill_poseffect(&sd->bl,AM_CALLHOMUN,1,md->bl.x,md->bl.y,tick);
- clif->message(fd, msg_txt(39)); // All monster summoned!
-
+ clif->message(fd, msg_txt(39)); // All monster summoned!
+
return true;
}
@@ -6277,12 +6264,12 @@ ACMD(summon)
ACMD(adjgroup)
{
int new_group = 0;
-
+
if (!message || !*message || sscanf(message, "%d", &new_group) != 1) {
clif->message(fd, msg_txt(1226)); // Usage: @adjgroup <group_id>
return false;
}
-
+
if (pc->set_group(sd, new_group) != 0) {
clif->message(fd, msg_txt(1227)); // Specified group does not exist.
return false;
@@ -6298,18 +6285,18 @@ ACMD(adjgroup)
* Open a trade window with a remote player
*------------------------------------------*/
ACMD(trade) {
- struct map_session_data *pl_sd = NULL;
-
+ struct map_session_data *pl_sd = NULL;
+
if (!message || !*message) {
clif->message(fd, msg_txt(1230)); // Please enter a player name (usage: @trade <char name>).
return false;
}
-
+
if ( (pl_sd = map->nick2sd((char *)message)) == NULL ) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
trade->request(sd, pl_sd);
return true;
}
@@ -6321,19 +6308,19 @@ ACMD(trade) {
ACMD(setbattleflag)
{
char flag[128], value[128];
-
+
if (!message || !*message || sscanf(message, "%127s %127s", flag, value) != 2) {
clif->message(fd, msg_txt(1231)); // Usage: @setbattleflag <flag> <value>
return false;
}
-
+
if (battle->config_set_value(flag, value) == 0) {
clif->message(fd, msg_txt(1232)); // Unknown battle_config flag.
return false;
}
-
+
clif->message(fd, msg_txt(1233)); // Set battle_config as requested.
-
+
return true;
}
@@ -6342,27 +6329,27 @@ ACMD(setbattleflag)
*------------------------------------------*/
ACMD(unmute) {
struct map_session_data *pl_sd = NULL;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1234)); // Please enter a player name (usage: @unmute <char name>).
return false;
}
-
+
if ( (pl_sd = map->nick2sd((char *)message)) == NULL )
{
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if(!pl_sd->sc.data[SC_NOCHAT]) {
clif->message(sd->fd,msg_txt(1235)); // Player is not muted.
return false;
}
-
+
pl_sd->status.manner = 0;
status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER);
clif->message(sd->fd,msg_txt(1236)); // Player unmuted.
-
+
return true;
}
@@ -6373,7 +6360,7 @@ ACMD(uptime)
{
unsigned long seconds = 0, day = 24*60*60, hour = 60*60,
minute = 60, days = 0, hours = 0, minutes = 0;
-
+
seconds = timer->get_uptime();
days = seconds/day;
seconds -= (seconds/day>0)?(seconds/day)*day:0;
@@ -6381,10 +6368,10 @@ ACMD(uptime)
seconds -= (seconds/hour>0)?(seconds/hour)*hour:0;
minutes = seconds/minute;
seconds -= (seconds/minute>0)?(seconds/minute)*minute:0;
-
+
snprintf(atcmd_output, sizeof(atcmd_output), msg_txt(245), days, hours, minutes, seconds);
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -6410,26 +6397,26 @@ ACMD(changesex)
ACMD(mute) {
struct map_session_data *pl_sd = NULL;
int manner;
-
+
if (!message || !*message || sscanf(message, "%d %23[^\n]", &manner, atcmd_player_name) < 1) {
clif->message(fd, msg_txt(1237)); // Usage: @mute <time> <char name>
return false;
}
-
+
if ( (pl_sd = map->nick2sd(atcmd_player_name)) == NULL ) {
clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if ( pc_get_group_level(sd) < pc_get_group_level(pl_sd) )
{
clif->message(fd, msg_txt(81)); // Your GM level don't authorize you to do this action on this player.
return false;
}
-
+
clif->manner_message(sd, 0);
clif->manner_message(pl_sd, 5);
-
+
if( pl_sd->status.manner < manner ) {
pl_sd->status.manner -= manner;
sc_start(NULL,&pl_sd->bl,SC_NOCHAT,100,0,0);
@@ -6437,9 +6424,9 @@ ACMD(mute) {
pl_sd->status.manner = 0;
status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER);
}
-
+
clif->GM_silence(sd, pl_sd, (manner > 0 ? 1 : 0));
-
+
return true;
}
@@ -6456,7 +6443,7 @@ ACMD(refreshall)
{
struct map_session_data* iter_sd;
struct s_mapiterator* iter;
-
+
iter = mapit_getallusers();
for (iter_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); iter_sd = (TBL_PC*)mapit->next(iter))
clif->refresh(iter_sd);
@@ -6471,7 +6458,7 @@ ACMD(refreshall)
ACMD(identify)
{
int i,num;
-
+
for(i=num=0;i<MAX_INVENTORY;i++){
if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].identify!=1){
num++;
@@ -6493,7 +6480,7 @@ ACMD(misceffect) {
if (sscanf(message, "%d", &effect) < 1)
return false;
clif->misceffect(&sd->bl,effect);
-
+
return true;
}
@@ -6520,103 +6507,109 @@ ACMD(mobinfo)
struct mob_db *monster, *mob_array[MAX_SEARCH];
int count;
int i, j, k;
-
+
memset(atcmd_output, '\0', sizeof(atcmd_output));
memset(atcmd_output2, '\0', sizeof(atcmd_output2));
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1239)); // Please enter a monster name/ID (usage: @mobinfo <monster_name_or_monster_ID>).
return false;
}
-
+
// If monster identifier/name argument is a name
if ((i = mob->db_checkid(atoi(message)))) {
mob_array[0] = mob->db(i);
count = 1;
} else
count = mob->db_searchname_array(mob_array, MAX_SEARCH, message, 0);
-
+
if (!count) {
clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
return false;
}
-
+
if (count > MAX_SEARCH) {
sprintf(atcmd_output, msg_txt(269), MAX_SEARCH, count);
clif->message(fd, atcmd_output);
count = MAX_SEARCH;
}
-
+
for (k = 0; k < count; k++) {
unsigned int job_exp, base_exp;
-
+
monster = mob_array[k];
-
+
job_exp = monster->job_exp;
base_exp = monster->base_exp;
-
+
#ifdef RENEWAL_EXP
if( battle_config.atcommand_mobinfo_type ) {
base_exp = base_exp * pc->level_penalty_mod(monster->lv - sd->status.base_level, monster->status.race, monster->status.mode, 1) / 100;
job_exp = job_exp * pc->level_penalty_mod(monster->lv - sd->status.base_level, monster->status.race, monster->status.mode, 1) / 100;
}
#endif
-
+
// stats
if (monster->mexp)
sprintf(atcmd_output, msg_txt(1240), monster->name, monster->jname, monster->sprite, monster->vd.class_); // MVP Monster: '%s'/'%s'/'%s' (%d)
else
sprintf(atcmd_output, msg_txt(1241), monster->name, monster->jname, monster->sprite, monster->vd.class_); // Monster: '%s'/'%s'/'%s' (%d)
clif->message(fd, atcmd_output);
-
+
sprintf(atcmd_output, msg_txt(1242), monster->lv, monster->status.max_hp, base_exp, job_exp, MOB_HIT(monster), MOB_FLEE(monster)); // Lv:%d HP:%d Base EXP:%u Job EXP:%u HIT:%d FLEE:%d
clif->message(fd, atcmd_output);
-
+
sprintf(atcmd_output, msg_txt(1243), // DEF:%d MDEF:%d STR:%d AGI:%d VIT:%d INT:%d DEX:%d LUK:%d
monster->status.def, monster->status.mdef, monster->status.str, monster->status.agi,
monster->status.vit, monster->status.int_, monster->status.dex, monster->status.luk);
clif->message(fd, atcmd_output);
+
+#ifdef RENEWAL
+ sprintf(atcmd_output, msg_txt(1291), // ATK : %d~%d MATK : %d~%d Range : %d~%d~%d Size : %s Race : %s Element : %s(Lv : %d)
+ MOB_ATK1(monster), MOB_ATK2(monster), MOB_MATK1(monster), MOB_MATK2(monster), monster->status.rhw.range,
+#else
sprintf(atcmd_output, msg_txt(1244), // ATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d)
monster->status.rhw.atk, monster->status.rhw.atk2, monster->status.rhw.range,
+#endif
monster->range2 , monster->range3, msize[monster->status.size],
mrace[monster->status.race], melement[monster->status.def_ele], monster->status.ele_lv);
clif->message(fd, atcmd_output);
-
+
// drops
clif->message(fd, msg_txt(1245)); // Drops:
strcpy(atcmd_output, " ");
j = 0;
for (i = 0; i < MAX_MOB_DROP; i++) {
int droprate;
-
+
if (monster->dropitem[i].nameid <= 0 || monster->dropitem[i].p < 1 || (item_data = itemdb->exists(monster->dropitem[i].nameid)) == NULL)
continue;
-
+
droprate = monster->dropitem[i].p;
#ifdef RENEWAL_DROP
if( battle_config.atcommand_mobinfo_type ) {
droprate = droprate * pc->level_penalty_mod(monster->lv - sd->status.base_level, monster->status.race, monster->status.mode, 2) / 100;
-
+
if (droprate <= 0 && !battle_config.drop_rate0item)
droprate = 1;
}
#endif
-
+
if (item_data->slot)
sprintf(atcmd_output2, " - %s[%d] %02.02f%%", item_data->jname, item_data->slot, (float)droprate / 100);
else
sprintf(atcmd_output2, " - %s %02.02f%%", item_data->jname, (float)droprate / 100);
-
+
strcat(atcmd_output, atcmd_output2);
-
+
if (++j % 3 == 0) {
clif->message(fd, atcmd_output);
strcpy(atcmd_output, " ");
}
}
-
+
if (j == 0)
clif->message(fd, msg_txt(1246)); // This monster has no drops.
else if (j % 3 != 0)
@@ -6625,7 +6618,7 @@ ACMD(mobinfo)
if (monster->mexp) {
sprintf(atcmd_output, msg_txt(1247), monster->mexp); // MVP Bonus EXP:%u
clif->message(fd, atcmd_output);
-
+
strcpy(atcmd_output, msg_txt(1248)); // MVP Items:
j = 0;
for (i = 0; i < MAX_MVP_DROP; i++) {
@@ -6659,7 +6652,7 @@ ACMD(showmobs)
int mob_id;
int number = 0;
struct s_mapiterator* it;
-
+
if( sscanf(message, "%99[^\n]", mob_name) < 0 ) {
clif->message(fd, msg_txt(546)); // Please enter a mob name/id (usage: @showmobs <mob name/id>)
return false;
@@ -6679,27 +6672,28 @@ ACMD(showmobs)
clif->message(fd, atcmd_output);
return false;
}
-
- if(mob->db(mob_id)->status.mode&MD_BOSS && !pc_has_permission(sd, PC_PERM_SHOW_BOSS)){ // If player group does not have access to boss mobs.
+
+ if (mob->db(mob_id)->status.mode&MD_BOSS && !pc_has_permission(sd, PC_PERM_SHOW_BOSS)) {
+ // If player group does not have access to boss mobs.
clif->message(fd, msg_txt(1251)); // Can't show boss mobs!
return false;
}
-
+
if(mob_id == atoi(mob_name) && mob->db(mob_id)->jname)
strcpy(mob_name,mob->db(mob_id)->jname); // --ja--
//strcpy(mob_name,mob_db(mob_id)->name); // --en--
-
+
snprintf(atcmd_output, sizeof atcmd_output, msg_txt(1252), // Mob Search... %s %s
mob_name, mapindex_id2name(sd->mapindex));
clif->message(fd, atcmd_output);
-
+
it = mapit_geteachmob();
for(;;)
{
TBL_MOB* md = (TBL_MOB*)mapit->next(it);
if( md == NULL )
break;// no more mobs
-
+
if( md->bl.m != sd->bl.m )
continue;
if( mob_id != -1 && md->class_ != mob_id )
@@ -6708,12 +6702,12 @@ ACMD(showmobs)
continue; // hide slaves and player summoned mobs
if( md->spawn_timer != INVALID_TIMER )
continue; // hide mobs waiting for respawn
-
+
++number;
clif->viewpoint(sd, 1, 0, md->bl.x, md->bl.y, number, 0xFFFFFF);
}
mapit->free(it);
-
+
return true;
}
@@ -6724,19 +6718,19 @@ ACMD(homlevel) {
TBL_HOM * hd;
int level = 0;
enum homun_type htype;
-
+
if( !message || !*message || ( level = atoi(message) ) < 1 ) {
clif->message(fd, msg_txt(1253)); // Please enter a level adjustment (usage: @homlevel <number of levels>).
return false;
}
-
+
if( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
hd = sd->hd;
-
+
if( (htype = homun->class2type(hd->homunculus.class_)) == HT_INVALID ) {
ShowError("atcommand_homlevel: invalid homun class %d (player %s)\n", hd->homunculus.class_,sd->status.name);
return false;
@@ -6762,12 +6756,11 @@ ACMD(homlevel) {
ShowError("atcommand_homlevel: unknown htype '%d'\n",htype);
return false;
}
-
-
+
do {
hd->homunculus.exp += hd->exp_next;
} while( hd->homunculus.level < level && homun->levelup(hd) );
-
+
status_calc_homunculus(hd,SCO_NONE);
status_percent_heal(&hd->bl, 100, 100);
clif->specialeffect(&hd->bl,568,AREA);
@@ -6783,7 +6776,7 @@ ACMD(homevolution)
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
if ( !homun->evolve(sd->hd) ) {
clif->message(fd, msg_txt(1255)); // Your homunculus doesn't evolve.
return false;
@@ -6795,21 +6788,21 @@ ACMD(homevolution)
ACMD(hommutate) {
int homun_id;
enum homun_type m_class, m_id;
-
+
if( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
if( !message || !*message ) {
homun_id = 6048 + (rnd() % 4);
} else {
homun_id = atoi(message);
}
-
+
m_class = homun->class2type(sd->hd->homunculus.class_);
- m_id = homun->class2type(homun_id);
-
+ m_id = homun->class2type(homun_id);
+
if( m_class != HT_INVALID && m_id != HT_INVALID && m_class == HT_EVO && m_id == HT_S && sd->hd->homunculus.level >= 99 ) {
homun->mutate(sd->hd, homun_id);
} else {
@@ -6823,14 +6816,14 @@ ACMD(hommutate) {
*------------------------------------------*/
ACMD(makehomun) {
int homunid;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1256)); // Please enter a homunculus ID (usage: @makehomun <homunculus id>).
return false;
}
-
+
homunid = atoi(message);
-
+
if( homunid == -1 && sd->status.hom_id && !(sd->hd && homun_alive(sd->hd)) ) {
if( !sd->hd )
homun->call(sd);
@@ -6840,18 +6833,18 @@ ACMD(makehomun) {
homun->call(sd);
return true;
}
-
+
if ( sd->status.hom_id ) {
clif->message(fd, msg_txt(450));
return false;
}
-
+
if( homunid < HM_CLASS_BASE || homunid > HM_CLASS_BASE + MAX_HOMUNCULUS_CLASS - 1 )
{
clif->message(fd, msg_txt(1257)); // Invalid Homunculus ID.
return false;
}
-
+
homun->creation_request(sd,homunid);
return true;
}
@@ -6862,20 +6855,20 @@ ACMD(makehomun) {
ACMD(homfriendly)
{
int friendly = 0;
-
+
if ( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1258)); // Please enter a friendly value (usage: @homfriendly <friendly value [0-1000]>).
return false;
}
-
+
friendly = atoi(message);
friendly = cap_value(friendly, 0, 1000);
-
+
sd->hd->homunculus.intimacy = friendly * 100 ;
clif->send_homdata(sd,SP_INTIMATE,friendly);
return true;
@@ -6887,20 +6880,20 @@ ACMD(homfriendly)
ACMD(homhungry)
{
int hungry = 0;
-
+
if ( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1259)); // Please enter a hunger value (usage: @homhungry <hunger value [0-100]>).
return false;
}
-
+
hungry = atoi(message);
hungry = cap_value(hungry, 0, 100);
-
+
sd->hd->homunculus.hunger = hungry;
clif->send_homdata(sd,SP_HUNGRY,hungry);
return true;
@@ -6912,31 +6905,31 @@ ACMD(homhungry)
ACMD(homtalk)
{
char mes[100],temp[100];
-
+
if ( battle_config.min_chat_delay ) {
if( DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0 )
return true;
sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
}
-
+
if (sd->sc.count && //no "chatting" while muted.
(sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) ||
(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT)))
return false;
-
+
if ( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
if (!message || !*message || sscanf(message, "%99[^\n]", mes) < 1) {
clif->message(fd, msg_txt(1260)); // Please enter a message (usage: @homtalk <message>).
return false;
}
-
+
snprintf(temp, sizeof temp ,"%s : %s", sd->hd->homunculus.name, mes);
clif->disp_overhead(&sd->hd->bl, temp);
-
+
return true;
}
@@ -6946,34 +6939,34 @@ ACMD(homtalk)
ACMD(hominfo) {
struct homun_data *hd;
struct status_data *st;
-
+
if ( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
hd = sd->hd;
st = status->get_status_data(&hd->bl);
clif->message(fd, msg_txt(1261)); // Homunculus stats:
-
+
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1262), // HP: %d/%d - SP: %d/%d
st->hp, st->max_hp, st->sp, st->max_sp);
clif->message(fd, atcmd_output);
-
+
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1263), // ATK: %d - MATK: %d~%d
st->rhw.atk2 +st->batk, st->matk_min, st->matk_max);
clif->message(fd, atcmd_output);
-
+
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1264), // Hungry: %d - Intimacy: %u
hd->homunculus.hunger, hd->homunculus.intimacy/100);
clif->message(fd, atcmd_output);
-
+
snprintf(atcmd_output, sizeof(atcmd_output) ,
msg_txt(1265), // Stats: Str %d / Agi %d / Vit %d / Int %d / Dex %d / Luk %d
st->str, st->agi, st->vit,
st->int_, st->dex, st->luk);
clif->message(fd, atcmd_output);
-
+
return true;
}
@@ -6983,75 +6976,75 @@ ACMD(homstats)
struct s_homunculus_db *db;
struct s_homunculus *hom;
int lv, min, max, evo;
-
+
if ( !homun_alive(sd->hd) ) {
clif->message(fd, msg_txt(1254)); // You do not have a homunculus.
return false;
}
-
+
hd = sd->hd;
-
+
hom = &hd->homunculus;
db = hd->homunculusDB;
lv = hom->level;
-
+
snprintf(atcmd_output, sizeof(atcmd_output) ,
msg_txt(1266), lv, db->name); // Homunculus growth stats (Lv %d %s):
clif->message(fd, atcmd_output);
lv--; //Since the first increase is at level 2.
-
+
evo = (hom->class_ == db->evo_class);
min = db->base.HP +lv*db->gmin.HP +(evo?db->emin.HP:0);
max = db->base.HP +lv*db->gmax.HP +(evo?db->emax.HP:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1267), hom->max_hp, min, max); // Max HP: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.SP +lv*db->gmin.SP +(evo?db->emin.SP:0);
max = db->base.SP +lv*db->gmax.SP +(evo?db->emax.SP:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1268), hom->max_sp, min, max); // Max SP: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.str +lv*(db->gmin.str/10) +(evo?db->emin.str:0);
max = db->base.str +lv*(db->gmax.str/10) +(evo?db->emax.str:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1269), hom->str/10, min, max); // Str: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.agi +lv*(db->gmin.agi/10) +(evo?db->emin.agi:0);
max = db->base.agi +lv*(db->gmax.agi/10) +(evo?db->emax.agi:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1270), hom->agi/10, min, max); // Agi: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.vit +lv*(db->gmin.vit/10) +(evo?db->emin.vit:0);
max = db->base.vit +lv*(db->gmax.vit/10) +(evo?db->emax.vit:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1271), hom->vit/10, min, max); // Vit: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.int_ +lv*(db->gmin.int_/10) +(evo?db->emin.int_:0);
max = db->base.int_ +lv*(db->gmax.int_/10) +(evo?db->emax.int_:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1272), hom->int_/10, min, max); // Int: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.dex +lv*(db->gmin.dex/10) +(evo?db->emin.dex:0);
max = db->base.dex +lv*(db->gmax.dex/10) +(evo?db->emax.dex:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1273), hom->dex/10, min, max); // Dex: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
min = db->base.luk +lv*(db->gmin.luk/10) +(evo?db->emin.luk:0);
max = db->base.luk +lv*(db->gmax.luk/10) +(evo?db->emax.luk:0);;
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1274), hom->luk/10, min, max); // Luk: %d (%d~%d)
clif->message(fd, atcmd_output);
-
+
return true;
}
-ACMD(homshuffle) {
-
+ACMD(homshuffle)
+{
if(!sd->hd)
return false; // nothing to do
-
+
if(!homun->shuffle(sd->hd))
return false;
-
+
clif->message(sd->fd, msg_txt(1275)); // Homunculus stats altered.
atcommand_homstats(fd, sd, command, message, info); //Print out the new stats
return true;
@@ -7065,19 +7058,19 @@ ACMD(iteminfo)
{
struct item_data *item_data, *item_array[MAX_SEARCH];
int i, count = 1;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1276)); // Please enter an item name/ID (usage: @ii/@iteminfo <item name/ID>).
return false;
}
if ((item_array[0] = itemdb->exists(atoi(message))) == NULL)
count = itemdb->search_name_array(item_array, MAX_SEARCH, message, 0);
-
+
if (!count) {
- clif->message(fd, msg_txt(19)); // Invalid item ID or name.
+ clif->message(fd, msg_txt(19)); // Invalid item ID or name.
return false;
}
-
+
if (count > MAX_SEARCH) {
sprintf(atcmd_output, msg_txt(269), MAX_SEARCH, count); // Displaying first %d out of %d matches
clif->message(fd, atcmd_output);
@@ -7091,10 +7084,10 @@ ACMD(iteminfo)
(item_data->script==NULL)? msg_txt(1278) : msg_txt(1279) // None / With script
);
clif->message(fd, atcmd_output);
-
+
sprintf(atcmd_output, msg_txt(1280), item_data->value_buy, item_data->value_sell, item_data->weight/10. ); // NPC Buy:%dz, Sell:%dz | Weight: %.1f
clif->message(fd, atcmd_output);
-
+
if (item_data->maxchance == -1)
strcpy(atcmd_output, msg_txt(1281)); // - Available in the shops only.
else if ( !battle_config.atcommand_mobinfo_type ) {
@@ -7104,7 +7097,7 @@ ACMD(iteminfo)
strcpy(atcmd_output, msg_txt(1283)); // - Monsters don't drop this item.
}
clif->message(fd, atcmd_output);
-
+
}
return true;
}
@@ -7116,19 +7109,19 @@ ACMD(whodrops)
{
struct item_data *item_data, *item_array[MAX_SEARCH];
int i,j, count = 1;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1284)); // Please enter item name/ID (usage: @whodrops <item name/ID>).
return false;
}
if ((item_array[0] = itemdb->exists(atoi(message))) == NULL)
count = itemdb->search_name_array(item_array, MAX_SEARCH, message, 0);
-
+
if (!count) {
- clif->message(fd, msg_txt(19)); // Invalid item ID or name.
+ clif->message(fd, msg_txt(19)); // Invalid item ID or name.
return false;
}
-
+
if (count > MAX_SEARCH) {
sprintf(atcmd_output, msg_txt(269), MAX_SEARCH, count); // Displaying first %d out of %d matches
clif->message(fd, atcmd_output);
@@ -7138,14 +7131,14 @@ ACMD(whodrops)
item_data = item_array[i];
sprintf(atcmd_output, msg_txt(1285), item_data->jname,item_data->slot); // Item: '%s'[%d]
clif->message(fd, atcmd_output);
-
+
if (item_data->mob[0].chance == 0) {
strcpy(atcmd_output, msg_txt(1286)); // - Item is not dropped by mobs.
clif->message(fd, atcmd_output);
} else {
sprintf(atcmd_output, msg_txt(1287), MAX_SEARCH); // - Common mobs with highest drop chance (only max %d are listed):
clif->message(fd, atcmd_output);
-
+
for (j=0; j < MAX_SEARCH && item_data->mob[j].chance > 0; j++)
{
sprintf(atcmd_output, "- %s (%02.02f%%)", mob->db(item_data->mob[j].id)->jname, item_data->mob[j].chance/100.);
@@ -7161,12 +7154,12 @@ ACMD(whereis)
struct mob_db *monster, *mob_array[MAX_SEARCH];
int count;
int i, j, k;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1288)); // Please enter a monster name/ID (usage: @whereis <monster_name_or_monster_ID>).
return false;
}
-
+
// If monster identifier/name argument is a name
if ((i = mob->db_checkid(atoi(message))))
{
@@ -7174,12 +7167,12 @@ ACMD(whereis)
count = 1;
} else
count = mob->db_searchname_array(mob_array, MAX_SEARCH, message, 0);
-
+
if (!count) {
clif->message(fd, msg_txt(40)); // Invalid monster ID or name.
return false;
}
-
+
if (count > MAX_SEARCH) {
sprintf(atcmd_output, msg_txt(269), MAX_SEARCH, count);
clif->message(fd, atcmd_output);
@@ -7189,7 +7182,7 @@ ACMD(whereis)
monster = mob_array[k];
snprintf(atcmd_output, sizeof atcmd_output, msg_txt(1289), monster->jname); // %s spawns in:
clif->message(fd, atcmd_output);
-
+
for (i = 0; i < ARRAYLENGTH(monster->spawn) && monster->spawn[i].qty; i++) {
j = map->mapindex2mapid(monster->spawn[i].mapindex);
if (j < 0) continue;
@@ -7199,7 +7192,7 @@ ACMD(whereis)
if (i == 0)
clif->message(fd, msg_txt(1290)); // This monster does not spawn normally.
}
-
+
return true;
}
@@ -7217,15 +7210,15 @@ ACMD(version) {
*------------------------------------------*/
int atcommand_mutearea_sub(struct block_list *bl,va_list ap)
{ // As it is being used [ACMD(mutearea)] there's no need to be a bool, but if there's need to reuse it, it's better to be this way
-
+
int time, id;
struct map_session_data *pl_sd = (struct map_session_data *)bl;
if (pl_sd == NULL)
return 0;
-
+
id = va_arg(ap, int);
time = va_arg(ap, int);
-
+
if (id != bl->id && !pc_get_group_level(pl_sd)) {
pl_sd->status.manner -= time;
if (pl_sd->status.manner < 0)
@@ -7238,18 +7231,18 @@ int atcommand_mutearea_sub(struct block_list *bl,va_list ap)
ACMD(mutearea) {
int time;
-
+
if (!message || !*message) {
clif->message(fd, msg_txt(1297)); // Please enter a time in minutes (usage: @mutearea/@stfu <time in minutes>).
return false;
}
-
+
time = atoi(message);
-
+
map->foreachinarea(atcommand->mutearea_sub,sd->bl.m,
sd->bl.x-AREA_SIZE, sd->bl.y-AREA_SIZE,
sd->bl.x+AREA_SIZE, sd->bl.y+AREA_SIZE, BL_PC, sd->bl.id, time);
-
+
return true;
}
@@ -7257,9 +7250,9 @@ ACMD(mutearea) {
ACMD(rates)
{
char buf[CHAT_SIZE_MAX];
-
+
memset(buf, '\0', sizeof(buf));
-
+
snprintf(buf, CHAT_SIZE_MAX, msg_txt(1298), // Experience rates: Base %.2fx / Job %.2fx
battle_config.base_exp_rate/100., battle_config.job_exp_rate/100.);
clif->message(fd, buf);
@@ -7272,7 +7265,7 @@ ACMD(rates)
snprintf(buf, CHAT_SIZE_MAX, msg_txt(1301), // Other Drop Rates: MvP %.2fx / Card-Based %.2fx / Treasure %.2fx
battle_config.item_rate_mvp/100., battle_config.item_rate_adddrop/100., battle_config.item_rate_treasure/100.);
clif->message(fd, buf);
-
+
return true;
}
@@ -7283,25 +7276,24 @@ ACMD(rates)
ACMD(me)
{
char tempmes[CHAT_SIZE_MAX];
-
+
memset(tempmes, '\0', sizeof(tempmes));
memset(atcmd_output, '\0', sizeof(atcmd_output));
-
+
if (sd->sc.count && //no "chatting" while muted.
(sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) ||
(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT)))
return false;
-
+
if (!message || !*message || sscanf(message, "%199[^\n]", tempmes) < 0) {
clif->message(fd, msg_txt(1302)); // Please enter a message (usage: @me <message>).
return false;
}
-
- sprintf(atcmd_output, msg_txt(270), sd->status.name, tempmes); // *%s %s*
+
+ sprintf(atcmd_output, msg_txt(270), sd->status.name, tempmes); // *%s %s*
clif->disp_overhead(&sd->bl, atcmd_output);
-
+
return true;
-
}
/*==========================================
@@ -7311,20 +7303,20 @@ ACMD(me)
ACMD(size)
{
int size = 0;
-
- size = cap_value(atoi(message),SZ_MEDIUM,SZ_BIG);
-
+
+ size = cap_value(atoi(message),SZ_SMALL,SZ_BIG);
+
if(sd->state.size) {
- sd->state.size = SZ_MEDIUM;
+ sd->state.size = SZ_SMALL;
pc->setpos(sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_TELEPORT);
}
-
+
sd->state.size = size;
- if( size == SZ_SMALL )
+ if( size == SZ_MEDIUM )
clif->specialeffect(&sd->bl,420,AREA);
else if( size == SZ_BIG )
clif->specialeffect(&sd->bl,422,AREA);
-
+
clif->message(fd, msg_txt(1303)); // Size change applied.
return true;
}
@@ -7334,27 +7326,27 @@ ACMD(sizeall)
int size;
struct map_session_data *pl_sd;
struct s_mapiterator* iter;
-
+
size = atoi(message);
size = cap_value(size,0,2);
-
+
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); pl_sd = (TBL_PC*)mapit->next(iter) ) {
if( pl_sd->state.size != size ) {
if( pl_sd->state.size ) {
- pl_sd->state.size = SZ_MEDIUM;
+ pl_sd->state.size = SZ_SMALL;
pc->setpos(pl_sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, CLR_TELEPORT);
}
-
+
pl_sd->state.size = size;
- if( size == SZ_SMALL )
+ if( size == SZ_MEDIUM )
clif->specialeffect(&pl_sd->bl,420,AREA);
else if( size == SZ_BIG )
clif->specialeffect(&pl_sd->bl,422,AREA);
}
}
mapit->free(iter);
-
+
clif->message(fd, msg_txt(1303)); // Size change applied.
return true;
}
@@ -7365,36 +7357,36 @@ ACMD(sizeguild)
char guild_name[NAME_LENGTH];
struct map_session_data *pl_sd;
struct guild *g;
-
+
memset(guild_name, '\0', sizeof(guild_name));
-
+
if( !message || !*message || sscanf(message, "%d %23[^\n]", &size, guild_name) < 2 ) {
clif->message(fd, msg_txt(1304)); // Please enter guild name/ID (usage: @sizeguild <size> <guild name/ID>).
return false;
}
-
+
if( (g = guild->searchname(guild_name)) == NULL && (g = guild->search(atoi(guild_name))) == NULL ) {
clif->message(fd, msg_txt(94)); // Incorrect name/ID, or no one from the guild is online.
return false;
}
-
- size = cap_value(size,SZ_MEDIUM,SZ_BIG);
-
+
+ size = cap_value(size,SZ_SMALL,SZ_BIG);
+
for( i = 0; i < g->max_member; i++ ) {
if( (pl_sd = g->member[i].sd) && pl_sd->state.size != size ) {
if( pl_sd->state.size ) {
- pl_sd->state.size = SZ_MEDIUM;
+ pl_sd->state.size = SZ_SMALL;
pc->setpos(pl_sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, CLR_TELEPORT);
}
-
+
pl_sd->state.size = size;
- if( size == SZ_SMALL )
+ if( size == SZ_MEDIUM )
clif->specialeffect(&pl_sd->bl,420,AREA);
else if( size == SZ_BIG )
clif->specialeffect(&pl_sd->bl,422,AREA);
}
}
-
+
clif->message(fd, msg_txt(1303)); // Size change applied.
return true;
}
@@ -7403,8 +7395,8 @@ ACMD(sizeguild)
* @monsterignore
* => Makes monsters ignore you. [Valaris]
*------------------------------------------*/
-ACMD(monsterignore) {
-
+ACMD(monsterignore)
+{
if (!sd->state.monster_ignore) {
sd->state.monster_ignore = 1;
clif->message(sd->fd, msg_txt(1305)); // You are now immune to attacks.
@@ -7412,15 +7404,15 @@ ACMD(monsterignore) {
sd->state.monster_ignore = 0;
clif->message(sd->fd, msg_txt(1306)); // Returned to normal state.
}
-
+
return true;
}
/*==========================================
* @fakename
* => Gives your character a fake name. [Valaris]
*------------------------------------------*/
-ACMD(fakename){
-
+ACMD(fakename)
+{
if( !message || !*message )
{
if( sd->fakename[0] )
@@ -7432,23 +7424,23 @@ ACMD(fakename){
clif->message(sd->fd, msg_txt(1307)); // Returned to real name.
return true;
}
-
+
clif->message(sd->fd, msg_txt(1308)); // You must enter a name.
return false;
}
-
+
if( strlen(message) < 2 )
{
clif->message(sd->fd, msg_txt(1309)); // Fake name must be at least two characters.
return false;
}
-
+
safestrncpy(sd->fakename, message, sizeof(sd->fakename));
clif->charnameack(0, &sd->bl);
if( sd->disguise ) // Another packet should be sent so the client updates the name for sd
clif->charnameack(sd->fd, &sd->bl);
clif->message(sd->fd, msg_txt(1310)); // Fake name enabled.
-
+
return true;
}
@@ -7470,7 +7462,7 @@ ACMD(mapflag) {
short flag=0,i;
memset(flag_name, '\0', sizeof(flag_name));
-
+
if (!message || !*message || (sscanf(message, "%99s %hd", flag_name, &flag) < 1)) {
clif->message(sd->fd,msg_txt(1311)); // Enabled Mapflags in this map:
clif->message(sd->fd,"----------------------------------");
@@ -7493,7 +7485,7 @@ ACMD(mapflag) {
return true;
}
for (i = 0; flag_name[i]; i++) flag_name[i] = TOLOWER(flag_name[i]); //lowercase
-
+
if ( strcmp( flag_name , "gvg" ) == 0 ) {
if( flag && !map->list[sd->bl.m].flag.gvg )
map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_GVG_NAME));
@@ -7510,7 +7502,7 @@ ACMD(mapflag) {
else if ( !flag && map->list[sd->bl.m].flag.battleground )
map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone);
}
-
+
SETFLAG(autotrade); SETFLAG(allowks); SETFLAG(nomemo); SETFLAG(noteleport);
SETFLAG(noreturn); SETFLAG(monster_noteleport); SETFLAG(nosave); SETFLAG(nobranch);
SETFLAG(noexppenalty); SETFLAG(pvp); SETFLAG(pvp_noparty); SETFLAG(pvp_noguild);
@@ -7524,7 +7516,7 @@ ACMD(mapflag) {
SETFLAG(nodrop); SETFLAG(novending); SETFLAG(loadevent);
SETFLAG(nochat); SETFLAG(partylock); SETFLAG(guildlock); SETFLAG(src4instance);
SETFLAG(notomb); SETFLAG(nocashshop);
-
+
clif->message(sd->fd,msg_txt(1314)); // Invalid flag name or flag.
clif->message(sd->fd,msg_txt(1312)); // Usage: "@mapflag monster_noteleport 1" (0=Off | 1=On)
clif->message(sd->fd,msg_txt(1315)); // Available Flags:
@@ -7536,10 +7528,9 @@ ACMD(mapflag) {
clif->message(sd->fd,"fog, fireworks, sakura, leaves, nobaseexp, nojobexp, nomobloot,");
clif->message(sd->fd,"nomvploot, nightenabled, nodrop, novending, loadevent, nochat, partylock,");
clif->message(sd->fd,"guildlock, src4instance, notomb, nocashshop");
-
#undef CHECKFLAG
#undef SETFLAG
-
+
return true;
}
@@ -7553,7 +7544,7 @@ ACMD(showexp)
clif->message(fd, msg_txt(1316)); // Gained exp will not be shown.
return true;
}
-
+
sd->state.showexp = 1;
clif->message(fd, msg_txt(1317)); // Gained exp is now shown.
return true;
@@ -7566,7 +7557,7 @@ ACMD(showzeny)
clif->message(fd, msg_txt(1318)); // Gained zeny will not be shown.
return true;
}
-
+
sd->state.showzeny = 1;
clif->message(fd, msg_txt(1319)); // Gained zeny is now shown.
return true;
@@ -7579,7 +7570,7 @@ ACMD(showdelay)
clif->message(fd, msg_txt(1320)); // Skill delay failures will not be shown.
return true;
}
-
+
sd->state.showdelay = 1;
clif->message(fd, msg_txt(1321)); // Skill delay failures are now shown.
return true;
@@ -7597,34 +7588,33 @@ ACMD(showdelay)
ACMD(invite) {
unsigned int did = sd->duel_group;
struct map_session_data *target_sd = map->nick2sd((char *)message);
-
+
if(did == 0)
{
// "Duel: @invite without @duel."
clif->message(fd, msg_txt(350));
return false;
}
-
+
if(duel->list[did].max_players_limit > 0 &&
duel->list[did].members_count >= duel->list[did].max_players_limit) {
-
// "Duel: Limit of players is reached."
clif->message(fd, msg_txt(351));
return false;
}
-
+
if(target_sd == NULL) {
// "Duel: Player not found."
clif->message(fd, msg_txt(352));
return false;
}
-
+
if(target_sd->duel_group > 0 || target_sd->duel_invite > 0) {
// "Duel: Player already in duel."
clif->message(fd, msg_txt(353));
return false;
}
-
+
if(battle_config.duel_only_on_same_map && target_sd->bl.m != sd->bl.m)
{
// "Duel: You can't invite %s because he/she isn't in the same map."
@@ -7632,7 +7622,7 @@ ACMD(invite) {
clif->message(fd, atcmd_output);
return false;
}
-
+
duel->invite(did, sd, target_sd);
// "Duel: Invitation has been sent."
clif->message(fd, msg_txt(354));
@@ -7641,18 +7631,18 @@ ACMD(invite) {
ACMD(duel) {
unsigned int maxpl = 0;
-
+
if(sd->duel_group > 0) {
duel->showinfo(sd->duel_group, sd);
return true;
}
-
+
if(sd->duel_invite > 0) {
// "Duel: @duel without @reject."
clif->message(fd, msg_txt(355));
return false;
}
-
+
if(!duel->checktime(sd)) {
char output[CHAT_SIZE_MAX];
// "Duel: You can take part in duel only one time per %d minutes."
@@ -7660,7 +7650,7 @@ ACMD(duel) {
clif->message(fd, output);
return false;
}
-
+
if( message[0] ) {
if(sscanf(message, "%d", &maxpl) >= 1) {
if(maxpl < 2 || maxpl > 65535) {
@@ -7674,7 +7664,7 @@ ACMD(duel) {
if(target_sd != NULL) {
unsigned int newduel;
if((newduel = duel->create(sd, 2)) != -1) {
- if(target_sd->duel_group > 0 || target_sd->duel_invite > 0) {
+ if(target_sd->duel_group > 0 || target_sd->duel_invite > 0) {
clif->message(fd, msg_txt(353)); // "Duel: Player already in duel."
return false;
}
@@ -7689,7 +7679,7 @@ ACMD(duel) {
}
} else
duel->create(sd, 0);
-
+
return true;
}
@@ -7700,7 +7690,6 @@ ACMD(leave) {
clif->message(fd, msg_txt(358));
return false;
}
-
duel->leave(sd->duel_group, sd);
clif->message(fd, msg_txt(359)); // "Duel: You left the duel."
return true;
@@ -7714,20 +7703,20 @@ ACMD(accept) {
clif->message(fd, output);
return false;
}
-
+
if(sd->duel_invite <= 0) {
// "Duel: @accept without invitation."
clif->message(fd, msg_txt(360));
return false;
}
-
+
if( duel->list[sd->duel_invite].max_players_limit > 0
&& duel->list[sd->duel_invite].members_count >= duel->list[sd->duel_invite].max_players_limit ) {
// "Duel: Limit of players is reached."
clif->message(fd, msg_txt(351));
return false;
}
-
+
duel->accept(sd->duel_invite, sd);
// "Duel: Invitation has been accepted."
clif->message(fd, msg_txt(361));
@@ -7740,7 +7729,7 @@ ACMD(reject) {
clif->message(fd, msg_txt(362));
return false;
}
-
+
duel->reject(sd->duel_invite, sd);
// "Duel: Invitation has been rejected."
clif->message(fd, msg_txt(363));
@@ -7755,12 +7744,12 @@ ACMD(cash)
char output[128];
int value;
int ret=0;
-
+
if( !message || !*message || (value = atoi(message)) == 0 ) {
clif->message(fd, msg_txt(1322)); // Please enter an amount.
return false;
}
-
+
if( !strcmpi(info->command,"cash") ) {
if( value > 0 ) {
if( (ret=pc->getcash(sd, value, 0)) >= 0){
@@ -7796,7 +7785,7 @@ ACMD(cash)
clif->message(fd, msg_txt(41)); // Unable to decrease the number/value.
}
}
-
+
return true;
}
@@ -7804,22 +7793,22 @@ ACMD(cash)
ACMD(clone) {
int x=0,y=0,flag=0,master=0,i=0;
struct map_session_data *pl_sd=NULL;
-
+
if (!message || !*message) {
clif->message(sd->fd,msg_txt(1323)); // You must enter a player name or ID.
return false;
}
-
+
if((pl_sd=map->nick2sd((char *)message)) == NULL && (pl_sd=map->charid2sd(atoi(message))) == NULL) {
- clif->message(fd, msg_txt(3)); // Character not found.
+ clif->message(fd, msg_txt(3)); // Character not found.
return false;
}
-
+
if(pc_get_group_level(pl_sd) > pc_get_group_level(sd)) {
- clif->message(fd, msg_txt(126)); // Cannot clone a player of higher GM level than yourself.
+ clif->message(fd, msg_txt(126)); // Cannot clone a player of higher GM level than yourself.
return false;
}
-
+
if (strcmpi(info->command, "clone") == 0)
flag = 1;
else if (strcmpi(info->command, "slaveclone") == 0) {
@@ -7832,26 +7821,26 @@ ACMD(clone) {
master = sd->bl.id;
if (battle_config.atc_slave_clone_limit
&& mob->countslave(&sd->bl) >= battle_config.atc_slave_clone_limit) {
- clif->message(fd, msg_txt(127)); // You've reached your slave clones limit.
+ clif->message(fd, msg_txt(127)); // You've reached your slave clones limit.
return false;
}
}
-
+
do {
x = sd->bl.x + (rnd() % 10 - 5);
y = sd->bl.y + (rnd() % 10 - 5);
} while (map->getcell(sd->bl.m,x,y,CELL_CHKNOPASS) && i++ < 10);
-
+
if (i >= 10) {
x = sd->bl.x;
y = sd->bl.y;
}
-
+
if((x = mob->clone_spawn(pl_sd, sd->bl.m, x, y, "", master, 0, flag?1:0, 0)) > 0) {
- clif->message(fd, msg_txt(128+flag*2)); // Evil Clone spawned. Clone spawned. Slave clone spawned.
+ clif->message(fd, msg_txt(128+flag*2)); // Evil Clone spawned. Clone spawned. Slave clone spawned.
return true;
}
- clif->message(fd, msg_txt(129+flag*2)); // Unable to spawn evil clone. Unable to spawn clone. Unable to spawn slave clone.
+ clif->message(fd, msg_txt(129+flag*2)); // Unable to spawn evil clone. Unable to spawn clone. Unable to spawn slave clone.
return false;
}
@@ -7868,7 +7857,7 @@ ACMD(noask)
clif->message(fd, msg_txt(390)); // Autorejecting is activated.
sd->state.noask = 1;
}
-
+
return true;
}
@@ -7879,14 +7868,14 @@ ACMD(noask)
ACMD(request)
{
if (!message || !*message) {
- clif->message(sd->fd,msg_txt(277)); // Usage: @request <petition/message to online GMs>.
+ clif->message(sd->fd,msg_txt(277)); // Usage: @request <petition/message to online GMs>.
return false;
}
-
- sprintf(atcmd_output, msg_txt(278), message); // (@request): %s
+
+ sprintf(atcmd_output, msg_txt(278), message); // (@request): %s
intif->wis_message_to_gm(sd->status.name, PC_PERM_RECEIVE_REQUESTS, atcmd_output);
clif_disp_onlyself(sd, atcmd_output, strlen(atcmd_output));
- clif->message(sd->fd,msg_txt(279)); // @request sent.
+ clif->message(sd->fd,msg_txt(279)); // @request sent.
return true;
}
@@ -7897,7 +7886,7 @@ ACMD(feelreset)
{
pc->resetfeel(sd);
clif->message(fd, msg_txt(1324)); // Reset 'Feeling' maps.
-
+
return true;
}
@@ -7905,14 +7894,14 @@ ACMD(feelreset)
* AUCTION SYSTEM
*------------------------------------------*/
ACMD(auction) {
-
+
if( !battle_config.feature_auction ) {
clif->colormes(sd->fd,COLOR_RED,msg_txt(1484));
return false;
}
-
+
clif->auction_openwindow(sd);
-
+
return true;
}
@@ -7950,8 +7939,8 @@ ACMD(ksprotection)
/*==========================================
* Map Kill Steal Protection Setting
*------------------------------------------*/
-ACMD(allowks) {
-
+ACMD(allowks)
+{
if( map->list[sd->bl.m].flag.allowks ) {
map->list[sd->bl.m].flag.allowks = 0;
clif->message(fd, msg_txt(1330)); // [ Map K.S Protection Active ]
@@ -7962,16 +7951,16 @@ ACMD(allowks) {
return true;
}
-ACMD(resetstat) {
-
+ACMD(resetstat)
+{
pc->resetstate(sd);
sprintf(atcmd_output, msg_txt(207), sd->status.name);
clif->message(fd, atcmd_output);
return true;
}
-ACMD(resetskill) {
-
+ACMD(resetskill)
+{
pc->resetskill(sd,1);
sprintf(atcmd_output, msg_txt(206), sd->status.name);
clif->message(fd, atcmd_output);
@@ -7990,7 +7979,7 @@ ACMD(itemlist)
const struct item* items;
int size;
StringBuf buf;
-
+
if( strcmpi(info->command, "storagelist") == 0 ) {
location = "storage";
items = sd->status.storage.items;
@@ -8005,34 +7994,34 @@ ACMD(itemlist)
size = MAX_INVENTORY;
} else
return false;
-
+
StrBuf->Init(&buf);
-
+
count = 0; // total slots occupied
counter = 0; // total items found
for( i = 0; i < size; ++i )
{
const struct item* it = &items[i];
struct item_data* itd;
-
+
if( it->nameid == 0 || (itd = itemdb->exists(it->nameid)) == NULL )
continue;
-
+
counter += it->amount;
count++;
-
+
if( count == 1 )
{
StrBuf->Printf(&buf, msg_txt(1332), location, sd->status.name); // ------ %s items list of '%s' ------
clif->message(fd, StrBuf->Value(&buf));
StrBuf->Clear(&buf);
}
-
+
if( it->refine )
StrBuf->Printf(&buf, "%d %s %+d (%s, id: %d)", it->amount, itd->jname, it->refine, itd->name, it->nameid);
else
StrBuf->Printf(&buf, "%d %s (%s, id: %d)", it->amount, itd->jname, itd->name, it->nameid);
-
+
if( it->equip ) {
char equipstr[CHAT_SIZE_MAX];
strcpy(equipstr, msg_txt(1333)); // | equipped:
@@ -8068,10 +8057,10 @@ ACMD(itemlist)
equipstr[strlen(equipstr) - 2] = '\0';
StrBuf->AppendStr(&buf, equipstr);
}
-
+
clif->message(fd, StrBuf->Value(&buf));
StrBuf->Clear(&buf);
-
+
if( it->card[0] == CARD0_PET ) {
// pet egg
if (it->card[3])
@@ -8108,22 +8097,21 @@ ACMD(itemlist)
if( counter2 > 0 )
StrBuf->AppendStr(&buf, ")");
}
-
+
if( StrBuf->Length(&buf) > 0 )
clif->message(fd, StrBuf->Value(&buf));
StrBuf->Clear(&buf);
}
-
+
if( count == 0 )
StrBuf->Printf(&buf, msg_txt(1353), location); // No item found in this player's %s.
else
StrBuf->Printf(&buf, msg_txt(1354), counter, count, location); // %d item(s) found in %d %s slots.
-
+
clif->message(fd, StrBuf->Value(&buf));
-
+
StrBuf->Destroy(&buf);
-
return true;
}
@@ -8154,10 +8142,10 @@ ACMD(stats)
{ "JobChangeLvl (3rd) - %d", 0 },
{ NULL, 0 }
};
-
+
memset(job_jobname, '\0', sizeof(job_jobname));
memset(output, '\0', sizeof(output));
-
+
//direct array initialization with variables is not standard C compliant.
output_table[0].value = sd->status.base_level;
output_table[1].format = job_jobname;
@@ -8176,17 +8164,16 @@ ACMD(stats)
output_table[13].value = sd->status.skill_point;
output_table[14].value = sd->change_level_2nd;
output_table[15].value = sd->change_level_3rd;
-
+
sprintf(job_jobname, "Job - %s %s", pc->job_name(sd->status.class_), "(level %d)");
sprintf(output, msg_txt(53), sd->status.name); // '%s' stats:
-
+
clif->message(fd, output);
-
+
for (i = 0; output_table[i].format != NULL; i++) {
sprintf(output, output_table[i].format, output_table[i].value);
clif->message(fd, output);
}
-
return true;
}
@@ -8194,13 +8181,13 @@ ACMD(delitem) {
char item_name[100];
int nameid, amount = 0, total, idx;
struct item_data* id;
-
+
if( !message || !*message || ( sscanf(message, "\"%99[^\"]\" %d", item_name, &amount) < 2 && sscanf(message, "%99s %d", item_name, &amount) < 2 ) || amount < 1 )
{
clif->message(fd, msg_txt(1355)); // Please enter an item name/ID, a quantity, and a player name (usage: #delitem <player> <item_name_or_ID> <quantity>).
return false;
}
-
+
if( ( id = itemdb->search_name(item_name) ) != NULL || ( id = itemdb->exists(atoi(item_name)) ) != NULL )
{
nameid = id->nameid;
@@ -8210,26 +8197,26 @@ ACMD(delitem) {
clif->message(fd, msg_txt(19)); // Invalid item ID or name.
return false;
}
-
+
total = amount;
-
+
// delete items
while (amount && (idx = pc->search_inventory(sd, nameid)) != INDEX_NOT_FOUND) {
int delamount = ( amount < sd->status.inventory[idx].amount ) ? amount : sd->status.inventory[idx].amount;
-
+
if( sd->inventory_data[idx]->type == IT_PETEGG && sd->status.inventory[idx].card[0] == CARD0_PET )
{// delete pet
intif->delete_petdata(MakeDWord(sd->status.inventory[idx].card[1], sd->status.inventory[idx].card[2]));
}
pc->delitem(sd, idx, delamount, 0, 0, LOG_TYPE_COMMAND);
-
+
amount-= delamount;
}
-
+
// notify target
sprintf(atcmd_output, msg_txt(113), total-amount); // %d item(s) removed by a GM.
clif->message(sd->fd, atcmd_output);
-
+
// notify source
if( amount == total )
{
@@ -8245,7 +8232,6 @@ ACMD(delitem) {
sprintf(atcmd_output, msg_txt(114), total); // %d item(s) removed from the player.
clif->message(fd, atcmd_output);
}
-
return true;
}
@@ -8254,7 +8240,7 @@ ACMD(delitem) {
*------------------------------------------*/
ACMD(font) {
int font_id;
-
+
font_id = atoi(message);
if( font_id == 0 )
{
@@ -8280,7 +8266,7 @@ ACMD(font) {
}
else
clif->message(fd, msg_txt(1361)); // Already using this font.
-
+
return true;
}
@@ -8294,15 +8280,15 @@ void atcommand_commands_sub(struct map_session_data* sd, const int fd, AtCommand
AtCommandInfo* cmd;
DBIterator *iter = db_iterator(atcommand->db);
int count = 0;
-
+
memset(line_buff,' ',CHATBOX_SIZE);
line_buff[CHATBOX_SIZE-1] = 0;
-
+
clif->message(fd, msg_txt(273)); // "Available commands:"
-
+
for (cmd = dbi_first(iter); dbi_exists(iter); cmd = dbi_next(iter)) {
size_t slen;
-
+
switch( type ) {
case COMMAND_CHARCOMMAND:
if( cmd->char_groups[pcg->get_idx(sd->group)] == 0 )
@@ -8315,10 +8301,9 @@ void atcommand_commands_sub(struct map_session_data* sd, const int fd, AtCommand
default:
continue;
}
-
-
+
slen = strlen(cmd->command);
-
+
// flush the text buffer if this command won't fit into it
if ( slen + cur - line_buff >= CHATBOX_SIZE )
{
@@ -8327,18 +8312,18 @@ void atcommand_commands_sub(struct map_session_data* sd, const int fd, AtCommand
memset(line_buff,' ',CHATBOX_SIZE);
line_buff[CHATBOX_SIZE-1] = 0;
}
-
+
memcpy(cur,cmd->command,slen);
cur += slen+(10-slen%10);
-
+
count++;
}
dbi_destroy(iter);
clif->message(fd,line_buff);
-
+
sprintf(atcmd_output, msg_txt(274), count); // "%d commands found."
clif->message(fd, atcmd_output);
-
+
return;
}
@@ -8360,15 +8345,15 @@ ACMD(charcommands)
return true;
}
/* for new mounts */
-ACMD(mount2) {
-
- if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ) {
+ACMD(cashmount)
+{
+ if (pc_hasmount(sd)) {
clif->message(fd, msg_txt(1476)); // You are already mounting something else
return false;
}
-
+
clif->message(sd->fd,msg_txt(1362)); // NOTICE: If you crash with mount your LUA is outdated.
- if( !(sd->sc.data[SC_ALL_RIDING]) ) {
+ if (!sd->sc.data[SC_ALL_RIDING]) {
clif->message(sd->fd,msg_txt(1363)); // You have mounted.
sc_start(NULL,&sd->bl,SC_ALL_RIDING,100,0,-1);
} else {
@@ -8380,18 +8365,17 @@ ACMD(mount2) {
ACMD(accinfo) {
char query[NAME_LENGTH];
-
+
if (!message || !*message || strlen(message) > NAME_LENGTH ) {
clif->message(fd, msg_txt(1365)); // Usage: @accinfo/@accountinfo <account_id/char name>
clif->message(fd, msg_txt(1366)); // You may search partial name by making use of '%' in the search, ex. "@accinfo %Mario%" lists all characters whose name contains "Mario".
return false;
}
-
+
//remove const type
safestrncpy(query, message, NAME_LENGTH);
-
intif->request_accinfo( sd->fd, sd->bl.id, pc_get_group_level(sd), query );
-
+
return true;
}
@@ -8402,7 +8386,7 @@ ACMD(set) {
int toset = 0;
bool is_str = false;
size_t len;
-
+
if( !message || !*message || (toset = sscanf(message, "%31s %128[^\n]s", reg, val)) < 1 ) {
clif->message(fd, msg_txt(1367)); // Usage: @set <variable name> <value>
clif->message(fd, msg_txt(1368)); // Usage: ex. "@set PoringCharVar 50"
@@ -8410,7 +8394,7 @@ ACMD(set) {
clif->message(fd, msg_txt(1370)); // Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
return false;
}
-
+
/* disabled variable types (they require a proper script state to function, so allowing them would crash the server) */
if( reg[0] == '.' ) {
clif->message(fd, msg_txt(1371)); // NPC variables may not be used with @set.
@@ -8419,29 +8403,26 @@ ACMD(set) {
clif->message(fd, msg_txt(1372)); // Instance variables may not be used with @set.
return false;
}
-
+
is_str = ( reg[strlen(reg) - 1] == '$' ) ? true : false;
-
+
if( ( len = strlen(val) ) > 1 ) {
if( val[0] == '"' && val[len-1] == '"') {
val[len-1] = '\0'; //Strip quotes.
memmove(val, val+1, len-1);
}
}
-
+
if( toset >= 2 ) {/* we only set the var if there is an val, otherwise we only output the value */
if( is_str )
script->set_var(sd, reg, (void*) val);
else
script->set_var(sd, reg, (void*)h64BPTRSIZE((atoi(val))));
-
}
-
+
CREATE(data, struct script_data,1);
-
-
+
if( is_str ) {// string variable
-
switch( reg[0] ) {
case '@':
data->u.str = pc->readregstr(sd, script->add_str(reg));
@@ -8459,7 +8440,6 @@ ACMD(set) {
data->u.str = pc_readglobalreg_str(sd, script->add_str(reg));
break;
}
-
if( data->u.str == NULL || data->u.str[0] == '\0' ) {// empty string
data->type = C_CONSTSTR;
data->u.str = "";
@@ -8467,9 +8447,7 @@ ACMD(set) {
data->type = C_STR;
data->u.str = aStrdup(data->u.str);
}
-
} else {// integer variable
-
data->type = C_INT;
switch( reg[0] ) {
case '@':
@@ -8488,10 +8466,8 @@ ACMD(set) {
data->u.num = pc_readglobalreg(sd, script->add_str(reg));
break;
}
-
}
-
-
+
switch( data->type ) {
case C_INT:
sprintf(atcmd_output,msg_txt(1373),reg,data->u.num); // %s value is now :%d
@@ -8506,11 +8482,9 @@ ACMD(set) {
sprintf(atcmd_output,msg_txt(1376),reg,data->type); // %s data type is not supported :%u
break;
}
-
clif->message(fd, atcmd_output);
-
+
aFree(data);
-
return true;
}
ACMD(reloadquestdb) {
@@ -8522,7 +8496,7 @@ ACMD(addperm) {
int perm_size = pcg->permission_count;
bool add = (strcmpi(info->command, "addperm") == 0) ? true : false;
int i;
-
+
if( !message || !*message ) {
sprintf(atcmd_output, msg_txt(1378),command); // Usage: %s <permission_name>
clif->message(fd, atcmd_output);
@@ -8533,9 +8507,8 @@ ACMD(addperm) {
}
return false;
}
-
+
ARR_FIND(0, perm_size, i, strcmpi(pcg->permissions[i].name, message) == 0);
-
if( i == perm_size ) {
sprintf(atcmd_output,msg_txt(1380),message); // '%s' is not a known permission.
clif->message(fd, atcmd_output);
@@ -8546,7 +8519,7 @@ ACMD(addperm) {
}
return false;
}
-
+
if( add && (sd->extra_temp_permissions&pcg->permissions[i].permission) ) {
sprintf(atcmd_output, msg_txt(1381),sd->status.name,pcg->permissions[i].name); // User '%s' already possesses the '%s' permission.
clif->message(fd, atcmd_output);
@@ -8562,28 +8535,26 @@ ACMD(addperm) {
clif->message(fd, atcmd_output);
}
}
-
return false;
}
-
+
if( add )
sd->extra_temp_permissions |= pcg->permissions[i].permission;
else
sd->extra_temp_permissions &=~ pcg->permissions[i].permission;
-
-
+
sprintf(atcmd_output, msg_txt(1384),sd->status.name); // User '%s' permissions updated successfully. The changes are temporary.
clif->message(fd, atcmd_output);
-
+
return true;
}
-ACMD(unloadnpcfile) {
-
+ACMD(unloadnpcfile)
+{
if( !message || !*message ) {
clif->message(fd, msg_txt(1385)); // Usage: @unloadnpcfile <file name>
return false;
}
-
+
if( npc->unloadfile(message) )
clif->message(fd, msg_txt(1386)); // File unloaded. Be aware that mapflags and monsters spawned directly are not removed.
else {
@@ -8598,39 +8569,39 @@ ACMD(cart) {
sd->status.skill[idx].lv = (x)?1:0; \
sd->status.skill[idx].flag = (x)?1:0; \
} while(0)
-
+
int val = atoi(message);
bool need_skill = pc->checkskill(sd, MC_PUSHCART) ? false : true;
unsigned int index = skill->get_index(MC_PUSHCART);
-
+
if( !message || !*message || val < 0 || val > MAX_CARTS ) {
sprintf(atcmd_output, msg_txt(1390),command,MAX_CARTS); // Unknown Cart (usage: %s <0-%d>).
clif->message(fd, atcmd_output);
return false;
}
-
+
if( val == 0 && !pc_iscarton(sd) ) {
clif->message(fd, msg_txt(1391)); // You do not possess a cart to be removed
return false;
}
-
+
if( need_skill ) {
MC_CART_MDFY(1,index);
}
-
+
if( pc->setcart(sd, val) ) {
if( need_skill ) {
MC_CART_MDFY(0,index);
}
return false;/* @cart failed */
}
-
+
if( need_skill ) {
MC_CART_MDFY(0,index);
}
-
+
clif->message(fd, msg_txt(1392)); // Cart Added
-
+
return true;
#undef MC_CART_MDFY
}
@@ -8638,20 +8609,20 @@ ACMD(cart) {
ACMD(join) {
struct hChSysCh *channel = NULL;
char name[HCHSYS_NAME_LENGTH], pass[HCHSYS_NAME_LENGTH];
-
+
if (!message || !*message || sscanf(message, "%19s %19s", name, pass) < 1) {
sprintf(atcmd_output, msg_txt(1399),command); // Unknown Channel (usage: %s <#channel_name>)
clif->message(fd, atcmd_output);
return false;
}
- if( hChSys.local && strcmpi(name + 1, hChSys.local_name) == 0 ) {
+ if (clif->hChSys->local && strcmpi(name + 1, clif->hChSys->local_name) == 0) {
if( !map->list[sd->bl.m].channel ) {
clif->chsys_mjoin(sd);
if( map->list[sd->bl.m].channel ) /* join might have refused, map has chatting capabilities disabled */
return true;
} else
channel = map->list[sd->bl.m].channel;
- } else if( hChSys.ally && sd->status.guild_id && strcmpi(name + 1, hChSys.ally_name) == 0 ) {
+ } else if (clif->hChSys->ally && sd->status.guild_id && strcmpi(name + 1, clif->hChSys->ally_name) == 0) {
struct guild *g = sd->guild;
if( !g ) return false;/* unlikely, but we wont let it crash anyway. */
channel = g->channel;
@@ -8660,14 +8631,13 @@ ACMD(join) {
clif->message(fd, atcmd_output);
return false;
}
-
+
if( !channel ) {
sprintf(atcmd_output, msg_txt(1400),name,command); // Unknown Channel '%s' (usage: %s <#channel_name>)
clif->message(fd, atcmd_output);
return false;
}
-
-
+
if( idb_exists(channel->users, sd->status.char_id) ) {
sprintf(atcmd_output, msg_txt(1436),name); // You're already in the '%s' channel
clif->message(fd, atcmd_output);
@@ -8682,14 +8652,14 @@ ACMD(join) {
return false;
}
}
-
+
if( channel->banned && idb_exists(channel->banned, sd->status.account_id) ) {
sprintf(atcmd_output, msg_txt(1438),name); // You cannot join the '%s' channel because you've been banned from it
clif->message(fd, atcmd_output);
return false;
}
-
- if( !( channel->opt & hChSys_OPT_ANNOUNCE_JOIN ) ) {
+
+ if (!(channel->opt & hChSys_OPT_ANNOUNCE_JOIN)) {
sprintf(atcmd_output, msg_txt(1403),name); // You're now in the '%s' channel
clif->message(fd, atcmd_output);
}
@@ -8705,7 +8675,7 @@ ACMD(join) {
}
}
clif->chsys_join(channel,sd);
-
+
return true;
}
/* [Ind/Hercules] */
@@ -8757,7 +8727,6 @@ static inline void atcmd_channel_help(int fd, const char *command, bool can_crea
clif->message(fd, atcmd_output);
clif->message(fd, msg_txt(1463));// - adds or removes <option name> with <option value> to <channel name> channel
}
-
}
/* [Ind/Hercules] */
ACMD(channel) {
@@ -8765,13 +8734,13 @@ ACMD(channel) {
char subcmd[HCHSYS_NAME_LENGTH], sub1[HCHSYS_NAME_LENGTH], sub2[HCHSYS_NAME_LENGTH], sub3[HCHSYS_NAME_LENGTH];
unsigned char k = 0;
sub1[0] = sub2[0] = sub3[0] = '\0';
-
+
if (!message || !*message || sscanf(message, "%19s %19s %19s %19s", subcmd, sub1, sub2, sub3) < 1) {
- atcmd_channel_help(fd,command,( hChSys.allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN) ));
+ atcmd_channel_help(fd,command, (clif->hChSys->allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)));
return true;
}
-
- if (strcmpi(subcmd,"create") == 0 && (hChSys.allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN))) {
+
+ if (strcmpi(subcmd,"create") == 0 && (clif->hChSys->allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN))) {
// sub1 = channel name; sub2 = password; sub3 = unused
if (sub1[0] != '#') {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
@@ -8784,38 +8753,37 @@ ACMD(channel) {
clif->message(fd, msg_txt(1408)); // Channel password may not contain spaces
return false;
}
- if (strcmpi(sub1 + 1,hChSys.local_name) == 0 || strcmpi(sub1 + 1,hChSys.ally_name) == 0 || strdb_exists(clif->channel_db, sub1 + 1)) {
+ if (strcmpi(sub1 + 1, clif->hChSys->local_name) == 0 || strcmpi(sub1 + 1, clif->hChSys->ally_name) == 0 || strdb_exists(clif->channel_db, sub1 + 1)) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
+
CREATE( channel, struct hChSysCh, 1 );
-
clif->chsys_create(channel,sub1 + 1,sub2,0);
-
+
channel->owner = sd->status.char_id;
channel->type = hChSys_PRIVATE;
-
+
if( !( channel->opt & hChSys_OPT_ANNOUNCE_JOIN ) ) {
sprintf(atcmd_output, msg_txt(1403),sub1); // You're now in the '%s' channel
clif->message(fd, atcmd_output);
}
-
+
clif->chsys_join(channel,sd);
} else if (strcmpi(subcmd,"list") == 0) {
// sub1 = list type; sub2 = unused; sub3 = unused
if (sub1[0] != '\0' && strcmpi(sub1,"colors") == 0) {
char mout[40];
- for (k = 0; k < hChSys.colors_count; k++) {
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
unsigned short msg_len = 1;
- msg_len += sprintf(mout, "[ %s list colors ] : %s",command,hChSys.colors_name[k]);
-
+ msg_len += sprintf(mout, "[ %s list colors ] : %s", command, clif->hChSys->colors_name[k]);
+
WFIFOHEAD(fd,msg_len + 12);
WFIFOW(fd,0) = 0x2C1;
WFIFOW(fd,2) = msg_len + 12;
WFIFOL(fd,4) = 0;
- WFIFOL(fd,8) = hChSys.colors[k];
+ WFIFOL(fd,8) = clif->hChSys->colors[k];
safestrncpy((char*)WFIFOP(fd,12), mout, msg_len);
WFIFOSET(fd, msg_len + 12);
}
@@ -8823,14 +8791,14 @@ ACMD(channel) {
DBIterator *iter = db_iterator(clif->channel_db);
bool show_all = pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN) ? true : false;
clif->message(fd, msg_txt(1410)); // -- Public Channels
- if (hChSys.local) {
- sprintf(atcmd_output, msg_txt(1409), hChSys.local_name, map->list[sd->bl.m].channel ? db_size(map->list[sd->bl.m].channel->users) : 0);// - #%s ( %d users )
+ if (clif->hChSys->local) {
+ sprintf(atcmd_output, msg_txt(1409), clif->hChSys->local_name, map->list[sd->bl.m].channel ? db_size(map->list[sd->bl.m].channel->users) : 0);// - #%s ( %d users )
clif->message(fd, atcmd_output);
}
- if (hChSys.ally && sd->status.guild_id) {
+ if (clif->hChSys->ally && sd->status.guild_id) {
struct guild *g = sd->guild;
if( !g ) { dbi_destroy(iter); return false; }
- sprintf(atcmd_output, msg_txt(1409), hChSys.ally_name, db_size(g->channel->users));// - #%s ( %d users )
+ sprintf(atcmd_output, msg_txt(1409), clif->hChSys->ally_name, db_size(g->channel->users));// - #%s ( %d users )
clif->message(fd, atcmd_output);
}
for (channel = dbi_first(iter); dbi_exists(iter); channel = dbi_next(iter)) {
@@ -8847,30 +8815,30 @@ ACMD(channel) {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
+
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
+
if (channel->owner != sd->status.char_id && !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
- for (k = 0; k < hChSys.colors_count; k++) {
- if (strcmpi(sub2, hChSys.colors_name[k]) == 0)
+
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
+ if (strcmpi(sub2, clif->hChSys->colors_name[k]) == 0)
break;
}
- if (k == hChSys.colors_count) {
+ if (k == clif->hChSys->colors_count) {
sprintf(atcmd_output, msg_txt(1411), sub2);// Unknown color '%s'
clif->message(fd, atcmd_output);
return false;
}
channel->color = k;
- sprintf(atcmd_output, msg_txt(1413),sub1,hChSys.colors_name[k]);// '%s' channel color updated to '%s'
+ sprintf(atcmd_output, msg_txt(1413), sub1, clif->hChSys->colors_name[k]);// '%s' channel color updated to '%s'
clif->message(fd, atcmd_output);
} else if (strcmpi(subcmd,"leave") == 0) {
// sub1 = channel name; sub2 = unused; sub3 = unused
@@ -8907,7 +8875,7 @@ ACMD(channel) {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
+
for (k = 0; k < sd->channel_count; k++) {
if (strcmpi(sub1+1,sd->channels[k]->name) == 0)
break;
@@ -8917,7 +8885,7 @@ ACMD(channel) {
clif->message(fd, atcmd_output);
return false;
}
-
+
sd->gcbind = sd->channels[k];
sprintf(atcmd_output, msg_txt(1431),sub1); // Your global chat is now bound to the '%s' channel
clif->message(fd, atcmd_output);
@@ -8927,34 +8895,34 @@ ACMD(channel) {
clif->message(fd, msg_txt(1432));// Your global chat is not bound to any channel
return false;
}
-
+
sprintf(atcmd_output, msg_txt(1433),sd->gcbind->name); // Your global chat is no longer bound to the '#%s' channel
clif->message(fd, atcmd_output);
-
+
sd->gcbind = NULL;
} else if (strcmpi(subcmd,"ban") == 0) {
// sub1 = channel name; sub2 = unused; sub3 = unused
struct map_session_data *pl_sd = NULL;
struct hChSysBanEntry *entry = NULL;
char sub4[NAME_LENGTH]; ///< player name
-
+
if (sub1[0] != '#') {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
+
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
+
if (channel->owner != sd->status.char_id && !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
+
if (!message || !*message || sscanf(message, "%19s %19s %23[^\n]", subcmd, sub1, sub4) < 3) {
sprintf(atcmd_output, msg_txt(1434), sub4);// Player '%s' was not found
clif->message(fd, atcmd_output);
@@ -8966,59 +8934,53 @@ ACMD(channel) {
clif->message(fd, atcmd_output);
return false;
}
-
+
if (pc_has_permission(pl_sd, PC_PERM_HCHSYS_ADMIN)) {
clif->message(fd, msg_txt(1464)); // Ban failed, not possible to ban this user.
return false;
}
-
+
if (channel->banned && idb_exists(channel->banned,pl_sd->status.account_id)) {
sprintf(atcmd_output, msg_txt(1465), pl_sd->status.name);// Player '%s' is already banned from this channel
clif->message(fd, atcmd_output);
return false;
}
-
+
if (!channel->banned)
channel->banned = idb_alloc(DB_OPT_BASE|DB_OPT_ALLOW_NULL_DATA|DB_OPT_RELEASE_DATA);
-
+
CREATE(entry, struct hChSysBanEntry, 1);
-
safestrncpy(entry->name, pl_sd->status.name, NAME_LENGTH);
-
idb_put(channel->banned, pl_sd->status.account_id, entry);
-
+
clif->chsys_left(channel,pl_sd);
-
+
sprintf(atcmd_output, msg_txt(1437),pl_sd->status.name,sub1); // Player '%s' has now been banned from '%s' channel
clif->message(fd, atcmd_output);
} else if (strcmpi(subcmd,"unban") == 0) {
// sub1 = channel name; sub2 = unused; sub3 = unused
struct map_session_data *pl_sd = NULL;
char sub4[NAME_LENGTH]; ///< player name
-
+
if (sub1[0] != '#') {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
if (channel->owner != sd->status.char_id && !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
if (!channel->banned) {
sprintf(atcmd_output, msg_txt(1439), sub1);// Channel '%s' has no banned players
clif->message(fd, atcmd_output);
return false;
}
-
if (!message || !*message || sscanf(message, "%19s %19s %23[^\n]", subcmd, sub1, sub4) < 3) {
sprintf(atcmd_output, msg_txt(1434), sub4);// Player '%s' was not found
clif->message(fd, atcmd_output);
@@ -9030,20 +8992,18 @@ ACMD(channel) {
clif->message(fd, atcmd_output);
return false;
}
-
if (!idb_exists(channel->banned,pl_sd->status.account_id)) {
sprintf(atcmd_output, msg_txt(1440), pl_sd->status.name);// Player '%s' is not banned from this channel
clif->message(fd, atcmd_output);
return false;
}
-
+
idb_remove(channel->banned, pl_sd->status.account_id);
-
if (!db_size(channel->banned)) {
db_destroy(channel->banned);
channel->banned = NULL;
}
-
+
sprintf(atcmd_output, msg_txt(1441),pl_sd->status.name,sub1); // Player '%s' has now been unbanned from the '%s' channel
clif->message(fd, atcmd_output);
} else if (strcmpi(subcmd,"unbanall") == 0) {
@@ -9052,28 +9012,24 @@ ACMD(channel) {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
if (channel->owner != sd->status.char_id && !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
if (!channel->banned) {
sprintf(atcmd_output, msg_txt(1439), sub1);// Channel '%s' has no banned players
clif->message(fd, atcmd_output);
return false;
}
-
db_destroy(channel->banned);
channel->banned = NULL;
-
+
sprintf(atcmd_output, msg_txt(1442),sub1); // Removed all bans from '%s' channel
clif->message(fd, atcmd_output);
} else if (strcmpi(subcmd,"banlist") == 0) {
@@ -9086,19 +9042,16 @@ ACMD(channel) {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
if (channel->owner != sd->status.char_id && !isA) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
if (!channel->banned) {
sprintf(atcmd_output, msg_txt(1439), sub1);// Channel '%s' has no banned players
clif->message(fd, atcmd_output);
@@ -9106,22 +9059,19 @@ ACMD(channel) {
}
sprintf(atcmd_output, msg_txt(1443), channel->name);// -- '%s' ban list
clif->message(fd, atcmd_output);
-
+
iter = db_iterator(channel->banned);
-
for (data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key)) {
struct hChSysBanEntry * entry = DB->data2ptr(data);
-
+
if (!isA)
sprintf(atcmd_output, msg_txt(1444), entry->name);// - %s %s
else
sprintf(atcmd_output, msg_txt(1445), entry->name, key.i);// - %s (%d)
-
+
clif->message(fd, atcmd_output);
}
-
dbi_destroy(iter);
-
} else if (strcmpi(subcmd,"setopt") == 0) {
// sub1 = channel name; sub2 = option name; sub3 = value
const char* opt_str[3] = {
@@ -9129,34 +9079,28 @@ ACMD(channel) {
"JoinAnnounce",
"MessageDelay",
};
-
if (sub1[0] != '#') {
clif->message(fd, msg_txt(1405));// Channel name must start with a '#'
return false;
}
-
if (!(channel = strdb_get(clif->channel_db, sub1 + 1))) {
sprintf(atcmd_output, msg_txt(1407), sub1);// Channel '%s' is not available
clif->message(fd, atcmd_output);
return false;
}
-
if (channel->owner != sd->status.char_id && !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
sprintf(atcmd_output, msg_txt(1412), sub1);// You're not the owner of channel '%s'
clif->message(fd, atcmd_output);
return false;
}
-
if (sub2[0] == '\0') {
clif->message(fd, msg_txt(1446));// You need to input a option
return false;
}
-
for (k = 1; k < 3; k++) {
if (strcmpi(sub2,opt_str[k]) == 0)
break;
}
-
if (k == 3) {
sprintf(atcmd_output, msg_txt(1447), sub2);// '%s' is not a known channel option
clif->message(fd, atcmd_output);
@@ -9167,7 +9111,6 @@ ACMD(channel) {
}
return false;
}
-
if (sub3[0] == '\0') {
if (k == hChSys_OPT_MSG_DELAY) {
sprintf(atcmd_output, msg_txt(1466), opt_str[k]);// For '%s' you need the amount of seconds (from 0 to 10)
@@ -9228,12 +9171,10 @@ ACMD(channel) {
}
}
}
-
}
} else {
- atcmd_channel_help(fd,command,( hChSys.allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN) ));
+ atcmd_channel_help(fd, command, (clif->hChSys->allow_user_channel_creation || pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)));
}
-
return true;
}
/* debug only, delete after */
@@ -9243,50 +9184,50 @@ ACMD(fontcolor) {
char mout[40];
if( !message || !*message ) {
- for( k = 0; k < hChSys.colors_count; k++ ) {
- msg_len += sprintf(mout, "[ %s ] : %s",command,hChSys.colors_name[k]);
-
+ for( k = 0; k < clif->hChSys->colors_count; k++ ) {
+ msg_len += sprintf(mout, "[ %s ] : %s", command, clif->hChSys->colors_name[k]);
+
WFIFOHEAD(fd,msg_len + 12);
WFIFOW(fd,0) = 0x2C1;
WFIFOW(fd,2) = msg_len + 12;
WFIFOL(fd,4) = 0;
- WFIFOL(fd,8) = hChSys.colors[k];
+ WFIFOL(fd,8) = clif->hChSys->colors[k];
safestrncpy((char*)WFIFOP(fd,12), mout, msg_len);
WFIFOSET(fd, msg_len + 12);
}
return false;
}
-
+
if( message[0] == '0' ) {
sd->fontcolor = 0;
return true;
}
-
- for( k = 0; k < hChSys.colors_count; k++ ) {
- if( strcmpi(message,hChSys.colors_name[k]) == 0 )
+
+ for( k = 0; k < clif->hChSys->colors_count; k++ ) {
+ if (strcmpi(message, clif->hChSys->colors_name[k]) == 0)
break;
}
- if( k == hChSys.colors_count ) {
+ if( k == clif->hChSys->colors_count ) {
sprintf(atcmd_output, msg_txt(1411), message);// Unknown color '%s'
clif->message(fd, atcmd_output);
return false;
}
-
+
sd->fontcolor = k + 1;
- msg_len += sprintf(mout, "Color changed to '%s'",hChSys.colors_name[k]);
-
+ msg_len += sprintf(mout, "Color changed to '%s'", clif->hChSys->colors_name[k]);
+
WFIFOHEAD(fd,msg_len + 12);
WFIFOW(fd,0) = 0x2C1;
WFIFOW(fd,2) = msg_len + 12;
WFIFOL(fd,4) = 0;
- WFIFOL(fd,8) = hChSys.colors[k];
+ WFIFOL(fd,8) = clif->hChSys->colors[k];
safestrncpy((char*)WFIFOP(fd,12), mout, msg_len);
WFIFOSET(fd, msg_len + 12);
return true;
}
ACMD(searchstore){
int val = atoi(message);
-
+
switch( val ) {
case 0://EFFECTTYPE_NORMAL
case 1://EFFECTTYPE_CASH
@@ -9297,7 +9238,6 @@ ACMD(searchstore){
}
searchstore->open(sd, 99, val);
-
return true;
}
ACMD(costume){
@@ -9320,7 +9260,7 @@ ACMD(costume){
#endif
};
unsigned short k = 0, len = ARRAYLENGTH(names);
-
+
if( !message || !*message ) {
for( k = 0; k < len; k++ ) {
if( sd->sc.data[name2id[k]] ) {
@@ -9330,7 +9270,6 @@ ACMD(costume){
return true;
}
}
-
clif->message(sd->fd,msg_txt(1472));
for( k = 0; k < len; k++ ) {
sprintf(atcmd_output,msg_txt(1471),names[k]);//-- %s
@@ -9338,7 +9277,7 @@ ACMD(costume){
}
return false;
}
-
+
for( k = 0; k < len; k++ ) {
if( sd->sc.data[name2id[k]] ) {
sprintf(atcmd_output,msg_txt(1470),names[k]);// You're already with a '%s' costume, type '@costume' to remove it.
@@ -9346,7 +9285,7 @@ ACMD(costume){
return false;
}
}
-
+
for( k = 0; k < len; k++ ) {
if( strcmpi(message,names[k]) == 0 )
break;
@@ -9356,9 +9295,9 @@ ACMD(costume){
clif->message(sd->fd,atcmd_output);
return false;
}
-
+
sc_start(NULL,&sd->bl, name2id[k], 100, 0, -1);
-
+
return true;
}
/* for debugging purposes (so users can easily provide us with debug info) */
@@ -9636,7 +9575,7 @@ void atcommand_basecommands(void) {
ACMD_DEF2("rmvperm", addperm),
ACMD_DEF(unloadnpcfile),
ACMD_DEF(cart),
- ACMD_DEF(mount2),
+ ACMD_DEF(cashmount),
ACMD_DEF(join),
ACMD_DEF(channel),
ACMD_DEF(fontcolor),
@@ -9645,17 +9584,17 @@ void atcommand_basecommands(void) {
ACMD_DEF(skdebug),
};
int i;
-
+
for( i = 0; i < ARRAYLENGTH(atcommand_base); i++ ) {
if(!atcommand->add(atcommand_base[i].command,atcommand_base[i].func,false)) { // Should not happen if atcommand_base[] array is OK
ShowDebug("atcommand_basecommands: duplicate ACMD_DEF for '%s'.\n", atcommand_base[i].command);
continue;
}
}
-
+
/* @commands from plugins */
HPM_map_atcommands();
-
+
return;
}
#undef ACMD_DEF
@@ -9671,12 +9610,12 @@ bool atcommand_add(char *name,AtCommandFunc func, bool replace) {
CREATE(cmd, AtCommandInfo, 1);
strdb_put(atcommand->db, name, cmd);
}
-
+
safestrncpy(cmd->command, name, sizeof(cmd->command));
cmd->func = func;
cmd->help = NULL;
cmd->log = true;
-
+
return true;
}
@@ -9870,7 +9809,7 @@ bool atcommand_exec(const int fd, struct map_session_data *sd, const char *messa
if( battle_config.idletime_criteria & BCIDLE_ATCOMMAND )
sd->idletime = sockt->last_tick;
-
+
//Clearing these to be used once more.
memset(command, '\0', sizeof(command));
memset(params, '\0', sizeof(params));
@@ -9896,7 +9835,7 @@ bool atcommand_exec(const int fd, struct map_session_data *sd, const char *messa
) {
// Check if self or character invoking; if self == character invoked, then self invoke.
bool invokeFlag = ((*atcmd_msg == atcommand->at_symbol) ? 1 : 0);
-
+
// Check if the command initiated is a character command
if (*message == atcommand->char_symbol
&& (ssd = map->nick2sd(charname)) == NULL
@@ -9906,10 +9845,10 @@ bool atcommand_exec(const int fd, struct map_session_data *sd, const char *messa
clif->message(fd, output);
return true;
}
-
+
if( binding->log ) /* log only if this command should be logged [Ind/Hercules] */
logs->atcommand(sd, atcmd_msg);
-
+
npc->do_atcmd_event((invokeFlag ? sd : ssd), command, params, binding->npc_event);
return true;
}
@@ -9947,7 +9886,7 @@ bool atcommand_exec(const int fd, struct map_session_data *sd, const char *messa
}
}
}
-
+
// Check if target is valid only if confirmed that player can use command.
if (*message == atcommand->char_symbol
&& (ssd = map->nick2sd(charname)) == NULL
@@ -9961,8 +9900,7 @@ bool atcommand_exec(const int fd, struct map_session_data *sd, const char *messa
//Attempt to use the command
if ( (info->func(fd, (*atcmd_msg == atcommand->at_symbol) ? sd : ssd, command, params,info) != true) ) {
#ifdef AUTOTRADE_PERSISTENCY
- // Autotrade was successful if standalone is set
- if( ((*atcmd_msg == atcommand->at_symbol) ? sd->state.standalone : ssd->state.standalone) )
+ if( info->func == atcommand_autotrade ) /** autotrade deletes caster, so we got nothing more to do here **/
return true;
#endif
sprintf(output,msg_txt(154), command); // %s failed.
@@ -10023,7 +9961,7 @@ void atcommand_config_read(const char* config_filename) {
if (config_setting_type(command) != CONFIG_TYPE_ARRAY)
continue;
commandname = config_setting_name(command);
- if ( !( commandinfo = atcommand_exists(commandname) ) ) {
+ if ( !( commandinfo = atcommand->exists(commandname) ) ) {
ShowConfigWarning(command, "atcommand_config_read: can not set alias for non-existent command %s", commandname);
continue;
}
@@ -10050,22 +9988,22 @@ void atcommand_config_read(const char* config_filename) {
if (nolog != NULL) {
int i = 0;
int count = libconfig->setting_length(nolog);
-
+
for (i = 0; i < count; ++i) {
config_setting_t *command;
const char *commandname = NULL;
AtCommandInfo *commandinfo = NULL;
-
+
command = libconfig->setting_get_elem(nolog, i);
commandname = config_setting_name(command);
- if ( !( commandinfo = atcommand_exists(commandname) ) ) {
+ if ( !( commandinfo = atcommand->exists(commandname) ) ) {
ShowConfigWarning(command, "atcommand_config_read: can not disable logging for non-existent command %s", commandname);
continue;
}
commandinfo->log = false;
}
}
-
+
// Commands help
// We only check if all commands exist
help = libconfig->lookup(&atcommand_config, "help");
@@ -10080,7 +10018,7 @@ void atcommand_config_read(const char* config_filename) {
command = libconfig->setting_get_elem(help, i);
commandname = config_setting_name(command);
- if ( !( commandinfo = atcommand_exists(commandname) ) )
+ if ( !( commandinfo = atcommand->exists(commandname) ) )
ShowConfigWarning(command, "atcommand_config_read: command %s does not exist", commandname);
else {
if( commandinfo->help == NULL ) {
@@ -10094,7 +10032,7 @@ void atcommand_config_read(const char* config_filename) {
}
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' command aliases in '"CL_WHITE"%s"CL_RESET"'.\n", num_aliases, config_filename);
-
+
libconfig->destroy(&atcommand_config);
return;
}
@@ -10127,7 +10065,7 @@ void atcommand_db_load_groups(GroupSettings **groups, config_setting_t **command
config_setting_t *commands = commands_[i];
int result = 0;
int idx = -1;
-
+
if (group == NULL) {
ShowError("atcommand_db_load_groups: group is NULL\n");
continue;
@@ -10138,12 +10076,12 @@ void atcommand_db_load_groups(GroupSettings **groups, config_setting_t **command
ShowError("atcommand_db_load_groups: index (%d) out of bounds [0,%"PRIuS"]\n", idx, sz - 1);
continue;
}
-
+
if (pcg->has_permission(group, PC_PERM_USE_ALL_COMMANDS)) {
atcmd->at_groups[idx] = atcmd->char_groups[idx] = 1;
continue;
}
-
+
if (commands != NULL) {
config_setting_t *cmd = NULL;
@@ -10173,28 +10111,28 @@ void atcommand_db_load_groups(GroupSettings **groups, config_setting_t **command
bool atcommand_can_use(struct map_session_data *sd, const char *command) {
AtCommandInfo *info = atcommand->get_info_byname(atcommand->check_alias(command + 1));
-
+
if (info == NULL)
return false;
-
+
if ((*command == atcommand->at_symbol && info->at_groups[pcg->get_idx(sd->group)] != 0) ||
(*command == atcommand->char_symbol && info->char_groups[pcg->get_idx(sd->group)] != 0) ) {
return true;
}
-
+
return false;
}
bool atcommand_can_use2(struct map_session_data *sd, const char *command, AtCommandType type) {
AtCommandInfo *info = atcommand->get_info_byname(atcommand->check_alias(command));
-
+
if (info == NULL)
return false;
-
+
if ((type == COMMAND_ATCOMMAND && info->at_groups[pcg->get_idx(sd->group)] != 0) ||
(type == COMMAND_CHARCOMMAND && info->char_groups[pcg->get_idx(sd->group)] != 0) ) {
return true;
}
-
+
return false;
}
bool atcommand_hp_add(char *name, AtCommandFunc func) {
@@ -10204,7 +10142,7 @@ bool atcommand_hp_add(char *name, AtCommandFunc func) {
ShowDebug("atcommand_hp_add: Commands can't be added after server is ready, skipping '%s'...\n",name);
return false;
}
-
+
return HPM_map_add_atcommand(name,func);
}
@@ -10249,7 +10187,7 @@ void do_init_atcommand(bool minimal) {
atcommand->at_symbol = '@';
atcommand->char_symbol = '#';
atcommand->binding_count = 0;
-
+
atcommand->doload();
}
@@ -10259,15 +10197,15 @@ void do_final_atcommand(void) {
void atcommand_defaults(void) {
atcommand = &atcommand_s;
-
+
atcommand->db = NULL;
atcommand->alias_db = NULL;
-
+
memset(atcommand->msg_table, 0, sizeof(atcommand->msg_table));
-
+
atcommand->init = do_init_atcommand;
atcommand->final = do_final_atcommand;
-
+
atcommand->exec = atcommand_exec;
atcommand->create = atcommand_hp_add;
atcommand->can_use = atcommand_can_use;
diff --git a/src/map/battle.c b/src/map/battle.c
index fc159c921..ddad2c705 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -218,11 +218,11 @@ int battle_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
}
src = map->id2bl(dat->src_id);
-
+
//Check to see if you haven't teleported. [Skotlex]
- if( src && target->m == src->m
+ if( src
&& (target->type != BL_PC || ((TBL_PC*)target)->invincible_timer == INVALID_TIMER)
- && check_distance_bl(src, target, dat->distance)
+ && (dat->skill_id == MO_EXTREMITYFIST || (target->m == src->m && check_distance_bl(src, target, dat->distance)) )
) {
map->freeblock_lock();
status_fix_damage(src, target, dat->damage, dat->delay);
@@ -239,7 +239,7 @@ int battle_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
status_fix_damage(target, target, dat->damage, dat->delay);
map->freeblock_unlock();
}
-
+
if( src && src->type == BL_PC && --((TBL_PC*)src)->delayed_damage == 0 && ((TBL_PC*)src)->state.hold_recalc ) {
((TBL_PC*)src)->state.hold_recalc = 0;
status_calc_pc(((TBL_PC*)src),SCO_FORCE);
@@ -252,12 +252,16 @@ int battle_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
int battle_delay_damage(int64 tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, uint16 skill_id, uint16 skill_lv, int64 damage, enum damage_lv dmg_lv, int ddelay, bool additional_effects) {
struct delay_damage *dat;
struct status_change *sc;
+ struct block_list *d_tbl = NULL;
nullpo_ret(src);
nullpo_ret(target);
sc = status->get_sc(target);
- if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
+ if (sc && sc->data[SC_DEVOTION] && sc->data[SC_DEVOTION]->val1)
+ d_tbl = map->id2bl(sc->data[SC_DEVOTION]->val1);
+
+ if( d_tbl && check_distance_bl(target, d_tbl, sc->data[SC_DEVOTION]->val3) && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
damage = 0;
if ( !battle_config.delay_battle_damage || amotion <= 1 ) {
@@ -279,7 +283,7 @@ int battle_delay_damage(int64 tick, int amotion, struct block_list *src, struct
dat->damage = damage;
dat->dmg_lv = dmg_lv;
dat->delay = ddelay;
- dat->distance = distance_bl(src, target)+10; //Attack should connect regardless unless you teleported.
+ dat->distance = distance_bl(src, target) + (battle_config.snap_dodge ? 10 : battle_config.area_size);
dat->additional_effects = additional_effects;
dat->src_type = src->type;
if (src->type != BL_PC && amotion > 1000)
@@ -288,7 +292,7 @@ int battle_delay_damage(int64 tick, int amotion, struct block_list *src, struct
if( src->type == BL_PC ) {
((TBL_PC*)src)->delayed_damage++;
}
-
+
timer->add(tick+amotion, battle->delay_damage_sub, 0, (intptr_t)dat);
return 0;
@@ -397,24 +401,7 @@ int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 d
break;
}
} //end tsc check
- if( src && src->type == BL_PC ){
- struct map_session_data *sd = BL_CAST(BL_PC, src);
- int s;
-
- ARR_FIND(1, 6, s, sd->charm[s] > 0);
-
- if( s < 5 && atk_elem == s )
- ratio += sd->charm[s] * 2; // +2% custom value
- }
- if( target && target->type == BL_PC ) {
- struct map_session_data *tsd = BL_CAST(BL_PC, target);
- int t;
- ARR_FIND(1, 6, t, tsd->charm[t] > 0);
-
- if( t < 5 && atk_elem == t )
- damage -= damage * ( tsd->charm[t] * 3 ) / 100;// -3% custom value
- }
if( ratio < 100 )
return damage - (damage * (100 - ratio) / 100);
else
@@ -433,13 +420,13 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
sd = BL_CAST(BL_PC, src);
damage = status->get_weapon_atk(src, watk, flag);
-
+
if( sd ){
if( type == EQI_HAND_R )
damage = battle->calc_sizefix(sd, damage, EQI_HAND_R, size, flag&8);
else
damage = battle->calc_sizefix(sd, damage, EQI_HAND_L, size, flag&8);
-
+
if( flag&2 && sd->bonus.arrow_atk )
damage += sd->bonus.arrow_atk;
@@ -447,15 +434,18 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
eatk = sd->base_status.equip_atk;
}
+ if ( skill_id == TF_POISON )
+ eatk += 15 * skill_lv;
+
if( sc && sc->count ){
if( sc->data[SC_ZENKAI] && watk->ele == sc->data[SC_ZENKAI]->val2 )
eatk += 200;
- #ifdef RENEWAL_EDP
+#ifdef RENEWAL_EDP
if( sc->data[SC_EDP] && skill_id != AS_GRIMTOOTH && skill_id != AS_VENOMKNIFE && skill_id != ASC_BREAKER ){
eatk = eatk * (sc->data[SC_EDP]->val4 / 100 - 1);
damage = damage * (sc->data[SC_EDP]->val4 / 100);
}
- #endif
+#endif
}
if( skill_id != ASC_METEORASSAULT ){
@@ -475,7 +465,7 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
// attacker side
damage = battle->calc_cardfix(BF_WEAPON, src, bl, nk, s_ele, s_ele_, damage, 2|(type == EQI_HAND_L), flag2);
-
+
// target side
damage = battle->calc_cardfix(BF_WEAPON, src, bl, nk, s_ele, s_ele_, damage, 0, flag2);
@@ -500,14 +490,23 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
int64 battle_calc_base_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2) {
int64 damage, batk;
struct status_data *st = status->get_status_data(src);
-
- batk = battle->calc_elefix(src, bl, skill_id, skill_lv, status->calc_batk(bl, status->get_sc(src), st->batk, false), nk, n_ele, ELE_NEUTRAL, ELE_NEUTRAL, false, flag);
+ struct status_change *sc = status->get_sc(src);
+
+ if (src->type == BL_PC){
+ // Property from mild wind bypasses it
+ if (sc && sc->data[SC_TK_SEVENWIND])
+ batk = battle->calc_elefix(src, bl, skill_id, skill_lv, status->calc_batk(bl, sc, st->batk, false), nk, n_ele, s_ele, s_ele_, false, flag);
+ else
+ batk = battle->calc_elefix(src, bl, skill_id, skill_lv, status->calc_batk(bl, sc, st->batk, false), nk, n_ele, ELE_NEUTRAL, ELE_NEUTRAL, false, flag);
+ if (type == EQI_HAND_L)
+ damage = batk + 3 * battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->lhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2) / 4;
+ else
+ damage = (batk << 1) + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2);
+ }
+ else{
+ damage = st->batk + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2);
+ }
- if( type == EQI_HAND_L )
- damage = batk + 3 * battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->lhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2) / 4;
- else
- damage = (batk << 1) + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2);
-
return damage;
}
int64 battle_calc_base_damage2(struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) {
@@ -654,10 +653,10 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in
break;
case W_1HSPEAR:
case W_2HSPEAR:
- if((skill_lv = pc->checkskill(sd,KN_SPEARMASTERY)) > 0) {
- if(pc_isridingdragon(sd))
+ if ((skill_lv = pc->checkskill(sd,KN_SPEARMASTERY)) > 0) {
+ if (pc_isridingdragon(sd))
damage += (skill_lv * 10);
- else if(pc_isriding(sd))
+ else if (pc_isridingpeco(sd))
damage += (skill_lv * 5);
else
damage += (skill_lv * 4);
@@ -717,14 +716,14 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
nullpo_ret(src);
nullpo_ret(target);
-
+
sc = status->get_sc(src);
sd = BL_CAST(BL_PC, src);
tstatus = status->get_status_data(target);
if ( !sd )
return damage;
-
+
damage = battle->add_mastery(sd, target, damage, left);
switch( skill_id ){ // specific skill masteries
@@ -759,7 +758,7 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
damage += 40 * pc->checkskill(sd, RA_RESEARCHTRAP);
break;
}
-
+
if( sc ){ // sc considered as masteries
if(sc->data[SC_GN_CARTBOOST])
damage += 10 * sc->data[SC_GN_CARTBOOST]->val1;
@@ -771,25 +770,27 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
if(sc->data[SC_IMPOSITIO])
damage += sc->data[SC_IMPOSITIO]->val2;
if(sc->data[SC_DRUMBATTLE]){
- if(tstatus->size == SZ_MEDIUM)
+ if(tstatus->size == SZ_SMALL)
damage += sc->data[SC_DRUMBATTLE]->val2;
- else if(tstatus->size == SZ_SMALL)
+ else if(tstatus->size == SZ_MEDIUM)
damage += 10 * sc->data[SC_DRUMBATTLE]->val1;
//else no bonus for large target
}
if(sc->data[SC_GS_MADNESSCANCEL])
damage += 100;
if(sc->data[SC_GS_GATLINGFEVER]){
- if(tstatus->size == SZ_MEDIUM)
+ if(tstatus->size == SZ_SMALL)
damage += 10 * sc->data[SC_GS_GATLINGFEVER]->val1;
- else if(tstatus->size == SZ_SMALL)
+ else if(tstatus->size == SZ_MEDIUM)
damage += -5 * sc->data[SC_GS_GATLINGFEVER]->val1;
else
damage += sc->data[SC_GS_GATLINGFEVER]->val1;
}
- //if(sc->data[SC_SPECIALZONE])
- // damage += sc->data[SC_SPECIALZONE]->val2 >> 4;
-#endif
+#if 0
+ if(sc->data[SC_SPECIALZONE])
+ damage += sc->data[SC_SPECIALZONE]->val2 >> 4;
+#endif // 0
+#endif // RENEWAL
}
// general skill masteries
@@ -841,12 +842,12 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target,
*------------------------------------------*/
int64 battle_calc_elefix(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int nk, int n_ele, int s_ele, int s_ele_, bool left, int flag){
struct status_data *tstatus;
-
+
nullpo_ret(src);
nullpo_ret(target);
tstatus = status->get_status_data(target);
-
+
if( (nk&NK_NO_ELEFIX) || n_ele )
return damage;
@@ -865,12 +866,12 @@ int64 battle_calc_elefix(struct block_list *src, struct block_list *target, uint
damage += battle->attr_fix(src,target,50*skill_lv,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv);
}
}
-
+
#ifndef RENEWAL
{
struct status_data *sstatus;
struct status_change *sc;
-
+
sstatus = status->get_status_data(src);
sc = status->get_sc(src);
@@ -889,8 +890,8 @@ int64 battle_calc_elefix(struct block_list *src, struct block_list *target, uint
/*==========================================
* Calculates card bonuses damage adjustments.
* cflag(cardfix flag):
- * &1 - calc for left hand.
- * &2 - atker side cardfix(BF_WEAPON) otherwise target side(BF_WEAPON).
+ * &1 - calc for left hand.
+ * &2 - atker side cardfix(BF_WEAPON) otherwise target side(BF_WEAPON).
*------------------------------------------*/
int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_list *target, int nk, int s_ele, int s_ele_, int64 damage, int cflag, int wflag){
struct map_session_data *sd, *tsd;
@@ -900,7 +901,7 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
if( !damage )
return 0;
-
+
nullpo_ret(src);
nullpo_ret(target);
@@ -911,7 +912,7 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
sstatus = status->get_status_data(src);
tstatus = status->get_status_data(target);
s_race2 = status->get_race2(src);
-
+
switch(attack_type){
case BF_MAGIC:
if ( sd && !(nk&NK_NO_CARDFIX_ATK) ) {
@@ -1124,7 +1125,7 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
}
}
cardfix = cardfix * (100-tsd->subsize[sstatus->size]) / 100;
- cardfix = cardfix * (100-tsd->subrace2[s_race2]) / 100;
+ cardfix = cardfix * (100-tsd->subrace2[s_race2]) / 100;
cardfix = cardfix * (100-tsd->subrace[sstatus->race]) / 100;
cardfix = cardfix * (100-tsd->subrace[is_boss(src)?RC_BOSS:RC_NONBOSS]) / 100;
if( sstatus->race != RC_DEMIHUMAN )
@@ -1202,13 +1203,13 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
struct map_session_data *sd, *tsd;
struct status_change *sc, *tsc;
int i;
-
+
if( !damage )
return 0;
-
+
nullpo_ret(src);
nullpo_ret(target);
-
+
sd = BL_CAST(BL_PC, src);
tsd = BL_CAST(BL_PC, target);
sstatus = status->get_status_data(src);
@@ -1219,10 +1220,10 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
switch(attack_type){
case BF_WEAPON:
{
- /** Take note in RE
- * def1 = equip def
- * def2 = status def
- **/
+ /* Take note in RE
+ * def1 = equip def
+ * def2 = status def
+ */
defType def1 = status->get_def(target); //Don't use tstatus->def1 due to skill timer reductions.
short def2 = tstatus->def2, vit_def;
#ifdef RENEWAL
@@ -1233,14 +1234,16 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
def2 = status->calc_def2(target, tsc, def2, false); // status def(RE)
#endif
- if( sd ){
- i = sd->ignore_def[is_boss(target)?RC_BOSS:RC_NONBOSS];
+ if ( sd ) {
+ i = sd->ignore_def[is_boss(target) ? RC_BOSS : RC_NONBOSS];
i += sd->ignore_def[tstatus->race];
- if( i ){
- if( i > 100 ) i = 100;
+ if ( i ) {
+ if ( i > 100 ) i = 100;
def1 -= def1 * i / 100;
def2 -= def2 * i / 100;
}
+ if ( sd->spiritcharm[SPIRITS_TYPE_CHARM_LAND] > 0 ) // hidden from status window
+ def1 += 10 * def1 * sd->spiritcharm[SPIRITS_TYPE_CHARM_LAND] / 100;
}
if( sc && sc->data[SC_EXPIATIO] ){
@@ -1248,7 +1251,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
def1 -= def1 * i / 100;
def2 -= def2 * i / 100;
}
-
+
if( battle_config.vit_penalty_type && battle_config.vit_penalty_target&target->type ) {
unsigned char target_count; //256 max targets should be a sane max
target_count = unit->counttargeted(target);
@@ -1267,8 +1270,8 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
if(def2 < 1) def2 = 1;
}
//Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def
- if (tsd) //Sd vit-eq
- {
+ if (tsd) {
+ //Sd vit-eq
#ifndef RENEWAL
//[VIT*0.5] + rnd([VIT*0.3], max([VIT*0.3],[VIT^2/150]-1))
vit_def = def2*(def2-15)/150;
@@ -1292,7 +1295,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
vit_def = def2;
#endif
}
-
+
if (battle_config.weapon_defense_type) {
vit_def += def1*battle_config.weapon_defense_type;
def1 = 0;
@@ -1316,7 +1319,6 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
else
damage = (int)((100.0f - def1 / (def1 + 400.0f) * 90.0f) / 100.0f * damage - vit_def);
}
-
#else
if( def1 > 100 ) def1 = 100;
if( !(flag&1) ){
@@ -1332,7 +1334,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
break;
case BF_MAGIC:
- {
+ {
defType mdef = tstatus->mdef;
short mdef2= tstatus->mdef2;
#ifdef RENEWAL
@@ -1370,7 +1372,7 @@ int64 battle_calc_defense(int attack_type, struct block_list *src, struct block_
else
damage = damage * (100-mdef)/100 - mdef2;
#endif
- }
+ }
break;
}
return damage;
@@ -1396,7 +1398,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
int i;
struct status_change *sc, *tsc;
struct map_session_data *sd, *tsd;
- struct status_data *st, *tst;
+ struct status_data *st, *tst, *bst;
nullpo_ret(src);
nullpo_ret(target);
@@ -1406,6 +1408,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
sc = status->get_sc(src);
tsc = status->get_sc(target);
st = status->get_status_data(src);
+ bst = status->get_base_status(src);
tst = status->get_status_data(target);
switch(attack_type){
@@ -1452,9 +1455,9 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
case WZ_FIREPILLAR:
if (skill_lv > 10)
- skillratio += 100;
+ skillratio += 2300; //200% MATK each hit
else
- skillratio -= 80;
+ skillratio += -60 + 20*skill_lv; //20% MATK each hit
break;
case WZ_SIGHTRASHER:
skillratio += 20 * skill_lv;
@@ -1479,20 +1482,38 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
case NJ_KOUENKA:
skillratio -= 10;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE] > 0 )
+ skillratio += 20 * sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE];
break;
case NJ_KAENSIN:
skillratio -= 50;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE] > 0 )
+ skillratio += 10 * sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE];
break;
case NJ_BAKUENRYU:
- skillratio += 50 * (skill_lv-1);
+ skillratio += 50 * (skill_lv - 1);
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE] > 0 )
+ skillratio += 15 * sd->spiritcharm[SPIRITS_TYPE_CHARM_FIRE];
break;
+#ifdef RENEWAL
+ case NJ_HYOUSENSOU:
+ skillratio -= 30;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_WATER] > 0 )
+ skillratio += 5 * sd->spiritcharm[SPIRITS_TYPE_CHARM_WATER];
+#endif
case NJ_HYOUSYOURAKU:
skillratio += 50 * skill_lv;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_WATER] > 0 )
+ skillratio += 25 * sd->spiritcharm[SPIRITS_TYPE_CHARM_WATER];
break;
case NJ_RAIGEKISAI:
skillratio += 60 + 40 * skill_lv;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND] > 0 )
+ skillratio += 15 * sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND];
break;
case NJ_KAMAITACHI:
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND] > 0 )
+ skillratio += 10 * sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND];
case NPC_ENERGYDRAIN:
skillratio += 100 * skill_lv;
break;
@@ -1505,19 +1526,21 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
skillratio += 25;
break;
case WZ_VERMILION:
- {
- int interval = 0, per = interval, ratio = per;
- while( (per++) < skill_lv ){
- ratio += interval;
- if(per%3==0) interval += 20;
- }
- if( skill_lv > 9 )
- ratio -= 10;
- skillratio += ratio;
+ {
+ int interval = 0, per = interval, ratio = per;
+ while( (per++) < skill_lv ){
+ ratio += interval;
+ if(per%3==0) interval += 20;
}
+ if( skill_lv > 9 )
+ ratio -= 10;
+ skillratio += ratio;
+ }
break;
case NJ_HUUJIN:
skillratio += 50;
+ if ( sd && sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND] > 0 )
+ skillratio += 20 * sd->spiritcharm[SPIRITS_TYPE_CHARM_WIND];
break;
#else
case WZ_VERMILION:
@@ -1739,12 +1762,12 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
skillratio += 100 * skill_lv;
break;
case KO_KAIHOU:
- if( sd ){
- ARR_FIND(1, 6, i, sd->charm[i] > 0);
- if( i < 5 ){
- skillratio += -100 + 200 * sd->charm[i];
+ if ( sd ) {
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ if ( i < SPIRITS_TYPE_SPHERE ) {
+ skillratio += -100 + 200 * sd->spiritcharm[i];
RE_LVL_DMOD(100);
- pc->del_charm(sd, sd->charm[i], i);
+ pc->del_charm(sd, sd->spiritcharm[i], i);
}
}
break;
@@ -1903,7 +1926,8 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
#ifndef RENEWAL
case MO_EXTREMITYFIST:
- { //Overflow check. [Skotlex]
+ {
+ //Overflow check. [Skotlex]
unsigned int ratio = skillratio + 100*(8 + st->sp/10);
//You'd need something like 6K SP to reach this max, so should be fine for most purposes.
if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
@@ -2054,11 +2078,6 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
case NJ_KIRIKAGE:
skillratio += 100 * (skill_lv-1);
break;
-#ifdef RENEWAL
- case NJ_KUNAI:
- skillratio += 50 + 150 * skill_lv;
- break;
-#endif
case KN_CHARGEATK:
{
int k = (flag-1)/3; //+100% every 3 cells of distance
@@ -2072,10 +2091,10 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
case MO_BALKYOUNG:
skillratio += 200;
break;
- case HFLI_MOON: //[orn]
+ case HFLI_MOON: //[orn]
skillratio += 10 + 110 * skill_lv;
break;
- case HFLI_SBR44: //[orn]
+ case HFLI_SBR44: //[orn]
skillratio += 100 * (skill_lv-1);
break;
case NPC_VAMPIRE_GIFT:
@@ -2196,17 +2215,17 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
case NC_VULCANARM:
skillratio = 70 * skill_lv + status_get_dex(src);
- RE_LVL_DMOD(100);
+ RE_LVL_DMOD(120);
break;
case NC_FLAMELAUNCHER:
case NC_COLDSLOWER:
- skillratio += 200 + 100 * skill_lv + status_get_str(src);
- RE_LVL_DMOD(100);
+ skillratio += 200 + 300 * skill_lv;
+ RE_LVL_DMOD(150);
break;
case NC_ARMSCANNON:
switch( tst->size ) {
- case SZ_MEDIUM: skillratio = 300 + 350 * skill_lv; break; // Medium
- case SZ_SMALL: skillratio = 300 + 400 * skill_lv; break; // Small
+ case SZ_SMALL: skillratio = 300 + 350 * skill_lv; break; // Medium
+ case SZ_MEDIUM: skillratio = 300 + 400 * skill_lv; break; // Small
case SZ_BIG: skillratio = 300 + 300 * skill_lv; break; // Large
}
RE_LVL_DMOD(120);
@@ -2228,17 +2247,20 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(100);
if( st->rhw.ele == ELE_WIND )
skillratio = skillratio * 125 / 100;
- if ( distance_bl(src, target) > 2 ) // Will deal 75% damage outside of 5x5 area.
+ if ( distance_bl(src, target) > 2 ) // Will deal 75% damage outside of 5x5 area.
skillratio = skillratio * 75 / 100;
break;
case SC_FATALMENACE:
- skillratio = 100 * (skill_lv+1) * status->get_lv(src) / 100;
+ skillratio = 100 * (skill_lv+1);
+ RE_LVL_DMOD(100);
break;
case SC_TRIANGLESHOT:
- skillratio = ( 300 + (skill_lv-1) * status_get_agi(src)/2 ) * status->get_lv(src) / 120;
+ skillratio = ( 300 + (skill_lv-1) * status_get_agi(src)/2 );
+ RE_LVL_DMOD(120);
break;
case SC_FEINTBOMB:
- skillratio = (skill_lv+1) * (st->dex/2) * (sd?sd->status.job_level:50)/10 * status->get_lv(src) / 120;
+ skillratio = (skill_lv+1) * (st->dex/2) * (sd?sd->status.job_level:50)/10;
+ RE_LVL_DMOD(120);
break;
case LG_CANNONSPEAR:
skillratio = (50 + st->str) * skill_lv;
@@ -2282,15 +2304,15 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(100);
break;
case LG_OVERBRAND:
- skillratio += -100 + 50 * (((sd) ? pc->checkskill(sd,CR_SPEARQUICKEN) : 1) + 8 * skill_lv);
- RE_LVL_DMOD(150);
+ skillratio += -100 + 400 * skill_lv + 50 * ((sd) ? pc->checkskill(sd,CR_SPEARQUICKEN) : 1);
+ RE_LVL_DMOD(100);
break;
case LG_OVERBRAND_BRANDISH:
skillratio += -100 + 300 * skill_lv + status_get_str(src) + status_get_dex(src);
- RE_LVL_DMOD(150);
+ RE_LVL_DMOD(100);
break;
case LG_OVERBRAND_PLUSATK:
- skillratio += -100 + 100 * skill_lv;
+ skillratio = 200 * skill_lv + rnd_value( 10, 100);
RE_LVL_DMOD(100);
break;
case LG_RAYOFGENESIS:
@@ -2306,7 +2328,14 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(100);
break;
case LG_HESPERUSLIT:
- skillratio += 120 * skill_lv - 100;
+ skillratio = 120 * skill_lv;
+ if( sc && sc->data[SC_BANDING] )
+ skillratio += 200 * sc->data[SC_BANDING]->val2;
+ if( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 5 )
+ skillratio = skillratio * 150 / 100;
+ if( sc && sc->data[SC_INSPIRATION] )
+ skillratio += 600;
+ RE_LVL_DMOD(100);
break;
case SR_DRAGONCOMBO:
skillratio += 40 * skill_lv;
@@ -2334,7 +2363,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
case SR_FALLENEMPIRE:// ATK [(Skill Level x 150 + 100) x Caster Base Level / 150] %
skillratio += 150 *skill_lv;
RE_LVL_DMOD(150);
- break;
+ break;
case SR_TIGERCANNON:// ATK [((Caster consumed HP + SP) / 4) x Caster Base Level / 100] %
{
int hp = status_get_max_hp(src) * (10 + 2 * skill_lv) / 100,
@@ -2411,9 +2440,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
case GN_CART_TORNADO:
{
- int strbonus = st->str; // FIXME Supposed to take only base STR, but current code wont allow that. So well just take STR for now. [Rytech]
- if ( strbonus > 130 ) // Max base stat limit on official is 130. So well allow no higher then 125 STR here. This limit prevents
- strbonus = 130; // the division from going any lower then 30 so the server wont divide by 0 if someone has 150 STR.
+ int strbonus = bst->str;
skillratio = 50 * skill_lv + (sd ? sd->cart_weight : battle_config.max_cart_weight) / 10 / (150 - strbonus) + 50 * (sd ? pc->checkskill(sd, GN_REMODELING_CART) : 5);
}
break;
@@ -2489,6 +2516,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(120);
if( tsc && tsc->data[SC_KO_JYUMONJIKIRI] )
skillratio += status->get_lv(src) * skill_lv;
+ break;
case KO_HUUMARANKA:
skillratio += -100 + 150 * skill_lv + status_get_agi(src) + status_get_dex(src) + 100 * (sd ? pc->checkskill(sd, NJ_HUUMA) : 0);
break;
@@ -2496,11 +2524,6 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
skillratio += -100 + 100 * skill_lv;
RE_LVL_DMOD(100);
break;
- case KO_BAKURETSU:
- skillratio += -100 + (50 + status_get_dex(src) / 4) * skill_lv * (sd?pc->checkskill(sd,NJ_TOBIDOUGU):10) * 4 / 100;
- RE_LVL_DMOD(120);
- skillratio += 10 * (sd ? sd->status.job_level : 0);
- break;
case MH_NEEDLE_OF_PARALYZE:
skillratio += 600 + 100 * skill_lv;
break;
@@ -2689,14 +2712,11 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
sc_start2(src,bl,SC_COMBOATTACK,100,GC_WEAPONBLOCKING,src->id,2000);
return 0;
}
- if( sc->data[SC_HOVERING] && skill_id && (skill->get_inf(skill_id)&INF_GROUND_SKILL || skill_id == SR_WINDMILL) ) {
- d->dmg_lv = ATK_BLOCK;
- return 0;
- }
- if( (sce=sc->data[SC_AUTOGUARD]) && flag&BF_WEAPON && !(skill->get_nk(skill_id)&NK_NO_CARDFIX_ATK) && rnd()%100 < sce->val2 )
- {
+ if ((sce=sc->data[SC_AUTOGUARD]) && flag&BF_WEAPON && !(skill->get_nk(skill_id)&NK_NO_CARDFIX_ATK) && rnd()%100 < sce->val2) {
int delay;
- clif->skill_nodamage(bl,bl,CR_AUTOGUARD,sce->val1,1);
+ struct block_list *d_bl = NULL;
+ struct status_change_entry *sce_d = sc->data[SC_DEVOTION];
+
// different delay depending on skill level [celest]
if (sce->val1 <= 5)
delay = 300;
@@ -2704,12 +2724,31 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
delay = 200;
else
delay = 100;
- unit->set_walkdelay(bl, timer->gettick(), delay, 1);
- if(sc->data[SC_CR_SHRINK] && rnd()%100<5*sce->val1)
- skill->blown(bl,src,skill->get_blewcount(CR_SHRINK,1),-1,0);
- d->dmg_lv = ATK_MISS;
- return 0;
+ if (sce_d) {
+ // If the target is too far away from the devotion caster, autoguard has no effect
+ // Autoguard will be disabled later on
+ if ((d_bl = map->id2bl(sce_d->val1)) && check_distance_bl(bl, d_bl, sce_d->val3)
+ && ((d_bl->type == BL_MER && ((TBL_MER*)d_bl)->master && ((TBL_MER*)d_bl)->master->bl.id == bl->id)
+ || (d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce_d->val2] == bl->id))
+ ) {
+ // if player is target of devotion, show guard effect on the devotion caster rather than the target
+ clif->skill_nodamage(d_bl, d_bl, CR_AUTOGUARD, sce->val1, 1);
+ unit->set_walkdelay(d_bl, timer->gettick(), delay, 1);
+
+ d->dmg_lv = ATK_MISS;
+ return 0;
+ }
+ } else {
+ clif->skill_nodamage(bl, bl, CR_AUTOGUARD, sce->val1, 1);
+ unit->set_walkdelay(bl, timer->gettick(), delay, 1);
+
+ if(sc->data[SC_CR_SHRINK] && rnd()%100<5*sce->val1)
+ skill->blown(bl,src,skill->get_blewcount(CR_SHRINK,1),-1,0);
+
+ d->dmg_lv = ATK_MISS;
+ return 0;
+ }
}
if( (sce = sc->data[SC_MILLENNIUMSHIELD]) && sce->val2 > 0 && damage > 0 ) {
@@ -2745,14 +2784,14 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
return 0;
}
- if((sc->data[SC_HERMODE] || sc->data[SC_HOVERING]) && flag&BF_MAGIC)
+ if((sc->data[SC_HERMODE]) && flag&BF_MAGIC)
return 0;
if(sc->data[SC_NJ_TATAMIGAESHI] && (flag&(BF_MAGIC|BF_LONG)) == BF_LONG)
return 0;
- if((sce=sc->data[SC_KAUPE]) && rnd()%100 < sce->val2)
- { //Kaupe blocks damage (skill or otherwise) from players, mobs, homuns, mercenaries.
+ if ((sce=sc->data[SC_KAUPE]) && rnd()%100 < sce->val2) {
+ //Kaupe blocks damage (skill or otherwise) from players, mobs, homuns, mercenaries.
clif->specialeffect(bl, 462, AREA);
//Shouldn't end until Breaker's non-weapon part connects.
if (skill_id != ASC_BREAKER || !(flag&BF_WEAPON))
@@ -2786,7 +2825,11 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
}
//Now damage increasing effects
- if( sc->data[SC_LEXAETERNA] && skill_id != PF_SOULBURN )
+ if( sc->data[SC_LEXAETERNA] && skill_id != PF_SOULBURN
+#ifdef RENEWAL
+ && skill_id != CR_ACIDDEMONSTRATION
+#endif
+ )
{
if( src->type != BL_MER || skill_id == 0 )
damage <<= 1; // Lex Aeterna only doubles damage of regular attacks from mercenaries
@@ -2862,14 +2905,21 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
if(flag&BF_SKILL) { //25% reduction
if ( !(skill->get_inf(skill_id)&INF_GROUND_SKILL) && !(skill->get_nk(skill_id)&NK_SPLASH) )
damage -= 25*damage/100;
- }
- else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
+ } else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) {
damage >>= 2; //75% reduction
+ }
}
if ( sc->data[SC_WATER_BARRIER] )
damage = damage * ( 100 - 20 ) / 100;
+ if( sc->data[SC_FIRE_EXPANSION_SMOKE_POWDER] ) {
+ if( (flag&(BF_SHORT|BF_WEAPON)) == (BF_SHORT|BF_WEAPON) )
+ damage -= 15 * damage / 100;//15% reduction to physical melee attacks
+ else if( (flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON) )
+ damage -= 50 * damage / 100;//50% reduction to physical ranged attacks
+ }
+
// Compressed code, fixed by map.h [Epoque]
if (src->type == BL_MOB) {
int i;
@@ -3044,10 +3094,10 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
status->change_spread(src, bl);
if (sc->data[SC_SHIELDSPELL_REF] && sc->data[SC_SHIELDSPELL_REF]->val1 == 1 && damage > 0)
skill->break_equip(bl,EQP_ARMOR,10000,BCT_ENEMY );
- if (sc->data[SC_STYLE_CHANGE] && rnd()%2) {
- TBL_HOM *hd = BL_CAST(BL_HOM,bl);
- if (hd) homun->addspiritball(hd, 10);
- }
+ if (sc->data[SC_STYLE_CHANGE] && rnd()%2) {
+ TBL_HOM *hd = BL_CAST(BL_HOM,bl);
+ if (hd) homun->addspiritball(hd, 10);
+ }
}
/* no data claims these settings affect anything other than players */
if( damage && sd && bl->type == BL_PC ) {
@@ -3124,7 +3174,7 @@ int64 battle_calc_bg_damage(struct block_list *src, struct block_list *bl, int64
if( bl->type == BL_MOB ) {
struct mob_data* md = BL_CAST(BL_MOB, bl);
-
+
if( flag&BF_SKILL && (md->class_ == MOBID_BLUE_CRYST || md->class_ == MOBID_PINK_CRYST) )
return 0; // Crystal cannot receive skill damage on battlegrounds
}
@@ -3148,8 +3198,9 @@ int64 battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int64
switch (skill_id) {
#ifndef RENEWAL
case MO_TRIPLEATTACK:
-#endif
case HW_GRAVITATION:
+#endif
+ case TF_DOUBLE:
break;
default:
return 0;
@@ -3181,7 +3232,6 @@ int64 battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int64
*/
break;
}
-
return damage;
}
@@ -3247,11 +3297,10 @@ int battle_adjust_skill_damage(int m, unsigned short skill_id) {
if( map->list[m].skill_count ) {
int i;
ARR_FIND(0, map->list[m].skill_count, i, map->list[m].skills[i]->skill_id == skill_id );
-
+
if( i < map->list[m].skill_count ) {
return map->list[m].skills[i]->modifier;
}
-
}
return 0;
@@ -3275,17 +3324,17 @@ int battle_blewcount_bonus(struct map_session_data *sd, uint16 skill_id) {
struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag) {
int i, nk;
short s_ele = 0;
- unsigned int skillratio = 100; //Skill dmg modifiers.
+ unsigned int skillratio = 100; //Skill dmg modifiers.
- TBL_PC *sd;
+ TBL_PC *sd;
struct status_change *sc;
struct Damage ad;
struct status_data *sstatus = status->get_status_data(src);
struct status_data *tstatus = status->get_status_data(target);
struct {
- unsigned imdef : 1;
+ unsigned imdef : 2;
unsigned infdef : 1;
- } flag;
+ } flag;
memset(&ad,0,sizeof(ad));
memset(&flag,0,sizeof(flag));
@@ -3313,9 +3362,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
if (s_ele == -1){ // pl=-1 : the skill takes the weapon's element
s_ele = sstatus->rhw.ele;
- if( sd ){ //Summoning 10 charm will endow your weapon
- ARR_FIND(1, 6, i, sd->charm[i] >= 10);
- if( i < 5 ) s_ele = i;
+ if( sd ){ //Summoning 10 spiritcharm will endow your weapon
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] >= MAX_SPIRITCHARM);
+ if( i < SPIRITS_TYPE_SPHERE ) s_ele = i;
}
}else if (s_ele == -2) //Use status element
s_ele = status_get_attack_sc_element(src,status->get_sc(src));
@@ -3345,11 +3394,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
switch(skill_id) {
case MG_FIREWALL:
- case NJ_KAENSIN:
- ad.dmotion = 0; //No flinch animation.
if ( tstatus->def_ele == ELE_FIRE || battle->check_undead(tstatus->race, tstatus->def_ele) )
ad.blewcount = 0; //No knockback
break;
+ case NJ_KAENSIN:
case PR_SANCTUARY:
ad.dmotion = 0; //No flinch animation.
break;
@@ -3359,8 +3407,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
break;
case KO_KAIHOU:
if( sd ){
- ARR_FIND(1, 6, i, sd->charm[i] > 0);
- if( i < 5 )
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ if( i < SPIRITS_TYPE_SPHERE )
s_ele = i;
}
break;
@@ -3368,7 +3416,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
case CR_ACIDDEMONSTRATION:
case ASC_BREAKER:
case HW_MAGICCRASHER:
- flag.imdef = 1;
+ flag.imdef = 2;
break;
#endif
}
@@ -3385,8 +3433,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
//Adds an absolute value to damage. 100 = +100 damage
#define MATK_ADD( a ) ( ad.damage+= (a) )
- switch (skill_id)
- { //Calc base damage according to skill
+ switch (skill_id) {
+ //Calc base damage according to skill
case AL_HEAL:
case PR_BENEDICTIO:
case PR_SANCTUARY:
@@ -3405,7 +3453,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
case PR_TURNUNDEAD:
//Undead check is on skill_castend_damageid code.
i = 20*skill_lv + sstatus->luk + sstatus->int_ + status->get_lv(src)
- + 200 - 200*tstatus->hp/tstatus->max_hp; // there is no changed in success chance in renewal. [malufett]
+ + 200 - 200*tstatus->hp/tstatus->max_hp; // there is no changed in success chance in renewal. [malufett]
if(i > 700) i = 700;
if(rnd()%1000 < i && !(tstatus->mode&MD_BOSS))
ad.damage = tstatus->hp;
@@ -3429,7 +3477,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
break;
default: {
MATK_ADD( status->get_matk(src, 2) );
-
+
if (nk&NK_SPLASHSPLIT) { // Divide MATK in case of multiple targets skill
if(mflag>0)
ad.damage/= mflag;
@@ -3456,7 +3504,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
}
//Constant/misc additions from skills
if (skill_id == WZ_FIREPILLAR)
- MATK_ADD(50);
+ MATK_ADD(100+50*skill_lv);
if( sd && ( sd->status.class_ == JOB_ARCH_BISHOP_T || sd->status.class_ == JOB_ARCH_BISHOP ) &&
(i=pc->checkskill(sd,AB_EUCHARISTICA)) > 0 &&
(tstatus->race == RC_DEMON || tstatus->def_ele == ELE_DARK) )
@@ -3526,11 +3574,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
))
flag.imdef = 1;
}
-
- ad.damage = battle->calc_defense(BF_MAGIC, src, target, skill_id, skill_lv, ad.damage, (flag.imdef?1:0), 0);
-
- if (skill_id == NPC_EARTHQUAKE)
- { //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex]
+
+ ad.damage = battle->calc_defense(BF_MAGIC, src, target, skill_id, skill_lv, ad.damage, flag.imdef, 0);
+
+ if (skill_id == NPC_EARTHQUAKE) {
+ //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex]
//Also divide the extra bonuses from atk2 based on the number in range [Kevin]
if(mflag>0)
ad.damage+= (sstatus->rhw.atk2*skillratio/100)/mflag;
@@ -3574,7 +3622,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
}
}
#ifndef RENEWAL
- ad.damage = battle->calc_cardfix(BF_MAGIC, src, target, nk, s_ele, 0, ad.damage, 0, ad.flag);
+ ad.damage = battle->calc_cardfix(BF_MAGIC, src, target, nk, s_ele, 0, ad.damage, 0, ad.flag);
#endif
}
@@ -3582,8 +3630,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
if (flag.infdef && ad.damage)
ad.damage = ad.damage>0?1:-1;
-
- ad.damage=battle->calc_damage(src,target,&ad,ad.damage,skill_id,skill_lv);
+ if (skill_id != ASC_BREAKER)
+ ad.damage = battle->calc_damage(src, target, &ad, ad.damage, skill_id, skill_lv);
if( map_flag_gvg2(target->m) )
ad.damage=battle->calc_gvg_damage(src,target,ad.damage,ad.div_,skill_id,skill_lv,ad.flag);
else if( map->list[target->m].flag.battleground )
@@ -3621,7 +3669,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
#ifdef RENEWAL
struct status_change *sc = status->get_sc(src);
#endif
-
+
memset(&md,0,sizeof(md));
nullpo_retr(md, src);
@@ -3742,7 +3790,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
}*/
}else{
float vitfactor = 0.0f, ftemp;
-
+
if( (vitfactor=(status_get_vit(target)-120.0f)) > 0)
vitfactor = (vitfactor * (matk + atk) / 10) / status_get_vit(target);
ftemp = max(0, vitfactor) + (targetVit * (matk + atk)) / 10;
@@ -3751,6 +3799,10 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
md.damage >>= 1;
}
md.damage -= totaldef;
+ if( tsc && tsc->data[SC_LEXAETERNA] ) {
+ md.damage <<= 1;
+ status_change_end(target, SC_LEXAETERNA, INVALID_TIMER);
+ }
}
#else
// updated the formula based on a Japanese formula found to be exact [Reddozen]
@@ -3764,8 +3816,8 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
if( md.damage < 0 )
md.damage = 0;
if( md.damage > INT_MAX>>1 )
- //Overflow prevention, will anyone whine if I cap it to a few billion?
- //Not capped to INT_MAX to give some room for further damage increase.
+ //Overflow prevention, will anyone whine if I cap it to a few billion?
+ //Not capped to INT_MAX to give some room for further damage increase.
md.damage = INT_MAX>>1;
break;
@@ -3787,7 +3839,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
case GS_FLING:
md.damage = sd?sd->status.job_level:status->get_lv(src);
break;
- case HVAN_EXPLOSION: //[orn]
+ case HVAN_EXPLOSION: //[orn]
md.damage = sstatus->max_hp * (50 + 50 * skill_lv) / 100;
break ;
case ASC_BREAKER:
@@ -3800,7 +3852,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
int64 matk = battle->calc_magic_attack(src, target, skill_id, skill_lv, mflag).damage;
short totaldef = status->get_total_def(target) + status->get_total_mdef(target);
int64 atk = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, false, s_ele, ELE_NEUTRAL, EQI_HAND_R, (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|(sc && sc->data[SC_WEAPONPERFECT]?8:0), md.flag);
-
+
if( sc && sc->data[SC_EDP] )
ratio >>= 1;
md.damage = (matk + atk) * ratio / 100;
@@ -3827,7 +3879,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
**/
case RA_CLUSTERBOMB:
case RA_FIRINGTRAP:
- case RA_ICEBOUNDTRAP:
+ case RA_ICEBOUNDTRAP:
md.damage = skill_lv * sstatus->dex + sstatus->int_ * 5 ;
RE_LVL_TMDMOD();
if(sd)
@@ -3867,19 +3919,21 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
md.damage = 100 + 200 * skill_lv + sstatus->int_;
break;
case GN_HELLS_PLANT_ATK:
- md.damage = skill_lv * status->get_lv(src) * 10 + sstatus->int_ * 7 / 2 * (18 + (sd ? sd->status.job_level : 0) / 4) * (5 / (10 - (sd ? pc->checkskill(sd, AM_CANNIBALIZE) : 0)));
+ md.damage = skill_lv * status->get_lv(target) * 10 + sstatus->int_ * 7 / 2 * (18 + (sd ? sd->status.job_level : 0) / 4) * (5 / (10 - (sd ? pc->checkskill(sd, AM_CANNIBALIZE) : 0)));
md.damage = md.damage*(1000 + tstatus->mdef) / (1000 + tstatus->mdef * 10) - tstatus->mdef2;
break;
case KO_HAPPOKUNAI:
{
- struct Damage wd = battle->calc_weapon_attack(src,target,skill_id,skill_lv,mflag);
+ struct Damage wd = battle->calc_weapon_attack(src, target, 0, 1, mflag);
#ifdef RENEWAL
short totaldef = status->get_total_def(target);
#else
short totaldef = tstatus->def2 + (short)status->get_def(target);
#endif
- md.damage = 3 * wd.damage * (5 + skill_lv) / 5;
+ if ( sd ) wd.damage += sd->bonus.arrow_atk;
+ md.damage = (int)(3 * (1 + wd.damage) * (5 + skill_lv) / 5.0f);
md.damage -= totaldef;
+
}
break;
}
@@ -3927,7 +3981,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
#endif
if( skill_id == KO_MUCHANAGE )
hitrate = (int)((10 - ((float)1 / (status_get_dex(src) + status_get_luk(src))) * 500) * ((float)skill_lv / 2 + 5));
-
+
hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate);
if(rnd()%100 < hitrate)
@@ -3957,7 +4011,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
}
}
#endif
- md.damage = battle->calc_cardfix(BF_MISC, src, target, nk, s_ele, 0, md.damage, 0, md.flag);
+ md.damage = battle->calc_cardfix(BF_MISC, src, target, nk, s_ele, 0, md.damage, 0, md.flag);
if(skill_id){
uint16 rskill;/* redirect skill id */
switch(skill_id){
@@ -4001,7 +4055,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
switch( skill_id ) {
case RA_FIRINGTRAP:
- case RA_ICEBOUNDTRAP:
+ case RA_ICEBOUNDTRAP:
if( md.damage == 1 ) break;
case RA_CLUSTERBOMB:
{
@@ -4027,7 +4081,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
*------------------------------------------*/
struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int wflag)
{
- unsigned int skillratio = 100; //Skill dmg modifiers.
+ unsigned int skillratio = 100; //Skill dmg modifiers.
short temp=0;
short s_ele, s_ele_;
int i, nk;
@@ -4040,21 +4094,21 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
struct status_data *sstatus = status->get_status_data(src);
struct status_data *tstatus = status->get_status_data(target);
struct {
- unsigned hit : 1; //the attack Hit? (not a miss)
- unsigned cri : 1; //Critical hit
- unsigned idef : 1; //Ignore defense
- unsigned idef2 : 1; //Ignore defense (left weapon)
- unsigned pdef : 2; //Pierces defense (Investigate/Ice Pick)
- unsigned pdef2 : 2; //1: Use def+def2/100, 2: Use def+def2/50
- unsigned infdef : 1; //Infinite defense (plants)
- unsigned arrow : 1; //Attack is arrow-based
- unsigned rh : 1; //Attack considers right hand (wd.damage)
- unsigned lh : 1; //Attack considers left hand (wd.damage2)
- unsigned weapon : 1; //It's a weapon attack (consider VVS, and all that)
+ unsigned hit : 1; ///< the attack Hit? (not a miss)
+ unsigned cri : 1; ///< Critical hit
+ unsigned idef : 1; ///< Ignore defense
+ unsigned idef2 : 1; ///< Ignore defense (left weapon)
+ unsigned pdef : 2; ///< Pierces defense (Investigate/Ice Pick)
+ unsigned pdef2 : 2; ///< 1: Use def+def2/100, 2: Use def+def2/50
+ unsigned infdef : 1; ///< Infinite defense (plants)
+ unsigned arrow : 1; ///< Attack is arrow-based
+ unsigned rh : 1; ///< Attack considers right hand (wd.damage)
+ unsigned lh : 1; ///< Attack considers left hand (wd.damage2)
+ unsigned weapon : 1; ///< It's a weapon attack (consider VVS, and all that)
#ifdef RENEWAL
- unsigned tdef : 1; //Total defense reduction
+ unsigned tdef : 1; ///< Total defense reduction
#endif
- } flag;
+ } flag;
memset(&wd,0,sizeof(wd));
memset(&flag,0,sizeof(flag));
@@ -4083,7 +4137,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
wd.blewcount=skill->get_blewcount(skill_id,skill_lv);
wd.flag = BF_WEAPON; //Initial Flag
wd.flag |= (skill_id||wflag)?BF_SKILL:BF_NORMAL; // Baphomet card's splash damage is counted as a skill. [Inkfish]
- wd.dmg_lv=ATK_DEF; //This assumption simplifies the assignation later
+ wd.dmg_lv=ATK_DEF; //This assumption simplifies the assignation later
nk = skill->get_nk(skill_id);
if( !skill_id && wflag ) //If flag, this is splash damage from Baphomet Card and it always hits.
nk |= NK_NO_CARDFIX_ATK|NK_IGNORE_FLEE;
@@ -4165,25 +4219,35 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
case LK_SPIRALPIERCE:
if (!sd) wd.flag=(wd.flag&~(BF_RANGEMASK|BF_WEAPONMASK))|BF_LONG|BF_MISC;
break;
-
+
+ //When in banding, the number of hits is equal to the number of Royal Guards in banding.
+ case LG_HESPERUSLIT:
+ if( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 3 )
+ wd.div_ = sc->data[SC_BANDING]->val2;
+ break;
+
case MO_INVESTIGATE:
flag.pdef = flag.pdef2 = 2;
break;
-
+
case RA_AIMEDBOLT:
if( tsc && (tsc->data[SC_WUGBITE] || tsc->data[SC_ANKLESNARE] || tsc->data[SC_ELECTRICSHOCKER]) )
wd.div_ = tstatus->size + 2 + ( (rnd()%100 < 50-tstatus->size*10) ? 1 : 0 );
break;
#ifdef RENEWAL
+ case NJ_KUNAI:
case HW_MAGICCRASHER:
+ case NJ_SYURIKEN:
+ case GS_MAGICALBULLET:
+ case KO_BAKURETSU:
flag.tdef = 1;
break;
#endif
}
} else //Range for normal attacks.
wd.flag |= flag.arrow?BF_LONG:BF_SHORT;
- if ( (!skill_id || skill_id == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2 )
- { //Check for Lucky Dodge
+ if ((!skill_id || skill_id == PA_SACRIFICE) && tstatus->flee2 && rnd()%1000 < tstatus->flee2) {
+ //Check for Lucky Dodge
wd.type=0x0b;
wd.dmg_lv=ATK_LUCKY;
if (wd.div_ < 0) wd.div_*=-1;
@@ -4195,9 +4259,9 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
{ //Take weapon's element
s_ele = sstatus->rhw.ele;
s_ele_ = sstatus->lhw.ele;
- if( sd ){ //Summoning 10 charm will endow your weapon.
- ARR_FIND(1, 6, i, sd->charm[i] >= 10);
- if( i < 5 ) s_ele = s_ele_ = i;
+ if( sd ){ //Summoning 10 spiritcharm will endow your weapon.
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] >= MAX_SPIRITCHARM);
+ if( i < SPIRITS_TYPE_SPHERE ) s_ele = s_ele_ = i;
}
if( flag.arrow && sd && sd->bonus.arrow_ele )
s_ele = sd->bonus.arrow_ele;
@@ -4216,6 +4280,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
case LK_SPIRALPIERCE:
if (!sd) n_ele = false; //forced neutral for monsters
break;
+ case LG_HESPERUSLIT:
+ if ( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 == 5 )
+ s_ele = ELE_HOLY; // Banding with 5 RGs: change atk element to Holy.
+ break;
}
if (!(nk & NK_NO_ELEFIX) && !n_ele)
@@ -4226,8 +4294,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
n_ele = false;
}
- if(!skill_id)
- { //Skills ALWAYS use ONLY your right-hand weapon (tested on Aegis 10.2)
+ if(!skill_id) {
+ //Skills ALWAYS use ONLY your right-hand weapon (tested on Aegis 10.2)
if (sd && sd->weapontype1 == 0 && sd->weapontype2 > 0)
{
flag.rh=0;
@@ -4237,11 +4305,13 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
flag.lh=1;
}
- if( sd && !skill_id ) { //Check for double attack.
- if( ( ( skill_lv = pc->checkskill(sd,TF_DOUBLE) ) > 0 && sd->weapontype1 == W_DAGGER )
- || ( sd->bonus.double_rate > 0 && sd->weapontype1 != W_FIST ) //Will fail bare-handed
- || ( sc && sc->data[SC_KAGEMUSYA] && sd->weapontype1 != W_FIST )) // Need confirmation
- { //Success chance is not added, the higher one is used [Skotlex]
+ if (sd && !skill_id) {
+ //Check for double attack.
+ if (( (skill_lv=pc->checkskill(sd,TF_DOUBLE)) > 0 && sd->weapontype1 == W_DAGGER )
+ || ( sd->bonus.double_rate > 0 && sd->weapontype1 != W_FIST ) //Will fail bare-handed
+ || ( sc && sc->data[SC_KAGEMUSYA] && sd->weapontype1 != W_FIST ) // Need confirmation
+ ) {
+ //Success chance is not added, the higher one is used [Skotlex]
if( rnd()%100 < ( 5*skill_lv > sd->bonus.double_rate ? 5*skill_lv : sc && sc->data[SC_KAGEMUSYA]?sc->data[SC_KAGEMUSYA]->val1*3:sd->bonus.double_rate ) )
{
wd.div_ = skill->get_num(TF_DOUBLE,skill_lv?skill_lv:1);
@@ -4343,7 +4413,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
flag.idef = flag.idef2 =
#endif
flag.hit = 1;
- } else { //Check for Perfect Hit
+ } else {
+ //Check for Perfect Hit
if(sd && sd->bonus.perfect_hit > 0 && rnd()%100 < sd->bonus.perfect_hit)
flag.hit = 1;
if (sc && sc->data[SC_FUSION]) {
@@ -4366,14 +4437,13 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
flag.hit = 1;
}
- if (!flag.hit)
- { //Hit/Flee calculation
- short
- flee = tstatus->flee,
+ if (!flag.hit) {
+ //Hit/Flee calculation
+ short flee = tstatus->flee;
#ifdef RENEWAL
- hitrate = 0; //Default hitrate
+ short hitrate = 0; //Default hitrate
#else
- hitrate = 80; //Default hitrate
+ short hitrate = 80; //Default hitrate
#endif
if(battle_config.agi_penalty_type && battle_config.agi_penalty_target&target->type) {
@@ -4400,9 +4470,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
if( sd ) //in Renewal hit bonus from Vultures Eye is not anymore shown in status window
hitrate += pc->checkskill(sd,AC_VULTURE);
#endif
- if(skill_id)
- switch(skill_id)
- { //Hit skill modifiers
+ switch(skill_id) {
+ //Hit skill modifiers
//It is proven that bonus is applied on final hitrate, not hit.
case SM_BASH:
case MS_BASH:
@@ -4473,10 +4542,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
}
else
flag.hit = 1;
- } //End hit/miss calculation
+ } //End hit/miss calculation
- if (flag.hit && !flag.infdef) //No need to do the math for plants
- { //Hitting attack
+ if (flag.hit && !flag.infdef) { //No need to do the math for plants
+ //Hitting attack
//Assuming that 99% of the cases we will not need to check for the flag.rh... we don't.
//ATK_RATE scales the damage. 100 = no change. 50 is halved, 200 is doubled, etc
@@ -4494,8 +4563,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
#define GET_NORMAL_ATTACK( f ) ( wd.damage = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (f), wd.flag) )
#define GET_NORMAL_ATTACK2( f ) ( wd.damage2 = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_L, (f), wd.flag) )
#endif
- switch (skill_id)
- { //Calc base damage according to skill
+ switch (skill_id) {
+ //Calc base damage according to skill
case PA_SACRIFICE:
wd.damage = sstatus->max_hp* 9/100;
wd.damage2 = 0;
@@ -4521,15 +4590,13 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_ADD(-totaldef);
if( is_boss(target) )
ATK_RATE(50);
- RE_SKILL_REDUCTION();
}
break;
case NJ_SYURIKEN: // [malufett]
GET_NORMAL_ATTACK( (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|(sc && sc->data[SC_WEAPONPERFECT]?8:0) );
- wd.damage += battle->calc_masteryfix(src, target, skill_id, skill_lv, 4 * skill_lv + (sd ? sd->bonus.arrow_atk : 0), wd.div_, 0, flag.weapon) - status->get_total_def(target);
- RE_SKILL_REDUCTION();
+ wd.damage += battle->calc_masteryfix(src, target, skill_id, skill_lv, 4 * skill_lv + (sd ? sd->bonus.arrow_atk : 0), wd.div_, 0, flag.weapon);
break;
- case MO_EXTREMITYFIST: // [malufett]
+ case MO_EXTREMITYFIST: // [malufett]
{
short totaldef = status->get_total_def(target);
GET_NORMAL_ATTACK( (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|8 );
@@ -4537,7 +4604,6 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
wd.damage = (250 + 150 * skill_lv) + (10 * (status_get_sp(src)+1) * wd.damage / 100) + (8 * wd.damage);
ATK_ADD(-totaldef);
}
- RE_SKILL_REDUCTION();
}
#endif
break;
@@ -4559,10 +4625,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
i*=i;
ATK_ADD(i); //Add str bonus.
switch (tstatus->size) { //Size-fix. Is this modified by weapon perfection?
- case SZ_MEDIUM: //Medium: 125%
+ case SZ_SMALL: //Small: 125%
ATK_RATE(125);
break;
- //case SZ_SMALL: //Medium: 100%
+ //case SZ_MEDIUM: //Medium: 100%
case SZ_BIG: //Large: 75%
ATK_RATE(75);
break;
@@ -4582,7 +4648,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
} else
ATK_ADD(sstatus->rhw.atk2); //Else use Atk2
break;
- case HFLI_SBR44: //[orn]
+ case HFLI_SBR44: //[orn]
if(src->type == BL_HOM) {
wd.damage = ((TBL_HOM*)src)->homunculus.intimacy ;
break;
@@ -4648,7 +4714,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
#endif
}
break;
- } //End default case
+ } //End default case
} //End switch(skill_id)
if( sc && skill_id != PA_SACRIFICE && sc->data[SC_UNLIMIT] && (wd.flag&(BF_LONG|BF_MAGIC)) == BF_LONG) {
@@ -4667,18 +4733,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
status_change_end(src, SC_EXEEDBREAK, INVALID_TIMER);
}
-
- #ifdef RENEWAL
- if( sd && skill_id == NJ_KUNAI ){
- flag.tdef = 1;
- ATK_ADD( sd->bonus.arrow_atk );
- }
- #endif
switch(skill_id){
case SR_GATEOFHELL:
- #ifdef RENEWAL
- RE_SKILL_REDUCTION();
- #endif // RENEWAL
if (wd.dmg_lv != ATK_FLEE)
ATK_RATE(battle->calc_skillratio(BF_WEAPON, src, target, skill_id, skill_lv, skillratio, wflag));
else
@@ -4694,14 +4750,14 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
GET_NORMAL_ATTACK( (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|(sc && sc->data[SC_WEAPONPERFECT]?8:0) );
wd.damage = wd.damage * 70 / 100;
//n_ele = true; // FIXME: This is has no effect if it's after GET_NORMAL_ATTACK (was this intended, or was it supposed to be put above?)
-
+
if (sd && index >= 0 &&
sd->inventory_data[index] &&
sd->inventory_data[index]->type == IT_WEAPON)
ATK_ADD(sd->inventory_data[index]->weight * 7 / 100);
-
+
switch (tstatus->size) {
- case SZ_MEDIUM: //Medium: 115%
+ case SZ_SMALL: //Small: 115%
ATK_RATE(115);
break;
case SZ_BIG: //Large: 85%
@@ -4710,6 +4766,17 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
wd.damage = battle->calc_masteryfix(src, target, skill_id, skill_lv, wd.damage, wd.div_, 0, flag.weapon);
}
#endif
+
+ case KO_BAKURETSU:
+ {
+#ifdef RENEWAL
+ GET_NORMAL_ATTACK((sc && sc->data[SC_MAXIMIZEPOWER] ? 1 : 0) | (sc && sc->data[SC_WEAPONPERFECT] ? 8 : 0));
+#endif
+ skillratio = skill_lv * (50 + status_get_dex(src) / 4);
+ skillratio = (int)(skillratio * (sd ? pc->checkskill(sd, NJ_TOBIDOUGU) : 10) * 40.f / 100.0f * status->get_lv(src) / 120);
+ ATK_RATE(skillratio + 10 * (sd ? sd->status.job_level : 0));
+ }
+ break;
default:
ATK_RATE(battle->calc_skillratio(BF_WEAPON, src, target, skill_id, skill_lv, skillratio, wflag));
}
@@ -4739,7 +4806,6 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_ADD( status->get_matk(src, 2) );
#else
ATK_ADD( battle->calc_magic_attack(src, target, skill_id, skill_lv, wflag).damage );
- flag.tdef = 1;
#endif
#ifndef RENEWAL
case NJ_SYURIKEN:
@@ -4811,14 +4877,11 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
if( sc->data[SC_TRUESIGHT] )
ATK_ADDRATE(2*sc->data[SC_TRUESIGHT]->val1);
#endif
-
#ifndef RENEWAL_EDP
if( sc->data[SC_EDP] ){
switch(skill_id){
- case AS_SPLASHER:
- case AS_GRIMTOOTH:
+ case AS_SPLASHER: // Needs more info
case ASC_BREAKER:
- case AS_VENOMKNIFE:
case ASC_METEORASSAULT: break;
default:
ATK_ADDRATE(sc->data[SC_EDP]->val3);
@@ -4916,8 +4979,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
}
}
- if (skill_id != CR_GRANDCROSS && skill_id != NPC_GRANDDARKNESS)
- { //Ignore Defense?
+ if (skill_id != CR_GRANDCROSS && skill_id != NPC_GRANDDARKNESS) {
+ //Ignore Defense?
if (!flag.idef && (
sd->right_weapon.ignore_def_ele & (1<<tstatus->def_ele) ||
sd->right_weapon.ignore_def_race & (1<<tstatus->race) ||
@@ -4959,8 +5022,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
damage_div_fix(wd.damage, wd.div_);
#endif
//Post skill/vit reduction damage increases
- if( sc )
- { //SC skill damages
+ if (sc) {
+ //SC skill damages
if(sc->data[SC_AURABLADE]
#ifndef RENEWAL
&& skill_id != LK_SPIRALPIERCE && skill_id != ML_SPIRALPIERCE
@@ -4972,7 +5035,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
#endif
ATK_ADD(20*lv);
}
-
+
if( !skill_id ) {
if( sc->data[SC_ENCHANTBLADE] ) {
//[( ( Skill Lv x 20 ) + 100 ) x ( casterBaseLevel / 150 )] + casterInt
@@ -4984,7 +5047,6 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
if( sc->data[SC_GIANTGROWTH] && rnd()%100 < 15 )
ATK_ADDRATE(200); // Triple Damage
}
-
}
#ifndef RENEWAL
//Refine bonus
@@ -5014,14 +5076,12 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_ADDRATE(40);
#endif
} //Here ends flag.hit section, the rest of the function applies to both hitting and missing attacks
- else if(wd.div_ < 0) //Since the attack missed...
+ else if(wd.div_ < 0) //Since the attack missed...
wd.div_ *= -1;
#ifndef RENEWAL
if(sd && (temp=pc->checkskill(sd,BS_WEAPONRESEARCH)) > 0)
ATK_ADD(temp*2);
#endif
- if(skill_id==TF_POISON)
- ATK_ADD(15*skill_lv);
#ifndef RENEWAL
wd.damage = battle->calc_elefix(src, target, skill_id, skill_lv, wd.damage, nk, n_ele, s_ele, s_ele_, false, flag.arrow);
@@ -5051,7 +5111,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
}
#endif
-#ifndef RENEWAL
+#ifndef RENEWAL // Offensive damage increment in renewal is done somewhere else
if (sd) {
if (skill_id != CR_SHIELDBOOMERANG) //Only Shield boomerang doesn't takes the Star Crumbs bonus.
ATK_ADD2(wd.div_*sd->right_weapon.star, wd.div_*sd->left_weapon.star);
@@ -5062,9 +5122,9 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
}
//Card Fix, sd side
- wd.damage = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, 2, wd.flag);
- if( flag.lh )
- wd.damage2 = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage2, 3, wd.flag);
+ wd.damage = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, 2, wd.flag);
+ if( flag.lh )
+ wd.damage2 = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage2, 3, wd.flag);
if( skill_id == CR_SHIELDBOOMERANG || skill_id == PA_SHIELDCHAIN )
{ //Refine bonus applies after cards and elements.
@@ -5073,11 +5133,11 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
ATK_ADD(10*sd->status.inventory[index].refine);
}
}
- //Card Fix, tsd side
- if(tsd){ //if player on player then it was already measured above
+#endif
+ //Card Fix, tsd side
+ if(tsd){ //if player on player then it was already measured above
wd.damage = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, (flag.lh?1:0), wd.flag);
}
-#endif
if( flag.infdef ) { //Plants receive 1 damage when hit
short class_ = status->get_class(target);
if( flag.hit || wd.damage > 0 )
@@ -5101,12 +5161,14 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
}
if (sd) {
- if (!flag.rh && flag.lh) { //Move lh damage to the rh
+ if (!flag.rh && flag.lh) {
+ //Move lh damage to the rh
wd.damage = wd.damage2;
wd.damage2 = 0;
flag.rh=1;
flag.lh=0;
- } else if(flag.rh && flag.lh) { //Dual-wield
+ } else if(flag.rh && flag.lh) {
+ //Dual-wield
if (wd.damage) {
temp = pc->checkskill(sd,AS_RIGHT) * 10;
if( (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO )
@@ -5186,23 +5248,32 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
if( wd.damage + wd.damage2 ) { //There is a total damage value
int64 damage = wd.damage + wd.damage2;
-
- if(!wd.damage2) {
- wd.damage = battle->calc_damage(src,target,&wd,wd.damage,skill_id,skill_lv);
+
+ if (!wd.damage2) {
+#ifdef RENEWAL
+ if (skill_id != ASC_BREAKER)
+#endif
+ wd.damage = battle->calc_damage(src, target, &wd, wd.damage, skill_id, skill_lv);
if( map_flag_gvg2(target->m) )
wd.damage=battle->calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag);
else if( map->list[target->m].flag.battleground )
wd.damage=battle->calc_bg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag);
- } else if(!wd.damage) {
- wd.damage2 = battle->calc_damage(src,target,&wd,wd.damage2,skill_id,skill_lv);
- if( map_flag_gvg2(target->m) )
- wd.damage2 = battle->calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag);
- else if( map->list[target->m].flag.battleground )
- wd.damage = battle->calc_bg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag);
+ }
+ else if (!wd.damage) {
+#ifdef RENEWAL
+ if (skill_id != ASC_BREAKER)
+#endif
+ wd.damage2 = battle->calc_damage(src, target, &wd, wd.damage2, skill_id, skill_lv);
+ if (map_flag_gvg2(target->m))
+ wd.damage2 = battle->calc_gvg_damage(src, target, wd.damage2, wd.div_, skill_id, skill_lv, wd.flag);
+ else if (map->list[target->m].flag.battleground)
+ wd.damage = battle->calc_bg_damage(src, target, wd.damage2, wd.div_, skill_id, skill_lv, wd.flag);
} else {
#ifdef RENEWAL
- wd.damage = battle->calc_damage(src,target,&wd,wd.damage,skill_id,skill_lv);
- wd.damage2 = battle->calc_damage(src,target,&wd,wd.damage2,skill_id,skill_lv);
+ if( skill_id != ASC_BREAKER ){
+ wd.damage = battle->calc_damage(src, target, &wd, wd.damage, skill_id, skill_lv);
+ wd.damage2 = battle->calc_damage(src, target, &wd, wd.damage2, skill_id, skill_lv);
+ }
#else
int64 d1 = wd.damage + wd.damage2,d2 = wd.damage2;
wd.damage = battle->calc_damage(src,target,&wd,d1,skill_id,skill_lv);
@@ -5217,9 +5288,9 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
wd.damage-=wd.damage2;
#endif
}
-
- if( src != target ) { // Don't reflect your own damage (Grand Cross)
+
+ if( src != target ) { // Don't reflect your own damage (Grand Cross)
if( wd.dmg_lv == ATK_MISS || wd.dmg_lv == ATK_BLOCK ) {
int64 prev1 = wd.damage, prev2 = wd.damage2;
@@ -5233,9 +5304,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
} else
battle->reflect_damage(target, src, &wd, skill_id);
-
}
-
}
//Reject Sword bugreport:4493 by Daegaladh
if(wd.damage && tsc && tsc->data[SC_SWORDREJECT] &&
@@ -5253,7 +5322,8 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
status_change_end(target, SC_SWORDREJECT, INVALID_TIMER);
}
#ifndef RENEWAL
- if(skill_id == ASC_BREAKER) { //Breaker's int-based damage (a misc attack?)
+ if(skill_id == ASC_BREAKER) {
+ //Breaker's int-based damage (a misc attack?)
struct Damage md = battle->calc_misc_attack(src, target, skill_id, skill_lv, wflag);
wd.damage += md.damage;
}
@@ -5278,7 +5348,7 @@ struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct bl
memset(&d,0,sizeof(d));
break;
}
-
+
#ifdef HMAP_ZONE_DAMAGE_CAP_TYPE
if( target && skill_id ) {
int i;
@@ -5299,7 +5369,7 @@ struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct bl
}
}
#endif
-
+
if( d.damage + d.damage2 < 1 ) { //Miss/Absorbed
//Weapon attacks should go through to cause additional effects.
if (d.dmg_lv == ATK_DEF /*&& attack_type&(BF_MAGIC|BF_MISC)*/) // Isn't it that additional effects don't apply if miss?
@@ -5410,9 +5480,18 @@ void battle_reflect_damage(struct block_list *target, struct block_list *src, st
if( wd->dmg_lv >= ATK_BLOCK ) {/* yes block still applies, somehow gravity thinks it makes sense. */
if( sc ) {
- if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION ) {
- NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);
+ struct status_change_entry *sce_d = sc->data[SC_DEVOTION];
+ struct block_list *d_bl = NULL;
+
+ if (sce_d && sce_d->val1)
+ d_bl = map->id2bl(sce_d->val1);
+
+ if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION && skill_id != GS_DESPERADO
+ && !(d_bl && !(wd->flag&BF_SKILL)) // It should not be a basic attack if the target is under devotion
+ && !(d_bl && sce_d && !check_distance_bl(target, d_bl, sce_d->val3)) // It should not be out of range if the target is under devotion
+ ) {
+ NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);
#ifndef RENEWAL
rdelay = clif->delay_damage(tick+delay,src, src, status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4);
#else
@@ -5622,7 +5701,10 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
{
int index = sd->equip_index[EQI_AMMO];
if (index<0) {
- clif->arrow_fail(sd,0);
+ if (sd->weapontype1 > W_KATAR || sd->weapontype1 < W_HUUMA)
+ clif->skill_fail(sd, 0, USESKILL_FAIL_NEED_MORE_BULLET, 0);
+ else
+ clif->arrow_fail(sd, 0);
return ATK_NONE;
}
//Ammo check by Ishizu-chan
@@ -5639,13 +5721,13 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
case W_GATLING:
case W_SHOTGUN:
if (sd->inventory_data[index]->look != A_BULLET) {
- clif->arrow_fail(sd,0);
+ clif->skill_fail(sd, 0, USESKILL_FAIL_NEED_MORE_BULLET, 0);
return ATK_NONE;
}
break;
case W_GRENADE:
if (sd->inventory_data[index]->look != A_GRENADE) {
- clif->arrow_fail(sd,0);
+ clif->skill_fail(sd, 0, USESKILL_FAIL_NEED_MORE_BULLET, 0);
return ATK_NONE;
}
break;
@@ -5750,6 +5832,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
if( --(sc->data[SC_SPELLFIST]->val1) >= 0 ){
struct Damage ad = battle->calc_attack(BF_MAGIC,src,target,sc->data[SC_SPELLFIST]->val3,sc->data[SC_SPELLFIST]->val4,flag|BF_SHORT);
wd.damage = ad.damage;
+ damage_div_fix(wd.damage, wd.div_);
}else
status_change_end(src,SC_SPELLFIST,INVALID_TIMER);
}
@@ -6033,7 +6116,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if (flag&BCT_ENEMY && ( map->getcell(m,src->x,src->y,CELL_CHKBASILICA) || map->getcell(m,target->x,target->y,CELL_CHKBASILICA) ) ) {
return -1;
}
-
+
//t_bl/s_bl hold the 'master' of the attack, while src/target are the actual
//objects involved.
if( (t_bl = battle->get_master(target)) == NULL )
@@ -6072,7 +6155,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if(((((TBL_MOB*)target)->special_state.ai == 2 || //Marine Spheres
(((TBL_MOB*)target)->special_state.ai == 3 && battle_config.summon_flora&1)) && //Floras
s_bl->type == BL_PC && src->type != BL_MOB) || (((TBL_MOB*)target)->special_state.ai == 4 && t_bl->id != s_bl->id)) //Zanzoe
- { //Targetable by players
+ {
+ //Targetable by players
state |= BCT_ENEMY;
strip_enemy = 0;
}
@@ -6082,7 +6166,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
TBL_SKILL *su = (TBL_SKILL*)target;
if( !su->group )
return 0;
- if( skill->get_inf2(su->group->skill_id)&INF2_TRAP ) { //Only a few skills can target traps...
+ if( skill->get_inf2(su->group->skill_id)&INF2_TRAP && su->group->unit_id != UNT_USED_TRAPS) { //Only a few skills can target traps...
switch( battle->get_current_skill(src) ) {
case RK_DRAGONBREATH:// it can only hit traps in pvp/gvg maps
case RK_DRAGONBREATH_WATER:
@@ -6129,8 +6213,10 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
su->group->skill_id == GN_WALLOFTHORN) {
state |= BCT_ENEMY;
strip_enemy = 0;
- } else //Excepting traps and icewall, you should not be able to target skills.
+ } else {
+ //Excepting traps and icewall, you should not be able to target skills.
return 0;
+ }
}
break;
//Valid targets with no special checks here.
@@ -6141,7 +6227,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
//All else not specified is an invalid target.
default:
return 0;
- } //end switch actual target
+ } //end switch actual target
switch( t_bl->type ) { //Checks on target master
case BL_PC:
@@ -6181,6 +6267,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
break;
case BL_SKILL: {
struct skill_unit *su = (struct skill_unit *)src;
+ struct status_change* sc = status->get_sc(target);
if (!su->group)
return 0;
@@ -6191,6 +6278,11 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if (inf2&INF2_TARGET_SELF)
return 1;
}
+ //Status changes that prevent traps from triggering
+ if (sc && sc->count && skill->get_inf2(su->group->skill_id)&INF2_TRAP) {
+ if( sc->data[SC_WZ_SIGHTBLASTER] && sc->data[SC_WZ_SIGHTBLASTER]->val2 > 0 && sc->data[SC_WZ_SIGHTBLASTER]->val4%2 == 0)
+ return -1;
+ }
}
break;
case BL_MER:
@@ -6281,7 +6373,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if( flag&(BCT_PARTY|BCT_ENEMY) ) {
int s_party = status->get_party_id(s_bl);
int s_guild = status->get_guild_id(s_bl);
-
+
if( s_party && s_party == status->get_party_id(t_bl)
&& !(map->list[m].flag.pvp && map->list[m].flag.pvp_noparty)
&& !(map_flag_gvg(m) && map->list[m].flag.gvg_noparty && !( s_guild && s_guild == status->get_guild_id(t_bl) ))
@@ -6330,7 +6422,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if(s_guild && t_guild && (s_guild == t_guild || (!(flag&BCT_SAMEGUILD) && guild->isallied(s_guild, t_guild))))
state |= BCT_GUILD;
}
- } //end non pvp/gvg chk rivality
+ } //end non pvp/gvg chk rivality
if( !state ) //If not an enemy, nor a guild, nor party, nor yourself, it's neutral.
state = BCT_NEUTRAL;
@@ -6355,8 +6447,7 @@ bool battle_check_range(struct block_list *src, struct block_list *bl, int range
#ifndef CIRCULAR_AREA
if( src->type == BL_PC ) { // Range for players' attacks and skills should always have a circular check. [Angezerus]
- int dx = src->x - bl->x, dy = src->y - bl->y;
- if( !path->check_distance(dx, dy, range) )
+ if ( !check_distance_client_bl(src, bl, range) )
return false;
} else
#endif
@@ -6394,7 +6485,7 @@ static const struct battle_data {
{ "skill_add_range", &battle_config.skill_add_range, 0, 0, INT_MAX, },
{ "skill_out_range_consume", &battle_config.skill_out_range_consume, 1, 0, 1, },
{ "skillrange_by_distance", &battle_config.skillrange_by_distance, ~BL_PC, BL_NUL, BL_ALL, },
- { "skillrange_from_weapon", &battle_config.use_weapon_skill_range, ~BL_PC, BL_NUL, BL_ALL, },
+ { "skillrange_from_weapon", &battle_config.use_weapon_skill_range, BL_NUL, BL_NUL, BL_ALL, },
{ "player_damage_delay_rate", &battle_config.pc_damage_delay_rate, 100, 0, INT_MAX, },
{ "defunit_not_enemy", &battle_config.defnotenemy, 0, 0, 1, },
{ "gvg_traps_target_all", &battle_config.vs_traps_bctall, BL_PC, BL_NUL, BL_ALL, },
@@ -6445,7 +6536,7 @@ static const struct battle_data {
{ "monster_active_enable", &battle_config.monster_active_enable, 1, 0, 1, },
{ "monster_damage_delay_rate", &battle_config.monster_damage_delay_rate, 100, 0, INT_MAX, },
{ "monster_loot_type", &battle_config.monster_loot_type, 0, 0, 1, },
-// { "mob_skill_use", &battle_config.mob_skill_use, 1, 0, 1, }, //Deprecated
+ //{ "mob_skill_use", &battle_config.mob_skill_use, 1, 0, 1, }, //Deprecated
{ "mob_skill_rate", &battle_config.mob_skill_rate, 100, 0, INT_MAX, },
{ "mob_skill_delay", &battle_config.mob_skill_delay, 100, 0, INT_MAX, },
{ "mob_count_rate", &battle_config.mob_count_rate, 100, 0, INT_MAX, },
@@ -6571,7 +6662,8 @@ static const struct battle_data {
{ "bone_drop", &battle_config.bone_drop, 0, 0, 2, },
{ "buyer_name", &battle_config.buyer_name, 1, 0, 1, },
{ "skill_wall_check", &battle_config.skill_wall_check, 1, 0, 1, },
- { "cell_stack_limit", &battle_config.cell_stack_limit, 1, 1, 255, },
+ { "official_cell_stack_limit", &battle_config.official_cell_stack_limit, 1, 1, 255, },
+ { "custom_cell_stack_limit", &battle_config.custom_cell_stack_limit, 1, 1, 255, },
{ "dancing_weaponswitch_fix", &battle_config.dancing_weaponswitch_fix, 1, 0, 1, },
// eAthena additions
@@ -6714,7 +6806,7 @@ static const struct battle_data {
{ "invincible.nodamage", &battle_config.invincible_nodamage, 0, 0, 1, },
{ "mob_slave_keep_target", &battle_config.mob_slave_keep_target, 0, 0, 1, },
{ "autospell_check_range", &battle_config.autospell_check_range, 0, 0, 1, },
- { "knockback_left", &battle_config.knockback_left, 1, 0, 1, },
+ { "knockback_left", &battle_config.knockback_left, 1, 0, 1, },
{ "client_reshuffle_dice", &battle_config.client_reshuffle_dice, 0, 0, 1, },
{ "client_sort_storage", &battle_config.client_sort_storage, 0, 0, 1, },
{ "feature.buying_store", &battle_config.feature_buying_store, 1, 0, 1, },
@@ -6726,6 +6818,7 @@ static const struct battle_data {
{ "mail_show_status", &battle_config.mail_show_status, 0, 0, 2, },
{ "client_limit_unit_lv", &battle_config.client_limit_unit_lv, 0, 0, BL_ALL, },
{ "client_emblem_max_blank_percent", &battle_config.client_emblem_max_blank_percent, 100, 0, 100, },
+
// BattleGround Settings
{ "bg_update_interval", &battle_config.bg_update_interval, 1000, 100, INT_MAX, },
{ "bg_flee_penalty", &battle_config.bg_flee_penalty, 20, 0, INT_MAX, },
@@ -6750,6 +6843,7 @@ static const struct battle_data {
**/
{ "skill_trap_type", &battle_config.skill_trap_type, 0, 0, 1, },
{ "item_restricted_consumption_type", &battle_config.item_restricted_consumption_type,1, 0, 1, },
+ { "unequip_restricted_equipment", &battle_config.unequip_restricted_equipment, 0, 0, 3, },
{ "max_walk_path", &battle_config.max_walk_path, 17, 1, MAX_WALKPATH, },
{ "item_enabled_npc", &battle_config.item_enabled_npc, 1, 0, 1, },
{ "gm_ignore_warpable_area", &battle_config.gm_ignore_warpable_area, 0, 2, 100, },
@@ -6763,8 +6857,15 @@ static const struct battle_data {
{ "mon_trans_disable_in_gvg", &battle_config.mon_trans_disable_in_gvg, 0, 0, 1, },
{ "case_sensitive_aegisnames", &battle_config.case_sensitive_aegisnames, 1, 0, 1, },
- { "guild_castle_invite", &battle_config.guild_castle_invite, 0, 0, 1, },
- { "guild_castle_expulsion", &battle_config.guild_castle_expulsion, 0, 0, 1, },
+ { "guild_castle_invite", &battle_config.guild_castle_invite, 0, 0, 1, },
+ { "guild_castle_expulsion", &battle_config.guild_castle_expulsion, 0, 0, 1, },
+ { "song_timer_reset", &battle_config.song_timer_reset, 0, 0, 1, },
+ { "snap_dodge", &battle_config.snap_dodge, 0, 0, 1, },
+ { "stormgust_knockback", &battle_config.stormgust_knockback, 1, 0, 1, },
+ { "monster_chase_refresh", &battle_config.mob_chase_refresh, 1, 0, 30, },
+ { "mob_icewall_walk_block", &battle_config.mob_icewall_walk_block, 75, 0, 255, },
+ { "boss_icewall_walk_block", &battle_config.boss_icewall_walk_block, 0, 0, 255, },
+ { "feature.roulette", &battle_config.feature_roulette, 1, 0, 1, },
};
#ifndef STATS_OPT_OUT
/**
@@ -6805,7 +6906,7 @@ void Hercules_report(char* date, char *time_c) {
/* we get the current time */
time(&curtime);
strftime(timestring, 24, "%Y-%m-%d %H:%M:%S", localtime(&curtime));
-
+
#ifdef CIRCULAR_AREA
config |= C_CIRCULAR_AREA;
#endif
@@ -6817,7 +6918,7 @@ void Hercules_report(char* date, char *time_c) {
#ifdef CONSOLE_INPUT
config |= C_CONSOLE_INPUT;
#endif
-
+
#ifdef SCRIPT_CALLFUNC_CHECK
config |= C_SCRIPT_CALLFUNC_CHECK;
#endif
@@ -6861,7 +6962,7 @@ void Hercules_report(char* date, char *time_c) {
#ifdef PACKETVER_RE
config |= C_PACKETVER_RE;
#endif
-
+
/* non-define part */
if( map->db_use_sql_item_db )
config |= C_SQL_DB_ITEM;
@@ -7008,7 +7109,7 @@ void battle_adjust_conf(void) {
battle_config.feature_search_stores = 0;
}
#endif
-
+
#if PACKETVER < 20130724
if( battle_config.feature_banking ) {
ShowWarning("conf/battle/feature.conf banking is enabled but it requires PACKETVER 2013-07-24 or newer, disabling...\n");
@@ -7016,6 +7117,13 @@ void battle_adjust_conf(void) {
}
#endif
+#if PACKETVER < 20141022
+ if( battle_config.feature_roulette ) {
+ ShowWarning("conf/battle/feature.conf roulette is enabled but it requires PACKETVER 2014-10-22 or newer, disabling...\n");
+ battle_config.feature_roulette = 0;
+ }
+#endif
+
#if PACKETVER > 20120000 && PACKETVER < 20130515 /* exact date (when it started) not known */
if( battle_config.feature_auction == 1 ) {
ShowWarning("conf/battle/feature.conf:feature.auction is enabled but it is not stable on PACKETVER "EXPAND_AND_QUOTE(PACKETVER)", disabling...\n");
@@ -7026,8 +7134,8 @@ void battle_adjust_conf(void) {
#ifndef CELL_NOSTACK
- if (battle_config.cell_stack_limit != 1)
- ShowWarning("Battle setting 'cell_stack_limit' takes no effect as this server was compiled without Cell Stack Limit support (CELL_NOSTACK).\n");
+ if (battle_config.custom_cell_stack_limit != 1)
+ ShowWarning("Battle setting 'custom_cell_stack_limit' takes no effect as this server was compiled without Cell Stack Limit support.\n");
#endif
}
@@ -7094,15 +7202,15 @@ void do_final_battle(void) {
/* initialize the interface */
void battle_defaults(void) {
battle = &battle_s;
-
+
battle->bc = &battle_config;
-
+
memset(battle->attr_fix_table, 0, sizeof(battle->attr_fix_table));
battle->delay_damage_ers = NULL;
-
+
battle->init = do_init_battle;
battle->final = do_final_battle;
-
+
battle->calc_attack = battle_calc_attack;
battle->calc_damage = battle_calc_damage;
battle->calc_gvg_damage = battle_calc_gvg_damage;
diff --git a/src/map/battle.h b/src/map/battle.h
index dfa156796..e80e0091d 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -28,23 +28,24 @@ struct status_data;
#define MIN_CLOTH_COLOR (battle->bc->min_cloth_color)
#define MAX_CLOTH_COLOR (battle->bc->max_cloth_color)
-#define is_boss(bl) (status_get_mode(bl)&MD_BOSS) // Can refine later [Aru]
+#define is_boss(bl) (status_get_mode(bl)&MD_BOSS) // Can refine later [Aru]
/**
* Enumerations
**/
-enum { // Flag of the final calculation
- BF_WEAPON = 0x0001,
- BF_MAGIC = 0x0002,
- BF_MISC = 0x0004,
- BF_SHORT = 0x0010,
- BF_LONG = 0x0040,
- BF_SKILL = 0x0100,
- BF_NORMAL = 0x0200,
- BF_WEAPONMASK=0x000f,
- BF_RANGEMASK= 0x00f0,
- BF_SKILLMASK= 0x0f00,
+enum {
+ // Flag of the final calculation
+ BF_WEAPON = 0x0001,
+ BF_MAGIC = 0x0002,
+ BF_MISC = 0x0004,
+ BF_SHORT = 0x0010,
+ BF_LONG = 0x0040,
+ BF_SKILL = 0x0100,
+ BF_NORMAL = 0x0200,
+ BF_WEAPONMASK = 0x000f,
+ BF_RANGEMASK = 0x00f0,
+ BF_SKILLMASK = 0x0f00,
};
// state of a single attack attempt; used in flee/def penalty calculations when mobbed
@@ -62,17 +63,17 @@ enum e_battle_check_target { //New definitions [Skotlex]
BCT_SELF = 0x010000,
BCT_ENEMY = 0x020000,
BCT_PARTY = 0x040000,
- BCT_GUILDALLY = 0x080000, // Only allies, NOT guildmates
+ BCT_GUILDALLY = 0x080000, ///< Only allies, NOT guildmates
BCT_NEUTRAL = 0x100000,
- BCT_SAMEGUILD = 0x200000, // No Guild Allies
-
- BCT_GUILD = 0x280000, // Guild AND allies (BCT_SAMEGUILD|BCT_GUILDALLY)
-
- BCT_NOGUILD = 0x170000, // This should be (~BCT_GUILD&BCT_ALL)
- BCT_NOPARTY = 0x3b0000, // This should be (~BCT_PARTY&BCT_ALL)
- BCT_NOENEMY = 0x3d0000, // This should be (~BCT_ENEMY&BCT_ALL)
-
- BCT_ALL = 0x3f0000, // Sum of BCT_NOONE to BCT_SAMEGUILD
+ BCT_SAMEGUILD = 0x200000, ///< No Guild Allies
+
+ BCT_GUILD = 0x280000, ///< Guild AND allies (BCT_SAMEGUILD|BCT_GUILDALLY)
+
+ BCT_NOGUILD = 0x170000, ///< This must be (~BCT_GUILD&BCT_ALL)
+ BCT_NOPARTY = 0x3b0000, ///< This must be (~BCT_PARTY&BCT_ALL)
+ BCT_NOENEMY = 0x3d0000, ///< This must be (~BCT_ENEMY&BCT_ALL)
+
+ BCT_ALL = 0x3f0000, ///< Sum of BCT_NOONE to BCT_SAMEGUILD
};
/**
@@ -86,7 +87,7 @@ struct Damage {
int amotion,dmotion;
int blewcount; //nb of knockback
int flag; //chk BF_* flag, (enum below)
- enum damage_lv dmg_lv; //ATK_LUCKY,ATK_FLEE,ATK_DEF
+ enum damage_lv dmg_lv; //ATK_LUCKY,ATK_FLEE,ATK_DEF
};
struct Battle_Config {
@@ -147,12 +148,12 @@ struct Battle_Config {
int monster_active_enable;
int monster_damage_delay_rate;
int monster_loot_type;
- int mob_skill_rate; //[Skotlex]
- int mob_skill_delay; //[Skotlex]
+ int mob_skill_rate; //[Skotlex]
+ int mob_skill_delay; //[Skotlex]
int mob_count_rate;
int no_spawn_on_player; //[Skotlex]
int force_random_spawn; //[Skotlex]
- int mob_spawn_delay, plant_spawn_delay, boss_spawn_delay; // [Skotlex]
+ int mob_spawn_delay, plant_spawn_delay, boss_spawn_delay; // [Skotlex]
int slaves_inherit_mode;
int slaves_inherit_speed;
int summons_trigger_autospells;
@@ -169,7 +170,7 @@ struct Battle_Config {
int emergency_call;
int guild_aura;
int pc_invincible_time;
-
+
int pet_catch_rate;
int pet_rename;
int pet_friendly_rate;
@@ -178,7 +179,7 @@ struct Battle_Config {
int pet_status_support;
int pet_attack_support;
int pet_damage_support;
- int pet_support_min_friendly; //[Skotlex]
+ int pet_support_min_friendly; //[Skotlex]
int pet_equip_min_friendly;
int pet_support_rate;
int pet_attack_exp_to_master;
@@ -189,7 +190,7 @@ struct Battle_Config {
int pet_max_atk2; //[Skotlex]
int pet_no_gvg; //Disables pets in gvg. [Skotlex]
int pet_equip_required;
-
+
int skill_min_damage;
int finger_offensive_type;
int heal_exp;
@@ -199,11 +200,11 @@ struct Battle_Config {
int shop_exp;
int combo_delay_rate;
int item_check;
- int item_use_interval; //[Skotlex]
+ int item_use_interval; //[Skotlex]
int cashfood_use_interval;
int wedding_modifydisplay;
- int wedding_ignorepalette; //[Skotlex]
- int xmas_ignorepalette; // [Valaris]
+ int wedding_ignorepalette; //[Skotlex]
+ int xmas_ignorepalette; // [Valaris]
int summer_ignorepalette; // [Zephyrus]
int hanbok_ignorepalette;
int natural_healhp_interval;
@@ -212,7 +213,7 @@ struct Battle_Config {
int natural_heal_weight_rate;
int arrow_decrement;
int max_aspd;
- int max_walk_speed; //Maximum walking speed after buffs [Skotlex]
+ int max_walk_speed; //Maximum walking speed after buffs [Skotlex]
int max_hp;
int max_sp;
int max_lv, aura_lv;
@@ -224,8 +225,8 @@ struct Battle_Config {
int save_clothcolor;
int undead_detect_type;
int auto_counter_type;
- int min_hitrate; //[Skotlex]
- int max_hitrate; //[Skotlex]
+ int min_hitrate; //[Skotlex]
+ int max_hitrate; //[Skotlex]
int agi_penalty_target;
int agi_penalty_type;
int agi_penalty_count;
@@ -263,33 +264,33 @@ struct Battle_Config {
int item_rate_mvp, item_rate_common, item_rate_common_boss, item_rate_card, item_rate_card_boss,
item_rate_equip, item_rate_equip_boss, item_rate_heal, item_rate_heal_boss, item_rate_use,
item_rate_use_boss, item_rate_treasure, item_rate_adddrop;
-
+
int logarithmic_drops;
- int item_drop_common_min,item_drop_common_max; // Added by TyrNemesis^
+ int item_drop_common_min,item_drop_common_max; // Added by TyrNemesis^
int item_drop_card_min,item_drop_card_max;
int item_drop_equip_min,item_drop_equip_max;
- int item_drop_mvp_min,item_drop_mvp_max; // End Addition
- int item_drop_heal_min,item_drop_heal_max; // Added by Valatris
- int item_drop_use_min,item_drop_use_max; //End
+ int item_drop_mvp_min,item_drop_mvp_max; // End Addition
+ int item_drop_heal_min,item_drop_heal_max; // Added by Valatris
+ int item_drop_use_min,item_drop_use_max; //End
int item_drop_treasure_min,item_drop_treasure_max; //by [Skotlex]
int item_drop_adddrop_min,item_drop_adddrop_max; //[Skotlex]
-
- int prevent_logout; // Added by RoVeRT
-
- int alchemist_summon_reward; // [Valaris]
+
+ int prevent_logout; // Added by RoVeRT
+
+ int alchemist_summon_reward; // [Valaris]
int drops_by_luk;
int drops_by_luk2;
- int equip_natural_break_rate; //Base Natural break rate for attacks.
+ int equip_natural_break_rate; //Base Natural break rate for attacks.
int equip_self_break_rate; //Natural & Penalty skills break rate
int equip_skill_break_rate; //Offensive skills break rate
int multi_level_up;
int max_exp_gain_rate; //Max amount of exp bar % you can get in one go.
int pk_mode;
int pk_level_range;
-
+
int manner_system; // end additions [Valaris]
int show_mob_info;
-
+
int gx_allhit;
int gx_disptype;
int devotion_level_difference;
@@ -305,13 +306,13 @@ struct Battle_Config {
int bone_drop;
int buyer_name;
int dancing_weaponswitch_fix;
-
+
// eAthena additions
int night_at_start; // added by [Yor]
int day_duration; // added by [Yor]
int night_duration; // added by [Yor]
int ban_hack_trade; // added by [Yor]
-
+
int min_hair_style; // added by [MouseJstr]
int max_hair_style; // added by [MouseJstr]
int min_hair_color; // added by [MouseJstr]
@@ -319,12 +320,12 @@ struct Battle_Config {
int min_cloth_color; // added by [MouseJstr]
int max_cloth_color; // added by [MouseJstr]
int pet_hair_style; // added by [Skotlex]
-
+
int castrate_dex_scale; // added by [MouseJstr]
int area_size; // added by [MouseJstr]
-
+
int max_def, over_def_bonus; //added by [Skotlex]
-
+
int zeny_from_mobs; // [Valaris]
int mobs_level_up; // [Valaris]
int mobs_level_up_exp_rate; // [Valaris]
@@ -344,12 +345,12 @@ struct Battle_Config {
int delay_battle_damage;
int hide_woe_damage;
int display_version;
-
- int display_hallucination; // [Skotlex]
- int use_statpoint_table; // [Skotlex]
-
+
+ int display_hallucination; // [Skotlex]
+ int use_statpoint_table; // [Skotlex]
+
int ignore_items_gender; //[Lupus]
-
+
int copyskill_restrict; // [Aru]
int berserk_cancels_buffs; // [Aru]
int mob_ai; //Configures various mob_ai settings to make them smarter or dumber(official). [Skotlex]
@@ -359,36 +360,37 @@ struct Battle_Config {
int mob_remove_delay; // Dynamic Mobs - delay before removing mobs from a map [Skotlex]
int mob_active_time; //Duration through which mobs execute their Hard AI after players leave their area of sight.
int boss_active_time;
-
- int show_hp_sp_drain, show_hp_sp_gain; //[Skotlex]
-
+
+ int show_hp_sp_drain, show_hp_sp_gain; //[Skotlex]
+
int mob_npc_event_type; //Determines on who the npc_event is executed. [Skotlex]
-
+
int character_size; // if riders have size=2, and baby class riders size=1 [Lupus]
int rare_drop_announce; // chance <= to show rare drops global announces
-
- int retaliate_to_master; //Whether when a mob is attacked by another mob, it will retaliate versus the mob or the mob's master. [Skotlex]
-
+
+ int retaliate_to_master; //Whether when a mob is attacked by another mob, it will retaliate versus the mob or the mob's master. [Skotlex]
+
int duel_allow_pvp; // [LuzZza]
int duel_allow_gvg; // [LuzZza]
int duel_allow_teleport; // [LuzZza]
int duel_autoleave_when_die; // [LuzZza]
int duel_time_interval; // [LuzZza]
int duel_only_on_same_map; // [Toms]
-
+
int skip_teleport_lv1_menu; // possibility to disable (skip) Teleport Lv1 menu, that have only two lines `Random` and `Cancel` [LuzZza]
int mob_max_skilllvl;
int allow_skill_without_day; // [Komurka]
int allow_es_magic_pc; // [Skotlex]
int skill_wall_check; // [Skotlex]
- int cell_stack_limit; // [Skotlex]
+ int official_cell_stack_limit; // [Playtester]
+ int custom_cell_stack_limit; // [Skotlex]
int skill_caster_check; // [Skotlex]
int sc_castcancel; // [Skotlex]
int pc_sc_def_rate; // [Skotlex]
int mob_sc_def_rate;
int pc_max_sc_def;
int mob_max_sc_def;
-
+
int sg_angel_skill_ratio;
int sg_miracle_skill_ratio;
int sg_miracle_skill_duration;
@@ -396,9 +398,9 @@ struct Battle_Config {
int override_mob_names; //Enables overriding spawn mob names with the mob_db names. [Skotlex]
int min_chat_delay; //Minimum time between client messages. [Skotlex]
int friend_auto_add; //When accepting friends, both get friended. [Skotlex]
- int hvan_explosion_intimate; // fix [albator]
+ int hvan_explosion_intimate; // fix [albator]
int hom_rename;
- int homunculus_show_growth ; //[orn]
+ int homunculus_show_growth; //[orn]
int homunculus_friendly_rate;
int quest_exp_rate;
int autotrade_mapflag;
@@ -409,13 +411,13 @@ struct Battle_Config {
int ksprotection;
int auction_feeperhour;
int auction_maximumprice;
- int homunculus_auto_vapor; //Keep Homunculus from Vaporizing when master dies. [L0ne_W0lf]
- int display_status_timers; //Show or hide skill buff/delay timers in recent clients [Sara]
- int skill_add_heal_rate; //skills that bHealPower has effect on [Inkfish]
+ int homunculus_auto_vapor; //Keep Homunculus from Vaporizing when master dies. [L0ne_W0lf]
+ int display_status_timers; //Show or hide skill buff/delay timers in recent clients [Sara]
+ int skill_add_heal_rate; //skills that bHealPower has effect on [Inkfish]
int eq_single_target_reflectable;
int invincible_nodamage;
int mob_slave_keep_target;
- int autospell_check_range; //Enable range check for autospell bonus. [L0ne_W0lf]
+ int autospell_check_range; //Enable range check for autospell bonus. [L0ne_W0lf]
int knockback_left;
int client_reshuffle_dice; // Reshuffle /dice
int client_sort_storage;
@@ -430,11 +432,11 @@ struct Battle_Config {
int client_emblem_max_blank_percent;
int hom_max_level;
int hom_S_max_level;
-
+
// [BattleGround Settings]
int bg_update_interval;
int bg_flee_penalty;
-
+
// rAthena
int max_third_parameter;
int max_baby_third_parameter;
@@ -442,29 +444,33 @@ struct Battle_Config {
int atcommand_max_stat_bypass;
int max_third_aspd;
int vcast_stat_scale;
-
+
int mvp_tomb_enabled;
-
+
int atcommand_suggestions_enabled;
int min_npc_vendchat_distance;
int atcommand_mobinfo_type;
-
+
int mob_size_influence; // Enable modifications on earned experience, drop rates and monster status depending on monster size. [mkbu95]
int bowling_bash_area;
+ int mob_chase_refresh; //How often a monster should refresh its chase [Playtester]
+ int mob_icewall_walk_block; //How a normal monster should be trapped in icewall [Playtester]
+ int boss_icewall_walk_block; //How a boss monster should be trapped in icewall [Playtester]
/** Hercules **/
int skill_trap_type;
int item_restricted_consumption_type;
+ int unequip_restricted_equipment;
int max_walk_path;
int item_enabled_npc;
int packet_obfuscation;
int idletime_criteria;
int gm_ignore_warpable_area;
-
+
int client_accept_chatdori; // [Ai4rei/Mirei]
int snovice_call_type;
int guild_notice_changemap;
-
+
int feature_banking;
int feature_auction;
@@ -473,6 +479,12 @@ struct Battle_Config {
int case_sensitive_aegisnames;
int guild_castle_invite;
int guild_castle_expulsion;
+
+ int song_timer_reset; // [csnv]
+ int snap_dodge; // Enable or disable dodging damage snapping away [csnv]
+ int stormgust_knockback;
+
+ int feature_roulette;
};
extern struct Battle_Config battle_config;
diff --git a/src/map/battleground.c b/src/map/battleground.c
index f7131513d..190f7886d 100644
--- a/src/map/battleground.c
+++ b/src/map/battleground.c
@@ -157,11 +157,11 @@ int bg_team_leave(struct map_session_data *sd, enum bg_team_leave_type flag) {
if( bgd->logout_event[0] && flag )
npc->event(sd, bgd->logout_event, 0);
-
+
if( sd->bg_queue.arena ) {
bg->queue_pc_cleanup(sd);
}
-
+
return bgd->count;
}
@@ -267,11 +267,11 @@ int bg_send_xy_timer(int tid, int64 tick, int id, intptr_t data) {
enum bg_queue_types bg_str2teamtype (const char *str) {
char temp[200], *parse;
enum bg_queue_types type = BGQT_INVALID;
-
+
safestrncpy(temp, str, 200);
-
+
parse = strtok(temp,"|");
-
+
while (parse != NULL) {
normalize_name(parse," ");
if( strcmpi(parse,"all") == 0 )
@@ -287,7 +287,7 @@ enum bg_queue_types bg_str2teamtype (const char *str) {
}
parse = strtok(NULL,"|");
}
-
+
return type;
}
@@ -295,25 +295,24 @@ void bg_config_read(void) {
config_t bg_conf;
config_setting_t *data = NULL;
const char *config_filename = "conf/battlegrounds.conf"; // FIXME hardcoded name
-
+
if (libconfig->read_file(&bg_conf, config_filename))
return;
-
+
data = libconfig->lookup(&bg_conf, "battlegrounds");
-
+
if (data != NULL) {
config_setting_t *settings = libconfig->setting_get_elem(data, 0);
config_setting_t *arenas;
const char *delay_var;
int i, arena_count = 0, offline = 0;
-
+
if( !libconfig->setting_lookup_string(settings, "global_delay_var", &delay_var) )
delay_var = "BG_Delay_Tick";
-
+
safestrncpy(bg->gdelay_var, delay_var, BG_DELAY_VAR_LENGTH);
-
+
libconfig->setting_lookup_int(settings, "maximum_afk_seconds", &bg->mafksec);
-
libconfig->setting_lookup_bool(settings, "feature_off", &offline);
if( offline == 0 )
@@ -332,14 +331,14 @@ void bg_config_read(void) {
int maxDuration;
int fillup_duration = 0, pregame_duration = 0;
enum bg_queue_types allowedTypes;
-
+
bg->arena[i] = NULL;
-
+
if( !libconfig->setting_lookup_string(arena, "name", &aName) ) {
ShowError("bg_config_read: failed to find 'name' for arena #%d\n",i);
continue;
}
-
+
if( !libconfig->setting_lookup_string(arena, "event", &aEvent) ) {
ShowError("bg_config_read: failed to find 'event' for arena #%d\n",i);
continue;
@@ -347,7 +346,7 @@ void bg_config_read(void) {
libconfig->setting_lookup_int(arena, "minLevel", &minLevel);
libconfig->setting_lookup_int(arena, "maxLevel", &maxLevel);
-
+
if( minLevel < 0 ) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' minLevel\n",minLevel,aName);
minLevel = 0;
@@ -356,16 +355,16 @@ void bg_config_read(void) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' maxLevel\n",maxLevel,aName);
maxLevel = MAX_LEVEL;
}
-
+
if( !(reward = libconfig->setting_get_member(arena, "reward")) ) {
ShowError("bg_config_read: failed to find 'reward' for arena '%s'/#%d\n",aName,i);
continue;
}
-
+
libconfig->setting_lookup_int(reward, "win", &prizeWin);
libconfig->setting_lookup_int(reward, "loss", &prizeLoss);
libconfig->setting_lookup_int(reward, "draw", &prizeDraw);
-
+
if( prizeWin < 0 ) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' reward:win\n",prizeWin,aName);
prizeWin = 0;
@@ -378,11 +377,11 @@ void bg_config_read(void) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' reward:draw\n",prizeDraw,aName);
prizeDraw = 0;
}
-
+
libconfig->setting_lookup_int(arena, "minPlayers", &minPlayers);
libconfig->setting_lookup_int(arena, "maxPlayers", &maxPlayers);
libconfig->setting_lookup_int(arena, "minTeamPlayers", &minTeamPlayers);
-
+
if( minPlayers < 0 ) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' minPlayers\n",minPlayers,aName);
minPlayers = 0;
@@ -400,20 +399,19 @@ void bg_config_read(void) {
ShowError("bg_config_read: failed to find 'delay_var' for arena '%s'/#%d\n",aName,i);
continue;
}
-
-
+
if( !libconfig->setting_lookup_string(arena, "allowedTypes", &aTeamTypes) ) {
ShowError("bg_config_read: failed to find 'allowedTypes' for arena '%s'/#%d\n",aName,i);
continue;
}
-
+
libconfig->setting_lookup_int(arena, "maxDuration", &maxDuration);
-
+
if( maxDuration < 0 ) {
ShowWarning("bg_config_read: invalid %d value for arena '%s' maxDuration\n",maxDuration,aName);
maxDuration = 30;
}
-
+
libconfig->setting_lookup_int(arena, "fillDuration", &fillup_duration);
libconfig->setting_lookup_int(arena, "pGameDuration", &pregame_duration);
@@ -428,9 +426,9 @@ void bg_config_read(void) {
}
allowedTypes = bg->str2teamtype(aTeamTypes);
-
+
CREATE( bg->arena[i], struct bg_arena, 1 );
-
+
bg->arena[i]->id = i;
safestrncpy(bg->arena[i]->name, aName, NAME_LENGTH);
safestrncpy(bg->arena[i]->npc_event, aEvent, EVENT_NAME_LENGTH);
@@ -455,7 +453,6 @@ void bg_config_read(void) {
}
bg->arenas = arena_count;
}
-
libconfig->destroy(&bg_conf);
}
}
@@ -493,7 +490,7 @@ void bg_queue_ready_ack (struct bg_arena *arena, struct map_session_data *sd, bo
struct hQueue *queue = &script->hq[arena->queue_id];
int i, count = 0;
sd->bg_queue.ready = 1;
-
+
for( i = 0; i < queue->size; i++ ) {
if( queue->item[i] > 0 && ( sd = map->id2sd(queue->item[i]) ) ) {
if( sd->bg_queue.ready == 1 )
@@ -506,10 +503,9 @@ void bg_queue_ready_ack (struct bg_arena *arena, struct map_session_data *sd, bo
arena->begin_timer = INVALID_TIMER;
bg->begin(arena);
}
-
}
-
}
+
void bg_queue_player_cleanup(struct map_session_data *sd) {
if ( sd->bg_queue.client_has_bg_data ) {
if( sd->bg_queue.arena )
@@ -527,14 +523,14 @@ void bg_queue_player_cleanup(struct map_session_data *sd) {
void bg_match_over(struct bg_arena *arena, bool canceled) {
struct hQueue *queue = &script->hq[arena->queue_id];
int i;
-
+
if( !arena->ongoing )
return;
arena->ongoing = false;
for( i = 0; i < queue->size; i++ ) {
struct map_session_data * sd = NULL;
-
+
if( queue->item[i] > 0 && ( sd = map->id2sd(queue->item[i]) ) ) {
if( sd->bg_queue.arena ) {
bg->team_leave(sd, 0);
@@ -559,7 +555,7 @@ void bg_begin(struct bg_arena *arena) {
for( i = 0; i < queue->size; i++ ) {
struct map_session_data * sd = NULL;
-
+
if( queue->item[i] > 0 && ( sd = map->id2sd(queue->item[i]) ) ) {
if( sd->bg_queue.ready == 1 )
count++;
@@ -575,23 +571,21 @@ void bg_begin(struct bg_arena *arena) {
bg->match_over(arena,true);
} else {
arena->ongoing = true;
-
+
if( bg->afk_timer_id == INVALID_TIMER && bg->mafksec > 0 )
bg->afk_timer_id = timer->add(timer->gettick()+10000,bg->afk_timer,0,0);
-
+
/* TODO: make this a arena-independent var? or just .@? */
mapreg->setreg(script->add_str("$@bg_queue_id"),arena->queue_id);
mapreg->setregstr(script->add_str("$@bg_delay_var$"),bg->gdelay_var);
-
+
count = 0;
for( i = 0; i < queue->size; i++ ) {
struct map_session_data * sd = NULL;
-
+
if( queue->item[i] > 0 && ( sd = map->id2sd(queue->item[i]) ) ) {
if( sd->bg_queue.ready == 1 ) {
-
mapreg->setreg(reference_uid(script->add_str("$@bg_member"), count), sd->status.account_id);
-
mapreg->setreg(reference_uid(script->add_str("$@bg_member_group"), count),
sd->bg_queue.type == BGQT_GUILD ? sd->status.guild_id :
sd->bg_queue.type == BGQT_PARTY ? sd->status.party_id :
@@ -607,7 +601,7 @@ void bg_begin(struct bg_arena *arena) {
}
}
mapreg->setreg(script->add_str("$@bg_member_size"),count);
-
+
npc->event_do(arena->npc_event);
}
}
@@ -631,7 +625,7 @@ int bg_afk_timer(int tid, int64 tick, int id, intptr_t data) {
count++;
}
mapit->free(iter);
-
+
if( count )
bg->afk_timer_id = timer->add(timer->gettick()+10000,bg->afk_timer,0,0);
else
@@ -642,10 +636,10 @@ int bg_afk_timer(int tid, int64 tick, int id, intptr_t data) {
void bg_queue_pregame(struct bg_arena *arena) {
struct hQueue *queue = &script->hq[arena->queue_id];
int i;
-
+
for( i = 0; i < queue->size; i++ ) {
struct map_session_data * sd = NULL;
-
+
if( queue->item[i] > 0 && ( sd = map->id2sd(queue->item[i]) ) ) {
clif->bgqueue_battlebegins(sd,arena->id,SELF);
}
@@ -674,17 +668,17 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
enum BATTLEGROUNDS_QUEUE_ACK result = bg->can_queue(sd,arena,type);
struct hQueue *queue;
int i, count = 0;
-
+
if( arena->begin_timer != INVALID_TIMER || arena->ongoing ) {
clif->bgqueue_ack(sd,BGQA_FAIL_QUEUING_FINISHED,arena->id);
return;
}
-
+
if( result != BGQA_SUCCESS ) {
clif->bgqueue_ack(sd,result,arena->id);
return;
}
-
+
switch( type ) { /* guild/party already validated in can_queue */
case BGQT_PARTY: {
struct party_data *p = party->search(sd->status.party_id);
@@ -705,7 +699,7 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
count = 1;
break;
}
-
+
if( !(queue = script->queue(arena->queue_id)) || (queue->items+count) > arena->max_players ) {
clif->bgqueue_ack(sd,BGQA_FAIL_PPL_OVERAMOUNT,arena->id);
return;
@@ -746,26 +740,24 @@ void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_q
}
break;
}
-
clif->bgqueue_ack(sd,BGQA_SUCCESS,arena->id);
-
bg->queue_check(arena);
}
enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type) {
int tick;
unsigned int tsec;
-
+
if( !(arena->allowed_types & type) )
return BGQA_FAIL_TYPE_INVALID;
-
+
if ( sd->status.base_level > arena->max_level || sd->status.base_level < arena->min_level )
return BGQA_FAIL_LEVEL_INCORRECT;
-
+
if ( !(sd->class_&JOBL_2) ) /* TODO: maybe make this a per-arena setting, so users may make custom arenas like baby-only,whatever. */
return BGQA_FAIL_CLASS_INVALID;
-
+
tsec = (unsigned int)time(NULL);
-
+
if ( ( tick = pc_readglobalreg(sd, script->add_str(bg->gdelay_var)) ) && tsec < tick ) {
char response[100];
if( (tick-tsec) > 60 )
@@ -775,7 +767,7 @@ enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_
clif->colormes(sd->fd,COLOR_RED,response);
return BGQA_FAIL_DESERTER;
}
-
+
if ( ( tick = pc_readglobalreg(sd, script->add_str(arena->delay_var)) ) && tsec < tick ) {
char response[100];
if( (tick-tsec) > 60 )
@@ -788,7 +780,7 @@ enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_
if( sd->bg_queue.arena != NULL )
return BGQA_DUPLICATE_REQUEST;
-
+
switch(type) {
case BGQT_GUILD:
if( !sd->guild || !sd->state.gmaster_flag )
@@ -831,7 +823,7 @@ enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_
if( !is_leader )
return BGQA_NOT_PARTY_GUILD_LEADER;
-
+
if( count < arena->min_team_players ) {
char response[100];
if( count != p->party.count && p->party.count >= arena->min_team_players )
@@ -841,7 +833,6 @@ enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_
clif->colormes(sd->fd,COLOR_RED,response);
return BGQA_FAIL_TEAM_COUNT;
}
-
} else
return BGQA_NOT_PARTY_GUILD_LEADER;
}
@@ -852,7 +843,6 @@ enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, struct bg_
ShowDebug("bg_canqueue: unknown/unsupported type %d\n",type);
return BGQA_DUPLICATE_REQUEST;
}
-
return BGQA_SUCCESS;
}
void do_init_battleground(bool minimal) {
@@ -867,22 +857,22 @@ void do_init_battleground(bool minimal) {
void do_final_battleground(void) {
int i;
-
+
db_destroy(bg->team_db);
-
+
for( i = 0; i < bg->arenas; i++ ) {
if( bg->arena[i] )
aFree(bg->arena[i]);
}
-
+
if( bg->arena )
aFree(bg->arena);
}
void battleground_defaults(void) {
bg = &bg_s;
-
+
bg->queue_on = false;
-
+
bg->mafksec = 0;
bg->afk_timer_id = INVALID_TIMER;
bg->arena = NULL;
diff --git a/src/map/buyingstore.c b/src/map/buyingstore.c
index 626d102a3..8efffa342 100644
--- a/src/map/buyingstore.c
+++ b/src/map/buyingstore.c
@@ -169,7 +169,7 @@ void buyingstore_create(struct map_session_data* sd, int zenylimit, unsigned cha
// success
sd->state.buyingstore = true;
- sd->buyer_id = buyingstore_getuid();
+ sd->buyer_id = buyingstore->getuid();
sd->buyingstore.zenylimit = zenylimit;
sd->buyingstore.slots = i; // store actual amount of items
safestrncpy(sd->message, storename, sizeof(sd->message));
@@ -294,8 +294,11 @@ void buyingstore_trade(struct map_session_data* sd, int account_id, unsigned int
return;
}
- if( sd->status.inventory[index].expire_time || (sd->status.inventory[index].bound && !pc_can_give_bound_items(sd)) || !itemdb_cantrade(&sd->status.inventory[index], pc_get_group_level(sd), pc_get_group_level(pl_sd)) || memcmp(sd->status.inventory[index].card, buyingstore->blankslots, sizeof(buyingstore->blankslots)) )
- {// non-tradable item
+ if (sd->status.inventory[index].expire_time || (sd->status.inventory[index].bound && !pc_can_give_bound_items(sd))
+ || !itemdb_cantrade(&sd->status.inventory[index], pc_get_group_level(sd), pc_get_group_level(pl_sd))
+ || memcmp(sd->status.inventory[index].card, buyingstore->blankslots, sizeof(buyingstore->blankslots))
+ ) {
+ // non-tradable item
clif->buyingstore_trade_failed_seller(sd, BUYINGSTORE_TRADE_SELLER_FAILED, nameid);
return;
}
@@ -367,7 +370,7 @@ void buyingstore_trade(struct map_session_data* sd, int account_id, unsigned int
chrif->save(sd, 0);
chrif->save(pl_sd, 0);
}
-
+
// check whether or not there is still something to buy
ARR_FIND( 0, pl_sd->buyingstore.slots, i, pl_sd->buyingstore.items[i].amount != 0 );
if( i == pl_sd->buyingstore.slots )
@@ -384,7 +387,7 @@ void buyingstore_trade(struct map_session_data* sd, int account_id, unsigned int
}
// cannot continue buying
- buyingstore_close(pl_sd);
+ buyingstore->close(pl_sd);
// remove auto-trader
if( pl_sd->state.autotrade ) {
@@ -459,7 +462,7 @@ bool buyingstore_searchall(struct map_session_data* sd, const struct s_search_st
}
void buyingstore_defaults(void) {
buyingstore = &buyingstore_s;
-
+
buyingstore->nextid = 0;
memset(buyingstore->blankslots,0,sizeof(buyingstore->blankslots));
/* */
diff --git a/src/map/chat.c b/src/map/chat.c
index cd7b5f811..9c67e0f44 100644
--- a/src/map/chat.c
+++ b/src/map/chat.c
@@ -61,10 +61,10 @@ struct chat_data* chat_createchat(struct block_list* bl, const char* title, cons
}
map->addiddb(&cd->bl);
-
+
if( bl->type != BL_NPC )
cd->kick_list = idb_alloc(DB_OPT_BASE);
-
+
return cd;
}
@@ -156,20 +156,20 @@ bool chat_joinchat(struct map_session_data* sd, int chatid, const char* pass) {
pc_setchatid(sd,cd->bl.id);
- clif->joinchatok(sd, cd); //To the person who newly joined the list of all
- clif->addchat(cd, sd); //Reports To the person who already in the chat
- clif->dispchat(cd, 0); //Reported number of changes to the people around
+ clif->joinchatok(sd, cd); //To the person who newly joined the list of all
+ clif->addchat(cd, sd); //Reports To the person who already in the chat
+ clif->dispchat(cd, 0); //Reported number of changes to the people around
- chat->trigger_event(cd); //Event
+ chat->trigger_event(cd); //Event
- return true;
+ return true;
}
/*==========================================
* Leave a chatroom
* Return
- * 0: User not found in chatroom/Missing data
+ * 0: User not found in chatroom/Missing data
* 1: Success
* 2: Chat room deleted (chat room empty)
* 3: Owner changed (Owner left and a new one as assigned)
@@ -188,8 +188,8 @@ int chat_leavechat(struct map_session_data* sd, bool kicked) {
}
ARR_FIND( 0, cd->users, i, cd->usersd[i] == sd );
- if ( i == cd->users )
- { // Not found in the chatroom?
+ if (i == cd->users) {
+ // Not found in the chatroom?
pc_setchatid(sd, 0);
return 0;
}
@@ -213,7 +213,7 @@ int chat_leavechat(struct map_session_data* sd, bool kicked) {
map->deliddb(&cd->bl);
map->delblock(&cd->bl);
map->freeblock(&cd->bl);
-
+
su = map->find_skill_unit_oncell(&sd->bl, sd->bl.x, sd->bl.y, AL_WARP, NULL, 0);
group = (su != NULL) ? su->group : NULL;
if (group != NULL)
@@ -326,7 +326,7 @@ bool chat_kickchat(struct map_session_data* sd, const char* kickusername) {
nullpo_ret(sd);
cd = (struct chat_data *)map->id2bl(sd->chatID);
-
+
if( cd==NULL || (struct block_list *)sd != cd->owner )
return false;
@@ -336,7 +336,7 @@ bool chat_kickchat(struct map_session_data* sd, const char* kickusername) {
if (pc_has_permission(cd->usersd[i], PC_PERM_NO_CHAT_KICK))
return false; //gm kick protection [Valaris]
-
+
idb_iput(cd->kick_list,cd->usersd[i]->status.char_id,1);
chat->leave(cd->usersd[i],1);
@@ -385,14 +385,14 @@ bool chat_deletenpcchat(struct npc_data* nd) {
cd = (struct chat_data*)map->id2bl(nd->chat_id);
if( cd == NULL )
return false;
-
+
chat->npc_kick_all(cd);
clif->clearchat(cd, 0);
map->deliddb(&cd->bl);
map->delblock(&cd->bl);
map->freeblock(&cd->bl);
nd->chat_id = 0;
-
+
return true;
}
@@ -452,7 +452,7 @@ bool chat_npckickall(struct chat_data* cd)
*-------------------------------------*/
void chat_defaults(void) {
chat = &chat_s;
-
+
/* funcs */
chat->create_pc_chat = chat_createpcchat;
chat->join = chat_joinchat;
diff --git a/src/map/chat.h b/src/map/chat.h
index e055c04ed..6fca018f4 100644
--- a/src/map/chat.h
+++ b/src/map/chat.h
@@ -16,21 +16,21 @@ struct npc_data;
#define MAX_CHAT_USERS 20
struct chat_data {
- struct block_list bl; // data for this map object
- char title[CHATROOM_TITLE_SIZE]; // room title
- char pass[CHATROOM_PASS_SIZE]; // password
- bool pub; // private/public flag
- uint8 users; // current user count
- uint8 limit; // join limit
- uint8 trigger; // number of users needed to trigger event
- uint32 zeny; // required zeny to join
- uint32 minLvl; // minimum base level to join
- uint32 maxLvl; // maximum base level allowed to join
+ struct block_list bl; ///< data for this map object
+ char title[CHATROOM_TITLE_SIZE]; ///< room title
+ char pass[CHATROOM_PASS_SIZE]; ///< password
+ bool pub; ///< private/public flag
+ uint8 users; ///< current user count
+ uint8 limit; ///< join limit
+ uint8 trigger; ///< number of users needed to trigger event
+ uint32 zeny; ///< required zeny to join
+ uint32 minLvl; ///< minimum base level to join
+ uint32 maxLvl; ///< maximum base level allowed to join
struct map_session_data* usersd[MAX_CHAT_USERS];
struct block_list* owner;
char npc_event[EVENT_NAME_LENGTH];
/* isn't this a waste? there is a enormous overhead, wouldn't something like skill_blockpc_start be better here? [Ind] */
- DBMap* kick_list; //DBMap of users who were kicked from this chat
+ DBMap* kick_list; ///< DBMap of users who were kicked from this chat
};
/*=====================================
@@ -39,7 +39,6 @@ struct chat_data {
* created by Susu
*-------------------------------------*/
struct chat_interface {
-
/* funcs */
bool (*create_pc_chat) (struct map_session_data* sd, const char* title, const char* pass, int limit, bool pub);
bool (*join) (struct map_session_data* sd, int chatid, const char* pass);
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 4c8cd747b..a5003ab95 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -116,7 +116,6 @@ struct auth_node* chrif_search(int account_id) {
struct auth_node* chrif_auth_check(int account_id, int char_id, enum sd_state state) {
struct auth_node *node = chrif->search(account_id);
-
return ( node && node->char_id == char_id && node->state == state ) ? node : NULL;
}
@@ -125,24 +124,23 @@ bool chrif_auth_delete(int account_id, int char_id, enum sd_state state) {
if ( (node = chrif->auth_check(account_id, char_id, state) ) ) {
int fd = node->sd ? node->sd->fd : node->fd;
-
+
if ( session[fd] && session[fd]->session_data == node->sd )
session[fd]->session_data = NULL;
-
+
if ( node->sd ) {
-
if( node->sd->regs.vars )
node->sd->regs.vars->destroy(node->sd->regs.vars, script->reg_destroy);
-
+
if( node->sd->regs.arrays )
node->sd->regs.arrays->destroy(node->sd->regs.arrays, script->array_free_db);
-
+
aFree(node->sd);
}
-
+
ers_free(chrif->auth_db_ers, node);
idb_remove(chrif->auth_db,account_id);
-
+
return true;
}
return false;
@@ -151,52 +149,52 @@ bool chrif_auth_delete(int account_id, int char_id, enum sd_state state) {
//Moves the sd character to the auth_db structure.
bool chrif_sd_to_auth(TBL_PC* sd, enum sd_state state) {
struct auth_node *node;
-
+
if ( chrif->search(sd->status.account_id) )
return false; //Already exists?
node = ers_alloc(chrif->auth_db_ers, struct auth_node);
-
+
memset(node, 0, sizeof(struct auth_node));
-
+
node->account_id = sd->status.account_id;
node->char_id = sd->status.char_id;
node->login_id1 = sd->login_id1;
node->login_id2 = sd->login_id2;
node->sex = sd->status.sex;
node->fd = sd->fd;
- node->sd = sd; //Data from logged on char.
+ node->sd = sd; //Data from logged on char.
node->node_created = timer->gettick(); //timestamp for node timeouts
node->state = state;
sd->state.active = 0;
-
+
idb_put(chrif->auth_db, node->account_id, node);
-
+
return true;
}
-bool chrif_auth_logout(TBL_PC* sd, enum sd_state state) {
-
+bool chrif_auth_logout(TBL_PC* sd, enum sd_state state)
+{
if(sd->fd && state == ST_LOGOUT) { //Disassociate player, and free it after saving ack returns. [Skotlex]
//fd info must not be lost for ST_MAPCHANGE as a final packet needs to be sent to the player.
if ( session[sd->fd] )
session[sd->fd]->session_data = NULL;
sd->fd = 0;
}
-
+
return chrif->sd_to_auth(sd, state);
}
bool chrif_auth_finished(TBL_PC* sd) {
struct auth_node *node= chrif->search(sd->status.account_id);
-
+
if ( node && node->sd == sd && node->state == ST_LOGIN ) {
node->sd = NULL;
-
+
return chrif->auth_delete(node->account_id, node->char_id, ST_LOGIN);
}
-
+
return false;
}
// sets char-server's user id
@@ -221,16 +219,16 @@ void chrif_checkdefaultlogin(void) {
// sets char-server's ip address
bool chrif_setip(const char* ip) {
char ip_str[16];
-
+
if ( !( chrif->ip = host2ip(ip) ) ) {
ShowWarning("Failed to Resolve Char Server Address! (%s)\n", ip);
return false;
}
-
+
safestrncpy(chrif->ip_str, ip, sizeof(chrif->ip_str));
-
+
ShowInfo("Char Server IP Address : '"CL_WHITE"%s"CL_RESET"' -> '"CL_WHITE"%s"CL_RESET"'.\n", ip, ip2str(chrif->ip, ip_str));
-
+
return true;
}
@@ -314,9 +312,9 @@ void chrif_connect(int fd) {
// sends maps to char-server
void chrif_sendmap(int fd) {
int i;
-
+
ShowStatus("Sending maps to char server...\n");
-
+
// Sending normal maps, not instances
WFIFOHEAD(fd, 4 + instance->start_id * 4);
WFIFOW(fd,0) = 0x2afa;
@@ -335,7 +333,7 @@ void chrif_recvmap(int fd) {
for(i = 10, j = 0; i < RFIFOW(fd,2); i += 4, j++) {
map->setipport(RFIFOW(fd,i), ip, port);
}
-
+
if (battle_config.etc_log)
ShowStatus("Received maps from %d.%d.%d.%d:%d (%d maps)\n", CONVIP(ip), port, j);
@@ -352,7 +350,7 @@ void chrif_removemap(int fd) {
map->eraseipport(RFIFOW(fd, i), ip, port);
chrif->other_mapserver_count--;
-
+
if(battle_config.etc_log)
ShowStatus("remove map of server %d.%d.%d.%d:%d (%d maps)\n", CONVIP(ip), port, j);
}
@@ -389,7 +387,7 @@ bool chrif_changemapserver(struct map_session_data* sd, uint32 ip, uint16 port)
WFIFOL(chrif->fd,31) = htonl(session[sd->fd]->client_addr);
WFIFOL(chrif->fd,35) = sd->group_id;
WFIFOSET(chrif->fd,39);
-
+
return true;
}
@@ -397,7 +395,7 @@ bool chrif_changemapserver(struct map_session_data* sd, uint32 ip, uint16 port)
/// R 2b06 <account_id>.L <login_id1>.L <login_id2>.L <char_id>.L <map_index>.W <x>.W <y>.W <ip>.L <port>.W
bool chrif_changemapserverack(int account_id, int login_id1, int login_id2, int char_id, short map_index, short x, short y, uint32 ip, uint16 port) {
struct auth_node *node;
-
+
if ( !( node = chrif->auth_check(account_id, char_id, ST_MAPCHANGE) ) )
return false;
@@ -436,7 +434,7 @@ void chrif_connectack(int fd) {
ShowStatus("Event '"CL_WHITE"OnInterIfInitOnce"CL_RESET"' executed with '"CL_WHITE"%d"CL_RESET"' NPCs.\n", npc->event_doall("OnInterIfInitOnce"));
guild->castle_map_init();
}
-
+
sockt->datasync(fd, true);
chrif->skillid2idx(fd);
}
@@ -446,7 +444,7 @@ void chrif_connectack(int fd) {
*/
int chrif_reconnect(DBKey key, DBData *data, va_list ap) {
struct auth_node *node = DB->data2ptr(data);
-
+
switch (node->state) {
case ST_LOGIN:
if ( node->sd ) {//Since there is no way to request the char auth, make it fail.
@@ -463,7 +461,7 @@ int chrif_reconnect(DBKey key, DBData *data, va_list ap) {
struct map_session_data *sd = node->sd;
uint32 ip;
uint16 port;
-
+
if( map->mapname2ipport(sd->mapindex,&ip,&port) == 0 )
chrif->changemapserver(sd, ip, port);
else //too much lag/timeout is the closest explanation for this error.
@@ -471,7 +469,6 @@ int chrif_reconnect(DBKey key, DBData *data, va_list ap) {
break;
}
}
-
return 0;
}
@@ -480,9 +477,9 @@ int chrif_reconnect(DBKey key, DBData *data, va_list ap) {
void chrif_on_ready(void) {
static bool once = false;
ShowStatus("Map Server is now online.\n");
-
+
chrif->state = 2;
-
+
chrif->check_shutdown();
//If there are players online, send them to the char-server. [Skotlex]
@@ -496,7 +493,7 @@ void chrif_on_ready(void) {
//Re-save any guild castles that were modified in the disconnection time.
guild->castle_reconnect(-1, 0, 0);
-
+
if( !once ) {
#ifdef AUTOTRADE_PERSISTENCY
pc->autotrade_load();
@@ -509,23 +506,23 @@ void chrif_on_ready(void) {
/*==========================================
*
*------------------------------------------*/
-void chrif_sendmapack(int fd) {
-
+void chrif_sendmapack(int fd)
+{
if (RFIFOB(fd,2)) {
ShowFatalError("chrif : send map list to char server failed %d\n", RFIFOB(fd,2));
exit(EXIT_FAILURE);
}
memcpy(map->wisp_server_name, RFIFOP(fd,3), NAME_LENGTH);
-
+
chrif->on_ready();
}
/*==========================================
* Request sc_data from charserver [Skotlex]
*------------------------------------------*/
-bool chrif_scdata_request(int account_id, int char_id) {
-
+bool chrif_scdata_request(int account_id, int char_id)
+{
#ifdef ENABLE_SC_SAVING
chrif_check(false);
@@ -535,7 +532,6 @@ bool chrif_scdata_request(int account_id, int char_id) {
WFIFOL(chrif->fd,6) = char_id;
WFIFOSET(chrif->fd,10);
#endif
-
return true;
}
@@ -544,7 +540,7 @@ bool chrif_scdata_request(int account_id, int char_id) {
*------------------------------------------*/
void chrif_authreq(struct map_session_data *sd, bool hstandalone) {
struct auth_node *node= chrif->search(sd->bl.id);
-
+
if( node != NULL || !chrif->isconnected() ) {
set_eof(sd->fd);
return;
@@ -621,7 +617,7 @@ void chrif_authok(int fd) {
} else { //Auth Failed
pc->authfail(sd);
}
-
+
chrif_char_offline(sd); //Set him offline, the char server likely has it set as online already.
chrif->auth_delete(account_id, char_id, ST_LOGIN);
}
@@ -639,7 +635,7 @@ void chrif_authfail(int fd) {/* HELLO WORLD. ip in RFIFOL 15 is not being used (
sex = RFIFOB(fd,14);
node = chrif->search(account_id);
-
+
if( node != NULL &&
node->account_id == account_id &&
node->char_id == char_id &&
@@ -660,7 +656,7 @@ void chrif_authfail(int fd) {/* HELLO WORLD. ip in RFIFOL 15 is not being used (
int auth_db_cleanup_sub(DBKey key, DBData *data, va_list ap) {
struct auth_node *node = DB->data2ptr(data);
const char* states[] = { "Login", "Logout", "Map change" };
-
+
if(DIFF_TICK(timer->gettick(),node->node_created)>60000) {
switch (node->state) {
case ST_LOGOUT:
@@ -694,7 +690,7 @@ bool chrif_charselectreq(struct map_session_data* sd, uint32 s_ip) {
if( !sd->bl.id || !sd->login_id1 )
return false;
-
+
chrif_check(false);
WFIFOHEAD(chrif->fd,22);
@@ -713,10 +709,10 @@ bool chrif_charselectreq(struct map_session_data* sd, uint32 s_ip) {
* Search Char trough id on char serv
*------------------------------------------*/
bool chrif_searchcharid(int char_id) {
-
+
if( !char_id )
return false;
-
+
chrif_check(false);
WFIFOHEAD(chrif->fd,6);
@@ -731,7 +727,7 @@ bool chrif_searchcharid(int char_id) {
* Change Email
*------------------------------------------*/
bool chrif_changeemail(int id, const char *actual_email, const char *new_email) {
-
+
if (battle_config.etc_log)
ShowInfo("chrif_changeemail: account: %d, actual_email: '%s', new_email: '%s'.\n", id, actual_email, new_email);
@@ -753,8 +749,8 @@ bool chrif_changeemail(int id, const char *actual_email, const char *new_email)
* type of operation:
* 1: block, 2: ban, 3: unblock, 4: unban, 5: changesex (use next function for 5), 6: charban
*------------------------------------------*/
-bool chrif_char_ask_name(int acc, const char* character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second) {
-
+bool chrif_char_ask_name(int acc, const char* character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second)
+{
chrif_check(false);
WFIFOHEAD(chrif->fd,44);
@@ -762,7 +758,7 @@ bool chrif_char_ask_name(int acc, const char* character_name, unsigned short ope
WFIFOL(chrif->fd,2) = acc;
safestrncpy((char*)WFIFOP(chrif->fd,6), character_name, NAME_LENGTH);
WFIFOW(chrif->fd,30) = operation_type;
-
+
if ( operation_type == 2 || operation_type == 6 ) {
WFIFOW(chrif->fd,32) = year;
WFIFOW(chrif->fd,34) = month;
@@ -771,14 +767,14 @@ bool chrif_char_ask_name(int acc, const char* character_name, unsigned short ope
WFIFOW(chrif->fd,40) = minute;
WFIFOW(chrif->fd,42) = second;
}
-
+
WFIFOSET(chrif->fd,44);
return true;
}
bool chrif_changesex(struct map_session_data *sd) {
chrif_check(false);
-
+
WFIFOHEAD(chrif->fd,44);
WFIFOW(chrif->fd,0) = 0x2b0e;
WFIFOL(chrif->fd,2) = sd->status.account_id;
@@ -811,9 +807,9 @@ bool chrif_char_ask_name_answer(int acc, const char* player_name, uint16 type, u
char action[25];
char output[256];
bool charsrv = ( type == 6 || type == 7 ) ? true : false;
-
+
sd = map->id2sd(acc);
-
+
if( acc < 0 || sd == NULL ) {
ShowError("chrif_char_ask_name_answer failed - player not online.\n");
return false;
@@ -822,7 +818,7 @@ bool chrif_char_ask_name_answer(int acc, const char* player_name, uint16 type, u
/* re-use previous msg_txt */
if( type == 6 ) type = 2;
if( type == 7 ) type = 4;
-
+
if( type > 0 && type <= 5 )
snprintf(action,25,"%s",msg_txt(427+type)); //block|ban|unblock|unban|change the sex of
else
@@ -835,7 +831,7 @@ bool chrif_char_ask_name_answer(int acc, const char* player_name, uint16 type, u
case 3 : sprintf(output, msg_txt(427), action, NAME_LENGTH, player_name); break;
default: output[0] = '\0'; break;
}
-
+
clif->message(sd->fd, output);
return true;
}
@@ -846,7 +842,7 @@ bool chrif_char_ask_name_answer(int acc, const char* player_name, uint16 type, u
void chrif_changedsex(int fd) {
int acc = RFIFOL(fd,2);
//int sex = RFIFOL(fd,6); // Dead store. Uncomment if needed again.
-
+
if ( battle_config.etc_log )
ShowNotice("chrif_changedsex %d.\n", acc);
@@ -896,7 +892,7 @@ bool chrif_divorceack(int char_id, int partner_id) {
if (sd->status.inventory[i].nameid == WEDDING_RING_M || sd->status.inventory[i].nameid == WEDDING_RING_F)
pc->delitem(sd, i, 1, 0, 0, LOG_TYPE_OTHER);
}
-
+
return true;
}
/*==========================================
@@ -932,10 +928,10 @@ void chrif_idbanned(int fd) {
struct map_session_data *sd;
id = RFIFOL(fd,2);
-
+
if ( battle_config.etc_log )
ShowNotice("chrif_idbanned %d.\n", id);
-
+
sd = ( RFIFOB(fd,6) == 2 ) ? map->charid2sd(id) : map->id2sd(id);
if ( id < 0 || sd == NULL ) {
@@ -981,10 +977,10 @@ int chrif_disconnectplayer(int fd) {
sd = map->id2sd(account_id);
if( sd == NULL ) {
struct auth_node* auth = chrif->search(account_id);
-
+
if( auth != NULL && chrif->auth_delete(account_id, auth->char_id, ST_LOGIN) )
return 0;
-
+
return -1;
}
@@ -1011,7 +1007,7 @@ int chrif_disconnectplayer(int fd) {
*------------------------------------------*/
int chrif_updatefamelist(struct map_session_data* sd) {
char type;
-
+
chrif_check(-1);
switch(sd->class_ & MAPID_UPPERMASK) {
@@ -1051,30 +1047,24 @@ void chrif_recvfamelist(int fd) {
memset(pc->taekwon_fame_list, 0, sizeof(pc->taekwon_fame_list));
size = RFIFOW(fd, 6); //Blacksmith block size
-
for (num = 0; len < size && num < MAX_FAME_LIST; num++) {
memcpy(&pc->smith_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list));
- len += sizeof(struct fame_list);
+ len += sizeof(struct fame_list);
}
-
total += num;
size = RFIFOW(fd, 4); //Alchemist block size
-
for (num = 0; len < size && num < MAX_FAME_LIST; num++) {
memcpy(&pc->chemist_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list));
- len += sizeof(struct fame_list);
+ len += sizeof(struct fame_list);
}
-
total += num;
size = RFIFOW(fd, 2); //Total packet length
-
for (num = 0; len < size && num < MAX_FAME_LIST; num++) {
memcpy(&pc->taekwon_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list));
- len += sizeof(struct fame_list);
+ len += sizeof(struct fame_list);
}
-
total += num;
ShowInfo("Received Fame List of '"CL_WHITE"%d"CL_RESET"' characters.\n", total);
@@ -1085,21 +1075,20 @@ void chrif_recvfamelist(int fd) {
int chrif_updatefamelist_ack(int fd) {
struct fame_list* list;
uint8 index;
-
+
switch (RFIFOB(fd,2)) {
case RANKTYPE_BLACKSMITH: list = pc->smith_fame_list; break;
case RANKTYPE_ALCHEMIST: list = pc->chemist_fame_list; break;
case RANKTYPE_TAEKWON: list = pc->taekwon_fame_list; break;
default: return 0;
}
-
+
index = RFIFOB(fd, 3);
-
if (index >= MAX_FAME_LIST)
return 0;
-
+
list[index].fame = RFIFOL(fd,4);
-
+
return 1;
}
@@ -1114,20 +1103,23 @@ bool chrif_save_scdata(struct map_session_data *sd) { //parses the sc_data of th
chrif_check(false);
tick = timer->gettick();
-
+
WFIFOHEAD(chrif->fd, 14 + SC_MAX*sizeof(struct status_change_data));
WFIFOW(chrif->fd,0) = 0x2b1c;
WFIFOL(chrif->fd,4) = sd->status.account_id;
WFIFOL(chrif->fd,8) = sd->status.char_id;
-
+
for (i = 0; i < SC_MAX; i++) {
if (!sc->data[i])
continue;
if (sc->data[i]->timer != INVALID_TIMER) {
td = timer->get(sc->data[i]->timer);
- if (td == NULL || td->func != status->change_timer || DIFF_TICK(td->tick,tick) < 0)
+ if (td == NULL || td->func != status->change_timer)
continue;
- data.tick = DIFF_TICK32(td->tick,tick); //Duration that is left before ending.
+ if (DIFF_TICK32(td->tick,tick) > 0)
+ data.tick = DIFF_TICK32(td->tick,tick); //Duration that is left before ending.
+ else
+ data.tick = 0; //Negative tick does not necessarily mean that sc has expired
} else
data.tick = -1; //Infinite duration
data.type = i;
@@ -1139,15 +1131,15 @@ bool chrif_save_scdata(struct map_session_data *sd) { //parses the sc_data of th
&data, sizeof(struct status_change_data));
count++;
}
-
+
if (count == 0)
return true; //Nothing to save. | Everything was as successful as if there was something to save.
-
+
WFIFOW(chrif->fd,12) = count;
WFIFOW(chrif->fd,2) = 14 +count*sizeof(struct status_change_data); //Total packet size
WFIFOSET(chrif->fd,WFIFOW(chrif->fd,2));
#endif
-
+
return true;
}
@@ -1161,29 +1153,29 @@ bool chrif_load_scdata(int fd) {
aid = RFIFOL(fd,4); //Player Account ID
cid = RFIFOL(fd,8); //Player Char ID
-
+
sd = map->id2sd(aid);
-
+
if ( !sd ) {
ShowError("chrif_load_scdata: Player of AID %d not found!\n", aid);
return false;
}
-
+
if ( sd->status.char_id != cid ) {
ShowError("chrif_load_scdata: Receiving data for account %d, char id does not matches (%d != %d)!\n", aid, sd->status.char_id, cid);
return false;
}
-
+
count = RFIFOW(fd,12); //sc_count
-
+
for (i = 0; i < count; i++) {
data = (struct status_change_data*)RFIFOP(fd,14 + i*sizeof(struct status_change_data));
- status->change_start(NULL, &sd->bl, (sc_type)data->type, 10000, data->val1, data->val2, data->val3, data->val4, data->tick, 15);
+ status->change_start(NULL, &sd->bl, (sc_type)data->type, 10000, data->val1, data->val2, data->val3, data->val4,
+ data->tick, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_LOADED|SCFLAG_FIXEDRATE);
}
-
+
pc->scdata_received(sd);
#endif
-
return true;
}
@@ -1200,7 +1192,6 @@ bool chrif_ragsrvinfo(int base_rate, int job_rate, int drop_rate) {
WFIFOL(chrif->fd,6) = job_rate;
WFIFOL(chrif->fd,10) = drop_rate;
WFIFOSET(chrif->fd,14);
-
return true;
}
@@ -1266,7 +1257,7 @@ void chrif_on_disconnect(void) {
if( chrif->connected != 1 )
ShowWarning("Connection to Char Server lost.\n\n");
chrif->connected = 0;
-
+
chrif->other_mapserver_count = 0; //Reset counter. We receive ALL maps from all map-servers on reconnect.
map->eraseallipport();
@@ -1277,19 +1268,19 @@ void chrif_on_disconnect(void) {
void chrif_update_ip(int fd) {
uint32 new_ip;
-
+
WFIFOHEAD(fd,6);
-
+
new_ip = host2ip(chrif->ip_str);
-
+
if (new_ip && new_ip != chrif->ip)
chrif->ip = new_ip; //Update chrif->ip
new_ip = clif->refresh_ip();
-
+
if (!new_ip)
return; //No change
-
+
WFIFOW(fd,0) = 0x2736;
WFIFOL(fd,2) = htonl(new_ip);
WFIFOSET(fd,6);
@@ -1306,12 +1297,12 @@ void chrif_keepalive_ack(int fd) {
}
void chrif_skillid2idx(int fd) {
int i, count = 0;
-
+
if( fd == 0 ) fd = chrif->fd;
-
+
if( !session_isValid(fd) )
return;
-
+
WFIFOHEAD(fd,4 + (MAX_SKILL * 4));
WFIFOW(fd,0) = 0x2b0b;
for(i = 0; i < MAX_SKILL; i++) {
@@ -1363,12 +1354,12 @@ int chrif_parse(int fd) {
}
cmd = RFIFOW(fd,0);
-
+
if (cmd < 0x2af8 || cmd >= 0x2af8 + ARRAYLENGTH(chrif->packet_len_table) || chrif->packet_len_table[cmd-0x2af8] == 0) {
r = intif->parse(fd); // Passed on to the intif
- if (r == 1) continue; // Treated in intif
- if (r == 2) return 0; // Didn't have enough data (len==-1)
+ if (r == 1) continue; // Treated in intif
+ if (r == 2) return 0; // Didn't have enough data (len==-1)
ShowWarning("chrif_parse: session #%d, intif->parse failed (unrecognized command 0x%.4x).\n", fd, cmd);
set_eof(fd);
@@ -1444,20 +1435,18 @@ bool send_users_tochar(void) {
chrif_check(false);
users = map->usercount();
-
+
WFIFOHEAD(chrif->fd, 6+8*users);
WFIFOW(chrif->fd,0) = 0x2aff;
-
+
iter = mapit_getallusers();
-
for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter) ) {
WFIFOL(chrif->fd,6+8*i) = sd->status.account_id;
WFIFOL(chrif->fd,6+8*i+4) = sd->status.char_id;
i++;
}
-
mapit->free(iter);
-
+
WFIFOW(chrif->fd,2) = 6 + 8*users;
WFIFOW(chrif->fd,4) = users;
WFIFOSET(chrif->fd, 6+8*users);
@@ -1467,7 +1456,7 @@ bool send_users_tochar(void) {
/*==========================================
* timerFunction
- * Check the connection to char server, (if it down)
+ * Check the connection to char server, (if it down)
*------------------------------------------*/
int check_connect_char_server(int tid, int64 tick, int id, intptr_t data) {
static int displayed = 0;
@@ -1478,7 +1467,7 @@ int check_connect_char_server(int tid, int64 tick, int id, intptr_t data) {
}
chrif->state = 0;
-
+
if ( ( chrif->fd = make_connection(chrif->ip, chrif->port,NULL) ) == -1) //Attempt to connect later. [Skotlex]
return 0;
@@ -1503,8 +1492,8 @@ int check_connect_char_server(int tid, int64 tick, int id, intptr_t data) {
/*==========================================
* Asks char server to remove friend_id from the friend list of char_id
*------------------------------------------*/
-bool chrif_removefriend(int char_id, int friend_id) {
-
+bool chrif_removefriend(int char_id, int friend_id)
+{
chrif_check(false);
WFIFOHEAD(chrif->fd,10);
@@ -1512,7 +1501,6 @@ bool chrif_removefriend(int char_id, int friend_id) {
WFIFOL(chrif->fd,2) = char_id;
WFIFOL(chrif->fd,6) = friend_id;
WFIFOSET(chrif->fd,10);
-
return true;
}
@@ -1520,13 +1508,12 @@ void chrif_send_report(char* buf, int len) {
#ifndef STATS_OPT_OUT
if( chrif->fd > 0 ) {
WFIFOHEAD(chrif->fd,len + 2);
-
+
WFIFOW(chrif->fd,0) = 0x3008;
-
memcpy(WFIFOP(chrif->fd,2), buf, len);
-
+
WFIFOSET(chrif->fd,len + 2);
-
+
flush_fifo(chrif->fd); /* ensure it's sent now. */
}
#endif
@@ -1535,13 +1522,13 @@ void chrif_send_report(char* buf, int len) {
/**
* Sends a single scdata for saving into char server, meant to ensure integrity of duration-less conditions
**/
-void chrif_save_scdata_single(int account_id, int char_id, short type, struct status_change_entry *sce) {
-
+void chrif_save_scdata_single(int account_id, int char_id, short type, struct status_change_entry *sce)
+{
if( !chrif->isconnected() )
return;
-
+
WFIFOHEAD(chrif->fd, 28);
-
+
WFIFOW(chrif->fd, 0) = 0x2740;
WFIFOL(chrif->fd, 2) = account_id;
WFIFOL(chrif->fd, 6) = char_id;
@@ -1550,46 +1537,42 @@ void chrif_save_scdata_single(int account_id, int char_id, short type, struct st
WFIFOL(chrif->fd, 16) = sce->val2;
WFIFOL(chrif->fd, 20) = sce->val3;
WFIFOL(chrif->fd, 24) = sce->val4;
-
+
WFIFOSET(chrif->fd, 28);
-
}
/**
* Sends a single scdata deletion request into char server, meant to ensure integrity of duration-less conditions
**/
-void chrif_del_scdata_single(int account_id, int char_id, short type) {
-
+void chrif_del_scdata_single(int account_id, int char_id, short type)
+{
if( !chrif->isconnected() ) {
ShowError("MAYDAY! failed to delete status %d from CID:%d/AID:%d\n",type,char_id,account_id);
return;
}
-
WFIFOHEAD(chrif->fd, 12);
-
+
WFIFOW(chrif->fd, 0) = 0x2741;
WFIFOL(chrif->fd, 2) = account_id;
WFIFOL(chrif->fd, 6) = char_id;
WFIFOW(chrif->fd, 10) = type;
-
- WFIFOSET(chrif->fd, 12);
+ WFIFOSET(chrif->fd, 12);
}
-/** `
+/**
* @see DBApply
*/
int auth_db_final(DBKey key, DBData *data, va_list ap) {
struct auth_node *node = DB->data2ptr(data);
-
+
if (node->sd) {
-
if( node->sd->regs.vars )
node->sd->regs.vars->destroy(node->sd->regs.vars, script->reg_destroy);
-
+
if( node->sd->regs.arrays )
node->sd->regs.arrays->destroy(node->sd->regs.arrays, script->array_free_db);
-
+
aFree(node->sd);
}
ers_free(chrif->auth_db_ers, node);
@@ -1600,15 +1583,15 @@ int auth_db_final(DBKey key, DBData *data, va_list ap) {
/*==========================================
* Destructor
*------------------------------------------*/
-void do_final_chrif(void) {
-
+void do_final_chrif(void)
+{
if( chrif->fd != -1 ) {
do_close(chrif->fd);
chrif->fd = -1;
}
chrif->auth_db->destroy(chrif->auth_db, chrif->auth_db_final);
-
+
ers_destroy(chrif->auth_db_ers);
}
@@ -1644,12 +1627,12 @@ void do_init_chrif(bool minimal) {
*-------------------------------------*/
void chrif_defaults(void) {
const int packet_len_table[CHRIF_PACKET_LEN_TABLE_SIZE] = { // U - used, F - free
- 60, 3,-1,27,10,-1, 6,-1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff
- 6,-1,18, 7,-1,39,30, 10, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, U->2b07
- 6,30, -1, 0,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, U->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f
- 11,10,10, 0,11, 0,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, F->2b15, U->2b16, U->2b17
- 2,10, 2,-1,-1,-1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f
- -1,10, 8, 2, 2,14,19,19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27
+ 60, 3, -1, 27, 10, -1, 6, -1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff
+ 6, -1, 18, 7, -1, 39, 30, 10, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, U->2b07
+ 6, 30, -1, 0, 86, 7, 44, 34, // 2b08-2b0f: U->2b08, U->2b09, U->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f
+ 11, 10, 10, 0, 11, 0,266, 10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, F->2b15, U->2b16, U->2b17
+ 2, 10, 2, -1, -1, -1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f
+ -1, 10, 8, 2, 2, 14, 19, 19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27
};
chrif = &chrif_s;
@@ -1657,7 +1640,7 @@ void chrif_defaults(void) {
/* vars */
chrif->connected = 0;
chrif->other_mapserver_count = 0;
-
+
memcpy(chrif->packet_len_table,&packet_len_table,sizeof(chrif->packet_len_table));
chrif->fd = -1;
chrif->srvinfo = 0;
@@ -1667,36 +1650,36 @@ void chrif_defaults(void) {
memset(chrif->userid,0,sizeof(chrif->userid));
memset(chrif->passwd,0,sizeof(chrif->passwd));
chrif->state = 0;
-
+
/* */
chrif->auth_db = NULL;
chrif->auth_db_ers = NULL;
/* */
chrif->init = do_init_chrif;
chrif->final = do_final_chrif;
-
+
/* funcs */
chrif->setuserid = chrif_setuserid;
chrif->setpasswd = chrif_setpasswd;
chrif->checkdefaultlogin = chrif_checkdefaultlogin;
chrif->setip = chrif_setip;
chrif->setport = chrif_setport;
-
+
chrif->isconnected = chrif_isconnected;
chrif->check_shutdown = chrif_check_shutdown;
-
+
chrif->search = chrif_search;
chrif->auth_check = chrif_auth_check;
chrif->auth_delete = chrif_auth_delete;
chrif->auth_finished = chrif_auth_finished;
-
+
chrif->authreq = chrif_authreq;
chrif->authok = chrif_authok;
chrif->scdata_request = chrif_scdata_request;
chrif->save = chrif_save;
chrif->charselectreq = chrif_charselectreq;
chrif->changemapserver = chrif_changemapserver;
-
+
chrif->searchcharid = chrif_searchcharid;
chrif->changeemail = chrif_changeemail;
chrif->char_ask_name = chrif_char_ask_name;
@@ -1711,13 +1694,13 @@ void chrif_defaults(void) {
chrif->changesex = chrif_changesex;
//chrif->chardisconnect = chrif_chardisconnect;
chrif->divorce = chrif_divorce;
-
+
chrif->removefriend = chrif_removefriend;
chrif->send_report = chrif_send_report;
-
+
chrif->flush = chrif_flush;
chrif->skillid2idx = chrif_skillid2idx;
-
+
chrif->sd_to_auth = chrif_sd_to_auth;
chrif->check_connect_char_server = check_connect_char_server;
chrif->auth_logout = chrif_auth_logout;
@@ -1728,7 +1711,7 @@ void chrif_defaults(void) {
chrif->auth_db_final = auth_db_final;
chrif->send_usercount_tochar = send_usercount_tochar;
chrif->auth_db_cleanup = auth_db_cleanup;
-
+
chrif->connect = chrif_connect;
chrif->connectack = chrif_connectack;
chrif->sendmap = chrif_sendmap;
diff --git a/src/map/chrif.h b/src/map/chrif.h
index 11baaf5ff..2ef4d0eb5 100644
--- a/src/map/chrif.h
+++ b/src/map/chrif.h
@@ -48,7 +48,7 @@ struct auth_node {
struct chrif_interface {
/* vars */
-
+
int connected;
int other_mapserver_count; //Holds count of how many other map servers are online (apart of this instance) [Skotlex]
@@ -73,22 +73,22 @@ struct chrif_interface {
void (*checkdefaultlogin) (void);
bool (*setip) (const char* ip);
void (*setport) (uint16 port);
-
+
int (*isconnected) (void);
void (*check_shutdown) (void);
-
+
struct auth_node* (*search) (int account_id);
struct auth_node* (*auth_check) (int account_id, int char_id, enum sd_state state);
bool (*auth_delete) (int account_id, int char_id, enum sd_state state);
bool (*auth_finished) (struct map_session_data* sd);
-
+
void (*authreq) (struct map_session_data* sd, bool hstandalone);
void (*authok) (int fd);
bool (*scdata_request) (int account_id, int char_id);
bool (*save) (struct map_session_data* sd, int flag);
bool (*charselectreq) (struct map_session_data* sd, uint32 s_ip);
bool (*changemapserver) (struct map_session_data* sd, uint32 ip, uint16 port);
-
+
bool (*searchcharid) (int char_id);
bool (*changeemail) (int id, const char *actual_email, const char *new_email);
bool (*char_ask_name) (int acc, const char* character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second);
@@ -104,13 +104,13 @@ struct chrif_interface {
bool (*changesex) (struct map_session_data *sd);
//int (*chardisconnect) (struct map_session_data *sd); // FIXME: Commented out in clif.c, function does not exist
bool (*divorce) (int partner_id1, int partner_id2);
-
+
bool (*removefriend) (int char_id, int friend_id);
void (*send_report) (char* buf, int len);
-
+
bool (*flush) (void);
void (*skillid2idx) (int fd);
-
+
bool (*sd_to_auth) (TBL_PC* sd, enum sd_state state);
int (*check_connect_char_server) (int tid, int64 tick, int id, intptr_t data);
bool (*auth_logout) (TBL_PC* sd, enum sd_state state);
diff --git a/src/map/clif.c b/src/map/clif.c
index d9acf0792..d7b10f2f4 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -72,16 +72,21 @@ static struct packet_npc_market_open npcmarket_open;
//#define DUMP_UNKNOWN_PACKET
//#define DUMP_INVALID_PACKET
+static struct hChSysConfig clif_hChSys;
+
//Converts item type in case of pet eggs.
static inline int itemtype(int type) {
switch( type ) {
#if PACKETVER >= 20080827
- case IT_WEAPON: return IT_ARMOR;
+ case IT_WEAPON:
+ return IT_ARMOR;
case IT_ARMOR:
case IT_PETARMOR:
#endif
- case IT_PETEGG: return IT_WEAPON;
- default: return type;
+ case IT_PETEGG:
+ return IT_WEAPON;
+ default:
+ return type;
}
}
@@ -331,6 +336,11 @@ int clif_send_sub(struct block_list *bl, va_list ap) {
if( clif->ally_only && !sd->sc.data[SC_CLAIRVOYANCE] && !sd->special_state.intravision && battle->check_target( src_bl, &sd->bl, BCT_ENEMY ) > 0 )
return 0;
+ return clif->send_actual(fd, buf, len);
+}
+
+int clif_send_actual(int fd, void *buf, int len)
+{
WFIFOHEAD(fd, len);
if (WFIFOP(fd,0) == buf) {
ShowError("WARNING: Invalid use of clif->send function\n");
@@ -619,7 +629,9 @@ void clif_authok(struct map_session_data *sd)
#if PACKETVER >= 20080102
p.font = sd->status.font;
#endif
-
+#if PACKETVER >= 20141016
+ p.sex = sd->status.sex;
+#endif
clif->send(&p,sizeof(p),&sd->bl,SELF);
}
@@ -1265,11 +1277,15 @@ void clif_spiritball_single(int fd, struct map_session_data *sd) {
* Kagerou/Oboro amulet spirit
*------------------------------------------*/
void clif_charm_single(int fd, struct map_session_data *sd, short type) {
+
+ if ( type <= SPIRITS_TYPE_NONE || type >= SPIRITS_TYPE_SPHERE )
+ return;
+
WFIFOHEAD(fd, packet_len(0x08cf));
WFIFOW(fd,0)=0x08cf;
WFIFOL(fd,2)=sd->bl.id;
WFIFOW(fd,6)=type;
- WFIFOW(fd,8)=sd->charm[type];
+ WFIFOW(fd,8)=sd->spiritcharm[type];
WFIFOSET(fd, packet_len(0x08cf));
}
@@ -1311,7 +1327,7 @@ void clif_weather(int16 m)
for( sd = (struct map_session_data*)mapit->first(iter); mapit->exists(iter); sd = (struct map_session_data*)mapit->next(iter) )
{
if( sd->bl.m == m )
- clif_weather_check(sd);
+ clif->weather_check(sd);
}
mapit->free(iter);
}
@@ -1348,17 +1364,15 @@ bool clif_spawn(struct block_list *bl)
clif->spiritball(&sd->bl);
if(sd->state.size==SZ_BIG) // tiny/big players [Valaris]
clif->specialeffect(bl,423,AREA);
- else if(sd->state.size==SZ_SMALL)
+ else if(sd->state.size==SZ_MEDIUM)
clif->specialeffect(bl,421,AREA);
if( sd->bg_id && map->list[sd->bl.m].flag.battleground )
clif->sendbgemblem_area(sd);
for( i = 0; i < sd->sc_display_count; i++ ) {
clif->sc_load(&sd->bl, sd->bl.id,AREA,status->IconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3);
}
- for(i = 1; i < 5; i++){
- if( sd->charm[i] > 0 )
- clif->charm(sd, i);
- }
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ clif->spiritcharm(sd, i);
if (sd->status.robe)
clif->refreshlook(bl,bl->id,LOOK_ROBE,sd->status.robe,AREA);
}
@@ -1368,7 +1382,7 @@ bool clif_spawn(struct block_list *bl)
TBL_MOB *md = ((TBL_MOB*)bl);
if(md->special_state.size==SZ_BIG) // tiny/big mobs [Valaris]
clif->specialeffect(&md->bl,423,AREA);
- else if(md->special_state.size==SZ_SMALL)
+ else if(md->special_state.size==SZ_MEDIUM)
clif->specialeffect(&md->bl,421,AREA);
}
break;
@@ -1377,7 +1391,7 @@ bool clif_spawn(struct block_list *bl)
TBL_NPC *nd = ((TBL_NPC*)bl);
if( nd->size == SZ_BIG )
clif->specialeffect(&nd->bl,423,AREA);
- else if( nd->size == SZ_SMALL )
+ else if( nd->size == SZ_MEDIUM )
clif->specialeffect(&nd->bl,421,AREA);
}
break;
@@ -1410,15 +1424,24 @@ void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag)
WBUFW(buf,29)=hd->homunculus.hunger;
WBUFW(buf,31)=(unsigned short) (hd->homunculus.intimacy / 100) ;
WBUFW(buf,33)=0; // equip id
+#ifdef RENEWAL
+ WBUFW(buf, 35) = cap_value(hstatus->rhw.atk2, 0, INT16_MAX);
+#else
WBUFW(buf,35)=cap_value(hstatus->rhw.atk2+hstatus->batk, 0, INT16_MAX);
+#endif
WBUFW(buf,37)=cap_value(hstatus->matk_max, 0, INT16_MAX);
WBUFW(buf,39)=hstatus->hit;
if (battle_config.hom_setting&0x10)
WBUFW(buf,41)=hstatus->luk/3 + 1; //crit is a +1 decimal value! Just display purpose.[Vicious]
else
WBUFW(buf,41)=hstatus->cri/10;
+#ifdef RENEWAL
+ WBUFW(buf, 43) = hstatus->def + hstatus->def2;
+ WBUFW(buf, 45) = hstatus->mdef + hstatus->mdef2;
+#else
WBUFW(buf,43)=hstatus->def + hstatus->vit ;
- WBUFW(buf,45)=hstatus->mdef;
+ WBUFW(buf, 45) = hstatus->mdef;
+#endif
WBUFW(buf,47)=hstatus->flee;
WBUFW(buf,49)=(flag)?0:hstatus->amotion;
if (hstatus->max_hp > INT16_MAX) {
@@ -1465,7 +1488,7 @@ void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag)
/// 3 = accessory?
/// ? = ignored
void clif_send_homdata(struct map_session_data *sd, int state, int param)
-{ //[orn]
+{
int fd = sd->fd;
if ( (state == SP_INTIMATE) && (param >= 910) && (sd->hd->homunculus.class_ == sd->hd->homunculusDB->evo_class) )
@@ -1536,7 +1559,7 @@ void clif_homskillup(struct map_session_data *sd, uint16 skill_id) { //[orn]
WFIFOSET(fd,packet_len(0x239));
}
-void clif_hom_food(struct map_session_data *sd,int foodid,int fail) //[orn]
+void clif_hom_food(struct map_session_data *sd,int foodid,int fail)
{
int fd;
nullpo_retv(sd);
@@ -1582,10 +1605,10 @@ void clif_move2(struct block_list *bl, struct view_data *vd, struct unit_data *u
case BL_PC:
{
TBL_PC *sd = ((TBL_PC*)bl);
- // clif_movepc(sd);
+ //clif_movepc(sd);
if(sd->state.size==SZ_BIG) // tiny/big players [Valaris]
clif->specialeffect(&sd->bl,423,AREA);
- else if(sd->state.size==SZ_SMALL)
+ else if(sd->state.size==SZ_MEDIUM)
clif->specialeffect(&sd->bl,421,AREA);
}
break;
@@ -1594,7 +1617,7 @@ void clif_move2(struct block_list *bl, struct view_data *vd, struct unit_data *u
TBL_MOB *md = ((TBL_MOB*)bl);
if(md->special_state.size==SZ_BIG) // tiny/big mobs [Valaris]
clif->specialeffect(&md->bl,423,AREA);
- else if(md->special_state.size==SZ_SMALL)
+ else if(md->special_state.size==SZ_MEDIUM)
clif->specialeffect(&md->bl,421,AREA);
}
break;
@@ -2669,76 +2692,77 @@ void read_channels_config(void) {
if( !libconfig->setting_lookup_string(settings, "map_local_channel_name", &local_name) )
local_name = "map";
- safestrncpy(hChSys.local_name, local_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(clif->hChSys->local_name, local_name, HCHSYS_NAME_LENGTH);
if( !libconfig->setting_lookup_string(settings, "ally_channel_name", &ally_name) )
ally_name = "ally";
- safestrncpy(hChSys.ally_name, ally_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(clif->hChSys->ally_name, ally_name, HCHSYS_NAME_LENGTH);
if( !libconfig->setting_lookup_string(settings, "irc_channel_name", &irc_name) )
irc_name = "irc";
- safestrncpy(hChSys.irc_name, irc_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(clif->hChSys->irc_name, irc_name, HCHSYS_NAME_LENGTH);
libconfig->setting_lookup_bool(settings, "map_local_channel", &local_enabled);
libconfig->setting_lookup_bool(settings, "ally_channel_enabled", &ally_enabled);
libconfig->setting_lookup_bool(settings, "irc_channel_enabled", &irc_enabled);
- if( local_enabled )
- hChSys.local = true;
- if( ally_enabled )
- hChSys.ally = true;
- if( irc_enabled )
- hChSys.irc = true;
+ if (local_enabled)
+ clif->hChSys->local = true;
+ if (ally_enabled)
+ clif->hChSys->ally = true;
+ if (irc_enabled)
+ clif->hChSys->irc = true;
- hChSys.irc_server[0] = hChSys.irc_channel[0] = hChSys.irc_nick[0] = hChSys.irc_nick_pw[0] = '\0';
+ clif->hChSys->irc_server[0] = clif->hChSys->irc_channel[0] = clif->hChSys->irc_nick[0] = clif->hChSys->irc_nick_pw[0] = '\0';
- if( hChSys.irc ) {
+ if (clif->hChSys->irc) {
const char *irc_server, *irc_channel,
*irc_nick, *irc_nick_pw;
int irc_use_ghost = 0;
if( libconfig->setting_lookup_string(settings, "irc_channel_network", &irc_server) ) {
if( !strstr(irc_server,":") ) {
- hChSys.irc = false;
+ clif->hChSys->irc = false;
ShowWarning("channels.conf : network port wasn't found in 'irc_channel_network', disabling irc channel...\n");
} else {
unsigned char d = 0, dlen = strlen(irc_server);
char server[40];
-
+ if (dlen > 39)
+ dlen = 39;
memset(server, '\0', sizeof(server));
for(d = 0; d < dlen; d++) {
if(irc_server[d] == ':') {
memcpy(server, irc_server, d);
- safestrncpy(hChSys.irc_server, server, 40);
- memcpy(server, &irc_server[d+1], dlen);
- hChSys.irc_server_port = atoi(server);
+ safestrncpy(clif->hChSys->irc_server, server, 40);
+ memcpy(server, &irc_server[d+1], dlen - d - 1);
+ clif->hChSys->irc_server_port = atoi(server);
break;
}
}
}
} else {
- hChSys.irc = false;
+ clif->hChSys->irc = false;
ShowWarning("channels.conf : irc channel enabled but irc_channel_network wasn't found, disabling irc channel...\n");
}
if( libconfig->setting_lookup_string(settings, "irc_channel_channel", &irc_channel) )
- safestrncpy(hChSys.irc_channel, irc_channel, 50);
+ safestrncpy(clif->hChSys->irc_channel, irc_channel, 50);
else {
- hChSys.irc = false;
+ clif->hChSys->irc = false;
ShowWarning("channels.conf : irc channel enabled but irc_channel_channel wasn't found, disabling irc channel...\n");
}
if( libconfig->setting_lookup_string(settings, "irc_channel_nick", &irc_nick) ) {
if( strcmpi(irc_nick,"Hercules_chSysBot") == 0 ) {
- sprintf(hChSys.irc_nick, "Hercules_chSysBot%d",rand()%777);
+ sprintf(clif->hChSys->irc_nick, "Hercules_chSysBot%d",rand()%777);
} else
- safestrncpy(hChSys.irc_nick, irc_nick, 40);
+ safestrncpy(clif->hChSys->irc_nick, irc_nick, 40);
} else {
- hChSys.irc = false;
+ clif->hChSys->irc = false;
ShowWarning("channels.conf : irc channel enabled but irc_channel_nick wasn't found, disabling irc channel...\n");
}
if( libconfig->setting_lookup_string(settings, "irc_channel_nick_pw", &irc_nick_pw) ) {
- safestrncpy(hChSys.irc_nick_pw, irc_nick_pw, 30);
+ safestrncpy(clif->hChSys->irc_nick_pw, irc_nick_pw, 30);
config_setting_lookup_bool(settings, "irc_channel_use_ghost", &irc_use_ghost);
- hChSys.irc_use_ghost = irc_use_ghost;
+ clif->hChSys->irc_use_ghost = irc_use_ghost;
}
}
@@ -2746,83 +2770,83 @@ void read_channels_config(void) {
libconfig->setting_lookup_bool(settings, "map_local_channel_autojoin", &local_autojoin);
libconfig->setting_lookup_bool(settings, "ally_channel_autojoin", &ally_autojoin);
- if( local_autojoin )
- hChSys.local_autojoin = true;
- if( ally_autojoin )
- hChSys.ally_autojoin = true;
+ if (local_autojoin)
+ clif->hChSys->local_autojoin = true;
+ if (ally_autojoin)
+ clif->hChSys->ally_autojoin = true;
libconfig->setting_lookup_bool(settings, "allow_user_channel_creation", &allow_user_channel_creation);
if( allow_user_channel_creation )
- hChSys.allow_user_channel_creation = true;
+ clif->hChSys->allow_user_channel_creation = true;
if( (colors = libconfig->setting_get_member(settings, "colors")) != NULL ) {
int color_count = libconfig->setting_length(colors);
- CREATE( hChSys.colors, unsigned int, color_count );
- CREATE( hChSys.colors_name, char *, color_count );
+ CREATE(clif->hChSys->colors, unsigned int, color_count);
+ CREATE(clif->hChSys->colors_name, char *, color_count);
for(i = 0; i < color_count; i++) {
config_setting_t *color = libconfig->setting_get_elem(colors, i);
- CREATE( hChSys.colors_name[i], char, HCHSYS_NAME_LENGTH );
+ CREATE(clif->hChSys->colors_name[i], char, HCHSYS_NAME_LENGTH);
- safestrncpy(hChSys.colors_name[i], config_setting_name(color), HCHSYS_NAME_LENGTH);
+ safestrncpy(clif->hChSys->colors_name[i], config_setting_name(color), HCHSYS_NAME_LENGTH);
- hChSys.colors[i] = (unsigned int)strtoul(libconfig->setting_get_string_elem(colors,i),NULL,0);
- hChSys.colors[i] = (hChSys.colors[i] & 0x0000FF) << 16 | (hChSys.colors[i] & 0x00FF00) | (hChSys.colors[i] & 0xFF0000) >> 16;//RGB to BGR
+ clif->hChSys->colors[i] = (unsigned int)strtoul(libconfig->setting_get_string_elem(colors,i),NULL,0);
+ clif->hChSys->colors[i] = (clif->hChSys->colors[i] & 0x0000FF) << 16 | (clif->hChSys->colors[i] & 0x00FF00) | (clif->hChSys->colors[i] & 0xFF0000) >> 16;//RGB to BGR
}
- hChSys.colors_count = color_count;
+ clif->hChSys->colors_count = color_count;
}
libconfig->setting_lookup_string(settings, "map_local_channel_color", &local_color);
- for (k = 0; k < hChSys.colors_count; k++) {
- if( strcmpi(hChSys.colors_name[k],local_color) == 0 )
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
+ if (strcmpi(clif->hChSys->colors_name[k], local_color) == 0)
break;
}
- if( k < hChSys.colors_count ) {
- hChSys.local_color = k;
+ if (k < clif->hChSys->colors_count) {
+ clif->hChSys->local_color = k;
} else {
ShowError("channels.conf: unknown color '%s' for 'map_local_channel_color', disabling '#%s'...\n",local_color,local_name);
- hChSys.local = false;
+ clif->hChSys->local = false;
}
libconfig->setting_lookup_string(settings, "ally_channel_color", &ally_color);
- for (k = 0; k < hChSys.colors_count; k++) {
- if( strcmpi(hChSys.colors_name[k],ally_color) == 0 )
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
+ if (strcmpi(clif->hChSys->colors_name[k], ally_color) == 0)
break;
}
- if( k < hChSys.colors_count ) {
- hChSys.ally_color = k;
+ if( k < clif->hChSys->colors_count ) {
+ clif->hChSys->ally_color = k;
} else {
ShowError("channels.conf: unknown color '%s' for 'ally_channel_color', disabling '#%s'...\n",ally_color,ally_name);
- hChSys.ally = false;
+ clif->hChSys->ally = false;
}
libconfig->setting_lookup_string(settings, "irc_channel_color", &irc_color);
- for (k = 0; k < hChSys.colors_count; k++) {
- if( strcmpi(hChSys.colors_name[k],irc_color) == 0 )
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
+ if (strcmpi(clif->hChSys->colors_name[k], irc_color) == 0)
break;
}
- if( k < hChSys.colors_count ) {
- hChSys.irc_color = k;
+ if (k < clif->hChSys->colors_count) {
+ clif->hChSys->irc_color = k;
} else {
ShowError("channels.conf: unknown color '%s' for 'irc_channel_color', disabling '#%s'...\n",irc_color,irc_name);
- hChSys.irc = false;
+ clif->hChSys->irc = false;
}
- if( hChSys.irc ) {
+ if (clif->hChSys->irc) {
struct hChSysCh *chd;
- CREATE( chd, struct hChSysCh, 1 );
+ CREATE(chd, struct hChSysCh, 1);
- safestrncpy(chd->name, hChSys.irc_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(chd->name, clif->hChSys->irc_name, HCHSYS_NAME_LENGTH);
chd->type = hChSys_IRC;
- clif->chsys_create(chd,NULL,NULL,hChSys.irc_color);
+ clif->chsys_create(chd, NULL, NULL, clif->hChSys->irc_color);
ircbot->channel = chd;
}
@@ -2835,15 +2859,15 @@ void read_channels_config(void) {
const char *color = libconfig->setting_get_string_elem(channels,i);
struct hChSysCh *chd;
- for (k = 0; k < hChSys.colors_count; k++) {
- if( strcmpi(hChSys.colors_name[k],color) == 0 )
+ for (k = 0; k < clif->hChSys->colors_count; k++) {
+ if (strcmpi(clif->hChSys->colors_name[k],color) == 0)
break;
}
- if( k == hChSys.colors_count ) {
+ if( k == clif->hChSys->colors_count) {
ShowError("channels.conf: unknown color '%s' for channel '%s', skipping channel...\n",color,name);
continue;
}
- if( strcmpi(name,hChSys.local_name) == 0 || strcmpi(name,hChSys.ally_name) == 0 || strcmpi(name,hChSys.irc_name) == 0 || strdb_exists(clif->channel_db, name) ) {
+ if( strcmpi(name, clif->hChSys->local_name) == 0 || strcmpi(name, clif->hChSys->ally_name) == 0 || strcmpi(name, clif->hChSys->irc_name) == 0 || strdb_exists(clif->channel_db, name) ) {
ShowError("channels.conf: duplicate channel '%s', skipping channel...\n",name);
continue;
@@ -2943,7 +2967,7 @@ void clif_updatestatus(struct map_session_data *sd,int type)
case SP_WEIGHT:
pc->updateweightstatus(sd);
WFIFOHEAD(fd,14);
- WFIFOW(fd,0)=0xb0; //Need to re-set as pc->updateweightstatus can alter the buffer. [Skotlex]
+ WFIFOW(fd,0)=0xb0; //Need to re-set as pc->updateweightstatus can alter the buffer. [Skotlex]
WFIFOW(fd,2)=type;
WFIFOL(fd,4)=sd->weight;
break;
@@ -3173,17 +3197,14 @@ void clif_changestatus(struct map_session_data* sd,int type,int val)
clif->send(buf,packet_len(0x1ab),&sd->bl,AREA_WOS);
}
-
/// Updates sprite/style properties of an object.
-/// 00c3 <id>.L <type>.B <value>.B (ZC_SPRITE_CHANGE)
-/// 01d7 <id>.L <type>.B <value>.L (ZC_SPRITE_CHANGE2)
void clif_changelook(struct block_list *bl,int type,int val)
{
- unsigned char buf[16];
struct map_session_data* sd;
struct status_change* sc;
struct view_data* vd;
enum send_target target = AREA;
+ int val2 = 0;
nullpo_retv(bl);
sd = BL_CAST(BL_PC, bl);
@@ -3210,12 +3231,6 @@ void clif_changelook(struct block_list *bl,int type,int val)
break;
case LOOK_BASE:
if( !sd ) break;
- // We shouldn't update LOOK_BASE if the player is disguised
- // if we do so the client will think that the player class
- // is really a mob and issues like 7725 will happen in every
- // SC_ that alters class_ in any way [Panikon]
- if( sd->disguise != -1 )
- return;
if( sd->sc.option&OPTION_COSTUME )
vd->weapon = vd->shield = 0;
@@ -3295,57 +3310,34 @@ void clif_changelook(struct block_list *bl,int type,int val)
}
// prevent leaking the presence of GM-hidden objects
- if( sc && sc->option&OPTION_INVISIBLE )
+ if( sc && sc->option&OPTION_INVISIBLE && !disguised(bl) )
target = SELF;
-
#if PACKETVER < 4
- WBUFW(buf,0)=0xc3;
- WBUFL(buf,2)=bl->id;
- WBUFB(buf,6)=type;
- WBUFB(buf,7)=val;
- clif->send(buf,packet_len(0xc3),bl,target);
+ clif->sendlook(bl, bl->id, type, val, 0, target);
#else
- WBUFW(buf,0)=0x1d7;
- WBUFL(buf,2)=bl->id;
if(type == LOOK_WEAPON || type == LOOK_SHIELD) {
nullpo_retv(vd);
- WBUFB(buf,6)=LOOK_WEAPON;
- WBUFW(buf,7)=vd->weapon;
- WBUFW(buf,9)=vd->shield;
- } else {
- WBUFB(buf,6)=type;
- WBUFL(buf,7)=val;
- }
- clif->send(buf,packet_len(0x1d7),bl,target);
- if( disguised(bl) && sd && sd->fontcolor ) {
- WBUFL(buf,2)=-bl->id;
- clif->send(buf,packet_len(0x1d7),bl,SELF);
+ type = LOOK_WEAPON;
+ val = vd->weapon;
+ val2 = vd->shield;
}
+ if( disguised(bl) ) {
+ clif->sendlook(bl, bl->id, type, val, val2, AREA_WOS);
+ clif->sendlook(bl, -bl->id, type, val, val2, SELF);
+ } else
+ clif->sendlook(bl, bl->id, type, val, val2, target);
#endif
}
//Sends a change-base-look packet required for traps as they are triggered.
void clif_changetraplook(struct block_list *bl,int val)
{
- unsigned char buf[32];
-#if PACKETVER < 4
- WBUFW(buf,0)=0xc3;
- WBUFL(buf,2)=bl->id;
- WBUFB(buf,6)=LOOK_BASE;
- WBUFB(buf,7)=val;
- clif->send(buf,packet_len(0xc3),bl,AREA);
-#else
- WBUFW(buf,0)=0x1d7;
- WBUFL(buf,2)=bl->id;
- WBUFB(buf,6)=LOOK_BASE;
- WBUFW(buf,7)=val;
- WBUFW(buf,9)=0;
- clif->send(buf,packet_len(0x1d7),bl,AREA);
-#endif
+ clif->sendlook(bl, bl->id, LOOK_BASE, val, 0, AREA);
}
-//For the stupid cloth-dye bug. Resends the given view data to the area specified by bl.
-void clif_refreshlook(struct block_list *bl,int id,int type,int val,enum send_target target)
+/// 00c3 <id>.L <type>.B <value>.B (ZC_SPRITE_CHANGE)
+/// 01d7 <id>.L <type>.B <value>.L (ZC_SPRITE_CHANGE2)
+void clif_sendlook(struct block_list *bl, int id, int type, int val, int val2, enum send_target target)
{
unsigned char buf[32];
#if PACKETVER < 4
@@ -3359,11 +3351,17 @@ void clif_refreshlook(struct block_list *bl,int id,int type,int val,enum send_ta
WBUFL(buf,2)=id;
WBUFB(buf,6)=type;
WBUFW(buf,7)=val;
- WBUFW(buf,9)=0;
+ WBUFW(buf,9)=val2;
clif->send(buf,packet_len(0x1d7),bl,target);
#endif
}
+//For the stupid cloth-dye bug. Resends the given view data to the area specified by bl.
+void clif_refreshlook(struct block_list *bl,int id,int type,int val,enum send_target target)
+{
+ clif->sendlook(bl, id, type, val, 0, target);
+}
+
/// Character status (ZC_STATUS).
/// 00bd <stpoint>.W <str>.B <need str>.B <agi>.B <need agi>.B <vit>.B <need vit>.B
@@ -3437,7 +3435,6 @@ void clif_arrowequip(struct map_session_data *sd,int val)
nullpo_retv(sd);
- pc_stop_attack(sd); // [Valaris]
#if PACKETVER >= 20121128
clif->status_change(&sd->bl, SI_CLIENT_ONLY_EQUIP_ARROW, 1, INVALID_TIMER, 0, 0, 0);
#endif
@@ -4274,10 +4271,9 @@ void clif_getareachar_pc(struct map_session_data* sd,struct map_session_data* ds
if(dstsd->spiritball > 0)
clif->spiritball_single(sd->fd, dstsd);
- for(i = 1; i < 5; i++){
- if( dstsd->charm[i] > 0 )
- clif->charm_single(sd->fd, dstsd, i);
- }
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ clif->charm_single(sd->fd, dstsd, i);
+
for( i = 0; i < dstsd->sc_display_count; i++ ) {
clif->sc_load(&sd->bl,dstsd->bl.id,SELF,status->IconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3);
}
@@ -4326,7 +4322,7 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) {
clif->getareachar_pc(sd, tsd);
if(tsd->state.size==SZ_BIG) // tiny/big players [Valaris]
clif->specialeffect_single(bl,423,sd->fd);
- else if(tsd->state.size==SZ_SMALL)
+ else if(tsd->state.size==SZ_MEDIUM)
clif->specialeffect_single(bl,421,sd->fd);
if( tsd->bg_id && map->list[tsd->bl.m].flag.battleground )
clif->sendbgemblem_single(sd->fd,tsd);
@@ -4345,7 +4341,7 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) {
clif->dispchat((struct chat_data*)map->id2bl(nd->chat_id),sd->fd);
if( nd->size == SZ_BIG )
clif->specialeffect_single(bl,423,sd->fd);
- else if( nd->size == SZ_SMALL )
+ else if( nd->size == SZ_MEDIUM )
clif->specialeffect_single(bl,421,sd->fd);
}
break;
@@ -4354,7 +4350,7 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) {
TBL_MOB* md = (TBL_MOB*)bl;
if(md->special_state.size==SZ_BIG) // tiny/big mobs [Valaris]
clif->specialeffect_single(bl,423,sd->fd);
- else if(md->special_state.size==SZ_SMALL)
+ else if(md->special_state.size==SZ_MEDIUM)
clif->specialeffect_single(bl,421,sd->fd);
#if PACKETVER >= 20120404
if( !(md->status.mode&MD_BOSS) ){
@@ -4791,7 +4787,9 @@ int clif_outsight(struct block_list *bl,va_list ap)
}
if (sd && sd->fd) { //sd is watching tbl go out of view.
nullpo_ret(tbl);
- if (((vd=status->get_viewdata(tbl)) && vd->class_ != INVISIBLE_CLASS) &&
+ if(tbl->type == BL_SKILL) //Trap knocked out of sight
+ clif->clearchar_skillunit((struct skill_unit *)tbl,sd->fd);
+ else if (((vd=status->get_viewdata(tbl)) && vd->class_ != INVISIBLE_CLASS) &&
!(tbl->type == BL_NPC && (((TBL_NPC*)tbl)->option&OPTION_INVISIBLE)))
clif->clearunit_single(tbl->id,CLR_OUTSIGHT,sd->fd);
}
@@ -4934,8 +4932,8 @@ void clif_deleteskill(struct map_session_data *sd, int id)
/// 010e <skill id>.W <level>.W <sp cost>.W <attack range>.W <upgradable>.B
/// Merged clif_skillup and clif_guild_skillup, same packet was used [panikon]
/// flag:
-/// 0: guild call
-/// 1: player call
+/// 0: guild call
+/// 1: player call
void clif_skillup(struct map_session_data *sd, uint16 skill_id, int skill_lv, int flag)
{
int fd;
@@ -5066,7 +5064,8 @@ void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_f
{
int fd;
- if (!sd) { //Since this is the most common nullpo....
+ if (!sd) {
+ //Since this is the most common nullpo....
ShowDebug("clif_skill_fail: Error, received NULL sd for skill %d\n", skill_id);
return;
}
@@ -5128,8 +5127,12 @@ int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick
damage = (int)cap_value(in_damage,INT_MIN,INT_MAX);
type = clif_calc_delay(type,div,damage,ddelay);
- sc = status->get_sc(dst);
- if(sc && sc->count) {
+
+#if PACKETVER >= 20131223
+ if( type == 6 ) type = 8; //bugreport:8263
+#endif
+
+ if( ( sc = status->get_sc(dst) ) && sc->count ) {
if(sc->data[SC_ILLUSION] && damage)
damage = damage*(sc->data[SC_ILLUSION]->val2) + rnd()%100;
}
@@ -5213,7 +5216,7 @@ int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tic
nullpo_ret(src);
nullpo_ret(dst);
- type = (type>0)?type:skill_get_hit(skill_id);
+ type = (type>0)?type:skill->get_hit(skill_id);
type = clif_calc_delay(type,div,damage,ddelay);
sc = status->get_sc(dst);
@@ -5256,7 +5259,7 @@ int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tic
}
//Because the damage delay must be synced with the client, here is where the can-walk tick must be updated. [Skotlex]
- return clif_calc_walkdelay(dst,ddelay,type,damage,div);
+ return clif->calc_walkdelay(dst,ddelay,type,damage,div);
}
#endif // 0
@@ -5373,7 +5376,7 @@ void clif_skill_memomessage(struct map_session_data* sd, int type)
/// type:
/// 0 = "Unable to Teleport in this area" in color 0xFFFF00 (cyan)
/// 1 = "Saved point cannot be memorized." in color 0x0000FF (red)
-/// 2 = "This skill cannot be used within this area." in color 0xFFFF00 (cyan)
+/// 2 = "This skill cannot be used within this area." in color 0xFFFF00 (cyan)
///
/// @param sd Who receives the message
/// @param type What message
@@ -5418,10 +5421,11 @@ void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst) {
WBUFW(buf,16) = (battle_config.estimation_type&1?dstatus->mdef:0)
+ (battle_config.estimation_type&2?dstatus->mdef2:0);
WBUFW(buf,18) = dstatus->def_ele;
- for(i=0;i<9;i++)
+ for(i=0;i<9;i++) {
WBUFB(buf,20+i)= (unsigned char)battle->attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv);
-// The following caps negative attributes to 0 since the client displays them as 255-fix. [Skotlex]
-// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv))<0?0:fix);
+ // The following caps negative attributes to 0 since the client displays them as 255-fix. [Skotlex]
+ //WBUFB(buf,20+i)= (unsigned char)((fix=battle->attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv))<0?0:fix);
+ }
clif->send(buf,packet_len(0x18c),&sd->bl,sd->status.party_id>0?PARTY_SAMEMAP:SELF);
}
@@ -5504,7 +5508,8 @@ void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id
c++;
}
- if( skill_id == AM_PHARMACY ) { // Only send it while Cooking else check for c.
+ if( skill_id == AM_PHARMACY ) {
+ // Only send it while Cooking else check for c.
WFIFOW(fd,2) = 6 + 2 * c;
WFIFOSET(fd,WFIFOW(fd,2));
}
@@ -5580,6 +5585,7 @@ void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val
p.index = type;
p.AID = bl->id;
p.state = (unsigned char)flag;
+
#if PACKETVER >= 20120618
p.Total = tick; /* at this stage remain and total are the same value I believe */
#endif
@@ -5600,6 +5606,11 @@ void clif_displaymessage(const int fd, const char* mes) {
if( map->cpsd_active && fd == 0 ) {
ShowInfo("HCP: %s\n",mes);
} else if ( fd > 0 ) {
+ #if PACKETVER == 20141022
+ /** for some reason game client crashes depending on message pattern (only for this packet) **/
+ /** so we redirect to ZC_NPC_CHAT **/
+ clif->colormes(fd,COLOR_DEFAULT,mes);
+ #else
size_t len;
if ( ( len = strnlen(mes, 255) ) > 0 ) { // don't send a void message (it's not displaying on the client chat). @help can send void line.
@@ -5609,6 +5620,7 @@ void clif_displaymessage(const int fd, const char* mes) {
safestrncpy((char *)WFIFOP(fd,4), mes, len + 1);
WFIFOSET(fd, 5 + len);
}
+ #endif
}
}
void clif_displaymessage2(const int fd, const char* mes) {
@@ -5833,12 +5845,12 @@ void clif_pvpset(struct map_session_data *sd,int pvprank,int pvpnum,int type)
unsigned char buf[32];
WBUFW(buf,0) = 0x19a;
WBUFL(buf,2) = sd->bl.id;
- if(sd->sc.option&(OPTION_HIDE|OPTION_CLOAK))
+ if (sd->sc.option&(OPTION_HIDE|OPTION_CLOAK)) // TODO[Haru] Should this be pc_ishiding(sd)? (i.e. include Chase Walk and any new options)
WBUFL(buf,6) = UINT32_MAX; //On client displays as --
else
WBUFL(buf,6) = pvprank;
WBUFL(buf,10) = pvpnum;
- if(sd->sc.option&OPTION_INVISIBLE || sd->disguise != -1) //Causes crashes when a 'mob' with pvp info dies.
+ if (pc_isinvisible(sd) || sd->disguise != -1) //Causes crashes when a 'mob' with pvp info dies.
clif->send(buf,packet_len(0x19a),&sd->bl,SELF);
else if(!type)
clif->send(buf,packet_len(0x19a),&sd->bl,AREA);
@@ -5988,17 +6000,17 @@ void clif_use_card(struct map_session_data *sd,int idx)
if(itemdb_isspecial(sd->status.inventory[i].card[0])) //Can't slot it
continue;
- if(sd->status.inventory[i].identify==0 ) //Not identified
+ if (sd->status.inventory[i].identify == 0) //Not identified
continue;
- if((sd->inventory_data[i]->equip&ep)==0) //Not equippable on this part.
+ if ((sd->inventory_data[i]->equip&ep) == 0) //Not equippable on this part.
continue;
if(sd->inventory_data[i]->type==IT_WEAPON && ep==EQP_SHIELD) //Shield card won't go on left weapon.
continue;
ARR_FIND( 0, sd->inventory_data[i]->slot, j, sd->status.inventory[i].card[j] == 0 );
- if( j == sd->inventory_data[i]->slot ) // No room
+ if (j == sd->inventory_data[i]->slot) // No room
continue;
if( sd->status.inventory[i].equip > 0 ) // Do not check items that are already equipped
@@ -6754,7 +6766,7 @@ void clif_party_message(struct party_data* p, int account_id, const char* mes, i
WBUFW(buf,0)=0x109;
WBUFW(buf,2)=len+8;
WBUFL(buf,4)=account_id;
- safestrncpy((char *)WBUFP(buf,8), mes, len);
+ safestrncpy((char *)WBUFP(buf,8), mes, len);
clif->send(buf,len+8,&sd->bl,PARTY);
}
}
@@ -7157,20 +7169,20 @@ void clif_devotion(struct block_list *src, struct map_session_data *tsd)
* 01e1 <id>.L <amount>.W (ZC_SPIRITS2)
*------------------------------------------*/
void clif_spiritball(struct block_list *bl) {
- unsigned char buf[16];
- TBL_PC *sd = BL_CAST(BL_PC,bl);
- TBL_HOM *hd = BL_CAST(BL_HOM,bl);
+ unsigned char buf[16];
+ TBL_PC *sd = BL_CAST(BL_PC,bl);
+ TBL_HOM *hd = BL_CAST(BL_HOM,bl);
- nullpo_retv(bl);
+ nullpo_retv(bl);
- WBUFW(buf, 0) = 0x1d0;
- WBUFL(buf, 2) = bl->id;
+ WBUFW(buf, 0) = 0x1d0;
+ WBUFL(buf, 2) = bl->id;
WBUFW(buf, 6) = 0; //init to 0
- switch(bl->type){
- case BL_PC: WBUFW(buf, 6) = sd->spiritball; break;
- case BL_HOM: WBUFW(buf, 6) = hd->homunculus.spiritball; break;
- }
- clif->send(buf, packet_len(0x1d0), bl, AREA);
+ switch(bl->type){
+ case BL_PC: WBUFW(buf, 6) = sd->spiritball; break;
+ case BL_HOM: WBUFW(buf, 6) = hd->homunculus.spiritball; break;
+ }
+ clif->send(buf, packet_len(0x1d0), bl, AREA);
}
@@ -7438,9 +7450,9 @@ void clif_guild_basicinfo(struct map_session_data *sd) {
WFIFOL(fd,18)=g->average_lv;
WFIFOL(fd,22)=(uint32)cap_value(g->exp,0,INT32_MAX);
WFIFOL(fd,26)=g->next_exp;
- WFIFOL(fd,30)=0; // Tax Points
- WFIFOL(fd,34)=0; // Honor: (left) Vulgar [-100,100] Famed (right)
- WFIFOL(fd,38)=0; // Virtue: (down) Wicked [-100,100] Righteous (up)
+ WFIFOL(fd,30)=0; // Tax Points
+ WFIFOL(fd,34)=0; // Honor: (left) Vulgar [-100,100] Famed (right)
+ WFIFOL(fd,38)=0; // Virtue: (down) Wicked [-100,100] Righteous (up)
WFIFOL(fd,42)=g->emblem_id;
memcpy(WFIFOP(fd,46),g->name, NAME_LENGTH);
memcpy(WFIFOP(fd,70),g->master, NAME_LENGTH);
@@ -7515,7 +7527,7 @@ void clif_guild_memberlist(struct map_session_data *sd)
WFIFOL(fd,c*104+22)=(int)cap_value(m->exp,0,INT32_MAX);
WFIFOL(fd,c*104+26)=m->online;
WFIFOL(fd,c*104+30)=m->position;
- memset(WFIFOP(fd,c*104+34),0,50); //[Ind] - This is displayed in the 'note' column but being you can't edit it it's sent empty.
+ memset(WFIFOP(fd,c*104+34),0,50); //[Ind] - This is displayed in the 'note' column but being you can't edit it it's sent empty.
memcpy(WFIFOP(fd,c*104+84),m->name,NAME_LENGTH);
c++;
}
@@ -8445,7 +8457,7 @@ void clif_refresh_storagewindow( struct map_session_data *sd ) {
// remain locked forever and nobody will be able to access it
if( sd->state.storage_flag == 2 ) {
struct guild_storage *gstor;
- if( (gstor = gstorage->id2storage2(sd->status.guild_id)) == NULL) {
+ if( (gstor = idb_get(gstorage->db,sd->status.guild_id)) == NULL) {
// Shouldn't happen... The information should already be at the map-server
intif->request_guild_storage(sd->status.account_id,sd->status.guild_id);
} else {
@@ -8478,10 +8490,9 @@ void clif_refresh(struct map_session_data *sd)
clif->updatestatus(sd,SP_LUK);
if (sd->spiritball)
clif->spiritball_single(sd->fd, sd);
- for(i = 1; i < 5; i++){
- if( sd->charm[i] > 0 )
- clif->charm_single(sd->fd, sd, i);
- }
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ clif->charm_single(sd->fd, sd, i);
+
if (sd->vd.cloth_color)
clif->refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF);
if(homun_alive(sd->hd))
@@ -8633,9 +8644,11 @@ void clif_charnameack (int fd, struct block_list *bl)
}
}
break;
- case BL_CHAT: //FIXME: Clients DO request this... what should be done about it? The chat's title may not fit... [Skotlex]
- // memcpy(WBUFP(buf,6), (struct chat*)->title, NAME_LENGTH);
- // break;
+ case BL_CHAT:
+#if 0 //FIXME: Clients DO request this... what should be done about it? The chat's title may not fit... [Skotlex]
+ memcpy(WBUFP(buf,6), (struct chat*)->title, NAME_LENGTH);
+ break;
+#endif
return;
case BL_ELEM:
memcpy(WBUFP(buf,6), ((TBL_ELEM*)bl)->db->name, NAME_LENGTH);
@@ -8944,7 +8957,7 @@ void clif_viewequip_ack(struct map_session_data* sd, struct map_session_data* ts
for( i = 0; i < EQI_MAX; i++ ) {
if( (k = tsd->equip_index[i]) >= 0 ) {
- if (tsd->status.inventory[k].nameid <= 0 || tsd->inventory_data[k] == NULL) // Item doesn't exist
+ if (tsd->status.inventory[k].nameid <= 0 || tsd->inventory_data[k] == NULL) // Item doesn't exist
continue;
clif_item_equip(k+2,&viewequip_list.list[equip++],&tsd->status.inventory[k],tsd->inventory_data[k],pc->equippoint(tsd,k));
@@ -9035,8 +9048,8 @@ bool clif_process_message(struct map_session_data *sd, int format, char **name_,
packetlen = RFIFOW(fd,2);
// basic structure checks
- if( packetlen < 4 + 1 )
- { // 4-byte header and at least an empty string is expected
+ if (packetlen < 4 + 1) {
+ // 4-byte header and at least an empty string is expected
ShowWarning("clif_process_message: Received malformed packet from player '%s' (no message data)!\n", sd->status.name);
return false;
}
@@ -9075,8 +9088,8 @@ bool clif_process_message(struct map_session_data *sd, int format, char **name_,
name = text;
namelen = strnlen(name, NAME_LENGTH-1); // name length (w/o zero byte)
- if( name[namelen] != '\0' )
- { // only restriction is that the name must be zero-terminated
+ if (name[namelen] != '\0') {
+ // only restriction is that the name must be zero-terminated
ShowWarning("clif_process_message: Player '%s' sent an unterminated name!\n", sd->status.name);
return false;
}
@@ -9085,19 +9098,19 @@ bool clif_process_message(struct map_session_data *sd, int format, char **name_,
messagelen = textlen - NAME_LENGTH; // this should be the message length (w/ zero byte included)
}
- if( messagelen != strnlen(message, messagelen)+1 )
- { // the declared length must match real length
+ if (messagelen != strnlen(message, messagelen)+1) {
+ // the declared length must match real length
ShowWarning("clif_process_message: Received malformed packet from player '%s' (length is incorrect)!\n", sd->status.name);
return false;
}
// verify <message> part of the packet
- if( message[messagelen-1] != '\0' )
- { // message must be zero-terminated
+ if (message[messagelen-1] != '\0') {
+ // message must be zero-terminated
ShowWarning("clif_process_message: Player '%s' sent an unterminated message string!\n", sd->status.name);
return false;
}
- if( messagelen > CHAT_SIZE_MAX-1 )
- { // messages mustn't be too long
+ if (messagelen > CHAT_SIZE_MAX-1) {
+ // messages mustn't be too long
// Normally you can only enter CHATBOX_SIZE-1 letters into the chat box, but Frost Joke / Dazzler's text can be longer.
// Also, the physical size of strings that use multibyte encoding can go multiple times over the chatbox capacity.
// Neither the official client nor server place any restriction on the length of the data in the packet,
@@ -9122,7 +9135,7 @@ void clif_hercules_chsys_msg(struct hChSysCh *channel, struct map_session_data *
WFIFOW(sd->fd,0) = 0x2C1;
WFIFOW(sd->fd,2) = msg_len + 12;
WFIFOL(sd->fd,4) = 0;
- WFIFOL(sd->fd,8) = hChSys.colors[channel->color];
+ WFIFOL(sd->fd,8) = clif->hChSys->colors[channel->color];
safestrncpy((char*)WFIFOP(sd->fd,12), msg, msg_len);
for( user = dbi_first(iter); dbi_exists(iter); user = dbi_next(iter) ) {
@@ -9147,7 +9160,7 @@ void clif_hercules_chsys_msg2(struct hChSysCh *channel, char *msg) {
WBUFW(buf,0) = 0x2C1;
WBUFW(buf,2) = msg_len + 12;
WBUFL(buf,4) = 0;
- WBUFL(buf,8) = hChSys.colors[channel->color];
+ WBUFL(buf,8) = clif->hChSys->colors[channel->color];
safestrncpy((char*)WBUFP(buf,12), msg, msg_len);
for( user = dbi_first(iter); dbi_exists(iter); user = dbi_next(iter) ) {
@@ -9248,11 +9261,11 @@ void clif_hercules_chsys_mjoin(struct map_session_data *sd) {
return;
CREATE(map->list[sd->bl.m].channel, struct hChSysCh , 1);
- safestrncpy(map->list[sd->bl.m].channel->name, hChSys.local_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(map->list[sd->bl.m].channel->name, clif->hChSys->local_name, HCHSYS_NAME_LENGTH);
map->list[sd->bl.m].channel->type = hChSys_MAP;
map->list[sd->bl.m].channel->m = sd->bl.m;
- clif->chsys_create(map->list[sd->bl.m].channel,NULL,NULL,hChSys.local_color);
+ clif->chsys_create(map->list[sd->bl.m].channel, NULL, NULL, clif->hChSys->local_color);
}
if( map->list[sd->bl.m].channel->banned && idb_exists(map->list[sd->bl.m].channel->banned, sd->status.account_id) ) {
@@ -9263,7 +9276,7 @@ void clif_hercules_chsys_mjoin(struct map_session_data *sd) {
if( !( map->list[sd->bl.m].channel->opt & hChSys_OPT_ANNOUNCE_JOIN ) ) {
char mout[60];
- sprintf(mout, msg_txt(1435),hChSys.local_name,map->list[sd->bl.m].name); // You're now in the '#%s' channel for '%s'
+ sprintf(mout, msg_txt(1435), clif->hChSys->local_name, map->list[sd->bl.m].name); // You're now in the '#%s' channel for '%s'
clif->colormes(sd->fd, COLOR_DEFAULT, mout);
}
}
@@ -9340,7 +9353,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
sd->state.hpmeter_visible = 1;
}
- if( !(sd->sc.option&OPTION_INVISIBLE) ) { // increment the number of pvp players on the map
+ if (!pc_isinvisible(sd)) { // increment the number of pvp players on the map
map->list[sd->bl.m].users_pvp++;
}
@@ -9361,7 +9374,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
if( sd->bg_id ) clif->bg_hp(sd); // BattleGround System
- if(map->list[sd->bl.m].flag.pvp && !(sd->sc.option&OPTION_INVISIBLE)) {
+ if (map->list[sd->bl.m].flag.pvp && !pc_isinvisible(sd)) {
if(!battle_config.pk_mode) { // remove pvp stuff for pk_mode [Valaris]
if (!map->list[sd->bl.m].flag.pvp_nocalcrank)
sd->pvp_timer = timer->add(timer->gettick()+200, pc->calc_pvprank_timer, sd->bl.id, 0);
@@ -9397,7 +9410,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
clif->spawn(&sd->pd->bl);
clif->send_petdata(sd,sd->pd,0,0);
clif->send_petstatus(sd);
-// skill->unit_move(&sd->pd->bl,timer->gettick(),1);
+ //skill->unit_move(&sd->pd->bl,timer->gettick(),1);
}
}
@@ -9446,11 +9459,11 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
clif->updatestatus(sd,SP_SKILLPOINT);
clif->initialstatus(sd);
- if (sd->sc.option&OPTION_FALCON)
+ if (pc_isfalcon(sd))
clif->status_change(&sd->bl, SI_FALCON, 1, 0, 0, 0, 0);
- if (sd->sc.option&(OPTION_RIDING|OPTION_DRAGON))
+ if (pc_isridingpeco(sd) || pc_isridingdragon(sd))
clif->status_change(&sd->bl, SI_RIDING, 1, 0, 0, 0, 0);
- else if (sd->sc.option&OPTION_WUGRIDER)
+ else if (pc_isridingwug(sd))
clif->status_change(&sd->bl, SI_WUGRIDER, 1, 0, 0, 0, 0);
if(sd->status.manner < 0)
@@ -9538,7 +9551,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
status_calc_pc(sd, SCO_NONE);/* some conditions are map-dependent so we must recalculate */
sd->state.changemap = false;
- if( hChSys.local && hChSys.local_autojoin ) {
+ if (clif->hChSys->local && clif->hChSys->local_autojoin) {
clif->chsys_mjoin(sd);
}
}
@@ -9584,7 +9597,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
if (map->getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKNPC))
npc->touch_areanpc(sd,sd->bl.m,sd->bl.x,sd->bl.y);
else
- sd->areanpc_id = 0;
+ npc->untouch_areanpc(sd, sd->bl.m, sd->bl.x, sd->bl.y);
/* it broke at some point (e.g. during a crash), so we make it visibly dead again. */
if( !sd->status.hp && !pc_isdead(sd) && status->isdead(&sd->bl) )
@@ -9651,18 +9664,22 @@ void clif_hotkeys_send(struct map_session_data *sd) {
#ifdef HOTKEY_SAVING
const int fd = sd->fd;
int i;
+ int offset = 2;
#if PACKETVER < 20090603
const int cmd = 0x2b9;
-#else
+#elif PACKETVER < 20141022
const int cmd = 0x7d9;
+#else
+ const int cmd = 0xa00;
+ offset = 3;
#endif
if (!fd) return;
- WFIFOHEAD(fd, 2+MAX_HOTKEYS*7);
+ WFIFOHEAD(fd, offset+MAX_HOTKEYS*7);
WFIFOW(fd, 0) = cmd;
for(i = 0; i < MAX_HOTKEYS; i++) {
- WFIFOB(fd, 2 + 0 + i * 7) = sd->status.hotkeys[i].type; // type: 0: item, 1: skill
- WFIFOL(fd, 2 + 1 + i * 7) = sd->status.hotkeys[i].id; // item or skill ID
- WFIFOW(fd, 2 + 5 + i * 7) = sd->status.hotkeys[i].lv; // skill level
+ WFIFOB(fd, offset + 0 + i * 7) = sd->status.hotkeys[i].type; // type: 0: item, 1: skill
+ WFIFOL(fd, offset + 1 + i * 7) = sd->status.hotkeys[i].id; // item or skill ID
+ WFIFOW(fd, offset + 5 + i * 7) = sd->status.hotkeys[i].lv; // item qty or skill level
}
WFIFOSET(fd, packet_len(cmd));
#endif
@@ -9786,7 +9803,7 @@ void clif_disconnect_ack(struct map_session_data* sd, short result)
/// 0 = quit
void clif_parse_QuitGame(int fd, struct map_session_data *sd)
{
- /* Rovert's prevent logout option fixed [Valaris] */
+ /* Rovert's prevent logout option fixed [Valaris] */
if( !sd->sc.data[SC_CLOAKING] && !sd->sc.data[SC_HIDING] && !sd->sc.data[SC_CHASEWALK] && !sd->sc.data[SC_CLOAKINGEXCEED] && !sd->sc.data[SC__INVISIBILITY] &&
(!battle_config.prevent_logout || DIFF_TICK(timer->gettick(), sd->canlog_tick) > battle_config.prevent_logout) )
{
@@ -9813,7 +9830,7 @@ void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) {
bl = map->id2bl(id);
if( bl == NULL )
- return; // Lagged clients could request names of already gone mobs/players. [Skotlex]
+ return; // Lagged clients could request names of already gone mobs/players. [Skotlex]
if( sd->bl.m != bl->m || !check_distance_bl(&sd->bl, bl, AREA_SIZE) )
return; // Block namerequests past view range
@@ -9921,7 +9938,7 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
sd->fontcolor_tid = timer->add(timer->gettick()+5000, clif->undisguise_timer, sd->bl.id, 0);
pc->disguise(sd,sd->status.class_);
if( pc_isdead(sd) )
- clif_clearunit_single(-sd->bl.id, CLR_DEAD, sd->fd);
+ clif->clearunit_single(-sd->bl.id, CLR_DEAD, sd->fd);
if( unit->is_walking(&sd->bl) )
clif->move(&sd->ud);
} else if ( sd->disguise == sd->status.class_ && sd->fontcolor_tid != INVALID_TIMER ) {
@@ -9937,7 +9954,7 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
WFIFOW(fd,0) = 0x2C1;
WFIFOW(fd,2) = mylen + 12;
WFIFOL(fd,4) = sd->bl.id;
- WFIFOL(fd,8) = hChSys.colors[sd->fontcolor - 1];
+ WFIFOL(fd,8) = clif->hChSys->colors[sd->fontcolor - 1];
safestrncpy((char*)WFIFOP(fd,12), mout, mylen);
clif->send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, AREA_WOS);
WFIFOL(fd,4) = -sd->bl.id;
@@ -10123,7 +10140,8 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
)
return;
- pc_stop_walking(sd, 1);
+ if(action_type != 0x00 && action_type != 0x07)
+ pc_stop_walking(sd, 1);
pc_stop_attack(sd);
if(target_id<0 && -target_id == sd->bl.id) // for disguises [Valaris]
@@ -10173,6 +10191,7 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
if (sd->sc.count && (
sd->sc.data[SC_DANCING] ||
+ sd->sc.data[SC_ANKLESNARE] ||
(sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF)
)) //No sitting during these states either.
break;
@@ -10212,7 +10231,7 @@ void clif_hercules_chsys_left(struct hChSysCh *channel, struct map_session_data
if( !db_size(channel->users) && channel->type == hChSys_PRIVATE ) {
clif->chsys_delete(channel);
- } else if( !hChSys.closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) {
+ } else if( !clif->hChSys->closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) {
char message[60];
sprintf(message, "#%s '%s' left",channel->name,sd->status.name);
clif->chsys_msg(channel,sd,message);
@@ -10256,9 +10275,9 @@ void clif_hercules_chsys_quitg(struct map_session_data *sd) {
if( channel == sd->gcbind )
sd->gcbind = NULL;
- if( !db_size(channel->users) && channel->type == hChSys_PRIVATE ) {
+ if (!db_size(channel->users) && channel->type == hChSys_PRIVATE) {
clif->chsys_delete(channel);
- } else if( !hChSys.closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) {
+ } else if (!clif->hChSys->closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN)) {
char message[60];
sprintf(message, "#%s '%s' left",channel->name,sd->status.name);
clif->chsys_msg(channel,sd,message);
@@ -10297,9 +10316,9 @@ void clif_hercules_chsys_quit(struct map_session_data *sd) {
if( channel == sd->gcbind )
sd->gcbind = NULL;
- if( !db_size(channel->users) && channel->type == hChSys_PRIVATE ) {
+ if (!db_size(channel->users) && channel->type == hChSys_PRIVATE) {
clif->chsys_delete(channel);
- } else if( !hChSys.closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) {
+ } else if (!clif->hChSys->closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN)) {
char message[60];
sprintf(message, "#%s '%s' left",channel->name,sd->status.name);
clif->chsys_msg(channel,sd,message);
@@ -10345,10 +10364,12 @@ void clif_parse_Restart(int fd, struct map_session_data *sd) {
pc->respawn(sd,CLR_OUTSIGHT);
break;
case 0x01:
- /* Rovert's Prevent logout option - Fixed [Valaris] */
- if( !sd->sc.data[SC_CLOAKING] && !sd->sc.data[SC_HIDING] && !sd->sc.data[SC_CHASEWALK] && !sd->sc.data[SC_CLOAKINGEXCEED] && !sd->sc.data[SC__INVISIBILITY] &&
- (!battle_config.prevent_logout || DIFF_TICK(timer->gettick(), sd->canlog_tick) > battle_config.prevent_logout) )
- { //Send to char-server for character selection.
+ /* Rovert's Prevent logout option - Fixed [Valaris] */
+ if (!sd->sc.data[SC_CLOAKING] && !sd->sc.data[SC_HIDING] && !sd->sc.data[SC_CHASEWALK]
+ && !sd->sc.data[SC_CLOAKINGEXCEED] && !sd->sc.data[SC__INVISIBILITY]
+ && (!battle_config.prevent_logout || DIFF_TICK(timer->gettick(), sd->canlog_tick) > battle_config.prevent_logout)
+ ) {
+ //Send to char-server for character selection.
chrif->charselectreq(sd, session[fd]->client_addr);
} else {
clif->disconnect_ack(sd, 1);
@@ -10436,12 +10457,12 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd)
chname++;
- if( hChSys.local && strcmpi(chname, hChSys.local_name) == 0 ) {
+ if (clif->hChSys->local && strcmpi(chname, clif->hChSys->local_name) == 0) {
if( !map->list[sd->bl.m].channel ) {
clif->chsys_mjoin(sd);
}
channel = map->list[sd->bl.m].channel;
- } else if( hChSys.ally && sd->status.guild_id && strcmpi(chname, hChSys.ally_name) == 0 ) {
+ } else if (clif->hChSys->ally && sd->status.guild_id && strcmpi(chname, clif->hChSys->ally_name) == 0) {
struct guild *g = sd->guild;
if( !g ) return;
channel = g->channel;
@@ -10488,7 +10509,7 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd)
// if player ignores everyone
if (dstsd->state.ignoreAll && pc_get_group_level(sd) <= pc_get_group_level(dstsd)) {
- if (dstsd->sc.option & OPTION_INVISIBLE && pc_get_group_level(sd) < pc_get_group_level(dstsd))
+ if (pc_isinvisible(dstsd) && pc_get_group_level(sd) < pc_get_group_level(dstsd))
clif->wis_end(fd, 1); // 1: target character is not logged in
else
clif->wis_end(fd, 3); // 3: everyone ignored by target
@@ -10496,7 +10517,7 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd)
}
// if player is autotrading
- if( dstsd->state.autotrade == 1 ) {
+ if( dstsd->state.autotrade ) {
char output[256];
sprintf(output, "%s is in autotrade mode and cannot receive whispered messages.", dstsd->status.name);
clif->wis_message(fd, map->wisp_server_name, output, strlen(output) + 1);
@@ -10692,7 +10713,7 @@ void clif_parse_EquipItem(int fd,struct map_session_data *sd) {
}
void clif_hercules_chsys_delete(struct hChSysCh *channel) {
- if( db_size(channel->users) && !hChSys.closing ) {
+ if (db_size(channel->users) && !clif->hChSys->closing) {
DBIterator *iter;
struct map_session_data *sd;
unsigned char i;
@@ -10732,7 +10753,7 @@ void clif_hercules_chsys_delete(struct hChSysCh *channel) {
aFree(channel);
} else if ( channel->type == hChSys_ALLY )
aFree(channel);
- else if( !hChSys.closing )
+ else if (!clif->hChSys->closing)
strdb_remove(clif->channel_db, channel->name);
}
void clif_hercules_chsys_gjoin(struct guild *g1,struct guild *g2) {
@@ -10817,7 +10838,7 @@ void clif_parse_NpcClicked(int fd,struct map_session_data *sd)
struct block_list *bl;
if( pc_isdead(sd) ) {
- clif_clearunit_area(&sd->bl,CLR_DEAD);
+ clif->clearunit_area(&sd->bl,CLR_DEAD);
return;
}
if( sd->npc_id || sd->state.workinprogress&2 ){
@@ -10886,7 +10907,7 @@ void clif_parse_NpcBuyListSend(int fd, struct map_session_data* sd)
unsigned short* item_list = (unsigned short*)RFIFOP(fd,4);
int result;
- if( sd->state.trading || !sd->npc_shopid )
+ if( sd->state.trading || !sd->npc_shopid || pc_has_permission(sd,PC_PERM_DISABLE_STORE) )
result = 1;
else
result = npc->buylist(sd,n,item_list);
@@ -11162,16 +11183,17 @@ void clif_parse_GetItemFromCart(int fd,struct map_session_data *sd)
/// 012a
void clif_parse_RemoveOption(int fd,struct map_session_data *sd)
{
- if( !(sd->sc.option&(OPTION_RIDING|OPTION_FALCON|OPTION_DRAGON|OPTION_MADOGEAR))
+ if (pc_isridingpeco(sd) || pc_isfalcon(sd) || pc_isridingdragon(sd) || pc_ismadogear(sd)) {
+ // priority to remove this option before we can clear cart
+ pc->setoption(sd,sd->sc.option&~(OPTION_RIDING|OPTION_FALCON|OPTION_DRAGON|OPTION_MADOGEAR));
+ } else {
#ifdef NEW_CARTS
- && sd->sc.data[SC_PUSH_CART] ){
- pc->setcart(sd,0);
-#else
- ){
+ if (sd->sc.data[SC_PUSH_CART])
+ pc->setcart(sd,0);
+#else // not NEW_CARTS
pc->setoption(sd,sd->sc.option&~OPTION_CART);
-#endif
- }else // priority to remove this option before we can clear cart
- pc->setoption(sd,sd->sc.option&~(OPTION_RIDING|OPTION_FALCON|OPTION_DRAGON|OPTION_MADOGEAR));
+#endif // NEW_CARTS
+ }
}
@@ -11247,15 +11269,23 @@ void clif_parse_UseSkillToId_homun(struct homun_data *hd, struct map_session_dat
if( !hd )
return;
- if( skill->not_ok_hom(skill_id, hd) )
+ if (skill->not_ok_hom(skill_id, hd)){
+ clif->emotion(&hd->bl, E_DOTS);
return;
- if( hd->bl.id != target_id && skill->get_inf(skill_id)&INF_SELF_SKILL )
+ }
+ if (hd->bl.id != target_id && skill->get_inf(skill_id)&INF_SELF_SKILL)
target_id = hd->bl.id;
- if( hd->ud.skilltimer != INVALID_TIMER ) {
- if( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST ) return;
- } else if( DIFF_TICK(tick, hd->ud.canact_tick) < 0 )
+ if (hd->ud.skilltimer != INVALID_TIMER) {
+ if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) return;
+ }
+ else if (DIFF_TICK(tick, hd->ud.canact_tick) < 0){
+ clif->emotion(&hd->bl, E_DOTS);
+ if (hd->master)
+ clif->skill_fail(hd->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
return;
+ }
+
lv = homun->checkskill(hd, skill_id);
if( skill_lv > lv )
skill_lv = lv;
@@ -11267,12 +11297,19 @@ void clif_parse_UseSkillToPos_homun(struct homun_data *hd, struct map_session_da
int lv;
if( !hd )
return;
- if( skill->not_ok_hom(skill_id, hd) )
+ if (skill->not_ok_hom(skill_id, hd)){
+ clif->emotion(&hd->bl, E_DOTS);
return;
- if( hd->ud.skilltimer != INVALID_TIMER ) {
- if( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST ) return;
- } else if( DIFF_TICK(tick, hd->ud.canact_tick) < 0 )
+ }
+ if ( hd->ud.skilltimer != INVALID_TIMER ) {
+ if ( skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST ) return;
+
+ } else if ( DIFF_TICK(tick, hd->ud.canact_tick) < 0 ) {
+ clif->emotion(&hd->bl, E_DOTS);
+ if ( hd->master )
+ clif->skill_fail(hd->master, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0);
return;
+ }
if( hd->sc.data[SC_BASILICA] )
return;
@@ -11413,7 +11450,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd)
if( skill_lv != sd->skillitemlv )
skill_lv = sd->skillitemlv;
if( !(tmp&INF_SELF_SKILL) )
- pc->delinvincibletimer(sd); // Target skills thru items cancel invincibility. [Inkfish]
+ pc->delinvincibletimer(sd); // Target skills through items cancel invincibility. [Inkfish]
unit->skilluse_id(&sd->bl, target_id, skill_id, skill_lv);
return;
}
@@ -11536,7 +11573,7 @@ void clif_parse_UseSkillToPos(int fd, struct map_session_data *sd)
RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[1]), //skill num
RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[2]), //pos x
RFIFOW(fd,packet_db[RFIFOW(fd,0)].pos[3]), //pos y
- -1 //Skill more info.
+ -1 //Skill more info.
);
}
@@ -12215,8 +12252,7 @@ void clif_parse_PartyMessage(int fd, struct map_session_data* sd)
if( sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT) )
return;
- if( battle_config.min_chat_delay )
- { //[Skotlex]
+ if (battle_config.min_chat_delay) {
if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0)
return;
sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
@@ -12234,7 +12270,7 @@ void clif_parse_PartyMessage(int fd, struct map_session_data* sd)
void clif_parse_PartyChangeLeader(int fd, struct map_session_data* sd) {
party->changeleader(sd, map->id2sd(RFIFOL(fd,2)));
}
-
+
/// Party Booking in KRO [Spiria]
///
@@ -12721,11 +12757,11 @@ void clif_parse_PartyBookingAckRecall(int fd, struct map_session_data *sd)
/// 08f8 <caller AID>.L <reason>.B
/// <reason>:
-/// REASON_PROHIBITION = 0x0
-/// REASON_MASTER_IN_PROHIBITION_MAP = 0x1
-/// REASON_REFUSE = 0x2
-/// REASON_NOT_PARTY_MEMBER = 0x3
-/// REASON_ETC = 0x4
+/// REASON_PROHIBITION = 0x0
+/// REASON_MASTER_IN_PROHIBITION_MAP = 0x1
+/// REASON_REFUSE = 0x2
+/// REASON_NOT_PARTY_MEMBER = 0x3
+/// REASON_ETC = 0x4
void clif_PartyBookingFailedRecall(int fd, struct map_session_data *sd)
{
}
@@ -12951,22 +12987,22 @@ void clif_parse_GuildRequestInfo(int fd, struct map_session_data *sd)
return;
switch( RFIFOL(fd,2) ) {
- case 0: // Basic Information Guild, hostile alliance information
+ case 0: // Basic Information Guild, hostile alliance information
clif->guild_basicinfo(sd);
clif->guild_allianceinfo(sd);
break;
- case 1: // Members list, list job title
+ case 1: // Members list, list job title
clif->guild_positionnamelist(sd);
clif->guild_memberlist(sd);
break;
- case 2: // List job title, title information list
+ case 2: // List job title, title information list
clif->guild_positionnamelist(sd);
clif->guild_positioninfolist(sd);
break;
- case 3: // Skill list
+ case 3: // Skill list
clif->guild_skillinfo(sd);
break;
- case 4: // Expulsion list
+ case 4: // Expulsion list
clif->guild_expulsionlist(sd);
break;
default:
@@ -13278,8 +13314,7 @@ void clif_parse_GuildMessage(int fd, struct map_session_data* sd)
if( sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_DEEP_SLEEP] && sd->sc.data[SC_DEEP_SLEEP]->val2) || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT) )
return;
- if( battle_config.min_chat_delay )
- { //[Skotlex]
+ if (battle_config.min_chat_delay) {
if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0)
return;
sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay;
@@ -14259,8 +14294,8 @@ void clif_PVPInfo(struct map_session_data* sd) {
WFIFOW(fd,0) = 0x210;
WFIFOL(fd,2) = sd->status.char_id;
WFIFOL(fd,6) = sd->status.account_id;
- WFIFOL(fd,10) = sd->pvp_won; // times won
- WFIFOL(fd,14) = sd->pvp_lost; // times lost
+ WFIFOL(fd,10) = sd->pvp_won; // times won
+ WFIFOL(fd,14) = sd->pvp_lost; // times lost
WFIFOL(fd,18) = sd->pvp_point;
WFIFOSET(fd, packet_len(0x210));
}
@@ -14318,7 +14353,7 @@ void clif_ranklist(struct map_session_data *sd, enum fame_list_type type) {
WFIFOW(fd, 0) = 0x97d;
WFIFOW(fd, 2) = type;
clif_ranklist_sub(WFIFOP(fd,4), type);
-
+
if( (upperMask == MAPID_BLACKSMITH && type == RANKTYPE_BLACKSMITH)
|| (upperMask == MAPID_ALCHEMIST && type == RANKTYPE_ALCHEMIST)
|| (upperMask == MAPID_TAEKWON && type == RANKTYPE_TAEKWON)
@@ -14493,9 +14528,10 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
sd->feel_map[i].m = sd->bl.m;
pc_setglobalreg(sd,script->add_str(pc->sg_info[i].feel_var),sd->feel_map[i].index);
-//Are these really needed? Shouldn't they show up automatically from the feel save packet?
-// clif_misceffect2(&sd->bl, 0x1b0);
-// clif_misceffect2(&sd->bl, 0x21f);
+#if 0 // Are these really needed? Shouldn't they show up automatically from the feel save packet?
+ clif_misceffect2(&sd->bl, 0x1b0);
+ clif_misceffect2(&sd->bl, 0x21f);
+#endif // 0
clif->feel_info(sd, i, 0);
clif_menuskill_clear(sd);
}
@@ -15116,7 +15152,8 @@ void clif_parse_Mail_send(int fd, struct map_session_data *sd)
if (body_len > MAIL_BODY_LENGTH)
body_len = MAIL_BODY_LENGTH;
- if( !mail->setattachment(sd, &msg) ) { // Invalid Append condition
+ memset(&msg, 0, sizeof(msg));
+ if (!mail->setattachment(sd, &msg)) { // Invalid Append condition
clif->mail_send(sd->fd, true); // fail
mail->removeitem(sd,0);
mail->removezeny(sd,0);
@@ -15281,7 +15318,7 @@ void clif_parse_Auction_setitem(int fd, struct map_session_data *sd)
!sd->status.inventory[idx].identify ||
!itemdb_canauction(&sd->status.inventory[idx],pc_get_group_level(sd)) || // Quest Item or something else
(sd->status.inventory[idx].bound && !pc_can_give_bound_items(sd)) ) {
- clif->auction_setitem(sd->fd, idx, true);
+ clif->auction_setitem(sd->fd, idx, true);
return;
}
@@ -15334,9 +15371,10 @@ void clif_parse_Auction_register(int fd, struct map_session_data *sd)
struct auction_data auction;
struct item_data *item;
- if( !battle_config.feature_auction )
+ if (!battle_config.feature_auction)
return;
+ memset(&auction, 0, sizeof(auction));
auction.price = RFIFOL(fd,2);
auction.buynow = RFIFOL(fd,6);
auction.hours = RFIFOW(fd,10);
@@ -15391,7 +15429,7 @@ void clif_parse_Auction_register(int fd, struct map_session_data *sd)
if( sd->status.inventory[sd->auction.index].bound && !pc_can_give_bound_items(sd) ) {
clif->message(sd->fd, msg_txt(293));
clif->auction_message(fd, 2); // The auction has been canceled
- return;
+ return;
}
safestrncpy(auction.item_name, item->jname, sizeof(auction.item_name));
@@ -15568,7 +15606,7 @@ void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd) {
/// For error return codes see enum cashshop_error@clif.h
void clif_cashshop_ack(struct map_session_data* sd, int error) {
struct npc_data *nd;
- int fd = sd->fd;
+ int fd = sd->fd;
int currency[2] = { 0,0 };
if( (nd = map->id2nd(sd->npc_shopid)) && nd->subtype == SCRIPT ) {
@@ -15599,34 +15637,33 @@ void clif_cashshop_ack(struct map_session_data* sd, int error) {
/// 0288 <packet len>.W <kafra points>.L <count>.W { <amount>.W <name id>.W }.4B*count (PACKETVER >= 20100803)
void clif_parse_cashshop_buy(int fd, struct map_session_data *sd)
{
- int fail = 0;
- nullpo_retv(sd);
+ int fail = 0;
+ nullpo_retv(sd);
- if( sd->state.trading || !sd->npc_shopid )
- fail = 1;
- else {
+ if( sd->state.trading || !sd->npc_shopid || pc_has_permission(sd,PC_PERM_DISABLE_STORE) )
+ fail = 1;
+ else {
#if PACKETVER < 20101116
- short nameid = RFIFOW(fd,2);
- short amount = RFIFOW(fd,4);
- int points = RFIFOL(fd,6);
+ short nameid = RFIFOW(fd,2);
+ short amount = RFIFOW(fd,4);
+ int points = RFIFOL(fd,6);
- fail = npc->cashshop_buy(sd, nameid, amount, points);
+ fail = npc->cashshop_buy(sd, nameid, amount, points);
#else
- int len = RFIFOW(fd,2);
- int points = RFIFOL(fd,4);
- int count = RFIFOW(fd,8);
- unsigned short* item_list = (unsigned short*)RFIFOP(fd,10);
-
- if( len < 10 || len != 10 + count * 4)
- {
- ShowWarning("Player %u sent incorrect cash shop buy packet (len %u:%u)!\n", sd->status.char_id, len, 10 + count * 4);
- return;
- }
- fail = npc->cashshop_buylist(sd,points,count,item_list);
+ int len = RFIFOW(fd,2);
+ int points = RFIFOL(fd,4);
+ int count = RFIFOW(fd,8);
+ unsigned short* item_list = (unsigned short*)RFIFOP(fd,10);
+
+ if( len < 10 || len != 10 + count * 4) {
+ ShowWarning("Player %u sent incorrect cash shop buy packet (len %u:%u)!\n", sd->status.char_id, len, 10 + count * 4);
+ return;
+ }
+ fail = npc->cashshop_buylist(sd,points,count,item_list);
#endif
- }
+ }
- clif->cashshop_ack(sd,fail);
+ clif->cashshop_ack(sd,fail);
}
@@ -15795,18 +15832,33 @@ void clif_parse_PartyTick(int fd, struct map_session_data* sd)
void clif_quest_send_list(struct map_session_data *sd) {
int fd = sd->fd;
int i;
- int len = sd->avail_quests*5+8;
-
+#if PACKETVER >= 20141022
+ int info_len = 15;
+ int len = sd->avail_quests*info_len+8;
+ WFIFOHEAD(fd,len);
+ WFIFOW(fd, 0) = 0x97a;
+#else
+ int info_len = 5;
+ int len = sd->avail_quests*info_len+8;
WFIFOHEAD(fd,len);
WFIFOW(fd, 0) = 0x2b1;
+#endif
WFIFOW(fd, 2) = len;
WFIFOL(fd, 4) = sd->avail_quests;
for( i = 0; i < sd->avail_quests; i++ ) {
- WFIFOL(fd, i*5+8) = sd->quest_log[i].quest_id;
- WFIFOB(fd, i*5+12) = sd->quest_log[i].state;
+ #if PACKETVER >= 20141022
+ struct quest_db *qi = quest->db(sd->quest_log[i].quest_id);
+ #endif
+ WFIFOL(fd, i*info_len+8) = sd->quest_log[i].quest_id;
+ WFIFOB(fd, i*info_len+12) = sd->quest_log[i].state;
+ #if PACKETVER >= 20141022
+ WFIFOL(fd, i*info_len+13) = sd->quest_log[i].time - qi->time;
+ WFIFOL(fd, i*info_len+17) = sd->quest_log[i].time;
+ WFIFOW(fd, i*info_len+21) = qi->num_objectives;
+ #endif
}
-
+
WFIFOSET(fd, len);
}
@@ -16566,8 +16618,8 @@ void clif_parse_ItemListWindowSelected(int fd, struct map_session_data* sd) {
case 0: // Change Material
skill->changematerial(sd,n,item_list);
break;
- case 1: // Level 1: Pure to Rough
- case 2: // Level 2: Rough to Pure
+ case 1: // Level 1: Pure to Rough
+ case 2: // Level 2: Rough to Pure
skill->elementalanalysis(sd,n,type,item_list);
break;
}
@@ -17406,10 +17458,13 @@ void clif_charm(struct map_session_data *sd,short type)
nullpo_retv(sd);
+ if ( type <= SPIRITS_TYPE_NONE || type >= SPIRITS_TYPE_SPHERE )
+ return;
+
WBUFW(buf,0)=0x08cf;
WBUFL(buf,2)=sd->bl.id;
WBUFW(buf,6)=type;
- WBUFW(buf,8)=sd->charm[type];
+ WBUFW(buf,8)=sd->spiritcharm[type];
clif->send(buf,packet_len(0x08cf),&sd->bl,AREA);
}
/// Move Item from or to Personal Tab (CZ_WHATSOEVER) [FE]
@@ -17417,8 +17472,8 @@ void clif_charm(struct map_session_data *sd,short type)
///
/// R 0908 <index>.w <type>.b
/// type:
-/// 0 = move item to personal tab
-/// 1 = move item to normal tab
+/// 0 = move item to personal tab
+/// 1 = move item to normal tab
void clif_parse_MoveItem(int fd, struct map_session_data *sd) {
#if PACKETVER >= 20111122
int index;
@@ -17697,13 +17752,17 @@ void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) {
void clif_maptypeproperty2(struct block_list *bl,enum send_target t) {
#if PACKETVER >= 20121010
struct packet_maptypeproperty2 p;
+ struct map_session_data *sd = NULL;
+ nullpo_retv(bl);
+
+ sd = BL_CAST(BL_PC, bl);
p.PacketType = maptypeproperty2Type;
p.type = 0x28;
p.flag.party = map->list[bl->m].flag.pvp ? 1 : 0;
- p.flag.guild = map_flag_gvg(bl->m) ? 1 : 0;
- p.flag.siege = map_flag_gvg2(bl->m) ? 1: 0;
- p.flag.mineffect = map_flag_gvg(bl->m); // FIXME/CHECKME Forcing /mineffect in castles during WoE (probably redundant? I'm not sure)
+ p.flag.guild = (map->list[bl->m].flag.battleground || map_flag_gvg(bl->m)) ? 1 : 0;
+ p.flag.siege = (map->list[bl->m].flag.battleground || map_flag_gvg2(bl->m)) ? 1: 0;
+ p.flag.mineffect = map_flag_gvg(bl->m) ? 1 : ( (sd && sd->state.lesseffect) ? 1 : 0); // Forcing /mineffect in castles during WoE (probably redundant? I'm not sure)
p.flag.nolockon = 0; // TODO
p.flag.countpk = map->list[bl->m].flag.pvp ? 1 : 0;
p.flag.nopartyformation = map->list[bl->m].flag.partylock ? 1 : 0;
@@ -17836,7 +17895,7 @@ void clif_bgqueue_update_info(struct map_session_data *sd, unsigned char arena_i
safestrncpy(p.bg_name, bg->arena[arena_id]->name, sizeof(p.bg_name));
p.position = position;
- sd->bg_queue.client_has_bg_data = true; // Client creates bg data when this packet arrives
+ sd->bg_queue.client_has_bg_data = true; // Client creates bg data when this packet arrives
clif->send(&p,sizeof(p), &sd->bl, SELF);
}
@@ -18254,6 +18313,296 @@ void clif_parse_NPCMarketPurchase(int fd, struct map_session_data *sd) {
clif->npc_market_purchase_ack(sd,p,npc->market_buylist(sd,(p->PacketLength - 4) / sizeof(p->list[0]),p));
#endif
}
+
+void clif_PartyLeaderChanged(struct map_session_data *sd, int prev_leader_aid, int new_leader_aid) {
+ struct packet_party_leader_changed p;
+
+ p.PacketType = partyleaderchangedType;
+
+ p.prev_leader_aid = prev_leader_aid;
+ p.new_leader_aid = new_leader_aid;
+
+ clif->send(&p,sizeof(p),&sd->bl,PARTY);
+}
+
+/* Roulette System [Yommy/Hercules] */
+void clif_parse_RouletteOpen(int fd, struct map_session_data* sd) {
+ struct packet_roulette_open_ack p;
+
+ if( !battle_config.feature_roulette ) {
+ clif->message(fd,"Roulette is disabled");
+ return;
+ }
+
+ p.PacketType = 0xa1a;
+ p.Result = 0;
+ p.Serial = 0;
+ p.Step = sd->roulette.stage - 1;
+ p.Idx = (char)sd->roulette.prizeIdx;
+ p.AdditionItemID = -1; /** TODO **/
+ p.BronzePoint = pc_readglobalreg(sd, script->add_str("TmpRouletteBronze"));
+ p.GoldPoint = pc_readglobalreg(sd, script->add_str("TmpRouletteGold"));
+ p.SilverPoint = pc_readglobalreg(sd, script->add_str("TmpRouletteSilver"));
+
+ clif->send(&p,sizeof(p), &sd->bl, SELF);
+}
+void clif_parse_RouletteInfo(int fd, struct map_session_data* sd) {
+ struct packet_roulette_info_ack p;
+ unsigned short i, j, count = 0;
+
+ if( !battle_config.feature_roulette ) {
+ clif->message(fd,"Roulette is disabled");
+ return;
+ }
+
+ p.PacketType = rouletteinfoackType;
+ p.PacketLength = 8 + (42 * 8);
+ p.RouletteSerial = 1;
+
+ for(i = 0; i < MAX_ROULETTE_LEVEL; i++) {
+ for(j = 0; j < MAX_ROULETTE_COLUMNS-i; j++) {
+ p.ItemInfo[count].Row = i;
+ p.ItemInfo[count].Position = j;
+ p.ItemInfo[count].ItemId = clif->rd.nameid[i][j];
+ p.ItemInfo[count].Count = clif->rd.qty[i][j];
+ count++;
+ }
+ }
+
+ clif->send(&p,sizeof(p), &sd->bl, SELF);
+ return;
+}
+void clif_parse_RouletteClose(int fd, struct map_session_data* sd) {
+
+ if( !battle_config.feature_roulette ) {
+ clif->message(fd,"Roulette is disabled");
+ return;
+ }
+
+
+ /** What do we need this for? (other than state tracking), game client closes the window without our response. **/
+
+ //ShowDebug("clif_parse_RouletteClose\n");
+
+ return;
+}
+void clif_parse_RouletteGenerate(int fd, struct map_session_data* sd) {
+ unsigned char result = GENERATE_ROULETTE_SUCCESS;
+ short stage = sd->roulette.stage;
+
+ if( !battle_config.feature_roulette ) {
+ clif->message(fd,"Roulette is disabled");
+ return;
+ }
+
+ if( sd->roulette.stage >= MAX_ROULETTE_LEVEL )
+ stage = sd->roulette.stage = 0;
+
+ if( stage == 0 ) {
+ if( pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) <= 0 &&
+ pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) < 10 &&
+ pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) < 10 )
+ result = GENERATE_ROULETTE_NO_ENOUGH_POINT;
+ }
+
+ if( result == GENERATE_ROULETTE_SUCCESS ) {
+
+ if( stage == 0 ) {
+ if( pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) > 0 ) {
+ pc_setglobalreg(sd, script->add_str("TmpRouletteBronze"), pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) - 1);
+ } else if( pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) > 9 ) {
+ pc_setglobalreg(sd, script->add_str("TmpRouletteSilver"), pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) - 10);
+ stage = sd->roulette.stage = 2;
+ } else if( pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) > 9 ) {
+ pc_setglobalreg(sd, script->add_str("TmpRouletteGold"), pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) - 10);
+ stage = sd->roulette.stage = 4;
+ }
+ }
+
+ sd->roulette.prizeStage = stage;
+ sd->roulette.prizeIdx = rnd()%clif->rd.items[stage];
+ if( sd->roulette.prizeIdx == 0 ) {
+ struct item it;
+ memset(&it, 0, sizeof(it));
+
+ it.nameid = clif->rd.nameid[stage][0];
+ it.identify = 1;
+
+ pc->additem(sd, &it, clif->rd.qty[stage][0], LOG_TYPE_OTHER);/** TODO maybe a new log type for roulette items? **/
+
+ sd->roulette.stage = 0;
+ result = GENERATE_ROULETTE_LOSING;
+ } else
+ sd->roulette.claimPrize = true;
+ }
+
+ clif->roulette_generate_ack(sd,result,stage,sd->roulette.prizeIdx,0);
+ if( result == GENERATE_ROULETTE_SUCCESS )
+ sd->roulette.stage++;
+}
+/**
+ * Request to cash in!
+ **/
+void clif_parse_RouletteRecvItem(int fd, struct map_session_data* sd) {
+ struct packet_roulette_itemrecv_ack p;
+
+ if( !battle_config.feature_roulette ) {
+ clif->message(fd,"Roulette is disabled");
+ return;
+ }
+
+ p.PacketType = roulettercvitemackType;
+ p.AdditionItemID = 0;/** TODO **/
+
+ if( sd->roulette.claimPrize ) {
+ struct item it;
+ memset(&it, 0, sizeof(it));
+
+ it.nameid = clif->rd.nameid[sd->roulette.prizeStage][sd->roulette.prizeIdx];
+ it.identify = 1;
+
+ switch (pc->additem(sd, &it, clif->rd.qty[sd->roulette.prizeStage][sd->roulette.prizeIdx], LOG_TYPE_OTHER)) {
+ case 0:
+ p.Result = RECV_ITEM_SUCCESS;
+ sd->roulette.claimPrize = false;
+ sd->roulette.prizeStage = 0;
+ sd->roulette.prizeIdx = 0;
+ sd->roulette.stage = 0;
+ break;
+ case 1:
+ case 4:
+ case 5:
+ p.Result = RECV_ITEM_OVERCOUNT;
+ break;
+ case 2:
+ p.Result = RECV_ITEM_OVERWEIGHT;
+ break;
+ default:
+ case 7:
+ p.Result = RECV_ITEM_FAILED;
+ break;
+ }
+ } else
+ p.Result = RECV_ITEM_FAILED;
+
+ clif->send(&p,sizeof(p), &sd->bl, SELF);
+ return;
+}
+
+bool clif_parse_roulette_db(void) {
+ config_t roulette_conf;
+ config_setting_t *roulette = NULL, *levels = NULL;
+ const char *config_filename = "db/roulette_db.conf"; // FIXME hardcoded name
+ int i, j, item_count_t = 0;
+
+ for( i = 0; i < MAX_ROULETTE_LEVEL; i++ ) {
+ clif->rd.items[i] = 0;
+ }
+
+ if (libconfig->read_file(&roulette_conf, config_filename)) {
+ ShowError("can't read %s\n", config_filename);
+ return false;
+ }
+
+ roulette = libconfig->lookup(&roulette_conf, "roulette");
+
+ if( roulette != NULL && (levels = libconfig->setting_get_elem(roulette, 0)) != NULL ) {
+ for(i = 0; i < MAX_ROULETTE_LEVEL; i++) {
+ config_setting_t *level;
+ char entry_name[10];
+
+ sprintf(entry_name,"level_%d",i+1);
+
+ if( (level = libconfig->setting_get_member(levels, entry_name)) != NULL ) {
+ int k, item_count = libconfig->setting_length(level);
+
+ for(k = 0; k < item_count; k++) {
+ config_setting_t *entry = libconfig->setting_get_elem(level,k);
+ const char *name = config_setting_name(entry);
+ int qty = libconfig->setting_get_int(entry);
+ struct item_data * data = NULL;
+
+ if( qty < 1 ) {
+ ShowWarning("roulette_db: unsupported qty '%d' for entry named '%s' in category '%s'\n", qty, name, entry_name);
+ continue;
+ }
+
+ if( name[0] == 'I' && name[1] == 'D' && strlen(name) <= 7 ) {
+ if( !( data = itemdb->exists(atoi(name+2))) ) {
+ ShowWarning("roulette_db: unknown item id '%s' in category '%s'\n", name+2, entry_name);
+ continue;
+ }
+ } else {
+ if( !( data = itemdb->search_name(name) ) ) {
+ ShowWarning("roulette_db: unknown item name '%s' in category '%s'\n", name, entry_name);
+ continue;
+ }
+ }
+
+ j = clif->rd.items[i];
+ RECREATE(clif->rd.nameid[i],int,++clif->rd.items[i]);
+ RECREATE(clif->rd.qty[i],int,clif->rd.items[i]);
+
+ clif->rd.nameid[i][j] = data->nameid;
+ clif->rd.qty[i][j] = qty;
+
+ item_count_t++;
+ }
+ }
+ }
+
+ libconfig->destroy(&roulette_conf);
+ }
+
+ for(i = 0; i < MAX_ROULETTE_LEVEL; i++) {
+ int limit = MAX_ROULETTE_COLUMNS-i;
+ if( clif->rd.items[i] == limit ) continue;
+
+ if( clif->rd.items[i] > limit ) {
+ ShowWarning("roulette_db: level %d has %d items, only %d supported, capping...\n",i+1,clif->rd.items[i],limit);
+ clif->rd.items[i] = limit;
+ continue;
+ }
+ /** this scenario = clif->rd.items[i] < limit **/
+ ShowWarning("roulette_db: level %d has %d items, %d are required. filling with apples\n",i+1,clif->rd.items[i],limit);
+
+ clif->rd.items[i] = limit;
+ RECREATE(clif->rd.nameid[i],int,clif->rd.items[i]);
+ RECREATE(clif->rd.qty[i],int,clif->rd.items[i]);
+
+
+ for(j = 0; j < MAX_ROULETTE_COLUMNS-i; j++) {
+ if( clif->rd.qty[i][j] ) continue;
+
+ clif->rd.nameid[i][j] = ITEMID_APPLE;
+ clif->rd.qty[i][j] = 1;
+ }
+ }
+
+
+ ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", item_count_t, config_filename);
+
+ return true;
+}
+
+/**
+ *
+ **/
+void clif_roulette_generate_ack(struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, short bonusItemID) {
+ struct packet_roulette_generate_ack p;
+
+ p.PacketType = roulettgenerateackType;
+ p.Result = result;
+ p.Step = stage;
+ p.Idx = prizeIdx;
+ p.AdditionItemID = bonusItemID;
+ p.RemainBronze = pc_readglobalreg(sd, script->add_str("TmpRouletteBronze"));
+ p.RemainGold = pc_readglobalreg(sd, script->add_str("TmpRouletteGold"));
+ p.RemainSilver = pc_readglobalreg(sd, script->add_str("TmpRouletteSilver"));
+
+ clif->send(&p,sizeof(p), &sd->bl, SELF);
+}
+
/* */
unsigned short clif_decrypt_cmd( int cmd, struct map_session_data *sd ) {
if( sd ) {
@@ -18533,7 +18882,7 @@ int do_init_clif(bool minimal) {
clif->delayed_damage_ers = ers_new(sizeof(struct cdelayed_damage),"clif.c::delayed_damage_ers",ERS_OPT_CLEAR);
clif->channel_db = stridb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, HCHSYS_NAME_LENGTH);
- hChSys.ally = hChSys.local = hChSys.irc = hChSys.ally_autojoin = hChSys.local_autojoin = false;
+ clif->hChSys->ally = clif->hChSys->local = clif->hChSys->irc = clif->hChSys->ally_autojoin = clif->hChSys->local_autojoin = false;
clif->chann_config_read();
return 0;
@@ -18550,13 +18899,13 @@ void do_final_clif(void) {
dbi_destroy(iter);
- for(i = 0; i < hChSys.colors_count; i++) {
- aFree(hChSys.colors_name[i]);
+ for(i = 0; i < clif->hChSys->colors_count; i++) {
+ aFree(clif->hChSys->colors_name[i]);
}
- if( hChSys.colors_count ) {
- aFree(hChSys.colors_name);
- aFree(hChSys.colors);
+ if (clif->hChSys->colors_count) {
+ aFree(clif->hChSys->colors_name);
+ aFree(clif->hChSys->colors);
}
db_destroy(clif->channel_db);
@@ -18570,6 +18919,13 @@ void do_final_clif(void) {
}
aFree(clif->cs.data[i]);
}
+
+ for(i = 0; i < MAX_ROULETTE_LEVEL; i++) {
+ if( clif->rd.nameid[i] )
+ aFree(clif->rd.nameid[i]);
+ if( clif->rd.qty[i] )
+ aFree(clif->rd.qty[i]);
+ }
}
void clif_defaults(void) {
@@ -18588,6 +18944,7 @@ void clif_defaults(void) {
clif->refresh_ip = clif_refresh_ip;
clif->send = clif_send;
clif->send_sub = clif_send_sub;
+ clif->send_actual = clif_send_actual;
clif->parse = clif_parse;
clif->parse_cmd = clif_parse_cmd_optional;
clif->decrypt_cmd = clif_decrypt_cmd;
@@ -18632,6 +18989,7 @@ void clif_defaults(void) {
clif->changelook = clif_changelook;
clif->changetraplook = clif_changetraplook;
clif->refreshlook = clif_refreshlook;
+ clif->sendlook = clif_sendlook;
clif->class_change = clif_class_change;
clif->skill_delunit = clif_skill_delunit;
clif->skillunit_update = clif_skillunit_update;
@@ -18800,7 +19158,7 @@ void clif_defaults(void) {
clif->specialeffect_single = clif_specialeffect_single;
clif->specialeffect_value = clif_specialeffect_value;
clif->millenniumshield = clif_millenniumshield;
- clif->charm = clif_charm;
+ clif->spiritcharm = clif_charm;
clif->charm_single = clif_charm_single;
clif->snap = clif_snap;
clif->weather_check = clif_weather_check;
@@ -18884,6 +19242,7 @@ void clif_defaults(void) {
clif->party_xy_remove = clif_party_xy_remove;
clif->party_show_picker = clif_party_show_picker;
clif->partyinvitationstate = clif_partyinvitationstate;
+ clif->PartyLeaderChanged = clif_PartyLeaderChanged;
/* guild-specific */
clif->guild_created = clif_guild_created;
clif->guild_belonginfo = clif_guild_belonginfo;
@@ -19045,6 +19404,7 @@ void clif_defaults(void) {
clif->bc_ready = clif_bc_ready;
clif->undisguise_timer = clif_undisguise_timer;
/* Hercules Channel System */
+ clif->hChSys = &clif_hChSys;
clif->chsys_create = clif_hercules_chsys_create;
clif->chsys_msg = clif_hercules_chsys_msg;
clif->chsys_msg2 = clif_hercules_chsys_msg2;
@@ -19070,6 +19430,9 @@ void clif_defaults(void) {
/* NPC Market */
clif->npc_market_open = clif_npc_market_open;
clif->npc_market_purchase_ack = clif_npc_market_purchase_ack;
+ /* */
+ clif->parse_roulette_db = clif_parse_roulette_db;
+ clif->roulette_generate_ack = clif_roulette_generate_ack;
/*------------------------
*- Parse Incoming Packet
*------------------------*/
@@ -19299,6 +19662,12 @@ void clif_defaults(void) {
clif->pBankCheck = clif_parse_BankCheck;
clif->pBankOpen = clif_parse_BankOpen;
clif->pBankClose = clif_parse_BankClose;
+ /* Roulette System [Yommy/Hercules] */
+ clif->pRouletteOpen = clif_parse_RouletteOpen;
+ clif->pRouletteInfo = clif_parse_RouletteInfo;
+ clif->pRouletteClose = clif_parse_RouletteClose;
+ clif->pRouletteGenerate = clif_parse_RouletteGenerate;
+ clif->pRouletteRecvItem = clif_parse_RouletteRecvItem;
/* */
clif->pNPCShopClosed = clif_parse_NPCShopClosed;
/* NPC Market */
diff --git a/src/map/clif.h b/src/map/clif.h
index e4de51a83..4c90a3a28 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -18,8 +18,6 @@
**/
struct item;
struct item_data;
-struct storage_data;
-struct guild_storage;
struct unit_data;
struct map_session_data;
struct homun_data;
@@ -48,8 +46,10 @@ struct skill_cd;
#define P2PTR(fd) RFIFO2PTR(fd)
#define clif_menuskill_clear(sd) ((sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0)
#define clif_disp_onlyself(sd,mes,len) clif->disp_message( &(sd)->bl, (mes), (len), SELF )
-#define clif_viewequip_fail( sd ) clif_msg( (sd), 0x54d );
+#define clif_viewequip_fail( sd ) clif->msg( (sd), 0x54d );
#define HCHSYS_NAME_LENGTH 20
+#define MAX_ROULETTE_LEVEL 7 /** client-defined value **/
+#define MAX_ROULETTE_COLUMNS 9 /** client-defined value **/
/**
* Enumerations
@@ -86,14 +86,14 @@ typedef enum send_target {
DUEL,
DUEL_WOS,
SELF,
-
+
BG, // BattleGround System
BG_WOS,
BG_SAMEMAP,
BG_SAMEMAP_WOS,
BG_AREA,
BG_AREA_WOS,
-
+
BG_QUEUE,
} send_target;
@@ -340,6 +340,7 @@ typedef enum useskill_fail_cause { // clif_skill_fail
USESKILL_FAIL_STYLE_CHANGE_FIGHTER = 81,
USESKILL_FAIL_STYLE_CHANGE_GRAPPLER = 82,
USESKILL_FAIL_THERE_ARE_NPC_AROUND = 83,
+ USESKILL_FAIL_NEED_MORE_BULLET = 84,
}useskill_fail_cause;
enum clif_messages {
@@ -352,16 +353,16 @@ enum clif_messages {
* Used to answer CZ_PC_BUY_CASH_POINT_ITEM (clif_parse_cashshop_buy)
**/
enum cashshop_error {
- ERROR_TYPE_NONE = 0, // The deal has successfully completed. (ERROR_TYPE_NONE)
- ERROR_TYPE_NPC, // The Purchase has failed because the NPC does not exist. (ERROR_TYPE_NPC)
- ERROR_TYPE_SYSTEM, // The Purchase has failed because the Kafra Shop System is not working correctly. (ERROR_TYPE_SYSTEM)
- ERROR_TYPE_INVENTORY_WEIGHT, // You are over your Weight Limit. (ERROR_TYPE_INVENTORY_WEIGHT)
- ERROR_TYPE_EXCHANGE, // You cannot purchase items while you are in a trade. (ERROR_TYPE_EXCHANGE)
- ERROR_TYPE_ITEM_ID, // The Purchase has failed because the Item Information was incorrect. (ERROR_TYPE_ITEM_ID)
- ERROR_TYPE_MONEY, // You do not have enough Kafra Credit Points. (ERROR_TYPE_MONEY)
+ ERROR_TYPE_NONE = 0, ///< The deal has successfully completed. (ERROR_TYPE_NONE)
+ ERROR_TYPE_NPC = 1, ///< The Purchase has failed because the NPC does not exist. (ERROR_TYPE_NPC)
+ ERROR_TYPE_SYSTEM = 2, ///< The Purchase has failed because the Kafra Shop System is not working correctly. (ERROR_TYPE_SYSTEM)
+ ERROR_TYPE_INVENTORY_WEIGHT = 3, ///< You are over your Weight Limit. (ERROR_TYPE_INVENTORY_WEIGHT)
+ ERROR_TYPE_EXCHANGE = 4, ///< You cannot purchase items while you are in a trade. (ERROR_TYPE_EXCHANGE)
+ ERROR_TYPE_ITEM_ID = 5, ///< The Purchase has failed because the Item Information was incorrect. (ERROR_TYPE_ITEM_ID)
+ ERROR_TYPE_MONEY = 6, ///< You do not have enough Kafra Credit Points. (ERROR_TYPE_MONEY)
// Unofficial type names
- ERROR_TYPE_QUANTITY, // You can purchase up to 10 items. (ERROR_TYPE_QUANTITY)
- ERROR_TYPE_NOT_ALL, // Some items could not be purchased. (ERROR_TYPE_NOT_ALL)
+ ERROR_TYPE_QUANTITY = 7, ///< You can purchase up to 10 items. (ERROR_TYPE_QUANTITY)
+ ERROR_TYPE_NOT_ALL = 8, ///< Some items could not be purchased. (ERROR_TYPE_NOT_ALL)
};
/**
@@ -375,40 +376,40 @@ enum clif_colors {
};
enum hChSysChOpt {
- hChSys_OPT_BASE = 0x0,
- hChSys_OPT_ANNOUNCE_JOIN = 0x1,
- hChSys_OPT_MSG_DELAY = 0x2,
+ hChSys_OPT_BASE = 0x0,
+ hChSys_OPT_ANNOUNCE_JOIN = 0x1,
+ hChSys_OPT_MSG_DELAY = 0x2,
};
enum hChSysChType {
- hChSys_PUBLIC = 0,
- hChSys_PRIVATE = 1,
- hChSys_MAP = 2,
- hChSys_ALLY = 3,
- hChSys_IRC = 4,
+ hChSys_PUBLIC = 0,
+ hChSys_PRIVATE = 1,
+ hChSys_MAP = 2,
+ hChSys_ALLY = 3,
+ hChSys_IRC = 4,
};
enum CASH_SHOP_TABS {
- CASHSHOP_TAB_NEW = 0,
- CASHSHOP_TAB_POPULAR = 1,
- CASHSHOP_TAB_LIMITED = 2,
- CASHSHOP_TAB_RENTAL = 3,
+ CASHSHOP_TAB_NEW = 0,
+ CASHSHOP_TAB_POPULAR = 1,
+ CASHSHOP_TAB_LIMITED = 2,
+ CASHSHOP_TAB_RENTAL = 3,
CASHSHOP_TAB_PERPETUITY = 4,
- CASHSHOP_TAB_BUFF = 5,
- CASHSHOP_TAB_RECOVERY = 6,
- CASHSHOP_TAB_ETC = 7,
+ CASHSHOP_TAB_BUFF = 5,
+ CASHSHOP_TAB_RECOVERY = 6,
+ CASHSHOP_TAB_ETC = 7,
CASHSHOP_TAB_MAX,
};
enum CASH_SHOP_BUY_RESULT {
- CSBR_SUCCESS = 0x0,
- CSBR_SHORTTAGE_CASH = 0x2,
- CSBR_UNKONWN_ITEM = 0x3,
- CSBR_INVENTORY_WEIGHT = 0x4,
- CSBR_INVENTORY_ITEMCNT = 0x5,
- CSBR_RUNE_OVERCOUNT = 0x9,
- CSBR_EACHITEM_OVERCOUNT = 0xa,
- CSBR_UNKNOWN = 0xb,
+ CSBR_SUCCESS = 0x0,
+ CSBR_SHORTTAGE_CASH = 0x2,
+ CSBR_UNKONWN_ITEM = 0x3,
+ CSBR_INVENTORY_WEIGHT = 0x4,
+ CSBR_INVENTORY_ITEMCNT = 0x5,
+ CSBR_RUNE_OVERCOUNT = 0x9,
+ CSBR_EACHITEM_OVERCOUNT = 0xa,
+ CSBR_UNKNOWN = 0xb,
};
enum BATTLEGROUNDS_QUEUE_ACK {
@@ -478,6 +479,35 @@ enum e_trade_item_ok {
TIO_INDROCKS = 0x9,
};
+enum RECV_ROULETTE_ITEM_REQ {
+ RECV_ITEM_SUCCESS = 0x0,
+ RECV_ITEM_FAILED = 0x1,
+ RECV_ITEM_OVERCOUNT = 0x2,
+ RECV_ITEM_OVERWEIGHT = 0x3,
+};
+
+enum RECV_ROULETTE_ITEM_ACK {
+ RECV_ITEM_NORMAL = 0x0,
+ RECV_ITEM_LOSING = 0x1,
+};
+
+enum GENERATE_ROULETTE_ACK {
+ GENERATE_ROULETTE_SUCCESS = 0x0,
+ GENERATE_ROULETTE_FAILED = 0x1,
+ GENERATE_ROULETTE_NO_ENOUGH_POINT = 0x2,
+ GENERATE_ROULETTE_LOSING = 0x3,
+};
+
+enum OPEN_ROULETTE_ACK{
+ OPEN_ROULETTE_SUCCESS = 0x0,
+ OPEN_ROULETTE_FAILED = 0x1,
+};
+
+enum CLOSE_ROULETTE_ACK {
+ CLOSE_ROULETTE_SUCCESS = 0x0,
+ CLOSE_ROULETTE_FAILED = 0x1,
+};
+
/**
* Structures
**/
@@ -488,7 +518,7 @@ struct s_packet_db {
short pos[MAX_PACKET_POS];
};
-struct {
+struct hChSysConfig {
unsigned int *colors;
char **colors_name;
unsigned char colors_count;
@@ -501,7 +531,7 @@ struct {
char irc_server[40], irc_channel[50], irc_nick[40], irc_nick_pw[30];
unsigned short irc_server_port;
bool irc_use_ghost;
-} hChSys;
+};
struct hChSysBanEntry {
char name[NAME_LENGTH];
@@ -547,6 +577,7 @@ struct clif_interface {
char map_ip_str[128];
int map_fd;
DBMap* channel_db;
+ struct hChSysConfig *hChSys;
/* for clif_clearunit_delayed */
struct eri *delay_clearunit_ers;
/* Cash Shop [Ind/Hercules] */
@@ -554,6 +585,12 @@ struct clif_interface {
struct hCSData **data[CASHSHOP_TAB_MAX];
unsigned int item_count[CASHSHOP_TAB_MAX];
} cs;
+ /* roulette data */
+ struct {
+ int *nameid[MAX_ROULETTE_LEVEL];//nameid
+ int *qty[MAX_ROULETTE_LEVEL];//qty of nameid
+ int items[MAX_ROULETTE_LEVEL];//number of items in the list for each
+ } rd;
/* */
unsigned int cryptKey[3];
/* */
@@ -569,6 +606,7 @@ struct clif_interface {
uint32 (*refresh_ip) (void);
bool (*send) (const void* buf, int len, struct block_list* bl, enum send_target type);
int (*send_sub) (struct block_list *bl, va_list ap);
+ int (*send_actual) (int fd, void *buf, int len);
int (*parse) (int fd);
unsigned short (*parse_cmd) ( int fd, struct map_session_data *sd );
unsigned short (*decrypt_cmd) ( int cmd, struct map_session_data *sd );
@@ -613,6 +651,7 @@ struct clif_interface {
void (*changelook) (struct block_list *bl,int type,int val);
void (*changetraplook) (struct block_list *bl,int val);
void (*refreshlook) (struct block_list *bl,int id,int type,int val,enum send_target target);
+ void (*sendlook) (struct block_list *bl, int id, int type, int val, int val2, enum send_target target);
void (*class_change) (struct block_list *bl,int class_,int type);
void (*skill_delunit) (struct skill_unit *su);
void (*skillunit_update) (struct block_list* bl);
@@ -781,7 +820,7 @@ struct clif_interface {
void (*specialeffect_single) (struct block_list* bl, int type, int fd);
void (*specialeffect_value) (struct block_list* bl, int effect_id, int num, send_target target);
void (*millenniumshield) (struct block_list *bl, short shields );
- void (*charm) (struct map_session_data *sd, short type);
+ void (*spiritcharm) (struct map_session_data *sd, short type);
void (*charm_single) (int fd, struct map_session_data *sd, short type);
void (*snap) ( struct block_list *bl, short x, short y );
void (*weather_check) (struct map_session_data *sd);
@@ -866,6 +905,7 @@ struct clif_interface {
void (*party_xy_remove) (struct map_session_data *sd);
void (*party_show_picker) (struct map_session_data * sd, struct item * item_data);
void (*partyinvitationstate) (struct map_session_data* sd);
+ void (*PartyLeaderChanged) (struct map_session_data *sd, int prev_leader_aid, int new_leader_aid);
/* guild-specific */
void (*guild_created) (struct map_session_data *sd,int flag);
void (*guild_belonginfo) (struct map_session_data *sd, struct guild *g);
@@ -1052,6 +1092,9 @@ struct clif_interface {
/* NPC Market */
void (*npc_market_open) (struct map_session_data *sd, struct npc_data *nd);
void (*npc_market_purchase_ack) (struct map_session_data *sd, struct packet_npc_market_purchase *req, unsigned char response);
+ /* */
+ bool (*parse_roulette_db) (void);
+ void (*roulette_generate_ack) (struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, short bonusItemID);
/*------------------------
*- Parse Incoming Packet
*------------------------*/
@@ -1279,6 +1322,12 @@ struct clif_interface {
void (*pBankCheck) (int fd, struct map_session_data *sd);
void (*pBankOpen) (int fd, struct map_session_data *sd);
void (*pBankClose) (int fd, struct map_session_data *sd);
+ /* Roulette System [Yommy/Hercules] */
+ void (*pRouletteOpen) (int fd, struct map_session_data *sd);
+ void (*pRouletteInfo) (int fd, struct map_session_data *sd);
+ void (*pRouletteClose) (int fd, struct map_session_data *sd);
+ void (*pRouletteGenerate) (int fd, struct map_session_data *sd);
+ void (*pRouletteRecvItem) (int fd, struct map_session_data *sd);
/* */
void (*pNPCShopClosed) (int fd, struct map_session_data *sd);
/* NPC Market (by Ind after an extensive debugging of the packet, only possible thanks to Yommy <3) */
diff --git a/src/map/duel.c b/src/map/duel.c
index 4e4eeef1f..0ae2770c4 100644
--- a/src/map/duel.c
+++ b/src/map/duel.c
@@ -16,6 +16,8 @@
#include "pc.h"
#include "../common/cbasetypes.h"
+struct duel_interface duel_s;
+
/*==========================================
* Duel organizing functions [LuzZza]
*------------------------------------------*/
diff --git a/src/map/duel.h b/src/map/duel.h
index de2bd1bf6..5466f3b43 100644
--- a/src/map/duel.h
+++ b/src/map/duel.h
@@ -37,10 +37,10 @@ struct duel_interface {
void (*leave) (const unsigned int did, struct map_session_data* sd);
void (*showinfo) (const unsigned int did, struct map_session_data* sd);
int (*checktime) (struct map_session_data* sd);
-
+
void (*init) (bool minimal);
void (*final) (void);
-} duel_s;
+};
struct duel_interface *duel;
diff --git a/src/map/elemental.c b/src/map/elemental.c
index caba02692..50d6c34b3 100644
--- a/src/map/elemental.c
+++ b/src/map/elemental.c
@@ -218,6 +218,9 @@ int elemental_delete(struct elemental_data *ed, int reply) {
sd->ed = NULL;
sd->status.ele_id = 0;
+ if( !ed->bl.prev )
+ return unit->free(&ed->bl, 0);
+
return unit->remove_map(&ed->bl, 0, ALC_MARK);
}
@@ -243,7 +246,8 @@ int elemental_data_received(struct s_elemental *ele, bool flag) {
}
db = &elemental->db[i];
- if( !sd->ed ) { // Initialize it after first summon.
+ if( !sd->ed ) {
+ // Initialize it after first summon.
sd->ed = ed = (struct elemental_data*)aCalloc(1,sizeof(struct elemental_data));
ed->bl.type = BL_ELEM;
ed->bl.id = npc->get_new_npc_id();
@@ -319,8 +323,8 @@ int elemental_clean_single_effect(struct elemental_data *ed, uint16 skill_id) {
case SC_UPHEAVAL_OPTION:
case SC_CIRCLE_OF_FIRE_OPTION:
case SC_TIDAL_WEAPON_OPTION:
- if( bl ) status_change_end(bl,type,INVALID_TIMER); // Master
- status_change_end(&ed->bl,type-1,INVALID_TIMER); // Elemental Spirit
+ if( bl ) status_change_end(bl,type,INVALID_TIMER); // Master
+ status_change_end(&ed->bl,type-1,INVALID_TIMER); // Elemental Spirit
break;
case SC_ZEPHYR:
if( bl ) status_change_end(bl,type,INVALID_TIMER);
@@ -406,7 +410,7 @@ int elemental_action(struct elemental_data *ed, struct block_list *bl, int64 tic
return 0;
if( ed->target_id )
- elemental->unlocktarget(ed); // Remove previous target.
+ elemental->unlocktarget(ed); // Remove previous target.
ARR_FIND(0, MAX_ELESKILLTREE, i, ed->db->skill[i].id && (ed->db->skill[i].mode&EL_SKILLMODE_AGGRESSIVE));
if( i == MAX_ELESKILLTREE )
@@ -423,7 +427,7 @@ int elemental_action(struct elemental_data *ed, struct block_list *bl, int64 tic
else if( DIFF_TICK(tick, ed->ud.canact_tick) < 0 )
return 0;
- ed->target_id = ed->ud.skilltarget = bl->id; // Set new target
+ ed->target_id = ed->ud.skilltarget = bl->id; // Set new target
ed->last_thinktime = tick;
// Not in skill range.
@@ -501,7 +505,7 @@ int elemental_change_mode_ack(struct elemental_data *ed, int mode) {
else if( DIFF_TICK(timer->gettick(), ed->ud.canact_tick) < 0 )
return 0;
- ed->target_id = bl->id; // Set new target
+ ed->target_id = bl->id; // Set new target
ed->last_thinktime = timer->gettick();
if( skill->get_inf(skill_id) & INF_GROUND_SKILL )
@@ -509,7 +513,7 @@ int elemental_change_mode_ack(struct elemental_data *ed, int mode) {
else
unit->skilluse_id(&ed->bl,bl->id,skill_id,skill_lv);
- ed->target_id = 0; // Reset target after casting the skill to avoid continuous attack.
+ ed->target_id = 0; // Reset target after casting the skill to avoid continuous attack.
return 1;
}
@@ -529,9 +533,9 @@ int elemental_change_mode(struct elemental_data *ed, int mode) {
ed->battle_status.mode = ed->elemental.mode = mode;
// Normalize elemental mode to elemental skill mode.
- if( mode == EL_MODE_AGGRESSIVE ) mode = EL_SKILLMODE_AGGRESSIVE; // Aggressive spirit mode -> Aggressive spirit skill.
- else if( mode == EL_MODE_ASSIST ) mode = EL_SKILLMODE_ASSIST; // Assist spirit mode -> Assist spirit skill.
- else mode = EL_SKILLMODE_PASIVE; // Passive spirit mode -> Passive spirit skill.
+ if( mode == EL_MODE_AGGRESSIVE ) mode = EL_SKILLMODE_AGGRESSIVE; // Aggressive spirit mode -> Aggressive spirit skill.
+ else if( mode == EL_MODE_ASSIST ) mode = EL_SKILLMODE_ASSIST; // Assist spirit mode -> Assist spirit skill.
+ else mode = EL_SKILLMODE_PASIVE; // Passive spirit mode -> Passive spirit skill.
// Use a skill immediately after every change mode.
if( mode != EL_SKILLMODE_AGGRESSIVE )
@@ -577,7 +581,7 @@ struct skill_condition elemental_skill_get_requirements(uint16 skill_id, uint16
memset(&req,0,sizeof(req));
if( idx == 0 ) // invalid skill id
- return req;
+ return req;
if( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL )
return req;
@@ -657,12 +661,16 @@ int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *s
int sp = 5;
switch(ed->vd->class_){
- case 2115: case 2118:
- case 2121: case 2124:
+ case 2115:
+ case 2118:
+ case 2121:
+ case 2124:
sp = 8;
break;
- case 2116: case 2119:
- case 2122: case 2125:
+ case 2116:
+ case 2119:
+ case 2122:
+ case 2125:
sp = 11;
break;
}
@@ -698,13 +706,15 @@ int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *s
mode = status_get_mode(&ed->bl);
master_dist = distance_bl(&sd->bl, &ed->bl);
- if( master_dist > AREA_SIZE ) { // Master out of vision range.
+ if( master_dist > AREA_SIZE ) {
+ // Master out of vision range.
elemental->unlocktarget(ed);
unit->warp(&ed->bl,sd->bl.m,sd->bl.x,sd->bl.y,CLR_TELEPORT);
clif->elemental_updatestatus(sd,SP_HP);
clif->elemental_updatestatus(sd,SP_SP);
return 0;
- } else if( master_dist > MAX_ELEDISTANCE ) { // Master too far, chase.
+ } else if( master_dist > MAX_ELEDISTANCE ) {
+ // Master too far, chase.
short x = sd->bl.x, y = sd->bl.y;
if( ed->target_id )
elemental->unlocktarget(ed);
diff --git a/src/map/elemental.h b/src/map/elemental.h
index 0c8fff8b3..ca13c30b8 100644
--- a/src/map/elemental.h
+++ b/src/map/elemental.h
@@ -79,22 +79,22 @@ struct elemental_interface {
/* funcs */
bool (*class) (int class_);
struct view_data * (*get_viewdata) (int class_);
-
+
int (*create) (struct map_session_data *sd, int class_, unsigned int lifetime);
int (*data_received) (struct s_elemental *ele, bool flag);
int (*save) (struct elemental_data *ed);
-
+
int (*change_mode_ack) (struct elemental_data *ed, int mode);
int (*change_mode) (struct elemental_data *ed, int mode);
-
+
void (*heal) (struct elemental_data *ed, int hp, int sp);
int (*dead) (struct elemental_data *ed);
-
+
int (*delete) (struct elemental_data *ed, int reply);
void (*summon_stop) (struct elemental_data *ed);
-
+
int (*get_lifetime) (struct elemental_data *ed);
-
+
int (*unlocktarget) (struct elemental_data *ed);
int (*skillnotok) (uint16 skill_id, struct elemental_data *ed);
int (*set_target) (struct map_session_data *sd, struct block_list *bl);
@@ -102,11 +102,11 @@ struct elemental_interface {
int (*clean_effect) (struct elemental_data *ed);
int (*action) (struct elemental_data *ed, struct block_list *bl, int64 tick);
struct skill_condition (*skill_get_requirements) (uint16 skill_id, uint16 skill_lv);
-
+
int (*read_skilldb) (void);
void (*reload_db) (void);
void (*reload_skilldb) (void);
-
+
int (*search_index) (int class_);
void (*summon_init) (struct elemental_data *ed);
int (*summon_end_timer) (int tid, int64 tick, int id, intptr_t data);
diff --git a/src/map/guild.c b/src/map/guild.c
index ac24edeab..d46da60a3 100644
--- a/src/map/guild.c
+++ b/src/map/guild.c
@@ -63,10 +63,10 @@ int guild_skill_get_max (int id) {
// Retrieve skill_lv learned by guild
int guild_checkskill(struct guild *g, int id) {
- int idx = id - GD_SKILLBASE;
- if (idx < 0 || idx >= MAX_GUILDSKILL)
- return 0;
- return g->skill[idx].lv;
+ int idx = id - GD_SKILLBASE;
+ if (idx < 0 || idx >= MAX_GUILDSKILL)
+ return 0;
+ return g->skill[idx].lv;
}
/*==========================================
@@ -236,17 +236,17 @@ void guild_makemember(struct guild_member *m,struct map_session_data *sd)
nullpo_retv(sd);
memset(m,0,sizeof(struct guild_member));
- m->account_id =sd->status.account_id;
- m->char_id =sd->status.char_id;
- m->hair =sd->status.hair;
- m->hair_color =sd->status.hair_color;
- m->gender =sd->status.sex;
- m->class_ =sd->status.class_;
- m->lv =sd->status.base_level;
-// m->exp =0;
-// m->exp_payper =0;
- m->online =1;
- m->position =MAX_GUILDPOSITION-1;
+ m->account_id = sd->status.account_id;
+ m->char_id = sd->status.char_id;
+ m->hair = sd->status.hair;
+ m->hair_color = sd->status.hair_color;
+ m->gender = sd->status.sex;
+ m->class_ = sd->status.class_;
+ m->lv = sd->status.base_level;
+ //m->exp = 0;
+ //m->exp_payper = 0;
+ m->online = 1;
+ m->position = MAX_GUILDPOSITION-1;
memcpy(m->name,sd->status.name,NAME_LENGTH);
return;
}
@@ -366,14 +366,14 @@ int guild_created(int account_id,int guild_id) {
if(sd==NULL)
return 0;
if(!guild_id) {
- clif->guild_created(sd, 2); // Creation failure (presence of the same name Guild)
+ clif->guild_created(sd, 2); // Creation failure (presence of the same name Guild)
return 0;
}
//struct guild *g;
sd->status.guild_id=guild_id;
clif->guild_created(sd,0);
if(battle_config.guild_emperium_check)
- pc->delitem(sd,pc->search_inventory(sd,ITEMID_EMPERIUM),1,0,0,LOG_TYPE_CONSUME); //emperium consumption
+ pc->delitem(sd,pc->search_inventory(sd,ITEMID_EMPERIUM),1,0,0,LOG_TYPE_CONSUME); //emperium consumption
return 0;
}
@@ -459,6 +459,8 @@ int guild_recv_info(struct guild *sg) {
struct map_session_data *sd;
bool guild_new = false;
struct hChSysCh *aChSysSave = NULL;
+ short *instance_save = NULL;
+ unsigned short instances_save = 0;
nullpo_ret(sg);
@@ -468,15 +470,15 @@ int guild_recv_info(struct guild *sg) {
g->instance = NULL;
g->instances = 0;
idb_put(guild->db,sg->guild_id,g);
- if( hChSys.ally ) {
+ if (clif->hChSys->ally) {
struct hChSysCh *channel;
-
+
CREATE(channel, struct hChSysCh , 1);
- safestrncpy(channel->name, hChSys.ally_name, HCHSYS_NAME_LENGTH);
+ safestrncpy(channel->name, clif->hChSys->ally_name, HCHSYS_NAME_LENGTH);
channel->type = hChSys_ALLY;
- clif->chsys_create(channel,NULL,NULL,hChSys.ally_color);
- if( hChSys.ally_autojoin ) {
+ clif->chsys_create(channel, NULL, NULL, clif->hChSys->ally_color);
+ if (clif->hChSys->ally_autojoin) {
struct s_mapiterator* iter = mapit_getallusers();
struct guild *tg[MAX_GUILDALLIANCE];
@@ -538,10 +540,16 @@ int guild_recv_info(struct guild *sg) {
before=*g;
if( g->channel )
aChSysSave = g->channel;
+ if( g->instance )
+ instance_save = g->instance;
+ if( g->instances )
+ instances_save = g->instances;
}
memcpy(g,sg,sizeof(struct guild));
g->channel = aChSysSave;
+ g->instance = instance_save;
+ g->instances = instances_save;
if(g->max_member > MAX_GUILD) {
ShowError("guild_recv_info: Received guild with %d members, but MAX_GUILD is only %d. Extra guild-members have been lost!\n", g->max_member, MAX_GUILD);
@@ -559,32 +567,32 @@ int guild_recv_info(struct guild *sg) {
bm++;
}
- for (i = 0; i < g->max_member; i++) { //Transmission of information at all members
+ for (i = 0; i < g->max_member; i++) { //Transmission of information at all members
sd = g->member[i].sd;
if( sd==NULL )
continue;
sd->guild = g;
- if (before.guild_lv != g->guild_lv || bm != m ||
- before.max_member != g->max_member) {
- clif->guild_basicinfo(sd); //Submit basic information
- clif->guild_emblem(sd, g); //Submit emblem
- }
+ if (before.guild_lv != g->guild_lv || bm != m
+ || before.max_member != g->max_member) {
+ clif->guild_basicinfo(sd); //Submit basic information
+ clif->guild_emblem(sd, g); //Submit emblem
+ }
- if (bm != m) { //Send members information
- clif->guild_memberlist(g->member[i].sd);
- }
+ if (bm != m) { //Send members information
+ clif->guild_memberlist(g->member[i].sd);
+ }
- if (before.skill_point != g->skill_point)
- clif->guild_skillinfo(sd); //Submit information skills
+ if (before.skill_point != g->skill_point)
+ clif->guild_skillinfo(sd); //Submit information skills
if (guild_new) { // Send information and affiliation if unsent
- clif->guild_belonginfo(sd, g);
- //clif->guild_notice(sd, g); Is already sent in clif_parse_LoadEndAck
- sd->guild_emblem_id = g->emblem_id;
- }
- }
+ clif->guild_belonginfo(sd, g);
+ //clif->guild_notice(sd, g); Is already sent in clif_parse_LoadEndAck
+ sd->guild_emblem_id = g->emblem_id;
+ }
+ }
- //Occurrence of an event
+ //Occurrence of an event
if (guild->infoevent_db->remove(guild->infoevent_db, DB->i2key(sg->guild_id), &data)) {
struct eventlist *ev = DB->data2ptr(&data), *ev2;
while(ev) {
@@ -602,8 +610,8 @@ int guild_recv_info(struct guild *sg) {
* Player sd send a guild invatation to player tsd to join his guild
*--------------------------------------------*/
int guild_invite(struct map_session_data *sd, struct map_session_data *tsd) {
- struct guild *g;
- int i;
+ struct guild *g;
+ int i;
nullpo_ret(sd);
@@ -616,7 +624,7 @@ int guild_invite(struct map_session_data *sd, struct map_session_data *tsd) {
return 0; //Invite permission.
if(!battle_config.invite_request_check) {
- if (tsd->party_invite > 0 || tsd->trade_partner || tsd->adopt_invite) { //checking if there no other invitation pending
+ if (tsd->party_invite > 0 || tsd->trade_partner || tsd->adopt_invite) { //checking if there no other invitation pending
clif->guild_inviteack(sd,0);
return 0;
}
@@ -627,8 +635,8 @@ int guild_invite(struct map_session_data *sd, struct map_session_data *tsd) {
return 0;
}
- if( tsd->status.guild_id > 0
- || tsd->guild_invite > 0
+ if( tsd->status.guild_id > 0
+ || tsd->guild_invite > 0
|| ( (map->agit_flag || map->agit2_flag)
&& map->list[tsd->bl.m].flag.gvg_castle
&& !battle_config.guild_castle_invite
@@ -722,7 +730,8 @@ void guild_member_joined(struct map_session_data *sd)
guild->request_info(sd->status.guild_id);
return;
}
- if (strcmp(sd->status.name,g->master) == 0) { // set the Guild Master flag
+ if (strcmp(sd->status.name,g->master) == 0) {
+ // set the Guild Master flag
sd->state.gmaster_flag = 1;
// prevent Guild Skills from being used directly after relog
if( battle_config.guild_skill_relog_delay )
@@ -736,7 +745,7 @@ void guild_member_joined(struct map_session_data *sd)
g->member[i].sd = sd;
sd->guild = g;
- if( hChSys.ally && hChSys.ally_autojoin ) {
+ if (clif->hChSys->ally && clif->hChSys->ally_autojoin) {
struct guild* sg = NULL;
struct hChSysCh *channel = g->channel;
@@ -815,8 +824,8 @@ int guild_leave(struct map_session_data* sd, int guild_id, int account_id, int c
return 0;
if( sd->status.account_id != account_id
- || sd->status.char_id != char_id
- || sd->status.guild_id != guild_id
+ || sd->status.char_id != char_id
+ || sd->status.guild_id != guild_id
// Can't leave inside castles
|| ((map->agit_flag || map->agit2_flag)
&& map->list[sd->bl.m].flag.gvg_castle
@@ -847,11 +856,11 @@ int guild_expulsion(struct map_session_data* sd, int guild_id, int account_id, i
return 0;
if( (ps=guild->getposition(g,sd))<0 || !(g->position[ps].mode&0x0010) )
- return 0; //Expulsion permission
+ return 0; //Expulsion permission
//Can't leave inside guild castles.
- if ((tsd = map->id2sd(account_id))
- && tsd->status.char_id == char_id
+ if ((tsd = map->id2sd(account_id))
+ && tsd->status.char_id == char_id
&& ((map->agit_flag || map->agit2_flag)
&& map->list[sd->bl.m].flag.gvg_castle
&& !battle_config.guild_castle_expulsion)
@@ -904,7 +913,7 @@ int guild_member_withdraw(int guild_id, int account_id, int char_id, int flag, c
if (sd->state.storage_flag == 2) //Close the guild storage.
gstorage->close(sd);
guild->send_dot_remove(sd);
- if( hChSys.ally ) {
+ if (clif->hChSys->ally) {
clif->chsys_quitg(sd);
}
sd->status.guild_id = 0;
@@ -928,7 +937,7 @@ void guild_retrieveitembound(int char_id,int aid,int guild_id) {
if(sd){ //Character is online
pc->bound_clear(sd,IBT_GUILD);
} else { //Character is offline, ask char server to do the job
- struct guild_storage *gstor = gstorage->id2storage2(guild_id);
+ struct guild_storage *gstor = idb_get(gstorage->db,guild_id);
if(gstor && gstor->storage_status == 1) { //Someone is in guild storage, close them
struct s_mapiterator* iter = mapit_getallusers();
for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter) ) {
@@ -968,8 +977,8 @@ int guild_send_memberinfoshort(struct map_session_data *sd,int online)
return 0;
}
- if(sd->state.connect_new)
- { //Note that this works because it is invoked in parse_LoadEndAck before connect_new is cleared.
+ if (sd->state.connect_new) {
+ //Note that this works because it is invoked in parse_LoadEndAck before connect_new is cleared.
clif->guild_belonginfo(sd,g);
sd->guild_emblem_id = g->emblem_id;
}
@@ -1384,8 +1393,8 @@ void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id, uint1
/*====================================================
* Count number of relations the guild has.
* Flag:
- * 0 = allied
- * 1 = enemy
+ * 0 = allied
+ * 1 = enemy
*---------------------------------------------------*/
int guild_get_alliance_count(struct guild *g,int flag)
{
@@ -1393,9 +1402,8 @@ int guild_get_alliance_count(struct guild *g,int flag)
nullpo_ret(g);
- for(i=c=0;i<MAX_GUILDALLIANCE;i++){
- if( g->alliance[i].guild_id>0 &&
- g->alliance[i].opposition==flag )
+ for(i=c=0;i<MAX_GUILDALLIANCE;i++) {
+ if(g->alliance[i].guild_id>0 && g->alliance[i].opposition==flag)
c++;
}
return c;
@@ -1413,8 +1421,8 @@ void guild_block_skill(struct map_session_data *sd, int time)
/*====================================================
* Check relation between guild_id1 and guild_id2.
* Flag:
- * 0 = allied
- * 1 = enemy
+ * 0 = allied
+ * 1 = enemy
* Returns true if yes.
*---------------------------------------------------*/
int guild_check_alliance(int guild_id1, int guild_id2, int flag)
@@ -1459,7 +1467,7 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd)
if(sd->status.guild_id == tsd->status.guild_id)
return 0;
- if( guild->get_alliance_count(g[0],0) >= battle_config.max_guild_alliance ) {
+ if( guild->get_alliance_count(g[0],0) >= battle_config.max_guild_alliance ) {
clif->guild_allianceack(sd,4);
return 0;
}
@@ -1473,9 +1481,8 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd)
return 0;
}
- for (i = 0; i < MAX_GUILDALLIANCE; i++) { // check if already allied
- if( g[0]->alliance[i].guild_id==tsd->status.guild_id &&
- g[0]->alliance[i].opposition==0){
+ for (i = 0; i < MAX_GUILDALLIANCE; i++) { // check if already allied
+ if(g[0]->alliance[i].guild_id==tsd->status.guild_id && g[0]->alliance[i].opposition==0) {
clif->guild_allianceack(sd,0);
return 0;
}
@@ -1501,13 +1508,13 @@ int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag)
return 0;
}
- if (sd->guild_alliance != tsd->status.guild_id) // proposed guild_id alliance doesn't match tsd guildid
+ if (sd->guild_alliance != tsd->status.guild_id) // proposed guild_id alliance doesn't match tsd guildid
return 0;
- if (flag == 1) { // consent
+ if (flag == 1) { // consent
int i;
- struct guild *g, *tg; // Reconfirm the number of alliance
+ struct guild *g, *tg; // Reconfirm the number of alliance
g=sd->guild;
tg=tsd->guild;
@@ -1535,11 +1542,11 @@ int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag)
tsd->status.account_id,sd->status.account_id,9 );
}
- // inform other servers
+ // inform other servers
intif->guild_alliance( sd->status.guild_id,tsd->status.guild_id,
sd->status.account_id,tsd->status.account_id,0 );
return 0;
- } else { // deny
+ } else { // deny
sd->guild_alliance=0;
sd->guild_alliance_account=0;
if(tsd!=NULL)
@@ -1582,7 +1589,7 @@ int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd)
if(sd->status.guild_id == tsd->status.guild_id)
return 0;
- if( guild->get_alliance_count(g,1) >= battle_config.max_guild_alliance ) {
+ if( guild->get_alliance_count(g,1) >= battle_config.max_guild_alliance ) {
clif->guild_oppositionack(sd,1);
return 0;
}
@@ -1639,9 +1646,9 @@ int guild_allianceack(int guild_id1,int guild_id2,int account_id1,int account_id
return 0;
}
- if( g[0] && g[1] && hChSys.ally && ( flag & 1 ) == 0 ) {
+ if (g[0] && g[1] && clif->hChSys->ally && ( flag & 1 ) == 0) {
if( !(flag & 0x08) ) {
- if( hChSys.ally_autojoin )
+ if (clif->hChSys->ally_autojoin)
clif->chsys_gjoin(g[0],g[1]);
} else {
clif->chsys_gleave(g[0],g[1]);
@@ -1703,7 +1710,8 @@ int guild_broken_sub(DBKey key, DBData *data, va_list ap)
nullpo_ret(g);
- for(i=0;i<MAX_GUILDALLIANCE;i++){ // Destroy all relationships
+ for(i=0;i<MAX_GUILDALLIANCE;i++) {
+ // Destroy all relationships
if(g->alliance[i].guild_id==guild_id){
for(j=0;j<g->max_member;j++)
if( (sd=g->member[j].sd)!=NULL )
@@ -1749,7 +1757,8 @@ int guild_broken(int guild_id,int flag)
if(flag!=0 || g==NULL)
return 0;
- for(i=0;i<g->max_member;i++){ // Destroy all relationships
+ for(i=0;i<g->max_member;i++){
+ // Destroy all relationships
if((sd=g->member[i].sd)!=NULL){
if(sd->state.storage_flag == 2)
gstorage->pc_quit(sd,1);
@@ -1768,7 +1777,7 @@ int guild_broken(int guild_id,int flag)
guild->db->foreach(guild->db,guild->broken_sub,guild_id);
guild->castle_db->foreach(guild->castle_db,guild->castle_broken_sub,guild_id);
gstorage->delete(guild_id);
- if( hChSys.ally ) {
+ if (clif->hChSys->ally) {
if( g->channel != NULL ) {
clif->chsys_delete(g->channel);
}
@@ -1878,11 +1887,13 @@ int guild_break(struct map_session_data *sd,char *name) {
return 0;
if(!sd->state.gmaster_flag)
return 0;
- for(i=0;i<g->max_member;i++){
- if( g->member[i].account_id>0 && (
- g->member[i].account_id!=sd->status.account_id ||
- g->member[i].char_id!=sd->status.char_id ))
+ for (i = 0; i < g->max_member; i++) {
+ if (g->member[i].account_id > 0
+ && (g->member[i].account_id!=sd->status.account_id
+ || g->member[i].char_id!=sd->status.char_id
+ )) {
break;
+ }
}
if(i<g->max_member){
clif->guild_broken(sd,2);
@@ -2086,7 +2097,8 @@ int guild_castledataloadack(int len, struct guild_castle *gc)
* Start normal woe and triggers all npc OnAgitStart
*---------------------------------------------------*/
void guild_agit_start(void)
-{ // Run All NPC_Event[OnAgitStart]
+{
+ // Run All NPC_Event[OnAgitStart]
int c = npc->event_doall("OnAgitStart");
ShowStatus("NPC_Event:[OnAgitStart] Run (%d) Events by @AgitStart.\n",c);
}
@@ -2095,7 +2107,8 @@ void guild_agit_start(void)
* End normal woe and triggers all npc OnAgitEnd
*---------------------------------------------------*/
void guild_agit_end(void)
-{ // Run All NPC_Event[OnAgitEnd]
+{
+ // Run All NPC_Event[OnAgitEnd]
int c = npc->event_doall("OnAgitEnd");
ShowStatus("NPC_Event:[OnAgitEnd] Run (%d) Events by @AgitEnd.\n",c);
}
@@ -2104,7 +2117,8 @@ void guild_agit_end(void)
* Start woe2 and triggers all npc OnAgitStart2
*---------------------------------------------------*/
void guild_agit2_start(void)
-{ // Run All NPC_Event[OnAgitStart2]
+{
+ // Run All NPC_Event[OnAgitStart2]
int c = npc->event_doall("OnAgitStart2");
ShowStatus("NPC_Event:[OnAgitStart2] Run (%d) Events by @AgitStart2.\n",c);
}
@@ -2113,7 +2127,8 @@ void guild_agit2_start(void)
* End woe2 and triggers all npc OnAgitEnd2
*---------------------------------------------------*/
void guild_agit2_end(void)
-{ // Run All NPC_Event[OnAgitEnd2]
+{
+ // Run All NPC_Event[OnAgitEnd2]
int c = npc->event_doall("OnAgitEnd2");
ShowStatus("NPC_Event:[OnAgitEnd2] Run (%d) Events by @AgitEnd2.\n",c);
}
diff --git a/src/map/guild.h b/src/map/guild.h
index 126325eef..eb6de7070 100644
--- a/src/map/guild.h
+++ b/src/map/guild.h
@@ -13,8 +13,8 @@
/**
* Defines
**/
-#define GUILD_SEND_XY_INVERVAL 5000 // Interval of sending coordinates and HP
-#define GUILD_PAYEXP_INVERVAL 10000 //Interval (maximum survival time of the cache, in milliseconds)
+#define GUILD_SEND_XY_INVERVAL 5000 // Interval of sending coordinates and HP
+#define GUILD_PAYEXP_INVERVAL 10000 //Interval (maximum survival time of the cache, in milliseconds)
#define MAX_GUILD_SKILL_REQUIRE 5
/**
diff --git a/src/map/homunculus.c b/src/map/homunculus.c
index 0f76fcf5f..1d226749b 100644
--- a/src/map/homunculus.c
+++ b/src/map/homunculus.c
@@ -78,39 +78,39 @@ enum homun_type homunculus_class2type(int class_) {
}
void homunculus_addspiritball(struct homun_data *hd, int max) {
- nullpo_retv(hd);
+ nullpo_retv(hd);
- if (max > MAX_SKILL_LEVEL)
- max = MAX_SKILL_LEVEL;
- if (hd->homunculus.spiritball < 0)
- hd->homunculus.spiritball = 0;
+ if (max > MAX_SKILL_LEVEL)
+ max = MAX_SKILL_LEVEL;
+ if (hd->homunculus.spiritball < 0)
+ hd->homunculus.spiritball = 0;
- if (hd->homunculus.spiritball && hd->homunculus.spiritball >= max) {
- hd->homunculus.spiritball = max;
- }
- else
- hd->homunculus.spiritball++;
+ if (hd->homunculus.spiritball && hd->homunculus.spiritball >= max) {
+ hd->homunculus.spiritball = max;
+ }
+ else
+ hd->homunculus.spiritball++;
- clif->spiritball(&hd->bl);
+ clif->spiritball(&hd->bl);
}
void homunculus_delspiritball(struct homun_data *hd, int count, int type) {
- nullpo_retv(hd);
-
- if (hd->homunculus.spiritball <= 0) {
- hd->homunculus.spiritball = 0;
- return;
- }
- if (count <= 0)
- return;
- if (count > MAX_SKILL_LEVEL)
- count = MAX_SKILL_LEVEL;
- if (count > hd->homunculus.spiritball)
- count = hd->homunculus.spiritball;
-
- hd->homunculus.spiritball -= count;
- if (!type)
- clif->spiritball(&hd->bl);
+ nullpo_retv(hd);
+
+ if (hd->homunculus.spiritball <= 0) {
+ hd->homunculus.spiritball = 0;
+ return;
+ }
+ if (count <= 0)
+ return;
+ if (count > MAX_SKILL_LEVEL)
+ count = MAX_SKILL_LEVEL;
+ if (count > hd->homunculus.spiritball)
+ count = hd->homunculus.spiritball;
+
+ hd->homunculus.spiritball -= count;
+ if (!type)
+ clif->spiritball(&hd->bl);
}
void homunculus_damaged(struct homun_data *hd) {
@@ -313,7 +313,7 @@ bool homunculus_levelup(struct homun_data *hd) {
hom = &hd->homunculus;
hom->level++ ;
if (!(hom->level % 3))
- hom->skillpts++; //1 skillpoint each 3 base level
+ hom->skillpts++; //1 skillpoint each 3 base level
hom->exp -= hd->exp_next;
hd->exp_next = homun->exptable[hom->level - 1];
@@ -347,6 +347,8 @@ bool homunculus_levelup(struct homun_data *hd) {
hom->int_+= growth_int;
hom->luk += growth_luk;
+ APPLY_HOMUN_LEVEL_STATWEIGHT();
+
if ( battle_config.homunculus_show_growth ) {
char output[256] ;
sprintf(output,
@@ -500,7 +502,7 @@ int homunculus_gainexp(struct homun_data *hd,unsigned int exp) {
return 0;
}
- //levelup
+ //levelup
while( hd->homunculus.exp > hd->exp_next && homun->levelup(hd) );
if( hd->exp_next == 0 )
@@ -601,7 +603,7 @@ bool homunculus_feed(struct map_session_data *sd, struct homun_data *hd) {
emotion = E_HO;
}
- hd->homunculus.hunger += 10; //dunno increase value for each food
+ hd->homunculus.hunger += 10; //dunno increase value for each food
if(hd->homunculus.hunger > 100)
hd->homunculus.hunger = 100;
@@ -912,7 +914,7 @@ bool homunculus_ressurect(struct map_session_data* sd, unsigned char per, short
hd = sd->hd;
- if (hd->homunculus.vaporize != HOM_ST_ACTIVE)
+ if (hd->homunculus.vaporize != HOM_ST_ACTIVE)
return false; // vaporized homunculi need to be 'called'
if (!status->isdead(&hd->bl))
@@ -1126,7 +1128,7 @@ bool homunculus_read_db_sub(char* str[], int columns, int current) {
void homunculus_read_db(void) {
int i;
- const char *filename[]={"homunculus_db.txt","homunculus_db2.txt"};
+ const char *filename[]={DBPATH"homunculus_db.txt","homunculus_db2.txt"};
memset(homun->db,0,sizeof(homun->db));
for(i = 0; i<ARRAYLENGTH(filename); i++) {
@@ -1151,7 +1153,7 @@ bool homunculus_read_skill_db_sub(char* split[], int columns, int current) {
int minJobLevelPresent = 0;
if( columns == 15 )
- minJobLevelPresent = 1; // MinJobLvl has been added - FIXME: is this extra field even needed anymore?
+ minJobLevelPresent = 1; // MinJobLvl has been added - FIXME: is this extra field even needed anymore?
// check for bounds [celest]
classid = atoi(split[0]) - HM_CLASS_BASE;
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index 25ccabf48..5b1fd2031 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -14,6 +14,17 @@
#define homdb_checkid(id) ((id) >= HM_CLASS_BASE && (id) <= HM_CLASS_MAX)
#define homun_alive(x) ((x) && (x)->homunculus.vaporize == HOM_ST_ACTIVE && (x)->battle_status.hp > 0)
+#ifdef RENEWAL
+#define HOMUN_LEVEL_STATWEIGHT_VALUE 0
+#define APPLY_HOMUN_LEVEL_STATWEIGHT()( \
+ hom->str_value = hom->agi_value = \
+ hom->vit_value = hom->int_value = \
+ hom->dex_value = hom->luk_value = hom->level / 10 - HOMUN_LEVEL_STATWEIGHT_VALUE \
+ )
+#else
+#define APPLY_HOMUN_LEVEL_STATWEIGHT()
+#endif
+
struct h_stats {
unsigned int HP, SP;
unsigned short str, agi, vit, int_, dex, luk;
@@ -65,7 +76,7 @@ struct homun_data {
int hungry_timer; //[orn]
unsigned int exp_next;
char blockskill[MAX_SKILL]; // [orn]
-
+
int64 masterteleport_timer;
};
diff --git a/src/map/instance.c b/src/map/instance.c
index 5789d7dd6..4140973b1 100644
--- a/src/map/instance.c
+++ b/src/map/instance.c
@@ -273,7 +273,7 @@ int instance_add_map(const char *name, int instance_id, bool usebasename, const
* type : result (0 = map id | 1 = instance id)
*--------------------------------------*/
int instance_map2imap(int16 m, int instance_id) {
- int i;
+ int i;
if( !instance->valid(instance_id) ) {
return -1;
@@ -282,12 +282,12 @@ int instance_map2imap(int16 m, int instance_id) {
for( i = 0; i < instance->list[instance_id].num_map; i++ ) {
if( instance->list[instance_id].map[i] && map->list[instance->list[instance_id].map[i]].instance_src_map == m )
return instance->list[instance_id].map[i];
- }
- return -1;
+ }
+ return -1;
}
int instance_mapname2imap(const char *map_name, int instance_id) {
- int i;
+ int i;
if( !instance->valid(instance_id) ) {
return -1;
@@ -296,8 +296,8 @@ int instance_mapname2imap(const char *map_name, int instance_id) {
for( i = 0; i < instance->list[instance_id].num_map; i++ ) {
if( instance->list[instance_id].map[i] && !strcmpi(map->list[map->list[instance->list[instance_id].map[i]].instance_src_map].name,map_name) )
return instance->list[instance_id].map[i];
- }
- return -1;
+ }
+ return -1;
}
diff --git a/src/map/instance.h b/src/map/instance.h
index 2ee77d3e3..4848c9c59 100644
--- a/src/map/instance.h
+++ b/src/map/instance.h
@@ -41,17 +41,17 @@ struct instance_data {
unsigned short users;
struct reg_db regs; ///< Instance variables for scripts
-
+
int progress_timer;
unsigned int progress_timeout;
int idle_timer;
unsigned int idle_timeout, idle_timeoutval;
-
+
unsigned int original_progress_timeout;
-
+
struct point respawn; ///< reload spawn
-
+
/** HPM Custom Struct */
struct HPluginData **hdata;
unsigned int hdatac;
diff --git a/src/map/intif.c b/src/map/intif.c
index be82a7583..73fb648ae 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -210,8 +210,8 @@ int intif_wis_message(struct map_session_data *sd, char *nick, char *mes, size_t
if (intif->CheckForCharServer())
return 0;
- if (chrif->other_mapserver_count < 1)
- { //Character not found.
+ if (chrif->other_mapserver_count < 1) {
+ //Character not found.
clif->wis_end(sd->fd, 1);
return 0;
}
@@ -924,8 +924,8 @@ void intif_parse_WisMessage(int fd) {
strcmp(sd->ignore[i].name, wisp_source) != 0
; i++);
- if (i < MAX_IGNORE_LIST && sd->ignore[i].name[0] != '\0')
- { //Ignored
+ if (i < MAX_IGNORE_LIST && sd->ignore[i].name[0] != '\0') {
+ //Ignored
intif_wis_replay(id, 2);
return;
}
@@ -1098,7 +1098,7 @@ void intif_parse_LoadGuildStorage(int fd)
return;
}
}
- gstor=gstorage->id2storage(guild_id);
+ gstor=gstorage->ensure(guild_id);
if(!gstor) {
ShowWarning("intif_parse_LoadGuildStorage: error guild_id %d not exist\n",guild_id);
return;
@@ -1113,7 +1113,7 @@ void intif_parse_LoadGuildStorage(int fd)
}
if (RFIFOW(fd,2)-13 != sizeof(struct guild_storage)) {
ShowError("intif_parse_LoadGuildStorage: data size mismatch %d != %"PRIuS"\n", RFIFOW(fd,2)-13, sizeof(struct guild_storage));
- gstor->storage_status = 0;
+ gstor->storage_status = 0;
return;
}
@@ -1567,10 +1567,8 @@ void intif_parse_MailInboxReceived(int fd) {
sd = map->charid2sd(RFIFOL(fd,4));
- if (sd == NULL) {
- ShowError("intif_parse_MailInboxReceived: char not found %d\n",RFIFOL(fd,4));
+ if (sd == NULL) /** user is not online anymore and its ok (quest log also does this) **/
return;
- }
if (RFIFOW(fd,2) - 9 != sizeof(struct mail_data)) {
ShowError("intif_parse_MailInboxReceived: data size mismatch %d != %"PRIuS"\n", RFIFOW(fd,2) - 9, sizeof(struct mail_data));
@@ -2138,7 +2136,7 @@ void intif_request_accinfo( int u_fd, int aid, int group_lv, char* query ) {
WFIFOL(inter_fd,2) = u_fd;
WFIFOL(inter_fd,6) = aid;
WFIFOL(inter_fd,10) = group_lv;
- safestrncpy((char *)WFIFOP(inter_fd,14), query, NAME_LENGTH);
+ safestrncpy((char *)WFIFOP(inter_fd,14), query, NAME_LENGTH);
WFIFOSET(inter_fd,2 + 4 + 4 + 4 + NAME_LENGTH);
@@ -2167,7 +2165,7 @@ void intif_parse_MessageToFD(int fd) {
*------------------------------------------*/
void intif_itembound_req(int char_id,int aid,int guild_id) {
#ifdef GP_BOUND_ITEMS
- struct guild_storage *gstor = gstorage->id2storage2(guild_id);
+ struct guild_storage *gstor = idb_get(gstorage->db,guild_id);
WFIFOHEAD(inter_fd,12);
WFIFOW(inter_fd,0) = 0x3056;
WFIFOL(inter_fd,2) = char_id;
@@ -2185,7 +2183,7 @@ void intif_parse_Itembound_ack(int fd) {
struct guild_storage *gstor;
int guild_id = RFIFOW(fd,6);
- gstor = gstorage->id2storage2(guild_id);
+ gstor = idb_get(gstorage->db,guild_id);
if(gstor)
gstor->lock = 0; //Unlock now that operation is completed
#endif
@@ -2198,12 +2196,13 @@ int intif_parse(int fd)
{
int packet_len, cmd;
cmd = RFIFOW(fd,0);
- // Verify ID of the packet
- if(cmd<0x3800 || cmd>=0x3800+(sizeof(intif->packet_len_table)/sizeof(intif->packet_len_table[0])) ||
- intif->packet_len_table[cmd-0x3800]==0){
- return 0;
+ // Verify ID of the packet
+ if (cmd < 0x3800 || cmd >= 0x3800+(sizeof(intif->packet_len_table)/sizeof(intif->packet_len_table[0]))
+ || intif->packet_len_table[cmd-0x3800] == 0
+ ) {
+ return 0;
}
- // Check the length of the packet
+ // Check the length of the packet
packet_len = intif->packet_len_table[cmd-0x3800];
if(packet_len==-1){
if(RFIFOREST(fd)<4)
@@ -2213,7 +2212,7 @@ int intif_parse(int fd)
if((int)RFIFOREST(fd)<packet_len){
return 2;
}
- // Processing branch
+ // Processing branch
switch(cmd){
case 0x3800:
if (RFIFOL(fd,4) == 0xFF000000) //Normal announce.
@@ -2221,57 +2220,57 @@ int intif_parse(int fd)
else //Color announce.
clif->broadcast2(NULL, (char *) RFIFOP(fd,16), packet_len-16, RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), ALL_CLIENT);
break;
- case 0x3801: intif->pWisMessage(fd); break;
- case 0x3802: intif->pWisEnd(fd); break;
- case 0x3803: intif->pWisToGM(fd); break;
- case 0x3804: intif->pRegisters(fd); break;
- case 0x3806: intif->pChangeNameOk(fd); break;
- case 0x3807: intif->pMessageToFD(fd); break;
- case 0x3818: intif->pLoadGuildStorage(fd); break;
- case 0x3819: intif->pSaveGuildStorage(fd); break;
- case 0x3820: intif->pPartyCreated(fd); break;
- case 0x3821: intif->pPartyInfo(fd); break;
- case 0x3822: intif->pPartyMemberAdded(fd); break;
- case 0x3823: intif->pPartyOptionChanged(fd); break;
- case 0x3824: intif->pPartyMemberWithdraw(fd); break;
- case 0x3825: intif->pPartyMove(fd); break;
- case 0x3826: intif->pPartyBroken(fd); break;
- case 0x3827: intif->pPartyMessage(fd); break;
- case 0x3830: intif->pGuildCreated(fd); break;
- case 0x3831: intif->pGuildInfo(fd); break;
- case 0x3832: intif->pGuildMemberAdded(fd); break;
- case 0x3834: intif->pGuildMemberWithdraw(fd); break;
- case 0x3835: intif->pGuildMemberInfoShort(fd); break;
- case 0x3836: intif->pGuildBroken(fd); break;
- case 0x3837: intif->pGuildMessage(fd); break;
- case 0x3839: intif->pGuildBasicInfoChanged(fd); break;
- case 0x383a: intif->pGuildMemberInfoChanged(fd); break;
- case 0x383b: intif->pGuildPosition(fd); break;
- case 0x383c: intif->pGuildSkillUp(fd); break;
- case 0x383d: intif->pGuildAlliance(fd); break;
- case 0x383e: intif->pGuildNotice(fd); break;
- case 0x383f: intif->pGuildEmblem(fd); break;
- case 0x3840: intif->pGuildCastleDataLoad(fd); break;
- case 0x3843: intif->pGuildMasterChanged(fd); break;
+ case 0x3801: intif->pWisMessage(fd); break;
+ case 0x3802: intif->pWisEnd(fd); break;
+ case 0x3803: intif->pWisToGM(fd); break;
+ case 0x3804: intif->pRegisters(fd); break;
+ case 0x3806: intif->pChangeNameOk(fd); break;
+ case 0x3807: intif->pMessageToFD(fd); break;
+ case 0x3818: intif->pLoadGuildStorage(fd); break;
+ case 0x3819: intif->pSaveGuildStorage(fd); break;
+ case 0x3820: intif->pPartyCreated(fd); break;
+ case 0x3821: intif->pPartyInfo(fd); break;
+ case 0x3822: intif->pPartyMemberAdded(fd); break;
+ case 0x3823: intif->pPartyOptionChanged(fd); break;
+ case 0x3824: intif->pPartyMemberWithdraw(fd); break;
+ case 0x3825: intif->pPartyMove(fd); break;
+ case 0x3826: intif->pPartyBroken(fd); break;
+ case 0x3827: intif->pPartyMessage(fd); break;
+ case 0x3830: intif->pGuildCreated(fd); break;
+ case 0x3831: intif->pGuildInfo(fd); break;
+ case 0x3832: intif->pGuildMemberAdded(fd); break;
+ case 0x3834: intif->pGuildMemberWithdraw(fd); break;
+ case 0x3835: intif->pGuildMemberInfoShort(fd); break;
+ case 0x3836: intif->pGuildBroken(fd); break;
+ case 0x3837: intif->pGuildMessage(fd); break;
+ case 0x3839: intif->pGuildBasicInfoChanged(fd); break;
+ case 0x383a: intif->pGuildMemberInfoChanged(fd); break;
+ case 0x383b: intif->pGuildPosition(fd); break;
+ case 0x383c: intif->pGuildSkillUp(fd); break;
+ case 0x383d: intif->pGuildAlliance(fd); break;
+ case 0x383e: intif->pGuildNotice(fd); break;
+ case 0x383f: intif->pGuildEmblem(fd); break;
+ case 0x3840: intif->pGuildCastleDataLoad(fd); break;
+ case 0x3843: intif->pGuildMasterChanged(fd); break;
//Quest system
- case 0x3860: intif->pQuestLog(fd); break;
- case 0x3861: intif->pQuestSave(fd); break;
+ case 0x3860: intif->pQuestLog(fd); break;
+ case 0x3861: intif->pQuestSave(fd); break;
// Mail System
- case 0x3848: intif->pMailInboxReceived(fd); break;
- case 0x3849: intif->pMailNew(fd); break;
- case 0x384a: intif->pMailGetAttach(fd); break;
- case 0x384b: intif->pMailDelete(fd); break;
- case 0x384c: intif->pMailReturn(fd); break;
- case 0x384d: intif->pMailSend(fd); break;
+ case 0x3848: intif->pMailInboxReceived(fd); break;
+ case 0x3849: intif->pMailNew(fd); break;
+ case 0x384a: intif->pMailGetAttach(fd); break;
+ case 0x384b: intif->pMailDelete(fd); break;
+ case 0x384c: intif->pMailReturn(fd); break;
+ case 0x384d: intif->pMailSend(fd); break;
// Auction System
- case 0x3850: intif->pAuctionResults(fd); break;
- case 0x3851: intif->pAuctionRegister(fd); break;
- case 0x3852: intif->pAuctionCancel(fd); break;
- case 0x3853: intif->pAuctionClose(fd); break;
- case 0x3854: intif->pAuctionMessage(fd); break;
- case 0x3855: intif->pAuctionBid(fd); break;
+ case 0x3850: intif->pAuctionResults(fd); break;
+ case 0x3851: intif->pAuctionRegister(fd); break;
+ case 0x3852: intif->pAuctionCancel(fd); break;
+ case 0x3853: intif->pAuctionClose(fd); break;
+ case 0x3854: intif->pAuctionMessage(fd); break;
+ case 0x3855: intif->pAuctionBid(fd); break;
//Bound items
case 0x3856:
#ifdef GP_BOUND_ITEMS
@@ -2281,27 +2280,27 @@ int intif_parse(int fd)
#endif
break;
// Mercenary System
- case 0x3870: intif->pMercenaryReceived(fd); break;
- case 0x3871: intif->pMercenaryDeleted(fd); break;
- case 0x3872: intif->pMercenarySaved(fd); break;
+ case 0x3870: intif->pMercenaryReceived(fd); break;
+ case 0x3871: intif->pMercenaryDeleted(fd); break;
+ case 0x3872: intif->pMercenarySaved(fd); break;
// Elemental System
- case 0x387c: intif->pElementalReceived(fd); break;
- case 0x387d: intif->pElementalDeleted(fd); break;
- case 0x387e: intif->pElementalSaved(fd); break;
+ case 0x387c: intif->pElementalReceived(fd); break;
+ case 0x387d: intif->pElementalDeleted(fd); break;
+ case 0x387e: intif->pElementalSaved(fd); break;
- case 0x3880: intif->pCreatePet(fd); break;
- case 0x3881: intif->pRecvPetData(fd); break;
- case 0x3882: intif->pSavePetOk(fd); break;
- case 0x3883: intif->pDeletePetOk(fd); break;
- case 0x3890: intif->pCreateHomunculus(fd); break;
- case 0x3891: intif->pRecvHomunculusData(fd); break;
- case 0x3892: intif->pSaveHomunculusOk(fd); break;
- case 0x3893: intif->pDeleteHomunculusOk(fd); break;
+ case 0x3880: intif->pCreatePet(fd); break;
+ case 0x3881: intif->pRecvPetData(fd); break;
+ case 0x3882: intif->pSavePetOk(fd); break;
+ case 0x3883: intif->pDeletePetOk(fd); break;
+ case 0x3890: intif->pCreateHomunculus(fd); break;
+ case 0x3891: intif->pRecvHomunculusData(fd); break;
+ case 0x3892: intif->pSaveHomunculusOk(fd); break;
+ case 0x3893: intif->pDeleteHomunculusOk(fd); break;
default:
ShowError("intif_parse : unknown packet %d %x\n",fd,RFIFOW(fd,0));
return 0;
}
- // Skip packet
+ // Skip packet
RFIFOSKIP(fd,packet_len);
return 1;
}
diff --git a/src/map/irc-bot.c b/src/map/irc-bot.c
index 6f016697f..8b4991c20 100644
--- a/src/map/irc-bot.c
+++ b/src/map/irc-bot.c
@@ -41,7 +41,7 @@ int irc_connect_timer(int tid, int64 tick, int id, intptr_t data) {
ircbot->last_try = timer->gettick();
- if( ( ircbot->fd = make_connection(ircbot->ip,hChSys.irc_server_port,&opt) ) > 0 ){
+ if ((ircbot->fd = make_connection(ircbot->ip, clif->hChSys->irc_server_port, &opt)) > 0) {
session[ircbot->fd]->func_parse = ircbot->parse;
session[ircbot->fd]->flag.server = 1;
timer->add(timer->gettick() + 3000, ircbot->identify_timer, 0, 0);
@@ -60,7 +60,7 @@ int irc_identify_timer(int tid, int64 tick, int id, intptr_t data) {
sprintf(send_string, "USER HerculesWS%d 8 * : Hercules IRC Bridge",rand()%777);
ircbot->send(send_string);
- sprintf(send_string, "NICK %s", hChSys.irc_nick);
+ sprintf(send_string, "NICK %s", clif->hChSys->irc_nick);
ircbot->send(send_string);
timer->add(timer->gettick() + 3000, ircbot->join_timer, 0, 0);
@@ -76,15 +76,15 @@ int irc_join_timer(int tid, int64 tick, int id, intptr_t data) {
if( !ircbot->isOn )
return 0;
- if( hChSys.irc_nick_pw[0] != '\0' ) {
- sprintf(send_string, "PRIVMSG NICKSERV : IDENTIFY %s", hChSys.irc_nick_pw);
+ if (clif->hChSys->irc_nick_pw[0] != '\0') {
+ sprintf(send_string, "PRIVMSG NICKSERV : IDENTIFY %s", clif->hChSys->irc_nick_pw);
ircbot->send(send_string);
- if( hChSys.irc_use_ghost ) {
- sprintf(send_string, "PRIVMSG NICKSERV : GHOST %s %s", hChSys.irc_nick, hChSys.irc_nick_pw);
+ if (clif->hChSys->irc_use_ghost) {
+ sprintf(send_string, "PRIVMSG NICKSERV : GHOST %s %s", clif->hChSys->irc_nick, clif->hChSys->irc_nick_pw);
}
}
- sprintf(send_string, "JOIN %s", hChSys.irc_channel);
+ sprintf(send_string, "JOIN %s", clif->hChSys->irc_channel);
ircbot->send(send_string);
ircbot->isIn = true;
@@ -120,9 +120,9 @@ int irc_parse(int fd) {
ircbot->isOn = false;
ircbot->isIn = false;
ircbot->fails = 0;
- ircbot->ip = host2ip(hChSys.irc_server);
+ ircbot->ip = host2ip(clif->hChSys->irc_server);
timer->add(timer->gettick() + 120000, ircbot->connect_timer, 0, 0);
- return 0;
+ return 0;
}
if( !RFIFOREST(fd) )
@@ -289,10 +289,10 @@ void irc_privmsg(int fd, char *cmd, char *source, char *target, char *msg) {
irc_privmsg_ctcp(fd, command, source, target, message);
#ifdef IRCBOT_DEBUG
- } else if( strcmpi(target,hChSys.irc_nick) == 0 ) {
+ } else if (strcmpi(target, clif->hChSys->irc_nick) == 0) {
ShowDebug("irc_privmsg: Received message from %s: '%s'\n", source ? source : "(null)", msg);
#endif // IRCBOT_DEBUG
- } else if( msg && strcmpi(target,hChSys.irc_channel) == 0 ) {
+ } else if (msg && strcmpi(target, clif->hChSys->irc_channel) == 0) {
char source_nick[IRC_NICK_LENGTH], source_ident[IRC_IDENT_LENGTH], source_host[IRC_HOST_LENGTH];
source_nick[0] = source_ident[0] = source_host[0] = '\0';
@@ -382,7 +382,7 @@ void irc_usernick(int fd, char *cmd, char *source, char *target, char *msg) {
void irc_relay(char *name, const char *msg) {
if( !ircbot->isIn )
return;
- sprintf(send_string,"PRIVMSG %s :[ %s ] : %s",hChSys.irc_channel,name,msg);
+ sprintf(send_string,"PRIVMSG %s :[ %s ] : %s", clif->hChSys->irc_channel, name, msg);
ircbot->send(send_string);
}
@@ -405,12 +405,12 @@ void irc_bot_init(bool minimal) {
if (minimal)
return;
- if( !hChSys.irc )
+ if (!clif->hChSys->irc)
return;
- if (!(ircbot->ip = host2ip(hChSys.irc_server))) {
- ShowError("Unable to resolve '%s' (irc server), disabling irc channel...\n", hChSys.irc_server);
- hChSys.irc = false;
+ if (!(ircbot->ip = host2ip(clif->hChSys->irc_server))) {
+ ShowError("Unable to resolve '%s' (irc server), disabling irc channel...\n", clif->hChSys->irc_server);
+ clif->hChSys->irc = false;
return;
}
@@ -443,7 +443,7 @@ void irc_bot_init(bool minimal) {
void irc_bot_final(void) {
int i;
- if( !hChSys.irc )
+ if (!clif->hChSys->irc)
return;
if( ircbot->isOn ) {
ircbot->send("QUIT :Hercules is shutting down");
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 0d3146191..19cc02d21 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -16,6 +16,7 @@
#include "mob.h" // MAX_MOB_DB
#include "pc.h" // W_MUSICAL, W_WHIP
#include "script.h" // item script processing
+#include "../common/HPM.h"
#include "../common/conf.h"
#include "../common/malloc.h"
#include "../common/nullpo.h"
@@ -320,8 +321,8 @@ void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
int i;
bclass[0]= bclass[1]= bclass[2]= 0;
//Base classes
- if (jobmask & 1<<JOB_NOVICE)
- { //Both Novice/Super-Novice are counted with the same ID
+ if (jobmask & 1<<JOB_NOVICE) {
+ //Both Novice/Super-Novice are counted with the same ID
bclass[0] |= 1<<MAPID_NOVICE;
bclass[1] |= 1<<MAPID_NOVICE;
}
@@ -354,9 +355,10 @@ void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
bclass[2] |= 1<<MAPID_MERCHANT;
if (jobmask & 1<<JOB_BARD)
bclass[2] |= 1<<MAPID_ARCHER;
-// Bard/Dancer share the same slot now.
-// if (jobmask & 1<<JOB_DANCER)
-// bclass[2] |= 1<<MAPID_ARCHER;
+#if 0 // Bard/Dancer share the same slot now.
+ if (jobmask & 1<<JOB_DANCER)
+ bclass[2] |= 1<<MAPID_ARCHER;
+#endif // 0
if (jobmask & 1<<JOB_ROGUE)
bclass[2] |= 1<<MAPID_THIEF;
//Special classes that don't fit above.
@@ -487,16 +489,16 @@ int itemdb_isequip2(struct item_data *data) {
*------------------------------------------*/
int itemdb_isstackable(int nameid)
{
- int type=itemdb_type(nameid);
- switch(type) {
- case IT_WEAPON:
- case IT_ARMOR:
- case IT_PETEGG:
- case IT_PETARMOR:
- return 0;
- default:
- return 1;
- }
+ int type=itemdb_type(nameid);
+ switch(type) {
+ case IT_WEAPON:
+ case IT_ARMOR:
+ case IT_PETEGG:
+ case IT_PETARMOR:
+ return 0;
+ default:
+ return 1;
+ }
}
/*==========================================
@@ -504,16 +506,16 @@ int itemdb_isstackable(int nameid)
*------------------------------------------*/
int itemdb_isstackable2(struct item_data *data)
{
- nullpo_ret(data);
- switch(data->type) {
- case IT_WEAPON:
- case IT_ARMOR:
- case IT_PETEGG:
- case IT_PETARMOR:
- return 0;
- default:
- return 1;
- }
+ nullpo_ret(data);
+ switch(data->type) {
+ case IT_WEAPON:
+ case IT_ARMOR:
+ case IT_PETEGG:
+ case IT_PETARMOR:
+ return 0;
+ default:
+ return 1;
+ }
}
@@ -576,7 +578,7 @@ int itemdb_isrestricted(struct item* item, int gmlv, int gmlv2, int (*func)(stru
}
/*==========================================
- * Specifies if item-type should drop unidentified.
+ * Specifies if item-type should drop unidentified.
*------------------------------------------*/
int itemdb_isidentified(int nameid) {
int type=itemdb_type(nameid);
@@ -1500,6 +1502,11 @@ int itemdb_validate_entry(struct item_data *entry, int n, const char *source) {
return item->nameid;
}
+void itemdb_readdb_additional_fields(int itemid, config_setting_t *it, int n, const char *source)
+{
+ // do nothing. plugins can do own work
+}
+
/**
* Processes one itemdb entry from the sql backend, loading and inserting it
* into the item database.
@@ -1675,7 +1682,7 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
* OnUnequipScript: <" OnUnequip Script ">
* Inherit: inherit or override
*/
- if( !libconfig->setting_lookup_int(it, "Id", &i32) ) {
+ if( !itemdb->lookup_const(it, "Id", &i32) ) {
ShowWarning("itemdb_readdb_libconfig_sub: Invalid or missing id in \"%s\", entry #%d, skipping.\n", source, n);
return 0;
}
@@ -1710,57 +1717,57 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
safestrncpy(id.jname, str, sizeof(id.jname));
}
- if( libconfig->setting_lookup_int(it, "Type", &i32) )
+ if( itemdb->lookup_const(it, "Type", &i32) )
id.type = i32;
else if( !inherit )
- id.type = IT_UNKNOWN;
+ id.type = IT_ETC;
- if( libconfig->setting_lookup_int(it, "Buy", &i32) )
+ if( itemdb->lookup_const(it, "Buy", &i32) )
id.value_buy = i32;
else if( !inherit )
id.value_buy = -1;
- if( libconfig->setting_lookup_int(it, "Sell", &i32) )
+ if( itemdb->lookup_const(it, "Sell", &i32) )
id.value_sell = i32;
else if( !inherit )
id.value_sell = -1;
- if( libconfig->setting_lookup_int(it, "Weight", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Weight", &i32) && i32 >= 0 )
id.weight = i32;
- if( libconfig->setting_lookup_int(it, "Atk", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Atk", &i32) && i32 >= 0 )
id.atk = i32;
- if( libconfig->setting_lookup_int(it, "Matk", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Matk", &i32) && i32 >= 0 )
id.matk = i32;
- if( libconfig->setting_lookup_int(it, "Def", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Def", &i32) && i32 >= 0 )
id.def = i32;
- if( libconfig->setting_lookup_int(it, "Range", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Range", &i32) && i32 >= 0 )
id.range = i32;
- if( libconfig->setting_lookup_int(it, "Slots", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Slots", &i32) && i32 >= 0 )
id.slot = i32;
- if( libconfig->setting_lookup_int(it, "Job", &i32) ) // This is an unsigned value, do not check for >= 0
+ if( itemdb->lookup_const(it, "Job", &i32) ) // This is an unsigned value, do not check for >= 0
itemdb->jobid2mapid(id.class_base, (unsigned int)i32);
else if( !inherit )
itemdb->jobid2mapid(id.class_base, UINT_MAX);
- if( libconfig->setting_lookup_int(it, "Upper", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Upper", &i32) && i32 >= 0 )
id.class_upper = (unsigned int)i32;
else if( !inherit )
id.class_upper = ITEMUPPER_ALL;
- if( libconfig->setting_lookup_int(it, "Gender", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Gender", &i32) && i32 >= 0 )
id.sex = i32;
else if( !inherit )
id.sex = 2;
- if( libconfig->setting_lookup_int(it, "Loc", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "Loc", &i32) && i32 >= 0 )
id.equip = i32;
- if( libconfig->setting_lookup_int(it, "WeaponLv", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "WeaponLv", &i32) && i32 >= 0 )
id.wlv = i32;
if( (t = libconfig->setting_get_member(it, "EquipLv")) ) {
@@ -1777,7 +1784,7 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
if( (t = libconfig->setting_get_member(it, "Refine")) )
id.flag.no_refine = libconfig->setting_get_bool(t) ? 0 : 1;
- if( libconfig->setting_lookup_int(it, "View", &i32) && i32 >= 0 )
+ if( itemdb->lookup_const(it, "View", &i32) && i32 >= 0 )
id.look = i32;
if( (t = libconfig->setting_get_member(it, "BindOnEquip")) )
@@ -1786,9 +1793,12 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
if ( (t = libconfig->setting_get_member(it, "BuyingStore")) )
id.flag.buyingstore = libconfig->setting_get_bool(t) ? 1 : 0;
- if (libconfig->setting_lookup_int(it, "Delay", &i32) && i32 >= 0)
+ if ((t = libconfig->setting_get_member(it, "KeepAfterUse")))
+ id.flag.keepafteruse = libconfig->setting_get_bool(t) ? 1 : 0;
+
+ if (itemdb->lookup_const(it, "Delay", &i32) && i32 >= 0)
id.delay = i32;
-
+
if ( (t = libconfig->setting_get_member(it, "Trade")) ) {
if (config_setting_is_group(t)) {
config_setting_t *tt = NULL;
@@ -1888,7 +1898,7 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
}
}
- if (libconfig->setting_lookup_int(it, "Sprite", &i32) && i32 >= 0) {
+ if (itemdb->lookup_const(it, "Sprite", &i32) && i32 >= 0) {
id.flag.available = 1;
id.view_id = i32;
}
@@ -1905,6 +1915,24 @@ int itemdb_readdb_libconfig_sub(config_setting_t *it, int n, const char *source)
return itemdb->validate_entry(&id, n, source);
}
+bool itemdb_lookup_const(const config_setting_t *it, const char *name, int *value)
+{
+ if (libconfig->setting_lookup_int(it, name, value))
+ {
+ return true;
+ }
+ else
+ {
+ const char *str = NULL;
+ if (libconfig->setting_lookup_string(it, name, &str))
+ {
+ if (*str && script->get_constant(str, value))
+ return true;
+ }
+ }
+ return false;
+}
+
/**
* Reads from a libconfig-formatted itemdb file and inserts the found entries into the
* item database, overwriting duplicate ones (i.e. item_db2 overriding item_db.)
@@ -1932,6 +1960,7 @@ int itemdb_readdb_libconfig(const char *filename) {
if( !nameid )
continue;
+ itemdb->readdb_additional_fields(nameid, it, i - 1, filename);
count++;
if( duplicate[nameid] ) {
@@ -2050,6 +2079,14 @@ struct item_combo * itemdb_id2combo( unsigned short id ) {
return itemdb->combos[id];
}
+/**
+ * check is item have usable type
+ **/
+bool itemdb_is_item_usable(struct item_data *item)
+{
+ return item->type == IT_HEALING || item->type == IT_USABLE || item->type == IT_CASH;
+}
+
/*==========================================
* Initialize / Finalize
*------------------------------------------*/
@@ -2057,6 +2094,7 @@ struct item_combo * itemdb_id2combo( unsigned short id ) {
/// Destroys the item_data.
void destroy_item_data(struct item_data* self, int free_self)
{
+ int v;
if( self == NULL )
return;
// free scripts
@@ -2068,6 +2106,14 @@ void destroy_item_data(struct item_data* self, int free_self)
script->free_code(self->unequip_script);
if( self->combos )
aFree(self->combos);
+ for (v = 0; v < self->hdatac; v++ ) {
+ if (self->hdata[v]->flag.free ) {
+ aFree(self->hdata[v]->data);
+ }
+ aFree(self->hdata[v]);
+ }
+ if (self->hdata)
+ aFree(self->hdata);
#if defined(DEBUG)
// trash item
memset(self, 0xDD, sizeof(struct item_data));
@@ -2248,6 +2294,10 @@ void do_init_itemdb(bool minimal) {
return;
clif->cashshop_load();
+
+ /** it failed? we disable it **/
+ if( !clif->parse_roulette_db() )
+ battle_config.feature_roulette = 0;
}
void itemdb_defaults(void) {
itemdb = &itemdb_s;
@@ -2319,6 +2369,7 @@ void itemdb_defaults(void) {
itemdb->read_combos = itemdb_read_combos;
itemdb->gendercheck = itemdb_gendercheck;
itemdb->validate_entry = itemdb_validate_entry;
+ itemdb->readdb_additional_fields = itemdb_readdb_additional_fields;
itemdb->readdb_sql_sub = itemdb_readdb_sql_sub;
itemdb->readdb_libconfig_sub = itemdb_readdb_libconfig_sub;
itemdb->readdb_libconfig = itemdb_readdb_libconfig;
@@ -2329,4 +2380,6 @@ void itemdb_defaults(void) {
itemdb->final_sub = itemdb_final_sub;
itemdb->clear = itemdb_clear;
itemdb->id2combo = itemdb_id2combo;
+ itemdb->is_item_usable = itemdb_is_item_usable;
+ itemdb->lookup_const = itemdb_lookup_const;
}
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index 198d7a542..902e6e5e9 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -41,7 +41,9 @@ enum item_itemid {
ITEMID_YELLOW_POTION = 503,
ITEMID_WHITE_POTION = 504,
ITEMID_BLUE_POTION = 505,
+ ITEMID_APPLE = 512,
ITEMID_HOLY_WATER = 523,
+ ITEMID_PUMPKIN = 535,
ITEMID_RED_SLIM_POTION = 545,
ITEMID_YELLOW_SLIM_POTION = 546,
ITEMID_WHITE_SLIM_POTION = 547,
@@ -372,7 +374,7 @@ enum ItemNouseRestrictions {
struct item_data {
uint16 nameid;
char name[ITEM_NAME_LENGTH],jname[ITEM_NAME_LENGTH];
-
+
//Do not add stuff between value_buy and view_id (see how getiteminfo works)
int value_buy;
int value_sell;
@@ -394,24 +396,25 @@ struct item_data {
int delay;
//Lupus: I rearranged order of these fields due to compatibility with ITEMINFO script command
-// some script commands should be revised as well...
- unsigned int class_base[3]; //Specifies if the base can wear this item (split in 3 indexes per type: 1-1, 2-1, 2-2)
- unsigned class_upper : 6; //Specifies if the upper-type can equip it (bitfield, 0x01: normal, 0x02: upper, 0x04: baby normal, 0x08: third normal, 0x10: third upper, 0x20: third baby)
+// some script commands should be revised as well...
+ unsigned int class_base[3]; ///< Specifies if the base can wear this item (split in 3 indexes per type: 1-1, 2-1, 2-2)
+ unsigned class_upper : 6; ///< Specifies if the upper-type can equip it (bitfield, 0x01: normal, 0x02: upper, 0x04: baby normal, 0x08: third normal, 0x10: third upper, 0x20: third baby)
struct {
unsigned short chance;
int id;
- } mob[MAX_SEARCH]; //Holds the mobs that have the highest drop rate for this item. [Skotlex]
- struct script_code *script; //Default script for everything.
- struct script_code *equip_script; //Script executed once when equipping.
- struct script_code *unequip_script;//Script executed once when unequipping.
+ } mob[MAX_SEARCH]; ///< Holds the mobs that have the highest drop rate for this item. [Skotlex]
+ struct script_code *script; ///< Default script for everything.
+ struct script_code *equip_script; ///< Script executed once when equipping.
+ struct script_code *unequip_script; ///< Script executed once when unequipping.
struct {
unsigned available : 1;
- unsigned no_refine : 1; // [celest]
- unsigned delay_consume : 1; // Signifies items that are not consumed immediately upon double-click [Skotlex]
- unsigned trade_restriction : 9; ///< Item trade restrictions mask (@see enum ItemTradeRestrictions)
+ unsigned no_refine : 1; // [celest]
+ unsigned delay_consume : 1; ///< Signifies items that are not consumed immediately upon double-click [Skotlex]
+ unsigned trade_restriction : 9; ///< Item trade restrictions mask (@see enum ItemTradeRestrictions)
unsigned autoequip: 1;
unsigned buyingstore : 1;
unsigned bindonequip : 1;
+ unsigned keepafteruse : 1;
} flag;
struct {// item stacking limitation
unsigned short amount;
@@ -424,13 +427,17 @@ struct item_data {
unsigned int flag; ///< Item nouse restriction mask (@see enum ItemNouseRestrictions)
unsigned short override;
} item_usage;
- short gm_lv_trade_override; //GM-level to override trade_restriction
+ short gm_lv_trade_override; ///< GM-level to override trade_restriction
/* bugreport:309 */
struct item_combo **combos;
unsigned char combos_count;
/* TODO add a pointer to some sort of (struct extra) and gather all the not-common vals into it to save memory */
struct item_group *group;
struct item_package *package;
+
+ /* HPM Custom Struct */
+ struct HPluginData **hdata;
+ unsigned int hdatac;
};
struct item_combo {
@@ -597,6 +604,7 @@ struct itemdb_interface {
void (*read_combos) ();
int (*gendercheck) (struct item_data *id);
int (*validate_entry) (struct item_data *entry, int n, const char *source);
+ void (*readdb_additional_fields) (int itemid, config_setting_t *it, int n, const char *source);
int (*readdb_sql_sub) (Sql *handle, int n, const char *source);
int (*readdb_libconfig_sub) (config_setting_t *it, int n, const char *source);
int (*readdb_libconfig) (const char *filename);
@@ -607,6 +615,8 @@ struct itemdb_interface {
int (*final_sub) (DBKey key, DBData *data, va_list ap);
void (*clear) (bool total);
struct item_combo * (*id2combo) (unsigned short id);
+ bool (*is_item_usable) (struct item_data *item);
+ bool (*lookup_const) (const config_setting_t *it, const char *name, int *value);
};
struct itemdb_interface *itemdb;
diff --git a/src/map/log.c b/src/map/log.c
index b5179e16b..92956fa67 100644
--- a/src/map/log.c
+++ b/src/map/log.c
@@ -20,6 +20,7 @@
#include "../common/showmsg.h"
#include "../common/sql.h" // SQL_INNODB
#include "../common/strlib.h"
+#include "../common/HPM.h"
struct log_interface log_s;
@@ -44,7 +45,7 @@ char log_picktype2char(e_log_pick_type type) {
case LOG_TYPE_BUYING_STORE: return 'B'; // (B)uying Store
case LOG_TYPE_LOOT: return 'L'; // (L)oot (consumed monster pick/drop)
case LOG_TYPE_BANK: return 'K'; // Ban(K) Transactions
- case LOG_TYPE_OTHER: return 'X'; // Other
+ case LOG_TYPE_OTHER: return 'X'; // Other
}
// should not get here, fallback
@@ -452,7 +453,9 @@ int log_config_read(const char* cfgName) {
safestrncpy(logs->config.log_chat, w2, sizeof(logs->config.log_chat));
//support the import command, just like any other config
else if( strcmpi(w1,"import") == 0 )
- log_config_read(w2);
+ logs->config_read(w2);
+ else if (HPM->parseConf(w1, w2, HPCT_LOG))
+ ; // handled by plugins
else
ShowWarning("Unknown setting '%s' in file %s\n", w1, cfgName);
}
diff --git a/src/map/log.h b/src/map/log.h
index 6ab142f87..fb61b6e66 100644
--- a/src/map/log.h
+++ b/src/map/log.h
@@ -98,7 +98,7 @@ struct log_interface {
char db_ip[32];
int db_port;
char db_id[32];
- char db_pw[32];
+ char db_pw[100];
char db_name[32];
Sql* mysql_handle;
/* */
@@ -110,7 +110,7 @@ struct log_interface {
void (*atcommand) (struct map_session_data* sd, const char* message);
void (*branch) (struct map_session_data* sd);
void (*mvpdrop) (struct map_session_data* sd, int monster_id, int* log_mvp);
-
+
void (*pick_sub) (int id, int16 m, e_log_pick_type type, int amount, struct item* itm, struct item_data *data);
void (*zeny_sub) (struct map_session_data* sd, e_log_pick_type type, struct map_session_data* src_sd, int amount);
void (*npc_sub) (struct map_session_data* sd, const char *message);
@@ -118,12 +118,12 @@ struct log_interface {
void (*atcommand_sub) (struct map_session_data* sd, const char* message);
void (*branch_sub) (struct map_session_data* sd);
void (*mvpdrop_sub) (struct map_session_data* sd, int monster_id, int* log_mvp);
-
+
int (*config_read) (const char* cfgName);
void (*config_done) (void);
void (*sql_init) (void);
void (*sql_final) (void);
-
+
char (*picktype2char) (e_log_pick_type type);
char (*chattype2char) (e_log_chat_type type);
bool (*should_log_item) (int nameid, int amount, int refine, struct item_data *id);
diff --git a/src/map/map.c b/src/map/map.c
index 0c8c2d949..25d7ce692 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -309,7 +309,7 @@ int map_moveblock(struct block_list *bl, int x1, int y1, int64 tick) {
skill->unit_move(bl,tick,2);
status_change_end(bl, SC_RG_CCONFINE_M, INVALID_TIMER);
status_change_end(bl, SC_RG_CCONFINE_S, INVALID_TIMER);
- // status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); //Won't stop when you are knocked away, go figure...
+ //status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); //Won't stop when you are knocked away, go figure...
status_change_end(bl, SC_NJ_TATAMIGAESHI, INVALID_TIMER);
status_change_end(bl, SC_MAGICROD, INVALID_TIMER);
if (sc && sc->data[SC_PROPERTYWALK] &&
@@ -395,9 +395,12 @@ int map_moveblock(struct block_list *bl, int x1, int y1, int64 tick) {
/*==========================================
* Counts specified number of objects on given cell.
+ * flag:
+ * 0x1 - only count standing units
+ * 0x2 - don't count invinsible units
* TODO: merge with bl_getall_area
*------------------------------------------*/
-int map_count_oncell(int16 m, int16 x, int16 y, int type) {
+int map_count_oncell(int16 m, int16 x, int16 y, int type, int flag) {
int bx,by;
struct block_list *bl;
int count = 0;
@@ -408,15 +411,41 @@ int map_count_oncell(int16 m, int16 x, int16 y, int type) {
bx = x/BLOCK_SIZE;
by = y/BLOCK_SIZE;
- if (type&~BL_MOB)
- for( bl = map->list[m].block[bx+by*map->list[m].bxs] ; bl != NULL ; bl = bl->next )
- if(bl->x == x && bl->y == y && bl->type&type)
+ if (type&~BL_MOB) {
+ for (bl = map->list[m].block[bx+by*map->list[m].bxs]; bl != NULL; bl = bl->next) {
+ if (bl->x == x && bl->y == y && bl->type&type) {
+ if (flag&0x2) {
+ struct status_change *sc = status->get_sc(bl);
+ if (sc && (sc->option&OPTION_INVISIBLE))
+ continue;
+ }
+ if (flag&0x1) {
+ struct unit_data *ud = unit->bl2ud(bl);
+ if (ud && ud->walktimer != INVALID_TIMER)
+ continue;
+ }
count++;
+ }
+ }
+ }
- if (type&BL_MOB)
- for( bl = map->list[m].block_mob[bx+by*map->list[m].bxs] ; bl != NULL ; bl = bl->next )
- if(bl->x == x && bl->y == y)
+ if (type&BL_MOB) {
+ for (bl = map->list[m].block_mob[bx+by*map->list[m].bxs]; bl != NULL; bl = bl->next) {
+ if (bl->x == x && bl->y == y) {
+ if (flag&0x2) {
+ struct status_change *sc = status->get_sc(bl);
+ if (sc && (sc->option&OPTION_INVISIBLE))
+ continue;
+ }
+ if (flag&0x1) {
+ struct unit_data *ud = unit->bl2ud(bl);
+ if (ud && ud->walktimer != INVALID_TIMER)
+ continue;
+ }
count++;
+ }
+ }
+ }
return count;
}
@@ -1379,7 +1408,7 @@ int map_searchrandfreecell(int16 m,int16 *x,int16 *y,int stack) {
if(map->getcell(m,j+*x,i+*y,CELL_CHKNOPASS) && !map->getcell(m,j+*x,i+*y,CELL_CHKICEWALL))
continue;
//Avoid item stacking to prevent against exploits. [Skotlex]
- if(stack && map->count_oncell(m,j+*x,i+*y, BL_ITEM) > stack)
+ if(stack && map->count_oncell(m,j+*x,i+*y, BL_ITEM, 0) > stack)
continue;
free_cells[free_cell][0] = j+*x;
free_cells[free_cell++][1] = i+*y;
@@ -1473,6 +1502,85 @@ int map_search_freecell(struct block_list *src, int16 m, int16 *x,int16 *y, int1
}
/*==========================================
+ * Locates the closest, walkable cell with no blocks of a certain type on it
+ * Returns true on success and sets x and y to cell found.
+ * Otherwise returns false and x and y are not changed.
+ * type: Types of block to count
+ * flag:
+ * 0x1 - only count standing units
+ *------------------------------------------*/
+bool map_closest_freecell(int16 m, int16 *x, int16 *y, int type, int flag)
+{
+ uint8 dir = 6;
+ int16 tx = *x;
+ int16 ty = *y;
+ int costrange = 10;
+
+ if(!map->count_oncell(m, tx, ty, type, flag))
+ return true; //Current cell is free
+
+ //Algorithm only works up to costrange of 34
+ while(costrange <= 34) {
+ short dx = dirx[dir];
+ short dy = diry[dir];
+
+ //Linear search
+ if(dir%2 == 0 && costrange%MOVE_COST == 0) {
+ tx = *x+dx*(costrange/MOVE_COST);
+ ty = *y+dy*(costrange/MOVE_COST);
+ if(!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m,tx,ty,CELL_CHKPASS)) {
+ *x = tx;
+ *y = ty;
+ return true;
+ }
+ }
+ //Full diagonal search
+ else if(dir%2 == 1 && costrange%MOVE_DIAGONAL_COST == 0) {
+ tx = *x+dx*(costrange/MOVE_DIAGONAL_COST);
+ ty = *y+dy*(costrange/MOVE_DIAGONAL_COST);
+ if(!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m,tx,ty,CELL_CHKPASS)) {
+ *x = tx;
+ *y = ty;
+ return true;
+ }
+ }
+ //One cell diagonal, rest linear (TODO: Find a better algorithm for this)
+ else if(dir%2 == 1 && costrange%MOVE_COST == 4) {
+ tx = *x+dx*((dir%4==3)?(costrange/MOVE_COST):1);
+ ty = *y+dy*((dir%4==1)?(costrange/MOVE_COST):1);
+ if(!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m,tx,ty,CELL_CHKPASS)) {
+ *x = tx;
+ *y = ty;
+ return true;
+ }
+ tx = *x+dx*((dir%4==1)?(costrange/MOVE_COST):1);
+ ty = *y+dy*((dir%4==3)?(costrange/MOVE_COST):1);
+ if(!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m,tx,ty,CELL_CHKPASS)) {
+ *x = tx;
+ *y = ty;
+ return true;
+ }
+ }
+
+ //Get next direction
+ if (dir == 5) {
+ //Diagonal search complete, repeat with higher cost range
+ if(costrange == 14) costrange += 6;
+ else if(costrange == 28 || costrange >= 38) costrange += 2;
+ else costrange += 4;
+ dir = 6;
+ } else if (dir == 4) {
+ //Linear search complete, switch to diagonal directions
+ dir = 7;
+ } else {
+ dir = (dir+2)%8;
+ }
+ }
+
+ return false;
+}
+
+/*==========================================
* Add an item to location (m,x,y)
* Parameters
* @item_data item attributes
@@ -1692,7 +1800,7 @@ int map_quit(struct map_session_data *sd) {
if( sd->bg_id && !sd->bg_queue.arena ) /* TODO: dump this chunk after bg_queue is fully enabled */
bg->team_leave(sd,BGTL_QUIT);
- if( sd->state.autotrade && runflag != MAPSERVER_ST_SHUTDOWN && !hChSys.closing )
+ if (sd->state.autotrade && runflag != MAPSERVER_ST_SHUTDOWN && !clif->hChSys->closing)
pc->autotrade_update(sd,PAUC_REMOVE);
skill->cooldown_save(sd);
@@ -1749,7 +1857,7 @@ int map_quit(struct map_session_data *sd) {
unit->remove_map(&sd->ed->bl,CLR_TELEPORT,ALC_MARK);
}
- if( hChSys.local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id) ) {
+ if (clif->hChSys->local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id)) {
clif->chsys_left(map->list[sd->bl.m].channel,sd);
}
@@ -2412,36 +2520,31 @@ uint8 map_calc_dir(struct block_list* src, int16 x, int16 y)
dx = x-src->x;
dy = y-src->y;
- if( dx == 0 && dy == 0 )
- { // both are standing on the same spot.
+ if (dx == 0 && dy == 0) {
+ // both are standing on the same spot.
// aegis-style, makes knockback default to the left.
// athena-style, makes knockback default to behind 'src'.
dir = (battle_config.knockback_left ? 6 : unit->getdir(src));
- }
- else if( dx >= 0 && dy >=0 )
- { // upper-right
- if( dx*2 <= dy ) dir = 0; // up
- else if( dx > dy*2 ) dir = 6; // right
- else dir = 7; // up-right
- }
- else if( dx >= 0 && dy <= 0 )
- { // lower-right
- if( dx*2 <= -dy ) dir = 4; // down
- else if( dx > -dy*2 ) dir = 6; // right
- else dir = 5; // down-right
- }
- else if( dx <= 0 && dy <= 0 )
- { // lower-left
- if( dx*2 >= dy ) dir = 4; // down
- else if( dx < dy*2 ) dir = 2; // left
- else dir = 3; // down-left
- }
- else
- { // upper-left
- if( -dx*2 <= dy ) dir = 0; // up
- else if( -dx > dy*2 ) dir = 2; // left
- else dir = 1; // up-left
-
+ } else if (dx >= 0 && dy >=0) {
+ // upper-right
+ if( dx*2 < dy || dx == 0 ) dir = 0; // up
+ else if( dx > dy*2+1 || dy == 0 ) dir = 6; // right
+ else dir = 7; // up-right
+ } else if (dx >= 0 && dy <= 0) {
+ // lower-right
+ if( dx*2 < -dy || dx == 0 ) dir = 4; // down
+ else if( dx > -dy*2+1 || dy == 0 ) dir = 6; // right
+ else dir = 5; // down-right
+ } else if (dx <= 0 && dy <= 0) {
+ // lower-left
+ if( dx*2 > dy || dx == 0 ) dir = 4; // down
+ else if( dx < dy*2-1 || dy == 0 ) dir = 2; // left
+ else dir = 3; // down-left
+ } else {
+ // upper-left
+ if( -dx*2 < dy || dx == 0 ) dir = 0; // up
+ else if( -dx > dy*2+1 || dy == 0) dir = 2; // left
+ else dir = 1; // up-left
}
return dir;
}
@@ -2479,7 +2582,7 @@ int map_random_dir(struct block_list *bl, int16 *x, int16 *y)
}
// gat system
-inline static struct mapcell map_gat2cell(int gat) {
+struct mapcell map_gat2cell(int gat) {
struct mapcell cell;
memset(&cell,0,sizeof(struct mapcell));
@@ -2526,9 +2629,6 @@ void map_cellfromcache(struct map_data *m) {
// Set cell properties
for( xy = 0; xy < size; ++xy ) {
m->cell[xy] = map->gat2cell(decode_buffer[xy]);
-#ifdef CELL_NOSTACK
- m->cell[xy].cell_bl = 0;
-#endif
}
m->getcellp = map->getcellp;
@@ -2587,25 +2687,27 @@ int map_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk) {
return (cell.nochat);
case CELL_CHKICEWALL:
return (cell.icewall);
+ case CELL_CHKNOICEWALL:
+ return (cell.noicewall);
// special checks
case CELL_CHKPASS:
#ifdef CELL_NOSTACK
- if (cell.cell_bl >= battle_config.cell_stack_limit) return 0;
+ if (cell.cell_bl >= battle_config.custom_cell_stack_limit) return 0;
#endif
case CELL_CHKREACH:
return (cell.walkable);
case CELL_CHKNOPASS:
#ifdef CELL_NOSTACK
- if (cell.cell_bl >= battle_config.cell_stack_limit) return 1;
+ if (cell.cell_bl >= battle_config.custom_cell_stack_limit) return 1;
#endif
case CELL_CHKNOREACH:
return (!cell.walkable);
case CELL_CHKSTACK:
#ifdef CELL_NOSTACK
- return (cell.cell_bl >= battle_config.cell_stack_limit);
+ return (cell.cell_bl >= battle_config.custom_cell_stack_limit);
#else
return 0;
#endif
@@ -2646,6 +2748,8 @@ void map_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) {
case CELL_NOVENDING: map->list[m].cell[j].novending = flag; break;
case CELL_NOCHAT: map->list[m].cell[j].nochat = flag; break;
case CELL_ICEWALL: map->list[m].cell[j].icewall = flag; break;
+ case CELL_NOICEWALL: map->list[m].cell[j].noicewall = flag; break;
+
default:
ShowWarning("map_setcell: invalid cell type '%d'\n", (int)cell);
break;
@@ -3300,9 +3404,6 @@ int map_readgat (struct map_data* m)
type = 3; // Cell is 0 (walkable) but under water level, set to 3 (walkable water)
m->cell[xy] = map->gat2cell(type);
-#ifdef CELL_NOSTACK
- m->cell[xy].cell_bl = 0;
-#endif
}
aFree(gat);
@@ -3384,8 +3485,8 @@ int map_readallmaps (void) {
map->list[i].m = i;
map->addmap2db(&map->list[i]);
- memset(map->list[i].moblist, 0, sizeof(map->list[i].moblist)); //Initialize moblist [Skotlex]
- map->list[i].mob_delete_timer = INVALID_TIMER; //Initialize timer [Skotlex]
+ memset(map->list[i].moblist, 0, sizeof(map->list[i].moblist)); //Initialize moblist [Skotlex]
+ map->list[i].mob_delete_timer = INVALID_TIMER; //Initialize timer [Skotlex]
map->list[i].bxs = (map->list[i].xs + BLOCK_SIZE - 1) / BLOCK_SIZE;
map->list[i].bys = (map->list[i].ys + BLOCK_SIZE - 1) / BLOCK_SIZE;
@@ -3621,15 +3722,19 @@ int inter_config_read(char *cfgName) {
if(strcmpi(w1,"item_db_db")==0)
strcpy(map->item_db_db,w2);
else if(strcmpi(w1,"mob_db_db")==0)
- strcpy(map->mob_db_db,w2);
+ strcpy(map->mob_db_db, w2);
+ else if (strcmpi(w1, "mob_db_re_db") == 0)
+ strcpy(map->mob_db_re_db, w2);
else if(strcmpi(w1,"item_db2_db")==0)
strcpy(map->item_db2_db,w2);
else if(strcmpi(w1,"item_db_re_db")==0)
strcpy(map->item_db_re_db,w2);
else if(strcmpi(w1,"mob_db2_db")==0)
- strcpy(map->mob_db2_db,w2);
- else if(strcmpi(w1,"mob_skill_db_db")==0)
- strcpy(map->mob_skill_db_db,w2);
+ strcpy(map->mob_db2_db, w2);
+ else if(strcmpi(w1, "mob_skill_db_db") == 0)
+ strcpy(map->mob_skill_db_db, w2);
+ else if(strcmpi(w1, "mob_skill_db_re_db") == 0)
+ strcpy(map->mob_skill_db_re_db, w2);
else if(strcmpi(w1,"mob_skill_db2_db")==0)
strcpy(map->mob_skill_db2_db,w2);
else if(strcmpi(w1,"interreg_db")==0)
@@ -3682,6 +3787,8 @@ int inter_config_read(char *cfgName) {
/* import */
else if(strcmpi(w1,"import")==0)
map->inter_config_read(w2);
+ else
+ HPM->parseConf(w1, w2, HPCT_MAP_INTER);
}
fclose(fp);
@@ -5020,6 +5127,7 @@ void read_map_zone_db(void) {
CREATE( entry, struct map_zone_disabled_skill_entry, 1 );
entry->nameid = izone->disabled_skills[j]->nameid;
entry->type = izone->disabled_skills[j]->type;
+ entry->subtype = izone->disabled_skills[j]->subtype;
zone->disabled_skills[zone->disabled_skills_count-1] = entry;
}
}
@@ -5114,6 +5222,7 @@ void read_map_zone_db(void) {
entry->nameid = izone->capped_skills[j]->nameid;
entry->cap = izone->capped_skills[j]->cap;
entry->type = izone->capped_skills[j]->type;
+ entry->subtype = izone->capped_skills[j]->subtype;
zone->capped_skills[zone->capped_skills_count-1] = entry;
}
}
@@ -5248,7 +5357,7 @@ int do_final(void) {
ShowStatus("Terminating...\n");
- hChSys.closing = true;
+ clif->hChSys->closing = true;
HPM->event(HPET_FINAL);
if (map->cpsd) aFree(map->cpsd);
@@ -5392,7 +5501,7 @@ void map_helpscreen(bool do_exit)
ShowInfo(" scripts passed through --load-script.\n");
ShowInfo(" --load-script <file> Loads an additional script (can be repeated).\n");
ShowInfo(" --load-plugin <name> Loads an additional plugin (can be repeated).\n");
- HPM->arg_help();/* display help for commands implemented thru HPM */
+ HPM->arg_help(); /* display help for commands implemented through HPM */
if( do_exit )
exit(EXIT_SUCCESS);
}
@@ -5489,9 +5598,9 @@ void map_cp_defaults(void) {
/* default HCP data */
map->cpsd = pc->get_dummy_sd();
strcpy(map->cpsd->status.name, "Hercules Console");
- map->cpsd->bl.x = MAP_DEFAULT_X;
- map->cpsd->bl.y = MAP_DEFAULT_Y;
- map->cpsd->bl.m = map->mapname2mapid(MAP_DEFAULT);
+ map->cpsd->bl.x = mapindex->default_x;
+ map->cpsd->bl.y = mapindex->default_y;
+ map->cpsd->bl.m = map->mapname2mapid(mapindex->default_map);
console->input->addCommand("gm:info",CPCMD_A(gm_position));
console->input->addCommand("gm:use",CPCMD_A(gm_use));
@@ -5609,10 +5718,7 @@ int do_init(int argc, char *argv[])
map_load_defaults();
HPM_map_do_init();
- HPM->DataCheck = HPM_map_DataCheck;
- HPM->load_sub = HPM_map_plugin_load_sub;
HPM->symbol_defaults_sub = map_hp_symbols;
- HPM->grabHPDataSub = HPM_map_grabHPData;
for( i = 1; i < argc; i++ ) {
const char* arg = argv[i];
if( strcmp(arg, "--load-plugin") == 0 ) {
@@ -5841,7 +5947,7 @@ int do_init(int argc, char *argv[])
exit(EXIT_SUCCESS);
}
- npc->event_do_oninit( false ); // Init npcs (OnInit)
+ npc->event_do_oninit( false ); // Init npcs (OnInit)
npc->market_fromsql(); /* after OnInit */
if (battle_config.pk_mode)
@@ -5903,8 +6009,10 @@ void map_defaults(void) {
sprintf(map->item_db2_db, "item_db2");
sprintf(map->item_db_re_db, "item_db_re");
sprintf(map->mob_db_db, "mob_db");
+ sprintf(map->mob_db_re_db, "mob_db_re");
sprintf(map->mob_db2_db, "mob_db2");
sprintf(map->mob_skill_db_db, "mob_skill_db");
+ sprintf(map->mob_skill_db_re_db, "mob_skill_db_re");
sprintf(map->mob_skill_db2_db, "mob_skill_db2");
sprintf(map->interreg_db, "interreg");
@@ -5998,6 +6106,7 @@ void map_defaults(void) {
// search and creation
map->get_new_object_id = map_get_new_object_id;
map->search_freecell = map_search_freecell;
+ map->closest_freecell = map_closest_freecell;
//
map->quit = map_quit;
// npc
diff --git a/src/map/map.h b/src/map/map.h
index dba565cc0..447437cf4 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -295,6 +295,16 @@ enum {
ELE_MAX
};
+enum {
+ SPIRITS_TYPE_NONE = 0,
+ SPIRITS_TYPE_CHARM_WATER,
+ SPIRITS_TYPE_CHARM_LAND,
+ SPIRITS_TYPE_CHARM_FIRE,
+ SPIRITS_TYPE_CHARM_WIND,
+ SPIRITS_TYPE_SPHERE,
+ SPIRITS_TYPE_END
+};
+
enum auto_trigger_flag {
ATF_SELF=0x01,
ATF_TARGET=0x02,
@@ -315,20 +325,20 @@ struct block_list {
// Mob List Held in memory for Dynamic Mobs [Wizputer]
// Expanded to specify all mob-related spawn data by [Skotlex]
struct spawn_data {
- short class_; //Class, used because a mob can change it's class
- unsigned short m, x, y; //Spawn information (map, point, spawn-area around point)
+ short class_; ///< Class, used because a mob can change it's class
+ unsigned short m, x, y; ///< Spawn information (map, point, spawn-area around point)
signed short xs, ys;
- unsigned short num; //Number of mobs using this structure
- unsigned short active;//Number of mobs that are already spawned (for mob_remove_damaged: no)
- unsigned int delay1, delay2; //Spawn delay (fixed base + random variance)
+ unsigned short num; ///< Number of mobs using this structure
+ unsigned short active; ///< Number of mobs that are already spawned (for mob_remove_damaged: no)
+ unsigned int delay1, delay2; ///< Spawn delay (fixed base + random variance)
unsigned int level;
struct {
- unsigned int size : 2; //Holds if mob has to be tiny/large
- unsigned int ai : 4; //Special AI for summoned monsters.
+ unsigned int size : 2; ///< Holds if mob has to be tiny/large
+ unsigned int ai : 4; ///< Special AI for summoned monsters.
//0: Normal mob | 1: Standard summon, attacks mobs
//2: Alchemist Marine Sphere | 3: Alchemist Summon Flora | 4: Summon Zanzou
- unsigned int dynamic : 1; //Whether this data is indexed by a map's dynamic mob list
- unsigned int boss : 1; //0: Non-boss monster | 1: Boss monster
+ unsigned int dynamic : 1; ///< Whether this data is indexed by a map's dynamic mob list
+ unsigned int boss : 1; ///< 0: Non-boss monster | 1: Boss monster
} state;
char name[NAME_LENGTH], eventname[EVENT_NAME_LENGTH]; //Name/event
};
@@ -343,18 +353,18 @@ struct flooritem_data {
};
enum status_point_types {
- SP_SPEED,SP_BASEEXP,SP_JOBEXP,SP_KARMA,SP_MANNER,SP_HP,SP_MAXHP,SP_SP, // 0-7
- SP_MAXSP,SP_STATUSPOINT,SP_0a,SP_BASELEVEL,SP_SKILLPOINT,SP_STR,SP_AGI,SP_VIT, // 8-15
- SP_INT,SP_DEX,SP_LUK,SP_CLASS,SP_ZENY,SP_SEX,SP_NEXTBASEEXP,SP_NEXTJOBEXP, // 16-23
- SP_WEIGHT,SP_MAXWEIGHT,SP_1a,SP_1b,SP_1c,SP_1d,SP_1e,SP_1f, // 24-31
- SP_USTR,SP_UAGI,SP_UVIT,SP_UINT,SP_UDEX,SP_ULUK,SP_26,SP_27, // 32-39
- SP_28,SP_ATK1,SP_ATK2,SP_MATK1,SP_MATK2,SP_DEF1,SP_DEF2,SP_MDEF1, // 40-47
- SP_MDEF2,SP_HIT,SP_FLEE1,SP_FLEE2,SP_CRITICAL,SP_ASPD,SP_36,SP_JOBLEVEL, // 48-55
- SP_UPPER,SP_PARTNER,SP_CART,SP_FAME,SP_UNBREAKABLE, //56-60
- SP_CARTINFO=99, // 99
-
- SP_BASEJOB=119, // 100+19 - celest
- SP_BASECLASS=120, //Hmm.. why 100+19? I just use the next one... [Skotlex]
+ SP_SPEED,SP_BASEEXP,SP_JOBEXP,SP_KARMA,SP_MANNER,SP_HP,SP_MAXHP,SP_SP, // 0-7
+ SP_MAXSP,SP_STATUSPOINT,SP_0a,SP_BASELEVEL,SP_SKILLPOINT,SP_STR,SP_AGI,SP_VIT, // 8-15
+ SP_INT,SP_DEX,SP_LUK,SP_CLASS,SP_ZENY,SP_SEX,SP_NEXTBASEEXP,SP_NEXTJOBEXP, // 16-23
+ SP_WEIGHT,SP_MAXWEIGHT,SP_1a,SP_1b,SP_1c,SP_1d,SP_1e,SP_1f, // 24-31
+ SP_USTR,SP_UAGI,SP_UVIT,SP_UINT,SP_UDEX,SP_ULUK,SP_26,SP_27, // 32-39
+ SP_28,SP_ATK1,SP_ATK2,SP_MATK1,SP_MATK2,SP_DEF1,SP_DEF2,SP_MDEF1, // 40-47
+ SP_MDEF2,SP_HIT,SP_FLEE1,SP_FLEE2,SP_CRITICAL,SP_ASPD,SP_36,SP_JOBLEVEL, // 48-55
+ SP_UPPER,SP_PARTNER,SP_CART,SP_FAME,SP_UNBREAKABLE, //56-60
+ SP_CARTINFO=99, // 99
+
+ SP_BASEJOB=119, // 100+19 - celest
+ SP_BASECLASS=120, //Hmm.. why 100+19? I just use the next one... [Skotlex]
SP_KILLERRID=121,
SP_KILLEDRID=122,
SP_SLOTCHANGE=123,
@@ -367,10 +377,10 @@ enum status_point_types {
SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190,
// original 1000-
- SP_ATTACKRANGE=1000, SP_ATKELE,SP_DEFELE, // 1000-1002
+ SP_ATTACKRANGE=1000, SP_ATKELE,SP_DEFELE, // 1000-1002
SP_CASTRATE, SP_MAXHPRATE, SP_MAXSPRATE, SP_SPRATE, // 1003-1006
SP_ADDELE, SP_ADDRACE, SP_ADDSIZE, SP_SUBELE, SP_SUBRACE, // 1007-1011
- SP_ADDEFF, SP_RESEFF, // 1012-1013
+ SP_ADDEFF, SP_RESEFF, // 1012-1013
SP_BASE_ATK,SP_ASPD_RATE,SP_HP_RECOV_RATE,SP_SP_RECOV_RATE,SP_SPEED_RATE, // 1014-1018
SP_CRITICAL_DEF,SP_NEAR_ATK_DEF,SP_LONG_ATK_DEF, // 1019-1021
SP_DOUBLE_RATE, SP_DOUBLE_ADD_RATE, SP_SKILL_HEAL, SP_MATK_RATE, // 1022-1025
@@ -401,8 +411,8 @@ enum status_point_types {
SP_CRIT_ATK_RATE, SP_CRITICAL_ADDRACE, SP_NO_REGEN, SP_ADDEFF_WHENHIT, SP_AUTOSPELL_WHENHIT, // 2013-2017
SP_SKILL_ATK, SP_UNSTRIPABLE, SP_AUTOSPELL_ONSKILL, // 2018-2020
SP_SP_GAIN_VALUE, SP_HP_REGEN_RATE, SP_HP_LOSS_RATE, SP_ADDRACE2, SP_HP_GAIN_VALUE, // 2021-2025
- SP_SUBSIZE, SP_HP_DRAIN_VALUE_RACE, SP_ADD_ITEM_HEAL_RATE, SP_SP_DRAIN_VALUE_RACE, SP_EXP_ADDRACE, // 2026-2030
- SP_SP_GAIN_RACE, SP_SUBRACE2, SP_UNBREAKABLE_SHOES, // 2031-2033
+ SP_SUBSIZE, SP_HP_DRAIN_VALUE_RACE, SP_ADD_ITEM_HEAL_RATE, SP_SP_DRAIN_VALUE_RACE, SP_EXP_ADDRACE, // 2026-2030
+ SP_SP_GAIN_RACE, SP_SUBRACE2, SP_UNBREAKABLE_SHOES, // 2031-2033
SP_UNSTRIPABLE_WEAPON,SP_UNSTRIPABLE_ARMOR,SP_UNSTRIPABLE_HELM,SP_UNSTRIPABLE_SHIELD, // 2034-2037
SP_INTRAVISION, SP_ADD_MONSTER_DROP_CHAINITEM, SP_SP_LOSS_RATE, // 2038-2040
SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE, SP_ADD_CLASS_DROP_ITEM, //2041-2045
@@ -410,8 +420,7 @@ enum status_point_types {
SP_SKILL_COOLDOWN,SP_SKILL_FIXEDCAST, SP_SKILL_VARIABLECAST, SP_FIXCASTRATE, SP_VARCASTRATE, //2050-2054
SP_SKILL_USE_SP,SP_MAGIC_ATK_ELE, SP_ADD_FIXEDCAST, SP_ADD_VARIABLECAST, //2055-2058
SP_SET_DEF_RACE,SP_SET_MDEF_RACE, //2059-2060
-
-
+
/* must be the last, plugins add bonuses from this value onwards */
SP_LAST_KNOWN,
};
@@ -444,22 +453,23 @@ typedef enum {
CELL_NOVENDING,
CELL_NOCHAT,
CELL_ICEWALL,
+ CELL_NOICEWALL,
} cell_t;
// used by map->getcell()
typedef enum {
- CELL_GETTYPE, // retrieves a cell's 'gat' type
+ CELL_GETTYPE, ///< retrieves a cell's 'gat' type
- CELL_CHKWALL, // wall (gat type 1)
- CELL_CHKWATER, // water (gat type 3)
- CELL_CHKCLIFF, // cliff/gap (gat type 5)
+ CELL_CHKWALL, ///< wall (gat type 1)
+ CELL_CHKWATER, ///< water (gat type 3)
+ CELL_CHKCLIFF, ///< cliff/gap (gat type 5)
- CELL_CHKPASS, // passable cell (gat type non-1/5)
- CELL_CHKREACH, // Same as PASS, but ignores the cell-stacking mod.
- CELL_CHKNOPASS, // non-passable cell (gat types 1 and 5)
- CELL_CHKNOREACH, // Same as NOPASS, but ignores the cell-stacking mod.
- CELL_CHKSTACK, // whether cell is full (reached cell stacking limit)
+ CELL_CHKPASS, ///< passable cell (gat type non-1/5)
+ CELL_CHKREACH, ///< Same as PASS, but ignores the cell-stacking mod.
+ CELL_CHKNOPASS, ///< non-passable cell (gat types 1 and 5)
+ CELL_CHKNOREACH, ///< Same as NOPASS, but ignores the cell-stacking mod.
+ CELL_CHKSTACK, ///< whether cell is full (reached cell stacking limit)
CELL_CHKNPC,
CELL_CHKBASILICA,
@@ -467,6 +477,7 @@ typedef enum {
CELL_CHKNOVENDING,
CELL_CHKNOCHAT,
CELL_CHKICEWALL,
+ CELL_CHKNOICEWALL,
} cell_chk;
@@ -484,7 +495,8 @@ struct mapcell {
landprotector : 1,
novending : 1,
nochat : 1,
- icewall : 1;
+ icewall : 1,
+ noicewall : 1;
#ifdef CELL_NOSTACK
int cell_bl; //Holds amount of bls in this cell.
@@ -504,11 +516,11 @@ struct mapflag_skill_adjust {
};
enum map_zone_skill_subtype {
- MZS_NONE = 0x0,
- MZS_CLONE = 0x01,
- MZS_BOSS = 0x02,
+ MZS_NONE = 0x0,
+ MZS_CLONE = 0x01,
+ MZS_BOSS = 0x02,
- MZS_ALL = 0xFFF,
+ MZS_ALL = 0xFFF
};
struct map_zone_disabled_skill_entry {
@@ -575,7 +587,7 @@ struct map_data {
char name[MAP_NAME_LENGTH];
uint16 index; // The map index used by the mapindex* functions.
struct mapcell* cell; // Holds the information of each map cell (NULL if the map is not on this map-server).
-
+
/* 2D Orthogonal Range Search: Grid Implementation
"Algorithms in Java, Parts 1-4" 3.18, Robert Sedgewick
Map is divided into squares, called blocks (side length = BLOCK_SIZE).
@@ -587,7 +599,7 @@ struct map_data {
*/
struct block_list **block; // Grid array of block_lists containing only non-BL_MOB objects
struct block_list **block_mob; // Grid array of block_lists containing only BL_MOB objects
-
+
int16 m;
int16 xs,ys; // map dimensions (in cells)
int16 bxs,bys; // map dimensions (in blocks)
@@ -630,10 +642,10 @@ struct map_data {
unsigned fireworks : 1;
unsigned sakura : 1; // [Valaris]
unsigned leaves : 1; // [Valaris]
- unsigned nobaseexp : 1; // [Lorky] added by Lupus
- unsigned nojobexp : 1; // [Lorky]
- unsigned nomobloot : 1; // [Lorky]
- unsigned nomvploot : 1; // [Lorky]
+ unsigned nobaseexp : 1; // [Lorky] added by Lupus
+ unsigned nojobexp : 1; // [Lorky]
+ unsigned nomobloot : 1; // [Lorky]
+ unsigned nomvploot : 1; // [Lorky]
unsigned nightenabled :1; //For night display. [Skotlex]
unsigned nodrop : 1;
unsigned novending : 1;
@@ -654,17 +666,11 @@ struct map_data {
unsigned short drop_list_count;
struct spawn_data *moblist[MAX_MOB_LIST_PER_MAP]; // [Wizputer]
- int mob_delete_timer; // [Skotlex]
- int jexp; // map experience multiplicator
- int bexp; // map experience multiplicator
+ int mob_delete_timer; // [Skotlex]
+ int jexp; // map experience multiplicator
+ int bexp; // map experience multiplicator
int nocommand; //Blocks @/# commands for non-gms. [Skotlex]
- /**
- * Ice wall reference counter for bugreport:3574
- * - since there are a thousand mobs out there in a lot of maps checking on,
- * - every targeting for icewall on attack path would just be a waste, so,
- * - this counter allows icewall checking be only run when there is a actual ice wall on the map
- **/
- int icewall_num;
+
// Instance Variables
int instance_id;
int instance_src_map;
@@ -705,14 +711,14 @@ struct map_data {
int (*getcellp)(struct map_data* m,int16 x,int16 y,cell_chk cellchk);
void (*setcell) (int16 m, int16 x, int16 y, cell_t cell, bool flag);
char *cellPos;
-
+
/* ShowEvent Data Cache */
struct questinfo *qi_data;
unsigned short qi_count;
-
+
/* speeds up clif_updatestatus processing by causing hpmeter to run only when someone with the permission can view it */
unsigned short hpmeter_visible;
-
+
/* HPM Custom Struct */
struct HPluginData **hdata;
unsigned int hdatac;
@@ -733,7 +739,7 @@ struct map_data_other_server {
/// Bitfield of flags for the iterator.
enum e_mapitflags {
MAPIT_NORMAL = 0,
- // MAPIT_PCISPLAYING = 1,// Unneeded as pc_db/id_db will only hold authed, active players.
+ //MAPIT_PCISPLAYING = 1,// Unneeded as pc_db/id_db will only hold authed, active players.
};
struct s_mapiterator;
@@ -767,7 +773,7 @@ typedef struct skill_unit TBL_SKILL;
typedef struct pet_data TBL_PET;
typedef struct homun_data TBL_HOM;
typedef struct mercenary_data TBL_MER;
-typedef struct elemental_data TBL_ELEM;
+typedef struct elemental_data TBL_ELEM;
#define BL_CAST(type_, bl) \
( ((bl) == (struct block_list*)NULL || (bl)->type != (type_)) ? (T ## type_ *)NULL : (T ## type_ *)(bl) )
@@ -840,8 +846,10 @@ struct map_interface {
char item_db2_db[32];
char item_db_re_db[32];
char mob_db_db[32];
+ char mob_db_re_db[32];
char mob_db2_db[32];
char mob_skill_db_db[32];
+ char mob_skill_db_re_db[32];
char mob_skill_db2_db[32];
char interreg_db[32];
char autotrade_merchants_db[32];
@@ -849,17 +857,17 @@ struct map_interface {
char npc_market_data_db[32];
char default_codepage[32];
-
+
int server_port;
char server_ip[32];
char server_id[32];
- char server_pw[32];
+ char server_pw[100];
char server_db[32];
Sql* mysql_handle;
-
+
int port;
int users;
- int enable_grf; //To enable/disable reading maps from GRF files, bypassing mapcache [blackhole89]
+ int enable_grf; //To enable/disable reading maps from GRF files, bypassing mapcache [blackhole89]
bool ip_set;
bool char_ip_set;
@@ -920,11 +928,12 @@ struct map_interface {
int (*delblock) (struct block_list* bl);
int (*moveblock) (struct block_list *bl, int x1, int y1, int64 tick);
//blocklist nb in one cell
- int (*count_oncell) (int16 m,int16 x,int16 y,int type);
+ int (*count_oncell) (int16 m,int16 x,int16 y,int type,int flag);
struct skill_unit * (*find_skill_unit_oncell) (struct block_list* target,int16 x,int16 y,uint16 skill_id,struct skill_unit* out_unit, int flag);
// search and creation
int (*get_new_object_id) (void);
int (*search_freecell) (struct block_list *src, int16 m, int16 *x, int16 *y, int16 rx, int16 ry, int flag);
+ bool (*closest_freecell) (int16 m, int16 *x, int16 *y, int type, int flag);
//
int (*quit) (struct map_session_data *sd);
// npc
@@ -1018,7 +1027,7 @@ struct map_interface {
void (*clean) (int i);
void (*do_shutdown) (void);
-
+
int (*freeblock_timer) (int tid, int64 tick, int id, intptr_t data);
int (*searchrandfreecell) (int16 m, int16 *x, int16 *y, int stack);
int (*count_sub) (struct block_list *bl, va_list ap);
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 80bcfdf05..a1503e97a 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -362,7 +362,7 @@ int mercenary_killbonus(struct mercenary_data *md)
const enum sc_type scs[] = { SC_MER_FLEE, SC_MER_ATK, SC_MER_HP, SC_MER_SP, SC_MER_HIT };
int index = rnd() % ARRAYLENGTH(scs);
- sc_start(NULL,&md->bl, scs[index], 100, rnd() % 5, 600000);
+ sc_start(NULL,&md->bl, scs[index], 100, rnd() % 5, 600000);
return 0;
}
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index 270245e96..68f60b08b 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -42,7 +42,7 @@ struct mercenary_data {
struct map_session_data *master;
int contract_timer;
-
+
unsigned devotion_flag : 1;
int64 masterteleport_timer;
};
@@ -55,26 +55,26 @@ struct mercenary_data {
struct mercenary_interface {
/* vars */
-
+
struct s_mercenary_db db[MAX_MERCENARY_CLASS];
/* funcs */
void (*init) (bool minimal);
-
+
bool (*class) (int class_);
struct view_data * (*get_viewdata) (int class_);
-
+
int (*create) (struct map_session_data *sd, int class_, unsigned int lifetime);
int (*data_received) (struct s_mercenary *merc, bool flag);
int (*save) (struct mercenary_data *md);
-
+
void (*heal) (struct mercenary_data *md, int hp, int sp);
int (*dead) (struct mercenary_data *md);
-
+
int (*delete) (struct mercenary_data *md, int reply);
void (*contract_stop) (struct mercenary_data *md);
-
+
int (*get_lifetime) (struct mercenary_data *md);
int (*get_guild) (struct mercenary_data *md);
int (*get_faith) (struct mercenary_data *md);
@@ -82,14 +82,14 @@ struct mercenary_interface {
int (*get_calls) (struct mercenary_data *md);
int (*set_calls) (struct mercenary_data *md, int value);
int (*kills) (struct mercenary_data *md);
-
+
int (*checkskill) (struct mercenary_data *md, uint16 skill_id);
int (*read_db) (void);
int (*read_skilldb) (void);
-
+
int (*killbonus) (struct mercenary_data *md);
int (*search_index) (int class_);
-
+
int (*contract_end_timer) (int tid, int64 tick, int id, intptr_t data);
bool (*read_db_sub) (char* str[], int columns, int current);
bool (*read_skill_db_sub) (char* str[], int columns, int current);
diff --git a/src/map/mob.c b/src/map/mob.c
index 3f1769d37..4db8cb2f6 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -34,6 +34,7 @@
#include "script.h"
#include "skill.h"
#include "status.h"
+#include "../common/HPM.h"
#include "../common/cbasetypes.h"
#include "../common/db.h"
#include "../common/ers.h"
@@ -48,17 +49,19 @@
struct mob_interface mob_s;
-#define ACTIVE_AI_RANGE 2 //Distance added on top of 'AREA_SIZE' at which mobs enter active AI mode.
+#define ACTIVE_AI_RANGE 2 //Distance added on top of 'AREA_SIZE' at which mobs enter active AI mode.
-#define IDLE_SKILL_INTERVAL 10 //Active idle skills should be triggered every 1 second (1000/MIN_MOBTHINKTIME)
+#define IDLE_SKILL_INTERVAL 10 //Active idle skills should be triggered every 1 second (1000/MIN_MOBTHINKTIME)
-#define MOB_LAZYSKILLPERC 0 // Probability for mobs far from players from doing their IDLE skill. (rate of 1000 minute)
+// Probability for mobs far from players from doing their IDLE skill. (rate of 1000 minute)
+// in Aegis, this is 100% for mobs that have been activated by players and none otherwise.
+#define MOB_LAZYSKILLPERC(md) (md->state.spotted?1000:0)
// Move probability for mobs away from players (rate of 1000 minute)
// in Aegis, this is 100% for mobs that have been activated by players and none otherwise.
#define MOB_LAZYMOVEPERC(md) ((md)->state.spotted?1000:0)
#define MOB_MAX_DELAY (24*3600*1000)
-#define MAX_MINCHASE 30 //Max minimum chase value to use for mobs.
-#define RUDE_ATTACKED_COUNT 2 //After how many rude-attacks should the skill be used?
+#define MAX_MINCHASE 30 //Max minimum chase value to use for mobs.
+#define RUDE_ATTACKED_COUNT 2 //After how many rude-attacks should the skill be used?
//Dynamic item drop ratio database for per-item drop ratio modifiers overriding global drop ratios.
#define MAX_ITEMRATIO_MOBS 10
@@ -139,14 +142,9 @@ void mvptomb_create(struct mob_data *md, char *killer, time_t time)
if ( md->tomb_nid )
mob->mvptomb_destroy(md);
- CREATE(nd, struct npc_data, 1);
-
- nd->bl.id = md->tomb_nid = npc->get_new_npc_id();
-
+ nd = npc->create_npc(md->bl.m, md->bl.x, md->bl.y);
+ md->tomb_nid = nd->bl.id;
nd->dir = md->ud.dir;
- nd->bl.m = md->bl.m;
- nd->bl.x = md->bl.x;
- nd->bl.y = md->bl.y;
nd->bl.type = BL_NPC;
safestrncpy(nd->name, msg_txt(856), sizeof(nd->name)); // "Tomb"
@@ -418,7 +416,8 @@ bool mob_ksprotected(struct block_list *src, struct block_list *target) {
return true;
} while(0);
- status->change_start(NULL, target, SC_KSPROTECTED, 10000, sd->bl.id, sd->state.noks, sd->status.party_id, sd->status.guild_id, battle_config.ksprotection, 0);
+ status->change_start(NULL, target, SC_KSPROTECTED, 10000, sd->bl.id, sd->state.noks,
+ sd->status.party_id, sd->status.guild_id, battle_config.ksprotection, SCFLAG_NONE);
return false;
}
@@ -499,7 +498,7 @@ int mob_once_spawn(struct map_session_data* sd, int16 m, int16 x, int16 y, const
else if( gc->guild_id ) //Guild not yet available, retry in 5.
timer->add(timer->gettick()+5000,mob->spawn_guardian_sub,md->bl.id,gc->guild_id);
}
- } // end addition [Valaris]
+ } // end addition [Valaris]
mob->spawn(md);
@@ -674,8 +673,8 @@ int mob_spawn_guardian(const char* mapname, short x, short y, const char* mobnam
else
g = guild->search(gc->guild_id);
- if( has_index && gc->guardian[guardian].id )
- { //Check if guardian already exists, refuse to spawn if so.
+ if( has_index && gc->guardian[guardian].id ) {
+ //Check if guardian already exists, refuse to spawn if so.
struct mob_data *md2 = (TBL_MOB*)map->id2bl(gc->guardian[guardian].id);
if (md2 && md2->bl.type == BL_MOB
&& md2->guardian_data
@@ -802,7 +801,8 @@ int mob_linksearch(struct block_list *bl,va_list ap) {
&& !md->target_id)
{
md->last_linktime = tick;
- if( mob->can_reach(md,target,md->db->range2, MSS_FOLLOW) ){ // Reachability judging
+ if (mob->can_reach(md,target,md->db->range2, MSS_FOLLOW)) {
+ // Reachability judging
md->target_id = target->id;
md->min_chase=md->db->range3;
return 1;
@@ -850,17 +850,20 @@ int mob_setdelayspawn(struct mob_data *md)
//Apply the spawn delay fix [Skotlex]
db = mob->db(md->spawn->class_);
mode = db->status.mode;
- if (mode & MD_BOSS) { //Bosses
+ if (mode & MD_BOSS) {
+ //Bosses
if (battle_config.boss_spawn_delay != 100) {
// Divide by 100 first to prevent overflows
//(precision loss is minimal as duration is in ms already)
spawntime = spawntime/100*battle_config.boss_spawn_delay;
}
- } else if (mode&MD_PLANT) { //Plants
+ } else if (mode&MD_PLANT) {
+ //Plants
if (battle_config.plant_spawn_delay != 100) {
spawntime = spawntime/100*battle_config.plant_spawn_delay;
}
- } else if (battle_config.mob_spawn_delay != 100) { //Normal mobs
+ } else if (battle_config.mob_spawn_delay != 100) {
+ //Normal mobs
spawntime = spawntime/100*battle_config.mob_spawn_delay;
}
@@ -934,18 +937,19 @@ int mob_spawn (struct mob_data *md)
md->move_fail_count = 0;
md->ud.state.attack_continue = 0;
md->ud.target_to = 0;
+ md->ud.dir = 0;
if( md->spawn_timer != INVALID_TIMER )
{
timer->delete(md->spawn_timer, mob->delayspawn);
md->spawn_timer = INVALID_TIMER;
}
-// md->master_id = 0;
+ //md->master_id = 0;
md->master_dist = 0;
md->state.aggressive = md->status.mode&MD_ANGRY?1:0;
md->state.skillstate = MSS_IDLE;
- md->next_walktime = tick+rnd()%5000+1000;
+ md->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME;
md->last_linktime = tick;
md->dmgtick = tick - 5000;
md->last_pcneartime = 0;
@@ -1024,7 +1028,7 @@ int mob_target(struct mob_data *md,struct block_list *bl,int dist)
if(!status->check_skilluse(&md->bl, bl, 0, 0))
return 0;
- md->target_id = bl->id; // Since there was no disturbance, it locks on to target.
+ md->target_id = bl->id; // Since there was no disturbance, it locks on to target.
if (md->state.provoke_flag && bl->id != md->state.provoke_flag)
md->state.provoke_flag = 0;
md->min_chase=dist+md->db->range3;
@@ -1073,15 +1077,15 @@ int mob_ai_sub_hard_activesearch(struct block_list *bl,va_list ap)
((*target) == NULL || !check_distance_bl(&md->bl, *target, dist)) &&
battle->check_range(&md->bl,bl,md->db->range2)
) { //Pick closest target?
-
- if( map->list[bl->m].icewall_num &&
- !path->search_long(NULL,bl->m,md->bl.x,md->bl.y,bl->x,bl->y,CELL_CHKICEWALL) ) {
-
- if( !check_distance_bl(&md->bl, bl, status_get_range(&md->bl) ) )
- return 0;
-
- }
-
+#ifdef ACTIVEPATHSEARCH
+ struct walkpath_data wpd;
+ if (!path->search(&wpd, md->bl.m, md->bl.x, md->bl.y, bl->x, bl->y, 0, CELL_CHKNOPASS)) // Count walk path cells
+ return 0;
+ //Standing monsters use range2, walking monsters use range3
+ if ((md->ud.walktimer == INVALID_TIMER && wpd.path_len > md->db->range2)
+ || (md->ud.walktimer != INVALID_TIMER && wpd.path_len > md->db->range3))
+ return 0;
+#endif
(*target) = bl;
md->target_id=bl->id;
md->min_chase= dist + md->db->range3;
@@ -1203,8 +1207,8 @@ int mob_ai_sub_hard_slavemob(struct mob_data *md, int64 tick) {
if (bl->prev == NULL)
return 0; //Master not on a map? Could be warping, do not process.
- if(status_get_mode(&md->bl)&MD_CANMOVE)
- { //If the mob can move, follow around. [Check by Skotlex]
+ if (status_get_mode(&md->bl)&MD_CANMOVE) {
+ //If the mob can move, follow around. [Check by Skotlex]
int old_dist;
// Distance with between slave and master is measured.
@@ -1241,8 +1245,7 @@ int mob_ai_sub_hard_slavemob(struct mob_data *md, int64 tick) {
}
//Avoid attempting to lock the master's target too often to avoid unnecessary overload. [Skotlex]
- if (DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME && !md->target_id)
- {
+ if (DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME && !md->target_id) {
struct unit_data *ud = unit->bl2ud(bl);
md->last_linktime = tick;
@@ -1285,22 +1288,23 @@ int mob_unlocktarget(struct mob_data *md, int64 tick) {
md->state.skillstate = MSS_IDLE;
case MSS_IDLE:
// Idle skill.
- if ((md->target_id || !(++md->ud.walk_count%IDLE_SKILL_INTERVAL)) &&
- mob->skill_use(md, tick, -1))
+ if (!(++md->ud.walk_count%IDLE_SKILL_INTERVAL) && mob->skill_use(md, tick, -1))
break;
//Random walk.
if (!md->master_id &&
DIFF_TICK(md->next_walktime, tick) <= 0 &&
!mob->randomwalk(md,tick))
//Delay next random walk when this one failed.
- md->next_walktime=tick+rnd()%3000;
+ md->next_walktime = tick+rnd()%1000;
break;
default:
mob_stop_attack(md);
- if (battle_config.mob_ai&0x8)
- mob_stop_walking(md,1); //Immediately stop chasing.
+ mob_stop_walking(md,1); //Stop chasing.
md->state.skillstate = MSS_IDLE;
- md->next_walktime=tick+rnd()%3000+3000;
+ if(battle_config.mob_ai&0x8) //Walk instantly after dropping target
+ md->next_walktime = tick+rnd()%1000;
+ else
+ md->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME;
break;
}
if (md->target_id) {
@@ -1308,6 +1312,10 @@ int mob_unlocktarget(struct mob_data *md, int64 tick) {
md->ud.target_to = 0;
unit->set_target(&md->ud, 0);
}
+ if(map->count_oncell(md->bl.m, md->bl.x, md->bl.y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
+ unit->walktoxy(&md->bl, md->bl.x, md->bl.y, 8);
+ }
+
return 0;
}
/*==========================================
@@ -1327,14 +1335,16 @@ int mob_randomwalk(struct mob_data *md, int64 tick) {
d =12-md->move_fail_count;
if(d<5) d=5;
- for(i=0;i<retrycount;i++){ // Search of a movable place
+ if(d>7) d=7;
+ for (i = 0; i < retrycount; i++) {
+ // Search of a movable place
int r=rnd();
x=r%(d*2+1)-d;
y=r/(d*2+1)%(d*2+1)-d;
x+=md->bl.x;
y+=md->bl.y;
- if((map->getcell(md->bl.m,x,y,CELL_CHKPASS)) && unit->walktoxy(&md->bl,x,y,1)){
+ if(((x != md->bl.x) || (y != md->bl.y)) && map->getcell(md->bl.m,x,y,CELL_CHKPASS) && unit->walktoxy(&md->bl,x,y,8)){
break;
}
}
@@ -1357,7 +1367,7 @@ int mob_randomwalk(struct mob_data *md, int64 tick) {
}
md->state.skillstate=MSS_WALK;
md->move_fail_count=0;
- md->next_walktime = tick+rnd()%3000+3000+c;
+ md->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME+c;
return 1;
}
@@ -1403,9 +1413,6 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
if (md->ud.skilltimer != INVALID_TIMER)
return false;
- if(md->ud.walktimer != INVALID_TIMER && md->ud.walkpath.path_pos <= 3)
- return false;
-
// Abnormalities
if(( md->sc.opt1 > 0 && md->sc.opt1 != OPT1_STONEWAIT && md->sc.opt1 != OPT1_BURNING && md->sc.opt1 != OPT1_CRYSTALIZE )
|| md->sc.data[SC_DEEP_SLEEP] || md->sc.data[SC_BLADESTOP] || md->sc.data[SC__MANHOLE] || md->sc.data[SC_CURSEDCIRCLE_TARGET]) {
@@ -1433,30 +1440,35 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
|| ((TBL_PC*)tbl)->invincible_timer != INVALID_TIMER)
)
) {
- //Unlock current target.
+ //No valid target
if (mob->warpchase(md, tbl))
return true; //Chasing this target.
- mob->unlocktarget(md, tick-(battle_config.mob_ai&0x8?3000:0)); //Immediately do random walk.
+ if(md->ud.walktimer != INVALID_TIMER && (!can_move || md->ud.walkpath.path_pos <= battle_config.mob_chase_refresh)
+ && (tbl || md->ud.walkpath.path_pos == 0))
+ return true; //Walk at least "mob_chase_refresh" cells before dropping the target unless target is non-existent
+ mob->unlocktarget(md, tick); //Unlock target
tbl = NULL;
}
}
// Check for target change.
- if( md->attacked_id && mode&MD_CANATTACK )
- {
- if( md->attacked_id == md->target_id )
- { //Rude attacked check.
- if( !battle->check_range(&md->bl, tbl, md->status.rhw.range)
- && ( //Can't attack back and can't reach back.
- (!can_move && DIFF_TICK(tick, md->ud.canmove_tick) > 0 && (battle_config.mob_ai&0x2 || (md->sc.data[SC_SPIDERWEB] && md->sc.data[SC_SPIDERWEB]->val1)
- || md->sc.data[SC_WUGBITE] || md->sc.data[SC_VACUUM_EXTREME] || md->sc.data[SC_THORNS_TRAP]
- || md->sc.data[SC__MANHOLE])) // Not yet confirmed if boss will teleport once it can't reach target.
- || !mob->can_reach(md, tbl, md->min_chase, MSS_RUSH)
- )
- && md->state.attacked_count++ >= RUDE_ATTACKED_COUNT
- && !mob->skill_use(md, tick, MSC_RUDEATTACKED) // If can't rude Attack
- && can_move && unit->escape(&md->bl, tbl, rnd()%10 +1)) // Attempt escape
- { //Escaped
+ if (md->attacked_id && mode&MD_CANATTACK) {
+ if (md->attacked_id == md->target_id) {
+ //Rude attacked check.
+ if (!battle->check_range(&md->bl, tbl, md->status.rhw.range)
+ && ( //Can't attack back and can't reach back.
+ (!can_move && DIFF_TICK(tick, md->ud.canmove_tick) > 0 && (battle_config.mob_ai&0x2 || (md->sc.data[SC_SPIDERWEB] && md->sc.data[SC_SPIDERWEB]->val1)
+ || md->sc.data[SC_WUGBITE] || md->sc.data[SC_VACUUM_EXTREME] || md->sc.data[SC_THORNS_TRAP]
+ || md->sc.data[SC__MANHOLE] // Not yet confirmed if boss will teleport once it can't reach target.
+ || md->walktoxy_fail_count > 0)
+ )
+ || !mob->can_reach(md, tbl, md->min_chase, MSS_RUSH)
+ )
+ && md->state.attacked_count++ >= RUDE_ATTACKED_COUNT
+ && !mob->skill_use(md, tick, MSC_RUDEATTACKED) // If can't rude Attack
+ && can_move && unit->escape(&md->bl, tbl, rnd()%10 +1) // Attempt escape
+ ) {
+ //Escaped
md->attacked_id = 0;
return true;
}
@@ -1470,18 +1482,21 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
|| (battle_config.mob_ai&0x2 && !status->check_skilluse(&md->bl, abl, 0, 0)) // Cannot normal attack back to Attacker
|| (!battle->check_range(&md->bl, abl, md->status.rhw.range) // Not on Melee Range and ...
&& ( // Reach check
- (!can_move && DIFF_TICK(tick, md->ud.canmove_tick) > 0 && (battle_config.mob_ai&0x2 || (md->sc.data[SC_SPIDERWEB] && md->sc.data[SC_SPIDERWEB]->val1)
- || md->sc.data[SC_WUGBITE] || md->sc.data[SC_VACUUM_EXTREME] || md->sc.data[SC_THORNS_TRAP]
- || md->sc.data[SC__MANHOLE])) // Not yet confirmed if boss will teleport once it can't reach target.
- || !mob->can_reach(md, abl, dist+md->db->range3, MSS_RUSH)
+ (!can_move && DIFF_TICK(tick, md->ud.canmove_tick) > 0 && (battle_config.mob_ai&0x2 || (md->sc.data[SC_SPIDERWEB] && md->sc.data[SC_SPIDERWEB]->val1)
+ || md->sc.data[SC_WUGBITE] || md->sc.data[SC_VACUUM_EXTREME] || md->sc.data[SC_THORNS_TRAP]
+ || md->sc.data[SC__MANHOLE] // Not yet confirmed if boss will teleport once it can't reach target.
+ || md->walktoxy_fail_count > 0)
+ )
+ || !mob->can_reach(md, abl, dist+md->db->range3, MSS_RUSH)
)
)
) {
// Rude attacked
if (md->state.attacked_count++ >= RUDE_ATTACKED_COUNT
- && !mob->skill_use(md, tick, MSC_RUDEATTACKED) && can_move
- && !tbl && unit->escape(&md->bl, abl, rnd()%10 +1))
- { //Escaped.
+ && !mob->skill_use(md, tick, MSC_RUDEATTACKED) && can_move
+ && !tbl && unit->escape(&md->bl, abl, rnd()%10 +1)
+ ) {
+ //Escaped.
//TODO: Maybe it shouldn't attempt to run if it has another, valid target?
md->attacked_id = 0;
return true;
@@ -1492,9 +1507,11 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
//Can't attack back, but didn't invoke a rude attacked skill...
} else {
//Attackable
- if (!tbl || dist < md->status.rhw.range || !check_distance_bl(&md->bl, tbl, dist)
- || battle->get_target(tbl) != md->bl.id)
- { //Change if the new target is closer than the actual one
+ if (!tbl || dist < md->status.rhw.range
+ || !check_distance_bl(&md->bl, tbl, dist)
+ || battle->get_target(tbl) != md->bl.id
+ ) {
+ //Change if the new target is closer than the actual one
//or if the previous target is not attacking the mob. [Skotlex]
md->target_id = md->attacked_id; // set target
if (md->state.attacked_count)
@@ -1546,26 +1563,26 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
}
}
- //This handles triggering idle walk/skill.
+ //This handles triggering idle/walk skill.
mob->unlocktarget(md, tick);
return true;
}
//Target exists, attack or loot as applicable.
- if (tbl->type == BL_ITEM)
- { //Loot time.
+ if (tbl->type == BL_ITEM) {
+ //Loot time.
struct flooritem_data *fitem;
if (md->ud.target == tbl->id && md->ud.walktimer != INVALID_TIMER)
return true; //Already locked.
- if (md->lootitem == NULL)
- { //Can't loot...
+ if (md->lootitem == NULL) {
+ //Can't loot...
mob->unlocktarget (md, tick);
return true;
}
- if (!check_distance_bl(&md->bl, tbl, 1))
- { //Still not within loot range.
- if (!(mode&MD_CANMOVE))
- { //A looter that can't move? Real smart.
+ if (!check_distance_bl(&md->bl, tbl, 1)) {
+ //Still not within loot range.
+ if (!(mode&MD_CANMOVE)) {
+ //A looter that can't move? Real smart.
mob->unlocktarget(md,tick);
return true;
}
@@ -1586,14 +1603,15 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
if (md->lootitem_count < LOOTITEM_SIZE) {
memcpy (&md->lootitem[md->lootitem_count++], &fitem->item_data, sizeof(md->lootitem[0]));
- } else { //Destroy first looted item...
+ } else {
+ //Destroy first looted item...
if (md->lootitem[0].card[0] == CARD0_PET)
intif->delete_petdata( MakeDWord(md->lootitem[0].card[1],md->lootitem[0].card[2]) );
memmove(&md->lootitem[0], &md->lootitem[1], (LOOTITEM_SIZE-1)*sizeof(md->lootitem[0]));
memcpy (&md->lootitem[LOOTITEM_SIZE-1], &fitem->item_data, sizeof(md->lootitem[0]));
}
- if (pcdb_checkid(md->vd->class_))
- { //Give them walk act/delay to properly mimic players. [Skotlex]
+ if (pcdb_checkid(md->vd->class_)) {
+ //Give them walk act/delay to properly mimic players. [Skotlex]
clif->takeitem(&md->bl,tbl);
md->ud.canact_tick = tick + md->status.amotion;
unit->set_walkdelay(&md->bl, tick, md->status.amotion, 1);
@@ -1603,46 +1621,44 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
mob->unlocktarget (md,tick);
return true;
}
+
//Attempt to attack.
//At this point we know the target is attackable, we just gotta check if the range matches.
- if (md->ud.target == tbl->id && md->ud.attacktimer != INVALID_TIMER) //Already locked.
+ if (battle->check_range(&md->bl, tbl, md->status.rhw.range) && !(md->sc.option&OPTION_HIDE)) {
+ //Target within range and able to use normal attack, engage
+ if (md->ud.target != tbl->id || md->ud.attacktimer == INVALID_TIMER)
+ { //Only attack if no more attack delay left
+ if(tbl->type == BL_PC)
+ mob->log_damage(md, tbl, 0); //Log interaction (counts as 'attacker' for the exp bonus)
+ unit->attack(&md->bl,tbl->id,1);
+ }
return true;
+ }
- if (battle->check_range (&md->bl, tbl, md->status.rhw.range))
- { //Target within range, engage
+ //Monsters in berserk state, unable to use normal attacks, will always attempt a skill
+ if(md->ud.walktimer == INVALID_TIMER && (md->state.skillstate == MSS_BERSERK || md->state.skillstate == MSS_ANGRY)) {
+ if (DIFF_TICK(md->ud.canmove_tick, tick) <= MIN_MOBTHINKTIME && DIFF_TICK(md->ud.canact_tick, tick) < -MIN_MOBTHINKTIME*IDLE_SKILL_INTERVAL)
+ { //Only use skill if able to walk on next tick and not used a skill the last second
+ mob->skill_use(md, tick, -1);
+ }
+ }
- if(tbl->type == BL_PC)
- mob->log_damage(md, tbl, 0); //Log interaction (counts as 'attacker' for the exp bonus)
+ //Target still in attack range, no need to chase the target
+ if(battle->check_range(&md->bl, tbl, md->status.rhw.range))
+ return true;
- if(!(mode&MD_RANDOMTARGET))
- unit->attack(&md->bl,tbl->id,1);
- else { // Attack once and find new random target
- int search_size = (view_range < md->status.rhw.range) ? view_range : md->status.rhw.range;
- unit->attack(&md->bl,tbl->id,0);
- tbl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md), search_size);
- // If no target was found, keep atacking the old one
- if( tbl ) {
- md->target_id = tbl->id;
- md->min_chase = md->db->range3;
- }
- }
+ //Only update target cell / drop target after having moved at least "mob_chase_refresh" cells
+ if(md->ud.walktimer != INVALID_TIMER && (!can_move || md->ud.walkpath.path_pos <= battle_config.mob_chase_refresh))
return true;
- }
//Out of range...
- if (!(mode&MD_CANMOVE))
- { //Can't chase. Attempt an idle skill before unlocking.
- md->state.skillstate = MSS_IDLE;
- if (!mob->skill_use(md, tick, -1))
+ if (!(mode&MD_CANMOVE) || (!can_move && DIFF_TICK(tick, md->ud.canmove_tick) > 0)) {
+ //Can't chase. Immobile and trapped mobs should unlock target and use an idle skill.
+ if (md->ud.attacktimer == INVALID_TIMER)
+ { //Only unlock target if no more attack delay left
+ //This handles triggering idle/walk skill.
mob->unlocktarget(md,tick);
- return true;
- }
-
- if (!can_move)
- { //Stuck. Attempt an idle skill
- md->state.skillstate = MSS_IDLE;
- if (!(++md->ud.walk_count%IDLE_SKILL_INTERVAL))
- mob->skill_use(md, tick, -1);
+ }
return true;
}
@@ -1654,6 +1670,7 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
return true;
//Follow up if possible.
+ //Hint: Chase skills are handled in the walktobl routine
if(!mob->can_reach(md, tbl, md->min_chase, MSS_RUSH) ||
!unit->walktobl(&md->bl, tbl, md->status.rhw.range, 2))
mob->unlocktarget(md,tick);
@@ -1664,8 +1681,8 @@ bool mob_ai_sub_hard(struct mob_data *md, int64 tick) {
int mob_ai_sub_hard_timer(struct block_list *bl, va_list ap) {
struct mob_data *md = (struct mob_data*)bl;
int64 tick = va_arg(ap, int64);
- if (mob->ai_sub_hard(md, tick))
- { //Hard AI triggered.
+ if (mob->ai_sub_hard(md, tick)) {
+ //Hard AI triggered.
if(!md->state.spotted)
md->state.spotted = 1;
md->last_pcneartime = tick;
@@ -1703,11 +1720,11 @@ int mob_ai_sub_lazy(struct mob_data *md, va_list args) {
if (md->bl.prev==NULL || md->status.hp == 0)
return 1;
- if(battle_config.mob_active_time &&
- md->last_pcneartime &&
- !(md->status.mode&MD_BOSS) &&
- DIFF_TICK(tick,md->last_thinktime) > MIN_MOBTHINKTIME)
- {
+ if (battle_config.mob_active_time
+ && md->last_pcneartime
+ && !(md->status.mode&MD_BOSS)
+ && DIFF_TICK(tick,md->last_thinktime) > MIN_MOBTHINKTIME
+ ) {
if (DIFF_TICK(tick,md->last_pcneartime) < battle_config.mob_active_time)
return (int)mob->ai_sub_hard(md, tick);
md->last_pcneartime = 0;
@@ -1734,20 +1751,17 @@ int mob_ai_sub_lazy(struct mob_data *md, va_list args) {
}
if( DIFF_TICK(md->next_walktime,tick) < 0 && (status_get_mode(&md->bl)&MD_CANMOVE) && unit->can_move(&md->bl) ) {
- if( map->list[md->bl.m].users > 0 )
- {
- if( rnd()%1000 < MOB_LAZYMOVEPERC(md) )
- mob->randomwalk(md, tick);
- else
- if( rnd()%1000 < MOB_LAZYSKILLPERC ) //Chance to do a mob's idle skill.
- mob->skill_use(md, tick, -1);
- }
- else
- {
- if( rnd()%1000 < MOB_LAZYMOVEPERC(md) )
- mob->randomwalk(md, tick);
- }
+ if( rnd()%1000 < MOB_LAZYMOVEPERC(md) )
+ mob->randomwalk(md, tick);
+ }
+ else if( md->ud.walktimer == INVALID_TIMER )
+ {
+ //Because it is not unset when the mob finishes walking.
+ md->state.skillstate = MSS_IDLE;
+ if( rnd()%1000 < MOB_LAZYSKILLPERC(md) ) //Chance to do a mob's idle skill.
+ mob->skill_use(md, tick, -1);
}
+
return 0;
}
@@ -1840,7 +1854,8 @@ void mob_item_drop(struct mob_data *md, struct item_drop_list *dlist, struct ite
&& sd->bl.m == md->bl.m
&& check_distance_blxy(&sd->bl, dlist->x, dlist->y, AUTOLOOT_DISTANCE)
#endif
- ) { //Autoloot.
+ ) {
+ //Autoloot.
if (party->share_loot(party->search(sd->status.party_id),
sd, &ditem->item_data, sd->status.char_id) == 0
) {
@@ -1995,13 +2010,14 @@ void mob_log_damage(struct mob_data *md, struct block_list *src, int damage)
if(md->dmglog[i].id==char_id &&
md->dmglog[i].flag==flag)
break;
- if(md->dmglog[i].id==0) { //Store data in first empty slot.
+ if(md->dmglog[i].id==0) {
+ //Store data in first empty slot.
md->dmglog[i].id = char_id;
md->dmglog[i].flag= flag;
break;
}
- if(md->dmglog[i].dmg<mindmg && i)
- { //Never overwrite first hit slot (he gets double exp bonus)
+ if (md->dmglog[i].dmg<mindmg && i) {
+ //Never overwrite first hit slot (he gets double exp bonus)
minpos=i;
mindmg=md->dmglog[i].dmg;
}
@@ -2145,8 +2161,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
// determines, if the monster was killed by homunculus' damage only
homkillonly = (bool)( ( dmgbltypes&BL_HOM ) && !( dmgbltypes&~BL_HOM ) );
- if(!battle_config.exp_calc_type && count > 1)
- { //Apply first-attacker 200% exp share bonus
+ if (!battle_config.exp_calc_type && count > 1) {
+ //Apply first-attacker 200% exp share bonus
//TODO: Determine if this should go before calculating the MVP player instead of after.
if (UINT_MAX - md->dmglog[0].dmg > md->tdmg) {
md->tdmg += md->dmglog[0].dmg;
@@ -2203,7 +2219,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
// change experience for different sized monsters [Valaris]
if (battle_config.mob_size_influence) {
switch( md->special_state.size ) {
- case SZ_SMALL:
+ case SZ_MEDIUM:
per /= 2.;
break;
case SZ_BIG:
@@ -2246,7 +2262,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
pnum++;
flag=0;
}
- } else { //Add to total
+ } else {
+ //Add to total
if (pt[j].base_exp > UINT_MAX - base_exp)
pt[j].base_exp = UINT_MAX;
else
@@ -2324,7 +2341,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
// change drops depending on monsters size [Valaris]
if (battle_config.mob_size_influence)
{
- if (md->special_state.size == SZ_SMALL && drop_rate >= 2)
+ if (md->special_state.size == SZ_MEDIUM && drop_rate >= 2)
drop_rate /= 2;
else if( md->special_state.size == SZ_BIG)
drop_rate *= 2;
@@ -2445,7 +2462,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
timer->add(tick + (!battle_config.delay_battle_damage?500:0), mob->delay_item_drop, 0, (intptr_t)dlist);
else //No drops
ers_free(item_drop_list_ers, dlist);
- } else if (md->lootitem && md->lootitem_count) { //Loot MUST drop!
+ } else if (md->lootitem && md->lootitem_count) {
+ //Loot MUST drop!
struct item_drop_list *dlist = ers_alloc(item_drop_list_ers, struct item_drop_list);
dlist->m = md->bl.m;
dlist->x = md->bl.x;
@@ -2540,9 +2558,10 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
logs->mvpdrop(mvp_sd, md->class_, log_mvp);
}
- if (type&2 && !sd && md->class_ == MOBID_EMPERIUM && md->guardian_data)
- //Emperium destroyed by script. Discard mvp character. [Skotlex]
+ if (type&2 && !sd && md->class_ == MOBID_EMPERIUM && md->guardian_data) {
+ //Emperium destroyed by script. Discard mvp character. [Skotlex]
mvp_sd = NULL;
+ }
rebirth = ( md->sc.data[SC_KAIZEL] || (md->sc.data[SC_REBIRTH] && !md->state.rebirth) );
if( !rebirth ) { // Only trigger event on final kill
@@ -2640,10 +2659,10 @@ void mob_revive(struct mob_data *md, unsigned int hp)
int64 tick = timer->gettick();
md->state.skillstate = MSS_IDLE;
md->last_thinktime = tick;
- md->next_walktime = tick+rnd()%50+5000;
+ md->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME;
md->last_linktime = tick;
md->last_pcneartime = 0;
- memset(md->dmglog, 0, sizeof(md->dmglog)); // Reset the damage done on the rebirthed monster, otherwise will grant full exp + damage done. [Valaris]
+ memset(md->dmglog, 0, sizeof(md->dmglog)); // Reset the damage done on the rebirthed monster, otherwise will grant full exp + damage done. [Valaris]
md->tdmg = 0;
if (!md->bl.prev)
map->addblock(&md->bl);
@@ -2662,8 +2681,8 @@ int mob_guardian_guildchange(struct mob_data *md)
if (!md->guardian_data)
return 0;
- if( md->guardian_data->castle->guild_id == 0 )
- { //Castle with no owner? Delete the guardians.
+ if (md->guardian_data->castle->guild_id == 0) {
+ //Castle with no owner? Delete the guardians.
if( md->class_ == MOBID_EMPERIUM ) //But don't delete the emperium, just clear it's guild-data
md->guardian_data->g = NULL;
else {
@@ -2675,8 +2694,8 @@ int mob_guardian_guildchange(struct mob_data *md)
}
g = guild->search(md->guardian_data->castle->guild_id);
- if( g == NULL )
- { //Properly remove guardian info from Castle data.
+ if (g == NULL) {
+ //Properly remove guardian info from Castle data.
ShowError("mob_guardian_guildchange: New Guild (id %d) does not exists!\n", md->guardian_data->castle->guild_id);
if (md->guardian_data->number >= 0 && md->guardian_data->number < MAX_GUARDIANS)
guild->castledatasave(md->guardian_data->castle->castle_id, 10+md->guardian_data->number, 0);
@@ -2700,7 +2719,7 @@ int mob_random_class (int *value, size_t count)
if (count < 1) {
count = 0;
while(count < 5 && mob->db_checkid(value[count])) count++;
- if(count < 1) // nothing found
+ if(count < 1) // nothing found
return 0;
} else {
// check if at least the first value is valid
@@ -2925,8 +2944,7 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,uint16 skill_id)
md->status.hp = md->status.max_hp*hp_rate/100;
//Inherit the aggressive mode of the master.
- if (battle_config.slaves_inherit_mode && md->master_id)
- {
+ if (battle_config.slaves_inherit_mode && md->master_id) {
switch (battle_config.slaves_inherit_mode) {
case 1: //Always aggressive
if (!(md->status.mode&MD_AGGRESSIVE))
@@ -3072,7 +3090,6 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
struct block_list *bl;
struct mob_data *fmd = NULL;
int i,j,n;
- short skill_target;
nullpo_ret(md);
nullpo_ret(ms = md->db->skill);
@@ -3117,16 +3134,16 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
{
case MSC_ALWAYS:
flag = 1; break;
- case MSC_MYHPLTMAXRATE: // HP< maxhp%
+ case MSC_MYHPLTMAXRATE: // HP< maxhp%
flag = get_percentage(md->status.hp, md->status.max_hp);
flag = (flag <= c2);
- break;
+ break;
case MSC_MYHPINRATE:
flag = get_percentage(md->status.hp, md->status.max_hp);
flag = (flag >= c2 && flag <= ms[i].val[0]);
break;
- case MSC_MYSTATUSON: // status[num] on
- case MSC_MYSTATUSOFF: // status[num] off
+ case MSC_MYSTATUSON: // status[num] on
+ case MSC_MYSTATUSOFF: // status[num] off
if (!md->sc.count) {
flag = 0;
} else if (ms[i].cond2 == -1) {
@@ -3137,26 +3154,26 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
flag = (md->sc.data[ms[i].cond2]!=NULL);
}
flag ^= (ms[i].cond1 == MSC_MYSTATUSOFF); break;
- case MSC_FRIENDHPLTMAXRATE: // friend HP < maxhp%
+ case MSC_FRIENDHPLTMAXRATE: // friend HP < maxhp%
flag = ((fbl = mob->getfriendhprate(md, 0, ms[i].cond2)) != NULL); break;
- case MSC_FRIENDHPINRATE :
+ case MSC_FRIENDHPINRATE:
flag = ((fbl = mob->getfriendhprate(md, ms[i].cond2, ms[i].val[0])) != NULL); break;
- case MSC_FRIENDSTATUSON: // friend status[num] on
- case MSC_FRIENDSTATUSOFF: // friend status[num] off
+ case MSC_FRIENDSTATUSON: // friend status[num] on
+ case MSC_FRIENDSTATUSOFF: // friend status[num] off
flag = ((fmd = mob->getfriendstatus(md, ms[i].cond1, ms[i].cond2)) != NULL); break;
- case MSC_SLAVELT: // slave < num
+ case MSC_SLAVELT: // slave < num
flag = (mob->countslave(&md->bl) < c2 ); break;
- case MSC_ATTACKPCGT: // attack pc > num
+ case MSC_ATTACKPCGT: // attack pc > num
flag = (unit->counttargeted(&md->bl) > c2); break;
- case MSC_SLAVELE: // slave <= num
+ case MSC_SLAVELE: // slave <= num
flag = (mob->countslave(&md->bl) <= c2 ); break;
- case MSC_ATTACKPCGE: // attack pc >= num
+ case MSC_ATTACKPCGE: // attack pc >= num
flag = (unit->counttargeted(&md->bl) >= c2); break;
case MSC_AFTERSKILL:
flag = (md->ud.skill_id == c2); break;
case MSC_RUDEATTACKED:
flag = (md->state.attacked_count >= RUDE_ATTACKED_COUNT);
- if (flag) md->state.attacked_count = 0; //Rude attacked count should be reset after the skill condition is met. Thanks to Komurka [Skotlex]
+ if (flag) md->state.attacked_count = 0; //Rude attacked count should be reset after the skill condition is met. Thanks to Komurka [Skotlex]
break;
case MSC_MASTERHPLTMAXRATE:
flag = ((fbl = mob->getmasterhpltmaxrate(md, ms[i].cond2)) != NULL); break;
@@ -3171,12 +3188,10 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
if (!flag)
continue; //Skill requisite failed to be fulfilled.
-
//Execute skill
- skill_target = (md->db->status.mode&MD_RANDOMTARGET)? MST_RANDOM : ms[i].target;
if (skill->get_casttype(ms[i].skill_id) == CAST_GROUND) {//Ground skill.
short x, y;
- switch (skill_target) {
+ switch (ms[i].target) {
case MST_RANDOM: //Pick a random enemy within skill range.
bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md),
skill->get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv));
@@ -3204,12 +3219,12 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
if (!bl) continue;
x = bl->x;
- y = bl->y;
+ y = bl->y;
// Look for an area to cast the spell around...
- if (skill_target >= MST_AROUND1 || skill_target >= MST_AROUND5) {
- j = skill_target >= MST_AROUND1?
- (skill_target-MST_AROUND1) +1:
- (skill_target-MST_AROUND5) +1;
+ if (ms[i].target >= MST_AROUND1 || ms[i].target >= MST_AROUND5) {
+ j = ms[i].target >= MST_AROUND1?
+ (ms[i].target-MST_AROUND1) +1:
+ (ms[i].target-MST_AROUND5) +1;
map->search_freecell(&md->bl, md->bl.m, &x, &y, j, j, 3);
}
md->skill_idx = i;
@@ -3222,7 +3237,7 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
}
} else {
//Targeted skill
- switch (skill_target) {
+ switch (ms[i].target) {
case MST_RANDOM: //Pick a random enemy within skill range.
bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md),
skill->get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv));
@@ -3263,10 +3278,10 @@ int mobskill_use(struct mob_data *md, int64 tick, int event) {
if ( ms[ i ].msg_id ){ //Display color message [SnakeDrak]
struct mob_chat *mc = mob->chat(ms[i].msg_id);
char temp[CHAT_SIZE_MAX];
- char name[NAME_LENGTH];
- snprintf(name, sizeof name,"%s", md->name);
- strtok(name, "#"); // discard extra name identifier if present [Daegaladh]
- snprintf(temp, sizeof temp,"%s : %s", name, mc->msg);
+ char name[NAME_LENGTH];
+ snprintf(name, sizeof name,"%s", md->name);
+ strtok(name, "#"); // discard extra name identifier if present [Daegaladh]
+ snprintf(temp, sizeof temp,"%s : %s", name, mc->msg);
clif->messagecolor(&md->bl, mc->color, temp);
}
if(!(battle_config.mob_ai&0x200)) { //pass on delay to same skill.
@@ -3508,7 +3523,7 @@ int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, cons
sd->fd = fd;
//Finally, spawn it.
- md = mob->once_spawn_sub(&sd->bl, m, x, y, "--en--", class_, event, SZ_MEDIUM, AI_NONE);
+ md = mob->once_spawn_sub(&sd->bl, m, x, y, "--en--", class_, event, SZ_SMALL, AI_NONE);
if (!md) return 0; //Failed?
md->special_state.clone = 1;
@@ -3536,8 +3551,7 @@ int mob_clone_delete(struct mob_data *md)
const int class_ = md->class_;
if (class_ >= MOB_CLONE_START && class_ < MOB_CLONE_END
&& mob->db_data[class_]!=NULL) {
- aFree(mob->db_data[class_]);
- mob->db_data[class_]=NULL;
+ mob->destroy_mob_db(class_);
//Clear references to the db
md->db = mob->dummy;
md->vd = NULL;
@@ -3558,10 +3572,9 @@ int mob_makedummymobdb(int class_)
{
if (mob->db(class_) == mob->dummy)
return 1; //Using the mob->dummy data already. [Skotlex]
- if (class_ > 0 && class_ <= MAX_MOB_DB)
- { //Remove the mob data so that it uses the dummy data instead.
- aFree(mob->db_data[class_]);
- mob->db_data[class_] = NULL;
+ if (class_ > 0 && class_ <= MAX_MOB_DB) {
+ //Remove the mob data so that it uses the dummy data instead.
+ mob->destroy_mob_db(class_);
}
return 0;
}
@@ -3701,7 +3714,12 @@ bool mob_parse_dbrow(char** str) {
mstatus->int_ = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[17]));
mstatus->dex = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[18]));
mstatus->luk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[19]));
-
+
+ /*
+ * Disabled for renewal since difference of 0 and 1 still has an impact in the formulas
+ * Just in case there is a mishandled division by zero please let us know. [malufett]
+ */
+#ifndef RENEWAL
//All status should be min 1 to prevent divisions by zero from some skills. [Skotlex]
if (mstatus->str < 1) mstatus->str = 1;
if (mstatus->agi < 1) mstatus->agi = 1;
@@ -3709,6 +3727,11 @@ bool mob_parse_dbrow(char** str) {
if (mstatus->int_< 1) mstatus->int_= 1;
if (mstatus->dex < 1) mstatus->dex = 1;
if (mstatus->luk < 1) mstatus->luk = 1;
+#endif
+
+ //Tests showed that chase range is effectively 2 cells larger than expected [Playtester]
+ if (db->range3 > 0)
+ db->range3 += 2;
db->range2 = atoi(str[20]);
db->range3 = atoi(str[21]);
@@ -3818,8 +3841,8 @@ bool mob_parse_dbrow(char** str) {
id = itemdb->search(db->dropitem[i].nameid);
type = id->type;
rate = atoi(str[k+1]);
- if( (class_ >= 1324 && class_ <= 1363) || (class_ >= 1938 && class_ <= 1946) )
- { //Treasure box drop rates [Skotlex]
+ if( (class_ >= 1324 && class_ <= 1363) || (class_ >= 1938 && class_ <= 1946) ) {
+ //Treasure box drop rates [Skotlex]
rate_adjust = battle_config.item_rate_treasure;
ratemin = battle_config.item_drop_treasure_min;
ratemax = battle_config.item_drop_treasure_max;
@@ -3919,7 +3942,13 @@ void mob_readdb(void) {
* mob_db table reading
*------------------------------------------*/
int mob_read_sqldb(void) {
- const char* mob_db_name[] = { map->mob_db_db, map->mob_db2_db };
+ const char* mob_db_name[] = {
+#ifdef RENEWAL
+ map->mob_db_re_db
+#else
+ map->mob_db_db
+#endif
+ , map->mob_db2_db };
int fi;
for( fi = 0; fi < ARRAYLENGTH(mob_db_name); ++fi ) {
@@ -3989,8 +4018,8 @@ bool mob_readdb_mobavail(char* str[], int columns, int current)
class_=atoi(str[0]);
- if(mob->db(class_) == mob->dummy) // invalid class (probably undefined in db)
- {
+ if(mob->db(class_) == mob->dummy) {
+ // invalid class (probably undefined in db)
ShowWarning("mob_readdb_mobavail: Unknown mob id %d.\n", class_);
return false;
}
@@ -4041,7 +4070,7 @@ int mob_read_randommonster(void)
for( i = 0; i < ARRAYLENGTH(mobfile) && i < MAX_RANDOMMONSTER; i++ ) {
unsigned int count = 0;
- mob->db_data[0]->summonper[i] = 1002; // Default fallback value, in case the database does not provide one
+ mob->db_data[0]->summonper[i] = 1002; // Default fallback value, in case the database does not provide one
sprintf(line, "%s/%s", map->db_path, mobfile[i]);
fp=fopen(line,"r");
if(fp==NULL){
@@ -4208,16 +4237,16 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
char str[32];
enum MobSkillState id;
} state[] = {
- { "any", MSS_ANY }, //All states except Dead
- { "idle", MSS_IDLE },
- { "walk", MSS_WALK },
- { "loot", MSS_LOOT },
- { "dead", MSS_DEAD },
- { "attack", MSS_BERSERK }, //Retaliating attack
- { "angry", MSS_ANGRY }, //Preemptive attack (aggressive mobs)
- { "chase", MSS_RUSH }, //Chase escaping target
- { "follow", MSS_FOLLOW }, //Preemptive chase (aggressive mobs)
- { "anytarget",MSS_ANYTARGET }, //Berserk+Angry+Rush+Follow
+ { "any", MSS_ANY }, //All states except Dead
+ { "idle", MSS_IDLE },
+ { "walk", MSS_WALK },
+ { "loot", MSS_LOOT },
+ { "dead", MSS_DEAD },
+ { "attack", MSS_BERSERK }, //Retaliating attack
+ { "angry", MSS_ANGRY }, //Preemptive attack (aggressive mobs)
+ { "chase", MSS_RUSH }, //Chase escaping target
+ { "follow", MSS_FOLLOW }, //Preemptive chase (aggressive mobs)
+ { "anytarget", MSS_ANYTARGET }, //Berserk+Angry+Rush+Follow
};
static const struct {
char str[32];
@@ -4247,33 +4276,33 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
{ "alchemist", MSC_ALCHEMIST },
{ "onspawn", MSC_SPAWN },
}, cond2[] ={
- { "anybad", -1 },
- { "stone", SC_STONE },
- { "freeze", SC_FREEZE },
- { "stun", SC_STUN },
- { "sleep", SC_SLEEP },
- { "poison", SC_POISON },
- { "curse", SC_CURSE },
- { "silence", SC_SILENCE },
- { "confusion", SC_CONFUSION },
- { "blind", SC_BLIND },
- { "hiding", SC_HIDING },
- { "sight", SC_SIGHT },
+ { "anybad", -1 },
+ { "stone", SC_STONE },
+ { "freeze", SC_FREEZE },
+ { "stun", SC_STUN },
+ { "sleep", SC_SLEEP },
+ { "poison", SC_POISON },
+ { "curse", SC_CURSE },
+ { "silence", SC_SILENCE },
+ { "confusion", SC_CONFUSION },
+ { "blind", SC_BLIND },
+ { "hiding", SC_HIDING },
+ { "sight", SC_SIGHT },
}, target[] = {
- { "target", MST_TARGET },
- { "randomtarget", MST_RANDOM },
- { "self", MST_SELF },
- { "friend", MST_FRIEND },
- { "master", MST_MASTER },
- { "around5", MST_AROUND5 },
- { "around6", MST_AROUND6 },
- { "around7", MST_AROUND7 },
- { "around8", MST_AROUND8 },
- { "around1", MST_AROUND1 },
- { "around2", MST_AROUND2 },
- { "around3", MST_AROUND3 },
- { "around4", MST_AROUND4 },
- { "around", MST_AROUND },
+ { "target", MST_TARGET },
+ { "randomtarget", MST_RANDOM },
+ { "self", MST_SELF },
+ { "friend", MST_FRIEND },
+ { "master", MST_MASTER },
+ { "around5", MST_AROUND5 },
+ { "around6", MST_AROUND6 },
+ { "around7", MST_AROUND7 },
+ { "around8", MST_AROUND8 },
+ { "around1", MST_AROUND1 },
+ { "around2", MST_AROUND2 },
+ { "around3", MST_AROUND3 },
+ { "around4", MST_AROUND4 },
+ { "around", MST_AROUND },
};
static int last_mob_id = 0; // ensures that only one error message per mob id is printed
@@ -4300,8 +4329,8 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
return true;
}
- if (mob_id < 0)
- { //Prepare global skill. [Skotlex]
+ if (mob_id < 0) {
+ //Prepare global skill. [Skotlex]
memset(&gms, 0, sizeof (struct mob_skill));
ms = &gms;
} else {
@@ -4412,8 +4441,8 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
ms->val[1] = 0;
ms->val[4] = 1; //request to return mode to normal.
}
- if(ms->skill_id == NPC_EMOTION_ON && mob_id>0 && ms->val[1])
- { //Adds a mode to the mob.
+ if (ms->skill_id == NPC_EMOTION_ON && mob_id>0 && ms->val[1]) {
+ //Adds a mode to the mob.
//Remove aggressive mode when the new mob type is passive.
if (!(ms->val[1]&MD_AGGRESSIVE))
ms->val[3]|=MD_AGGRESSIVE;
@@ -4431,8 +4460,8 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
else
ms->msg_id=0;
- if (mob_id < 0)
- { //Set this skill to ALL mobs. [Skotlex]
+ if (mob_id < 0) {
+ //Set this skill to ALL mobs. [Skotlex]
mob_id *= -1;
for (i = 1; i < MAX_MOB_DB; i++)
{
@@ -4492,7 +4521,13 @@ void mob_readskilldb(void) {
* seems to work though...
*/
int mob_read_sqlskilldb(void) {
- const char* mob_skill_db_name[] = { map->mob_skill_db_db, map->mob_skill_db2_db };
+ const char* mob_skill_db_name[] = {
+#ifdef RENEWAL
+ map->mob_skill_db_re_db
+#else
+ map->mob_skill_db_db
+#endif
+ , map->mob_skill_db2_db };
int fi;
if( battle_config.mob_skill_rate == 0 ) {
@@ -4637,8 +4672,11 @@ void mob_reload(void) {
mob->load(false);
}
+/**
+ * Clears spawn related information for a script reload.
+ */
void mob_clear_spawninfo()
-{ //Clears spawn related information for a script reload.
+{
int i;
for (i = 0; i < MAX_MOB_DB; i++)
if (mob->db_data[i])
@@ -4674,6 +4712,22 @@ int do_init_mob(bool minimal) {
return 0;
}
+void mob_destroy_mob_db(int index)
+{
+ struct mob_db *data = mob->db_data[index];
+ int v;
+ for (v = 0; v < data->hdatac; v++ ) {
+ if (data->hdata[v]->flag.free ) {
+ aFree(data->hdata[v]->data);
+ }
+ aFree(data->hdata[v]);
+ }
+ if (data->hdata)
+ aFree(data->hdata);
+ aFree(data);
+ mob->db_data[index] = NULL;
+}
+
/*==========================================
* Clean memory usage.
*------------------------------------------*/
@@ -4689,8 +4743,7 @@ int do_final_mob(void)
{
if (mob->db_data[i] != NULL)
{
- aFree(mob->db_data[i]);
- mob->db_data[i] = NULL;
+ mob->destroy_mob_db(i);
}
}
for (i = 0; i <= MAX_MOB_CHAT; i++)
@@ -4825,4 +4878,5 @@ void mob_defaults(void) {
mob->readdb_itemratio = mob_readdb_itemratio;
mob->load = mob_load;
mob->clear_spawninfo = mob_clear_spawninfo;
+ mob->destroy_mob_db = mob_destroy_mob_db;
}
diff --git a/src/map/mob.h b/src/map/mob.h
index c8d43dbb2..9aac2c664 100644
--- a/src/map/mob.h
+++ b/src/map/mob.h
@@ -16,7 +16,7 @@
// Change this to increase the table size in your mob_db to accommodate a larger mob database.
// Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes.
// Notice that the last 1000 entries are used for player clones, so always set this to desired value +1000
-#define MAX_MOB_DB 4000
+#define MAX_MOB_DB 5000
//The number of drops all mobs have and the max drop-slot that the steal skill will attempt to steal from.
#define MAX_MOB_DROP 10
@@ -27,6 +27,8 @@
#define MIN_MOBTHINKTIME 100
//Min time before mobs do a check to call nearby friends for help (or for slaves to support their master)
#define MIN_MOBLINKTIME 1000
+//Min time between random walks
+#define MIN_RANDOMWALKTIME 4000
//Distance that slaves should keep from their master.
#define MOB_SLAVEDISTANCE 2
@@ -40,6 +42,15 @@
#define MAX_MOB_CHAT 250 //Max Skill's messages
+// On official servers, monsters will only seek targets that are closer to walk to than their
+// search range. The search range is affected depending on if the monster is walking or not.
+// On some maps there can be a quite long path for just walking two cells in a direction and
+// the client does not support displaying walk paths that are longer than 14 cells, so this
+// option reduces position lag in such situation. But doing a complex search for every possible
+// target, might be CPU intensive.
+// Disable this to make monsters not do any path search when looking for a target (old behavior).
+#define ACTIVEPATHSEARCH
+
//Mob skill states.
enum MobSkillState {
MSS_ANY = -1,
@@ -62,8 +73,8 @@ enum MobDamageLogFlag
};
enum size {
- SZ_MEDIUM = 0,
- SZ_SMALL,
+ SZ_SMALL = 0,
+ SZ_MEDIUM,
SZ_BIG,
};
@@ -104,7 +115,7 @@ struct mob_db {
unsigned int base_exp,job_exp;
unsigned int mexp;
short range2,range3;
- short race2; // celest
+ short race2; // celest
unsigned short lv;
struct { int nameid,p; } dropitem[MAX_MOB_DROP];
struct { int nameid,p; } mvpitem[MAX_MVP_DROP];
@@ -115,6 +126,10 @@ struct mob_db {
int maxskill;
struct mob_skill skill[MAX_MOBSKILL];
struct spawn_info spawn[10];
+
+ /* HPM Custom Struct */
+ struct HPluginData **hdata;
+ unsigned int hdatac;
};
struct mob_data {
@@ -123,7 +138,7 @@ struct mob_data {
struct view_data *vd;
struct status_data status, *base_status; //Second one is in case of leveling up mobs, or tiny/large mobs.
struct status_change sc;
- struct mob_db *db; //For quick data access (saves doing mob_db(md->class_) all the time) [Skotlex]
+ struct mob_db *db; //For quick data access (saves doing mob_db(md->class_) all the time) [Skotlex]
char name[NAME_LENGTH];
struct {
unsigned int size : 2; //Small/Big monsters.
@@ -169,6 +184,7 @@ struct mob_data {
short move_fail_count;
short lootitem_count;
short min_chase;
+ unsigned char walktoxy_fail_count; //Pathfinding succeeds but the actual walking failed (e.g. Icewall lock)
int deletetimer;
int master_id,master_dist;
@@ -185,13 +201,17 @@ struct mob_data {
* MvP Tombstone NPC ID
**/
int tomb_nid;
+
+ /* HPM Custom Struct */
+ struct HPluginData **hdata;
+ unsigned int hdatac;
};
enum {
- MST_TARGET = 0,
- MST_RANDOM, //Random Target!
+ MST_TARGET = 0,
+ MST_RANDOM, //Random Target!
MST_SELF,
MST_FRIEND,
MST_MASTER,
@@ -203,9 +223,9 @@ enum {
MST_AROUND2,
MST_AROUND3,
MST_AROUND4,
- MST_AROUND = MST_AROUND4,
+ MST_AROUND = MST_AROUND4,
- MSC_ALWAYS = 0x0000,
+ MSC_ALWAYS = 0x0000,
MSC_MYHPLTMAXRATE,
MSC_MYHPINRATE,
MSC_FRIENDHPLTMAXRATE,
@@ -357,6 +377,7 @@ struct mob_interface {
bool (*readdb_itemratio) (char *str[], int columns, int current);
void (*load) (bool minimal);
void (*clear_spawninfo) ();
+ void (*destroy_mob_db) (int index);
};
struct mob_interface *mob;
diff --git a/src/map/npc.c b/src/map/npc.c
index f1c6f4fbd..8b5bbc83e 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -63,14 +63,16 @@ static struct view_data npc_viewdb2[MAX_NPC_CLASS2_END-MAX_NPC_CLASS2_START];
unsigned int npc_market_qty[MAX_INVENTORY];
static struct script_event_s
-{ //Holds pointers to the commonly executed scripts for speedup. [Skotlex]
+{
+ //Holds pointers to the commonly executed scripts for speedup. [Skotlex]
struct event_data *event[UCHAR_MAX];
const char *event_name[UCHAR_MAX];
uint8 event_count;
} script_event[NPCE_MAX];
struct view_data* npc_get_viewdata(int class_)
-{ //Returns the viewdata for normal npc classes.
+{
+ //Returns the viewdata for normal npc classes.
if( class_ == INVISIBLE_CLASS )
return &npc_viewdb[0];
if (npcdb_checkid(class_) || class_ == WARP_CLASS){
@@ -103,12 +105,12 @@ int npc_get_new_npc_id(void) {
}
int npc_isnear_sub(struct block_list* bl, va_list args) {
- struct npc_data *nd = (struct npc_data*)bl;
-
- if( nd->option & (OPTION_HIDE|OPTION_INVISIBLE) )
- return 0;
+ struct npc_data *nd = (struct npc_data*)bl;
- return 1;
+ if( nd->option & (OPTION_HIDE|OPTION_INVISIBLE) )
+ return 0;
+
+ return 1;
}
bool npc_isnear(struct block_list * bl) {
@@ -137,11 +139,22 @@ int npc_ontouch2_event(struct map_session_data *sd, struct npc_data *nd)
{
char name[EVENT_NAME_LENGTH];
- if( sd->areanpc_id == nd->bl.id )
+ if (sd->areanpc_id == nd->bl.id)
return 0;
snprintf(name, ARRAYLENGTH(name), "%s::%s", nd->exname, script->config.ontouch2_name);
- return npc->event(sd,name,2);
+ return npc->event(sd, name, 2);
+}
+
+int npc_onuntouch_event(struct map_session_data *sd, struct npc_data *nd)
+{
+ char name[EVENT_NAME_LENGTH];
+
+ if (sd->areanpc_id != nd->bl.id)
+ return 0;
+
+ snprintf(name, ARRAYLENGTH(name), "%s::%s", nd->exname, script->config.onuntouch_name);
+ return npc->event(sd, name, 2);
}
/*==========================================
@@ -885,9 +898,10 @@ int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y)
nullpo_retr(1, sd);
- // Why not enqueue it? [Inkfish]
- //if(sd->npc_id)
- // return 1;
+#if 0 // Why not enqueue it? [Inkfish]
+ if(sd->npc_id)
+ return 1;
+#endif // 0
for(i=0;i<map->list[m].npc_num;i++) {
if (map->list[m].npc[i]->option&OPTION_INVISIBLE) {
@@ -961,6 +975,23 @@ int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y)
return 0;
}
+/*==========================================
+ * Exec OnUnTouch for player if out range of area event
+ *------------------------------------------*/
+int npc_untouch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y)
+{
+ struct npc_data *nd;
+ nullpo_retr(1, sd);
+
+ if (!sd->areanpc_id)
+ return 0;
+
+ nd = (struct npc_data *) map->id2bl(sd->areanpc_id);
+ npc->onuntouch_event(sd, nd);
+ sd->areanpc_id = 0;
+ return 0;
+}
+
// OnTouch NPC or Warp for Mobs
// Return 1 if Warped
int npc_touch_areanpc2(struct mob_data *md)
@@ -1083,22 +1114,28 @@ int npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range) {
struct npc_data* npc_checknear(struct map_session_data* sd, struct block_list* bl)
{
struct npc_data *nd;
+ int distance = AREA_SIZE + 1;
nullpo_retr(NULL, sd);
- if(bl == NULL) return NULL;
- if(bl->type != BL_NPC) return NULL;
+ if (bl == NULL) return NULL;
+ if (bl->type != BL_NPC) return NULL;
nd = (TBL_NPC*)bl;
- if(sd->state.using_fake_npc && sd->npc_id == bl->id)
+ if (sd->npc_id == bl->id)
return nd;
if (nd->class_<0) //Class-less npc, enable click from anywhere.
return nd;
- if (bl->m!=sd->bl.m ||
- bl->x<sd->bl.x-AREA_SIZE-1 || bl->x>sd->bl.x+AREA_SIZE+1 ||
- bl->y<sd->bl.y-AREA_SIZE-1 || bl->y>sd->bl.y+AREA_SIZE+1)
+ if (distance > nd->area_size)
+ distance = nd->area_size;
+
+ if (bl->m != sd->bl.m ||
+ bl->x < sd->bl.x - distance || bl->x > sd->bl.x + distance ||
+ bl->y < sd->bl.y - distance || bl->y > sd->bl.y + distance)
+ {
return NULL;
+ }
return nd;
}
@@ -1211,7 +1248,7 @@ int npc_scriptcont(struct map_session_data* sd, int id, bool closing) {
TBL_NPC* nd = BL_CAST(BL_NPC, target);
ShowDebug("npc_scriptcont: %s (sd->npc_id=%d) is not %s (id=%d).\n",
nd_sd?(char*)nd_sd->name:"'Unknown NPC'", (int)sd->npc_id,
- nd?(char*)nd->name:"'Unknown NPC'", (int)id);
+ nd?(char*)nd->name:"'Unknown NPC'", (int)id);
return 1;
}
@@ -1270,7 +1307,7 @@ int npc_buysellsel(struct map_session_data* sd, int id, int type) {
sd->npc_id = 0;
return 1;
}
-
+
if (nd->option & OPTION_INVISIBLE) // can't buy if npc is not visible (hack?)
return 1;
@@ -1807,22 +1844,22 @@ int npc_buylist(struct map_session_data* sd, int n, unsigned short* item_list) {
return npc->buylist_sub(sd,n,item_list,nd->master_nd);
if( z > (double)sd->status.zeny )
- return 1; // Not enough Zeny
+ return 1; // Not enough Zeny
if( w + sd->weight > sd->max_weight )
- return 2; // Too heavy
+ return 2; // Too heavy
if( pc->inventoryblank(sd) < new_ )
- return 3; // Not enough space to store items
+ return 3; // Not enough space to store items
pc->payzeny(sd,(int)z,LOG_TYPE_NPC, NULL);
for( i = 0; i < n; ++i ) {
int nameid = item_list[i*2+1];
int amount = item_list[i*2+0];
- struct item item_tmp;
- if (itemdb_type(nameid) == IT_PETEGG)
+ if (itemdb_type(nameid) == IT_PETEGG) {
pet->create_egg(sd, nameid);
- else {
+ } else {
+ struct item item_tmp;
memset(&item_tmp,0,sizeof(item_tmp));
item_tmp.nameid = nameid;
item_tmp.identify = 1;
@@ -1920,20 +1957,19 @@ int npc_market_buylist(struct map_session_data* sd, unsigned short list_size, st
}
if( z > (double)sd->status.zeny ) /* TODO find official response for this */
- return 1; // Not enough Zeny
+ return 1; // Not enough Zeny
if( w + sd->weight > sd->max_weight ) /* TODO find official response for this */
- return 1; // Too heavy
+ return 1; // Too heavy
if( pc->inventoryblank(sd) < new_ ) /* TODO find official response for this */
- return 1; // Not enough space to store items
+ return 1; // Not enough space to store items
pc->payzeny(sd,(int)z,LOG_TYPE_NPC, NULL);
for( i = 0; i < list_size; ++i ) {
int nameid = p->list[i].ITID;
int amount = p->list[i].qty;
- struct item item_tmp;
j = npc_market_qty[i];
@@ -1944,9 +1980,10 @@ int npc_market_buylist(struct map_session_data* sd, unsigned short list_size, st
npc->market_tosql(nd,j);
- if (itemdb_type(nameid) == IT_PETEGG)
+ if (itemdb_type(nameid) == IT_PETEGG) {
pet->create_egg(sd, nameid);
- else {
+ } else {
+ struct item item_tmp;
memset(&item_tmp,0,sizeof(item_tmp));
item_tmp.nameid = nameid;
item_tmp.identify = 1;
@@ -2179,6 +2216,10 @@ int npc_unload(struct npc_data* nd, bool single) {
nullpo_ret(nd);
+ if( nd->ud && nd->ud != &npc->base_ud ) {
+ skill->clear_unitgroup(&nd->bl);
+ }
+
npc->remove_map(nd);
map->deliddb(&nd->bl);
if( single )
@@ -2216,7 +2257,7 @@ int npc_unload(struct npc_data* nd, bool single) {
npc->ev_db->foreach(npc->ev_db,npc->unload_ev,nd->exname); //Clean up all events related
npc->ev_label_db->foreach(npc->ev_label_db,npc->unload_ev_label,nd);
}
-
+
iter = mapit_geteachpc();
for( bl = (struct block_list*)mapit->first(iter); mapit->exists(iter); bl = (struct block_list*)mapit->next(iter) ) {
struct map_session_data *sd = ((TBL_PC*)bl);
@@ -2263,7 +2304,7 @@ int npc_unload(struct npc_data* nd, bool single) {
guild->flag_remove(nd);
}
- if( nd->ud != &npc->base_ud ) {
+ if( nd->ud && nd->ud != &npc->base_ud ) {
aFree(nd->ud);
nd->ud = NULL;
}
@@ -2445,7 +2486,7 @@ void npc_parsename(struct npc_data* nd, const char* name, const char* start, con
// Support for using Constants in place of NPC View IDs.
int npc_parseview(const char* w4, const char* start, const char* buffer, const char* filepath) {
int val = -1, i = 0;
- char viewid[1024]; // Max size of name from const.txt, see script->read_constdb.
+ char viewid[1024]; // Max size of name from const.txt, see script->read_constdb.
// Extract view ID / constant
while (w4[i] != '\0') {
@@ -2485,7 +2526,22 @@ bool npc_viewisid(const char * viewid)
}
}
- return true;
+ return true;
+}
+
+struct npc_data* npc_create_npc(int m, int x, int y)
+{
+ struct npc_data *nd;
+
+ CREATE(nd, struct npc_data, 1);
+ nd->bl.id = npc->get_new_npc_id();
+ nd->bl.prev = nd->bl.next = NULL;
+ nd->bl.m = m;
+ nd->bl.x = x;
+ nd->bl.y = y;
+ nd->area_size = AREA_SIZE + 1;
+
+ return nd;
}
//Add then display an npc warp on map
@@ -2493,13 +2549,8 @@ struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short
int i, flag = 0;
struct npc_data *nd;
- CREATE(nd, struct npc_data, 1);
- nd->bl.id = npc->get_new_npc_id();
+ nd = npc->create_npc(from_mapid, from_x, from_y);
map->addnpc(from_mapid, nd);
- nd->bl.prev = nd->bl.next = NULL;
- nd->bl.m = from_mapid;
- nd->bl.x = from_x;
- nd->bl.y = from_y;
safestrncpy(nd->exname, name, ARRAYLENGTH(nd->exname));
if (npc->name2id(nd->exname) != NULL)
@@ -2567,14 +2618,8 @@ const char* npc_parse_warp(char* w1, char* w2, char* w3, char* w4, const char* s
return strchr(start,'\n');;//try next
}
- CREATE(nd, struct npc_data, 1);
-
- nd->bl.id = npc->get_new_npc_id();
+ nd = npc->create_npc(m, x, y);
map->addnpc(m, nd);
- nd->bl.prev = nd->bl.next = NULL;
- nd->bl.m = m;
- nd->bl.x = x;
- nd->bl.y = y;
npc->parsename(nd, w3, start, buffer, filepath);
if (!battle_config.warp_point_debug)
@@ -2709,17 +2754,12 @@ const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char* s
return strchr(start,'\n');// continue
}
- CREATE(nd, struct npc_data, 1);
+ nd = npc->create_npc(m, x, y);
CREATE(nd->u.shop.shop_item, struct npc_item_list, i);
memcpy(nd->u.shop.shop_item, items, sizeof(items[0])*i);
aFree(items);
nd->u.shop.count = i;
- nd->bl.prev = nd->bl.next = NULL;
- nd->bl.m = m;
- nd->bl.x = x;
- nd->bl.y = y;
- nd->bl.id = npc->get_new_npc_id();
npc->parsename(nd, w3, start, buffer, filepath);
nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
nd->speed = 200;
@@ -2835,7 +2875,7 @@ const char* npc_skip_script(const char* start, const char* buffer, const char* f
/// <map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,{<code>}
/// <map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}
const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath, int options, int *retval) {
- int x, y, dir = 0, m, xs = 0, ys = 0; // [Valaris] thanks to fov
+ int x, y, dir = 0, m, xs = 0, ys = 0; // [Valaris] thanks to fov
char mapname[32];
struct script_code *scriptroot;
int i;
@@ -2883,8 +2923,7 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
npc->convertlabel_db(label_list,filepath);
}
- CREATE(nd, struct npc_data, 1);
-
+ nd = npc->create_npc(m, x, y);
if( sscanf(w4, "%*[^,],%d,%d", &xs, &ys) == 2 )
{// OnTouch area defined
nd->u.scr.xs = xs;
@@ -2896,12 +2935,7 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char*
nd->u.scr.ys = -1;
}
- nd->bl.prev = nd->bl.next = NULL;
- nd->bl.m = m;
- nd->bl.x = x;
- nd->bl.y = y;
npc->parsename(nd, w3, start, buffer, filepath);
- nd->bl.id = npc->get_new_npc_id();
nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
nd->speed = 200;
nd->u.scr.script = scriptroot;
@@ -3033,14 +3067,8 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch
return end;// next line, try to continue
}
- CREATE(nd, struct npc_data, 1);
-
- nd->bl.prev = nd->bl.next = NULL;
- nd->bl.m = m;
- nd->bl.x = x;
- nd->bl.y = y;
+ nd = npc->create_npc(m, x, y);
npc->parsename(nd, w3, start, buffer, filepath);
- nd->bl.id = npc->get_new_npc_id();
nd->class_ = m == -1 ? -1 : npc->parseview(w4, start, buffer, filepath);
nd->speed = 200;
nd->src_id = src_id;
@@ -3152,13 +3180,8 @@ int npc_duplicate4instance(struct npc_data *snd, int16 m) {
return 1;
}
- CREATE(wnd, struct npc_data, 1);
- wnd->bl.id = npc->get_new_npc_id();
+ wnd = npc->create_npc(m, snd->bl.x, snd->bl.y);
map->addnpc(m, wnd);
- wnd->bl.prev = wnd->bl.next = NULL;
- wnd->bl.m = m;
- wnd->bl.x = snd->bl.x;
- wnd->bl.y = snd->bl.y;
safestrncpy(wnd->name, "", ARRAYLENGTH(wnd->name));
safestrncpy(wnd->exname, newname, ARRAYLENGTH(wnd->exname));
wnd->class_ = WARP_CLASS;
@@ -3320,8 +3343,8 @@ int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const c
struct event_data* ev = (struct event_data*)strdb_get(npc->ev_db, eventname);
struct npc_data *nd;
struct script_state *st;
- int i = 0, j = 0, k = 0;
- char *temp;
+ int i = 0, nargs = 0;
+ size_t len;
nullpo_ret(sd);
@@ -3349,27 +3372,29 @@ int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const c
st = script->alloc_state(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id);
script->setd_sub(st, NULL, ".@atcmd_command$", 0, (void *)command, NULL);
- // split atcmd parameters based on spaces
- temp = (char*)aMalloc(strlen(message) + 1);
-
- for( i = 0; i < ( strlen( message ) + 1 ) && k < 127; i ++ ) {
- if( message[i] == ' ' || message[i] == '\0' ) {
- if( message[ ( i - 1 ) ] == ' ' ) {
- continue; // To prevent "@atcmd [space][space]" and .@atcmd_numparameters return 1 without any parameter.
- }
- temp[k] = '\0';
- k = 0;
- if( temp[0] != '\0' ) {
- script->setd_sub( st, NULL, ".@atcmd_parameters$", j++, (void *)temp, NULL );
+ len = strlen(message);
+ if (len) {
+ char *temp, *p;
+ p = temp = aStrdup(message);
+ // Sanity check - Skip leading spaces (shouldn't happen)
+ while (i <= len && temp[i] == ' ') {
+ p++;
+ i++;
+ }
+ // split atcmd parameters based on spaces
+ while (i <= len) {
+ if (temp[i] != ' ' && temp[i] != '\0') {
+ i++;
+ continue;
}
- } else {
- temp[k] = message[i];
- k++;
+ temp[i] = '\0';
+ script->setd_sub(st, NULL, ".@atcmd_parameters$", nargs++, (void *)p, NULL);
+ i++;
+ p = temp + i;
}
+ aFree(temp);
}
-
- script->setd_sub(st, NULL, ".@atcmd_numparameters", 0, (void *)h64BPTRSIZE(j), NULL);
- aFree(temp);
+ script->setd_sub(st, NULL, ".@atcmd_numparameters", 0, (void *)h64BPTRSIZE(nargs), NULL);
script->run_main(st);
return 0;
@@ -3447,7 +3472,7 @@ const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const char* st
// w4=<mob id>,<amount>,<delay1>,<delay2>,<event>{,<mob size>,<mob ai>}
if( sscanf(w1, "%31[^,],%d,%d,%d,%d", mapname, &x, &y, &xs, &ys) < 3
|| sscanf(w3, "%23[^,],%d", mobname, &mob_lv) < 1
- || sscanf(w4, "%d,%d,%u,%u,%127[^,],%d,%d[^\t\r\n]", &class_, &num, &mobspawn.delay1, &mobspawn.delay2, mobspawn.eventname, &size, &ai) < 2
+ || sscanf(w4, "%d,%d,%u,%u,%50[^,],%d,%d[^\t\r\n]", &class_, &num, &mobspawn.delay1, &mobspawn.delay2, mobspawn.eventname, &size, &ai) < 2
) {
ShowError("npc_parse_mob: Invalid mob definition in file '%s', line '%d'.\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
if (retval) *retval = EXIT_FAILURE;
@@ -3597,9 +3622,17 @@ const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const char* st
return strchr(start,'\n');// continue
}
+
+void npc_parse_unknown_mapflag(const char *name, char *w3, char *w4, const char* start, const char* buffer, const char* filepath, int *retval)
+{
+ ShowError("npc_parse_mapflag: unrecognized mapflag '%s' in file '%s', line '%d'.\n", w3, filepath, strline(buffer,start-buffer));
+ if (retval)
+ *retval = EXIT_FAILURE;
+}
+
/*==========================================
* Set or disable mapflag on map
- * eg : bat_c01 mapflag battleground 2
+ * eg : bat_c01<TAB>mapflag<TAB>battleground<TAB>2
* also chking if mapflag conflict with another
*------------------------------------------*/
const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath, int *retval) {
@@ -3623,7 +3656,7 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char
}
if (w4 && !strcmpi(w4, "off"))
- state = 0; //Disable mapflag rather than enable it. [Skotlex]
+ state = 0; //Disable mapflag rather than enable it. [Skotlex]
if (!strcmpi(w3, "nosave")) {
char savemap[32];
@@ -3689,7 +3722,7 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char
if( state && (zone = strdb_get(map->zone_db, MAP_ZONE_PVP_NAME)) && map->list[m].zone != zone ) {
map->zone_change(m,zone,start,buffer,filepath);
} else if ( !state ) {
- map->list[m].zone = &map->zone_pk;
+ map->list[m].zone = &map->zone_all;
}
}
else if (!strcmpi(w3,"pvp_noparty"))
@@ -4004,13 +4037,20 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char
} else if ( !strcmpi(w3,"nocashshop") ) {
map->list[m].flag.nocashshop = (state) ? 1 : 0;
} else {
- ShowError("npc_parse_mapflag: unrecognized mapflag '%s' in file '%s', line '%d'.\n", w3, filepath, strline(buffer,start-buffer));
- if (retval) *retval = EXIT_FAILURE;
+ npc->parse_unknown_mapflag(mapname, w3, w4, start, buffer, filepath, retval);
}
return strchr(start,'\n');// continue
}
+const char* npc_parse_unknown_object(char *w1, char *w2, char *w3, char *w4, const char* start, const char* buffer, const char* filepath, int *retval)
+{
+ ShowError("npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in file '%s', line '%d'. Skipping line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
+ start = strchr(start,'\n');// skip and continue
+ *retval = EXIT_FAILURE;
+ return start;
+}
+
/**
* Parses a script file and creates NPCs/functions/mapflags/monsters/etc
* accordingly.
@@ -4175,9 +4215,6 @@ int npc_parsesrcfile(const char* filepath, bool runOnInit) {
if( strcmp(w1,"function") == 0 ) {
p = npc->parse_function(w1, w2, w3, w4, p, buffer, filepath, &success);
} else {
-#ifdef ENABLE_CASE_CHECK
- if( strcasecmp(w1, "function") == 0 ) DeprecationWarning("npc_parsesrcfile", w1, "function", filepath, strline(buffer, p-buffer)); // TODO
-#endif // ENABLE_CASE_CHECK
p = npc->parse_script(w1,w2,w3,w4, p, buffer, filepath,runOnInit?NPO_ONINIT:NPO_NONE, &success);
}
}
@@ -4202,25 +4239,7 @@ int npc_parsesrcfile(const char* filepath, bool runOnInit) {
}
else
{
-#ifdef ENABLE_CASE_CHECK
- if( strcasecmp(w2, "warp") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "warp", filepath, strline(buffer, p-buffer)); } // TODO
- else if( strcasecmp(w2,"shop") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "shop", filepath, strline(buffer, p-buffer)); } // TODO
- else if( strcasecmp(w2,"cashshop") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "cashshop", filepath, strline(buffer, p-buffer)); } // TODO
- else if( strcasecmp(w2, "script") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "script", filepath, strline(buffer, p-buffer)); } // TODO
- else if( strcasecmp(w2,"trader") == 0 ) DeprecationWarning("npc_parsesrcfile", w2, "trader", filepath, strline(buffer, p-buffer)) // TODO
- else if( strncasecmp(w2, "duplicate", 9) == 0 ) {
- char temp[10];
- safestrncpy(temp, w2, 10);
- DeprecationWarning("npc_parsesrcfile", temp, "duplicate", filepath, strline(buffer, p-buffer)); // TODO
- }
- else if( strcasecmp(w2,"monster") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "monster", filepath, strline(buffer, p-buffer)); } // TODO:
- else if( strcasecmp(w2,"boss_monster") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "boss_monster", filepath, strline(buffer, p-buffer)); } // TODO
- else if( strcasecmp(w2, "mapflag") == 0 ) { DeprecationWarning("npc_parsesrcfile", w2, "mapflag", filepath, strline(buffer, p-buffer)); } // TODO
- else
-#endif // ENABLE_CASE_CHECK
- ShowError("npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in file '%s', line '%d'. Skipping line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,p-buffer), w1, w2, w3, w4);
- p = strchr(p,'\n');// skip and continue
- success = EXIT_FAILURE;
+ p = npc->parse_unknown_object(w1, w2, w3, w4, p, buffer, filepath, &success);
}
}
aFree(buffer);
@@ -4289,7 +4308,7 @@ void npc_read_event_script(void)
script_event[i].event_count++;
#ifdef ENABLE_CASE_CHECK
} else if( p && strcasecmp(name, p) == 0 ) {
- DeprecationWarning2("npc_read_event_script", p, name, config[i].event_name); // TODO
+ DeprecationCaseWarning("npc_read_event_script", p, name, config[i].event_name); // TODO
#endif // ENABLE_CASE_CHECK
}
}
@@ -4623,6 +4642,7 @@ void npc_defaults(void) {
npc->isnear = npc_isnear;
npc->ontouch_event = npc_ontouch_event;
npc->ontouch2_event = npc_ontouch2_event;
+ npc->onuntouch_event = npc_onuntouch_event;
npc->enable_sub = npc_enable_sub;
npc->enable = npc_enable;
npc->name2id = npc_name2id;
@@ -4647,6 +4667,7 @@ void npc_defaults(void) {
npc->touch_areanpc_sub = npc_touch_areanpc_sub;
npc->touchnext_areanpc = npc_touchnext_areanpc;
npc->touch_areanpc = npc_touch_areanpc;
+ npc->untouch_areanpc = npc_untouch_areanpc;
npc->touch_areanpc2 = npc_touch_areanpc2;
npc->check_areanpc = npc_check_areanpc;
npc->checknear = npc_checknear;
@@ -4673,6 +4694,7 @@ void npc_defaults(void) {
npc->parsename = npc_parsename;
npc->parseview = npc_parseview;
npc->viewisid = npc_viewisid;
+ npc->create_npc = npc_create_npc;
npc->add_warp = npc_add_warp;
npc->parse_warp = npc_parse_warp;
npc->parse_shop = npc_parse_shop;
@@ -4692,7 +4714,9 @@ void npc_defaults(void) {
npc->parse_mob2 = npc_parse_mob2;
npc->parse_mob = npc_parse_mob;
npc->parse_mapflag = npc_parse_mapflag;
+ npc->parse_unknown_mapflag = npc_parse_unknown_mapflag;
npc->parsesrcfile = npc_parsesrcfile;
+ npc->parse_unknown_object = npc_parse_unknown_object;
npc->script_event = npc_script_event;
npc->read_event_script = npc_read_event_script;
npc->path_db_clear_sub = npc_path_db_clear_sub;
diff --git a/src/map/npc.h b/src/map/npc.h
index 4c904e1ac..a5a2b4676 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -61,7 +61,8 @@ struct npc_data {
int touching_id;
int64 next_walktime;
uint8 dir;
-
+ uint8 area_size;
+
unsigned size : 2;
struct status_data status;
@@ -181,6 +182,7 @@ struct npc_interface {
bool (*isnear) (struct block_list *bl);
int (*ontouch_event) (struct map_session_data *sd, struct npc_data *nd);
int (*ontouch2_event) (struct map_session_data *sd, struct npc_data *nd);
+ int (*onuntouch_event) (struct map_session_data *sd, struct npc_data *nd);
int (*enable_sub) (struct block_list *bl, va_list ap);
int (*enable) (const char *name, int flag);
struct npc_data* (*name2id) (const char *name);
@@ -205,6 +207,7 @@ struct npc_interface {
int (*touch_areanpc_sub) (struct block_list *bl, va_list ap);
int (*touchnext_areanpc) (struct map_session_data *sd, bool leavemap);
int (*touch_areanpc) (struct map_session_data *sd, int16 m, int16 x, int16 y);
+ int (*untouch_areanpc) (struct map_session_data *sd, int16 m, int16 x, int16 y);
int (*touch_areanpc2) (struct mob_data *md);
int (*check_areanpc) (int flag, int16 m, int16 x, int16 y, int16 range);
struct npc_data* (*checknear) (struct map_session_data *sd, struct block_list *bl);
@@ -231,9 +234,11 @@ struct npc_interface {
void (*parsename) (struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath);
int (*parseview) (const char *w4, const char *start, const char *buffer, const char *filepath);
bool (*viewisid) (const char *viewid);
+ struct npc_data* (*create_npc) (int m, int x, int y);
struct npc_data* (*add_warp) (char *name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y);
const char* (*parse_warp) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
const char* (*parse_shop) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ const char* (*parse_unknown_object) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
void (*convertlabel_db) (struct npc_label_list *label_list, const char *filepath);
const char* (*skip_script) (const char *start, const char *buffer, const char *filepath, int *retval);
const char* (*parse_script) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int options, int *retval);
@@ -250,6 +255,7 @@ struct npc_interface {
void (*parse_mob2) (struct spawn_data *mobspawn);
const char* (*parse_mob) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
const char* (*parse_mapflag) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ void (*parse_unknown_mapflag) (const char *name, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
int (*parsesrcfile) (const char *filepath, bool runOnInit);
int (*script_event) (struct map_session_data *sd, enum npce_event type);
void (*read_event_script) (void);
diff --git a/src/map/packets.h b/src/map/packets.h
index 810f341d4..bb5222e93 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -1654,128 +1654,128 @@ packet(0x020d,-1);
packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4,6); // Booking System
packet(0x0803,4);
packet(0x0804,8); // Booking System
- packet(0x0805,-1);
- packet(0x0806,4,clif->pPartyBookingDeleteReq,2);// Booking System
- //packet(0x0807,2);
- packet(0x0808,4); // Booking System
- //packet(0x0809,14);
- //packet(0x080A,50);
- //packet(0x080B,18);
- //packet(0x080C,6);
-#endif
-
- //2009-12-29aRagexeRE
+ packet(0x0805,-1);
+ packet(0x0806,4,clif->pPartyBookingDeleteReq,2);// Booking System
+ //packet(0x0807,2);
+ packet(0x0808,4); // Booking System
+ //packet(0x0809,14);
+ //packet(0x080A,50);
+ //packet(0x080B,18);
+ //packet(0x080C,6);
+#endif
+
+ //2009-12-29aRagexeRE
#if PACKETVER >= 20091229
- packet(0x0804,14,clif->pPartyBookingSearchReq,2,4,6,8,12);// Booking System
- packet(0x0806,2,clif->pPartyBookingDeleteReq,0);// Booking System
- packet(0x0807,4);
- packet(0x0808,14,clif->pPartyBookingUpdateReq,2); // Booking System
- packet(0x0809,50);
- packet(0x080A,18);
- packet(0x080B,6);// Booking System
-#endif
-
- //2010-01-05aRagexeRE
+ packet(0x0804,14,clif->pPartyBookingSearchReq,2,4,6,8,12);// Booking System
+ packet(0x0806,2,clif->pPartyBookingDeleteReq,0);// Booking System
+ packet(0x0807,4);
+ packet(0x0808,14,clif->pPartyBookingUpdateReq,2); // Booking System
+ packet(0x0809,50);
+ packet(0x080A,18);
+ packet(0x080B,6);// Booking System
+#endif
+
+ //2010-01-05aRagexeRE
#if PACKETVER >= 20100105
- packet(0x0801,-1,clif->pPurchaseReq2,2,4,8,12);
+ packet(0x0801,-1,clif->pPurchaseReq2,2,4,8,12);
#endif
-
- //2010-01-26aRagexeRE
+
+ //2010-01-26aRagexeRE
#if PACKETVER >= 20100126
- //packet(0x080C,2);
- //packet(0x080D,3);
- packet(0x080E,14);
+ //packet(0x080C,2);
+ //packet(0x080D,3);
+ packet(0x080E,14);
#endif
-
- //2010-02-09aRagexeRE
+
+ //2010-02-09aRagexeRE
#if PACKETVER >= 20100209
- //packet(0x07F0,6);
+ //packet(0x07F0,6);
#endif
-
- //2010-02-23aRagexeRE
+
+ //2010-02-23aRagexeRE
#if PACKETVER >= 20100223
- packet(0x080F,20);
+ packet(0x080F,20);
#endif
-
- //2010-03-03aRagexeRE
+
+ //2010-03-03aRagexeRE
#if PACKETVER >= 20100303
- packet(0x0810,3);
- packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- //packet(0x0812,86);
- //packet(0x0813,6);
- //packet(0x0814,6);
- //packet(0x0815,-1);
- //packet(0x0817,-1);
- //packet(0x0818,6);
- //packet(0x0819,4);
-#endif
-
- //2010-03-09aRagexeRE
+ packet(0x0810,3);
+ packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ //packet(0x0812,86);
+ //packet(0x0813,6);
+ //packet(0x0814,6);
+ //packet(0x0815,-1);
+ //packet(0x0817,-1);
+ //packet(0x0818,6);
+ //packet(0x0819,4);
+#endif
+
+ //2010-03-09aRagexeRE
#if PACKETVER >= 20100309
- packet(0x0813,-1);
- //packet(0x0814,2);
- //packet(0x0815,6);
- packet(0x0816,6);
- packet(0x0818,-1);
- //packet(0x0819,10);
- //packet(0x081A,4);
- //packet(0x081B,4);
- //packet(0x081C,6);
- packet(0x081d,22);
- packet(0x081e,8);
-#endif
-
- //2010-03-23aRagexeRE
+ packet(0x0813,-1);
+ //packet(0x0814,2);
+ //packet(0x0815,6);
+ packet(0x0816,6);
+ packet(0x0818,-1);
+ //packet(0x0819,10);
+ //packet(0x081A,4);
+ //packet(0x081B,4);
+ //packet(0x081C,6);
+ packet(0x081d,22);
+ packet(0x081e,8);
+#endif
+
+ //2010-03-23aRagexeRE
#if PACKETVER >= 20100323
- //packet(0x081F,-1);
+ //packet(0x081F,-1);
#endif
-
- //2010-04-06aRagexeRE
+
+ //2010-04-06aRagexeRE
#if PACKETVER >= 20100406
- //packet(0x081A,6);
+ //packet(0x081A,6);
#endif
-
- //2010-04-13aRagexeRE
+
+ //2010-04-13aRagexeRE
#if PACKETVER >= 20100413
- //packet(0x081A,10);
- packet(0x0820,11);
- //packet(0x0821,2);
- //packet(0x0822,9);
- //packet(0x0823,-1);
-#endif
-
- //2010-04-14dRagexeRE
+ //packet(0x081A,10);
+ packet(0x0820,11);
+ //packet(0x0821,2);
+ //packet(0x0822,9);
+ //packet(0x0823,-1);
+#endif
+
+ //2010-04-14dRagexeRE
#if PACKETVER >= 20100414
- //packet(0x081B,8);
+ //packet(0x081B,8);
#endif
-
- //2010-04-20aRagexeRE
+
+ //2010-04-20aRagexeRE
#if PACKETVER >= 20100420
- packet(0x0812,8);
- packet(0x0814,86);
- packet(0x0815,2,clif->pReqCloseBuyingStore,0);
- packet(0x0817,6,clif->pReqClickBuyingStore,2);
- packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x081a,4);
- packet(0x081b,10);
- packet(0x081c,10);
- packet(0x0824,6);
-#endif
-
- //2010-06-01aRagexeRE
+ packet(0x0812,8);
+ packet(0x0814,86);
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0);
+ packet(0x0817,6,clif->pReqClickBuyingStore,2);
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12);
+ packet(0x081a,4);
+ packet(0x081b,10);
+ packet(0x081c,10);
+ packet(0x0824,6);
+#endif
+
+ //2010-06-01aRagexeRE
#if PACKETVER >= 20100601
- //packet(0x0825,-1);
- //packet(0x0826,4);
- packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0836,-1);
- packet(0x0837,3);
- //packet(0x0838,3);
-#endif
-
- //2010-06-08aRagexeRE
+ //packet(0x0825,-1);
+ //packet(0x0826,4);
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
+ packet(0x0836,-1);
+ packet(0x0837,3);
+ //packet(0x0838,3);
+#endif
+
+ //2010-06-08aRagexeRE
#if PACKETVER >= 20100608
- packet(0x0838,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x083A,4); // Search Stalls Feature
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0);
+ packet(0x083A,4); // Search Stalls Feature
packet(0x083B,2,clif->pCloseSearchStoreInfo,0);
packet(0x083C,12,clif->pSearchStoreInfoListItemClick,2,6,10);
packet(0x083D,6);
@@ -2415,7 +2415,7 @@ packet(0x020d,-1);
packet(0x0873,36,clif->pStoragePassword,0);
packet(0x097C,4,clif->pRanklist);
#endif
-
+
//2013-08-07Ragexe (Shakto)
#if PACKETVER >= 20130807
packet(0x0369,7,clif->pActionRequest,2,6);
@@ -2700,7 +2700,7 @@ packet(0x020d,-1);
#endif
// 2014-04-02gRagexe - Themon
-#if PACKETVER >= 20140402
+#if PACKETVER >= 20140402
packet(0x0946,7,clif->pActionRequest,2,6);
packet(0x0868,10,clif->pUseSkillToId,2,4,6);
packet(0x093F,5,clif->pWalkToXY,2);
@@ -2734,7 +2734,7 @@ packet(0x020d,-1);
#endif
// 2014-04-16aRagexe - Themon
-#if PACKETVER >= 20140416
+#if PACKETVER >= 20140416
packet(0x0369,7,clif->pActionRequest,2,6);
packet(0x083C,10,clif->pUseSkillToId,2,4,6);
packet(0x0437,5,clif->pWalkToXY,2);
@@ -2767,6 +2767,121 @@ packet(0x020d,-1);
packet(0x09DF,7);
#endif
+// 2014-10-22bRagexe - YomRawr
+#if PACKETVER >= 20141022
+ packet(0x0369,7,clif->pActionRequest,2,6);
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6);
+ packet(0x0437,5,clif->pWalkToXY,2);
+ packet(0x035F,6,clif->pTickSend,2);
+ packet(0x08AD,5,clif->pChangeDir,2,4);
+ packet(0x094E,6,clif->pTakeItem,2);
+ packet(0x087D,6,clif->pDropItem,2,4);
+ packet(0x0878,8,clif->pMoveToKafra,2,4);
+ packet(0x08AA,8,clif->pMoveFromKafra,2,4);
+ packet(0x023B,10,clif->pUseSkillToPos,2,4,6,8);
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
+ packet(0x096A,6,clif->pGetCharNameRequest,2);
+ packet(0x0368,6,clif->pSolveCharName,2);
+ packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0);
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
+ packet(0x0360,6,clif->pReqClickBuyingStore,2);
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0);
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4);
+ // packet(0x092B,8); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x093B,19,clif->pWantToConnection,2,6,10,14,18);
+ packet(0x0896,26,clif->pPartyInvite2,2);
+ // packet(0x08AB,4); // CZ_GANGSI_RANK
+ packet(0x091A,26,clif->pFriendsListAdd,2);
+ packet(0x0899,5,clif->pHomMenu,2,4);
+ packet(0x0438,36,clif->pStoragePassword,0);
+#endif
+
+// 2014-10-16aRagexe - YomRawr
+#if PACKETVER >= 20141016
+ packet(0x0369,7,clif->pActionRequest,2,6);
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6);
+ packet(0x0437,5,clif->pWalkToXY,2);
+ packet(0x035F,6,clif->pTickSend,2);
+ packet(0x0967,5,clif->pChangeDir,2,4);
+ packet(0x07E4,6,clif->pTakeItem,2);
+ packet(0x0362,6,clif->pDropItem,2,4);
+ packet(0x07EC,8,clif->pMoveToKafra,2,4);
+ packet(0x022D,8,clif->pMoveFromKafra,2,4);
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
+ packet(0x096A,6,clif->pGetCharNameRequest,2);
+ packet(0x0368,6,clif->pSolveCharName,2);
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
+ packet(0x0360,6,clif->pReqClickBuyingStore,2);
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0);
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
+ // packet(0x0363,8); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x086E,19,clif->pWantToConnection,2,6,10,14,18);
+ packet(0x0802,26,clif->pPartyInvite2,2);
+ // packet(0x0922,4); // CZ_GANGSI_RANK
+ packet(0x094B,26,clif->pFriendsListAdd,2);
+ packet(0x0364,5,clif->pHomMenu,2,4);
+ packet(0x0936,36,clif->pStoragePassword,0);
+ packet(0x09DF,7);
+ packet(0x0a00,269);
+#endif
+
+// 2014-10-22bRagexe - YomRawr
+#if PACKETVER >= 20141022
+ packet(0x0369,7,clif->pActionRequest,2,6);
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6);
+ packet(0x0437,5,clif->pWalkToXY,2);
+ packet(0x035F,6,clif->pTickSend,2);
+ packet(0x08AD,5,clif->pChangeDir,2,4);
+ packet(0x094E,6,clif->pTakeItem,2);
+ packet(0x087D,6,clif->pDropItem,2,4);
+ packet(0x0878,8,clif->pMoveToKafra,2,4);
+ packet(0x08AA,8,clif->pMoveFromKafra,2,4);
+ packet(0x023B,10,clif->pUseSkillToPos,2,4,6,8);
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
+ packet(0x096A,6,clif->pGetCharNameRequest,2);
+ packet(0x0368,6,clif->pSolveCharName,2);
+ packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0);
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
+ packet(0x0360,6,clif->pReqClickBuyingStore,2);
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0);
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4);
+ // packet(0x092B,8); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x093B,19,clif->pWantToConnection,2,6,10,14,18);
+ packet(0x0896,26,clif->pPartyInvite2,2);
+ // packet(0x08AB,4); // CZ_GANGSI_RANK
+ packet(0x091A,26,clif->pFriendsListAdd,2);
+ packet(0x0899,5,clif->pHomMenu,2,4);
+ packet(0x0438,36,clif->pStoragePassword,0);
+#endif
+
+/* Roulette System [Yommy/Hercules] */
+#if PACKETVER >= 20141016
+ packet(0x0A19,2,clif->pRouletteOpen,0); // HEADER_CZ_REQ_OPEN_ROULETTE
+ packet(0x0A1A,23); // HEADER_ZC_ACK_OPEN_ROULETTE
+ packet(0x0A1B,2,clif->pRouletteInfo,0); // HEADER_CZ_REQ_ROULETTE_INFO
+ packet(0x0A1C,-1); // HEADER_ZC_ACK_ROULEITTE_INFO
+ packet(0x0A1D,2,clif->pRouletteClose,0); // HEADER_CZ_REQ_CLOSE_ROULETTE
+ packet(0x0A1E,3); // HEADER_ZC_ACK_CLOSE_ROULETTE
+ packet(0x0A1F,2,clif->pRouletteGenerate,0); // HEADER_CZ_REQ_GENERATE_ROULETTE
+ packet(0x0A20,21); // HEADER_ZC_ACK_GENERATE_ROULETTE
+ packet(0x0A21,3,clif->pRouletteRecvItem,2); // HEADER_CZ_RECV_ROULETTE_ITEM
+ packet(0x0A22,5); // HEADER_ZC_RECV_ROULETTE_ITEM
+#endif
+
/* PacketKeys: http://hercules.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
#if PACKETVER >= 20110817
packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED); /* Thanks to Shakto */
@@ -2998,6 +3113,18 @@ packet(0x020d,-1);
packetKeys(0x04810281,0x42814281,0x42814281); /* Themon */
#endif
+#if PACKETVER >= 20141022
+ packetKeys(0x290551EA,0x2B952C75,0x2D67669B); /* YomRawr */
+#endif
+
+#if PACKETVER >= 20141016
+ packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F); /* YomRawr */
+#endif
+
+#if PACKETVER >= 20141022
+ packetKeys(0x290551EA,0x2B952C75,0x2D67669B); /* YomRawr */
+#endif
+
#if defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
packetKeys(OBFUSCATIONKEY1,OBFUSCATIONKEY2,OBFUSCATIONKEY3);
#endif
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index b32baf53a..71471e5c6 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -77,8 +77,10 @@ enum packet_headers {
#endif
#if PACKETVER < 20080102
authokType = 0x73,
-#else
+#elif PACKETVER < 20141022
authokType = 0x2eb,
+#else
+ authokType = 0xa18,
#endif
script_clearType = 0x8d6,
package_item_announceType = 0x7fd,
@@ -209,6 +211,10 @@ enum packet_headers {
#else
wisendType = 0x98,
#endif
+ partyleaderchangedType = 0x7fc,
+ rouletteinfoackType = 0xa1c,
+ roulettgenerateackType = 0xA20,
+ roulettercvitemackType = 0xA22,
};
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
@@ -273,10 +279,10 @@ struct EQUIPITEM_INFO {
int HireExpireDate;
#endif
#if PACKETVER >= 20080102
- unsigned short bindOnEquipType;
+ unsigned short bindOnEquipType;
#endif
#if PACKETVER >= 20100629
- unsigned short wItemSpriteNumber;
+ unsigned short wItemSpriteNumber;
#endif
#if PACKETVER >= 20120925
struct {
@@ -297,6 +303,9 @@ struct packet_authok {
#if PACKETVER >= 20080102
short font;
#endif
+#if PACKETVER >= 20141022
+ unsigned char sex;
+#endif
} __attribute__((packed));
struct packet_monster_hp {
@@ -663,7 +672,7 @@ struct packet_bgqueue_register {
struct packet_bgqueue_update_info {
short PacketType;
char bg_name[NAME_LENGTH];
- int position;
+ int position;
} __attribute__((packed));
struct packet_bgqueue_checkstate {
@@ -761,6 +770,58 @@ struct packet_banking_withdraw_ack {
int Balance;
} __attribute__((packed));
+/* Roulette System [Yommy/Hercules] */
+struct packet_roulette_open_ack {
+ short PacketType;
+ char Result;
+ int Serial;
+ char Step;
+ char Idx;
+ short AdditionItemID;
+ int GoldPoint;
+ int SilverPoint;
+ int BronzePoint;
+} __attribute__((packed));
+
+struct packet_roulette_info_ack {
+ short PacketType;
+ short PacketLength;
+ unsigned int RouletteSerial;
+ struct {
+ unsigned short Row;
+ unsigned short Position;
+ unsigned short ItemId;
+ unsigned short Count;
+ } ItemInfo[42];
+} __attribute__((packed));
+
+struct packet_roulette_close_ack {
+ short PacketType;
+ unsigned char Result;
+} __attribute__((packed));
+
+struct packet_roulette_generate_ack {
+ short PacketType;
+ unsigned char Result;
+ unsigned short Step;
+ unsigned short Idx;
+ unsigned short AdditionItemID;
+ int RemainGold;
+ int RemainSilver;
+ int RemainBronze;
+} __attribute__((packed));
+
+struct packet_roulette_itemrecv_req {
+ short PacketType;
+ unsigned char Condition;
+} __attribute__((packed));
+
+struct packet_roulette_itemrecv_ack {
+ short PacketType;
+ unsigned char Result;
+ unsigned short AdditionItemID;
+} __attribute__((packed));
+
struct packet_itemlist_normal {
short PacketType;
short PacketLength;
@@ -959,6 +1020,13 @@ struct packet_wis_end {
} __attribute__((packed));
+struct packet_party_leader_changed {
+ short PacketType;
+ unsigned int prev_leader_aid;
+ unsigned int new_leader_aid;
+} __attribute__((packed));
+
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris
diff --git a/src/map/party.c b/src/map/party.c
index 7cf340edb..668251b5d 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -11,7 +11,7 @@
#include <stdlib.h>
#include <string.h>
-#include "atcommand.h" //msg_txt()
+#include "atcommand.h" //msg_txt()
#include "battle.h"
#include "clif.h"
#include "instance.h"
@@ -41,7 +41,7 @@ struct party_interface party_s;
* Used when creating/adding people to a party. [Skotlex]
*------------------------------------------*/
void party_fill_member(struct party_member* member, struct map_session_data* sd, unsigned int leader) {
- member->account_id = sd->status.account_id;
+ member->account_id = sd->status.account_id;
member->char_id = sd->status.char_id;
safestrncpy(member->name, sd->status.name, NAME_LENGTH);
member->class_ = sd->status.class_;
@@ -87,8 +87,8 @@ TBL_PC* party_sd_check(int party_id, int account_id, int char_id) {
if( sd->status.party_id == 0 )
sd->status.party_id = party_id;// auto-join if not in a party
- if (sd->status.party_id != party_id)
- { //If player belongs to a different party, kick him out.
+ if (sd->status.party_id != party_id) {
+ //If player belongs to a different party, kick him out.
intif->party_leave(party_id,account_id,char_id);
return NULL;
}
@@ -674,8 +674,8 @@ bool party_changeleader(struct map_session_data *sd, struct map_session_data *ts
if (mi == MAX_PARTY)
return false; //Shouldn't happen
- if (!p->party.member[mi].leader)
- { //Need to be a party leader.
+ if (!p->party.member[mi].leader) {
+ //Need to be a party leader.
clif->message(sd->fd, msg_txt(282));
return false;
}
@@ -686,12 +686,10 @@ bool party_changeleader(struct map_session_data *sd, struct map_session_data *ts
//Change leadership.
p->party.member[mi].leader = 0;
- if (p->data[mi].sd->fd)
- clif->message(p->data[mi].sd->fd, msg_txt(284));
-
p->party.member[tmi].leader = 1;
- if (p->data[tmi].sd->fd)
- clif->message(p->data[tmi].sd->fd, msg_txt(285));
+
+ /** update members **/
+ clif->PartyLeaderChanged(p->data[mi].sd, p->data[mi].sd->status.account_id, p->data[tmi].sd->status.account_id);
//Update info.
intif->party_leaderchange(p->party.party_id,p->party.member[tmi].account_id,p->party.member[tmi].char_id);
@@ -981,14 +979,14 @@ int party_share_loot(struct party_data* p, struct map_session_data* sd, struct i
if (p && p->party.item&2 && (first_charid || !(battle_config.party_share_type&1)))
{
//item distribution to party members.
- if (battle_config.party_share_type&2)
- { //Round Robin
+ if (battle_config.party_share_type&2) {
+ //Round Robin
TBL_PC* psd;
i = p->itemc;
do {
i++;
if (i >= MAX_PARTY)
- i = 0; // reset counter to 1st person in party so it'll stop when it reaches "itemc"
+ i = 0; // reset counter to 1st person in party so it'll stop when it reaches "itemc"
if( (psd = p->data[i].sd) == NULL || sd->bl.m != psd->bl.m || pc_isdead(psd) || (battle_config.idle_no_share && pc_isidle(psd)) )
continue;
@@ -1001,9 +999,8 @@ int party_share_loot(struct party_data* p, struct map_session_data* sd, struct i
target = psd;
break;
} while (i != p->itemc);
- }
- else
- { //Random pick
+ } else {
+ //Random pick
TBL_PC* psd[MAX_PARTY];
int count = 0;
//Collect pick candidates
@@ -1015,11 +1012,12 @@ int party_share_loot(struct party_data* p, struct map_session_data* sd, struct i
}
while (count > 0) { //Pick a random member.
i = rnd()%count;
- if (pc->additem(psd[i],item_data,item_data->amount,LOG_TYPE_PICKDROP_PLAYER))
- { //Discard this receiver.
+ if (pc->additem(psd[i],item_data,item_data->amount,LOG_TYPE_PICKDROP_PLAYER)) {
+ //Discard this receiver.
psd[i] = psd[count-1];
count--;
- } else { //Successful pick.
+ } else {
+ //Successful pick.
target = psd[i];
break;
}
@@ -1174,7 +1172,7 @@ void party_recruit_register(struct map_session_data *sd, short level, const char
memcpy(pb_ad->charname,sd->status.name,NAME_LENGTH);
pb_ad->expiretime = (int)time(NULL);
- pb_ad->p_detail.level = level;
+ pb_ad->p_detail.level = level;
safestrncpy(pb_ad->p_detail.notice, notice, PB_NOTICE_LENGTH);
clif->PartyRecruitRegisterAck(sd, 0);
@@ -1187,7 +1185,7 @@ void party_recruit_register(struct map_session_data *sd, short level, const char
void party_booking_register(struct map_session_data *sd, short level, short mapid, short* job) {
#ifndef PARTY_RECRUIT
struct party_booking_ad_info *pb_ad;
- int i;
+ int i;
pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id);
@@ -1204,7 +1202,7 @@ void party_booking_register(struct map_session_data *sd, short level, short mapi
memcpy(pb_ad->charname,sd->status.name,NAME_LENGTH);
pb_ad->expiretime = (int)time(NULL);
- pb_ad->p_detail.level = level;
+ pb_ad->p_detail.level = level;
pb_ad->p_detail.mapid = mapid;
for(i=0;i<PARTY_BOOKING_JOBS;i++)
diff --git a/src/map/party.h b/src/map/party.h
index d62db23a7..f6cd448a6 100644
--- a/src/map/party.h
+++ b/src/map/party.h
@@ -30,12 +30,12 @@ struct party_data {
short *instance;
unsigned short instances;
struct {
- unsigned monk : 1; //There's at least one monk in party?
- unsigned sg : 1; //There's at least one Star Gladiator in party?
- unsigned snovice :1; //There's a Super Novice
- unsigned tk : 1; //There's a taekwon
+ unsigned monk : 1; ///< There's at least one monk in party?
+ unsigned sg : 1; ///< There's at least one Star Gladiator in party?
+ unsigned snovice :1; ///< There's a Super Novice
+ unsigned tk : 1; ///< There's a taekwon
} state;
-
+
/* HPM Custom Struct */
struct HPluginData **hdata;
unsigned int hdatac;
@@ -46,8 +46,8 @@ struct party_data {
#ifndef PARTY_RECRUIT
struct party_booking_detail {
short level;
- short mapid;
- short job[PARTY_BOOKING_JOBS];
+ short mapid;
+ short job[PARTY_BOOKING_JOBS];
};
struct party_booking_ad_info {
@@ -87,7 +87,7 @@ struct party_interface {
struct party_data* (*searchname) (const char* str);
int (*getmemberid) (struct party_data* p, struct map_session_data* sd);
struct map_session_data* (*getavailablesd) (struct party_data *p);
-
+
int (*create) (struct map_session_data *sd,char *name, int item, int item2);
void (*created) (int account_id,int char_id,int fail,int party_id,char *name);
int (*request_info) (int party_id, int char_id);
diff --git a/src/map/path.c b/src/map/path.c
index 5a9ddf9c7..a7315da3c 100644
--- a/src/map/path.c
+++ b/src/map/path.c
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <math.h>
#include "map.h"
#include "../common/cbasetypes.h"
@@ -52,7 +53,7 @@ BHEAP_STRUCT_DECL(node_heap, struct path_node*);
/// Estimates the cost from (x0,y0) to (x1,y1).
/// This is inadmissible (overestimating) heuristic used by game client.
-#define heuristic(x0, y0, x1, y1) (MOVE_COST * (abs((x1) - (x0)) + abs((y1) - (y0)))) // Manhattan distance
+#define heuristic(x0, y0, x1, y1) (MOVE_COST * (abs((x1) - (x0)) + abs((y1) - (y0)))) // Manhattan distance
/// @}
// Translates dx,dy into walking direction
@@ -128,9 +129,6 @@ bool path_search_long(struct shootpath_data *spd,int16 m,int16 x0,int16 y0,int16
spd->x[0] = x0;
spd->y[0] = y0;
- if (md->getcellp(md,x1,y1,cell))
- return false;
-
if (dx > abs(dy)) {
weight = dx;
spd->ry = 1;
@@ -141,8 +139,6 @@ bool path_search_long(struct shootpath_data *spd,int16 m,int16 x0,int16 y0,int16
while (x0 != x1 || y0 != y1)
{
- if (md->getcellp(md,x0,y0,cell))
- return false;
wx += dx;
wy += dy;
if (wx >= weight) {
@@ -162,6 +158,8 @@ bool path_search_long(struct shootpath_data *spd,int16 m,int16 x0,int16 y0,int16
spd->y[spd->len] = y0;
spd->len++;
}
+ if (md->getcellp(md,x0,y0,cell))
+ return false;
}
return true;
@@ -176,7 +174,7 @@ static void heap_push_node(struct node_heap *heap, struct path_node *node)
{
#ifndef __clang_analyzer__ // TODO: Figure out why clang's static analyzer doesn't like this
BHEAP_ENSURE(*heap, 1, 256);
- BHEAP_PUSH(*heap, node, NODE_MINTOPCMP, swap_ptr);
+ BHEAP_PUSH2(*heap, node, NODE_MINTOPCMP, swap_ptr);
#endif // __clang_analyzer__
}
@@ -189,8 +187,7 @@ static int heap_update_node(struct node_heap *heap, struct path_node *node)
ShowError("heap_update_node: node not found\n");
return 1;
}
- BHEAP_POPINDEX(*heap, i, NODE_MINTOPCMP, swap_ptr);
- BHEAP_PUSH(*heap, node, NODE_MINTOPCMP, swap_ptr);
+ BHEAP_UPDATE(*heap, i, NODE_MINTOPCMP, swap_ptr);
return 0;
}
@@ -251,12 +248,8 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
return false;
md = &map->list[m];
-#ifdef CELL_NOSTACK
//Do not check starting cell as that would get you stuck.
- if (x0 < 0 || x0 >= md->xs || y0 < 0 || y0 >= md->ys)
-#else
if (x0 < 0 || x0 >= md->xs || y0 < 0 || y0 >= md->ys /*|| md->getcellp(md,x0,y0,cell)*/)
-#endif
return false;
// Check destination cell
@@ -304,7 +297,7 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
// A* (A-star) pathfinding
// We always use A* for finding walkpaths because it is what game client uses.
// Easy pathfinding cuts corners of non-walkable cells, but client always walks around it.
-
+
BHEAP_STRUCT_VAR(node_heap, open_set); // 'Open' set
// FIXME: This array is too small to ensure all paths shorter than MAX_WALKPATH
@@ -327,8 +320,8 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
tp[i].flag = SET_OPEN;
heap_push_node(&open_set, &tp[i]); // Put start node to 'open' set
- for(;;)
- {
+
+ for(;;) {
int e = 0; // error flag
// Saves allowed directions for the current cell. Diagonal directions
@@ -347,7 +340,7 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
}
current = BHEAP_PEEK(open_set); // Look for the lowest f_cost node in the 'open' set
- BHEAP_POP(open_set, NODE_MINTOPCMP, swap_ptr); // Remove it from 'open' set
+ BHEAP_POP2(open_set, NODE_MINTOPCMP, swap_ptr); // Remove it from 'open' set
x = current->x;
y = current->y;
@@ -367,24 +360,22 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
#define chk_dir(d) ((allowed_dirs & (d)) == (d))
// Process neighbors of current node
- // TODO: Processing order affects chosen path if there is more than one path with same cost.
- // In few cases path found by server will be different than path found by game client.
- if (chk_dir(DIR_SOUTH))
- e += add_path(&open_set, tp, x, y-1, g_cost + MOVE_COST, current, heuristic(x, y-1, x1, y1)); // (x, y-1) 4
- if (chk_dir(DIR_SOUTH|DIR_WEST) && !md->getcellp(md, x-1, y-1, cell))
- e += add_path(&open_set, tp, x-1, y-1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x-1, y-1, x1, y1)); // (x-1, y-1) 3
- if (chk_dir(DIR_WEST))
- e += add_path(&open_set, tp, x-1, y, g_cost + MOVE_COST, current, heuristic(x-1, y, x1, y1)); // (x-1, y) 2
- if (chk_dir(DIR_NORTH|DIR_WEST) && !md->getcellp(md, x-1, y+1, cell))
- e += add_path(&open_set, tp, x-1, y+1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x-1, y+1, x1, y1)); // (x-1, y+1) 1
- if (chk_dir(DIR_NORTH))
- e += add_path(&open_set, tp, x, y+1, g_cost + MOVE_COST, current, heuristic(x, y+1, x1, y1)); // (x, y+1) 0
- if (chk_dir(DIR_NORTH|DIR_EAST) && !md->getcellp(md, x+1, y+1, cell))
- e += add_path(&open_set, tp, x+1, y+1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x+1, y+1, x1, y1)); // (x+1, y+1) 7
- if (chk_dir(DIR_EAST))
- e += add_path(&open_set, tp, x+1, y, g_cost + MOVE_COST, current, heuristic(x+1, y, x1, y1)); // (x+1, y) 6
if (chk_dir(DIR_SOUTH|DIR_EAST) && !md->getcellp(md, x+1, y-1, cell))
e += add_path(&open_set, tp, x+1, y-1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x+1, y-1, x1, y1)); // (x+1, y-1) 5
+ if (chk_dir(DIR_EAST))
+ e += add_path(&open_set, tp, x+1, y, g_cost + MOVE_COST, current, heuristic(x+1, y, x1, y1)); // (x+1, y) 6
+ if (chk_dir(DIR_NORTH|DIR_EAST) && !md->getcellp(md, x+1, y+1, cell))
+ e += add_path(&open_set, tp, x+1, y+1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x+1, y+1, x1, y1)); // (x+1, y+1) 7
+ if (chk_dir(DIR_NORTH))
+ e += add_path(&open_set, tp, x, y+1, g_cost + MOVE_COST, current, heuristic(x, y+1, x1, y1)); // (x, y+1) 0
+ if (chk_dir(DIR_NORTH|DIR_WEST) && !md->getcellp(md, x-1, y+1, cell))
+ e += add_path(&open_set, tp, x-1, y+1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x-1, y+1, x1, y1)); // (x-1, y+1) 1
+ if (chk_dir(DIR_WEST))
+ e += add_path(&open_set, tp, x-1, y, g_cost + MOVE_COST, current, heuristic(x-1, y, x1, y1)); // (x-1, y) 2
+ if (chk_dir(DIR_SOUTH|DIR_WEST) && !md->getcellp(md, x-1, y-1, cell))
+ e += add_path(&open_set, tp, x-1, y-1, g_cost + MOVE_DIAGONAL_COST, current, heuristic(x-1, y-1, x1, y1)); // (x-1, y-1) 3
+ if (chk_dir(DIR_SOUTH))
+ e += add_path(&open_set, tp, x, y-1, g_cost + MOVE_COST, current, heuristic(x, y-1, x1, y1)); // (x, y-1) 4
#undef chk_dir
if (e) {
BHEAP_CLEAR(open_set);
@@ -413,7 +404,7 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x
//Distance functions, taken from http://www.flipcode.com/articles/article_fastdistance.shtml
-int check_distance(int dx, int dy, int distance)
+bool check_distance(int dx, int dy, int distance)
{
#ifdef CIRCULAR_AREA
//In this case, we just do a square comparison. Add 1 tile grace for diagonal range checks.
@@ -444,7 +435,7 @@ unsigned int distance(int dx, int dy)
min = dy;
max = dx;
}
- // coefficients equivalent to ( 123/128 * max ) and ( 51/128 * min )
+ // coefficients equivalent to ( 123/128 * max ) and ( 51/128 * min )
return ((( max << 8 ) + ( max << 3 ) - ( max << 4 ) - ( max << 1 ) +
( min << 7 ) - ( min << 5 ) + ( min << 3 ) - ( min << 1 )) >> 8 );
#else
@@ -453,6 +444,42 @@ unsigned int distance(int dx, int dy)
return (dx<dy?dy:dx);
#endif
}
+
+/**
+ * The client uses a circular distance instead of the square one. The circular distance
+ * is only used by units sending their attack commands via the client (not monsters).
+ * @param dx: Horizontal distance
+ * @param dy: Vertical distance
+ * @param distance: Distance to check against
+ * @return Within distance(1); Not within distance(0);
+ */
+bool check_distance_client(int dx, int dy, int distance)
+{
+ if(distance < 0) distance = 0;
+
+ return (path->distance_client(dx,dy) <= distance);
+}
+
+/**
+ * The client uses a circular distance instead of the square one. The circular distance
+ * is only used by units sending their attack commands via the client (not monsters).
+ * @param dx: Horizontal distance
+ * @param dy: Vertical distance
+ * @return Circular distance
+ */
+int distance_client(int dx, int dy)
+{
+ double temp_dist = sqrt((double)(dx*dx + dy*dy));
+
+ //Bonus factor used by client
+ //This affects even horizontal/vertical lines so they are one cell longer than expected
+ temp_dist -= 0.0625;
+
+ if(temp_dist < 0) temp_dist = 0;
+
+ return ((int)temp_dist);
+}
+
void path_defaults(void) {
path = &path_s;
@@ -461,4 +488,6 @@ void path_defaults(void) {
path->search = path_search;
path->check_distance = check_distance;
path->distance = distance;
+ path->check_distance_client = check_distance_client;
+ path->distance_client = distance_client;
}
diff --git a/src/map/path.h b/src/map/path.h
index 8d02e6558..4b71f2189 100644
--- a/src/map/path.h
+++ b/src/map/path.h
@@ -32,6 +32,14 @@ struct shootpath_data {
#define distance_blxy(bl, x1, y1) (path->distance((bl)->x - (x1), (bl)->y - (y1)))
#define distance_xy(x0, y0, x1, y1) (path->distance((x0) - (x1), (y0) - (y1)))
+#define check_distance_client_bl(bl1, bl2, distance) (path->check_distance_client((bl1)->x - (bl2)->x, (bl1)->y - (bl2)->y, distance))
+#define check_distance_client_blxy(bl, x1, y1, distance) (path->check_distance_client((bl)->x-(x1), (bl)->y-(y1), distance))
+#define check_distance_client_xy(x0, y0, x1, y1, distance) (path->check_distance_client((x0)-(x1), (y0)-(y1), distance))
+
+#define distance_client_bl(bl1, bl2) (path->distance_client((bl1)->x - (bl2)->x, (bl1)->y - (bl2)->y))
+#define distance_client_blxy(bl, x1, y1) (path->distance_client((bl)->x-(x1), (bl)->y-(y1)))
+#define distance_client_xy(x0, y0, x1, y1) (path->distance_client((x0)-(x1), (y0)-(y1)))
+
struct path_interface {
// calculates destination cell for knockback
int (*blownpos) (int16 m, int16 x0, int16 y0, int16 dx, int16 dy, int count);
@@ -39,8 +47,10 @@ struct path_interface {
bool (*search) (struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int flag, cell_chk cell);
// tries to find a shootable path
bool (*search_long) (struct shootpath_data *spd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, cell_chk cell);
- int (*check_distance) (int dx, int dy, int distance);
+ bool (*check_distance) (int dx, int dy, int distance);
unsigned int (*distance) (int dx, int dy);
+ bool (*check_distance_client) (int dx, int dy, int distance);
+ int (*distance_client) (int dx, int dy);
};
struct path_interface *path;
diff --git a/src/map/pc.c b/src/map/pc.c
index a6619fad2..e39ddbff2 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -262,9 +262,6 @@ int pc_check_banding( struct block_list *bl, va_list ap ) {
sc = status->get_sc(bl);
- if( bl == src )
- return 0;
-
if( sc && sc->data[SC_BANDING] )
{
b_sd[(*c)++] = tsd->bl.id;
@@ -391,7 +388,8 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
bst = &sd->base_status;
st = &sd->battle_status;
- if (type&1) { //Normal resurrection
+ if (type&1) {
+ //Normal resurrection
st->hp = 1; //Otherwise status->heal may fail if dead.
status->heal(&sd->bl, bst->hp, 0, 1);
if( st->sp < bst->sp )
@@ -557,7 +555,7 @@ int pc_makesavestatus(struct map_session_data *sd)
if(!battle_config.save_clothcolor)
sd->status.clothes_color=0;
- //Only copy the Cart/Peco/Falcon options, the rest are handled via
+ //Only copy the Cart/Peco/Falcon options, the rest are handled via
//status change load/saving. [Skotlex]
#ifdef NEW_CARTS
sd->status.option = sd->sc.option&(OPTION_INVISIBLE|OPTION_FALCON|OPTION_RIDING|OPTION_DRAGON|OPTION_WUG|OPTION_WUGRIDER|OPTION_MADOGEAR);
@@ -588,7 +586,7 @@ int pc_makesavestatus(struct map_session_data *sd)
sd->status.last_point.y = sd->bl.y;
}
- if(map->list[sd->bl.m].flag.nosave || map->list[sd->bl.m].instance_id >= 0) {
+ if( ( map->list[sd->bl.m].flag.nosave && sd->state.autotrade != 2 ) || map->list[sd->bl.m].instance_id >= 0) {
struct map_data *m=&map->list[sd->bl.m];
if(m->save.map)
memcpy(&sd->status.last_point,&m->save,sizeof(sd->status.last_point));
@@ -646,12 +644,15 @@ int pc_equippoint(struct map_session_data *sd,int n)
return 0; //Not equippable by players.
ep = sd->inventory_data[n]->equip;
- if(sd->inventory_data[n]->look == W_DAGGER ||
- sd->inventory_data[n]->look == W_1HSWORD ||
- sd->inventory_data[n]->look == W_1HAXE) {
- if( (pc->checkskill(sd,AS_LEFT) > 0 ||
- (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN ||
- (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) ) { //Kagerou and Oboro can dual wield daggers. [Rytech]
+ if (sd->inventory_data[n]->look == W_DAGGER
+ || sd->inventory_data[n]->look == W_1HSWORD
+ || sd->inventory_data[n]->look == W_1HAXE
+ ) {
+ if (pc->checkskill(sd,AS_LEFT) > 0
+ || (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN
+ || (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO
+ ) {
+ //Kagerou and Oboro can dual wield daggers. [Rytech]
if( ep == EQP_HAND_R )
return EQP_ARMS;
if( ep == EQP_SHADOW_WEAPON )
@@ -756,24 +757,6 @@ int pc_setequipindex(struct map_session_data *sd)
return 0;
}
-//static int pc_isAllowedCardOn(struct map_session_data *sd,int s,int eqindex,int flag)
-//{
-// int i;
-// struct item *item = &sd->status.inventory[eqindex];
-// struct item_data *data;
-//
-// //Crafted/made/hatched items.
-// if (itemdb_isspecial(item->card[0]))
-// return 1;
-//
-// /* scan for enchant armor gems */
-// if( item->card[MAX_SLOTS - 1] && s < MAX_SLOTS - 1 )
-// s = MAX_SLOTS - 1;
-//
-// ARR_FIND( 0, s, i, item->card[i] && (data = itemdb->exists(item->card[i])) != NULL && data->flag.no_equip&flag );
-// return( i < s ) ? 0 : 1;
-//}
-
bool pc_isequipped(struct map_session_data *sd, int nameid)
{
@@ -919,6 +902,16 @@ int pc_isequip(struct map_session_data *sd,int n)
if(item->sex != 2 && sd->status.sex != item->sex)
return 0;
+ if ( item->equip & EQP_AMMO ) {
+ if ( !pc_iscarton(sd) && (sd->status.class_ == JOB_GENETIC_T || sd->status.class_ == JOB_GENETIC) ) {
+ clif->msg(sd, 0x5EF);
+ return 0;
+ }
+ if ( !pc_ismadogear(sd) && (sd->status.class_ == JOB_MECHANIC_T || sd->status.class_ == JOB_MECHANIC) ) {
+ clif->msg(sd, 0x59B);
+ return 0;
+ }
+ }
if (sd->sc.count) {
if(item->equip & EQP_ARMS && item->type == IT_WEAPON && sd->sc.data[SC_NOEQUIPWEAPON]) // Also works with left-hand weapons [DracoRPG]
@@ -962,6 +955,23 @@ int pc_isequip(struct map_session_data *sd,int n)
return 0;
}
+ if ( battle_config.unequip_restricted_equipment & 1 ) {
+ int i;
+ for ( i = 0; i < map->list[sd->bl.m].zone->disabled_items_count; i++ )
+ if ( map->list[sd->bl.m].zone->disabled_items[i] == sd->status.inventory[n].nameid )
+ return 0;
+ }
+
+ if ( battle_config.unequip_restricted_equipment & 2 ) {
+ if ( !itemdb_isspecial( sd->status.inventory[n].card[0] ) ) {
+ int i, slot;
+ for ( slot = 0; slot < MAX_SLOTS; slot++ )
+ for ( i = 0; i < map->list[sd->bl.m].zone->disabled_items_count; i++ )
+ if ( map->list[sd->bl.m].zone->disabled_items[i] == sd->status.inventory[n].card[slot] )
+ return 0;
+ }
+ }
+
return 1;
}
@@ -1205,8 +1215,8 @@ int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
int class_;
if (!sd || !bl || pos < 0 || pos > 2)
return 0;
- if (sd->hate_mob[pos] != -1)
- { //Can't change hate targets.
+ if (sd->hate_mob[pos] != -1) {
+ //Can't change hate targets.
clif->hate_info(sd, pos, sd->hate_mob[pos], 0); //Display current
return 0;
}
@@ -1324,7 +1334,7 @@ int pc_reg_received(struct map_session_data *sd)
clif->pLoadEndAck(sd->fd, sd);
}
- if( sd->sc.option & OPTION_INVISIBLE ) {
+ if (pc_isinvisible(sd)) {
sd->vd.class_ = INVISIBLE_CLASS;
clif->message(sd->fd, msg_txt(11)); // Invisible: On
// decrement the number of pvp players on the map
@@ -1733,7 +1743,7 @@ int pc_disguise(struct map_session_data *sd, int class_) {
if (class_ >= 0 && sd->disguise == class_)
return 0;
- if(sd->sc.option&OPTION_INVISIBLE) { //Character is invisible. Stealth class-change. [Skotlex]
+ if (pc_isinvisible(sd)) { //Character is invisible. Stealth class-change. [Skotlex]
sd->disguise = class_; //viewdata is set on uncloaking.
return 2;
}
@@ -1834,10 +1844,10 @@ int pc_bonus_autospell_onskill(struct s_autospell *spell, int max, short src_ski
return 0;
}
- spell[i].flag = src_skill;
- spell[i].id = id;
- spell[i].lv = lv;
- spell[i].rate = rate;
+ spell[i].flag = src_skill;
+ spell[i].id = id;
+ spell[i].lv = lv;
+ spell[i].rate = rate;
spell[i].card_id = card_id;
return 1;
}
@@ -1914,8 +1924,8 @@ int pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, short
&& race > 0
) {
drop[i].race |= race;
- if(drop[i].rate > 0 && rate > 0)
- { //Both are absolute rates.
+ if (drop[i].rate > 0 && rate > 0) {
+ //Both are absolute rates.
if (drop[i].rate < rate)
drop[i].rate = rate;
} else
@@ -2312,19 +2322,19 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
break;
}
break;
- case SP_SPEED_RATE: //Non stackable increase
+ case SP_SPEED_RATE: //Non stackable increase
if(sd->state.lr_flag != 2)
sd->bonus.speed_rate = min(sd->bonus.speed_rate, -val);
break;
- case SP_SPEED_ADDRATE: //Stackable increase
+ case SP_SPEED_ADDRATE: //Stackable increase
if(sd->state.lr_flag != 2)
sd->bonus.speed_add_rate -= val;
break;
- case SP_ASPD: //Raw increase
+ case SP_ASPD: //Raw increase
if(sd->state.lr_flag != 2)
sd->bonus.aspd_add -= 10*val;
break;
- case SP_ASPD_RATE: //Stackable increase - Made it linear as per rodatazone
+ case SP_ASPD_RATE: //Stackable increase - Made it linear as per rodatazone
if(sd->state.lr_flag != 2)
#ifndef RENEWAL_ASPD
bst->aspd_rate -= 10*val;
@@ -2537,7 +2547,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
if(sd->state.lr_flag != 2)
sd->bonus.magic_damage_return += val;
break;
- case SP_ALL_STATS: // [Valaris]
+ case SP_ALL_STATS: // [Valaris]
if(sd->state.lr_flag!=2) {
sd->param_bonus[SP_STR-SP_STR]+=val;
sd->param_bonus[SP_AGI-SP_STR]+=val;
@@ -2547,13 +2557,13 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
sd->param_bonus[SP_LUK-SP_STR]+=val;
}
break;
- case SP_AGI_VIT: // [Valaris]
+ case SP_AGI_VIT: // [Valaris]
if(sd->state.lr_flag!=2) {
sd->param_bonus[SP_AGI-SP_STR]+=val;
sd->param_bonus[SP_VIT-SP_STR]+=val;
}
break;
- case SP_AGI_DEX_STR: // [Valaris]
+ case SP_AGI_DEX_STR: // [Valaris]
if(sd->state.lr_flag!=2) {
sd->param_bonus[SP_AGI-SP_STR]+=val;
sd->param_bonus[SP_DEX-SP_STR]+=val;
@@ -2597,7 +2607,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val) {
sd->bonus.classchange=val;
break;
case SP_LONG_ATK_RATE:
- if(sd->state.lr_flag != 2) //[Lupus] it should stack, too. As any other cards rate bonuses
+ if(sd->state.lr_flag != 2) //[Lupus] it should stack, too. As any other cards rate bonuses
sd->bonus.long_attack_atk_rate+=val;
break;
case SP_BREAK_WEAPON_RATE:
@@ -3106,11 +3116,11 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val)
}
if(sd->skillfixcastrate[i].id == type2)
- sd->skillfixcastrate[i].val += val;
+ sd->skillfixcastrate[i].val -= val;
else {
sd->skillfixcastrate[i].id = type2;
- sd->skillfixcastrate[i].val = val;
+ sd->skillfixcastrate[i].val -= val;
}
break;
@@ -3924,10 +3934,10 @@ int pc_getzeny(struct map_session_data *sd,int zeny, enum e_log_pick_type type,
/**
* Searches for the specified item ID in inventory and return its inventory index.
- *
+ *
* If the item is found, the returned value is guaranteed to be a valid index
* (non-negative, smaller than MAX_INVENTORY).
- *
+ *
* @param sd Character to search on.
* @param item_id The item ID to search.
* @return the inventory index of the first instance of the requested item.
@@ -3944,14 +3954,14 @@ int pc_search_inventory(struct map_session_data *sd, int item_id) {
/*==========================================
* Attempt to add a new item to inventory.
* Return:
- 0 = success
- 1 = invalid itemid not found or negative amount
- 2 = overweight
- 3 = ?
- 4 = no free place found
- 5 = max amount reached
- 6 = ?
- 7 = stack limitation
+ * 0 = success
+ * 1 = invalid itemid not found or negative amount
+ * 2 = overweight
+ * 3 = ?
+ * 4 = no free place found
+ * 5 = max amount reached
+ * 6 = ?
+ * 7 = stack limitation
*------------------------------------------*/
int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type)
{
@@ -4064,11 +4074,11 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l
* Remove an item at index n from inventory by amount.
* Parameters :
* @type
- * 1 : don't notify deletion
- * 2 : don't notify weight change
+ * 1 : don't notify deletion
+ * 2 : don't notify weight change
* Return:
- * 0 = success
- * 1 = invalid itemid or negative amount
+ * 0 = success
+ * 1 = invalid itemid or negative amount
*------------------------------------------*/
int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type)
{
@@ -4098,8 +4108,8 @@ int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reas
/*==========================================
* Attempt to drop an item.
* Return:
- * 0 = fail
- * 1 = success
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_dropitem(struct map_session_data *sd,int n,int amount)
{
@@ -4141,8 +4151,8 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount)
/*==========================================
* Attempt to pick up an item.
* Return:
- * 0 = fail
- * 1 = success
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
{
@@ -4155,7 +4165,10 @@ int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
nullpo_ret(fitem);
if(!check_distance_bl(&fitem->bl, &sd->bl, 2) && sd->ud.skill_id!=BS_GREED)
- return 0; // Distance is too far
+ return 0; // Distance is too far
+
+ if( pc_has_permission(sd,PC_PERM_DISABLE_PICK_UP) )
+ return 0;
if (sd->status.party_id)
p = party->search(sd->status.party_id);
@@ -4209,8 +4222,8 @@ int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
/*==========================================
* Check if item is usable.
* Return:
- * 0 = no
- * 1 = yes
+ * 0 = no
+ * 1 = yes
*------------------------------------------*/
int pc_isUseitem(struct map_session_data *sd,int n)
{
@@ -4225,7 +4238,7 @@ int pc_isUseitem(struct map_session_data *sd,int n)
if( item == NULL )
return 0;
//Not consumable item
- if( item->type != IT_HEALING && item->type != IT_USABLE && item->type != IT_CASH )
+ if (!itemdb->is_item_usable(item))
return 0;
if( !item->script ) //if it has no script, you can't really consume it!
return 0;
@@ -4393,8 +4406,8 @@ int pc_isUseitem(struct map_session_data *sd,int n)
/*==========================================
* Last checks to use an item.
* Return:
- * 0 = fail
- * 1 = success
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_useitem(struct map_session_data *sd,int n) {
int64 tick = timer->gettick();
@@ -4475,7 +4488,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
} else {// not yet used item (all slots are initially empty)
sd->item_delay[i].nameid = nameid;
}
- if( !(nameid == ITEMID_REINS_OF_MOUNT && sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR)) )
+ if (!(nameid == ITEMID_REINS_OF_MOUNT && pc_hasmount(sd)))
sd->item_delay[i].tick = tick + sd->inventory_data[n]->delay;
} else {// should not happen
ShowError("pc_useitem: Exceeded item delay array capacity! (nameid=%d, char_id=%d)\n", nameid, sd->status.char_id);
@@ -4516,7 +4529,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
if( sd->inventory_data[n]->flag.delay_consume )
clif->useitemack(sd,n,amount,true);
else {
- if( sd->status.inventory[n].expire_time == 0 ) {
+ if (sd->status.inventory[n].expire_time == 0 && !(sd->inventory_data[n]->flag.keepafteruse)) {
clif->useitemack(sd,n,amount-1,true);
pc->delitem(sd,n,1,1,0,LOG_TYPE_CONSUME); // Rental Usable Items are not deleted until expiration
} else
@@ -4548,8 +4561,8 @@ int pc_useitem(struct map_session_data *sd,int n) {
/*==========================================
* Add item on cart for given index.
* Return:
- * 0 = success
- * 1 = fail
+ * 0 = success
+ * 1 = fail
*------------------------------------------*/
int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type)
{
@@ -4568,8 +4581,8 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
return 1;
}
- if( !itemdb_cancartstore(item_data, pc_get_group_level(sd)) || (item_data->bound > IBT_ACCOUNT && !pc_can_give_bound_items(sd)))
- { // Check item trade restrictions [Skotlex]
+ if (!itemdb_cancartstore(item_data, pc_get_group_level(sd)) || (item_data->bound > IBT_ACCOUNT && !pc_can_give_bound_items(sd))) {
+ // Check item trade restrictions
clif->message (sd->fd, msg_txt(264));
return 1;/* TODO: there is no official response to this? */
}
@@ -4582,7 +4595,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
{
ARR_FIND( 0, MAX_CART, i,
sd->status.cart[i].nameid == item_data->nameid && sd->status.cart[i].bound == item_data->bound &&
- sd->status.cart[i].card[0] == item_data->card[0] && sd->status.cart[i].card[1] == item_data->card[1] &&
+ sd->status.cart[i].card[0] == item_data->card[0] && sd->status.cart[i].card[1] == item_data->card[1] &&
sd->status.cart[i].card[2] == item_data->card[2] && sd->status.cart[i].card[3] == item_data->card[3] );
};
@@ -4617,8 +4630,8 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
/*==========================================
* Delete item on cart for given index.
* Return:
- * 0 = success
- * 1 = fail
+ * 0 = success
+ * 1 = fail
*------------------------------------------*/
int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type,e_log_pick_type log_type) {
struct item_data * data;
@@ -4646,8 +4659,8 @@ int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type,e_log_
/*==========================================
* Transfer item from inventory to cart.
* Return:
- * 0 = fail
- * 1 = succes
+ * 0 = fail
+ * 1 = succes
*------------------------------------------*/
int pc_putitemtocart(struct map_session_data *sd,int idx,int amount)
{
@@ -4673,8 +4686,8 @@ int pc_putitemtocart(struct map_session_data *sd,int idx,int amount)
/*==========================================
* Get number of item in cart.
* Return:
- -1 = itemid not found or no amount found
- x = remaining itemid on cart after get
+ * -1 = itemid not found or no amount found
+ * x = remaining itemid on cart after get
*------------------------------------------*/
int pc_cartitem_amount(struct map_session_data* sd, int idx, int amount)
{
@@ -4692,8 +4705,8 @@ int pc_cartitem_amount(struct map_session_data* sd, int idx, int amount)
/*==========================================
* Retrieve an item at index idx from cart.
* Return:
- * 0 = player not found or (FIXME) succes (from pc->cart_delitem)
- * 1 = failure
+ * 0 = player not found or (FIXME) succes (from pc->cart_delitem)
+ * 1 = failure
*------------------------------------------*/
int pc_getitemfromcart(struct map_session_data *sd,int idx,int amount)
{
@@ -4732,7 +4745,7 @@ void pc_bound_clear(struct map_session_data *sd, enum e_item_bound_type type) {
ShowError("Helllo! You reached pc_bound_clear for IBT_ACCOUNT, unfortunately no scenario was expected for this!\n");
break;
case IBT_GUILD: {
- struct guild_storage *gstor = gstorage->id2storage(sd->status.guild_id);
+ struct guild_storage *gstor = idb_get(gstorage->db,sd->status.guild_id);
for( i = 0; i < MAX_INVENTORY; i++ ){
if(sd->status.inventory[i].bound == type) {
@@ -4773,8 +4786,8 @@ int pc_show_steal(struct block_list *bl,va_list ap)
/*==========================================
* Steal an item from bl (mob).
* Return:
- * 0 = fail
- * 1 = succes
+ * 0 = fail
+ * 1 = succes
*------------------------------------------*/
int pc_steal_item(struct map_session_data *sd,struct block_list *bl, uint16 skill_lv)
{
@@ -4800,7 +4813,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, uint16 skil
map->list[bl->m].flag.nomobloot || // check noloot map flag [Lorky]
(battle_config.skill_steal_max_tries && //Reached limit of steal attempts. [Lupus]
md->state.steal_flag++ >= battle_config.skill_steal_max_tries)
- ) { //Can't steal from
+ ) { //Can't steal from
md->state.steal_flag = UCHAR_MAX;
return 0;
}
@@ -5022,7 +5035,7 @@ int pc_setpos(struct map_session_data* sd, unsigned short map_index, int x, int
vending->close(sd);
}
- if( hChSys.local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id) ) {
+ if (clif->hChSys->local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id)) {
clif->chsys_left(map->list[sd->bl.m].channel,sd);
}
}
@@ -5119,8 +5132,8 @@ int pc_setpos(struct map_session_data* sd, unsigned short map_index, int x, int
* Warp player sd to random location on current map.
* May fail if no walkable cell found (1000 attempts).
* Return:
- * 0 = fail or FIXME success (from pc->setpos)
- * x(1|2) = fail
+ * 0 = fail or FIXME success (from pc->setpos)
+ * x(1|2) = fail
*------------------------------------------*/
int pc_randomwarp(struct map_session_data *sd, clr_type type) {
int x,y,i=0;
@@ -5240,7 +5253,7 @@ int pc_checkskill2(struct map_session_data *sd,uint16 index) {
* Chk if we still have the correct weapon to continue the skill (actually status)
* If not ending it
* Return
- * 0 - No status found or all done
+ * 0 - No status found or all done
*------------------------------------------*/
int pc_checkallowskill(struct map_session_data *sd)
{
@@ -5736,7 +5749,7 @@ const char* job_name(int class_)
case JOB_ARCH_BISHOP_T: // 659
case JOB_MECHANIC_T: // 660
case JOB_GUILLOTINE_CROSS_T: // 661
- return msg_txt(656 - JOB_RUNE_KNIGHT_T+class_);
+ return msg_txt(656 - JOB_RUNE_KNIGHT_T+class_);
case JOB_ROYAL_GUARD: // 631
case JOB_SORCERER: // 632
@@ -5754,7 +5767,7 @@ const char* job_name(int class_)
case JOB_SURA_T: // 666
case JOB_GENETIC_T: // 667
case JOB_SHADOW_CHASER_T: // 668
- return msg_txt(662 - JOB_ROYAL_GUARD_T+class_);
+ return msg_txt(662 - JOB_ROYAL_GUARD_T+class_);
case JOB_RUNE_KNIGHT2:
return msg_txt(625);
@@ -5856,7 +5869,7 @@ int pc_follow_timer(int tid, int64 tick, int id, intptr_t data) {
pc->setpos(sd, map_id2index(tbl->m), tbl->x, tbl->y, CLR_TELEPORT);
}
sd->followtimer = timer->add(
- tick + 1000, // increase time a bit to loosen up map's load
+ tick + 1000, // increase time a bit to loosen up map's load
pc->follow_timer, sd->bl.id, 0);
return 0;
}
@@ -5908,7 +5921,7 @@ int pc_checkbaselevelup(struct map_session_data *sd) {
} while ((next=pc->nextbaseexp(sd)) > 0 && sd->status.base_exp >= next);
- if (battle_config.pet_lv_rate && sd->pd) //<Skotlex> update pet's level
+ if (battle_config.pet_lv_rate && sd->pd) //<Skotlex> update pet's level
status_calc_pet(sd->pd,SCO_NONE);
clif->updatestatus(sd,SP_STATUSPOINT);
@@ -6033,6 +6046,9 @@ bool pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned in
if(!battle_config.pvp_exp && map->list[sd->bl.m].flag.pvp) // [MouseJstr]
return false; // no exp on pvp maps
+ if( pc_has_permission(sd,PC_PERM_DISABLE_EXP) )
+ return false;
+
if(sd->status.guild_id>0)
base_exp-=guild->payexp(sd,base_exp);
@@ -6107,12 +6123,12 @@ bool pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned in
*------------------------------------------*/
unsigned int pc_maxbaselv(struct map_session_data *sd)
{
- return pc->max_level[pc->class2idx(sd->status.class_)][0];
+ return pc->max_level[pc->class2idx(sd->status.class_)][0];
}
unsigned int pc_maxjoblv(struct map_session_data *sd)
{
- return pc->max_level[pc->class2idx(sd->status.class_)][1];
+ return pc->max_level[pc->class2idx(sd->status.class_)][1];
}
/*==========================================
@@ -6143,8 +6159,8 @@ unsigned int pc_thisbaseexp(struct map_session_data *sd)
/*==========================================
* job level exp lookup
* Return:
- * 0 = not found
- * x = exp for level
+ * 0 = not found
+ * x = exp for level
*------------------------------------------*/
//Job exp needed for next level.
@@ -6468,7 +6484,7 @@ int pc_allskillup(struct map_session_data *sd)
continue; //Cannot be learned normally.
sd->status.skill[idx].id = id;
- sd->status.skill[idx].lv = skill->tree_get_max(id, sd->status.class_); // celest
+ sd->status.skill[idx].lv = skill->tree_get_max(id, sd->status.class_); // celest
}
}
status_calc_pc(sd,SCO_NONE);
@@ -6506,7 +6522,7 @@ int pc_resetlvl(struct map_session_data* sd,int type)
sd->status.dex=1;
sd->status.luk=1;
if(sd->status.class_ == JOB_NOVICE_HIGH) {
- sd->status.status_point=100; // not 88 [celest]
+ sd->status.status_point=100; // not 88 [celest]
// give platinum skills upon changing
pc->skill(sd,142,1,0);
pc->skill(sd,143,1,0);
@@ -6545,12 +6561,12 @@ int pc_resetlvl(struct map_session_data* sd,int type)
clif->updatestatus(sd,SP_NEXTJOBEXP);
clif->updatestatus(sd,SP_SKILLPOINT);
- clif->updatestatus(sd,SP_USTR); // Updates needed stat points - Valaris
+ clif->updatestatus(sd,SP_USTR); // Updates needed stat points - Valaris
clif->updatestatus(sd,SP_UAGI);
clif->updatestatus(sd,SP_UVIT);
clif->updatestatus(sd,SP_UINT);
clif->updatestatus(sd,SP_UDEX);
- clif->updatestatus(sd,SP_ULUK); // End Addition
+ clif->updatestatus(sd,SP_ULUK); // End Addition
for(i=0;i<EQI_MAX;i++) { // unequip items that can't be equipped by base 1 [Valaris]
if(sd->equip_index[i] >= 0)
@@ -6573,10 +6589,10 @@ int pc_resetstate(struct map_session_data* sd)
{
nullpo_ret(sd);
- if (battle_config.use_statpoint_table)
- { // New statpoint table used here - Dexity
- if (sd->status.base_level > MAX_LEVEL)
- { //pc->statp[] goes out of bounds, can't reset!
+ if (battle_config.use_statpoint_table) {
+ // New statpoint table used here - Dexity
+ if (sd->status.base_level > MAX_LEVEL) {
+ //pc->statp[] goes out of bounds, can't reset!
ShowError("pc_resetstate: Can't reset stats of %d:%d, the base level (%d) is greater than the max level supported (%d)\n",
sd->status.account_id, sd->status.char_id, sd->status.base_level, MAX_LEVEL);
return 0;
@@ -6611,12 +6627,12 @@ int pc_resetstate(struct map_session_data* sd)
clif->updatestatus(sd,SP_DEX);
clif->updatestatus(sd,SP_LUK);
- clif->updatestatus(sd,SP_USTR); // Updates needed stat points - Valaris
+ clif->updatestatus(sd,SP_USTR); // Updates needed stat points - Valaris
clif->updatestatus(sd,SP_UAGI);
clif->updatestatus(sd,SP_UVIT);
clif->updatestatus(sd,SP_UINT);
clif->updatestatus(sd,SP_UDEX);
- clif->updatestatus(sd,SP_ULUK); // End Addition
+ clif->updatestatus(sd,SP_ULUK); // End Addition
clif->updatestatus(sd,SP_STATUSPOINT);
@@ -6974,7 +6990,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
sd->st->state = END;
}
- /* e.g. not killed thru pc->damage */
+ /* e.g. not killed through pc->damage */
if( pc_issit(sd) ) {
clif->sc_end(&sd->bl,sd->bl.id,SELF,SI_SIT);
}
@@ -6988,23 +7004,23 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
//Reset ticks.
sd->hp_loss.tick = sd->sp_loss.tick = sd->hp_regen.tick = sd->sp_regen.tick = 0;
- if ( sd && sd->spiritball )
- pc->delspiritball(sd,sd->spiritball,0);
-
- for(i = 1; i < 5; i++)
- pc->del_charm(sd, sd->charm[i], i);
+ if ( sd->spiritball )
+ pc->delspiritball(sd, sd->spiritball, 0);
+ for ( i = SPIRITS_TYPE_CHARM_WATER; i < SPIRITS_TYPE_SPHERE; i++ )
+ pc->del_charm(sd, sd->spiritcharm[i], i);
if (src) {
switch (src->type) {
case BL_MOB:
{
struct mob_data *md=(struct mob_data *)src;
- if(md->target_id==sd->bl.id)
+ if (md->target_id==sd->bl.id)
mob->unlocktarget(md,tick);
- if(battle_config.mobs_level_up && md->status.hp &&
- (unsigned int)md->level < pc->maxbaselv(sd) &&
- !md->guardian_data && !md->special_state.ai// Guardians/summons should not level. [Skotlex]
- ) { // monster level up [Valaris]
+ if (battle_config.mobs_level_up && md->status.hp
+ && (unsigned int)md->level < pc->maxbaselv(sd)
+ && !md->guardian_data && !md->special_state.ai// Guardians/summons should not level. [Skotlex]
+ ) {
+ // monster level up [Valaris]
clif->misceffect(&md->bl,0);
md->level++;
status_calc_mob(md, SCO_NONE);
@@ -7046,19 +7062,20 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
// karma going down = more 'good' / more honourable.
// The Karma System way...
- if (sd->status.karma > ssd->status.karma) { // If player killed was more evil
+ if (sd->status.karma > ssd->status.karma) {
+ // If player killed was more evil
sd->status.karma--;
ssd->status.karma--;
}
- else if (sd->status.karma < ssd->status.karma) // If player killed was more good
+ else if (sd->status.karma < ssd->status.karma) // If player killed was more good
ssd->status.karma++;
// or the PK System way...
- if (sd->status.karma > 0) // player killed is dishonourable?
+ if (sd->status.karma > 0) // player killed is dishonourable?
ssd->status.karma--; // honour points earned
- sd->status.karma++; // honour points lost
+ sd->status.karma++; // honour points lost
// To-do: Receive exp on certain occasions
#endif
@@ -7116,7 +7133,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
}
if(base_penalty) {
- if (battle_config.pk_mode && src && src->type==BL_PC)
+ if (battle_config.pk_mode && src && src->type==BL_PC)
base_penalty*=2;
if( sd->status.mod_death != 100 )
base_penalty = base_penalty * sd->status.mod_death / 100;
@@ -7138,7 +7155,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
}
if(base_penalty) {
- if (battle_config.pk_mode && src && src->type==BL_PC)
+ if (battle_config.pk_mode && src && src->type==BL_PC)
base_penalty*=2;
if( sd->status.mod_death != 100 )
base_penalty = base_penalty * sd->status.mod_death / 100;
@@ -7307,32 +7324,32 @@ int pc_readparam(struct map_session_data* sd,int type)
case SP_FAME: val = sd->status.fame; break;
case SP_KILLERRID: val = sd->killerrid; break;
case SP_KILLEDRID: val = sd->killedrid; break;
- case SP_SLOTCHANGE: val = sd->status.slotchange; break;
- case SP_CHARRENAME: val = sd->status.rename; break;
+ case SP_SLOTCHANGE: val = sd->status.slotchange; break;
+ case SP_CHARRENAME: val = sd->status.rename; break;
case SP_MOD_EXP: val = sd->status.mod_exp; break;
case SP_MOD_DROP: val = sd->status.mod_drop; break;
case SP_MOD_DEATH: val = sd->status.mod_death; break;
case SP_CRITICAL: val = sd->battle_status.cri/10; break;
case SP_ASPD: val = (2000-sd->battle_status.amotion)/10; break;
- case SP_BASE_ATK: val = sd->battle_status.batk; break;
- case SP_DEF1: val = sd->battle_status.def; break;
- case SP_DEF2: val = sd->battle_status.def2; break;
- case SP_MDEF1: val = sd->battle_status.mdef; break;
- case SP_MDEF2: val = sd->battle_status.mdef2; break;
- case SP_HIT: val = sd->battle_status.hit; break;
- case SP_FLEE1: val = sd->battle_status.flee; break;
- case SP_FLEE2: val = sd->battle_status.flee2; break;
- case SP_DEFELE: val = sd->battle_status.def_ele; break;
+ case SP_BASE_ATK: val = sd->battle_status.batk; break;
+ case SP_DEF1: val = sd->battle_status.def; break;
+ case SP_DEF2: val = sd->battle_status.def2; break;
+ case SP_MDEF1: val = sd->battle_status.mdef; break;
+ case SP_MDEF2: val = sd->battle_status.mdef2; break;
+ case SP_HIT: val = sd->battle_status.hit; break;
+ case SP_FLEE1: val = sd->battle_status.flee; break;
+ case SP_FLEE2: val = sd->battle_status.flee2; break;
+ case SP_DEFELE: val = sd->battle_status.def_ele; break;
#ifndef RENEWAL_CAST
case SP_VARCASTRATE:
#endif
case SP_CASTRATE:
val = sd->castrate+=val;
break;
- case SP_MAXHPRATE: val = sd->hprate; break;
- case SP_MAXSPRATE: val = sd->sprate; break;
- case SP_SPRATE: val = sd->dsprate; break;
- case SP_SPEED_RATE: val = sd->bonus.speed_rate; break;
+ case SP_MAXHPRATE: val = sd->hprate; break;
+ case SP_MAXSPRATE: val = sd->sprate; break;
+ case SP_SPRATE: val = sd->dsprate; break;
+ case SP_SPEED_RATE: val = sd->bonus.speed_rate; break;
case SP_SPEED_ADDRATE: val = sd->bonus.speed_add_rate; break;
case SP_ASPD_RATE:
#ifndef RENEWAL_ASPD
@@ -7637,6 +7654,10 @@ int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
// Recovery Potion
if( sd->sc.data[SC_HEALPLUS] )
hp += (int)(hp * sd->sc.data[SC_HEALPLUS]->val1/100.);
+
+ // 2014 Halloween Event : Pumpkin Bonus
+ if ( sd->sc.data[SC_MTF_PUMPKIN] && itemid == ITEMID_PUMPKIN )
+ hp += (int)(hp * sd->sc.data[SC_MTF_PUMPKIN]->val1/100);
}
if(sp) {
bonus = 100 + (sd->battle_status.int_<<1)
@@ -7841,7 +7862,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
for(i=0;i<EQI_MAX;i++) {
if(sd->equip_index[i] >= 0)
if(!pc->isequip(sd,sd->equip_index[i]))
- pc->unequipitem(sd,sd->equip_index[i],2); // unequip invalid item for class
+ pc->unequipitem(sd,sd->equip_index[i],2); // unequip invalid item for class
}
//Change look, if disguised, you need to undisguise
@@ -7905,7 +7926,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
chrif->buildfamelist();
} else if (sd->status.fame > 0) {
//It may be that now they are famous?
- switch (sd->class_&MAPID_UPPERMASK) {
+ switch (sd->class_&MAPID_UPPERMASK) {
case MAPID_BLACKSMITH:
case MAPID_ALCHEMIST:
case MAPID_TAEKWON:
@@ -7952,7 +7973,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
clif->skillinfoblock(sd);
return 0;
break;
- case LOOK_HAIR: //Use the battle_config limits! [Skotlex]
+ case LOOK_HAIR: //Use the battle_config limits! [Skotlex]
val = cap_value(val, MIN_HAIR_STYLE, MAX_HAIR_STYLE);
if (sd->status.hair != val) {
@@ -7974,7 +7995,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
case LOOK_HEAD_MID:
sd->status.head_mid=val;
break;
- case LOOK_HAIR_COLOR: //Use the battle_config limits! [Skotlex]
+ case LOOK_HAIR_COLOR: //Use the battle_config limits! [Skotlex]
val = cap_value(val, MIN_HAIR_COLOR, MAX_HAIR_COLOR);
if (sd->status.hair_color != val) {
@@ -7984,7 +8005,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
GMI_HAIR_COLOR,&sd->status.hair_color,sizeof(sd->status.hair_color));
}
break;
- case LOOK_CLOTHES_COLOR: //Use the battle_config limits! [Skotlex]
+ case LOOK_CLOTHES_COLOR: //Use the battle_config limits! [Skotlex]
val = cap_value(val, MIN_CLOTH_COLOR, MAX_CLOTH_COLOR);
sd->status.clothes_color=val;
@@ -8035,6 +8056,8 @@ int pc_setoption(struct map_session_data *sd,int type)
clif->clearcart(sd->fd);
if(pc->checkskill(sd, MC_PUSHCART) < 10)
status_calc_pc(sd,SCO_NONE); //Remove speed penalty.
+ if ( sd->equip_index[EQI_AMMO] > 0 )
+ pc->unequipitem(sd, sd->equip_index[EQI_AMMO], 2);
}
#endif
@@ -8070,6 +8093,8 @@ int pc_setoption(struct map_session_data *sd,int type)
}
status_change_end(&sd->bl, (sc_type)i, INVALID_TIMER);
}
+ if ( sd->equip_index[EQI_AMMO] > 0 )
+ pc->unequipitem(sd, sd->equip_index[EQI_AMMO], 2);
}
if (type&OPTION_FLYING && !(p_type&OPTION_FLYING))
@@ -8122,6 +8147,8 @@ int pc_setcart(struct map_session_data *sd,int type) {
status_change_end(&sd->bl,SC_PUSH_CART,INVALID_TIMER);
clif->clearcart(sd->fd);
clif->updatestatus(sd, SP_CARTINFO);
+ if ( sd->equip_index[EQI_AMMO] > 0 )
+ pc->unequipitem(sd, sd->equip_index[EQI_AMMO], 2);
break;
default:/* everything else is an allowed ID so we can move on */
if( !sd->sc.data[SC_PUSH_CART] ) /* first time, so fill cart data */
@@ -8147,48 +8174,111 @@ int pc_setcart(struct map_session_data *sd,int type) {
return 0;
}
-/*==========================================
- * Give player a falcon
- *------------------------------------------*/
-int pc_setfalcon(TBL_PC* sd, int flag)
+/* FIXME: These setter methods are inconsistent in their class/skill checks.
+ * They should be changed so that they all either do or skip the checks.*/
+
+/**
+ * Gives/removes a falcon.
+ *
+ * The target player needs the required skills in order to obtain a falcon.
+ *
+ * @param sd Target player.
+ * @param flag New state.
+ **/
+void pc_setfalcon(TBL_PC* sd, bool flag)
{
- if( flag ){
- if( pc->checkskill(sd,HT_FALCON)>0 ) // add falcon if he have the skill
+ if (flag) {
+ if (pc->checkskill(sd,HT_FALCON) > 0) // add falcon if he have the skill
pc->setoption(sd,sd->sc.option|OPTION_FALCON);
- } else if( pc_isfalcon(sd) ){
+ } else if (pc_isfalcon(sd)) {
pc->setoption(sd,sd->sc.option&~OPTION_FALCON); // remove falcon
}
-
- return 0;
}
-/*==========================================
- * Set player riding
- *------------------------------------------*/
-int pc_setriding(TBL_PC* sd, int flag)
+/**
+ * Mounts/dismounts a Peco or Gryphon.
+ *
+ * The target player needs the required skills in order to mount a peco.
+ *
+ * @param sd Target player.
+ * @param flag New state.
+ **/
+void pc_setridingpeco(TBL_PC* sd, bool flag)
{
- if( flag ){
- if( pc->checkskill(sd,KN_RIDING) > 0 ) // add peco
+ if (flag) {
+ if (pc->checkskill(sd, KN_RIDING))
pc->setoption(sd, sd->sc.option|OPTION_RIDING);
- } else if( pc_isriding(sd) ){
- pc->setoption(sd, sd->sc.option&~OPTION_RIDING);
+ } else if (pc_isridingpeco(sd)) {
+ pc->setoption(sd, sd->sc.option&~OPTION_RIDING);
}
-
- return 0;
}
/**
- * Gives player a mado
- * @param flag 1 Set mado
+ * Gives/removes a Mado Gear.
+ *
+ * The target player needs to be the correct class in order to obtain a mado gear.
+ *
+ * @param sd Target player.
+ * @param flag New state.
**/
-void pc_setmadogear( struct map_session_data *sd, int flag ) {
- if( flag ) {
- if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC )
+void pc_setmadogear(struct map_session_data *sd, bool flag)
+{
+ if (flag) {
+ if ((sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC)
pc->setoption(sd, sd->sc.option|OPTION_MADOGEAR);
- } else if( pc_ismadogear(sd) )
+ } else if (pc_ismadogear(sd)) {
pc->setoption(sd, sd->sc.option&~OPTION_MADOGEAR);
+ }
+}
- return;
+/**
+ * Mounts/dismounts a dragon.
+ *
+ * The target player needs the required skills in order to mount a dragon.
+ *
+ * @param sd Target player.
+ * @param type New state. This must be a valid OPTION_DRAGON* or 0.
+ **/
+void pc_setridingdragon(TBL_PC* sd, unsigned int type)
+{
+ if (type&OPTION_DRAGON) {
+ // Ensure only one dragon is set at a time.
+ if (type&OPTION_DRAGON1)
+ type = OPTION_DRAGON1;
+ else if (type&OPTION_DRAGON2)
+ type = OPTION_DRAGON2;
+ else if (type&OPTION_DRAGON3)
+ type = OPTION_DRAGON3;
+ else if (type&OPTION_DRAGON4)
+ type = OPTION_DRAGON4;
+ else if (type&OPTION_DRAGON5)
+ type = OPTION_DRAGON5;
+ else
+ type = OPTION_DRAGON1;
+
+ if (pc->checkskill(sd, RK_DRAGONTRAINING))
+ pc->setoption(sd, (sd->sc.option&~OPTION_DRAGON)|type);
+ } else if (pc_isridingdragon(sd)) {
+ pc->setoption(sd,sd->sc.option&~OPTION_DRAGON); // remove dragon
+ }
+}
+
+/**
+ * Mounts/dismounts a wug.
+ *
+ * The target player needs the required skills in order to mount a wug.
+ *
+ * @param sd Target player.
+ * @param flag New state.
+ **/
+void pc_setridingwug(TBL_PC* sd, bool flag)
+{
+ if (flag) {
+ if (pc->checkskill(sd, RA_WUGRIDER) > 0)
+ pc->setoption(sd,sd->sc.option|OPTION_WUGRIDER);
+ } else if (pc_isridingwug(sd)) {
+ pc->setoption(sd,sd->sc.option&~OPTION_WUGRIDER); // remove wug
+ }
}
/**
@@ -8241,7 +8331,7 @@ bool pc_can_talk( struct map_session_data *sd ) {
int pc_candrop(struct map_session_data *sd, struct item *item)
{
if( item && (item->expire_time || (item->bound && !pc_can_give_bound_items(sd))) )
- return 0;
+ return 0;
if( !pc_can_give_items(sd) ) //check if this GM level can drop items
return 0;
return (itemdb_isdropable(item, pc_get_group_level(sd)));
@@ -8750,6 +8840,89 @@ int pc_load_combo(struct map_session_data *sd) {
}
return ret;
}
+
+void pc_equipitem_pos(struct map_session_data *sd, struct item_data *id, int pos)
+{
+ if (pos & (EQP_HAND_R|EQP_SHADOW_WEAPON)) {
+ if(id)
+ sd->weapontype1 = id->look;
+ else
+ sd->weapontype1 = 0;
+ pc->calcweapontype(sd);
+ clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
+ }
+ if (pos & (EQP_HAND_L|EQP_SHADOW_SHIELD)) {
+ if (id) {
+ if(id->type == IT_WEAPON) {
+ sd->status.shield = 0;
+ sd->weapontype2 = id->look;
+ } else if(id->type == IT_ARMOR) {
+ sd->status.shield = id->look;
+ sd->weapontype2 = 0;
+ }
+ } else
+ sd->status.shield = sd->weapontype2 = 0;
+ pc->calcweapontype(sd);
+ clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
+ }
+ //Added check to prevent sending the same look on multiple slots ->
+ //causes client to redraw item on top of itself. (suggested by Lupus)
+ if (pos & EQP_HEAD_LOW && pc->checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1) {
+ if (id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
+ sd->status.head_bottom = id->look;
+ else
+ sd->status.head_bottom = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
+ }
+ if (pos & EQP_HEAD_TOP && pc->checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1) {
+ if (id)
+ sd->status.head_top = id->look;
+ else
+ sd->status.head_top = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
+ }
+ if (pos & EQP_HEAD_MID && pc->checkequip(sd,EQP_COSTUME_HEAD_MID) == -1) {
+ if (id && !(pos&EQP_HEAD_TOP))
+ sd->status.head_mid = id->look;
+ else
+ sd->status.head_mid = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
+ }
+ if (pos & EQP_COSTUME_HEAD_TOP) {
+ if (id){
+ sd->status.head_top = id->look;
+ } else
+ sd->status.head_top = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
+ }
+ if (pos & EQP_COSTUME_HEAD_MID) {
+ if(id && !(pos&EQP_HEAD_TOP)){
+ sd->status.head_mid = id->look;
+ } else
+ sd->status.head_mid = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
+ }
+ if (pos & EQP_COSTUME_HEAD_LOW) {
+ if (id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID))){
+ sd->status.head_bottom = id->look;
+ } else
+ sd->status.head_bottom = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
+ }
+
+ if (pos & EQP_SHOES)
+ clif->changelook(&sd->bl,LOOK_SHOES,0);
+ if (pos&EQP_GARMENT && pc->checkequip(sd,EQP_COSTUME_GARMENT) == -1) {
+ sd->status.robe = id ? id->look : 0;
+ clif->changelook(&sd->bl, LOOK_ROBE, sd->status.robe);
+ }
+
+ if (pos & EQP_COSTUME_GARMENT) {
+ sd->status.robe = id ? id->look : 0;
+ clif->changelook(&sd->bl,LOOK_ROBE,sd->status.robe);
+ }
+}
+
/*==========================================
* Equip item on player sd at req_pos from inventory index n
*------------------------------------------*/
@@ -8778,13 +8951,13 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
ShowInfo("equip %d(%d) %x:%x\n",sd->status.inventory[n].nameid,n,id?id->equip:0,req_pos);
if(!pc->isequip(sd,n) || !(pos&req_pos) || sd->status.inventory[n].equip != 0 || sd->status.inventory[n].attribute==1 ) { // [Valaris]
// FIXME: pc->isequip: equip level failure uses 2 instead of 0
- clif->equipitemack(sd,n,0,EIA_FAIL); // fail
+ clif->equipitemack(sd,n,0,EIA_FAIL); // fail
return 0;
}
if (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_NO_SWITCH_EQUIP])
{
- clif->equipitemack(sd,n,0,EIA_FAIL); // fail
+ clif->equipitemack(sd,n,0,EIA_FAIL); // fail
return 0;
}
@@ -8799,7 +8972,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
if (pos == EQP_ACC) //User specified both slots..
pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R;
} else if(pos == EQP_ARMS && id->equip == EQP_HAND_R) { //Dual wield capable weapon.
- pos = (req_pos&EQP_ARMS);
+ pos = (req_pos&EQP_ARMS);
if (pos == EQP_ARMS) //User specified both slots, pick one for them.
pos = sd->equip_index[EQI_HAND_R] >= 0 ? EQP_HAND_L : EQP_HAND_R;
} else if(pos == EQP_SHADOW_ACC) { //Accesories should only go in one of the two,
@@ -8807,13 +8980,13 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
if (pos == EQP_SHADOW_ACC) //User specified both slots..
pos = sd->equip_index[EQI_SHADOW_ACC_R] >= 0 ? EQP_SHADOW_ACC_L : EQP_SHADOW_ACC_R;
} else if( pos == EQP_SHADOW_ARMS && id->equip == EQP_SHADOW_WEAPON) { //Dual wield capable weapon.
- pos = (req_pos&EQP_SHADOW_ARMS);
+ pos = (req_pos&EQP_SHADOW_ARMS);
if (pos == EQP_SHADOW_ARMS) //User specified both slots, pick one for them.
pos = sd->equip_index[EQI_SHADOW_WEAPON] >= 0 ? EQP_SHADOW_SHIELD : EQP_SHADOW_WEAPON;
}
- if (pos&EQP_HAND_R && battle_config.use_weapon_skill_range&BL_PC)
- { //Update skill-block range database when weapon range changes. [Skotlex]
+ if (pos&EQP_HAND_R && battle_config.use_weapon_skill_range&BL_PC) {
+ //Update skill-block range database when weapon range changes. [Skotlex]
i = sd->equip_index[EQI_HAND_R];
if (i < 0 || !sd->inventory_data[i]) //No data, or no weapon equipped
flag = 1;
@@ -8839,86 +9012,8 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
sd->status.inventory[n].equip=pos;
- if(pos & (EQP_HAND_R|EQP_SHADOW_WEAPON)) {
- if(id)
- sd->weapontype1 = id->look;
- else
- sd->weapontype1 = 0;
- pc->calcweapontype(sd);
- clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
- }
- if(pos & (EQP_HAND_L|EQP_SHADOW_SHIELD)) {
- if(id) {
- if(id->type == IT_WEAPON) {
- sd->status.shield = 0;
- sd->weapontype2 = id->look;
- } else if(id->type == IT_ARMOR) {
- sd->status.shield = id->look;
- sd->weapontype2 = 0;
- }
- } else
- sd->status.shield = sd->weapontype2 = 0;
- pc->calcweapontype(sd);
- clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
- }
- //Added check to prevent sending the same look on multiple slots ->
- //causes client to redraw item on top of itself. (suggested by Lupus)
- if(pos & EQP_HEAD_LOW && pc->checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1) {
- if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
- sd->status.head_bottom = id->look;
- else
- sd->status.head_bottom = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
- }
- if(pos & EQP_HEAD_TOP && pc->checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1) {
- if(id)
- sd->status.head_top = id->look;
- else
- sd->status.head_top = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
- }
- if(pos & EQP_HEAD_MID && pc->checkequip(sd,EQP_COSTUME_HEAD_MID) == -1) {
- if(id && !(pos&EQP_HEAD_TOP))
- sd->status.head_mid = id->look;
- else
- sd->status.head_mid = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
- }
- if(pos & EQP_COSTUME_HEAD_TOP) {
- if(id){
- sd->status.head_top = id->look;
- } else
- sd->status.head_top = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
- }
- if(pos & EQP_COSTUME_HEAD_MID) {
- if(id && !(pos&EQP_HEAD_TOP)){
- sd->status.head_mid = id->look;
- } else
- sd->status.head_mid = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
- }
- if(pos & EQP_COSTUME_HEAD_LOW) {
- if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID))){
- sd->status.head_bottom = id->look;
- } else
- sd->status.head_bottom = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
- }
-
- if(pos & EQP_SHOES)
- clif->changelook(&sd->bl,LOOK_SHOES,0);
- if( pos&EQP_GARMENT && pc->checkequip(sd,EQP_COSTUME_GARMENT) == -1 ) {
- sd->status.robe = id ? id->look : 0;
- clif->changelook(&sd->bl, LOOK_ROBE, sd->status.robe);
- }
-
- if(pos & EQP_COSTUME_GARMENT) {
- sd->status.robe = id ? id->look : 0;
- clif->changelook(&sd->bl,LOOK_ROBE,sd->status.robe);
- }
+ pc->equipitem_pos(sd, id, pos);
-
pc->checkallowskill(sd); //Check if status changes should be halted.
iflag = sd->npc_item_flag;
@@ -8968,6 +9063,63 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
return 0;
}
+void pc_unequipitem_pos(struct map_session_data *sd, int n, int pos)
+{
+ if (pos & EQP_HAND_R) {
+ sd->weapontype1 = 0;
+ sd->status.weapon = sd->weapontype2;
+ pc->calcweapontype(sd);
+ clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
+ if (!battle_config.dancing_weaponswitch_fix)
+ status_change_end(&sd->bl, SC_DANCING, INVALID_TIMER); // Unequipping => stop dancing.
+ }
+ if (pos & EQP_HAND_L) {
+ sd->status.shield = sd->weapontype2 = 0;
+ pc->calcweapontype(sd);
+ clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
+ }
+ if (pos & EQP_HEAD_LOW && pc->checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1) {
+ sd->status.head_bottom = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
+ }
+ if (pos & EQP_HEAD_TOP && pc->checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1) {
+ sd->status.head_top = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
+ }
+ if (pos & EQP_HEAD_MID && pc->checkequip(sd,EQP_COSTUME_HEAD_MID) == -1) {
+ sd->status.head_mid = 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
+ }
+
+ if (pos & EQP_COSTUME_HEAD_TOP) {
+ sd->status.head_top = ( pc->checkequip(sd,EQP_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_TOP)]->look : 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
+ }
+
+ if (pos & EQP_COSTUME_HEAD_MID) {
+ sd->status.head_mid = ( pc->checkequip(sd,EQP_HEAD_MID) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_MID)]->look : 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
+ }
+
+ if (pos & EQP_COSTUME_HEAD_LOW) {
+ sd->status.head_bottom = ( pc->checkequip(sd,EQP_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_LOW)]->look : 0;
+ clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
+ }
+
+ if (pos & EQP_SHOES)
+ clif->changelook(&sd->bl,LOOK_SHOES,0);
+
+ if (pos & EQP_GARMENT && pc->checkequip(sd,EQP_COSTUME_GARMENT) == -1) {
+ sd->status.robe = 0;
+ clif->changelook(&sd->bl, LOOK_ROBE, 0);
+ }
+
+ if (pos & EQP_COSTUME_GARMENT) {
+ sd->status.robe = ( pc->checkequip(sd,EQP_GARMENT) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_GARMENT)]->look : 0;
+ clif->changelook(&sd->bl,LOOK_ROBE,sd->status.robe);
+ }
+}
+
/*==========================================
* Called when attemting to unequip an item from player
* type:
@@ -8978,6 +9130,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
int i,iflag;
bool status_cacl = false;
+ int pos;
nullpo_ret(sd);
if( n < 0 || n >= MAX_INVENTORY ) {
@@ -9010,73 +9163,22 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
sd->equip_index[i] = -1;
}
- if(sd->status.inventory[n].equip & EQP_HAND_R) {
- sd->weapontype1 = 0;
- sd->status.weapon = sd->weapontype2;
- pc->calcweapontype(sd);
- clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
- if( !battle_config.dancing_weaponswitch_fix )
- status_change_end(&sd->bl, SC_DANCING, INVALID_TIMER); // Unequipping => stop dancing.
- }
- if(sd->status.inventory[n].equip & EQP_HAND_L) {
- sd->status.shield = sd->weapontype2 = 0;
- pc->calcweapontype(sd);
- clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
- }
- if(sd->status.inventory[n].equip & EQP_HEAD_LOW && pc->checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1 ) {
- sd->status.head_bottom = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
- }
- if(sd->status.inventory[n].equip & EQP_HEAD_TOP && pc->checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1 ) {
- sd->status.head_top = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
- }
- if(sd->status.inventory[n].equip & EQP_HEAD_MID && pc->checkequip(sd,EQP_COSTUME_HEAD_MID) == -1 ) {
- sd->status.head_mid = 0;
- clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
- }
+ pos = sd->status.inventory[n].equip;
+ pc->unequipitem_pos(sd, n, pos);
- if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_TOP) {
- sd->status.head_top = ( pc->checkequip(sd,EQP_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_TOP)]->look : 0;
- clif->changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
- }
-
- if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_MID) {
- sd->status.head_mid = ( pc->checkequip(sd,EQP_HEAD_MID) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_MID)]->look : 0;
- clif->changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
- }
+ clif->unequipitemack(sd,n,pos,UIA_SUCCESS);
- if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_LOW) {
- sd->status.head_bottom = ( pc->checkequip(sd,EQP_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_HEAD_LOW)]->look : 0;
- clif->changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
- }
-
- if(sd->status.inventory[n].equip & EQP_SHOES)
- clif->changelook(&sd->bl,LOOK_SHOES,0);
-
- if( sd->status.inventory[n].equip&EQP_GARMENT && pc->checkequip(sd,EQP_COSTUME_GARMENT) == -1 ) {
- sd->status.robe = 0;
- clif->changelook(&sd->bl, LOOK_ROBE, 0);
- }
-
- if(sd->status.inventory[n].equip & EQP_COSTUME_GARMENT) {
- sd->status.robe = ( pc->checkequip(sd,EQP_GARMENT) >= 0 ) ? sd->inventory_data[pc->checkequip(sd,EQP_GARMENT)]->look : 0;
- clif->changelook(&sd->bl,LOOK_ROBE,sd->status.robe);
- }
-
- clif->unequipitemack(sd,n,sd->status.inventory[n].equip,UIA_SUCCESS);
-
- if((sd->status.inventory[n].equip & EQP_ARMS) &&
+ if((pos & EQP_ARMS) &&
sd->weapontype1 == 0 && sd->weapontype2 == 0 && (!sd->sc.data[SC_TK_SEVENWIND] || sd->sc.data[SC_ASPERSIO])) //Check for seven wind (but not level seven!)
skill->enchant_elemental_end(&sd->bl,-1);
- if(sd->status.inventory[n].equip & EQP_ARMOR) {
+ if(pos & EQP_ARMOR) {
// On Armor Change...
status_change_end(&sd->bl, SC_BENEDICTIO, INVALID_TIMER);
status_change_end(&sd->bl, SC_ARMOR_RESIST, INVALID_TIMER);
}
- if( sd->state.autobonus&sd->status.inventory[n].equip )
+ if( sd->state.autobonus&pos )
sd->state.autobonus &= ~sd->status.inventory[n].equip; //Check for activated autobonus [Inkfish]
sd->status.inventory[n].equip=0;
@@ -9114,8 +9216,15 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
//OnUnEquip script [Skotlex]
if (sd->inventory_data[n]) {
- if (sd->inventory_data[n]->unequip_script)
- script->run(sd->inventory_data[n]->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ if (sd->inventory_data[n]->unequip_script) {
+ if ( battle_config.unequip_restricted_equipment & 1 ) {
+ ARR_FIND(0, map->list[sd->bl.m].zone->disabled_items_count, i, map->list[sd->bl.m].zone->disabled_items[i] == sd->status.inventory[n].nameid);
+ if ( i == map->list[sd->bl.m].zone->disabled_items_count )
+ script->run(sd->inventory_data[n]->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ }
+ else
+ script->run(sd->inventory_data[n]->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ }
if(itemdb_isspecial(sd->status.inventory[n].card[0]))
; //No cards
else {
@@ -9125,8 +9234,16 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
continue;
if ( ( data = itemdb->exists(sd->status.inventory[n].card[i]) ) != NULL ) {
- if( data->unequip_script )
- script->run(data->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ if ( data->unequip_script ) {
+ if ( battle_config.unequip_restricted_equipment & 2 ) {
+ int j;
+ ARR_FIND(0, map->list[sd->bl.m].zone->disabled_items_count, j, map->list[sd->bl.m].zone->disabled_items[j] == sd->status.inventory[n].card[i]);
+ if ( j == map->list[sd->bl.m].zone->disabled_items_count )
+ script->run(data->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ }
+ else
+ script->run(data->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id);
+ }
}
}
@@ -9201,7 +9318,7 @@ int pc_checkitem(struct map_session_data *sd)
}
if (sd->guild) {
- struct guild_storage *guild_storage = gstorage->id2storage2(sd->guild->guild_id);
+ struct guild_storage *guild_storage = idb_get(gstorage->db,sd->guild->guild_id);
if (guild_storage) {
for( i = 0; i < MAX_GUILD_STORAGE; i++ ) {
id = guild_storage->items[i].nameid;
@@ -9238,8 +9355,32 @@ int pc_checkitem(struct map_session_data *sd)
continue;
}
+ if ( battle_config.unequip_restricted_equipment & 1 ) {
+ int j;
+ for ( j = 0; j < map->list[sd->bl.m].zone->disabled_items_count; j++ ) {
+ if ( map->list[sd->bl.m].zone->disabled_items[j] == sd->status.inventory[i].nameid ) {
+ pc->unequipitem( sd, i, 2 );
+ calc_flag = 1;
+ }
+ }
+ }
+
+ if ( battle_config.unequip_restricted_equipment & 2 ) {
+ if ( !itemdb_isspecial( sd->status.inventory[i].card[0] ) ) {
+ int j, slot;
+ for ( slot = 0; slot < MAX_SLOTS; slot++ ) {
+ for ( j = 0; j < map->list[sd->bl.m].zone->disabled_items_count; j++ ) {
+ if ( map->list[sd->bl.m].zone->disabled_items[j] == sd->status.inventory[i].card[slot] ) {
+ pc->unequipitem( sd, i, 2 );
+ calc_flag = 1;
+ }
+ }
+ }
+ }
+ }
+
}
-
+
if( calc_flag && sd->state.active ) {
pc->checkallowskill(sd);
status_calc_pc(sd,SCO_NONE);
@@ -9258,8 +9399,8 @@ int pc_calc_pvprank_sub(struct block_list *bl,va_list ap)
sd1=(struct map_session_data *)bl;
sd2=va_arg(ap,struct map_session_data *);
- if( sd1->sc.option&OPTION_INVISIBLE || sd2->sc.option&OPTION_INVISIBLE )
- {// cannot register pvp rank for hidden GMs
+ if (pc_isinvisible(sd1) ||pc_isinvisible(sd2)) {
+ // cannot register pvp rank for hidden GMs
return 0;
}
@@ -9293,8 +9434,8 @@ int pc_calc_pvprank_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
sd->pvp_timer = INVALID_TIMER;
- if( sd->sc.option&OPTION_INVISIBLE )
- {// do not calculate the pvp rank for a hidden GM
+ if (pc_isinvisible(sd)) {
+ // do not calculate the pvp rank for a hidden GM
return 0;
}
@@ -9306,8 +9447,8 @@ int pc_calc_pvprank_timer(int tid, int64 tick, int id, intptr_t data) {
/*==========================================
* Checking if sd is married
* Return:
- * partner_id = yes
- * 0 = no
+ * partner_id = yes
+ * 0 = no
*------------------------------------------*/
int pc_ismarried(struct map_session_data *sd)
{
@@ -9321,8 +9462,8 @@ int pc_ismarried(struct map_session_data *sd)
/*==========================================
* Marry player sd to player dstsd
* Return:
- * -1 = fail
- * 0 = success
+ * -1 = fail
+ * 0 = success
*------------------------------------------*/
int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
{
@@ -9338,8 +9479,8 @@ int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
/*==========================================
* Divorce sd from its partner
* Return:
- * -1 = fail
- * 0 = success
+ * -1 = fail
+ * 0 = success
*------------------------------------------*/
int pc_divorce(struct map_session_data *sd)
{
@@ -9655,28 +9796,28 @@ int pc_charm_timer(int tid, int64 tick, int id, intptr_t data) {
if( (sd=(struct map_session_data *)map->id2sd(id)) == NULL || sd->bl.type!=BL_PC )
return 1;
- ARR_FIND(1, 5, type, sd->charm[type] > 0);
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, type, sd->spiritcharm[type] > 0);
- if( sd->charm[type] <= 0 )
+ if( sd->spiritcharm[type] <= 0 )
{
- ShowError("pc_charm_timer: %d charm's available. (aid=%d cid=%d tid=%d)\n", sd->charm[type], sd->status.account_id, sd->status.char_id, tid);
- sd->charm[type] = 0;
+ ShowError("pc_charm_timer: %d spiritcharm's available. (aid=%d cid=%d tid=%d)\n", sd->spiritcharm[type], sd->status.account_id, sd->status.char_id, tid);
+ sd->spiritcharm[type] = 0;
return 0;
}
- ARR_FIND(0, sd->charm[type], i, sd->charm_timer[type][i] == tid);
- if( i == sd->charm[type] )
+ ARR_FIND(0, sd->spiritcharm[type], i, sd->charm_timer[type][i] == tid);
+ if( i == sd->spiritcharm[type] )
{
ShowError("pc_charm_timer: timer not found (aid=%d cid=%d tid=%d)\n", sd->status.account_id, sd->status.char_id, tid);
return 0;
}
- sd->charm[type]--;
- if( i != sd->charm[type] )
- memmove(sd->charm_timer[type]+i, sd->charm_timer[type]+i+1, (sd->charm[type]-i)*sizeof(int));
- sd->charm_timer[type][sd->charm[type]] = INVALID_TIMER;
+ sd->spiritcharm[type]--;
+ if( i != sd->spiritcharm[type] )
+ memmove(sd->charm_timer[type]+i, sd->charm_timer[type]+i+1, (sd->spiritcharm[type]-i)*sizeof(int));
+ sd->charm_timer[type][sd->spiritcharm[type]] = INVALID_TIMER;
- clif->charm(sd, type);
+ clif->spiritcharm(sd, type);
return 0;
}
@@ -9689,27 +9830,27 @@ int pc_add_charm(struct map_session_data *sd,int interval,int max,int type)
if(max > 10)
max = 10;
- if(sd->charm[type] < 0)
- sd->charm[type] = 0;
+ if(sd->spiritcharm[type] < 0)
+ sd->spiritcharm[type] = 0;
- if( sd->charm[type] && sd->charm[type] >= max )
+ if( sd->spiritcharm[type] && sd->spiritcharm[type] >= max )
{
if(sd->charm_timer[type][0] != INVALID_TIMER)
timer->delete(sd->charm_timer[type][0],pc->charm_timer);
- sd->charm[type]--;
- if( sd->charm[type] != 0 )
- memmove(sd->charm_timer[type]+0, sd->charm_timer[type]+1, (sd->charm[type])*sizeof(int));
- sd->charm_timer[type][sd->charm[type]] = INVALID_TIMER;
+ sd->spiritcharm[type]--;
+ if( sd->spiritcharm[type] != 0 )
+ memmove(sd->charm_timer[type]+0, sd->charm_timer[type]+1, (sd->spiritcharm[type])*sizeof(int));
+ sd->charm_timer[type][sd->spiritcharm[type]] = INVALID_TIMER;
}
tid = timer->add(timer->gettick()+interval, pc->charm_timer, sd->bl.id, 0);
- ARR_FIND(0, sd->charm[type], i, sd->charm_timer[type][i] == INVALID_TIMER || DIFF_TICK(timer->get(tid)->tick, timer->get(sd->charm_timer[type][i])->tick) < 0);
- if( i != sd->charm[type] )
- memmove(sd->charm_timer[type]+i+1, sd->charm_timer[type]+i, (sd->charm[type]-i)*sizeof(int));
+ ARR_FIND(0, sd->spiritcharm[type], i, sd->charm_timer[type][i] == INVALID_TIMER || DIFF_TICK(timer->get(tid)->tick, timer->get(sd->charm_timer[type][i])->tick) < 0);
+ if( i != sd->spiritcharm[type] )
+ memmove(sd->charm_timer[type]+i+1, sd->charm_timer[type]+i, (sd->spiritcharm[type]-i)*sizeof(int));
sd->charm_timer[type][i] = tid;
- sd->charm[type]++;
+ sd->spiritcharm[type]++;
- clif->charm(sd, type);
+ clif->spiritcharm(sd, type);
return 0;
}
@@ -9719,16 +9860,16 @@ int pc_del_charm(struct map_session_data *sd,int count,int type)
nullpo_ret(sd);
- if( sd->charm[type] <= 0 ) {
- sd->charm[type] = 0;
+ if( sd->spiritcharm[type] <= 0 ) {
+ sd->spiritcharm[type] = 0;
return 0;
}
if( count <= 0 )
return 0;
- if( count > sd->charm[type] )
- count = sd->charm[type];
- sd->charm[type] -= count;
+ if( count > sd->spiritcharm[type] )
+ count = sd->spiritcharm[type];
+ sd->spiritcharm[type] -= count;
if( count > 10 )
count = 10;
@@ -9743,7 +9884,7 @@ int pc_del_charm(struct map_session_data *sd,int count,int type)
sd->charm_timer[type][i] = INVALID_TIMER;
}
- clif->charm(sd, type);
+ clif->spiritcharm(sd, type);
return 0;
}
/*==========================================
@@ -10091,11 +10232,11 @@ void pc_read_skill_tree(void) {
libconfig->destroy(&skill_tree_conf);
- /* lets update all players skill tree */
- iter = mapit_getallusers();
- for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter) )
- clif->skillinfoblock(sd);
- mapit->free(iter);
+ /* lets update all players skill tree */
+ iter = mapit_getallusers();
+ for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter) )
+ clif->skillinfoblock(sd);
+ mapit->free(iter);
}
bool pc_readdb_levelpenalty(char* fields[], int columns, int current) {
#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP)
@@ -10183,7 +10324,7 @@ int pc_readdb(void) {
//Reverse check in case the array has a bunch of trailing zeros... [Skotlex]
//The reasoning behind the -2 is this... if the max level is 5, then the array
//should look like this:
- //0: x, 1: x, 2: x: 3: x 4: 0 <- last valid value is at 3.
+ //0: x, 1: x, 2: x: 3: x 4: 0 <- last valid value is at 3.
while ((ui = pc->max_level[job][type]) >= 2 && pc->exp_table[job][type][ui-2] <= 0)
pc->max_level[job][type]--;
if (pc->max_level[job][type] < maxlv) {
@@ -10195,7 +10336,7 @@ int pc_readdb(void) {
pc->exp_table[job][type][ui] = pc->exp_table[job][type][ui-1];
pc->max_level[job][type] = maxlv;
}
-// ShowDebug("%s - Class %d: %d\n", type?"Job":"Base", job_id, pc->max_level[job][type]);
+ //ShowDebug("%s - Class %d: %d\n", type?"Job":"Base", job_id, pc->max_level[job][type]);
for (i = 1; i < job_count; i++) {
job_id = jobs[i];
if (!pcdb_checkid(job_id)) {
@@ -10205,7 +10346,7 @@ int pc_readdb(void) {
job = pc->class2idx(job_id);
memcpy(pc->exp_table[job][type], pc->exp_table[jobs[0]][type], sizeof(pc->exp_table[0][0]));
pc->max_level[job][type] = maxlv;
-// ShowDebug("%s - Class %d: %u\n", type?"Job":"Base", job_id, pc->max_level[job][type]);
+ //ShowDebug("%s - Class %d: %u\n", type?"Job":"Base", job_id, pc->max_level[job][type]);
}
}
fclose(fp);
@@ -10445,8 +10586,8 @@ int pc_expiration_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
}
-/* this timer exists only when a character with a expire timer > 24h is online */
-/* it loops thru online players once an hour to check whether a new < 24h is available */
+/* This timer exists only when a character with an expire timer > 24h is online */
+/* It loops through online players once an hour to check whether a new < 24h is available */
int pc_global_expiration_timer(int tid, int64 tick, int id, intptr_t data) {
struct s_mapiterator* iter;
struct map_session_data* sd;
@@ -10914,7 +11055,9 @@ void pc_defaults(void) {
pc->resetfeel = pc_resetfeel;
pc->resethate = pc_resethate;
pc->equipitem = pc_equipitem;
+ pc->equipitem_pos = pc_equipitem_pos;
pc->unequipitem = pc_unequipitem;
+ pc->unequipitem_pos = pc_unequipitem_pos;
pc->checkitem = pc_checkitem;
pc->useitem = pc_useitem;
@@ -10932,8 +11075,10 @@ void pc_defaults(void) {
pc->setoption = pc_setoption;
pc->setcart = pc_setcart;
pc->setfalcon = pc_setfalcon;
- pc->setriding = pc_setriding;
+ pc->setridingpeco = pc_setridingpeco;
pc->setmadogear = pc_setmadogear;
+ pc->setridingdragon = pc_setridingdragon;
+ pc->setridingwug = pc_setridingwug;
pc->changelook = pc_changelook;
pc->equiplookall = pc_equiplookall;
diff --git a/src/map/pc.h b/src/map/pc.h
index bec4522df..8472eb34e 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -29,7 +29,7 @@
#define MAX_PC_BONUS 10
#define MAX_PC_SKILL_REQUIRE 5
#define MAX_PC_FEELHATE 3
-#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval
+#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval
//Equip indexes constants. (eg: sd->equip_index[EQI_AMMO] returns the index
//where the arrows are equipped)
@@ -80,7 +80,7 @@ struct weapon_data {
} hp_drain[RC_MAX], sp_drain[RC_MAX];
struct {
short class_, rate;
- } add_dmg[MAX_PC_BONUS];
+ } add_dmg[MAX_PC_BONUS];
struct {
short flag, rate;
unsigned char ele;
@@ -145,7 +145,7 @@ struct map_session_data {
unsigned int snovice_dead_flag : 1; //Explosion spirits on death: 0 off, 1 used.
unsigned int abra_flag : 2; // Abracadabra bugfix by Aru
unsigned int autocast : 1; // Autospell flag [Inkfish]
- unsigned int autotrade : 1; //By Fantik
+ unsigned int autotrade : 2; //By Fantik
unsigned int showdelay :1;
unsigned int showexp :1;
unsigned int showzeny :1;
@@ -202,13 +202,13 @@ struct map_session_data {
unsigned int bonus_coma : 1;
} special_state;
int login_id1, login_id2;
- unsigned short class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex]
-
+ unsigned short class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex]
+
/// Groups & permissions
int group_id;
GroupSettings *group;
unsigned int extra_temp_permissions; /* permissions from @addperm */
-
+
struct mmo_charstatus status;
struct item_data* inventory_data[MAX_INVENTORY]; // direct pointers to itemdb entries (faster than doing item_id lookups)
short equip_index[EQI_MAX];
@@ -301,7 +301,7 @@ struct map_session_data {
} hp_loss, sp_loss, hp_regen, sp_regen;
struct {
short class_, rate;
- } add_def[MAX_PC_BONUS], add_mdef[MAX_PC_BONUS], add_mdmg[MAX_PC_BONUS];
+ } add_def[MAX_PC_BONUS], add_mdef[MAX_PC_BONUS], add_mdmg[MAX_PC_BONUS];
struct s_add_drop add_drop[MAX_PC_BONUS];
struct {
int nameid;
@@ -349,7 +349,7 @@ struct map_session_data {
short sp_gain_value, hp_gain_value, magic_sp_gain_value, magic_hp_gain_value;
short sp_vanish_rate;
short sp_vanish_per, sp_vanish_trigger;
- unsigned short unbreakable; // chance to prevent ANY equipment breaking [celest]
+ unsigned short unbreakable; // chance to prevent ANY equipment breaking [celest]
unsigned short unbreakable_equip; //100% break resistance on certain equipment
unsigned short unstripable_equip;
int fixcastrate,varcastrate;
@@ -362,12 +362,12 @@ struct map_session_data {
int matk_rate;
int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate;
int itemid;
- short itemindex; //Used item's index in sd->inventory [Skotlex]
+ short itemindex; //Used item's index in sd->inventory [Skotlex]
short catch_target_class; // pet catching, stores a pet class to catch (short now) [zzo]
short spiritball, spiritball_old;
int spirit_timer[MAX_SPIRITBALL];
- short charm[ELE_POISON+1]; // There are actually 5 charm Fire, Ice, Wind, Earth & Poison maybe because its color violet.
- int charm_timer[ELE_POISON+1][10];
+ short spiritcharm[SPIRITS_TYPE_END];
+ int charm_timer[SPIRITS_TYPE_END][MAX_SPIRITCHARM];
unsigned char potion_success_counter; //Potion successes in row counter
unsigned char mission_count; //Stores the bounty kill count for TK_MISSION
short mission_mobid; //Stores the target mob_id for TK_MISSION
@@ -400,7 +400,7 @@ struct map_session_data {
struct s_search_store_info searchstore;
struct pet_data *pd;
- struct homun_data *hd; // [blackhole89]
+ struct homun_data *hd; // [blackhole89]
struct mercenary_data *md;
struct elemental_data *ed;
@@ -481,14 +481,14 @@ struct map_session_data {
struct pc_combos *combos;
unsigned char combo_count;
-
+
/**
* Guarantees your friend request is legit (for bugreport:4629)
**/
int friend_req;
int shadowform_id;
-
+
/* [Ind/Hercules] */
struct hChSysCh **channels;
unsigned char channel_count;
@@ -497,14 +497,14 @@ struct map_session_data {
unsigned char fontcolor;
unsigned int fontcolor_tid;
int64 hchsysch_tick;
-
+
/* [Ind/Hercules] */
struct sc_display_entry **sc_display;
unsigned char sc_display_count;
-
+
short *instance;
unsigned short instances;
-
+
/* Possible Thanks to Yommy~! */
struct {
unsigned int ready : 1;/* did he accept the 'match is about to start, enter' dialog? */
@@ -515,26 +515,26 @@ struct map_session_data {
int *queues;
unsigned int queues_count;
-
+
/* Made Possible Thanks to Yommy~! */
unsigned int cryptKey; ///< Packet obfuscation key to be used for the next received packet
unsigned short (*parse_cmd_func)(int fd, struct map_session_data *sd); ///< parse_cmd_func used by this player
-
+
unsigned char delayed_damage;//ref. counter bugreport:7307 [Ind/Hercules]
-
+
/* HPM Custom Struct */
struct HPluginData **hdata;
unsigned int hdatac;
-
+
/* expiration_time timer id */
int expiration_tid;
time_t expiration_time;
-
+
/* */
struct {
unsigned int second,third;
} sktree;
-
+
/**
* Account/Char variables & array control of those variables
**/
@@ -542,7 +542,14 @@ struct map_session_data {
unsigned char vars_received;/* char loading is only complete when you get it all. */
bool vars_ok;
bool vars_dirty;
-
+
+ struct {
+ short stage;
+ short prizeIdx;
+ short prizeStage;
+ bool claimPrize;
+ } roulette;
+
// temporary debugging of bug #3504
const char* delunit_prevfile;
int delunit_prevline;
@@ -589,19 +596,20 @@ struct map_session_data {
#endif
#define pc_isfalcon(sd) ( (sd)->sc.option&OPTION_FALCON )
-#define pc_isriding(sd) ( (sd)->sc.option&OPTION_RIDING )
#define pc_isinvisible(sd) ( (sd)->sc.option&OPTION_INVISIBLE )
#define pc_is50overweight(sd) ( (sd)->weight*100 >= (sd)->max_weight*battle->bc->natural_heal_weight_rate )
#define pc_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 )
#define pc_maxparameter(sd) ( (((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO || ((sd)->class_&MAPID_UPPERMASK) == MAPID_REBELLION || ((sd)->class_&MAPID_THIRDMASK) == MAPID_SUPER_NOVICE_E) ? battle->bc->max_extended_parameter : (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle->bc->max_baby_third_parameter : battle->bc->max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle->bc->max_baby_parameter : battle->bc->max_parameter) )
-/**
- * Ranger
- **/
+/// Generic check for mounts
+#define pc_hasmount(sd) ( (sd)->sc.option&(OPTION_RIDING|OPTION_WUGRIDER|OPTION_DRAGON|OPTION_MADOGEAR) )
+/// Knight classes Peco / Gryphon
+#define pc_isridingpeco(sd) ( (sd)->sc.option&(OPTION_RIDING) )
+/// Ranger Warg
#define pc_iswug(sd) ( (sd)->sc.option&OPTION_WUG )
#define pc_isridingwug(sd) ( (sd)->sc.option&OPTION_WUGRIDER )
-// Mechanic Magic Gear
+/// Mechanic Magic Gear
#define pc_ismadogear(sd) ( (sd)->sc.option&OPTION_MADOGEAR )
-// Rune Knight Dragon
+/// Rune Knight Dragon
#define pc_isridingdragon(sd) ( (sd)->sc.option&OPTION_DRAGON )
#define pc_stop_walking(sd, type) (unit->stop_walking(&(sd)->bl, (type)))
@@ -614,13 +622,13 @@ struct map_session_data {
//JOB_NOVICE isn't checked for class_ is supposed to be unsigned
#define pcdb_checkid_sub(class_) \
( \
- ( (class_) < JOB_MAX_BASIC ) \
-|| ( (class_) >= JOB_NOVICE_HIGH && (class_) <= JOB_DARK_COLLECTOR ) \
-|| ( (class_) >= JOB_RUNE_KNIGHT && (class_) <= JOB_MECHANIC_T2 ) \
-|| ( (class_) >= JOB_BABY_RUNE && (class_) <= JOB_BABY_MECHANIC2 ) \
-|| ( (class_) >= JOB_SUPER_NOVICE_E && (class_) <= JOB_SUPER_BABY_E ) \
-|| ( (class_) >= JOB_KAGEROU && (class_) <= JOB_OBORO ) \
-|| ( (class_) >= JOB_REBELLION && (class_) < JOB_MAX ) \
+ ( (class_) < JOB_MAX_BASIC ) \
+ || ( (class_) >= JOB_NOVICE_HIGH && (class_) <= JOB_DARK_COLLECTOR ) \
+ || ( (class_) >= JOB_RUNE_KNIGHT && (class_) <= JOB_MECHANIC_T2 ) \
+ || ( (class_) >= JOB_BABY_RUNE && (class_) <= JOB_BABY_MECHANIC2 ) \
+ || ( (class_) >= JOB_SUPER_NOVICE_E && (class_) <= JOB_SUPER_BABY_E ) \
+ || ( (class_) >= JOB_KAGEROU && (class_) <= JOB_OBORO ) \
+ || ( (class_) >= JOB_REBELLION && (class_) < JOB_MAX ) \
)
#define pcdb_checkid(class_) pcdb_checkid_sub((unsigned int)(class_))
@@ -632,8 +640,8 @@ struct map_session_data {
#define pc_rightside_def(sd) ((sd)->battle_status.def)
#define pc_leftside_mdef(sd) ((sd)->battle_status.mdef2)
#define pc_rightside_mdef(sd) ((sd)->battle_status.mdef)
-#define pc_leftside_matk(sd) (status->base_matk(status->get_status_data(&(sd)->bl), (sd)->status.base_level))
-#define pc_rightside_matk(sd) ((sd)->battle_status.rhw.matk+(sd)->battle_status.lhw.matk+(sd)->bonus.ematk)
+ #define pc_leftside_matk(sd) (status->base_matk(&(sd)->bl, status->get_status_data(&(sd)->bl), (sd)->status.base_level))
+ #define pc_rightside_matk(sd) ((sd)->battle_status.rhw.matk+(sd)->battle_status.lhw.matk+(sd)->bonus.ematk)
#else
#define pc_leftside_atk(sd) ((sd)->battle_status.batk + (sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk)
#define pc_rightside_atk(sd) ((sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2)
@@ -641,18 +649,16 @@ struct map_session_data {
#define pc_rightside_def(sd) ((sd)->battle_status.def2)
#define pc_leftside_mdef(sd) ((sd)->battle_status.mdef)
#define pc_rightside_mdef(sd) ( (sd)->battle_status.mdef2 - ((sd)->battle_status.vit>>1) )
-#define pc_leftside_matk(sd) \
- (\
- ((sd)->sc.data[SC_MAGICPOWER] && (sd)->sc.data[SC_MAGICPOWER]->val4) \
+#define pc_leftside_matk(sd) (\
+ ((sd)->sc.data[SC_MAGICPOWER] && (sd)->sc.data[SC_MAGICPOWER]->val4) \
?((sd)->battle_status.matk_min * 100 + 50) / ((sd)->sc.data[SC_MAGICPOWER]->val3+100) \
- :(sd)->battle_status.matk_min \
- )
-#define pc_rightside_matk(sd) \
- (\
- ((sd)->sc.data[SC_MAGICPOWER] && (sd)->sc.data[SC_MAGICPOWER]->val4) \
+ :(sd)->battle_status.matk_min \
+)
+#define pc_rightside_matk(sd) (\
+ ((sd)->sc.data[SC_MAGICPOWER] && (sd)->sc.data[SC_MAGICPOWER]->val4) \
?((sd)->battle_status.matk_max * 100 + 50) / ((sd)->sc.data[SC_MAGICPOWER]->val3+100) \
- :(sd)->battle_status.matk_max \
- )
+ :(sd)->battle_status.matk_max \
+)
#endif
#define pc_get_group_id(sd) ( (sd)->group_id )
@@ -769,15 +775,12 @@ struct pc_interface {
/* funcs */
void (*init) (bool minimal);
void (*final) (void);
-
+
struct map_session_data* (*get_dummy_sd) (void);
int (*class2idx) (int class_);
- //int (*getrefinebonus) (int lv,int type); FIXME: This function does not exist, nor it is ever called
- bool (*can_give_items) (struct map_session_data *sd);
- bool (*can_give_bound_items) (struct map_session_data *sd);
bool (*can_talk) (struct map_session_data *sd);
bool (*can_attack) ( struct map_session_data *sd, int target_id );
-
+
bool (*can_use_command) (struct map_session_data *sd, const char *command);
int (*set_group) (struct map_session_data *sd, int group_id);
bool (*should_log_commands) (struct map_session_data *sd);
@@ -789,25 +792,25 @@ struct pc_interface {
bool (*authok) (struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers);
void (*authfail) (struct map_session_data *sd);
int (*reg_received) (struct map_session_data *sd);
-
+
int (*isequip) (struct map_session_data *sd,int n);
int (*equippoint) (struct map_session_data *sd,int n);
int (*setinventorydata) (struct map_session_data *sd);
-
+
int (*checkskill) (struct map_session_data *sd,uint16 skill_id);
int (*checkskill2) (struct map_session_data *sd,uint16 index);
int (*checkallowskill) (struct map_session_data *sd);
int (*checkequip) (struct map_session_data *sd,int pos);
-
+
int (*calc_skilltree) (struct map_session_data *sd);
int (*calc_skilltree_normalize_job) (struct map_session_data *sd);
int (*clean_skilltree) (struct map_session_data *sd);
-
+
int (*setpos) (struct map_session_data* sd, unsigned short map_index, int x, int y, clr_type clrtype);
int (*setsavepoint) (struct map_session_data *sd, short map_index, int x, int y);
int (*randomwarp) (struct map_session_data *sd,clr_type type);
int (*memo) (struct map_session_data* sd, int pos);
-
+
int (*checkadditem) (struct map_session_data *sd,int nameid,int amount);
int (*inventoryblank) (struct map_session_data *sd);
int (*search_inventory) (struct map_session_data *sd,int item_id);
@@ -819,45 +822,45 @@ struct pc_interface {
// Special Shop System
int (*paycash) (struct map_session_data *sd, int price, int points);
int (*getcash) (struct map_session_data *sd, int cash, int points);
-
+
int (*cart_additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type);
int (*cart_delitem) (struct map_session_data *sd,int n,int amount,int type,e_log_pick_type log_type);
int (*putitemtocart) (struct map_session_data *sd,int idx,int amount);
int (*getitemfromcart) (struct map_session_data *sd,int idx,int amount);
int (*cartitem_amount) (struct map_session_data *sd,int idx,int amount);
-
+
int (*takeitem) (struct map_session_data *sd,struct flooritem_data *fitem);
int (*dropitem) (struct map_session_data *sd,int n,int amount);
-
+
bool (*isequipped) (struct map_session_data *sd, int nameid);
bool (*can_Adopt) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd);
bool (*adoption) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd);
-
+
int (*updateweightstatus) (struct map_session_data *sd);
-
+
int (*addautobonus) (struct s_autobonus *bonus,char max,const char *bonus_script,short rate,unsigned int dur,short atk_type,const char *o_script,unsigned short pos,bool onskill);
int (*exeautobonus) (struct map_session_data* sd,struct s_autobonus *bonus);
int (*endautobonus) (int tid, int64 tick, int id, intptr_t data);
int (*delautobonus) (struct map_session_data* sd,struct s_autobonus *bonus,char max,bool restore);
-
+
int (*bonus) (struct map_session_data *sd,int type,int val);
int (*bonus2) (struct map_session_data *sd,int type,int type2,int val);
int (*bonus3) (struct map_session_data *sd,int type,int type2,int type3,int val);
int (*bonus4) (struct map_session_data *sd,int type,int type2,int type3,int type4,int val);
int (*bonus5) (struct map_session_data *sd,int type,int type2,int type3,int type4,int type5,int val);
int (*skill) (struct map_session_data *sd, int id, int level, int flag);
-
+
int (*insert_card) (struct map_session_data *sd,int idx_card,int idx_equip);
-
+
int (*steal_item) (struct map_session_data *sd,struct block_list *bl, uint16 skill_lv);
int (*steal_coin) (struct map_session_data *sd,struct block_list *bl);
-
+
int (*modifybuyvalue) (struct map_session_data *sd,int orig_value);
int (*modifysellvalue) (struct map_session_data *sd,int orig_value);
-
+
int (*follow) (struct map_session_data *sd, int target_id); // [MouseJstr]
int (*stop_following) (struct map_session_data *sd);
-
+
unsigned int (*maxbaselv) (struct map_session_data *sd);
unsigned int (*maxjoblv) (struct map_session_data *sd);
int (*checkbaselevelup) (struct map_session_data *sd);
@@ -880,14 +883,16 @@ struct pc_interface {
int (*resetfeel) (struct map_session_data *sd);
int (*resethate) (struct map_session_data *sd);
int (*equipitem) (struct map_session_data *sd,int n,int req_pos);
+ void (*equipitem_pos) (struct map_session_data *sd, struct item_data *id, int pos);
int (*unequipitem) (struct map_session_data *sd,int n,int flag);
+ void (*unequipitem_pos) (struct map_session_data *sd, int n, int pos);
int (*checkitem) (struct map_session_data *sd);
int (*useitem) (struct map_session_data *sd,int n);
-
+
int (*skillatk_bonus) (struct map_session_data *sd, uint16 skill_id);
int (*skillheal_bonus) (struct map_session_data *sd, uint16 skill_id);
int (*skillheal2_bonus) (struct map_session_data *sd, uint16 skill_id);
-
+
void (*damage) (struct map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp);
int (*dead) (struct map_session_data *sd,struct block_list *src);
void (*revive) (struct map_session_data *sd,unsigned int hp, unsigned int sp);
@@ -897,12 +902,14 @@ struct pc_interface {
int (*jobchange) (struct map_session_data *sd,int job, int upper);
int (*setoption) (struct map_session_data *sd,int type);
int (*setcart) (struct map_session_data* sd, int type);
- int (*setfalcon) (struct map_session_data* sd, int flag);
- int (*setriding) (struct map_session_data* sd, int flag);
- void (*setmadogear) (struct map_session_data* sd, int flag);
+ void (*setfalcon) (struct map_session_data *sd, bool flag);
+ void (*setridingpeco) (struct map_session_data *sd, bool flag);
+ void (*setmadogear) (struct map_session_data *sd, bool flag);
+ void (*setridingdragon) (struct map_session_data *sd, unsigned int type);
+ void (*setridingwug) (struct map_session_data *sd, bool flag);
int (*changelook) (struct map_session_data *sd,int type,int val);
int (*equiplookall) (struct map_session_data *sd);
-
+
int (*readparam) (struct map_session_data *sd,int type);
int (*setparam) (struct map_session_data *sd,int type,int val);
int (*readreg) (struct map_session_data *sd, int64 reg);
@@ -913,15 +920,15 @@ struct pc_interface {
int (*setregistry) (struct map_session_data *sd, int64 reg, int val);
char * (*readregistry_str) (struct map_session_data *sd, int64 reg);
int (*setregistry_str) (struct map_session_data *sd, int64 reg, const char *val);
-
+
int (*addeventtimer) (struct map_session_data *sd,int tick,const char *name);
int (*deleventtimer) (struct map_session_data *sd,const char *name);
int (*cleareventtimer) (struct map_session_data *sd);
int (*addeventtimercount) (struct map_session_data *sd,const char *name,int tick);
-
+
int (*calc_pvprank) (struct map_session_data *sd);
int (*calc_pvprank_timer) (int tid, int64 tick, int id, intptr_t data);
-
+
int (*ismarried) (struct map_session_data *sd);
int (*marriage) (struct map_session_data *sd,struct map_session_data *dstsd);
int (*divorce) (struct map_session_data *sd);
@@ -929,27 +936,27 @@ struct pc_interface {
struct map_session_data * (*get_father) (struct map_session_data *sd);
struct map_session_data * (*get_mother) (struct map_session_data *sd);
struct map_session_data * (*get_child) (struct map_session_data *sd);
-
+
void (*bleeding) (struct map_session_data *sd, unsigned int diff_tick);
void (*regen) (struct map_session_data *sd, unsigned int diff_tick);
-
+
void (*setstand) (struct map_session_data *sd);
int (*candrop) (struct map_session_data *sd,struct item *item);
-
+
int (*jobid2mapid) (unsigned short b_class); // Skotlex
int (*mapid2jobid) (unsigned short class_, int sex); // Skotlex
-
+
const char * (*job_name) (int class_);
-
+
void (*setinvincibletimer) (struct map_session_data* sd, int val);
void (*delinvincibletimer) (struct map_session_data* sd);
-
+
int (*addspiritball) (struct map_session_data *sd,int interval,int max);
int (*delspiritball) (struct map_session_data *sd,int count,int type);
void (*addfame) (struct map_session_data *sd,int count);
unsigned char (*famerank) (int char_id, int job);
int (*set_hate_mob) (struct map_session_data *sd, int pos, struct block_list *bl);
-
+
int (*readdb) (void);
int (*map_day_timer) (int tid, int64 tick, int id, intptr_t data); // by [yor]
int (*map_night_timer) (int tid, int64 tick, int id, intptr_t data); // by [yor]
@@ -957,25 +964,25 @@ struct pc_interface {
void (*inventory_rentals) (struct map_session_data *sd);
int (*inventory_rental_clear) (struct map_session_data *sd);
void (*inventory_rental_add) (struct map_session_data *sd, int seconds);
-
+
int (*disguise) (struct map_session_data *sd, int class_);
bool (*isautolooting) (struct map_session_data *sd, int nameid);
-
+
void (*overheat) (struct map_session_data *sd, int val);
-
+
int (*banding) (struct map_session_data *sd, uint16 skill_lv);
-
+
void (*itemcd_do) (struct map_session_data *sd, bool load);
-
+
int (*load_combo) (struct map_session_data *sd);
-
+
int (*add_charm) (struct map_session_data *sd,int interval,int max,int type);
int (*del_charm) (struct map_session_data *sd,int count,int type);
-
+
void (*baselevelchanged) (struct map_session_data *sd);
int (*level_penalty_mod) (int diff, unsigned char race, unsigned short mode, int type);
int (*calc_skillpoint) (struct map_session_data* sd);
-
+
int (*invincible_timer) (int tid, int64 tick, int id, intptr_t data);
int (*spiritball_timer) (int tid, int64 tick, int id, intptr_t data);
int (*check_banding) ( struct block_list *bl, va_list ap );
@@ -1003,19 +1010,19 @@ struct pc_interface {
int (*checkcombo) (struct map_session_data *sd, struct item_data *data );
int (*calcweapontype) (struct map_session_data *sd);
int (*removecombo) (struct map_session_data *sd, struct item_data *data );
-
+
void (*bank_deposit) (struct map_session_data *sd, int money);
void (*bank_withdraw) (struct map_session_data *sd, int money);
-
+
void (*rental_expire) (struct map_session_data *sd, int i);
void (*scdata_received) (struct map_session_data *sd);
-
+
void (*bound_clear) (struct map_session_data *sd, enum e_item_bound_type type);
-
+
int (*expiration_timer) (int tid, int64 tick, int id, intptr_t data);
int (*global_expiration_timer) (int tid, int64 tick, int id, intptr_t data);
void (*expire_check) (struct map_session_data *sd);
-
+
/**
* Autotrade persistency [Ind/Hercules <3]
**/
diff --git a/src/map/pc_groups.c b/src/map/pc_groups.c
index e577c642f..9cd478b3f 100644
--- a/src/map/pc_groups.c
+++ b/src/map/pc_groups.c
@@ -420,6 +420,10 @@ void do_init_pc_groups(void) {
{ "disable_commands_when_dead", PC_PERM_DISABLE_CMD_DEAD },
{ "hchsys_admin", PC_PERM_HCHSYS_ADMIN },
{ "can_trade_bound", PC_PERM_TRADE_BOUND },
+ { "disable_pickup", PC_PERM_DISABLE_PICK_UP },
+ { "disable_store", PC_PERM_DISABLE_STORE },
+ { "disable_exp", PC_PERM_DISABLE_EXP },
+ { "disable_skill_usage", PC_PERM_DISABLE_SKILL_USAGE },
};
unsigned char i, len = ARRAYLENGTH(pc_g_defaults);
diff --git a/src/map/pc_groups.h b/src/map/pc_groups.h
index f52e2ba22..48ff782dd 100644
--- a/src/map/pc_groups.h
+++ b/src/map/pc_groups.h
@@ -35,6 +35,10 @@ enum e_pc_permission {
PC_PERM_DISABLE_CMD_DEAD = 0x100000,
PC_PERM_HCHSYS_ADMIN = 0x200000,
PC_PERM_TRADE_BOUND = 0x400000,
+ PC_PERM_DISABLE_PICK_UP = 0x800000,
+ PC_PERM_DISABLE_STORE = 0x1000000,
+ PC_PERM_DISABLE_EXP = 0x2000000,
+ PC_PERM_DISABLE_SKILL_USAGE = 0x4000000,
};
// Cached config settings for quick lookup
diff --git a/src/map/pet.c b/src/map/pet.c
index 9275a6de5..71dd39401 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -510,7 +510,7 @@ int pet_catch_process2(struct map_session_data* sd, int target_id) {
if (sd->catch_target_class == 0 && !(md->status.mode&MD_BOSS))
sd->catch_target_class = md->class_;
if(i < 0 || sd->catch_target_class != md->class_) {
- clif->emotion(&md->bl, E_AG); //mob will do /ag if wrong lure is used on them.
+ clif->emotion(&md->bl, E_AG); //mob will do /ag if wrong lure is used on them.
clif->pet_roulette(sd,0);
sd->catch_target_class = -1;
return 1;
@@ -688,10 +688,7 @@ int pet_equipitem(struct map_session_data *sd,int index) {
//Skotlex: start support timers if need
int64 tick = timer->gettick();
if (pd->s_skill && pd->s_skill->timer == INVALID_TIMER) {
- if (pd->s_skill->id)
- pd->s_skill->timer=timer->add(tick+pd->s_skill->delay*1000, pet->skill_support_timer, sd->bl.id, 0);
- else
- pd->s_skill->timer=timer->add(tick+pd->s_skill->delay*1000, pet->heal_timer, sd->bl.id, 0);
+ pd->s_skill->timer=timer->add(tick+pd->s_skill->delay*1000, pet->skill_support_timer, sd->bl.id, 0);
}
if (pd->bonus && pd->bonus->timer == INVALID_TIMER)
pd->bonus->timer=timer->add(tick+pd->bonus->delay*1000, pet->skill_bonus_timer, sd->bl.id, 0);
@@ -725,12 +722,8 @@ int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) {
pd->state.skillbonus = 0;
status_calc_pc(sd,SCO_NONE);
}
- if( pd->s_skill && pd->s_skill->timer != INVALID_TIMER )
- {
- if( pd->s_skill->id )
- timer->delete(pd->s_skill->timer, pet->skill_support_timer);
- else
- timer->delete(pd->s_skill->timer, pet->heal_timer);
+ if (pd->s_skill && pd->s_skill->timer != INVALID_TIMER) {
+ timer->delete(pd->s_skill->timer, pet->skill_support_timer);
pd->s_skill->timer = INVALID_TIMER;
}
if( pd->bonus && pd->bonus->timer != INVALID_TIMER )
@@ -821,7 +814,7 @@ int pet_randomwalk(struct pet_data *pd, int64 tick) {
else
c+=pd->status.speed;
}
- pd->next_walktime = tick+rnd()%3000+3000+c;
+ pd->next_walktime = tick+rnd()%1000+MIN_RANDOMWALKTIME+c;
return 1;
}
@@ -911,17 +904,18 @@ int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, int64 tick
if (target->type != BL_ITEM)
{ //enemy targetted
- if(!battle->check_range(&pd->bl,target,pd->status.rhw.range))
- { //Chase
+ if(!battle->check_range(&pd->bl,target,pd->status.rhw.range)) {
+ //Chase
if(!unit->walktobl(&pd->bl, target, pd->status.rhw.range, 2))
pet->unlocktarget(pd); //Unreachable target.
return 0;
}
//Continuous attack.
unit->attack(&pd->bl, pd->target_id, 1);
- } else { //Item Targeted, attempt loot
- if (!check_distance_bl(&pd->bl, target, 1))
- { //Out of range
+ } else {
+ //Item Targeted, attempt loot
+ if (!check_distance_bl(&pd->bl, target, 1)) {
+ //Out of range
if(!unit->walktobl(&pd->bl, target, 1, 1)) //Unreachable target.
pet->unlocktarget(pd);
return 0;
@@ -1036,7 +1030,7 @@ int pet_lootitem_drop(struct pet_data *pd,struct map_session_data *sd)
memset(pd->loot->item,0,pd->loot->max * sizeof(struct item));
pd->loot->count = 0;
pd->loot->weight = 0;
- pd->ud.canact_tick = timer->gettick()+10000; //prevent picked up during 10*1000ms
+ pd->ud.canact_tick = timer->gettick()+10000; //prevent picked up during 10*1000ms
if (dlist->item)
timer->add(timer->gettick()+540,pet->delay_item_drop,0,(intptr_t)dlist);
@@ -1103,8 +1097,8 @@ int pet_recovery_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
}
- if(sd->sc.data[pd->recovery->type])
- { //Display a heal animation?
+ if (sd->sc.data[pd->recovery->type]) {
+ //Display a heal animation?
//Detoxify is chosen for now.
clif->skill_nodamage(&pd->bl,&sd->bl,TF_DETOXIFY,1,1);
status_change_end(&sd->bl, pd->recovery->type, INVALID_TIMER);
@@ -1116,40 +1110,6 @@ int pet_recovery_timer(int tid, int64 tick, int id, intptr_t data) {
return 0;
}
-int pet_heal_timer(int tid, int64 tick, int id, intptr_t data) {
- struct map_session_data *sd=map->id2sd(id);
- struct status_data *st;
- struct pet_data *pd;
- unsigned int rate = 100;
-
- if(sd==NULL || sd->pd == NULL || sd->pd->s_skill == NULL)
- return 1;
-
- pd=sd->pd;
-
- if(pd->s_skill->timer != tid) {
- ShowError("pet_heal_timer %d != %d\n",pd->s_skill->timer,tid);
- return 0;
- }
-
- st = status->get_status_data(&sd->bl);
-
- if(pc_isdead(sd) ||
- (rate = get_percentage(st->sp, st->max_sp)) > pd->s_skill->sp ||
- (rate = get_percentage(st->hp, st->max_hp)) > pd->s_skill->hp ||
- (rate = (pd->ud.skilltimer != INVALID_TIMER)) //Another skill is in effect
- ) { //Wait (how long? 1 sec for every 10% of remaining)
- pd->s_skill->timer=timer->add(timer->gettick()+(rate>10?rate:10)*100,pet->heal_timer,sd->bl.id,0);
- return 0;
- }
- pet_stop_attack(pd);
- pet_stop_walking(pd,1);
- clif->skill_nodamage(&pd->bl,&sd->bl,AL_HEAL,pd->s_skill->lv,1);
- status->heal(&sd->bl, pd->s_skill->lv,0, 0);
- pd->s_skill->timer=timer->add(tick+pd->s_skill->delay*1000,pet->heal_timer,sd->bl.id,0);
- return 0;
-}
-
/*==========================================
* pet support skills [Skotlex]
*------------------------------------------*/
@@ -1170,8 +1130,8 @@ int pet_skill_support_timer(int tid, int64 tick, int id, intptr_t data) {
st = status->get_status_data(&sd->bl);
- if (DIFF_TICK(pd->ud.canact_tick, tick) > 0)
- { //Wait until the pet can act again.
+ if (DIFF_TICK(pd->ud.canact_tick, tick) > 0) {
+ //Wait until the pet can act again.
pd->s_skill->timer=timer->add(pd->ud.canact_tick,pet->skill_support_timer,sd->bl.id,0);
return 0;
}
@@ -1360,7 +1320,6 @@ int do_init_pet(bool minimal) {
timer->add_func_list(pet->delay_item_drop,"pet_delay_item_drop");
timer->add_func_list(pet->skill_support_timer, "pet_skill_support_timer"); // [Skotlex]
timer->add_func_list(pet->recovery_timer,"pet_recovery_timer"); // [Valaris]
- timer->add_func_list(pet->heal_timer,"pet_heal_timer"); // [Valaris]
timer->add_interval(timer->gettick()+MIN_PETTHINKTIME,pet->ai_hard,0,0,MIN_PETTHINKTIME);
return 0;
@@ -1432,7 +1391,6 @@ void pet_defaults(void) {
pet->lootitem_drop = pet_lootitem_drop;
pet->skill_bonus_timer = pet_skill_bonus_timer;
pet->recovery_timer = pet_recovery_timer;
- pet->heal_timer = pet_heal_timer;
pet->skill_support_timer = pet_skill_support_timer;
pet->read_db = read_petdb;
}
diff --git a/src/map/pet.h b/src/map/pet.h
index 5c890ef85..cffcf7dd0 100644
--- a/src/map/pet.h
+++ b/src/map/pet.h
@@ -41,16 +41,16 @@ struct s_pet_db {
enum { PET_CLASS,PET_CATCH,PET_EGG,PET_EQUIP,PET_FOOD };
struct pet_recovery { //Stat recovery
- enum sc_type type; //Status Change id
- unsigned short delay; //How long before curing (secs).
+ enum sc_type type; ///< Status Change id
+ unsigned short delay; ///< How long before curing (secs).
int timer;
};
struct pet_bonus {
- unsigned short type; //bStr, bVit?
- unsigned short val; //Qty
+ unsigned short type; //bStr, bVit?
+ unsigned short val; //Qty
unsigned short duration; //in secs
- unsigned short delay; //Time before RENEWAL_CAST (secs)
+ unsigned short delay; //Time before RENEWAL_CAST (secs)
int timer;
};
@@ -93,7 +93,7 @@ struct pet_data {
} state;
int move_fail_count;
int64 next_walktime, last_thinktime;
- short rate_fix; //Support rate as modified by intimacy (1000 = 100%) [Skotlex]
+ short rate_fix; //Support rate as modified by intimacy (1000 = 100%) [Skotlex]
struct pet_recovery* recovery;
struct pet_bonus* bonus;
@@ -149,7 +149,6 @@ struct pet_interface {
int (*lootitem_drop) (struct pet_data *pd, struct map_session_data *sd);
int (*skill_bonus_timer) (int tid, int64 tick, int id, intptr_t data);
int (*recovery_timer) (int tid, int64 tick, int id, intptr_t data);
- int (*heal_timer) (int tid, int64 tick, int id, intptr_t data);
int (*skill_support_timer) (int tid, int64 tick, int id, intptr_t data);
int (*read_db) ();
};
diff --git a/src/map/script.c b/src/map/script.c
index ecd12a3c1..031dfc21b 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -55,6 +55,7 @@
#include "../common/sysinfo.h"
#include "../common/timer.h"
#include "../common/utils.h"
+#include "../common/HPM.h"
#ifndef WIN32
#include <sys/time.h>
@@ -140,7 +141,7 @@ static void script_dump_stack(struct script_state* st)
for( i = 0; i < st->stack->sp; ++i )
{
struct script_data* data = &st->stack->stack_data[i];
- ShowMessage("\t[%d] %s", i, script_op2name(data->type));
+ ShowMessage("\t[%d] %s", i, script->op2name(data->type));
switch( data->type )
{
case C_INT:
@@ -154,7 +155,7 @@ static void script_dump_stack(struct script_state* st)
break;
case C_NAME:
- ShowMessage(" \"%s\" (id=%d ref=%p subtype=%s)\n", reference_getname(data), data->u.num, data->ref, script_op2name(script->str_data[data->u.num].type));
+ ShowMessage(" \"%s\" (id=%d ref=%p subtype=%s)\n", reference_getname(data), data->u.num, data->ref, script->op2name(script->str_data[data->u.num].type));
break;
case C_RETINFO:
@@ -526,7 +527,7 @@ int script_add_str(const char* p)
}
}
if( existingentry ) {
- DeprecationWarning2("script_add_str", p, existingentry, script->parser_current_file); // TODO
+ DeprecationCaseWarning("script_add_str", p, existingentry, script->parser_current_file); // TODO
}
#endif // ENABLE_CASE_CHECK
@@ -772,6 +773,8 @@ const char* parse_callfunc(const char* p, int require_paren, int is_custom)
script->addl(func);
script->addc(C_ARG);
arg = script->buildin[script->str_data[func].val];
+ if (script->str_data[func].deprecated)
+ DeprecationWarning(p);
if( !arg ) arg = &null_arg; // Use a dummy, null string
} else if( script->str_data[func].type == C_USERFUNC || script->str_data[func].type == C_USERFUNC_POS ) {
// script defined function
@@ -1349,7 +1352,7 @@ const char* parse_curly_close(const char* p)
char label[256];
int l;
// Remove temporary variables
- sprintf(label,"set $@__SW%x_VAL,0;",script->syntax.curly[pos].index);
+ sprintf(label,"__setr $@__SW%x_VAL,0;",script->syntax.curly[pos].index);
script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL;
script->parse_line(label);
script->syntax.curly_count--;
@@ -1431,10 +1434,6 @@ const char* parse_syntax(const char* p)
// Closing decision if, for , while
p = script->parse_syntax_close(p + 1);
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 5 && strncasecmp(p, "break", 5) == 0 ) {
- disp_deprecation_message("parse_syntax", "break", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 'c':
@@ -1506,7 +1505,7 @@ const char* parse_syntax(const char* p)
disp_error_message("parse_syntax: dup 'case'",p);
linkdb_insert(&script->syntax.curly[pos].case_label, (void*)h64BPTRSIZE(v), (void*)1);
- sprintf(label,"set $@__SW%x_VAL,0;",script->syntax.curly[pos].index);
+ sprintf(label,"__setr $@__SW%x_VAL,0;",script->syntax.curly[pos].index);
script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL;
script->parse_line(label);
@@ -1545,12 +1544,6 @@ const char* parse_syntax(const char* p)
//Closing decision if, for , while
p = script->parse_syntax_close(p + 1);
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 4 && strncasecmp(p, "case", 4) == 0 ) {
- disp_deprecation_message("parse_syntax", "case", p); // TODO
- } else if( p2 - p == 8 && strncasecmp(p, "continue", 8) == 0 ) {
- disp_deprecation_message("parse_syntax", "continue", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 'd':
@@ -1604,12 +1597,6 @@ const char* parse_syntax(const char* p)
script->set_label(l,script->pos,p);
script->syntax.curly_count++;
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 7 && strncasecmp(p, "default", 7) == 0 ) {
- disp_deprecation_message("parse_syntax", "default", p); // TODO
- } else if( p2 - p == 2 && strncasecmp(p, "do", 2) == 0 ) {
- disp_deprecation_message("parse_syntax", "do", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 'f':
@@ -1647,7 +1634,7 @@ const char* parse_syntax(const char* p)
} else {
// Skip to the end point if the condition is false
sprintf(label,"__FR%x_FIN",script->syntax.curly[pos].index);
- script->addl(script->add_str("jump_zero"));
+ script->addl(script->add_str("__jump_zero"));
script->addc(C_ARG);
p=script->parse_expr(p);
p=script->skip_space(p);
@@ -1749,12 +1736,6 @@ const char* parse_syntax(const char* p)
{
disp_error_message("expect ';' or '{' at function syntax",p);
}
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 3 && strncasecmp(p, "for", 3) == 0 ) {
- disp_deprecation_message("parse_syntax", "for", p); // TODO
- } else if( p2 - p == 8 && strncasecmp(p, "function", 8) == 0 ) {
- disp_deprecation_message("parse_syntax", "function", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 'i':
@@ -1772,17 +1753,13 @@ const char* parse_syntax(const char* p)
script->syntax.curly[script->syntax.curly_count].flag = 0;
sprintf(label,"__IF%x_%x",script->syntax.curly[script->syntax.curly_count].index,script->syntax.curly[script->syntax.curly_count].count);
script->syntax.curly_count++;
- script->addl(script->add_str("jump_zero"));
+ script->addl(script->add_str("__jump_zero"));
script->addc(C_ARG);
p=script->parse_expr(p);
p=script->skip_space(p);
script->addl(script->add_str(label));
script->addc(C_FUNC);
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 2 && strncasecmp(p, "if", 2) == 0 ) {
- disp_deprecation_message("parse_syntax", "if", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 's':
@@ -1800,7 +1777,7 @@ const char* parse_syntax(const char* p)
script->syntax.curly[script->syntax.curly_count].flag = 0;
sprintf(label,"$@__SW%x_VAL",script->syntax.curly[script->syntax.curly_count].index);
script->syntax.curly_count++;
- script->addl(script->add_str("set"));
+ script->addl(script->add_str("__setr"));
script->addc(C_ARG);
script->addl(script->add_str(label));
p=script->parse_expr(p);
@@ -1810,10 +1787,6 @@ const char* parse_syntax(const char* p)
}
script->addc(C_FUNC);
return p + 1;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 6 && strncasecmp(p, "switch", 6) == 0 ) {
- disp_deprecation_message("parse_syntax", "switch", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
case 'w':
@@ -1837,17 +1810,13 @@ const char* parse_syntax(const char* p)
// Skip to the end point if the condition is false
sprintf(label,"__WL%x_FIN",script->syntax.curly[script->syntax.curly_count].index);
script->syntax.curly_count++;
- script->addl(script->add_str("jump_zero"));
+ script->addl(script->add_str("__jump_zero"));
script->addc(C_ARG);
p=script->parse_expr(p);
p=script->skip_space(p);
script->addl(script->add_str(label));
script->addc(C_FUNC);
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 5 && strncasecmp(p, "while", 5) == 0 ) {
- disp_deprecation_message("parse_syntax", "while", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
break;
}
@@ -1909,7 +1878,7 @@ const char* parse_syntax_close_sub(const char* p,int* flag)
disp_error_message("need '('",p);
}
sprintf(label,"__IF%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count);
- script->addl(script->add_str("jump_zero"));
+ script->addl(script->add_str("__jump_zero"));
script->addc(C_ARG);
p=script->parse_expr(p);
p=script->skip_space(p);
@@ -1917,10 +1886,6 @@ const char* parse_syntax_close_sub(const char* p,int* flag)
script->addc(C_FUNC);
*flag = 0;
return p;
-#ifdef ENABLE_CASE_CHECK
- } else if( p2 - p == 2 && strncasecmp(p, "if", 2) == 0 ) {
- disp_deprecation_message("parse_syntax", "if", p); // TODO
-#endif // ENABLE_CASE_CHECK
} else {
// else
if(!script->syntax.curly[pos].flag) {
@@ -1929,10 +1894,6 @@ const char* parse_syntax_close_sub(const char* p,int* flag)
return p;
}
}
-#ifdef ENABLE_CASE_CHECK
- } else if( !script->syntax.curly[pos].flag && p2 - p == 4 && strncasecmp(p, "else", 4) == 0 ) {
- disp_deprecation_message("parse_syntax", "else", p); // TODO
-#endif // ENABLE_CASE_CHECK
}
// Close if
script->syntax.curly_count--;
@@ -1959,9 +1920,6 @@ const char* parse_syntax_close_sub(const char* p,int* flag)
p = script->skip_space(p);
p2 = script->skip_word(p);
if( p2 - p != 5 || strncmp(p, "while", 5) != 0 ) {
-#ifdef ENABLE_CASE_CHECK
- if( p2 - p == 5 && strncasecmp(p, "while", 5) == 0 ) disp_deprecation_message("parse_syntax", "while", p); // TODO
-#endif // ENABLE_CASE_CHECK
disp_error_message("parse_syntax: need 'while'",p);
}
@@ -1974,7 +1932,7 @@ const char* parse_syntax_close_sub(const char* p,int* flag)
script->parse_nextline(false, p);
sprintf(label,"__DO%x_FIN",script->syntax.curly[pos].index);
- script->addl(script->add_str("jump_zero"));
+ script->addl(script->add_str("__jump_zero"));
script->addc(C_ARG);
p=script->parse_expr(p);
p=script->skip_space(p);
@@ -2908,7 +2866,7 @@ int set_reg(struct script_state* st, TBL_PC* sd, int64 num, const char* name, co
}
} else {
ShowError("script_set_reg: cannot write instance variable '%s', NPC not in a instance!\n", name);
- script_reportsrc(st);
+ script->reportsrc(st);
}
return 1;
default:
@@ -2974,7 +2932,7 @@ int set_reg(struct script_state* st, TBL_PC* sd, int64 num, const char* name, co
}
} else {
ShowError("script_set_reg: cannot write instance variable '%s', NPC not in a instance!\n", name);
- script_reportsrc(st);
+ script->reportsrc(st);
}
return 1;
default:
@@ -4184,7 +4142,9 @@ int script_config_read(char *cfgName) {
else if(strcmpi(w1,"import")==0) {
script->config_read(w2);
}
- else {
+ else if(HPM->parseConf(w1, w2, HPCT_SCRIPT)) {
+ ; // handled by plugin
+ } else {
ShowWarning("Unknown setting '%s' in file %s\n", w1, cfgName);
}
}
@@ -5681,7 +5641,7 @@ BUILDIN(copyarray);
/// The value is converted to the type of the variable.
///
/// set(<variable>,<value>) -> <variable>
-BUILDIN(setr) {
+BUILDIN(__setr) {
TBL_PC* sd = NULL;
struct script_data* data;
//struct script_data* datavalue;
@@ -5691,7 +5651,7 @@ BUILDIN(setr) {
data = script_getdata(st,2);
//datavalue = script_getdata(st,3);
- if( !data_isreference(data) || reference_toconstant(data) ) {
+ if (!data_isreference(data) || reference_toconstant(data)) {
ShowError("script:set: not a variable\n");
script->reportdata(script_getdata(st,2));
st->state = END;
@@ -5702,9 +5662,9 @@ BUILDIN(setr) {
name = reference_getname(data);
prefix = *name;
- if( not_server_variable(prefix) ) {
+ if (not_server_variable(prefix)) {
sd = script->rid2sd(st);
- if( sd == NULL ) {
+ if (sd == NULL) {
ShowError("script:set: no player attached for player variable '%s'\n", name);
return true;
}
@@ -5712,19 +5672,19 @@ BUILDIN(setr) {
#if 0
// TODO: see de43fa0f73be01080bd11c08adbfb7c158324c81
- if( data_isreference(datavalue) ) {
+ if (data_isreference(datavalue)) {
// the value being referenced is a variable
const char* namevalue = reference_getname(datavalue);
- if( !not_array_variable(*namevalue) ) {
+ if (!not_array_variable(*namevalue)) {
// array variable being copied into another array variable
- if( sd == NULL && not_server_variable(*namevalue) && !(sd = script->rid2sd(st)) ) {
+ if (sd == NULL && not_server_variable(*namevalue) && !(sd = script->rid2sd(st))) {
// player must be attached in order to copy a player variable
ShowError("script:set: no player attached for player variable '%s'\n", namevalue);
return true;
}
- if( is_string_variable(namevalue) != is_string_variable(name) ) {
+ if (is_string_variable(namevalue) != is_string_variable(name)) {
// non-matching array value types
ShowWarning("script:set: two array variables do not match in type.\n");
return true;
@@ -5739,9 +5699,9 @@ BUILDIN(setr) {
}
#endif
- if( script_hasdata(st, 4) ) {
+ if (script_hasdata(st, 4)) {
// Optional argument used by post-increment/post-decrement constructs to return the previous value
- if( is_string_variable(name) ) {
+ if (is_string_variable(name)) {
script_pushstrcopy(st, script_getstr(st, 4));
} else {
script_pushint(st, script_getnum(st, 4));
@@ -5751,7 +5711,7 @@ BUILDIN(setr) {
script_pushcopy(st,2);
}
- if( is_string_variable(name) )
+ if (is_string_variable(name))
script->set_reg(st,sd,num,name,(void*)script_getstr(st,3),script_getref(st,2));
else
script->set_reg(st,sd,num,name,(void*)h64BPTRSIZE(script_getnum(st,3)),script_getref(st,2));
@@ -7013,28 +6973,25 @@ BUILDIN(delitem) {
TBL_PC *sd;
struct item it;
- if( script_hasdata(st,4) )
- {
+ if (script_hasdata(st,4)) {
int account_id = script_getnum(st,4);
sd = map->id2sd(account_id); // <account id>
- if( sd == NULL )
- {
+ if (sd == NULL) {
ShowError("script:delitem: player not found (AID=%d).\n", account_id);
st->state = END;
return false;
}
- }
- else
- {
+ } else {
sd = script->rid2sd(st);// attached player
- if( sd == NULL )
+ if (sd == NULL)
return true;
}
- if( script_isstringtype(st, 2) ) {
+ memset(&it, 0, sizeof(it));
+ if (script_isstringtype(st, 2)) {
const char* item_name = script_getstr(st, 2);
struct item_data* id = itemdb->search_name(item_name);
- if( id == NULL ) {
+ if (id == NULL) {
ShowError("script:delitem: unknown item \"%s\".\n", item_name);
st->state = END;
return false;
@@ -7042,8 +6999,7 @@ BUILDIN(delitem) {
it.nameid = id->nameid;// "<item name>"
} else {
it.nameid = script_getnum(st, 2);// <item id>
- if( !itemdb->exists( it.nameid ) )
- {
+ if (!itemdb->exists(it.nameid)) {
ShowError("script:delitem: unknown item \"%d\".\n", it.nameid);
st->state = END;
return false;
@@ -7074,26 +7030,25 @@ BUILDIN(delitem2) {
TBL_PC *sd;
struct item it;
- if( script_hasdata(st,11) ) {
+ if (script_hasdata(st,11)) {
int account_id = script_getnum(st,11);
sd = map->id2sd(account_id); // <account id>
- if( sd == NULL ) {
+ if (sd == NULL) {
ShowError("script:delitem2: player not found (AID=%d).\n", account_id);
st->state = END;
return false;
}
- }
- else
- {
+ } else {
sd = script->rid2sd(st);// attached player
if( sd == NULL )
return true;
}
- if( script_isstringtype(st, 2) ) {
+ memset(&it, 0, sizeof(it));
+ if (script_isstringtype(st, 2)) {
const char* item_name = script_getstr(st, 2);
struct item_data* id = itemdb->search_name(item_name);
- if( id == NULL ) {
+ if (id == NULL) {
ShowError("script:delitem2: unknown item \"%s\".\n", item_name);
st->state = END;
return false;
@@ -7407,6 +7362,49 @@ BUILDIN(getguildmasterid)
}
/*==========================================
+ * Get the information of the members of a guild by type.
+ * getguildmember <guild_id>{,<type>};
+ * @param guild_id: ID of guild
+ * @param type:
+ * 0 : name (default)
+ * 1 : character ID
+ * 2 : account ID
+ *------------------------------------------*/
+BUILDIN(getguildmember)
+{
+ struct guild *g = NULL;
+ int j = 0;
+
+ g = guild->search(script_getnum(st,2));
+
+ if (g) {
+ int i, type = 0;
+
+ if (script_hasdata(st,3))
+ type = script_getnum(st,3);
+
+ for ( i = 0; i < MAX_GUILD; i++ ) {
+ if ( g->member[i].account_id ) {
+ switch (type) {
+ case 2:
+ mapreg->setreg(reference_uid(script->add_str("$@guildmemberaid"), j),g->member[i].account_id);
+ break;
+ case 1:
+ mapreg->setreg(reference_uid(script->add_str("$@guildmembercid"), j), g->member[i].char_id);
+ break;
+ default:
+ mapreg->setregstr(reference_uid(script->add_str("$@guildmembername$"), j), g->member[i].name);
+ break;
+ }
+ j++;
+ }
+ }
+ }
+ mapreg->setreg(script->add_str("$@guildmembercount"), j);
+ return true;
+}
+
+/*==========================================
* Get char string information by type :
* Return by @type :
* 0 : char_name
@@ -7615,6 +7613,29 @@ BUILDIN(getbrokenid)
}
/*==========================================
+ * getbrokencount
+ *------------------------------------------*/
+BUILDIN(getbrokencount)
+{
+ int i, counter = 0;
+ TBL_PC *sd;
+
+ sd = script->rid2sd(st);
+
+ if (sd == NULL)
+ return true;
+
+ for (i = 0; i < MAX_INVENTORY; i++) {
+ if (sd->status.inventory[i].attribute)
+ counter++;
+ }
+
+ script_pushint(st, counter);
+
+ return true;
+}
+
+/*==========================================
* repair [Valaris]
*------------------------------------------*/
BUILDIN(repair)
@@ -8569,10 +8590,10 @@ BUILDIN(checkfalcon)
TBL_PC* sd;
sd = script->rid2sd(st);
- if( sd == NULL )
+ if (sd == NULL)
return true;// no player attached, report source
- if( pc_isfalcon(sd) )
+ if (pc_isfalcon(sd))
script_pushint(st, 1);
else
script_pushint(st, 0);
@@ -8587,59 +8608,147 @@ BUILDIN(checkfalcon)
/// setfalcon;
BUILDIN(setfalcon)
{
- int flag = 1;
+ bool flag = true;
TBL_PC* sd;
sd = script->rid2sd(st);
- if( sd == NULL )
+ if (sd == NULL)
return true;// no player attached, report source
- if( script_hasdata(st,2) )
- flag = script_getnum(st,2);
+ if (script_hasdata(st,2))
+ flag = script_getnum(st,2) ? true : false;
pc->setfalcon(sd, flag);
return true;
}
-/// Returns if the player is riding.
-///
-/// checkriding() -> <bool>
-///
-/// @author Valaris
-BUILDIN(checkriding)
+enum setmount_type {
+ SETMOUNT_TYPE_AUTODETECT = -1,
+ SETMOUNT_TYPE_NONE = 0,
+ SETMOUNT_TYPE_PECO = 1,
+ SETMOUNT_TYPE_WUG = 2,
+ SETMOUNT_TYPE_MADO = 3,
+ SETMOUNT_TYPE_DRAGON_GREEN = 4,
+ SETMOUNT_TYPE_DRAGON_BROWN = 5,
+ SETMOUNT_TYPE_DRAGON_GRAY = 6,
+ SETMOUNT_TYPE_DRAGON_BLUE = 7,
+ SETMOUNT_TYPE_DRAGON_RED = 8,
+ SETMOUNT_TYPE_MAX,
+ SETMOUNT_TYPE_DRAGON = SETMOUNT_TYPE_DRAGON_GREEN,
+};
+
+/**
+ * Checks if the player is riding a combat mount.
+ *
+ * Returns 0 if the player isn't riding, and non-zero if it is.
+ * The exact returned values are the same used as flag in setmount, except for
+ * dragons, where SETMOUNT_TYPE_DRAGON is returned, regardless of color.
+ */
+BUILDIN(checkmount)
{
TBL_PC* sd;
sd = script->rid2sd(st);
- if( sd == NULL )
- return true;// no player attached, report source
+ if (sd == NULL)
+ return true; // no player attached, report source
- if( pc_isriding(sd) || pc_isridingwug(sd) || pc_isridingdragon(sd) )
- script_pushint(st, 1);
- else
- script_pushint(st, 0);
+ if (!pc_hasmount(sd)) {
+ script_pushint(st, SETMOUNT_TYPE_NONE);
+ } else if (pc_isridingpeco(sd)) {
+ script_pushint(st, SETMOUNT_TYPE_PECO);
+ } else if (pc_isridingwug(sd)) {
+ script_pushint(st, SETMOUNT_TYPE_WUG);
+ } else if (pc_ismadogear(sd)) {
+ script_pushint(st, SETMOUNT_TYPE_MADO);
+ } else { // if (pc_isridingdragon(sd))
+ script_pushint(st, SETMOUNT_TYPE_DRAGON);
+ }
return true;
}
-/// Sets if the player is riding.
-/// <flag> defaults to 1
-///
-/// setriding <flag>;
-/// setriding;
-BUILDIN(setriding)
+/**
+ * Mounts or dismounts a combat mount.
+ *
+ * setmount <flag>;
+ * setmount;
+ *
+ * Accepted values for flag:
+ * MOUNT_NONE - dismount
+ * MOUNT_PECO - Peco Peco / Grand Peco / Gryphon (depending on the class)
+ * MOUNT_WUG - Wug (Rider)
+ * MOUNT_MADO - Mado Gear
+ * MOUNT_DRAGON - Dragon (default color)
+ * MOUNT_DRAGON_GREEN - Green Dragon
+ * MOUNT_DRAGON_BROWN - Brown Dragon
+ * MOUNT_DRAGON_GRAY - Gray Dragon
+ * MOUNT_DRAGON_BLUE - Blue Dragon
+ * MOUNT_DRAGON_RED - Red Dragon
+ *
+ * If an invalid value or no flag is specified, the appropriate mount is
+ * auto-detected. As a result of this, there is no need to specify a flag at
+ * all, unless it is a dragon color other than green.
+ */
+BUILDIN(setmount)
{
- int flag = 1;
+ int flag = SETMOUNT_TYPE_AUTODETECT;
TBL_PC* sd;
sd = script->rid2sd(st);
- if( sd == NULL )
+
+ if (sd == NULL)
return true;// no player attached, report source
- if( script_hasdata(st,2) )
+ if (script_hasdata(st,2))
flag = script_getnum(st,2);
- pc->setriding(sd, flag);
+
+ // Color variants for Rune Knight dragon mounts.
+ if (flag != SETMOUNT_TYPE_NONE) {
+ if (flag < SETMOUNT_TYPE_AUTODETECT || flag >= SETMOUNT_TYPE_MAX) {
+ ShowWarning("script_setmount: Unknown flag %d specified. Using auto-detected value.\n", flag);
+ flag = SETMOUNT_TYPE_AUTODETECT;
+ }
+ // Sanity checks and auto-detection
+ if ((sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT) {
+ if (pc->checkskill(sd, RK_DRAGONTRAINING)) {
+ // Rune Knight (Dragon)
+ unsigned int option;
+ option = ( flag == SETMOUNT_TYPE_DRAGON_GREEN ? OPTION_DRAGON1 :
+ flag == SETMOUNT_TYPE_DRAGON_BROWN ? OPTION_DRAGON2 :
+ flag == SETMOUNT_TYPE_DRAGON_GRAY ? OPTION_DRAGON3 :
+ flag == SETMOUNT_TYPE_DRAGON_RED ? OPTION_DRAGON4 :
+ flag == SETMOUNT_TYPE_DRAGON_RED ? OPTION_DRAGON5 :
+ OPTION_DRAGON1); // default value
+ pc->setridingdragon(sd, option);
+ }
+ } else if ((sd->class_&MAPID_THIRDMASK) == MAPID_RANGER) {
+ // Ranger (Warg)
+ if (pc->checkskill(sd, RA_WUGRIDER))
+ pc->setridingwug(sd, true);
+ } else if ((sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC) {
+ // Mechanic (Mado Gear)
+ if (pc->checkskill(sd, NC_MADOLICENCE))
+ pc->setmadogear(sd, true);
+ } else {
+ // Knight / Crusader (Peco Peco)
+ if (pc->checkskill(sd, KN_RIDING))
+ pc->setridingpeco(sd, true);
+ }
+ } else if (pc_hasmount(sd)) {
+ if (pc_isridingdragon(sd)) {
+ pc->setridingdragon(sd, 0);
+ }
+ if (pc_isridingwug(sd)) {
+ pc->setridingwug(sd, false);
+ }
+ if (pc_ismadogear(sd)) {
+ pc->setmadogear(sd, false);
+ }
+ if (pc_isridingpeco(sd)) {
+ pc->setridingpeco(sd, false);
+ }
+ }
return true;
}
@@ -8664,47 +8773,6 @@ BUILDIN(checkwug)
return true;
}
-/// Returns if the player is wearing MADO Gear.
-///
-/// checkmadogear() -> <bool>
-///
-BUILDIN(checkmadogear)
-{
- TBL_PC* sd;
-
- sd = script->rid2sd(st);
- if( sd == NULL )
- return true;// no player attached, report source
-
- if( pc_ismadogear(sd) )
- script_pushint(st, 1);
- else
- script_pushint(st, 0);
-
- return true;
-}
-
-/// Sets if the player is riding MADO Gear.
-/// <flag> defaults to 1
-///
-/// setmadogear <flag>;
-/// setmadogear;
-BUILDIN(setmadogear)
-{
- int flag = 1;
- TBL_PC* sd;
-
- sd = script->rid2sd(st);
- if( sd == NULL )
- return true;// no player attached, report source
-
- if( script_hasdata(st,2) )
- flag = script_getnum(st,2);
- pc->setmadogear(sd, flag);
-
- return true;
-}
-
/// Sets the save point of the player.
///
/// save "<map name>",<x>,<y>
@@ -9029,7 +9097,7 @@ BUILDIN(monster)
int class_ = script_getnum(st,6);
int amount = script_getnum(st,7);
const char *event = "";
- unsigned int size = SZ_MEDIUM;
+ unsigned int size = SZ_SMALL;
unsigned int ai = AI_NONE;
int mob_id;
@@ -9138,7 +9206,7 @@ BUILDIN(areamonster) {
int class_ = script_getnum(st,8);
int amount = script_getnum(st,9);
const char *event = "";
- unsigned int size = SZ_MEDIUM;
+ unsigned int size = SZ_SMALL;
unsigned int ai = AI_NONE;
int mob_id;
@@ -9939,22 +10007,62 @@ int buildin_getareausers_sub(struct block_list *bl,va_list ap)
(*users)++;
return 0;
}
+
BUILDIN(getareausers)
{
- const char *str;
- int16 m,x0,y0,x1,y1,users=0; //doubt we can have more then 32k users on
- str=script_getstr(st,2);
- x0=script_getnum(st,3);
- y0=script_getnum(st,4);
- x1=script_getnum(st,5);
- y1=script_getnum(st,6);
- if( (m=map->mapname2mapid(str))< 0) {
- script_pushint(st,-1);
- return true;
+ int16 m = -1, x0, y0, x1, y1;
+ int users = 0;
+ int idx = 2;
+
+ if (script_hasdata(st, 2) && script_isstringtype(st, 2)) {
+ const char *str = script_getstr(st, 2);
+ if ((m = map->mapname2mapid(str)) < 0) {
+ script_pushint(st, -1);
+ return true;
+ }
+ idx = 3;
+ } else {
+ TBL_PC *sd = script->rid2sd(st);
+ if (!sd) {
+ script_pushint(st, -1);
+ return false;
+ }
+ m = sd->bl.m;
+ }
+
+ if (script_hasdata(st, idx + 3)) {
+ x0 = script_getnum(st, idx + 0);
+ y0 = script_getnum(st, idx + 1);
+ x1 = script_getnum(st, idx + 2);
+ y1 = script_getnum(st, idx + 3);
+ } else if (st->oid) {
+ struct npc_data *nd = map->id2nd(st->oid);
+ if (!nd) {
+ script_pushint(st, -1);
+ return true;
+ }
+ if (script_hasdata(st, idx)) {
+ int range = script_getnum(st, idx);
+ x0 = nd->bl.x - range;
+ y0 = nd->bl.y - range;
+ x1 = nd->bl.x + range;
+ y1 = nd->bl.y + range;
+ } else if (nd->u.scr.xs != -1 && nd->u.scr.ys != -1) {
+ x0 = nd->bl.x - nd->u.scr.xs;
+ y0 = nd->bl.y - nd->u.scr.ys;
+ x1 = nd->bl.x + nd->u.scr.xs;
+ y1 = nd->bl.y + nd->u.scr.ys;
+ } else {
+ script_pushint(st, -1);
+ return true;
+ }
+ } else {
+ script_pushint(st, -1);
+ return false;
}
map->foreachinarea(script->buildin_getareausers_sub,
- m,x0,y0,x1,y1,BL_PC,&users);
- script_pushint(st,users);
+ m, x0, y0, x1, y1, BL_PC, &users);
+ script_pushint(st, users);
return true;
}
@@ -10039,117 +10147,74 @@ BUILDIN(hideonnpc)
return true;
}
-/// Starts a status effect on the target unit or on the attached player.
-///
-/// sc_start <effect_id>,<duration>,<val1>{,<unit_id>};
+/* Starts a status effect on the target unit or on the attached player.
+ *
+ * sc_start <effect_id>,<duration>,<val1>{,<rate>,<flag>,{<unit_id>}};
+ * sc_start2 <effect_id>,<duration>,<val1>,<val2>{,<rate,<flag>,{<unit_id>}};
+ * sc_start4 <effect_id>,<duration>,<val1>,<val2>,<val3>,<val4>{,<rate,<flag>,{<unit_id>}};
+ * <flag>: @see enum scstart_flag
+ */
BUILDIN(sc_start) {
+ TBL_NPC * nd = map->id2nd(st->oid);
struct block_list* bl;
enum sc_type type;
- int tick;
- int val1;
- int val4 = 0;
+ int tick, val1, val2, val3, val4=0, rate, flag;
+ char start_type;
+ const char* command = script->getfuncname(st);
+
+ if(strstr(command, "4"))
+ start_type = 4;
+ else if(strstr(command, "2"))
+ start_type = 2;
+ else
+ start_type = 1;
type = (sc_type)script_getnum(st,2);
tick = script_getnum(st,3);
val1 = script_getnum(st,4);
- if( script_hasdata(st,5) )
- bl = map->id2bl(script_getnum(st,5));
- else
- bl = map->id2bl(st->rid);
-
- if( tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && status->sc2skill(type) != 0 ) {
- // When there isn't a duration specified, try to get it from the skill_db
- tick = skill->get_time(status->sc2skill(type), val1);
- }
- if( script->potion_flag == 1 && script->potion_target ) {
- //skill.c set the flags before running the script, this must be a potion-pitched effect.
- bl = map->id2bl(script->potion_target);
- tick /= 2;// Thrown potions only last half.
- val4 = 1;// Mark that this was a thrown sc_effect
- }
-
- if( bl )
- status->change_start(NULL, bl, type, 10000, val1, 0, 0, val4, tick, 2);
+ //If from NPC we make default flag SCFLAG_NOAVOID to be unavoidable
+ if(nd && nd->bl.id == npc->fake_nd->bl.id)
+ flag = script_hasdata(st,5+start_type) ? script_getnum(st,5+start_type) : SCFLAG_FIXEDTICK;
+ else
+ flag = script_hasdata(st,5+start_type) ? script_getnum(st,5+start_type) : SCFLAG_NOAVOID;
- return true;
-}
+ rate = script_hasdata(st,4+start_type)?min(script_getnum(st,4+start_type),10000):10000;
-/// Starts a status effect on the target unit or on the attached player.
-///
-/// sc_start2 <effect_id>,<duration>,<val1>,<percent chance>{,<unit_id>};
-BUILDIN(sc_start2) {
- struct block_list* bl;
- enum sc_type type;
- int tick;
- int val1;
- int val4 = 0;
- int rate;
-
- type = (sc_type)script_getnum(st,2);
- tick = script_getnum(st,3);
- val1 = script_getnum(st,4);
- rate = script_getnum(st,5);
- if( script_hasdata(st,6) )
- bl = map->id2bl(script_getnum(st,6));
+ if(script_hasdata(st,(6+start_type)))
+ bl = map->id2bl(script_getnum(st,(6+start_type)));
else
bl = map->id2bl(st->rid);
- if( tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && status->sc2skill(type) != 0 ) {
- // When there isn't a duration specified, try to get it from the skill_db
+ if(tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && status->sc2skill(type) != 0)
+ {// When there isn't a duration specified, try to get it from the skill_db
tick = skill->get_time(status->sc2skill(type), val1);
}
- if( script->potion_flag == 1 && script->potion_target ) {
- //skill.c set the flags before running the script, this must be a potion-pitched effect.
+ if(script->potion_flag == 1 && script->potion_target) { //skill.c set the flags before running the script, this is a potion-pitched effect.
bl = map->id2bl(script->potion_target);
tick /= 2;// Thrown potions only last half.
val4 = 1;// Mark that this was a thrown sc_effect
}
- if( bl )
- status->change_start(NULL, bl, type, rate, val1, 0, 0, val4, tick, 2);
-
- return true;
-}
-
-/// Starts a status effect on the target unit or on the attached player.
-///
-/// sc_start4 <effect_id>,<duration>,<val1>,<val2>,<val3>,<val4>{,<unit_id>};
-BUILDIN(sc_start4) {
- struct block_list* bl;
- enum sc_type type;
- int tick;
- int val1;
- int val2;
- int val3;
- int val4;
-
- type = (sc_type)script_getnum(st,2);
- tick = script_getnum(st,3);
- val1 = script_getnum(st,4);
- val2 = script_getnum(st,5);
- val3 = script_getnum(st,6);
- val4 = script_getnum(st,7);
- if( script_hasdata(st,8) )
- bl = map->id2bl(script_getnum(st,8));
- else
- bl = map->id2bl(st->rid);
-
- if( tick == 0 && val1 > 0 && type > SC_NONE && type < SC_MAX && status->sc2skill(type) != 0 ) {
- // When there isn't a duration specified, try to get it from the skill_db
- tick = skill->get_time(status->sc2skill(type), val1);
- }
+ if(!bl)
+ return true;
- if( script->potion_flag == 1 && script->potion_target ) {
- //skill.c set the flags before running the script, this must be a potion-pitched effect.
- bl = map->id2bl(script->potion_target);
- tick /= 2;// Thrown potions only last half.
+ switch(start_type) {
+ case 1:
+ status->change_start(bl, bl, type, rate, val1, 0, 0, val4, tick, flag);
+ break;
+ case 2:
+ val2 = script_getnum(st,5);
+ status->change_start(bl, bl, type, rate, val1, val2, 0, val4, tick, flag);
+ break;
+ case 4:
+ val2 = script_getnum(st,5);
+ val3 = script_getnum(st,6);
+ val4 = script_getnum(st,7);
+ status->change_start(bl, bl, type, rate, val1, val2, val3, val4, tick, flag);
+ break;
}
-
- if( bl )
- status->change_start(NULL, bl, type, 10000, val1, val2, val3, val4, tick, 2);
-
return true;
}
@@ -10215,7 +10280,7 @@ BUILDIN(getscrate) {
bl = map->id2bl(st->rid);
if (bl)
- rate = status->get_sc_def(bl, bl, (sc_type)type, 10000, 10000, 0);
+ rate = status->get_sc_def(bl, bl, (sc_type)type, 10000, 10000, SCFLAG_NONE);
script_pushint(st,rate);
return true;
@@ -10568,40 +10633,57 @@ BUILDIN(changebase) {
return true;
}
- if(sd->disguise == -1 && vclass != sd->vd.class_) {
- status->set_viewdata(&sd->bl, vclass);
- //Updated client view. Base, Weapon and Cloth Colors.
- clif->changelook(&sd->bl,LOOK_BASE,sd->vd.class_);
- clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
- if (sd->vd.cloth_color)
- clif->changelook(&sd->bl,LOOK_CLOTHES_COLOR,sd->vd.cloth_color);
- clif->skillinfoblock(sd);
- }
+ if(sd->disguise == -1 && vclass != sd->vd.class_)
+ pc->changelook(sd,LOOK_BASE,vclass); //Updated client view. Base, Weapon and Cloth Colors.
return true;
}
+static TBL_PC *prepareChangeSex(struct script_state* st)
+{
+ int i;
+ TBL_PC *sd = script->rid2sd(st);
+
+ if (sd == NULL)
+ return NULL;
+
+ pc->resetskill(sd, 4);
+ // to avoid any problem with equipment and invalid sex, equipment is unequiped.
+ for (i=0; i<EQI_MAX; i++)
+ if (sd->equip_index[i] >= 0) pc->unequipitem(sd, sd->equip_index[i], 3);
+ return sd;
+}
+
/*==========================================
* Unequip all item and request for a changesex to char-serv
*------------------------------------------*/
BUILDIN(changesex)
{
- int i;
- TBL_PC *sd = NULL;
- sd = script->rid2sd(st);
-
- if( sd == NULL )
+ TBL_PC *sd = prepareChangeSex(st);
+ if (sd == NULL)
return false;
-
- pc->resetskill(sd,4);
- // to avoid any problem with equipment and invalid sex, equipment is unequiped.
- for( i=0; i<EQI_MAX; i++ )
- if( sd->equip_index[i] >= 0 ) pc->unequipitem(sd, sd->equip_index[i], 3);
chrif->changesex(sd);
return true;
}
/*==========================================
+ * Unequip all items and change character sex [4144]
+ *------------------------------------------*/
+BUILDIN(changecharsex)
+{
+ TBL_PC *sd = prepareChangeSex(st);
+ if (sd == NULL)
+ return false;
+ if (sd->status.sex == 99)
+ sd->status.sex = 0;
+ sd->status.sex = sd->status.sex ? 0 : 1;
+ chrif->save(sd, 0);
+ if (sd->fd)
+ clif->authfail_fd(sd->fd, 15);
+ return true;
+}
+
+/*==========================================
* Works like 'announce' but outputs in the common chat window
*------------------------------------------*/
BUILDIN(globalmes) {
@@ -12315,23 +12397,26 @@ BUILDIN(petloot)
* @inventorylist_card(0..3), @inventorylist_expire
* @inventorylist_count = scalar
*------------------------------------------*/
-BUILDIN(getinventorylist)
-{
+BUILDIN(getinventorylist){
TBL_PC *sd=script->rid2sd(st);
char card_var[NAME_LENGTH];
int i,j=0,k;
if(!sd) return true;
+
for(i=0;i<MAX_INVENTORY;i++) {
if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) {
pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid);
pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount);
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),sd->status.inventory[i].equip);
+ if(sd->status.inventory[i].equip) {
+ pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),pc->equippoint(sd,i));
+ } else {
+ pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0);
+ }
pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine);
pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify);
pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute);
- for (k = 0; k < MAX_SLOTS; k++)
- {
+ for (k = 0; k < MAX_SLOTS; k++) {
sprintf(card_var, "@inventorylist_card%d",k+1);
pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[k]);
}
@@ -12344,6 +12429,34 @@ BUILDIN(getinventorylist)
return true;
}
+BUILDIN(getcartinventorylist){
+ TBL_PC *sd=script->rid2sd(st);
+ char card_var[NAME_LENGTH];
+
+ int i,j=0,k;
+ if(!sd) return true;
+
+ for(i=0;i<MAX_CART;i++) {
+ if(sd->status.cart[i].nameid > 0 && sd->status.cart[i].amount > 0) {
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_id"), j),sd->status.cart[i].nameid);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_amount"), j),sd->status.cart[i].amount);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_equip"), j),sd->status.cart[i].equip);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_refine"), j),sd->status.cart[i].refine);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_identify"), j),sd->status.cart[i].identify);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute);
+ for (k = 0; k < MAX_SLOTS; k++) {
+ sprintf(card_var, "@cartinventorylist_card%d",k+1);
+ pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.cart[i].card[k]);
+ }
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time);
+ pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_bound"), j),sd->status.cart[i].bound);
+ j++;
+ }
+ }
+ pc->setreg(sd,script->add_str("@cartinventorylist_count"),j);
+ return true;
+}
+
BUILDIN(getskilllist)
{
TBL_PC *sd=script->rid2sd(st);
@@ -12629,46 +12742,6 @@ BUILDIN(petrecovery)
}
/*==========================================
- * pet healing [Valaris] //Rewritten by [Skotlex]
- *------------------------------------------*/
-BUILDIN(petheal)
-{
- struct pet_data *pd;
- TBL_PC *sd=script->rid2sd(st);
-
- if(sd==NULL || sd->pd==NULL)
- return true;
-
- pd=sd->pd;
- if (pd->s_skill)
- { //Clear previous skill
- if (pd->s_skill->timer != INVALID_TIMER)
- {
- if (pd->s_skill->id)
- timer->delete(pd->s_skill->timer, pet->skill_support_timer);
- else
- timer->delete(pd->s_skill->timer, pet->heal_timer);
- }
- } else //init memory
- pd->s_skill = (struct pet_skill_support *) aMalloc(sizeof(struct pet_skill_support));
-
- pd->s_skill->id=0; //This id identifies that it IS petheal rather than pet_skillsupport
- //Use the lv as the amount to heal
- pd->s_skill->lv=script_getnum(st,2);
- pd->s_skill->delay=script_getnum(st,3);
- pd->s_skill->hp=script_getnum(st,4);
- pd->s_skill->sp=script_getnum(st,5);
-
- //Use delay as initial offset to avoid skill/heal exploits
- if (battle_config.pet_equip_required && pd->pet.equip == 0)
- pd->s_skill->timer = INVALID_TIMER;
- else
- pd->s_skill->timer = timer->add(timer->gettick()+pd->s_skill->delay*1000,pet->heal_timer,sd->bl.id,0);
-
- return true;
-}
-
-/*==========================================
* pet attack skills [Valaris] //Rewritten by [Skotlex]
*------------------------------------------*/
/// petskillattack <skill id>,<level>,<rate>,<bonusrate>
@@ -12731,17 +12804,15 @@ BUILDIN(petskillsupport) {
return true;
pd=sd->pd;
- if (pd->s_skill)
- { //Clear previous skill
- if (pd->s_skill->timer != INVALID_TIMER)
- {
- if (pd->s_skill->id)
- timer->delete(pd->s_skill->timer, pet->skill_support_timer);
- else
- timer->delete(pd->s_skill->timer, pet->heal_timer);
+ if (pd->s_skill) {
+ //Clear previous skill
+ if (pd->s_skill->timer != INVALID_TIMER) {
+ timer->delete(pd->s_skill->timer, pet->skill_support_timer);
}
- } else //init memory
+ } else {
+ //init memory
pd->s_skill = (struct pet_skill_support *) aMalloc(sizeof(struct pet_skill_support));
+ }
pd->s_skill->id=( script_isstringtype(st,2) ? skill->name2id(script_getstr(st,2)) : script_getnum(st,2) );
pd->s_skill->lv=script_getnum(st,3);
@@ -13094,14 +13165,14 @@ BUILDIN(checkequipedcard)
return true;
}
-BUILDIN(jump_zero)
+BUILDIN(__jump_zero)
{
int sel;
sel=script_getnum(st,2);
- if(!sel) {
+ if (!sel) {
int pos;
- if( !data_islabel(script_getdata(st,3)) ) {
- ShowError("script: jump_zero: not label !\n");
+ if (!data_islabel(script_getdata(st,3))) {
+ ShowError("script: jump_zero: not a label !\n");
st->state=END;
return false;
}
@@ -13220,6 +13291,112 @@ BUILDIN(npcstop) {
return true;
}
+// set click npc distance [4144]
+BUILDIN(setnpcdistance) {
+ struct npc_data *nd = (struct npc_data *) map->id2bl (st->oid);
+ if (!nd)
+ return false;
+
+ nd->area_size = script_getnum(st, 2);
+
+ return true;
+}
+
+// return current npc direction [4144]
+BUILDIN(getnpcdir)
+{
+ struct npc_data *nd = 0;
+
+ if (script_hasdata(st, 2))
+ {
+ nd = npc->name2id (script_getstr(st, 2));
+ }
+ if (!nd && !st->oid)
+ {
+ script_pushint(st, -1);
+ return true;
+ }
+
+ if (!nd)
+ nd = (struct npc_data *) map->id2bl (st->oid);
+
+ if (!nd)
+ {
+ script_pushint(st, -1);
+ return true;
+ }
+
+ script_pushint(st, (int)nd->dir);
+
+ return true;
+}
+
+// set npc direction [4144]
+BUILDIN(setnpcdir)
+{
+ int newdir;
+ struct npc_data *nd = 0;
+
+ if (script_hasdata(st, 3))
+ {
+ nd = npc->name2id (script_getstr(st, 2));
+ newdir = script_getnum(st, 3);
+ }
+ else if (script_hasdata(st, 2))
+ {
+ if (!st->oid)
+ return false;
+
+ nd = (struct npc_data *) map->id2bl (st->oid);
+ newdir = script_getnum(st, 2);
+ }
+ if (!nd)
+ return false;
+
+ if (newdir < 0)
+ newdir = 0;
+ else if (newdir > 7)
+ newdir = 7;
+
+ nd->dir = newdir;
+ if (nd->ud)
+ nd->ud->dir = newdir;
+
+ clif->clearunit_area(&nd->bl, CLR_OUTSIGHT);
+ clif->spawn(&nd->bl);
+
+ return true;
+}
+
+// return npc class [4144]
+BUILDIN(getnpcclass)
+{
+ struct npc_data *nd = 0;
+
+ if (script_hasdata(st, 2))
+ {
+ nd = npc->name2id (script_getstr(st, 2));
+ }
+ if (!nd && !st->oid)
+ {
+ script_pushint(st, -1);
+ return false;
+ }
+
+ if (!nd)
+ nd = (struct npc_data *) map->id2bl(st->oid);
+
+ if (!nd)
+ {
+ script_pushint(st, -1);
+ return false;
+ }
+
+ script_pushint(st, (int)nd->class_);
+
+ return true;
+}
+
/*==========================================
* getlook char info. getlook(arg)
@@ -13496,7 +13673,7 @@ BUILDIN(summon)
clif->skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick);
- md = mob->once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, class_, event, SZ_MEDIUM, AI_NONE);
+ md = mob->once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, class_, event, SZ_SMALL, AI_NONE);
if (md) {
md->master_id=sd->bl.id;
md->special_state.ai = AI_ATTACK;
@@ -13791,6 +13968,57 @@ BUILDIN(autoequip)
return true;
}
+/*=======================================================
+ * Equip2
+ * equip2 <item id>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>;
+ *-------------------------------------------------------*/
+BUILDIN(equip2)
+{
+ int i,nameid,ref,attr,c0,c1,c2,c3;
+ struct item_data *item_data;
+ TBL_PC *sd;
+
+ sd = script->rid2sd(st);
+
+ if ( sd == NULL ) {
+ script_pushint(st,0);
+ return true;
+ }
+
+ nameid = script_getnum(st,2);
+ if( (item_data = itemdb->exists(nameid)) == NULL )
+ {
+ ShowError("Wrong item ID : equip2(%i)\n",nameid);
+ script_pushint(st,0);
+ return false;
+ }
+
+ ref = script_getnum(st,3);
+ attr = script_getnum(st,4);
+ c0 = (short)script_getnum(st,5);
+ c1 = (short)script_getnum(st,6);
+ c2 = (short)script_getnum(st,7);
+ c3 = (short)script_getnum(st,8);
+
+ ARR_FIND( 0, MAX_INVENTORY, i,( sd->status.inventory[i].equip == 0 &&
+ sd->status.inventory[i].nameid == nameid &&
+ sd->status.inventory[i].refine == ref &&
+ sd->status.inventory[i].attribute == attr &&
+ sd->status.inventory[i].card[0] == c0 &&
+ sd->status.inventory[i].card[1] == c1 &&
+ sd->status.inventory[i].card[2] == c2 &&
+ sd->status.inventory[i].card[3] == c3 ) );
+
+ if( i < MAX_INVENTORY ) {
+ script_pushint(st,1);
+ pc->equipitem(sd,i,item_data->equip);
+ }
+ else
+ script_pushint(st,0);
+
+ return true;
+}
+
BUILDIN(setbattleflag)
{
const char *flag, *value;
@@ -14499,7 +14727,7 @@ BUILDIN(replacestr)
}
if(script_hasdata(st, 6)) {
- if (!script_isinttype(st, 5) || (count = script_getnum(st, 6) == 0)) {
+ if (!script_isinttype(st, 6) || (count = script_getnum(st, 6)) == 0) {
ShowError("script:replacestr: Invalid count value. Expected int.\n");
st->state = END;
return false;
@@ -14729,6 +14957,36 @@ BUILDIN(distance)
// <--- [zBuffer] List of mathematics commands
+BUILDIN(min)
+{
+ int i, min;
+
+ min = script_getnum(st, 2);
+ for (i = 3; script_hasdata(st, i); i++) {
+ int next = script_getnum(st, i);
+ if (next < min)
+ min = next;
+ }
+ script_pushint(st, min);
+
+ return true;
+}
+
+BUILDIN(max)
+{
+ int i, max;
+
+ max = script_getnum(st, 2);
+ for (i = 3; script_hasdata(st, i); i++) {
+ int next = script_getnum(st, i);
+ if (next > max)
+ max = next;
+ }
+ script_pushint(st, max);
+
+ return true;
+}
+
BUILDIN(md5)
{
const char *tmpstr;
@@ -15658,8 +15916,6 @@ BUILDIN(unittalk) {
StrBuf->Init(&sbuf);
StrBuf->Printf(&sbuf, "%s : %s", status->get_name(bl), message);
clif->disp_overhead(bl, StrBuf->Value(&sbuf));
- if( bl->type == BL_PC )
- clif->message(((TBL_PC*)bl)->fd, StrBuf->Value(&sbuf));
StrBuf->Destroy(&sbuf);
}
@@ -15909,8 +16165,7 @@ BUILDIN(warpportal) {
struct block_list* bl;
bl = map->id2bl(st->oid);
- if( bl == NULL )
- {
+ if( bl == NULL ) {
ShowError("script:warpportal: npc is needed\n");
return false;
}
@@ -15924,6 +16179,9 @@ BUILDIN(warpportal) {
if( map_index == 0 )
return true;// map not found
+ if( bl->type == BL_NPC )
+ unit->bl2ud2(bl); // ensure nd->ud is safe to edit
+
group = skill->unitsetting(bl, AL_WARP, 4, spx, spy, 0);
if( group == NULL )
return true;// failed
@@ -16058,7 +16316,7 @@ BUILDIN(mercenary_sc_start) {
tick = script_getnum(st,3);
val1 = script_getnum(st,4);
- status->change_start(NULL, &sd->md->bl, type, 10000, val1, 0, 0, 0, tick, 2);
+ status->change_start(NULL, &sd->md->bl, type, 10000, val1, 0, 0, 0, tick, SCFLAG_FIXEDTICK);
return true;
}
@@ -16281,21 +16539,45 @@ BUILDIN(setquest) {
BUILDIN(erasequest) {
struct map_session_data *sd = script->rid2sd(st);
+ int quest_id;
if( sd == NULL )
return false;
- quest->delete(sd, script_getnum(st, 2));
+ if (script_hasdata(st, 3)) {
+ if (script_getnum(st, 3) < script_getnum(st, 2)) {
+ ShowError("buildin_erasequest: The second quest id must be greater than the id of the first.\n");
+ return false;
+ }
+ for (quest_id = script_getnum(st, 2); quest_id < script_getnum(st, 3); quest_id++) {
+ quest->delete(sd, quest_id);
+ }
+ } else {
+ quest->delete(sd, script_getnum(st, 2));
+ }
+
return true;
}
BUILDIN(completequest) {
struct map_session_data *sd = script->rid2sd(st);
+ int quest_id;
if( sd == NULL )
return false;
- quest->update_status(sd, script_getnum(st, 2), Q_COMPLETE);
+ if (script_hasdata(st, 3)) {
+ if (script_getnum(st, 3) < script_getnum(st, 2)) {
+ ShowError("buildin_completequest: The second quest id must be greater than the id of the first.\n");
+ return false;
+ }
+ for (quest_id = script_getnum(st, 2); quest_id < script_getnum(st, 3); quest_id++) {
+ quest->update_status(sd, quest_id, Q_COMPLETE);
+ }
+ } else {
+ quest->update_status(sd, script_getnum(st, 2), Q_COMPLETE);
+ }
+
return true;
}
@@ -16309,17 +16591,46 @@ BUILDIN(changequest) {
return true;
}
-BUILDIN(checkquest) {
+BUILDIN(questactive) {
+ struct map_session_data *sd = script->rid2sd(st);
+ int quest_progress = 0;
+
+ if (sd == NULL)
+ return false;
+
+ if (quest->check(sd, script_getnum(st, 2), HAVEQUEST) == Q_ACTIVE)
+ script_pushint(st, 1);
+ else
+ script_pushint(st, 0);
+
+ script_pushint(st, quest_progress);
+
+ return true;
+}
+
+BUILDIN(questprogress) {
struct map_session_data *sd = script->rid2sd(st);
enum quest_check_type type = HAVEQUEST;
+ int quest_progress = 0;
- if( sd == NULL )
+ if (sd == NULL)
return false;
- if( script_hasdata(st, 3) )
+ if (script_hasdata(st, 3))
type = (enum quest_check_type)script_getnum(st, 3);
- script_pushint(st, quest->check(sd, script_getnum(st, 2), type));
+ quest_progress = quest->check(sd, script_getnum(st, 2), type);
+
+ // "Fix" returned quest state value to make more sense.
+ // 0 = Not Started, 1 = In Progress, 2 = Completed.
+ if (quest_progress == -1) // Not found
+ quest_progress = 0;
+ else if (quest_progress == 0 || quest_progress == 1)
+ quest_progress = 1;
+ else
+ quest_progress = 2;
+
+ script_pushint(st, quest_progress);
return true;
}
@@ -16977,6 +17288,63 @@ BUILDIN(instance_check_party) {
}
/*==========================================
+ * instance_check_guild
+ * Values:
+ * guild_id : Guild ID of the invoking character. [Required Parameter]
+ * amount : Amount of needed Guild Members for the Instance. [Optional Parameter]
+ * min : Minimum Level needed to join the Instance. [Optional Parameter]
+ * max : Maxium Level allowed to join the Instance. [Optional Parameter]
+ * Example: instance_check_guild (getcharid(2){,amount}{,min}{,max});
+ * Example 2: instance_check_guild (getcharid(2),1,1,99);
+ *------------------------------------------*/
+BUILDIN(instance_check_guild){
+ struct map_session_data *pl_sd;
+ int amount, min, max, i, guild_id, c = 0;
+ struct guild *g = NULL;
+
+ amount = script_hasdata(st,3) ? script_getnum(st,3) : 1;
+ min = script_hasdata(st,4) ? script_getnum(st,4) : 1;
+ max = script_hasdata(st,5) ? script_getnum(st,5) : MAX_LEVEL;
+
+ if( min < 1 || min > MAX_LEVEL ){
+ ShowError("instance_check_guild: Invalid min level, %d\n", min);
+ return true;
+ } else if( max < 1 || max > MAX_LEVEL ){
+ ShowError("instance_check_guild: Invalid max level, %d\n", max);
+ return true;
+ }
+
+ if( script_hasdata(st,2) )
+ guild_id = script_getnum(st,2);
+ else return true;
+
+ if( !(g = guild->search(guild_id)) ){
+ script_pushint(st,0);
+ return true;
+ }
+
+ for( i = 0; i < MAX_GUILD; i++ )
+ if( (pl_sd = g->member[i].sd) )
+ if( map->id2bl(pl_sd->bl.id) ){
+ if( pl_sd->status.base_level < min ){
+ script_pushint(st,0);
+ return true;
+ } else if( pl_sd->status.base_level > max ){
+ script_pushint(st,0);
+ return true;
+ }
+ c++;
+ }
+
+ if( c < amount )
+ script_pushint(st,0);
+ else
+ script_pushint(st,1);
+
+ return true;
+}
+
+/*==========================================
* Custom Fonts
*------------------------------------------*/
BUILDIN(setfont)
@@ -17215,63 +17583,12 @@ BUILDIN(makerune) {
sd->itemid = script_getnum(st,2);
return true;
}
-/**
- * checkdragon() returns 1 if mounting a dragon or 0 otherwise.
- **/
-BUILDIN(checkdragon) {
- TBL_PC* sd;
- if( (sd = script->rid2sd(st)) == NULL )
- return true;
- if( pc_isridingdragon(sd) )
- script_pushint(st,1);
- else
- script_pushint(st,0);
- return true;
-}
-/**
- * setdragon({optional Color}) returns 1 on success or 0 otherwise
- * - Toggles the dragon on a RK if he can mount;
- * @param Color - when not provided uses the green dragon;
- * - 1 : Green Dragon
- * - 2 : Brown Dragon
- * - 3 : Gray Dragon
- * - 4 : Blue Dragon
- * - 5 : Red Dragon
- **/
-BUILDIN(setdragon) {
- TBL_PC* sd;
- int color = script_hasdata(st,2) ? script_getnum(st,2) : 0;
-
- if( (sd = script->rid2sd(st)) == NULL )
- return true;
- if( !pc->checkskill(sd,RK_DRAGONTRAINING) || (sd->class_&MAPID_THIRDMASK) != MAPID_RUNE_KNIGHT )
- script_pushint(st,0);//Doesn't have the skill or it's not a Rune Knight
- else if ( pc_isridingdragon(sd) ) {//Is mounted; release
- pc->setoption(sd, sd->sc.option&~OPTION_DRAGON);
- script_pushint(st,1);
- } else {//Not mounted; Mount now.
- unsigned int option = OPTION_DRAGON1;
- if( color ) {
- option = ( color == 1 ? OPTION_DRAGON1 :
- color == 2 ? OPTION_DRAGON2 :
- color == 3 ? OPTION_DRAGON3 :
- color == 4 ? OPTION_DRAGON4 :
- color == 5 ? OPTION_DRAGON5 : 0);
- if( !option ) {
- ShowWarning("script_setdragon: Unknown Color %d used; changing to green (1)\n",color);
- option = OPTION_DRAGON1;
- }
- }
- pc->setoption(sd, sd->sc.option|option);
- script_pushint(st,1);
- }
- return true;
-}
/**
- * ismounting() returns 1 if mounting a new mount or 0 otherwise
+ * hascashmount() returns 1 if mounting a cash mount or 0 otherwise
**/
-BUILDIN(ismounting) {
+BUILDIN(hascashmount)
+{
TBL_PC* sd;
if( (sd = script->rid2sd(st)) == NULL )
return true;
@@ -17283,20 +17600,22 @@ BUILDIN(ismounting) {
}
/**
- * setmounting() returns 1 on success or 0 otherwise
- * - Toggles new mounts on a player when he can mount
- * - Will fail if the player is mounting a non-new mount, e.g. dragon, peco, wug, etc.
- * - Will unmount the player is he is already mounting
+ * setcashmount() returns 1 on success or 0 otherwise
+ *
+ * - Toggles cash mounts on a player when he can mount
+ * - Will fail if the player is already riding a standard mount e.g. dragon, peco, wug, mado, etc.
+ * - Will unmount the player is he is already mounting a cash mount
**/
-BUILDIN(setmounting) {
+BUILDIN(setcashmount)
+{
TBL_PC* sd;
- if( (sd = script->rid2sd(st)) == NULL )
+ if ((sd = script->rid2sd(st)) == NULL)
return true;
- if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ) {
+ if (pc_hasmount(sd)) {
clif->msgtable(sd->fd, 0X78b);
script_pushint(st,0);//can't mount with one of these
} else {
- if( sd->sc.data[SC_ALL_RIDING] )
+ if (sd->sc.data[SC_ALL_RIDING])
status_change_end(&sd->bl, SC_ALL_RIDING, INVALID_TIMER);
else
sc_start(NULL,&sd->bl, SC_ALL_RIDING, 100, 0, -1);
@@ -17304,6 +17623,7 @@ BUILDIN(setmounting) {
}
return true;
}
+
/**
* Retrieves quantity of arguments provided to callfunc/callsub.
* getargcount() -> amount of arguments received in a function
@@ -17786,6 +18106,7 @@ BUILDIN(montransform) {
struct block_list* bl;
char msg[CHAT_SIZE_MAX];
int mob_id, val1, val2, val3, val4;
+ val1 = val2 = val3 = val4 = 0;
if( (bl = map->id2bl(st->rid)) == NULL )
return true;
@@ -17805,12 +18126,17 @@ BUILDIN(montransform) {
}
tick = script_getnum(st, 3);
- type = (sc_type)script_getnum(st, 4);
- val1 = val2 = val3 = val4 = 0;
- if( !(type > SC_NONE && type < SC_MAX) ) {
- ShowWarning("buildin_montransform: Unsupported status change id %d\n", type);
- return false;
+ if (script_hasdata(st, 4))
+ type = (sc_type)script_getnum(st, 4);
+ else
+ type = SC_NONE;
+
+ if (script_hasdata(st, 4)) {
+ if( !(type > SC_NONE && type < SC_MAX) ) {
+ ShowWarning("buildin_montransform: Unsupported status change id %d\n", type);
+ return false;
+ }
}
if (script_hasdata(st, 5))
@@ -17846,8 +18172,11 @@ BUILDIN(montransform) {
clif->ShowScript(&sd->bl, msg);
status_change_end(bl, SC_MONSTER_TRANSFORM, INVALID_TIMER); // Clear previous
sc_start2(NULL, bl, SC_MONSTER_TRANSFORM, 100, mob_id, type, tick);
- sc_start4(NULL, bl, type, 100, val1, val2, val3, val4, tick);
+
+ if (script_hasdata(st, 4))
+ sc_start4(NULL, bl, type, 100, val1, val2, val3, val4, tick);
}
+
return true;
}
@@ -18311,6 +18640,55 @@ BUILDIN(countbound)
return 0;
}
+/*==========================================
+ * checkbound(<item_id>{,<bound_type>{,<refine>{,<attribute>{,<card_1>{,<card_2>{,<card_3>{,<card_4>}}}}}}});
+ * Checks to see if specified item is in inventory.
+ * Returns the bound type of item found.
+ * Type:
+ * 1 - Account Bound
+ * 2 - Guild Bound
+ * 3 - Party Bound
+ * 4 - Character Bound
+ *------------------------------------------*/
+BUILDIN(checkbound){
+ int i, nameid = script_getnum(st,2);
+ int bound_type = 0, ref, attr, c1, c2, c3, c4;
+ TBL_PC *sd;
+
+ sd = script->rid2sd(st);
+ if( sd == NULL )
+ return false;
+
+ if( !(itemdb->exists(nameid)) ){
+ ShowError("script_checkbound: Invalid item ID = %d\n", nameid);
+ return false;
+ }
+
+ if (script_hasdata(st,3))
+ bound_type = script_getnum(st,3);
+
+ if( bound_type <= -1 || bound_type > IBT_MAX ){
+ ShowError("script_checkbound: Not a valid bind type! Type=%d\n", bound_type);
+ }
+
+ ARR_FIND( 0, MAX_INVENTORY, i, (sd->status.inventory[i].nameid == nameid &&
+ ( sd->status.inventory[i].refine == (script_hasdata(st,4)? (ref = script_getnum(st,4)) : sd->status.inventory[i].refine) ) &&
+ ( sd->status.inventory[i].attribute == (script_hasdata(st,5)? (attr = script_getnum(st,5)) : sd->status.inventory[i].attribute) ) &&
+ ( sd->status.inventory[i].card[0] == (script_hasdata(st,6)? (c1 = script_getnum(st,6)) : sd->status.inventory[i].card[0]) ) &&
+ ( sd->status.inventory[i].card[1] == (script_hasdata(st,7)? (c2 = script_getnum(st,7)) : sd->status.inventory[i].card[1]) ) &&
+ ( sd->status.inventory[i].card[2] == (script_hasdata(st,8)? (c3 = script_getnum(st,8)) : sd->status.inventory[i].card[2]) ) &&
+ ( sd->status.inventory[i].card[3] == (script_hasdata(st,9)? (c4 = script_getnum(st,9)) : sd->status.inventory[i].card[3]) ) &&
+ ((sd->status.inventory[i].bound > 0 && !bound_type) || sd->status.inventory[i].bound == bound_type )) );
+
+ if( i < MAX_INVENTORY ){
+ script_pushint(st, sd->status.inventory[i].bound);
+ return true;
+ } else
+ script_pushint(st,0);
+
+ return true;
+}
+
/* bg_match_over( arena_name {, optional canceled } ) */
/* returns 0 when successful, 1 otherwise */
BUILDIN(bg_match_over) {
@@ -18737,7 +19115,7 @@ bool script_add_builtin(const struct script_function *buildin, bool override) {
script->buildin[offset] = NULL;
} else {
// Adding new function
- if( strcmp(buildin->name, "setr") == 0 ) script->buildin_set_ref = n;
+ if( strcmp(buildin->name, "__setr") == 0 ) script->buildin_set_ref = n;
else if( strcmp(buildin->name, "callsub") == 0 ) script->buildin_callsub_ref = n;
else if( strcmp(buildin->name, "callfunc") == 0 ) script->buildin_callfunc_ref = n;
else if( strcmp(buildin->name, "getelementofarray") == 0 ) script->buildin_getelementofarray_ref = n;
@@ -18753,6 +19131,7 @@ bool script_add_builtin(const struct script_function *buildin, bool override) {
}
script->str_data[n].func = buildin->func;
+ script->str_data[n].deprecated = (buildin->deprecated ? 1 : 0);
/* we only store the arguments, its the only thing used out of this */
if( slen ) {
@@ -18765,18 +19144,25 @@ bool script_add_builtin(const struct script_function *buildin, bool override) {
return true;
}
-bool script_hp_add(char *name, char *args, bool (*func)(struct script_state *st)) {
+bool script_hp_add(char *name, char *args, bool (*func)(struct script_state *st), bool isDeprecated) {
struct script_function buildin;
buildin.name = name;
buildin.arg = args;
buildin.func = func;
+ buildin.deprecated = isDeprecated;
return script->add_builtin(&buildin, true);
}
-#define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args }
-#define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args }
+#define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args, false }
+#define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args, false }
+#define BUILDIN_DEF_DEPRECATED(x,args) { buildin_ ## x , #x , args, true }
+#define BUILDIN_DEF2_DEPRECATED(x,x2,args) { buildin_ ## x , x2 , args, true }
void script_parse_builtin(void) {
struct script_function BUILDIN[] = {
+ /* Commands for internal use by the script engine */
+ BUILDIN_DEF(__jump_zero,"il"),
+ BUILDIN_DEF(__setr,"rv?"),
+
// NPC interaction
BUILDIN_DEF(mes,"s*"),
BUILDIN_DEF(next,""),
@@ -18801,8 +19187,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(warpguild,"siii"), // [Fredzilla]
BUILDIN_DEF(setlook,"ii"),
BUILDIN_DEF(changelook,"ii"), // Simulates but don't Store it
- BUILDIN_DEF2(setr,"set","rv"),
- BUILDIN_DEF(setr,"rv?"), // Not meant to be used directly, required for var++/var--
+ BUILDIN_DEF2(__setr,"set","rv"),
BUILDIN_DEF(setarray,"rv*"),
BUILDIN_DEF(cleararray,"rvi"),
BUILDIN_DEF(copyarray,"rri"),
@@ -18838,11 +19223,13 @@ void script_parse_builtin(void) {
BUILDIN_DEF(getguildname,"i"),
BUILDIN_DEF(getguildmaster,"i"),
BUILDIN_DEF(getguildmasterid,"i"),
+ BUILDIN_DEF(getguildmember,"i?"),
BUILDIN_DEF(strcharinfo,"i"),
BUILDIN_DEF(strnpcinfo,"i"),
BUILDIN_DEF(getequipid,"i"),
BUILDIN_DEF(getequipname,"i"),
BUILDIN_DEF(getbrokenid,"i"), // [Valaris]
+ BUILDIN_DEF(getbrokencount,""),
BUILDIN_DEF(repair,"i"), // [Valaris]
BUILDIN_DEF(repairall,""),
BUILDIN_DEF(getequipisequiped,"i"),
@@ -18879,12 +19266,10 @@ void script_parse_builtin(void) {
BUILDIN_DEF(checkcart,""),
BUILDIN_DEF(setfalcon,"?"),
BUILDIN_DEF(checkfalcon,""),
- BUILDIN_DEF(setriding,"?"),
- BUILDIN_DEF(checkriding,""),
+ BUILDIN_DEF(setmount,"?"),
+ BUILDIN_DEF(checkmount,""),
BUILDIN_DEF(checkwug,""),
- BUILDIN_DEF(checkmadogear,""),
- BUILDIN_DEF(setmadogear,"?"),
- BUILDIN_DEF2(savepoint,"save","sii"),
+ BUILDIN_DEF2_DEPRECATED(savepoint,"save","sii"), // Deprecated 2014-11-02 [Haru]
BUILDIN_DEF(savepoint,"sii"),
BUILDIN_DEF(gettimetick,"i"),
BUILDIN_DEF(gettime,"i"),
@@ -18902,7 +19287,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(clone,"siisi????"),
BUILDIN_DEF(doevent,"s"),
BUILDIN_DEF(donpcevent,"s"),
- BUILDIN_DEF(cmdothernpc,"ss"),
+ BUILDIN_DEF_DEPRECATED(cmdothernpc,"ss"), // Deprecated 2014-11-02 [Haru]
BUILDIN_DEF(addtimer,"is"),
BUILDIN_DEF(deltimer,"s"),
BUILDIN_DEF(addtimercount,"si"),
@@ -18920,15 +19305,15 @@ void script_parse_builtin(void) {
BUILDIN_DEF(getusers,"i"),
BUILDIN_DEF(getmapguildusers,"si"),
BUILDIN_DEF(getmapusers,"s"),
- BUILDIN_DEF(getareausers,"siiii"),
+ BUILDIN_DEF(getareausers,"*"),
BUILDIN_DEF(getareadropitem,"siiiiv"),
BUILDIN_DEF(enablenpc,"s"),
BUILDIN_DEF(disablenpc,"s"),
BUILDIN_DEF(hideoffnpc,"s"),
BUILDIN_DEF(hideonnpc,"s"),
- BUILDIN_DEF(sc_start,"iii?"),
- BUILDIN_DEF(sc_start2,"iiii?"),
- BUILDIN_DEF(sc_start4,"iiiiii?"),
+ BUILDIN_DEF(sc_start,"iii???"),
+ BUILDIN_DEF2(sc_start,"sc_start2","iiii???"),
+ BUILDIN_DEF2(sc_start,"sc_start4","iiiiii???"),
BUILDIN_DEF(sc_end,"i?"),
BUILDIN_DEF(getstatus, "i?"),
BUILDIN_DEF(getscrate,"ii?"),
@@ -18941,13 +19326,14 @@ void script_parse_builtin(void) {
BUILDIN_DEF(skillpointcount,""),
BUILDIN_DEF(changebase,"i?"),
BUILDIN_DEF(changesex,""),
+ BUILDIN_DEF(changecharsex,""), // [4144]
BUILDIN_DEF(waitingroom,"si?????"),
BUILDIN_DEF(delwaitingroom,"?"),
BUILDIN_DEF2(waitingroomkickall,"kickwaitingroomall","?"),
BUILDIN_DEF(enablewaitingroomevent,"?"),
BUILDIN_DEF(disablewaitingroomevent,"?"),
- BUILDIN_DEF2(enablewaitingroomevent,"enablearena",""), // Added by RoVeRT
- BUILDIN_DEF2(disablewaitingroomevent,"disablearena",""), // Added by RoVeRT
+ BUILDIN_DEF2_DEPRECATED(enablewaitingroomevent,"enablearena",""), // Deprecated 2014-11-02 [Haru]
+ BUILDIN_DEF2_DEPRECATED(disablewaitingroomevent,"disablearena",""), // Deprecated 2014-11-02 [Haru]
BUILDIN_DEF(getwaitingroomstate,"i?"),
BUILDIN_DEF(warpwaitingpc,"sii?"),
BUILDIN_DEF(attachrid,"i"),
@@ -18988,6 +19374,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(makepet,"i"),
BUILDIN_DEF(getexp,"ii"),
BUILDIN_DEF(getinventorylist,""),
+ BUILDIN_DEF(getcartinventorylist,""),
BUILDIN_DEF(getskilllist,""),
BUILDIN_DEF(clearitem,""),
BUILDIN_DEF(classchange,"ii"),
@@ -19002,7 +19389,6 @@ void script_parse_builtin(void) {
BUILDIN_DEF(petskillbonus,"iiii"), // [Valaris]
BUILDIN_DEF(petrecovery,"ii"), // [Valaris]
BUILDIN_DEF(petloot,"i"), // [Valaris]
- BUILDIN_DEF(petheal,"iiii"), // [Valaris]
BUILDIN_DEF(petskillattack,"viii"), // [Skotlex]
BUILDIN_DEF(petskillattack2,"viiii"), // [Valaris]
BUILDIN_DEF(petskillsupport,"viiii"), // [Skotlex]
@@ -19023,6 +19409,10 @@ void script_parse_builtin(void) {
BUILDIN_DEF(npcspeed,"i"), // [Valaris]
BUILDIN_DEF(npcwalkto,"ii"), // [Valaris]
BUILDIN_DEF(npcstop,""), // [Valaris]
+ BUILDIN_DEF(setnpcdistance,"i"), // [4144]
+ BUILDIN_DEF(getnpcdir,"?"), // [4144]
+ BUILDIN_DEF(setnpcdir,"*"), // [4144]
+ BUILDIN_DEF(getnpcclass,"?"), // [4144]
BUILDIN_DEF(getmapxy,"rrri?"), //by Lorky [Lupus]
BUILDIN_DEF(checkoption1,"i"),
BUILDIN_DEF(checkoption2,"i"),
@@ -19052,7 +19442,6 @@ void script_parse_builtin(void) {
BUILDIN_DEF(gethominfo,"i"),
BUILDIN_DEF(getmercinfo,"i?"),
BUILDIN_DEF(checkequipedcard,"i"),
- BUILDIN_DEF(jump_zero,"il"), //for future jA script compatibility
BUILDIN_DEF(globalmes,"s?"), //end jA addition
BUILDIN_DEF(unequip,"i"), // unequip command [Spectre]
BUILDIN_DEF(getstrlen,"s"), //strlen [Valaris]
@@ -19083,6 +19472,8 @@ void script_parse_builtin(void) {
BUILDIN_DEF(pow,"ii"),
BUILDIN_DEF(distance,"iiii"),
// <--- [zBuffer] List of mathematics commands
+ BUILDIN_DEF(min, "i*"),
+ BUILDIN_DEF(max, "i*"),
BUILDIN_DEF(md5,"s"),
// [zBuffer] List of dynamic var commands --->
BUILDIN_DEF(getd,"s"),
@@ -19096,6 +19487,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(npcshopattach,"s?"),
BUILDIN_DEF(equip,"i"),
BUILDIN_DEF(autoequip,"ii"),
+ BUILDIN_DEF(equip2,"iiiiiii"),
BUILDIN_DEF(setbattleflag,"si"),
BUILDIN_DEF(getbattleflag,"s"),
BUILDIN_DEF(setitemscript,"is?"), //Set NEW item bonus script. Lupus
@@ -19196,6 +19588,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(has_instance,"s?"),
BUILDIN_DEF(instance_warpall,"sii?"),
BUILDIN_DEF(instance_check_party,"i???"),
+ BUILDIN_DEF(instance_check_guild,"i???"),
BUILDIN_DEF(instance_mapname,"s?"),
BUILDIN_DEF(instance_set_respawn,"sii?"),
BUILDIN_DEF2(has_instance,"has_instance2","s"),
@@ -19204,10 +19597,8 @@ void script_parse_builtin(void) {
* 3rd-related
**/
BUILDIN_DEF(makerune,"i"),
- BUILDIN_DEF(checkdragon,""),//[Ind]
- BUILDIN_DEF(setdragon,"?"),//[Ind]
- BUILDIN_DEF(ismounting,""),//[Ind]
- BUILDIN_DEF(setmounting,""),//[Ind]
+ BUILDIN_DEF(hascashmount,""),//[Ind]
+ BUILDIN_DEF(setcashmount,""),//[Ind]
BUILDIN_DEF(checkre,"i"),
/**
* rAthena and beyond!
@@ -19236,13 +19627,15 @@ void script_parse_builtin(void) {
BUILDIN_DEF2(getitem,"getitembound","vii?"),
BUILDIN_DEF2(getitem2,"getitembound2","viiiiiiiii?"),
BUILDIN_DEF(countbound, "?"),
+ BUILDIN_DEF(checkbound, "i???????"),
//Quest Log System [Inkfish]
BUILDIN_DEF(questinfo, "ii??"),
BUILDIN_DEF(setquest, "i"),
- BUILDIN_DEF(erasequest, "i"),
- BUILDIN_DEF(completequest, "i"),
- BUILDIN_DEF(checkquest, "i?"),
+ BUILDIN_DEF(erasequest, "i?"),
+ BUILDIN_DEF(completequest, "i?"),
+ BUILDIN_DEF(questprogress, "i?"),
+ BUILDIN_DEF(questactive, "i"),
BUILDIN_DEF(changequest, "ii"),
BUILDIN_DEF(showevent, "i?"),
@@ -19266,7 +19659,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(stand, "?"),
BUILDIN_DEF(issit, "?"),
- BUILDIN_DEF(montransform, "vii????"), // Monster Transform [malufett/Hercules]
+ BUILDIN_DEF(montransform, "vi?????"), // Monster Transform [malufett/Hercules]
/* New BG Commands [Hercules] */
BUILDIN_DEF(bg_create_team,"sii"),
@@ -19320,6 +19713,7 @@ void script_hardcoded_constants(void) {
script->set_constant("MAX_ZENY",MAX_ZENY,false);
script->set_constant("MAX_BG_MEMBERS",MAX_BG_MEMBERS,false);
script->set_constant("MAX_CHAT_USERS",MAX_CHAT_USERS,false);
+ script->set_constant("MAX_REFINE",MAX_REFINE,false);
/* status options */
script->set_constant("Option_Nothing",OPTION_NOTHING,false);
@@ -19609,8 +20003,9 @@ void script_defaults(void) {
script->config.loadmap_event_name = "OnPCLoadMapEvent";
script->config.baselvup_event_name = "OnPCBaseLvUpEvent";
script->config.joblvup_event_name = "OnPCJobLvUpEvent";
- script->config.ontouch_name = "OnTouch_";//ontouch_name (runs on first visible char to enter area, picks another char if the first char leaves)
- script->config.ontouch2_name = "OnTouch";//ontouch2_name (run whenever a char walks into the OnTouch area)
+ script->config.ontouch_name = "OnTouch_"; //ontouch_name (runs on first visible char to enter area, picks another char if the first char leaves)
+ script->config.ontouch2_name = "OnTouch"; //ontouch2_name (run whenever a char walks into the OnTouch area)
+ script->config.onuntouch_name = "OnUnTouch"; //onuntouch_name (run whenever a char walks from the OnTouch area)
// for ENABLE_CASE_CHECK
script->calc_hash_ci = calc_hash_ci;
diff --git a/src/map/script.h b/src/map/script.h
index 48abf1487..548c0f261 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -26,9 +26,9 @@ struct eri;
// TODO: Remove temporary code
#define ENABLE_CASE_CHECK
#define get_script_source(source) ((source) ? (source) : "Unknown (Possibly source or variables stored in database")
-#define DeprecationWarning(func, bad, good, file, line) ShowError("%s: use of deprecated keyword '%s' (use '%s' instead) in file '%s', line '%d'.\n", (func), (bad), (good), get_script_source(file), (line));
-#define DeprecationWarning2(func, bad, good, where) ShowError("%s: detected possible use of wrong case in a script. Found '%s', probably meant to be '%s' (in '%s').\n", (func), (bad), (good), get_script_source(where));
-#define disp_deprecation_message(func, good, p) disp_warning_message(func": use of deprecated keyword (use '"good"' instead).", (p));
+#define DeprecationCaseWarning(func, bad, good, where) ShowError("%s: detected possible use of wrong case in a script. Found '%s', probably meant to be '%s' (in '%s').\n", (func), (bad), (good), get_script_source(where))
+
+#define DeprecationWarning(p) disp_warning_message("This command is deprecated and it will be removed in a future update. Please see the script documentation for an alternative.\n", (p))
#define NUM_WHISPER_VAR 10
@@ -187,7 +187,7 @@ typedef enum c_op {
C_USERFUNC, // internal script function
C_USERFUNC_POS, // internal script function label
C_REF, // the next call to c_op2 should push back a ref to the left operand
-
+
// operators
C_OP3, // a ? b : c
C_LOR, // a || b
@@ -265,7 +265,7 @@ enum e_arglist {
*------------------------------------------*/
enum {
- MF_NOMEMO, //0
+ MF_NOMEMO, //0
MF_NOTELEPORT,
MF_NOSAVE,
MF_NOBRANCH,
@@ -275,7 +275,7 @@ enum {
MF_PVP_NOPARTY,
MF_PVP_NOGUILD,
MF_GVG,
- MF_GVG_NOPARTY, //10
+ MF_GVG_NOPARTY, //10
MF_NOTRADE,
MF_NOSKILL,
MF_NOWARP,
@@ -293,7 +293,7 @@ enum {
MF_GVG_DUNGEON,
MF_NIGHTENABLED,
MF_NOBASEEXP,
- MF_NOJOBEXP, //30
+ MF_NOJOBEXP, //30
MF_NOMOBLOOT,
MF_NOMVPLOOT,
MF_NORETURN,
@@ -303,7 +303,7 @@ enum {
MF_NOCOMMAND,
MF_NODROP,
MF_JEXP,
- MF_BEXP, //40
+ MF_BEXP, //40
MF_NOVENDING,
MF_LOADEVENT,
MF_NOCHAT,
@@ -313,7 +313,7 @@ enum {
MF_AUTOTRADE,
MF_ALLOWKS,
MF_MONSTER_NOTELEPORT,
- MF_PVP_NOCALCRANK, //50
+ MF_PVP_NOCALCRANK, //50
MF_BATTLEGROUND,
MF_RESET,
MF_NOTOMB,
@@ -343,6 +343,7 @@ struct Script_Config {
const char* ontouch_name;
const char* ontouch2_name;
+ const char* onuntouch_name;
};
/**
@@ -433,6 +434,7 @@ struct script_function {
bool (*func)(struct script_state *st);
char *name;
char *arg;
+ bool deprecated;
};
// String buffer structures.
@@ -445,6 +447,7 @@ struct str_data_struct {
bool (*func)(struct script_state *st);
int val;
int next;
+ uint8 deprecated : 1;
};
struct script_label_entry {
@@ -458,9 +461,9 @@ struct script_syntax_data {
int count;
int flag;
struct linkdb_node *case_label;
- } curly[256]; // Information right parenthesis
- int curly_count; // The number of right brackets
- int index; // Number of the syntax used in the script
+ } curly[256]; // Information right parenthesis
+ int curly_count; // The number of right brackets
+ int index; // Number of the syntax used in the script
};
struct casecheck_data {
@@ -574,7 +577,7 @@ struct script_interface {
void (*error) (const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
void (*warning) (const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
/* */
- bool (*addScript) (char *name, char *args, bool (*func)(struct script_state *st));
+ bool (*addScript) (char *name, char *args, bool (*func)(struct script_state *st), bool isDeprecated);
int (*conv_num) (struct script_state *st,struct script_data *data);
const char* (*conv_str) (struct script_state *st,struct script_data *data);
TBL_PC *(*rid2sd) (struct script_state *st);
diff --git a/src/map/searchstore.c b/src/map/searchstore.c
index 72b28aacd..782c14987 100644
--- a/src/map/searchstore.c
+++ b/src/map/searchstore.c
@@ -333,7 +333,7 @@ bool searchstore_result(struct map_session_data* sd, unsigned int store_id, int
void searchstore_defaults (void) {
searchstore = &searchstore_s;
-
+
searchstore->open = searchstore_open;
searchstore->query = searchstore_query;
searchstore->querynext = searchstore_querynext;
@@ -344,5 +344,5 @@ void searchstore_defaults (void) {
searchstore->queryremote = searchstore_queryremote;
searchstore->clearremote = searchstore_clearremote;
searchstore->result = searchstore_result;
-
+
}
diff --git a/src/map/skill.c b/src/map/skill.c
index b82c47a69..5eb319c02 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -45,7 +45,7 @@
#include "../common/timer.h"
#include "../common/utils.h"
-#define SKILLUNITTIMER_INTERVAL 100
+#define SKILLUNITTIMER_INTERVAL 100
// ranges reserved for mapping skill ids to skilldb offsets
#define HM_SKILLRANGEMIN 750
@@ -145,49 +145,49 @@ void skill_chk(uint16* skill_id) {
} while(0)
#define skill_glv(lv) min((lv),MAX_SKILL_LEVEL-1)
// Skill DB
-int skill_get_hit( uint16 skill_id ) { skill_get (skill->db[skill_id].hit, skill_id); }
-int skill_get_inf( uint16 skill_id ) { skill_get (skill->db[skill_id].inf, skill_id); }
-int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { skill_get (skill->db[skill_id].element[skill_glv(skill_lv-1)], skill_id); }
-int skill_get_nk( uint16 skill_id ) { skill_get (skill->db[skill_id].nk, skill_id); }
-int skill_get_max( uint16 skill_id ) { skill_get (skill->db[skill_id].max, skill_id); }
-int skill_get_range( uint16 skill_id , uint16 skill_lv ) { skill_get2 (skill->db[skill_id].range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_splash( uint16 skill_id , uint16 skill_lv ) { skill_get2 ( (skill->db[skill_id].splash[skill_glv(skill_lv-1)]>=0?skill->db[skill_id].splash[skill_glv(skill_lv-1)]:AREA_SIZE), skill_id, skill_lv); }
-int skill_get_hp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].hp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].sp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_hp_rate(uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].hp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp_rate(uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].sp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_state(uint16 skill_id) { skill_get (skill->db[skill_id].state, skill_id); }
-int skill_get_spiritball(uint16 skill_id, uint16 skill_lv) { skill_get2 (skill->db[skill_id].spiritball[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_itemid(uint16 skill_id, int idx) { skill_get (skill->db[skill_id].itemid[idx], skill_id); }
-int skill_get_itemqty(uint16 skill_id, int idx) { skill_get (skill->db[skill_id].amount[idx], skill_id); }
-int skill_get_zeny( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_num( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cast( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delay( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time2( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castdef( uint16 skill_id ) { skill_get (skill->db[skill_id].cast_def_rate, skill_id); }
-int skill_get_weapontype( uint16 skill_id ) { skill_get (skill->db[skill_id].weapon, skill_id); }
-int skill_get_ammotype( uint16 skill_id ) { skill_get (skill->db[skill_id].ammo, skill_id); }
-int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].ammo_qty[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_inf2( uint16 skill_id ) { skill_get (skill->db[skill_id].inf2, skill_id); }
-int skill_get_castcancel( uint16 skill_id ) { skill_get (skill->db[skill_id].castcancel, skill_id); }
-int skill_get_maxcount( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].maxcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_blewcount( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].blewcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_mhp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].mhp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castnodex( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].castnodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delaynodex( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].delaynodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_type( uint16 skill_id ) { skill_get (skill->db[skill_id].skill_type, skill_id); }
-int skill_get_unit_id ( uint16 skill_id, int flag ){ skill_get (skill->db[skill_id].unit_id[flag], skill_id); }
-int skill_get_unit_interval( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_interval, skill_id); }
-int skill_get_unit_range( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].unit_range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_unit_target( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_target&BCT_ALL, skill_id); }
-int skill_get_unit_bl_target( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_target&BL_ALL, skill_id); }
-int skill_get_unit_flag( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_flag, skill_id); }
-int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cooldown( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) {
+int skill_get_hit( uint16 skill_id ) { skill_get (skill->db[skill_id].hit, skill_id); }
+int skill_get_inf( uint16 skill_id ) { skill_get (skill->db[skill_id].inf, skill_id); }
+int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { skill_get (skill->db[skill_id].element[skill_glv(skill_lv-1)], skill_id); }
+int skill_get_nk( uint16 skill_id ) { skill_get (skill->db[skill_id].nk, skill_id); }
+int skill_get_max( uint16 skill_id ) { skill_get (skill->db[skill_id].max, skill_id); }
+int skill_get_range( uint16 skill_id , uint16 skill_lv ) { skill_get2 (skill->db[skill_id].range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_splash( uint16 skill_id , uint16 skill_lv ) { skill_get2 ( (skill->db[skill_id].splash[skill_glv(skill_lv-1)]>=0?skill->db[skill_id].splash[skill_glv(skill_lv-1)]:AREA_SIZE), skill_id, skill_lv); }
+int skill_get_hp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].hp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_sp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].sp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_hp_rate(uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].hp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_sp_rate(uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].sp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_state(uint16 skill_id) { skill_get (skill->db[skill_id].state, skill_id); }
+int skill_get_spiritball(uint16 skill_id, uint16 skill_lv) { skill_get2 (skill->db[skill_id].spiritball[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_itemid(uint16 skill_id, int idx) { skill_get (skill->db[skill_id].itemid[idx], skill_id); }
+int skill_get_itemqty(uint16 skill_id, int idx) { skill_get (skill->db[skill_id].amount[idx], skill_id); }
+int skill_get_zeny( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_num( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_cast( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_delay( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_time( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_time2( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_castdef( uint16 skill_id ) { skill_get (skill->db[skill_id].cast_def_rate, skill_id); }
+int skill_get_weapontype( uint16 skill_id ) { skill_get (skill->db[skill_id].weapon, skill_id); }
+int skill_get_ammotype( uint16 skill_id ) { skill_get (skill->db[skill_id].ammo, skill_id); }
+int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].ammo_qty[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_inf2( uint16 skill_id ) { skill_get (skill->db[skill_id].inf2, skill_id); }
+int skill_get_castcancel( uint16 skill_id ) { skill_get (skill->db[skill_id].castcancel, skill_id); }
+int skill_get_maxcount( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].maxcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_blewcount( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].blewcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_mhp( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].mhp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_castnodex( uint16 skill_id ,uint16 skill_lv ) { skill_get2 (skill->db[skill_id].castnodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_delaynodex( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].delaynodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_type( uint16 skill_id ) { skill_get (skill->db[skill_id].skill_type, skill_id); }
+int skill_get_unit_id ( uint16 skill_id, int flag ){ skill_get (skill->db[skill_id].unit_id[flag], skill_id); }
+int skill_get_unit_interval( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_interval, skill_id); }
+int skill_get_unit_range( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].unit_range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_unit_target( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_target&BCT_ALL, skill_id); }
+int skill_get_unit_bl_target( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_target&BL_ALL, skill_id); }
+int skill_get_unit_flag( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_flag, skill_id); }
+int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_cooldown( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); }
+int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) {
#ifdef RENEWAL_CAST
skill_get2 (skill->db[skill_id].fixed_cast[skill_glv(skill_lv-1)], skill_id, skill_lv);
#else
@@ -254,8 +254,10 @@ int skill_get_range2 (struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
//TODO: Find a way better than hardcoding the list of skills affected by AC_VULTURE
switch( skill_id ) {
- case AC_SHOWER: case MA_SHOWER:
- case AC_DOUBLE: case MA_DOUBLE:
+ case AC_SHOWER:
+ case MA_SHOWER:
+ case AC_DOUBLE:
+ case MA_DOUBLE:
case HT_BLITZBEAT:
case AC_CHARGEARROW:
case MA_CHARGEARROW:
@@ -433,16 +435,12 @@ int can_copy (struct map_session_data *sd, uint16 skill_id, struct block_list* b
return 0;
// Couldn't preserve 3rd Class skills except only when using Reproduce skill. [Jobbie]
- if( !(sd->sc.data[SC__REPRODUCE]) && ((skill_id >= RK_ENCHANTBLADE && skill_id <= SR_RIDEINLIGHTNING) || (skill_id >= KO_YAMIKUMO && skill_id <= OB_AKAITSUKI)))
+ if( !(sd->sc.data[SC__REPRODUCE]) && ((skill_id >= RK_ENCHANTBLADE && skill_id <= LG_OVERBRAND_PLUSATK) || (skill_id >= RL_GLITTERING_GREED && skill_id <= OB_AKAITSUKI) || (skill_id >= GC_DARKCROW && skill_id <= NC_MAGMA_ERUPTION_DOTDAMAGE)))
return 0;
// Reproduce will only copy skills according on the list. [Jobbie]
else if( sd->sc.data[SC__REPRODUCE] && !skill->reproduce_db[skill->get_index(skill_id)] )
return 0;
- //Never copy new 3rd class skills By OmegaRed
- if(skill_id >= GC_DARKCROW && skill_id <= ALL_FULL_THROTTLE)
- return 0;
-
return 1;
}
@@ -457,6 +455,9 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd)
if (idx == 0)
return 1; // invalid skill id
+ if( pc_has_permission(sd, PC_PERM_DISABLE_SKILL_USAGE) )
+ return 1;
+
if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL))
return 0; // can do any damn thing they want
@@ -646,7 +647,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
nullpo_ret(src);
nullpo_ret(bl);
- if(skill_id > 0 && !skill_lv) return 0; // don't forget auto attacks! - celest
+ if(skill_id > 0 && !skill_lv) return 0; // don't forget auto attacks! - celest
if( dmg_lv < ATK_BLOCK ) // Don't apply effect if miss.
return 0;
@@ -695,10 +696,10 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
temp = skill->get_time2(status->sc2skill(type),7);
if (sd->addeff[i].flag&ATF_TARGET)
- status->change_start(src,bl,type,rate,7,0,(type == SC_BURNING)?src->id:0,0,temp,0);
+ status->change_start(src,bl,type,rate,7,0,(type == SC_BURNING)?src->id:0,0,temp,SCFLAG_NONE);
if (sd->addeff[i].flag&ATF_SELF)
- status->change_start(src,src,type,rate,7,0,(type == SC_BURNING)?src->id:0,0,temp,0);
+ status->change_start(src,src,type,rate,7,0,(type == SC_BURNING)?src->id:0,0,temp,SCFLAG_NONE);
}
}
@@ -713,9 +714,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
temp = skill->get_time2(status->sc2skill(type),7);
if( sd->addeff3[i].target&ATF_TARGET )
- status->change_start(src,bl,type,sd->addeff3[i].rate,7,0,0,0,temp,0);
+ status->change_start(src,bl,type,sd->addeff3[i].rate,7,0,0,0,temp,SCFLAG_NONE);
if( sd->addeff3[i].target&ATF_SELF )
- status->change_start(src,src,type,sd->addeff3[i].rate,7,0,0,0,temp,0);
+ status->change_start(src,src,type,sd->addeff3[i].rate,7,0,0,0,temp,SCFLAG_NONE);
}
}
}
@@ -782,7 +783,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
// Enchant Poison gives a chance to poison attacked enemies
if((sce=sc->data[SC_ENCHANTPOISON])) //Don't use sc_start since chance comes in 1/10000 rate.
status->change_start(src,bl,SC_POISON,sce->val2, sce->val1,src->id,0,0,
- skill->get_time2(AS_ENCHANTPOISON,sce->val1),0);
+ skill->get_time2(AS_ENCHANTPOISON,sce->val1),SCFLAG_NONE);
// Enchant Deadly Poison gives a chance to deadly poison attacked enemies
if((sce=sc->data[SC_EDP]))
sc_start4(src,bl,SC_DPOISON,sce->val2, sce->val1,src->id,0,0,
@@ -794,7 +795,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
case SM_BASH:
if( sd && skill_lv > 5 && pc->checkskill(sd,SM_FATALBLOW)>0 )
status->change_start(src,bl,SC_STUN,500*(skill_lv-5)*sd->status.base_level/50,
- skill_lv,0,0,0,skill->get_time2(SM_FATALBLOW,skill_lv),0);
+ skill_lv,0,0,0,skill->get_time2(SM_FATALBLOW,skill_lv),SCFLAG_NONE);
break;
case MER_CRASH:
@@ -806,8 +807,8 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
skill_lv = pc->checkskill(sd, TF_POISON);
case TF_POISON:
case AS_SPLASHER:
- if(!sc_start2(src,bl,SC_POISON,(4*skill_lv+10),skill_lv,src->id,skill->get_time2(skill_id,skill_lv))
- && sd && skill_id==TF_POISON
+ if (!sc_start2(src,bl,SC_POISON,(4*skill_lv+10),skill_lv,src->id,skill->get_time2(skill_id,skill_lv))
+ && sd && skill_id==TF_POISON
)
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
@@ -824,8 +825,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
#ifndef RENEWAL
case WZ_FROSTNOVA:
#endif
- if( !sc_start(src,bl,SC_FREEZE,skill_lv*3+35,skill_lv,skill->get_time2(skill_id,skill_lv))
- && sd && skill_id == MG_FROSTDIVER )
+ if (!sc_start(src,bl,SC_FREEZE,skill_lv*3+35,skill_lv,skill->get_time2(skill_id,skill_lv))
+ && sd && skill_id == MG_FROSTDIVER
+ )
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
@@ -842,9 +844,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
#ifdef RENEWAL
sc_start(src,bl,SC_FREEZE,65-(5*skill_lv),skill_lv,skill->get_time2(skill_id,skill_lv));
#else
- // [Tharis] pointed out that this is normal freeze chance with a base of 300%
+ //On third hit, there is a 150% to freeze the target
if(tsc->sg_counter >= 3 &&
- sc_start(src,bl,SC_FREEZE,300,skill_lv,skill->get_time2(skill_id,skill_lv)))
+ sc_start(src,bl,SC_FREEZE,150,skill_lv,skill->get_time2(skill_id,skill_lv)))
tsc->sg_counter = 0;
/**
* being it only resets on success it'd keep stacking and eventually overflowing on mvps, so we reset at a high value
@@ -984,7 +986,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
case NPC_MENTALBREAKER:
{
//Based on observations by [Tharis], Mental Breaker should do SP damage
- //equal to Matk*skLevel.
+ //equal to Matk*skLevel.
rate = status->get_matk(src, 2);
rate*=skill_lv;
status_zap(bl, 0, rate);
@@ -1010,7 +1012,8 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
case LK_SPIRALPIERCE:
case ML_SPIRALPIERCE:
- sc_start(src,bl,SC_ANKLESNARE,100,0,skill->get_time2(skill_id,skill_lv));
+ if( dstsd || ( dstmd && !is_boss(bl) ) ) //Does not work on bosses
+ sc_start(src,bl,SC_STOP,100,0,skill->get_time2(skill_id,skill_lv));
break;
case ST_REJECTSWORD:
@@ -1045,14 +1048,14 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
break;
default:
sc_start2(src,bl,SC_BLOODING,(5+skill_lv*5),skill_lv,src->id,skill->get_time2(skill_id,3));
- }
+ }
break;
case HW_NAPALMVULCAN:
sc_start(src,bl,SC_CURSE,5*skill_lv,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
- case WS_CARTTERMINATION: // Cart termination
+ case WS_CARTTERMINATION:
sc_start(src,bl,SC_STUN,5*skill_lv,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
@@ -1082,7 +1085,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
break;
case GS_BULLSEYE: //0.1% coma rate.
if(tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN)
- status->change_start(src,bl,SC_COMA,10,skill_lv,0,src->id,0,0,0);
+ status->change_start(src,bl,SC_COMA,10,skill_lv,0,src->id,0,0,SCFLAG_NONE);
break;
case GS_PIERCINGSHOT:
sc_start2(src,bl,SC_BLOODING,(skill_lv*3),skill_lv,src->id,skill->get_time2(skill_id,skill_lv));
@@ -1192,7 +1195,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
break;
case NC_POWERSWING:
// Use flag=2, the stun duration is not vit-reduced.
- status->change_start(src, bl, SC_STUN, 5*skill_lv*100, skill_lv, 0, 0, 0, skill->get_time(skill_id, skill_lv), 2);
+ status->change_start(src, bl, SC_STUN, 5*skill_lv*100, skill_lv, 0, 0, 0, skill->get_time(skill_id, skill_lv), SCFLAG_FIXEDTICK);
if( rnd()%100 < 5*skill_lv )
skill->castend_damage_id(src, bl, NC_AXEBOOMERANG, pc->checkskill(sd, NC_AXEBOOMERANG), tick, 1);
break;
@@ -1210,6 +1213,14 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
rate = 30 + 8 * skill_lv + sstatus->dex / 10 + (sd? sd->status.job_level:0) / 4;
sc_start(src, bl, SC_STUN, rate, skill_lv, skill->get_time(skill_id,skill_lv));
break;
+ case LG_HESPERUSLIT:
+ if ( sc && sc->data[SC_BANDING] ) {
+ if ( sc->data[SC_BANDING]->val2 == 4 ) // 4 banding RGs: Targets will be stunned at 100% chance for 4 ~ 8 seconds, irreducible by STAT.
+ status->change_start(src, bl, SC_STUN, 10000, skill_lv, 0, 0, 0, 1000*(4+rand()%4), SCFLAG_FIXEDTICK);
+ else if ( sc->data[SC_BANDING]->val2 == 6 ) // 6 banding RGs: activate Pinpoint Attack Lv1-5
+ skill->castend_damage_id(src,bl,LG_PINPOINTATTACK,1+rand()%5,tick,0);
+ }
+ break;
case LG_PINPOINTATTACK:
rate = 30 + 5 * (sd ? pc->checkskill(sd,LG_PINPOINTATTACK) : 1) + (sstatus->agi + status->get_lv(src)) / 10;
switch( skill_lv ) {
@@ -1237,7 +1248,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
else if( dstmd && !is_boss(bl) )
sc_start(src, bl,SC_STOP,100,skill_lv,skill->get_time(skill_id,skill_lv));
break;
- case LG_RAYOFGENESIS: // 50% chance to cause Blind on Undead and Demon monsters.
+ case LG_RAYOFGENESIS: // 50% chance to cause Blind on Undead and Demon monsters.
if ( battle->check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON )
sc_start(src, bl, SC_BLIND,50, skill_lv, skill->get_time(skill_id,skill_lv));
break;
@@ -1267,7 +1278,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
sc_start(src, bl, SC_FEAR, 5 + 5 * skill_lv, skill_lv, skill->get_time(skill_id, skill_lv));
break;
case SO_EARTHGRAVE:
- sc_start2(src, bl, SC_BLOODING, 5 * skill_lv, skill_lv, src->id, skill->get_time2(skill_id, skill_lv)); // Need official rate. [LimitLine]
+ sc_start2(src, bl, SC_BLOODING, 5 * skill_lv, skill_lv, src->id, skill->get_time2(skill_id, skill_lv)); // Need official rate. [LimitLine]
break;
case SO_DIAMONDDUST:
rate = 5 + 5 * skill_lv;
@@ -1280,7 +1291,8 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
break;
case GN_SLINGITEM_RANGEMELEEATK:
if( sd ) {
- switch( sd->itemid ) { // Starting SCs here instead of do it in skill->additional_effect to simplify the code.
+ switch( sd->itemid ) {
+ // Starting SCs here instead of do it in skill->additional_effect to simplify the code.
case ITEMID_COCONUT_BOMB:
sc_start(src, bl, SC_STUN, 100, skill_lv, 5000); // 5 seconds until I get official
sc_start(src, bl, SC_BLOODING, 100, skill_lv, 10000);
@@ -1300,7 +1312,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
sc_start(src, bl, SC_STUN, 20 + 10 * skill_lv, skill_lv, skill->get_time2(skill_id, skill_lv));
sc_start2(src, bl, SC_BLOODING, 5 + 5 * skill_lv, skill_lv, src->id,skill->get_time2(skill_id, skill_lv));
break;
- case EL_WIND_SLASH: // Non confirmed rate.
+ case EL_WIND_SLASH: // Non confirmed rate.
sc_start2(src, bl, SC_BLOODING, 25, skill_lv, src->id, skill->get_time(skill_id,skill_lv));
break;
case EL_STONE_HAMMER:
@@ -1351,10 +1363,10 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
rate += sd->weapon_coma_race[tstatus->race];
rate += sd->weapon_coma_race[tstatus->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
if (rate)
- status->change_start(src, bl, SC_COMA, rate, 0, 0, src->id, 0, 0, 0);
+ status->change_start(src, bl, SC_COMA, rate, 0, 0, src->id, 0, 0, SCFLAG_NONE);
}
- if( sd && battle_config.equip_self_break_rate )
- { // Self weapon breaking
+ if (sd && battle_config.equip_self_break_rate) {
+ // Self weapon breaking
rate = battle_config.equip_natural_break_rate;
if( sc )
{
@@ -1368,8 +1380,8 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
if( rate )
skill->break_equip(src, EQP_WEAPON, rate, BCT_SELF);
}
- if( battle_config.equip_skill_break_rate && skill_id != WS_CARTTERMINATION && skill_id != ITM_TOMAHAWK )
- { // Cart Termination/Tomahawk won't trigger breaking data. Why? No idea, go ask Gravity.
+ if (battle_config.equip_skill_break_rate && skill_id != WS_CARTTERMINATION && skill_id != ITM_TOMAHAWK) {
+ // Cart Termination/Tomahawk won't trigger breaking data. Why? No idea, go ask Gravity.
// Target weapon breaking
rate = 0;
if( sd )
@@ -1391,10 +1403,10 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
if (sd && !skill_id && bl->type == BL_PC) { // This effect does not work with skills.
if (sd->def_set_race[tstatus->race].rate)
status->change_start(src,bl, SC_DEFSET, sd->def_set_race[tstatus->race].rate, sd->def_set_race[tstatus->race].value,
- 0, 0, 0, sd->def_set_race[tstatus->race].tick, 2);
+ 0, 0, 0, sd->def_set_race[tstatus->race].tick, SCFLAG_FIXEDTICK);
if (sd->def_set_race[tstatus->race].rate)
status->change_start(src,bl, SC_MDEFSET, sd->mdef_set_race[tstatus->race].rate, sd->mdef_set_race[tstatus->race].value,
- 0, 0, 0, sd->mdef_set_race[tstatus->race].tick, 2);
+ 0, 0, 0, sd->mdef_set_race[tstatus->race].tick, SCFLAG_FIXEDTICK);
}
}
@@ -1557,7 +1569,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
monster = mob->db(class_);
} while (
(monster->status.mode&(MD_BOSS|MD_PLANT) || monster->summonper[0] <= rate) &&
- (temp++) < 2000);
+ (temp++) < 2000);
if (temp < 2000)
mob->class_change(dstmd,class_);
}
@@ -1667,14 +1679,16 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
int rate;
struct map_session_data *sd=NULL;
struct map_session_data *dstsd=NULL;
+ struct status_change *sc;
nullpo_ret(src);
nullpo_ret(bl);
- if(skill_id > 0 && !skill_lv) return 0; // don't forget auto attacks! [celest]
+ if(skill_id > 0 && !skill_lv) return 0; // don't forget auto attacks! [celest]
sd = BL_CAST(BL_PC, src);
dstsd = BL_CAST(BL_PC, bl);
+ sc = status->get_sc(src);
if(dstsd && attack_type&BF_WEAPON) {
//Counter effects.
@@ -1696,10 +1710,10 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
time = skill->get_time2(status->sc2skill(type),7);
if (dstsd->addeff2[i].flag&ATF_TARGET)
- status->change_start(bl,src,type,rate,7,0,0,0,time,0);
+ status->change_start(bl,src,type,rate,7,0,0,0,time,SCFLAG_NONE);
if (dstsd->addeff2[i].flag&ATF_SELF && !status->isdead(bl))
- status->change_start(bl,bl,type,rate,7,0,0,0,time,0);
+ status->change_start(bl,bl,type,rate,7,0,0,0,time,SCFLAG_NONE);
}
}
@@ -1710,7 +1724,7 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
case GS_FULLBUSTER:
sc_start(src,src,SC_BLIND,2*skill_lv,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
- case HFLI_SBR44: // [orn]
+ case HFLI_SBR44: // [orn]
case HVAN_EXPLOSION:
if(src->type == BL_HOM){
TBL_HOM *hd = (TBL_HOM*)src;
@@ -1723,6 +1737,13 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
case NPC_GRANDDARKNESS:
attack_type |= BF_WEAPON;
break;
+ case LG_HESPERUSLIT:
+ if ( sc && sc->data[SC_FORCEOFVANGUARD] && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 6 ) {
+ char i;
+ for( i = 0; i < sc->data[SC_FORCEOFVANGUARD]->val3 && sc->fv_counter <= sc->data[SC_FORCEOFVANGUARD]->val3 ; i++)
+ clif->millenniumshield(bl, sc->fv_counter++);
+ }
+ break;
}
if( sd && (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR
@@ -1755,14 +1776,11 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
sp += sd->bonus.magic_sp_gain_value;
hp += sd->bonus.magic_hp_gain_value;
if( skill_id == WZ_WATERBALL ) {// (bugreport:5303)
- struct status_change *sc = NULL;
- if( ( sc = status->get_sc(src) ) ) {
- if( sc->data[SC_SOULLINK]
- && sc->data[SC_SOULLINK]->val2 == SL_WIZARD
- && sc->data[SC_SOULLINK]->val3 == WZ_WATERBALL
- )
- sc->data[SC_SOULLINK]->val3 = 0; //Clear bounced spell check.
- }
+ if( sc->data[SC_SOULLINK]
+ && sc->data[SC_SOULLINK]->val2 == SL_WIZARD
+ && sc->data[SC_SOULLINK]->val3 == WZ_WATERBALL
+ )
+ sc->data[SC_SOULLINK]->val3 = 0; //Clear bounced spell check.
}
}
if( hp || sp ) {
@@ -1881,11 +1899,11 @@ int skill_counter_additional_effect(struct block_list* src, struct block_list *b
return 0;
}
/*=========================================================================
- Breaks equipment. On-non players causes the corresponding strip effect.
- - rate goes from 0 to 10000 (100.00%)
- - flag is a BCT_ flag to indicate which type of adjustment should be used
- (BCT_ENEMY/BCT_PARTY/BCT_SELF) are the valid values.
---------------------------------------------------------------------------*/
+ * Breaks equipment. On-non players causes the corresponding strip effect.
+ * - rate goes from 0 to 10000 (100.00%)
+ * - flag is a BCT_ flag to indicate which type of adjustment should be used
+ * (BCT_ENEMY/BCT_PARTY/BCT_SELF) are the valid values.
+ *------------------------------------------------------------------------*/
int skill_break_equip (struct block_list *bl, unsigned short where, int rate, int flag) {
const int where_list[4] = {EQP_WEAPON, EQP_ARMOR, EQP_SHIELD, EQP_HELM};
const enum sc_type scatk[4] = {SC_NOEQUIPWEAPON, SC_NOEQUIPARMOR, SC_NOEQUIPSHIELD, SC_NOEQUIPHELM};
@@ -1904,7 +1922,7 @@ int skill_break_equip (struct block_list *bl, unsigned short where, int rate, in
rate -= rate*sd->bonus.unbreakable/100;
if (where&EQP_WEAPON) {
switch (sd->status.weapon) {
- case W_FIST: //Bare fists should not break :P
+ case W_FIST: //Bare fists should not break :P
case W_1HAXE:
case W_2HAXE:
case W_MACE: // Axes and Maces can't be broken [DracoRPG]
@@ -2047,13 +2065,13 @@ int skill_blown(struct block_list* src, struct block_list* target, int count, in
if (dir == -1) // <optimized>: do the computation here instead of outside
dir = map->calc_dir(target, src->x, src->y); // direction from src to target, reversed
- if (dir >= 0 && dir < 8)
- { // take the reversed 'direction' and reverse it
+ if (dir >= 0 && dir < 8) {
+ // take the reversed 'direction' and reverse it
dx = -dirx[dir];
dy = -diry[dir];
}
- return unit->blown(target, dx, dy, count, flag); // send over the proper flag
+ return unit->blown(target, dx, dy, count, flag); // send over the proper flag
}
@@ -2109,6 +2127,7 @@ int skill_magic_reflect(struct block_list* src, struct block_list* bl, int type)
* packet shouldn't display a skill animation)
* flag&0x2000 is used to signal that the skill_lv should be passed as -1 to the
* client (causes player characters to not scream skill name)
+ * flag&0x4000 - Return 0 if damage was reflected
*-------------------------------------------------------------------------*/
int skill_attack(int attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag) {
struct Damage dmg;
@@ -2122,7 +2141,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
if(skill_id > 0 && !skill_lv) return 0;
- nullpo_ret(src); // Source is the master behind the attack (player/mob/pet)
+ nullpo_ret(src); // Source is the master behind the attack (player/mob/pet)
nullpo_ret(dsrc); // dsrc is the actual originator of the damage, can be the same as src, or a skill casted by src.
nullpo_ret(bl); //Target to be attacked.
@@ -2339,14 +2358,14 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
case AC_DOUBLE:
// AC_DOUBLE can start the combo with other monster types, but the
// monster that's going to be hit by HT_POWER should be RC_BRUTE or RC_INSECT [Panikon]
- if( pc->checkskill(sd, HT_POWER) )
- {
+ if (pc->checkskill(sd, HT_POWER)) {
sc_start4(NULL,src,SC_COMBOATTACK,100,HT_POWER,0,1,0,2000);
clif->combo_delay(src,2000);
}
break;
case TK_COUNTER:
- { //bonus from SG_FRIEND [Komurka]
+ {
+ //bonus from SG_FRIEND [Komurka]
int level;
if(sd->status.party_id>0 && (level = pc->checkskill(sd,SG_FRIEND)))
party->skill_check(sd, sd->status.party_id, TK_COUNTER,level);
@@ -2373,7 +2392,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
if( pc->checkskill(sd, SR_TIGERCANNON) > 0 || pc->checkskill(sd, SR_GATEOFHELL) > 0 )
combo = 1;
break;
- } //Switch End
+ } //Switch End
if (combo) { //Possible to chain
if ( (combo = DIFF_TICK32(sd->ud.canact_tick, tick)) < 50 ) combo = 50;/* less is a waste. */
sc_start2(NULL,src,SC_COMBOATTACK,100,skill_id,bl->id,combo);
@@ -2445,6 +2464,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
case EL_HURRICANE_ATK:
case EL_TYPOON_MIS:
case EL_TYPOON_MIS_ATK:
+ case GN_CRAZYWEED_ATK:
case KO_BAKURETSU:
case NC_MAGMA_ERUPTION:
dmg.dmotion = clif->skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,5);
@@ -2455,9 +2475,6 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
case SC_FEINTBOMB:
dmg.dmotion = clif->skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,skill_id,skill_lv,5);
break;
- case GN_CRAZYWEED_ATK:
- dmg.dmotion = clif->skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id, -2, 6);
- break;
case EL_STONE_RAIN:
dmg.dmotion = clif->skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,(flag&1)?8:5);
break;
@@ -2507,11 +2524,12 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
map->freeblock_lock();
- if(damage > 0 && dmg.flag&BF_SKILL && tsd
- && pc->checkskill(tsd,RG_PLAGIARISM)
- && (!sc || !sc->data[SC_PRESERVE])
- && damage < tsd->battle_status.hp)
- { //Updated to not be able to copy skills if the blow will kill you. [Skotlex]
+ if (damage > 0 && dmg.flag&BF_SKILL && tsd
+ && pc->checkskill(tsd,RG_PLAGIARISM)
+ && (!sc || !sc->data[SC_PRESERVE])
+ && damage < tsd->battle_status.hp
+ ) {
+ //Updated to not be able to copy skills if the blow will kill you. [Skotlex]
int copy_skill = skill_id, cidx = 0;
/**
* Copy Referral: dummy skills should point to their source upon copying
@@ -2530,7 +2548,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
break;
case WM_SEVERE_RAINSTORM_MELEE:
copy_skill = WM_SEVERE_RAINSTORM;
- break;
+ break;
case GN_CRAZYWEED_ATK:
copy_skill = GN_CRAZYWEED;
break;
@@ -2547,7 +2565,7 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
}
cidx = skill->get_index(copy_skill);
if ((tsd->status.skill[cidx].id == 0 || tsd->status.skill[cidx].flag == SKILL_FLAG_PLAGIARIZED) &&
- can_copy(tsd,copy_skill,bl)) // Split all the check into their own function [Aru]
+ can_copy(tsd,copy_skill,bl)) // Split all the check into their own function [Aru]
{
int lv, idx = 0;
if( sc && sc->data[SC__REPRODUCE] && (lv = sc->data[SC__REPRODUCE]->val1) ) {
@@ -2640,7 +2658,8 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
break;
// This ensures the storm randomly pushes instead of exactly a cell backwards per official mechanics.
case WZ_STORMGUST:
- dir = rnd()%8;
+ if(!battle_config.stormgust_knockback)
+ dir = rand()%8;
break;
case WL_CRIMSONROCK:
dir = map->calc_dir(bl,skill->area_temp[4],skill->area_temp[5]);
@@ -2782,6 +2801,9 @@ int skill_attack(int attack_type, struct block_list* src, struct block_list *dsr
map->freeblock_unlock();
+ if ((flag&0x4000) && rmdamage == 1)
+ return 0; //Should return 0 when damage was reflected
+
return (int)cap_value(damage,INT_MIN,INT_MAX);
}
@@ -2835,9 +2857,11 @@ int skill_check_unit_range_sub (struct block_list *bl, va_list ap) {
g_skill_id = su->group->skill_id;
switch (skill_id) {
- case MH_STEINWAND:
- case MG_SAFETYWALL:
case AL_PNEUMA:
+ if(g_skill_id == SA_LANDPROTECTOR)
+ break;
+ case MG_SAFETYWALL:
+ case MH_STEINWAND:
case SC_MAELSTROM:
case SO_ELEMENTAL_SHIELD:
if(g_skill_id != MH_STEINWAND && g_skill_id != MG_SAFETYWALL && g_skill_id != AL_PNEUMA && g_skill_id != SC_MAELSTROM && g_skill_id != SO_ELEMENTAL_SHIELD)
@@ -2919,7 +2943,8 @@ int skill_check_unit_range2_sub (struct block_list *bl, va_list ap) {
int skill_check_unit_range2 (struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv) {
int range, type;
- switch (skill_id) { // to be expanded later
+ switch (skill_id) {
+ // to be expanded later
case WZ_ICEWALL:
range = 2;
break;
@@ -3281,12 +3306,18 @@ int skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
int x = skl->type>>16, y = skl->type&0xFFFF;
if( path->search_long(NULL, src->m, src->x, src->y, x, y, CELL_CHKWALL) )
skill->unitsetting(src,skl->skill_id,skl->skill_lv,x,y,skl->flag);
- if( path->search_long(NULL, src->m, src->x, src->y, skl->x, skl->y, CELL_CHKWALL) )
+ if( path->search_long(NULL, src->m, src->x, src->y, skl->x, skl->y, CELL_CHKWALL)
+ && !map->getcell(src->m, skl->x, skl->y, CELL_CHKLANDPROTECTOR) )
clif->skill_poseffect(src,skl->skill_id,skl->skill_lv,skl->x,skl->y,tick);
}
else if( path->search_long(NULL, src->m, src->x, src->y, skl->x, skl->y, CELL_CHKWALL) )
skill->unitsetting(src,skl->skill_id,skl->skill_lv,skl->x,skl->y,skl->flag);
break;
+ case GN_CRAZYWEED_ATK: {
+ int dummy = 1, i = skill->get_unit_range(skl->skill_id,skl->skill_lv);
+
+ map->foreachinarea(skill->cell_overlap,src->m,skl->x-i,skl->y-i,skl->x+i,skl->y+i,BL_SKILL,skl->skill_id,&dummy,src);
+ }
// fall through ...
case WL_EARTHSTRAIN:
skill->unitsetting(src,skl->skill_id,skl->skill_lv,skl->x,skl->y,(skl->type<<16)|skl->flag);
@@ -3296,14 +3327,6 @@ int skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
map->foreachinpath(skill->attack_area,src->m,src->x,src->y,skl->x,skl->y,4,2,BL_CHAR,
skill->get_type(skl->skill_id),src,src,skl->skill_id,skl->skill_lv,tick,skl->flag,BCT_ENEMY);
break;
- case GN_CRAZYWEED:
- if( skl->type >= 0 ) {
- int x = skl->type>>16, y = skl->type&0xFFFF;
- if( path->search_long(NULL, src->m, src->x, src->y, skl->x, skl->y, CELL_CHKWALL) )
- skill->castend_pos2(src, x, y, GN_CRAZYWEED_ATK, skl->skill_lv, tick, skl->flag);
- } else if( path->search_long(NULL, src->m, src->x, src->y, skl->x, skl->y, CELL_CHKWALL) )
- skill->castend_pos2(src, skl->x, skl->y, GN_CRAZYWEED_ATK, skl->skill_lv, tick, skl->flag);
- break;
}
}
} while (0);
@@ -3390,7 +3413,7 @@ int skill_activate_reverberation(struct block_list *bl, va_list ap) {
int skill_reveal_trap (struct block_list *bl, va_list ap) {
TBL_SKILL *su = (TBL_SKILL*)bl;
- if (su->alive && su->group && skill->get_inf2(su->group->skill_id)&INF2_TRAP) { //Reveal trap.
+ if (su->alive && su->group && skill->get_inf2(su->group->skill_id)&INF2_TRAP) { //Reveal trap.
//Change look is not good enough, the client ignores it as an actual trap still. [Skotlex]
//clif->changetraplook(bl, su->group->unit_id);
clif->getareachar_skillunit(&su->bl,su,AREA);
@@ -3503,9 +3526,9 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case MO_TRIPLEATTACK:
case CH_CHAINCRUSH:
case CH_TIGERFIST:
- case PA_SHIELDCHAIN: // Shield Chain
+ case PA_SHIELDCHAIN:
case PA_SACRIFICE:
- case WS_CARTTERMINATION: // Cart Termination
+ case WS_CARTTERMINATION:
case AS_VENOMKNIFE:
case HT_PHANTASMIC:
case TK_DOWNKICK:
@@ -3517,15 +3540,15 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case GS_PIERCINGSHOT:
case GS_RAPIDSHOWER:
case GS_DUST:
- case GS_DISARM: // Added disarm. [Reddozen]
+ case GS_DISARM:
case GS_FULLBUSTER:
case NJ_SYURIKEN:
case NJ_KUNAI:
#ifndef RENEWAL
case ASC_BREAKER:
#endif
- case HFLI_MOON: //[orn]
- case HFLI_SBR44: //[orn]
+ case HFLI_MOON: //[orn]
+ case HFLI_SBR44: //[orn]
case NPC_BLEEDING:
case NPC_CRITICALWOUND:
case NPC_HELLPOWER:
@@ -3550,9 +3573,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case SR_GENTLETOUCH_QUIET:
case WM_SEVERE_RAINSTORM_MELEE:
case WM_GREAT_ECHO:
- case GN_CRAZYWEED_ATK:
case GN_SLINGITEM_RANGEMELEEATK:
- case KO_JYUMONJIKIRI:
case KO_SETSUDAN:
case GC_DARKCROW:
case LG_OVERBRAND_BRANDISH:
@@ -3740,8 +3761,6 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case NPC_SPLASHATTACK:
flag |= SD_PREAMBLE; // a fake packet will be sent for the first target to be hit
case AS_SPLASHER:
- case SM_MAGNUM:
- case MS_MAGNUM:
case HT_BLITZBEAT:
case AC_SHOWER:
case MA_SHOWER:
@@ -3794,11 +3813,15 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
// skill->area_temp[1] holds the id of the original target
// skill->area_temp[2] counts how many targets have already been processed
int sflag = skill->area_temp[0] & 0xFFF, heal;
+ struct status_change *tsc = status->get_sc(bl);
if( flag&SD_LEVEL )
sflag |= SD_LEVEL; // -1 will be used in packets instead of the skill level
if( (skill->area_temp[1] != bl->id && !(skill->get_inf2(skill_id)&INF2_NPC_SKILL)) || flag&SD_ANIMATION )
sflag |= SD_ANIMATION; // original target gets no animation (as well as all NPC skills)
+ if ( tsc && tsc->data[SC_HOVERING] && ( skill_id == SR_WINDMILL || skill_id == LG_MOONSLASHER ) )
+ break;
+
heal = skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, sflag);
if( skill_id == NPC_VAMPIRE_GIFT && heal > 0 ) {
clif->skill_nodamage(NULL, src, AL_HEAL, heal, 1);
@@ -3847,6 +3870,14 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
}
break;
+ case SM_MAGNUM:
+ case MS_MAGNUM:
+ if( flag&1 ) {
+ //Damage depends on distance, so add it to flag if it is > 1
+ skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|distance_bl(src, bl));
+ }
+ break;
+
case KN_BRANDISHSPEAR:
case ML_BRANDISH:
//Coded apart for it needs the flag passed to the damage calculation.
@@ -3912,7 +3943,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
// If target cell is a wall then break
if(map->getcell(bl->m,tx,ty,CELL_CHKWALL))
break;
- skill_blown(src,bl,1,dir,0);
+ skill->blown(src,bl,1,dir,0);
// Splash around target cell, but only cells inside area; we first have to check the area is not negative
if((max(min_x,tx-1) <= min(max_x,tx+1)) &&
(max(min_y,ty-1) <= min(max_y,ty+1)) &&
@@ -3964,8 +3995,8 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
skill->castend_nodamage_id);
}
break;
- case CH_PALMSTRIKE: // Palm Strike takes effect 1sec after casting. [Skotlex]
- // clif->skill_nodamage(src,bl,skill_id,skill_lv,0); //Can't make this one display the correct attack animation delay :/
+ case CH_PALMSTRIKE: // Palm Strike takes effect 1sec after casting. [Skotlex]
+ //clif->skill_nodamage(src,bl,skill_id,skill_lv,0); //Can't make this one display the correct attack animation delay :/
clif->damage(src,bl,status_get_amotion(src),0,-1,1,4,0); //Display an absorbed damage attack.
skill->addtimerskill(src, tick + (1000+status_get_amotion(src)), bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag);
break;
@@ -4068,7 +4099,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
case SL_STIN:
case SL_STUN:
if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
- status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,10);
+ status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
}
@@ -4184,27 +4215,27 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
}
break;
+ case KO_JYUMONJIKIRI:
case GC_DARKILLUSION:
{
short x, y;
- short dir = map->calc_dir(src,bl->x,bl->y);
+ short dir = map->calc_dir(bl, src->x, src->y);
- if( dir > 0 && dir < 4) x = 2;
- else if( dir > 4 ) x = -2;
- else x = 0;
- if( dir > 2 && dir < 6 ) y = 2;
- else if( dir == 7 || dir < 2 ) y = -2;
- else y = 0;
+ if ( dir < 4 ) {
+ x = bl->x + 2 * (dir > 0) - 3 * (dir > 0);
+ y = bl->y + 1 - (dir / 2) - (dir > 2);
+ } else {
+ x = bl->x + 2 * (dir > 4) - 1 * (dir > 4);
+ y = bl->y + (dir / 6) - 1 + (dir > 6);
+ }
- if( unit->movepos(src, bl->x+x, bl->y+y, 1, 1) )
- {
- clif->slide(src,bl->x+x,bl->y+y);
+ if ( unit->movepos(src, x, y, 1, 1) ) {
+ clif->slide(src, x, y);
clif->fixpos(src); // the official server send these two packets.
- skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
- if( rnd()%100 < 4 * skill_lv )
- skill->castend_damage_id(src,bl,GC_CROSSIMPACT,skill_lv,tick,flag);
+ skill->attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag);
+ if ( rnd() % 100 < 4 * skill_lv && skill_id == GC_DARKILLUSION )
+ skill->castend_damage_id(src, bl, GC_CROSSIMPACT, skill_lv, tick, flag);
}
-
}
break;
case GC_WEAPONCRUSH:
@@ -4507,7 +4538,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
tsc->data[SC_MELODYOFSINK] || tsc->data[SC_BEYOND_OF_WARCRY] || tsc->data[SC_UNLIMITED_HUMMING_VOICE] ) &&
rnd()%100 < 4 * skill_lv + 2 * (sd ? pc->checkskill(sd,WM_LESSON) : 10) + 10 * battle->calc_chorusbonus(sd)) {
skill->attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag);
- status->change_start(src,bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),8);
+ status->change_start(src,bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),SCFLAG_FIXEDRATE);
status_change_end(bl, SC_SWING, INVALID_TIMER);
status_change_end(bl, SC_SYMPHONY_LOVE, INVALID_TIMER);
status_change_end(bl, SC_MOONLIT_SERENADE, INVALID_TIMER);
@@ -4844,7 +4875,7 @@ int skill_castend_id(int tid, int64 tick, int id, intptr_t data) {
break;
} else if( ud->skill_id == RK_PHANTOMTHRUST && target->type != BL_MOB ) {
if( !map_flag_vs(src->m) && battle->check_target(src,target,BCT_PARTY) <= 0 )
- break; // You can use Phantom Thurst on party members in normal maps too. [pakpil]
+ break; // You can use Phantom Thurst on party members in normal maps too. [pakpil]
}
if( inf&BCT_ENEMY
@@ -4893,8 +4924,8 @@ int skill_castend_id(int tid, int64 tick, int id, intptr_t data) {
break;
if (ud->state.running && ud->skill_id == TK_JUMPKICK) {
- ud->state.running = 0;
- status_change_end(src, SC_RUN, INVALID_TIMER);
+ ud->state.running = 0;
+ status_change_end(src, SC_RUN, INVALID_TIMER);
flag = 1;
}
@@ -4988,8 +5019,8 @@ int skill_castend_id(int tid, int64 tick, int id, intptr_t data) {
skill->consume_requirement(sd,ud->skill_id, ud->skill_lv,1);
status->set_sp(src, 0, 0);
sc = &sd->sc;
- if (sc->count)
- { //End states
+ if (sc->count) {
+ //End states
status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
#ifdef RENEWAL
@@ -5006,8 +5037,8 @@ int skill_castend_id(int tid, int64 tick, int id, intptr_t data) {
if( dir > 2 && dir < 6 ) y = -2;
else if( dir == 7 || dir < 2 ) y = 2;
else y = 0;
- if (unit->movepos(src, src->x+x, src->y+y, 1, 1))
- { //Display movement + animation.
+ if (unit->movepos(src, src->x+x, src->y+y, 1, 1)) {
+ //Display movement + animation.
clif->slide(src,src->x,src->y);
clif->spiritball(src);
}
@@ -5043,7 +5074,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
int element = 0;
enum sc_type type;
- if(skill_id > 0 && !skill_lv) return 0; // [Celest]
+ if(skill_id > 0 && !skill_lv) return 0; // [Celest]
nullpo_retr(1, src);
nullpo_retr(1, bl);
@@ -5099,12 +5130,12 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
//Check for undead skills that convert a no-damage skill into a damage one. [Skotlex]
switch (skill_id) {
- case HLIF_HEAL: // [orn]
+ case HLIF_HEAL: // [orn]
if (bl->type != BL_HOM) {
if (sd) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0) ;
break ;
}
- case AL_HEAL:
+ case AL_HEAL:
/**
* Arch Bishop
@@ -5117,7 +5148,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
//Apparently only player casted skills can be offensive like this.
if (sd && battle->check_undead(tstatus->race,tstatus->def_ele) && skill_id != AL_INCAGI) {
if (battle->check_target(src, bl, BCT_ENEMY) < 1) {
- //Offensive heal does not works on non-enemies. [Skotlex]
+ //Offensive heal does not works on non-enemies. [Skotlex]
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0;
}
@@ -5135,7 +5166,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if((p = party->search(sd->status.party_id)) == NULL)
break;
- range = skill_get_splash(skill_id,skill_lv);
+ range = skill->get_splash(skill_id,skill_lv);
x0 = sd->bl.x - range;
y0 = sd->bl.y - range;
x1 = sd->bl.x + range;
@@ -5184,7 +5215,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case RK_FIGHTINGSPIRIT:
case RK_ABUNDANCE:
if( sd && !pc->checkskill(sd, RK_RUNEMASTERY) ){
- if( status->change_start(src,&sd->bl, (sc_type)(rnd()%SC_CONFUSION), 1000, 1, 0, 0, 0, skill->get_time2(skill_id,skill_lv),8) ){
+ if( status->change_start(src,&sd->bl, (sc_type)(rnd()%SC_CONFUSION), 1000, 1, 0, 0, 0, skill->get_time2(skill_id,skill_lv),SCFLAG_FIXEDRATE) ){
skill->consume_requirement(sd,skill_id,skill_lv,2);
map->freeblock_unlock();
return 0;
@@ -5209,7 +5240,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
map->freeblock_lock();
switch(skill_id) {
- case HLIF_HEAL: // [orn]
+ case HLIF_HEAL: // [orn]
case AL_HEAL:
/**
* Arch Bishop
@@ -5398,7 +5429,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
bl = (struct block_list*)((TBL_PET*)src)->msd;
if (!bl) bl = src;
unit->skilluse_id(src, bl->id, abra_skill_id, abra_skill_lv);
- } else { //Assume offensive skills
+ } else { //Assume offensive skills
int target_id = 0;
if (ud->target)
target_id = ud->target;
@@ -5445,7 +5476,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case SA_SUMMONMONSTER:
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
- if (sd) mob->once_spawn(sd, src->m, src->x, src->y," --ja--", -1, 1, "", SZ_MEDIUM, AI_NONE);
+ if (sd) mob->once_spawn(sd, src->m, src->x, src->y," --ja--", -1, 1, "", SZ_SMALL, AI_NONE);
break;
case SA_LEVELUP:
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
@@ -5558,14 +5589,14 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start4(src,bl,type,100,skill_lv,src->id,0,0,skill->get_time(skill_id,skill_lv)));
break;
- case SA_FLAMELAUNCHER: // added failure chance and chance to break weapon if turned on [Valaris]
+ case SA_FLAMELAUNCHER: // added failure chance and chance to break weapon if turned on [Valaris]
case SA_FROSTWEAPON:
case SA_LIGHTNINGLOADER:
case SA_SEISMICWEAPON:
if (dstsd) {
if(dstsd->status.weapon == W_FIST ||
(dstsd->sc.count && !dstsd->sc.data[type] &&
- ( //Allow re-enchanting to lengthen time. [Skotlex]
+ ( //Allow re-enchanting to lengthen time. [Skotlex]
dstsd->sc.data[SC_PROPERTYFIRE] ||
dstsd->sc.data[SC_PROPERTYWATER] ||
dstsd->sc.data[SC_PROPERTYWIND] ||
@@ -5623,8 +5654,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case PR_KYRIE:
case MER_KYRIE:
- clif->skill_nodamage(bl,bl,skill_id,skill_lv,
- sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));
+ clif->skill_nodamage(bl, bl, skill_id, -1,
+ sc_start(src, bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv)));
break;
//Passive Magnum, should had been casted on yourself.
case SM_MAGNUM:
@@ -5830,7 +5861,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
dstsd->sc.data[SC_PROPERTYGROUND] ||
dstsd->sc.data[SC_PROPERTYDARK] ||
dstsd->sc.data[SC_PROPERTYTELEKINESIS]
- // dstsd->sc.data[SC_ENCHANTPOISON] //People say you should be able to recast to lengthen the timer. [Skotlex]
+ //dstsd->sc.data[SC_ENCHANTPOISON] //People say you should be able to recast to lengthen the timer. [Skotlex]
) {
clif->skill_nodamage(src,bl,skill_id,skill_lv,0);
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
@@ -6009,15 +6040,23 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case MO_ABSORBSPIRITS:
{
int sp = 0;
- if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m) || (sd->duel_group && sd->duel_group == dstsd->duel_group)) && ((dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK)!=MAPID_REBELLION))
- { // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen]
+ if ( dstsd && dstsd->spiritball
+ && (sd == dstsd || map_flag_vs(src->m) || (sd->duel_group && sd->duel_group == dstsd->duel_group))
+ && ((dstsd->class_&MAPID_BASEMASK) != MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK) != MAPID_REBELLION)
+ ) {
+ // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen]
sp = dstsd->spiritball * 7;
- pc->delspiritball(dstsd,dstsd->spiritball,0);
- } else if (dstmd && !(tstatus->mode&MD_BOSS) && rnd() % 100 < 20)
- { // check if target is a monster and not a Boss, for the 20% chance to absorb 2 SP per monster's level [Reddozen]
+ pc->delspiritball(dstsd, dstsd->spiritball, 0);
+ } else if ( dstmd && !(tstatus->mode&MD_BOSS) && rnd() % 100 < 20 ) {
+ // check if target is a monster and not a Boss, for the 20% chance to absorb 2 SP per monster's level [Reddozen]
sp = 2 * dstmd->level;
mob->target(dstmd,src,0);
}
+ if ( dstsd ) {
+ int i;
+ for ( i = SPIRITS_TYPE_CHARM_WATER; i < SPIRITS_TYPE_SPHERE; i++ )
+ pc->del_charm(dstsd, dstsd->spiritcharm[i], i);
+ }
if (sp) status->heal(src, 0, sp, 3);
clif->skill_nodamage(src,bl,skill_id,skill_lv,sp?1:0);
}
@@ -6121,7 +6160,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
BF_MAGIC, src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY);
break;
- case HVAN_EXPLOSION: // [orn]
+ case HVAN_EXPLOSION: // [orn]
case NPC_SELFDESTRUCTION:
{
//Self Destruction hits everyone in range (allies+enemies)
@@ -6213,7 +6252,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
|| dstsd->status.char_id == sd->status.child
)
) {
- status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,8);
+ status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,SCFLAG_FIXEDRATE);
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
}
@@ -6261,25 +6300,24 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case GC_CLOAKINGEXCEED:
case LG_FORCEOFVANGUARD:
case SC_REPRODUCE:
+ case RA_CAMOUFLAGE:
if (tsce) {
int failure = status_change_end(bl, type, INVALID_TIMER);
if( failure )
clif->skill_nodamage(src,bl,skill_id,( skill_id == LG_FORCEOFVANGUARD ) ? skill_lv : -1,failure);
else if( sd )
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- if ( skill_id == LG_FORCEOFVANGUARD )
+ if ( skill_id == LG_FORCEOFVANGUARD || skill_id == RA_CAMOUFLAGE )
break;
map->freeblock_unlock();
return 0;
+ } else {
+ int failure = sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
+ if( failure )
+ clif->skill_nodamage(src,bl,skill_id,( skill_id == LG_FORCEOFVANGUARD ) ? skill_lv : -1,failure);
+ else if( sd )
+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
}
- case RA_CAMOUFLAGE:
- {
- int failure = sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
- if( failure )
- clif->skill_nodamage(src,bl,skill_id,( skill_id == LG_FORCEOFVANGUARD ) ? skill_lv : -1,failure);
- else if( sd )
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- }
break;
case BD_ADAPTATION:
@@ -6360,7 +6398,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if (tsc->data[SC_STONE]) {
status_change_end(bl, SC_STONE, INVALID_TIMER);
- if (sd) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
break;
}
if (sc_start4(src,bl,SC_STONE,(skill_lv*4+20)+brate,
@@ -6417,7 +6455,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( battle->check_undead(tstatus->race,tstatus->def_ele) ) {
status->change_start(src, bl, SC_BLIND,
100*(100-(tstatus->int_/2+tstatus->vit/3+tstatus->luk/10)), 1,0,0,0,
- skill->get_time2(skill_id, skill_lv) * (100-(tstatus->int_+tstatus->vit)/2)/100,0);
+ skill->get_time2(skill_id, skill_lv) * (100-(tstatus->int_+tstatus->vit)/2)/100,SCFLAG_NONE);
}
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
if(dstmd)
@@ -6507,8 +6545,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case MC_VENDING:
- if(sd)
- { //Prevent vending of GMs with unnecessary Level to trade/drop. [Skotlex]
+ if (sd) {
+ //Prevent vending of GMs with unnecessary Level to trade/drop. [Skotlex]
if ( !pc_can_give_items(sd) )
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
else {
@@ -6613,9 +6651,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( skill_id == GC_WEAPONCRUSH){
d = skill->get_time(skill_id,skill_lv);
if(bl->type == BL_PC)
- d += skill_lv * 15 + (sstatus->dex - tstatus->dex);
+ d += 1000 * ( skill_lv * 15 + ( sstatus->dex - tstatus->dex ) );
else
- d += skill_lv * 30 + (sstatus->dex - tstatus->dex) / 2;
+ d += 1000 * ( skill_lv * 30 + ( sstatus->dex - tstatus->dex ) / 2 );
}else
d = skill->get_time(skill_id,skill_lv) + (sstatus->dex - tstatus->dex)*500;
@@ -6732,7 +6770,14 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
sp += sp * i / 100;
}
} else {
- hp = (1 + rnd()%400) * (100 + skill_lv*10) / 100;
+ //Maybe replace with potion_hp, but I'm unsure how that works [Playtester]
+ switch (skill_lv) {
+ case 1: hp = 45; break;
+ case 2: hp = 105; break;
+ case 3: hp = 175; break;
+ default: hp = 325; break;
+ }
+ hp = (hp + rnd()%(skill_lv*20+1)) * (150 + skill_lv*10) / 100;
hp = hp * (100 + (tstatus->vit<<1)) / 100;
if( dstsd )
hp = hp * (100 + pc->checkskill(dstsd,SM_RECOVERY)*10) / 100;
@@ -6778,7 +6823,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case AM_CP_SHIELD: {
int i;
- if(dstsd && (i=dstsd->equip_index[EQI_HAND_L])>=0 && dstsd->inventory_data[i] &&
+ if(dstsd && (i=dstsd->equip_index[EQI_HAND_L])>=0 && dstsd->inventory_data[i] &&
dstsd->inventory_data[i]->type==IT_ARMOR)
clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));
@@ -6929,7 +6974,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
clif->skill_nodamage(src,bl,TK_HIGHJUMP,skill_lv,1);
- if(!map->count_oncell(src->m,x,y,BL_PC|BL_NPC|BL_MOB) && map->getcell(src->m,x,y,CELL_CHKREACH)) {
+ if(!map->count_oncell(src->m,x,y,BL_PC|BL_NPC|BL_MOB,0) && map->getcell(src->m,x,y,CELL_CHKREACH)) {
clif->slide(src,x,y);
unit->movepos(src, x, y, 1, 0);
}
@@ -6968,8 +7013,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break; //Nothing to cancel.
bl_skill_id = ud->skill_id;
bl_skill_lv = ud->skill_lv;
- if (tstatus->mode & MD_BOSS)
- { //Only 10% success chance against bosses. [Skotlex]
+ if (tstatus->mode & MD_BOSS) {
+ //Only 10% success chance against bosses. [Skotlex]
if (rnd()%100 < 90)
{
if (sd) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
@@ -6984,7 +7029,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
status_zap(bl, hp, sp);
if (hp && skill_lv >= 5)
- hp>>=1; //Recover half damaged HP at level 5 [Skotlex]
+ hp>>=1; //Recover half damaged HP at level 5 [Skotlex]
else
hp = 0;
@@ -7010,9 +7055,11 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
static const int spellarray[3] = { MG_COLDBOLT,MG_FIREBOLT,MG_LIGHTNINGBOLT };
if(skill_lv >= 10) {
spellid = MG_FROSTDIVER;
- // if (tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SA_SAGE)
- // maxlv = 10;
- // else
+#if 0
+ if (tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SA_SAGE)
+ maxlv = 10;
+ else
+#endif // 0
maxlv = skill_lv - 9;
}
else if(skill_lv >=8) {
@@ -7088,7 +7135,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
struct unit_data *ud = unit->bl2ud(bl);
if (clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start(src,bl,type,100,skill_lv,skill_time))
- && ud) { //Disable attacking/acting/moving for skill's duration.
+ && ud) {
+ //Disable attacking/acting/moving for skill's duration.
ud->attackabletime =
ud->canact_tick =
ud->canmove_tick = tick + skill_time;
@@ -7265,7 +7313,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
return 0;
}
else
- status->change_start(src,bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time2(skill_id,skill_lv),8);
+ status->change_start(src,bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time2(skill_id,skill_lv),SCFLAG_FIXEDRATE);
}
break;
@@ -7337,7 +7385,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
struct skill_unit *su=NULL;
if((bl->type==BL_SKILL) && (su=(struct skill_unit *)bl) && (su->group) ){
switch(su->group->unit_id){
- case UNT_ANKLESNARE: // ankle snare
+ case UNT_ANKLESNARE:
if (su->group->val2 != 0)
// if it is already trapping something don't spring it,
// remove trap should be used instead
@@ -7492,7 +7540,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if(dstsd && dstsd->inventory_data[dstsd->equip_index[EQI_HAND_R]]) {
iused=true;
clif->skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,SC_PROTECTWEAPON,100,skill_lv,skill->get_time(skill_id,skill_lv)));
- } if(dstsd && (i=dstsd->equip_index[EQI_HAND_L])>=0 && dstsd->inventory_data[i] &&
+ } if(dstsd && (i=dstsd->equip_index[EQI_HAND_L])>=0 && dstsd->inventory_data[i] &&
dstsd->inventory_data[i]->type==IT_ARMOR) {
iused=true;
clif->skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,SC_PROTECTSHIELD,100,skill_lv,skill->get_time(skill_id,skill_lv)));
@@ -7511,7 +7559,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
break;
- case RG_CLEANER: //AppleGirl
+ case RG_CLEANER: //AppleGirl
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
break;
@@ -7549,16 +7597,16 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
clif->specialeffect(bl, 523 + eff, AREA);
switch (eff)
{
- case 0: // heals SP to 0
+ case 0: // heals SP to 0
status_percent_damage(src, bl, 0, 100, false);
break;
- case 1: // matk halved
+ case 1: // matk halved
sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
break;
- case 2: // all buffs removed
+ case 2: // all buffs removed
status->change_clear_buffs(bl,1);
break;
- case 3: // 1000 damage, random armor destroyed
+ case 3: // 1000 damage, random armor destroyed
{
status_fix_damage(src, bl, 1000, 0);
clif->damage(src,bl,0,0,1000,0,0,0);
@@ -7568,49 +7616,49 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
}
break;
- case 4: // atk halved
+ case 4: // atk halved
sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
break;
- case 5: // 2000HP heal, random teleported
+ case 5: // 2000HP heal, random teleported
status->heal(src, 2000, 0, 0);
if( !map_flag_vs(bl->m) )
unit->warp(bl, -1,-1,-1, CLR_TELEPORT);
break;
- case 6: // random 2 other effects
+ case 6: // random 2 other effects
if (count == -1)
count = 3;
else
count++; //Should not re-trigger this one.
break;
- case 7: // stop freeze or stoned
+ case 7: // stop freeze or stoned
{
enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE };
sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv));
}
break;
- case 8: // curse coma and poison
+ case 8: // curse coma and poison
sc_start(src,bl,SC_COMA,100,skill_lv,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_CURSE,100,skill_lv,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_POISON,100,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
- case 9: // confusion
+ case 9: // confusion
sc_start(src,bl,SC_CONFUSION,100,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
- case 10: // 6666 damage, atk matk halved, cursed
+ case 10: // 6666 damage, atk matk halved, cursed
status_fix_damage(src, bl, 6666, 0);
clif->damage(src,bl,0,0,6666,0,0,0);
sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_CURSE,skill_lv,100,skill->get_time2(skill_id,skill_lv));
break;
- case 11: // 4444 damage
+ case 11: // 4444 damage
status_fix_damage(src, bl, 4444, 0);
clif->damage(src,bl,0,0,4444,0,0,0);
break;
- case 12: // stun
+ case 12: // stun
sc_start(src,bl,SC_STUN,100,skill_lv,5000);
break;
- case 13: // atk,matk,hit,flee,def reduced
+ case 13: // atk,matk,hit,flee,def reduced
sc_start(src,bl,SC_INCATKRATE,100,-20,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_INCMATKRATE,100,-20,skill->get_time2(skill_id,skill_lv));
sc_start(src,bl,SC_INCHITRATE,100,-20,skill->get_time2(skill_id,skill_lv));
@@ -7646,8 +7694,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
}
- if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100))
- { //Erase death count 1% of the casts
+ if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100)) {
+ //Erase death count 1% of the casts
dstsd->die_counter = 0;
pc_setglobalreg(dstsd,script->add_str("PC_DIE_COUNTER"), 0);
clif->specialeffect(bl, 0x152, AREA);
@@ -7671,7 +7719,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if (tsce) {
if(sd)
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,10000,8);
+ status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,10000,SCFLAG_FIXEDRATE);
status_change_end(bl, SC_SWOO, INVALID_TIMER);
break;
}
@@ -7679,7 +7727,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case SL_SKE:
if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,10);
+ status->change_start(src,src,SC_STUN,10000,skill_lv,0,0,0,500,SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
break;
}
clif->skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));
@@ -7795,7 +7843,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
break;
- case AM_CALLHOMUN: // [orn]
+ case AM_CALLHOMUN: // [orn]
if( sd ) {
if (homun->call(sd))
clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
@@ -7813,7 +7861,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
break;
- case HAMI_CASTLE: // [orn]
+ case HAMI_CASTLE: // [orn]
if(rnd()%100 < 20*skill_lv && src != bl)
{
int x,y;
@@ -7842,7 +7890,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
else if (sd)
clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
break;
- case HVAN_CHAOTIC: // [orn]
+ case HVAN_CHAOTIC: // [orn]
{
static const int per[5][2]={{20,50},{50,60},{25,75},{60,64},{34,67}};
int r = rnd()%100;
@@ -8233,7 +8281,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( sd == NULL || sd->status.party_id == 0 || flag&1 ) {
if( sd && tstatus && !battle->check_undead(tstatus->race, tstatus->def_ele) && !tsc->data[SC_BERSERK] ) {
int lv = pc->checkskill(sd, AL_HEAL);
- int heal = skill_calc_heal(src, bl, AL_HEAL, lv, true);
+ int heal = skill->calc_heal(src, bl, AL_HEAL, lv, true);
if( sd->status.party_id ) {
int partycount = party->foreachsamemap(party->sub_count, sd, 0);
@@ -8306,7 +8354,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( flag&1 || (splash = skill->get_splash(skill_id, skill_lv)) < 1 ) {
int i;
//As of the behavior in official server Clearance is just a super version of Dispell skill. [Jobbie]
- if( bl->type != BL_MOB && battle->check_target(src,bl,BCT_PARTY) <= 0 ) // Only affect mob or party.
+ if( bl->type != BL_MOB && battle->check_target(src,bl,BCT_PARTY) <= 0 && sd ) // Only affect mob, party or self.
break;
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
@@ -8410,7 +8458,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( tsc && tsc->data[SC_STONE] )
status_change_end(bl,SC_STONE,INVALID_TIMER);
else
- status->change_start(src,bl,SC_STONE,10000,skill_lv,0,0,500,skill->get_time(skill_id, skill_lv),2);
+ status->change_start(src,bl,SC_STONE,10000,skill_lv,0,0,500,skill->get_time(skill_id, skill_lv),SCFLAG_FIXEDTICK);
} else {
int rate = 45 + 5 * skill_lv;
if( rnd()%100 < rate ){
@@ -8518,9 +8566,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case NC_SELFDESTRUCTION:
- if( sd ) {
- if( pc_ismadogear(sd) )
- pc->setmadogear(sd, 0);
+ if (sd) {
+ if (pc_ismadogear(sd))
+ pc->setmadogear(sd, false);
clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
skill->castend_damage_id(src, src, skill_id, skill_lv, tick, flag);
status->set_sp(src, 0, 0);
@@ -8646,13 +8694,13 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
//If the target was successfully inflected with the Unlucky status, give 1 of 3 random status's.
switch(rnd()%3) {//Targets in the Unlucky status will be affected by one of the 3 random status's regardless of resistance.
case 0:
- status->change_start(src,bl,SC_POISON,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);
+ status->change_start(src,bl,SC_POISON,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
break;
case 1:
- status->change_start(src,bl,SC_SILENCE,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);
+ status->change_start(src,bl,SC_SILENCE,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
break;
case 2:
- status->change_start(src,bl,SC_BLIND,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);
+ status->change_start(src,bl,SC_BLIND,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
}
}
} else if( sd )
@@ -8679,8 +8727,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
sc_start(src,bl,SC_SILENCE,100,skill_lv,sd->bonus.shieldmdef * 30000);
} else {
int opt = 0, val = 0, splashrange = 0;
- struct item_data *shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]];
- if( !shield_data || shield_data->type != IT_ARMOR ) {
+ struct item_data *shield_data = NULL;
+ if( sd->equip_index[EQI_HAND_L] < 0 || !( shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]] ) || shield_data->type != IT_ARMOR ) {
//Skill will first check if a shield is equipped. If none is found on the caster the skill will fail.
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
@@ -8792,15 +8840,24 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if (!tsc->data[i])
continue;
switch(i){
- case SC_POISON: case SC_BLIND:
- case SC_FREEZE: case SC_STONE:
- case SC_STUN: case SC_SLEEP:
- case SC_BLOODING: case SC_CURSE:
- case SC_CONFUSION: case SC_ILLUSION:
- case SC_SILENCE: case SC_BURNING:
- case SC_COLD: case SC_FROSTMISTY:
- case SC_DEEP_SLEEP: case SC_FEAR:
- case SC_MANDRAGORA: case SC__CHAOS:
+ case SC_POISON:
+ case SC_BLIND:
+ case SC_FREEZE:
+ case SC_STONE:
+ case SC_STUN:
+ case SC_SLEEP:
+ case SC_BLOODING:
+ case SC_CURSE:
+ case SC_CONFUSION:
+ case SC_ILLUSION:
+ case SC_SILENCE:
+ case SC_BURNING:
+ case SC_COLD:
+ case SC_FROSTMISTY:
+ case SC_DEEP_SLEEP:
+ case SC_FEAR:
+ case SC_MANDRAGORA:
+ case SC__CHAOS:
status_change_end(bl, (sc_type)i, INVALID_TIMER);
}
}
@@ -8864,6 +8921,11 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
pc->delspiritball(dstsd, dstsd->spiritball, 0);
status_percent_heal(src, 0, sp);
}
+ if ( dstsd ) {
+ int i;
+ for (i = SPIRITS_TYPE_CHARM_WATER; i < SPIRITS_TYPE_SPHERE; i++)
+ pc->del_charm(dstsd, dstsd->spiritcharm[i], i);
+ }
clif->skill_nodamage(src, bl, skill_id, skill_lv, sp ? 1:0);
} else {
clif->skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
@@ -8912,10 +8974,13 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
}
break;
case SR_GENTLETOUCH_CHANGE:
- case SR_GENTLETOUCH_REVITALIZE:
clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start2(src,bl,type,100,skill_lv,bl->id,skill->get_time(skill_id,skill_lv)));
break;
+ case SR_GENTLETOUCH_REVITALIZE:
+ clif->skill_nodamage(src,bl,skill_id,skill_lv,
+ sc_start2(src,bl,type,100,skill_lv,status_get_vit(src),skill->get_time(skill_id,skill_lv)));
+ break;
case SR_FLASHCOMBO:
{
const int combo[] = {
@@ -8929,7 +8994,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
for( i = 0; i < ARRAYLENGTH(combo); i++ )
skill->addtimerskill(src, tick + 400 * i, bl->id, 0, 0, combo[i], skill_lv, BF_WEAPON, flag|SD_LEVEL);
- break;
+ break;
}
case WA_SWING_DANCE:
case WA_SYMPHONY_OF_LOVER:
@@ -9173,9 +9238,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case SO_EL_CONTROL:
if( sd ) {
- int mode = EL_MODE_PASSIVE; // Standard mode.
+ int mode = EL_MODE_PASSIVE; // Standard mode.
- if( !sd->ed ) break;
+ if( !sd->ed ) break;
if( skill_lv == 4 ) {// At level 4 delete elementals.
elemental->delete(sd->ed, 0);
@@ -9224,7 +9289,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
int s_hp = sd->battle_status.hp * 10 / 100, s_sp = sd->battle_status.sp * 10 / 100;
int e_hp, e_sp;
- if( !ed ) break;
+ if( !ed ) break;
if( !status->charge(&sd->bl,s_hp,s_sp) ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
break;
@@ -9353,7 +9418,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
} else {
clif->skill_nodamage(src,src,skill_id,skill_lv,1);
clif->skill_damage(src, ( skill_id == EL_GUST || skill_id == EL_BLAST || skill_id == EL_WILD_STORM )?src:bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
- if( skill_id == EL_WIND_STEP ) // There aren't teleport, just push the master away.
+ if( skill_id == EL_WIND_STEP ) // There aren't teleport, just push the master away.
skill->blown(src,bl,(rnd()%skill->get_blewcount(skill_id,skill_lv))+1,rnd()%8,0);
sc_start(src, src,type2,100,skill_lv,skill->get_time(skill_id,skill_lv));
sc_start(src, bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
@@ -9399,10 +9464,10 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
int i;
int ttype = skill->get_ele(skill_id, skill_lv);
clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
- ARR_FIND(1, 6, i, sd->charm[i] > 0 && ttype != i);
- if( i < 6 )
- pc->del_charm(sd, sd->charm[i], i); // replace with a new one.
- pc->add_charm(sd, skill->get_time(skill_id, skill_lv), 10, ttype);
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0 && ttype != i);
+ if( i < SPIRITS_TYPE_SPHERE )
+ pc->del_charm(sd, sd->spiritcharm[i], i); // replace with a new one.
+ pc->add_charm(sd, skill->get_time(skill_id, skill_lv), MAX_SPIRITCHARM, ttype);
}
break;
@@ -9410,7 +9475,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if(sd) {
struct mob_data *summon_md;
- summon_md = mob->once_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), 2308, "", SZ_MEDIUM, AI_NONE);
+ summon_md = mob->once_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), 2308, "", SZ_SMALL, AI_NONE);
if( summon_md ) {
summon_md->master_id = src->id;
summon_md->special_state.ai = AI_ZANZOU;
@@ -9426,17 +9491,16 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case KO_KYOUGAKU:
- {
- int rate = max(5, (45 + 5 * skill_lv - status_get_int(bl) / 10));
- if( sd && !map_flag_gvg2(src->m) ){
- clif->skill_fail(sd, skill_id, USESKILL_FAIL_SIZE, 0);
- break;
- }
- if( dstsd && tsc && !tsc->data[type] && rand()%100 < rate ){
- clif->skill_nodamage(src, bl, skill_id, skill_lv,
- sc_start(src, bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv)));
- }else if( sd )
- clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
+ if (!map_flag_vs(src->m) || !dstsd) {
+ if (sd) clif->skill_fail(sd, skill_id, USESKILL_FAIL_SIZE, 0);
+ break;
+ } else {
+ int time;
+ int rate = 45+ 5*skill_lv - status_get_int(bl)/10;
+ if (rate < 5) rate = 5;
+
+ time = skill->get_time(skill_id, skill_lv) - 1000*status_get_int(bl)/20;
+ sc_start(src,bl, type, rate, skill_lv, time);
}
break;
@@ -9445,10 +9509,10 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
&& rand()%100 < (10 * (5 * skill_lv - status_get_int(bl) / 2 + 45 + 5 * skill_lv))
) {
clif->skill_nodamage(src, bl, skill_id, skill_lv,
- status->change_start(src, bl, type, 10000, skill_lv, 0, 0, 0, skill->get_time(skill_id, skill_lv), 1));
+ status->change_start(src, bl, type, 10000, skill_lv, 0, 0, 0, skill->get_time(skill_id, skill_lv), SCFLAG_NOAVOID));
status_zap(bl, tstatus->max_hp * skill_lv * 5 / 100 , 0);
if( status->get_lv(bl) <= status->get_lv(src) )
- status->change_start(src, bl, SC_COMA, skill_lv, skill_lv, 0, src->id, 0, 0, 0);
+ status->change_start(src, bl, SC_COMA, skill_lv, skill_lv, 0, src->id, 0, 0, SCFLAG_NONE);
} else if( sd )
clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
break;
@@ -9544,11 +9608,11 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if (tsc->data[scs[i]]) status_change_end(bl, scs[i], INVALID_TIMER);
}
}
- heal = 5 * status->get_lv(&hd->bl) + status->base_matk(&hd->battle_status, status->get_lv(&hd->bl));
+ heal = 5 * status->get_lv(&hd->bl) + status->base_matk(&hd->bl, &hd->battle_status, status->get_lv(&hd->bl));
status->heal(bl, heal, 0, 0);
clif->skill_nodamage(src, src, skill_id, skill_lv, clif->skill_nodamage(src, bl, AL_HEAL, heal, 1));
- status->change_start(src, src, type, 1000, skill_lv, 0, 0, 0, skill->get_time(skill_id,skill_lv), 1|2|8);
- status->change_start(src, bl, type, 1000, skill_lv, 0, 0, 0, skill->get_time(skill_id,skill_lv), 1|2|8);
+ status->change_start(src, src, type, 1000, skill_lv, 0, 0, 0, skill->get_time(skill_id,skill_lv), SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
+ status->change_start(src, bl, type, 1000, skill_lv, 0, 0, 0, skill->get_time(skill_id,skill_lv), SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
}
break;
@@ -9584,7 +9648,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
for(i=0; i<qty[skill_lv - 1]; i++){ //easy way
- summon_md = mob->once_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), summons[skill_lv - 1], "", SZ_MEDIUM, AI_ATTACK);
+ summon_md = mob->once_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), summons[skill_lv - 1], "", SZ_SMALL, AI_ATTACK);
if (summon_md) {
summon_md->master_id = src->id;
if (summon_md->deletetimer != INVALID_TIMER)
@@ -9717,9 +9781,11 @@ int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) {
if( sd )
{
- if( ud->skill_id != AL_WARP && !skill->check_condition_castend(sd, ud->skill_id, ud->skill_lv) )
+ if( ud->skill_id != AL_WARP && !skill->check_condition_castend(sd, ud->skill_id, ud->skill_lv) ) {
+ if( ud->skill_id == SA_LANDPROTECTOR )
+ clif->skill_poseffect(&sd->bl,ud->skill_id,ud->skill_lv,sd->bl.x,sd->bl.y,tick);
break;
- else
+ }else
skill->consume_requirement(sd,ud->skill_id,ud->skill_lv,1);
}
@@ -9741,7 +9807,7 @@ int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) {
if( !sd || sd->skillitem != ud->skill_id || skill->get_delay(ud->skill_id,ud->skill_lv) )
ud->canact_tick = tick + skill->delay_fix(src, ud->skill_id, ud->skill_lv);
- if (sd) { //Cooldown application
+ if (sd) { //Cooldown application
int i, cooldown = skill->get_cooldown(ud->skill_id, ud->skill_lv);
for (i = 0; i < ARRAYLENGTH(sd->skillcooldown) && sd->skillcooldown[i].id; i++) { // Increases/Decreases cooldown of a skill by item/card bonuses.
if (sd->skillcooldown[i].id == ud->skill_id){
@@ -9754,15 +9820,15 @@ int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) {
}
if( battle_config.display_status_timers && sd )
clif->status_change(src, SI_POSTDELAY, 1, skill->delay_fix(src, ud->skill_id, ud->skill_lv), 0, 0, 0);
-// if( sd )
-// {
-// switch( ud->skill_id )
-// {
-// case ????:
-// sd->canequip_tick = tick + ????;
-// break;
-// }
-// }
+#if 0
+ if (sd) {
+ switch (ud->skill_id) {
+ case ????:
+ sd->canequip_tick = tick + ????;
+ break;
+ }
+ }
+#endif // 0
unit->set_walkdelay(src, tick, battle_config.default_walk_delay+skill->get_walkdelay(ud->skill_id, ud->skill_lv), 1);
status_change_end(src,SC_CAMOUFLAGE, INVALID_TIMER);// only normal attack and auto cast skills benefit from its bonuses
map->freeblock_lock();
@@ -9849,7 +9915,6 @@ int skill_castend_map (struct map_session_data *sd, uint16 skill_id, const char
}
pc_stop_attack(sd);
- pc_stop_walking(sd,0);
if(battle_config.skill_log && battle_config.skill_log&BL_PC)
ShowInfo("PC %d skill castend skill =%d map=%s\n",sd->bl.id,skill_id,mapname);
@@ -9959,7 +10024,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
int r;
//if(skill_lv <= 0) return 0;
- if(skill_id > 0 && !skill_lv) return 0; // [Celest]
+ if(skill_id > 0 && !skill_lv) return 0; // [Celest]
nullpo_ret(src);
@@ -10051,11 +10116,17 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
}
case MG_SAFETYWALL:
+ {
+ int alive = 1;
+ if ( map->foreachincell(skill->cell_overlap, src->m, x, y, BL_SKILL, skill_id, &alive, src) ) {
+ skill->unitsetting(src, skill_id, skill_lv, x, y, 0);
+ return 0; // Don't consume gems if cast on LP
+ }
+ }
case MG_FIREWALL:
case MG_THUNDERSTORM:
case AL_PNEUMA:
- case WZ_ICEWALL:
case WZ_FIREPILLAR:
case WZ_QUAGMIRE:
case WZ_VERMILION:
@@ -10086,7 +10157,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case WE_CALLPARTNER:
case WE_CALLPARENT:
case WE_CALLBABY:
- case AC_SHOWER: //Ground-placed skill implementation.
+ case AC_SHOWER: //Ground-placed skill implementation.
case MA_SHOWER:
case SA_LANDPROTECTOR:
case BD_LULLABY:
@@ -10140,6 +10211,8 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case GN_THORNS_TRAP:
case GN_DEMONIC_FIRE:
case GN_HELLS_PLANT:
+ case GN_FIRE_EXPANSION_SMOKE_POWDER:
+ case GN_FIRE_EXPANSION_TEAR_GAS:
case SO_EARTHGRAVE:
case SO_DIAMONDDUST:
case SO_FIRE_INSIGNIA:
@@ -10164,7 +10237,12 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
sc_start(src,src,SC_NO_SWITCH_EQUIP,100,0,skill->get_time(skill_id,skill_lv));
skill->unitsetting(src,skill_id,skill_lv,x,y,0);
break;
- case RG_GRAFFITI: /* Graffiti [Valaris] */
+ case WZ_ICEWALL:
+ flag |= 1;
+ if( skill->unitsetting(src,skill_id,skill_lv,x,y,0) )
+ map->list[src->m].setcell(src->m, x, y, CELL_NOICEWALL, true);
+ break;
+ case RG_GRAFFITI:
skill->clear_unitgroup(src);
skill->unitsetting(src,skill_id,skill_lv,x,y,0);
flag|=1;
@@ -10214,7 +10292,8 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
tmpx = x - area + rnd()%(area * 2 + 1);
tmpy = y - area + rnd()%(area * 2 + 1);
- if( i == 0 && path->search_long(NULL, src->m, src->x, src->y, tmpx, tmpy, CELL_CHKWALL) )
+ if( i == 0 && path->search_long(NULL, src->m, src->x, src->y, tmpx, tmpy, CELL_CHKWALL)
+ && !map->getcell(src->m, tmpx, tmpy, CELL_CHKLANDPROTECTOR))
clif->skill_poseffect(src,skill_id,skill_lv,tmpx,tmpy,tick);
if( i > 0 )
@@ -10268,7 +10347,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
struct mob_data *md;
// Correct info, don't change any of this! [Celest]
- md = mob->once_spawn_sub(src, src->m, x, y, status->get_name(src), class_, "", SZ_MEDIUM, AI_NONE);
+ md = mob->once_spawn_sub(src, src->m, x, y, status->get_name(src), class_, "", SZ_SMALL, AI_NONE);
if (md) {
md->master_id = src->id;
md->special_state.ai = (skill_id == AM_SPHEREMINE) ? AI_SPHERE : AI_FLORA;
@@ -10358,7 +10437,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
// Plant Cultivation [Celest]
case CR_CULTIVATION:
if (sd) {
- if( map->count_oncell(src->m,x,y,BL_CHAR) > 0 ) {
+ if( map->count_oncell(src->m,x,y,BL_CHAR,0) > 0 ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 1;
}
@@ -10366,7 +10445,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
if (rnd()%100 < 50) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
} else {
- TBL_MOB* md = mob->once_spawn_sub(src, src->m, x, y, "--ja--",(skill_lv < 2 ? 1084+rnd()%2 : 1078+rnd()%6),"", SZ_MEDIUM, AI_NONE);
+ TBL_MOB* md = mob->once_spawn_sub(src, src->m, x, y, "--ja--",(skill_lv < 2 ? 1084+rnd()%2 : 1078+rnd()%6),"", SZ_SMALL, AI_NONE);
int i;
if (!md) break;
if ((i = skill->get_time(skill_id, skill_lv)) > 0)
@@ -10408,7 +10487,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
sc_start(src,src,type,100,skill_lv,skill->get_time2(skill_id,skill_lv));
break;
- case AM_RESURRECTHOMUN: // [orn]
+ case AM_RESURRECTHOMUN: // [orn]
if (sd) {
if (!homun->ressurect(sd, 20*skill_lv, x, y)) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
@@ -10513,7 +10592,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
int class_ = 2042;
struct mob_data *md;
- md = mob->once_spawn_sub(src, src->m, x, y, status->get_name(src), class_, "", SZ_MEDIUM, AI_NONE);
+ md = mob->once_spawn_sub(src, src->m, x, y, status->get_name(src), class_, "", SZ_SMALL, AI_NONE);
if( md ) {
md->master_id = src->id;
md->special_state.ai = AI_FLORA;
@@ -10577,42 +10656,27 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case GN_CRAZYWEED:
{
int area = skill->get_splash(skill_id, skill_lv);
- short tmpx = 0, tmpy = 0, x1 = 0, y1 = 0;
for( r = 0; r < 3 + (skill_lv>>1); r++ ) {
// Creates a random Cell in the Splash Area
- tmpx = x - area + rnd()%(area * 2 + 1);
- tmpy = y - area + rnd()%(area * 2 + 1);
-
- if( r > 0 )
- skill->addtimerskill(src,tick+r*250,0,tmpx,tmpy,GN_CRAZYWEED,skill_lv,(x1<<16)|y1,flag);
+ int tmpx = x - area + rnd()%(area * 2 + 1);
+ int tmpy = y - area + rnd()%(area * 2 + 1);
- x1 = tmpx;
- y1 = tmpy;
+ skill->addtimerskill(src,tick+r*250,0,tmpx,tmpy,GN_CRAZYWEED_ATK,skill_lv,-1,0);
}
-
- skill->addtimerskill(src,tick+r*250,0,tmpx,tmpy,GN_CRAZYWEED,skill_lv,-1,flag);
}
break;
- case GN_CRAZYWEED_ATK: {
- int dummy = 1;
- //Enable if any unique animation gets added to this skill ID in the future. [Rytech]
- //clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
- r = skill->get_splash(skill_id, skill_lv);
- map->foreachinarea(skill->cell_overlap, src->m, x-r, y-r, x+r, y+r, BL_SKILL, skill_id, &dummy, src);
- map->foreachinarea(skill->area_sub, src->m, x-r, y-r, x+r, y+r, BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill->castend_damage_id);
- }
- break;
case GN_FIRE_EXPANSION: {
int i;
+ int aciddemocast = 5;//If player doesent know Acid Demonstration or knows level 5 or lower, effect 5 will cast level 5 Acid Demo.
struct unit_data *ud = unit->bl2ud(src);
if( !ud ) break;
for( i = 0; i < MAX_SKILLUNITGROUP && ud->skillunit[i]; i ++ ) {
if( ud->skillunit[i]->skill_id == GN_DEMONIC_FIRE &&
- distance_xy(x, y, ud->skillunit[i]->unit->bl.x, ud->skillunit[i]->unit->bl.y) < 4 ) {
+ distance_xy(x, y, ud->skillunit[i]->unit->bl.x, ud->skillunit[i]->unit->bl.y) < 3 ) {
switch( skill_lv ) {
case 3:
ud->skillunit[i]->unit_id = UNT_FIRE_EXPANSION_SMOKE_POWDER;
@@ -10622,11 +10686,13 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
ud->skillunit[i]->unit_id = UNT_FIRE_EXPANSION_TEAR_GAS;
clif->changetraplook(&ud->skillunit[i]->unit->bl, UNT_FIRE_EXPANSION_TEAR_GAS);
break;
- case 5:
+ case 5:// If player knows a level of Acid Demonstration greater then 5, that level will be casted.
+ if ( pc->checkskill(sd, CR_ACIDDEMONSTRATION) > 5 )
+ aciddemocast = pc->checkskill(sd, CR_ACIDDEMONSTRATION);
map->foreachinarea(skill->area_sub, src->m,
- ud->skillunit[i]->unit->bl.x - 3, ud->skillunit[i]->unit->bl.y - 3,
- ud->skillunit[i]->unit->bl.x + 3, ud->skillunit[i]->unit->bl.y + 3, BL_CHAR,
- src, CR_ACIDDEMONSTRATION, sd ? pc->checkskill(sd, CR_ACIDDEMONSTRATION) : skill_lv, tick, flag|BCT_ENEMY|1|SD_LEVEL, skill->castend_damage_id);
+ ud->skillunit[i]->unit->bl.x - 2, ud->skillunit[i]->unit->bl.y - 2,
+ ud->skillunit[i]->unit->bl.x + 2, ud->skillunit[i]->unit->bl.y + 2, BL_CHAR,
+ src, CR_ACIDDEMONSTRATION, aciddemocast, tick, flag|BCT_ENEMY|1|SD_LEVEL, skill->castend_damage_id);
skill->delunit(ud->skillunit[i]->unit);
break;
default:
@@ -10750,7 +10816,8 @@ bool skill_dance_switch(struct skill_unit* su, int flag) {
}
prevflag = flag;
- if( !flag ) { //Transform
+ if( !flag ) {
+ //Transform
uint16 skill_id = su->val2&UF_SONG ? BA_DISSONANCE : DC_UGLYDANCE;
// backup
@@ -10768,7 +10835,8 @@ bool skill_dance_switch(struct skill_unit* su, int flag) {
group->target_flag = skill->get_unit_target(skill_id);
group->bl_flag = skill->get_unit_bl_target(skill_id);
group->interval = skill->get_unit_interval(skill_id);
- } else { //Restore
+ } else {
+ //Restore
group->skill_id = backup.skill_id;
group->skill_lv = backup.skill_lv;
group->unit_id = backup.unit_id;
@@ -10779,28 +10847,6 @@ bool skill_dance_switch(struct skill_unit* su, int flag) {
return true;
}
-/**
- * Upon Ice Wall cast it checks all nearby mobs to find any who may be blocked by the IW
- **/
-int skill_icewall_block(struct block_list *bl,va_list ap) {
- struct block_list *target = NULL;
- struct mob_data *md = ((TBL_MOB*)bl);
-
- nullpo_ret(bl);
- nullpo_ret(md);
- if( !md->target_id || ( target = map->id2bl(md->target_id) ) == NULL )
- return 0;
-
- if( path->search_long(NULL,bl->m,bl->x,bl->y,target->x,target->y,CELL_CHKICEWALL) )
- return 0;
-
- if( !check_distance_bl(bl, target, status_get_range(bl) ) ) {
- mob->unlocktarget(md,timer->gettick());
- mob_stop_walking(md,1);
- }
-
- return 0;
-}
/*==========================================
* Initializes and sets a ground skill.
* flag&1 is used to determine when the skill 'morphs' (Warp portal becomes active, or Fire Pillar becomes active)
@@ -10835,7 +10881,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
sd = BL_CAST(BL_PC, src);
st = status->get_status_data(src);
- sc = status->get_sc(src); // for traps, firewall and fogwall - celest
+ sc = status->get_sc(src); // for traps, firewall and fogwall - celest
switch( skill_id ) {
case SO_ELEMENTAL_SHIELD:
@@ -10862,10 +10908,10 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
case AL_WARP:
val1=skill_lv+6;
- if(!(flag&1))
+ if(!(flag&1)) {
limit=2000;
- else // previous implementation (not used anymore)
- { //Warp Portal morphing to active mode, extract relevant data from src. [Skotlex]
+ } else { // previous implementation (not used anymore)
+ //Warp Portal morphing to active mode, extract relevant data from src. [Skotlex]
if( src->type != BL_SKILL ) return NULL;
group = ((TBL_SKILL*)src)->group;
src = map->id2bl(group->src_id);
@@ -10890,7 +10936,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
limit=1000;
val1=skill_lv+2;
break;
- case WZ_QUAGMIRE: //The target changes to "all" if used in a gvg map. [Skotlex]
+ case WZ_QUAGMIRE: //The target changes to "all" if used in a gvg map. [Skotlex]
case AM_DEMONSTRATION:
case GN_HELLS_PLANT:
if( skill_id == GN_HELLS_PLANT && map->getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) )
@@ -10944,17 +10990,18 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
case SA_VIOLENTGALE:
{
struct skill_unit_group *old_sg;
- if ((old_sg = skill->locate_element_field(src)) != NULL)
- { //HelloKitty confirmed that these are interchangeable,
+ if ((old_sg = skill->locate_element_field(src)) != NULL) {
+ //HelloKitty confirmed that these are interchangeable,
//so you can change element and not consume gemstones.
- if ((
- old_sg->skill_id == SA_VOLCANO ||
- old_sg->skill_id == SA_DELUGE ||
- old_sg->skill_id == SA_VIOLENTGALE
- ) && old_sg->limit > 0)
- { //Use the previous limit (minus the elapsed time) [Skotlex]
+ if (( old_sg->skill_id == SA_VOLCANO
+ || old_sg->skill_id == SA_DELUGE
+ || old_sg->skill_id == SA_VIOLENTGALE
+ )
+ && old_sg->limit > 0
+ ) {
+ //Use the previous limit (minus the elapsed time) [Skotlex]
limit = old_sg->limit - DIFF_TICK32(timer->gettick(), old_sg->tick);
- if (limit < 0) //This can happen...
+ if (limit < 0) //This can happen...
limit = skill->get_time(skill_id,skill_lv);
}
skill->clear_group(src,1);
@@ -11010,22 +11057,24 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
val1 += pc->checkskill(sd,BA_MUSICALLESSON);
break;
case DC_SERVICEFORYOU:
- val1 = 15+skill_lv+(st->int_/10); // MaxSP percent increase TO-DO: this INT bonus value is guessed
+ val1 = 15+skill_lv+(st->int_/10); // MaxSP percent increase
val2 = 20+3*skill_lv+(st->int_/10); // SP cost reduction
if(sd){
- val1 += pc->checkskill(sd,DC_DANCINGLESSON); //TO-DO This bonus value is guessed
- val2 += pc->checkskill(sd,DC_DANCINGLESSON); //TO-DO Should be half this value
+ val1 += pc->checkskill(sd,DC_DANCINGLESSON) / 2;
+ val2 += pc->checkskill(sd,DC_DANCINGLESSON) / 2;
}
break;
case BA_ASSASSINCROSS:
-#ifdef RENEWAL
- val1 = 10 + skill_lv + (st->agi/10); // ASPD increase
if(sd)
- val1 += 4*pc->checkskill(sd,BA_MUSICALLESSON);
+ val1 = pc->checkskill(sd,BA_MUSICALLESSON) / 2;
+#ifdef RENEWAL
+ // This formula was taken from a RE calculator
+ // and the changes published on irowiki
+ // Luckily, official tests show it's the right one
+ val1 += skill_lv + (st->agi/20);
#else
- val1 = 100+(10*skill_lv)+(st->agi/10); // ASPD increase
- if(sd)
- val1 += 5*pc->checkskill(sd,BA_MUSICALLESSON);
+ val1 += 10 + skill_lv + (st->agi/10); // ASPD increase
+ val1 *= 10; // ASPD works with 1000 as 100%
#endif
break;
case DC_FORTUNEKISS:
@@ -11036,22 +11085,22 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
break;
case BD_DRUMBATTLEFIELD:
#ifdef RENEWAL
- val1 = (skill_lv+5)*25; //Watk increase
- val2 = skill_lv*10; //Def increase
+ val1 = (skill_lv+5)*25; //Watk increase
+ val2 = skill_lv*10; //Def increase
#else
- val1 = (skill_lv+1)*25; //Watk increase
- val2 = (skill_lv+1)*2; //Def increase
+ val1 = (skill_lv+1)*25; //Watk increase
+ val2 = (skill_lv+1)*2; //Def increase
#endif
break;
case BD_RINGNIBELUNGEN:
- val1 = (skill_lv+2)*25; //Watk increase
+ val1 = (skill_lv+2)*25; //Watk increase
break;
case BD_RICHMANKIM:
val1 = 25 + 11*skill_lv; //Exp increase bonus.
break;
case BD_SIEGFRIED:
- val1 = 55 + skill_lv*5; //Elemental Resistance
- val2 = skill_lv*10; //Status ailment resistance
+ val1 = 55 + skill_lv*5; //Elemental Resistance
+ val2 = skill_lv*10; //Status ailment resistance
break;
case WE_CALLPARTNER:
if (sd) val1 = sd->status.partner_id;
@@ -11141,6 +11190,10 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
case SO_WARMER:
skill->clear_group(src, 8);
break;
+ case SO_VACUUM_EXTREME:
+ val1 = x;
+ val2 = y;
+ break;
case GN_WALLOFTHORN:
if( flag&1 )
limit = 3000;
@@ -11148,13 +11201,13 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
break;
case KO_ZENKAI:
if( sd ){
- ARR_FIND(1, 6, i, sd->charm[i] > 0);
- if( i < 5 ){
- val1 = sd->charm[i]; // no. of aura
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ if( i < SPIRITS_TYPE_SPHERE ){
+ val1 = sd->spiritcharm[i]; // no. of aura
val2 = i; // aura type
limit += val1 * 1000;
subunt = i - 1;
- pc->del_charm(sd, sd->charm[i], i);
+ pc->del_charm(sd, sd->spiritcharm[i], i);
}
}
break;
@@ -11170,7 +11223,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
group->state.song_dance = (unit_flag&(UF_DANCE|UF_SONG)?1:0)|(unit_flag&UF_ENSEMBLE?2:0); //Signals if this is a song/dance/duet
group->state.guildaura = ( skill_id >= GD_LEADERSHIP && skill_id <= GD_HAWKEYES )?1:0;
group->item_id = req_item;
- //if tick is greater than current, do not invoke onplace function just yet. [Skotlex]
+ //if tick is greater than current, do not invoke onplace function just yet. [Skotlex]
if (DIFF_TICK(group->tick, timer->gettick()) > SKILLUNITTIMER_INTERVAL)
active_flag = 0;
@@ -11266,8 +11319,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
if (skill->get_unit_flag(skill_id) & UF_RANGEDSINGLEUNIT && i == (layout->count / 2))
val2 |= UF_RANGEDSINGLEUNIT; // center.
- if( range <= 0 )
- map->foreachincell(skill->cell_overlap,src->m,ux,uy,BL_SKILL,skill_id, &alive, src);
+ map->foreachincell(skill->cell_overlap,src->m,ux,uy,BL_SKILL,skill_id, &alive, src);
if( !alive )
continue;
@@ -11294,9 +11346,6 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
//success, unit created.
switch( skill_id ) {
- case WZ_ICEWALL:
- map->foreachinrange(skill->icewall_block, src, AREA_SIZE, BL_MOB);
- break;
case NJ_TATAMIGAESHI: //Store number of tiles.
group->val1 = group->alive_count;
break;
@@ -11325,7 +11374,7 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
nullpo_ret(sg=src->group);
nullpo_ret(ss=map->id2bl(sg->src_id));
- if( skill->get_type(sg->skill_id) == BF_MAGIC && map->getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR) && sg->skill_id != SA_LANDPROTECTOR )
+ if( skill->get_type(sg->skill_id) == BF_MAGIC && map->getcell(src->bl.m, src->bl.x, src->bl.y, CELL_CHKLANDPROTECTOR) && sg->skill_id != SA_LANDPROTECTOR )
return 0; //AoE skills are ineffective. [Skotlex]
sc = status->get_sc(bl);
@@ -11335,6 +11384,9 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
if (sc && sc->data[SC_VACUUM_EXTREME] && map->getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR))
status_change_end(bl, SC_VACUUM_EXTREME, INVALID_TIMER);
+ if ( sc && sc->data[SC_HOVERING] && ( sg->skill_id == SO_VACUUM_EXTREME || sg->skill_id == SO_ELECTRICWALK || sg->skill_id == SO_FIREWALK || sg->skill_id == WZ_QUAGMIRE ) )
+ return 0;
+
type = status->skill2sc(sg->skill_id);
sce = (sc && type != -1)?sc->data[type]:NULL;
skill_id = sg->skill_id; //In case the group is deleted, we need to return the correct skill id, still.
@@ -11346,7 +11398,7 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
break;
} else if( sc && battle->check_target(&sg->unit->bl,bl,sg->target_flag) > 0 ) {
int sec = skill->get_time2(sg->skill_id,sg->skill_lv);
- if( status->change_start(ss, bl,type,10000,sg->skill_lv,1,sg->group_id,0,sec,8) ) {
+ if( status->change_start(ss, bl,type,10000,sg->skill_lv,1,sg->group_id,0,sec,SCFLAG_FIXEDRATE) ) {
const struct TimerData* td = sc->data[type]?timer->get(sc->data[type]->timer):NULL;
if( td )
sec = DIFF_TICK32(td->tick, tick);
@@ -11444,10 +11496,10 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
if (!sce)
sc_start4(ss,bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
break;
+ case UNT_APPLEIDUN:
case UNT_WHISTLE:
case UNT_ASSASSINCROSS:
case UNT_POEMBRAGI:
- case UNT_APPLEIDUN:
case UNT_HUMMING:
case UNT_DONTFORGETME:
case UNT_FORTUNEKISS:
@@ -11458,12 +11510,13 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
if (!sc) return 0;
if (!sce)
sc_start4(ss,bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
- else if (sce->val4 == 1) {
+ else if (battle_config.song_timer_reset && sce->val4 == 1) {
//Readjust timers since the effect will not last long.
sce->val4 = 0;
timer->delete(sce->timer, status->change_timer);
sce->timer = timer->add(tick+sg->limit, status->change_timer, bl->id, type);
}
+
break;
case UNT_FOGWALL:
@@ -11480,12 +11533,13 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
sc_start4(ss,bl,type,100,sg->skill_lv,0,BCT_ENEMY,sg->group_id,sg->limit);
break;
- // officially, icewall has no problems existing on occupied cells [ultramage]
- // case UNT_ICEWALL: //Destroy the cell. [Skotlex]
- // src->val1 = 0;
- // if(src->limit + sg->tick > tick + 700)
- // src->limit = DIFF_TICK32(tick+700,sg->tick);
- // break;
+#if 0 // officially, icewall has no problems existing on occupied cells [ultramage]
+ case UNT_ICEWALL: //Destroy the cell. [Skotlex]
+ src->val1 = 0;
+ if(src->limit + sg->tick > tick + 700)
+ src->limit = DIFF_TICK32(tick+700,sg->tick);
+ break;
+#endif // 0
case UNT_MOONLIT:
//Knockback out of area if affected char isn't in Moonlit effect
@@ -11498,7 +11552,7 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick
case UNT_WALLOFTHORN:
if( status_get_mode(bl)&MD_BOSS )
- break; // iRO Wiki says that this skill don't affect to Boss monsters.
+ break; // iRO Wiki says that this skill don't affect to Boss monsters.
if( map_flag_vs(bl->m) || bl->id == src->bl.id || battle->check_target(&src->bl,bl, BCT_ENEMY) == 1 )
skill->attack(skill->get_type(sg->skill_id), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0);
break;
@@ -11554,9 +11608,6 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
tsc = status->get_sc(bl);
ssc = status->get_sc(ss); // Status Effects for Unit caster.
- if ( tsc && tsc->data[SC_HOVERING] )
- return 0; //Under hovering characters are immune to trap and ground target skills.
-
// Maestro or Wanderer is unaffected by traps of trappers he or she charmed [SuperHulk]
if ( ssc && ssc->data[SC_SIREN] && ssc->data[SC_SIREN]->val2 == bl->id && (skill->get_inf2(sg->skill_id)&INF2_TRAP) )
return 0;
@@ -11565,6 +11616,26 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
type = status->skill2sc(sg->skill_id);
skill_id = sg->skill_id;
+ if ( tsc && tsc->data[SC_HOVERING] ) {
+ switch ( skill_id ) {
+ case HT_SKIDTRAP:
+ case HT_LANDMINE:
+ case HT_ANKLESNARE:
+ case HT_FLASHER:
+ case HT_SHOCKWAVE:
+ case HT_SANDMAN:
+ case HT_FREEZINGTRAP:
+ case HT_BLASTMINE:
+ case HT_CLAYMORETRAP:
+ case HW_GRAVITATION:
+ case SA_DELUGE:
+ case SA_VOLCANO:
+ case SA_VIOLENTGALE:
+ case NJ_SUITON:
+ return 0;
+ }
+ }
+
if (sg->interval == -1) {
switch (sg->unit_id) {
case UNT_ANKLESNARE: //These happen when a trap is splash-triggered by multiple targets on the same cell.
@@ -11586,7 +11657,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
ts->tick = tick+sg->interval;
if ((skill_id==CR_GRANDCROSS || skill_id==NPC_GRANDDARKNESS) && !battle_config.gx_allhit)
- ts->tick += sg->interval*(map->count_oncell(bl->m,bl->x,bl->y,BL_CHAR)-1);
+ ts->tick += sg->interval*(map->count_oncell(bl->m,bl->x,bl->y,BL_CHAR,0)-1);
}
switch (sg->unit_id) {
@@ -11727,7 +11798,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
case UNT_MANHOLE:
if( sg->val2 == 0 && tsc && (sg->unit_id == UNT_ANKLESNARE || bl->id != sg->src_id) ) {
int sec = skill->get_time2(sg->skill_id,sg->skill_lv);
- if( status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,sec, 8) ) {
+ if( status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,sec, SCFLAG_FIXEDRATE) ) {
const struct TimerData* td = tsc->data[type]?timer->get(tsc->data[type]->timer):NULL;
if( td )
sec = DIFF_TICK32(td->tick, tick);
@@ -11757,7 +11828,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
if( bl->id != ss->id ) {
if( status_get_mode(bl)&MD_BOSS )
break;
- if( status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id, sg->skill_lv), 8) ) {
+ if( status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id, sg->skill_lv), SCFLAG_FIXEDRATE) ) {
map->moveblock(bl, src->bl.x, src->bl.y, tick);
clif->fixpos(bl);
@@ -11770,7 +11841,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
case UNT_VENOMDUST:
if(tsc && !tsc->data[type])
- status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id,sg->skill_lv),0);
+ status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id,sg->skill_lv),SCFLAG_NONE);
break;
@@ -11822,7 +11893,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
skill->additional_effect(ss, bl, sg->skill_id, sg->skill_lv, BF_LONG|BF_SKILL|BF_MISC, ATK_DEF, tick);
break;
- case UNT_UGLYDANCE: //Ugly Dance [Skotlex]
+ case UNT_UGLYDANCE:
if (ss->id != bl->id)
skill->additional_effect(ss, bl, sg->skill_id, sg->skill_lv, BF_LONG|BF_SKILL|BF_MISC, ATK_DEF, tick);
break;
@@ -11836,20 +11907,39 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
int heal;
#ifdef RENEWAL
struct mob_data *md = BL_CAST(BL_MOB, bl);
- if( md && md->class_ == MOBID_EMPERIUM )
+ if (md && md->class_ == MOBID_EMPERIUM)
break;
#endif
- if( sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER) )
- break; // affects self only when soullinked
+ if ((sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
+ || (!(battle_config.song_timer_reset) && tsc && tsc->data[type] && tsc->data[type]->val4 == 1))
+ break;
+
heal = skill->calc_heal(ss,bl,sg->skill_id, sg->skill_lv, true);
if( tsc->data[SC_AKAITSUKI] && heal )
heal = ~heal + 1;
clif->skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
status->heal(bl, heal, 0, 0);
- break;
- }
- case UNT_TATAMIGAESHI:
+ if (!battle_config.song_timer_reset)
+ sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
+ }
+ break;
+ case UNT_POEMBRAGI:
+ case UNT_WHISTLE:
+ case UNT_ASSASSINCROSS:
+ case UNT_HUMMING:
+ case UNT_DONTFORGETME:
+ case UNT_FORTUNEKISS:
+ case UNT_SERVICEFORYOU:
+ if (battle_config.song_timer_reset
+ || (!(battle_config.song_timer_reset) && tsc && tsc->data[type] && tsc->data[type]->val4 == 1)
+ || (sg->src_id == bl->id && !(tsc && tsc->data[SC_SOULLINK] && tsc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
+ )
+ break;
+
+ sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
+ break;
+ case UNT_TATAMIGAESHI:
case UNT_DEMONSTRATION:
skill->attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
break;
@@ -12073,7 +12163,7 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
clif->fixpos(bl);
sg->val2 = bl->id;
} else
- sec = 3000; // Couldn't trap it?
+ sec = 3000; // Couldn't trap it?
sg->limit = DIFF_TICK32(tick, sg->tick) + sec;
} else if( tsc->data[SC_THORNS_TRAP] && bl->id == sg->val2 )
skill->attack(skill->get_type(GN_THORNS_TRAP), ss, ss, bl, sg->skill_id, sg->skill_lv, tick, SD_LEVEL|SD_ANIMATION);
@@ -12101,11 +12191,11 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
break;
case UNT_FIRE_EXPANSION_SMOKE_POWDER:
- sc_start(ss, bl, status->skill2sc(GN_FIRE_EXPANSION_SMOKE_POWDER), 100, sg->skill_lv, 1000);
+ sc_start(ss, bl, SC_FIRE_EXPANSION_SMOKE_POWDER, 100, sg->skill_lv, 1000);
break;
case UNT_FIRE_EXPANSION_TEAR_GAS:
- sc_start(ss, bl, status->skill2sc(GN_FIRE_EXPANSION_TEAR_GAS), 100, sg->skill_lv, 1000);
+ sc_start(ss, bl, SC_FIRE_EXPANSION_TEAR_GAS, 100, sg->skill_lv, 1000);
break;
case UNT_HELLS_PLANT:
@@ -12117,12 +12207,13 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
case UNT_CLOUD_KILL:
if(tsc && !tsc->data[type])
- status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id,sg->skill_lv),8);
+ status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id,sg->skill_lv),SCFLAG_FIXEDRATE);
skill->attack(skill->get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
break;
case UNT_WARMER:
- if( bl->type == BL_PC && !battle->check_undead(tstatus->race, tstatus->def_ele) && tstatus->race != RC_DEMON ) {
+ {
+ // It has effect on everything, including monsters, undead property and demon
int hp = 0;
if( ssc && ssc->data[SC_HEATER_OPTION] )
hp = tstatus->max_hp * 3 * sg->skill_lv / 100;
@@ -12134,10 +12225,9 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
if( tsc && tsc->data[SC_AKAITSUKI] && hp )
hp = ~hp + 1;
status->heal(bl, hp, 0, 0);
- sc_start(ss, bl, SC_WARMER, 100, sg->skill_lv, skill->get_time2(sg->skill_id,sg->skill_lv));
+ sc_start(ss, bl, type, 100, sg->skill_lv, sg->interval + 100);
}
break;
-
case UNT_FIRE_INSIGNIA:
case UNT_WATER_INSIGNIA:
case UNT_WIND_INSIGNIA:
@@ -12163,11 +12253,18 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
break;
case UNT_VACUUM_EXTREME:
- if ( tsc && tsc->data[SC_HALLUCINATIONWALK] ) {
+ if (tsc && (tsc->data[SC_HALLUCINATIONWALK] || tsc->data[SC_VACUUM_EXTREME])) {
return 0;
} else {
sg->limit -= 100 * tstatus->str/20;
sc_start(ss, bl, SC_VACUUM_EXTREME, 100, sg->skill_lv, sg->limit);
+
+ if ( !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground && !is_boss(bl) ) {
+ if (unit->movepos(bl, sg->val1, sg->val2, 0, 0)) {
+ clif->slide(bl, sg->val1, sg->val2);
+ clif->fixpos(bl);
+ }
+ }
}
break;
@@ -12212,7 +12309,8 @@ int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, int6
case UNT_POISON_MIST:
skill->attack(BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0);
- status->change_start(ss, bl, SC_BLIND, rnd() % 100 > sg->skill_lv * 10, sg->skill_lv, sg->skill_id, 0, 0, skill->get_time2(sg->skill_id, sg->skill_lv), 2|8);
+ status->change_start(ss, bl, SC_BLIND, rnd() % 100 > sg->skill_lv * 10, sg->skill_lv, sg->skill_id, 0, 0,
+ skill->get_time2(sg->skill_id, sg->skill_lv), SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
break;
}
@@ -12245,10 +12343,8 @@ int skill_unit_onout(struct skill_unit *src, struct block_list *bl, int64 tick)
switch(sg->unit_id){
case UNT_SAFETYWALL:
case UNT_PNEUMA:
- case UNT_EPICLESIS://Arch Bishop
case UNT_NEUTRALBARRIER:
case UNT_STEALTHFIELD:
- case UNT_WARMER:
if (sce)
status_change_end(bl, type, INVALID_TIMER);
break;
@@ -12257,7 +12353,8 @@ int skill_unit_onout(struct skill_unit *src, struct block_list *bl, int64 tick)
if( sce && sce->val4 == src->bl.id )
status_change_end(bl, type, INVALID_TIMER);
break;
- case UNT_HERMODE: //Clear Hermode if the owner moved.
+ case UNT_HERMODE:
+ //Clear Hermode if the owner moved.
if (sce && sce->val3 == BCT_SELF && sce->val4 == sg->group_id)
status_change_end(bl, type, INVALID_TIMER);
break;
@@ -12273,6 +12370,16 @@ int skill_unit_onout(struct skill_unit *src, struct block_list *bl, int64 tick)
}
}
break;
+ case UNT_WHISTLE:
+ case UNT_ASSASSINCROSS:
+ case UNT_POEMBRAGI:
+ case UNT_APPLEIDUN:
+ case UNT_HUMMING:
+ case UNT_DONTFORGETME:
+ case UNT_FORTUNEKISS:
+ case UNT_SERVICEFORYOU:
+ if (sg->src_id==bl->id && !(sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_BARDDANCER))
+ return -1;
}
return sg->skill_id;
}
@@ -12308,8 +12415,8 @@ int skill_unit_onleft(uint16 skill_id, struct block_list *bl, int64 tick) {
case BD_ROKISWEIL:
case BD_INTOABYSS:
case BD_SIEGFRIED:
- if(sc && sc->data[SC_DANCING] && (sc->data[SC_DANCING]->val1&0xFFFF) == skill_id)
- { //Check if you just stepped out of your ensemble skill to cancel dancing. [Skotlex]
+ if(sc && sc->data[SC_DANCING] && (sc->data[SC_DANCING]->val1&0xFFFF) == skill_id) {
+ //Check if you just stepped out of your ensemble skill to cancel dancing. [Skotlex]
//We don't check for SC_LONGING because someone could always have knocked you back and out of the song/dance.
//FIXME: This code is not perfect, it doesn't checks for the real ensemble's owner,
//it only checks if you are doing the same ensemble. So if there's two chars doing an ensemble
@@ -12350,7 +12457,9 @@ int skill_unit_onleft(uint16 skill_id, struct block_list *bl, int64 tick) {
case DC_DONTFORGETME:
case DC_FORTUNEKISS:
case DC_SERVICEFORYOU:
- if (sce) {
+ if ((battle_config.song_timer_reset && sce) // athena style
+ || (!battle_config.song_timer_reset && sce && sce->val4 != 1)
+ ) {
timer->delete(sce->timer, status->change_timer);
//NOTE: It'd be nice if we could get the skill_lv for a more accurate extra time, but alas...
//not possible on our current implementation.
@@ -12413,11 +12522,11 @@ int skill_unit_effect(struct block_list* bl, va_list ap) {
} else {
if( flag&1 )
skill->unit_onplace(su,bl,tick);
- else
- skill->unit_onout(su,bl,tick);
+ else if (skill->unit_onout(su,bl,tick) == -1)
+ return 0; // Don't let a Bard/Dancer update their own song timer
if( flag&4 )
- skill->unit_onleft(skill_id, bl, tick);
+ skill->unit_onleft(skill_id, bl, tick);
}
if( dissonance ) skill->dance_switch(su, 1);
@@ -12467,7 +12576,7 @@ int skill_check_condition_char_sub (struct block_list *bl, va_list ap) {
struct block_list *src;
struct map_session_data *sd;
struct map_session_data *tsd;
- int *p_sd; //Contains the list of characters found.
+ int *p_sd; //Contains the list of characters found.
nullpo_ret(bl);
nullpo_ret(tsd=(struct map_session_data*)bl);
@@ -12558,7 +12667,8 @@ int skill_check_pc_partner (struct map_session_data *sd, uint16 skill_id, uint16
if (!battle_config.player_skill_partner_check || pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL))
return is_chorus ? MAX_PARTY : 99; //As if there were infinite partners.
- if (cast_flag) { //Execute the skill on the partners.
+ if (cast_flag) {
+ //Execute the skill on the partners.
struct map_session_data* tsd;
switch (skill_id) {
case PR_BENEDICTIO:
@@ -12631,7 +12741,7 @@ int skill_isammotype (struct map_session_data *sd, int skill_id)
(sd->status.weapon == W_BOW || (sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE)) &&
skill_id != HT_PHANTASMIC &&
skill->get_type(skill_id) == BF_WEAPON &&
- !(skill->get_nk(skill_id)&NK_NO_DAMAGE) &&
+ !(skill->get_nk(skill_id)&NK_NO_DAMAGE) &&
!skill->get_spiritball(skill_id,1) //Assume spirit spheres are used as ammo instead.
);
}
@@ -12674,8 +12784,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
if (sd->chatID) return 0;
- if( pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill_id )
- { //GMs don't override the skillItem check, otherwise they can use items without them being consumed! [Skotlex]
+ if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill_id) {
+ //GMs don't override the skillItem check, otherwise they can use items without them being consumed! [Skotlex]
sd->state.arrow_atk = skill->get_ammotype(skill_id)?1:0; //Need to do arrow state check.
sd->spiritball_old = sd->spiritball; //Need to do Spiritball check.
return 1;
@@ -12717,8 +12827,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
sd->inventory_data[i] == NULL ||
!sd->inventory_data[i]->flag.delay_consume ||
sd->status.inventory[i].amount < 1
- )
- { //Something went wrong, item exploit?
+ ) {
+ //Something went wrong, item exploit?
sd->itemid = sd->itemindex = -1;
return 0;
}
@@ -12794,6 +12904,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
case RA_WUGSTRIKE:
// Other
case BS_GREED:
+ case ALL_FULL_THROTTLE:
break;
default: // in official there is no message.
return 0;
@@ -12803,12 +12914,40 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
// Check the skills that can be used whiled using mado
if( pc_ismadogear(sd) ) {
- if( !(skill_id > NC_MADOLICENCE && skill_id <= NC_DISJOINT)
- && skill_id != NC_MAGMA_ERUPTION
- && skill_id != BS_GREED ) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_MADOGEAR,0);
- return 0;
- }
+ switch ( skill_id ) {
+ case BS_GREED:
+ case NC_BOOSTKNUCKLE:
+ case NC_PILEBUNKER:
+ case NC_VULCANARM:
+ case NC_FLAMELAUNCHER:
+ case NC_COLDSLOWER:
+ case NC_ARMSCANNON:
+ case NC_ACCELERATION:
+ case NC_HOVERING:
+ case NC_F_SIDESLIDE:
+ case NC_B_SIDESLIDE:
+ case NC_SELFDESTRUCTION:
+ case NC_SHAPESHIFT:
+ case NC_EMERGENCYCOOL:
+ case NC_INFRAREDSCAN:
+ case NC_ANALYZE:
+ case NC_MAGNETICFIELD:
+ case NC_NEUTRALBARRIER:
+ case NC_STEALTHFIELD:
+ case NC_REPAIR:
+ case NC_AXEBOOMERANG:
+ case NC_POWERSWING:
+ case NC_AXETORNADO:
+ case NC_SILVERSNIPER:
+ case NC_MAGICDECOY:
+ case NC_DISJOINT:
+ case NC_MAGMA_ERUPTION:
+ case ALL_FULL_THROTTLE:
+ case NC_MAGMA_ERUPTION_DOTDAMAGE:
+ break;
+ default:
+ return 0;
+ }
}
if( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL )
@@ -12895,12 +13034,13 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
}
return 0;
case MO_EXTREMITYFIST:
- // if(sc && sc->data[SC_EXTREMITYFIST]) //To disable Asura during the 5 min skill block uncomment this...
- // return 0;
- if( sc && (sc->data[SC_BLADESTOP] || sc->data[SC_CURSEDCIRCLE_ATKER]) )
+#if 0 //To disable Asura during the 5 min skill block uncomment this block...
+ if(sc && sc->data[SC_EXTREMITYFIST])
+ return 0;
+#endif // 0
+ if (sc && (sc->data[SC_BLADESTOP] || sc->data[SC_CURSEDCIRCLE_ATKER]))
break;
- if( sc && sc->data[SC_COMBOATTACK] )
- {
+ if (sc && sc->data[SC_COMBOATTACK]) {
switch(sc->data[SC_COMBOATTACK]->val1) {
case MO_COMBOFINISH:
case CH_TIGERFIST:
@@ -12909,9 +13049,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
default:
return 0;
}
- }
- else if( !unit->can_move(&sd->bl) )
- { //Placed here as ST_MOVE_ENABLE should not apply if rooted or on a combo. [Skotlex]
+ } else if (!unit->can_move(&sd->bl)) {
+ //Placed here as ST_MOVE_ENABLE should not apply if rooted or on a combo. [Skotlex]
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0;
}
@@ -12946,14 +13085,15 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
if(!(sc && sc->data[SC_COMBOATTACK]) || sc->data[SC_COMBOATTACK]->val1 == TK_JUMPKICK)
return 0; //Combo needs to be ready
- if (sc->data[SC_COMBOATTACK]->val3) { //Kick chain
+ if (sc->data[SC_COMBOATTACK]->val3) { //Kick chain
//Do not repeat a kick.
if (sc->data[SC_COMBOATTACK]->val3 != skill_id)
break;
status_change_end(&sd->bl, SC_COMBOATTACK, INVALID_TIMER);
return 0;
}
- if(sc->data[SC_COMBOATTACK]->val1 != skill_id && !( sd && sd->status.base_level >= 90 && pc->famerank(sd->status.char_id, MAPID_TAEKWON) )) { //Cancel combo wait.
+ if(sc->data[SC_COMBOATTACK]->val1 != skill_id && !( sd && sd->status.base_level >= 90 && pc->famerank(sd->status.char_id, MAPID_TAEKWON) )) {
+ //Cancel combo wait.
unit->cancel_combo(&sd->bl);
return 0;
}
@@ -13142,17 +13282,6 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
}
}
break;
- /**
- * Keeping as a note:
- * Bug Report #17 provides a link to a sep-2011 changelog that shows this requirement was removed
- **/
- //case AB_LAUDAAGNUS:
- //case AB_LAUDARAMUS:
- // if( !sd->status.party_id ) {
- // clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- // return 0;
- // }
- // break;
case AB_ADORAMUS:
/**
@@ -13269,19 +13398,16 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
}
break;
case LG_RAYOFGENESIS:
+ case LG_HESPERUSLIT:
if( sc && sc->data[SC_INSPIRATION] )
- return 1; // Don't check for partner.
+ return 1; // Don't check for partner.
if( !(sc && sc->data[SC_BANDING]) ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL,0);
return 0;
- } else if( skill->check_pc_partner(sd,skill_id,&skill_lv,skill->get_range(skill_id,skill_lv),0) < 1 )
- return 0; // Just fails, no msg here.
- break;
- case LG_HESPERUSLIT:
- if( !sc || !sc->data[SC_BANDING] ) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- return 0;
}
+ if( sc->data[SC_BANDING] &&
+ sc->data[SC_BANDING]->val2 < (skill_id == LG_RAYOFGENESIS ? 2 : 3) )
+ return 0; // Just fails, no msg here.
break;
case SR_FALLENEMPIRE:
if( sc && sc->data[SC_COMBOATTACK] ) {
@@ -13340,8 +13466,16 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 0;
}
break;
+ case NC_HOVERING:
+ if (( sd->equip_index[EQI_ACC_L] >= 0 && sd->status.inventory[sd->equip_index[EQI_ACC_L]].nameid == ITEMID_HOVERING_BOOSTER ) ||
+ ( sd->equip_index[EQI_ACC_R] >= 0 && sd->status.inventory[sd->equip_index[EQI_ACC_R]].nameid == ITEMID_HOVERING_BOOSTER ));
+ else {
+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ return 0;
+ }
+ break;
case SO_FIREWALK:
- case SO_ELECTRICWALK: // Can't be casted until you've walked all cells.
+ case SO_ELECTRICWALK: // Can't be casted until you've walked all cells.
if( sc && sc->data[SC_PROPERTYWALK] &&
sc->data[SC_PROPERTYWALK]->val3 < skill->get_maxcount(sc->data[SC_PROPERTYWALK]->val1,sc->data[SC_PROPERTYWALK]->val2) ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
@@ -13372,7 +13506,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
case KO_DOHU_KOUKAI:
{
int ttype = skill->get_ele(skill_id, skill_lv);
- if( sd->charm[ttype] >= 10 ){
+ if( sd->spiritcharm[ttype] >= MAX_SPIRITCHARM ){
clif->skill_fail(sd, skill_id, USESKILL_FAIL_SUMMON, 0);
return 0;
}
@@ -13382,8 +13516,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
case KO_ZENKAI:
{
int i;
- ARR_FIND(1, 6, i, sd->charm[i] > 0); // FIXME: 4 or 6?
- if( i > 4 ) {
+ ARR_FIND(SPIRITS_TYPE_CHARM_WATER, SPIRITS_TYPE_SPHERE, i, sd->spiritcharm[i] > 0);
+ if( i >= SPIRITS_TYPE_SPHERE ) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_SUMMON,0);
return 0;
}
@@ -13411,7 +13545,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
}
break;
case ST_RIDING:
- if(!pc_isriding(sd) && !pc_isridingdragon(sd)) {
+ if (!pc_isridingpeco(sd) && !pc_isridingdragon(sd)) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0;
}
@@ -13526,7 +13660,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 0;
}
case ST_PECO:
- if(!pc_isriding(sd)) {
+ if (!pc_isridingpeco(sd)) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0;
}
@@ -13560,12 +13694,14 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 0;
}
+#if 0
// There's no need to check if the skill is part of a combo if it's
// already been checked before, see unit_skilluse_id2 [Panikon]
// Note that if this check is read part of issue:8047 will reappear!
- //if( sd->sc.data[SC_COMBOATTACK] && !skill->is_combo(skill_id ) )
- // return 0;
-
+ if( sd->sc.data[SC_COMBOATTACK] && !skill->is_combo(skill_id ) )
+ return 0;
+#endif // 0
+
return 1;
}
@@ -13890,7 +14026,7 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
idx = skill->get_index(skill_id);
if( idx == 0 ) // invalid skill id
- return req;
+ return req;
if( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL )
return req;
@@ -13971,7 +14107,7 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
continue;
break;
case WZ_FIREPILLAR: // celest
- if (skill_lv <= 5) // no gems required at level 1-5
+ if (skill_lv <= 5) // no gems required at level 1-5
continue;
break;
case AB_ADORAMUS:
@@ -14002,10 +14138,9 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
req.itemid[i] = skill->db[idx].itemid[i];
req.amount[i] = skill->db[idx].amount[i];
- if( itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN )
- {
- if( sd->special_state.no_gemstone )
- { // All gem skills except Hocus Pocus and Ganbantein can cast for free with Mistress card [helvetica]
+ if (itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN) {
+ if (sd->special_state.no_gemstone) {
+ // All gem skills except Hocus Pocus and Ganbantein can cast for free with Mistress card [helvetica]
if( skill_id != SA_ABRACADABRA )
req.itemid[i] = req.amount[i] = 0;
else if( --req.amount[i] < 1 )
@@ -14117,7 +14252,7 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
case CH_TIGERFIST:
req.spiritball = 3;
break;
- case CH_CHAINCRUSH: //It should consume whatever is left as long as it's at least 1.
+ case CH_CHAINCRUSH: //It should consume whatever is left as long as it's at least 1.
req.spiritball = sd->spiritball?sd->spiritball:1;
break;
}
@@ -14167,10 +14302,10 @@ int skill_castfix (struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
// calculate base cast time (reduced by dex)
if( !(skill->get_castnodex(skill_id, skill_lv)&1) ) {
int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
- if( scale > 0 ) // not instant cast
+ if( scale > 0 ) // not instant cast
time = time * scale / battle_config.castrate_dex_scale;
else
- return 0; // instant cast
+ return 0; // instant cast
}
// calculate cast time reduced by item/card bonuses
@@ -14195,9 +14330,9 @@ int skill_castfix (struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
if (battle_config.cast_rate != 100)
time = time * battle_config.cast_rate / 100;
// return final cast time
- time = max(time, 0);
+ time = max(time, 0);
-// ShowInfo("Castime castfix = %d\n",time);
+ //ShowInfo("Castime castfix = %d\n",time);
return time;
}
@@ -14279,9 +14414,8 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
break;
}
for( i = 0; i < ARRAYLENGTH(sd->skillfixcastrate) && sd->skillfixcastrate[i].id; i++ )
-
if( sd->skillfixcastrate[i].id == skill_id ){ // bonus2 bFixedCastrate
- fixcast_r = sd->skillfixcastrate[i].val; // just speculation
+ fixcast_r = sd->skillfixcastrate[i].val;
break;
}
}
@@ -14383,10 +14517,11 @@ int skill_delay_fix (struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
return battle_config.min_skill_delay_limit;
if (time < 0)
- time = -time + status_get_amotion(bl); // If set to <0, add to attack motion.
+ time = -time + status_get_amotion(bl); // If set to <0, add to attack motion.
// Delay reductions
- switch (skill_id) { //Monk combo skills have their delay reduced by agi/dex.
+ switch (skill_id) {
+ //Monk combo skills have their delay reduced by agi/dex.
case MO_TRIPLEATTACK:
case MO_CHAINCOMBO:
case MO_COMBOFINISH:
@@ -14401,16 +14536,16 @@ int skill_delay_fix (struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
time = 0; // There is no Delay on Basilica creation, only on cancel
break;
default:
- if (battle_config.delay_dependon_dex && !(delaynodex&1))
- { // if skill delay is allowed to be reduced by dex
+ if (battle_config.delay_dependon_dex && !(delaynodex&1)) {
+ // if skill delay is allowed to be reduced by dex
int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
if (scale > 0)
time = time * scale / battle_config.castrate_dex_scale;
else //To be capped later to minimum.
time = 0;
}
- if (battle_config.delay_dependon_agi && !(delaynodex&1))
- { // if skill delay is allowed to be reduced by agi
+ if (battle_config.delay_dependon_agi && !(delaynodex&1)) {
+ // if skill delay is allowed to be reduced by agi
int scale = battle_config.castrate_dex_scale - status_get_agi(bl);
if (scale > 0)
time = time * scale / battle_config.castrate_dex_scale;
@@ -14721,7 +14856,8 @@ void skill_weaponrefine (struct map_session_data *sd, int idx)
if(item->nameid > 0 && ditem->type == IT_WEAPON)
{
- if( ditem->flag.no_refine ){ // if the item isn't refinable
+ if( ditem->flag.no_refine ) {
+ // if the item isn't refinable
clif->skill_fail(sd,sd->menuskill_id,USESKILL_FAIL_LEVEL,0);
return;
}
@@ -14802,7 +14938,7 @@ int skill_autospell (struct map_session_data *sd, uint16 skill_id)
if(!skill_lv || !lv) return 0; // Player must learn the skill before doing auto-spell [Lance]
- if(skill_id==MG_NAPALMBEAT) maxlv=3;
+ if(skill_id==MG_NAPALMBEAT) maxlv=3;
else if(skill_id==MG_COLDBOLT || skill_id==MG_FIREBOLT || skill_id==MG_LIGHTNINGBOLT){
if (sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_SAGE)
maxlv =10; //Soul Linker bonus. [Skotlex]
@@ -14943,7 +15079,7 @@ int skill_frostjoke_scream(struct block_list *bl, va_list ap) {
return 0;
if (bl->type == BL_PC) {
struct map_session_data *sd = (struct map_session_data *)bl;
- if ( sd && sd->sc.option&(OPTION_INVISIBLE|OPTION_MADOGEAR) )
+ if (sd && (pc_isinvisible(sd) || pc_ismadogear(sd)))
return 0;//Frost Joke / Scream cannot target invisible or MADO Gear characters [Ind]
}
//It has been reported that Scream/Joke works the same regardless of woe-setting. [Skotlex]
@@ -15225,9 +15361,10 @@ int skill_cell_overlap(struct block_list *bl, va_list ap) {
break;
}
break;
+ case WZ_ICEWALL:
case HP_BASILICA:
- if (su->group->skill_id == HP_BASILICA) {
- //Basilica can't be placed on top of itself to avoid map-cell stacking problems. [Skotlex]
+ if (su->group->skill_id == skill_id) {
+ //These can't be placed on top of themselves (duration can't be refreshed)
(*alive) = 0;
return 1;
}
@@ -15430,7 +15567,7 @@ bool skill_can_cloak(struct map_session_data *sd) {
//Avoid cloaking with no wall and low skill level. [Skotlex]
//Due to the cloaking card, we have to check the wall versus to known
//skill level rather than the used one. [Skotlex]
- //if (sd && val1 < 3 && skill_check_cloaking(bl,NULL))
+ //if (sd && val1 < 3 && skill->check_cloaking(bl,NULL))
if (pc->checkskill(sd, AS_CLOAKING) < 3 && !skill->check_cloaking(&sd->bl,NULL))
return false;
@@ -15545,7 +15682,6 @@ struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int
map->setgatcell(su->bl.m,su->bl.x,su->bl.y,5);
clif->changemapcell(0,su->bl.m,su->bl.x,su->bl.y,5,AREA);
skill->unitsetmapcell(su,WZ_ICEWALL,group->skill_lv,CELL_ICEWALL,true);
- map->list[su->bl.m].icewall_num++;
break;
case SA_LANDPROTECTOR:
skill->unitsetmapcell(su,SA_LANDPROTECTOR,group->skill_lv,CELL_LANDPROTECTOR,true);
@@ -15594,10 +15730,10 @@ int skill_delunit (struct skill_unit* su) {
}
break;
case WZ_ICEWALL:
+ map->list[su->bl.m].setcell(su->bl.m, su->bl.x, su->bl.y, CELL_NOICEWALL, false);
map->setgatcell(su->bl.m,su->bl.x,su->bl.y,su->val2);
clif->changemapcell(0,su->bl.m,su->bl.x,su->bl.y,su->val2,ALL_SAMEMAP); // hack to avoid clientside cell bug
skill->unitsetmapcell(su,WZ_ICEWALL,group->skill_lv,CELL_ICEWALL,false);
- map->list[su->bl.m].icewall_num--;
// AS_CLOAKING in low levels requires a wall to be cast, thus it needs to be
// checked again when a wall disapears! issue:8182 [Panikon]
map->foreachinarea(skill->check_cloaking_end, su->bl.m,
@@ -15745,7 +15881,7 @@ int skill_delunitgroup(struct skill_unit_group *group, const char* file, int lin
return 0;
}
- if( !status->isdead(src) && ((TBL_PC*)src)->state.warping && !((TBL_PC*)src)->state.changemap ) {
+ if( src->type == BL_PC && !status->isdead(src) && ((TBL_PC*)src)->state.warping && !((TBL_PC*)src)->state.changemap ) {
switch( group->skill_id ) {
case BA_DISSONANCE:
case BA_POEMBRAGI:
@@ -15925,7 +16061,7 @@ int skill_unit_timer_sub_onplace(struct block_list* bl, va_list ap) {
nullpo_ret(group);
- if( !(skill->get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP|INF2_NOLP)) && map->getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR) )
+ if( !(skill->get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP|INF2_NOLP)) && map->getcell(su->bl.m, su->bl.x, su->bl.y, CELL_CHKLANDPROTECTOR) )
return 0; //AoE skills are ineffective. [Skotlex]
if( battle->check_target(&su->bl,bl,group->target_flag) <= 0 )
@@ -15943,7 +16079,7 @@ int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap) {
struct skill_unit* su = DB->data2ptr(data);
struct skill_unit_group* group = su->group;
int64 tick = va_arg(ap,int64);
- bool dissonance;
+ bool dissonance;
struct block_list* bl = &su->bl;
if( !su->alive )
@@ -16188,8 +16324,8 @@ int skill_unit_move_sub(struct block_list* bl, va_list ap) {
//Necessary in case the group is deleted after calling on_place/on_out [Skotlex]
skill_id = su->group->skill_id;
- if( su->group->interval != -1 && !(skill->get_unit_flag(skill_id)&UF_DUALMODE) && skill_id != BD_LULLABY ) //Lullaby is the exception, bugreport:411
- { //Non-dualmode unit skills with a timer don't trigger when walking, so just return
+ if( su->group->interval != -1 && !(skill->get_unit_flag(skill_id)&UF_DUALMODE) && skill_id != BD_LULLABY ) { //Lullaby is the exception, bugreport:411
+ //Non-dualmode unit skills with a timer don't trigger when walking, so just return
if( dissonance ) skill->dance_switch(su, 1);
return 0;
}
@@ -16303,11 +16439,11 @@ int skill_unit_move_unit_group(struct skill_unit_group *group, int16 m, int16 dx
return 0; //Icewalls and Wall of Thorns don't get knocked back
m_flag = (int *) aCalloc(group->unit_count, sizeof(int));
- // m_flag
- // 0: Neither of the following (skill_unit_onplace & skill_unit_onout are needed)
- // 1: Unit will move to a slot that had another unit of the same group (skill_unit_onplace not needed)
- // 2: Another unit from same group will end up positioned on this unit (skill_unit_onout not needed)
- // 3: Both 1+2.
+ // m_flag:
+ // 0: Neither of the following (skill_unit_onplace & skill_unit_onout are needed)
+ // 1: Unit will move to a slot that had another unit of the same group (skill_unit_onplace not needed)
+ // 2: Another unit from same group will end up positioned on this unit (skill_unit_onout not needed)
+ // 3: Both 1+2.
for(i=0;i<group->unit_count;i++) {
su1=&group->unit[i];
if (!su1->alive || su1->bl.m!=m)
@@ -16759,9 +16895,8 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
}
break;
default:
- if (sd->menuskill_id == AM_PHARMACY &&
- sd->menuskill_val > 10 && sd->menuskill_val <= 20)
- { //Assume Cooking Dish
+ if (sd->menuskill_id == AM_PHARMACY && sd->menuskill_val > 10 && sd->menuskill_val <= 20) {
+ //Assume Cooking Dish
if (sd->menuskill_val >= 15) //Legendary Cooking Set.
make_per = 10000; //100% Success
else
@@ -16852,9 +16987,10 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
}
}
-// if(log_config.produce > 0)
-// log_produce(sd,nameid,slot1,slot2,slot3,1);
-//TODO update PICKLOG
+#if 0 // TODO: update PICKLOG
+ if(log_config.produce > 0)
+ log_produce(sd,nameid,slot1,slot2,slot3,1);
+#endif // 0
if(equip){
clif->produce_effect(sd,0,nameid);
@@ -16865,7 +17001,8 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
int fame = 0;
tmp_item.amount = 0;
- for (i=0; i< qty; i++) { //Apply quantity modifiers.
+ for (i=0; i< qty; i++) {
+ //Apply quantity modifiers.
if( (skill_id == GN_MIX_COOKING || skill_id == GN_MAKEBOMB || skill_id == GN_S_PHARMACY) && make_per > 1){
tmp_item.amount = qty;
break;
@@ -16963,9 +17100,10 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
}
}
//Failure
-// if(log_config.produce)
-// log_produce(sd,nameid,slot1,slot2,slot3,0);
-//TODO update PICKLOG
+#if 0 // TODO: update PICKLOG
+ if(log_config.produce)
+ log_produce(sd,nameid,slot1,slot2,slot3,0);
+#endif // 0
if(equip){
clif->produce_effect(sd,1,nameid);
@@ -17154,7 +17292,7 @@ int skill_magicdecoy(struct map_session_data *sd, int nameid) {
class_ = (nameid == ITEMID_BOODY_RED || nameid == ITEMID_CRYSTAL_BLUE) ? 2043 + nameid - ITEMID_BOODY_RED : (nameid == ITEMID_WIND_OF_VERDURE) ? 2046 : 2045;
- md = mob->once_spawn_sub(&sd->bl, sd->bl.m, x, y, sd->status.name, class_, "", SZ_MEDIUM, AI_NONE);
+ md = mob->once_spawn_sub(&sd->bl, sd->bl.m, x, y, sd->status.name, class_, "", SZ_SMALL, AI_NONE);
if( md ) {
md->master_id = sd->bl.id;
md->special_state.ai = AI_FLORA;
@@ -17286,7 +17424,8 @@ int skill_elementalanalysis(struct map_session_data* sd, int n, uint16 skill_lv,
return 1;
}
- if( skill_lv == 2 && rnd()%100 < 25 ) { // At level 2 have a fail chance. You loose your items if it fails.
+ if( skill_lv == 2 && rnd()%100 < 25 ) {
+ // At level 2 have a fail chance. You loose your items if it fails.
clif->skill_fail(sd,SO_EL_ANALYSIS,USESKILL_FAIL_LEVEL,0);
return 1;
}
@@ -17338,7 +17477,7 @@ int skill_changematerial(struct map_session_data *sd, int n, unsigned short *ite
}
}
else
- break; // No more items required
+ break; // No more items required
}
p++;
} while(n == j && c == n);
@@ -17468,12 +17607,12 @@ int skill_blockpc_start_(struct map_session_data *sd, uint16 skill_id, int tick)
} else {
int i;
- for(i = 0; i < MAX_SKILL_TREE; i++) {
+ for(i = 0; i < cd->cursor; i++) {
if( cd->entry[i] && cd->entry[i]->skidx == idx )
break;
}
- if( i != MAX_SKILL_TREE ) {/* duplicate, update necessary */
+ if( i != cd->cursor ) {/* duplicate, update necessary */
cd->entry[i]->duration = tick;
#if PACKETVER >= 20120604
cd->entry[i]->total = tick;
@@ -17617,7 +17756,8 @@ int skill_split_atoi (char *str, int *val) {
}
if(i==0) //No data found.
return 0;
- if(i==1) { //Single value, have the whole range have the same value.
+ if(i==1) {
+ //Single value, have the whole range have the same value.
for (; i < MAX_SKILL_LEVEL; i++)
val[i] = val[i-1];
return i;
@@ -17932,44 +18072,132 @@ int skill_block_check(struct block_list *bl, sc_type type , uint16 skill_id) {
if( inf == INF2_SONG_DANCE || skill->get_inf2(skill_id) == INF2_CHORUS_SKILL || inf == INF2_SPIRIT_SKILL )
return 1; // Can't do it.
switch( skill_id ) {
- case NV_FIRSTAID: case TF_HIDING: case AS_CLOAKING: case WZ_SIGHTRASHER:
- case RG_STRIPWEAPON: case RG_STRIPSHIELD: case RG_STRIPARMOR: case WZ_METEOR:
- case RG_STRIPHELM: case SC_STRIPACCESSARY: case ST_FULLSTRIP: case WZ_SIGHTBLASTER:
- case ST_CHASEWALK: case SC_ENERVATION: case SC_GROOMY: case WZ_ICEWALL:
- case SC_IGNORANCE: case SC_LAZINESS: case SC_UNLUCKY: case WZ_STORMGUST:
- case SC_WEAKNESS: case AL_RUWACH: case AL_PNEUMA: case WZ_JUPITEL:
- case AL_HEAL: case AL_BLESSING: case AL_INCAGI: case WZ_VERMILION:
- case AL_TELEPORT: case AL_WARP: case AL_HOLYWATER: case WZ_EARTHSPIKE:
- case AL_HOLYLIGHT: case PR_IMPOSITIO: case PR_ASPERSIO: case WZ_HEAVENDRIVE:
- case PR_SANCTUARY: case PR_STRECOVERY: case PR_MAGNIFICAT: case WZ_QUAGMIRE:
- case ALL_RESURRECTION: case PR_LEXDIVINA: case PR_LEXAETERNA: case HW_GRAVITATION:
- case PR_MAGNUS: case PR_TURNUNDEAD: case MG_SRECOVERY: case HW_MAGICPOWER:
- case MG_SIGHT: case MG_NAPALMBEAT: case MG_SAFETYWALL: case HW_GANBANTEIN:
- case MG_SOULSTRIKE: case MG_COLDBOLT: case MG_FROSTDIVER: case WL_DRAINLIFE:
- case MG_STONECURSE: case MG_FIREBALL: case MG_FIREWALL: case WL_SOULEXPANSION:
- case MG_FIREBOLT: case MG_LIGHTNINGBOLT: case MG_THUNDERSTORM: case MG_ENERGYCOAT:
- case WL_WHITEIMPRISON: case WL_SUMMONFB: case WL_SUMMONBL: case WL_SUMMONWB:
- case WL_SUMMONSTONE: case WL_SIENNAEXECRATE: case WL_RELEASE: case WL_EARTHSTRAIN:
- case WL_RECOGNIZEDSPELL: case WL_READING_SB: case SA_MAGICROD: case SA_SPELLBREAKER:
- case SA_DISPELL: case SA_FLAMELAUNCHER: case SA_FROSTWEAPON: case SA_LIGHTNINGLOADER:
- case SA_SEISMICWEAPON: case SA_VOLCANO: case SA_DELUGE: case SA_VIOLENTGALE:
- case SA_LANDPROTECTOR: case PF_HPCONVERSION: case PF_SOULCHANGE: case PF_SPIDERWEB:
- case PF_FOGWALL: case TK_RUN: case TK_HIGHJUMP: case TK_SEVENWIND:
- case SL_KAAHI: case SL_KAUPE: case SL_KAITE:
+ case NV_FIRSTAID:
+ case TF_HIDING:
+ case AS_CLOAKING:
+ case WZ_SIGHTRASHER:
+ case RG_STRIPWEAPON:
+ case RG_STRIPSHIELD:
+ case RG_STRIPARMOR:
+ case WZ_METEOR:
+ case RG_STRIPHELM:
+ case SC_STRIPACCESSARY:
+ case ST_FULLSTRIP:
+ case WZ_SIGHTBLASTER:
+ case ST_CHASEWALK:
+ case SC_ENERVATION:
+ case SC_GROOMY:
+ case WZ_ICEWALL:
+ case SC_IGNORANCE:
+ case SC_LAZINESS:
+ case SC_UNLUCKY:
+ case WZ_STORMGUST:
+ case SC_WEAKNESS:
+ case AL_RUWACH:
+ case AL_PNEUMA:
+ case WZ_JUPITEL:
+ case AL_HEAL:
+ case AL_BLESSING:
+ case AL_INCAGI:
+ case WZ_VERMILION:
+ case AL_TELEPORT:
+ case AL_WARP:
+ case AL_HOLYWATER:
+ case WZ_EARTHSPIKE:
+ case AL_HOLYLIGHT:
+ case PR_IMPOSITIO:
+ case PR_ASPERSIO:
+ case WZ_HEAVENDRIVE:
+ case PR_SANCTUARY:
+ case PR_STRECOVERY:
+ case PR_MAGNIFICAT:
+ case WZ_QUAGMIRE:
+ case ALL_RESURRECTION:
+ case PR_LEXDIVINA:
+ case PR_LEXAETERNA:
+ case HW_GRAVITATION:
+ case PR_MAGNUS:
+ case PR_TURNUNDEAD:
+ case MG_SRECOVERY:
+ case HW_MAGICPOWER:
+ case MG_SIGHT:
+ case MG_NAPALMBEAT:
+ case MG_SAFETYWALL:
+ case HW_GANBANTEIN:
+ case MG_SOULSTRIKE:
+ case MG_COLDBOLT:
+ case MG_FROSTDIVER:
+ case WL_DRAINLIFE:
+ case MG_STONECURSE:
+ case MG_FIREBALL:
+ case MG_FIREWALL:
+ case WL_SOULEXPANSION:
+ case MG_FIREBOLT:
+ case MG_LIGHTNINGBOLT:
+ case MG_THUNDERSTORM:
+ case MG_ENERGYCOAT:
+ case WL_WHITEIMPRISON:
+ case WL_SUMMONFB:
+ case WL_SUMMONBL:
+ case WL_SUMMONWB:
+ case WL_SUMMONSTONE:
+ case WL_SIENNAEXECRATE:
+ case WL_RELEASE:
+ case WL_EARTHSTRAIN:
+ case WL_RECOGNIZEDSPELL:
+ case WL_READING_SB:
+ case SA_MAGICROD:
+ case SA_SPELLBREAKER:
+ case SA_DISPELL:
+ case SA_FLAMELAUNCHER:
+ case SA_FROSTWEAPON:
+ case SA_LIGHTNINGLOADER:
+ case SA_SEISMICWEAPON:
+ case SA_VOLCANO:
+ case SA_DELUGE:
+ case SA_VIOLENTGALE:
+ case SA_LANDPROTECTOR:
+ case PF_HPCONVERSION:
+ case PF_SOULCHANGE:
+ case PF_SPIDERWEB:
+ case PF_FOGWALL:
+ case TK_RUN:
+ case TK_HIGHJUMP:
+ case TK_SEVENWIND:
+ case SL_KAAHI:
+ case SL_KAUPE:
+ case SL_KAITE:
// Skills that need to be confirmed.
- case SO_FIREWALK: case SO_ELECTRICWALK: case SO_SPELLFIST: case SO_EARTHGRAVE:
- case SO_DIAMONDDUST: case SO_POISON_BUSTER: case SO_PSYCHIC_WAVE: case SO_CLOUD_KILL:
- case SO_STRIKING: case SO_WARMER: case SO_VACUUM_EXTREME: case SO_VARETYR_SPEAR:
+ case SO_FIREWALK:
+ case SO_ELECTRICWALK:
+ case SO_SPELLFIST:
+ case SO_EARTHGRAVE:
+ case SO_DIAMONDDUST:
+ case SO_POISON_BUSTER:
+ case SO_PSYCHIC_WAVE:
+ case SO_CLOUD_KILL:
+ case SO_STRIKING:
+ case SO_WARMER:
+ case SO_VACUUM_EXTREME:
+ case SO_VARETYR_SPEAR:
case SO_ARRULLO:
- return 1; // Can't do it.
+ return 1; // Can't do it.
}
break;
case SC_KG_KAGEHUMI:
switch(skill_id) {
- case TF_HIDING: case AS_CLOAKING: case GC_CLOAKINGEXCEED: case SC_SHADOWFORM:
- case MI_HARMONIZE: case CG_MARIONETTE: case AL_TELEPORT: case TF_BACKSLIDING:
- case RA_CAMOUFLAGE: case ST_CHASEWALK: case GD_EMERGENCYCALL:
+ case TF_HIDING:
+ case AS_CLOAKING:
+ case GC_CLOAKINGEXCEED:
+ case SC_SHADOWFORM:
+ case MI_HARMONIZE:
+ case CG_MARIONETTE:
+ case AL_TELEPORT:
+ case TF_BACKSLIDING:
+ case RA_CAMOUFLAGE:
+ case ST_CHASEWALK:
+ case GD_EMERGENCYCALL:
return 1; // needs more info
}
break;
@@ -17982,10 +18210,10 @@ int skill_get_elemental_type( uint16 skill_id , uint16 skill_lv ) {
int type = 0;
switch( skill_id ) {
- case SO_SUMMON_AGNI: type = 2114; break;
- case SO_SUMMON_AQUA: type = 2117; break;
- case SO_SUMMON_VENTUS: type = 2120; break;
- case SO_SUMMON_TERA: type = 2123; break;
+ case SO_SUMMON_AGNI: type = 2114; break;
+ case SO_SUMMON_AQUA: type = 2117; break;
+ case SO_SUMMON_VENTUS: type = 2120; break;
+ case SO_SUMMON_TERA: type = 2123; break;
}
type += skill_lv - 1;
@@ -18120,7 +18348,7 @@ bool skill_parse_row_requiredb(char* split[], int columns, int current) {
skill->split_atoi(split[5],skill->db[idx].sp_rate);
skill->split_atoi(split[6],skill->db[idx].zeny);
- //Which weapon type are required, see doc/item_db for types
+ //Which weapon type are required, see doc/item_db for types
p = split[7];
for( j = 0; j < 32; j++ ) {
int l = atoi(p);
@@ -18543,7 +18771,7 @@ int do_init_skill(bool minimal) {
skill->unit_ers = ers_new(sizeof(struct skill_unit_group),"skill.c::skill_unit_ers",ERS_OPT_CLEAN|ERS_OPT_FLEX_CHUNK);
skill->timer_ers = ers_new(sizeof(struct skill_timerskill),"skill.c::skill_timer_ers",ERS_OPT_NONE|ERS_OPT_FLEX_CHUNK);
skill->cd_ers = ers_new(sizeof(struct skill_cd),"skill.c::skill_cd_ers",ERS_OPT_CLEAR|ERS_OPT_CLEAN|ERS_OPT_FLEX_CHUNK);
- skill->cd_entry_ers = ers_new(sizeof(struct skill_cd_entry),"skill.c::skill_cd_entry_ers",ERS_OPT_CLEAR|ERS_OPT_FLEX_CHUNK);
+ skill->cd_entry_ers = ers_new(sizeof(struct skill_cd_entry),"skill.c::skill_cd_entry_ers",ERS_OPT_CLEAR|ERS_OPT_CLEAN|ERS_OPT_FLEX_CHUNK);
ers_chunk_size(skill->cd_ers, 25);
ers_chunk_size(skill->cd_entry_ers, 100);
@@ -18749,7 +18977,6 @@ void skill_defaults(void) {
skill->frostjoke_scream = skill_frostjoke_scream;
skill->greed = skill_greed;
skill->destroy_trap = skill_destroy_trap;
- skill->icewall_block = skill_icewall_block;
skill->unitgrouptickset_search = skill_unitgrouptickset_search;
skill->dance_switch = skill_dance_switch;
skill->check_condition_char_sub = skill_check_condition_char_sub;
diff --git a/src/map/skill.h b/src/map/skill.h
index 6373d9275..f0a54b982 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -26,29 +26,29 @@ struct status_change_entry;
/**
* Defines
**/
-#define MAX_SKILL_DB MAX_SKILL
-#define MAX_SKILL_PRODUCE_DB 270
-#define MAX_PRODUCE_RESOURCE 10
-#define MAX_SKILL_ARROW_DB 140
-#define MAX_ARROW_RESOURCE 5
-#define MAX_SKILL_ABRA_DB 210
-#define MAX_SKILL_IMPROVISE_DB 30
-#define MAX_SKILL_LEVEL 10
-#define MAX_SKILL_UNIT_LAYOUT 45
-#define MAX_SQUARE_LAYOUT 5 // 11*11 Placement of a maximum unit
-#define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
-#define MAX_SKILLTIMERSKILL 15
-#define MAX_SKILLUNITGROUP 25
-#define MAX_SKILL_ITEM_REQUIRE 10
+#define MAX_SKILL_DB MAX_SKILL
+#define MAX_SKILL_PRODUCE_DB 270
+#define MAX_PRODUCE_RESOURCE 10
+#define MAX_SKILL_ARROW_DB 140
+#define MAX_ARROW_RESOURCE 5
+#define MAX_SKILL_ABRA_DB 210
+#define MAX_SKILL_IMPROVISE_DB 30
+#define MAX_SKILL_LEVEL 10
+#define MAX_SKILL_UNIT_LAYOUT 45
+#define MAX_SQUARE_LAYOUT 5 // 11*11 Placement of a maximum unit
+#define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1))
+#define MAX_SKILLTIMERSKILL 15
+#define MAX_SKILLUNITGROUP 25
+#define MAX_SKILL_ITEM_REQUIRE 10
#define MAX_SKILLUNITGROUPTICKSET 25
-#define MAX_SKILL_NAME_LENGTH 30
+#define MAX_SKILL_NAME_LENGTH 30
// (Epoque:) To-do: replace this macro with some sort of skill tree check (rather than hard-coded skill names)
#define skill_ischangesex(id) ( \
((id) >= BD_ADAPTATION && (id) <= DC_SERVICEFORYOU) || ((id) >= CG_ARROWVULCAN && (id) <= CG_MARIONETTE) || \
((id) >= CG_LONGINGFREEDOM && (id) <= CG_TAROTCARD) || ((id) >= WA_SWING_DANCE && (id) <= WM_UNLIMITED_HUMMING_VOICE))
-#define MAX_SKILL_SPELLBOOK_DB 17
+#define MAX_SKILL_SPELLBOOK_DB 17
#define MAX_SKILL_MAGICMUSHROOM_DB 23
//Walk intervals at which chase-skills are attempted to be triggered.
@@ -99,7 +99,7 @@ enum e_skill_inf2 {
INF2_GUILD_ONLY = 0x0800,
INF2_NO_ENEMY = 0x1000,
INF2_NOLP = 0x2000, // Spells that can ignore Land Protector
- INF2_CHORUS_SKILL = 0x4000, // Chorus skill
+ INF2_CHORUS_SKILL = 0x4000, // Chorus skill
};
@@ -112,19 +112,19 @@ enum e_skill_display {
};
enum {
- UF_DEFNOTENEMY = 0x0001, // If 'defunit_not_enemy' is set, the target is changed to 'friend'
- UF_NOREITERATION = 0x0002, // Spell cannot be stacked
- UF_NOFOOTSET = 0x0004, // Spell cannot be cast near/on targets
- UF_NOOVERLAP = 0x0008, // Spell effects do not overlap
- UF_PATHCHECK = 0x0010, // Only cells with a shootable path will be placed
- UF_NOPC = 0x0020, // May not target players
- UF_NOMOB = 0x0040, // May not target mobs
- UF_SKILL = 0x0080, // May target skills
- UF_DANCE = 0x0100, // Dance
- UF_ENSEMBLE = 0x0200, // Duet
- UF_SONG = 0x0400, // Song
- UF_DUALMODE = 0x0800, // Spells should trigger both ontimer and onplace/onout/onleft effects.
- UF_RANGEDSINGLEUNIT = 0x2000 // Hack for ranged layout, only display center
+ UF_DEFNOTENEMY = 0x0001, // If 'defunit_not_enemy' is set, the target is changed to 'friend'
+ UF_NOREITERATION = 0x0002, // Spell cannot be stacked
+ UF_NOFOOTSET = 0x0004, // Spell cannot be cast near/on targets
+ UF_NOOVERLAP = 0x0008, // Spell effects do not overlap
+ UF_PATHCHECK = 0x0010, // Only cells with a shootable path will be placed
+ UF_NOPC = 0x0020, // May not target players
+ UF_NOMOB = 0x0040, // May not target mobs
+ UF_SKILL = 0x0080, // May target skills
+ UF_DANCE = 0x0100, // Dance
+ UF_ENSEMBLE = 0x0200, // Duet
+ UF_SONG = 0x0400, // Song
+ UF_DUALMODE = 0x0800, // Spells should trigger both ontimer and onplace/onout/onleft effects.
+ UF_RANGEDSINGLEUNIT = 0x2000, // Hack for ranged layout, only display center
};
//Returns the cast type of the skill: ground cast, castend damage, castend no damage
@@ -1623,14 +1623,14 @@ enum {
UNT_MAKIBISHI,
UNT_VENOMFOG,
UNT_ICEMINE,
- UNT_FLAMECROSS,
- UNT_HELLBURNING,
- UNT_MAGMA_ERUPTION,
+ UNT_FLAMECROSS,
+ UNT_HELLBURNING,
+ UNT_MAGMA_ERUPTION,
UNT_KINGS_GRACE,
UNT_GLITTERING_GREED,
UNT_B_TRAP,
UNT_FIRE_RAIN,
-
+
/**
* Guild Auras
**/
@@ -1638,7 +1638,7 @@ enum {
UNT_GD_GLORYWOUNDS = 0xc2,
UNT_GD_SOULCOLD = 0xc3,
UNT_GD_HAWKEYES = 0xc4,
-
+
UNT_MAX = 0x190
};
@@ -1703,10 +1703,10 @@ struct skill_unit_group {
int bg_id;
int map;
int target_flag; //Holds BCT_* flag for battle_check_target
- int bl_flag; //Holds BL_* flag for map_foreachin* functions
+ int bl_flag; //Holds BL_* flag for map_foreachin* functions
int64 tick;
int limit,interval;
-
+
uint16 skill_id,skill_lv;
int val1,val2,val3;
char *valstr;
@@ -1724,9 +1724,9 @@ struct skill_unit_group {
struct skill_unit {
struct block_list bl;
-
+
struct skill_unit_group *group;
-
+
int limit;
int val1,val2;
short alive,range;
@@ -1852,49 +1852,49 @@ struct skill_interface {
int unit_temp[20]; // temporary storage for tracking skill unit skill ids as players move in/out of them
int unit_group_newid;
/* accesssors */
- int (*get_index) ( uint16 skill_id );
- int (*get_type) ( uint16 skill_id );
- int (*get_hit) ( uint16 skill_id );
- int (*get_inf) ( uint16 skill_id );
- int (*get_ele) ( uint16 skill_id, uint16 skill_lv );
- int (*get_nk) ( uint16 skill_id );
- int (*get_max) ( uint16 skill_id );
- int (*get_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_range2) (struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*get_splash) ( uint16 skill_id, uint16 skill_lv );
- int (*get_hp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_mhp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_sp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_state) (uint16 skill_id);
- int (*get_spiritball) (uint16 skill_id, uint16 skill_lv);
- int (*get_zeny) ( uint16 skill_id, uint16 skill_lv );
- int (*get_num) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cast) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_walkdelay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time2) ( uint16 skill_id, uint16 skill_lv );
- int (*get_castnodex) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delaynodex) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_castdef) ( uint16 skill_id );
- int (*get_weapontype) ( uint16 skill_id );
- int (*get_ammotype) ( uint16 skill_id );
- int (*get_ammo_qty) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_id) (uint16 skill_id,int flag);
- int (*get_inf2) ( uint16 skill_id );
- int (*get_castcancel) ( uint16 skill_id );
- int (*get_maxcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_blewcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_flag) ( uint16 skill_id );
- int (*get_unit_target) ( uint16 skill_id );
- int (*get_unit_interval) ( uint16 skill_id );
- int (*get_unit_bl_target) ( uint16 skill_id );
- int (*get_unit_layout_type) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_unit_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cooldown) ( uint16 skill_id, uint16 skill_lv );
- int (*tree_get_max) ( uint16 skill_id, int b_class );
- const char* (*get_name) ( uint16 skill_id );
- const char* (*get_desc) ( uint16 skill_id );
+ int (*get_index) ( uint16 skill_id );
+ int (*get_type) ( uint16 skill_id );
+ int (*get_hit) ( uint16 skill_id );
+ int (*get_inf) ( uint16 skill_id );
+ int (*get_ele) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_nk) ( uint16 skill_id );
+ int (*get_max) ( uint16 skill_id );
+ int (*get_range) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_range2) (struct block_list *bl, uint16 skill_id, uint16 skill_lv);
+ int (*get_splash) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_hp) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_mhp) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_sp) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_state) (uint16 skill_id);
+ int (*get_spiritball) (uint16 skill_id, uint16 skill_lv);
+ int (*get_zeny) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_num) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_cast) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_delay) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_walkdelay) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_time) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_time2) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_castnodex) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_delaynodex) ( uint16 skill_id ,uint16 skill_lv );
+ int (*get_castdef) ( uint16 skill_id );
+ int (*get_weapontype) ( uint16 skill_id );
+ int (*get_ammotype) ( uint16 skill_id );
+ int (*get_ammo_qty) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_unit_id) (uint16 skill_id,int flag);
+ int (*get_inf2) ( uint16 skill_id );
+ int (*get_castcancel) ( uint16 skill_id );
+ int (*get_maxcount) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_blewcount) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_unit_flag) ( uint16 skill_id );
+ int (*get_unit_target) ( uint16 skill_id );
+ int (*get_unit_interval) ( uint16 skill_id );
+ int (*get_unit_bl_target) ( uint16 skill_id );
+ int (*get_unit_layout_type) ( uint16 skill_id ,uint16 skill_lv );
+ int (*get_unit_range) ( uint16 skill_id, uint16 skill_lv );
+ int (*get_cooldown) ( uint16 skill_id, uint16 skill_lv );
+ int (*tree_get_max) ( uint16 skill_id, int b_class );
+ const char *(*get_name) ( uint16 skill_id );
+ const char *(*get_desc) ( uint16 skill_id );
/* check */
void (*chk) (uint16* skill_id);
/* whether its CAST_GROUND, CAST_DAMAGE or CAST_NODAMAGE */
@@ -1984,7 +1984,6 @@ struct skill_interface {
int (*frostjoke_scream) (struct block_list *bl, va_list ap);
int (*greed) (struct block_list *bl, va_list ap);
int (*destroy_trap) ( struct block_list *bl, va_list ap );
- int (*icewall_block) (struct block_list *bl,va_list ap);
struct skill_unit_group_tickset *(*unitgrouptickset_search) (struct block_list *bl, struct skill_unit_group *group, int64 tick);
bool (*dance_switch) (struct skill_unit* su, int flag);
int (*check_condition_char_sub) (struct block_list *bl, va_list ap);
diff --git a/src/map/status.c b/src/map/status.c
index 4a2a6c344..9cd01f7b3 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -245,7 +245,7 @@ void initChangeTables(void) {
set_sc( NPC_BARRIER , SC_BARRIER , SI_BLANK , SCB_MDEF|SCB_DEF );
add_sc( NPC_DEFENDER , SC_ARMOR );
add_sc( NPC_LICK , SC_STUN );
- set_sc( NPC_HALLUCINATION , SC_ILLUSION , SI_ILLUSION , SCB_NONE );
+ set_sc( NPC_HALLUCINATION , SC_ILLUSION , SI_ILLUSION , SCB_NONE );
add_sc( NPC_REBIRTH , SC_REBIRTH );
add_sc( RG_RAID , SC_STUN );
#ifdef RENEWAL
@@ -469,8 +469,8 @@ void initChangeTables(void) {
set_sc( HAMI_BLOODLUST , SC_HAMI_BLOODLUST , SI_BLANK , SCB_BATK|SCB_WATK );
// Homunculus S
- set_sc( MH_LIGHT_OF_REGENE , SC_LIGHT_OF_REGENE , SI_LIGHT_OF_REGENE , SCB_NONE );
- set_sc( MH_OVERED_BOOST , SC_OVERED_BOOST , SI_OVERED_BOOST , SCB_FLEE|SCB_ASPD|SCB_DEF );
+ set_sc( MH_LIGHT_OF_REGENE , SC_LIGHT_OF_REGENE , SI_LIGHT_OF_REGENE , SCB_NONE );
+ set_sc( MH_OVERED_BOOST , SC_OVERED_BOOST , SI_OVERED_BOOST , SCB_FLEE|SCB_ASPD|SCB_DEF );
add_sc(MH_STAHL_HORN, SC_STUN);
set_sc(MH_ANGRIFFS_MODUS, SC_ANGRIFFS_MODUS, SI_ANGRIFFS_MODUS, SCB_BATK | SCB_DEF | SCB_FLEE | SCB_MAXHP);
@@ -529,14 +529,14 @@ void initChangeTables(void) {
set_sc( RK_DEATHBOUND , SC_DEATHBOUND , SI_DEATHBOUND , SCB_NONE );
set_sc( RK_WINDCUTTER , SC_FEAR , SI_BLANK , SCB_FLEE|SCB_HIT );
add_sc( RK_DRAGONBREATH , SC_BURNING );
- set_sc( RK_MILLENNIUMSHIELD , SC_MILLENNIUMSHIELD , SI_BLANK , SCB_NONE );
+ set_sc( RK_MILLENNIUMSHIELD , SC_MILLENNIUMSHIELD , SI_BLANK , SCB_NONE );
set_sc( RK_REFRESH , SC_REFRESH , SI_REFRESH , SCB_NONE );
set_sc( RK_GIANTGROWTH , SC_GIANTGROWTH , SI_GIANTGROWTH , SCB_STR );
set_sc( RK_STONEHARDSKIN , SC_STONEHARDSKIN , SI_STONEHARDSKIN , SCB_NONE );
set_sc( RK_VITALITYACTIVATION, SC_VITALITYACTIVATION, SI_VITALITYACTIVATION, SCB_REGEN );
set_sc( RK_FIGHTINGSPIRIT , SC_FIGHTINGSPIRIT , SI_FIGHTINGSPIRIT , SCB_WATK|SCB_ASPD );
set_sc( RK_ABUNDANCE , SC_ABUNDANCE , SI_ABUNDANCE , SCB_NONE );
- set_sc( RK_CRUSHSTRIKE , SC_CRUSHSTRIKE , SI_CRUSHSTRIKE , SCB_NONE );
+ set_sc( RK_CRUSHSTRIKE , SC_CRUSHSTRIKE , SI_CRUSHSTRIKE , SCB_NONE );
add_sc( RK_DRAGONBREATH_WATER, SC_FROSTMISTY );
/**
* GC Guillotine Cross
@@ -643,7 +643,7 @@ void initChangeTables(void) {
set_sc( SR_RAISINGDRAGON , SC_RAISINGDRAGON , SI_RAISINGDRAGON , SCB_REGEN|SCB_MAXHP|SCB_MAXSP );
set_sc( SR_GENTLETOUCH_ENERGYGAIN, SC_GENTLETOUCH_ENERGYGAIN , SI_GENTLETOUCH_ENERGYGAIN, SCB_NONE );
set_sc( SR_GENTLETOUCH_CHANGE , SC_GENTLETOUCH_CHANGE , SI_GENTLETOUCH_CHANGE , SCB_ASPD|SCB_MDEF|SCB_MAXHP );
- set_sc( SR_GENTLETOUCH_REVITALIZE, SC_GENTLETOUCH_REVITALIZE , SI_GENTLETOUCH_REVITALIZE, SCB_MAXHP|SCB_REGEN );
+ set_sc( SR_GENTLETOUCH_REVITALIZE, SC_GENTLETOUCH_REVITALIZE , SI_GENTLETOUCH_REVITALIZE, SCB_MAXHP|SCB_DEF2|SCB_REGEN );
set_sc( SR_FLASHCOMBO , SC_FLASHCOMBO , SI_FLASHCOMBO , SCB_WATK );
/**
* Wanderer / Minstrel
@@ -677,7 +677,7 @@ void initChangeTables(void) {
set_sc_with_vfx( SO_DIAMONDDUST , SC_COLD , SI_COLD , SCB_NONE ); // it does show the snow icon on mobs but doesn't affect it.
set_sc( SO_CLOUD_KILL , SC_POISON , SI_CLOUDKILL , SCB_NONE );
set_sc( SO_STRIKING , SC_STRIKING , SI_STRIKING , SCB_WATK|SCB_CRI );
- set_sc( SO_WARMER , SC_WARMER , SI_WARMER , SCB_NONE );
+ add_sc( SO_WARMER , SC_WARMER ); // At the moment, no icon on officials
set_sc( SO_VACUUM_EXTREME , SC_VACUUM_EXTREME , SI_VACUUM_EXTREME , SCB_NONE );
set_sc( SO_ARRULLO , SC_DEEP_SLEEP , SI_DEEPSLEEP , SCB_NONE );
set_sc( SO_FIRE_INSIGNIA , SC_FIRE_INSIGNIA , SI_FIRE_INSIGNIA , SCB_MATK | SCB_BATK | SCB_WATK | SCB_ATK_ELE | SCB_REGEN );
@@ -724,25 +724,25 @@ void initChangeTables(void) {
set_sc( EL_ROCK_CRUSHER , SC_ROCK_CRUSHER , SI_ROCK_CRUSHER , SCB_DEF );
set_sc( EL_ROCK_CRUSHER_ATK, SC_ROCK_CRUSHER_ATK , SI_ROCK_CRUSHER_ATK , SCB_SPEED );
- add_sc( KO_YAMIKUMO , SC_HIDING );
- set_sc_with_vfx( KO_JYUMONJIKIRI , SC_KO_JYUMONJIKIRI , SI_KO_JYUMONJIKIRI , SCB_NONE );
- add_sc( KO_MAKIBISHI , SC_STUN );
- set_sc( KO_MEIKYOUSISUI , SC_MEIKYOUSISUI , SI_MEIKYOUSISUI , SCB_NONE );
- set_sc( KO_KYOUGAKU , SC_KYOUGAKU , SI_KYOUGAKU , SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
- add_sc( KO_JYUSATSU , SC_CURSE );
- set_sc( KO_ZENKAI , SC_ZENKAI , SI_ZENKAI , SCB_NONE );
- set_sc( KO_IZAYOI , SC_IZAYOI , SI_IZAYOI , SCB_MATK );
- set_sc( KG_KYOMU , SC_KYOMU , SI_KYOMU , SCB_NONE );
- set_sc( KG_KAGEMUSYA , SC_KAGEMUSYA , SI_KAGEMUSYA , SCB_NONE );
- set_sc( KG_KAGEHUMI , SC_KG_KAGEHUMI , SI_KG_KAGEHUMI , SCB_NONE );
- set_sc( OB_ZANGETSU , SC_ZANGETSU , SI_ZANGETSU , SCB_MATK|SCB_BATK );
- set_sc_with_vfx( OB_AKAITSUKI , SC_AKAITSUKI , SI_AKAITSUKI , SCB_NONE );
- set_sc( OB_OBOROGENSOU , SC_GENSOU , SI_GENSOU , SCB_NONE );
-
- set_sc( ALL_FULL_THROTTLE , SC_FULL_THROTTLE , SI_FULL_THROTTLE , SCB_SPEED|SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
-
- add_sc( ALL_REVERSEORCISH , SC_ORCISH );
- set_sc( ALL_ANGEL_PROTECT , SC_ANGEL_PROTECT , SI_ANGEL_PROTECT , SCB_REGEN );
+ add_sc( KO_YAMIKUMO , SC_HIDING );
+ set_sc_with_vfx( KO_JYUMONJIKIRI , SC_KO_JYUMONJIKIRI , SI_KO_JYUMONJIKIRI , SCB_NONE );
+ add_sc( KO_MAKIBISHI , SC_STUN );
+ set_sc( KO_MEIKYOUSISUI , SC_MEIKYOUSISUI , SI_MEIKYOUSISUI , SCB_NONE );
+ set_sc( KO_KYOUGAKU , SC_KYOUGAKU , SI_KYOUGAKU , SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
+ add_sc( KO_JYUSATSU , SC_CURSE );
+ set_sc( KO_ZENKAI , SC_ZENKAI , SI_ZENKAI , SCB_NONE );
+ set_sc( KO_IZAYOI , SC_IZAYOI , SI_IZAYOI , SCB_MATK );
+ set_sc( KG_KYOMU , SC_KYOMU , SI_KYOMU , SCB_NONE );
+ set_sc( KG_KAGEMUSYA , SC_KAGEMUSYA , SI_KAGEMUSYA , SCB_NONE );
+ set_sc( KG_KAGEHUMI , SC_KG_KAGEHUMI , SI_KG_KAGEHUMI , SCB_NONE );
+ set_sc( OB_ZANGETSU , SC_ZANGETSU , SI_ZANGETSU , SCB_MATK|SCB_BATK );
+ set_sc_with_vfx( OB_AKAITSUKI, SC_AKAITSUKI , SI_AKAITSUKI , SCB_NONE );
+ set_sc( OB_OBOROGENSOU , SC_GENSOU , SI_GENSOU , SCB_NONE );
+
+ set_sc( ALL_FULL_THROTTLE , SC_FULL_THROTTLE , SI_FULL_THROTTLE , SCB_SPEED|SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK );
+
+ add_sc( ALL_REVERSEORCISH , SC_ORCISH );
+ set_sc( ALL_ANGEL_PROTECT , SC_ANGEL_PROTECT , SI_ANGEL_PROTECT , SCB_REGEN );
add_sc( NPC_WIDEHEALTHFEAR , SC_FEAR );
add_sc( NPC_WIDEBODYBURNNING , SC_BURNING );
@@ -750,7 +750,7 @@ void initChangeTables(void) {
add_sc( NPC_WIDECOLD , SC_COLD );
add_sc( NPC_WIDE_DEEP_SLEEP , SC_DEEP_SLEEP );
add_sc( NPC_WIDESIREN , SC_SIREN );
-
+
set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , SI_ILLUSIONDOPING , SCB_HIT );
// Storing the target job rather than simply SC_SOULLINK simplifies code later on.
@@ -935,13 +935,16 @@ void initChangeTables(void) {
status->ChangeFlagTable[SC_INCHITRATE] |= SCB_HIT;
status->ChangeFlagTable[SC_INCFLEE] |= SCB_FLEE;
status->ChangeFlagTable[SC_INCFLEERATE] |= SCB_FLEE;
+ status->ChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT|SCB_FLEE;
status->ChangeFlagTable[SC_CRITICALPERCENT] |= SCB_CRI;
status->ChangeFlagTable[SC_INCASPDRATE] |= SCB_ASPD;
status->ChangeFlagTable[SC_PLUSAVOIDVALUE] |= SCB_FLEE2;
status->ChangeFlagTable[SC_INCMHPRATE] |= SCB_MAXHP;
status->ChangeFlagTable[SC_INCMSPRATE] |= SCB_MAXSP;
status->ChangeFlagTable[SC_INCMHP] |= SCB_MAXHP;
+ status->ChangeFlagTable[SC_MTF_MHP] |= SCB_MAXHP;
status->ChangeFlagTable[SC_INCMSP] |= SCB_MAXSP;
+ status->ChangeFlagTable[SC_MTF_MSP] |= SCB_MAXSP;
status->ChangeFlagTable[SC_INCATKRATE] |= SCB_BATK|SCB_WATK;
status->ChangeFlagTable[SC_INCMATKRATE] |= SCB_MATK;
status->ChangeFlagTable[SC_INCDEFRATE] |= SCB_DEF;
@@ -1004,6 +1007,7 @@ void initChangeTables(void) {
status->ChangeFlagTable[SC_REBOUND] |= SCB_SPEED|SCB_REGEN;
status->ChangeFlagTable[SC_DEFSET] |= SCB_DEF|SCB_DEF2;
status->ChangeFlagTable[SC_MDEFSET] |= SCB_MDEF|SCB_MDEF2;
+ status->ChangeFlagTable[SC_MYSTERIOUS_POWDER] |= SCB_MAXHP;
status->ChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED;
status->ChangeFlagTable[SC_WEDDING] = SCB_SPEED;
@@ -1018,32 +1022,32 @@ void initChangeTables(void) {
status->ChangeFlagTable[SC_DECORATION_OF_MUSIC] |= SCB_NONE;
/* status->DisplayType Table [Ind/Hercules] */
- status->DisplayType[SC_ALL_RIDING] = true;
- status->DisplayType[SC_PUSH_CART] = true;
- status->DisplayType[SC_SUMMON1] = true;
- status->DisplayType[SC_SUMMON2] = true;
- status->DisplayType[SC_SUMMON3] = true;
- status->DisplayType[SC_SUMMON4] = true;
- status->DisplayType[SC_SUMMON5] = true;
- status->DisplayType[SC_CAMOUFLAGE] = true;
- status->DisplayType[SC_DUPLELIGHT] = true;
- status->DisplayType[SC_ORATIO] = true;
- status->DisplayType[SC_FROSTMISTY] = true;
- status->DisplayType[SC_VENOMIMPRESS] = true;
- status->DisplayType[SC_HALLUCINATIONWALK] = true;
- status->DisplayType[SC_ROLLINGCUTTER] = true;
- status->DisplayType[SC_BANDING] = true;
- status->DisplayType[SC_COLD] = true;
- status->DisplayType[SC_DEEP_SLEEP] = true;
- status->DisplayType[SC_CURSEDCIRCLE_ATKER]= true;
- status->DisplayType[SC_CURSEDCIRCLE_TARGET]= true;
- status->DisplayType[SC_BLOOD_SUCKER] = true;
- status->DisplayType[SC__SHADOWFORM] = true;
- status->DisplayType[SC_MONSTER_TRANSFORM] = true;
- status->DisplayType[SC_MOONSTAR] = true;
- status->DisplayType[SC_SUPER_STAR] = true;
- status->DisplayType[SC_STRANGELIGHTS] = true;
- status->DisplayType[SC_DECORATION_OF_MUSIC] = true;
+ status->DisplayType[SC_ALL_RIDING] = true;
+ status->DisplayType[SC_PUSH_CART] = true;
+ status->DisplayType[SC_SUMMON1] = true;
+ status->DisplayType[SC_SUMMON2] = true;
+ status->DisplayType[SC_SUMMON3] = true;
+ status->DisplayType[SC_SUMMON4] = true;
+ status->DisplayType[SC_SUMMON5] = true;
+ status->DisplayType[SC_CAMOUFLAGE] = true;
+ status->DisplayType[SC_DUPLELIGHT] = true;
+ status->DisplayType[SC_ORATIO] = true;
+ status->DisplayType[SC_FROSTMISTY] = true;
+ status->DisplayType[SC_VENOMIMPRESS] = true;
+ status->DisplayType[SC_HALLUCINATIONWALK] = true;
+ status->DisplayType[SC_ROLLINGCUTTER] = true;
+ status->DisplayType[SC_BANDING] = true;
+ status->DisplayType[SC_COLD] = true;
+ status->DisplayType[SC_DEEP_SLEEP] = true;
+ status->DisplayType[SC_CURSEDCIRCLE_ATKER] = true;
+ status->DisplayType[SC_CURSEDCIRCLE_TARGET] = true;
+ status->DisplayType[SC_BLOOD_SUCKER] = true;
+ status->DisplayType[SC__SHADOWFORM] = true;
+ status->DisplayType[SC_MONSTER_TRANSFORM] = true;
+ status->DisplayType[SC_MOONSTAR] = true;
+ status->DisplayType[SC_SUPER_STAR] = true;
+ status->DisplayType[SC_STRANGELIGHTS] = true;
+ status->DisplayType[SC_DECORATION_OF_MUSIC] = true;
#ifdef RENEWAL_EDP
// renewal EDP increases your weapon atk
@@ -1134,10 +1138,10 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
struct status_change *sc;
int hp,sp;
- /* here onwards we consider it a 32-type, the client does not support higher and from here onwards the value doesn't get thru percentage modifiers */
+ /* From here onwards, we consider it a 32-type as the client does not support higher and the value doesn't get through percentage modifiers */
hp = (int)cap_value(in_hp,INT_MIN,INT_MAX);
sp = (int)cap_value(in_sp,INT_MIN,INT_MAX);
-
+
if(sp && !(target->type&BL_CONSUME))
sp = 0; //Not a valid SP target.
@@ -1174,10 +1178,12 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
if( !st->hp )
flag |= 8;
+#if 0
// Let through. battle.c/skill.c have the whole logic of when it's possible or
// not to hurt someone (and this check breaks pet catching) [Skotlex]
- // if (!target->prev && !(flag&2))
- // return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp
+ if (!target->prev && !(flag&2))
+ return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp
+#endif // 0
sc = status->get_sc(target);
if( hp && battle_config.invincible_nodamage && src && sc && sc->data[SC_INVINCIBLE] && !sc->data[SC_INVINCIBLEOFF] )
@@ -1186,11 +1192,11 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
if( hp && !(flag&1) ) {
if( sc ) {
struct status_change_entry *sce;
-
+
#ifdef DEVOTION_REFLECT_DAMAGE
if(src && (sce = sc->data[SC_DEVOTION])) {
struct block_list *d_bl = map->id2bl(sce->val1);
-
+
if(d_bl &&((d_bl->type == BL_MER && ((TBL_MER *)d_bl)->master && ((TBL_MER *)d_bl)->master->bl.id == target->id)
|| (d_bl->type == BL_PC && ((TBL_PC *)d_bl)->devotion[sce->val2] == target->id)) && check_distance_bl(target, d_bl, sce->val3)) {
clif->damage(d_bl, d_bl, 0, 0, hp, 0, 0, 0);
@@ -1200,7 +1206,6 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
status_change_end(target, SC_DEVOTION, INVALID_TIMER);
}
#endif
-
if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
status_change_end(target, SC_STONE, INVALID_TIMER);
status_change_end(target, SC_FREEZE, INVALID_TIMER);
@@ -1264,8 +1269,8 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
unit->stop_walking( target, 1 );
}
- if( st->hp || (flag&8) )
- { //Still lives or has been dead before this damage.
+ if (st->hp || (flag&8)) {
+ //Still lives or has been dead before this damage.
if (walkdelay)
unit->set_walkdelay(target, timer->gettick(), walkdelay, 0);
return (int)(hp+sp);
@@ -1283,7 +1288,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
case BL_HOM: flag = homun->dead((TBL_HOM*)target); break;
case BL_MER: flag = mercenary->dead((TBL_MER*)target); break;
case BL_ELEM: flag = elemental->dead((TBL_ELEM*)target); break;
- default: //Unhandled case, do nothing to object.
+ default: //Unhandled case, do nothing to object.
flag = 0;
break;
}
@@ -1366,10 +1371,10 @@ int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag) {
if (st == &status->dummy || !st->hp)
return 0;
- /* here onwards we consider it a 32-type, the client does not support higher and from here onwards the value doesn't get thru percentage modifiers */
+ /* From here onwards, we consider it a 32-type as the client does not support higher and the value doesn't get through percentage modifiers */
hp = (int)cap_value(in_hp,INT_MIN,INT_MAX);
sp = (int)cap_value(in_sp,INT_MIN,INT_MAX);
-
+
sc = status->get_sc(bl);
if (sc && !sc->count)
sc = NULL;
@@ -1513,13 +1518,12 @@ int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per
if (bl->prev) //Animation only if character is already on a map.
clif->resurrection(bl, 1);
-
+
switch (bl->type) {
case BL_PC: pc->revive((TBL_PC*)bl, hp, sp); break;
case BL_MOB: mob->revive((TBL_MOB*)bl, hp); break;
case BL_HOM: homun->revive((TBL_HOM*)bl, hp, sp); break;
}
-
return 1;
}
@@ -1539,7 +1543,7 @@ int status_fixed_revive(struct block_list *bl, unsigned int per_hp, unsigned int
hp = st->max_hp - st->hp;
else if (per_hp && !hp)
hp = 1;
-
+
if(sp > st->max_sp - st->sp)
sp = st->max_sp - st->sp;
else if (per_sp && !sp)
@@ -1562,9 +1566,9 @@ int status_fixed_revive(struct block_list *bl, unsigned int per_hp, unsigned int
* Checks whether the src can use the skill on the target,
* taking into account status/option of both source/target. [Skotlex]
* flag:
-* 0 - Trying to use skill on target.
-* 1 - Cast bar is done.
-* 2 - Skill already pulled off, check is due to ground-based skills or splash-damage ones.
+* 0 - Trying to use skill on target.
+* 1 - Cast bar is done.
+* 2 - Skill already pulled off, check is due to ground-based skills or splash-damage ones.
* src MAY be null to indicate we shouldn't check it, this is a ground-based skill attack.
* target MAY Be null, in which case the checks are only to see
* whether the source can cast or not the skill on the ground.
@@ -1600,8 +1604,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
if( src->type == BL_PC )
clif->msg((TBL_PC*)src, SKILL_CANT_USE_AREA); // This skill cannot be used within this area
else if( src->type == BL_MOB && map->list[src->m].zone->disabled_skills[i]->subtype != MZS_NONE ) {
- if( (st->mode&MD_BOSS) && !(map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) )
- break;
+ if( st->mode&MD_BOSS ) { /** is boss **/
+ if( !( map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS ) )
+ break;
+ } else { /** is not boss **/
+ if( map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS )
+ break;
+ }
}
return 0;
}
@@ -1692,12 +1701,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
}
}
if ((sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE && skill_id == BD_ADAPTATION)
- return 0; //Can't amp out of Wand of Hermode :/ [Skotlex]
+ return 0; //Can't amp out of Wand of Hermode :/ [Skotlex]
}
if (skill_id && //Do not block item-casted skills.
(src->type != BL_PC || ((TBL_PC*)src)->skillitem != skill_id)
- ) { //Skills blocked through status changes...
+ ) {
+ //Skills blocked through status changes...
if (!flag && ( //Blocked only from using the skill (stuff like autospell may still go through
sc->data[SC_SILENCE] ||
sc->data[SC_STEELBODY] ||
@@ -1789,17 +1799,10 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
//If targeting, cloak+hide protect you, otherwise only hiding does.
hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK);
- //You cannot hide from ground skills.
- if( skill->get_ele(skill_id,1) == ELE_EARTH ) //TODO: Need Skill Lv here :/
+ // Applies even if the target hides
+ if ((skill->get_ele(skill_id,1) == ELE_EARTH && skill_id != MG_STONECURSE) // Ground type
+ || (flag&1 && skill->get_nk(skill_id)&NK_NO_DAMAGE && skill_id != ALL_RESURRECTION)) // Buff/debuff skills started before hiding
hide_flag &= ~OPTION_HIDE;
- else {
- switch ( skill_id ) {
- case MO_ABSORBSPIRITS: // it works when already casted and target suddenly hides.
- case SA_DISPELL:
- hide_flag &= ~OPTION_HIDE;
- break;
- }
- }
switch( target->type ) {
case BL_PC: {
@@ -1820,7 +1823,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
}
}
break;
- case BL_ITEM: //Allow targeting of items to pick'em up (or in the case of mobs, to loot them).
+ case BL_ITEM:
+ //Allow targeting of items to pick'em up (or in the case of mobs, to loot them).
//TODO: Would be nice if this could be used to judge whether the player can or not pick up the item it targets. [Skotlex]
if (st->mode&MD_LOOTER)
return 1;
@@ -1847,226 +1851,6 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
return 1;
}
-//Checks whether the source can see and chase target.
-int status_check_visibility(struct block_list *src, struct block_list *target) {
- int view_range;
- struct status_change *tsc = NULL;
-
- switch (src->type) {
- case BL_MOB:
- view_range = ((TBL_MOB*)src)->min_chase;
- break;
- case BL_PET:
- view_range = ((TBL_PET*)src)->db->range2;
- break;
- default:
- view_range = AREA_SIZE;
- }
-
- if (src->m != target->m || !check_distance_bl(src, target, view_range))
- return 0;
-
- if( src->type == BL_NPC ) /* NPCs don't care for the rest */
- return 1;
-
- if( ( tsc = status->get_sc(target) ) ) {
- struct status_data *st = status->get_status_data(src);
-
- switch (target->type) { //Check for chase-walk/hiding/cloaking opponents.
- case BL_PC:
- if ( tsc->data[SC_CLOAKINGEXCEED] && !(st->mode&MD_BOSS) )
- return 0;
- if( (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC_STEALTHFIELD] || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&MD_BOSS) &&
- ( ((TBL_PC*)target)->special_state.perfect_hiding || !(st->mode&MD_DETECTOR) ) )
- return 0;
- break;
- default:
- if( (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&(MD_BOSS|MD_DETECTOR)) )
- return 0;
-
- }
- }
-
- return 1;
-}
-
-// Basic ASPD value
-int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) {
- int amotion;
-#ifdef RENEWAL_ASPD
- short mod = -1;
-
- switch( sd->weapontype2 ){ // adjustment for dual wielding
- case W_DAGGER: mod = 0; break; // 0, 1, 1
- case W_1HSWORD:
- case W_1HAXE: mod = 1;
- if( (sd->class_&MAPID_THIRDMASK) == MAPID_GUILLOTINE_CROSS ) // 0, 2, 3
- mod = sd->weapontype2 / W_1HSWORD + W_1HSWORD / sd->weapontype2 ;
- }
-
- amotion = ( sd->status.weapon < MAX_WEAPON_TYPE && mod < 0 )
- ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon
- : ((status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] // dual-wield
- + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]) * 6 / 10 + 10 * mod
- - status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]
- + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1]);
-
- if ( sd->status.shield )
- amotion += ( 2000 - status->aspd_base[pc->class2idx(sd->status.class_)][W_FIST] ) +
- ( status->aspd_base[pc->class2idx(sd->status.class_)][MAX_WEAPON_TYPE] - 2000 );
-
-#else
- // base weapon delay
- amotion = (sd->status.weapon < MAX_WEAPON_TYPE)
- ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon
- : (status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1] + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2])*7/10; // dual-wield
-
- // percentual delay reduction from stats
- amotion -= amotion * (4*st->agi + st->dex)/1000;
-#endif
-
- // raw delay adjustment from bAspd bonus
- amotion += sd->bonus.aspd_add;
-
- /* angra manyu disregards aspd_base and similar */
- if( sd->equip_index[EQI_HAND_R] >= 0 && sd->status.inventory[sd->equip_index[EQI_HAND_R]].nameid == ITEMID_ANGRA_MANYU )
- return 0;
-
- return amotion;
-}
-
-unsigned short status_base_atk(const struct block_list *bl, const struct status_data *st) {
- int flag = 0, str, dex,
-#ifdef RENEWAL
- rstr,
-#endif
- dstr;
-
-
- if(!(bl->type&battle_config.enable_baseatk))
- return 0;
-
- if (bl->type == BL_PC)
- switch(((TBL_PC*)bl)->status.weapon){
- case W_BOW:
- case W_MUSICAL:
- case W_WHIP:
- case W_REVOLVER:
- case W_RIFLE:
- case W_GATLING:
- case W_SHOTGUN:
- case W_GRENADE:
- flag = 1;
- }
- if (flag) {
-#ifdef RENEWAL
- rstr =
-#endif
- str = st->dex;
- dex = st->str;
- } else {
-#ifdef RENEWAL
- rstr =
-#endif
- str = st->str;
- dex = st->dex;
- }
- //Normally only players have base-atk, but homunc have a different batk
- // equation, hinting that perhaps non-players should use this for batk.
- // [Skotlex]
- dstr = str/10;
- str += dstr*dstr;
- if (bl->type == BL_PC)
-#ifdef RENEWAL
- str = (int)(rstr + (float)dex/5 + (float)st->luk/3 + (float)((TBL_PC*)bl)->status.base_level/4);
- else if(bl->type == BL_MOB)
- str = rstr + ((TBL_MOB*)bl)->level;
-#else
- str+= dex/5 + st->luk/5;
-#endif
- return cap_value(str, 0, USHRT_MAX);
-}
-
-#ifndef RENEWAL
-static inline unsigned short status_base_matk_min(const struct status_data *st){ return st->int_+(st->int_/7)*(st->int_/7); }
-#endif // not RENEWAL
-static inline unsigned short status_base_matk_max(const struct status_data *st){ return st->int_+(st->int_/5)*(st->int_/5); }
-
-unsigned short status_base_matk(const struct status_data *st, int level) {
-#ifdef RENEWAL
- return st->int_+(st->int_/2)+(st->dex/5)+(st->luk/3)+(level/4);
-#else
- return 0;
-#endif
-}
-
-//Fills in the misc data that can be calculated from the other status info (except for level)
-void status_calc_misc(struct block_list *bl, struct status_data *st, int level) {
- //Non players get the value set, players need to stack with previous bonuses.
- if( bl->type != BL_PC )
- st->batk =
- st->hit = st->flee =
- st->def2 = st->mdef2 =
- st->cri = st->flee2 = 0;
-
-#ifdef RENEWAL // renewal formulas
- st->matk_min = st->matk_max = bl->type == BL_PC ? status->base_matk(st, level) : level + st->int_;
- st->hit += level + st->dex + (bl->type == BL_PC ? st->luk/3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
- st->flee += level + st->agi + (bl->type == BL_PC ? st->luk/5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
- st->def2 += (int)(((float)level + st->vit)/2 + ( bl->type == BL_PC ? ((float)st->agi/5) : 0 )); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
- st->mdef2 += (int)( bl->type == BL_PC ?(st->int_ + ((float)level/4) + ((float)(st->dex+st->vit)/5)):((float)(st->int_ + level)/4)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
-#else // not RENEWAL
- st->matk_min = status_base_matk_min(st);
- st->matk_max = status_base_matk_max(st);
- st->hit += level + st->dex;
- st->flee += level + st->agi;
- st->def2 += st->vit;
- st->mdef2 += st->int_ + (st->vit>>1);
-#endif // RENEWAL
-
- if( bl->type&battle_config.enable_critical )
- st->cri += 10 + (st->luk*10/3); //(every 1 luk = +0.3 critical)
- else
- st->cri = 0;
-
- if (bl->type&battle_config.enable_perfect_flee)
- st->flee2 += st->luk + 10; //(every 10 luk = +1 perfect flee)
- else
- st->flee2 = 0;
-
- if (st->batk) {
- int temp = st->batk + status->base_atk(bl, st);
- st->batk = cap_value(temp, 0, USHRT_MAX);
- } else
- st->batk = status->base_atk(bl, st);
- if (st->cri)
- switch (bl->type) {
- case BL_MOB:
- if(battle_config.mob_critical_rate != 100)
- st->cri = st->cri*battle_config.mob_critical_rate/100;
- if(!st->cri && battle_config.mob_critical_rate)
- st->cri = 10;
- break;
- case BL_PC:
- //Players don't have a critical adjustment setting as of yet.
- break;
- case BL_MER:
-#ifdef RENEWAL
- st->matk_min = st->matk_max = status_base_matk_max(st);
- st->def2 = st->vit + level / 10 + st->vit / 5;
- st->mdef2 = level / 10 + st->int_ / 5;
-#endif
- break;
- default:
- if(battle_config.critical_rate != 100)
- st->cri = st->cri*battle_config.critical_rate/100;
- if (!st->cri && battle_config.critical_rate)
- st->cri = 10;
- }
- if(bl->type&BL_REGEN)
- status->calc_regen(bl, st, status->get_regen_data(bl));
-}
-
//Skotlex: Calculates the initial status for the given mob
//first will only be false when the mob leveled up or got a GuardUp level.
int status_calc_mob_(struct mob_data* md, enum e_status_calc_opt opt) {
@@ -2169,7 +1953,7 @@ int status_calc_mob_(struct mob_data* md, enum e_status_calc_opt opt) {
if (flag&2 && battle_config.mob_size_influence) {
// change for sized monsters [Valaris]
- if (md->special_state.size==SZ_SMALL) {
+ if (md->special_state.size==SZ_MEDIUM) {
mstatus->max_hp>>=1;
mstatus->max_sp>>=1;
if (!mstatus->max_hp) mstatus->max_hp = 1;
@@ -2204,8 +1988,8 @@ int status_calc_mob_(struct mob_data* md, enum e_status_calc_opt opt) {
status->calc_misc(&md->bl, mstatus, md->level);
- if(flag&4)
- { // Strengthen Guardians - custom value +10% / lv
+ if (flag&4) {
+ // Strengthen Guardians - custom value +10% / lv
struct guild_castle *gc;
gc=guild->mapname2gc(map->list[md->bl.m].name);
if (!gc)
@@ -2286,7 +2070,7 @@ int status_calc_pet_(struct pet_data *pd, enum e_status_calc_opt opt)
status->calc_misc(&pd->bl, &pd->status, lv);
- if (! (opt&SCO_FIRST) ) //Not done the first time because the pet is not visible yet
+ if (! (opt&SCO_FIRST) ) //Not done the first time because the pet is not visible yet
clif->send_petstatus(sd);
}
} else if ( opt&SCO_FIRST ) {
@@ -2385,7 +2169,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
b_max_weight = sd->max_weight;
b_cart_weight_max = sd->cart_weight_max;
- pc->calc_skilltree(sd); // SkillTree calculation
+ pc->calc_skilltree(sd); // SkillTree calculation
sd->max_weight = status->max_weight_base[pc->class2idx(sd->status.class_)]+sd->status.str*300;
@@ -2461,7 +2245,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
clif->sc_end(&sd->bl,sd->bl.id,SELF,SI_CLAIRVOYANCE);
memset(&sd->special_state,0,sizeof(sd->special_state));
-
+
if (!sd->state.permanent_speed) {
memset(&bstatus->max_hp, 0, sizeof(struct status_data)-(sizeof(bstatus->hp)+sizeof(bstatus->sp)));
bstatus->speed = DEFAULT_WALK_SPEED;
@@ -2470,19 +2254,20 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
memset(&bstatus->max_hp, 0, sizeof(struct status_data)-(sizeof(bstatus->hp)+sizeof(bstatus->sp)));
bstatus->speed = pSpeed;
}
-
+
//FIXME: Most of these stuff should be calculated once, but how do I fix the memset above to do that? [Skotlex]
//Give them all modes except these (useful for clones)
bstatus->mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK);
- bstatus->size = (sd->class_&JOBL_BABY)?SZ_MEDIUM:SZ_SMALL;
- if (battle_config.character_size && (pc_isriding(sd) || pc_isridingdragon(sd)) ) { //[Lupus]
+ bstatus->size = (sd->class_&JOBL_BABY)?SZ_SMALL:SZ_MEDIUM;
+ if (battle_config.character_size && (pc_isridingpeco(sd) || pc_isridingdragon(sd))) { //[Lupus]
if (sd->class_&JOBL_BABY) {
if (battle_config.character_size&SZ_BIG)
bstatus->size++;
- } else
- if(battle_config.character_size&SZ_SMALL)
+ } else {
+ if(battle_config.character_size&SZ_MEDIUM)
bstatus->size++;
+ }
}
bstatus->aspd_rate = 1000;
bstatus->ele_lv = 1;
@@ -2557,8 +2342,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
bstatus->def += sd->inventory_data[index]->def;
- if(opt&SCO_FIRST && sd->inventory_data[index]->equip_script)
- { //Execute equip-script on login
+ if (opt&SCO_FIRST && sd->inventory_data[index]->equip_script) {
+ //Execute equip-script on login
script->run(sd->inventory_data[index]->equip_script,0,sd->bl.id,0);
if (!calculating)
return 1;
@@ -2608,8 +2393,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
return 1;
}
- if(sd->status.inventory[index].card[0]==CARD0_FORGE)
- { // Forged weapon
+ if (sd->status.inventory[index].card[0]==CARD0_FORGE) {
+ // Forged weapon
wd->star += (sd->status.inventory[index].card[1]>>8);
if(wd->star >= 15) wd->star = 40; // 3 Star Crumbs now give +40 dmg
if(pc->famerank(MakeDWord(sd->status.inventory[index].card[2],sd->status.inventory[index].card[3]) ,MAPID_BLACKSMITH))
@@ -2637,7 +2422,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
if(sd->equip_index[EQI_AMMO] >= 0){
index = sd->equip_index[EQI_AMMO];
- if(sd->inventory_data[index]){ // Arrows
+ if (sd->inventory_data[index]) {
+ // Arrows
sd->bonus.arrow_atk += sd->inventory_data[index]->atk;
sd->state.lr_flag = 2;
if( !itemdb_is_GNthrowable(sd->inventory_data[index]->nameid) ) //don't run scripts on throwable items
@@ -2652,7 +2438,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
for( i = 0; i < sd->combo_count; i++ ) {
struct item_combo *combo = itemdb->id2combo(sd->combos[i].id);
unsigned char j;
-
+
/**
* ensure combo usage is allowed at this location
**/
@@ -2665,10 +2451,10 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
if( k != map->list[sd->bl.m].zone->disabled_items_count )
break;
}
-
+
if( j != combo->count )
continue;
-
+
script->run(sd->combos[i].bonus,0,sd->bl.id,0);
if (!calculating) //Abort, script->run retriggered this.
return 1;
@@ -2771,9 +2557,10 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->left_weapon.atkmods[1] = status->atkmods[1][sd->weapontype2];
sd->left_weapon.atkmods[2] = status->atkmods[2][sd->weapontype2];
- if( (pc_isriding(sd) || pc_isridingdragon(sd)) &&
- (sd->status.weapon==W_1HSPEAR || sd->status.weapon==W_2HSPEAR))
- { //When Riding with spear, damage modifier to mid-class becomes
+ if ((pc_isridingpeco(sd) || pc_isridingdragon(sd))
+ && (sd->status.weapon==W_1HSPEAR || sd->status.weapon==W_2HSPEAR)
+ ) {
+ //When Riding with spear, damage modifier to mid-class becomes
//same as versus large size.
sd->right_weapon.atkmods[1] = sd->right_weapon.atkmods[2];
sd->left_weapon.atkmods[1] = sd->left_weapon.atkmods[2];
@@ -3053,9 +2840,9 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
if((skill_lv=pc->checkskill(sd,GS_SINGLEACTION))>0 &&
(sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE))
bstatus->aspd_rate -= ((skill_lv+1)/2) * 10;
- if(pc_isriding(sd))
+ if (pc_isridingpeco(sd))
bstatus->aspd_rate += 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
- else if(pc_isridingdragon(sd))
+ else if (pc_isridingdragon(sd))
bstatus->aspd_rate += 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
#else // needs more info
if((skill_lv=pc->checkskill(sd,SA_ADVANCEDBOOK))>0 && sd->status.weapon == W_BOOK)
@@ -3065,9 +2852,9 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
if((skill_lv=pc->checkskill(sd,GS_SINGLEACTION))>0 &&
(sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE))
bstatus->aspd_rate += ((skill_lv+1)/2) * 10;
- if(pc_isriding(sd))
+ if (pc_isridingpeco(sd))
bstatus->aspd_rate -= 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
- else if(pc_isridingdragon(sd))
+ else if (pc_isridingdragon(sd))
bstatus->aspd_rate -= 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
#endif
bstatus->adelay = 2*bstatus->amotion;
@@ -3085,7 +2872,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
// Weight
if((skill_lv=pc->checkskill(sd,MC_INCCARRY))>0)
sd->max_weight += 2000*skill_lv;
- if(pc_isriding(sd) && pc->checkskill(sd,KN_RIDING)>0)
+ if (pc_isridingpeco(sd) && pc->checkskill(sd,KN_RIDING) > 0)
sd->max_weight += 10000;
else if(pc_isridingdragon(sd))
sd->max_weight += 5000+2000*pc->checkskill(sd,RK_DRAGONTRAINING);
@@ -3178,7 +2965,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) {
sd->subele[ELE_HOLY] += sc->data[SC_PROVIDENCE]->val2;
sd->subrace[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
}
- if(sc->data[SC_ARMORPROPERTY]) { //This status change should grant card-type elemental resist.
+ if(sc->data[SC_ARMORPROPERTY]) {
+ //This status change should grant card-type elemental resist.
sd->subele[ELE_WATER] += sc->data[SC_ARMORPROPERTY]->val1;
sd->subele[ELE_EARTH] += sc->data[SC_ARMORPROPERTY]->val2;
sd->subele[ELE_FIRE] += sc->data[SC_ARMORPROPERTY]->val3;
@@ -3265,94 +3053,17 @@ int status_calc_mercenary_(struct mercenary_data *md, enum e_status_calc_opt opt
return 0;
}
-int status_calc_homunculus_(struct homun_data *hd, enum e_status_calc_opt opt) {
- struct status_data *hstatus = &hd->base_status;
- struct s_homunculus *hom = &hd->homunculus;
- int skill_lv;
- int amotion;
-
- hstatus->str = hom->str / 10;
- hstatus->agi = hom->agi / 10;
- hstatus->vit = hom->vit / 10;
- hstatus->dex = hom->dex / 10;
- hstatus->int_ = hom->int_ / 10;
- hstatus->luk = hom->luk / 10;
-
- if ( opt&SCO_FIRST ) { //[orn]
- const struct s_homunculus_db *db = hd->homunculusDB;
- hstatus->def_ele = db->element;
- hstatus->ele_lv = 1;
- hstatus->race = db->race;
- hstatus->size = (hom->class_ == db->evo_class)?db->evo_size:db->base_size;
- hstatus->rhw.range = 1 + hstatus->size;
- hstatus->mode = MD_CANMOVE|MD_CANATTACK;
- hstatus->speed = DEFAULT_WALK_SPEED;
- if (battle_config.hom_setting&0x8 && hd->master)
- hstatus->speed = status->get_speed(&hd->master->bl);
-
- hstatus->hp = 1;
- hstatus->sp = 1;
- }
- skill_lv = hom->level/10 + hstatus->vit/5;
- hstatus->def = cap_value(skill_lv, 0, 99);
-
- skill_lv = hom->level/10 + hstatus->int_/5;
- hstatus->mdef = cap_value(skill_lv, 0, 99);
-
- hstatus->max_hp = hom->max_hp;
- hstatus->max_sp = hom->max_sp;
-
- homun->calc_skilltree(hd, 0);
-
- if((skill_lv=homun->checkskill(hd,HAMI_SKIN)) > 0)
- hstatus->def += skill_lv * 4;
-
- if((skill_lv = homun->checkskill(hd,HVAN_INSTRUCT)) > 0) {
- hstatus->int_ += 1 +skill_lv/2 +skill_lv/4 +skill_lv/5;
- hstatus->str += 1 +skill_lv/3 +skill_lv/3 +skill_lv/4;
- }
-
- if((skill_lv=homun->checkskill(hd,HAMI_SKIN)) > 0)
- hstatus->max_hp += skill_lv * 2 * hstatus->max_hp / 100;
-
- if((skill_lv = homun->checkskill(hd,HLIF_BRAIN)) > 0)
- hstatus->max_sp += (1 +skill_lv/2 -skill_lv/4 +skill_lv/5) * hstatus->max_sp / 100;
-
- if ( opt&SCO_FIRST ) {
- hd->battle_status.hp = hom->hp;
- hd->battle_status.sp = hom->sp;
- }
-
- hstatus->rhw.atk = hstatus->dex;
- hstatus->rhw.atk2 = hstatus->str + hom->level;
-
- hstatus->aspd_rate = 1000;
-
- amotion = (1000 -4*hstatus->agi -hstatus->dex) * hd->homunculusDB->baseASPD/1000;
- hstatus->amotion = cap_value(amotion,battle_config.max_aspd,2000);
- hstatus->adelay = hstatus->amotion; //It seems adelay = amotion for Homunculus.
-
- status->calc_misc(&hd->bl, hstatus, hom->level);
-
-#ifdef RENEWAL
- hstatus->matk_max = hstatus->matk_min;
-#endif
-
- status_cpy(&hd->battle_status, hstatus);
- return 1;
-}
-
int status_calc_elemental_(struct elemental_data *ed, enum e_status_calc_opt opt) {
struct status_data *estatus = &ed->base_status;
struct s_elemental *ele = &ed->elemental;
struct map_session_data *sd = ed->master;
- if( !sd )
+ if ( !sd )
return 0;
- if( opt&SCO_FIRST ) {
+ if ( opt&SCO_FIRST ) {
memcpy(estatus, &ed->db->status, sizeof(struct status_data));
- if( !ele->mode )
+ if ( !ele->mode )
estatus->mode = EL_MODE_PASSIVE;
else
estatus->mode = ele->mode;
@@ -3372,7 +3083,7 @@ int status_calc_elemental_(struct elemental_data *ed, enum e_status_calc_opt opt
estatus->flee = ele->flee;
estatus->hit = ele->hit;
- memcpy(&ed->battle_status,estatus,sizeof(struct status_data));
+ memcpy(&ed->battle_status, estatus, sizeof(struct status_data));
} else {
status->calc_misc(&ed->bl, estatus, 0);
status_cpy(&ed->battle_status, estatus);
@@ -3415,6 +3126,89 @@ int status_calc_npc_(struct npc_data *nd, enum e_status_calc_opt opt) {
return 0;
}
+int status_calc_homunculus_(struct homun_data *hd, enum e_status_calc_opt opt) {
+ struct status_data *hstatus = &hd->base_status;
+ struct s_homunculus *hom = &hd->homunculus;
+ int skill_lv;
+ int amotion;
+
+ hstatus->str = hom->str / 10;
+ hstatus->agi = hom->agi / 10;
+ hstatus->vit = hom->vit / 10;
+ hstatus->dex = hom->dex / 10;
+ hstatus->int_ = hom->int_ / 10;
+ hstatus->luk = hom->luk / 10;
+
+ APPLY_HOMUN_LEVEL_STATWEIGHT();
+
+ if ( opt&SCO_FIRST ) { //[orn]
+ const struct s_homunculus_db *db = hd->homunculusDB;
+ hstatus->def_ele = db->element;
+ hstatus->ele_lv = 1;
+ hstatus->race = db->race;
+ hstatus->size = (hom->class_ == db->evo_class) ? db->evo_size : db->base_size;
+ hstatus->rhw.range = 1 + hstatus->size;
+ hstatus->mode = MD_CANMOVE | MD_CANATTACK;
+ hstatus->speed = DEFAULT_WALK_SPEED;
+ if ( battle_config.hom_setting & 0x8 && hd->master )
+ hstatus->speed = status->get_speed(&hd->master->bl);
+
+ hstatus->hp = 1;
+ hstatus->sp = 1;
+ }
+
+ hstatus->aspd_rate = 1000;
+
+#ifdef RENEWAL
+ amotion = hd->homunculusDB->baseASPD;
+ amotion = amotion - amotion * (hstatus->dex + hom->dex_value) / 1000 - (hstatus->agi + hom->agi_value) * amotion / 250;
+#else
+ skill_lv = hom->level / 10 + hstatus->vit / 5;
+ hstatus->def = cap_value(skill_lv, 0, 99);
+
+ skill_lv = hom->level / 10 + hstatus->int_ / 5;
+ hstatus->mdef = cap_value(skill_lv, 0, 99);
+ amotion = (1000 - 4 * hstatus->agi - hstatus->dex) * hd->homunculusDB->baseASPD / 1000;
+#endif
+
+ hstatus->amotion = cap_value(amotion, battle_config.max_aspd, 2000);
+ hstatus->adelay = hstatus->amotion; //It seems adelay = amotion for Homunculus.
+
+
+ hstatus->max_hp = hom->max_hp;
+ hstatus->max_sp = hom->max_sp;
+
+ homun->calc_skilltree(hd, 0);
+
+ if ( (skill_lv = homun->checkskill(hd, HAMI_SKIN)) > 0 )
+ hstatus->def += skill_lv * 4;
+
+ if ( (skill_lv = homun->checkskill(hd, HVAN_INSTRUCT)) > 0 ) {
+ hstatus->int_ += 1 + skill_lv / 2 + skill_lv / 4 + skill_lv / 5;
+ hstatus->str += 1 + skill_lv / 3 + skill_lv / 3 + skill_lv / 4;
+ }
+
+ if ( (skill_lv = homun->checkskill(hd, HAMI_SKIN)) > 0 )
+ hstatus->max_hp += skill_lv * 2 * hstatus->max_hp / 100;
+
+ if ( (skill_lv = homun->checkskill(hd, HLIF_BRAIN)) > 0 )
+ hstatus->max_sp += (1 + skill_lv / 2 - skill_lv / 4 + skill_lv / 5) * hstatus->max_sp / 100;
+
+ if ( opt&SCO_FIRST ) {
+ hd->battle_status.hp = hom->hp;
+ hd->battle_status.sp = hom->sp;
+ }
+
+#ifndef RENEWAL
+ hstatus->rhw.atk = hstatus->dex;
+ hstatus->rhw.atk2 = hstatus->str + hom->level;
+#endif
+
+ status->calc_misc(&hd->bl, hstatus, hom->level);
+
+ status_cpy(&hd->battle_status, hstatus);
+ return 1;
+}
//Calculates base regen values.
void status_calc_regen(struct block_list *bl, struct status_data *st, struct regen_data *regen) {
@@ -3554,8 +3348,8 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
|| sc->data[SC_MAGICMUSHROOM]
|| sc->data[SC_RAISINGDRAGON]
|| sc->data[SC_SATURDAY_NIGHT_FEVER]
- ) //No regen
- regen->flag = 0;
+ )
+ regen->flag = 0; //No regen
if ( sc->data[SC_DANCING] || sc->data[SC_OBLIVIONCURSE] || sc->data[SC_MAXIMIZEPOWER] || sc->data[SC_REBOUND]
|| ( bl->type == BL_PC && (((TBL_PC*)bl)->class_&MAPID_UPPERMASK) == MAPID_MONK
@@ -3583,8 +3377,7 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
regen->flag&=~sce->val4; //Remove regen as specified by val4
}
if(sc->data[SC_GENTLETOUCH_REVITALIZE]) {
- regen->hp = cap_value(regen->hp*sc->data[SC_GENTLETOUCH_REVITALIZE]->val3/100, 1, SHRT_MAX);
- regen->state.walk= 1;
+ regen->hp += regen->hp * ( 30 * sc->data[SC_GENTLETOUCH_REVITALIZE]->val1 + 50 ) / 100;
}
if ((sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 1) //if insignia lvl 1
|| (sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 1)
@@ -3610,6 +3403,21 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
if (!bst || !st)
return;
+ /** [Playtester]
+ * This needs to be done even if there is currently no status change active, because
+ * we need to update the speed on the client when the last status change ends.
+ **/
+ if(flag&SCB_SPEED) {
+ struct unit_data *ud = unit->bl2ud(bl);
+ /** [Skotlex]
+ * Re-walk to adjust speed (we do not check if walktimer != INVALID_TIMER
+ * because if you step on something while walking, the moment this
+ * piece of code triggers the walk-timer is set on INVALID_TIMER)
+ **/
+ if (ud)
+ ud->state.change_walk_target = ud->state.speed_changed = 1;
+ }
+
if((!(bl->type&BL_REGEN)) && (!sc || !sc->count)) { //No difference.
status_cpy(st, bst);
return;
@@ -3698,13 +3506,6 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
st->lhw.atk2 = status->calc_watk(bl, sc, bst->lhw.atk2, true);
}
}
-
- if( bl->type&BL_HOM ) {
- st->rhw.atk += (st->dex - bst->dex);
- st->rhw.atk2 += (st->str - bst->str);
- if( st->rhw.atk2 < st->rhw.atk )
- st->rhw.atk2 = st->rhw.atk;
- }
}
if(flag&SCB_HIT) {
@@ -3786,16 +3587,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
}
if(flag&SCB_SPEED) {
- struct unit_data *ud = unit->bl2ud(bl);
st->speed = status->calc_speed(bl, sc, bst->speed);
- //Re-walk to adjust speed (we do not check if walktimer != INVALID_TIMER
- //because if you step on something while walking, the moment this
- //piece of code triggers the walk-timer is set on INVALID_TIMER) [Skotlex]
- if (ud)
- ud->state.change_walk_target = ud->state.speed_changed = 1;
-
if( bl->type&BL_PC && !(sd && sd->state.permanent_speed) && st->speed < battle_config.max_walk_speed )
st->speed = battle_config.max_walk_speed;
@@ -3845,9 +3639,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
}
// No status changes alter these yet.
- // if(flag&SCB_SIZE)
- // if(flag&SCB_RACE)
- // if(flag&SCB_RANGE)
+ //if(flag&SCB_SIZE)
+ //if(flag&SCB_RACE)
+ //if(flag&SCB_RANGE)
if(flag&SCB_MAXHP) {
if( bl->type&BL_PC ) {
@@ -3891,76 +3685,82 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
if(flag&SCB_MATK) {
status->update_matk(bl);
}
+
+ if ( flag&SCB_DSPD ) {
+ int dmotion;
+ if ( bl->type&BL_PC ) {
+ if (bst->agi == st->agi)
+ st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
+ else {
+ dmotion = 800-st->agi*4;
+ st->dmotion = cap_value(dmotion, 400, 800);
+ if ( battle_config.pc_damage_delay_rate != 100 )
+ st->dmotion = st->dmotion*battle_config.pc_damage_delay_rate / 100;
+ //It's safe to ignore bst->dmotion since no bonus affects it.
+ st->dmotion = status->calc_dmotion(bl, sc, st->dmotion);
+ }
+ } else if ( bl->type&BL_HOM ) {
+ dmotion = 800 - st->agi * 4;
+ st->dmotion = cap_value(dmotion, 400, 800);
+ st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
+ } else { // mercenary and mobs
+ st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
+ }
+ }
if(flag&SCB_ASPD) {
int amotion;
- if( bl->type&BL_PC ) {
- amotion = status->base_amotion_pc(sd,st);
-#ifndef RENEWAL_ASPD
- st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate);
-
- if(st->aspd_rate != 1000)
- amotion = amotion*st->aspd_rate/1000;
+ if ( bl->type&BL_HOM ) {
+#ifdef RENEWAL
+ amotion = ((TBL_HOM*)bl)->homunculusDB->baseASPD;
+ amotion = amotion - amotion * status_get_homdex(bl) / 1000 - status_get_homagi(bl) * amotion / 250;
+ amotion = (amotion * status->calc_aspd(bl, sc, 1) + status->calc_aspd(bl, sc, 2)) / -100 + amotion;
#else
- // aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200))
- amotion -= (int)(sqrt( (pow(st->agi, 2) / 2) + (pow(st->dex, 2) / 5) ) / 4 + ((float)status->calc_aspd(bl, sc, 1) * st->agi / 200)) * 10;
+ amotion = (1000 - 4 * st->agi - st->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD / 1000;
- if( (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) != 0 ) // RE ASPD percertage modifier
- amotion -= (( amotion - ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd) )
- * (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) / 10 + 5) / 10;
+ amotion = status->calc_aspd_rate(bl, sc, bst->aspd_rate);
- if(st->aspd_rate != 1000) // absolute percentage modifier
- amotion = ( 200 - (200-amotion/10) * st->aspd_rate / 1000 ) * 10;
+ if ( st->aspd_rate != 1000 )
+ amotion = amotion*st->aspd_rate / 1000;
#endif
amotion = status->calc_fix_aspd(bl, sc, amotion);
- st->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
+ st->amotion = cap_value(amotion, battle_config.max_aspd, 2000);
- st->adelay = 2*st->amotion;
- } else if( bl->type&BL_HOM ) {
- amotion = (1000 - 4*st->agi - st->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD/1000;
+ st->adelay = st->amotion;
+ } else if ( bl->type&BL_PC ) {
+ amotion = status->base_amotion_pc(sd, st);
+#ifndef RENEWAL_ASPD
st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate);
if(st->aspd_rate != 1000)
amotion = amotion*st->aspd_rate/1000;
+#else
+ // aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200))
+ amotion -= (int)(sqrt((pow(st->agi, 2) / 2) + (pow(st->dex, 2) / 5)) / 4 + ((float)status->calc_aspd(bl, sc, 1) * st->agi / 200)) * 10;
+
+ if ( (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) != 0 ) // RE ASPD percertage modifier
+ amotion -= ((amotion - ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd))
+ * (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) / 10 + 5) / 10;
+ if ( st->aspd_rate != 1000 ) // absolute percentage modifier
+ amotion = (200 - (200 - amotion / 10) * st->aspd_rate / 1000) * 10;
+#endif
amotion = status->calc_fix_aspd(bl, sc, amotion);
- st->amotion = cap_value(amotion,battle_config.max_aspd,2000);
+ st->amotion = cap_value(amotion, ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd), 2000);
- st->adelay = st->amotion;
+ st->adelay = 2 * st->amotion;
} else { // mercenary and mobs
amotion = bst->amotion;
st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate);
- if(st->aspd_rate != 1000)
- amotion = amotion*st->aspd_rate/1000;
+ if ( st->aspd_rate != 1000 )
+ amotion = amotion*st->aspd_rate / 1000;
amotion = status->calc_fix_aspd(bl, sc, amotion);
st->amotion = cap_value(amotion, battle_config.monster_max_aspd, 2000);
- temp = bst->adelay*st->aspd_rate/1000;
- st->adelay = cap_value(temp, battle_config.monster_max_aspd*2, 4000);
- }
- }
-
- if(flag&SCB_DSPD) {
- int dmotion;
- if( bl->type&BL_PC ) {
- if (bst->agi == st->agi)
- st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
- else {
- dmotion = 800-st->agi*4;
- st->dmotion = cap_value(dmotion, 400, 800);
- if(battle_config.pc_damage_delay_rate != 100)
- st->dmotion = st->dmotion*battle_config.pc_damage_delay_rate/100;
- //It's safe to ignore bst->dmotion since no bonus affects it.
- st->dmotion = status->calc_dmotion(bl, sc, st->dmotion);
- }
- } else if( bl->type&BL_HOM ) {
- dmotion = 800-st->agi*4;
- st->dmotion = cap_value(dmotion, 400, 800);
- st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
- } else { // mercenary and mobs
- st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion);
+ temp = bst->adelay*st->aspd_rate / 1000;
+ st->adelay = cap_value(temp, battle_config.monster_max_aspd * 2, 4000);
}
}
@@ -3986,7 +3786,7 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, enum e_status_ca
return;
}
}
-
+
// remember previous values
st = status->get_status_data(bl);
memcpy(&bst, st, sizeof(struct status_data));
@@ -4006,8 +3806,12 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, enum e_status_ca
if( bl->type == BL_PET )
return; // pets are not affected by statuses
- if( opt&SCO_FIRST && bl->type == BL_MOB )
+ if( opt&SCO_FIRST && bl->type == BL_MOB ) {
+#ifdef RENEWAL
+ status->update_matk(bl); // Otherwise, the mob will spawn with lower MATK values
+#endif
return; // assume there will be no statuses active
+ }
status->calc_bl_main(bl, flag);
@@ -4148,6 +3952,245 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, enum e_status_ca
clif->mercenary_updatestatus(ed->master, SP_SP);
}
}
+//Checks whether the source can see and chase target.
+int status_check_visibility(struct block_list *src, struct block_list *target) {
+ int view_range;
+ struct status_change *tsc = NULL;
+
+ switch ( src->type ) {
+ case BL_MOB:
+ view_range = ((TBL_MOB*)src)->min_chase;
+ break;
+ case BL_PET:
+ view_range = ((TBL_PET*)src)->db->range2;
+ break;
+ default:
+ view_range = AREA_SIZE;
+ }
+
+ if ( src->m != target->m || !check_distance_bl(src, target, view_range) )
+ return 0;
+
+ if ( src->type == BL_NPC ) /* NPCs don't care for the rest */
+ return 1;
+
+ if ( (tsc = status->get_sc(target)) ) {
+ struct status_data *st = status->get_status_data(src);
+
+ switch ( target->type ) { //Check for chase-walk/hiding/cloaking opponents.
+ case BL_PC:
+ if ( tsc->data[SC_CLOAKINGEXCEED] && !(st->mode&MD_BOSS) )
+ return 0;
+ if ( (tsc->option&(OPTION_HIDE | OPTION_CLOAK | OPTION_CHASEWALK) || tsc->data[SC_STEALTHFIELD] || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&MD_BOSS) &&
+ (((TBL_PC*)target)->special_state.perfect_hiding || !(st->mode&MD_DETECTOR)) )
+ return 0;
+ break;
+ default:
+ if ( (tsc->option&(OPTION_HIDE | OPTION_CLOAK | OPTION_CHASEWALK) || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&(MD_BOSS | MD_DETECTOR)) )
+ return 0;
+
+ }
+ }
+
+ return 1;
+}
+
+// Basic ASPD value
+int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) {
+ int amotion;
+#ifdef RENEWAL_ASPD
+ short mod = -1;
+
+ switch ( sd->weapontype2 ) { // adjustment for dual wielding
+ case W_DAGGER:
+ mod = 0;
+ break; // 0, 1, 1
+ case W_1HSWORD:
+ case W_1HAXE:
+ mod = 1;
+ if ( (sd->class_&MAPID_THIRDMASK) == MAPID_GUILLOTINE_CROSS ) // 0, 2, 3
+ mod = sd->weapontype2 / W_1HSWORD + W_1HSWORD / sd->weapontype2;
+ }
+
+ amotion = (sd->status.weapon < MAX_WEAPON_TYPE && mod < 0)
+ ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon
+ : ((status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] // dual-wield
+ + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]) * 6 / 10 + 10 * mod
+ - status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]
+ + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1]);
+
+ if ( sd->status.shield )
+ amotion += (2000 - status->aspd_base[pc->class2idx(sd->status.class_)][W_FIST]) +
+ (status->aspd_base[pc->class2idx(sd->status.class_)][MAX_WEAPON_TYPE] - 2000);
+
+#else
+ // base weapon delay
+ amotion = (sd->status.weapon < MAX_WEAPON_TYPE)
+ ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon
+ : (status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1] + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]) * 7 / 10; // dual-wield
+
+ // percentual delay reduction from stats
+ amotion -= amotion * (4 * st->agi + st->dex) / 1000;
+#endif
+ // raw delay adjustment from bAspd bonus
+ amotion += sd->bonus.aspd_add;
+
+ /* angra manyu disregards aspd_base and similar */
+ if ( sd->equip_index[EQI_HAND_R] >= 0 && sd->status.inventory[sd->equip_index[EQI_HAND_R]].nameid == ITEMID_ANGRA_MANYU )
+ return 0;
+
+ return amotion;
+}
+
+unsigned short status_base_atk(const struct block_list *bl, const struct status_data *st) {
+ int flag = 0, str, dex, dstr;
+
+ if ( !(bl->type&battle_config.enable_baseatk) )
+ return 0;
+
+ if ( bl->type == BL_PC )
+ switch ( ((TBL_PC*)bl)->status.weapon ) {
+ case W_BOW:
+ case W_MUSICAL:
+ case W_WHIP:
+ case W_REVOLVER:
+ case W_RIFLE:
+ case W_GATLING:
+ case W_SHOTGUN:
+ case W_GRENADE:
+ flag = 1;
+ }
+ if ( flag ) {
+#ifdef RENEWAL
+ dstr =
+#endif
+ str = st->dex;
+ dex = st->str;
+ } else {
+#ifdef RENEWAL
+ dstr =
+#endif
+ str = st->str;
+ dex = st->dex;
+ }
+ //Normally only players have base-atk, but homunc have a different batk
+ // equation, hinting that perhaps non-players should use this for batk.
+ // [Skotlex]
+#ifdef RENEWAL
+ if ( bl->type == BL_HOM )
+ str = 2 * (((TBL_HOM*)bl)->homunculus.level + status_get_homstr(bl));
+#else
+ dstr = str / 10;
+ str += dstr*dstr;
+#endif
+ if ( bl->type == BL_PC )
+#ifdef RENEWAL
+ str = (int)(dstr + (float)dex / 5 + (float)st->luk / 3 + (float)((TBL_PC*)bl)->status.base_level / 4);
+ else if ( bl->type == BL_MOB )
+ str = dstr + ((TBL_MOB*)bl)->level;
+#else
+ str += dex / 5 + st->luk / 5;
+#endif
+ return cap_value(str, 0, USHRT_MAX);
+}
+
+#ifndef RENEWAL
+static inline unsigned short status_base_matk_min(const struct status_data *st) { return st->int_ + (st->int_ / 7)*(st->int_ / 7); }
+#endif // not RENEWAL
+static inline unsigned short status_base_matk_max(const struct status_data *st) { return st->int_ + (st->int_ / 5)*(st->int_ / 5); }
+
+unsigned short status_base_matk(struct block_list *bl, const struct status_data *st, int level) {
+#ifdef RENEWAL
+ switch ( bl->type ) {
+ case BL_MOB:
+ return st->int_ + level;
+ case BL_HOM:
+ return status_get_homint(bl) + level;
+ case BL_PC:
+ default: // temporary until all are formulated
+ return st->int_ + (st->int_ / 2) + (st->dex / 5) + (st->luk / 3) + (level / 4);
+ }
+#else
+ return 0;
+#endif
+}
+
+//Fills in the misc data that can be calculated from the other status info (except for level)
+void status_calc_misc(struct block_list *bl, struct status_data *st, int level) {
+ //Non players get the value set, players need to stack with previous bonuses.
+ if ( bl->type != BL_PC )
+ st->batk =
+ st->hit = st->flee =
+ st->def2 = st->mdef2 =
+ st->cri = st->flee2 = 0;
+
+#ifdef RENEWAL // renewal formulas
+ if ( bl->type == BL_HOM ) {
+ st->def2 = status_get_homvit(bl) + status_get_homagi(bl) / 2;
+ st->mdef2 = (status_get_homvit(bl) + status_get_homint(bl)) / 2;
+ st->def += status_get_homvit(bl) + level / 2;
+ st->mdef = (int)(((float)status_get_homvit(bl) + level) / 4 + (float)status_get_homint(bl) / 2);
+ st->hit = level + st->dex + 150;
+ st->flee = level + status_get_homagi(bl);
+ st->rhw.atk = (status_get_homstr(bl) + status_get_homdex(bl)) / 5;
+ st->rhw.atk2 = (status_get_homluk(bl) + status_get_homstr(bl) + status_get_homdex(bl)) / 3;
+ } else {
+ st->hit += level + st->dex + (bl->type == BL_PC ? st->luk / 3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
+ st->flee += level + st->agi + (bl->type == BL_PC ? st->luk / 5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
+ st->def2 += (int)(((float)level + st->vit) / 2 + (bl->type == BL_PC ? ((float)st->agi / 5) : 0)); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
+ st->mdef2 += (int)(bl->type == BL_PC ? (st->int_ + ((float)level / 4) + ((float)(st->dex + st->vit) / 5)) : ((float)(st->int_ + level) / 4)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
+ }
+#else // not RENEWAL
+ st->matk_min = status_base_matk_min(st);
+ st->matk_max = status_base_matk_max(st);
+ st->hit += level + st->dex;
+ st->flee += level + st->agi;
+ st->def2 += st->vit;
+ st->mdef2 += st->int_ + (st->vit >> 1);
+#endif // RENEWAL
+
+ if ( bl->type&battle_config.enable_critical )
+ st->cri += 10 + (st->luk * 10 / 3); //(every 1 luk = +0.3 critical)
+ else
+ st->cri = 0;
+
+ if ( bl->type&battle_config.enable_perfect_flee )
+ st->flee2 += st->luk + 10; //(every 10 luk = +1 perfect flee)
+ else
+ st->flee2 = 0;
+
+ if ( st->batk ) {
+ int temp = st->batk + status->base_atk(bl, st);
+ st->batk = cap_value(temp, 0, USHRT_MAX);
+ } else
+ st->batk = status->base_atk(bl, st);
+ if ( st->cri )
+ switch ( bl->type ) {
+ case BL_MOB:
+ if ( battle_config.mob_critical_rate != 100 )
+ st->cri = st->cri*battle_config.mob_critical_rate / 100;
+ if ( !st->cri && battle_config.mob_critical_rate )
+ st->cri = 10;
+ break;
+ case BL_PC:
+ //Players don't have a critical adjustment setting as of yet.
+ break;
+ case BL_MER:
+#ifdef RENEWAL
+ st->matk_min = st->matk_max = status_base_matk_max(st);
+ st->def2 = st->vit + level / 10 + st->vit / 5;
+ st->mdef2 = level / 10 + st->int_ / 5;
+#endif
+ break;
+ default:
+ if ( battle_config.critical_rate != 100 )
+ st->cri = st->cri*battle_config.critical_rate / 100;
+ if ( !st->cri && battle_config.critical_rate )
+ st->cri = 10;
+ }
+ if ( bl->type&BL_REGEN )
+ status->calc_regen(bl, st, status->get_regen_data(bl));
+}
/*==========================================
* Apply shared stat mods from status changes [DracoRPG]
@@ -4157,14 +4200,14 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(str,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ str += str * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
str -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(str,0,USHRT_MAX);
}
if(sc->data[SC_BEYOND_OF_WARCRY])
str += sc->data[SC_BEYOND_OF_WARCRY]->val3;
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && str < 50)
- return 50;
if(sc->data[SC_INCALLSTATUS])
str += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_CHASEWALK2])
@@ -4195,6 +4238,8 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc,
str -= ((sc->data[SC_MARIONETTE_MASTER]->val3)>>16)&0xFF;
if(sc->data[SC_MARIONETTE])
str += ((sc->data[SC_MARIONETTE]->val3)>>16)&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ str += ((sc->data[SC_SOULLINK]->val3)>>16)&0xFF;
if(sc->data[SC_GIANTGROWTH])
str += 30;
if(sc->data[SC_SAVAGE_STEAK])
@@ -4204,9 +4249,7 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
str -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- str -= sc->data[SC_KYOUGAKU]->val2;
- if(sc->data[SC_FULL_THROTTLE])
- str += str * 20 / 100;
+ str -= sc->data[SC_KYOUGAKU]->val3;
return (unsigned short)cap_value(str,0,USHRT_MAX);
}
@@ -4216,12 +4259,12 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(agi,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ agi += agi * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
agi -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(agi,0,USHRT_MAX);
}
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && agi < 50)
- return 50;
if(sc->data[SC_CONCENTRATION] && !sc->data[SC_QUAGMIRE])
agi += (agi-sc->data[SC_CONCENTRATION]->val3)*sc->data[SC_CONCENTRATION]->val2/100;
if(sc->data[SC_INCALLSTATUS])
@@ -4239,7 +4282,7 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_INC_AGI])
agi += sc->data[SC_INC_AGI]->val2;
if(sc->data[SC_GS_ACCURACY])
- agi += 4; // added based on skill updates [Reddozen]
+ agi += 4; // added based on skill updates [Reddozen]
if(sc->data[SC_DEC_AGI])
agi -= sc->data[SC_DEC_AGI]->val2;
if(sc->data[SC_QUAGMIRE])
@@ -4250,6 +4293,8 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc,
agi -= ((sc->data[SC_MARIONETTE_MASTER]->val3)>>8)&0xFF;
if(sc->data[SC_MARIONETTE])
agi += ((sc->data[SC_MARIONETTE]->val3)>>8)&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ agi += ((sc->data[SC_SOULLINK]->val3)>>8)&0xFF;
if(sc->data[SC_ADORAMUS])
agi -= sc->data[SC_ADORAMUS]->val2;
if(sc->data[SC_DROCERA_HERB_STEAMED])
@@ -4259,12 +4304,10 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
agi -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- agi -= sc->data[SC_KYOUGAKU]->val2;
+ agi -= sc->data[SC_KYOUGAKU]->val3;
if(sc->data[SC_MARSHOFABYSS])
agi -= agi * sc->data[SC_MARSHOFABYSS]->val2 / 100;
- if(sc->data[SC_FULL_THROTTLE])
- agi += agi * 20 / 100;
return (unsigned short)cap_value(agi,0,USHRT_MAX);
}
@@ -4274,12 +4317,12 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(vit,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ vit += vit * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
vit -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(vit,0,USHRT_MAX);
}
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && vit < 50)
- return 50;
if(sc->data[SC_INCALLSTATUS])
vit += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCVIT])
@@ -4298,6 +4341,8 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc,
vit -= sc->data[SC_MARIONETTE_MASTER]->val3&0xFF;
if(sc->data[SC_MARIONETTE])
vit += sc->data[SC_MARIONETTE]->val3&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ vit += sc->data[SC_SOULLINK]->val3&0xFF;
if(sc->data[SC_LAUDAAGNUS])
vit += 4 + sc->data[SC_LAUDAAGNUS]->val1;
if(sc->data[SC_MINOR_BBQ])
@@ -4307,12 +4352,10 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
vit -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- vit -= sc->data[SC_KYOUGAKU]->val2;
+ vit -= sc->data[SC_KYOUGAKU]->val3;
if(sc->data[SC_NOEQUIPARMOR])
vit -= vit * sc->data[SC_NOEQUIPARMOR]->val2/100;
- if(sc->data[SC_FULL_THROTTLE])
- vit += vit * 20 / 100;
return (unsigned short)cap_value(vit,0,USHRT_MAX);
}
@@ -4322,14 +4365,14 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(int_,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ int_ += int_ * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
int_ -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(int_,0,USHRT_MAX);
}
if(sc->data[SC_MELODYOFSINK])
int_ -= sc->data[SC_MELODYOFSINK]->val3;
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && int_ < 50)
- return 50;
if(sc->data[SC_INCALLSTATUS])
int_ += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCINT])
@@ -4356,6 +4399,8 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc,
int_ -= ((sc->data[SC_MARIONETTE_MASTER]->val4)>>16)&0xFF;
if(sc->data[SC_MARIONETTE])
int_ += ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ int_ += ((sc->data[SC_SOULLINK]->val4)>>16)&0xFF;
if(sc->data[SC_MANDRAGORA])
int_ -= 4 * sc->data[SC_MANDRAGORA]->val1;
if(sc->data[SC_COCKTAIL_WARG_BLOOD])
@@ -4365,7 +4410,7 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
int_ -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- int_ -= sc->data[SC_KYOUGAKU]->val2;
+ int_ -= sc->data[SC_KYOUGAKU]->val3;
if(bl->type != BL_PC){
if(sc->data[SC_NOEQUIPHELM])
@@ -4373,8 +4418,6 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc,
if(sc->data[SC__STRIPACCESSARY])
int_ -= int_ * sc->data[SC__STRIPACCESSARY]->val2 / 100;
}
- if(sc->data[SC_FULL_THROTTLE])
- int_ += int_ * 20 / 100;
return (unsigned short)cap_value(int_,0,USHRT_MAX);
}
@@ -4384,12 +4427,12 @@ unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(dex,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ dex += dex * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
dex -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(dex,0,USHRT_MAX);
}
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && dex < 50)
- return 50;
if(sc->data[SC_CONCENTRATION] && !sc->data[SC_QUAGMIRE])
dex += (dex-sc->data[SC_CONCENTRATION]->val4)*sc->data[SC_CONCENTRATION]->val2/100;
if(sc->data[SC_INCALLSTATUS])
@@ -4415,11 +4458,13 @@ unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc,
dex >>= 1;
}
if(sc->data[SC_GS_ACCURACY])
- dex += 4; // added based on skill updates [Reddozen]
+ dex += 4; // added based on skill updates [Reddozen]
if(sc->data[SC_MARIONETTE_MASTER])
dex -= ((sc->data[SC_MARIONETTE_MASTER]->val4)>>8)&0xFF;
if(sc->data[SC_MARIONETTE])
dex += ((sc->data[SC_MARIONETTE]->val4)>>8)&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ dex += ((sc->data[SC_SOULLINK]->val4)>>8)&0xFF;
if(sc->data[SC_SIROMA_ICE_TEA])
dex += sc->data[SC_SIROMA_ICE_TEA]->val1;
if(sc->data[SC_INSPIRATION])
@@ -4427,14 +4472,12 @@ unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
dex -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- dex -= sc->data[SC_KYOUGAKU]->val2;
+ dex -= sc->data[SC_KYOUGAKU]->val3;
if(sc->data[SC_MARSHOFABYSS])
dex -= dex * sc->data[SC_MARSHOFABYSS]->val2 / 100;
if(sc->data[SC__STRIPACCESSARY] && bl->type != BL_PC)
dex -= dex * sc->data[SC__STRIPACCESSARY]->val2 / 100;
- if(sc->data[SC_FULL_THROTTLE])
- dex += dex * 20 / 100;
return (unsigned short)cap_value(dex,0,USHRT_MAX);
}
@@ -4444,14 +4487,14 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc,
if(!sc || !sc->count)
return cap_value(luk,0,USHRT_MAX);
+ if(sc->data[SC_FULL_THROTTLE])
+ luk += luk * 20 / 100;
if(sc->data[SC_HARMONIZE]) {
luk -= sc->data[SC_HARMONIZE]->val2;
return (unsigned short)cap_value(luk,0,USHRT_MAX);
}
if(sc->data[SC_CURSE])
return 0;
- if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH && luk < 50)
- return 50;
if(sc->data[SC_INCALLSTATUS])
luk += sc->data[SC_INCALLSTATUS]->val1;
if(sc->data[SC_INCLUK])
@@ -4468,6 +4511,8 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc,
luk -= sc->data[SC_MARIONETTE_MASTER]->val4&0xFF;
if(sc->data[SC_MARIONETTE])
luk += sc->data[SC_MARIONETTE]->val4&0xFF;
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ luk += sc->data[SC_SOULLINK]->val4&0xFF;
if(sc->data[SC_PUTTI_TAILS_NOODLES])
luk += sc->data[SC_PUTTI_TAILS_NOODLES]->val1;
if(sc->data[SC_INSPIRATION])
@@ -4475,7 +4520,7 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc,
if(sc->data[SC_STOMACHACHE])
luk -= sc->data[SC_STOMACHACHE]->val1;
if(sc->data[SC_KYOUGAKU])
- luk -= sc->data[SC_KYOUGAKU]->val2;
+ luk -= sc->data[SC_KYOUGAKU]->val3;
if(sc->data[SC_LAUDARAMUS])
luk += 4 + sc->data[SC_LAUDARAMUS]->val1;
@@ -4483,8 +4528,6 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc,
luk -= luk * sc->data[SC__STRIPACCESSARY]->val2 / 100;
if(sc->data[SC_BANANA_BOMB])
luk -= luk * sc->data[SC_BANANA_BOMB]->val1 / 100;
- if(sc->data[SC_FULL_THROTTLE])
- luk += luk * 20 / 100;
return (unsigned short)cap_value(luk,0,USHRT_MAX);
}
@@ -4547,9 +4590,10 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc,
batk -= batk * 25/100;
if( sc->data[SC_ZANGETSU] )
batk += sc->data[SC_ZANGETSU]->val2;
- //Curse shouldn't effect on this? <- Curse OR Bleeding??
- // if(sc->data[SC_BLOODING])
- // batk -= batk * 25/100;
+#if 0 //Curse shouldn't effect on this? <- Curse OR Bleeding??
+ if(sc->data[SC_BLOODING])
+ batk -= batk * 25/100;
+#endif // 0
if(sc->data[SC_HLIF_FLEET])
batk += batk * sc->data[SC_HLIF_FLEET]->val3/100;
if(sc->data[SC__ENERVATION])
@@ -4591,7 +4635,7 @@ unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc,
watk += sc->data[SC_SHIELDSPELL_DEF]->val2;
if(sc->data[SC_INSPIRATION])
watk += sc->data[SC_INSPIRATION]->val2;
- if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 0 )
+ if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 )
watk += (10 + 10 * sc->data[SC_BANDING]->val1) * (sc->data[SC_BANDING]->val2);
if( sc->data[SC_TROPIC_OPTION] )
watk += sc->data[SC_TROPIC_OPTION]->val2;
@@ -4776,6 +4820,8 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in
if(sc->data[SC_INCHIT])
hit += sc->data[SC_INCHIT]->val1;
+ if(sc->data[SC_MTF_HITFLEE])
+ hit += sc->data[SC_MTF_HITFLEE]->val1;
if(sc->data[SC_FOOD_BASICHIT])
hit += sc->data[SC_FOOD_BASICHIT]->val1;
if(sc->data[SC_TRUESIGHT])
@@ -4797,6 +4843,8 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in
hit += hit * sc->data[SC_INCHITRATE]->val1/100;
if(sc->data[SC_BLIND])
hit -= hit * 25/100;
+ if(sc->data[SC_FIRE_EXPANSION_TEAR_GAS])
+ hit -= hit * 50 / 100;
if(sc->data[SC__GROOMY])
hit -= hit * sc->data[SC__GROOMY]->val3 / 100;
if(sc->data[SC_FEAR])
@@ -4805,7 +4853,7 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in
hit /= 2;
if(sc->data[SC_ILLUSIONDOPING])
hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; //custom
-
+
return (short)cap_value(hit,1,SHRT_MAX);
}
@@ -4827,6 +4875,8 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i
if(sc->data[SC_INCFLEE])
flee += sc->data[SC_INCFLEE]->val1;
+ if(sc->data[SC_MTF_HITFLEE])
+ flee += sc->data[SC_MTF_HITFLEE]->val2;
if(sc->data[SC_FOOD_BASICAVOIDANCE])
flee += sc->data[SC_FOOD_BASICAVOIDANCE]->val1;
if(sc->data[SC_WHISTLE])
@@ -4880,6 +4930,10 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i
flee -= flee * ( 20 + 5 * sc->data[SC_GLOOMYDAY]->val1 ) / 100;
if( sc->data[SC_SATURDAY_NIGHT_FEVER] )
flee -= flee * (40 + 10 * sc->data[SC_SATURDAY_NIGHT_FEVER]->val1) / 100;
+ if ( sc->data[SC_FIRE_EXPANSION_SMOKE_POWDER] )
+ flee += flee * 20 / 100;
+ if ( sc->data[SC_FIRE_EXPANSION_TEAR_GAS] )
+ flee -= flee * 50 / 100;
if( sc->data[SC_WIND_STEP_OPTION] )
flee += flee * sc->data[SC_WIND_STEP_OPTION]->val2 / 100;
if( sc->data[SC_ZEPHYR] )
@@ -4888,7 +4942,7 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i
if(status_get_element(bl) == ELE_WATER) //water type
flee /= 2;
}
-
+
if( sc->data[SC_OVERED_BOOST] ) // should be final and unmodifiable by any means
flee = sc->data[SC_OVERED_BOOST]->val2;
@@ -4927,8 +4981,6 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
def -= def * 50 / 100;
if( sc->data[SC_NEUTRALBARRIER] )
def += def * (10 + 5*sc->data[SC_NEUTRALBARRIER]->val1) / 100;
- if( sc && sc->data[SC_GENTLETOUCH_REVITALIZE] && sc->data[SC_GENTLETOUCH_REVITALIZE]->val4 )
- def += 2 * sc->data[SC_GENTLETOUCH_REVITALIZE]->val4;
if( sc->data[SC_FORCEOFVANGUARD] )
def += def * 2 * sc->data[SC_FORCEOFVANGUARD]->val1 / 100;
if(sc->data[SC_DEFSET])
@@ -4948,7 +5000,7 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
if(sc->data[SC_STEELBODY])
return 90;
#endif
-
+
if(sc->data[SC_STONEHARDSKIN])
def += sc->data[SC_STONEHARDSKIN]->val1;
if(sc->data[SC_DRUMBATTLE])
@@ -4956,7 +5008,7 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def
if(sc->data[SC_STONESKIN])
def += sc->data[SC_STONESKIN]->val2;
- if(sc->data[SC_HAMI_DEFENCE]) //[orn]
+ if(sc->data[SC_HAMI_DEFENCE]) //[orn]
def += sc->data[SC_HAMI_DEFENCE]->val2;
if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 2)
@@ -5032,6 +5084,8 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i
#endif
if( sc && sc->data[SC_CAMOUFLAGE] )
def2 -= def2 * 5 * (10-sc->data[SC_CAMOUFLAGE]->val4) / 100;
+ if(sc->data[SC_GENTLETOUCH_REVITALIZE])
+ def2 += sc->data[SC_GENTLETOUCH_REVITALIZE]->val2;
if(sc->data[SC_DEFSET])
return sc->data[SC_DEFSET]->val1;
#ifdef RENEWAL
@@ -5047,7 +5101,7 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i
return 0;
if(sc->data[SC_SUN_COMFORT])
def2 += sc->data[SC_SUN_COMFORT]->val2;
- if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 0 )
+ if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 )
def2 += (5 + sc->data[SC_BANDING]->val1) * (sc->data[SC_BANDING]->val2);
if(sc->data[SC_ANGELUS])
#ifdef RENEWAL //in renewal only the VIT stat bonus is boosted by angelus
@@ -5204,16 +5258,16 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
{
int val = 0;
- if( sc->data[SC_FUSION] )
+ if(sc->data[SC_FUSION]) {
val = 25;
- else if( sd ) {
- if( pc_isriding(sd) || sd->sc.option&(OPTION_DRAGON) || sd->sc.data[SC_ALL_RIDING] )
+ } else if (sd) {
+ if (pc_isridingpeco(sd) || pc_isridingdragon(sd) || sd->sc.data[SC_ALL_RIDING])
val = 25;//Same bonus
- else if( pc_isridingwug(sd) )
+ else if (pc_isridingwug(sd))
val = 15 + 5 * pc->checkskill(sd, RA_WUGRIDER);
- else if( pc_ismadogear(sd) ) {
+ else if (pc_ismadogear(sd)) {
val = (- 10 * (5 - pc->checkskill(sd,NC_MADOLICENCE)));
- if( sc->data[SC_ACCELERATION] )
+ if (sc->data[SC_ACCELERATION])
val += 25;
}
}
@@ -5272,7 +5326,7 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
if( sc->data[SC__GROOMY] )
val = max( val, sc->data[SC__GROOMY]->val2);
if( sc->data[SC_GLOOMYDAY] )
- val = max( val, sc->data[SC_GLOOMYDAY]->val3 ); // Should be 50 (-50% speed)
+ val = max( val, sc->data[SC_GLOOMYDAY]->val3 ); // Should be 50 (-50% speed)
if( sc->data[SC_STEALTHFIELD_MASTER] )
val = max( val, 30 );
if( sc->data[SC_BANDING_DEFENCE] )
@@ -5329,7 +5383,7 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
if( sc->data[SC_WIND_STEP_OPTION] )
val = max( val, sc->data[SC_WIND_STEP_OPTION]->val2 );
if( sc->data[SC_FULL_THROTTLE] )
- val = max( val, 30);
+ val = max( val, 25);
//FIXME: official items use a single bonus for this [ultramage]
if( sc->data[SC_MOVHASTE_HORSE] ) // temporary item-based speedup
val = max( val, 25 );
@@ -5369,119 +5423,123 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
// flag&2 - percentage value
short status_calc_aspd(struct block_list *bl, struct status_change *sc, short flag) {
#ifdef RENEWAL_ASPD
- int i, pots = 0, skills1 = 0, skills2 = 0;
+ int i, pots = 0, bonus = 0;
- if(!sc || !sc->count)
+ if (!sc || !sc->count)
return 0;
- if(sc->data[i=SC_ATTHASTE_INFINITY] ||
- sc->data[i=SC_ATTHASTE_POTION3] ||
- sc->data[i=SC_ATTHASTE_POTION2] ||
- sc->data[i=SC_ATTHASTE_POTION1])
- pots += sc->data[i]->val1;
-
- if( !sc->data[SC_QUAGMIRE] ){
- if(sc->data[SC_TWOHANDQUICKEN] && skills1 < 7)
- skills1 = 7;
-
- if(sc->data[SC_ONEHANDQUICKEN] && skills1 < 7) skills1 = 7;
-
- if(sc->data[SC_MER_QUICKEN] && skills1 < 7) // needs more info
- skills1 = 7;
-
- if(sc->data[SC_ADRENALINE2] && skills1 < 6)
- skills1 = 6;
-
- if(sc->data[SC_ADRENALINE] && skills1 < 7)
- skills1 = 7;
-
- if(sc->data[SC_SPEARQUICKEN] && skills1 < 7)
- skills1 = 7;
+ if (flag&1) {
+ // ASPD fixed values
+ if (sc->data[i=SC_ATTHASTE_INFINITY]
+ || sc->data[i=SC_ATTHASTE_POTION3]
+ || sc->data[i=SC_ATTHASTE_POTION2]
+ || sc->data[i=SC_ATTHASTE_POTION1]
+ )
+ pots += sc->data[i]->val1;
+
+ if (!sc->data[SC_QUAGMIRE]) {
+ if(sc->data[SC_TWOHANDQUICKEN] && bonus < 7)
+ bonus = 7;
+ if(sc->data[SC_ONEHANDQUICKEN] && bonus < 7)
+ bonus = 7;
+ if(sc->data[SC_MER_QUICKEN] && bonus < 7) // needs more info
+ bonus = 7;
+ if(sc->data[SC_ADRENALINE2] && bonus < 6)
+ bonus = 6;
+ if(sc->data[SC_ADRENALINE] && bonus < 7)
+ bonus = 7;
+ if(sc->data[SC_SPEARQUICKEN] && bonus < 7)
+ bonus = 7;
+ if(sc->data[SC_HLIF_FLEET] && bonus < 5)
+ bonus = 5;
+ }
- if(sc->data[SC_HLIF_FLEET] && skills1 < 5)
- skills1 = 5;
- }
+ if (sc->data[SC_ASSNCROS] && bonus < sc->data[SC_ASSNCROS]->val2) {
+ if (bl->type!=BL_PC)
+ bonus = sc->data[SC_ASSNCROS]->val2;
+ else {
+ switch (((TBL_PC*)bl)->status.weapon)
+ {
+ case W_BOW:
+ case W_REVOLVER:
+ case W_RIFLE:
+ case W_GATLING:
+ case W_SHOTGUN:
+ case W_GRENADE:
+ break;
+ default:
+ bonus = sc->data[SC_ASSNCROS]->val2;
+ }
+ }
+ }
- if((sc->data[SC_BERSERK]) && skills1 < 15)
- skills1 = 15;
- else if(sc->data[SC_GS_MADNESSCANCEL] && skills1 < 20)
- skills1 = 20;
+ if ((sc->data[SC_BERSERK]) && bonus < 15)
+ bonus = 15;
+ else if (sc->data[SC_GS_MADNESSCANCEL] && bonus < 20)
+ bonus = 20;
- if(sc->data[SC_DONTFORGETME])
- skills2 -= sc->data[SC_DONTFORGETME]->val2;
- if(sc->data[SC_LONGING])
- skills2 -= sc->data[SC_LONGING]->val2;
- if(sc->data[SC_STEELBODY])
- skills2 -= 25;
- if(sc->data[SC_SKA])
- skills2 -= 25;
- if(sc->data[SC_DEFENDER])
- skills2 -= sc->data[SC_DEFENDER]->val4 / 10;
- if(sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_ENEMY) // needs more info
- skills2 -= 25;
- if(sc->data[SC_GRAVITATION])
- skills2 -= sc->data[SC_GRAVITATION]->val2; // needs more info
- if(sc->data[SC_JOINTBEAT]) { // needs more info
- if( sc->data[SC_JOINTBEAT]->val2&BREAK_WRIST )
- skills2 -= 25;
- if( sc->data[SC_JOINTBEAT]->val2&BREAK_KNEE )
- skills2 -= 10;
- }
- if( sc->data[SC_FROSTMISTY] )
- skills2 -= 15;
- if( sc->data[SC_HALLUCINATIONWALK_POSTDELAY] )
- skills2 -= 50;
- if( sc->data[SC_PARALYSE] )
- skills2 -= 10;
- if( sc->data[SC__BODYPAINT] )
- skills2 -= sc->data[SC__BODYPAINT]->val1;
- if( sc->data[SC__INVISIBILITY] )
- skills2 -= sc->data[SC__INVISIBILITY]->val2 ;
- if( sc->data[SC__GROOMY] )
- skills2 -= sc->data[SC__GROOMY]->val2;
- if( sc->data[SC_GLOOMYDAY] )
- skills2 -= ( 15 + 5 * sc->data[SC_GLOOMYDAY]->val1 );
- if( sc->data[SC_EARTHDRIVE] )
- skills2 -= 25;
- if( sc->data[SC_MELON_BOMB] )
- skills2 -= sc->data[SC_MELON_BOMB]->val1;
- if( sc->data[SC_PAIN_KILLER] )
- skills2 -= sc->data[SC_PAIN_KILLER]->val2;
-
- if( sc->data[SC_SWING] )
- skills2 += sc->data[SC_SWING]->val3;
- if( sc->data[SC_DANCE_WITH_WUG] )
- skills2 += sc->data[SC_DANCE_WITH_WUG]->val3;
- if( sc->data[SC_GENTLETOUCH_CHANGE] )
- skills2 += sc->data[SC_GENTLETOUCH_CHANGE]->val3;
- if( sc->data[SC_BOOST500] )
- skills2 += sc->data[SC_BOOST500]->val1;
- if( sc->data[SC_EXTRACT_SALAMINE_JUICE] )
- skills2 += sc->data[SC_EXTRACT_SALAMINE_JUICE]->val1;
- if( sc->data[SC_INCASPDRATE] )
- skills2 += sc->data[SC_INCASPDRATE]->val1;
- if( sc->data[SC_GS_GATLINGFEVER] )
- skills2 += sc->data[SC_GS_GATLINGFEVER]->val1;
- if( sc->data[SC_STAR_COMFORT] )
- skills2 += 3 * sc->data[SC_STAR_COMFORT]->val1;
- if( sc->data[SC_ASSNCROS] && !skills1){
- if (bl->type!=BL_PC)
- skills2 += sc->data[SC_ASSNCROS]->val2;
- else
- switch(((TBL_PC*)bl)->status.weapon)
- {
- case W_BOW:
- case W_REVOLVER:
- case W_RIFLE:
- case W_GATLING:
- case W_SHOTGUN:
- case W_GRENADE:
- break;
- default:
- skills2 += sc->data[SC_ASSNCROS]->val2;
+ } else {
+ // ASPD percentage values
+ if (sc->data[SC_DONTFORGETME])
+ bonus -= sc->data[SC_DONTFORGETME]->val2;
+ if (sc->data[SC_LONGING])
+ bonus -= sc->data[SC_LONGING]->val2;
+ if (sc->data[SC_STEELBODY])
+ bonus -= 25;
+ if (sc->data[SC_SKA])
+ bonus -= 25;
+ if (sc->data[SC_DEFENDER])
+ bonus -= sc->data[SC_DEFENDER]->val4 / 10;
+ if (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_ENEMY) // needs more info
+ bonus -= 25;
+ if (sc->data[SC_GRAVITATION])
+ bonus -= sc->data[SC_GRAVITATION]->val2; // needs more info
+ if (sc->data[SC_JOINTBEAT]) { // needs more info
+ if (sc->data[SC_JOINTBEAT]->val2&BREAK_WRIST)
+ bonus -= 25;
+ if (sc->data[SC_JOINTBEAT]->val2&BREAK_KNEE)
+ bonus -= 10;
}
- }
- return ( flag&1? (skills1 + pots) : skills2 );
+ if (sc->data[SC_FROSTMISTY])
+ bonus -= 15;
+ if (sc->data[SC_HALLUCINATIONWALK_POSTDELAY])
+ bonus -= 50;
+ if (sc->data[SC_PARALYSE])
+ bonus -= 10;
+ if (sc->data[SC__BODYPAINT])
+ bonus -= sc->data[SC__BODYPAINT]->val1;
+ if (sc->data[SC__INVISIBILITY])
+ bonus -= sc->data[SC__INVISIBILITY]->val2 ;
+ if (sc->data[SC__GROOMY])
+ bonus -= sc->data[SC__GROOMY]->val2;
+ if (sc->data[SC_GLOOMYDAY])
+ bonus -= (15 + 5 * sc->data[SC_GLOOMYDAY]->val1);
+ if (sc->data[SC_EARTHDRIVE])
+ bonus -= 25;
+ if (sc->data[SC_MELON_BOMB])
+ bonus -= sc->data[SC_MELON_BOMB]->val1;
+ if (sc->data[SC_PAIN_KILLER])
+ bonus -= sc->data[SC_PAIN_KILLER]->val2;
+
+ if (sc->data[SC_SWING]) // TODO: SC_SWING shouldn't stack with skill1 modifiers
+ bonus += sc->data[SC_SWING]->val3;
+ if (sc->data[SC_DANCE_WITH_WUG])
+ bonus += sc->data[SC_DANCE_WITH_WUG]->val3;
+ if (sc->data[SC_GENTLETOUCH_CHANGE])
+ bonus += sc->data[SC_GENTLETOUCH_CHANGE]->val3;
+ if (sc->data[SC_BOOST500])
+ bonus += sc->data[SC_BOOST500]->val1;
+ if (sc->data[SC_EXTRACT_SALAMINE_JUICE])
+ bonus += sc->data[SC_EXTRACT_SALAMINE_JUICE]->val1;
+ if (sc->data[SC_INCASPDRATE])
+ bonus += sc->data[SC_INCASPDRATE]->val1;
+ if (sc->data[SC_GS_GATLINGFEVER])
+ bonus += sc->data[SC_GS_GATLINGFEVER]->val1;
+ if (sc->data[SC_STAR_COMFORT])
+ bonus += 3 * sc->data[SC_STAR_COMFORT]->val1;
+ }
+
+ return (bonus + pots);
#else
return 0;
#endif
@@ -5500,7 +5558,7 @@ short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int
aspd -= 10;
if (sc->data[SC_OVERED_BOOST]) // should be final and unmodifiable by any means
- aspd = 2000 - sc->data[SC_OVERED_BOOST]->val3 * 10;
+ aspd = (200 - sc->data[SC_OVERED_BOOST]->val3) * 10;
return cap_value(aspd, 0, 2000); // will be recap for proper bl anyway
}
@@ -5569,6 +5627,7 @@ short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int
max = sc->data[SC_ASSNCROS]->val2;
}
}
+
aspd_rate -= max;
if(sc->data[SC_BERSERK])
@@ -5668,6 +5727,8 @@ unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc,
maxhp += maxhp * sc->data[SC_INCMHPRATE]->val1/100;
if(sc->data[SC_INCMHP])
maxhp += (sc->data[SC_INCMHP]->val1);
+ if(sc->data[SC_MTF_MHP])
+ maxhp += (sc->data[SC_MTF_MHP]->val1);
if(sc->data[SC_APPLEIDUN])
maxhp += maxhp * sc->data[SC_APPLEIDUN]->val2/100;
if(sc->data[SC_DELUGE])
@@ -5735,6 +5796,8 @@ unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc,
maxsp += maxsp * sc->data[SC_INCMSPRATE]->val1/100;
if(sc->data[SC_INCMSP])
maxsp += (sc->data[SC_INCMSP]->val1);
+ if(sc->data[SC_MTF_MSP])
+ maxsp += (sc->data[SC_MTF_MSP]->val1);
if(sc->data[SC_SERVICEFORYOU])
maxsp += maxsp * sc->data[SC_SERVICEFORYOU]->val2/100;
if(sc->data[SC_MER_SP])
@@ -5857,8 +5920,8 @@ const char* status_get_name(struct block_list *bl) {
/*==========================================
* Get the class of the current bl
* return
-* 0 = fail
-* class_id = success
+* 0 = fail
+* class_id = success
*------------------------------------------*/
int status_get_class(struct block_list *bl) {
nullpo_ret(bl);
@@ -5876,8 +5939,8 @@ int status_get_class(struct block_list *bl) {
/*==========================================
* Get the base level of the current bl
* return
-* 1 = fail
-* level = success
+* 1 = fail
+* level = success
*------------------------------------------*/
int status_get_lv(struct block_list *bl) {
nullpo_ret(bl);
@@ -5983,7 +6046,9 @@ int status_get_party_id(struct block_list *bl) {
return ((TBL_MER*)bl)->master->status.party_id;
break;
case BL_SKILL:
- return ((TBL_SKILL*)bl)->group->party_id;
+ if (((TBL_SKILL*)bl)->group)
+ return ((TBL_SKILL*)bl)->group->party_id;
+ break;
case BL_ELEM:
if (((TBL_ELEM*)bl)->master)
return ((TBL_ELEM*)bl)->master->status.party_id;
@@ -6026,7 +6091,9 @@ int status_get_guild_id(struct block_list *bl) {
return ((TBL_NPC*)bl)->u.scr.guild_id;
break;
case BL_SKILL:
- return ((TBL_SKILL*)bl)->group->guild_id;
+ if (((TBL_SKILL*)bl)->group)
+ return ((TBL_SKILL*)bl)->group->guild_id;
+ break;
case BL_ELEM:
if (((TBL_ELEM*)bl)->master)
return ((TBL_ELEM*)bl)->master->status.guild_id;
@@ -6047,7 +6114,7 @@ int status_get_emblem_id(struct block_list *bl) {
case BL_MOB: {
struct map_session_data *msd;
struct mob_data *md = (struct mob_data *)bl;
- if (md->guardian_data) //Guardian's guild [Skotlex]
+ if (md->guardian_data) //Guardian's guild [Skotlex]
return (md->guardian_data->g) ? md->guardian_data->g->emblem_id:0;
if (md->special_state.ai && (msd = map->id2sd(md->master_id)) != NULL)
return msd->guild_emblem_id; //Alchemist's mobs [Skotlex]
@@ -6148,8 +6215,9 @@ void status_set_viewdata(struct block_list *bl, int class_)
{
TBL_PC* sd = (TBL_PC*)bl;
if (pcdb_checkid(class_)) {
- if (sd->sc.option&OPTION_RIDING) {
- switch (class_) { //Adapt class to a Mounted one.
+ if (pc_isridingpeco(sd)) {
+ switch (class_) {
+ //Adapt class to a Mounted one.
case JOB_KNIGHT:
class_ = JOB_KNIGHT2;
break;
@@ -6234,7 +6302,7 @@ void status_set_viewdata(struct block_list *bl, int class_)
ShowError("status_set_viewdata (NPC): No view data for class %d\n", class_);
}
break;
- case BL_HOM: //[blackhole89]
+ case BL_HOM: //[blackhole89]
{
struct homun_data *hd = (struct homun_data*)bl;
if (vd)
@@ -6285,36 +6353,33 @@ void status_change_init(struct block_list *bl) {
memset(sc, 0, sizeof (struct status_change));
}
-//Applies SC defense to a given status change.
-//Returns the adjusted duration based on flag values.
-//the flag values are the same as in status->change_start.
+/**
+ * Applies SC defense to a given status change.
+ *
+ * @see status_change_start for the expected parameters.
+ * @return the adjusted duration based on flag values.
+ */
int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int tick, int flag) {
//Percentual resistance: 10000 = 100% Resist
//Example: 50% -> sc_def=5000 -> 25%; 5000ms -> tick_def=5000 -> 2500ms
int sc_def = 0, tick_def = -1; //-1 = use sc_def
//Linear resistance substracted from rate and tick after percentual resistance was applied
//Example: 25% -> sc_def2=2000 -> 5%; 2500ms -> tick_def2=2000 -> 500ms
- int sc_def2 = 0, tick_def2 = -1; //-1 = use sc_def2 (pre-re only)
+ int sc_def2 = 0, tick_def2 = 0;
- struct status_data *st;
+ struct status_data *st, *bst;
struct status_change *sc;
struct map_session_data *sd;
nullpo_ret(bl);
-
+
if(!src)
return tick ? tick : 1; // If no source, it can't be resisted (NPC given)
/// Returns the 'bl's level, capped to 'cap'
#define SCDEF_LVL_CAP(bl, cap) ( (bl) ? (status->get_lv(bl) > (cap) ? (cap) : status->get_lv(bl)) : 0 )
-/// Renewal level modifier.
-/// In renewal, returns the difference between the levels of 'bl' and 'src', both capped to 'maxlv', multiplied by 'factor'
-/// In pre-renewal, returns zero.
-#ifdef RENEWAL
+/// returns the difference between the levels of 'bl' and 'src', both capped to 'maxlv', multiplied by 'factor'
#define SCDEF_LVL_DIFF(bl, src, maxlv, factor) ( ( SCDEF_LVL_CAP((bl), (maxlv)) - SCDEF_LVL_CAP((src), (maxlv)) ) * (factor) )
-#else
-#define SCDEF_LVL_DIFF(bl, src, maxlv, factor) 0
-#endif
//Status that are blocked by Golden Thief Bug card or Wand of Hermod
if (status->isimmune(bl))
@@ -6342,17 +6407,12 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
case SC_QUAGMIRE:
case SC_NJ_SUITON:
case SC_SWING:
- case SC__ENERVATION:
- case SC__GROOMY:
- case SC__IGNORANCE:
- case SC__LAZINESS:
- case SC__UNLUCKY:
- case SC__WEAKNESS:
return 0;
}
sd = BL_CAST(BL_PC,bl);
st = status->get_status_data(bl);
+ bst = status->get_base_status(bl);
sc = status->get_sc(bl);
if( sc && !sc->count )
sc = NULL;
@@ -6386,15 +6446,12 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
case SC_STUN:
sc_def = st->vit*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
-#ifdef RENEWAL
tick_def2 = st->luk*10;
-#endif
break;
case SC_POISON:
case SC_DPOISON:
sc_def = st->vit*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
-#ifdef RENEWAL
if (sd) {
//For players: 60000 - 450*vit - 100*luk
tick_def = st->vit*75;
@@ -6404,38 +6461,40 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
tick>>=1;
tick_def = (st->vit*200)/3;
}
-#endif
break;
case SC_SILENCE:
#ifdef RENEWAL
sc_def = st->int_*100;
sc_def2 = (st->vit + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
- tick_def2 = st->luk * 10;
#else
sc_def = st->vit*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
#endif
+ tick_def2 = st->luk * 10;
break;
case SC_BLOODING:
#ifdef RENEWAL
sc_def = st->agi*100;
- tick_def2 = st->luk*10;
#else
sc_def = st->vit*100;
#endif
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
+ tick_def2 = st->luk*10;
break;
case SC_SLEEP:
+#ifdef RENEWAL
+ sc_def = st->agi*100;
+ sc_def2 = (st->int_ + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10);
+#else
sc_def = st->int_*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
-#ifdef RENEWAL
- tick_def2 = st->luk*10;
#endif
+ tick_def2 = st->luk*10;
break;
case SC_DEEP_SLEEP:
- sc_def = st->int_*50;
+ sc_def = bst->int_*50;
tick_def = 0; // Linear reduction instead
- tick_def2 = st->int_ * 50 + SCDEF_LVL_CAP(bl, 150) * 50; // kRO balance update lists this formula
+ tick_def2 = bst->int_ * 50 + SCDEF_LVL_CAP(bl, 150) * 50; // kRO balance update lists this formula
break;
case SC_DEC_AGI:
case SC_ADORAMUS:
@@ -6443,7 +6502,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
sc_def = st->mdef*100;
#ifndef RENEWAL
sc_def2 = st->luk*10;
- tick_def2 = 0; //No duration reduction
#endif
tick_def = 0; //No duration reduction
break;
@@ -6451,50 +6509,30 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
sc_def = st->mdef*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
tick_def = 0; //No duration reduction
-#ifndef RENEWAL
- tick_def2 = 0; //No duration reduction
-#endif
break;
case SC_FREEZE:
sc_def = st->mdef*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
- tick_def = 0; //No duration reduction
-#ifdef RENEWAL
tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk
-#else
- tick_def2 = 0; //No duration reduction
-#endif
break;
case SC_CURSE:
// Special property: immunity when luk is zero
if (st->luk == 0)
return 0;
-#ifndef RENEWAL
- // Special property: immunity when luk is greater than level
- if (st->luk > status->get_lv(bl))
- return 0;
-#endif
sc_def = st->luk*100;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(NULL, src, 99, 10); // Curse only has a level penalty and no resistance
tick_def = st->vit*100;
-#ifdef RENEWAL
tick_def2 = st->luk*10;
-#endif
break;
case SC_BLIND:
sc_def = (st->vit + st->int_)*50;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
-#ifdef RENEWAL
tick_def2 = st->luk*10;
-#endif
break;
case SC_CONFUSION:
sc_def = (st->str + st->int_)*50;
sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);
-#ifdef RENEWAL
- sc_def2 = -sc_def2; // Reversed sc_def2
tick_def2 = st->luk*10;
-#endif
break;
case SC_ANKLESNARE:
if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
@@ -6506,7 +6544,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
if (sd) //Duration greatly reduced for players.
tick /= 15;
sc_def2 = st->vit*25 + st->agi*10 + SCDEF_LVL_CAP(bl, 99) * 20; // Linear Reduction of Rate
- tick_def2 = 0; //No duration reduction
break;
case SC_MARSHOFABYSS:
//5 second (Fixed) + 25 second - {( INT + LUK ) / 20 second }
@@ -6548,10 +6585,10 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
tick_def2 = (st->vit + st->agi) * 70;
break;
case SC_COLD:
- tick_def2 = st->vit*100 + status->get_lv(bl)*20;
+ tick_def2 = bst->vit*100 + status->get_lv(bl)*20;
break;
case SC_VACUUM_EXTREME:
- tick_def2 = st->str*50;
+ tick_def2 = bst->str*50;
break;
case SC_MANDRAGORA:
sc_def = (st->vit + st->luk)*20;
@@ -6559,9 +6596,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
case SC_SIREN:
tick_def2 = (status->get_lv(bl) * 100) + ((bl->type == BL_PC)?((TBL_PC*)bl)->status.job_level : 0);
break;
- case SC_KYOUGAKU:
- tick_def2 = st->int_ * 50;
- break;
case SC_NEEDLE_OF_PARALYZE:
tick_def2 = (st->vit + st->luk) * 50;
break;
@@ -6612,16 +6646,9 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
//When tick def not set, reduction is the same for both.
if(tick_def == -1)
tick_def = sc_def;
- if(tick_def2 == -1) {
-#ifdef RENEWAL
- tick_def2 = 0;
-#else
- tick_def2 = sc_def2;
-#endif
- }
//Natural resistance
- if (!(flag&8)) {
+ if (!(flag&SCFLAG_FIXEDRATE)) {
rate -= rate*sc_def/10000;
rate -= sc_def2;
@@ -6655,7 +6682,7 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
if (tick < 1) return 1;
//Rate reduction
- if (flag&2)
+ if (flag&SCFLAG_FIXEDTICK)
return tick;
tick -= tick*tick_def/10000;
@@ -6687,19 +6714,19 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
void status_display_add(struct map_session_data *sd, enum sc_type type, int dval1, int dval2, int dval3) {
struct sc_display_entry *entry;
int i;
-
+
for( i = 0; i < sd->sc_display_count; i++ ) {
if( sd->sc_display[i]->type == type )
break;
}
-
+
if( i != sd->sc_display_count ) {
sd->sc_display[i]->val1 = dval1;
sd->sc_display[i]->val2 = dval2;
sd->sc_display[i]->val3 = dval3;
return;
}
-
+
entry = ers_alloc(pc->sc_display_ers, struct sc_display_entry);
entry->type = type;
@@ -6742,17 +6769,23 @@ void status_display_remove(struct map_session_data *sd, enum sc_type type) {
}
}
}
-/*==========================================
-* Starts a status change.
-* 'type' = type, 'val1~4' depend on the type.
-* 'rate' = base success rate. 10000 = 100%
-* 'tick' is base duration
-* 'flag':
-* &1: Cannot be avoided (it has to start)
-* &2: Tick should not be reduced (by vit, luk, lv, etc)
-* &4: sc_data loaded, no value has to be altered.
-* &8: rate should not be reduced
-*------------------------------------------*/
+/**
+ * Starts a status change.
+ *
+ * @param src Status change source bl.
+ * @param bl Status change target bl.
+ * @param type Status change type.
+ * @param rate Base success rate. 1 means 0.01%, 10000 means 100%.
+ * @param val1 Additional value (meaning depends on type).
+ * @param val2 Additional value (meaning depends on type).
+ * @param val3 Additional value (meaning depends on type).
+ * @param val4 Additional value (meaning depends on type).
+ * @param tick Base duration (milliseconds).
+ * @param flag Special flags (@see enum scstart_flag).
+ *
+ * @retval 0 if no status change happened.
+ * @retval 1 if the status change was successfully applied.
+ */
int status_change_start(struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int flag) {
struct map_session_data *sd = NULL;
struct status_change* sc;
@@ -6780,8 +6813,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
struct mob_data *md = BL_CAST(BL_MOB,bl);
if(md && (md->class_ == MOBID_EMPERIUM || mob_is_battleground(md)) && type != SC_SAFETYWALL && type != SC_PNEUMA)
return 0; //Emperium/BG Monsters can't be afflicted by status changes
- //if(md && mob_is_gvg(md) && status->sc2scb_flag(type)&SCB_MAXHP)
- // return 0; //prevent status addinh hp to gvg mob (like bloodylust=hp*3 etc...
+#if 0
+ if(md && mob_is_gvg(md) && status->sc2scb_flag(type)&SCB_MAXHP)
+ return 0; //prevent status addinh hp to gvg mob (like bloodylust=hp*3 etc...
+#endif // 0
}
if( sc->data[SC_REFRESH] ) {
@@ -6855,7 +6890,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
sd = BL_CAST(BL_PC, bl);
//Adjust tick according to status resistances
- if( !(flag&(1|4)) ) {
+ if( !(flag&(SCFLAG_NOAVOID|SCFLAG_LOADED)) ) {
tick = status->get_sc_def(src, bl, type, rate, tick, flag);
if( !tick ) return 0;
}
@@ -6877,7 +6912,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
)
return 0;
case SC_VACUUM_EXTREME:
- if(sc->data[SC_HALLUCINATIONWALK] || sc->data[SC_HOVERING])
+ if(sc->data[SC_HALLUCINATIONWALK])
return 0;
break;
case SC_STONE:
@@ -6885,7 +6920,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
return 0;
case SC_FREEZE:
//Undead are immune to Freeze/Stone
- if (undead_flag && !(flag&1))
+ if (undead_flag && !(flag&SCFLAG_NOAVOID))
return 0;
case SC_SLEEP:
case SC_STUN:
@@ -6926,7 +6961,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
return 0; //Overthrust can't take effect if under Max Overthrust. [Skotlex]
case SC_OVERTHRUSTMAX:
if( sc->option&OPTION_MADOGEAR )
- return 0;//Overthrust and Overthrust Max cannot be used on Mado Gear [Ind]
+ return 0; //Overthrust and Overthrust Max cannot be used on Mado Gear [Ind]
break;
case SC_ADRENALINE:
if(sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE)))
@@ -6962,7 +6997,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_CARTBOOST:
case SC_ASSNCROS:
if(sc->option&OPTION_MADOGEAR)
- return 0;//Mado is immune to wind walk, cart boost, etc (others above) [Ind]
+ return 0; //Mado is immune to wind walk, cart boost, etc (others above) [Ind]
case SC_INC_AGI:
if (sc->data[SC_QUAGMIRE])
return 0;
@@ -6994,7 +7029,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
//Strip skills, need to divest something or it fails.
case SC_NOEQUIPWEAPON:
- if (sd && !(flag&4)) { //apply sc anyway if loading saved sc_data
+ if (sd && !(flag&SCFLAG_LOADED)) { //apply sc anyway if loading saved sc_data
int i;
opt_flag = 0; //Reuse to check success condition.
if(sd->bonus.unstripable_equip&EQP_WEAPON)
@@ -7012,7 +7047,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_NOEQUIPSHIELD:
if( val2 == 1 ) val2 = 0; //GX effect. Do not take shield off..
else
- if (sd && !(flag&4)) {
+ if (sd && !(flag&SCFLAG_LOADED)) {
int i;
if(sd->bonus.unstripable_equip&EQP_SHIELD)
return 0;
@@ -7024,7 +7059,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break;
case SC_NOEQUIPARMOR:
- if (sd && !(flag&4)) {
+ if (sd && !(flag&SCFLAG_LOADED)) {
int i;
if(sd->bonus.unstripable_equip&EQP_ARMOR)
return 0;
@@ -7036,7 +7071,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break;
case SC_NOEQUIPHELM:
- if (sd && !(flag&4)) {
+ if (sd && !(flag&SCFLAG_LOADED)) {
int i;
if(sd->bonus.unstripable_equip&EQP_HELM)
return 0;
@@ -7135,7 +7170,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
{ // it doesn't stack or even renewed
int i = SC_TOXIN;
for(; i<= SC_LEECHESEND; i++)
- if(sc->data[i]) return 0;
+ if(sc->data[i]) return 0;
}
break;
case SC_MAGNETICFIELD:
@@ -7149,7 +7184,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
}
//Check for BOSS resistances
- if(st->mode&MD_BOSS && !(flag&1)) {
+ if(st->mode&MD_BOSS && !(flag&SCFLAG_NOAVOID)) {
if (type>=SC_COMMON_MIN && type <= SC_COMMON_MAX)
return 0;
switch (type) {
@@ -7210,9 +7245,13 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
status_change_end(bl, SC_STONE, INVALID_TIMER);
}
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ status_change_end(bl, SC_SOULLINK, INVALID_TIMER);
break;
case SC_INC_AGI:
status_change_end(bl, SC_DEC_AGI, INVALID_TIMER);
+ if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HIGH)
+ status_change_end(bl, SC_SOULLINK, INVALID_TIMER);
break;
case SC_QUAGMIRE:
status_change_end(bl, SC_CONCENTRATION, INVALID_TIMER);
@@ -7285,8 +7324,8 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
status_change_end(bl, SC_ASSUMPTIO, INVALID_TIMER);
break;
case SC_CARTBOOST:
- if(sc->data[SC_DEC_AGI] || sc->data[SC_ADORAMUS])
- { //Cancel Decrease Agi, but take no further effect [Skotlex]
+ if (sc->data[SC_DEC_AGI] || sc->data[SC_ADORAMUS]) {
+ //Cancel Decrease Agi, but take no further effect [Skotlex]
status_change_end(bl, SC_DEC_AGI, INVALID_TIMER);
status_change_end(bl, SC_ADORAMUS, INVALID_TIMER);
return 0;
@@ -7547,7 +7586,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
vd = status->get_viewdata(bl);
calc_flag = status->ChangeFlagTable[type];
- if(!(flag&4)) { //&4 - Do not parse val settings when loading SCs
+ if(!(flag&SCFLAG_LOADED)) { // Do not parse val settings when loading SCs
switch(type) {
case SC_ADORAMUS:
sc_start(src,bl,SC_BLIND,100,val1,skill->get_time(status->sc2skill(type),val1));
@@ -7558,16 +7597,16 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_ENDURE:
val2 = 7; // Hit-count [Celest]
- if( !(flag&1) && (bl->type&(BL_PC|BL_MER)) && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground && !val4 ) {
+ if( !(flag&SCFLAG_NOAVOID) && (bl->type&(BL_PC|BL_MER)) && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground && !val4 ) {
struct map_session_data *tsd;
if( sd ) {
int i;
for( i = 0; i < 5; i++ ) {
if( sd->devotion[i] && (tsd = map->id2sd(sd->devotion[i])) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, val3, val4, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, val3, val4, tick, SCFLAG_ALL);
}
} else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag && (tsd = ((TBL_MER*)bl)->master) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, val3, val4, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, val3, val4, tick, SCFLAG_ALL);
}
//val4 signals infinite endure (if val4 == 2 it is infinite endure from Berserk)
if( val4 )
@@ -7588,7 +7627,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
tick_time = val2 = tick>0?tick:60000;
tick = -1; // duration sent to the client should be infinite
break;
- case SC_EDP: // [Celest]
+ case SC_EDP: // [Celest]
val2 = val1 + 2; //Chance to Poison enemies.
val3 = 50*(val1+1); //Damage increase (+50 +50*lv%)
#ifdef RENEWAL_EDP
@@ -7628,7 +7667,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
tick = -1;
break;
case SC_ENCHANTPOISON:
- val2= 250+50*val1; //Poisoning Chance (2.5+0.5%) in 1/10000 rate
+ val2= 250+50*val1; //Poisoning Chance (2.5+0.5%) in 1/10000 rate
case SC_ASPERSIO:
case SC_PROPERTYFIRE:
case SC_PROPERTYWATER:
@@ -7655,16 +7694,16 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_REFLECTSHIELD:
val2=10+val1*3; // %Dmg reflected
- if( !(flag&1) && (bl->type&(BL_PC|BL_MER)) ) {
+ if( !(flag&SCFLAG_NOAVOID) && (bl->type&(BL_PC|BL_MER)) ) {
struct map_session_data *tsd;
if( sd ) {
int i;
for( i = 0; i < 5; i++ ) {
if( sd->devotion[i] && (tsd = map->id2sd(sd->devotion[i])) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, SCFLAG_ALL);
}
} else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag && (tsd = ((TBL_MER*)bl)->master) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, SCFLAG_ALL);
}
break;
case SC_NOEQUIPWEAPON:
@@ -7877,17 +7916,17 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
//val4&1 signals the presence of a wall.
//val4&2 makes cloak not end on normal attacks [Skotlex]
//val4&4 makes cloak not end on using skills
- if (bl->type == BL_PC || (bl->type == BL_MOB && ((TBL_MOB*)bl)->special_state.clone) ) //Standard cloaking.
+ if (bl->type == BL_PC || (bl->type == BL_MOB && ((TBL_MOB*)bl)->special_state.clone) ) //Standard cloaking.
val4 |= battle_config.pc_cloak_check_type&7;
else
val4 |= battle_config.monster_cloak_check_type&7;
break;
- case SC_SIGHT: /* splash status */
+ case SC_SIGHT: /* splash status */
case SC_RUWACH:
case SC_WZ_SIGHTBLASTER:
val3 = skill->get_splash(val2, val1); //Val2 should bring the skill-id.
- val2 = tick/250;
- tick_time = 10; // [GodLesZ] tick time
+ val2 = tick/20;
+ tick_time = 20; // [GodLesZ] tick time
break;
//Permanent effects.
@@ -7907,7 +7946,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_AUTOGUARD:
- if( !(flag&1) ) {
+ if( !(flag&SCFLAG_NOAVOID) ) {
struct map_session_data *tsd;
int i,t;
for( i = val2 = 0; i < val1; i++) {
@@ -7919,17 +7958,17 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if( sd ) {
for( i = 0; i < 5; i++ ) {
if( sd->devotion[i] && (tsd = map->id2sd(sd->devotion[i])) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, SCFLAG_ALL);
}
}
else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag && (tsd = ((TBL_MER*)bl)->master) )
- status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, 1);
+ status->change_start(bl, &tsd->bl, type, 10000, val1, val2, 0, 0, tick, SCFLAG_ALL);
}
}
break;
case SC_DEFENDER:
- if (!(flag&1)) {
+ if (!(flag&SCFLAG_NOAVOID)) {
val2 = 5 + 15*val1; //Damage reduction
val3 = 0; // unused, previously speed adjustment
val4 = 250 - 50*val1; //Aspd adjustment
@@ -7940,7 +7979,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
for (i = 0; i < 5; i++) {
//See if there are devoted characters, and pass the status to them. [Skotlex]
if (sd->devotion[i] && (tsd = map->id2sd(sd->devotion[i])))
- status->change_start(bl, &tsd->bl,type,10000,val1,5+val1*5,val3,val4,tick,1);
+ status->change_start(bl, &tsd->bl,type,10000,val1,5+val1*5,val3,val4,tick,SCFLAG_NOAVOID);
}
}
}
@@ -8030,6 +8069,23 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
stat = (psce->val4 >> 0)&0xFF; stat = min(stat, max_stat - tst->luk ); val4 |= cap_value(stat,0,0xFF);
}
break;
+ case SC_SOULLINK:
+ //1st Transcendent Spirit works similar to Marionette Control
+ if(sd && val2 == SL_HIGH) {
+ int stat,max_stat;
+ // Fetch target's stats
+ struct status_data* status2 = status->get_status_data(bl); // Battle status
+ val3 = 0;
+ val4 = 0;
+ max_stat = (status->get_lv(bl)-10<50)?status->get_lv(bl)-10:50;
+ stat = max(0, max_stat - status2->str ); val3 |= cap_value(stat,0,0xFF)<<16;
+ stat = max(0, max_stat - status2->agi ); val3 |= cap_value(stat,0,0xFF)<<8;
+ stat = max(0, max_stat - status2->vit ); val3 |= cap_value(stat,0,0xFF);
+ stat = max(0, max_stat - status2->int_); val4 |= cap_value(stat,0,0xFF)<<16;
+ stat = max(0, max_stat - status2->dex ); val4 |= cap_value(stat,0,0xFF)<<8;
+ stat = max(0, max_stat - status2->luk ); val4 |= cap_value(stat,0,0xFF);
+ }
+ break;
case SC_SWORDREJECT:
val2 = 15*val1; //Reflect chance
val3 = 3; //Reflections
@@ -8067,7 +8123,9 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
while( i >= 0 ) {
type2 = types[i];
if( d_sc->data[type2] )
- sc_start(bl, bl, type2, 100, d_sc->data[type2]->val1, skill->get_time(status->sc2skill(type2),d_sc->data[type2]->val1));
+ status->change_start(bl, bl, type2, 10000, d_sc->data[type2]->val1, 0, 0, 0,
+ skill->get_time(status->sc2skill(type2),d_sc->data[type2]->val1),
+ (type2 != SC_DEFENDER) ? SCFLAG_NOICON : SCFLAG_NONE);
i--;
}
}
@@ -8154,7 +8212,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_KAAHI:
val2 = 200*val1; //HP heal
val3 = 5*val1; //SP cost
- val4 = INVALID_TIMER; //Kaahi Timer.
+ val4 = INVALID_TIMER; //Kaahi Timer.
break;
case SC_BLESSING:
if ((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC)
@@ -8290,7 +8348,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
//2. Set restore point (val3 -> return map, val4 return coords
val3 = map_index;
val4 = pos;
- } else if (!val3
+ } else if (!val3
|| val3 == sd->mapindex
|| !sd->sc.data[SC_JAILED] // If player is being jailed and is already in jail (issue: 8206)
) { //Use save point.
@@ -8344,11 +8402,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_STONESKIN:
- if (val2 == NPC_ANTIMAGIC)
- { //Boost mdef
+ if (val2 == NPC_ANTIMAGIC) {
+ //Boost mdef
val2 =-20;
val3 = 20;
- } else { //Boost def
+ } else {
+ //Boost def
val2 = 20;
val3 =-20;
}
@@ -8466,7 +8525,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
tick_time = 4000; // [GodLesZ] tick time
break;
case SC_PYREXIA:
- status->change_start(src, bl,SC_BLIND,10000,val1,0,0,0,30000,11); // Blind status that last for 30 seconds
+ status->change_start(src, bl,SC_BLIND,10000,val1,0,0,0,30000,SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE); // Blind status that last for 30 seconds
val4 = tick / 3000;
tick_time = 3000; // [GodLesZ] tick time
break;
@@ -8578,20 +8637,33 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC__ENERVATION:
val2 = 20 + 10 * val1; // ATK Reduction
- if( sd ) pc->delspiritball(sd,sd->spiritball,0);
+ if ( sd ) {
+ int i;
+ pc->delspiritball(sd, sd->spiritball, 0);
+ for (i = SPIRITS_TYPE_CHARM_WATER; i < SPIRITS_TYPE_SPHERE; i++)
+ pc->del_charm(sd, sd->spiritcharm[i], i);
+ }
break;
case SC__GROOMY:
val2 = 20 + 10 * val1; //ASPD. Need to confirm if Movement Speed reduction is the same. [Jobbie]
val3 = 20 * val1; //HIT
if( sd ) { // Removes Animals
- if( pc_isriding(sd) ) pc->setriding(sd, 0);
- if( pc_isridingdragon(sd) ) pc->setoption(sd, sd->sc.option&~OPTION_DRAGON);
- if( pc_iswug(sd) ) pc->setoption(sd, sd->sc.option&~OPTION_WUG);
- if( pc_isridingwug(sd) ) pc->setoption(sd, sd->sc.option&~OPTION_WUGRIDER);
- if( pc_isfalcon(sd) ) pc->setoption(sd, sd->sc.option&~OPTION_FALCON);
- if( sd->status.pet_id > 0 ) pet->menu(sd, 3);
- if( homun_alive(sd->hd) ) homun->vaporize(sd,HOM_ST_REST);
- if( sd->md ) mercenary->delete(sd->md,3);
+ if (pc_isridingpeco(sd))
+ pc->setridingpeco(sd, false);
+ if (pc_isridingdragon(sd))
+ pc->setridingdragon(sd, 0);
+ if (pc_iswug(sd))
+ pc->setoption(sd, sd->sc.option&~OPTION_WUG);
+ if (pc_isridingwug(sd))
+ pc->setridingwug(sd, false);
+ if (pc_isfalcon(sd))
+ pc->setfalcon(sd, false);
+ if (sd->status.pet_id > 0)
+ pet->menu(sd, 3);
+ if (homun_alive(sd->hd))
+ homun->vaporize(sd,HOM_ST_REST);
+ if (sd->md)
+ mercenary->delete(sd->md,3);
}
break;
case SC__LAZINESS:
@@ -8688,8 +8760,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if ( !val3 )
val3 = 50;
if( sd ) {
- if( pc_isriding(sd) ) pc->setriding(sd, 0);
- if( pc_isridingdragon(sd) ) pc->setoption(sd, sd->sc.option&~OPTION_DRAGON);
+ if (pc_isridingpeco(sd))
+ pc->setridingpeco(sd, false);
+ if (pc_isridingdragon(sd))
+ pc->setridingdragon(sd, false);
}
}
break;
@@ -8785,18 +8859,16 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
struct block_list * src2;
val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
if( (src2 = map->id2bl(val2)) ){
- val4 = ( 200/status_get_int(src2) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
+ val4 = ( 200/(status_get_int(src2)?status_get_int(src2):1) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
val2 = ( status_get_dex(src2)/4 + status_get_str(src2)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5]
}
}
break;
case SC_GENTLETOUCH_REVITALIZE:
- {// take note there is no vit,aspd,speed increase as skill desc says. [malufett]
- struct block_list * src2;
- val3 = val1 * 30 + 150; // Natural HP recovery increase: [(Skill Level x 30) + 50] %
- if( (src2 = map->id2bl(val2)) ) // the stat def is not shown in the status window and it is process differently
- val4 = ( status_get_vit(src2)/4 ) * val1; // STAT DEF increase: [(Caster VIT / 4) x Skill Level]
- }
+ if(val2 < 0)
+ val2 = 0;
+ else
+ val2 = val2 / 4 * val1; // STAT DEF increase: [(Caster VIT / 4) x Skill Level]
break;
case SC_PYROTECHNIC_OPTION:
val2 = 60;
@@ -8804,7 +8876,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_HEATER_OPTION:
val2 = 120; // Watk. TODO: Renewal (Atk2)
val3 = (sd ? sd->status.job_level : 0); // % Increase damage.
- val4 = 3; // Change into fire element.
+ val4 = 3; // Change into fire element.
break;
case SC_TROPIC_OPTION:
val2 = 180; // Watk. TODO: Renewal (Atk2)
@@ -8814,16 +8886,16 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
val2 = 40;
break;
case SC_COOLER_OPTION:
- val2 = 80; // Bonus Matk
+ val2 = 80; // Bonus Matk
val3 = (sd ? sd->status.job_level : 0); // % Freezing chance
- val4 = 1; // Change into water elemet
+ val4 = 1; // Change into water elemet
break;
case SC_CHILLY_AIR_OPTION:
val2 = 120; // Matk. TODO: Renewal (Matk1)
val3 = MG_COLDBOLT;
break;
case SC_WIND_STEP_OPTION:
- val2 = 50; // % Increase speed and flee.
+ val2 = 50; // % Increase speed and flee.
break;
case SC_BLAST_OPTION:
val2 = (sd ? sd->status.job_level : 0); // % Increase damage
@@ -8855,7 +8927,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_WATER_DROP_OPTION:
case SC_WIND_CURTAIN_OPTION:
case SC_STONE_SHIELD_OPTION:
- val2 = 100; // Elemental modifier.
+ val2 = 100; // Elemental modifier.
break;
case SC_TROPIC:
case SC_CHILLY_AIR:
@@ -8887,10 +8959,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
tick_time = val3;
break;
case SC_WATER_BARRIER:
- val3 = 20; // Reductions. Atk2, Flee1
+ val3 = 20; // Reductions. Atk2, Flee1
break;
case SC_ZEPHYR:
- val2 = 25; // Flee.
+ val2 = 25; // Flee.
break;
case SC_TIDAL_WEAPON:
val2 = 20; // Increase Elemental's attack.
@@ -8905,13 +8977,17 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
val1 = 15;
break;
case SC_STOMACHACHE:
- val2 = 8; // SP consume.
+ val2 = 8; // SP consume.
val4 = tick / 10000;
tick_time = 10000; // [GodLesZ] tick time
break;
- case SC_KYOUGAKU:
- val2 = 2*val1 + rand()%(3 * val1);
- clif->status_change(bl, SI_ACTIVE_MONSTER_TRANSFORM, 1, 0, 1002, 0, 0); // Poring in disguise
+ case SC_KYOUGAKU: {
+ int min = val1*2;
+ int max = val1*3;
+ val3 = rnd()%(max-min)+min;
+ val2 = val1;
+ val1 = 1002; // Monster ID
+ }
break;
case SC_KAGEMUSYA:
val3 = val1 * 2;
@@ -9036,8 +9112,8 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
val2 = 20+(20*val1);
break;
default:
- if( calc_flag == SCB_NONE && status->SkillChangeTable[type] == 0 && status->IconChangeTable[type] == 0 )
- { //Status change with no calc, no icon, and no skill associated...?
+ if (calc_flag == SCB_NONE && status->SkillChangeTable[type] == 0 && status->IconChangeTable[type] == 0) {
+ //Status change with no calc, no icon, and no skill associated...?
ShowError("UnknownStatusChange [%d]\n", type);
return 0;
}
@@ -9058,13 +9134,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_KAAHI:
val4 = INVALID_TIMER;
break;
- case SC_KYOUGAKU:
- clif->status_change(bl, SI_ACTIVE_MONSTER_TRANSFORM, 1, 0, 1002, 0, 0); // Poring in disguise
- break;
}
}
- /* values that must be set regardless of flag&4 e.g. val_flag */
+ /* values that must be set regardless of SCFLAG_LOADED e.g. val_flag */
switch(type) {
case SC_FIGHTINGSPIRIT:
val_flag |= 1|2;
@@ -9181,6 +9254,9 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_WATER_BARRIER:
val_flag |= 1|2|4;
break;
+ case SC_KYOUGAKU:
+ val_flag |= 1;
+ break;
case SC_CASH_PLUSEXP:
case SC_CASH_PLUSONLYJOBEXP:
case SC_MONSTER_TRANSFORM:
@@ -9188,7 +9264,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
val_flag |= 1;
break;
}
-
+
/* [Ind/Hercules] */
if( sd && status->DisplayType[type] ) {
int dval1 = 0, dval2 = 0, dval3 = 0;
@@ -9239,7 +9315,6 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_CURSEDCIRCLE_TARGET:
case SC_FEAR:
case SC_MEIKYOUSISUI:
- case SC_KYOUGAKU:
case SC_NEEDLE_OF_PARALYZE:
case SC_DEATHBOUND:
unit->stop_walking(bl,1);
@@ -9293,13 +9368,13 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
opt_flag = 1;
switch(type) {
//OPT1
- case SC_STONE: sc->opt1 = OPT1_STONEWAIT; break;
- case SC_FREEZE: sc->opt1 = OPT1_FREEZE; break;
- case SC_STUN: sc->opt1 = OPT1_STUN; break;
- case SC_SLEEP: sc->opt1 = OPT1_SLEEP; break;
- case SC_BURNING: sc->opt1 = OPT1_BURNING; break; // Burning need this to be showed correctly. [pakpil]
- case SC_WHITEIMPRISON: sc->opt1 = OPT1_IMPRISON; break;
- case SC_COLD: sc->opt1 = OPT1_CRYSTALIZE; break;
+ case SC_STONE: sc->opt1 = OPT1_STONEWAIT; break;
+ case SC_FREEZE: sc->opt1 = OPT1_FREEZE; break;
+ case SC_STUN: sc->opt1 = OPT1_STUN; break;
+ case SC_SLEEP: sc->opt1 = OPT1_SLEEP; break;
+ case SC_BURNING: sc->opt1 = OPT1_BURNING; break; // Burning need this to be showed correctly. [pakpil]
+ case SC_WHITEIMPRISON: sc->opt1 = OPT1_IMPRISON; break;
+ case SC_COLD: sc->opt1 = OPT1_CRYSTALIZE; break;
//OPT2
case SC_POISON: sc->opt2 |= OPT2_POISON; break;
case SC_CURSE: sc->opt2 |= OPT2_CURSE; break;
@@ -9325,7 +9400,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_OVERTHRUSTMAX:
case SC_OVERTHRUST:
- case SC_SWOO: //Why does it shares the same opt as Overthrust? Perhaps we'll never know...
+ case SC_SWOO: //Why does it shares the same opt as Overthrust? Perhaps we'll never know...
sc->opt3 |= OPT3_OVERTHRUST;
opt_flag = 0;
break;
@@ -9361,10 +9436,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
opt_flag = 0;
sc->opt3 |= OPT3_BERSERK;
break;
-// case ???: // doesn't seem to do anything
-// sc->opt3 |= OPT3_LIGHTBLADE;
-// opt_flag = 0;
-// break;
+#if 0
+ case ???: // doesn't seem to do anything
+ sc->opt3 |= OPT3_LIGHTBLADE;
+ opt_flag = 0;
+ break;
+#endif // 0
case SC_DANCING:
if ((val1&0xFFFF) == CG_MOONLIT)
sc->opt3 |= OPT3_MOONLIT;
@@ -9399,10 +9476,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
sc->opt3 |= OPT3_UNDEAD;
opt_flag = 0;
break;
-// case ???: // from DA_CONTRACT (looks like biolab mobs aura)
-// sc->opt3 |= OPT3_CONTRACT;
-// opt_flag = 0;
-// break;
+#if 0
+ case ???: // from DA_CONTRACT (looks like biolab mobs aura)
+ sc->opt3 |= OPT3_CONTRACT;
+ opt_flag = 0;
+ break;
+#endif // 0
//OPTION
case SC_HIDING:
sc->option |= OPTION_HIDE;
@@ -9468,7 +9547,8 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
clif->changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
}
}
- if (calc_flag&SCB_DYE) { //Reset DYE color
+ if (calc_flag&SCB_DYE) {
+ //Reset DYE color
if (vd && vd->cloth_color) {
val4 = vd->cloth_color;
clif->changelook(bl,LOOK_CLOTHES_COLOR,0);
@@ -9476,7 +9556,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
calc_flag&=~SCB_DYE;
}
- if( !(flag&4 && status->DisplayType[type]) )
+ if(!(flag&SCFLAG_NOICON) && !(flag&SCFLAG_LOADED && status->DisplayType[type]))
clif->status_change(bl,status->IconChangeTable[type],1,tick,(val_flag&1)?val1:1,(val_flag&2)?val2:0,(val_flag&4)?val3:0);
/**
@@ -9670,7 +9750,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
#ifdef ANTI_MAYAP_CHEAT
bool invisible = false;
#endif
-
+
nullpo_ret(bl);
sc = status->get_sc(bl);
@@ -9686,7 +9766,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
if( sd && sce->timer == INVALID_TIMER && !sd->state.loggingout )
chrif->del_scdata_single(sd->status.account_id,sd->status.char_id,type);
-
+
if (tid == INVALID_TIMER) {
if (type == SC_ENDURE && sce->val4)
//Do not end infinite endure.
@@ -10132,9 +10212,6 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
}
}
break;
- case SC_KYOUGAKU:
- clif->sc_end(&sd->bl,sd->bl.id,AREA,SI_ACTIVE_MONSTER_TRANSFORM);
- break;
case SC_CLAIRVOYANCE:
calc_flag = SCB_ALL;/* required for overlapping */
break;
@@ -10312,10 +10389,12 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
opt_flag = 0;
sc->opt3 &= ~OPT3_BERSERK;
break;
- // case ???: // doesn't seem to do anything
- // sc->opt3 &= ~OPT3_LIGHTBLADE;
- // opt_flag = 0;
- // break;
+#if 0
+ case ???: // doesn't seem to do anything
+ sc->opt3 &= ~OPT3_LIGHTBLADE;
+ opt_flag = 0;
+ break;
+#endif // 0
case SC_DANCING:
if ((sce->val1&0xFFFF) == CG_MOONLIT)
sc->opt3 &= ~OPT3_MOONLIT;
@@ -10350,16 +10429,19 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
sc->opt3 &= ~OPT3_UNDEAD;
opt_flag = 0;
break;
- // case ???: // from DA_CONTRACT (looks like biolab mobs aura)
- // sc->opt3 &= ~OPT3_CONTRACT;
- // opt_flag = 0;
- // break;
+#if 0
+ case ???: // from DA_CONTRACT (looks like biolab mobs aura)
+ sc->opt3 &= ~OPT3_CONTRACT;
+ opt_flag = 0;
+ break;
+#endif // 0
default:
opt_flag = 0;
}
#ifdef ANTI_MAYAP_CHEAT
if (invisible && !(sc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_INVISIBLE))) {
+ clif->slide(bl, bl->x, bl->y);
clif->fixpos(bl);
}
#endif
@@ -10392,8 +10474,12 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
if(opt_flag&4) //Out of hiding, invoke on place.
skill->unit_move(bl,timer->gettick(),1);
- if(opt_flag&2 && sd && map->getcell(bl->m,bl->x,bl->y,CELL_CHKNPC))
- npc->touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event.
+ if (opt_flag & 2 && sd) {
+ if (map->getcell(bl->m,bl->x,bl->y,CELL_CHKNPC))
+ npc->touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event.
+ else
+ npc->untouch_areanpc(sd, bl->m, bl->x, bl->y);
+ }
ers_free(status->data_ers, sce);
return 1;
@@ -10515,14 +10601,17 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC_SIGHT:
case SC_RUWACH:
case SC_WZ_SIGHTBLASTER:
- if(type == SC_WZ_SIGHTBLASTER)
+ if(type == SC_WZ_SIGHTBLASTER) {
+ //Restore trap immunity
+ if(sce->val4%2)
+ sce->val4--;
map->foreachinrange(status->change_timer_sub, bl, sce->val3, BL_CHAR|BL_SKILL, bl, sce, type, tick);
- else
+ } else
map->foreachinrange(status->change_timer_sub, bl, sce->val3, BL_CHAR, bl, sce, type, tick);
if( --(sce->val2)>0 ){
- sce->val4 += 250; // use for Shadow Form 2 seconds checking.
- sc_timer_next(250+tick, status->change_timer, bl->id, data);
+ sce->val4 += 20; // use for Shadow Form 2 seconds checking.
+ sc_timer_next(20+tick, status->change_timer, bl->id, data);
return 0;
}
break;
@@ -10584,10 +10673,11 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC_KNOWLEDGE:
if (!sd) break;
- if(bl->m == sd->feel_map[0].m ||
- bl->m == sd->feel_map[1].m ||
- bl->m == sd->feel_map[2].m)
- { //Timeout will be handled by pc->setpos
+ if (bl->m == sd->feel_map[0].m
+ || bl->m == sd->feel_map[1].m
+ || bl->m == sd->feel_map[2].m
+ ) {
+ //Timeout will be handled by pc->setpos
sce->timer = INVALID_TIMER;
return 0;
}
@@ -10717,12 +10807,13 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
break;
case SC_SPLASHER:
- // custom Venom Splasher countdown timer
- //if (sce->val4 % 1000 == 0) {
- // char counter[10];
- // snprintf (counter, 10, "%d", sce->val4/1000);
- // clif->message(bl, counter);
- //}
+#if 0 // custom Venom Splasher countdown timer
+ if (sce->val4 % 1000 == 0) {
+ char counter[10];
+ snprintf (counter, 10, "%d", sce->val4/1000);
+ clif->message(bl, counter);
+ }
+#endif // 0
if((sce->val4 -= 500) > 0) {
sc_timer_next(500 + tick, status->change_timer, bl->id, data);
return 0;
@@ -10961,7 +11052,7 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC__REPRODUCE:
if( --(sce->val4) >= 0 ) {
- if( !status_charge(bl, 0, 9 - (1 + sce->val1) / 2) )
+ if( !status->charge(bl, 0, 9 - (1 + sce->val1) / 2) )
break;
sc_timer_next(1000 + tick, status->change_timer, bl->id, data);
return 0;
@@ -11032,10 +11123,10 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC_SIRCLEOFNATURE:
if( --(sce->val4) >= 0 ) {
- if( !status_charge(bl,0,sce->val3) )
+ if( !status->charge(bl,0,sce->val3) )
break;
status->heal(bl, sce->val2, 0, 1);
- sc_timer_next(1000 + tick, status_change_timer, bl->id, data);
+ sc_timer_next(1000 + tick, status->change_timer, bl->id, data);
return 0;
}
break;
@@ -11051,7 +11142,7 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC_SATURDAY_NIGHT_FEVER:
if( --(sce->val3) >= 0 ) {
- if( !status_charge(bl, st->max_hp * 1 / 100, st->max_sp * 1 / 100) )
+ if( !status->charge(bl, st->max_hp * 1 / 100, st->max_sp * 1 / 100) )
break;
sc_timer_next(3000+tick, status->change_timer, bl->id, data);
return 0;
@@ -11060,7 +11151,7 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
case SC_MELODYOFSINK:
if( --(sce->val4) >= 0 ) {
- status_charge(bl, 0, st->max_sp * ( 2 * sce->val1 + 2 * sce->val2 ) / 100);
+ status->charge(bl, 0, st->max_sp * ( 2 * sce->val1 + 2 * sce->val2 ) / 100);
sc_timer_next(1000+tick, status->change_timer, bl->id, data);
return 0;
}
@@ -11139,11 +11230,11 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data) {
if(--(sce->val4) >= 0) {
// 1% SP Upkeep Cost
int sp = st->max_sp / 100;
-
+
if( st->sp <= sp )
status_change_end(bl,SC_STEALTHFIELD_MASTER,INVALID_TIMER);
- if( !status_charge(bl,0,sp) )
+ if( !status->charge(bl,0,sp) )
break;
if( !sc->data[SC_STEALTHFIELD_MASTER] )
@@ -11317,10 +11408,13 @@ int status_change_timer_sub(struct block_list* bl, va_list ap) {
if (battle->check_target( src, bl, BCT_ENEMY ) > 0
&& status->check_skilluse(src, bl, WZ_SIGHTBLASTER, 2)
) {
- if (sce && !(bl->type&BL_SKILL) //The hit is not counted if it's against a trap
- && skill->attack(BF_MAGIC,src,src,bl,WZ_SIGHTBLASTER,1,tick,0)
- ){
- sce->val2 = 0; //This signals it to end.
+ struct skill_unit *su = (struct skill_unit *)bl;
+ if (sce && skill->attack(BF_MAGIC,src,src,bl,WZ_SIGHTBLASTER,sce->val1,tick,0x4000)
+ && (!su || !su->group || !(skill->get_inf2(su->group->skill_id)&INF2_TRAP))) { // The hit is not counted if it's against a trap
+ sce->val2 = 0; // This signals it to end.
+ } else if ((bl->type&BL_SKILL) && sce && sce->val4%2 == 0) {
+ //Remove trap immunity temporarily so it triggers if you still stand on it
+ sce->val4++;
}
}
break;
@@ -11360,20 +11454,41 @@ int status_get_weapon_atk(struct block_list *bl, struct weapon_atk *watk, int fl
min = (int)(watk->atk - variance + strdex_bonus) + watk->atk2;
max = (int)(watk->atk + variance + strdex_bonus) + watk->atk2;
- }else if( watk->atk ){
+ }
+ else if (bl->type == BL_MOB && watk->atk){
min = watk->atk * 80 / 100;
max = watk->atk * 120 / 100;
}
+ else if (bl->type == BL_HOM && watk->atk){
+ if (flag & 4){
+ max = min = status->get_matk(bl, 2);
+ }
+ else{
+ min = watk->atk;
+ max = watk->atk2;
+ }
+ }
if( !(flag&1) ){
if( max > min )
- max = min + rnd()%(max - min);
+ max = min + rnd()%(max - min + 1);
else
max = min;
}
- if( bl->type == BL_PC && ((TBL_PC*)bl)->right_weapon.overrefine > 0 && !(flag&2) )
- max += rnd()%((TBL_PC*)bl)->right_weapon.overrefine + 1;
+ if ( bl->type == BL_PC && !(flag & 2) ) {
+ struct map_session_data *sd = (struct map_session_data *)bl;
+ short index = sd->equip_index[EQI_HAND_R], refine;
+ if ( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_WEAPON
+ && (refine = sd->status.inventory[index].refine) < 16 && refine ) {
+ int r = status->refine_info[watk->wlv].randombonus_max[refine + (4 - watk->wlv)] / 100;
+ if ( r )
+ max += (rnd() % 100) % r + 1;
+ }
+
+ if ( sd->spiritcharm[SPIRITS_TYPE_CHARM_LAND] > 0 )
+ max += 10 * max * sd->spiritcharm[SPIRITS_TYPE_CHARM_LAND] / 100;
+ }
max = status->calc_watk(bl, sc, max, false);
@@ -11384,31 +11499,21 @@ int status_get_weapon_atk(struct block_list *bl, struct weapon_atk *watk, int fl
}
/**
- * Gets a random matk value depending on min matk and max matk
- **/
-unsigned short status_get_rand_matk( unsigned short matk_max, unsigned short matk_min ) {
- if( matk_max > matk_min )
- return matk_min + rnd()%(matk_max - matk_min);
- else
- return matk_min;
-}
-
-/**
- * Get bl's matk_max and matk_min values depending on flag
- * @param flag
- * 0 - Get MATK
- * 1 - Get MATK w/o SC bonuses
- * 3 - Get MATK w/o EATK & SC bonuses
- **/
-void status_get_matk_sub( struct block_list *bl, int flag, unsigned short *matk_max, unsigned short *matk_min ) {
+* Get bl's matk_max and matk_min values depending on flag
+* @param flag
+* 0 - Get MATK
+* 1 - Get MATK w/o SC bonuses
+* 3 - Get MATK w/o EATK & SC bonuses
+**/
+void status_get_matk_sub(struct block_list *bl, int flag, unsigned short *matk_max, unsigned short *matk_min) {
struct status_data *st;
struct status_change *sc;
struct map_session_data *sd;
- if( bl == NULL )
+ if ( bl == NULL )
return;
- if( flag != 0 && flag != 1 && flag != 3 ) {
+ if ( flag != 0 && flag != 1 && flag != 3 ) {
ShowError("status_get_matk_sub: Unknown flag %d!\n", flag);
return;
}
@@ -11419,107 +11524,135 @@ void status_get_matk_sub( struct block_list *bl, int flag, unsigned short *matk_
#ifdef RENEWAL
/**
- * RE MATK Formula (from irowiki:http://irowiki.org/wiki/MATK)
- * MATK = (sMATK + wMATK + eMATK) * Multiplicative Modifiers
- **/
- *matk_min = status->base_matk(st, status->get_lv(bl));
+ * RE MATK Formula (from irowiki:http://irowiki.org/wiki/MATK)
+ * MATK = (sMATK + wMATK + eMATK) * Multiplicative Modifiers
+ **/
+ *matk_min = status->base_matk(bl, st, status->get_lv(bl));
// Any +MATK you get from skills and cards, including cards in weapon, is added here.
- if( sd && sd->bonus.ematk > 0 && flag != 3 )
+ if ( sd && sd->bonus.ematk > 0 && flag != 3 )
*matk_min += sd->bonus.ematk;
- if( flag != 3 )
+ if ( flag != 3 )
*matk_min = status->calc_ematk(bl, sc, *matk_min);
*matk_max = *matk_min;
- //This is the only portion in MATK that varies depending on the weapon level and refinement rate.
- if( bl->type&BL_PC && (st->rhw.matk + st->lhw.matk) > 0 ) {
- int wMatk = st->rhw.matk + st->lhw.matk; // Left and right matk stacks
- int variance = wMatk * st->rhw.wlv / 10; // Only use right hand weapon level
- *matk_min += wMatk - variance;
- *matk_max += wMatk + variance;
- } else if( bl->type&BL_MOB ) {
- *matk_min = *matk_max = status_get_int(bl) + status->get_lv(bl);
+ switch ( bl->type ) {
+ case BL_PC:
+ //This is the only portion in MATK that varies depending on the weapon level and refinement rate.
+ if ( (st->rhw.matk + st->lhw.matk) > 0 ) {
+ int wMatk = st->rhw.matk + st->lhw.matk; // Left and right matk stacks
+ int variance = wMatk * st->rhw.wlv / 10; // Only use right hand weapon level
+ *matk_min += wMatk - variance;
+ *matk_max += wMatk + variance;
+ }
+ break;
+ case BL_MOB:
*matk_min += 70 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
*matk_max += 130 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
+ break;
+ case BL_HOM:
+ *matk_min += (status_get_homint(bl) + status_get_homdex(bl)) / 5;
+ *matk_max += (status_get_homluk(bl) + status_get_homint(bl) + status_get_homdex(bl)) / 3;
+ break;
}
+
#else // not RENEWAL
- *matk_min = status_base_matk_min(st) + (sd?sd->bonus.ematk:0);
- *matk_max = status_base_matk_max(st) + (sd?sd->bonus.ematk:0);
+ *matk_min = status_base_matk_min(st) + (sd ? sd->bonus.ematk : 0);
+ *matk_max = status_base_matk_max(st) + (sd ? sd->bonus.ematk : 0);
#endif
- if (sd && sd->matk_rate != 100) {
- *matk_max = (*matk_max) * sd->matk_rate/100;
- *matk_min = (*matk_min) * sd->matk_rate/100;
+ if ( sd && sd->matk_rate != 100 ) {
+ *matk_max = (*matk_max) * sd->matk_rate / 100;
+ *matk_min = (*matk_min) * sd->matk_rate / 100;
}
- if ((bl->type&BL_HOM && battle_config.hom_setting&0x20) //Hom Min Matk is always the same as Max Matk
- || (sc && sc->data[SC_RECOGNIZEDSPELL]))
+ if ( (bl->type&BL_HOM && battle_config.hom_setting & 0x20) //Hom Min Matk is always the same as Max Matk
+ || (sc && sc->data[SC_RECOGNIZEDSPELL]) )
*matk_min = *matk_max;
#ifdef RENEWAL
- if( sd && sd->right_weapon.overrefine > 0 ) {
- (*matk_min)++;
- *matk_max += sd->right_weapon.overrefine - 1;
+ if ( sd && !(flag & 2) ) {
+ short index = sd->equip_index[EQI_HAND_R], refine;
+ if ( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_WEAPON
+ && (refine = sd->status.inventory[index].refine) < 16 && refine ) {
+ int r = status->refine_info[sd->inventory_data[index]->wlv].randombonus_max[refine + (4 - sd->inventory_data[index]->wlv)] / 100;
+ if ( r )
+ *matk_max += (rnd() % 100) % r + 1;
+ }
}
#endif
+
+ *matk_min = status->calc_matk(bl, sc, *matk_min, false);
+ *matk_max = status->calc_matk(bl, sc, *matk_max, false);
+
return;
}
/**
- * Get bl's matk value depending on flag
- * @param flag [malufett]
- * 1 - Get MATK w/o SC bonuses
- * 2 - Get modified MATK
- * 3 - Get MATK w/o eATK & SC bonuses
- * @retval 1 failure
- * @retval MATK success
- *
- * Shouldn't change _any_ value! [Panikon]
- **/
-int status_get_matk( struct block_list *bl, int flag ) {
+* Gets a random matk value depending on min matk and max matk
+**/
+unsigned short status_get_rand_matk(unsigned short matk_max, unsigned short matk_min) {
+ if ( matk_max > matk_min )
+ return matk_min + rnd() % (matk_max - matk_min);
+ else
+ return matk_min;
+}
+
+/**
+* Get bl's matk value depending on flag
+* @param flag [malufett]
+* 1 - Get MATK w/o SC bonuses
+* 2 - Get modified MATK
+* 3 - Get MATK w/o eATK & SC bonuses
+* @retval 1 failure
+* @retval MATK success
+*
+* Shouldn't change _any_ value! [Panikon]
+**/
+int status_get_matk(struct block_list *bl, int flag) {
struct status_data *st;
unsigned short matk_max, matk_min;
- if( bl == NULL )
+ if ( bl == NULL )
return 1;
- if( flag < 1 || flag > 3 ) {
+ if ( flag < 1 || flag > 3 ) {
ShowError("status_get_matk: Unknown flag %d!\n", flag);
return 1;
}
- if( (st = status->get_status_data(bl)) == NULL )
+ if ( (st = status->get_status_data(bl)) == NULL )
return 0;
// Just get matk
- if( flag == 2 )
+ if ( flag == 2 )
return status_get_rand_matk(st->matk_max, st->matk_min);
- status_get_matk_sub( bl, flag, &matk_max, &matk_min );
+ status_get_matk_sub(bl, flag, &matk_max, &matk_min);
// Get unmodified from sc matk
return status_get_rand_matk(matk_max, matk_min);
}
/**
- * Updates bl's MATK values
- **/
-void status_update_matk( struct block_list *bl ) {
+* Updates bl's MATK values
+**/
+void status_update_matk(struct block_list *bl) {
struct status_data *st;
struct status_change *sc;
unsigned short matk_max, matk_min;
- if( bl == NULL )
+ if ( bl == NULL )
return;
- if( (st = status->get_status_data(bl)) == NULL )
+ if ( (st = status->get_status_data(bl)) == NULL )
return;
- if( (sc = status->get_sc(bl)) == NULL )
+ if ( (sc = status->get_sc(bl)) == NULL )
return;
- status_get_matk_sub( bl, 0, &matk_max, &matk_min );
+ status_get_matk_sub(bl, 0, &matk_max, &matk_min);
// Update matk
st->matk_min = status->calc_matk(bl, sc, matk_min, true);
@@ -11669,7 +11802,7 @@ int status_change_spread( struct block_list *src, struct block_list *bl ) {
data.val2 = sc->data[i]->val2;
data.val3 = sc->data[i]->val3;
data.val4 = sc->data[i]->val4;
- status->change_start(src,bl,(sc_type)i,10000,data.val1,data.val2,data.val3,data.val4,data.tick,1|2|8);
+ status->change_start(src,bl,(sc_type)i,10000,data.val1,data.val2,data.val3,data.val4,data.tick,SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE);
flag = 1;
}
}
@@ -12053,7 +12186,7 @@ int status_readdb(void)
sv->readdb(map->db_path, "pre-re/job_db1.txt", ',', 5+MAX_WEAPON_TYPE, 5+MAX_WEAPON_TYPE, -1, status->readdb_job1);
#endif
sv->readdb(map->db_path, "job_db2.txt", ',', 1, 1+MAX_LEVEL, -1, status->readdb_job2);
- sv->readdb(map->db_path, "size_fix.txt", ',', MAX_WEAPON_TYPE, MAX_WEAPON_TYPE, ARRAYLENGTH(status->atkmods), status->readdb_sizefix);
+ sv->readdb(map->db_path, DBPATH"size_fix.txt", ',', MAX_WEAPON_TYPE, MAX_WEAPON_TYPE, ARRAYLENGTH(status->atkmods), status->readdb_sizefix);
sv->readdb(map->db_path, DBPATH"refine_db.txt", ',', 4+MAX_REFINE, 4+MAX_REFINE, ARRAYLENGTH(status->refine_info), status->readdb_refine);
sv->readdb(map->db_path, "sc_config.txt", ',', 2, 2, SC_MAX, status->readdb_scconfig);
@@ -12204,7 +12337,7 @@ void status_defaults(void) {
status->readdb = status_readdb;
status->init = do_init_status;
status->final = do_final_status;
-
+
status->initChangeTables = initChangeTables;
status->initDummyData = initDummyData;
status->base_amotion_pc = status_base_amotion_pc;
diff --git a/src/map/status.h b/src/map/status.h
index 942f86d7c..63f9854d5 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -67,6 +67,20 @@ typedef enum sc_conf_type {
SC_NO_CLEAR = 0x80,
} sc_conf_type;
+/**
+ * Flags to be used with status->change_start
+ */
+enum scstart_flag {
+ // Note: When updating this enum, also update the documentation in doc/script_commands.txt and the constants in db/const.txt
+ SCFLAG_NONE = 0x00, ///< No special behavior.
+ SCFLAG_NOAVOID = 0x01, ///< Cannot be avoided (it has to start).
+ SCFLAG_FIXEDTICK = 0x02, ///< Tick should not be reduced (by vit, luk, lv, etc).
+ SCFLAG_LOADED = 0x04, ///< sc_data was loaded, no value has to be altered.
+ SCFLAG_FIXEDRATE = 0x08, ///< rate should not be reduced (not evaluated in status_change_start, but in some calls to other functions).
+ SCFLAG_NOICON = 0x10, ///< Status icon (SI) should not be sent.
+ SCFLAG_ALL = SCFLAG_NONE|SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_LOADED|SCFLAG_FIXEDRATE|SCFLAG_NOICON
+};
+
// Status changes listing. These code are for use by the server.
typedef enum sc_type {
SC_NONE = -1,
@@ -88,7 +102,7 @@ typedef enum sc_type {
SC_BURNING,
SC_DEEP_SLEEP,
SC_COMMON_MAX = 14, // end
-
+
//Next up, we continue on 20, to leave enough room for additional "common" ailments in the future.
SC_PROVOKE = 20,
SC_ENDURE,
@@ -253,7 +267,7 @@ typedef enum sc_type {
SC_DONTFORGETME, //180
SC_FORTUNE,
SC_SERVICEFORYOU,
- SC_STOP, //Prevents inflicted chars from walking. [Skotlex]
+ SC_STOP, //Prevents inflicted chars from walking. [Skotlex]
SC_STRUP,
SC_SOULLINK,
SC_COMA, //Not a real SC_, it makes a char's HP/SP hit 1.
@@ -310,7 +324,7 @@ typedef enum sc_type {
SC_NJ_SUITON,
SC_NJ_NEN,
SC_KNOWLEDGE,
- SC_SMA_READY, //240
+ SC_SMA_READY, //240
SC_FLING,
SC_HLIF_AVOID,
SC_HLIF_CHANGE,
@@ -320,7 +334,7 @@ typedef enum sc_type {
SC_HAMI_DEFENCE,
SC_INCASPDRATE,
SC_PLUSAVOIDVALUE,
- SC_JAILED, //250
+ SC_JAILED, //250
SC_ENCHANTARMS,
SC_MAGICALATTACK,
SC_STONESKIN,
@@ -665,7 +679,7 @@ typedef enum sc_type {
SC_ZANGETSU,
SC_GENSOU,
SC_AKAITSUKI,
-
+
//homon S
SC_STYLE_CHANGE,
SC_GOLDENE_FERSE, // 540
@@ -691,13 +705,13 @@ typedef enum sc_type {
SC_TELEKINESIS_INTENSE,
SC_OFFERTORIUM,
SC_FRIGG_SONG, // 560
-
+
SC_ALL_RIDING,
SC_HANBOK,
SC_MONSTER_TRANSFORM,
SC_ANGEL_PROTECT,
SC_ILLUSIONDOPING,
-
+
SC_MTF_ASPD,
SC_MTF_RANGEATK,
SC_MTF_MATK,
@@ -710,13 +724,13 @@ typedef enum sc_type {
SC_OKTOBERFEST,
SC_STRANGELIGHTS,
SC_DECORATION_OF_MUSIC,
-
+
SC__MAELSTROM,
SC__CHAOS,
-
+
SC__FEINTBOMB_MASTER,
SC_FALLENEMPIRE,
- SC_FLASHCOMBO,
+ SC_FLASHCOMBO, // 580
//Vellum Weapon reductions
SC_DEFSET,
@@ -724,6 +738,12 @@ typedef enum sc_type {
SC_NO_SWITCH_EQUIP,
+ // 2014 Halloween Event
+ SC_MTF_MHP,
+ SC_MTF_MSP,
+ SC_MTF_PUMPKIN,
+ SC_MTF_HITFLEE,
+
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;
@@ -1185,7 +1205,7 @@ enum si_type {
SI_ECHOSONG = 443,
SI_HARMONIZE = 444,
SI_STRIKING = 445,
- SI_WARMER = 446,
+ //SI_WARMER = 446,
SI_MOONLITSERENADE = 447,
SI_SATURDAYNIGHTFEVER = 448,
SI_SITDOWN_FORCE = 449,
@@ -1474,21 +1494,21 @@ enum si_type {
//SI_ = 735,
SI_CHILL = 736,
SI_BURNT = 737,
-// SI_PCCAFE_PLAY_TIME = 738,
-// SI_TWISTED_TIME = 739,
+ //SI_PCCAFE_PLAY_TIME = 738,
+ //SI_TWISTED_TIME = 739,
SI_FLASHCOMBO = 740,
-// SI_JITTER_BUFF1 = 741,
-// SI_JITTER_BUFF2 = 742,
-// SI_JITTER_BUFF3 = 743,
-// SI_JITTER_BUFF4 = 744,
-// SI_JITTER_BUFF5 = 745,
-// SI_JITTER_BUFF6 = 746,
-// SI_JITTER_BUFF7 = 747,
-// SI_JITTER_BUFF8 = 748,
-// SI_JITTER_BUFF9 = 749,
-// SI_JITTER_BUFF10 = 750,
-// SI_CUP_OF_BOZA = 751,
+ //SI_JITTER_BUFF1 = 741,
+ //SI_JITTER_BUFF2 = 742,
+ //SI_JITTER_BUFF3 = 743,
+ //SI_JITTER_BUFF4 = 744,
+ //SI_JITTER_BUFF5 = 745,
+ //SI_JITTER_BUFF6 = 746,
+ //SI_JITTER_BUFF7 = 747,
+ //SI_JITTER_BUFF8 = 748,
+ //SI_JITTER_BUFF9 = 749,
+ //SI_JITTER_BUFF10 = 750,
+ //SI_CUP_OF_BOZA = 751,
SI_B_TRAP = 752,
SI_E_CHAIN = 753,
SI_E_QD_SHOT_READY = 754,
@@ -1514,38 +1534,38 @@ enum si_type {
SI_PACKING_ENVELOPE9 = 774,
SI_PACKING_ENVELOPE10 = 775,
SI_GLASTHEIM_TRANS = 776,
-// SI_ZONGZI_POUCH_TRANS = 777,
+ //SI_ZONGZI_POUCH_TRANS = 777,
SI_HEAT_BARREL_AFTER = 778,
SI_DECORATION_OF_MUSIC = 779,
-// SI_OVERSEAEXPUP = 780,
-// SI_CLOWN_N_GYPSY_CARD = 781,
-// SI_OPEN_NPC_MARKET = 782,
-// SI_BEEF_RIB_STEW = 783,
-// SI_PORK_RIB_STEW = 784,
-// SI_CHUSEOK_MONDAY = 785,
-// SI_CHUSEOK_TUESDAY = 786,
-// SI_CHUSEOK_WEDNESDAY = 787,
-// SI_CHUSEOK_THURSDAY = 788,
-// SI_CHUSEOK_FRIDAY = 789,
-// SI_CHUSEOK_WEEKEND = 790,
-// SI_ALL_LIGHTGUARD = 791,
-// SI_ALL_LIGHTGUARD_COOL_TIME = 792,
-// SI_MTF_MHP = 793,
-// SI_MTF_MSP = 794,
-// SI_MTF_PUMPKIN = 795,
-// SI_MTF_HITFLEE = 796,
-// SI_MTF_CRIDAMAGE2 = 797,
-// SI_MTF_SPDRAIN = 798,
-// SI_ACUO_MINT_GUM = 799,
-// ...
-// SI_GUILD_STORAGE = 810,
-// ...
-// SI_JUMPINGCLAN = 815,
-// ...
-// SI_MTF_RANGEATK2 = 818,
-// SI_MTF_ASPD2 = 819,
-// SI_MTF_MATK2 = 820,
+ //SI_OVERSEAEXPUP = 780,
+ //SI_CLOWN_N_GYPSY_CARD = 781,
+ //SI_OPEN_NPC_MARKET = 782,
+ //SI_BEEF_RIB_STEW = 783,
+ //SI_PORK_RIB_STEW = 784,
+ //SI_CHUSEOK_MONDAY = 785,
+ //SI_CHUSEOK_TUESDAY = 786,
+ //SI_CHUSEOK_WEDNESDAY = 787,
+ //SI_CHUSEOK_THURSDAY = 788,
+ //SI_CHUSEOK_FRIDAY = 789,
+ //SI_CHUSEOK_WEEKEND = 790,
+ //SI_ALL_LIGHTGUARD = 791,
+ //SI_ALL_LIGHTGUARD_COOL_TIME = 792,
+ //SI_MTF_MHP = 793,
+ //SI_MTF_MSP = 794,
+ //SI_MTF_PUMPKIN = 795,
+ //SI_MTF_HITFLEE = 796,
+ //SI_MTF_CRIDAMAGE2 = 797,
+ //SI_MTF_SPDRAIN = 798,
+ //SI_ACUO_MINT_GUM = 799,
+ // ...
+ //SI_GUILD_STORAGE = 810,
+ // ...
+ //SI_JUMPINGCLAN = 815,
+ // ...
+ //SI_MTF_RANGEATK2 = 818,
+ //SI_MTF_ASPD2 = 819,
+ //SI_MTF_MATK2 = 820,
SI_MAX,
};
@@ -1580,7 +1600,6 @@ enum e_mode
MD_CHANGETARGET_MELEE = 0x1000,
MD_CHANGETARGET_CHASE = 0x2000,
MD_TARGETWEAK = 0x4000,
- MD_RANDOMTARGET = 0x8000,
MD_MASK = 0xFFFF,
};
@@ -1662,18 +1681,18 @@ enum {
OPTION_DRAGON5 = 0x04000000,
OPTION_HANBOK = 0x08000000,
OPTION_OKTOBERFEST = 0x10000000,
-
+
#ifndef NEW_CARTS
OPTION_CART1 = 0x00000008,
OPTION_CART2 = 0x00000080,
OPTION_CART3 = 0x00000100,
OPTION_CART4 = 0x00000200,
OPTION_CART5 = 0x00000400,
-
+
/* compound constant for older carts */
OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5,
#endif
-
+
// compound constants
OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
@@ -1806,7 +1825,7 @@ struct regen_data_sub {
struct {
unsigned int hp,sp;
} tick;
-
+
//Regen rates (where every 1 means +100% regen)
struct {
unsigned char hp,sp;
@@ -1823,18 +1842,18 @@ struct regen_data {
struct {
unsigned int hp,sp,shp,ssp;
} tick;
-
+
//Regen rates (where every 1 means +100% regen)
struct {
unsigned char
hp,sp,shp,ssp;
} rate;
-
+
struct {
- unsigned walk:1; //Can you regen even when walking?
- unsigned gc:1; //Tags when you should have double regen due to GVG castle
+ unsigned walk:1; //Can you regen even when walking?
+ unsigned gc:1; //Tags when you should have double regen due to GVG castle
unsigned overweight :2; //overweight state (1: 50%, 2: 90%)
- unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
+ unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
} state;
//skill-regen, sitting-skill-regen (since not all chars with regen need it)
@@ -1920,10 +1939,17 @@ struct status_change {
#define status_get_size(bl) (status->get_status_data(bl)->size)
#define status_get_mode(bl) (status->get_status_data(bl)->mode)
+#define status_get_homstr(bl) (st->str + ((TBL_HOM*)bl)->homunculus.str_value)
+#define status_get_homagi(bl) (st->agi + ((TBL_HOM*)bl)->homunculus.agi_value)
+#define status_get_homvit(bl) (st->vit + ((TBL_HOM*)bl)->homunculus.vit_value)
+#define status_get_homint(bl) (st->int_ + ((TBL_HOM*)bl)->homunculus.int_value)
+#define status_get_homdex(bl) (st->dex + ((TBL_HOM*)bl)->homunculus.dex_value)
+#define status_get_homluk(bl) (st->luk + ((TBL_HOM*)bl)->homunculus.luk_value)
+
//Short version, receives rate in 1->100 range, and does not uses a flag setting.
-#define sc_start(src, bl, type, rate, val1, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),0,0,0,(tick),0))
-#define sc_start2(src, bl, type, rate, val1, val2, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),0,0,(tick),0))
-#define sc_start4(src, bl, type, rate, val1, val2, val3, val4, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),(val3),(val4),(tick),0))
+#define sc_start(src, bl, type, rate, val1, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),0,0,0,(tick),SCFLAG_NONE))
+#define sc_start2(src, bl, type, rate, val1, val2, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),0,0,(tick),SCFLAG_NONE))
+#define sc_start4(src, bl, type, rate, val1, val2, val3, val4, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),(val3),(val4),(tick),SCFLAG_NONE))
#define status_change_end(bl,type,tid) (status->change_end_((bl),(type),(tid),__FILE__,__LINE__))
@@ -2043,14 +2069,14 @@ struct status_interface {
defType (*calc_mdef) (struct block_list *bl, struct status_change *sc, int mdef, bool viewable);
short (*calc_mdef2) (struct block_list *bl, struct status_change *sc, int mdef2, bool viewable);
unsigned short (*calc_batk)(struct block_list *bl, struct status_change *sc, int batk, bool viewable);
- unsigned short (*base_matk) (const struct status_data *st, int level);
+ unsigned short(*base_matk) (struct block_list *bl, const struct status_data *st, int level);
int (*get_weapon_atk) (struct block_list *src, struct weapon_atk *watk, int flag);
int (*get_total_mdef) (struct block_list *src);
int (*get_total_def) (struct block_list *src);
int (*get_matk) (struct block_list *src, int flag);
void (*update_matk) ( struct block_list *bl );
int (*readdb) (void);
-
+
void (*initChangeTables) (void);
void (*initDummyData) (void);
int (*base_amotion_pc) (struct map_session_data *sd, struct status_data *st);
diff --git a/src/map/storage.c b/src/map/storage.c
index 217f14a3a..755f50cb7 100644
--- a/src/map/storage.c
+++ b/src/map/storage.c
@@ -85,13 +85,13 @@ int storage_storageopen(struct map_session_data *sd)
if(sd->state.storage_flag)
return 1; //Already open?
-
- if( !pc_can_give_items(sd) )
- { //check is this GM level is allowed to put items to storage
+
+ if( !pc_can_give_items(sd) ) {
+ //check is this GM level is allowed to put items to storage
clif->message(sd->fd, msg_txt(246));
return 1;
}
-
+
sd->state.storage_flag = 1;
storage->sortitem(sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items));
clif->storagelist(sd, sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items));
@@ -128,7 +128,7 @@ int storage_additem(struct map_session_data* sd, struct item* item_data, int amo
if( item_data->nameid <= 0 || amount <= 0 )
return 1;
-
+
data = itemdb->search(item_data->nameid);
if( data->stack.storage && amount > data->stack.amount )
@@ -136,12 +136,12 @@ int storage_additem(struct map_session_data* sd, struct item* item_data, int amo
return 1;
}
- if( !itemdb_canstore(item_data, pc_get_group_level(sd)) )
- { //Check if item is storable. [Skotlex]
+ if (!itemdb_canstore(item_data, pc_get_group_level(sd))) {
+ //Check if item is storable. [Skotlex]
clif->message (sd->fd, msg_txt(264));
return 1;
}
-
+
if( item_data->bound > IBT_ACCOUNT && !pc_can_give_bound_items(sd) ) {
clif->message(sd->fd, msg_txt(294));
return 1;
@@ -200,8 +200,8 @@ int storage_delitem(struct map_session_data* sd, int n, int amount)
* Add an item to the storage from the inventory.
* @index : inventory idx
* return
- * 0 : fail
- * 1 : success
+ * 0 : fail
+ * 1 : success
*------------------------------------------*/
int storage_storageadd(struct map_session_data* sd, int index, int amount) {
nullpo_ret(sd);
@@ -216,7 +216,7 @@ int storage_storageadd(struct map_session_data* sd, int index, int amount) {
return 0; // No item on that spot
if( amount < 1 || amount > sd->status.inventory[index].amount )
- return 0;
+ return 0;
if( storage->additem(sd,&sd->status.inventory[index],amount) == 0 )
pc->delitem(sd,index,amount,0,4,LOG_TYPE_STORAGE);
@@ -230,8 +230,8 @@ int storage_storageadd(struct map_session_data* sd, int index, int amount) {
* Retrieve an item from the storage into inventory
* @index : storage idx
* return
- * 0 : fail
- * 1 : success
+ * 0 : fail
+ * 1 : success
*------------------------------------------*/
int storage_storageget(struct map_session_data* sd, int index, int amount)
{
@@ -242,7 +242,7 @@ int storage_storageget(struct map_session_data* sd, int index, int amount)
if( sd->status.storage.items[index].nameid <= 0 )
return 0; //Nothing there
-
+
if( amount < 1 || amount > sd->status.storage.items[index].amount )
return 0;
@@ -258,22 +258,22 @@ int storage_storageget(struct map_session_data* sd, int index, int amount)
* Move an item from cart to storage.
* @index : cart inventory index
* return
- * 0 : fail
- * 1 : success
+ * 0 : fail
+ * 1 : success
*------------------------------------------*/
int storage_storageaddfromcart(struct map_session_data* sd, int index, int amount)
{
nullpo_ret(sd);
if( sd->status.storage.storage_amount > MAX_STORAGE )
- return 0; // storage full / storage closed
+ return 0; // storage full / storage closed
if( index < 0 || index >= MAX_CART )
- return 0;
+ return 0;
if( sd->status.cart[index].nameid <= 0 )
return 0; //No item there.
-
+
if( amount < 1 || amount > sd->status.cart[index].amount )
return 0;
@@ -287,8 +287,8 @@ int storage_storageaddfromcart(struct map_session_data* sd, int index, int amoun
* Get from Storage to the Cart inventory
* @index : storage index
* return
- * 0 : fail
- * 1 : success
+ * 0 : fail
+ * 1 : success
*------------------------------------------*/
int storage_storagegettocart(struct map_session_data* sd, int index, int amount) {
int flag = 0;
@@ -296,13 +296,13 @@ int storage_storagegettocart(struct map_session_data* sd, int index, int amount)
if( index < 0 || index >= MAX_STORAGE )
return 0;
-
+
if( sd->status.storage.items[index].nameid <= 0 )
return 0; //Nothing there.
-
+
if( amount < 1 || amount > sd->status.storage.items[index].amount )
return 0;
-
+
if( (flag = pc->cart_additem(sd,&sd->status.storage.items[index],amount,LOG_TYPE_STORAGE)) == 0 )
storage->delitem(sd,index,amount);
else {
@@ -333,7 +333,7 @@ void storage_storageclose(struct map_session_data* sd) {
*------------------------------------------*/
void storage_storage_quit(struct map_session_data* sd, int flag) {
nullpo_retv(sd);
-
+
if (map->save_settings&4)
chrif->save(sd, flag); //Invokes the storage saving as well.
@@ -351,7 +351,7 @@ DBData create_guildstorage(DBKey key, va_list args)
return DB->ptr2data(gs);
}
-struct guild_storage *guild2storage(int guild_id)
+struct guild_storage *guild2storage_ensure(int guild_id)
{
struct guild_storage *gs = NULL;
if(guild->search(guild_id) != NULL)
@@ -359,11 +359,6 @@ struct guild_storage *guild2storage(int guild_id)
return gs;
}
-//For just locating a storage without creating one. [Skotlex]
-struct guild_storage *guild2storage2(int guild_id) {
- return (struct guild_storage*)idb_get(gstorage->db,guild_id);
-}
-
int guild_storage_delete(int guild_id) {
idb_remove(gstorage->db,guild_id);
return 0;
@@ -372,9 +367,9 @@ int guild_storage_delete(int guild_id) {
/*==========================================
* Attempt to open guild storage for sd
* return
-* 0 : success (open or req to create a new one)
-* 1 : fail
-* 2 : no guild for sd
+* 0 : success (open or req to create a new one)
+* 1 : fail
+* 2 : no guild for sd
*------------------------------------------*/
int storage_guild_storageopen(struct map_session_data* sd)
{
@@ -387,22 +382,22 @@ int storage_guild_storageopen(struct map_session_data* sd)
if(sd->state.storage_flag)
return 1; //Can't open both storages at a time.
-
+
if( !pc_can_give_items(sd) ) { //check is this GM level can open guild storage and store items [Lupus]
clif->message(sd->fd, msg_txt(246));
return 1;
}
- if((gstor = gstorage->id2storage2(sd->status.guild_id)) == NULL) {
+ if((gstor = idb_get(gstorage->db,sd->status.guild_id)) == NULL) {
intif->request_guild_storage(sd->status.account_id,sd->status.guild_id);
return 0;
}
if(gstor->storage_status)
return 1;
-
+
if( gstor->lock )
return 1;
-
+
gstor->storage_status = 1;
sd->state.storage_flag = 2;
storage->sortitem(gstor->items, ARRAYLENGTH(gstor->items));
@@ -414,8 +409,8 @@ int storage_guild_storageopen(struct map_session_data* sd)
/*==========================================
* Attempt to add an item in guild storage, then refresh it
* return
-* 0 : success
-* 1 : fail
+* 0 : success
+* 1 : fail
*------------------------------------------*/
int guild_storage_additem(struct map_session_data* sd, struct guild_storage* stor, struct item* item_data, int amount)
{
@@ -436,8 +431,8 @@ int guild_storage_additem(struct map_session_data* sd, struct guild_storage* sto
return 1;
}
- if( !itemdb_canguildstore(item_data, pc_get_group_level(sd)) || item_data->expire_time )
- { //Check if item is storable. [Skotlex]
+ if (!itemdb_canguildstore(item_data, pc_get_group_level(sd)) || item_data->expire_time) {
+ //Check if item is storable. [Skotlex]
clif->message (sd->fd, msg_txt(264));
return 1;
}
@@ -446,7 +441,7 @@ int guild_storage_additem(struct map_session_data* sd, struct guild_storage* sto
clif->message(sd->fd, msg_txt(294));
return 1;
}
-
+
if(itemdb->isstackable2(data)){ //Stackable
for(i=0;i<MAX_GUILD_STORAGE;i++){
if(compare_item(&stor->items[i], item_data)) {
@@ -461,10 +456,10 @@ int guild_storage_additem(struct map_session_data* sd, struct guild_storage* sto
}
//Add item
for(i=0;i<MAX_GUILD_STORAGE && stor->items[i].nameid;i++);
-
+
if(i>=MAX_GUILD_STORAGE)
return 1;
-
+
memcpy(&stor->items[i],item_data,sizeof(stor->items[0]));
stor->items[i].amount=amount;
stor->storage_amount++;
@@ -477,8 +472,8 @@ int guild_storage_additem(struct map_session_data* sd, struct guild_storage* sto
/*==========================================
* Attempt to delete an item in guild storage, then refresh it
* return
-* 0 : success
-* 1 : fail
+* 0 : success
+* 1 : fail
*------------------------------------------*/
int guild_storage_delitem(struct map_session_data* sd, struct guild_storage* stor, int n, int amount)
{
@@ -503,28 +498,28 @@ int guild_storage_delitem(struct map_session_data* sd, struct guild_storage* sto
* Attempt to add an item in guild storage from inventory, then refresh it
* @index : inventory idx
* return
-* 0 : fail
-* 1 : succes
+* 0 : fail
+* 1 : succes
*------------------------------------------*/
int storage_guild_storageadd(struct map_session_data* sd, int index, int amount)
{
struct guild_storage *stor;
nullpo_ret(sd);
- nullpo_ret(stor=gstorage->id2storage2(sd->status.guild_id));
-
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
+
if( !stor->storage_status || stor->storage_amount > MAX_GUILD_STORAGE )
return 0;
-
+
if( index<0 || index>=MAX_INVENTORY )
return 0;
if( sd->status.inventory[index].nameid <= 0 )
return 0;
-
+
if( amount < 1 || amount > sd->status.inventory[index].amount )
return 0;
-
+
if( stor->lock ) {
gstorage->close(sd);
return 0;
@@ -542,8 +537,8 @@ int storage_guild_storageadd(struct map_session_data* sd, int index, int amount)
* Attempt to retrieve an item from guild storage to inventory, then refresh it
* @index : storage idx
* return
-* 0 : fail
-* 1 : success
+* 0 : fail
+* 1 : success
*------------------------------------------*/
int storage_guild_storageget(struct map_session_data* sd, int index, int amount)
{
@@ -551,20 +546,20 @@ int storage_guild_storageget(struct map_session_data* sd, int index, int amount)
int flag;
nullpo_ret(sd);
- nullpo_ret(stor=guild2storage2(sd->status.guild_id));
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
if(!stor->storage_status)
- return 0;
-
+ return 0;
+
if(index<0 || index>=MAX_GUILD_STORAGE)
return 0;
if(stor->items[index].nameid <= 0)
return 0;
-
+
if(amount < 1 || amount > stor->items[index].amount)
- return 0;
-
+ return 0;
+
if( stor->lock ) {
gstorage->close(sd);
return 0;
@@ -574,7 +569,7 @@ int storage_guild_storageget(struct map_session_data* sd, int index, int amount)
gstorage->delitem(sd,stor,index,amount);
else //inform fail
clif->additem(sd,0,0,flag);
-// log_fromstorage(sd, index, 1);
+ //log_fromstorage(sd, index, 1);
return 0;
}
@@ -583,15 +578,15 @@ int storage_guild_storageget(struct map_session_data* sd, int index, int amount)
* Attempt to add an item in guild storage from cart, then refresh it
* @index : cart inventory idx
* return
-* 0 : fail
-* 1 : success
+* 0 : fail
+* 1 : success
*------------------------------------------*/
int storage_guild_storageaddfromcart(struct map_session_data* sd, int index, int amount)
{
struct guild_storage *stor;
nullpo_ret(sd);
- nullpo_ret(stor=guild2storage2(sd->status.guild_id));
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
if( !stor->storage_status || stor->storage_amount > MAX_GUILD_STORAGE )
return 0;
@@ -601,7 +596,7 @@ int storage_guild_storageaddfromcart(struct map_session_data* sd, int index, int
if( sd->status.cart[index].nameid <= 0 )
return 0;
-
+
if( amount < 1 || amount > sd->status.cart[index].amount )
return 0;
@@ -615,25 +610,25 @@ int storage_guild_storageaddfromcart(struct map_session_data* sd, int index, int
* Attempt to retrieve an item from guild storage to cart, then refresh it
* @index : storage idx
* return
-* 0 : fail
-* 1 : success
+* 0 : fail
+* 1 : success
*------------------------------------------*/
int storage_guild_storagegettocart(struct map_session_data* sd, int index, int amount)
{
struct guild_storage *stor;
nullpo_ret(sd);
- nullpo_ret(stor=guild2storage2(sd->status.guild_id));
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
if(!stor->storage_status)
- return 0;
+ return 0;
if(index<0 || index>=MAX_GUILD_STORAGE)
- return 0;
-
+ return 0;
+
if(stor->items[index].nameid<=0)
return 0;
-
+
if(amount < 1 || amount > stor->items[index].amount)
return 0;
@@ -646,18 +641,18 @@ int storage_guild_storagegettocart(struct map_session_data* sd, int index, int a
/*==========================================
* Request to save guild storage
* return
-* 0 : fail (no storage)
-* 1 : success
+* 0 : fail (no storage)
+* 1 : success
*------------------------------------------*/
int storage_guild_storagesave(int account_id, int guild_id, int flag)
{
- struct guild_storage *stor = guild2storage2(guild_id);
+ struct guild_storage *stor = idb_get(gstorage->db,guild_id);
if(stor)
{
if (flag) //Char quitting, close it.
stor->storage_status = 0;
- if (stor->dirty)
+ if (stor->dirty)
intif->send_guild_storage(account_id,stor);
return 1;
}
@@ -667,16 +662,16 @@ int storage_guild_storagesave(int account_id, int guild_id, int flag)
/*==========================================
* ACK save of guild storage
* return
-* 0 : fail (no storage)
-* 1 : success
+* 0 : fail (no storage)
+* 1 : success
*------------------------------------------*/
int storage_guild_storagesaved(int guild_id)
{
struct guild_storage *stor;
- if((stor=gstorage->id2storage2(guild_id)) != NULL) {
- if (stor->dirty && stor->storage_status == 0)
- { //Storage has been correctly saved.
+ if((stor=idb_get(gstorage->db,guild_id)) != NULL) {
+ if (stor->dirty && stor->storage_status == 0) {
+ //Storage has been correctly saved.
stor->dirty = 0;
}
return 1;
@@ -689,7 +684,7 @@ int storage_guild_storageclose(struct map_session_data* sd) {
struct guild_storage *stor;
nullpo_ret(sd);
- nullpo_ret(stor=gstorage->id2storage2(sd->status.guild_id));
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
clif->storageclose(sd);
if (stor->storage_status) {
@@ -708,8 +703,8 @@ int storage_guild_storage_quit(struct map_session_data* sd, int flag) {
struct guild_storage *stor;
nullpo_ret(sd);
- nullpo_ret(stor=gstorage->id2storage2(sd->status.guild_id));
-
+ nullpo_ret(stor=idb_get(gstorage->db,sd->status.guild_id));
+
if(flag) {
//Only during a guild break flag is 1 (don't save storage)
sd->state.storage_flag = 0;
@@ -760,13 +755,12 @@ void storage_defaults(void) {
}
void gstorage_defaults(void) {
gstorage = &gstorage_s;
-
+
/* */
gstorage->init = do_init_gstorage;
gstorage->final = do_final_gstorage;
/* */
- gstorage->id2storage = guild2storage;
- gstorage->id2storage2 = guild2storage2;
+ gstorage->ensure = guild2storage_ensure;
gstorage->delete = guild_storage_delete;
gstorage->open = storage_guild_storageopen;
gstorage->additem = guild_storage_additem;
diff --git a/src/map/storage.h b/src/map/storage.h
index 186f21263..fcf9a52e4 100644
--- a/src/map/storage.h
+++ b/src/map/storage.h
@@ -34,8 +34,7 @@ struct storage_interface *storage;
struct guild_storage_interface {
struct DBMap* db; // int guild_id -> struct guild_storage*
/* */
- struct guild_storage *(*id2storage) (int guild_id);
- struct guild_storage *(*id2storage2) (int guild_id);
+ struct guild_storage *(*ensure) (int guild_id);
/* */
void (*init) (bool minimal);
void (*final) (void);
diff --git a/src/map/trade.c b/src/map/trade.c
index 3bbb73568..4d6909957 100644
--- a/src/map/trade.c
+++ b/src/map/trade.c
@@ -43,8 +43,8 @@ void trade_traderequest(struct map_session_data *sd, struct map_session_data *ta
return;
}
- if (target_sd->npc_id)
- { //Trade fails if you are using an NPC.
+ if (target_sd->npc_id) {
+ //Trade fails if you are using an NPC.
clif->tradestart(sd, 2);
return;
}
@@ -145,9 +145,10 @@ void trade_tradeack(struct map_session_data *sd, int type) {
}
//Check if you can start trade.
- if (sd->npc_id || sd->state.vending || sd->state.buyingstore || sd->state.storage_flag ||
- tsd->npc_id || tsd->state.vending || tsd->state.buyingstore || tsd->state.storage_flag)
- { //Fail
+ if (sd->npc_id || sd->state.vending || sd->state.buyingstore || sd->state.storage_flag
+ || tsd->npc_id || tsd->state.vending || tsd->state.buyingstore || tsd->state.storage_flag
+ ) {
+ //Fail
clif->tradestart(sd, 2);
clif->tradestart(tsd, 2);
sd->state.deal_locked = 0;
@@ -335,8 +336,8 @@ void trade_tradeadditem(struct map_session_data *sd, short index, short amount)
return;
}
- if( amount == 0 )
- { //Why do this.. ~.~ just send an ack, the item won't display on the trade window.
+ if (amount == 0) {
+ //Why do this.. ~.~ just send an ack, the item won't display on the trade window.
clif->tradeitemok(sd, index, TIO_SUCCESS);
return;
}
@@ -375,7 +376,7 @@ void trade_tradeadditem(struct map_session_data *sd, short index, short amount)
clif->tradeitemok(sd, index+2, TIO_INDROCKS);
return;
}
-
+
//Locate a trade position
ARR_FIND( 0, 10, trade_i, sd->deal.item[trade_i].index == index || sd->deal.item[trade_i].amount == 0 );
if( trade_i == 10 ) //No space left
@@ -385,23 +386,22 @@ void trade_tradeadditem(struct map_session_data *sd, short index, short amount)
}
trade_weight = sd->inventory_data[index]->weight * amount;
- if( target_sd->weight + sd->deal.weight + trade_weight > target_sd->max_weight )
- { //fail to add item -- the player was over weighted.
+ if (target_sd->weight + sd->deal.weight + trade_weight > target_sd->max_weight) {
+ //fail to add item -- the player was over weighted.
clif->tradeitemok(sd, index+2, TIO_OVERWEIGHT);
return;
}
- if( sd->deal.item[trade_i].index == index )
- { //The same item as before is being readjusted.
- if( sd->deal.item[trade_i].amount + amount > sd->status.inventory[index].amount )
- { //packet deal exploit check
+ if (sd->deal.item[trade_i].index == index) {
+ //The same item as before is being readjusted.
+ if (sd->deal.item[trade_i].amount + amount > sd->status.inventory[index].amount) {
+ //packet deal exploit check
amount = sd->status.inventory[index].amount - sd->deal.item[trade_i].amount;
trade_weight = sd->inventory_data[index]->weight * amount;
}
sd->deal.item[trade_i].amount += amount;
- }
- else
- { //New deal item
+ } else {
+ //New deal item
sd->deal.item[trade_i].index = index;
sd->deal.item[trade_i].amount = amount;
}
@@ -427,8 +427,8 @@ void trade_tradeaddzeny(struct map_session_data* sd, int amount)
return;
}
- if( amount < 0 || amount > sd->status.zeny || amount > MAX_ZENY - target_sd->status.zeny )
- { // invalid values, no appropriate packet for it => abort
+ if (amount < 0 || amount > sd->status.zeny || amount > MAX_ZENY - target_sd->status.zeny) {
+ // invalid values, no appropriate packet for it => abort
trade->cancel(sd);
return;
}
@@ -606,8 +606,7 @@ void trade_tradecommit(struct map_session_data *sd) {
clif->tradecompleted(tsd, 0);
// save both player to avoid crash: they always have no advantage/disadvantage between the 2 players
- if (map->save_settings&1)
- {
+ if (map->save_settings&1) {
chrif->save(sd,0);
chrif->save(tsd,0);
}
@@ -616,7 +615,7 @@ void trade_tradecommit(struct map_session_data *sd) {
void trade_defaults(void)
{
trade = &trade_s;
-
+
trade->request = trade_traderequest;
trade->ack = trade_tradeack;
trade->check_impossible = impossible_trade_check;
diff --git a/src/map/unit.c b/src/map/unit.c
index af0c0a948..a5bd282a9 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -95,9 +95,18 @@ int unit_walktoxy_sub(struct block_list *bl)
ud = unit->bl2ud(bl);
if(ud == NULL) return 0;
+ memset(&wpd, 0, sizeof(wpd));
+
if( !path->search(&wpd,bl->m,bl->x,bl->y,ud->to_x,ud->to_y,ud->state.walk_easy,CELL_CHKNOPASS) )
return 0;
+#ifdef OFFICIAL_WALKPATH
+ if( !path->search_long(NULL, bl->m, bl->x, bl->y, ud->to_x, ud->to_y, CELL_CHKNOPASS) // Check if there is an obstacle between
+ && wpd.path_len > 14 // Official number of walkable cells is 14 if and only if there is an obstacle between. [malufett]
+ && (bl->type != BL_NPC) ) // If type is a NPC, please disregard.
+ return 0;
+#endif
+
memcpy(&ud->walkpath,&wpd,sizeof(wpd));
if (ud->target_to && ud->chaserange>1) {
@@ -106,11 +115,11 @@ int unit_walktoxy_sub(struct block_list *bl)
uint8 dir;
//Trim the last part of the path to account for range,
//but always move at least one cell when requested to move.
- for (i = ud->chaserange*10; i > 0 && ud->walkpath.path_len>1;) {
+ for (i = (ud->chaserange*10)-10; i > 0 && ud->walkpath.path_len>1;) {
ud->walkpath.path_len--;
dir = ud->walkpath.path[ud->walkpath.path_len];
if(dir&1)
- i -= MOVE_DIAGONAL_COST;
+ i -= MOVE_COST*20; //When chasing, units will target a diamond-shaped area in range [Playtester]
else
i -= MOVE_COST;
ud->to_x -= dirx[dir];
@@ -137,9 +146,79 @@ int unit_walktoxy_sub(struct block_list *bl)
return 1;
}
+/**
+ * Triggered on full step if stepaction is true and executes remembered action.
+ * @param tid: Timer ID
+ * @param tick: Unused
+ * @param id: ID of bl to do the action
+ * @param data: Not used
+ * @return 1: Success 0: Fail (No valid bl)
+ */
+int unit_step_timer(int tid, int64 tick, int id, intptr_t data)
+{
+ struct block_list *bl;
+ struct unit_data *ud;
+ int target_id;
+
+ bl = map->id2bl(id);
+
+ if (!bl || bl->prev == NULL)
+ return 0;
+
+ ud = unit->bl2ud(bl);
+
+ if(!ud)
+ return 0;
+
+ if(ud->steptimer != tid) {
+ ShowError("unit_step_timer mismatch %d != %d\n",ud->steptimer,tid);
+ return 0;
+ }
+
+ ud->steptimer = INVALID_TIMER;
+
+ if(!ud->stepaction)
+ return 0;
+
+ //Set to false here because if an error occurs, it should not be executed again
+ ud->stepaction = false;
+
+ if(!ud->target_to)
+ return 0;
+
+ //Flush target_to as it might contain map coordinates which should not be used by other functions
+ target_id = ud->target_to;
+ ud->target_to = 0;
+
+ //If stepaction is set then we remembered a client request that should be executed on the next step
+ //Execute request now if target is in attack range
+ if(ud->stepskill_id && skill->get_inf(ud->stepskill_id) & INF_GROUND_SKILL) {
+ //Execute ground skill
+ struct map_data *md = &map->list[bl->m];
+ unit->skilluse_pos(bl, target_id%md->xs, target_id/md->xs, ud->stepskill_id, ud->stepskill_lv);
+ } else {
+ //If a player has target_id set and target is in range, attempt attack
+ struct block_list *tbl = map->id2bl(target_id);
+ if (!tbl || !status->check_visibility(bl, tbl)) {
+ return 0;
+ }
+ if(ud->stepskill_id == 0) {
+ //Execute normal attack
+ unit->attack(bl, tbl->id, (ud->state.attack_continue) + 2);
+ } else {
+ //Execute non-ground skill
+ unit->skilluse_id(bl, tbl->id, ud->stepskill_id, ud->stepskill_lv);
+ }
+ }
+
+ return 1;
+}
+
+
int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
int i;
int x,y,dx,dy;
+ unsigned char icewall_walk_block;
uint8 dir;
struct block_list *bl;
struct map_session_data *sd;
@@ -178,9 +257,34 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
dx = dirx[(int)dir];
dy = diry[(int)dir];
- if(map->getcell(bl->m,x+dx,y+dy,CELL_CHKNOPASS))
+ //Get icewall walk block depending on boss mode (players can't be trapped)
+ if(md && md->status.mode&MD_BOSS)
+ icewall_walk_block = battle_config.boss_icewall_walk_block;
+ else if(md)
+ icewall_walk_block = battle_config.mob_icewall_walk_block;
+ else
+ icewall_walk_block = 0;
+
+ //Monsters will walk into an icewall from the west and south if they already started walking
+ if(map->getcell(bl->m,x+dx,y+dy,CELL_CHKNOPASS)
+ && (icewall_walk_block == 0 || !map->getcell(bl->m,x+dx,y+dy,CELL_CHKICEWALL) || dx < 0 || dy < 0))
return unit->walktoxy_sub(bl);
+ //Monsters can only leave icewalls to the west and south
+ //But if movement fails more than icewall_walk_block times, they can ignore this rule
+ if(md && md->walktoxy_fail_count < icewall_walk_block && map->getcell(bl->m,x,y,CELL_CHKICEWALL) && (dx > 0 || dy > 0)) {
+ //Needs to be done here so that rudeattack skills are invoked
+ md->walktoxy_fail_count++;
+ clif->fixpos(bl);
+ //Monsters in this situation first use a chase skill, then unlock target and then use an idle skill
+ if (!(++ud->walk_count%WALK_SKILL_INTERVAL))
+ mob->skill_use(md, tick, -1);
+ mob->unlocktarget(md, tick);
+ if (!(++ud->walk_count%WALK_SKILL_INTERVAL))
+ mob->skill_use(md, tick, -1);
+ return 0;
+ }
+
//Refresh view for all those we lose sight
map->foreachinmovearea(clif->outsight, bl, AREA_SIZE, dx, dy, sd?BL_ALL:BL_PC, bl);
@@ -205,7 +309,7 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
if (bl->prev == NULL) //Script could have warped char, abort remaining of the function.
return 0;
} else
- sd->areanpc_id=0;
+ npc->untouch_areanpc(sd, bl->m, x, y);
if( sd->md ) { // mercenary should be warped after being 3 seconds too far from the master [greenbox]
if( !check_distance_bl(&sd->bl, &sd->md->bl, MAX_MER_DISTANCE) ) {
@@ -217,7 +321,6 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
}
} else // reset the tick, he is not far anymore
sd->md->masterteleport_timer = 0;
-
}
if( sd->hd ) {
if( homun_alive(sd->hd) && !check_distance_bl(&sd->bl, &sd->hd->bl, MAX_MER_DISTANCE) ) {
@@ -231,6 +334,8 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
sd->hd->masterteleport_timer = 0;
}
} else if (md) {
+ //Movement was successful, reset walktoxy_fail_count
+ md->walktoxy_fail_count = 0;
if( map->getcell(bl->m,x,y,CELL_CHKNPC) ) {
if( npc->touch_areanpc2(md) ) return 0; // Warped
} else
@@ -238,12 +343,15 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
if (md->min_chase > md->db->range3) md->min_chase--;
//Walk skills are triggered regardless of target due to the idle-walk mob state.
//But avoid triggering on stop-walk calls.
- if(tid != INVALID_TIMER &&
- !(ud->walk_count%WALK_SKILL_INTERVAL) &&
- mob->skill_use(md, tick, -1))
- {
- if (!(ud->skill_id == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER))
- { //Skill used, abort walking
+ if (tid != INVALID_TIMER
+ && !(ud->walk_count%WALK_SKILL_INTERVAL)
+ && map->list[bl->m].users > 0
+ && mob->skill_use(md, tick, -1)
+ ) {
+ if (!(ud->skill_id == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER)
+ && md->state.skillstate != MSS_WALK //Walk skills are supposed to be used while walking
+ ) {
+ //Skill used, abort walking
clif->fixpos(bl); //Fix position as walk has been canceled.
return 0;
}
@@ -275,8 +383,29 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
if(tid == INVALID_TIMER) //A directly invoked timer is from battle_stop_walking, therefore the rest is irrelevant.
return 0;
- if(ud->state.change_walk_target)
- return unit->walktoxy_sub(bl);
+ //If stepaction is set then we remembered a client request that should be executed on the next step
+ if (ud->stepaction && ud->target_to) {
+ //Delete old stepaction even if not executed yet, the latest command is what counts
+ if(ud->steptimer != INVALID_TIMER) {
+ timer->delete(ud->steptimer, unit->step_timer);
+ ud->steptimer = INVALID_TIMER;
+ }
+ //Delay stepactions by half a step (so they are executed at full step)
+ if(ud->walkpath.path[ud->walkpath.path_pos]&1)
+ i = status->get_speed(bl)*14/20;
+ else
+ i = status->get_speed(bl)/2;
+ ud->steptimer = timer->add(tick+i, unit->step_timer, bl->id, 0);
+ }
+
+ if(ud->state.change_walk_target) {
+ if(unit->walktoxy_sub(bl)) {
+ return 1;
+ } else {
+ clif->fixpos(bl);
+ return 0;
+ }
+ }
ud->walkpath.path_pos++;
if(ud->walkpath.path_pos>=ud->walkpath.path_len)
@@ -294,7 +423,7 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
//Keep trying to run.
if ( !(unit->run(bl, NULL, SC_RUN) || unit->run(bl, sd, SC_WUGDASH)) )
ud->state.running = 0;
- } else if (ud->target_to) {
+ } else if (!ud->stepaction && ud->target_to) {
//Update target trajectory.
struct block_list *tbl = map->id2bl(ud->target_to);
if (!tbl || !status->check_visibility(bl, tbl)) {
@@ -308,21 +437,31 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
}
if (tbl->m == bl->m && check_distance_bl(bl, tbl, ud->chaserange)) {
//Reached destination.
- if (ud->state.attack_continue)
- { //Aegis uses one before every attack, we should
+ if (ud->state.attack_continue) {
+ //Aegis uses one before every attack, we should
//only need this one for syncing purposes. [Skotlex]
ud->target_to = 0;
clif->fixpos(bl);
unit->attack(bl, tbl->id, ud->state.attack_continue);
}
} else { //Update chase-path
- unit->walktobl(bl, tbl, ud->chaserange, ud->state.walk_easy|(ud->state.attack_continue?2:0));
+ unit->walktobl(bl, tbl, ud->chaserange, ud->state.walk_easy|(ud->state.attack_continue? 1 : 0));
return 0;
}
} else {
//Stopped walking. Update to_x and to_y to current location [Skotlex]
ud->to_x = bl->x;
ud->to_y = bl->y;
+
+ if(map->count_oncell(bl->m, x, y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
+ //Walked on occupied cell, call unit_walktoxy again
+ if(ud->steptimer != INVALID_TIMER) {
+ //Execute step timer on next step instead
+ timer->delete(ud->steptimer, unit->step_timer);
+ ud->steptimer = INVALID_TIMER;
+ }
+ return unit->walktoxy(bl, x, y, 8);
+ }
}
return 0;
}
@@ -340,6 +479,7 @@ int unit_delay_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
//&1 -> 1/0 = easy/hard
//&2 -> force walking
//&4 -> Delay walking if the reason you can't walk is the canwalk delay
+//&8 -> Search for an unoccupied cell and cancel if none available
int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
{
struct unit_data* ud = NULL;
@@ -352,6 +492,9 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
if( ud == NULL) return 0;
+ if ((flag&8) && !map->closest_freecell(bl->m, &x, &y, BL_CHAR|BL_NPC, 1)) //This might change x and y
+ return 0;
+
if (!path->search(&wpd, bl->m, bl->x, bl->y, x, y, flag&1, CELL_CHKNOPASS)) // Count walk path cells
return 0;
@@ -377,7 +520,7 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
ud->state.walk_easy = flag&1;
ud->to_x = x;
ud->to_y = y;
- unit->set_target(ud, 0);
+ unit->stop_attack(bl); //Sets target to 0
sc = status->get_sc(bl);
if( sc ) {
@@ -394,11 +537,6 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
return 1;
}
- if(ud->attacktimer != INVALID_TIMER) {
- timer->delete( ud->attacktimer, unit->attack_timer );
- ud->attacktimer = INVALID_TIMER;
- }
-
return unit->walktoxy_sub(bl);
}
@@ -430,8 +568,8 @@ int unit_walktobl_sub(int tid, int64 tick, int id, intptr_t data) {
// if flag&2, start attacking upon arrival within range, otherwise just walk to that character.
int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int flag)
{
- struct unit_data *ud = NULL;
- struct status_change *sc = NULL;
+ struct unit_data *ud = NULL;
+ struct status_change *sc = NULL;
nullpo_ret(bl);
nullpo_ret(tbl);
@@ -447,13 +585,17 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int
ud->to_y = bl->y;
ud->target_to = 0;
return 0;
+ } else if (range == 0) {
+ //Should walk on the same cell as target (for looters)
+ ud->to_x = tbl->x;
+ ud->to_y = tbl->y;
}
ud->state.walk_easy = flag&1;
ud->target_to = tbl->id;
ud->chaserange = range; //Note that if flag&2, this SHOULD be attack-range
ud->state.attack_continue = flag&2?1:0; //Chase to attack.
- unit->set_target(ud, 0);
+ unit->stop_attack(bl); //Sets target to 0
sc = status->get_sc(bl);
if (sc && (sc->data[SC_CONFUSION] || sc->data[SC__CHAOS])) //Randomize the target position
@@ -465,8 +607,8 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int
return 1;
}
- if(DIFF_TICK(ud->canmove_tick, timer->gettick()) > 0)
- { //Can't move, wait a bit before invoking the movement.
+ if (DIFF_TICK(ud->canmove_tick, timer->gettick()) > 0) {
+ //Can't move, wait a bit before invoking the movement.
timer->add(ud->canmove_tick+1, unit->walktobl_sub, bl->id, ud->target);
return 1;
}
@@ -474,11 +616,6 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int
if(!unit->can_move(bl))
return 0;
- if(ud->attacktimer != INVALID_TIMER) {
- timer->delete( ud->attacktimer, unit->attack_timer );
- ud->attacktimer = INVALID_TIMER;
- }
-
if (unit->walktoxy_sub(bl)) {
set_mobstate(bl, flag&2);
return 1;
@@ -548,7 +685,7 @@ bool unit_run( struct block_list *bl, struct map_session_data *sd, enum sc_type
break;
//if sprinting and there's a PC/Mob/NPC, block the path [Kevin]
- if( map->count_oncell(bl->m, to_x+dir_x, to_y+dir_y, BL_PC|BL_MOB|BL_NPC) )
+ if ( map->count_oncell(bl->m, to_x + dir_x, to_y + dir_y, BL_PC | BL_MOB | BL_NPC, 0x2) )
break;
to_x += dir_x;
@@ -630,7 +767,7 @@ int unit_movepos(struct block_list *bl, short dst_x, short dst_y, int easy, bool
if (bl->prev == NULL) //Script could have warped char, abort remaining of the function.
return 0;
} else
- sd->areanpc_id=0;
+ npc->untouch_areanpc(sd, bl->m, bl->x, bl->y);
if( sd->status.pet_id > 0 && sd->pd && sd->pd->pet.intimate > 0 )
{ // Check if pet needs to be teleported. [Skotlex]
@@ -666,7 +803,7 @@ int unit_setdir(struct block_list *bl,unsigned char dir)
uint8 unit_getdir(struct block_list *bl) {
struct unit_data *ud;
nullpo_ret(bl);
-
+
if( bl->type == BL_NPC )
return ((TBL_NPC*)bl)->dir;
ud = unit->bl2ud(bl);
@@ -700,6 +837,7 @@ int unit_blown(struct block_list* bl, int dx, int dy, int count, int flag)
}
if( sd ) {
+ unit->stop_stepaction(bl); //Stop stepaction when knocked back
sd->ud.to_x = nx;
sd->ud.to_y = ny;
}
@@ -729,7 +867,7 @@ int unit_blown(struct block_list* bl, int dx, int dy, int count, int flag)
if(map->getcell(bl->m, bl->x, bl->y, CELL_CHKNPC)) {
npc->touch_areanpc(sd, bl->m, bl->x, bl->y);
} else {
- sd->areanpc_id = 0;
+ npc->untouch_areanpc(sd, bl->m, bl->x, bl->y);;
}
}
}
@@ -930,7 +1068,7 @@ int unit_can_move(struct block_list *bl) {
|| sc->data[SC_ELECTRICSHOCKER]
|| sc->data[SC_WUGBITE]
|| sc->data[SC_THORNS_TRAP]
- || sc->data[SC_MAGNETICFIELD]
+ || ( sc->data[SC_MAGNETICFIELD] && !sc->data[SC_HOVERING] )
|| sc->data[SC__MANHOLE]
|| sc->data[SC_CURSEDCIRCLE_ATKER]
|| sc->data[SC_CURSEDCIRCLE_TARGET]
@@ -939,7 +1077,6 @@ int unit_can_move(struct block_list *bl) {
|| (sc->data[SC_CAMOUFLAGE] && sc->data[SC_CAMOUFLAGE]->val1 < 3 && !(sc->data[SC_CAMOUFLAGE]->val3&1))
|| sc->data[SC_MEIKYOUSISUI]
|| sc->data[SC_KG_KAGEHUMI]
- || sc->data[SC_KYOUGAKU]
|| sc->data[SC_NEEDLE_OF_PARALYZE]
|| sc->data[SC_VACUUM_EXTREME]
|| (sc->data[SC_FEAR] && sc->data[SC_FEAR]->val2 > 0)
@@ -956,7 +1093,6 @@ int unit_can_move(struct block_list *bl) {
)
)
return 0;
-
if (sc->opt1 > 0 && sc->opt1 != OPT1_STONEWAIT && sc->opt1 != OPT1_BURNING && !(sc->opt1 == OPT1_CRYSTALIZE && bl->type == BL_MOB))
return 0;
@@ -965,6 +1101,17 @@ int unit_can_move(struct block_list *bl) {
return 0;
}
+
+ // Icewall walk block special trapped monster mode
+ if(bl->type == BL_MOB) {
+ struct mob_data *md = BL_CAST(BL_MOB, bl);
+ if(md && ((md->status.mode&MD_BOSS && battle_config.boss_icewall_walk_block == 1 && map->getcell(bl->m,bl->x,bl->y,CELL_CHKICEWALL))
+ || (!(md->status.mode&MD_BOSS) && battle_config.mob_icewall_walk_block == 1 && map->getcell(bl->m,bl->x,bl->y,CELL_CHKICEWALL)))) {
+ md->walktoxy_fail_count = 1; //Make sure rudeattacked skills are invoked
+ return 0;
+ }
+ }
+
return 1;
}
@@ -1000,25 +1147,26 @@ int unit_set_walkdelay(struct block_list *bl, int64 tick, int delay, int type) {
struct unit_data *ud = unit->bl2ud(bl);
if (delay <= 0 || !ud) return 0;
- /**
- * MvP mobs have no walk delay
- **/
- if( bl->type == BL_MOB && (((TBL_MOB*)bl)->status.mode&MD_BOSS) )
- return 0;
-
if (type) {
+ //Bosses can ignore skill induced walkdelay (but not damage induced)
+ if(bl->type == BL_MOB && (((TBL_MOB*)bl)->status.mode&MD_BOSS))
+ return 0;
+ //Make sure walk delay is not decreased
if (DIFF_TICK(ud->canmove_tick, tick+delay) > 0)
return 0;
} else {
//Don't set walk delays when already trapped.
if (!unit->can_move(bl))
return 0;
+ //Immune to being stopped for double the flinch time
+ if (DIFF_TICK(ud->canmove_tick, tick-delay) > 0)
+ return 0;
}
ud->canmove_tick = tick + delay;
- if (ud->walktimer != INVALID_TIMER)
- { //Stop walking, if chasing, readjust timers.
- if (delay == 1)
- { //Minimal delay (walk-delay) disabled. Just stop walking.
+ if (ud->walktimer != INVALID_TIMER) {
+ //Stop walking, if chasing, readjust timers.
+ if (delay == 1) {
+ //Minimal delay (walk-delay) disabled. Just stop walking.
unit->stop_walking(bl,4);
} else {
//Resume running after can move again [Kevin]
@@ -1028,7 +1176,7 @@ int unit_set_walkdelay(struct block_list *bl, int64 tick, int delay, int type) {
}
else
{
- unit->stop_walking(bl,2|4);
+ unit->stop_walking(bl,4);
if(ud->target)
timer->add(ud->canmove_tick+1, unit->walktobl_sub, bl->id, ud->target);
}
@@ -1086,7 +1234,8 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
if(skill->not_ok(skill_id, sd)) // [MouseJstr]
return 0;
- switch(skill_id) { //Check for skills that auto-select target
+ switch (skill_id) {
+ //Check for skills that auto-select target
case MO_CHAINCOMBO:
if (sc && sc->data[SC_BLADESTOP]) {
if ((target=map->id2bl(sc->data[SC_BLADESTOP]->val4)) == NULL)
@@ -1103,6 +1252,17 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
return 0;
}
break;
+ case GC_WEAPONCRUSH:
+ if( sc && sc->data[SC_COMBOATTACK] && sc->data[SC_COMBOATTACK]->val1 == GC_WEAPONBLOCKING ) {
+ if( (target=map->id2bl(sc->data[SC_COMBOATTACK]->val2)) == NULL ) {
+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_GC_WEAPONBLOCKING,0);
+ return 0;
+ }
+ } else {
+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_GC_WEAPONBLOCKING,0);
+ return 0;
+ }
+ break;
}
if (target)
target_id = target->id;
@@ -1138,33 +1298,48 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
if(!status->check_skilluse(src, target, skill_id, 0))
return 0;
+ if( src != target && status->isdead(target) ) {
+ /**
+ * Skills that may be cast on dead targets
+ **/
+ switch( skill_id ) {
+ case NPC_WIDESOULDRAIN:
+ case PR_REDEMPTIO:
+ case ALL_RESURRECTION:
+ case WM_DEADHILLHERE:
+ break;
+ default:
+ return 1;
+ }
+ }
+
tstatus = status->get_status_data(target);
// Record the status of the previous skill)
- if(sd) {
+ if (sd) {
- if( (skill->get_inf2(skill_id)&INF2_ENSEMBLE_SKILL) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ if ((skill->get_inf2(skill_id)&INF2_ENSEMBLE_SKILL) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1) {
+ clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
return 0;
}
-
- switch(skill_id){
+
+ switch (skill_id){
case SA_CASTCANCEL:
- if(ud->skill_id != skill_id){
+ if (ud->skill_id != skill_id){
sd->skill_id_old = ud->skill_id;
sd->skill_lv_old = ud->skill_lv;
}
break;
case BD_ENCORE:
//Prevent using the dance skill if you no longer have the skill in your tree.
- if(!sd->skill_id_dance || pc->checkskill(sd,sd->skill_id_dance)<=0){
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ if (!sd->skill_id_dance || pc->checkskill(sd, sd->skill_id_dance) <= 0){
+ clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
return 0;
}
sd->skill_id_old = skill_id;
break;
case WL_WHITEIMPRISON:
- if( battle->check_target(src,target,BCT_SELF|BCT_ENEMY) < 0 ) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0);
+ if (battle->check_target(src, target, BCT_SELF | BCT_ENEMY) < 0) {
+ clif->skill_fail(sd, skill_id, USESKILL_FAIL_TOTARGET, 0);
return 0;
}
break;
@@ -1175,13 +1350,20 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
sd->skill_lv_old = skill_lv;
break;
}
- /* temporarily disabled, awaiting for kenpachi to detail this so we can make it work properly */
+ }
+
+ if (sd || src->type == BL_HOM){
+ if (!sd && (target = battle->get_master(src)))
+ sd = map->id2sd(target->id);
+ if (sd){
+ /* temporarily disabled, awaiting for kenpachi to detail this so we can make it work properly */
#if 0
- if ( sd->skillitem != skill_id && !skill->check_condition_castbegin(sd, skill_id, skill_lv) )
+ if (sd->skillitem != skill_id && !skill->check_condition_castbegin(sd, skill_id, skill_lv))
#else
- if ( !skill->check_condition_castbegin(sd, skill_id, skill_lv) )
+ if (!skill->check_condition_castbegin(sd, skill_id, skill_lv))
#endif
- return 0;
+ return 0;
+ }
}
if( src->type == BL_MOB )
@@ -1198,6 +1380,18 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
else
range = skill->get_range2(src, skill_id, skill_lv); // Skill cast distance from database
+ // New action request received, delete previous action request if not executed yet
+ if(ud->stepaction || ud->steptimer != INVALID_TIMER)
+ unit->stop_stepaction(src);
+ // Remember the skill request from the client while walking to the next cell
+ if(src->type == BL_PC && ud->walktimer != INVALID_TIMER && !battle->check_range(src, target, range-1)) {
+ ud->stepaction = true;
+ ud->target_to = target_id;
+ ud->stepskill_id = skill_id;
+ ud->stepskill_lv = skill_lv;
+ return 0; // Attacking will be handled by unit_walktoxy_timer in this case
+ }
+
//Check range when not using skill on yourself or is a combo-skill during attack
//(these are supposed to always have the same range as your attack)
if( src->id != target_id && (!temp || ud->attacktimer == INVALID_TIMER) ) {
@@ -1241,6 +1435,25 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
casttime = -1;
temp = 1;
break;
+ case CR_DEVOTION:
+ if (sd) {
+ int i = 0, count = min(skill_lv, 5);
+ ARR_FIND(0, count, i, sd->devotion[i] == target_id);
+ if (i == count) {
+ ARR_FIND(0, count, i, sd->devotion[i] == 0);
+ if(i == count) {
+ clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
+ return 0; // Can't cast on other characters when limit is reached
+ }
+ }
+ }
+ break;
+ case AB_CLEARANCE:
+ if( target->type != BL_MOB && battle->check_target(src,target,BCT_PARTY) <= 0 && sd ) {
+ clif->skill_fail(sd, skill_id, USESKILL_FAIL_TOTARGET, 0);
+ return 0;
+ }
+ break;
case SR_GATEOFHELL:
case SR_TIGERCANNON:
if (sc && sc->data[SC_COMBOATTACK] &&
@@ -1277,7 +1490,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
case RA_WUGDASH:
if (sc && sc->data[SC_WUGDASH])
casttime = -1;
- break;
+ break;
case EL_WIND_SLASH:
case EL_HURRICANE:
case EL_TYPOON_MIS:
@@ -1320,7 +1533,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
/**
* why the if else chain: these 3 status do not stack, so its efficient that way.
**/
- if( sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4) && skill_id != AS_CLOAKING ) {
+ if( sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4) && skill_id != AS_CLOAKING ) {
status_change_end(src, SC_CLOAKING, INVALID_TIMER);
if (!src->prev) return 0; //Warped away!
} else if( sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4) && skill_id != GC_CLOAKINGEXCEED ) {
@@ -1328,10 +1541,10 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
if (!src->prev) return 0;
}
}
-
+
if(!ud->state.running) //need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026
unit->stop_walking(src,1);// even though this is not how official works but this will do the trick. bugreport:6829
-
+
// in official this is triggered even if no cast time.
clif->skillcasting(src, src->id, target_id, 0,0, skill_id, skill->get_ele(skill_id, skill_lv), casttime);
if( casttime > 0 || temp )
@@ -1434,13 +1647,11 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
if( skill->not_ok(skill_id, sd) || !skill->check_condition_castbegin(sd, skill_id, skill_lv) )
return 0;
/**
- * "WHY IS IT HEREE": pneuma cannot be canceled past this point, the client displays the animation even,
- * if we cancel it from nodamage_id, so it has to be here for it to not display the animation.
+ * "WHY IS IT HEREE": ice wall cannot be canceled past this point, the client displays the animation even,
+ * if we cancel it from castend_pos, so it has to be here for it to not display the animation.
**/
- if( skill_id == AL_PNEUMA && map->getcell(src->m, skill_x, skill_y, CELL_CHKLANDPROTECTOR) ) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ if ( skill_id == WZ_ICEWALL && map->getcell(src->m, skill_x, skill_y, CELL_CHKNOICEWALL) )
return 0;
- }
}
if (!status->check_skilluse(src, NULL, skill_id, 0))
@@ -1452,7 +1663,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
return 0;
}
- /* Check range and obstacle */
+ /* Check range and obstacle */
bl.type = BL_NUL;
bl.m = src->m;
bl.x = skill_x;
@@ -1463,10 +1674,24 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
else
range = skill->get_range2(src, skill_id, skill_lv); // Skill cast distance from database
+ // New action request received, delete previous action request if not executed yet
+ if(ud->stepaction || ud->steptimer != INVALID_TIMER)
+ unit->stop_stepaction(src);
+ // Remember the skill request from the client while walking to the next cell
+ if(src->type == BL_PC && ud->walktimer != INVALID_TIMER && !battle->check_range(src, &bl, range-1)) {
+ struct map_data *md = &map->list[src->m];
+ // Convert coordinates to target_to so we can use it as target later
+ ud->stepaction = true;
+ ud->target_to = (skill_x + skill_y*md->xs);
+ ud->stepskill_id = skill_id;
+ ud->stepskill_lv = skill_lv;
+ return 0; // Attacking will be handled by unit_walktoxy_timer in this case
+ }
+
if( skill->get_state(ud->skill_id) == ST_MOVE_ENABLE ) {
if( !unit->can_reach_bl(src, &bl, range + 1, 1, NULL, NULL) )
return 0; //Walk-path check failed.
- } else if( !battle->check_range(src, &bl, range + 1) )
+ } else if( !battle->check_range(src, &bl, range) )
return 0; //Arrow-path check failed.
unit->stop_attack(src);
@@ -1486,14 +1711,14 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
ud->state.skillcastcancel = castcancel&&casttime>0?1:0;
if( !sd || sd->skillitem != skill_id || skill->get_cast(skill_id,skill_lv) )
ud->canact_tick = tick + casttime + 100;
-// if( sd )
-// {
-// switch( skill_id )
-// {
-// case ????:
-// sd->canequip_tick = tick + casttime;
-// }
-// }
+#if 0
+ if (sd) {
+ switch (skill_id) {
+ case ????:
+ sd->canequip_tick = tick + casttime;
+ }
+ }
+#endif // 0
ud->skill_id = skill_id;
ud->skill_lv = skill_lv;
ud->skillx = skill_x;
@@ -1548,18 +1773,51 @@ int unit_set_target(struct unit_data* ud, int target_id)
return 0;
}
-int unit_stop_attack(struct block_list *bl)
+/**
+ * Stop a unit's attacks
+ * @param bl: Object to stop
+ */
+void unit_stop_attack(struct block_list *bl)
{
- struct unit_data *ud = unit->bl2ud(bl);
- nullpo_ret(bl);
+ struct unit_data *ud;
+ nullpo_retv(bl);
+ ud = unit->bl2ud(bl);
+ nullpo_retv(ud);
- if(!ud || ud->attacktimer == INVALID_TIMER)
- return 0;
+ //Clear target
+ unit->set_target(ud, 0);
+
+ if(ud->attacktimer == INVALID_TIMER)
+ return;
- timer->delete( ud->attacktimer, unit->attack_timer );
+ //Clear timer
+ timer->delete(ud->attacktimer, unit->attack_timer);
ud->attacktimer = INVALID_TIMER;
- unit->set_target(ud, 0);
- return 0;
+}
+
+/**
+ * Stop a unit's step action
+ * @param bl: Object to stop
+ */
+void unit_stop_stepaction(struct block_list *bl)
+{
+ struct unit_data *ud;
+ nullpo_retv(bl);
+ ud = unit->bl2ud(bl);
+ nullpo_retv(ud);
+
+ //Clear remembered step action
+ ud->stepaction = false;
+ ud->target_to = 0;
+ ud->stepskill_id = 0;
+ ud->stepskill_lv = 0;
+
+ if(ud->steptimer == INVALID_TIMER)
+ return;
+
+ //Clear timer
+ timer->delete(ud->steptimer, unit->step_timer);
+ ud->steptimer = INVALID_TIMER;
}
//Means current target is unattackable. For now only unlocks mobs.
@@ -1568,6 +1826,7 @@ int unit_unattackable(struct block_list *bl)
struct unit_data *ud = unit->bl2ud(bl);
if (ud) {
ud->state.attack_continue = 0;
+ ud->state.step_attack = 0;
unit->set_target(ud, 0);
}
@@ -1585,6 +1844,7 @@ int unit_unattackable(struct block_list *bl)
int unit_attack(struct block_list *src,int target_id,int continuous) {
struct block_list *target;
struct unit_data *ud;
+ int range;
nullpo_ret(ud = unit->bl2ud(src));
@@ -1613,19 +1873,30 @@ int unit_attack(struct block_list *src,int target_id,int continuous) {
unit->unattackable(src);
return 1;
}
- ud->state.attack_continue = continuous;
+ ud->state.attack_continue = (continuous&1)?1:0;
+ ud->state.step_attack = (continuous&2)?1:0;
unit->set_target(ud, target_id);
+ range = status_get_range(src);
+
if (continuous) //If you're to attack continuously, set to auto-case character
- ud->chaserange = status_get_range(src);
+ ud->chaserange = range;
//Just change target/type. [Skotlex]
if(ud->attacktimer != INVALID_TIMER)
return 0;
- //Set Mob's ANGRY/BERSERK states.
- if(src->type == BL_MOB)
- ((TBL_MOB*)src)->state.skillstate = ((TBL_MOB*)src)->state.aggressive?MSS_ANGRY:MSS_BERSERK;
+ // New action request received, delete previous action request if not executed yet
+ if(ud->stepaction || ud->steptimer != INVALID_TIMER)
+ unit->stop_stepaction(src);
+ // Remember the attack request from the client while walking to the next cell
+ if(src->type == BL_PC && ud->walktimer != INVALID_TIMER && !battle->check_range(src, target, range-1)) {
+ ud->stepaction = true;
+ ud->target_to = ud->target;
+ ud->stepskill_id = 0;
+ ud->stepskill_lv = 0;
+ return 0; // Attacking will be handled by unit_walktoxy_timer in this case
+ }
if(DIFF_TICK(ud->attackabletime, timer->gettick()) > 0)
//Do attack next time it is possible. [Skotlex]
@@ -1710,7 +1981,7 @@ bool unit_can_reach_bl(struct block_list *bl,struct block_list *tbl, int range,
/*==========================================
* Calculates position of Pet/Mercenary/Homunculus/Elemental
*------------------------------------------*/
-int unit_calc_pos(struct block_list *bl, int tx, int ty, uint8 dir)
+int unit_calc_pos(struct block_list *bl, int tx, int ty, uint8 dir)
{
int dx, dy, x, y, i, k;
struct unit_data *ud = unit->bl2ud(bl);
@@ -1827,15 +2098,19 @@ int unit_attack_timer_sub(struct block_list* src, int tid, int64 tick) {
}
sstatus = status->get_status_data(src);
- range = sstatus->rhw.range + 1;
+ range = sstatus->rhw.range;
- if( unit->is_walking(target) )
- range++; //Extra range when chasing
- if( !check_distance_bl(src,target,range) ) { //Chase if required.
- if(sd)
- clif->movetoattack(sd,target);
- else if(ud->state.attack_continue)
- unit->walktobl(src,target,ud->chaserange,ud->state.walk_easy|2);
+ if( (unit->is_walking(target) || ud->state.step_attack)
+ && (target->type == BL_PC || !map->getcell(target->m,target->x,target->y,CELL_CHKICEWALL)) )
+ range++; // Extra range when chasing (does not apply to mobs locked in an icewall)
+
+ if(sd && !check_distance_client_bl(src,target,range)) {
+ // Player tries to attack but target is too far, notify client
+ clif->movetoattack(sd,target);
+ return 1;
+ } else if(md && !check_distance_bl(src,target,range)) {
+ // Monster: Chase if required
+ unit->walktobl(src,target,ud->chaserange,ud->state.walk_easy|2);
return 1;
}
if( !battle->check_range(src,target,range) ) {
@@ -1857,10 +2132,17 @@ int unit_attack_timer_sub(struct block_list* src, int tid, int64 tick) {
if(ud->walktimer != INVALID_TIMER)
unit->stop_walking(src,1);
if(md) {
- if (mob->skill_use(md,tick,-1))
- return 1;
- if (sstatus->mode&MD_ASSIST && DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME)
- { // Link monsters nearby [Skotlex]
+ //First attack is always a normal attack
+ if(md->state.skillstate == MSS_ANGRY || md->state.skillstate == MSS_BERSERK) {
+ if (mob->skill_use(md,tick,-1))
+ return 1;
+ } else {
+ // Set mob's ANGRY/BERSERK states.
+ md->state.skillstate = md->state.aggressive?MSS_ANGRY:MSS_BERSERK;
+ }
+
+ if (sstatus->mode&MD_ASSIST && DIFF_TICK(md->last_linktime, tick) < MIN_MOBLINKTIME) {
+ // Link monsters nearby [Skotlex]
md->last_linktime = tick;
map->foreachinrange(mob->linksearch, src, md->db->range2, BL_MOB, md->class_, target, tick);
}
@@ -1882,7 +2164,7 @@ int unit_attack_timer_sub(struct block_list* src, int tid, int64 tick) {
return 1;
ud->attackabletime = tick + sstatus->adelay;
-// You can't move if you can't attack neither.
+ // You can't move if you can't attack neither.
if (src->type&battle_config.attack_walk_delay)
unit->set_walkdelay(src, tick, sstatus->amotion, 1);
}
@@ -1927,8 +2209,8 @@ int unit_skillcastcancel(struct block_list *bl,int type)
if (!ud->state.skillcastcancel)
return 0;
- if (sd && (sd->special_state.no_castcancel2 ||
- ( sd->special_state.no_castcancel && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground))) //fixed flags being read the wrong way around [blackhole89]
+ if (sd && (sd->special_state.no_castcancel2
+ || (sd->special_state.no_castcancel && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground))) //fixed flags being read the wrong way around [blackhole89]
return 0;
}
@@ -1975,6 +2257,7 @@ void unit_dataset(struct block_list *bl) {
ud->walktimer = INVALID_TIMER;
ud->skilltimer = INVALID_TIMER;
ud->attacktimer = INVALID_TIMER;
+ ud->steptimer = INVALID_TIMER;
ud->attackabletime =
ud->canact_tick =
ud->canmove_tick = timer->gettick();
@@ -2040,15 +2323,19 @@ int unit_remove_map(struct block_list *bl, clr_type clrtype, const char* file, i
map->freeblock_lock();
- unit->set_target(ud, 0);
-
if (ud->walktimer != INVALID_TIMER)
unit->stop_walking(bl,0);
- if (ud->attacktimer != INVALID_TIMER)
- unit->stop_attack(bl);
if (ud->skilltimer != INVALID_TIMER)
unit->skillcastcancel(bl,0);
+ //Clear target even if there is no timer
+ if (ud->target || ud->attacktimer != INVALID_TIMER)
+ unit->stop_attack(bl);
+
+ //Clear stepaction even if there is no timer
+ if (ud->stepaction || ud->steptimer != INVALID_TIMER)
+ unit->stop_stepaction(bl);
+
// Do not reset can-act delay. [Skotlex]
ud->attackabletime = ud->canmove_tick /*= ud->canact_tick*/ = timer->gettick();
if(sc && sc->count ) { //map-change/warp dispells.
@@ -2172,7 +2459,7 @@ int unit_remove_map(struct block_list *bl, clr_type clrtype, const char* file, i
sd->debug_file, sd->debug_line, sd->debug_func, file, line, func);
} else if (--map->list[bl->m].users == 0 && battle_config.dynamic_mobs) //[Skotlex]
map->removemobs(bl->m);
- if( !(sd->sc.option&OPTION_INVISIBLE) ) {
+ if (!(pc_isinvisible(sd))) {
// decrement the number of active pvp players on the map
--map->list[bl->m].users_pvp;
}
@@ -2267,10 +2554,10 @@ int unit_remove_map(struct block_list *bl, clr_type clrtype, const char* file, i
void unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype)
{
unit->remove_map(&sd->bl,clrtype,ALC_MARK);
-
+
//CLR_RESPAWN is the warp from logging out, CLR_TELEPORT is the warp from teleporting, but pets/homunc need to just 'vanish' instead of showing the warping animation.
if (clrtype == CLR_RESPAWN || clrtype == CLR_TELEPORT) clrtype = CLR_OUTSIGHT;
-
+
if(sd->pd)
unit->remove_map(&sd->pd->bl, clrtype, ALC_MARK);
if(homun_alive(sd->hd))
@@ -2299,7 +2586,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
nullpo_ret(ud);
map->freeblock_lock();
- if( bl->prev ) //Players are supposed to logout with a "warp" effect.
+ if( bl->prev ) //Players are supposed to logout with a "warp" effect.
unit->remove_map(bl, clrtype, ALC_MARK);
switch( bl->type ) {
@@ -2310,7 +2597,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
unsigned int k;
sd->state.loggingout = 1;
-
+
if( status->isdead(bl) )
pc->setrestartvalue(sd,2);
@@ -2332,8 +2619,8 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
pc->cleareventtimer(sd);
pc->inventory_rental_clear(sd);
pc->delspiritball(sd,sd->spiritball,1);
- for(i = 1; i < 5; i++)
- pc->del_charm(sd, sd->charm[i], i);
+ for(i = SPIRITS_TYPE_CHARM_WATER; i < SPIRITS_TYPE_SPHERE; i++)
+ pc->del_charm(sd, sd->spiritcharm[i], i);
if( sd->st && sd->st->state != RUN ) {// free attached scripts that are waiting
script->free_state(sd->st);
@@ -2369,7 +2656,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
sd->quest_log = NULL;
sd->num_quests = sd->avail_quests = 0;
}
-
+
for( k = 0; k < sd->hdatac; k++ ) {
if( sd->hdata[k]->flag.free ) {
aFree(sd->hdata[k]->data);
@@ -2393,10 +2680,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
if( pd->s_skill )
{
if (pd->s_skill->timer != INVALID_TIMER) {
- if (pd->s_skill->id)
- timer->delete(pd->s_skill->timer, pet->skill_support_timer);
- else
- timer->delete(pd->s_skill->timer, pet->heal_timer);
+ timer->delete(pd->s_skill->timer, pet->skill_support_timer);
}
aFree(pd->s_skill);
pd->s_skill = NULL;
@@ -2423,10 +2707,10 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
aFree (pd->loot);
pd->loot = NULL;
}
- if( pd->pet.intimate > 0 )
+ if (pd->pet.intimate > 0) {
intif->save_petdata(pd->pet.account_id,&pd->pet);
- else
- { //Remove pet.
+ } else {
+ //Remove pet.
intif->delete_petdata(pd->pet.pet_id);
if (sd) sd->status.pet_id = 0;
}
@@ -2436,6 +2720,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
}
case BL_MOB:
{
+ unsigned int k;
struct mob_data *md = (struct mob_data*)bl;
if( md->spawn_timer != INVALID_TIMER )
{
@@ -2490,6 +2775,15 @@ int unit_free(struct block_list *bl, clr_type clrtype) {
mob->clone_delete(md);
if( md->tomb_nid )
mob->mvptomb_destroy(md);
+
+ for (k = 0; k < md->hdatac; k++) {
+ if( md->hdata[k]->flag.free ) {
+ aFree(md->hdata[k]->data);
+ }
+ aFree(md->hdata[k]);
+ }
+ if (md->hdata)
+ aFree(md->hdata);
break;
}
case BL_HOM:
@@ -2561,6 +2855,7 @@ int do_init_unit(bool minimal) {
timer->add_func_list(unit->walktoxy_timer,"unit_walktoxy_timer");
timer->add_func_list(unit->walktobl_sub, "unit_walktobl_sub");
timer->add_func_list(unit->delay_walktoxy_timer,"unit_delay_walktoxy_timer");
+ timer->add_func_list(unit->step_timer,"unit_step_timer");
return 0;
}
@@ -2571,7 +2866,7 @@ int do_final_unit(void) {
void unit_defaults(void) {
unit = &unit_s;
-
+
unit->init = do_init_unit;
unit->final = do_final_unit;
/* */
@@ -2594,6 +2889,8 @@ void unit_defaults(void) {
unit->warp = unit_warp;
unit->stop_walking = unit_stop_walking;
unit->skilluse_id = unit_skilluse_id;
+ unit->step_timer = unit_step_timer;
+ unit->stop_stepaction = unit_stop_stepaction;
unit->is_walking = unit_is_walking;
unit->can_move = unit_can_move;
unit->resume_running = unit_resume_running;
diff --git a/src/map/unit.h b/src/map/unit.h
index 9b95bae41..881fa16f4 100644
--- a/src/map/unit.h
+++ b/src/map/unit.h
@@ -30,6 +30,9 @@ struct unit_data {
int attacktimer;
int walktimer;
int chaserange;
+ bool stepaction; //Action should be executed on step [Playtester]
+ int steptimer; //Timer that triggers the action [Playtester]
+ uint16 stepskill_id,stepskill_lv; //Remembers skill that should be casted on step [Playtester]
int64 attackabletime;
int64 canact_tick;
int64 canmove_tick;
@@ -40,6 +43,7 @@ struct unit_data {
unsigned change_walk_target : 1 ;
unsigned skillcastcancel : 1 ;
unsigned attack_continue : 1 ;
+ unsigned step_attack : 1;
unsigned walk_easy : 1 ;
unsigned running : 1;
unsigned speed_changed : 1;
@@ -93,6 +97,8 @@ struct unit_interface {
int (*warp) (struct block_list *bl, short m, short x, short y, clr_type type);
int (*stop_walking) (struct block_list *bl, int type);
int (*skilluse_id) (struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv);
+ int (*step_timer) (int tid, int64 tick, int id, intptr_t data);
+ void (*stop_stepaction) (struct block_list *bl);
int (*is_walking) (struct block_list *bl);
int (*can_move) (struct block_list *bl);
int (*resume_running) (int tid, int64 tick, int id, intptr_t data);
@@ -101,7 +107,7 @@ struct unit_interface {
int (*skilluse_pos) (struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv);
int (*skilluse_pos2) (struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel);
int (*set_target) (struct unit_data *ud, int target_id);
- int (*stop_attack) (struct block_list *bl);
+ void (*stop_attack) (struct block_list *bl);
int (*unattackable) (struct block_list *bl);
int (*attack) (struct block_list *src, int target_id, int continuous);
int (*cancel_combo) (struct block_list *bl);
diff --git a/src/map/vending.c b/src/map/vending.c
index 7e9393bf2..bd61d482f 100644
--- a/src/map/vending.c
+++ b/src/map/vending.c
@@ -134,11 +134,11 @@ void vending_purchasereq(struct map_session_data* sd, int aid, unsigned int uid,
clif->buyvending(sd, idx, amount, 2); // you can not buy, because overweight
return;
}
-
+
//Check to see if cart/vend info is in sync.
if( vend[j].amount > vsd->status.cart[idx].amount )
vend[j].amount = vsd->status.cart[idx].amount;
-
+
// if they try to add packets (example: get twice or more 2 apples if marchand has only 3 apples).
// here, we check cumulative amounts
if( vend[j].amount < amount ) {
@@ -146,12 +146,12 @@ void vending_purchasereq(struct map_session_data* sd, int aid, unsigned int uid,
clif->buyvending(sd, idx, vsd->vending[j].amount, 4); // not enough quantity
return;
}
-
+
vend[j].amount -= amount;
switch( pc->checkadditem(sd, vsd->status.cart[idx].nameid, amount) ) {
case ADDITEM_EXIST:
- break; //We'd add this item to the existing one (in buyers inventory)
+ break; //We'd add this item to the existing one (in buyers inventory)
case ADDITEM_NEW:
new_++;
if (new_ > blank)
@@ -190,7 +190,7 @@ void vending_purchasereq(struct map_session_data* sd, int aid, unsigned int uid,
for( i = 0, cursor = 0; i < vsd->vend_num; i++ ) {
if( vsd->vending[i].amount == 0 )
continue;
-
+
if( cursor != i ) { // speedup
vsd->vending[cursor].index = vsd->vending[i].index;
vsd->vending[cursor].amount = vsd->vending[i].amount;
@@ -245,7 +245,7 @@ void vending_openvending(struct map_session_data* sd, const char* message, const
clif->skill_fail(sd, MC_VENDING, USESKILL_FAIL_LEVEL, 0);
return;
}
-
+
// filter out invalid items
i = 0;
for( j = 0; j < count; j++ ) {
@@ -256,13 +256,13 @@ void vending_openvending(struct map_session_data* sd, const char* message, const
index -= 2; // offset adjustment (client says that the first cart position is 2)
if( index < 0 || index >= MAX_CART // invalid position
- || pc->cartitem_amount(sd, index, amount) < 0 // invalid item or insufficient quantity
+ || pc->cartitem_amount(sd, index, amount) < 0 // invalid item or insufficient quantity
//NOTE: official server does not do any of the following checks!
- || !sd->status.cart[index].identify // unidentified item
- || sd->status.cart[index].attribute == 1 // broken item
- || sd->status.cart[index].expire_time // It should not be in the cart but just in case
- || (sd->status.cart[index].bound && !pc_can_give_bound_items(sd)) // can't trade bound items w/o permission
- || !itemdb_cantrade(&sd->status.cart[index], pc_get_group_level(sd), pc_get_group_level(sd)) ) // untradeable item
+ || !sd->status.cart[index].identify // unidentified item
+ || sd->status.cart[index].attribute == 1 // broken item
+ || sd->status.cart[index].expire_time // It should not be in the cart but just in case
+ || (sd->status.cart[index].bound && !pc_can_give_bound_items(sd)) // can't trade bound items w/o permission
+ || !itemdb_cantrade(&sd->status.cart[index], pc_get_group_level(sd), pc_get_group_level(sd)) ) // untradeable item
continue;
sd->vending[i].index = index;
@@ -287,7 +287,7 @@ void vending_openvending(struct map_session_data* sd, const char* message, const
clif->openvending(sd,sd->bl.id,sd->vending);
clif->showvendingboard(&sd->bl,message,0);
-
+
idb_put(vending->db, sd->status.char_id, sd);
}
@@ -372,10 +372,10 @@ void init(bool minimal) {
void vending_defaults(void) {
vending = &vending_s;
-
+
vending->init = init;
vending->final = final;
-
+
vending->close = vending_closevending;
vending->open = vending_openvending;
vending->list = vending_vendinglistreq;
diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c
index 46792b268..d1b267cf1 100644
--- a/src/plugins/HPMHooking.c
+++ b/src/plugins/HPMHooking.c
@@ -11,6 +11,45 @@
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/socket.h"
+
+#if defined (HPMHOOKING_LOGIN)
+#define HPM_SERVER_TYPE SERVER_TYPE_LOGIN
+#define HPM_CORE_INCLUDE "../plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc"
+#define HPM_SYMBOL_INCLUDE "../plugins/HPMHooking/HPMHooking_login.GetSymbol.inc"
+#define HPM_HOOKS_INCLUDE "../plugins/HPMHooking/HPMHooking_login.Hooks.inc"
+#define HPM_POINTS_INCLUDE "../plugins/HPMHooking/HPMHooking_login.HookingPoints.inc"
+#define HPM_SOURCES_INCLUDE "../plugins/HPMHooking/HPMHooking_login.sources.inc"
+#include "../login/login.h"
+#elif defined (HPMHOOKING_CHAR)
+#define HPM_SERVER_TYPE SERVER_TYPE_CHAR
+#define HPM_CORE_INCLUDE "../plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc"
+#define HPM_SYMBOL_INCLUDE "../plugins/HPMHooking/HPMHooking_char.GetSymbol.inc"
+#define HPM_HOOKS_INCLUDE "../plugins/HPMHooking/HPMHooking_char.Hooks.inc"
+#define HPM_POINTS_INCLUDE "../plugins/HPMHooking/HPMHooking_char.HookingPoints.inc"
+#define HPM_SOURCES_INCLUDE "../plugins/HPMHooking/HPMHooking_char.sources.inc"
+#include "../char/char.h"
+#include "../char/geoip.h"
+#include "../char/int_auction.h"
+#include "../char/int_elemental.h"
+#include "../char/int_guild.h"
+#include "../char/int_homun.h"
+#include "../char/int_mail.h"
+#include "../char/int_mercenary.h"
+#include "../char/int_party.h"
+#include "../char/int_pet.h"
+#include "../char/int_quest.h"
+#include "../char/int_storage.h"
+#include "../char/inter.h"
+#include "../char/loginif.h"
+#include "../char/mapif.h"
+#include "../char/pincode.h"
+#elif defined (HPMHOOKING_MAP)
+#define HPM_SERVER_TYPE SERVER_TYPE_MAP
+#define HPM_CORE_INCLUDE "../plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc"
+#define HPM_SYMBOL_INCLUDE "../plugins/HPMHooking/HPMHooking_map.GetSymbol.inc"
+#define HPM_HOOKS_INCLUDE "../plugins/HPMHooking/HPMHooking_map.Hooks.inc"
+#define HPM_POINTS_INCLUDE "../plugins/HPMHooking/HPMHooking_map.HookingPoints.inc"
+#define HPM_SOURCES_INCLUDE "../plugins/HPMHooking/HPMHooking_map.sources.inc"
#include "../map/atcommand.h"
#include "../map/battle.h"
#include "../map/battleground.h"
@@ -44,13 +83,22 @@
#include "../map/storage.h"
#include "../map/trade.h"
#include "../map/unit.h"
+#else
+#define HPM_SERVER_TYPE SERVER_TYPE_UNKNOWN
+#define HPM_CORE_INCLUDE "../plugins/HPMHooking/HPMHooking.HPMHooksCore.inc"
+#define HPM_SYMBOL_INCLUDE "../plugins/HPMHooking/HPMHooking.GetSymbol.inc"
+#define HPM_HOOKS_INCLUDE "../plugins/HPMHooking/HPMHooking.Hooks.inc"
+#define HPM_POINTS_INCLUDE "../plugins/HPMHooking/HPMHooking.HookingPoints.inc"
+#define HPM_SOURCES_INCLUDE "../plugins/HPMHooking/HPMHooking.sources.inc"
+#error HPMHooking plugin needs to be compiled for a specific server type. Please make sure your Makefiles are up to date.
+#endif
#include "../common/HPMDataCheck.h"
HPExport struct hplugin_info pinfo = {
"HPMHooking", // Plugin name
- SERVER_TYPE_MAP,// Which server types this plugin works with?
- "0.1", // Plugin version
+ HPM_SERVER_TYPE,// Which server types this plugin works with?
+ "0.2", // Plugin version
HPM_VERSION, // HPM Version (don't change, macro is automatically updated)
};
@@ -70,7 +118,7 @@ struct HPMHookPoint {
};
struct HPMHooksCore {
- #include "../plugins/HPMHooking/HPMHooking.HPMHooksCore.inc"
+ #include HPM_CORE_INCLUDE
struct {
int total;
} data;
@@ -89,7 +137,7 @@ HPExport bool Hooked (bool *fr) {
HPMforce_return = fr;
DB = GET_SYMBOL("DB");
iMalloc = GET_SYMBOL("iMalloc");
-#include "../plugins/HPMHooking/HPMHooking.GetSymbol.inc"
+#include HPM_SYMBOL_INCLUDE
HPM_HP_load();
return true;
}
@@ -97,11 +145,11 @@ HPExport bool Hooked (bool *fr) {
HPExport bool HPM_Plugin_AddHook(enum HPluginHookType type, const char *target, void *hook, unsigned int pID) {
struct HookingPointData *hpd;
-
+
if( hp_db && (hpd = strdb_get(hp_db,target)) ) {
struct HPMHookPoint **hp = NULL;
int *count = NULL;
-
+
if( type == HOOK_TYPE_PRE ) {
hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*hpd->idx));
count = (int *)((char *)&HPMHooks.count + (sizeof(int)*hpd->idx));
@@ -109,68 +157,67 @@ HPExport bool HPM_Plugin_AddHook(enum HPluginHookType type, const char *target,
hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*(hpd->idx+1)));
count = (int *)((char *)&HPMHooks.count + (sizeof(int)*(hpd->idx+1)));
}
-
+
if( hp ) {
*count += 1;
-
+
RECREATE(*hp, struct HPMHookPoint, *count);
-
+
(*hp)[*count - 1].func = hook;
(*hp)[*count - 1].pID = pID;
-
+
*(hpd->sref) = hpd->tref;
-
+
return true;
}
}
-
+
return false;
}
-#include "../plugins/HPMHooking/HPMHooking.Hooks.inc"
+#include HPM_HOOKS_INCLUDE
void HPM_HP_final(void) {
int i, len = HPMHooks.data.total * 2;
-
+
if( hp_db )
db_destroy(hp_db);
-
+
for(i = 0; i < len; i++) {
int *count = (int *)((char *)&HPMHooks.count + (sizeof(int)*(i)));
-
+
if( count && *count ) {
struct HPMHookPoint **hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*(i)));
-
+
if( hp && *hp )
aFree(*hp);
}
}
-
}
void HPM_HP_load(void) {
- #include "../plugins/HPMHooking/HPMHooking.HookingPoints.inc"
+ #include HPM_POINTS_INCLUDE
int i, len = ARRAYLENGTH(HookingPoints), idx = 0;
-
+
memset(&HPMHooks,0,sizeof(struct HPMHooksCore));
-
+
hp_db = strdb_alloc(DB_OPT_BASE|DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, HookingPointsLenMax);
-
+
for(i = 0; i < len; i++) {
struct HookingPointData *hpd = NULL;
-
+
CREATE(hpd, struct HookingPointData, 1);
-
+
memcpy(hpd, &HookingPoints[i], sizeof(struct HookingPointData));
-
+
hpd->idx = idx;
idx += 2;
-
+
strdb_put(hp_db, HookingPoints[i].name, hpd);
-
+
HPMHooks.data.total++;
}
-
- #include "../plugins/HPMHooking/HPMHooking.sources.inc"
+
+ #include HPM_SOURCES_INCLUDE
}
diff --git a/src/plugins/HPMHooking/HPMHooking_char.GetSymbol.inc b/src/plugins/HPMHooking/HPMHooking_char.GetSymbol.inc
new file mode 100644
index 000000000..6d6db24ae
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_char.GetSymbol.inc
@@ -0,0 +1,22 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+if( !(chr = GET_SYMBOL("chr") ) ) return false;
+if( !(geoip = GET_SYMBOL("geoip") ) ) return false;
+if( !(inter_auction = GET_SYMBOL("inter_auction") ) ) return false;
+if( !(inter_elemental = GET_SYMBOL("inter_elemental") ) ) return false;
+if( !(inter_guild = GET_SYMBOL("inter_guild") ) ) return false;
+if( !(inter_homunculus = GET_SYMBOL("inter_homunculus") ) ) return false;
+if( !(inter = GET_SYMBOL("inter") ) ) return false;
+if( !(inter_mail = GET_SYMBOL("inter_mail") ) ) return false;
+if( !(inter_mercenary = GET_SYMBOL("inter_mercenary") ) ) return false;
+if( !(inter_party = GET_SYMBOL("inter_party") ) ) return false;
+if( !(inter_pet = GET_SYMBOL("inter_pet") ) ) return false;
+if( !(inter_quest = GET_SYMBOL("inter_quest") ) ) return false;
+if( !(inter_storage = GET_SYMBOL("inter_storage") ) ) return false;
+if( !(loginif = GET_SYMBOL("loginif") ) ) return false;
+if( !(mapif = GET_SYMBOL("mapif") ) ) return false;
+if( !(pincode = GET_SYMBOL("pincode") ) ) return false;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
new file mode 100644
index 000000000..e2838b610
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
@@ -0,0 +1,1814 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+struct {
+ struct HPMHookPoint *HP_chr_waiting_disconnect_pre;
+ struct HPMHookPoint *HP_chr_waiting_disconnect_post;
+ struct HPMHookPoint *HP_chr_delete_char_sql_pre;
+ struct HPMHookPoint *HP_chr_delete_char_sql_post;
+ struct HPMHookPoint *HP_chr_create_online_char_data_pre;
+ struct HPMHookPoint *HP_chr_create_online_char_data_post;
+ struct HPMHookPoint *HP_chr_set_account_online_pre;
+ struct HPMHookPoint *HP_chr_set_account_online_post;
+ struct HPMHookPoint *HP_chr_set_account_offline_pre;
+ struct HPMHookPoint *HP_chr_set_account_offline_post;
+ struct HPMHookPoint *HP_chr_set_char_charselect_pre;
+ struct HPMHookPoint *HP_chr_set_char_charselect_post;
+ struct HPMHookPoint *HP_chr_set_char_online_pre;
+ struct HPMHookPoint *HP_chr_set_char_online_post;
+ struct HPMHookPoint *HP_chr_set_char_offline_pre;
+ struct HPMHookPoint *HP_chr_set_char_offline_post;
+ struct HPMHookPoint *HP_chr_db_setoffline_pre;
+ struct HPMHookPoint *HP_chr_db_setoffline_post;
+ struct HPMHookPoint *HP_chr_db_kickoffline_pre;
+ struct HPMHookPoint *HP_chr_db_kickoffline_post;
+ struct HPMHookPoint *HP_chr_set_login_all_offline_pre;
+ struct HPMHookPoint *HP_chr_set_login_all_offline_post;
+ struct HPMHookPoint *HP_chr_set_all_offline_pre;
+ struct HPMHookPoint *HP_chr_set_all_offline_post;
+ struct HPMHookPoint *HP_chr_set_all_offline_sql_pre;
+ struct HPMHookPoint *HP_chr_set_all_offline_sql_post;
+ struct HPMHookPoint *HP_chr_create_charstatus_pre;
+ struct HPMHookPoint *HP_chr_create_charstatus_post;
+ struct HPMHookPoint *HP_chr_mmo_char_tosql_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_tosql_post;
+ struct HPMHookPoint *HP_chr_memitemdata_to_sql_pre;
+ struct HPMHookPoint *HP_chr_memitemdata_to_sql_post;
+ struct HPMHookPoint *HP_chr_inventory_to_sql_pre;
+ struct HPMHookPoint *HP_chr_inventory_to_sql_post;
+ struct HPMHookPoint *HP_chr_mmo_chars_fromsql_pre;
+ struct HPMHookPoint *HP_chr_mmo_chars_fromsql_post;
+ struct HPMHookPoint *HP_chr_mmo_char_fromsql_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_fromsql_post;
+ struct HPMHookPoint *HP_chr_mmo_char_sql_init_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_sql_init_post;
+ struct HPMHookPoint *HP_chr_char_slotchange_pre;
+ struct HPMHookPoint *HP_chr_char_slotchange_post;
+ struct HPMHookPoint *HP_chr_rename_char_sql_pre;
+ struct HPMHookPoint *HP_chr_rename_char_sql_post;
+ struct HPMHookPoint *HP_chr_check_char_name_pre;
+ struct HPMHookPoint *HP_chr_check_char_name_post;
+ struct HPMHookPoint *HP_chr_make_new_char_sql_pre;
+ struct HPMHookPoint *HP_chr_make_new_char_sql_post;
+ struct HPMHookPoint *HP_chr_divorce_char_sql_pre;
+ struct HPMHookPoint *HP_chr_divorce_char_sql_post;
+ struct HPMHookPoint *HP_chr_count_users_pre;
+ struct HPMHookPoint *HP_chr_count_users_post;
+ struct HPMHookPoint *HP_chr_mmo_char_tobuf_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_tobuf_post;
+ struct HPMHookPoint *HP_chr_mmo_char_send099d_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_send099d_post;
+ struct HPMHookPoint *HP_chr_mmo_char_send_ban_list_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_send_ban_list_post;
+ struct HPMHookPoint *HP_chr_mmo_char_send_slots_info_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_send_slots_info_post;
+ struct HPMHookPoint *HP_chr_mmo_char_send_characters_pre;
+ struct HPMHookPoint *HP_chr_mmo_char_send_characters_post;
+ struct HPMHookPoint *HP_chr_char_married_pre;
+ struct HPMHookPoint *HP_chr_char_married_post;
+ struct HPMHookPoint *HP_chr_char_child_pre;
+ struct HPMHookPoint *HP_chr_char_child_post;
+ struct HPMHookPoint *HP_chr_char_family_pre;
+ struct HPMHookPoint *HP_chr_char_family_post;
+ struct HPMHookPoint *HP_chr_disconnect_player_pre;
+ struct HPMHookPoint *HP_chr_disconnect_player_post;
+ struct HPMHookPoint *HP_chr_authfail_fd_pre;
+ struct HPMHookPoint *HP_chr_authfail_fd_post;
+ struct HPMHookPoint *HP_chr_request_account_data_pre;
+ struct HPMHookPoint *HP_chr_request_account_data_post;
+ struct HPMHookPoint *HP_chr_auth_ok_pre;
+ struct HPMHookPoint *HP_chr_auth_ok_post;
+ struct HPMHookPoint *HP_chr_ping_login_server_pre;
+ struct HPMHookPoint *HP_chr_ping_login_server_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_connection_state_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_connection_state_post;
+ struct HPMHookPoint *HP_chr_auth_error_pre;
+ struct HPMHookPoint *HP_chr_auth_error_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_auth_state_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_auth_state_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_account_data_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_account_data_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_login_pong_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_login_pong_post;
+ struct HPMHookPoint *HP_chr_changesex_pre;
+ struct HPMHookPoint *HP_chr_changesex_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_changesex_reply_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_changesex_reply_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_account_reg2_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_account_reg2_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_ban_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_ban_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_kick_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_kick_post;
+ struct HPMHookPoint *HP_chr_update_ip_pre;
+ struct HPMHookPoint *HP_chr_update_ip_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_update_ip_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_update_ip_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_accinfo2_failed_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_accinfo2_failed_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_accinfo2_ok_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_accinfo2_ok_post;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_pre;
+ struct HPMHookPoint *HP_chr_parse_fromlogin_post;
+ struct HPMHookPoint *HP_chr_request_accreg2_pre;
+ struct HPMHookPoint *HP_chr_request_accreg2_post;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_start_pre;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_start_post;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_send_pre;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_send_post;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_add_pre;
+ struct HPMHookPoint *HP_chr_global_accreg_to_login_add_post;
+ struct HPMHookPoint *HP_chr_read_fame_list_pre;
+ struct HPMHookPoint *HP_chr_read_fame_list_post;
+ struct HPMHookPoint *HP_chr_send_fame_list_pre;
+ struct HPMHookPoint *HP_chr_send_fame_list_post;
+ struct HPMHookPoint *HP_chr_update_fame_list_pre;
+ struct HPMHookPoint *HP_chr_update_fame_list_post;
+ struct HPMHookPoint *HP_chr_loadName_pre;
+ struct HPMHookPoint *HP_chr_loadName_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_datasync_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_datasync_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_skillid2idx_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_skillid2idx_post;
+ struct HPMHookPoint *HP_chr_map_received_ok_pre;
+ struct HPMHookPoint *HP_chr_map_received_ok_post;
+ struct HPMHookPoint *HP_chr_send_maps_pre;
+ struct HPMHookPoint *HP_chr_send_maps_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_map_names_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_map_names_post;
+ struct HPMHookPoint *HP_chr_send_scdata_pre;
+ struct HPMHookPoint *HP_chr_send_scdata_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_request_scdata_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_request_scdata_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_users_count_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_users_count_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_users_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_users_post;
+ struct HPMHookPoint *HP_chr_save_character_ack_pre;
+ struct HPMHookPoint *HP_chr_save_character_ack_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_save_character_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_save_character_post;
+ struct HPMHookPoint *HP_chr_select_ack_pre;
+ struct HPMHookPoint *HP_chr_select_ack_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_char_select_req_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_char_select_req_post;
+ struct HPMHookPoint *HP_chr_change_map_server_ack_pre;
+ struct HPMHookPoint *HP_chr_change_map_server_ack_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_map_server_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_map_server_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_remove_friend_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_remove_friend_post;
+ struct HPMHookPoint *HP_chr_char_name_ack_pre;
+ struct HPMHookPoint *HP_chr_char_name_ack_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_char_name_request_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_char_name_request_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_email_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_email_post;
+ struct HPMHookPoint *HP_chr_ban_pre;
+ struct HPMHookPoint *HP_chr_ban_post;
+ struct HPMHookPoint *HP_chr_unban_pre;
+ struct HPMHookPoint *HP_chr_unban_post;
+ struct HPMHookPoint *HP_chr_ask_name_ack_pre;
+ struct HPMHookPoint *HP_chr_ask_name_ack_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_account_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_change_account_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_fame_list_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_fame_list_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_divorce_char_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_divorce_char_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_ragsrvinfo_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_ragsrvinfo_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_char_offline_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_char_offline_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_all_offline_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_all_offline_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_char_online_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_set_char_online_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_build_fame_list_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_build_fame_list_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_save_status_change_data_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_save_status_change_data_post;
+ struct HPMHookPoint *HP_chr_send_pong_pre;
+ struct HPMHookPoint *HP_chr_send_pong_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_ping_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_ping_post;
+ struct HPMHookPoint *HP_chr_map_auth_ok_pre;
+ struct HPMHookPoint *HP_chr_map_auth_ok_post;
+ struct HPMHookPoint *HP_chr_map_auth_failed_pre;
+ struct HPMHookPoint *HP_chr_map_auth_failed_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_auth_request_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_auth_request_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_update_ip_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_update_ip_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_request_stats_report_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_request_stats_report_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_scdata_update_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_scdata_update_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_scdata_delete_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_scdata_delete_post;
+ struct HPMHookPoint *HP_chr_parse_frommap_pre;
+ struct HPMHookPoint *HP_chr_parse_frommap_post;
+ struct HPMHookPoint *HP_chr_search_mapserver_pre;
+ struct HPMHookPoint *HP_chr_search_mapserver_post;
+ struct HPMHookPoint *HP_chr_mapif_init_pre;
+ struct HPMHookPoint *HP_chr_mapif_init_post;
+ struct HPMHookPoint *HP_chr_lan_subnetcheck_pre;
+ struct HPMHookPoint *HP_chr_lan_subnetcheck_post;
+ struct HPMHookPoint *HP_chr_delete2_ack_pre;
+ struct HPMHookPoint *HP_chr_delete2_ack_post;
+ struct HPMHookPoint *HP_chr_delete2_accept_actual_ack_pre;
+ struct HPMHookPoint *HP_chr_delete2_accept_actual_ack_post;
+ struct HPMHookPoint *HP_chr_delete2_accept_ack_pre;
+ struct HPMHookPoint *HP_chr_delete2_accept_ack_post;
+ struct HPMHookPoint *HP_chr_delete2_cancel_ack_pre;
+ struct HPMHookPoint *HP_chr_delete2_cancel_ack_post;
+ struct HPMHookPoint *HP_chr_delete2_req_pre;
+ struct HPMHookPoint *HP_chr_delete2_req_post;
+ struct HPMHookPoint *HP_chr_delete2_accept_pre;
+ struct HPMHookPoint *HP_chr_delete2_accept_post;
+ struct HPMHookPoint *HP_chr_delete2_cancel_pre;
+ struct HPMHookPoint *HP_chr_delete2_cancel_post;
+ struct HPMHookPoint *HP_chr_send_account_id_pre;
+ struct HPMHookPoint *HP_chr_send_account_id_post;
+ struct HPMHookPoint *HP_chr_parse_char_connect_pre;
+ struct HPMHookPoint *HP_chr_parse_char_connect_post;
+ struct HPMHookPoint *HP_chr_send_map_info_pre;
+ struct HPMHookPoint *HP_chr_send_map_info_post;
+ struct HPMHookPoint *HP_chr_send_wait_char_server_pre;
+ struct HPMHookPoint *HP_chr_send_wait_char_server_post;
+ struct HPMHookPoint *HP_chr_search_default_maps_mapserver_pre;
+ struct HPMHookPoint *HP_chr_search_default_maps_mapserver_post;
+ struct HPMHookPoint *HP_chr_parse_char_select_pre;
+ struct HPMHookPoint *HP_chr_parse_char_select_post;
+ struct HPMHookPoint *HP_chr_creation_failed_pre;
+ struct HPMHookPoint *HP_chr_creation_failed_post;
+ struct HPMHookPoint *HP_chr_creation_ok_pre;
+ struct HPMHookPoint *HP_chr_creation_ok_post;
+ struct HPMHookPoint *HP_chr_parse_char_create_new_char_pre;
+ struct HPMHookPoint *HP_chr_parse_char_create_new_char_post;
+ struct HPMHookPoint *HP_chr_delete_char_failed_pre;
+ struct HPMHookPoint *HP_chr_delete_char_failed_post;
+ struct HPMHookPoint *HP_chr_delete_char_ok_pre;
+ struct HPMHookPoint *HP_chr_delete_char_ok_post;
+ struct HPMHookPoint *HP_chr_parse_char_delete_char_pre;
+ struct HPMHookPoint *HP_chr_parse_char_delete_char_post;
+ struct HPMHookPoint *HP_chr_parse_char_ping_pre;
+ struct HPMHookPoint *HP_chr_parse_char_ping_post;
+ struct HPMHookPoint *HP_chr_allow_rename_pre;
+ struct HPMHookPoint *HP_chr_allow_rename_post;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char_pre;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char_post;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char2_pre;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char2_post;
+ struct HPMHookPoint *HP_chr_rename_char_ack_pre;
+ struct HPMHookPoint *HP_chr_rename_char_ack_post;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char_confirm_pre;
+ struct HPMHookPoint *HP_chr_parse_char_rename_char_confirm_post;
+ struct HPMHookPoint *HP_chr_captcha_notsupported_pre;
+ struct HPMHookPoint *HP_chr_captcha_notsupported_post;
+ struct HPMHookPoint *HP_chr_parse_char_request_captcha_pre;
+ struct HPMHookPoint *HP_chr_parse_char_request_captcha_post;
+ struct HPMHookPoint *HP_chr_parse_char_check_captcha_pre;
+ struct HPMHookPoint *HP_chr_parse_char_check_captcha_post;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_req_pre;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_req_post;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_accept_pre;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_accept_post;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_cancel_pre;
+ struct HPMHookPoint *HP_chr_parse_char_delete2_cancel_post;
+ struct HPMHookPoint *HP_chr_login_map_server_ack_pre;
+ struct HPMHookPoint *HP_chr_login_map_server_ack_post;
+ struct HPMHookPoint *HP_chr_parse_char_login_map_server_pre;
+ struct HPMHookPoint *HP_chr_parse_char_login_map_server_post;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_check_pre;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_check_post;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_window_pre;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_window_post;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_change_pre;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_change_post;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_first_pin_pre;
+ struct HPMHookPoint *HP_chr_parse_char_pincode_first_pin_post;
+ struct HPMHookPoint *HP_chr_parse_char_request_chars_pre;
+ struct HPMHookPoint *HP_chr_parse_char_request_chars_post;
+ struct HPMHookPoint *HP_chr_change_character_slot_ack_pre;
+ struct HPMHookPoint *HP_chr_change_character_slot_ack_post;
+ struct HPMHookPoint *HP_chr_parse_char_move_character_pre;
+ struct HPMHookPoint *HP_chr_parse_char_move_character_post;
+ struct HPMHookPoint *HP_chr_parse_char_unknown_packet_pre;
+ struct HPMHookPoint *HP_chr_parse_char_unknown_packet_post;
+ struct HPMHookPoint *HP_chr_parse_char_pre;
+ struct HPMHookPoint *HP_chr_parse_char_post;
+ struct HPMHookPoint *HP_chr_broadcast_user_count_pre;
+ struct HPMHookPoint *HP_chr_broadcast_user_count_post;
+ struct HPMHookPoint *HP_chr_send_accounts_tologin_sub_pre;
+ struct HPMHookPoint *HP_chr_send_accounts_tologin_sub_post;
+ struct HPMHookPoint *HP_chr_send_accounts_tologin_pre;
+ struct HPMHookPoint *HP_chr_send_accounts_tologin_post;
+ struct HPMHookPoint *HP_chr_check_connect_login_server_pre;
+ struct HPMHookPoint *HP_chr_check_connect_login_server_post;
+ struct HPMHookPoint *HP_chr_online_data_cleanup_sub_pre;
+ struct HPMHookPoint *HP_chr_online_data_cleanup_sub_post;
+ struct HPMHookPoint *HP_chr_online_data_cleanup_pre;
+ struct HPMHookPoint *HP_chr_online_data_cleanup_post;
+ struct HPMHookPoint *HP_chr_lan_config_read_pre;
+ struct HPMHookPoint *HP_chr_lan_config_read_post;
+ struct HPMHookPoint *HP_chr_sql_config_read_pre;
+ struct HPMHookPoint *HP_chr_sql_config_read_post;
+ struct HPMHookPoint *HP_chr_config_dispatch_pre;
+ struct HPMHookPoint *HP_chr_config_dispatch_post;
+ struct HPMHookPoint *HP_chr_config_read_pre;
+ struct HPMHookPoint *HP_chr_config_read_post;
+ struct HPMHookPoint *HP_geoip_getcountry_pre;
+ struct HPMHookPoint *HP_geoip_getcountry_post;
+ struct HPMHookPoint *HP_geoip_final_pre;
+ struct HPMHookPoint *HP_geoip_final_post;
+ struct HPMHookPoint *HP_geoip_init_pre;
+ struct HPMHookPoint *HP_geoip_init_post;
+ struct HPMHookPoint *HP_inter_auction_count_pre;
+ struct HPMHookPoint *HP_inter_auction_count_post;
+ struct HPMHookPoint *HP_inter_auction_save_pre;
+ struct HPMHookPoint *HP_inter_auction_save_post;
+ struct HPMHookPoint *HP_inter_auction_create_pre;
+ struct HPMHookPoint *HP_inter_auction_create_post;
+ struct HPMHookPoint *HP_inter_auction_end_timer_pre;
+ struct HPMHookPoint *HP_inter_auction_end_timer_post;
+ struct HPMHookPoint *HP_inter_auction_delete__pre;
+ struct HPMHookPoint *HP_inter_auction_delete__post;
+ struct HPMHookPoint *HP_inter_auction_fromsql_pre;
+ struct HPMHookPoint *HP_inter_auction_fromsql_post;
+ struct HPMHookPoint *HP_inter_auction_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_auction_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_auction_sql_init_pre;
+ struct HPMHookPoint *HP_inter_auction_sql_init_post;
+ struct HPMHookPoint *HP_inter_auction_sql_final_pre;
+ struct HPMHookPoint *HP_inter_auction_sql_final_post;
+ struct HPMHookPoint *HP_inter_elemental_sql_init_pre;
+ struct HPMHookPoint *HP_inter_elemental_sql_init_post;
+ struct HPMHookPoint *HP_inter_elemental_sql_final_pre;
+ struct HPMHookPoint *HP_inter_elemental_sql_final_post;
+ struct HPMHookPoint *HP_inter_elemental_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_elemental_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_guild_save_timer_pre;
+ struct HPMHookPoint *HP_inter_guild_save_timer_post;
+ struct HPMHookPoint *HP_inter_guild_removemember_tosql_pre;
+ struct HPMHookPoint *HP_inter_guild_removemember_tosql_post;
+ struct HPMHookPoint *HP_inter_guild_tosql_pre;
+ struct HPMHookPoint *HP_inter_guild_tosql_post;
+ struct HPMHookPoint *HP_inter_guild_fromsql_pre;
+ struct HPMHookPoint *HP_inter_guild_fromsql_post;
+ struct HPMHookPoint *HP_inter_guild_castle_tosql_pre;
+ struct HPMHookPoint *HP_inter_guild_castle_tosql_post;
+ struct HPMHookPoint *HP_inter_guild_castle_fromsql_pre;
+ struct HPMHookPoint *HP_inter_guild_castle_fromsql_post;
+ struct HPMHookPoint *HP_inter_guild_exp_parse_row_pre;
+ struct HPMHookPoint *HP_inter_guild_exp_parse_row_post;
+ struct HPMHookPoint *HP_inter_guild_CharOnline_pre;
+ struct HPMHookPoint *HP_inter_guild_CharOnline_post;
+ struct HPMHookPoint *HP_inter_guild_CharOffline_pre;
+ struct HPMHookPoint *HP_inter_guild_CharOffline_post;
+ struct HPMHookPoint *HP_inter_guild_sql_init_pre;
+ struct HPMHookPoint *HP_inter_guild_sql_init_post;
+ struct HPMHookPoint *HP_inter_guild_db_final_pre;
+ struct HPMHookPoint *HP_inter_guild_db_final_post;
+ struct HPMHookPoint *HP_inter_guild_sql_final_pre;
+ struct HPMHookPoint *HP_inter_guild_sql_final_post;
+ struct HPMHookPoint *HP_inter_guild_search_guildname_pre;
+ struct HPMHookPoint *HP_inter_guild_search_guildname_post;
+ struct HPMHookPoint *HP_inter_guild_check_empty_pre;
+ struct HPMHookPoint *HP_inter_guild_check_empty_post;
+ struct HPMHookPoint *HP_inter_guild_nextexp_pre;
+ struct HPMHookPoint *HP_inter_guild_nextexp_post;
+ struct HPMHookPoint *HP_inter_guild_checkskill_pre;
+ struct HPMHookPoint *HP_inter_guild_checkskill_post;
+ struct HPMHookPoint *HP_inter_guild_calcinfo_pre;
+ struct HPMHookPoint *HP_inter_guild_calcinfo_post;
+ struct HPMHookPoint *HP_inter_guild_sex_changed_pre;
+ struct HPMHookPoint *HP_inter_guild_sex_changed_post;
+ struct HPMHookPoint *HP_inter_guild_charname_changed_pre;
+ struct HPMHookPoint *HP_inter_guild_charname_changed_post;
+ struct HPMHookPoint *HP_inter_guild_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_guild_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_guild_leave_pre;
+ struct HPMHookPoint *HP_inter_guild_leave_post;
+ struct HPMHookPoint *HP_inter_guild_broken_pre;
+ struct HPMHookPoint *HP_inter_guild_broken_post;
+ struct HPMHookPoint *HP_inter_homunculus_sql_init_pre;
+ struct HPMHookPoint *HP_inter_homunculus_sql_init_post;
+ struct HPMHookPoint *HP_inter_homunculus_sql_final_pre;
+ struct HPMHookPoint *HP_inter_homunculus_sql_final_post;
+ struct HPMHookPoint *HP_inter_homunculus_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_homunculus_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_msg_txt_pre;
+ struct HPMHookPoint *HP_inter_msg_txt_post;
+ struct HPMHookPoint *HP_inter_msg_config_read_pre;
+ struct HPMHookPoint *HP_inter_msg_config_read_post;
+ struct HPMHookPoint *HP_inter_do_final_msg_pre;
+ struct HPMHookPoint *HP_inter_do_final_msg_post;
+ struct HPMHookPoint *HP_inter_job_name_pre;
+ struct HPMHookPoint *HP_inter_job_name_post;
+ struct HPMHookPoint *HP_inter_vmsg_to_fd_pre;
+ struct HPMHookPoint *HP_inter_vmsg_to_fd_post;
+ struct HPMHookPoint *HP_inter_savereg_pre;
+ struct HPMHookPoint *HP_inter_savereg_post;
+ struct HPMHookPoint *HP_inter_accreg_fromsql_pre;
+ struct HPMHookPoint *HP_inter_accreg_fromsql_post;
+ struct HPMHookPoint *HP_inter_config_read_pre;
+ struct HPMHookPoint *HP_inter_config_read_post;
+ struct HPMHookPoint *HP_inter_vlog_pre;
+ struct HPMHookPoint *HP_inter_vlog_post;
+ struct HPMHookPoint *HP_inter_init_sql_pre;
+ struct HPMHookPoint *HP_inter_init_sql_post;
+ struct HPMHookPoint *HP_inter_mapif_init_pre;
+ struct HPMHookPoint *HP_inter_mapif_init_post;
+ struct HPMHookPoint *HP_inter_check_ttl_wisdata_sub_pre;
+ struct HPMHookPoint *HP_inter_check_ttl_wisdata_sub_post;
+ struct HPMHookPoint *HP_inter_check_ttl_wisdata_pre;
+ struct HPMHookPoint *HP_inter_check_ttl_wisdata_post;
+ struct HPMHookPoint *HP_inter_check_length_pre;
+ struct HPMHookPoint *HP_inter_check_length_post;
+ struct HPMHookPoint *HP_inter_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_final_pre;
+ struct HPMHookPoint *HP_inter_final_post;
+ struct HPMHookPoint *HP_inter_mail_sql_init_pre;
+ struct HPMHookPoint *HP_inter_mail_sql_init_post;
+ struct HPMHookPoint *HP_inter_mail_sql_final_pre;
+ struct HPMHookPoint *HP_inter_mail_sql_final_post;
+ struct HPMHookPoint *HP_inter_mail_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_mail_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_mail_fromsql_pre;
+ struct HPMHookPoint *HP_inter_mail_fromsql_post;
+ struct HPMHookPoint *HP_inter_mail_savemessage_pre;
+ struct HPMHookPoint *HP_inter_mail_savemessage_post;
+ struct HPMHookPoint *HP_inter_mail_loadmessage_pre;
+ struct HPMHookPoint *HP_inter_mail_loadmessage_post;
+ struct HPMHookPoint *HP_inter_mail_DeleteAttach_pre;
+ struct HPMHookPoint *HP_inter_mail_DeleteAttach_post;
+ struct HPMHookPoint *HP_inter_mail_sendmail_pre;
+ struct HPMHookPoint *HP_inter_mail_sendmail_post;
+ struct HPMHookPoint *HP_inter_mercenary_owner_fromsql_pre;
+ struct HPMHookPoint *HP_inter_mercenary_owner_fromsql_post;
+ struct HPMHookPoint *HP_inter_mercenary_owner_tosql_pre;
+ struct HPMHookPoint *HP_inter_mercenary_owner_tosql_post;
+ struct HPMHookPoint *HP_inter_mercenary_owner_delete_pre;
+ struct HPMHookPoint *HP_inter_mercenary_owner_delete_post;
+ struct HPMHookPoint *HP_inter_mercenary_sql_init_pre;
+ struct HPMHookPoint *HP_inter_mercenary_sql_init_post;
+ struct HPMHookPoint *HP_inter_mercenary_sql_final_pre;
+ struct HPMHookPoint *HP_inter_mercenary_sql_final_post;
+ struct HPMHookPoint *HP_inter_mercenary_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_mercenary_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_party_check_lv_pre;
+ struct HPMHookPoint *HP_inter_party_check_lv_post;
+ struct HPMHookPoint *HP_inter_party_calc_state_pre;
+ struct HPMHookPoint *HP_inter_party_calc_state_post;
+ struct HPMHookPoint *HP_inter_party_tosql_pre;
+ struct HPMHookPoint *HP_inter_party_tosql_post;
+ struct HPMHookPoint *HP_inter_party_fromsql_pre;
+ struct HPMHookPoint *HP_inter_party_fromsql_post;
+ struct HPMHookPoint *HP_inter_party_sql_init_pre;
+ struct HPMHookPoint *HP_inter_party_sql_init_post;
+ struct HPMHookPoint *HP_inter_party_sql_final_pre;
+ struct HPMHookPoint *HP_inter_party_sql_final_post;
+ struct HPMHookPoint *HP_inter_party_search_partyname_pre;
+ struct HPMHookPoint *HP_inter_party_search_partyname_post;
+ struct HPMHookPoint *HP_inter_party_check_exp_share_pre;
+ struct HPMHookPoint *HP_inter_party_check_exp_share_post;
+ struct HPMHookPoint *HP_inter_party_check_empty_pre;
+ struct HPMHookPoint *HP_inter_party_check_empty_post;
+ struct HPMHookPoint *HP_inter_party_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_party_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_party_leave_pre;
+ struct HPMHookPoint *HP_inter_party_leave_post;
+ struct HPMHookPoint *HP_inter_party_CharOnline_pre;
+ struct HPMHookPoint *HP_inter_party_CharOnline_post;
+ struct HPMHookPoint *HP_inter_party_CharOffline_pre;
+ struct HPMHookPoint *HP_inter_party_CharOffline_post;
+ struct HPMHookPoint *HP_inter_pet_tosql_pre;
+ struct HPMHookPoint *HP_inter_pet_tosql_post;
+ struct HPMHookPoint *HP_inter_pet_fromsql_pre;
+ struct HPMHookPoint *HP_inter_pet_fromsql_post;
+ struct HPMHookPoint *HP_inter_pet_sql_init_pre;
+ struct HPMHookPoint *HP_inter_pet_sql_init_post;
+ struct HPMHookPoint *HP_inter_pet_sql_final_pre;
+ struct HPMHookPoint *HP_inter_pet_sql_final_post;
+ struct HPMHookPoint *HP_inter_pet_delete__pre;
+ struct HPMHookPoint *HP_inter_pet_delete__post;
+ struct HPMHookPoint *HP_inter_pet_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_pet_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_quest_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_quest_parse_frommap_post;
+ struct HPMHookPoint *HP_inter_storage_tosql_pre;
+ struct HPMHookPoint *HP_inter_storage_tosql_post;
+ struct HPMHookPoint *HP_inter_storage_fromsql_pre;
+ struct HPMHookPoint *HP_inter_storage_fromsql_post;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_tosql_pre;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_tosql_post;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_fromsql_pre;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_fromsql_post;
+ struct HPMHookPoint *HP_inter_storage_sql_init_pre;
+ struct HPMHookPoint *HP_inter_storage_sql_init_post;
+ struct HPMHookPoint *HP_inter_storage_sql_final_pre;
+ struct HPMHookPoint *HP_inter_storage_sql_final_post;
+ struct HPMHookPoint *HP_inter_storage_delete__pre;
+ struct HPMHookPoint *HP_inter_storage_delete__post;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_delete_pre;
+ struct HPMHookPoint *HP_inter_storage_guild_storage_delete_post;
+ struct HPMHookPoint *HP_inter_storage_parse_frommap_pre;
+ struct HPMHookPoint *HP_inter_storage_parse_frommap_post;
+ struct HPMHookPoint *HP_loginif_init_pre;
+ struct HPMHookPoint *HP_loginif_init_post;
+ struct HPMHookPoint *HP_loginif_final_pre;
+ struct HPMHookPoint *HP_loginif_final_post;
+ struct HPMHookPoint *HP_loginif_reset_pre;
+ struct HPMHookPoint *HP_loginif_reset_post;
+ struct HPMHookPoint *HP_loginif_check_shutdown_pre;
+ struct HPMHookPoint *HP_loginif_check_shutdown_post;
+ struct HPMHookPoint *HP_loginif_on_disconnect_pre;
+ struct HPMHookPoint *HP_loginif_on_disconnect_post;
+ struct HPMHookPoint *HP_loginif_on_ready_pre;
+ struct HPMHookPoint *HP_loginif_on_ready_post;
+ struct HPMHookPoint *HP_loginif_block_account_pre;
+ struct HPMHookPoint *HP_loginif_block_account_post;
+ struct HPMHookPoint *HP_loginif_ban_account_pre;
+ struct HPMHookPoint *HP_loginif_ban_account_post;
+ struct HPMHookPoint *HP_loginif_unban_account_pre;
+ struct HPMHookPoint *HP_loginif_unban_account_post;
+ struct HPMHookPoint *HP_loginif_changesex_pre;
+ struct HPMHookPoint *HP_loginif_changesex_post;
+ struct HPMHookPoint *HP_loginif_auth_pre;
+ struct HPMHookPoint *HP_loginif_auth_post;
+ struct HPMHookPoint *HP_loginif_send_users_count_pre;
+ struct HPMHookPoint *HP_loginif_send_users_count_post;
+ struct HPMHookPoint *HP_loginif_connect_to_server_pre;
+ struct HPMHookPoint *HP_loginif_connect_to_server_post;
+ struct HPMHookPoint *HP_mapif_ban_pre;
+ struct HPMHookPoint *HP_mapif_ban_post;
+ struct HPMHookPoint *HP_mapif_server_init_pre;
+ struct HPMHookPoint *HP_mapif_server_init_post;
+ struct HPMHookPoint *HP_mapif_server_destroy_pre;
+ struct HPMHookPoint *HP_mapif_server_destroy_post;
+ struct HPMHookPoint *HP_mapif_server_reset_pre;
+ struct HPMHookPoint *HP_mapif_server_reset_post;
+ struct HPMHookPoint *HP_mapif_on_disconnect_pre;
+ struct HPMHookPoint *HP_mapif_on_disconnect_post;
+ struct HPMHookPoint *HP_mapif_on_parse_accinfo_pre;
+ struct HPMHookPoint *HP_mapif_on_parse_accinfo_post;
+ struct HPMHookPoint *HP_mapif_char_ban_pre;
+ struct HPMHookPoint *HP_mapif_char_ban_post;
+ struct HPMHookPoint *HP_mapif_sendall_pre;
+ struct HPMHookPoint *HP_mapif_sendall_post;
+ struct HPMHookPoint *HP_mapif_sendallwos_pre;
+ struct HPMHookPoint *HP_mapif_sendallwos_post;
+ struct HPMHookPoint *HP_mapif_send_pre;
+ struct HPMHookPoint *HP_mapif_send_post;
+ struct HPMHookPoint *HP_mapif_send_users_count_pre;
+ struct HPMHookPoint *HP_mapif_send_users_count_post;
+ struct HPMHookPoint *HP_mapif_auction_message_pre;
+ struct HPMHookPoint *HP_mapif_auction_message_post;
+ struct HPMHookPoint *HP_mapif_auction_sendlist_pre;
+ struct HPMHookPoint *HP_mapif_auction_sendlist_post;
+ struct HPMHookPoint *HP_mapif_parse_auction_requestlist_pre;
+ struct HPMHookPoint *HP_mapif_parse_auction_requestlist_post;
+ struct HPMHookPoint *HP_mapif_auction_register_pre;
+ struct HPMHookPoint *HP_mapif_auction_register_post;
+ struct HPMHookPoint *HP_mapif_parse_auction_register_pre;
+ struct HPMHookPoint *HP_mapif_parse_auction_register_post;
+ struct HPMHookPoint *HP_mapif_auction_cancel_pre;
+ struct HPMHookPoint *HP_mapif_auction_cancel_post;
+ struct HPMHookPoint *HP_mapif_parse_auction_cancel_pre;
+ struct HPMHookPoint *HP_mapif_parse_auction_cancel_post;
+ struct HPMHookPoint *HP_mapif_auction_close_pre;
+ struct HPMHookPoint *HP_mapif_auction_close_post;
+ struct HPMHookPoint *HP_mapif_parse_auction_close_pre;
+ struct HPMHookPoint *HP_mapif_parse_auction_close_post;
+ struct HPMHookPoint *HP_mapif_auction_bid_pre;
+ struct HPMHookPoint *HP_mapif_auction_bid_post;
+ struct HPMHookPoint *HP_mapif_parse_auction_bid_pre;
+ struct HPMHookPoint *HP_mapif_parse_auction_bid_post;
+ struct HPMHookPoint *HP_mapif_elemental_save_pre;
+ struct HPMHookPoint *HP_mapif_elemental_save_post;
+ struct HPMHookPoint *HP_mapif_elemental_load_pre;
+ struct HPMHookPoint *HP_mapif_elemental_load_post;
+ struct HPMHookPoint *HP_mapif_elemental_delete_pre;
+ struct HPMHookPoint *HP_mapif_elemental_delete_post;
+ struct HPMHookPoint *HP_mapif_elemental_send_pre;
+ struct HPMHookPoint *HP_mapif_elemental_send_post;
+ struct HPMHookPoint *HP_mapif_parse_elemental_create_pre;
+ struct HPMHookPoint *HP_mapif_parse_elemental_create_post;
+ struct HPMHookPoint *HP_mapif_parse_elemental_load_pre;
+ struct HPMHookPoint *HP_mapif_parse_elemental_load_post;
+ struct HPMHookPoint *HP_mapif_elemental_deleted_pre;
+ struct HPMHookPoint *HP_mapif_elemental_deleted_post;
+ struct HPMHookPoint *HP_mapif_parse_elemental_delete_pre;
+ struct HPMHookPoint *HP_mapif_parse_elemental_delete_post;
+ struct HPMHookPoint *HP_mapif_elemental_saved_pre;
+ struct HPMHookPoint *HP_mapif_elemental_saved_post;
+ struct HPMHookPoint *HP_mapif_parse_elemental_save_pre;
+ struct HPMHookPoint *HP_mapif_parse_elemental_save_post;
+ struct HPMHookPoint *HP_mapif_guild_created_pre;
+ struct HPMHookPoint *HP_mapif_guild_created_post;
+ struct HPMHookPoint *HP_mapif_guild_noinfo_pre;
+ struct HPMHookPoint *HP_mapif_guild_noinfo_post;
+ struct HPMHookPoint *HP_mapif_guild_info_pre;
+ struct HPMHookPoint *HP_mapif_guild_info_post;
+ struct HPMHookPoint *HP_mapif_guild_memberadded_pre;
+ struct HPMHookPoint *HP_mapif_guild_memberadded_post;
+ struct HPMHookPoint *HP_mapif_guild_withdraw_pre;
+ struct HPMHookPoint *HP_mapif_guild_withdraw_post;
+ struct HPMHookPoint *HP_mapif_guild_memberinfoshort_pre;
+ struct HPMHookPoint *HP_mapif_guild_memberinfoshort_post;
+ struct HPMHookPoint *HP_mapif_guild_broken_pre;
+ struct HPMHookPoint *HP_mapif_guild_broken_post;
+ struct HPMHookPoint *HP_mapif_guild_message_pre;
+ struct HPMHookPoint *HP_mapif_guild_message_post;
+ struct HPMHookPoint *HP_mapif_guild_basicinfochanged_pre;
+ struct HPMHookPoint *HP_mapif_guild_basicinfochanged_post;
+ struct HPMHookPoint *HP_mapif_guild_memberinfochanged_pre;
+ struct HPMHookPoint *HP_mapif_guild_memberinfochanged_post;
+ struct HPMHookPoint *HP_mapif_guild_skillupack_pre;
+ struct HPMHookPoint *HP_mapif_guild_skillupack_post;
+ struct HPMHookPoint *HP_mapif_guild_alliance_pre;
+ struct HPMHookPoint *HP_mapif_guild_alliance_post;
+ struct HPMHookPoint *HP_mapif_guild_position_pre;
+ struct HPMHookPoint *HP_mapif_guild_position_post;
+ struct HPMHookPoint *HP_mapif_guild_notice_pre;
+ struct HPMHookPoint *HP_mapif_guild_notice_post;
+ struct HPMHookPoint *HP_mapif_guild_emblem_pre;
+ struct HPMHookPoint *HP_mapif_guild_emblem_post;
+ struct HPMHookPoint *HP_mapif_guild_master_changed_pre;
+ struct HPMHookPoint *HP_mapif_guild_master_changed_post;
+ struct HPMHookPoint *HP_mapif_guild_castle_dataload_pre;
+ struct HPMHookPoint *HP_mapif_guild_castle_dataload_post;
+ struct HPMHookPoint *HP_mapif_parse_CreateGuild_pre;
+ struct HPMHookPoint *HP_mapif_parse_CreateGuild_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildInfo_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildInfo_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildAddMember_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildAddMember_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildLeave_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildLeave_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildChangeMemberInfoShort_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildChangeMemberInfoShort_post;
+ struct HPMHookPoint *HP_mapif_parse_BreakGuild_pre;
+ struct HPMHookPoint *HP_mapif_parse_BreakGuild_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildMessage_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildMessage_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildBasicInfoChange_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildBasicInfoChange_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildMemberInfoChange_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildMemberInfoChange_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildPosition_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildPosition_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildSkillUp_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildSkillUp_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildDeleteAlliance_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildDeleteAlliance_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildAlliance_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildAlliance_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildNotice_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildNotice_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildEmblem_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildEmblem_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildCastleDataLoad_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildCastleDataLoad_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildCastleDataSave_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildCastleDataSave_post;
+ struct HPMHookPoint *HP_mapif_parse_GuildMasterChange_pre;
+ struct HPMHookPoint *HP_mapif_parse_GuildMasterChange_post;
+ struct HPMHookPoint *HP_mapif_homunculus_created_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_created_post;
+ struct HPMHookPoint *HP_mapif_homunculus_deleted_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_deleted_post;
+ struct HPMHookPoint *HP_mapif_homunculus_loaded_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_loaded_post;
+ struct HPMHookPoint *HP_mapif_homunculus_saved_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_saved_post;
+ struct HPMHookPoint *HP_mapif_homunculus_renamed_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_renamed_post;
+ struct HPMHookPoint *HP_mapif_homunculus_save_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_save_post;
+ struct HPMHookPoint *HP_mapif_homunculus_load_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_load_post;
+ struct HPMHookPoint *HP_mapif_homunculus_delete_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_delete_post;
+ struct HPMHookPoint *HP_mapif_homunculus_rename_pre;
+ struct HPMHookPoint *HP_mapif_homunculus_rename_post;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_create_pre;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_create_post;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_delete_pre;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_delete_post;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_load_pre;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_load_post;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_save_pre;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_save_post;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_rename_pre;
+ struct HPMHookPoint *HP_mapif_parse_homunculus_rename_post;
+ struct HPMHookPoint *HP_mapif_mail_sendinbox_pre;
+ struct HPMHookPoint *HP_mapif_mail_sendinbox_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_requestinbox_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_requestinbox_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_read_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_read_post;
+ struct HPMHookPoint *HP_mapif_mail_sendattach_pre;
+ struct HPMHookPoint *HP_mapif_mail_sendattach_post;
+ struct HPMHookPoint *HP_mapif_mail_getattach_pre;
+ struct HPMHookPoint *HP_mapif_mail_getattach_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_getattach_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_getattach_post;
+ struct HPMHookPoint *HP_mapif_mail_delete_pre;
+ struct HPMHookPoint *HP_mapif_mail_delete_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_delete_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_delete_post;
+ struct HPMHookPoint *HP_mapif_mail_new_pre;
+ struct HPMHookPoint *HP_mapif_mail_new_post;
+ struct HPMHookPoint *HP_mapif_mail_return_pre;
+ struct HPMHookPoint *HP_mapif_mail_return_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_return_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_return_post;
+ struct HPMHookPoint *HP_mapif_mail_send_pre;
+ struct HPMHookPoint *HP_mapif_mail_send_post;
+ struct HPMHookPoint *HP_mapif_parse_mail_send_pre;
+ struct HPMHookPoint *HP_mapif_parse_mail_send_post;
+ struct HPMHookPoint *HP_mapif_mercenary_save_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_save_post;
+ struct HPMHookPoint *HP_mapif_mercenary_load_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_load_post;
+ struct HPMHookPoint *HP_mapif_mercenary_delete_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_delete_post;
+ struct HPMHookPoint *HP_mapif_mercenary_send_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_send_post;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_create_pre;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_create_post;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_load_pre;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_load_post;
+ struct HPMHookPoint *HP_mapif_mercenary_deleted_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_deleted_post;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_delete_pre;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_delete_post;
+ struct HPMHookPoint *HP_mapif_mercenary_saved_pre;
+ struct HPMHookPoint *HP_mapif_mercenary_saved_post;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_save_pre;
+ struct HPMHookPoint *HP_mapif_parse_mercenary_save_post;
+ struct HPMHookPoint *HP_mapif_party_created_pre;
+ struct HPMHookPoint *HP_mapif_party_created_post;
+ struct HPMHookPoint *HP_mapif_party_noinfo_pre;
+ struct HPMHookPoint *HP_mapif_party_noinfo_post;
+ struct HPMHookPoint *HP_mapif_party_info_pre;
+ struct HPMHookPoint *HP_mapif_party_info_post;
+ struct HPMHookPoint *HP_mapif_party_memberadded_pre;
+ struct HPMHookPoint *HP_mapif_party_memberadded_post;
+ struct HPMHookPoint *HP_mapif_party_optionchanged_pre;
+ struct HPMHookPoint *HP_mapif_party_optionchanged_post;
+ struct HPMHookPoint *HP_mapif_party_withdraw_pre;
+ struct HPMHookPoint *HP_mapif_party_withdraw_post;
+ struct HPMHookPoint *HP_mapif_party_membermoved_pre;
+ struct HPMHookPoint *HP_mapif_party_membermoved_post;
+ struct HPMHookPoint *HP_mapif_party_broken_pre;
+ struct HPMHookPoint *HP_mapif_party_broken_post;
+ struct HPMHookPoint *HP_mapif_party_message_pre;
+ struct HPMHookPoint *HP_mapif_party_message_post;
+ struct HPMHookPoint *HP_mapif_parse_CreateParty_pre;
+ struct HPMHookPoint *HP_mapif_parse_CreateParty_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyInfo_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyInfo_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyAddMember_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyAddMember_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyChangeOption_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyChangeOption_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyLeave_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyLeave_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyChangeMap_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyChangeMap_post;
+ struct HPMHookPoint *HP_mapif_parse_BreakParty_pre;
+ struct HPMHookPoint *HP_mapif_parse_BreakParty_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyMessage_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyMessage_post;
+ struct HPMHookPoint *HP_mapif_parse_PartyLeaderChange_pre;
+ struct HPMHookPoint *HP_mapif_parse_PartyLeaderChange_post;
+ struct HPMHookPoint *HP_mapif_pet_created_pre;
+ struct HPMHookPoint *HP_mapif_pet_created_post;
+ struct HPMHookPoint *HP_mapif_pet_info_pre;
+ struct HPMHookPoint *HP_mapif_pet_info_post;
+ struct HPMHookPoint *HP_mapif_pet_noinfo_pre;
+ struct HPMHookPoint *HP_mapif_pet_noinfo_post;
+ struct HPMHookPoint *HP_mapif_save_pet_ack_pre;
+ struct HPMHookPoint *HP_mapif_save_pet_ack_post;
+ struct HPMHookPoint *HP_mapif_delete_pet_ack_pre;
+ struct HPMHookPoint *HP_mapif_delete_pet_ack_post;
+ struct HPMHookPoint *HP_mapif_create_pet_pre;
+ struct HPMHookPoint *HP_mapif_create_pet_post;
+ struct HPMHookPoint *HP_mapif_load_pet_pre;
+ struct HPMHookPoint *HP_mapif_load_pet_post;
+ struct HPMHookPoint *HP_mapif_save_pet_pre;
+ struct HPMHookPoint *HP_mapif_save_pet_post;
+ struct HPMHookPoint *HP_mapif_delete_pet_pre;
+ struct HPMHookPoint *HP_mapif_delete_pet_post;
+ struct HPMHookPoint *HP_mapif_parse_CreatePet_pre;
+ struct HPMHookPoint *HP_mapif_parse_CreatePet_post;
+ struct HPMHookPoint *HP_mapif_parse_LoadPet_pre;
+ struct HPMHookPoint *HP_mapif_parse_LoadPet_post;
+ struct HPMHookPoint *HP_mapif_parse_SavePet_pre;
+ struct HPMHookPoint *HP_mapif_parse_SavePet_post;
+ struct HPMHookPoint *HP_mapif_parse_DeletePet_pre;
+ struct HPMHookPoint *HP_mapif_parse_DeletePet_post;
+ struct HPMHookPoint *HP_mapif_quests_fromsql_pre;
+ struct HPMHookPoint *HP_mapif_quests_fromsql_post;
+ struct HPMHookPoint *HP_mapif_quest_delete_pre;
+ struct HPMHookPoint *HP_mapif_quest_delete_post;
+ struct HPMHookPoint *HP_mapif_quest_add_pre;
+ struct HPMHookPoint *HP_mapif_quest_add_post;
+ struct HPMHookPoint *HP_mapif_quest_update_pre;
+ struct HPMHookPoint *HP_mapif_quest_update_post;
+ struct HPMHookPoint *HP_mapif_quest_save_ack_pre;
+ struct HPMHookPoint *HP_mapif_quest_save_ack_post;
+ struct HPMHookPoint *HP_mapif_parse_quest_save_pre;
+ struct HPMHookPoint *HP_mapif_parse_quest_save_post;
+ struct HPMHookPoint *HP_mapif_send_quests_pre;
+ struct HPMHookPoint *HP_mapif_send_quests_post;
+ struct HPMHookPoint *HP_mapif_parse_quest_load_pre;
+ struct HPMHookPoint *HP_mapif_parse_quest_load_post;
+ struct HPMHookPoint *HP_mapif_load_guild_storage_pre;
+ struct HPMHookPoint *HP_mapif_load_guild_storage_post;
+ struct HPMHookPoint *HP_mapif_save_guild_storage_ack_pre;
+ struct HPMHookPoint *HP_mapif_save_guild_storage_ack_post;
+ struct HPMHookPoint *HP_mapif_parse_LoadGuildStorage_pre;
+ struct HPMHookPoint *HP_mapif_parse_LoadGuildStorage_post;
+ struct HPMHookPoint *HP_mapif_parse_SaveGuildStorage_pre;
+ struct HPMHookPoint *HP_mapif_parse_SaveGuildStorage_post;
+ struct HPMHookPoint *HP_mapif_itembound_ack_pre;
+ struct HPMHookPoint *HP_mapif_itembound_ack_post;
+ struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_sub_pre;
+ struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_sub_post;
+ struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_pre;
+ struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_post;
+ struct HPMHookPoint *HP_mapif_parse_accinfo_pre;
+ struct HPMHookPoint *HP_mapif_parse_accinfo_post;
+ struct HPMHookPoint *HP_mapif_parse_accinfo2_pre;
+ struct HPMHookPoint *HP_mapif_parse_accinfo2_post;
+ struct HPMHookPoint *HP_mapif_broadcast_pre;
+ struct HPMHookPoint *HP_mapif_broadcast_post;
+ struct HPMHookPoint *HP_mapif_wis_message_pre;
+ struct HPMHookPoint *HP_mapif_wis_message_post;
+ struct HPMHookPoint *HP_mapif_wis_response_pre;
+ struct HPMHookPoint *HP_mapif_wis_response_post;
+ struct HPMHookPoint *HP_mapif_wis_end_pre;
+ struct HPMHookPoint *HP_mapif_wis_end_post;
+ struct HPMHookPoint *HP_mapif_account_reg_reply_pre;
+ struct HPMHookPoint *HP_mapif_account_reg_reply_post;
+ struct HPMHookPoint *HP_mapif_disconnectplayer_pre;
+ struct HPMHookPoint *HP_mapif_disconnectplayer_post;
+ struct HPMHookPoint *HP_mapif_parse_broadcast_pre;
+ struct HPMHookPoint *HP_mapif_parse_broadcast_post;
+ struct HPMHookPoint *HP_mapif_parse_WisRequest_pre;
+ struct HPMHookPoint *HP_mapif_parse_WisRequest_post;
+ struct HPMHookPoint *HP_mapif_parse_WisReply_pre;
+ struct HPMHookPoint *HP_mapif_parse_WisReply_post;
+ struct HPMHookPoint *HP_mapif_parse_WisToGM_pre;
+ struct HPMHookPoint *HP_mapif_parse_WisToGM_post;
+ struct HPMHookPoint *HP_mapif_parse_Registry_pre;
+ struct HPMHookPoint *HP_mapif_parse_Registry_post;
+ struct HPMHookPoint *HP_mapif_parse_RegistryRequest_pre;
+ struct HPMHookPoint *HP_mapif_parse_RegistryRequest_post;
+ struct HPMHookPoint *HP_mapif_namechange_ack_pre;
+ struct HPMHookPoint *HP_mapif_namechange_ack_post;
+ struct HPMHookPoint *HP_mapif_parse_NameChangeRequest_pre;
+ struct HPMHookPoint *HP_mapif_parse_NameChangeRequest_post;
+ struct HPMHookPoint *HP_pincode_handle_pre;
+ struct HPMHookPoint *HP_pincode_handle_post;
+ struct HPMHookPoint *HP_pincode_decrypt_pre;
+ struct HPMHookPoint *HP_pincode_decrypt_post;
+ struct HPMHookPoint *HP_pincode_error_pre;
+ struct HPMHookPoint *HP_pincode_error_post;
+ struct HPMHookPoint *HP_pincode_update_pre;
+ struct HPMHookPoint *HP_pincode_update_post;
+ struct HPMHookPoint *HP_pincode_sendstate_pre;
+ struct HPMHookPoint *HP_pincode_sendstate_post;
+ struct HPMHookPoint *HP_pincode_setnew_pre;
+ struct HPMHookPoint *HP_pincode_setnew_post;
+ struct HPMHookPoint *HP_pincode_change_pre;
+ struct HPMHookPoint *HP_pincode_change_post;
+ struct HPMHookPoint *HP_pincode_compare_pre;
+ struct HPMHookPoint *HP_pincode_compare_post;
+ struct HPMHookPoint *HP_pincode_check_pre;
+ struct HPMHookPoint *HP_pincode_check_post;
+ struct HPMHookPoint *HP_pincode_config_read_pre;
+ struct HPMHookPoint *HP_pincode_config_read_post;
+} list;
+
+struct {
+ int HP_chr_waiting_disconnect_pre;
+ int HP_chr_waiting_disconnect_post;
+ int HP_chr_delete_char_sql_pre;
+ int HP_chr_delete_char_sql_post;
+ int HP_chr_create_online_char_data_pre;
+ int HP_chr_create_online_char_data_post;
+ int HP_chr_set_account_online_pre;
+ int HP_chr_set_account_online_post;
+ int HP_chr_set_account_offline_pre;
+ int HP_chr_set_account_offline_post;
+ int HP_chr_set_char_charselect_pre;
+ int HP_chr_set_char_charselect_post;
+ int HP_chr_set_char_online_pre;
+ int HP_chr_set_char_online_post;
+ int HP_chr_set_char_offline_pre;
+ int HP_chr_set_char_offline_post;
+ int HP_chr_db_setoffline_pre;
+ int HP_chr_db_setoffline_post;
+ int HP_chr_db_kickoffline_pre;
+ int HP_chr_db_kickoffline_post;
+ int HP_chr_set_login_all_offline_pre;
+ int HP_chr_set_login_all_offline_post;
+ int HP_chr_set_all_offline_pre;
+ int HP_chr_set_all_offline_post;
+ int HP_chr_set_all_offline_sql_pre;
+ int HP_chr_set_all_offline_sql_post;
+ int HP_chr_create_charstatus_pre;
+ int HP_chr_create_charstatus_post;
+ int HP_chr_mmo_char_tosql_pre;
+ int HP_chr_mmo_char_tosql_post;
+ int HP_chr_memitemdata_to_sql_pre;
+ int HP_chr_memitemdata_to_sql_post;
+ int HP_chr_inventory_to_sql_pre;
+ int HP_chr_inventory_to_sql_post;
+ int HP_chr_mmo_chars_fromsql_pre;
+ int HP_chr_mmo_chars_fromsql_post;
+ int HP_chr_mmo_char_fromsql_pre;
+ int HP_chr_mmo_char_fromsql_post;
+ int HP_chr_mmo_char_sql_init_pre;
+ int HP_chr_mmo_char_sql_init_post;
+ int HP_chr_char_slotchange_pre;
+ int HP_chr_char_slotchange_post;
+ int HP_chr_rename_char_sql_pre;
+ int HP_chr_rename_char_sql_post;
+ int HP_chr_check_char_name_pre;
+ int HP_chr_check_char_name_post;
+ int HP_chr_make_new_char_sql_pre;
+ int HP_chr_make_new_char_sql_post;
+ int HP_chr_divorce_char_sql_pre;
+ int HP_chr_divorce_char_sql_post;
+ int HP_chr_count_users_pre;
+ int HP_chr_count_users_post;
+ int HP_chr_mmo_char_tobuf_pre;
+ int HP_chr_mmo_char_tobuf_post;
+ int HP_chr_mmo_char_send099d_pre;
+ int HP_chr_mmo_char_send099d_post;
+ int HP_chr_mmo_char_send_ban_list_pre;
+ int HP_chr_mmo_char_send_ban_list_post;
+ int HP_chr_mmo_char_send_slots_info_pre;
+ int HP_chr_mmo_char_send_slots_info_post;
+ int HP_chr_mmo_char_send_characters_pre;
+ int HP_chr_mmo_char_send_characters_post;
+ int HP_chr_char_married_pre;
+ int HP_chr_char_married_post;
+ int HP_chr_char_child_pre;
+ int HP_chr_char_child_post;
+ int HP_chr_char_family_pre;
+ int HP_chr_char_family_post;
+ int HP_chr_disconnect_player_pre;
+ int HP_chr_disconnect_player_post;
+ int HP_chr_authfail_fd_pre;
+ int HP_chr_authfail_fd_post;
+ int HP_chr_request_account_data_pre;
+ int HP_chr_request_account_data_post;
+ int HP_chr_auth_ok_pre;
+ int HP_chr_auth_ok_post;
+ int HP_chr_ping_login_server_pre;
+ int HP_chr_ping_login_server_post;
+ int HP_chr_parse_fromlogin_connection_state_pre;
+ int HP_chr_parse_fromlogin_connection_state_post;
+ int HP_chr_auth_error_pre;
+ int HP_chr_auth_error_post;
+ int HP_chr_parse_fromlogin_auth_state_pre;
+ int HP_chr_parse_fromlogin_auth_state_post;
+ int HP_chr_parse_fromlogin_account_data_pre;
+ int HP_chr_parse_fromlogin_account_data_post;
+ int HP_chr_parse_fromlogin_login_pong_pre;
+ int HP_chr_parse_fromlogin_login_pong_post;
+ int HP_chr_changesex_pre;
+ int HP_chr_changesex_post;
+ int HP_chr_parse_fromlogin_changesex_reply_pre;
+ int HP_chr_parse_fromlogin_changesex_reply_post;
+ int HP_chr_parse_fromlogin_account_reg2_pre;
+ int HP_chr_parse_fromlogin_account_reg2_post;
+ int HP_chr_parse_fromlogin_ban_pre;
+ int HP_chr_parse_fromlogin_ban_post;
+ int HP_chr_parse_fromlogin_kick_pre;
+ int HP_chr_parse_fromlogin_kick_post;
+ int HP_chr_update_ip_pre;
+ int HP_chr_update_ip_post;
+ int HP_chr_parse_fromlogin_update_ip_pre;
+ int HP_chr_parse_fromlogin_update_ip_post;
+ int HP_chr_parse_fromlogin_accinfo2_failed_pre;
+ int HP_chr_parse_fromlogin_accinfo2_failed_post;
+ int HP_chr_parse_fromlogin_accinfo2_ok_pre;
+ int HP_chr_parse_fromlogin_accinfo2_ok_post;
+ int HP_chr_parse_fromlogin_pre;
+ int HP_chr_parse_fromlogin_post;
+ int HP_chr_request_accreg2_pre;
+ int HP_chr_request_accreg2_post;
+ int HP_chr_global_accreg_to_login_start_pre;
+ int HP_chr_global_accreg_to_login_start_post;
+ int HP_chr_global_accreg_to_login_send_pre;
+ int HP_chr_global_accreg_to_login_send_post;
+ int HP_chr_global_accreg_to_login_add_pre;
+ int HP_chr_global_accreg_to_login_add_post;
+ int HP_chr_read_fame_list_pre;
+ int HP_chr_read_fame_list_post;
+ int HP_chr_send_fame_list_pre;
+ int HP_chr_send_fame_list_post;
+ int HP_chr_update_fame_list_pre;
+ int HP_chr_update_fame_list_post;
+ int HP_chr_loadName_pre;
+ int HP_chr_loadName_post;
+ int HP_chr_parse_frommap_datasync_pre;
+ int HP_chr_parse_frommap_datasync_post;
+ int HP_chr_parse_frommap_skillid2idx_pre;
+ int HP_chr_parse_frommap_skillid2idx_post;
+ int HP_chr_map_received_ok_pre;
+ int HP_chr_map_received_ok_post;
+ int HP_chr_send_maps_pre;
+ int HP_chr_send_maps_post;
+ int HP_chr_parse_frommap_map_names_pre;
+ int HP_chr_parse_frommap_map_names_post;
+ int HP_chr_send_scdata_pre;
+ int HP_chr_send_scdata_post;
+ int HP_chr_parse_frommap_request_scdata_pre;
+ int HP_chr_parse_frommap_request_scdata_post;
+ int HP_chr_parse_frommap_set_users_count_pre;
+ int HP_chr_parse_frommap_set_users_count_post;
+ int HP_chr_parse_frommap_set_users_pre;
+ int HP_chr_parse_frommap_set_users_post;
+ int HP_chr_save_character_ack_pre;
+ int HP_chr_save_character_ack_post;
+ int HP_chr_parse_frommap_save_character_pre;
+ int HP_chr_parse_frommap_save_character_post;
+ int HP_chr_select_ack_pre;
+ int HP_chr_select_ack_post;
+ int HP_chr_parse_frommap_char_select_req_pre;
+ int HP_chr_parse_frommap_char_select_req_post;
+ int HP_chr_change_map_server_ack_pre;
+ int HP_chr_change_map_server_ack_post;
+ int HP_chr_parse_frommap_change_map_server_pre;
+ int HP_chr_parse_frommap_change_map_server_post;
+ int HP_chr_parse_frommap_remove_friend_pre;
+ int HP_chr_parse_frommap_remove_friend_post;
+ int HP_chr_char_name_ack_pre;
+ int HP_chr_char_name_ack_post;
+ int HP_chr_parse_frommap_char_name_request_pre;
+ int HP_chr_parse_frommap_char_name_request_post;
+ int HP_chr_parse_frommap_change_email_pre;
+ int HP_chr_parse_frommap_change_email_post;
+ int HP_chr_ban_pre;
+ int HP_chr_ban_post;
+ int HP_chr_unban_pre;
+ int HP_chr_unban_post;
+ int HP_chr_ask_name_ack_pre;
+ int HP_chr_ask_name_ack_post;
+ int HP_chr_parse_frommap_change_account_pre;
+ int HP_chr_parse_frommap_change_account_post;
+ int HP_chr_parse_frommap_fame_list_pre;
+ int HP_chr_parse_frommap_fame_list_post;
+ int HP_chr_parse_frommap_divorce_char_pre;
+ int HP_chr_parse_frommap_divorce_char_post;
+ int HP_chr_parse_frommap_ragsrvinfo_pre;
+ int HP_chr_parse_frommap_ragsrvinfo_post;
+ int HP_chr_parse_frommap_set_char_offline_pre;
+ int HP_chr_parse_frommap_set_char_offline_post;
+ int HP_chr_parse_frommap_set_all_offline_pre;
+ int HP_chr_parse_frommap_set_all_offline_post;
+ int HP_chr_parse_frommap_set_char_online_pre;
+ int HP_chr_parse_frommap_set_char_online_post;
+ int HP_chr_parse_frommap_build_fame_list_pre;
+ int HP_chr_parse_frommap_build_fame_list_post;
+ int HP_chr_parse_frommap_save_status_change_data_pre;
+ int HP_chr_parse_frommap_save_status_change_data_post;
+ int HP_chr_send_pong_pre;
+ int HP_chr_send_pong_post;
+ int HP_chr_parse_frommap_ping_pre;
+ int HP_chr_parse_frommap_ping_post;
+ int HP_chr_map_auth_ok_pre;
+ int HP_chr_map_auth_ok_post;
+ int HP_chr_map_auth_failed_pre;
+ int HP_chr_map_auth_failed_post;
+ int HP_chr_parse_frommap_auth_request_pre;
+ int HP_chr_parse_frommap_auth_request_post;
+ int HP_chr_parse_frommap_update_ip_pre;
+ int HP_chr_parse_frommap_update_ip_post;
+ int HP_chr_parse_frommap_request_stats_report_pre;
+ int HP_chr_parse_frommap_request_stats_report_post;
+ int HP_chr_parse_frommap_scdata_update_pre;
+ int HP_chr_parse_frommap_scdata_update_post;
+ int HP_chr_parse_frommap_scdata_delete_pre;
+ int HP_chr_parse_frommap_scdata_delete_post;
+ int HP_chr_parse_frommap_pre;
+ int HP_chr_parse_frommap_post;
+ int HP_chr_search_mapserver_pre;
+ int HP_chr_search_mapserver_post;
+ int HP_chr_mapif_init_pre;
+ int HP_chr_mapif_init_post;
+ int HP_chr_lan_subnetcheck_pre;
+ int HP_chr_lan_subnetcheck_post;
+ int HP_chr_delete2_ack_pre;
+ int HP_chr_delete2_ack_post;
+ int HP_chr_delete2_accept_actual_ack_pre;
+ int HP_chr_delete2_accept_actual_ack_post;
+ int HP_chr_delete2_accept_ack_pre;
+ int HP_chr_delete2_accept_ack_post;
+ int HP_chr_delete2_cancel_ack_pre;
+ int HP_chr_delete2_cancel_ack_post;
+ int HP_chr_delete2_req_pre;
+ int HP_chr_delete2_req_post;
+ int HP_chr_delete2_accept_pre;
+ int HP_chr_delete2_accept_post;
+ int HP_chr_delete2_cancel_pre;
+ int HP_chr_delete2_cancel_post;
+ int HP_chr_send_account_id_pre;
+ int HP_chr_send_account_id_post;
+ int HP_chr_parse_char_connect_pre;
+ int HP_chr_parse_char_connect_post;
+ int HP_chr_send_map_info_pre;
+ int HP_chr_send_map_info_post;
+ int HP_chr_send_wait_char_server_pre;
+ int HP_chr_send_wait_char_server_post;
+ int HP_chr_search_default_maps_mapserver_pre;
+ int HP_chr_search_default_maps_mapserver_post;
+ int HP_chr_parse_char_select_pre;
+ int HP_chr_parse_char_select_post;
+ int HP_chr_creation_failed_pre;
+ int HP_chr_creation_failed_post;
+ int HP_chr_creation_ok_pre;
+ int HP_chr_creation_ok_post;
+ int HP_chr_parse_char_create_new_char_pre;
+ int HP_chr_parse_char_create_new_char_post;
+ int HP_chr_delete_char_failed_pre;
+ int HP_chr_delete_char_failed_post;
+ int HP_chr_delete_char_ok_pre;
+ int HP_chr_delete_char_ok_post;
+ int HP_chr_parse_char_delete_char_pre;
+ int HP_chr_parse_char_delete_char_post;
+ int HP_chr_parse_char_ping_pre;
+ int HP_chr_parse_char_ping_post;
+ int HP_chr_allow_rename_pre;
+ int HP_chr_allow_rename_post;
+ int HP_chr_parse_char_rename_char_pre;
+ int HP_chr_parse_char_rename_char_post;
+ int HP_chr_parse_char_rename_char2_pre;
+ int HP_chr_parse_char_rename_char2_post;
+ int HP_chr_rename_char_ack_pre;
+ int HP_chr_rename_char_ack_post;
+ int HP_chr_parse_char_rename_char_confirm_pre;
+ int HP_chr_parse_char_rename_char_confirm_post;
+ int HP_chr_captcha_notsupported_pre;
+ int HP_chr_captcha_notsupported_post;
+ int HP_chr_parse_char_request_captcha_pre;
+ int HP_chr_parse_char_request_captcha_post;
+ int HP_chr_parse_char_check_captcha_pre;
+ int HP_chr_parse_char_check_captcha_post;
+ int HP_chr_parse_char_delete2_req_pre;
+ int HP_chr_parse_char_delete2_req_post;
+ int HP_chr_parse_char_delete2_accept_pre;
+ int HP_chr_parse_char_delete2_accept_post;
+ int HP_chr_parse_char_delete2_cancel_pre;
+ int HP_chr_parse_char_delete2_cancel_post;
+ int HP_chr_login_map_server_ack_pre;
+ int HP_chr_login_map_server_ack_post;
+ int HP_chr_parse_char_login_map_server_pre;
+ int HP_chr_parse_char_login_map_server_post;
+ int HP_chr_parse_char_pincode_check_pre;
+ int HP_chr_parse_char_pincode_check_post;
+ int HP_chr_parse_char_pincode_window_pre;
+ int HP_chr_parse_char_pincode_window_post;
+ int HP_chr_parse_char_pincode_change_pre;
+ int HP_chr_parse_char_pincode_change_post;
+ int HP_chr_parse_char_pincode_first_pin_pre;
+ int HP_chr_parse_char_pincode_first_pin_post;
+ int HP_chr_parse_char_request_chars_pre;
+ int HP_chr_parse_char_request_chars_post;
+ int HP_chr_change_character_slot_ack_pre;
+ int HP_chr_change_character_slot_ack_post;
+ int HP_chr_parse_char_move_character_pre;
+ int HP_chr_parse_char_move_character_post;
+ int HP_chr_parse_char_unknown_packet_pre;
+ int HP_chr_parse_char_unknown_packet_post;
+ int HP_chr_parse_char_pre;
+ int HP_chr_parse_char_post;
+ int HP_chr_broadcast_user_count_pre;
+ int HP_chr_broadcast_user_count_post;
+ int HP_chr_send_accounts_tologin_sub_pre;
+ int HP_chr_send_accounts_tologin_sub_post;
+ int HP_chr_send_accounts_tologin_pre;
+ int HP_chr_send_accounts_tologin_post;
+ int HP_chr_check_connect_login_server_pre;
+ int HP_chr_check_connect_login_server_post;
+ int HP_chr_online_data_cleanup_sub_pre;
+ int HP_chr_online_data_cleanup_sub_post;
+ int HP_chr_online_data_cleanup_pre;
+ int HP_chr_online_data_cleanup_post;
+ int HP_chr_lan_config_read_pre;
+ int HP_chr_lan_config_read_post;
+ int HP_chr_sql_config_read_pre;
+ int HP_chr_sql_config_read_post;
+ int HP_chr_config_dispatch_pre;
+ int HP_chr_config_dispatch_post;
+ int HP_chr_config_read_pre;
+ int HP_chr_config_read_post;
+ int HP_geoip_getcountry_pre;
+ int HP_geoip_getcountry_post;
+ int HP_geoip_final_pre;
+ int HP_geoip_final_post;
+ int HP_geoip_init_pre;
+ int HP_geoip_init_post;
+ int HP_inter_auction_count_pre;
+ int HP_inter_auction_count_post;
+ int HP_inter_auction_save_pre;
+ int HP_inter_auction_save_post;
+ int HP_inter_auction_create_pre;
+ int HP_inter_auction_create_post;
+ int HP_inter_auction_end_timer_pre;
+ int HP_inter_auction_end_timer_post;
+ int HP_inter_auction_delete__pre;
+ int HP_inter_auction_delete__post;
+ int HP_inter_auction_fromsql_pre;
+ int HP_inter_auction_fromsql_post;
+ int HP_inter_auction_parse_frommap_pre;
+ int HP_inter_auction_parse_frommap_post;
+ int HP_inter_auction_sql_init_pre;
+ int HP_inter_auction_sql_init_post;
+ int HP_inter_auction_sql_final_pre;
+ int HP_inter_auction_sql_final_post;
+ int HP_inter_elemental_sql_init_pre;
+ int HP_inter_elemental_sql_init_post;
+ int HP_inter_elemental_sql_final_pre;
+ int HP_inter_elemental_sql_final_post;
+ int HP_inter_elemental_parse_frommap_pre;
+ int HP_inter_elemental_parse_frommap_post;
+ int HP_inter_guild_save_timer_pre;
+ int HP_inter_guild_save_timer_post;
+ int HP_inter_guild_removemember_tosql_pre;
+ int HP_inter_guild_removemember_tosql_post;
+ int HP_inter_guild_tosql_pre;
+ int HP_inter_guild_tosql_post;
+ int HP_inter_guild_fromsql_pre;
+ int HP_inter_guild_fromsql_post;
+ int HP_inter_guild_castle_tosql_pre;
+ int HP_inter_guild_castle_tosql_post;
+ int HP_inter_guild_castle_fromsql_pre;
+ int HP_inter_guild_castle_fromsql_post;
+ int HP_inter_guild_exp_parse_row_pre;
+ int HP_inter_guild_exp_parse_row_post;
+ int HP_inter_guild_CharOnline_pre;
+ int HP_inter_guild_CharOnline_post;
+ int HP_inter_guild_CharOffline_pre;
+ int HP_inter_guild_CharOffline_post;
+ int HP_inter_guild_sql_init_pre;
+ int HP_inter_guild_sql_init_post;
+ int HP_inter_guild_db_final_pre;
+ int HP_inter_guild_db_final_post;
+ int HP_inter_guild_sql_final_pre;
+ int HP_inter_guild_sql_final_post;
+ int HP_inter_guild_search_guildname_pre;
+ int HP_inter_guild_search_guildname_post;
+ int HP_inter_guild_check_empty_pre;
+ int HP_inter_guild_check_empty_post;
+ int HP_inter_guild_nextexp_pre;
+ int HP_inter_guild_nextexp_post;
+ int HP_inter_guild_checkskill_pre;
+ int HP_inter_guild_checkskill_post;
+ int HP_inter_guild_calcinfo_pre;
+ int HP_inter_guild_calcinfo_post;
+ int HP_inter_guild_sex_changed_pre;
+ int HP_inter_guild_sex_changed_post;
+ int HP_inter_guild_charname_changed_pre;
+ int HP_inter_guild_charname_changed_post;
+ int HP_inter_guild_parse_frommap_pre;
+ int HP_inter_guild_parse_frommap_post;
+ int HP_inter_guild_leave_pre;
+ int HP_inter_guild_leave_post;
+ int HP_inter_guild_broken_pre;
+ int HP_inter_guild_broken_post;
+ int HP_inter_homunculus_sql_init_pre;
+ int HP_inter_homunculus_sql_init_post;
+ int HP_inter_homunculus_sql_final_pre;
+ int HP_inter_homunculus_sql_final_post;
+ int HP_inter_homunculus_parse_frommap_pre;
+ int HP_inter_homunculus_parse_frommap_post;
+ int HP_inter_msg_txt_pre;
+ int HP_inter_msg_txt_post;
+ int HP_inter_msg_config_read_pre;
+ int HP_inter_msg_config_read_post;
+ int HP_inter_do_final_msg_pre;
+ int HP_inter_do_final_msg_post;
+ int HP_inter_job_name_pre;
+ int HP_inter_job_name_post;
+ int HP_inter_vmsg_to_fd_pre;
+ int HP_inter_vmsg_to_fd_post;
+ int HP_inter_savereg_pre;
+ int HP_inter_savereg_post;
+ int HP_inter_accreg_fromsql_pre;
+ int HP_inter_accreg_fromsql_post;
+ int HP_inter_config_read_pre;
+ int HP_inter_config_read_post;
+ int HP_inter_vlog_pre;
+ int HP_inter_vlog_post;
+ int HP_inter_init_sql_pre;
+ int HP_inter_init_sql_post;
+ int HP_inter_mapif_init_pre;
+ int HP_inter_mapif_init_post;
+ int HP_inter_check_ttl_wisdata_sub_pre;
+ int HP_inter_check_ttl_wisdata_sub_post;
+ int HP_inter_check_ttl_wisdata_pre;
+ int HP_inter_check_ttl_wisdata_post;
+ int HP_inter_check_length_pre;
+ int HP_inter_check_length_post;
+ int HP_inter_parse_frommap_pre;
+ int HP_inter_parse_frommap_post;
+ int HP_inter_final_pre;
+ int HP_inter_final_post;
+ int HP_inter_mail_sql_init_pre;
+ int HP_inter_mail_sql_init_post;
+ int HP_inter_mail_sql_final_pre;
+ int HP_inter_mail_sql_final_post;
+ int HP_inter_mail_parse_frommap_pre;
+ int HP_inter_mail_parse_frommap_post;
+ int HP_inter_mail_fromsql_pre;
+ int HP_inter_mail_fromsql_post;
+ int HP_inter_mail_savemessage_pre;
+ int HP_inter_mail_savemessage_post;
+ int HP_inter_mail_loadmessage_pre;
+ int HP_inter_mail_loadmessage_post;
+ int HP_inter_mail_DeleteAttach_pre;
+ int HP_inter_mail_DeleteAttach_post;
+ int HP_inter_mail_sendmail_pre;
+ int HP_inter_mail_sendmail_post;
+ int HP_inter_mercenary_owner_fromsql_pre;
+ int HP_inter_mercenary_owner_fromsql_post;
+ int HP_inter_mercenary_owner_tosql_pre;
+ int HP_inter_mercenary_owner_tosql_post;
+ int HP_inter_mercenary_owner_delete_pre;
+ int HP_inter_mercenary_owner_delete_post;
+ int HP_inter_mercenary_sql_init_pre;
+ int HP_inter_mercenary_sql_init_post;
+ int HP_inter_mercenary_sql_final_pre;
+ int HP_inter_mercenary_sql_final_post;
+ int HP_inter_mercenary_parse_frommap_pre;
+ int HP_inter_mercenary_parse_frommap_post;
+ int HP_inter_party_check_lv_pre;
+ int HP_inter_party_check_lv_post;
+ int HP_inter_party_calc_state_pre;
+ int HP_inter_party_calc_state_post;
+ int HP_inter_party_tosql_pre;
+ int HP_inter_party_tosql_post;
+ int HP_inter_party_fromsql_pre;
+ int HP_inter_party_fromsql_post;
+ int HP_inter_party_sql_init_pre;
+ int HP_inter_party_sql_init_post;
+ int HP_inter_party_sql_final_pre;
+ int HP_inter_party_sql_final_post;
+ int HP_inter_party_search_partyname_pre;
+ int HP_inter_party_search_partyname_post;
+ int HP_inter_party_check_exp_share_pre;
+ int HP_inter_party_check_exp_share_post;
+ int HP_inter_party_check_empty_pre;
+ int HP_inter_party_check_empty_post;
+ int HP_inter_party_parse_frommap_pre;
+ int HP_inter_party_parse_frommap_post;
+ int HP_inter_party_leave_pre;
+ int HP_inter_party_leave_post;
+ int HP_inter_party_CharOnline_pre;
+ int HP_inter_party_CharOnline_post;
+ int HP_inter_party_CharOffline_pre;
+ int HP_inter_party_CharOffline_post;
+ int HP_inter_pet_tosql_pre;
+ int HP_inter_pet_tosql_post;
+ int HP_inter_pet_fromsql_pre;
+ int HP_inter_pet_fromsql_post;
+ int HP_inter_pet_sql_init_pre;
+ int HP_inter_pet_sql_init_post;
+ int HP_inter_pet_sql_final_pre;
+ int HP_inter_pet_sql_final_post;
+ int HP_inter_pet_delete__pre;
+ int HP_inter_pet_delete__post;
+ int HP_inter_pet_parse_frommap_pre;
+ int HP_inter_pet_parse_frommap_post;
+ int HP_inter_quest_parse_frommap_pre;
+ int HP_inter_quest_parse_frommap_post;
+ int HP_inter_storage_tosql_pre;
+ int HP_inter_storage_tosql_post;
+ int HP_inter_storage_fromsql_pre;
+ int HP_inter_storage_fromsql_post;
+ int HP_inter_storage_guild_storage_tosql_pre;
+ int HP_inter_storage_guild_storage_tosql_post;
+ int HP_inter_storage_guild_storage_fromsql_pre;
+ int HP_inter_storage_guild_storage_fromsql_post;
+ int HP_inter_storage_sql_init_pre;
+ int HP_inter_storage_sql_init_post;
+ int HP_inter_storage_sql_final_pre;
+ int HP_inter_storage_sql_final_post;
+ int HP_inter_storage_delete__pre;
+ int HP_inter_storage_delete__post;
+ int HP_inter_storage_guild_storage_delete_pre;
+ int HP_inter_storage_guild_storage_delete_post;
+ int HP_inter_storage_parse_frommap_pre;
+ int HP_inter_storage_parse_frommap_post;
+ int HP_loginif_init_pre;
+ int HP_loginif_init_post;
+ int HP_loginif_final_pre;
+ int HP_loginif_final_post;
+ int HP_loginif_reset_pre;
+ int HP_loginif_reset_post;
+ int HP_loginif_check_shutdown_pre;
+ int HP_loginif_check_shutdown_post;
+ int HP_loginif_on_disconnect_pre;
+ int HP_loginif_on_disconnect_post;
+ int HP_loginif_on_ready_pre;
+ int HP_loginif_on_ready_post;
+ int HP_loginif_block_account_pre;
+ int HP_loginif_block_account_post;
+ int HP_loginif_ban_account_pre;
+ int HP_loginif_ban_account_post;
+ int HP_loginif_unban_account_pre;
+ int HP_loginif_unban_account_post;
+ int HP_loginif_changesex_pre;
+ int HP_loginif_changesex_post;
+ int HP_loginif_auth_pre;
+ int HP_loginif_auth_post;
+ int HP_loginif_send_users_count_pre;
+ int HP_loginif_send_users_count_post;
+ int HP_loginif_connect_to_server_pre;
+ int HP_loginif_connect_to_server_post;
+ int HP_mapif_ban_pre;
+ int HP_mapif_ban_post;
+ int HP_mapif_server_init_pre;
+ int HP_mapif_server_init_post;
+ int HP_mapif_server_destroy_pre;
+ int HP_mapif_server_destroy_post;
+ int HP_mapif_server_reset_pre;
+ int HP_mapif_server_reset_post;
+ int HP_mapif_on_disconnect_pre;
+ int HP_mapif_on_disconnect_post;
+ int HP_mapif_on_parse_accinfo_pre;
+ int HP_mapif_on_parse_accinfo_post;
+ int HP_mapif_char_ban_pre;
+ int HP_mapif_char_ban_post;
+ int HP_mapif_sendall_pre;
+ int HP_mapif_sendall_post;
+ int HP_mapif_sendallwos_pre;
+ int HP_mapif_sendallwos_post;
+ int HP_mapif_send_pre;
+ int HP_mapif_send_post;
+ int HP_mapif_send_users_count_pre;
+ int HP_mapif_send_users_count_post;
+ int HP_mapif_auction_message_pre;
+ int HP_mapif_auction_message_post;
+ int HP_mapif_auction_sendlist_pre;
+ int HP_mapif_auction_sendlist_post;
+ int HP_mapif_parse_auction_requestlist_pre;
+ int HP_mapif_parse_auction_requestlist_post;
+ int HP_mapif_auction_register_pre;
+ int HP_mapif_auction_register_post;
+ int HP_mapif_parse_auction_register_pre;
+ int HP_mapif_parse_auction_register_post;
+ int HP_mapif_auction_cancel_pre;
+ int HP_mapif_auction_cancel_post;
+ int HP_mapif_parse_auction_cancel_pre;
+ int HP_mapif_parse_auction_cancel_post;
+ int HP_mapif_auction_close_pre;
+ int HP_mapif_auction_close_post;
+ int HP_mapif_parse_auction_close_pre;
+ int HP_mapif_parse_auction_close_post;
+ int HP_mapif_auction_bid_pre;
+ int HP_mapif_auction_bid_post;
+ int HP_mapif_parse_auction_bid_pre;
+ int HP_mapif_parse_auction_bid_post;
+ int HP_mapif_elemental_save_pre;
+ int HP_mapif_elemental_save_post;
+ int HP_mapif_elemental_load_pre;
+ int HP_mapif_elemental_load_post;
+ int HP_mapif_elemental_delete_pre;
+ int HP_mapif_elemental_delete_post;
+ int HP_mapif_elemental_send_pre;
+ int HP_mapif_elemental_send_post;
+ int HP_mapif_parse_elemental_create_pre;
+ int HP_mapif_parse_elemental_create_post;
+ int HP_mapif_parse_elemental_load_pre;
+ int HP_mapif_parse_elemental_load_post;
+ int HP_mapif_elemental_deleted_pre;
+ int HP_mapif_elemental_deleted_post;
+ int HP_mapif_parse_elemental_delete_pre;
+ int HP_mapif_parse_elemental_delete_post;
+ int HP_mapif_elemental_saved_pre;
+ int HP_mapif_elemental_saved_post;
+ int HP_mapif_parse_elemental_save_pre;
+ int HP_mapif_parse_elemental_save_post;
+ int HP_mapif_guild_created_pre;
+ int HP_mapif_guild_created_post;
+ int HP_mapif_guild_noinfo_pre;
+ int HP_mapif_guild_noinfo_post;
+ int HP_mapif_guild_info_pre;
+ int HP_mapif_guild_info_post;
+ int HP_mapif_guild_memberadded_pre;
+ int HP_mapif_guild_memberadded_post;
+ int HP_mapif_guild_withdraw_pre;
+ int HP_mapif_guild_withdraw_post;
+ int HP_mapif_guild_memberinfoshort_pre;
+ int HP_mapif_guild_memberinfoshort_post;
+ int HP_mapif_guild_broken_pre;
+ int HP_mapif_guild_broken_post;
+ int HP_mapif_guild_message_pre;
+ int HP_mapif_guild_message_post;
+ int HP_mapif_guild_basicinfochanged_pre;
+ int HP_mapif_guild_basicinfochanged_post;
+ int HP_mapif_guild_memberinfochanged_pre;
+ int HP_mapif_guild_memberinfochanged_post;
+ int HP_mapif_guild_skillupack_pre;
+ int HP_mapif_guild_skillupack_post;
+ int HP_mapif_guild_alliance_pre;
+ int HP_mapif_guild_alliance_post;
+ int HP_mapif_guild_position_pre;
+ int HP_mapif_guild_position_post;
+ int HP_mapif_guild_notice_pre;
+ int HP_mapif_guild_notice_post;
+ int HP_mapif_guild_emblem_pre;
+ int HP_mapif_guild_emblem_post;
+ int HP_mapif_guild_master_changed_pre;
+ int HP_mapif_guild_master_changed_post;
+ int HP_mapif_guild_castle_dataload_pre;
+ int HP_mapif_guild_castle_dataload_post;
+ int HP_mapif_parse_CreateGuild_pre;
+ int HP_mapif_parse_CreateGuild_post;
+ int HP_mapif_parse_GuildInfo_pre;
+ int HP_mapif_parse_GuildInfo_post;
+ int HP_mapif_parse_GuildAddMember_pre;
+ int HP_mapif_parse_GuildAddMember_post;
+ int HP_mapif_parse_GuildLeave_pre;
+ int HP_mapif_parse_GuildLeave_post;
+ int HP_mapif_parse_GuildChangeMemberInfoShort_pre;
+ int HP_mapif_parse_GuildChangeMemberInfoShort_post;
+ int HP_mapif_parse_BreakGuild_pre;
+ int HP_mapif_parse_BreakGuild_post;
+ int HP_mapif_parse_GuildMessage_pre;
+ int HP_mapif_parse_GuildMessage_post;
+ int HP_mapif_parse_GuildBasicInfoChange_pre;
+ int HP_mapif_parse_GuildBasicInfoChange_post;
+ int HP_mapif_parse_GuildMemberInfoChange_pre;
+ int HP_mapif_parse_GuildMemberInfoChange_post;
+ int HP_mapif_parse_GuildPosition_pre;
+ int HP_mapif_parse_GuildPosition_post;
+ int HP_mapif_parse_GuildSkillUp_pre;
+ int HP_mapif_parse_GuildSkillUp_post;
+ int HP_mapif_parse_GuildDeleteAlliance_pre;
+ int HP_mapif_parse_GuildDeleteAlliance_post;
+ int HP_mapif_parse_GuildAlliance_pre;
+ int HP_mapif_parse_GuildAlliance_post;
+ int HP_mapif_parse_GuildNotice_pre;
+ int HP_mapif_parse_GuildNotice_post;
+ int HP_mapif_parse_GuildEmblem_pre;
+ int HP_mapif_parse_GuildEmblem_post;
+ int HP_mapif_parse_GuildCastleDataLoad_pre;
+ int HP_mapif_parse_GuildCastleDataLoad_post;
+ int HP_mapif_parse_GuildCastleDataSave_pre;
+ int HP_mapif_parse_GuildCastleDataSave_post;
+ int HP_mapif_parse_GuildMasterChange_pre;
+ int HP_mapif_parse_GuildMasterChange_post;
+ int HP_mapif_homunculus_created_pre;
+ int HP_mapif_homunculus_created_post;
+ int HP_mapif_homunculus_deleted_pre;
+ int HP_mapif_homunculus_deleted_post;
+ int HP_mapif_homunculus_loaded_pre;
+ int HP_mapif_homunculus_loaded_post;
+ int HP_mapif_homunculus_saved_pre;
+ int HP_mapif_homunculus_saved_post;
+ int HP_mapif_homunculus_renamed_pre;
+ int HP_mapif_homunculus_renamed_post;
+ int HP_mapif_homunculus_save_pre;
+ int HP_mapif_homunculus_save_post;
+ int HP_mapif_homunculus_load_pre;
+ int HP_mapif_homunculus_load_post;
+ int HP_mapif_homunculus_delete_pre;
+ int HP_mapif_homunculus_delete_post;
+ int HP_mapif_homunculus_rename_pre;
+ int HP_mapif_homunculus_rename_post;
+ int HP_mapif_parse_homunculus_create_pre;
+ int HP_mapif_parse_homunculus_create_post;
+ int HP_mapif_parse_homunculus_delete_pre;
+ int HP_mapif_parse_homunculus_delete_post;
+ int HP_mapif_parse_homunculus_load_pre;
+ int HP_mapif_parse_homunculus_load_post;
+ int HP_mapif_parse_homunculus_save_pre;
+ int HP_mapif_parse_homunculus_save_post;
+ int HP_mapif_parse_homunculus_rename_pre;
+ int HP_mapif_parse_homunculus_rename_post;
+ int HP_mapif_mail_sendinbox_pre;
+ int HP_mapif_mail_sendinbox_post;
+ int HP_mapif_parse_mail_requestinbox_pre;
+ int HP_mapif_parse_mail_requestinbox_post;
+ int HP_mapif_parse_mail_read_pre;
+ int HP_mapif_parse_mail_read_post;
+ int HP_mapif_mail_sendattach_pre;
+ int HP_mapif_mail_sendattach_post;
+ int HP_mapif_mail_getattach_pre;
+ int HP_mapif_mail_getattach_post;
+ int HP_mapif_parse_mail_getattach_pre;
+ int HP_mapif_parse_mail_getattach_post;
+ int HP_mapif_mail_delete_pre;
+ int HP_mapif_mail_delete_post;
+ int HP_mapif_parse_mail_delete_pre;
+ int HP_mapif_parse_mail_delete_post;
+ int HP_mapif_mail_new_pre;
+ int HP_mapif_mail_new_post;
+ int HP_mapif_mail_return_pre;
+ int HP_mapif_mail_return_post;
+ int HP_mapif_parse_mail_return_pre;
+ int HP_mapif_parse_mail_return_post;
+ int HP_mapif_mail_send_pre;
+ int HP_mapif_mail_send_post;
+ int HP_mapif_parse_mail_send_pre;
+ int HP_mapif_parse_mail_send_post;
+ int HP_mapif_mercenary_save_pre;
+ int HP_mapif_mercenary_save_post;
+ int HP_mapif_mercenary_load_pre;
+ int HP_mapif_mercenary_load_post;
+ int HP_mapif_mercenary_delete_pre;
+ int HP_mapif_mercenary_delete_post;
+ int HP_mapif_mercenary_send_pre;
+ int HP_mapif_mercenary_send_post;
+ int HP_mapif_parse_mercenary_create_pre;
+ int HP_mapif_parse_mercenary_create_post;
+ int HP_mapif_parse_mercenary_load_pre;
+ int HP_mapif_parse_mercenary_load_post;
+ int HP_mapif_mercenary_deleted_pre;
+ int HP_mapif_mercenary_deleted_post;
+ int HP_mapif_parse_mercenary_delete_pre;
+ int HP_mapif_parse_mercenary_delete_post;
+ int HP_mapif_mercenary_saved_pre;
+ int HP_mapif_mercenary_saved_post;
+ int HP_mapif_parse_mercenary_save_pre;
+ int HP_mapif_parse_mercenary_save_post;
+ int HP_mapif_party_created_pre;
+ int HP_mapif_party_created_post;
+ int HP_mapif_party_noinfo_pre;
+ int HP_mapif_party_noinfo_post;
+ int HP_mapif_party_info_pre;
+ int HP_mapif_party_info_post;
+ int HP_mapif_party_memberadded_pre;
+ int HP_mapif_party_memberadded_post;
+ int HP_mapif_party_optionchanged_pre;
+ int HP_mapif_party_optionchanged_post;
+ int HP_mapif_party_withdraw_pre;
+ int HP_mapif_party_withdraw_post;
+ int HP_mapif_party_membermoved_pre;
+ int HP_mapif_party_membermoved_post;
+ int HP_mapif_party_broken_pre;
+ int HP_mapif_party_broken_post;
+ int HP_mapif_party_message_pre;
+ int HP_mapif_party_message_post;
+ int HP_mapif_parse_CreateParty_pre;
+ int HP_mapif_parse_CreateParty_post;
+ int HP_mapif_parse_PartyInfo_pre;
+ int HP_mapif_parse_PartyInfo_post;
+ int HP_mapif_parse_PartyAddMember_pre;
+ int HP_mapif_parse_PartyAddMember_post;
+ int HP_mapif_parse_PartyChangeOption_pre;
+ int HP_mapif_parse_PartyChangeOption_post;
+ int HP_mapif_parse_PartyLeave_pre;
+ int HP_mapif_parse_PartyLeave_post;
+ int HP_mapif_parse_PartyChangeMap_pre;
+ int HP_mapif_parse_PartyChangeMap_post;
+ int HP_mapif_parse_BreakParty_pre;
+ int HP_mapif_parse_BreakParty_post;
+ int HP_mapif_parse_PartyMessage_pre;
+ int HP_mapif_parse_PartyMessage_post;
+ int HP_mapif_parse_PartyLeaderChange_pre;
+ int HP_mapif_parse_PartyLeaderChange_post;
+ int HP_mapif_pet_created_pre;
+ int HP_mapif_pet_created_post;
+ int HP_mapif_pet_info_pre;
+ int HP_mapif_pet_info_post;
+ int HP_mapif_pet_noinfo_pre;
+ int HP_mapif_pet_noinfo_post;
+ int HP_mapif_save_pet_ack_pre;
+ int HP_mapif_save_pet_ack_post;
+ int HP_mapif_delete_pet_ack_pre;
+ int HP_mapif_delete_pet_ack_post;
+ int HP_mapif_create_pet_pre;
+ int HP_mapif_create_pet_post;
+ int HP_mapif_load_pet_pre;
+ int HP_mapif_load_pet_post;
+ int HP_mapif_save_pet_pre;
+ int HP_mapif_save_pet_post;
+ int HP_mapif_delete_pet_pre;
+ int HP_mapif_delete_pet_post;
+ int HP_mapif_parse_CreatePet_pre;
+ int HP_mapif_parse_CreatePet_post;
+ int HP_mapif_parse_LoadPet_pre;
+ int HP_mapif_parse_LoadPet_post;
+ int HP_mapif_parse_SavePet_pre;
+ int HP_mapif_parse_SavePet_post;
+ int HP_mapif_parse_DeletePet_pre;
+ int HP_mapif_parse_DeletePet_post;
+ int HP_mapif_quests_fromsql_pre;
+ int HP_mapif_quests_fromsql_post;
+ int HP_mapif_quest_delete_pre;
+ int HP_mapif_quest_delete_post;
+ int HP_mapif_quest_add_pre;
+ int HP_mapif_quest_add_post;
+ int HP_mapif_quest_update_pre;
+ int HP_mapif_quest_update_post;
+ int HP_mapif_quest_save_ack_pre;
+ int HP_mapif_quest_save_ack_post;
+ int HP_mapif_parse_quest_save_pre;
+ int HP_mapif_parse_quest_save_post;
+ int HP_mapif_send_quests_pre;
+ int HP_mapif_send_quests_post;
+ int HP_mapif_parse_quest_load_pre;
+ int HP_mapif_parse_quest_load_post;
+ int HP_mapif_load_guild_storage_pre;
+ int HP_mapif_load_guild_storage_post;
+ int HP_mapif_save_guild_storage_ack_pre;
+ int HP_mapif_save_guild_storage_ack_post;
+ int HP_mapif_parse_LoadGuildStorage_pre;
+ int HP_mapif_parse_LoadGuildStorage_post;
+ int HP_mapif_parse_SaveGuildStorage_pre;
+ int HP_mapif_parse_SaveGuildStorage_post;
+ int HP_mapif_itembound_ack_pre;
+ int HP_mapif_itembound_ack_post;
+ int HP_mapif_parse_ItemBoundRetrieve_sub_pre;
+ int HP_mapif_parse_ItemBoundRetrieve_sub_post;
+ int HP_mapif_parse_ItemBoundRetrieve_pre;
+ int HP_mapif_parse_ItemBoundRetrieve_post;
+ int HP_mapif_parse_accinfo_pre;
+ int HP_mapif_parse_accinfo_post;
+ int HP_mapif_parse_accinfo2_pre;
+ int HP_mapif_parse_accinfo2_post;
+ int HP_mapif_broadcast_pre;
+ int HP_mapif_broadcast_post;
+ int HP_mapif_wis_message_pre;
+ int HP_mapif_wis_message_post;
+ int HP_mapif_wis_response_pre;
+ int HP_mapif_wis_response_post;
+ int HP_mapif_wis_end_pre;
+ int HP_mapif_wis_end_post;
+ int HP_mapif_account_reg_reply_pre;
+ int HP_mapif_account_reg_reply_post;
+ int HP_mapif_disconnectplayer_pre;
+ int HP_mapif_disconnectplayer_post;
+ int HP_mapif_parse_broadcast_pre;
+ int HP_mapif_parse_broadcast_post;
+ int HP_mapif_parse_WisRequest_pre;
+ int HP_mapif_parse_WisRequest_post;
+ int HP_mapif_parse_WisReply_pre;
+ int HP_mapif_parse_WisReply_post;
+ int HP_mapif_parse_WisToGM_pre;
+ int HP_mapif_parse_WisToGM_post;
+ int HP_mapif_parse_Registry_pre;
+ int HP_mapif_parse_Registry_post;
+ int HP_mapif_parse_RegistryRequest_pre;
+ int HP_mapif_parse_RegistryRequest_post;
+ int HP_mapif_namechange_ack_pre;
+ int HP_mapif_namechange_ack_post;
+ int HP_mapif_parse_NameChangeRequest_pre;
+ int HP_mapif_parse_NameChangeRequest_post;
+ int HP_pincode_handle_pre;
+ int HP_pincode_handle_post;
+ int HP_pincode_decrypt_pre;
+ int HP_pincode_decrypt_post;
+ int HP_pincode_error_pre;
+ int HP_pincode_error_post;
+ int HP_pincode_update_pre;
+ int HP_pincode_update_post;
+ int HP_pincode_sendstate_pre;
+ int HP_pincode_sendstate_post;
+ int HP_pincode_setnew_pre;
+ int HP_pincode_setnew_post;
+ int HP_pincode_change_pre;
+ int HP_pincode_change_post;
+ int HP_pincode_compare_pre;
+ int HP_pincode_compare_post;
+ int HP_pincode_check_pre;
+ int HP_pincode_check_post;
+ int HP_pincode_config_read_pre;
+ int HP_pincode_config_read_post;
+} count;
+
+struct {
+ struct char_interface chr;
+ struct geoip_interface geoip;
+ struct inter_auction_interface inter_auction;
+ struct inter_elemental_interface inter_elemental;
+ struct inter_guild_interface inter_guild;
+ struct inter_homunculus_interface inter_homunculus;
+ struct inter_interface inter;
+ struct inter_mail_interface inter_mail;
+ struct inter_mercenary_interface inter_mercenary;
+ struct inter_party_interface inter_party;
+ struct inter_pet_interface inter_pet;
+ struct inter_quest_interface inter_quest;
+ struct inter_storage_interface inter_storage;
+ struct loginif_interface loginif;
+ struct mapif_interface mapif;
+ struct pincode_interface pincode;
+} source;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
new file mode 100644
index 000000000..aa279dbb4
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
@@ -0,0 +1,472 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+struct HookingPointData HookingPoints[] = {
+/* chr */
+ { HP_POP(chr->waiting_disconnect, HP_chr_waiting_disconnect) },
+ { HP_POP(chr->delete_char_sql, HP_chr_delete_char_sql) },
+ { HP_POP(chr->create_online_char_data, HP_chr_create_online_char_data) },
+ { HP_POP(chr->set_account_online, HP_chr_set_account_online) },
+ { HP_POP(chr->set_account_offline, HP_chr_set_account_offline) },
+ { HP_POP(chr->set_char_charselect, HP_chr_set_char_charselect) },
+ { HP_POP(chr->set_char_online, HP_chr_set_char_online) },
+ { HP_POP(chr->set_char_offline, HP_chr_set_char_offline) },
+ { HP_POP(chr->db_setoffline, HP_chr_db_setoffline) },
+ { HP_POP(chr->db_kickoffline, HP_chr_db_kickoffline) },
+ { HP_POP(chr->set_login_all_offline, HP_chr_set_login_all_offline) },
+ { HP_POP(chr->set_all_offline, HP_chr_set_all_offline) },
+ { HP_POP(chr->set_all_offline_sql, HP_chr_set_all_offline_sql) },
+ { HP_POP(chr->create_charstatus, HP_chr_create_charstatus) },
+ { HP_POP(chr->mmo_char_tosql, HP_chr_mmo_char_tosql) },
+ { HP_POP(chr->memitemdata_to_sql, HP_chr_memitemdata_to_sql) },
+ { HP_POP(chr->inventory_to_sql, HP_chr_inventory_to_sql) },
+ { HP_POP(chr->mmo_chars_fromsql, HP_chr_mmo_chars_fromsql) },
+ { HP_POP(chr->mmo_char_fromsql, HP_chr_mmo_char_fromsql) },
+ { HP_POP(chr->mmo_char_sql_init, HP_chr_mmo_char_sql_init) },
+ { HP_POP(chr->char_slotchange, HP_chr_char_slotchange) },
+ { HP_POP(chr->rename_char_sql, HP_chr_rename_char_sql) },
+ { HP_POP(chr->check_char_name, HP_chr_check_char_name) },
+ { HP_POP(chr->make_new_char_sql, HP_chr_make_new_char_sql) },
+ { HP_POP(chr->divorce_char_sql, HP_chr_divorce_char_sql) },
+ { HP_POP(chr->count_users, HP_chr_count_users) },
+ { HP_POP(chr->mmo_char_tobuf, HP_chr_mmo_char_tobuf) },
+ { HP_POP(chr->mmo_char_send099d, HP_chr_mmo_char_send099d) },
+ { HP_POP(chr->mmo_char_send_ban_list, HP_chr_mmo_char_send_ban_list) },
+ { HP_POP(chr->mmo_char_send_slots_info, HP_chr_mmo_char_send_slots_info) },
+ { HP_POP(chr->mmo_char_send_characters, HP_chr_mmo_char_send_characters) },
+ { HP_POP(chr->char_married, HP_chr_char_married) },
+ { HP_POP(chr->char_child, HP_chr_char_child) },
+ { HP_POP(chr->char_family, HP_chr_char_family) },
+ { HP_POP(chr->disconnect_player, HP_chr_disconnect_player) },
+ { HP_POP(chr->authfail_fd, HP_chr_authfail_fd) },
+ { HP_POP(chr->request_account_data, HP_chr_request_account_data) },
+ { HP_POP(chr->auth_ok, HP_chr_auth_ok) },
+ { HP_POP(chr->ping_login_server, HP_chr_ping_login_server) },
+ { HP_POP(chr->parse_fromlogin_connection_state, HP_chr_parse_fromlogin_connection_state) },
+ { HP_POP(chr->auth_error, HP_chr_auth_error) },
+ { HP_POP(chr->parse_fromlogin_auth_state, HP_chr_parse_fromlogin_auth_state) },
+ { HP_POP(chr->parse_fromlogin_account_data, HP_chr_parse_fromlogin_account_data) },
+ { HP_POP(chr->parse_fromlogin_login_pong, HP_chr_parse_fromlogin_login_pong) },
+ { HP_POP(chr->changesex, HP_chr_changesex) },
+ { HP_POP(chr->parse_fromlogin_changesex_reply, HP_chr_parse_fromlogin_changesex_reply) },
+ { HP_POP(chr->parse_fromlogin_account_reg2, HP_chr_parse_fromlogin_account_reg2) },
+ { HP_POP(chr->parse_fromlogin_ban, HP_chr_parse_fromlogin_ban) },
+ { HP_POP(chr->parse_fromlogin_kick, HP_chr_parse_fromlogin_kick) },
+ { HP_POP(chr->update_ip, HP_chr_update_ip) },
+ { HP_POP(chr->parse_fromlogin_update_ip, HP_chr_parse_fromlogin_update_ip) },
+ { HP_POP(chr->parse_fromlogin_accinfo2_failed, HP_chr_parse_fromlogin_accinfo2_failed) },
+ { HP_POP(chr->parse_fromlogin_accinfo2_ok, HP_chr_parse_fromlogin_accinfo2_ok) },
+ { HP_POP(chr->parse_fromlogin, HP_chr_parse_fromlogin) },
+ { HP_POP(chr->request_accreg2, HP_chr_request_accreg2) },
+ { HP_POP(chr->global_accreg_to_login_start, HP_chr_global_accreg_to_login_start) },
+ { HP_POP(chr->global_accreg_to_login_send, HP_chr_global_accreg_to_login_send) },
+ { HP_POP(chr->global_accreg_to_login_add, HP_chr_global_accreg_to_login_add) },
+ { HP_POP(chr->read_fame_list, HP_chr_read_fame_list) },
+ { HP_POP(chr->send_fame_list, HP_chr_send_fame_list) },
+ { HP_POP(chr->update_fame_list, HP_chr_update_fame_list) },
+ { HP_POP(chr->loadName, HP_chr_loadName) },
+ { HP_POP(chr->parse_frommap_datasync, HP_chr_parse_frommap_datasync) },
+ { HP_POP(chr->parse_frommap_skillid2idx, HP_chr_parse_frommap_skillid2idx) },
+ { HP_POP(chr->map_received_ok, HP_chr_map_received_ok) },
+ { HP_POP(chr->send_maps, HP_chr_send_maps) },
+ { HP_POP(chr->parse_frommap_map_names, HP_chr_parse_frommap_map_names) },
+ { HP_POP(chr->send_scdata, HP_chr_send_scdata) },
+ { HP_POP(chr->parse_frommap_request_scdata, HP_chr_parse_frommap_request_scdata) },
+ { HP_POP(chr->parse_frommap_set_users_count, HP_chr_parse_frommap_set_users_count) },
+ { HP_POP(chr->parse_frommap_set_users, HP_chr_parse_frommap_set_users) },
+ { HP_POP(chr->save_character_ack, HP_chr_save_character_ack) },
+ { HP_POP(chr->parse_frommap_save_character, HP_chr_parse_frommap_save_character) },
+ { HP_POP(chr->select_ack, HP_chr_select_ack) },
+ { HP_POP(chr->parse_frommap_char_select_req, HP_chr_parse_frommap_char_select_req) },
+ { HP_POP(chr->change_map_server_ack, HP_chr_change_map_server_ack) },
+ { HP_POP(chr->parse_frommap_change_map_server, HP_chr_parse_frommap_change_map_server) },
+ { HP_POP(chr->parse_frommap_remove_friend, HP_chr_parse_frommap_remove_friend) },
+ { HP_POP(chr->char_name_ack, HP_chr_char_name_ack) },
+ { HP_POP(chr->parse_frommap_char_name_request, HP_chr_parse_frommap_char_name_request) },
+ { HP_POP(chr->parse_frommap_change_email, HP_chr_parse_frommap_change_email) },
+ { HP_POP(chr->ban, HP_chr_ban) },
+ { HP_POP(chr->unban, HP_chr_unban) },
+ { HP_POP(chr->ask_name_ack, HP_chr_ask_name_ack) },
+ { HP_POP(chr->parse_frommap_change_account, HP_chr_parse_frommap_change_account) },
+ { HP_POP(chr->parse_frommap_fame_list, HP_chr_parse_frommap_fame_list) },
+ { HP_POP(chr->parse_frommap_divorce_char, HP_chr_parse_frommap_divorce_char) },
+ { HP_POP(chr->parse_frommap_ragsrvinfo, HP_chr_parse_frommap_ragsrvinfo) },
+ { HP_POP(chr->parse_frommap_set_char_offline, HP_chr_parse_frommap_set_char_offline) },
+ { HP_POP(chr->parse_frommap_set_all_offline, HP_chr_parse_frommap_set_all_offline) },
+ { HP_POP(chr->parse_frommap_set_char_online, HP_chr_parse_frommap_set_char_online) },
+ { HP_POP(chr->parse_frommap_build_fame_list, HP_chr_parse_frommap_build_fame_list) },
+ { HP_POP(chr->parse_frommap_save_status_change_data, HP_chr_parse_frommap_save_status_change_data) },
+ { HP_POP(chr->send_pong, HP_chr_send_pong) },
+ { HP_POP(chr->parse_frommap_ping, HP_chr_parse_frommap_ping) },
+ { HP_POP(chr->map_auth_ok, HP_chr_map_auth_ok) },
+ { HP_POP(chr->map_auth_failed, HP_chr_map_auth_failed) },
+ { HP_POP(chr->parse_frommap_auth_request, HP_chr_parse_frommap_auth_request) },
+ { HP_POP(chr->parse_frommap_update_ip, HP_chr_parse_frommap_update_ip) },
+ { HP_POP(chr->parse_frommap_request_stats_report, HP_chr_parse_frommap_request_stats_report) },
+ { HP_POP(chr->parse_frommap_scdata_update, HP_chr_parse_frommap_scdata_update) },
+ { HP_POP(chr->parse_frommap_scdata_delete, HP_chr_parse_frommap_scdata_delete) },
+ { HP_POP(chr->parse_frommap, HP_chr_parse_frommap) },
+ { HP_POP(chr->search_mapserver, HP_chr_search_mapserver) },
+ { HP_POP(chr->mapif_init, HP_chr_mapif_init) },
+ { HP_POP(chr->lan_subnetcheck, HP_chr_lan_subnetcheck) },
+ { HP_POP(chr->delete2_ack, HP_chr_delete2_ack) },
+ { HP_POP(chr->delete2_accept_actual_ack, HP_chr_delete2_accept_actual_ack) },
+ { HP_POP(chr->delete2_accept_ack, HP_chr_delete2_accept_ack) },
+ { HP_POP(chr->delete2_cancel_ack, HP_chr_delete2_cancel_ack) },
+ { HP_POP(chr->delete2_req, HP_chr_delete2_req) },
+ { HP_POP(chr->delete2_accept, HP_chr_delete2_accept) },
+ { HP_POP(chr->delete2_cancel, HP_chr_delete2_cancel) },
+ { HP_POP(chr->send_account_id, HP_chr_send_account_id) },
+ { HP_POP(chr->parse_char_connect, HP_chr_parse_char_connect) },
+ { HP_POP(chr->send_map_info, HP_chr_send_map_info) },
+ { HP_POP(chr->send_wait_char_server, HP_chr_send_wait_char_server) },
+ { HP_POP(chr->search_default_maps_mapserver, HP_chr_search_default_maps_mapserver) },
+ { HP_POP(chr->parse_char_select, HP_chr_parse_char_select) },
+ { HP_POP(chr->creation_failed, HP_chr_creation_failed) },
+ { HP_POP(chr->creation_ok, HP_chr_creation_ok) },
+ { HP_POP(chr->parse_char_create_new_char, HP_chr_parse_char_create_new_char) },
+ { HP_POP(chr->delete_char_failed, HP_chr_delete_char_failed) },
+ { HP_POP(chr->delete_char_ok, HP_chr_delete_char_ok) },
+ { HP_POP(chr->parse_char_delete_char, HP_chr_parse_char_delete_char) },
+ { HP_POP(chr->parse_char_ping, HP_chr_parse_char_ping) },
+ { HP_POP(chr->allow_rename, HP_chr_allow_rename) },
+ { HP_POP(chr->parse_char_rename_char, HP_chr_parse_char_rename_char) },
+ { HP_POP(chr->parse_char_rename_char2, HP_chr_parse_char_rename_char2) },
+ { HP_POP(chr->rename_char_ack, HP_chr_rename_char_ack) },
+ { HP_POP(chr->parse_char_rename_char_confirm, HP_chr_parse_char_rename_char_confirm) },
+ { HP_POP(chr->captcha_notsupported, HP_chr_captcha_notsupported) },
+ { HP_POP(chr->parse_char_request_captcha, HP_chr_parse_char_request_captcha) },
+ { HP_POP(chr->parse_char_check_captcha, HP_chr_parse_char_check_captcha) },
+ { HP_POP(chr->parse_char_delete2_req, HP_chr_parse_char_delete2_req) },
+ { HP_POP(chr->parse_char_delete2_accept, HP_chr_parse_char_delete2_accept) },
+ { HP_POP(chr->parse_char_delete2_cancel, HP_chr_parse_char_delete2_cancel) },
+ { HP_POP(chr->login_map_server_ack, HP_chr_login_map_server_ack) },
+ { HP_POP(chr->parse_char_login_map_server, HP_chr_parse_char_login_map_server) },
+ { HP_POP(chr->parse_char_pincode_check, HP_chr_parse_char_pincode_check) },
+ { HP_POP(chr->parse_char_pincode_window, HP_chr_parse_char_pincode_window) },
+ { HP_POP(chr->parse_char_pincode_change, HP_chr_parse_char_pincode_change) },
+ { HP_POP(chr->parse_char_pincode_first_pin, HP_chr_parse_char_pincode_first_pin) },
+ { HP_POP(chr->parse_char_request_chars, HP_chr_parse_char_request_chars) },
+ { HP_POP(chr->change_character_slot_ack, HP_chr_change_character_slot_ack) },
+ { HP_POP(chr->parse_char_move_character, HP_chr_parse_char_move_character) },
+ { HP_POP(chr->parse_char_unknown_packet, HP_chr_parse_char_unknown_packet) },
+ { HP_POP(chr->parse_char, HP_chr_parse_char) },
+ { HP_POP(chr->broadcast_user_count, HP_chr_broadcast_user_count) },
+ { HP_POP(chr->send_accounts_tologin_sub, HP_chr_send_accounts_tologin_sub) },
+ { HP_POP(chr->send_accounts_tologin, HP_chr_send_accounts_tologin) },
+ { HP_POP(chr->check_connect_login_server, HP_chr_check_connect_login_server) },
+ { HP_POP(chr->online_data_cleanup_sub, HP_chr_online_data_cleanup_sub) },
+ { HP_POP(chr->online_data_cleanup, HP_chr_online_data_cleanup) },
+ { HP_POP(chr->lan_config_read, HP_chr_lan_config_read) },
+ { HP_POP(chr->sql_config_read, HP_chr_sql_config_read) },
+ { HP_POP(chr->config_dispatch, HP_chr_config_dispatch) },
+ { HP_POP(chr->config_read, HP_chr_config_read) },
+/* geoip */
+ { HP_POP(geoip->getcountry, HP_geoip_getcountry) },
+ { HP_POP(geoip->final, HP_geoip_final) },
+ { HP_POP(geoip->init, HP_geoip_init) },
+/* inter_auction */
+ { HP_POP(inter_auction->count, HP_inter_auction_count) },
+ { HP_POP(inter_auction->save, HP_inter_auction_save) },
+ { HP_POP(inter_auction->create, HP_inter_auction_create) },
+ { HP_POP(inter_auction->end_timer, HP_inter_auction_end_timer) },
+ { HP_POP(inter_auction->delete_, HP_inter_auction_delete_) },
+ { HP_POP(inter_auction->fromsql, HP_inter_auction_fromsql) },
+ { HP_POP(inter_auction->parse_frommap, HP_inter_auction_parse_frommap) },
+ { HP_POP(inter_auction->sql_init, HP_inter_auction_sql_init) },
+ { HP_POP(inter_auction->sql_final, HP_inter_auction_sql_final) },
+/* inter_elemental */
+ { HP_POP(inter_elemental->sql_init, HP_inter_elemental_sql_init) },
+ { HP_POP(inter_elemental->sql_final, HP_inter_elemental_sql_final) },
+ { HP_POP(inter_elemental->parse_frommap, HP_inter_elemental_parse_frommap) },
+/* inter_guild */
+ { HP_POP(inter_guild->save_timer, HP_inter_guild_save_timer) },
+ { HP_POP(inter_guild->removemember_tosql, HP_inter_guild_removemember_tosql) },
+ { HP_POP(inter_guild->tosql, HP_inter_guild_tosql) },
+ { HP_POP(inter_guild->fromsql, HP_inter_guild_fromsql) },
+ { HP_POP(inter_guild->castle_tosql, HP_inter_guild_castle_tosql) },
+ { HP_POP(inter_guild->castle_fromsql, HP_inter_guild_castle_fromsql) },
+ { HP_POP(inter_guild->exp_parse_row, HP_inter_guild_exp_parse_row) },
+ { HP_POP(inter_guild->CharOnline, HP_inter_guild_CharOnline) },
+ { HP_POP(inter_guild->CharOffline, HP_inter_guild_CharOffline) },
+ { HP_POP(inter_guild->sql_init, HP_inter_guild_sql_init) },
+ { HP_POP(inter_guild->db_final, HP_inter_guild_db_final) },
+ { HP_POP(inter_guild->sql_final, HP_inter_guild_sql_final) },
+ { HP_POP(inter_guild->search_guildname, HP_inter_guild_search_guildname) },
+ { HP_POP(inter_guild->check_empty, HP_inter_guild_check_empty) },
+ { HP_POP(inter_guild->nextexp, HP_inter_guild_nextexp) },
+ { HP_POP(inter_guild->checkskill, HP_inter_guild_checkskill) },
+ { HP_POP(inter_guild->calcinfo, HP_inter_guild_calcinfo) },
+ { HP_POP(inter_guild->sex_changed, HP_inter_guild_sex_changed) },
+ { HP_POP(inter_guild->charname_changed, HP_inter_guild_charname_changed) },
+ { HP_POP(inter_guild->parse_frommap, HP_inter_guild_parse_frommap) },
+ { HP_POP(inter_guild->leave, HP_inter_guild_leave) },
+ { HP_POP(inter_guild->broken, HP_inter_guild_broken) },
+/* inter_homunculus */
+ { HP_POP(inter_homunculus->sql_init, HP_inter_homunculus_sql_init) },
+ { HP_POP(inter_homunculus->sql_final, HP_inter_homunculus_sql_final) },
+ { HP_POP(inter_homunculus->parse_frommap, HP_inter_homunculus_parse_frommap) },
+/* inter */
+ { HP_POP(inter->msg_txt, HP_inter_msg_txt) },
+ { HP_POP(inter->msg_config_read, HP_inter_msg_config_read) },
+ { HP_POP(inter->do_final_msg, HP_inter_do_final_msg) },
+ { HP_POP(inter->job_name, HP_inter_job_name) },
+ { HP_POP(inter->vmsg_to_fd, HP_inter_vmsg_to_fd) },
+ { HP_POP(inter->savereg, HP_inter_savereg) },
+ { HP_POP(inter->accreg_fromsql, HP_inter_accreg_fromsql) },
+ { HP_POP(inter->config_read, HP_inter_config_read) },
+ { HP_POP(inter->vlog, HP_inter_vlog) },
+ { HP_POP(inter->init_sql, HP_inter_init_sql) },
+ { HP_POP(inter->mapif_init, HP_inter_mapif_init) },
+ { HP_POP(inter->check_ttl_wisdata_sub, HP_inter_check_ttl_wisdata_sub) },
+ { HP_POP(inter->check_ttl_wisdata, HP_inter_check_ttl_wisdata) },
+ { HP_POP(inter->check_length, HP_inter_check_length) },
+ { HP_POP(inter->parse_frommap, HP_inter_parse_frommap) },
+ { HP_POP(inter->final, HP_inter_final) },
+/* inter_mail */
+ { HP_POP(inter_mail->sql_init, HP_inter_mail_sql_init) },
+ { HP_POP(inter_mail->sql_final, HP_inter_mail_sql_final) },
+ { HP_POP(inter_mail->parse_frommap, HP_inter_mail_parse_frommap) },
+ { HP_POP(inter_mail->fromsql, HP_inter_mail_fromsql) },
+ { HP_POP(inter_mail->savemessage, HP_inter_mail_savemessage) },
+ { HP_POP(inter_mail->loadmessage, HP_inter_mail_loadmessage) },
+ { HP_POP(inter_mail->DeleteAttach, HP_inter_mail_DeleteAttach) },
+ { HP_POP(inter_mail->sendmail, HP_inter_mail_sendmail) },
+/* inter_mercenary */
+ { HP_POP(inter_mercenary->owner_fromsql, HP_inter_mercenary_owner_fromsql) },
+ { HP_POP(inter_mercenary->owner_tosql, HP_inter_mercenary_owner_tosql) },
+ { HP_POP(inter_mercenary->owner_delete, HP_inter_mercenary_owner_delete) },
+ { HP_POP(inter_mercenary->sql_init, HP_inter_mercenary_sql_init) },
+ { HP_POP(inter_mercenary->sql_final, HP_inter_mercenary_sql_final) },
+ { HP_POP(inter_mercenary->parse_frommap, HP_inter_mercenary_parse_frommap) },
+/* inter_party */
+ { HP_POP(inter_party->check_lv, HP_inter_party_check_lv) },
+ { HP_POP(inter_party->calc_state, HP_inter_party_calc_state) },
+ { HP_POP(inter_party->tosql, HP_inter_party_tosql) },
+ { HP_POP(inter_party->fromsql, HP_inter_party_fromsql) },
+ { HP_POP(inter_party->sql_init, HP_inter_party_sql_init) },
+ { HP_POP(inter_party->sql_final, HP_inter_party_sql_final) },
+ { HP_POP(inter_party->search_partyname, HP_inter_party_search_partyname) },
+ { HP_POP(inter_party->check_exp_share, HP_inter_party_check_exp_share) },
+ { HP_POP(inter_party->check_empty, HP_inter_party_check_empty) },
+ { HP_POP(inter_party->parse_frommap, HP_inter_party_parse_frommap) },
+ { HP_POP(inter_party->leave, HP_inter_party_leave) },
+ { HP_POP(inter_party->CharOnline, HP_inter_party_CharOnline) },
+ { HP_POP(inter_party->CharOffline, HP_inter_party_CharOffline) },
+/* inter_pet */
+ { HP_POP(inter_pet->tosql, HP_inter_pet_tosql) },
+ { HP_POP(inter_pet->fromsql, HP_inter_pet_fromsql) },
+ { HP_POP(inter_pet->sql_init, HP_inter_pet_sql_init) },
+ { HP_POP(inter_pet->sql_final, HP_inter_pet_sql_final) },
+ { HP_POP(inter_pet->delete_, HP_inter_pet_delete_) },
+ { HP_POP(inter_pet->parse_frommap, HP_inter_pet_parse_frommap) },
+/* inter_quest */
+ { HP_POP(inter_quest->parse_frommap, HP_inter_quest_parse_frommap) },
+/* inter_storage */
+ { HP_POP(inter_storage->tosql, HP_inter_storage_tosql) },
+ { HP_POP(inter_storage->fromsql, HP_inter_storage_fromsql) },
+ { HP_POP(inter_storage->guild_storage_tosql, HP_inter_storage_guild_storage_tosql) },
+ { HP_POP(inter_storage->guild_storage_fromsql, HP_inter_storage_guild_storage_fromsql) },
+ { HP_POP(inter_storage->sql_init, HP_inter_storage_sql_init) },
+ { HP_POP(inter_storage->sql_final, HP_inter_storage_sql_final) },
+ { HP_POP(inter_storage->delete_, HP_inter_storage_delete_) },
+ { HP_POP(inter_storage->guild_storage_delete, HP_inter_storage_guild_storage_delete) },
+ { HP_POP(inter_storage->parse_frommap, HP_inter_storage_parse_frommap) },
+/* loginif */
+ { HP_POP(loginif->init, HP_loginif_init) },
+ { HP_POP(loginif->final, HP_loginif_final) },
+ { HP_POP(loginif->reset, HP_loginif_reset) },
+ { HP_POP(loginif->check_shutdown, HP_loginif_check_shutdown) },
+ { HP_POP(loginif->on_disconnect, HP_loginif_on_disconnect) },
+ { HP_POP(loginif->on_ready, HP_loginif_on_ready) },
+ { HP_POP(loginif->block_account, HP_loginif_block_account) },
+ { HP_POP(loginif->ban_account, HP_loginif_ban_account) },
+ { HP_POP(loginif->unban_account, HP_loginif_unban_account) },
+ { HP_POP(loginif->changesex, HP_loginif_changesex) },
+ { HP_POP(loginif->auth, HP_loginif_auth) },
+ { HP_POP(loginif->send_users_count, HP_loginif_send_users_count) },
+ { HP_POP(loginif->connect_to_server, HP_loginif_connect_to_server) },
+/* mapif */
+ { HP_POP(mapif->ban, HP_mapif_ban) },
+ { HP_POP(mapif->server_init, HP_mapif_server_init) },
+ { HP_POP(mapif->server_destroy, HP_mapif_server_destroy) },
+ { HP_POP(mapif->server_reset, HP_mapif_server_reset) },
+ { HP_POP(mapif->on_disconnect, HP_mapif_on_disconnect) },
+ { HP_POP(mapif->on_parse_accinfo, HP_mapif_on_parse_accinfo) },
+ { HP_POP(mapif->char_ban, HP_mapif_char_ban) },
+ { HP_POP(mapif->sendall, HP_mapif_sendall) },
+ { HP_POP(mapif->sendallwos, HP_mapif_sendallwos) },
+ { HP_POP(mapif->send, HP_mapif_send) },
+ { HP_POP(mapif->send_users_count, HP_mapif_send_users_count) },
+ { HP_POP(mapif->auction_message, HP_mapif_auction_message) },
+ { HP_POP(mapif->auction_sendlist, HP_mapif_auction_sendlist) },
+ { HP_POP(mapif->parse_auction_requestlist, HP_mapif_parse_auction_requestlist) },
+ { HP_POP(mapif->auction_register, HP_mapif_auction_register) },
+ { HP_POP(mapif->parse_auction_register, HP_mapif_parse_auction_register) },
+ { HP_POP(mapif->auction_cancel, HP_mapif_auction_cancel) },
+ { HP_POP(mapif->parse_auction_cancel, HP_mapif_parse_auction_cancel) },
+ { HP_POP(mapif->auction_close, HP_mapif_auction_close) },
+ { HP_POP(mapif->parse_auction_close, HP_mapif_parse_auction_close) },
+ { HP_POP(mapif->auction_bid, HP_mapif_auction_bid) },
+ { HP_POP(mapif->parse_auction_bid, HP_mapif_parse_auction_bid) },
+ { HP_POP(mapif->elemental_save, HP_mapif_elemental_save) },
+ { HP_POP(mapif->elemental_load, HP_mapif_elemental_load) },
+ { HP_POP(mapif->elemental_delete, HP_mapif_elemental_delete) },
+ { HP_POP(mapif->elemental_send, HP_mapif_elemental_send) },
+ { HP_POP(mapif->parse_elemental_create, HP_mapif_parse_elemental_create) },
+ { HP_POP(mapif->parse_elemental_load, HP_mapif_parse_elemental_load) },
+ { HP_POP(mapif->elemental_deleted, HP_mapif_elemental_deleted) },
+ { HP_POP(mapif->parse_elemental_delete, HP_mapif_parse_elemental_delete) },
+ { HP_POP(mapif->elemental_saved, HP_mapif_elemental_saved) },
+ { HP_POP(mapif->parse_elemental_save, HP_mapif_parse_elemental_save) },
+ { HP_POP(mapif->guild_created, HP_mapif_guild_created) },
+ { HP_POP(mapif->guild_noinfo, HP_mapif_guild_noinfo) },
+ { HP_POP(mapif->guild_info, HP_mapif_guild_info) },
+ { HP_POP(mapif->guild_memberadded, HP_mapif_guild_memberadded) },
+ { HP_POP(mapif->guild_withdraw, HP_mapif_guild_withdraw) },
+ { HP_POP(mapif->guild_memberinfoshort, HP_mapif_guild_memberinfoshort) },
+ { HP_POP(mapif->guild_broken, HP_mapif_guild_broken) },
+ { HP_POP(mapif->guild_message, HP_mapif_guild_message) },
+ { HP_POP(mapif->guild_basicinfochanged, HP_mapif_guild_basicinfochanged) },
+ { HP_POP(mapif->guild_memberinfochanged, HP_mapif_guild_memberinfochanged) },
+ { HP_POP(mapif->guild_skillupack, HP_mapif_guild_skillupack) },
+ { HP_POP(mapif->guild_alliance, HP_mapif_guild_alliance) },
+ { HP_POP(mapif->guild_position, HP_mapif_guild_position) },
+ { HP_POP(mapif->guild_notice, HP_mapif_guild_notice) },
+ { HP_POP(mapif->guild_emblem, HP_mapif_guild_emblem) },
+ { HP_POP(mapif->guild_master_changed, HP_mapif_guild_master_changed) },
+ { HP_POP(mapif->guild_castle_dataload, HP_mapif_guild_castle_dataload) },
+ { HP_POP(mapif->parse_CreateGuild, HP_mapif_parse_CreateGuild) },
+ { HP_POP(mapif->parse_GuildInfo, HP_mapif_parse_GuildInfo) },
+ { HP_POP(mapif->parse_GuildAddMember, HP_mapif_parse_GuildAddMember) },
+ { HP_POP(mapif->parse_GuildLeave, HP_mapif_parse_GuildLeave) },
+ { HP_POP(mapif->parse_GuildChangeMemberInfoShort, HP_mapif_parse_GuildChangeMemberInfoShort) },
+ { HP_POP(mapif->parse_BreakGuild, HP_mapif_parse_BreakGuild) },
+ { HP_POP(mapif->parse_GuildMessage, HP_mapif_parse_GuildMessage) },
+ { HP_POP(mapif->parse_GuildBasicInfoChange, HP_mapif_parse_GuildBasicInfoChange) },
+ { HP_POP(mapif->parse_GuildMemberInfoChange, HP_mapif_parse_GuildMemberInfoChange) },
+ { HP_POP(mapif->parse_GuildPosition, HP_mapif_parse_GuildPosition) },
+ { HP_POP(mapif->parse_GuildSkillUp, HP_mapif_parse_GuildSkillUp) },
+ { HP_POP(mapif->parse_GuildDeleteAlliance, HP_mapif_parse_GuildDeleteAlliance) },
+ { HP_POP(mapif->parse_GuildAlliance, HP_mapif_parse_GuildAlliance) },
+ { HP_POP(mapif->parse_GuildNotice, HP_mapif_parse_GuildNotice) },
+ { HP_POP(mapif->parse_GuildEmblem, HP_mapif_parse_GuildEmblem) },
+ { HP_POP(mapif->parse_GuildCastleDataLoad, HP_mapif_parse_GuildCastleDataLoad) },
+ { HP_POP(mapif->parse_GuildCastleDataSave, HP_mapif_parse_GuildCastleDataSave) },
+ { HP_POP(mapif->parse_GuildMasterChange, HP_mapif_parse_GuildMasterChange) },
+ { HP_POP(mapif->homunculus_created, HP_mapif_homunculus_created) },
+ { HP_POP(mapif->homunculus_deleted, HP_mapif_homunculus_deleted) },
+ { HP_POP(mapif->homunculus_loaded, HP_mapif_homunculus_loaded) },
+ { HP_POP(mapif->homunculus_saved, HP_mapif_homunculus_saved) },
+ { HP_POP(mapif->homunculus_renamed, HP_mapif_homunculus_renamed) },
+ { HP_POP(mapif->homunculus_save, HP_mapif_homunculus_save) },
+ { HP_POP(mapif->homunculus_load, HP_mapif_homunculus_load) },
+ { HP_POP(mapif->homunculus_delete, HP_mapif_homunculus_delete) },
+ { HP_POP(mapif->homunculus_rename, HP_mapif_homunculus_rename) },
+ { HP_POP(mapif->parse_homunculus_create, HP_mapif_parse_homunculus_create) },
+ { HP_POP(mapif->parse_homunculus_delete, HP_mapif_parse_homunculus_delete) },
+ { HP_POP(mapif->parse_homunculus_load, HP_mapif_parse_homunculus_load) },
+ { HP_POP(mapif->parse_homunculus_save, HP_mapif_parse_homunculus_save) },
+ { HP_POP(mapif->parse_homunculus_rename, HP_mapif_parse_homunculus_rename) },
+ { HP_POP(mapif->mail_sendinbox, HP_mapif_mail_sendinbox) },
+ { HP_POP(mapif->parse_mail_requestinbox, HP_mapif_parse_mail_requestinbox) },
+ { HP_POP(mapif->parse_mail_read, HP_mapif_parse_mail_read) },
+ { HP_POP(mapif->mail_sendattach, HP_mapif_mail_sendattach) },
+ { HP_POP(mapif->mail_getattach, HP_mapif_mail_getattach) },
+ { HP_POP(mapif->parse_mail_getattach, HP_mapif_parse_mail_getattach) },
+ { HP_POP(mapif->mail_delete, HP_mapif_mail_delete) },
+ { HP_POP(mapif->parse_mail_delete, HP_mapif_parse_mail_delete) },
+ { HP_POP(mapif->mail_new, HP_mapif_mail_new) },
+ { HP_POP(mapif->mail_return, HP_mapif_mail_return) },
+ { HP_POP(mapif->parse_mail_return, HP_mapif_parse_mail_return) },
+ { HP_POP(mapif->mail_send, HP_mapif_mail_send) },
+ { HP_POP(mapif->parse_mail_send, HP_mapif_parse_mail_send) },
+ { HP_POP(mapif->mercenary_save, HP_mapif_mercenary_save) },
+ { HP_POP(mapif->mercenary_load, HP_mapif_mercenary_load) },
+ { HP_POP(mapif->mercenary_delete, HP_mapif_mercenary_delete) },
+ { HP_POP(mapif->mercenary_send, HP_mapif_mercenary_send) },
+ { HP_POP(mapif->parse_mercenary_create, HP_mapif_parse_mercenary_create) },
+ { HP_POP(mapif->parse_mercenary_load, HP_mapif_parse_mercenary_load) },
+ { HP_POP(mapif->mercenary_deleted, HP_mapif_mercenary_deleted) },
+ { HP_POP(mapif->parse_mercenary_delete, HP_mapif_parse_mercenary_delete) },
+ { HP_POP(mapif->mercenary_saved, HP_mapif_mercenary_saved) },
+ { HP_POP(mapif->parse_mercenary_save, HP_mapif_parse_mercenary_save) },
+ { HP_POP(mapif->party_created, HP_mapif_party_created) },
+ { HP_POP(mapif->party_noinfo, HP_mapif_party_noinfo) },
+ { HP_POP(mapif->party_info, HP_mapif_party_info) },
+ { HP_POP(mapif->party_memberadded, HP_mapif_party_memberadded) },
+ { HP_POP(mapif->party_optionchanged, HP_mapif_party_optionchanged) },
+ { HP_POP(mapif->party_withdraw, HP_mapif_party_withdraw) },
+ { HP_POP(mapif->party_membermoved, HP_mapif_party_membermoved) },
+ { HP_POP(mapif->party_broken, HP_mapif_party_broken) },
+ { HP_POP(mapif->party_message, HP_mapif_party_message) },
+ { HP_POP(mapif->parse_CreateParty, HP_mapif_parse_CreateParty) },
+ { HP_POP(mapif->parse_PartyInfo, HP_mapif_parse_PartyInfo) },
+ { HP_POP(mapif->parse_PartyAddMember, HP_mapif_parse_PartyAddMember) },
+ { HP_POP(mapif->parse_PartyChangeOption, HP_mapif_parse_PartyChangeOption) },
+ { HP_POP(mapif->parse_PartyLeave, HP_mapif_parse_PartyLeave) },
+ { HP_POP(mapif->parse_PartyChangeMap, HP_mapif_parse_PartyChangeMap) },
+ { HP_POP(mapif->parse_BreakParty, HP_mapif_parse_BreakParty) },
+ { HP_POP(mapif->parse_PartyMessage, HP_mapif_parse_PartyMessage) },
+ { HP_POP(mapif->parse_PartyLeaderChange, HP_mapif_parse_PartyLeaderChange) },
+ { HP_POP(mapif->pet_created, HP_mapif_pet_created) },
+ { HP_POP(mapif->pet_info, HP_mapif_pet_info) },
+ { HP_POP(mapif->pet_noinfo, HP_mapif_pet_noinfo) },
+ { HP_POP(mapif->save_pet_ack, HP_mapif_save_pet_ack) },
+ { HP_POP(mapif->delete_pet_ack, HP_mapif_delete_pet_ack) },
+ { HP_POP(mapif->create_pet, HP_mapif_create_pet) },
+ { HP_POP(mapif->load_pet, HP_mapif_load_pet) },
+ { HP_POP(mapif->save_pet, HP_mapif_save_pet) },
+ { HP_POP(mapif->delete_pet, HP_mapif_delete_pet) },
+ { HP_POP(mapif->parse_CreatePet, HP_mapif_parse_CreatePet) },
+ { HP_POP(mapif->parse_LoadPet, HP_mapif_parse_LoadPet) },
+ { HP_POP(mapif->parse_SavePet, HP_mapif_parse_SavePet) },
+ { HP_POP(mapif->parse_DeletePet, HP_mapif_parse_DeletePet) },
+ { HP_POP(mapif->quests_fromsql, HP_mapif_quests_fromsql) },
+ { HP_POP(mapif->quest_delete, HP_mapif_quest_delete) },
+ { HP_POP(mapif->quest_add, HP_mapif_quest_add) },
+ { HP_POP(mapif->quest_update, HP_mapif_quest_update) },
+ { HP_POP(mapif->quest_save_ack, HP_mapif_quest_save_ack) },
+ { HP_POP(mapif->parse_quest_save, HP_mapif_parse_quest_save) },
+ { HP_POP(mapif->send_quests, HP_mapif_send_quests) },
+ { HP_POP(mapif->parse_quest_load, HP_mapif_parse_quest_load) },
+ { HP_POP(mapif->load_guild_storage, HP_mapif_load_guild_storage) },
+ { HP_POP(mapif->save_guild_storage_ack, HP_mapif_save_guild_storage_ack) },
+ { HP_POP(mapif->parse_LoadGuildStorage, HP_mapif_parse_LoadGuildStorage) },
+ { HP_POP(mapif->parse_SaveGuildStorage, HP_mapif_parse_SaveGuildStorage) },
+ { HP_POP(mapif->itembound_ack, HP_mapif_itembound_ack) },
+ { HP_POP(mapif->parse_ItemBoundRetrieve_sub, HP_mapif_parse_ItemBoundRetrieve_sub) },
+ { HP_POP(mapif->parse_ItemBoundRetrieve, HP_mapif_parse_ItemBoundRetrieve) },
+ { HP_POP(mapif->parse_accinfo, HP_mapif_parse_accinfo) },
+ { HP_POP(mapif->parse_accinfo2, HP_mapif_parse_accinfo2) },
+ { HP_POP(mapif->broadcast, HP_mapif_broadcast) },
+ { HP_POP(mapif->wis_message, HP_mapif_wis_message) },
+ { HP_POP(mapif->wis_response, HP_mapif_wis_response) },
+ { HP_POP(mapif->wis_end, HP_mapif_wis_end) },
+ { HP_POP(mapif->account_reg_reply, HP_mapif_account_reg_reply) },
+ { HP_POP(mapif->disconnectplayer, HP_mapif_disconnectplayer) },
+ { HP_POP(mapif->parse_broadcast, HP_mapif_parse_broadcast) },
+ { HP_POP(mapif->parse_WisRequest, HP_mapif_parse_WisRequest) },
+ { HP_POP(mapif->parse_WisReply, HP_mapif_parse_WisReply) },
+ { HP_POP(mapif->parse_WisToGM, HP_mapif_parse_WisToGM) },
+ { HP_POP(mapif->parse_Registry, HP_mapif_parse_Registry) },
+ { HP_POP(mapif->parse_RegistryRequest, HP_mapif_parse_RegistryRequest) },
+ { HP_POP(mapif->namechange_ack, HP_mapif_namechange_ack) },
+ { HP_POP(mapif->parse_NameChangeRequest, HP_mapif_parse_NameChangeRequest) },
+/* pincode */
+ { HP_POP(pincode->handle, HP_pincode_handle) },
+ { HP_POP(pincode->decrypt, HP_pincode_decrypt) },
+ { HP_POP(pincode->error, HP_pincode_error) },
+ { HP_POP(pincode->update, HP_pincode_update) },
+ { HP_POP(pincode->sendstate, HP_pincode_sendstate) },
+ { HP_POP(pincode->setnew, HP_pincode_setnew) },
+ { HP_POP(pincode->change, HP_pincode_change) },
+ { HP_POP(pincode->compare, HP_pincode_compare) },
+ { HP_POP(pincode->check, HP_pincode_check) },
+ { HP_POP(pincode->config_read, HP_pincode_config_read) },
+};
+
+int HookingPointsLenMax = 42;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
new file mode 100644
index 000000000..ffa2cd7e2
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
@@ -0,0 +1,11904 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+/* chr */
+int HP_chr_waiting_disconnect(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_waiting_disconnect_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_waiting_disconnect_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_waiting_disconnect_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.waiting_disconnect(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_chr_waiting_disconnect_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_waiting_disconnect_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_waiting_disconnect_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_delete_char_sql(int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_delete_char_sql_pre ) {
+ int (*preHookFunc) (int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete_char_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.delete_char_sql(char_id);
+ }
+ if( HPMHooks.count.HP_chr_delete_char_sql_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete_char_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id);
+ }
+ }
+ return retVal___;
+}
+DBData HP_chr_create_online_char_data(DBKey key, va_list args) {
+ int hIndex = 0;
+ DBData retVal___;
+ memset(&retVal___, '\0', sizeof(DBData));
+ if( HPMHooks.count.HP_chr_create_online_char_data_pre ) {
+ DBData (*preHookFunc) (DBKey *key, va_list args);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_create_online_char_data_pre; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ preHookFunc = HPMHooks.list.HP_chr_create_online_char_data_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, args___copy);
+ va_end(args___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list args___copy; va_copy(args___copy, args);
+ retVal___ = HPMHooks.source.chr.create_online_char_data(key, args___copy);
+ va_end(args___copy);
+ }
+ if( HPMHooks.count.HP_chr_create_online_char_data_post ) {
+ DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_create_online_char_data_post; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ postHookFunc = HPMHooks.list.HP_chr_create_online_char_data_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, args___copy);
+ va_end(args___copy);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_set_account_online(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_account_online_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_account_online_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_account_online_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_account_online(account_id);
+ }
+ if( HPMHooks.count.HP_chr_set_account_online_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_account_online_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_account_online_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_chr_set_account_offline(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_account_offline_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_account_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_account_offline_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_account_offline(account_id);
+ }
+ if( HPMHooks.count.HP_chr_set_account_offline_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_account_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_account_offline_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_chr_set_char_charselect(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_char_charselect_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_charselect_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_char_charselect_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_char_charselect(account_id);
+ }
+ if( HPMHooks.count.HP_chr_set_char_charselect_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_charselect_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_char_charselect_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_chr_set_char_online(int map_id, int char_id, int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_char_online_pre ) {
+ void (*preHookFunc) (int *map_id, int *char_id, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_online_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_char_online_pre[hIndex].func;
+ preHookFunc(&map_id, &char_id, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_char_online(map_id, char_id, account_id);
+ }
+ if( HPMHooks.count.HP_chr_set_char_online_post ) {
+ void (*postHookFunc) (int *map_id, int *char_id, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_online_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_char_online_post[hIndex].func;
+ postHookFunc(&map_id, &char_id, &account_id);
+ }
+ }
+ return;
+}
+void HP_chr_set_char_offline(int char_id, int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_char_offline_pre ) {
+ void (*preHookFunc) (int *char_id, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_char_offline_pre[hIndex].func;
+ preHookFunc(&char_id, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_char_offline(char_id, account_id);
+ }
+ if( HPMHooks.count.HP_chr_set_char_offline_post ) {
+ void (*postHookFunc) (int *char_id, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_char_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_char_offline_post[hIndex].func;
+ postHookFunc(&char_id, &account_id);
+ }
+ }
+ return;
+}
+int HP_chr_db_setoffline(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_db_setoffline_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_db_setoffline_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_chr_db_setoffline_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.chr.db_setoffline(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_chr_db_setoffline_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_db_setoffline_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_chr_db_setoffline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_db_kickoffline(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_db_kickoffline_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_db_kickoffline_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_chr_db_kickoffline_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.chr.db_kickoffline(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_chr_db_kickoffline_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_db_kickoffline_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_chr_db_kickoffline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_set_login_all_offline(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_login_all_offline_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_login_all_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_login_all_offline_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_login_all_offline();
+ }
+ if( HPMHooks.count.HP_chr_set_login_all_offline_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_login_all_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_login_all_offline_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_chr_set_all_offline(int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_all_offline_pre ) {
+ void (*preHookFunc) (int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_all_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_all_offline_pre[hIndex].func;
+ preHookFunc(&id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_all_offline(id);
+ }
+ if( HPMHooks.count.HP_chr_set_all_offline_post ) {
+ void (*postHookFunc) (int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_all_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_all_offline_post[hIndex].func;
+ postHookFunc(&id);
+ }
+ }
+ return;
+}
+void HP_chr_set_all_offline_sql(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_set_all_offline_sql_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_all_offline_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_set_all_offline_sql_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.set_all_offline_sql();
+ }
+ if( HPMHooks.count.HP_chr_set_all_offline_sql_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_set_all_offline_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_set_all_offline_sql_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+DBData HP_chr_create_charstatus(DBKey key, va_list args) {
+ int hIndex = 0;
+ DBData retVal___;
+ memset(&retVal___, '\0', sizeof(DBData));
+ if( HPMHooks.count.HP_chr_create_charstatus_pre ) {
+ DBData (*preHookFunc) (DBKey *key, va_list args);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_create_charstatus_pre; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ preHookFunc = HPMHooks.list.HP_chr_create_charstatus_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, args___copy);
+ va_end(args___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list args___copy; va_copy(args___copy, args);
+ retVal___ = HPMHooks.source.chr.create_charstatus(key, args___copy);
+ va_end(args___copy);
+ }
+ if( HPMHooks.count.HP_chr_create_charstatus_post ) {
+ DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_create_charstatus_post; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ postHookFunc = HPMHooks.list.HP_chr_create_charstatus_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, args___copy);
+ va_end(args___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mmo_char_tosql(int char_id, struct mmo_charstatus *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_tosql_pre ) {
+ int (*preHookFunc) (int *char_id, struct mmo_charstatus *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_char_tosql(char_id, p);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_tosql_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, struct mmo_charstatus *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_memitemdata_to_sql(const struct item items[], int max, int id, int tableswitch) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_memitemdata_to_sql_pre ) {
+ int (*preHookFunc) (const struct item *items[], int *max, int *id, int *tableswitch);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_memitemdata_to_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_memitemdata_to_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(&items, &max, &id, &tableswitch);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.memitemdata_to_sql(items, max, id, tableswitch);
+ }
+ if( HPMHooks.count.HP_chr_memitemdata_to_sql_post ) {
+ int (*postHookFunc) (int retVal___, const struct item *items[], int *max, int *id, int *tableswitch);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_memitemdata_to_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_memitemdata_to_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &items, &max, &id, &tableswitch);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_inventory_to_sql(const struct item items[], int max, int id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_inventory_to_sql_pre ) {
+ int (*preHookFunc) (const struct item *items[], int *max, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_inventory_to_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_inventory_to_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(&items, &max, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.inventory_to_sql(items, max, id);
+ }
+ if( HPMHooks.count.HP_chr_inventory_to_sql_post ) {
+ int (*postHookFunc) (int retVal___, const struct item *items[], int *max, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_inventory_to_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_inventory_to_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &items, &max, &id);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mmo_chars_fromsql(struct char_session_data *sd, uint8 *buf) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_chars_fromsql_pre ) {
+ int (*preHookFunc) (struct char_session_data *sd, uint8 *buf);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_chars_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_chars_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, buf);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_chars_fromsql(sd, buf);
+ }
+ if( HPMHooks.count.HP_chr_mmo_chars_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, struct char_session_data *sd, uint8 *buf);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_chars_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_chars_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, buf);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mmo_char_fromsql(int char_id, struct mmo_charstatus *p, bool load_everything) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_fromsql_pre ) {
+ int (*preHookFunc) (int *char_id, struct mmo_charstatus *p, bool *load_everything);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, p, &load_everything);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_char_fromsql(char_id, p, load_everything);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, struct mmo_charstatus *p, bool *load_everything);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, p, &load_everything);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mmo_char_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_char_sql_init();
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+bool HP_chr_char_slotchange(struct char_session_data *sd, int fd, unsigned short from, unsigned short to) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_chr_char_slotchange_pre ) {
+ bool (*preHookFunc) (struct char_session_data *sd, int *fd, unsigned short *from, unsigned short *to);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_slotchange_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_char_slotchange_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, &fd, &from, &to);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.char_slotchange(sd, fd, from, to);
+ }
+ if( HPMHooks.count.HP_chr_char_slotchange_post ) {
+ bool (*postHookFunc) (bool retVal___, struct char_session_data *sd, int *fd, unsigned short *from, unsigned short *to);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_slotchange_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_char_slotchange_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, &fd, &from, &to);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_rename_char_sql(struct char_session_data *sd, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_rename_char_sql_pre ) {
+ int (*preHookFunc) (struct char_session_data *sd, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_rename_char_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_rename_char_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.rename_char_sql(sd, char_id);
+ }
+ if( HPMHooks.count.HP_chr_rename_char_sql_post ) {
+ int (*postHookFunc) (int retVal___, struct char_session_data *sd, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_rename_char_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_rename_char_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_check_char_name(char *name, char *esc_name) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_check_char_name_pre ) {
+ int (*preHookFunc) (char *name, char *esc_name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_check_char_name_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_check_char_name_pre[hIndex].func;
+ retVal___ = preHookFunc(name, esc_name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.check_char_name(name, esc_name);
+ }
+ if( HPMHooks.count.HP_chr_check_char_name_post ) {
+ int (*postHookFunc) (int retVal___, char *name, char *esc_name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_check_char_name_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_check_char_name_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, name, esc_name);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_make_new_char_sql(struct char_session_data *sd, char *name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_make_new_char_sql_pre ) {
+ int (*preHookFunc) (struct char_session_data *sd, char *name_, int *str, int *agi, int *vit, int *int_, int *dex, int *luk, int *slot, int *hair_color, int *hair_style);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_make_new_char_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_make_new_char_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, name_, &str, &agi, &vit, &int_, &dex, &luk, &slot, &hair_color, &hair_style);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.make_new_char_sql(sd, name_, str, agi, vit, int_, dex, luk, slot, hair_color, hair_style);
+ }
+ if( HPMHooks.count.HP_chr_make_new_char_sql_post ) {
+ int (*postHookFunc) (int retVal___, struct char_session_data *sd, char *name_, int *str, int *agi, int *vit, int *int_, int *dex, int *luk, int *slot, int *hair_color, int *hair_style);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_make_new_char_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_make_new_char_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, name_, &str, &agi, &vit, &int_, &dex, &luk, &slot, &hair_color, &hair_style);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_divorce_char_sql(int partner_id1, int partner_id2) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_divorce_char_sql_pre ) {
+ int (*preHookFunc) (int *partner_id1, int *partner_id2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_divorce_char_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_divorce_char_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(&partner_id1, &partner_id2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.divorce_char_sql(partner_id1, partner_id2);
+ }
+ if( HPMHooks.count.HP_chr_divorce_char_sql_post ) {
+ int (*postHookFunc) (int retVal___, int *partner_id1, int *partner_id2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_divorce_char_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_divorce_char_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &partner_id1, &partner_id2);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_count_users(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_count_users_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_count_users_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_count_users_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.count_users();
+ }
+ if( HPMHooks.count.HP_chr_count_users_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_count_users_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_count_users_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mmo_char_tobuf(uint8 *buffer, struct mmo_charstatus *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_tobuf_pre ) {
+ int (*preHookFunc) (uint8 *buffer, struct mmo_charstatus *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_tobuf_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_tobuf_pre[hIndex].func;
+ retVal___ = preHookFunc(buffer, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_char_tobuf(buffer, p);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_tobuf_post ) {
+ int (*postHookFunc) (int retVal___, uint8 *buffer, struct mmo_charstatus *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_tobuf_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_tobuf_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, buffer, p);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_mmo_char_send099d(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_send099d_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send099d_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_send099d_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.mmo_char_send099d(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_send099d_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send099d_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_send099d_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_mmo_char_send_ban_list(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_send_ban_list_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_ban_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_send_ban_list_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.mmo_char_send_ban_list(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_send_ban_list_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_ban_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_send_ban_list_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_mmo_char_send_slots_info(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_send_slots_info_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_slots_info_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_send_slots_info_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.mmo_char_send_slots_info(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_send_slots_info_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_slots_info_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_send_slots_info_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+int HP_chr_mmo_char_send_characters(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mmo_char_send_characters_pre ) {
+ int (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_characters_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mmo_char_send_characters_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mmo_char_send_characters(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_mmo_char_send_characters_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mmo_char_send_characters_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mmo_char_send_characters_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, sd);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_char_married(int pl1, int pl2) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_char_married_pre ) {
+ int (*preHookFunc) (int *pl1, int *pl2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_married_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_char_married_pre[hIndex].func;
+ retVal___ = preHookFunc(&pl1, &pl2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.char_married(pl1, pl2);
+ }
+ if( HPMHooks.count.HP_chr_char_married_post ) {
+ int (*postHookFunc) (int retVal___, int *pl1, int *pl2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_married_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_char_married_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &pl1, &pl2);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_char_child(int parent_id, int child_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_char_child_pre ) {
+ int (*preHookFunc) (int *parent_id, int *child_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_child_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_char_child_pre[hIndex].func;
+ retVal___ = preHookFunc(&parent_id, &child_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.char_child(parent_id, child_id);
+ }
+ if( HPMHooks.count.HP_chr_char_child_post ) {
+ int (*postHookFunc) (int retVal___, int *parent_id, int *child_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_child_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_char_child_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &parent_id, &child_id);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_char_family(int cid1, int cid2, int cid3) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_char_family_pre ) {
+ int (*preHookFunc) (int *cid1, int *cid2, int *cid3);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_family_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_char_family_pre[hIndex].func;
+ retVal___ = preHookFunc(&cid1, &cid2, &cid3);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.char_family(cid1, cid2, cid3);
+ }
+ if( HPMHooks.count.HP_chr_char_family_post ) {
+ int (*postHookFunc) (int retVal___, int *cid1, int *cid2, int *cid3);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_family_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_char_family_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &cid1, &cid2, &cid3);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_disconnect_player(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_disconnect_player_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_disconnect_player_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_disconnect_player_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.disconnect_player(account_id);
+ }
+ if( HPMHooks.count.HP_chr_disconnect_player_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_disconnect_player_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_disconnect_player_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_chr_authfail_fd(int fd, int type) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_authfail_fd_pre ) {
+ void (*preHookFunc) (int *fd, int *type);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_authfail_fd_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_authfail_fd_pre[hIndex].func;
+ preHookFunc(&fd, &type);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.authfail_fd(fd, type);
+ }
+ if( HPMHooks.count.HP_chr_authfail_fd_post ) {
+ void (*postHookFunc) (int *fd, int *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_authfail_fd_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_authfail_fd_post[hIndex].func;
+ postHookFunc(&fd, &type);
+ }
+ }
+ return;
+}
+void HP_chr_request_account_data(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_request_account_data_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_request_account_data_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_request_account_data_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.request_account_data(account_id);
+ }
+ if( HPMHooks.count.HP_chr_request_account_data_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_request_account_data_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_request_account_data_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_chr_auth_ok(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_auth_ok_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_auth_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_auth_ok_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.auth_ok(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_auth_ok_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_auth_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_auth_ok_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_ping_login_server(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_ping_login_server_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ping_login_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_ping_login_server_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.ping_login_server(fd);
+ }
+ if( HPMHooks.count.HP_chr_ping_login_server_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ping_login_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_ping_login_server_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+int HP_chr_parse_fromlogin_connection_state(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_connection_state_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_connection_state_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_connection_state_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_fromlogin_connection_state(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_connection_state_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_connection_state_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_connection_state_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_auth_error(int fd, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_auth_error_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_auth_error_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_auth_error_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.auth_error(fd, flag);
+ }
+ if( HPMHooks.count.HP_chr_auth_error_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_auth_error_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_auth_error_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_auth_state(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_auth_state_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_auth_state_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_auth_state_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_auth_state(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_auth_state_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_auth_state_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_auth_state_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_account_data(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_account_data_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_account_data_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_account_data_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_account_data(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_account_data_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_account_data_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_account_data_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_login_pong(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_login_pong_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_login_pong_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_login_pong_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_login_pong(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_login_pong_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_login_pong_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_login_pong_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_changesex(int account_id, int sex) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_changesex_pre ) {
+ void (*preHookFunc) (int *account_id, int *sex);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_changesex_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_changesex_pre[hIndex].func;
+ preHookFunc(&account_id, &sex);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.changesex(account_id, sex);
+ }
+ if( HPMHooks.count.HP_chr_changesex_post ) {
+ void (*postHookFunc) (int *account_id, int *sex);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_changesex_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_changesex_post[hIndex].func;
+ postHookFunc(&account_id, &sex);
+ }
+ }
+ return;
+}
+int HP_chr_parse_fromlogin_changesex_reply(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_changesex_reply_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_changesex_reply_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_changesex_reply_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_fromlogin_changesex_reply(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_changesex_reply_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_changesex_reply_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_changesex_reply_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_parse_fromlogin_account_reg2(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_account_reg2_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_account_reg2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_account_reg2_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_account_reg2(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_account_reg2_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_account_reg2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_account_reg2_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_ban(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_ban_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_ban_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_ban(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_ban_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_ban_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_kick(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_kick_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_kick_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_kick_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_kick(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_kick_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_kick_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_kick_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_update_ip(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_update_ip_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_update_ip_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_update_ip_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.update_ip(fd);
+ }
+ if( HPMHooks.count.HP_chr_update_ip_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_update_ip_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_update_ip_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_update_ip(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_update_ip_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_update_ip_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_update_ip_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_update_ip(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_update_ip_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_update_ip_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_update_ip_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_accinfo2_failed(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_failed_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_failed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_accinfo2_failed_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_accinfo2_failed(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_failed_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_failed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_accinfo2_failed_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_fromlogin_accinfo2_ok(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_ok_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_accinfo2_ok_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_fromlogin_accinfo2_ok(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_ok_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_accinfo2_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_accinfo2_ok_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+int HP_chr_parse_fromlogin(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_fromlogin_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_fromlogin(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_fromlogin_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_fromlogin_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_fromlogin_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_request_accreg2(int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_request_accreg2_pre ) {
+ int (*preHookFunc) (int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_request_accreg2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_request_accreg2_pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.request_accreg2(account_id, char_id);
+ }
+ if( HPMHooks.count.HP_chr_request_accreg2_post ) {
+ int (*postHookFunc) (int retVal___, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_request_accreg2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_request_accreg2_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_global_accreg_to_login_start(int account_id, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_start_pre ) {
+ void (*preHookFunc) (int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_start_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_start_pre[hIndex].func;
+ preHookFunc(&account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.global_accreg_to_login_start(account_id, char_id);
+ }
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_start_post ) {
+ void (*postHookFunc) (int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_start_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_start_post[hIndex].func;
+ postHookFunc(&account_id, &char_id);
+ }
+ }
+ return;
+}
+void HP_chr_global_accreg_to_login_send(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_send_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_send_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.global_accreg_to_login_send();
+ }
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_send_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_send_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_chr_global_accreg_to_login_add(const char *key, unsigned int index, intptr_t val, bool is_string) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_add_pre ) {
+ void (*preHookFunc) (const char *key, unsigned int *index, intptr_t *val, bool *is_string);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_add_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_add_pre[hIndex].func;
+ preHookFunc(key, &index, &val, &is_string);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.global_accreg_to_login_add(key, index, val, is_string);
+ }
+ if( HPMHooks.count.HP_chr_global_accreg_to_login_add_post ) {
+ void (*postHookFunc) (const char *key, unsigned int *index, intptr_t *val, bool *is_string);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_global_accreg_to_login_add_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_global_accreg_to_login_add_post[hIndex].func;
+ postHookFunc(key, &index, &val, &is_string);
+ }
+ }
+ return;
+}
+void HP_chr_read_fame_list(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_read_fame_list_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_read_fame_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_read_fame_list_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.read_fame_list();
+ }
+ if( HPMHooks.count.HP_chr_read_fame_list_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_read_fame_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_read_fame_list_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_chr_send_fame_list(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_send_fame_list_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_fame_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_fame_list_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.send_fame_list(fd);
+ }
+ if( HPMHooks.count.HP_chr_send_fame_list_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_fame_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_fame_list_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_update_fame_list(int type, int index, int fame) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_update_fame_list_pre ) {
+ void (*preHookFunc) (int *type, int *index, int *fame);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_update_fame_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_update_fame_list_pre[hIndex].func;
+ preHookFunc(&type, &index, &fame);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.update_fame_list(type, index, fame);
+ }
+ if( HPMHooks.count.HP_chr_update_fame_list_post ) {
+ void (*postHookFunc) (int *type, int *index, int *fame);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_update_fame_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_update_fame_list_post[hIndex].func;
+ postHookFunc(&type, &index, &fame);
+ }
+ }
+ return;
+}
+int HP_chr_loadName(int char_id, char *name) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_loadName_pre ) {
+ int (*preHookFunc) (int *char_id, char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_loadName_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_loadName_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.loadName(char_id, name);
+ }
+ if( HPMHooks.count.HP_chr_loadName_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_loadName_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_loadName_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, name);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_parse_frommap_datasync(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_datasync_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_datasync_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_datasync_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_datasync(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_datasync_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_datasync_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_datasync_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_skillid2idx(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_skillid2idx_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_skillid2idx_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_skillid2idx_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_skillid2idx(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_skillid2idx_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_skillid2idx_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_skillid2idx_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_map_received_ok(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_map_received_ok_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_received_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_map_received_ok_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.map_received_ok(fd);
+ }
+ if( HPMHooks.count.HP_chr_map_received_ok_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_received_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_map_received_ok_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_send_maps(int fd, int id, int j) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_maps_pre ) {
+ void (*preHookFunc) (int *fd, int *id, int *j);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_maps_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_maps_pre[hIndex].func;
+ preHookFunc(&fd, &id, &j);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_maps(fd, id, j);
+ }
+ if( HPMHooks.count.HP_chr_send_maps_post ) {
+ void (*postHookFunc) (int *fd, int *id, int *j);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_maps_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_maps_post[hIndex].func;
+ postHookFunc(&fd, &id, &j);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_map_names(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_map_names_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_map_names_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_map_names_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_map_names(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_map_names_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_map_names_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_map_names_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_send_scdata(int fd, int aid, int cid) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_scdata_pre ) {
+ void (*preHookFunc) (int *fd, int *aid, int *cid);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_scdata_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_scdata_pre[hIndex].func;
+ preHookFunc(&fd, &aid, &cid);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_scdata(fd, aid, cid);
+ }
+ if( HPMHooks.count.HP_chr_send_scdata_post ) {
+ void (*postHookFunc) (int *fd, int *aid, int *cid);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_scdata_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_scdata_post[hIndex].func;
+ postHookFunc(&fd, &aid, &cid);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_request_scdata(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_request_scdata_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_request_scdata_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_request_scdata_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_request_scdata(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_request_scdata_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_request_scdata_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_request_scdata_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_set_users_count(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_set_users_count_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_users_count_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_users_count_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_set_users_count(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_set_users_count_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_users_count_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_users_count_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_set_users(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_set_users_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_users_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_users_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_set_users(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_set_users_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_users_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_users_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_save_character_ack(int fd, int aid, int cid) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_save_character_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *aid, int *cid);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_save_character_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_save_character_ack_pre[hIndex].func;
+ preHookFunc(&fd, &aid, &cid);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.save_character_ack(fd, aid, cid);
+ }
+ if( HPMHooks.count.HP_chr_save_character_ack_post ) {
+ void (*postHookFunc) (int *fd, int *aid, int *cid);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_save_character_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_save_character_ack_post[hIndex].func;
+ postHookFunc(&fd, &aid, &cid);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_save_character(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_save_character_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_save_character_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_save_character_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_save_character(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_save_character_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_save_character_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_save_character_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_select_ack(int fd, int account_id, uint8 flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_select_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, uint8 *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_select_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_select_ack_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.select_ack(fd, account_id, flag);
+ }
+ if( HPMHooks.count.HP_chr_select_ack_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, uint8 *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_select_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_select_ack_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_char_select_req(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_char_select_req_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_char_select_req_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_char_select_req_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_char_select_req(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_char_select_req_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_char_select_req_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_char_select_req_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_change_map_server_ack(int fd, uint8 *data, bool ok) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_change_map_server_ack_pre ) {
+ void (*preHookFunc) (int *fd, uint8 *data, bool *ok);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_change_map_server_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_change_map_server_ack_pre[hIndex].func;
+ preHookFunc(&fd, data, &ok);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.change_map_server_ack(fd, data, ok);
+ }
+ if( HPMHooks.count.HP_chr_change_map_server_ack_post ) {
+ void (*postHookFunc) (int *fd, uint8 *data, bool *ok);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_change_map_server_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_change_map_server_ack_post[hIndex].func;
+ postHookFunc(&fd, data, &ok);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_change_map_server(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_change_map_server_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_map_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_map_server_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_change_map_server(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_change_map_server_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_map_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_map_server_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_remove_friend(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_remove_friend_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_remove_friend_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_remove_friend_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_remove_friend(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_remove_friend_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_remove_friend_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_remove_friend_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_char_name_ack(int fd, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_char_name_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_name_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_char_name_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.char_name_ack(fd, char_id);
+ }
+ if( HPMHooks.count.HP_chr_char_name_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_char_name_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_char_name_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_char_name_request(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_char_name_request_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_char_name_request_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_char_name_request_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_char_name_request(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_char_name_request_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_char_name_request_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_char_name_request_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_change_email(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_change_email_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_email_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_email_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_change_email(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_change_email_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_email_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_email_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_ban(int account_id, int char_id, time_t *unban_time, short year, short month, short day, short hour, short minute, short second) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_ban_pre ) {
+ void (*preHookFunc) (int *account_id, int *char_id, time_t *unban_time, short *year, short *month, short *day, short *hour, short *minute, short *second);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_ban_pre[hIndex].func;
+ preHookFunc(&account_id, &char_id, unban_time, &year, &month, &day, &hour, &minute, &second);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.ban(account_id, char_id, unban_time, year, month, day, hour, minute, second);
+ }
+ if( HPMHooks.count.HP_chr_ban_post ) {
+ void (*postHookFunc) (int *account_id, int *char_id, time_t *unban_time, short *year, short *month, short *day, short *hour, short *minute, short *second);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_ban_post[hIndex].func;
+ postHookFunc(&account_id, &char_id, unban_time, &year, &month, &day, &hour, &minute, &second);
+ }
+ }
+ return;
+}
+void HP_chr_unban(int char_id, int *result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_unban_pre ) {
+ void (*preHookFunc) (int *char_id, int *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_unban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_unban_pre[hIndex].func;
+ preHookFunc(&char_id, result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.unban(char_id, result);
+ }
+ if( HPMHooks.count.HP_chr_unban_post ) {
+ void (*postHookFunc) (int *char_id, int *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_unban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_unban_post[hIndex].func;
+ postHookFunc(&char_id, result);
+ }
+ }
+ return;
+}
+void HP_chr_ask_name_ack(int fd, int acc, const char *name, int type, int result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_ask_name_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *acc, const char *name, int *type, int *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ask_name_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_ask_name_ack_pre[hIndex].func;
+ preHookFunc(&fd, &acc, name, &type, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.ask_name_ack(fd, acc, name, type, result);
+ }
+ if( HPMHooks.count.HP_chr_ask_name_ack_post ) {
+ void (*postHookFunc) (int *fd, int *acc, const char *name, int *type, int *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_ask_name_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_ask_name_ack_post[hIndex].func;
+ postHookFunc(&fd, &acc, name, &type, &result);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_change_account(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_change_account_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_account_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_account_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_change_account(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_change_account_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_change_account_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_change_account_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_fame_list(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_fame_list_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_fame_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_fame_list_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_fame_list(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_fame_list_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_fame_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_fame_list_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_divorce_char(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_divorce_char_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_divorce_char_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_divorce_char_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_divorce_char(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_divorce_char_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_divorce_char_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_divorce_char_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_ragsrvinfo(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_ragsrvinfo_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_ragsrvinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_ragsrvinfo_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_ragsrvinfo(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_ragsrvinfo_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_ragsrvinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_ragsrvinfo_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_set_char_offline(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_set_char_offline_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_char_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_char_offline_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_set_char_offline(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_set_char_offline_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_char_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_char_offline_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_set_all_offline(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_set_all_offline_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_all_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_all_offline_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_set_all_offline(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_set_all_offline_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_all_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_all_offline_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_set_char_online(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_set_char_online_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_char_online_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_char_online_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_set_char_online(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_set_char_online_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_set_char_online_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_set_char_online_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_build_fame_list(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_build_fame_list_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_build_fame_list_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_build_fame_list_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_build_fame_list(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_build_fame_list_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_build_fame_list_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_build_fame_list_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_save_status_change_data(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_save_status_change_data_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_save_status_change_data_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_save_status_change_data_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_save_status_change_data(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_save_status_change_data_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_save_status_change_data_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_save_status_change_data_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_send_pong(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_pong_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_pong_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_pong_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_pong(fd);
+ }
+ if( HPMHooks.count.HP_chr_send_pong_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_pong_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_pong_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_ping(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_ping_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_ping_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_ping_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_ping(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_ping_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_ping_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_ping_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_map_auth_ok(int fd, int account_id, struct char_auth_node *node, struct mmo_charstatus *cd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_map_auth_ok_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, struct char_auth_node *node, struct mmo_charstatus *cd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_auth_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_map_auth_ok_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, node, cd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.map_auth_ok(fd, account_id, node, cd);
+ }
+ if( HPMHooks.count.HP_chr_map_auth_ok_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, struct char_auth_node *node, struct mmo_charstatus *cd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_auth_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_map_auth_ok_post[hIndex].func;
+ postHookFunc(&fd, &account_id, node, cd);
+ }
+ }
+ return;
+}
+void HP_chr_map_auth_failed(int fd, int account_id, int char_id, int login_id1, char sex, uint32 ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_map_auth_failed_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *char_id, int *login_id1, char *sex, uint32 *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_auth_failed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_map_auth_failed_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &char_id, &login_id1, &sex, &ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.map_auth_failed(fd, account_id, char_id, login_id1, sex, ip);
+ }
+ if( HPMHooks.count.HP_chr_map_auth_failed_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *char_id, int *login_id1, char *sex, uint32 *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_map_auth_failed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_map_auth_failed_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &char_id, &login_id1, &sex, &ip);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_auth_request(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_auth_request_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_auth_request_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_auth_request_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_auth_request(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_auth_request_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_auth_request_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_auth_request_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_update_ip(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_update_ip_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_update_ip_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_update_ip_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_update_ip(fd, id);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_update_ip_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_update_ip_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_update_ip_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_request_stats_report(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_request_stats_report_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_request_stats_report_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_request_stats_report_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_request_stats_report(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_request_stats_report_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_request_stats_report_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_request_stats_report_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_scdata_update(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_scdata_update_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_scdata_update_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_scdata_update_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_scdata_update(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_scdata_update_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_scdata_update_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_scdata_update_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_frommap_scdata_delete(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_scdata_delete_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_scdata_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_scdata_delete_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_frommap_scdata_delete(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_scdata_delete_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_scdata_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_scdata_delete_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+int HP_chr_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_search_mapserver(unsigned short map, uint32 ip, uint16 port) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_search_mapserver_pre ) {
+ int (*preHookFunc) (unsigned short *map, uint32 *ip, uint16 *port);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_search_mapserver_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_search_mapserver_pre[hIndex].func;
+ retVal___ = preHookFunc(&map, &ip, &port);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.search_mapserver(map, ip, port);
+ }
+ if( HPMHooks.count.HP_chr_search_mapserver_post ) {
+ int (*postHookFunc) (int retVal___, unsigned short *map, uint32 *ip, uint16 *port);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_search_mapserver_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_search_mapserver_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &map, &ip, &port);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_mapif_init(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_mapif_init_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mapif_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_mapif_init_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.mapif_init(fd);
+ }
+ if( HPMHooks.count.HP_chr_mapif_init_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_mapif_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_mapif_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_lan_subnetcheck(uint32 ip) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_lan_subnetcheck_pre ) {
+ int (*preHookFunc) (uint32 *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnetcheck_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_lan_subnetcheck_pre[hIndex].func;
+ retVal___ = preHookFunc(&ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.lan_subnetcheck(ip);
+ }
+ if( HPMHooks.count.HP_chr_lan_subnetcheck_post ) {
+ int (*postHookFunc) (int retVal___, uint32 *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnetcheck_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_lan_subnetcheck_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &ip);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_delete2_ack(int fd, int char_id, uint32 result, time_t delete_date) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, uint32 *result, time_t *delete_date);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result, &delete_date);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_ack(fd, char_id, result, delete_date);
+ }
+ if( HPMHooks.count.HP_chr_delete2_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, uint32 *result, time_t *delete_date);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result, &delete_date);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_accept_actual_ack(int fd, int char_id, uint32 result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_accept_actual_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, uint32 *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_actual_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_accept_actual_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_accept_actual_ack(fd, char_id, result);
+ }
+ if( HPMHooks.count.HP_chr_delete2_accept_actual_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, uint32 *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_actual_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_accept_actual_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_accept_ack(int fd, int char_id, uint32 result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_accept_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, uint32 *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_accept_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_accept_ack(fd, char_id, result);
+ }
+ if( HPMHooks.count.HP_chr_delete2_accept_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, uint32 *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_accept_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_cancel_ack(int fd, int char_id, uint32 result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_cancel_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, uint32 *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_cancel_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_cancel_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_cancel_ack(fd, char_id, result);
+ }
+ if( HPMHooks.count.HP_chr_delete2_cancel_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, uint32 *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_cancel_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_cancel_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_req(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_req_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_req_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_req_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_req(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_delete2_req_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_req_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_req_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_accept(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_accept_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_accept_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_accept(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_delete2_accept_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_accept_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_accept_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_delete2_cancel(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete2_cancel_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_cancel_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete2_cancel_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete2_cancel(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_delete2_cancel_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete2_cancel_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete2_cancel_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_send_account_id(int fd, int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_account_id_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_account_id_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_account_id_pre[hIndex].func;
+ preHookFunc(&fd, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_account_id(fd, account_id);
+ }
+ if( HPMHooks.count.HP_chr_send_account_id_post ) {
+ void (*postHookFunc) (int *fd, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_account_id_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_account_id_post[hIndex].func;
+ postHookFunc(&fd, &account_id);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_connect(int fd, struct char_session_data *sd, uint32 ipl) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_connect_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_connect_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_connect_pre[hIndex].func;
+ preHookFunc(&fd, sd, &ipl);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_connect(fd, sd, ipl);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_connect_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_connect_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_connect_post[hIndex].func;
+ postHookFunc(&fd, sd, &ipl);
+ }
+ }
+ return;
+}
+void HP_chr_send_map_info(int fd, int i, uint32 subnet_map_ip, struct mmo_charstatus *cd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_map_info_pre ) {
+ void (*preHookFunc) (int *fd, int *i, uint32 *subnet_map_ip, struct mmo_charstatus *cd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_map_info_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_map_info_pre[hIndex].func;
+ preHookFunc(&fd, &i, &subnet_map_ip, cd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_map_info(fd, i, subnet_map_ip, cd);
+ }
+ if( HPMHooks.count.HP_chr_send_map_info_post ) {
+ void (*postHookFunc) (int *fd, int *i, uint32 *subnet_map_ip, struct mmo_charstatus *cd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_map_info_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_map_info_post[hIndex].func;
+ postHookFunc(&fd, &i, &subnet_map_ip, cd);
+ }
+ }
+ return;
+}
+void HP_chr_send_wait_char_server(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_send_wait_char_server_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_wait_char_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_wait_char_server_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.send_wait_char_server(fd);
+ }
+ if( HPMHooks.count.HP_chr_send_wait_char_server_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_wait_char_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_wait_char_server_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+int HP_chr_search_default_maps_mapserver(struct mmo_charstatus *cd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_search_default_maps_mapserver_pre ) {
+ int (*preHookFunc) (struct mmo_charstatus *cd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_search_default_maps_mapserver_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_search_default_maps_mapserver_pre[hIndex].func;
+ retVal___ = preHookFunc(cd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.search_default_maps_mapserver(cd);
+ }
+ if( HPMHooks.count.HP_chr_search_default_maps_mapserver_post ) {
+ int (*postHookFunc) (int retVal___, struct mmo_charstatus *cd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_search_default_maps_mapserver_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_search_default_maps_mapserver_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, cd);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_parse_char_select(int fd, struct char_session_data *sd, uint32 ipl) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_select_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_select_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_select_pre[hIndex].func;
+ preHookFunc(&fd, sd, &ipl);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_select(fd, sd, ipl);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_select_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_select_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_select_post[hIndex].func;
+ postHookFunc(&fd, sd, &ipl);
+ }
+ }
+ return;
+}
+void HP_chr_creation_failed(int fd, int result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_creation_failed_pre ) {
+ void (*preHookFunc) (int *fd, int *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_creation_failed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_creation_failed_pre[hIndex].func;
+ preHookFunc(&fd, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.creation_failed(fd, result);
+ }
+ if( HPMHooks.count.HP_chr_creation_failed_post ) {
+ void (*postHookFunc) (int *fd, int *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_creation_failed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_creation_failed_post[hIndex].func;
+ postHookFunc(&fd, &result);
+ }
+ }
+ return;
+}
+void HP_chr_creation_ok(int fd, struct mmo_charstatus *char_dat) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_creation_ok_pre ) {
+ void (*preHookFunc) (int *fd, struct mmo_charstatus *char_dat);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_creation_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_creation_ok_pre[hIndex].func;
+ preHookFunc(&fd, char_dat);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.creation_ok(fd, char_dat);
+ }
+ if( HPMHooks.count.HP_chr_creation_ok_post ) {
+ void (*postHookFunc) (int *fd, struct mmo_charstatus *char_dat);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_creation_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_creation_ok_post[hIndex].func;
+ postHookFunc(&fd, char_dat);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_create_new_char(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_create_new_char_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_create_new_char_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_create_new_char_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_create_new_char(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_create_new_char_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_create_new_char_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_create_new_char_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_delete_char_failed(int fd, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete_char_failed_pre ) {
+ void (*preHookFunc) (int *fd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_failed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete_char_failed_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete_char_failed(fd, flag);
+ }
+ if( HPMHooks.count.HP_chr_delete_char_failed_post ) {
+ void (*postHookFunc) (int *fd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_failed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete_char_failed_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_delete_char_ok(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_delete_char_ok_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_delete_char_ok_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.delete_char_ok(fd);
+ }
+ if( HPMHooks.count.HP_chr_delete_char_ok_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_delete_char_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_delete_char_ok_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_delete_char(int fd, struct char_session_data *sd, unsigned short cmd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_delete_char_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd, unsigned short *cmd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete_char_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_delete_char_pre[hIndex].func;
+ preHookFunc(&fd, sd, &cmd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_delete_char(fd, sd, cmd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_delete_char_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd, unsigned short *cmd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete_char_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_delete_char_post[hIndex].func;
+ postHookFunc(&fd, sd, &cmd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_ping(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_ping_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_ping_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_ping_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_ping(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_ping_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_ping_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_ping_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_allow_rename(int fd, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_allow_rename_pre ) {
+ void (*preHookFunc) (int *fd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_allow_rename_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_allow_rename_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.allow_rename(fd, flag);
+ }
+ if( HPMHooks.count.HP_chr_allow_rename_post ) {
+ void (*postHookFunc) (int *fd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_allow_rename_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_allow_rename_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_rename_char(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_rename_char_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_rename_char(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_rename_char_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_rename_char2(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_rename_char2_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char2_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_rename_char2(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_rename_char2_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char2_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_rename_char_ack(int fd, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_rename_char_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_rename_char_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_rename_char_ack_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.rename_char_ack(fd, flag);
+ }
+ if( HPMHooks.count.HP_chr_rename_char_ack_post ) {
+ void (*postHookFunc) (int *fd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_rename_char_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_rename_char_ack_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_rename_char_confirm(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_rename_char_confirm_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char_confirm_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char_confirm_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_rename_char_confirm(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_rename_char_confirm_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_rename_char_confirm_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_rename_char_confirm_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_captcha_notsupported(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_captcha_notsupported_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_captcha_notsupported_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_captcha_notsupported_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.captcha_notsupported(fd);
+ }
+ if( HPMHooks.count.HP_chr_captcha_notsupported_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_captcha_notsupported_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_captcha_notsupported_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_request_captcha(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_request_captcha_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_request_captcha_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_request_captcha_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_request_captcha(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_request_captcha_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_request_captcha_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_request_captcha_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_check_captcha(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_check_captcha_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_check_captcha_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_check_captcha_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_check_captcha(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_check_captcha_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_check_captcha_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_check_captcha_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_delete2_req(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_delete2_req_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_req_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_req_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_delete2_req(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_delete2_req_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_req_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_req_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_delete2_accept(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_delete2_accept_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_accept_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_accept_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_delete2_accept(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_delete2_accept_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_accept_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_accept_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_delete2_cancel(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_delete2_cancel_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_cancel_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_cancel_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_delete2_cancel(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_delete2_cancel_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_delete2_cancel_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_delete2_cancel_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_login_map_server_ack(int fd, uint8 flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_login_map_server_ack_pre ) {
+ void (*preHookFunc) (int *fd, uint8 *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_login_map_server_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_login_map_server_ack_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.login_map_server_ack(fd, flag);
+ }
+ if( HPMHooks.count.HP_chr_login_map_server_ack_post ) {
+ void (*postHookFunc) (int *fd, uint8 *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_login_map_server_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_login_map_server_ack_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_login_map_server(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_login_map_server_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_login_map_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_login_map_server_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_login_map_server(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_login_map_server_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_login_map_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_login_map_server_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_pincode_check(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_pincode_check_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_check_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_check_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_pincode_check(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_pincode_check_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_check_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_check_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_pincode_window(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_pincode_window_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_window_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_window_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_pincode_window(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_pincode_window_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_window_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_window_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_pincode_change(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_pincode_change_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_change_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_change_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_pincode_change(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_pincode_change_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_change_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_change_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_pincode_first_pin(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_pincode_first_pin_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_first_pin_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_first_pin_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_pincode_first_pin(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_pincode_first_pin_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pincode_first_pin_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_pincode_first_pin_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_request_chars(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_request_chars_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_request_chars_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_request_chars_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_request_chars(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_request_chars_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_request_chars_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_request_chars_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_chr_change_character_slot_ack(int fd, bool ret) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_change_character_slot_ack_pre ) {
+ void (*preHookFunc) (int *fd, bool *ret);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_change_character_slot_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_change_character_slot_ack_pre[hIndex].func;
+ preHookFunc(&fd, &ret);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.change_character_slot_ack(fd, ret);
+ }
+ if( HPMHooks.count.HP_chr_change_character_slot_ack_post ) {
+ void (*postHookFunc) (int *fd, bool *ret);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_change_character_slot_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_change_character_slot_ack_post[hIndex].func;
+ postHookFunc(&fd, &ret);
+ }
+ }
+ return;
+}
+void HP_chr_parse_char_move_character(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_parse_char_move_character_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_move_character_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_move_character_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.parse_char_move_character(fd, sd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_move_character_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_move_character_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_move_character_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+int HP_chr_parse_char_unknown_packet(int fd, uint32 ipl) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_char_unknown_packet_pre ) {
+ int (*preHookFunc) (int *fd, uint32 *ipl);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_unknown_packet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_unknown_packet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &ipl);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_char_unknown_packet(fd, ipl);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_unknown_packet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, uint32 *ipl);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_unknown_packet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_unknown_packet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &ipl);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_parse_char(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_parse_char_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_parse_char_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.parse_char(fd);
+ }
+ if( HPMHooks.count.HP_chr_parse_char_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_parse_char_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_broadcast_user_count(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_broadcast_user_count_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_broadcast_user_count_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_broadcast_user_count_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.broadcast_user_count(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_chr_broadcast_user_count_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_broadcast_user_count_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_broadcast_user_count_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_send_accounts_tologin_sub(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_send_accounts_tologin_sub_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_accounts_tologin_sub_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_chr_send_accounts_tologin_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.chr.send_accounts_tologin_sub(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_chr_send_accounts_tologin_sub_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_accounts_tologin_sub_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_chr_send_accounts_tologin_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_send_accounts_tologin(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_send_accounts_tologin_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_accounts_tologin_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_send_accounts_tologin_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.send_accounts_tologin(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_chr_send_accounts_tologin_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_send_accounts_tologin_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_send_accounts_tologin_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_check_connect_login_server(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_check_connect_login_server_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_check_connect_login_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_check_connect_login_server_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.check_connect_login_server(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_chr_check_connect_login_server_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_check_connect_login_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_check_connect_login_server_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_online_data_cleanup_sub(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_online_data_cleanup_sub_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_online_data_cleanup_sub_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_chr_online_data_cleanup_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.chr.online_data_cleanup_sub(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_chr_online_data_cleanup_sub_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_online_data_cleanup_sub_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_chr_online_data_cleanup_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_online_data_cleanup_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_online_data_cleanup_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_online_data_cleanup_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.online_data_cleanup(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_chr_online_data_cleanup_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_online_data_cleanup_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_online_data_cleanup_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_chr_lan_config_read(const char *lancfgName) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_lan_config_read_pre ) {
+ int (*preHookFunc) (const char *lancfgName);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_lan_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(lancfgName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.lan_config_read(lancfgName);
+ }
+ if( HPMHooks.count.HP_chr_lan_config_read_post ) {
+ int (*postHookFunc) (int retVal___, const char *lancfgName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_lan_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, lancfgName);
+ }
+ }
+ return retVal___;
+}
+void HP_chr_sql_config_read(const char *cfgName) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_sql_config_read_pre ) {
+ void (*preHookFunc) (const char *cfgName);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_sql_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_sql_config_read_pre[hIndex].func;
+ preHookFunc(cfgName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.sql_config_read(cfgName);
+ }
+ if( HPMHooks.count.HP_chr_sql_config_read_post ) {
+ void (*postHookFunc) (const char *cfgName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_sql_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_sql_config_read_post[hIndex].func;
+ postHookFunc(cfgName);
+ }
+ }
+ return;
+}
+void HP_chr_config_dispatch(char *w1, char *w2) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_chr_config_dispatch_pre ) {
+ void (*preHookFunc) (char *w1, char *w2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_config_dispatch_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_config_dispatch_pre[hIndex].func;
+ preHookFunc(w1, w2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.chr.config_dispatch(w1, w2);
+ }
+ if( HPMHooks.count.HP_chr_config_dispatch_post ) {
+ void (*postHookFunc) (char *w1, char *w2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_config_dispatch_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_config_dispatch_post[hIndex].func;
+ postHookFunc(w1, w2);
+ }
+ }
+ return;
+}
+int HP_chr_config_read(const char *cfgName) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_chr_config_read_pre ) {
+ int (*preHookFunc) (const char *cfgName);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_chr_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(cfgName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.chr.config_read(cfgName);
+ }
+ if( HPMHooks.count.HP_chr_config_read_post ) {
+ int (*postHookFunc) (int retVal___, const char *cfgName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_chr_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, cfgName);
+ }
+ }
+ return retVal___;
+}
+/* geoip */
+const char* HP_geoip_getcountry(uint32 ipnum) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_geoip_getcountry_pre ) {
+ const char* (*preHookFunc) (uint32 *ipnum);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_getcountry_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_geoip_getcountry_pre[hIndex].func;
+ retVal___ = preHookFunc(&ipnum);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.geoip.getcountry(ipnum);
+ }
+ if( HPMHooks.count.HP_geoip_getcountry_post ) {
+ const char* (*postHookFunc) (const char* retVal___, uint32 *ipnum);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_getcountry_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_geoip_getcountry_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &ipnum);
+ }
+ }
+ return retVal___;
+}
+void HP_geoip_final(bool shutdown) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_geoip_final_pre ) {
+ void (*preHookFunc) (bool *shutdown);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_geoip_final_pre[hIndex].func;
+ preHookFunc(&shutdown);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.geoip.final(shutdown);
+ }
+ if( HPMHooks.count.HP_geoip_final_post ) {
+ void (*postHookFunc) (bool *shutdown);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_geoip_final_post[hIndex].func;
+ postHookFunc(&shutdown);
+ }
+ }
+ return;
+}
+void HP_geoip_init(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_geoip_init_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_geoip_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.geoip.init();
+ }
+ if( HPMHooks.count.HP_geoip_init_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_geoip_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_geoip_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+/* inter_auction */
+int HP_inter_auction_count(int char_id, bool buy) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_auction_count_pre ) {
+ int (*preHookFunc) (int *char_id, bool *buy);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_count_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_count_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &buy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_auction.count(char_id, buy);
+ }
+ if( HPMHooks.count.HP_inter_auction_count_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, bool *buy);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_count_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_count_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &buy);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_auction_save(struct auction_data *auction) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_auction_save_pre ) {
+ void (*preHookFunc) (struct auction_data *auction);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_save_pre[hIndex].func;
+ preHookFunc(auction);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_auction.save(auction);
+ }
+ if( HPMHooks.count.HP_inter_auction_save_post ) {
+ void (*postHookFunc) (struct auction_data *auction);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_save_post[hIndex].func;
+ postHookFunc(auction);
+ }
+ }
+ return;
+}
+unsigned int HP_inter_auction_create(struct auction_data *auction) {
+ int hIndex = 0;
+ unsigned int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_auction_create_pre ) {
+ unsigned int (*preHookFunc) (struct auction_data *auction);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_create_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_create_pre[hIndex].func;
+ retVal___ = preHookFunc(auction);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_auction.create(auction);
+ }
+ if( HPMHooks.count.HP_inter_auction_create_post ) {
+ unsigned int (*postHookFunc) (unsigned int retVal___, struct auction_data *auction);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_create_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_create_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, auction);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_auction_end_timer(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_auction_end_timer_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_end_timer_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_end_timer_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_auction.end_timer(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_inter_auction_end_timer_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_end_timer_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_end_timer_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_auction_delete_(struct auction_data *auction) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_auction_delete__pre ) {
+ void (*preHookFunc) (struct auction_data *auction);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_delete__pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_delete__pre[hIndex].func;
+ preHookFunc(auction);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_auction.delete_(auction);
+ }
+ if( HPMHooks.count.HP_inter_auction_delete__post ) {
+ void (*postHookFunc) (struct auction_data *auction);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_delete__post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_delete__post[hIndex].func;
+ postHookFunc(auction);
+ }
+ }
+ return;
+}
+void HP_inter_auction_fromsql(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_auction_fromsql_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_fromsql_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_auction.fromsql();
+ }
+ if( HPMHooks.count.HP_inter_auction_fromsql_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_fromsql_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_auction_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_auction_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_auction.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_auction_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_auction_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_auction_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_auction.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_auction_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_auction_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_auction_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_auction_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_auction.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_auction_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_auction_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_auction_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+/* inter_elemental */
+void HP_inter_elemental_sql_init(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_elemental_sql_init_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_elemental_sql_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_elemental.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_elemental_sql_init_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_elemental_sql_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_inter_elemental_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_elemental_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_elemental_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_elemental.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_elemental_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_elemental_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_elemental_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_elemental_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_elemental_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_elemental.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_elemental_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_elemental_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_elemental_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* inter_guild */
+int HP_inter_guild_save_timer(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_save_timer_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_save_timer_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_save_timer_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.save_timer(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_inter_guild_save_timer_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_save_timer_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_save_timer_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_removemember_tosql(int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_removemember_tosql_pre ) {
+ int (*preHookFunc) (int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_removemember_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_removemember_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.removemember_tosql(account_id, char_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_removemember_tosql_post ) {
+ int (*postHookFunc) (int retVal___, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_removemember_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_removemember_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_tosql(struct guild *g, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_tosql_pre ) {
+ int (*preHookFunc) (struct guild *g, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.tosql(g, flag);
+ }
+ if( HPMHooks.count.HP_inter_guild_tosql_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &flag);
+ }
+ }
+ return retVal___;
+}
+struct guild* HP_inter_guild_fromsql(int guild_id) {
+ int hIndex = 0;
+ struct guild* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_guild_fromsql_pre ) {
+ struct guild* (*preHookFunc) (int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.fromsql(guild_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_fromsql_post ) {
+ struct guild* (*postHookFunc) (struct guild* retVal___, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_castle_tosql(struct guild_castle *gc) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_castle_tosql_pre ) {
+ int (*preHookFunc) (struct guild_castle *gc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_castle_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_castle_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(gc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.castle_tosql(gc);
+ }
+ if( HPMHooks.count.HP_inter_guild_castle_tosql_post ) {
+ int (*postHookFunc) (int retVal___, struct guild_castle *gc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_castle_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_castle_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, gc);
+ }
+ }
+ return retVal___;
+}
+struct guild_castle* HP_inter_guild_castle_fromsql(int castle_id) {
+ int hIndex = 0;
+ struct guild_castle* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_guild_castle_fromsql_pre ) {
+ struct guild_castle* (*preHookFunc) (int *castle_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_castle_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_castle_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&castle_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.castle_fromsql(castle_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_castle_fromsql_post ) {
+ struct guild_castle* (*postHookFunc) (struct guild_castle* retVal___, int *castle_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_castle_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_castle_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &castle_id);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_guild_exp_parse_row(char *split[], int column, int current) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_guild_exp_parse_row_pre ) {
+ bool (*preHookFunc) (char *split[], int *column, int *current);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_exp_parse_row_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_exp_parse_row_pre[hIndex].func;
+ retVal___ = preHookFunc(split, &column, &current);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.exp_parse_row(split, column, current);
+ }
+ if( HPMHooks.count.HP_inter_guild_exp_parse_row_post ) {
+ bool (*postHookFunc) (bool retVal___, char *split[], int *column, int *current);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_exp_parse_row_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_exp_parse_row_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, split, &column, &current);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_CharOnline(int char_id, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_CharOnline_pre ) {
+ int (*preHookFunc) (int *char_id, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_CharOnline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_CharOnline_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.CharOnline(char_id, guild_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_CharOnline_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_CharOnline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_CharOnline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_CharOffline(int char_id, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_CharOffline_pre ) {
+ int (*preHookFunc) (int *char_id, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_CharOffline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_CharOffline_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.CharOffline(char_id, guild_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_CharOffline_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_CharOffline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_CharOffline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_guild_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_db_final(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_db_final_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_db_final_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_inter_guild_db_final_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.inter_guild.db_final(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_inter_guild_db_final_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_db_final_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_inter_guild_db_final_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_guild_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_guild_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_guild.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_guild_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_guild_search_guildname(char *str) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_search_guildname_pre ) {
+ int (*preHookFunc) (char *str);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_search_guildname_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_search_guildname_pre[hIndex].func;
+ retVal___ = preHookFunc(str);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.search_guildname(str);
+ }
+ if( HPMHooks.count.HP_inter_guild_search_guildname_post ) {
+ int (*postHookFunc) (int retVal___, char *str);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_search_guildname_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_search_guildname_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, str);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_guild_check_empty(struct guild *g) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_guild_check_empty_pre ) {
+ bool (*preHookFunc) (struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_check_empty_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_check_empty_pre[hIndex].func;
+ retVal___ = preHookFunc(g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.check_empty(g);
+ }
+ if( HPMHooks.count.HP_inter_guild_check_empty_post ) {
+ bool (*postHookFunc) (bool retVal___, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_check_empty_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_check_empty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g);
+ }
+ }
+ return retVal___;
+}
+unsigned int HP_inter_guild_nextexp(int level) {
+ int hIndex = 0;
+ unsigned int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_nextexp_pre ) {
+ unsigned int (*preHookFunc) (int *level);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_nextexp_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_nextexp_pre[hIndex].func;
+ retVal___ = preHookFunc(&level);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.nextexp(level);
+ }
+ if( HPMHooks.count.HP_inter_guild_nextexp_post ) {
+ unsigned int (*postHookFunc) (unsigned int retVal___, int *level);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_nextexp_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_nextexp_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &level);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_checkskill(struct guild *g, int id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_checkskill_pre ) {
+ int (*preHookFunc) (struct guild *g, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_checkskill_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_checkskill_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.checkskill(g, id);
+ }
+ if( HPMHooks.count.HP_inter_guild_checkskill_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_checkskill_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_checkskill_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_calcinfo(struct guild *g) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_calcinfo_pre ) {
+ int (*preHookFunc) (struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_calcinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_calcinfo_pre[hIndex].func;
+ retVal___ = preHookFunc(g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.calcinfo(g);
+ }
+ if( HPMHooks.count.HP_inter_guild_calcinfo_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_calcinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_calcinfo_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_sex_changed(int guild_id, int account_id, int char_id, short gender) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_sex_changed_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, short *gender);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sex_changed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_sex_changed_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &gender);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.sex_changed(guild_id, account_id, char_id, gender);
+ }
+ if( HPMHooks.count.HP_inter_guild_sex_changed_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, short *gender);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_sex_changed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_sex_changed_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &gender);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_charname_changed(int guild_id, int account_id, int char_id, char *name) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_charname_changed_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_charname_changed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_charname_changed_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, &char_id, name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.charname_changed(guild_id, account_id, char_id, name);
+ }
+ if( HPMHooks.count.HP_inter_guild_charname_changed_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_charname_changed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_charname_changed_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, name);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_guild_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_leave(int guild_id, int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_leave_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_leave_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_leave_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.leave(guild_id, account_id, char_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_leave_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_leave_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_leave_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_guild_broken(int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_guild_broken_pre ) {
+ int (*preHookFunc) (int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_broken_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_guild_broken_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_guild.broken(guild_id);
+ }
+ if( HPMHooks.count.HP_inter_guild_broken_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_guild_broken_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_guild_broken_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id);
+ }
+ }
+ return retVal___;
+}
+/* inter_homunculus */
+int HP_inter_homunculus_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_homunculus_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_homunculus_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_homunculus.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_homunculus_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_homunculus_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_homunculus_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_homunculus_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_homunculus_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_homunculus.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_homunculus_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_homunculus_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_homunculus_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_homunculus_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_homunculus_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_homunculus.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_homunculus_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_homunculus_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_homunculus_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* inter */
+const char* HP_inter_msg_txt(int msg_number) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_msg_txt_pre ) {
+ const char* (*preHookFunc) (int *msg_number);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_msg_txt_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_msg_txt_pre[hIndex].func;
+ retVal___ = preHookFunc(&msg_number);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.msg_txt(msg_number);
+ }
+ if( HPMHooks.count.HP_inter_msg_txt_post ) {
+ const char* (*postHookFunc) (const char* retVal___, int *msg_number);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_msg_txt_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_msg_txt_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &msg_number);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_msg_config_read(const char *cfg_name, bool allow_override) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_msg_config_read_pre ) {
+ bool (*preHookFunc) (const char *cfg_name, bool *allow_override);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_msg_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_msg_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(cfg_name, &allow_override);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.msg_config_read(cfg_name, allow_override);
+ }
+ if( HPMHooks.count.HP_inter_msg_config_read_post ) {
+ bool (*postHookFunc) (bool retVal___, const char *cfg_name, bool *allow_override);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_msg_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_msg_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, cfg_name, &allow_override);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_do_final_msg(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_do_final_msg_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_do_final_msg_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_do_final_msg_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter.do_final_msg();
+ }
+ if( HPMHooks.count.HP_inter_do_final_msg_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_do_final_msg_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_do_final_msg_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+const char* HP_inter_job_name(int class_) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_job_name_pre ) {
+ const char* (*preHookFunc) (int *class_);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_job_name_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_job_name_pre[hIndex].func;
+ retVal___ = preHookFunc(&class_);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.job_name(class_);
+ }
+ if( HPMHooks.count.HP_inter_job_name_post ) {
+ const char* (*postHookFunc) (const char* retVal___, int *class_);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_job_name_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_job_name_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &class_);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_vmsg_to_fd(int fd, int u_fd, int aid, char *msg, va_list ap) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_vmsg_to_fd_pre ) {
+ void (*preHookFunc) (int *fd, int *u_fd, int *aid, char *msg, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_vmsg_to_fd_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_inter_vmsg_to_fd_pre[hIndex].func;
+ preHookFunc(&fd, &u_fd, &aid, msg, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ HPMHooks.source.inter.vmsg_to_fd(fd, u_fd, aid, msg, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_inter_vmsg_to_fd_post ) {
+ void (*postHookFunc) (int *fd, int *u_fd, int *aid, char *msg, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_vmsg_to_fd_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_inter_vmsg_to_fd_post[hIndex].func;
+ postHookFunc(&fd, &u_fd, &aid, msg, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return;
+}
+void HP_inter_savereg(int account_id, int char_id, const char *key, unsigned int index, intptr_t val, bool is_string) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_savereg_pre ) {
+ void (*preHookFunc) (int *account_id, int *char_id, const char *key, unsigned int *index, intptr_t *val, bool *is_string);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_savereg_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_savereg_pre[hIndex].func;
+ preHookFunc(&account_id, &char_id, key, &index, &val, &is_string);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter.savereg(account_id, char_id, key, index, val, is_string);
+ }
+ if( HPMHooks.count.HP_inter_savereg_post ) {
+ void (*postHookFunc) (int *account_id, int *char_id, const char *key, unsigned int *index, intptr_t *val, bool *is_string);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_savereg_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_savereg_post[hIndex].func;
+ postHookFunc(&account_id, &char_id, key, &index, &val, &is_string);
+ }
+ }
+ return;
+}
+int HP_inter_accreg_fromsql(int account_id, int char_id, int fd, int type) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_accreg_fromsql_pre ) {
+ int (*preHookFunc) (int *account_id, int *char_id, int *fd, int *type);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_accreg_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_accreg_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id, &char_id, &fd, &type);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.accreg_fromsql(account_id, char_id, fd, type);
+ }
+ if( HPMHooks.count.HP_inter_accreg_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *account_id, int *char_id, int *fd, int *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_accreg_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_accreg_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id, &char_id, &fd, &type);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_config_read(const char *cfgName) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_config_read_pre ) {
+ int (*preHookFunc) (const char *cfgName);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(cfgName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.config_read(cfgName);
+ }
+ if( HPMHooks.count.HP_inter_config_read_post ) {
+ int (*postHookFunc) (int retVal___, const char *cfgName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, cfgName);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_vlog(char *fmt, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_vlog_pre ) {
+ int (*preHookFunc) (char *fmt, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_vlog_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_inter_vlog_pre[hIndex].func;
+ retVal___ = preHookFunc(fmt, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.inter.vlog(fmt, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_inter_vlog_post ) {
+ int (*postHookFunc) (int retVal___, char *fmt, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_vlog_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_inter_vlog_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, fmt, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_init_sql(const char *file) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_init_sql_pre ) {
+ int (*preHookFunc) (const char *file);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_init_sql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_init_sql_pre[hIndex].func;
+ retVal___ = preHookFunc(file);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.init_sql(file);
+ }
+ if( HPMHooks.count.HP_inter_init_sql_post ) {
+ int (*postHookFunc) (int retVal___, const char *file);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_init_sql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_init_sql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, file);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_mapif_init(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mapif_init_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mapif_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mapif_init_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.mapif_init(fd);
+ }
+ if( HPMHooks.count.HP_inter_mapif_init_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mapif_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mapif_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_check_ttl_wisdata_sub_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_sub_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.inter.check_ttl_wisdata_sub(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_inter_check_ttl_wisdata_sub_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_sub_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_check_ttl_wisdata(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_check_ttl_wisdata_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.check_ttl_wisdata();
+ }
+ if( HPMHooks.count.HP_inter_check_ttl_wisdata_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_check_length(int fd, int length) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_check_length_pre ) {
+ int (*preHookFunc) (int *fd, int *length);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_length_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_check_length_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &length);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.check_length(fd, length);
+ }
+ if( HPMHooks.count.HP_inter_check_length_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *length);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_length_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_check_length_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &length);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter.final();
+ }
+ if( HPMHooks.count.HP_inter_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+/* inter_mail */
+int HP_inter_mail_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mail_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_mail_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_mail_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_mail_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_mail.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_mail_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_mail_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mail_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_mail_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_mail_fromsql(int char_id, struct mail_data *md) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mail_fromsql_pre ) {
+ int (*preHookFunc) (int *char_id, struct mail_data *md);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, md);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.fromsql(char_id, md);
+ }
+ if( HPMHooks.count.HP_inter_mail_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, struct mail_data *md);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, md);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_mail_savemessage(struct mail_message *msg) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mail_savemessage_pre ) {
+ int (*preHookFunc) (struct mail_message *msg);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_savemessage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_savemessage_pre[hIndex].func;
+ retVal___ = preHookFunc(msg);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.savemessage(msg);
+ }
+ if( HPMHooks.count.HP_inter_mail_savemessage_post ) {
+ int (*postHookFunc) (int retVal___, struct mail_message *msg);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_savemessage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_savemessage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, msg);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_mail_loadmessage(int mail_id, struct mail_message *msg) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_mail_loadmessage_pre ) {
+ bool (*preHookFunc) (int *mail_id, struct mail_message *msg);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_loadmessage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_loadmessage_pre[hIndex].func;
+ retVal___ = preHookFunc(&mail_id, msg);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.loadmessage(mail_id, msg);
+ }
+ if( HPMHooks.count.HP_inter_mail_loadmessage_post ) {
+ bool (*postHookFunc) (bool retVal___, int *mail_id, struct mail_message *msg);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_loadmessage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_loadmessage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &mail_id, msg);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_mail_DeleteAttach(int mail_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_mail_DeleteAttach_pre ) {
+ bool (*preHookFunc) (int *mail_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_DeleteAttach_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_DeleteAttach_pre[hIndex].func;
+ retVal___ = preHookFunc(&mail_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mail.DeleteAttach(mail_id);
+ }
+ if( HPMHooks.count.HP_inter_mail_DeleteAttach_post ) {
+ bool (*postHookFunc) (bool retVal___, int *mail_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_DeleteAttach_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_DeleteAttach_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &mail_id);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_mail_sendmail(int send_id, const char *send_name, int dest_id, const char *dest_name, const char *title, const char *body, int zeny, struct item *item) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_mail_sendmail_pre ) {
+ void (*preHookFunc) (int *send_id, const char *send_name, int *dest_id, const char *dest_name, const char *title, const char *body, int *zeny, struct item *item);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sendmail_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mail_sendmail_pre[hIndex].func;
+ preHookFunc(&send_id, send_name, &dest_id, dest_name, title, body, &zeny, item);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_mail.sendmail(send_id, send_name, dest_id, dest_name, title, body, zeny, item);
+ }
+ if( HPMHooks.count.HP_inter_mail_sendmail_post ) {
+ void (*postHookFunc) (int *send_id, const char *send_name, int *dest_id, const char *dest_name, const char *title, const char *body, int *zeny, struct item *item);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mail_sendmail_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mail_sendmail_post[hIndex].func;
+ postHookFunc(&send_id, send_name, &dest_id, dest_name, title, body, &zeny, item);
+ }
+ }
+ return;
+}
+/* inter_mercenary */
+bool HP_inter_mercenary_owner_fromsql(int char_id, struct mmo_charstatus *status) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_mercenary_owner_fromsql_pre ) {
+ bool (*preHookFunc) (int *char_id, struct mmo_charstatus *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_owner_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mercenary.owner_fromsql(char_id, status);
+ }
+ if( HPMHooks.count.HP_inter_mercenary_owner_fromsql_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id, struct mmo_charstatus *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_owner_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, status);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_mercenary_owner_tosql(int char_id, struct mmo_charstatus *status) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_mercenary_owner_tosql_pre ) {
+ bool (*preHookFunc) (int *char_id, struct mmo_charstatus *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_owner_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mercenary.owner_tosql(char_id, status);
+ }
+ if( HPMHooks.count.HP_inter_mercenary_owner_tosql_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id, struct mmo_charstatus *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_owner_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, status);
+ }
+ }
+ return retVal___;
+}
+bool HP_inter_mercenary_owner_delete(int char_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_inter_mercenary_owner_delete_pre ) {
+ bool (*preHookFunc) (int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_owner_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mercenary.owner_delete(char_id);
+ }
+ if( HPMHooks.count.HP_inter_mercenary_owner_delete_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_owner_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_owner_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_mercenary_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mercenary_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mercenary.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_mercenary_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_mercenary_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_mercenary_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_mercenary.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_mercenary_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_mercenary_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_mercenary_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_mercenary_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_mercenary.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_mercenary_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_mercenary_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_mercenary_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* inter_party */
+int HP_inter_party_check_lv(struct party_data *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_check_lv_pre ) {
+ int (*preHookFunc) (struct party_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_lv_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_check_lv_pre[hIndex].func;
+ retVal___ = preHookFunc(p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.check_lv(p);
+ }
+ if( HPMHooks.count.HP_inter_party_check_lv_post ) {
+ int (*postHookFunc) (int retVal___, struct party_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_lv_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_check_lv_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, p);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_party_calc_state(struct party_data *p) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_party_calc_state_pre ) {
+ void (*preHookFunc) (struct party_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_calc_state_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_calc_state_pre[hIndex].func;
+ preHookFunc(p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_party.calc_state(p);
+ }
+ if( HPMHooks.count.HP_inter_party_calc_state_post ) {
+ void (*postHookFunc) (struct party_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_calc_state_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_calc_state_post[hIndex].func;
+ postHookFunc(p);
+ }
+ }
+ return;
+}
+int HP_inter_party_tosql(struct party *p, int flag, int index) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_tosql_pre ) {
+ int (*preHookFunc) (struct party *p, int *flag, int *index);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(p, &flag, &index);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.tosql(p, flag, index);
+ }
+ if( HPMHooks.count.HP_inter_party_tosql_post ) {
+ int (*postHookFunc) (int retVal___, struct party *p, int *flag, int *index);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, p, &flag, &index);
+ }
+ }
+ return retVal___;
+}
+struct party_data* HP_inter_party_fromsql(int party_id) {
+ int hIndex = 0;
+ struct party_data* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_party_fromsql_pre ) {
+ struct party_data* (*preHookFunc) (int *party_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&party_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.fromsql(party_id);
+ }
+ if( HPMHooks.count.HP_inter_party_fromsql_post ) {
+ struct party_data* (*postHookFunc) (struct party_data* retVal___, int *party_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &party_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_party_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_party_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_party_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_party.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_party_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+struct party_data* HP_inter_party_search_partyname(const char *str) {
+ int hIndex = 0;
+ struct party_data* retVal___ = NULL;
+ if( HPMHooks.count.HP_inter_party_search_partyname_pre ) {
+ struct party_data* (*preHookFunc) (const char *str);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_search_partyname_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_search_partyname_pre[hIndex].func;
+ retVal___ = preHookFunc(str);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.search_partyname(str);
+ }
+ if( HPMHooks.count.HP_inter_party_search_partyname_post ) {
+ struct party_data* (*postHookFunc) (struct party_data* retVal___, const char *str);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_search_partyname_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_search_partyname_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, str);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_check_exp_share(struct party_data *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_check_exp_share_pre ) {
+ int (*preHookFunc) (struct party_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_exp_share_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_check_exp_share_pre[hIndex].func;
+ retVal___ = preHookFunc(p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.check_exp_share(p);
+ }
+ if( HPMHooks.count.HP_inter_party_check_exp_share_post ) {
+ int (*postHookFunc) (int retVal___, struct party_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_exp_share_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_check_exp_share_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_check_empty(struct party_data *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_check_empty_pre ) {
+ int (*preHookFunc) (struct party_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_empty_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_check_empty_pre[hIndex].func;
+ retVal___ = preHookFunc(p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.check_empty(p);
+ }
+ if( HPMHooks.count.HP_inter_party_check_empty_post ) {
+ int (*postHookFunc) (int retVal___, struct party_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_check_empty_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_check_empty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_party_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_leave(int party_id, int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_leave_pre ) {
+ int (*preHookFunc) (int *party_id, int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_leave_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_leave_pre[hIndex].func;
+ retVal___ = preHookFunc(&party_id, &account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.leave(party_id, account_id, char_id);
+ }
+ if( HPMHooks.count.HP_inter_party_leave_post ) {
+ int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_leave_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_leave_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_CharOnline(int char_id, int party_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_CharOnline_pre ) {
+ int (*preHookFunc) (int *char_id, int *party_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_CharOnline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_CharOnline_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &party_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.CharOnline(char_id, party_id);
+ }
+ if( HPMHooks.count.HP_inter_party_CharOnline_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, int *party_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_CharOnline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_CharOnline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &party_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_party_CharOffline(int char_id, int party_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_party_CharOffline_pre ) {
+ int (*preHookFunc) (int *char_id, int *party_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_CharOffline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_party_CharOffline_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &party_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_party.CharOffline(char_id, party_id);
+ }
+ if( HPMHooks.count.HP_inter_party_CharOffline_post ) {
+ int (*postHookFunc) (int retVal___, int *char_id, int *party_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_party_CharOffline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_party_CharOffline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &party_id);
+ }
+ }
+ return retVal___;
+}
+/* inter_pet */
+int HP_inter_pet_tosql(int pet_id, struct s_pet *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_pet_tosql_pre ) {
+ int (*preHookFunc) (int *pet_id, struct s_pet *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&pet_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_pet.tosql(pet_id, p);
+ }
+ if( HPMHooks.count.HP_inter_pet_tosql_post ) {
+ int (*postHookFunc) (int retVal___, int *pet_id, struct s_pet *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &pet_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_pet_fromsql(int pet_id, struct s_pet *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_pet_fromsql_pre ) {
+ int (*preHookFunc) (int *pet_id, struct s_pet *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&pet_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_pet.fromsql(pet_id, p);
+ }
+ if( HPMHooks.count.HP_inter_pet_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *pet_id, struct s_pet *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &pet_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_pet_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_pet_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_pet.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_pet_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_pet_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_pet_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_pet.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_pet_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_pet_delete_(int pet_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_pet_delete__pre ) {
+ int (*preHookFunc) (int *pet_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_delete__pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_delete__pre[hIndex].func;
+ retVal___ = preHookFunc(&pet_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_pet.delete_(pet_id);
+ }
+ if( HPMHooks.count.HP_inter_pet_delete__post ) {
+ int (*postHookFunc) (int retVal___, int *pet_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_delete__post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_delete__post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &pet_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_pet_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_pet_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_pet_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_pet.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_pet_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_pet_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_pet_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* inter_quest */
+int HP_inter_quest_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_quest_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_quest_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_quest_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_quest.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_quest_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_quest_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_quest_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* inter_storage */
+int HP_inter_storage_tosql(int account_id, struct storage_data *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_tosql_pre ) {
+ int (*preHookFunc) (int *account_id, struct storage_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.tosql(account_id, p);
+ }
+ if( HPMHooks.count.HP_inter_storage_tosql_post ) {
+ int (*postHookFunc) (int retVal___, int *account_id, struct storage_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_fromsql(int account_id, struct storage_data *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_fromsql_pre ) {
+ int (*preHookFunc) (int *account_id, struct storage_data *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.fromsql(account_id, p);
+ }
+ if( HPMHooks.count.HP_inter_storage_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *account_id, struct storage_data *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_guild_storage_tosql(int guild_id, struct guild_storage *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_guild_storage_tosql_pre ) {
+ int (*preHookFunc) (int *guild_id, struct guild_storage *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_tosql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_tosql_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.guild_storage_tosql(guild_id, p);
+ }
+ if( HPMHooks.count.HP_inter_storage_guild_storage_tosql_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, struct guild_storage *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_tosql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_tosql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_guild_storage_fromsql(int guild_id, struct guild_storage *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_guild_storage_fromsql_pre ) {
+ int (*preHookFunc) (int *guild_id, struct guild_storage *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.guild_storage_fromsql(guild_id, p);
+ }
+ if( HPMHooks.count.HP_inter_storage_guild_storage_fromsql_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, struct guild_storage *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_sql_init(void) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_sql_init_pre ) {
+ int (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_sql_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_sql_init_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.sql_init();
+ }
+ if( HPMHooks.count.HP_inter_storage_sql_init_post ) {
+ int (*postHookFunc) (int retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_sql_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_sql_init_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_inter_storage_sql_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_inter_storage_sql_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_sql_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_sql_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.inter_storage.sql_final();
+ }
+ if( HPMHooks.count.HP_inter_storage_sql_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_sql_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_sql_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+int HP_inter_storage_delete_(int account_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_delete__pre ) {
+ int (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_delete__pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_delete__pre[hIndex].func;
+ retVal___ = preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.delete_(account_id);
+ }
+ if( HPMHooks.count.HP_inter_storage_delete__post ) {
+ int (*postHookFunc) (int retVal___, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_delete__post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_delete__post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &account_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_guild_storage_delete(int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_guild_storage_delete_pre ) {
+ int (*preHookFunc) (int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.guild_storage_delete(guild_id);
+ }
+ if( HPMHooks.count.HP_inter_storage_guild_storage_delete_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_guild_storage_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_guild_storage_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_inter_storage_parse_frommap(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_inter_storage_parse_frommap_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_parse_frommap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_inter_storage_parse_frommap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.inter_storage.parse_frommap(fd);
+ }
+ if( HPMHooks.count.HP_inter_storage_parse_frommap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_inter_storage_parse_frommap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_inter_storage_parse_frommap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* loginif */
+void HP_loginif_init(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_init_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_init_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.init();
+ }
+ if( HPMHooks.count.HP_loginif_init_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_init_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_final(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_final_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_final_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_final_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.final();
+ }
+ if( HPMHooks.count.HP_loginif_final_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_final_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_final_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_reset(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_reset_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_reset_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_reset_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.reset();
+ }
+ if( HPMHooks.count.HP_loginif_reset_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_reset_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_reset_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_check_shutdown(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_check_shutdown_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_check_shutdown_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_check_shutdown_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.check_shutdown();
+ }
+ if( HPMHooks.count.HP_loginif_check_shutdown_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_check_shutdown_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_check_shutdown_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_on_disconnect(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_on_disconnect_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_on_disconnect_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_on_disconnect_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.on_disconnect();
+ }
+ if( HPMHooks.count.HP_loginif_on_disconnect_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_on_disconnect_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_on_disconnect_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_on_ready(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_on_ready_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_on_ready_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_on_ready_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.on_ready();
+ }
+ if( HPMHooks.count.HP_loginif_on_ready_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_on_ready_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_on_ready_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_loginif_block_account(int account_id, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_block_account_pre ) {
+ void (*preHookFunc) (int *account_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_block_account_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_block_account_pre[hIndex].func;
+ preHookFunc(&account_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.block_account(account_id, flag);
+ }
+ if( HPMHooks.count.HP_loginif_block_account_post ) {
+ void (*postHookFunc) (int *account_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_block_account_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_block_account_post[hIndex].func;
+ postHookFunc(&account_id, &flag);
+ }
+ }
+ return;
+}
+void HP_loginif_ban_account(int account_id, short year, short month, short day, short hour, short minute, short second) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_ban_account_pre ) {
+ void (*preHookFunc) (int *account_id, short *year, short *month, short *day, short *hour, short *minute, short *second);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_ban_account_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_ban_account_pre[hIndex].func;
+ preHookFunc(&account_id, &year, &month, &day, &hour, &minute, &second);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.ban_account(account_id, year, month, day, hour, minute, second);
+ }
+ if( HPMHooks.count.HP_loginif_ban_account_post ) {
+ void (*postHookFunc) (int *account_id, short *year, short *month, short *day, short *hour, short *minute, short *second);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_ban_account_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_ban_account_post[hIndex].func;
+ postHookFunc(&account_id, &year, &month, &day, &hour, &minute, &second);
+ }
+ }
+ return;
+}
+void HP_loginif_unban_account(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_unban_account_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_unban_account_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_unban_account_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.unban_account(account_id);
+ }
+ if( HPMHooks.count.HP_loginif_unban_account_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_unban_account_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_unban_account_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_loginif_changesex(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_changesex_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_changesex_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_changesex_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.changesex(account_id);
+ }
+ if( HPMHooks.count.HP_loginif_changesex_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_changesex_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_changesex_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_loginif_auth(int fd, struct char_session_data *sd, uint32 ipl) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_auth_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_auth_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_auth_pre[hIndex].func;
+ preHookFunc(&fd, sd, &ipl);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.auth(fd, sd, ipl);
+ }
+ if( HPMHooks.count.HP_loginif_auth_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd, uint32 *ipl);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_auth_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_auth_post[hIndex].func;
+ postHookFunc(&fd, sd, &ipl);
+ }
+ }
+ return;
+}
+void HP_loginif_send_users_count(int users) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_send_users_count_pre ) {
+ void (*preHookFunc) (int *users);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_send_users_count_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_send_users_count_pre[hIndex].func;
+ preHookFunc(&users);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.send_users_count(users);
+ }
+ if( HPMHooks.count.HP_loginif_send_users_count_post ) {
+ void (*postHookFunc) (int *users);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_send_users_count_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_send_users_count_post[hIndex].func;
+ postHookFunc(&users);
+ }
+ }
+ return;
+}
+void HP_loginif_connect_to_server(void) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_loginif_connect_to_server_pre ) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_connect_to_server_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_loginif_connect_to_server_pre[hIndex].func;
+ preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.loginif.connect_to_server();
+ }
+ if( HPMHooks.count.HP_loginif_connect_to_server_post ) {
+ void (*postHookFunc) (void);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_loginif_connect_to_server_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_loginif_connect_to_server_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+/* mapif */
+void HP_mapif_ban(int id, unsigned int flag, int status) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_ban_pre ) {
+ void (*preHookFunc) (int *id, unsigned int *flag, int *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_ban_pre[hIndex].func;
+ preHookFunc(&id, &flag, &status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.ban(id, flag, status);
+ }
+ if( HPMHooks.count.HP_mapif_ban_post ) {
+ void (*postHookFunc) (int *id, unsigned int *flag, int *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_ban_post[hIndex].func;
+ postHookFunc(&id, &flag, &status);
+ }
+ }
+ return;
+}
+void HP_mapif_server_init(int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_server_init_pre ) {
+ void (*preHookFunc) (int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_init_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_server_init_pre[hIndex].func;
+ preHookFunc(&id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.server_init(id);
+ }
+ if( HPMHooks.count.HP_mapif_server_init_post ) {
+ void (*postHookFunc) (int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_init_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_server_init_post[hIndex].func;
+ postHookFunc(&id);
+ }
+ }
+ return;
+}
+void HP_mapif_server_destroy(int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_server_destroy_pre ) {
+ void (*preHookFunc) (int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_destroy_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_server_destroy_pre[hIndex].func;
+ preHookFunc(&id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.server_destroy(id);
+ }
+ if( HPMHooks.count.HP_mapif_server_destroy_post ) {
+ void (*postHookFunc) (int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_destroy_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_server_destroy_post[hIndex].func;
+ postHookFunc(&id);
+ }
+ }
+ return;
+}
+void HP_mapif_server_reset(int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_server_reset_pre ) {
+ void (*preHookFunc) (int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_reset_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_server_reset_pre[hIndex].func;
+ preHookFunc(&id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.server_reset(id);
+ }
+ if( HPMHooks.count.HP_mapif_server_reset_post ) {
+ void (*postHookFunc) (int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_server_reset_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_server_reset_post[hIndex].func;
+ postHookFunc(&id);
+ }
+ }
+ return;
+}
+void HP_mapif_on_disconnect(int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_on_disconnect_pre ) {
+ void (*preHookFunc) (int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_on_disconnect_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_on_disconnect_pre[hIndex].func;
+ preHookFunc(&id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.on_disconnect(id);
+ }
+ if( HPMHooks.count.HP_mapif_on_disconnect_post ) {
+ void (*postHookFunc) (int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_on_disconnect_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_on_disconnect_post[hIndex].func;
+ postHookFunc(&id);
+ }
+ }
+ return;
+}
+void HP_mapif_on_parse_accinfo(int account_id, int u_fd, int u_aid, int u_group, int map_fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_on_parse_accinfo_pre ) {
+ void (*preHookFunc) (int *account_id, int *u_fd, int *u_aid, int *u_group, int *map_fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_on_parse_accinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_on_parse_accinfo_pre[hIndex].func;
+ preHookFunc(&account_id, &u_fd, &u_aid, &u_group, &map_fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.on_parse_accinfo(account_id, u_fd, u_aid, u_group, map_fd);
+ }
+ if( HPMHooks.count.HP_mapif_on_parse_accinfo_post ) {
+ void (*postHookFunc) (int *account_id, int *u_fd, int *u_aid, int *u_group, int *map_fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_on_parse_accinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_on_parse_accinfo_post[hIndex].func;
+ postHookFunc(&account_id, &u_fd, &u_aid, &u_group, &map_fd);
+ }
+ }
+ return;
+}
+void HP_mapif_char_ban(int char_id, time_t timestamp) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_char_ban_pre ) {
+ void (*preHookFunc) (int *char_id, time_t *timestamp);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_char_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_char_ban_pre[hIndex].func;
+ preHookFunc(&char_id, &timestamp);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.char_ban(char_id, timestamp);
+ }
+ if( HPMHooks.count.HP_mapif_char_ban_post ) {
+ void (*postHookFunc) (int *char_id, time_t *timestamp);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_char_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_char_ban_post[hIndex].func;
+ postHookFunc(&char_id, &timestamp);
+ }
+ }
+ return;
+}
+int HP_mapif_sendall(unsigned char *buf, unsigned int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_sendall_pre ) {
+ int (*preHookFunc) (unsigned char *buf, unsigned int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sendall_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_sendall_pre[hIndex].func;
+ retVal___ = preHookFunc(buf, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.sendall(buf, len);
+ }
+ if( HPMHooks.count.HP_mapif_sendall_post ) {
+ int (*postHookFunc) (int retVal___, unsigned char *buf, unsigned int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sendall_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_sendall_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, buf, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_sendallwos(int sfd, unsigned char *buf, unsigned int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_sendallwos_pre ) {
+ int (*preHookFunc) (int *sfd, unsigned char *buf, unsigned int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sendallwos_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_sendallwos_pre[hIndex].func;
+ retVal___ = preHookFunc(&sfd, buf, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.sendallwos(sfd, buf, len);
+ }
+ if( HPMHooks.count.HP_mapif_sendallwos_post ) {
+ int (*postHookFunc) (int retVal___, int *sfd, unsigned char *buf, unsigned int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_sendallwos_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_sendallwos_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &sfd, buf, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_send(int fd, unsigned char *buf, unsigned int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_send_pre ) {
+ int (*preHookFunc) (int *fd, unsigned char *buf, unsigned int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_send_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, buf, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.send(fd, buf, len);
+ }
+ if( HPMHooks.count.HP_mapif_send_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, unsigned char *buf, unsigned int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_send_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, buf, &len);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_send_users_count(int users) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_send_users_count_pre ) {
+ void (*preHookFunc) (int *users);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_users_count_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_send_users_count_pre[hIndex].func;
+ preHookFunc(&users);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.send_users_count(users);
+ }
+ if( HPMHooks.count.HP_mapif_send_users_count_post ) {
+ void (*postHookFunc) (int *users);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_users_count_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_send_users_count_post[hIndex].func;
+ postHookFunc(&users);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_message(int char_id, unsigned char result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_message_pre ) {
+ void (*preHookFunc) (int *char_id, unsigned char *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_message_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_message_pre[hIndex].func;
+ preHookFunc(&char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_message(char_id, result);
+ }
+ if( HPMHooks.count.HP_mapif_auction_message_post ) {
+ void (*postHookFunc) (int *char_id, unsigned char *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_message_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_message_post[hIndex].func;
+ postHookFunc(&char_id, &result);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_sendlist(int fd, int char_id, short count, short pages, unsigned char *buf) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_sendlist_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, short *count, short *pages, unsigned char *buf);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_sendlist_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_sendlist_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &count, &pages, buf);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_sendlist(fd, char_id, count, pages, buf);
+ }
+ if( HPMHooks.count.HP_mapif_auction_sendlist_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, short *count, short *pages, unsigned char *buf);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_sendlist_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_sendlist_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &count, &pages, buf);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_auction_requestlist(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_auction_requestlist_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_requestlist_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_auction_requestlist_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_auction_requestlist(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_auction_requestlist_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_requestlist_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_auction_requestlist_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_register(int fd, struct auction_data *auction) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_register_pre ) {
+ void (*preHookFunc) (int *fd, struct auction_data *auction);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_register_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_register_pre[hIndex].func;
+ preHookFunc(&fd, auction);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_register(fd, auction);
+ }
+ if( HPMHooks.count.HP_mapif_auction_register_post ) {
+ void (*postHookFunc) (int *fd, struct auction_data *auction);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_register_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_register_post[hIndex].func;
+ postHookFunc(&fd, auction);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_auction_register(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_auction_register_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_register_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_auction_register_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_auction_register(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_auction_register_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_register_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_auction_register_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_cancel(int fd, int char_id, unsigned char result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_cancel_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, unsigned char *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_cancel_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_cancel_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_cancel(fd, char_id, result);
+ }
+ if( HPMHooks.count.HP_mapif_auction_cancel_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, unsigned char *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_cancel_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_cancel_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_auction_cancel(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_auction_cancel_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_cancel_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_auction_cancel_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_auction_cancel(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_auction_cancel_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_cancel_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_auction_cancel_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_close(int fd, int char_id, unsigned char result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_close_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, unsigned char *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_close_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_close_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_close(fd, char_id, result);
+ }
+ if( HPMHooks.count.HP_mapif_auction_close_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, unsigned char *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_close_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_close_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &result);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_auction_close(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_auction_close_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_close_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_auction_close_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_auction_close(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_auction_close_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_close_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_auction_close_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_auction_bid(int fd, int char_id, int bid, unsigned char result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_auction_bid_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, int *bid, unsigned char *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_bid_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_auction_bid_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &bid, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.auction_bid(fd, char_id, bid, result);
+ }
+ if( HPMHooks.count.HP_mapif_auction_bid_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, int *bid, unsigned char *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_auction_bid_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_auction_bid_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &bid, &result);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_auction_bid(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_auction_bid_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_bid_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_auction_bid_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_auction_bid(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_auction_bid_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_auction_bid_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_auction_bid_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+bool HP_mapif_elemental_save(struct s_elemental *ele) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_elemental_save_pre ) {
+ bool (*preHookFunc) (struct s_elemental *ele);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_save_pre[hIndex].func;
+ retVal___ = preHookFunc(ele);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.elemental_save(ele);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_save_post ) {
+ bool (*postHookFunc) (bool retVal___, struct s_elemental *ele);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_save_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, ele);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_elemental_load(int ele_id, int char_id, struct s_elemental *ele) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_elemental_load_pre ) {
+ bool (*preHookFunc) (int *ele_id, int *char_id, struct s_elemental *ele);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_load_pre[hIndex].func;
+ retVal___ = preHookFunc(&ele_id, &char_id, ele);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.elemental_load(ele_id, char_id, ele);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_load_post ) {
+ bool (*postHookFunc) (bool retVal___, int *ele_id, int *char_id, struct s_elemental *ele);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_load_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &ele_id, &char_id, ele);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_elemental_delete(int ele_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_elemental_delete_pre ) {
+ bool (*preHookFunc) (int *ele_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&ele_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.elemental_delete(ele_id);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_delete_post ) {
+ bool (*postHookFunc) (bool retVal___, int *ele_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &ele_id);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_elemental_send_pre ) {
+ void (*preHookFunc) (int *fd, struct s_elemental *ele, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_send_pre[hIndex].func;
+ preHookFunc(&fd, ele, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.elemental_send(fd, ele, flag);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_send_post ) {
+ void (*postHookFunc) (int *fd, struct s_elemental *ele, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_send_post[hIndex].func;
+ postHookFunc(&fd, ele, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_elemental_create(int fd, struct s_elemental *ele) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_elemental_create_pre ) {
+ void (*preHookFunc) (int *fd, struct s_elemental *ele);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_create_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_elemental_create_pre[hIndex].func;
+ preHookFunc(&fd, ele);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_elemental_create(fd, ele);
+ }
+ if( HPMHooks.count.HP_mapif_parse_elemental_create_post ) {
+ void (*postHookFunc) (int *fd, struct s_elemental *ele);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_create_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_elemental_create_post[hIndex].func;
+ postHookFunc(&fd, ele);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_elemental_load(int fd, int ele_id, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_elemental_load_pre ) {
+ void (*preHookFunc) (int *fd, int *ele_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_elemental_load_pre[hIndex].func;
+ preHookFunc(&fd, &ele_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_elemental_load(fd, ele_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_elemental_load_post ) {
+ void (*postHookFunc) (int *fd, int *ele_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_elemental_load_post[hIndex].func;
+ postHookFunc(&fd, &ele_id, &char_id);
+ }
+ }
+ return;
+}
+void HP_mapif_elemental_deleted(int fd, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_elemental_deleted_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_deleted_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_deleted_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.elemental_deleted(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_deleted_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_deleted_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_deleted_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_elemental_delete(int fd, int ele_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_elemental_delete_pre ) {
+ void (*preHookFunc) (int *fd, int *ele_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_elemental_delete_pre[hIndex].func;
+ preHookFunc(&fd, &ele_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_elemental_delete(fd, ele_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_elemental_delete_post ) {
+ void (*postHookFunc) (int *fd, int *ele_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_elemental_delete_post[hIndex].func;
+ postHookFunc(&fd, &ele_id);
+ }
+ }
+ return;
+}
+void HP_mapif_elemental_saved(int fd, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_elemental_saved_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_saved_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_elemental_saved_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.elemental_saved(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_elemental_saved_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_elemental_saved_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_elemental_saved_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_elemental_save(int fd, struct s_elemental *ele) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_elemental_save_pre ) {
+ void (*preHookFunc) (int *fd, struct s_elemental *ele);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_elemental_save_pre[hIndex].func;
+ preHookFunc(&fd, ele);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_elemental_save(fd, ele);
+ }
+ if( HPMHooks.count.HP_mapif_parse_elemental_save_post ) {
+ void (*postHookFunc) (int *fd, struct s_elemental *ele);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_elemental_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_elemental_save_post[hIndex].func;
+ postHookFunc(&fd, ele);
+ }
+ }
+ return;
+}
+int HP_mapif_guild_created(int fd, int account_id, struct guild *g) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_created_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_created_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_created_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_created(fd, account_id, g);
+ }
+ if( HPMHooks.count.HP_mapif_guild_created_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_created_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_created_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, g);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_noinfo(int fd, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_noinfo_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_noinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_noinfo_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_noinfo(fd, guild_id);
+ }
+ if( HPMHooks.count.HP_mapif_guild_noinfo_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_noinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_noinfo_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_info(int fd, struct guild *g) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_info_pre ) {
+ int (*preHookFunc) (int *fd, struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_info_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_info_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_info(fd, g);
+ }
+ if( HPMHooks.count.HP_mapif_guild_info_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_info_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_info_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, g);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_memberadded(int fd, int guild_id, int account_id, int char_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_memberadded_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *account_id, int *char_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberadded_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_memberadded_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &account_id, &char_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_memberadded(fd, guild_id, account_id, char_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_guild_memberadded_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *account_id, int *char_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberadded_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_memberadded_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &account_id, &char_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_withdraw(int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_withdraw_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *flag, const char *name, const char *mes);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_withdraw_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_withdraw_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &flag, name, mes);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_withdraw(guild_id, account_id, char_id, flag, name, mes);
+ }
+ if( HPMHooks.count.HP_mapif_guild_withdraw_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *flag, const char *name, const char *mes);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_withdraw_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_withdraw_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &flag, name, mes);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_memberinfoshort(struct guild *g, int idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_memberinfoshort_pre ) {
+ int (*preHookFunc) (struct guild *g, int *idx);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberinfoshort_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_memberinfoshort_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &idx);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_memberinfoshort(g, idx);
+ }
+ if( HPMHooks.count.HP_mapif_guild_memberinfoshort_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *idx);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberinfoshort_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_memberinfoshort_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &idx);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_broken(int guild_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_broken_pre ) {
+ int (*preHookFunc) (int *guild_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_broken_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_broken_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_broken(guild_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_guild_broken_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_broken_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_broken_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_message(int guild_id, int account_id, char *mes, int len, int sfd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_message_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, char *mes, int *len, int *sfd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_message_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_message_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, mes, &len, &sfd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_message(guild_id, account_id, mes, len, sfd);
+ }
+ if( HPMHooks.count.HP_mapif_guild_message_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, char *mes, int *len, int *sfd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_message_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_message_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, mes, &len, &sfd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_basicinfochanged(int guild_id, int type, const void *data, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_basicinfochanged_pre ) {
+ int (*preHookFunc) (int *guild_id, int *type, const void *data, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_basicinfochanged_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_basicinfochanged_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &type, data, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_basicinfochanged(guild_id, type, data, len);
+ }
+ if( HPMHooks.count.HP_mapif_guild_basicinfochanged_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *type, const void *data, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_basicinfochanged_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_basicinfochanged_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &type, data, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_memberinfochanged(int guild_id, int account_id, int char_id, int type, const void *data, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_memberinfochanged_pre ) {
+ int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *type, const void *data, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberinfochanged_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_memberinfochanged_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &type, data, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_memberinfochanged(guild_id, account_id, char_id, type, data, len);
+ }
+ if( HPMHooks.count.HP_mapif_guild_memberinfochanged_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *type, const void *data, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_memberinfochanged_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_memberinfochanged_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &type, data, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_skillupack(int guild_id, uint16 skill_id, int account_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_skillupack_pre ) {
+ int (*preHookFunc) (int *guild_id, uint16 *skill_id, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_skillupack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_skillupack_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id, &skill_id, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_skillupack(guild_id, skill_id, account_id);
+ }
+ if( HPMHooks.count.HP_mapif_guild_skillupack_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id, uint16 *skill_id, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_skillupack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_skillupack_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id, &skill_id, &account_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_alliance(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_alliance_pre ) {
+ int (*preHookFunc) (int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag, const char *name1, const char *name2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_alliance_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_alliance_pre[hIndex].func;
+ retVal___ = preHookFunc(&guild_id1, &guild_id2, &account_id1, &account_id2, &flag, name1, name2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_alliance(guild_id1, guild_id2, account_id1, account_id2, flag, name1, name2);
+ }
+ if( HPMHooks.count.HP_mapif_guild_alliance_post ) {
+ int (*postHookFunc) (int retVal___, int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag, const char *name1, const char *name2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_alliance_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_alliance_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &guild_id1, &guild_id2, &account_id1, &account_id2, &flag, name1, name2);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_position(struct guild *g, int idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_position_pre ) {
+ int (*preHookFunc) (struct guild *g, int *idx);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_position_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_position_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &idx);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_position(g, idx);
+ }
+ if( HPMHooks.count.HP_mapif_guild_position_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *idx);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_position_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_position_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &idx);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_notice(struct guild *g) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_notice_pre ) {
+ int (*preHookFunc) (struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_notice_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_notice_pre[hIndex].func;
+ retVal___ = preHookFunc(g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_notice(g);
+ }
+ if( HPMHooks.count.HP_mapif_guild_notice_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_notice_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_notice_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_emblem(struct guild *g) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_emblem_pre ) {
+ int (*preHookFunc) (struct guild *g);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_emblem_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_emblem_pre[hIndex].func;
+ retVal___ = preHookFunc(g);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_emblem(g);
+ }
+ if( HPMHooks.count.HP_mapif_guild_emblem_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_emblem_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_emblem_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_master_changed(struct guild *g, int aid, int cid) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_master_changed_pre ) {
+ int (*preHookFunc) (struct guild *g, int *aid, int *cid);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_master_changed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_master_changed_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &aid, &cid);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_master_changed(g, aid, cid);
+ }
+ if( HPMHooks.count.HP_mapif_guild_master_changed_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *aid, int *cid);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_master_changed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_master_changed_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &aid, &cid);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_guild_castle_dataload(int fd, int sz, int *castle_ids) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_guild_castle_dataload_pre ) {
+ int (*preHookFunc) (int *fd, int *sz, int *castle_ids);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_castle_dataload_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_guild_castle_dataload_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &sz, castle_ids);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.guild_castle_dataload(fd, sz, castle_ids);
+ }
+ if( HPMHooks.count.HP_mapif_guild_castle_dataload_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *sz, int *castle_ids);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_castle_dataload_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_guild_castle_dataload_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &sz, castle_ids);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_CreateGuild(int fd, int account_id, char *name, struct guild_member *master) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_CreateGuild_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, char *name, struct guild_member *master);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreateGuild_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_CreateGuild_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, name, master);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_CreateGuild(fd, account_id, name, master);
+ }
+ if( HPMHooks.count.HP_mapif_parse_CreateGuild_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, char *name, struct guild_member *master);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreateGuild_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_CreateGuild_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, name, master);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildInfo(int fd, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildInfo_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildInfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildInfo_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildInfo(fd, guild_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildInfo_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildInfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildInfo_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildAddMember(int fd, int guild_id, struct guild_member *m) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildAddMember_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, struct guild_member *m);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildAddMember_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildAddMember_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, m);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildAddMember(fd, guild_id, m);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildAddMember_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, struct guild_member *m);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildAddMember_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildAddMember_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, m);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildLeave(int fd, int guild_id, int account_id, int char_id, int flag, const char *mes) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildLeave_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *account_id, int *char_id, int *flag, const char *mes);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildLeave_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildLeave_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &account_id, &char_id, &flag, mes);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildLeave(fd, guild_id, account_id, char_id, flag, mes);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildLeave_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *account_id, int *char_id, int *flag, const char *mes);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildLeave_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildLeave_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &account_id, &char_id, &flag, mes);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildChangeMemberInfoShort(int fd, int guild_id, int account_id, int char_id, int online, int lv, int class_) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildChangeMemberInfoShort_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildChangeMemberInfoShort_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildChangeMemberInfoShort_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &account_id, &char_id, &online, &lv, &class_);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildChangeMemberInfoShort(fd, guild_id, account_id, char_id, online, lv, class_);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildChangeMemberInfoShort_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildChangeMemberInfoShort_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildChangeMemberInfoShort_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &account_id, &char_id, &online, &lv, &class_);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_BreakGuild(int fd, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_BreakGuild_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_BreakGuild_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_BreakGuild_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_BreakGuild(fd, guild_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_BreakGuild_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_BreakGuild_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_BreakGuild_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildMessage(int fd, int guild_id, int account_id, char *mes, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildMessage_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *account_id, char *mes, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMessage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildMessage_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &account_id, mes, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildMessage(fd, guild_id, account_id, mes, len);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildMessage_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *account_id, char *mes, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMessage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildMessage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &account_id, mes, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void *data, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildBasicInfoChange_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *type, const void *data, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildBasicInfoChange_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildBasicInfoChange_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &type, data, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildBasicInfoChange(fd, guild_id, type, data, len);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildBasicInfoChange_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *type, const void *data, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildBasicInfoChange_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildBasicInfoChange_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &type, data, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildMemberInfoChange(int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildMemberInfoChange_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *account_id, int *char_id, int *type, const char *data, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMemberInfoChange_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildMemberInfoChange_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &account_id, &char_id, &type, data, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildMemberInfoChange(fd, guild_id, account_id, char_id, type, data, len);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildMemberInfoChange_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *account_id, int *char_id, int *type, const char *data, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMemberInfoChange_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildMemberInfoChange_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &account_id, &char_id, &type, data, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildPosition(int fd, int guild_id, int idx, struct guild_position *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildPosition_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, int *idx, struct guild_position *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildPosition_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildPosition_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &idx, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildPosition(fd, guild_id, idx, p);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildPosition_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, int *idx, struct guild_position *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildPosition_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildPosition_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &idx, p);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildSkillUp(int fd, int guild_id, uint16 skill_id, int account_id, int max) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildSkillUp_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, uint16 *skill_id, int *account_id, int *max);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildSkillUp_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildSkillUp_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, &skill_id, &account_id, &max);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildSkillUp(fd, guild_id, skill_id, account_id, max);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildSkillUp_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, uint16 *skill_id, int *account_id, int *max);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildSkillUp_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildSkillUp_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, &skill_id, &account_id, &max);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildDeleteAlliance(struct guild *g, int guild_id, int account_id1, int account_id2, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildDeleteAlliance_pre ) {
+ int (*preHookFunc) (struct guild *g, int *guild_id, int *account_id1, int *account_id2, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildDeleteAlliance_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildDeleteAlliance_pre[hIndex].func;
+ retVal___ = preHookFunc(g, &guild_id, &account_id1, &account_id2, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildDeleteAlliance(g, guild_id, account_id1, account_id2, flag);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildDeleteAlliance_post ) {
+ int (*postHookFunc) (int retVal___, struct guild *g, int *guild_id, int *account_id1, int *account_id2, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildDeleteAlliance_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildDeleteAlliance_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, g, &guild_id, &account_id1, &account_id2, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildAlliance(int fd, int guild_id1, int guild_id2, int account_id1, int account_id2, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildAlliance_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildAlliance_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildAlliance_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id1, &guild_id2, &account_id1, &account_id2, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildAlliance(fd, guild_id1, guild_id2, account_id1, account_id2, flag);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildAlliance_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildAlliance_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildAlliance_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id1, &guild_id2, &account_id1, &account_id2, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildNotice(int fd, int guild_id, const char *mes1, const char *mes2) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildNotice_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, const char *mes1, const char *mes2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildNotice_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildNotice_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, mes1, mes2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildNotice(fd, guild_id, mes1, mes2);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildNotice_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, const char *mes1, const char *mes2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildNotice_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildNotice_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, mes1, mes2);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildEmblem(int fd, int len, int guild_id, int dummy, const char *data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildEmblem_pre ) {
+ int (*preHookFunc) (int *fd, int *len, int *guild_id, int *dummy, const char *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildEmblem_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildEmblem_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &len, &guild_id, &dummy, data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildEmblem(fd, len, guild_id, dummy, data);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildEmblem_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *len, int *guild_id, int *dummy, const char *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildEmblem_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildEmblem_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &len, &guild_id, &dummy, data);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildCastleDataLoad(int fd, int len, int *castle_ids) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildCastleDataLoad_pre ) {
+ int (*preHookFunc) (int *fd, int *len, int *castle_ids);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildCastleDataLoad_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildCastleDataLoad_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &len, castle_ids);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildCastleDataLoad(fd, len, castle_ids);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildCastleDataLoad_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *len, int *castle_ids);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildCastleDataLoad_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildCastleDataLoad_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &len, castle_ids);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildCastleDataSave(int fd, int castle_id, int index, int value) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildCastleDataSave_pre ) {
+ int (*preHookFunc) (int *fd, int *castle_id, int *index, int *value);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildCastleDataSave_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildCastleDataSave_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &castle_id, &index, &value);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildCastleDataSave(fd, castle_id, index, value);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildCastleDataSave_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *castle_id, int *index, int *value);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildCastleDataSave_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildCastleDataSave_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &castle_id, &index, &value);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_GuildMasterChange(int fd, int guild_id, const char *name, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_GuildMasterChange_pre ) {
+ int (*preHookFunc) (int *fd, int *guild_id, const char *name, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMasterChange_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_GuildMasterChange_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &guild_id, name, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_GuildMasterChange(fd, guild_id, name, len);
+ }
+ if( HPMHooks.count.HP_mapif_parse_GuildMasterChange_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *guild_id, const char *name, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMasterChange_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_GuildMasterChange_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &guild_id, name, &len);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_homunculus_created(int fd, int account_id, struct s_homunculus *sh, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_homunculus_created_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, struct s_homunculus *sh, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_created_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_created_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, sh, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.homunculus_created(fd, account_id, sh, flag);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_created_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, struct s_homunculus *sh, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_created_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_created_post[hIndex].func;
+ postHookFunc(&fd, &account_id, sh, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_homunculus_deleted(int fd, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_homunculus_deleted_pre ) {
+ void (*preHookFunc) (int *fd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_deleted_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_deleted_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.homunculus_deleted(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_deleted_post ) {
+ void (*postHookFunc) (int *fd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_deleted_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_deleted_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_homunculus_loaded(int fd, int account_id, struct s_homunculus *hd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_homunculus_loaded_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, struct s_homunculus *hd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_loaded_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_loaded_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, hd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.homunculus_loaded(fd, account_id, hd);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_loaded_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, struct s_homunculus *hd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_loaded_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_loaded_post[hIndex].func;
+ postHookFunc(&fd, &account_id, hd);
+ }
+ }
+ return;
+}
+void HP_mapif_homunculus_saved(int fd, int account_id, bool flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_homunculus_saved_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, bool *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_saved_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_saved_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.homunculus_saved(fd, account_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_saved_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, bool *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_saved_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_saved_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_homunculus_renamed(int fd, int account_id, int char_id, unsigned char flag, char *name) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_homunculus_renamed_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *char_id, unsigned char *flag, char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_renamed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_renamed_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &char_id, &flag, name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.homunculus_renamed(fd, account_id, char_id, flag, name);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_renamed_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *char_id, unsigned char *flag, char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_renamed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_renamed_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &char_id, &flag, name);
+ }
+ }
+ return;
+}
+bool HP_mapif_homunculus_save(struct s_homunculus *hd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_homunculus_save_pre ) {
+ bool (*preHookFunc) (struct s_homunculus *hd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_save_pre[hIndex].func;
+ retVal___ = preHookFunc(hd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.homunculus_save(hd);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_save_post ) {
+ bool (*postHookFunc) (bool retVal___, struct s_homunculus *hd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_save_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, hd);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_homunculus_load(int homun_id, struct s_homunculus *hd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_homunculus_load_pre ) {
+ bool (*preHookFunc) (int *homun_id, struct s_homunculus *hd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_load_pre[hIndex].func;
+ retVal___ = preHookFunc(&homun_id, hd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.homunculus_load(homun_id, hd);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_load_post ) {
+ bool (*postHookFunc) (bool retVal___, int *homun_id, struct s_homunculus *hd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_load_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &homun_id, hd);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_homunculus_delete(int homun_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_homunculus_delete_pre ) {
+ bool (*preHookFunc) (int *homun_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&homun_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.homunculus_delete(homun_id);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_delete_post ) {
+ bool (*postHookFunc) (bool retVal___, int *homun_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &homun_id);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_homunculus_rename(char *name) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_homunculus_rename_pre ) {
+ bool (*preHookFunc) (char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_rename_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_homunculus_rename_pre[hIndex].func;
+ retVal___ = preHookFunc(name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.homunculus_rename(name);
+ }
+ if( HPMHooks.count.HP_mapif_homunculus_rename_post ) {
+ bool (*postHookFunc) (bool retVal___, char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_homunculus_rename_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_homunculus_rename_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, name);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_parse_homunculus_create(int fd, int len, int account_id, struct s_homunculus *phd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_homunculus_create_pre ) {
+ void (*preHookFunc) (int *fd, int *len, int *account_id, struct s_homunculus *phd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_create_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_create_pre[hIndex].func;
+ preHookFunc(&fd, &len, &account_id, phd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_homunculus_create(fd, len, account_id, phd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_homunculus_create_post ) {
+ void (*postHookFunc) (int *fd, int *len, int *account_id, struct s_homunculus *phd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_create_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_create_post[hIndex].func;
+ postHookFunc(&fd, &len, &account_id, phd);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_homunculus_delete(int fd, int homun_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_homunculus_delete_pre ) {
+ void (*preHookFunc) (int *fd, int *homun_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_delete_pre[hIndex].func;
+ preHookFunc(&fd, &homun_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_homunculus_delete(fd, homun_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_homunculus_delete_post ) {
+ void (*postHookFunc) (int *fd, int *homun_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_delete_post[hIndex].func;
+ postHookFunc(&fd, &homun_id);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_homunculus_load(int fd, int account_id, int homun_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_homunculus_load_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *homun_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_load_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &homun_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_homunculus_load(fd, account_id, homun_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_homunculus_load_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *homun_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_load_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &homun_id);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_homunculus_save(int fd, int len, int account_id, struct s_homunculus *phd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_homunculus_save_pre ) {
+ void (*preHookFunc) (int *fd, int *len, int *account_id, struct s_homunculus *phd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_save_pre[hIndex].func;
+ preHookFunc(&fd, &len, &account_id, phd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_homunculus_save(fd, len, account_id, phd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_homunculus_save_post ) {
+ void (*postHookFunc) (int *fd, int *len, int *account_id, struct s_homunculus *phd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_save_post[hIndex].func;
+ postHookFunc(&fd, &len, &account_id, phd);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_homunculus_rename(int fd, int account_id, int char_id, char *name) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_homunculus_rename_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *char_id, char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_rename_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_rename_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &char_id, name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_homunculus_rename(fd, account_id, char_id, name);
+ }
+ if( HPMHooks.count.HP_mapif_parse_homunculus_rename_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *char_id, char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_homunculus_rename_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_homunculus_rename_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &char_id, name);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_sendinbox(int fd, int char_id, unsigned char flag, struct mail_data *md) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_sendinbox_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, unsigned char *flag, struct mail_data *md);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_sendinbox_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_sendinbox_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &flag, md);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_sendinbox(fd, char_id, flag, md);
+ }
+ if( HPMHooks.count.HP_mapif_mail_sendinbox_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, unsigned char *flag, struct mail_data *md);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_sendinbox_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_sendinbox_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &flag, md);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_requestinbox(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_requestinbox_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_requestinbox_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_requestinbox_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_requestinbox(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_requestinbox_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_requestinbox_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_requestinbox_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_read(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_read_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_read_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_read(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_read_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_read_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_sendattach(int fd, int char_id, struct mail_message *msg) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_sendattach_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, struct mail_message *msg);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_sendattach_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_sendattach_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, msg);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_sendattach(fd, char_id, msg);
+ }
+ if( HPMHooks.count.HP_mapif_mail_sendattach_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, struct mail_message *msg);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_sendattach_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_sendattach_post[hIndex].func;
+ postHookFunc(&fd, &char_id, msg);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_getattach(int fd, int char_id, int mail_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_getattach_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, int *mail_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_getattach_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_getattach_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &mail_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_getattach(fd, char_id, mail_id);
+ }
+ if( HPMHooks.count.HP_mapif_mail_getattach_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, int *mail_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_getattach_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_getattach_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &mail_id);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_getattach(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_getattach_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_getattach_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_getattach_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_getattach(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_getattach_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_getattach_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_getattach_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_delete(int fd, int char_id, int mail_id, bool failed) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_delete_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, int *mail_id, bool *failed);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_delete_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &mail_id, &failed);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_delete(fd, char_id, mail_id, failed);
+ }
+ if( HPMHooks.count.HP_mapif_mail_delete_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, int *mail_id, bool *failed);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_delete_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &mail_id, &failed);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_delete(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_delete_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_delete_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_delete(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_delete_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_delete_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_new(struct mail_message *msg) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_new_pre ) {
+ void (*preHookFunc) (struct mail_message *msg);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_new_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_new_pre[hIndex].func;
+ preHookFunc(msg);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_new(msg);
+ }
+ if( HPMHooks.count.HP_mapif_mail_new_post ) {
+ void (*postHookFunc) (struct mail_message *msg);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_new_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_new_post[hIndex].func;
+ postHookFunc(msg);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_return(int fd, int char_id, int mail_id, int new_mail) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_return_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, int *mail_id, int *new_mail);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_return_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_return_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &mail_id, &new_mail);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_return(fd, char_id, mail_id, new_mail);
+ }
+ if( HPMHooks.count.HP_mapif_mail_return_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, int *mail_id, int *new_mail);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_return_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_return_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &mail_id, &new_mail);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_return(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_return_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_return_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_return_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_return(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_return_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_return_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_return_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_mail_send(int fd, struct mail_message *msg) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mail_send_pre ) {
+ void (*preHookFunc) (int *fd, struct mail_message *msg);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mail_send_pre[hIndex].func;
+ preHookFunc(&fd, msg);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mail_send(fd, msg);
+ }
+ if( HPMHooks.count.HP_mapif_mail_send_post ) {
+ void (*postHookFunc) (int *fd, struct mail_message *msg);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mail_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mail_send_post[hIndex].func;
+ postHookFunc(&fd, msg);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mail_send(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mail_send_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mail_send_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mail_send(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mail_send_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mail_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mail_send_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+bool HP_mapif_mercenary_save(struct s_mercenary *merc) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_mercenary_save_pre ) {
+ bool (*preHookFunc) (struct s_mercenary *merc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_save_pre[hIndex].func;
+ retVal___ = preHookFunc(merc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.mercenary_save(merc);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_save_post ) {
+ bool (*postHookFunc) (bool retVal___, struct s_mercenary *merc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_save_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, merc);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_mercenary_load(int merc_id, int char_id, struct s_mercenary *merc) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_mercenary_load_pre ) {
+ bool (*preHookFunc) (int *merc_id, int *char_id, struct s_mercenary *merc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_load_pre[hIndex].func;
+ retVal___ = preHookFunc(&merc_id, &char_id, merc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.mercenary_load(merc_id, char_id, merc);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_load_post ) {
+ bool (*postHookFunc) (bool retVal___, int *merc_id, int *char_id, struct s_mercenary *merc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_load_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &merc_id, &char_id, merc);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_mercenary_delete(int merc_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_mercenary_delete_pre ) {
+ bool (*preHookFunc) (int *merc_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&merc_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.mercenary_delete(merc_id);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_delete_post ) {
+ bool (*postHookFunc) (bool retVal___, int *merc_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &merc_id);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_mercenary_send(int fd, struct s_mercenary *merc, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mercenary_send_pre ) {
+ void (*preHookFunc) (int *fd, struct s_mercenary *merc, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_send_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_send_pre[hIndex].func;
+ preHookFunc(&fd, merc, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mercenary_send(fd, merc, flag);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_send_post ) {
+ void (*postHookFunc) (int *fd, struct s_mercenary *merc, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_send_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_send_post[hIndex].func;
+ postHookFunc(&fd, merc, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mercenary_create(int fd, struct s_mercenary *merc) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mercenary_create_pre ) {
+ void (*preHookFunc) (int *fd, struct s_mercenary *merc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_create_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_create_pre[hIndex].func;
+ preHookFunc(&fd, merc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mercenary_create(fd, merc);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mercenary_create_post ) {
+ void (*postHookFunc) (int *fd, struct s_mercenary *merc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_create_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_create_post[hIndex].func;
+ postHookFunc(&fd, merc);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mercenary_load(int fd, int merc_id, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mercenary_load_pre ) {
+ void (*preHookFunc) (int *fd, int *merc_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_load_pre[hIndex].func;
+ preHookFunc(&fd, &merc_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mercenary_load(fd, merc_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mercenary_load_post ) {
+ void (*postHookFunc) (int *fd, int *merc_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_load_post[hIndex].func;
+ postHookFunc(&fd, &merc_id, &char_id);
+ }
+ }
+ return;
+}
+void HP_mapif_mercenary_deleted(int fd, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mercenary_deleted_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_deleted_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_deleted_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mercenary_deleted(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_deleted_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_deleted_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_deleted_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mercenary_delete(int fd, int merc_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mercenary_delete_pre ) {
+ void (*preHookFunc) (int *fd, int *merc_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_delete_pre[hIndex].func;
+ preHookFunc(&fd, &merc_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mercenary_delete(fd, merc_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mercenary_delete_post ) {
+ void (*postHookFunc) (int *fd, int *merc_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_delete_post[hIndex].func;
+ postHookFunc(&fd, &merc_id);
+ }
+ }
+ return;
+}
+void HP_mapif_mercenary_saved(int fd, unsigned char flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_mercenary_saved_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_saved_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_mercenary_saved_pre[hIndex].func;
+ preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.mercenary_saved(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_mercenary_saved_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_mercenary_saved_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_mercenary_saved_post[hIndex].func;
+ postHookFunc(&fd, &flag);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_mercenary_save(int fd, struct s_mercenary *merc) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_mercenary_save_pre ) {
+ void (*preHookFunc) (int *fd, struct s_mercenary *merc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_save_pre[hIndex].func;
+ preHookFunc(&fd, merc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_mercenary_save(fd, merc);
+ }
+ if( HPMHooks.count.HP_mapif_parse_mercenary_save_post ) {
+ void (*postHookFunc) (int *fd, struct s_mercenary *merc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_mercenary_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_mercenary_save_post[hIndex].func;
+ postHookFunc(&fd, merc);
+ }
+ }
+ return;
+}
+int HP_mapif_party_created(int fd, int account_id, int char_id, struct party *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_created_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *char_id, struct party *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_created_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_created_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &char_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_created(fd, account_id, char_id, p);
+ }
+ if( HPMHooks.count.HP_mapif_party_created_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *char_id, struct party *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_created_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_created_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &char_id, p);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_party_noinfo(int fd, int party_id, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_party_noinfo_pre ) {
+ void (*preHookFunc) (int *fd, int *party_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_noinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_noinfo_pre[hIndex].func;
+ preHookFunc(&fd, &party_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.party_noinfo(fd, party_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_party_noinfo_post ) {
+ void (*postHookFunc) (int *fd, int *party_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_noinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_noinfo_post[hIndex].func;
+ postHookFunc(&fd, &party_id, &char_id);
+ }
+ }
+ return;
+}
+void HP_mapif_party_info(int fd, struct party *p, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_party_info_pre ) {
+ void (*preHookFunc) (int *fd, struct party *p, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_info_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_info_pre[hIndex].func;
+ preHookFunc(&fd, p, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.party_info(fd, p, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_party_info_post ) {
+ void (*postHookFunc) (int *fd, struct party *p, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_info_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_info_post[hIndex].func;
+ postHookFunc(&fd, p, &char_id);
+ }
+ }
+ return;
+}
+int HP_mapif_party_memberadded(int fd, int party_id, int account_id, int char_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_memberadded_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, int *char_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_memberadded_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_memberadded_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, &char_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_memberadded(fd, party_id, account_id, char_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_party_memberadded_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, int *char_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_memberadded_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_memberadded_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, &char_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_party_optionchanged(int fd, struct party *p, int account_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_optionchanged_pre ) {
+ int (*preHookFunc) (int *fd, struct party *p, int *account_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_optionchanged_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_optionchanged_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, p, &account_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_optionchanged(fd, p, account_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_party_optionchanged_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, struct party *p, int *account_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_optionchanged_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_optionchanged_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, p, &account_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_party_withdraw(int party_id, int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_withdraw_pre ) {
+ int (*preHookFunc) (int *party_id, int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_withdraw_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_withdraw_pre[hIndex].func;
+ retVal___ = preHookFunc(&party_id, &account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_withdraw(party_id, account_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_party_withdraw_post ) {
+ int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_withdraw_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_withdraw_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_party_membermoved(struct party *p, int idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_membermoved_pre ) {
+ int (*preHookFunc) (struct party *p, int *idx);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_membermoved_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_membermoved_pre[hIndex].func;
+ retVal___ = preHookFunc(p, &idx);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_membermoved(p, idx);
+ }
+ if( HPMHooks.count.HP_mapif_party_membermoved_post ) {
+ int (*postHookFunc) (int retVal___, struct party *p, int *idx);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_membermoved_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_membermoved_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, p, &idx);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_party_broken(int party_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_broken_pre ) {
+ int (*preHookFunc) (int *party_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_broken_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_broken_pre[hIndex].func;
+ retVal___ = preHookFunc(&party_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_broken(party_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_party_broken_post ) {
+ int (*postHookFunc) (int retVal___, int *party_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_broken_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_broken_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &party_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_party_message(int party_id, int account_id, char *mes, int len, int sfd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_party_message_pre ) {
+ int (*preHookFunc) (int *party_id, int *account_id, char *mes, int *len, int *sfd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_message_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_party_message_pre[hIndex].func;
+ retVal___ = preHookFunc(&party_id, &account_id, mes, &len, &sfd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.party_message(party_id, account_id, mes, len, sfd);
+ }
+ if( HPMHooks.count.HP_mapif_party_message_post ) {
+ int (*postHookFunc) (int retVal___, int *party_id, int *account_id, char *mes, int *len, int *sfd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_message_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_party_message_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &party_id, &account_id, mes, &len, &sfd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_CreateParty(int fd, char *name, int item, int item2, struct party_member *leader) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_CreateParty_pre ) {
+ int (*preHookFunc) (int *fd, char *name, int *item, int *item2, struct party_member *leader);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreateParty_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_CreateParty_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, name, &item, &item2, leader);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_CreateParty(fd, name, item, item2, leader);
+ }
+ if( HPMHooks.count.HP_mapif_parse_CreateParty_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, char *name, int *item, int *item2, struct party_member *leader);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreateParty_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_CreateParty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, name, &item, &item2, leader);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_parse_PartyInfo(int fd, int party_id, int char_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyInfo_pre ) {
+ void (*preHookFunc) (int *fd, int *party_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyInfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyInfo_pre[hIndex].func;
+ preHookFunc(&fd, &party_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_PartyInfo(fd, party_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyInfo_post ) {
+ void (*postHookFunc) (int *fd, int *party_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyInfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyInfo_post[hIndex].func;
+ postHookFunc(&fd, &party_id, &char_id);
+ }
+ }
+ return;
+}
+int HP_mapif_parse_PartyAddMember(int fd, int party_id, struct party_member *member) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyAddMember_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, struct party_member *member);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyAddMember_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyAddMember_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, member);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyAddMember(fd, party_id, member);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyAddMember_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, struct party_member *member);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyAddMember_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyAddMember_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, member);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_PartyChangeOption(int fd, int party_id, int account_id, int exp, int item) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyChangeOption_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, int *exp, int *item);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyChangeOption_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyChangeOption_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, &exp, &item);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyChangeOption(fd, party_id, account_id, exp, item);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyChangeOption_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, int *exp, int *item);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyChangeOption_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyChangeOption_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, &exp, &item);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyLeave_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyLeave_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyLeave_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyLeave(fd, party_id, account_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyLeave_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyLeave_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyLeave_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyChangeMap_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, int *char_id, unsigned short *map, int *online, unsigned int *lv);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyChangeMap_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyChangeMap_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, &char_id, &map, &online, &lv);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyChangeMap(fd, party_id, account_id, char_id, map, online, lv);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyChangeMap_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, int *char_id, unsigned short *map, int *online, unsigned int *lv);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyChangeMap_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyChangeMap_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, &char_id, &map, &online, &lv);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_BreakParty(int fd, int party_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_BreakParty_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_BreakParty_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_BreakParty_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_BreakParty(fd, party_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_BreakParty_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_BreakParty_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_BreakParty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_PartyMessage(int fd, int party_id, int account_id, char *mes, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyMessage_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, char *mes, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyMessage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyMessage_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, mes, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyMessage(fd, party_id, account_id, mes, len);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyMessage_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, char *mes, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyMessage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyMessage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, mes, &len);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, int char_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_PartyLeaderChange_pre ) {
+ int (*preHookFunc) (int *fd, int *party_id, int *account_id, int *char_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyLeaderChange_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_PartyLeaderChange_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &party_id, &account_id, &char_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_PartyLeaderChange(fd, party_id, account_id, char_id);
+ }
+ if( HPMHooks.count.HP_mapif_parse_PartyLeaderChange_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *party_id, int *account_id, int *char_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyLeaderChange_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_PartyLeaderChange_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &party_id, &account_id, &char_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_pet_created(int fd, int account_id, struct s_pet *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_pet_created_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, struct s_pet *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_created_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_pet_created_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.pet_created(fd, account_id, p);
+ }
+ if( HPMHooks.count.HP_mapif_pet_created_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, struct s_pet *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_created_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_pet_created_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_pet_info(int fd, int account_id, struct s_pet *p) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_pet_info_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, struct s_pet *p);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_info_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_pet_info_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, p);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.pet_info(fd, account_id, p);
+ }
+ if( HPMHooks.count.HP_mapif_pet_info_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, struct s_pet *p);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_info_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_pet_info_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, p);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_pet_noinfo(int fd, int account_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_pet_noinfo_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_noinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_pet_noinfo_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.pet_noinfo(fd, account_id);
+ }
+ if( HPMHooks.count.HP_mapif_pet_noinfo_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_pet_noinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_pet_noinfo_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_save_pet_ack(int fd, int account_id, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_save_pet_ack_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_pet_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_save_pet_ack_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.save_pet_ack(fd, account_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_save_pet_ack_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_pet_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_save_pet_ack_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_delete_pet_ack(int fd, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_delete_pet_ack_pre ) {
+ int (*preHookFunc) (int *fd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_delete_pet_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_delete_pet_ack_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.delete_pet_ack(fd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_delete_pet_ack_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_delete_pet_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_delete_pet_ack_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short pet_lv, short pet_egg_id, short pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_create_pet_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *char_id, short *pet_class, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incubate, char *pet_name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_create_pet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_create_pet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &char_id, &pet_class, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incubate, pet_name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.create_pet(fd, account_id, char_id, pet_class, pet_lv, pet_egg_id, pet_equip, intimate, hungry, rename_flag, incubate, pet_name);
+ }
+ if( HPMHooks.count.HP_mapif_create_pet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *char_id, short *pet_class, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incubate, char *pet_name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_create_pet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_create_pet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &char_id, &pet_class, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incubate, pet_name);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_load_pet(int fd, int account_id, int char_id, int pet_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_load_pet_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *char_id, int *pet_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_load_pet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_load_pet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &char_id, &pet_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.load_pet(fd, account_id, char_id, pet_id);
+ }
+ if( HPMHooks.count.HP_mapif_load_pet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *char_id, int *pet_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_load_pet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_load_pet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &char_id, &pet_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_save_pet(int fd, int account_id, struct s_pet *data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_save_pet_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, struct s_pet *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_pet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_save_pet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.save_pet(fd, account_id, data);
+ }
+ if( HPMHooks.count.HP_mapif_save_pet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, struct s_pet *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_pet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_save_pet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, data);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_delete_pet(int fd, int pet_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_delete_pet_pre ) {
+ int (*preHookFunc) (int *fd, int *pet_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_delete_pet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_delete_pet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &pet_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.delete_pet(fd, pet_id);
+ }
+ if( HPMHooks.count.HP_mapif_delete_pet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *pet_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_delete_pet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_delete_pet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &pet_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_CreatePet(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_CreatePet_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreatePet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_CreatePet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_CreatePet(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_CreatePet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_CreatePet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_CreatePet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_LoadPet(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_LoadPet_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_LoadPet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_LoadPet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_LoadPet(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_LoadPet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_LoadPet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_LoadPet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_SavePet(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_SavePet_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_SavePet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_SavePet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_SavePet(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_SavePet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_SavePet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_SavePet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_DeletePet(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_DeletePet_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_DeletePet_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_DeletePet_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_DeletePet(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_DeletePet_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_DeletePet_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_DeletePet_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+struct quest* HP_mapif_quests_fromsql(int char_id, int *count) {
+ int hIndex = 0;
+ struct quest* retVal___ = NULL;
+ if( HPMHooks.count.HP_mapif_quests_fromsql_pre ) {
+ struct quest* (*preHookFunc) (int *char_id, int *count);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quests_fromsql_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_quests_fromsql_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, count);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.quests_fromsql(char_id, count);
+ }
+ if( HPMHooks.count.HP_mapif_quests_fromsql_post ) {
+ struct quest* (*postHookFunc) (struct quest* retVal___, int *char_id, int *count);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quests_fromsql_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_quests_fromsql_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, count);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_quest_delete(int char_id, int quest_id) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_quest_delete_pre ) {
+ bool (*preHookFunc) (int *char_id, int *quest_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_delete_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_quest_delete_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &quest_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.quest_delete(char_id, quest_id);
+ }
+ if( HPMHooks.count.HP_mapif_quest_delete_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id, int *quest_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_delete_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_quest_delete_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &quest_id);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_quest_add(int char_id, struct quest qd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_quest_add_pre ) {
+ bool (*preHookFunc) (int *char_id, struct quest *qd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_add_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_quest_add_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &qd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.quest_add(char_id, qd);
+ }
+ if( HPMHooks.count.HP_mapif_quest_add_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id, struct quest *qd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_add_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_quest_add_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &qd);
+ }
+ }
+ return retVal___;
+}
+bool HP_mapif_quest_update(int char_id, struct quest qd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_mapif_quest_update_pre ) {
+ bool (*preHookFunc) (int *char_id, struct quest *qd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_update_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_quest_update_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_id, &qd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.quest_update(char_id, qd);
+ }
+ if( HPMHooks.count.HP_mapif_quest_update_post ) {
+ bool (*postHookFunc) (bool retVal___, int *char_id, struct quest *qd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_update_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_quest_update_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_id, &qd);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_quest_save_ack(int fd, int char_id, bool success) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_quest_save_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, bool *success);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_save_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_quest_save_ack_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, &success);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.quest_save_ack(fd, char_id, success);
+ }
+ if( HPMHooks.count.HP_mapif_quest_save_ack_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, bool *success);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_quest_save_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_quest_save_ack_post[hIndex].func;
+ postHookFunc(&fd, &char_id, &success);
+ }
+ }
+ return;
+}
+int HP_mapif_parse_quest_save(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_quest_save_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_quest_save_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_quest_save_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_quest_save(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_quest_save_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_quest_save_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_quest_save_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_send_quests(int fd, int char_id, struct quest *tmp_questlog, int num_quests) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_send_quests_pre ) {
+ void (*preHookFunc) (int *fd, int *char_id, struct quest *tmp_questlog, int *num_quests);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_quests_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_send_quests_pre[hIndex].func;
+ preHookFunc(&fd, &char_id, tmp_questlog, &num_quests);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.send_quests(fd, char_id, tmp_questlog, num_quests);
+ }
+ if( HPMHooks.count.HP_mapif_send_quests_post ) {
+ void (*postHookFunc) (int *fd, int *char_id, struct quest *tmp_questlog, int *num_quests);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_send_quests_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_send_quests_post[hIndex].func;
+ postHookFunc(&fd, &char_id, tmp_questlog, &num_quests);
+ }
+ }
+ return;
+}
+int HP_mapif_parse_quest_load(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_quest_load_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_quest_load_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_quest_load_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_quest_load(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_quest_load_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_quest_load_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_quest_load_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_load_guild_storage(int fd, int account_id, int guild_id, char flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_load_guild_storage_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *guild_id, char *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_load_guild_storage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_load_guild_storage_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &guild_id, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.load_guild_storage(fd, account_id, guild_id, flag);
+ }
+ if( HPMHooks.count.HP_mapif_load_guild_storage_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *guild_id, char *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_load_guild_storage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_load_guild_storage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &guild_id, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_save_guild_storage_ack(int fd, int account_id, int guild_id, int fail) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_save_guild_storage_ack_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *guild_id, int *fail);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_guild_storage_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_save_guild_storage_ack_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &guild_id, &fail);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.save_guild_storage_ack(fd, account_id, guild_id, fail);
+ }
+ if( HPMHooks.count.HP_mapif_save_guild_storage_ack_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *guild_id, int *fail);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_save_guild_storage_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_save_guild_storage_ack_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &guild_id, &fail);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_LoadGuildStorage(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_LoadGuildStorage_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_LoadGuildStorage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_LoadGuildStorage_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_LoadGuildStorage(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_LoadGuildStorage_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_LoadGuildStorage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_LoadGuildStorage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_SaveGuildStorage(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_SaveGuildStorage_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_SaveGuildStorage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_SaveGuildStorage_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_SaveGuildStorage(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_SaveGuildStorage_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_SaveGuildStorage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_SaveGuildStorage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_itembound_ack(int fd, int aid, int guild_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_itembound_ack_pre ) {
+ int (*preHookFunc) (int *fd, int *aid, int *guild_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_itembound_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_itembound_ack_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &aid, &guild_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.itembound_ack(fd, aid, guild_id);
+ }
+ if( HPMHooks.count.HP_mapif_itembound_ack_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *aid, int *guild_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_itembound_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_itembound_ack_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &aid, &guild_id);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_ItemBoundRetrieve_sub(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_sub_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_ItemBoundRetrieve_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_ItemBoundRetrieve_sub(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_sub_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_ItemBoundRetrieve_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_parse_ItemBoundRetrieve(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_ItemBoundRetrieve_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_ItemBoundRetrieve(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_ItemBoundRetrieve_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_ItemBoundRetrieve_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_accinfo(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_accinfo_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_accinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_accinfo_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_accinfo(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_accinfo_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_accinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_accinfo_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_parse_accinfo2_pre ) {
+ void (*preHookFunc) (bool *success, int *map_fd, int *u_fd, int *u_aid, int *account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int *group_id, int *logincount, int *state);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_accinfo2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_accinfo2_pre[hIndex].func;
+ preHookFunc(&success, &map_fd, &u_fd, &u_aid, &account_id, userid, user_pass, email, last_ip, lastlogin, pin_code, birthdate, &group_id, &logincount, &state);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.parse_accinfo2(success, map_fd, u_fd, u_aid, account_id, userid, user_pass, email, last_ip, lastlogin, pin_code, birthdate, group_id, logincount, state);
+ }
+ if( HPMHooks.count.HP_mapif_parse_accinfo2_post ) {
+ void (*postHookFunc) (bool *success, int *map_fd, int *u_fd, int *u_aid, int *account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int *group_id, int *logincount, int *state);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_accinfo2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_accinfo2_post[hIndex].func;
+ postHookFunc(&success, &map_fd, &u_fd, &u_aid, &account_id, userid, user_pass, email, last_ip, lastlogin, pin_code, birthdate, &group_id, &logincount, &state);
+ }
+ }
+ return;
+}
+int HP_mapif_broadcast(unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_broadcast_pre ) {
+ int (*preHookFunc) (unsigned char *mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, int *sfd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_broadcast_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_broadcast_pre[hIndex].func;
+ retVal___ = preHookFunc(mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY, &sfd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.broadcast(mes, len, fontColor, fontType, fontSize, fontAlign, fontY, sfd);
+ }
+ if( HPMHooks.count.HP_mapif_broadcast_post ) {
+ int (*postHookFunc) (int retVal___, unsigned char *mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, int *sfd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_broadcast_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_broadcast_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY, &sfd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_wis_message(struct WisData *wd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_wis_message_pre ) {
+ int (*preHookFunc) (struct WisData *wd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_message_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_wis_message_pre[hIndex].func;
+ retVal___ = preHookFunc(wd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.wis_message(wd);
+ }
+ if( HPMHooks.count.HP_mapif_wis_message_post ) {
+ int (*postHookFunc) (int retVal___, struct WisData *wd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_message_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_wis_message_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, wd);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_wis_response(int fd, unsigned char *src, int flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_wis_response_pre ) {
+ void (*preHookFunc) (int *fd, unsigned char *src, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_response_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_wis_response_pre[hIndex].func;
+ preHookFunc(&fd, src, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.wis_response(fd, src, flag);
+ }
+ if( HPMHooks.count.HP_mapif_wis_response_post ) {
+ void (*postHookFunc) (int *fd, unsigned char *src, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_response_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_wis_response_post[hIndex].func;
+ postHookFunc(&fd, src, &flag);
+ }
+ }
+ return;
+}
+int HP_mapif_wis_end(struct WisData *wd, int flag) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_wis_end_pre ) {
+ int (*preHookFunc) (struct WisData *wd, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_end_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_wis_end_pre[hIndex].func;
+ retVal___ = preHookFunc(wd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.wis_end(wd, flag);
+ }
+ if( HPMHooks.count.HP_mapif_wis_end_post ) {
+ int (*postHookFunc) (int retVal___, struct WisData *wd, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_end_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_wis_end_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, wd, &flag);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_account_reg_reply(int fd, int account_id, int char_id, int type) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_account_reg_reply_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *char_id, int *type);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_account_reg_reply_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_account_reg_reply_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &char_id, &type);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.account_reg_reply(fd, account_id, char_id, type);
+ }
+ if( HPMHooks.count.HP_mapif_account_reg_reply_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *char_id, int *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_account_reg_reply_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_account_reg_reply_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &char_id, &type);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_disconnectplayer(int fd, int account_id, int char_id, int reason) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_disconnectplayer_pre ) {
+ int (*preHookFunc) (int *fd, int *account_id, int *char_id, int *reason);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_disconnectplayer_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_disconnectplayer_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &account_id, &char_id, &reason);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.disconnectplayer(fd, account_id, char_id, reason);
+ }
+ if( HPMHooks.count.HP_mapif_disconnectplayer_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, int *account_id, int *char_id, int *reason);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_disconnectplayer_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_disconnectplayer_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, &account_id, &char_id, &reason);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_broadcast(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_broadcast_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_broadcast_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_broadcast_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_broadcast(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_broadcast_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_broadcast_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_broadcast_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_WisRequest(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_WisRequest_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisRequest_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_WisRequest_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_WisRequest(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_WisRequest_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisRequest_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_WisRequest_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_WisReply(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_WisReply_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisReply_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_WisReply_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_WisReply(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_WisReply_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisReply_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_WisReply_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_WisToGM(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_WisToGM_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisToGM_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_WisToGM_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_WisToGM(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_WisToGM_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisToGM_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_WisToGM_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_Registry(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_Registry_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_Registry_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_Registry_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_Registry(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_Registry_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_Registry_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_Registry_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+int HP_mapif_parse_RegistryRequest(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_RegistryRequest_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_RegistryRequest_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_RegistryRequest_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_RegistryRequest(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_RegistryRequest_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_RegistryRequest_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_RegistryRequest_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_mapif_namechange_ack(int fd, int account_id, int char_id, int type, int flag, const char *name) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mapif_namechange_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *char_id, int *type, int *flag, const char *name);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_namechange_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_namechange_ack_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &char_id, &type, &flag, name);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mapif.namechange_ack(fd, account_id, char_id, type, flag, name);
+ }
+ if( HPMHooks.count.HP_mapif_namechange_ack_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *char_id, int *type, int *flag, const char *name);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_namechange_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_namechange_ack_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &char_id, &type, &flag, name);
+ }
+ }
+ return;
+}
+int HP_mapif_parse_NameChangeRequest(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_mapif_parse_NameChangeRequest_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_NameChangeRequest_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mapif_parse_NameChangeRequest_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.mapif.parse_NameChangeRequest(fd);
+ }
+ if( HPMHooks.count.HP_mapif_parse_NameChangeRequest_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_NameChangeRequest_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mapif_parse_NameChangeRequest_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+/* pincode */
+void HP_pincode_handle(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_handle_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_handle_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_handle_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.handle(fd, sd);
+ }
+ if( HPMHooks.count.HP_pincode_handle_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_handle_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_handle_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_pincode_decrypt(unsigned int userSeed, char *pin) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_decrypt_pre ) {
+ void (*preHookFunc) (unsigned int *userSeed, char *pin);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_decrypt_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_decrypt_pre[hIndex].func;
+ preHookFunc(&userSeed, pin);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.decrypt(userSeed, pin);
+ }
+ if( HPMHooks.count.HP_pincode_decrypt_post ) {
+ void (*postHookFunc) (unsigned int *userSeed, char *pin);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_decrypt_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_decrypt_post[hIndex].func;
+ postHookFunc(&userSeed, pin);
+ }
+ }
+ return;
+}
+void HP_pincode_error(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_error_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_error_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_error_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.error(account_id);
+ }
+ if( HPMHooks.count.HP_pincode_error_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_error_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_error_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+void HP_pincode_update(int account_id, char *pin) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_update_pre ) {
+ void (*preHookFunc) (int *account_id, char *pin);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_update_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_update_pre[hIndex].func;
+ preHookFunc(&account_id, pin);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.update(account_id, pin);
+ }
+ if( HPMHooks.count.HP_pincode_update_post ) {
+ void (*postHookFunc) (int *account_id, char *pin);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_update_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_update_post[hIndex].func;
+ postHookFunc(&account_id, pin);
+ }
+ }
+ return;
+}
+void HP_pincode_sendstate(int fd, struct char_session_data *sd, uint16 state) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_sendstate_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd, uint16 *state);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_sendstate_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_sendstate_pre[hIndex].func;
+ preHookFunc(&fd, sd, &state);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.sendstate(fd, sd, state);
+ }
+ if( HPMHooks.count.HP_pincode_sendstate_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd, uint16 *state);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_sendstate_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_sendstate_post[hIndex].func;
+ postHookFunc(&fd, sd, &state);
+ }
+ }
+ return;
+}
+void HP_pincode_setnew(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_setnew_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_setnew_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_setnew_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.setnew(fd, sd);
+ }
+ if( HPMHooks.count.HP_pincode_setnew_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_setnew_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_setnew_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_pincode_change(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_change_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_change_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_change_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.change(fd, sd);
+ }
+ if( HPMHooks.count.HP_pincode_change_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_change_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_change_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+int HP_pincode_compare(int fd, struct char_session_data *sd, char *pin) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_pincode_compare_pre ) {
+ int (*preHookFunc) (int *fd, struct char_session_data *sd, char *pin);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_compare_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_compare_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, sd, pin);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pincode.compare(fd, sd, pin);
+ }
+ if( HPMHooks.count.HP_pincode_compare_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, struct char_session_data *sd, char *pin);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_compare_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_compare_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, sd, pin);
+ }
+ }
+ return retVal___;
+}
+void HP_pincode_check(int fd, struct char_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pincode_check_pre ) {
+ void (*preHookFunc) (int *fd, struct char_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_check_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_check_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pincode.check(fd, sd);
+ }
+ if( HPMHooks.count.HP_pincode_check_post ) {
+ void (*postHookFunc) (int *fd, struct char_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_check_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_check_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+bool HP_pincode_config_read(char *w1, char *w2) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_pincode_config_read_pre ) {
+ bool (*preHookFunc) (char *w1, char *w2);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pincode_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(w1, w2);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pincode.config_read(w1, w2);
+ }
+ if( HPMHooks.count.HP_pincode_config_read_post ) {
+ bool (*postHookFunc) (bool retVal___, char *w1, char *w2);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pincode_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pincode_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, w1, w2);
+ }
+ }
+ return retVal___;
+}
diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
new file mode 100644
index 000000000..00700756c
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
@@ -0,0 +1,22 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+memcpy(&HPMHooks.source.chr, chr, sizeof(struct char_interface));
+memcpy(&HPMHooks.source.geoip, geoip, sizeof(struct geoip_interface));
+memcpy(&HPMHooks.source.inter_auction, inter_auction, sizeof(struct inter_auction_interface));
+memcpy(&HPMHooks.source.inter_elemental, inter_elemental, sizeof(struct inter_elemental_interface));
+memcpy(&HPMHooks.source.inter_guild, inter_guild, sizeof(struct inter_guild_interface));
+memcpy(&HPMHooks.source.inter_homunculus, inter_homunculus, sizeof(struct inter_homunculus_interface));
+memcpy(&HPMHooks.source.inter, inter, sizeof(struct inter_interface));
+memcpy(&HPMHooks.source.inter_mail, inter_mail, sizeof(struct inter_mail_interface));
+memcpy(&HPMHooks.source.inter_mercenary, inter_mercenary, sizeof(struct inter_mercenary_interface));
+memcpy(&HPMHooks.source.inter_party, inter_party, sizeof(struct inter_party_interface));
+memcpy(&HPMHooks.source.inter_pet, inter_pet, sizeof(struct inter_pet_interface));
+memcpy(&HPMHooks.source.inter_quest, inter_quest, sizeof(struct inter_quest_interface));
+memcpy(&HPMHooks.source.inter_storage, inter_storage, sizeof(struct inter_storage_interface));
+memcpy(&HPMHooks.source.loginif, loginif, sizeof(struct loginif_interface));
+memcpy(&HPMHooks.source.mapif, mapif, sizeof(struct mapif_interface));
+memcpy(&HPMHooks.source.pincode, pincode, sizeof(struct pincode_interface));
diff --git a/src/plugins/HPMHooking/HPMHooking_login.GetSymbol.inc b/src/plugins/HPMHooking/HPMHooking_login.GetSymbol.inc
new file mode 100644
index 000000000..3348b5cde
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_login.GetSymbol.inc
@@ -0,0 +1,7 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+if( !(login = GET_SYMBOL("login") ) ) return false;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
new file mode 100644
index 000000000..af7e7250c
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
@@ -0,0 +1,235 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+struct {
+ struct HPMHookPoint *HP_login_mmo_auth_pre;
+ struct HPMHookPoint *HP_login_mmo_auth_post;
+ struct HPMHookPoint *HP_login_mmo_auth_new_pre;
+ struct HPMHookPoint *HP_login_mmo_auth_new_post;
+ struct HPMHookPoint *HP_login_waiting_disconnect_timer_pre;
+ struct HPMHookPoint *HP_login_waiting_disconnect_timer_post;
+ struct HPMHookPoint *HP_login_create_online_user_pre;
+ struct HPMHookPoint *HP_login_create_online_user_post;
+ struct HPMHookPoint *HP_login_add_online_user_pre;
+ struct HPMHookPoint *HP_login_add_online_user_post;
+ struct HPMHookPoint *HP_login_remove_online_user_pre;
+ struct HPMHookPoint *HP_login_remove_online_user_post;
+ struct HPMHookPoint *HP_login_online_db_setoffline_pre;
+ struct HPMHookPoint *HP_login_online_db_setoffline_post;
+ struct HPMHookPoint *HP_login_online_data_cleanup_sub_pre;
+ struct HPMHookPoint *HP_login_online_data_cleanup_sub_post;
+ struct HPMHookPoint *HP_login_online_data_cleanup_pre;
+ struct HPMHookPoint *HP_login_online_data_cleanup_post;
+ struct HPMHookPoint *HP_login_sync_ip_addresses_pre;
+ struct HPMHookPoint *HP_login_sync_ip_addresses_post;
+ struct HPMHookPoint *HP_login_check_encrypted_pre;
+ struct HPMHookPoint *HP_login_check_encrypted_post;
+ struct HPMHookPoint *HP_login_check_password_pre;
+ struct HPMHookPoint *HP_login_check_password_post;
+ struct HPMHookPoint *HP_login_lan_subnetcheck_pre;
+ struct HPMHookPoint *HP_login_lan_subnetcheck_post;
+ struct HPMHookPoint *HP_login_lan_config_read_pre;
+ struct HPMHookPoint *HP_login_lan_config_read_post;
+ struct HPMHookPoint *HP_login_fromchar_accinfo_pre;
+ struct HPMHookPoint *HP_login_fromchar_accinfo_post;
+ struct HPMHookPoint *HP_login_fromchar_account_pre;
+ struct HPMHookPoint *HP_login_fromchar_account_post;
+ struct HPMHookPoint *HP_login_fromchar_account_update_other_pre;
+ struct HPMHookPoint *HP_login_fromchar_account_update_other_post;
+ struct HPMHookPoint *HP_login_fromchar_auth_ack_pre;
+ struct HPMHookPoint *HP_login_fromchar_auth_ack_post;
+ struct HPMHookPoint *HP_login_fromchar_ban_pre;
+ struct HPMHookPoint *HP_login_fromchar_ban_post;
+ struct HPMHookPoint *HP_login_fromchar_change_sex_other_pre;
+ struct HPMHookPoint *HP_login_fromchar_change_sex_other_post;
+ struct HPMHookPoint *HP_login_fromchar_pong_pre;
+ struct HPMHookPoint *HP_login_fromchar_pong_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_auth_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_auth_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_update_users_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_update_users_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_request_change_email_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_request_change_email_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_data_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_data_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_ping_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_ping_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_email_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_email_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_update_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_update_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_ban_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_ban_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_sex_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_sex_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_reg2_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_reg2_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_unban_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_unban_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_online_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_online_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_offline_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_account_offline_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_online_accounts_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_online_accounts_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_request_account_reg2_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_request_account_reg2_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_update_wan_ip_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_update_wan_ip_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_all_offline_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_all_offline_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_pincode_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_change_pincode_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_wrong_pincode_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_wrong_pincode_post;
+ struct HPMHookPoint *HP_login_fromchar_parse_accinfo_pre;
+ struct HPMHookPoint *HP_login_fromchar_parse_accinfo_post;
+ struct HPMHookPoint *HP_login_parse_fromchar_pre;
+ struct HPMHookPoint *HP_login_parse_fromchar_post;
+ struct HPMHookPoint *HP_login_connection_problem_pre;
+ struct HPMHookPoint *HP_login_connection_problem_post;
+ struct HPMHookPoint *HP_login_kick_pre;
+ struct HPMHookPoint *HP_login_kick_post;
+ struct HPMHookPoint *HP_login_auth_ok_pre;
+ struct HPMHookPoint *HP_login_auth_ok_post;
+ struct HPMHookPoint *HP_login_auth_failed_pre;
+ struct HPMHookPoint *HP_login_auth_failed_post;
+ struct HPMHookPoint *HP_login_login_error_pre;
+ struct HPMHookPoint *HP_login_login_error_post;
+ struct HPMHookPoint *HP_login_parse_ping_pre;
+ struct HPMHookPoint *HP_login_parse_ping_post;
+ struct HPMHookPoint *HP_login_parse_client_md5_pre;
+ struct HPMHookPoint *HP_login_parse_client_md5_post;
+ struct HPMHookPoint *HP_login_parse_client_login_pre;
+ struct HPMHookPoint *HP_login_parse_client_login_post;
+ struct HPMHookPoint *HP_login_send_coding_key_pre;
+ struct HPMHookPoint *HP_login_send_coding_key_post;
+ struct HPMHookPoint *HP_login_parse_request_coding_key_pre;
+ struct HPMHookPoint *HP_login_parse_request_coding_key_post;
+ struct HPMHookPoint *HP_login_char_server_connection_status_pre;
+ struct HPMHookPoint *HP_login_char_server_connection_status_post;
+ struct HPMHookPoint *HP_login_parse_request_connection_pre;
+ struct HPMHookPoint *HP_login_parse_request_connection_post;
+ struct HPMHookPoint *HP_login_parse_login_pre;
+ struct HPMHookPoint *HP_login_parse_login_post;
+} list;
+
+struct {
+ int HP_login_mmo_auth_pre;
+ int HP_login_mmo_auth_post;
+ int HP_login_mmo_auth_new_pre;
+ int HP_login_mmo_auth_new_post;
+ int HP_login_waiting_disconnect_timer_pre;
+ int HP_login_waiting_disconnect_timer_post;
+ int HP_login_create_online_user_pre;
+ int HP_login_create_online_user_post;
+ int HP_login_add_online_user_pre;
+ int HP_login_add_online_user_post;
+ int HP_login_remove_online_user_pre;
+ int HP_login_remove_online_user_post;
+ int HP_login_online_db_setoffline_pre;
+ int HP_login_online_db_setoffline_post;
+ int HP_login_online_data_cleanup_sub_pre;
+ int HP_login_online_data_cleanup_sub_post;
+ int HP_login_online_data_cleanup_pre;
+ int HP_login_online_data_cleanup_post;
+ int HP_login_sync_ip_addresses_pre;
+ int HP_login_sync_ip_addresses_post;
+ int HP_login_check_encrypted_pre;
+ int HP_login_check_encrypted_post;
+ int HP_login_check_password_pre;
+ int HP_login_check_password_post;
+ int HP_login_lan_subnetcheck_pre;
+ int HP_login_lan_subnetcheck_post;
+ int HP_login_lan_config_read_pre;
+ int HP_login_lan_config_read_post;
+ int HP_login_fromchar_accinfo_pre;
+ int HP_login_fromchar_accinfo_post;
+ int HP_login_fromchar_account_pre;
+ int HP_login_fromchar_account_post;
+ int HP_login_fromchar_account_update_other_pre;
+ int HP_login_fromchar_account_update_other_post;
+ int HP_login_fromchar_auth_ack_pre;
+ int HP_login_fromchar_auth_ack_post;
+ int HP_login_fromchar_ban_pre;
+ int HP_login_fromchar_ban_post;
+ int HP_login_fromchar_change_sex_other_pre;
+ int HP_login_fromchar_change_sex_other_post;
+ int HP_login_fromchar_pong_pre;
+ int HP_login_fromchar_pong_post;
+ int HP_login_fromchar_parse_auth_pre;
+ int HP_login_fromchar_parse_auth_post;
+ int HP_login_fromchar_parse_update_users_pre;
+ int HP_login_fromchar_parse_update_users_post;
+ int HP_login_fromchar_parse_request_change_email_pre;
+ int HP_login_fromchar_parse_request_change_email_post;
+ int HP_login_fromchar_parse_account_data_pre;
+ int HP_login_fromchar_parse_account_data_post;
+ int HP_login_fromchar_parse_ping_pre;
+ int HP_login_fromchar_parse_ping_post;
+ int HP_login_fromchar_parse_change_email_pre;
+ int HP_login_fromchar_parse_change_email_post;
+ int HP_login_fromchar_parse_account_update_pre;
+ int HP_login_fromchar_parse_account_update_post;
+ int HP_login_fromchar_parse_ban_pre;
+ int HP_login_fromchar_parse_ban_post;
+ int HP_login_fromchar_parse_change_sex_pre;
+ int HP_login_fromchar_parse_change_sex_post;
+ int HP_login_fromchar_parse_account_reg2_pre;
+ int HP_login_fromchar_parse_account_reg2_post;
+ int HP_login_fromchar_parse_unban_pre;
+ int HP_login_fromchar_parse_unban_post;
+ int HP_login_fromchar_parse_account_online_pre;
+ int HP_login_fromchar_parse_account_online_post;
+ int HP_login_fromchar_parse_account_offline_pre;
+ int HP_login_fromchar_parse_account_offline_post;
+ int HP_login_fromchar_parse_online_accounts_pre;
+ int HP_login_fromchar_parse_online_accounts_post;
+ int HP_login_fromchar_parse_request_account_reg2_pre;
+ int HP_login_fromchar_parse_request_account_reg2_post;
+ int HP_login_fromchar_parse_update_wan_ip_pre;
+ int HP_login_fromchar_parse_update_wan_ip_post;
+ int HP_login_fromchar_parse_all_offline_pre;
+ int HP_login_fromchar_parse_all_offline_post;
+ int HP_login_fromchar_parse_change_pincode_pre;
+ int HP_login_fromchar_parse_change_pincode_post;
+ int HP_login_fromchar_parse_wrong_pincode_pre;
+ int HP_login_fromchar_parse_wrong_pincode_post;
+ int HP_login_fromchar_parse_accinfo_pre;
+ int HP_login_fromchar_parse_accinfo_post;
+ int HP_login_parse_fromchar_pre;
+ int HP_login_parse_fromchar_post;
+ int HP_login_connection_problem_pre;
+ int HP_login_connection_problem_post;
+ int HP_login_kick_pre;
+ int HP_login_kick_post;
+ int HP_login_auth_ok_pre;
+ int HP_login_auth_ok_post;
+ int HP_login_auth_failed_pre;
+ int HP_login_auth_failed_post;
+ int HP_login_login_error_pre;
+ int HP_login_login_error_post;
+ int HP_login_parse_ping_pre;
+ int HP_login_parse_ping_post;
+ int HP_login_parse_client_md5_pre;
+ int HP_login_parse_client_md5_post;
+ int HP_login_parse_client_login_pre;
+ int HP_login_parse_client_login_post;
+ int HP_login_send_coding_key_pre;
+ int HP_login_send_coding_key_post;
+ int HP_login_parse_request_coding_key_pre;
+ int HP_login_parse_request_coding_key_post;
+ int HP_login_char_server_connection_status_pre;
+ int HP_login_char_server_connection_status_post;
+ int HP_login_parse_request_connection_pre;
+ int HP_login_parse_request_connection_post;
+ int HP_login_parse_login_pre;
+ int HP_login_parse_login_post;
+} count;
+
+struct {
+ struct login_interface login;
+} source;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
new file mode 100644
index 000000000..a4a9db119
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
@@ -0,0 +1,66 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+struct HookingPointData HookingPoints[] = {
+/* login */
+ { HP_POP(login->mmo_auth, HP_login_mmo_auth) },
+ { HP_POP(login->mmo_auth_new, HP_login_mmo_auth_new) },
+ { HP_POP(login->waiting_disconnect_timer, HP_login_waiting_disconnect_timer) },
+ { HP_POP(login->create_online_user, HP_login_create_online_user) },
+ { HP_POP(login->add_online_user, HP_login_add_online_user) },
+ { HP_POP(login->remove_online_user, HP_login_remove_online_user) },
+ { HP_POP(login->online_db_setoffline, HP_login_online_db_setoffline) },
+ { HP_POP(login->online_data_cleanup_sub, HP_login_online_data_cleanup_sub) },
+ { HP_POP(login->online_data_cleanup, HP_login_online_data_cleanup) },
+ { HP_POP(login->sync_ip_addresses, HP_login_sync_ip_addresses) },
+ { HP_POP(login->check_encrypted, HP_login_check_encrypted) },
+ { HP_POP(login->check_password, HP_login_check_password) },
+ { HP_POP(login->lan_subnetcheck, HP_login_lan_subnetcheck) },
+ { HP_POP(login->lan_config_read, HP_login_lan_config_read) },
+ { HP_POP(login->fromchar_accinfo, HP_login_fromchar_accinfo) },
+ { HP_POP(login->fromchar_account, HP_login_fromchar_account) },
+ { HP_POP(login->fromchar_account_update_other, HP_login_fromchar_account_update_other) },
+ { HP_POP(login->fromchar_auth_ack, HP_login_fromchar_auth_ack) },
+ { HP_POP(login->fromchar_ban, HP_login_fromchar_ban) },
+ { HP_POP(login->fromchar_change_sex_other, HP_login_fromchar_change_sex_other) },
+ { HP_POP(login->fromchar_pong, HP_login_fromchar_pong) },
+ { HP_POP(login->fromchar_parse_auth, HP_login_fromchar_parse_auth) },
+ { HP_POP(login->fromchar_parse_update_users, HP_login_fromchar_parse_update_users) },
+ { HP_POP(login->fromchar_parse_request_change_email, HP_login_fromchar_parse_request_change_email) },
+ { HP_POP(login->fromchar_parse_account_data, HP_login_fromchar_parse_account_data) },
+ { HP_POP(login->fromchar_parse_ping, HP_login_fromchar_parse_ping) },
+ { HP_POP(login->fromchar_parse_change_email, HP_login_fromchar_parse_change_email) },
+ { HP_POP(login->fromchar_parse_account_update, HP_login_fromchar_parse_account_update) },
+ { HP_POP(login->fromchar_parse_ban, HP_login_fromchar_parse_ban) },
+ { HP_POP(login->fromchar_parse_change_sex, HP_login_fromchar_parse_change_sex) },
+ { HP_POP(login->fromchar_parse_account_reg2, HP_login_fromchar_parse_account_reg2) },
+ { HP_POP(login->fromchar_parse_unban, HP_login_fromchar_parse_unban) },
+ { HP_POP(login->fromchar_parse_account_online, HP_login_fromchar_parse_account_online) },
+ { HP_POP(login->fromchar_parse_account_offline, HP_login_fromchar_parse_account_offline) },
+ { HP_POP(login->fromchar_parse_online_accounts, HP_login_fromchar_parse_online_accounts) },
+ { HP_POP(login->fromchar_parse_request_account_reg2, HP_login_fromchar_parse_request_account_reg2) },
+ { HP_POP(login->fromchar_parse_update_wan_ip, HP_login_fromchar_parse_update_wan_ip) },
+ { HP_POP(login->fromchar_parse_all_offline, HP_login_fromchar_parse_all_offline) },
+ { HP_POP(login->fromchar_parse_change_pincode, HP_login_fromchar_parse_change_pincode) },
+ { HP_POP(login->fromchar_parse_wrong_pincode, HP_login_fromchar_parse_wrong_pincode) },
+ { HP_POP(login->fromchar_parse_accinfo, HP_login_fromchar_parse_accinfo) },
+ { HP_POP(login->parse_fromchar, HP_login_parse_fromchar) },
+ { HP_POP(login->connection_problem, HP_login_connection_problem) },
+ { HP_POP(login->kick, HP_login_kick) },
+ { HP_POP(login->auth_ok, HP_login_auth_ok) },
+ { HP_POP(login->auth_failed, HP_login_auth_failed) },
+ { HP_POP(login->login_error, HP_login_login_error) },
+ { HP_POP(login->parse_ping, HP_login_parse_ping) },
+ { HP_POP(login->parse_client_md5, HP_login_parse_client_md5) },
+ { HP_POP(login->parse_client_login, HP_login_parse_client_login) },
+ { HP_POP(login->send_coding_key, HP_login_send_coding_key) },
+ { HP_POP(login->parse_request_coding_key, HP_login_parse_request_coding_key) },
+ { HP_POP(login->char_server_connection_status, HP_login_char_server_connection_status) },
+ { HP_POP(login->parse_request_connection, HP_login_parse_request_connection) },
+ { HP_POP(login->parse_login, HP_login_parse_login) },
+};
+
+int HookingPointsLenMax = 42;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
new file mode 100644
index 000000000..1ebd9fd1a
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
@@ -0,0 +1,1473 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+/* login */
+int HP_login_mmo_auth(struct login_session_data *sd, bool isServer) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_mmo_auth_pre ) {
+ int (*preHookFunc) (struct login_session_data *sd, bool *isServer);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_mmo_auth_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_mmo_auth_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, &isServer);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.mmo_auth(sd, isServer);
+ }
+ if( HPMHooks.count.HP_login_mmo_auth_post ) {
+ int (*postHookFunc) (int retVal___, struct login_session_data *sd, bool *isServer);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_mmo_auth_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_mmo_auth_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, &isServer);
+ }
+ }
+ return retVal___;
+}
+int HP_login_mmo_auth_new(const char *userid, const char *pass, const char sex, const char *last_ip) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_mmo_auth_new_pre ) {
+ int (*preHookFunc) (const char *userid, const char *pass, const char *sex, const char *last_ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_mmo_auth_new_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_mmo_auth_new_pre[hIndex].func;
+ retVal___ = preHookFunc(userid, pass, &sex, last_ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.mmo_auth_new(userid, pass, sex, last_ip);
+ }
+ if( HPMHooks.count.HP_login_mmo_auth_new_post ) {
+ int (*postHookFunc) (int retVal___, const char *userid, const char *pass, const char *sex, const char *last_ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_mmo_auth_new_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_mmo_auth_new_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, userid, pass, &sex, last_ip);
+ }
+ }
+ return retVal___;
+}
+int HP_login_waiting_disconnect_timer(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_waiting_disconnect_timer_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_waiting_disconnect_timer_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_waiting_disconnect_timer_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.waiting_disconnect_timer(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_login_waiting_disconnect_timer_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_waiting_disconnect_timer_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_waiting_disconnect_timer_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+DBData HP_login_create_online_user(DBKey key, va_list args) {
+ int hIndex = 0;
+ DBData retVal___;
+ memset(&retVal___, '\0', sizeof(DBData));
+ if( HPMHooks.count.HP_login_create_online_user_pre ) {
+ DBData (*preHookFunc) (DBKey *key, va_list args);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_create_online_user_pre; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ preHookFunc = HPMHooks.list.HP_login_create_online_user_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, args___copy);
+ va_end(args___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list args___copy; va_copy(args___copy, args);
+ retVal___ = HPMHooks.source.login.create_online_user(key, args___copy);
+ va_end(args___copy);
+ }
+ if( HPMHooks.count.HP_login_create_online_user_post ) {
+ DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_create_online_user_post; hIndex++ ) {
+ va_list args___copy; va_copy(args___copy, args);
+ postHookFunc = HPMHooks.list.HP_login_create_online_user_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, args___copy);
+ va_end(args___copy);
+ }
+ }
+ return retVal___;
+}
+struct online_login_data* HP_login_add_online_user(int char_server, int account_id) {
+ int hIndex = 0;
+ struct online_login_data* retVal___ = NULL;
+ if( HPMHooks.count.HP_login_add_online_user_pre ) {
+ struct online_login_data* (*preHookFunc) (int *char_server, int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_add_online_user_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_add_online_user_pre[hIndex].func;
+ retVal___ = preHookFunc(&char_server, &account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.add_online_user(char_server, account_id);
+ }
+ if( HPMHooks.count.HP_login_add_online_user_post ) {
+ struct online_login_data* (*postHookFunc) (struct online_login_data* retVal___, int *char_server, int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_add_online_user_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_add_online_user_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &char_server, &account_id);
+ }
+ }
+ return retVal___;
+}
+void HP_login_remove_online_user(int account_id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_remove_online_user_pre ) {
+ void (*preHookFunc) (int *account_id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_remove_online_user_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_remove_online_user_pre[hIndex].func;
+ preHookFunc(&account_id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.remove_online_user(account_id);
+ }
+ if( HPMHooks.count.HP_login_remove_online_user_post ) {
+ void (*postHookFunc) (int *account_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_remove_online_user_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_remove_online_user_post[hIndex].func;
+ postHookFunc(&account_id);
+ }
+ }
+ return;
+}
+int HP_login_online_db_setoffline(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_online_db_setoffline_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_db_setoffline_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_login_online_db_setoffline_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.login.online_db_setoffline(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_login_online_db_setoffline_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_db_setoffline_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_login_online_db_setoffline_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_login_online_data_cleanup_sub(DBKey key, DBData *data, va_list ap) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_online_data_cleanup_sub_pre ) {
+ int (*preHookFunc) (DBKey *key, DBData *data, va_list ap);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_data_cleanup_sub_pre; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ preHookFunc = HPMHooks.list.HP_login_online_data_cleanup_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ retVal___ = HPMHooks.source.login.online_data_cleanup_sub(key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ if( HPMHooks.count.HP_login_online_data_cleanup_sub_post ) {
+ int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_data_cleanup_sub_post; hIndex++ ) {
+ va_list ap___copy; va_copy(ap___copy, ap);
+ postHookFunc = HPMHooks.list.HP_login_online_data_cleanup_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &key, data, ap___copy);
+ va_end(ap___copy);
+ }
+ }
+ return retVal___;
+}
+int HP_login_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_online_data_cleanup_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_data_cleanup_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_online_data_cleanup_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.online_data_cleanup(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_login_online_data_cleanup_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_online_data_cleanup_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_online_data_cleanup_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+int HP_login_sync_ip_addresses(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_sync_ip_addresses_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_sync_ip_addresses_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_sync_ip_addresses_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.sync_ip_addresses(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_login_sync_ip_addresses_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_sync_ip_addresses_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_sync_ip_addresses_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_check_encrypted(const char *str1, const char *str2, const char *passwd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_login_check_encrypted_pre ) {
+ bool (*preHookFunc) (const char *str1, const char *str2, const char *passwd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_check_encrypted_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_check_encrypted_pre[hIndex].func;
+ retVal___ = preHookFunc(str1, str2, passwd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.check_encrypted(str1, str2, passwd);
+ }
+ if( HPMHooks.count.HP_login_check_encrypted_post ) {
+ bool (*postHookFunc) (bool retVal___, const char *str1, const char *str2, const char *passwd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_check_encrypted_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_check_encrypted_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, str1, str2, passwd);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_check_password(const char *md5key, int passwdenc, const char *passwd, const char *refpass) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_login_check_password_pre ) {
+ bool (*preHookFunc) (const char *md5key, int *passwdenc, const char *passwd, const char *refpass);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_check_password_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_check_password_pre[hIndex].func;
+ retVal___ = preHookFunc(md5key, &passwdenc, passwd, refpass);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.check_password(md5key, passwdenc, passwd, refpass);
+ }
+ if( HPMHooks.count.HP_login_check_password_post ) {
+ bool (*postHookFunc) (bool retVal___, const char *md5key, int *passwdenc, const char *passwd, const char *refpass);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_check_password_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_check_password_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, md5key, &passwdenc, passwd, refpass);
+ }
+ }
+ return retVal___;
+}
+int HP_login_lan_subnetcheck(uint32 ip) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_lan_subnetcheck_pre ) {
+ int (*preHookFunc) (uint32 *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnetcheck_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_lan_subnetcheck_pre[hIndex].func;
+ retVal___ = preHookFunc(&ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.lan_subnetcheck(ip);
+ }
+ if( HPMHooks.count.HP_login_lan_subnetcheck_post ) {
+ int (*postHookFunc) (int retVal___, uint32 *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnetcheck_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_lan_subnetcheck_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &ip);
+ }
+ }
+ return retVal___;
+}
+int HP_login_lan_config_read(const char *lancfgName) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_lan_config_read_pre ) {
+ int (*preHookFunc) (const char *lancfgName);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_config_read_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_lan_config_read_pre[hIndex].func;
+ retVal___ = preHookFunc(lancfgName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.lan_config_read(lancfgName);
+ }
+ if( HPMHooks.count.HP_login_lan_config_read_post ) {
+ int (*postHookFunc) (int retVal___, const char *lancfgName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_config_read_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_lan_config_read_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, lancfgName);
+ }
+ }
+ return retVal___;
+}
+void HP_login_fromchar_accinfo(int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_accinfo_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, int *u_fd, int *u_aid, int *u_group, int *map_fd, struct mmo_account *acc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_accinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_accinfo_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &u_fd, &u_aid, &u_group, &map_fd, acc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_accinfo(fd, account_id, u_fd, u_aid, u_group, map_fd, acc);
+ }
+ if( HPMHooks.count.HP_login_fromchar_accinfo_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, int *u_fd, int *u_aid, int *u_group, int *map_fd, struct mmo_account *acc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_accinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_accinfo_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &u_fd, &u_aid, &u_group, &map_fd, acc);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_account(int fd, int account_id, struct mmo_account *acc) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_account_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, struct mmo_account *acc);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_account_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_account_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, acc);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_account(fd, account_id, acc);
+ }
+ if( HPMHooks.count.HP_login_fromchar_account_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, struct mmo_account *acc);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_account_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_account_post[hIndex].func;
+ postHookFunc(&fd, &account_id, acc);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_account_update_other(int account_id, unsigned int state) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_account_update_other_pre ) {
+ void (*preHookFunc) (int *account_id, unsigned int *state);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_account_update_other_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_account_update_other_pre[hIndex].func;
+ preHookFunc(&account_id, &state);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_account_update_other(account_id, state);
+ }
+ if( HPMHooks.count.HP_login_fromchar_account_update_other_post ) {
+ void (*postHookFunc) (int *account_id, unsigned int *state);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_account_update_other_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_account_update_other_post[hIndex].func;
+ postHookFunc(&account_id, &state);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_auth_ack(int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node *node) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_auth_ack_pre ) {
+ void (*preHookFunc) (int *fd, int *account_id, uint32 *login_id1, uint32 *login_id2, uint8 *sex, int *request_id, struct login_auth_node *node);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_auth_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_auth_ack_pre[hIndex].func;
+ preHookFunc(&fd, &account_id, &login_id1, &login_id2, &sex, &request_id, node);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_auth_ack(fd, account_id, login_id1, login_id2, sex, request_id, node);
+ }
+ if( HPMHooks.count.HP_login_fromchar_auth_ack_post ) {
+ void (*postHookFunc) (int *fd, int *account_id, uint32 *login_id1, uint32 *login_id2, uint8 *sex, int *request_id, struct login_auth_node *node);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_auth_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_auth_ack_post[hIndex].func;
+ postHookFunc(&fd, &account_id, &login_id1, &login_id2, &sex, &request_id, node);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_ban(int account_id, time_t timestamp) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_ban_pre ) {
+ void (*preHookFunc) (int *account_id, time_t *timestamp);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_ban_pre[hIndex].func;
+ preHookFunc(&account_id, &timestamp);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_ban(account_id, timestamp);
+ }
+ if( HPMHooks.count.HP_login_fromchar_ban_post ) {
+ void (*postHookFunc) (int *account_id, time_t *timestamp);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_ban_post[hIndex].func;
+ postHookFunc(&account_id, &timestamp);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_change_sex_other(int account_id, char sex) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_change_sex_other_pre ) {
+ void (*preHookFunc) (int *account_id, char *sex);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_change_sex_other_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_change_sex_other_pre[hIndex].func;
+ preHookFunc(&account_id, &sex);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_change_sex_other(account_id, sex);
+ }
+ if( HPMHooks.count.HP_login_fromchar_change_sex_other_post ) {
+ void (*postHookFunc) (int *account_id, char *sex);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_change_sex_other_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_change_sex_other_post[hIndex].func;
+ postHookFunc(&account_id, &sex);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_pong(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_pong_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_pong_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_pong_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_pong(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_pong_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_pong_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_pong_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_auth(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_auth_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_auth_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_auth_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_auth(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_auth_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_auth_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_auth_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_update_users(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_update_users_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_update_users_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_update_users_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_update_users(fd, id);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_update_users_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_update_users_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_update_users_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_request_change_email(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_request_change_email_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_request_change_email_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_request_change_email_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_request_change_email(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_request_change_email_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_request_change_email_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_request_change_email_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_account_data(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_account_data_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_data_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_data_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_account_data(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_account_data_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_data_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_data_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_ping(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_ping_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_ping_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_ping_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_ping(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_ping_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_ping_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_ping_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_change_email(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_change_email_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_email_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_email_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_change_email(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_change_email_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_email_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_email_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_account_update(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_account_update_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_update_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_update_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_account_update(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_account_update_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_update_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_update_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_ban(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_ban_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_ban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_ban_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_ban(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_ban_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_ban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_ban_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_change_sex(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_change_sex_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_sex_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_sex_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_change_sex(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_change_sex_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_sex_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_sex_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_account_reg2(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_account_reg2_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_reg2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_reg2_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_account_reg2(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_account_reg2_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_reg2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_reg2_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_unban(int fd, int id, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_unban_pre ) {
+ void (*preHookFunc) (int *fd, int *id, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_unban_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_unban_pre[hIndex].func;
+ preHookFunc(&fd, &id, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_unban(fd, id, ip);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_unban_post ) {
+ void (*postHookFunc) (int *fd, int *id, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_unban_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_unban_post[hIndex].func;
+ postHookFunc(&fd, &id, ip);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_account_online(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_account_online_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_online_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_online_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_account_online(fd, id);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_account_online_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_online_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_online_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_account_offline(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_account_offline_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_offline_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_account_offline(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_account_offline_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_account_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_account_offline_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_online_accounts(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_online_accounts_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_online_accounts_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_online_accounts_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_online_accounts(fd, id);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_online_accounts_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_online_accounts_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_online_accounts_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_request_account_reg2(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_request_account_reg2_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_request_account_reg2_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_request_account_reg2_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_request_account_reg2(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_request_account_reg2_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_request_account_reg2_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_request_account_reg2_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_update_wan_ip(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_update_wan_ip_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_update_wan_ip_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_update_wan_ip_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_update_wan_ip(fd, id);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_update_wan_ip_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_update_wan_ip_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_update_wan_ip_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_all_offline(int fd, int id) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_all_offline_pre ) {
+ void (*preHookFunc) (int *fd, int *id);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_all_offline_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_all_offline_pre[hIndex].func;
+ preHookFunc(&fd, &id);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_all_offline(fd, id);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_all_offline_post ) {
+ void (*postHookFunc) (int *fd, int *id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_all_offline_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_all_offline_post[hIndex].func;
+ postHookFunc(&fd, &id);
+ }
+ }
+ return;
+}
+void HP_login_fromchar_parse_change_pincode(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_change_pincode_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_pincode_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_pincode_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_change_pincode(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_change_pincode_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_change_pincode_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_change_pincode_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+bool HP_login_fromchar_parse_wrong_pincode(int fd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_login_fromchar_parse_wrong_pincode_pre ) {
+ bool (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_wrong_pincode_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_wrong_pincode_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.fromchar_parse_wrong_pincode(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_wrong_pincode_post ) {
+ bool (*postHookFunc) (bool retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_wrong_pincode_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_wrong_pincode_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_login_fromchar_parse_accinfo(int fd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_fromchar_parse_accinfo_pre ) {
+ void (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_accinfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_fromchar_parse_accinfo_pre[hIndex].func;
+ preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.fromchar_parse_accinfo(fd);
+ }
+ if( HPMHooks.count.HP_login_fromchar_parse_accinfo_post ) {
+ void (*postHookFunc) (int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_fromchar_parse_accinfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_fromchar_parse_accinfo_post[hIndex].func;
+ postHookFunc(&fd);
+ }
+ }
+ return;
+}
+int HP_login_parse_fromchar(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_parse_fromchar_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_fromchar_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_fromchar_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.parse_fromchar(fd);
+ }
+ if( HPMHooks.count.HP_login_parse_fromchar_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_fromchar_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_fromchar_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
+void HP_login_connection_problem(int fd, uint8 status) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_connection_problem_pre ) {
+ void (*preHookFunc) (int *fd, uint8 *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_connection_problem_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_connection_problem_pre[hIndex].func;
+ preHookFunc(&fd, &status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.connection_problem(fd, status);
+ }
+ if( HPMHooks.count.HP_login_connection_problem_post ) {
+ void (*postHookFunc) (int *fd, uint8 *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_connection_problem_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_connection_problem_post[hIndex].func;
+ postHookFunc(&fd, &status);
+ }
+ }
+ return;
+}
+void HP_login_kick(struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_kick_pre ) {
+ void (*preHookFunc) (struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_kick_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_kick_pre[hIndex].func;
+ preHookFunc(sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.kick(sd);
+ }
+ if( HPMHooks.count.HP_login_kick_post ) {
+ void (*postHookFunc) (struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_kick_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_kick_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+void HP_login_auth_ok(struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_auth_ok_pre ) {
+ void (*preHookFunc) (struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_auth_ok_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_auth_ok_pre[hIndex].func;
+ preHookFunc(sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.auth_ok(sd);
+ }
+ if( HPMHooks.count.HP_login_auth_ok_post ) {
+ void (*postHookFunc) (struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_auth_ok_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_auth_ok_post[hIndex].func;
+ postHookFunc(sd);
+ }
+ }
+ return;
+}
+void HP_login_auth_failed(struct login_session_data *sd, int result) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_auth_failed_pre ) {
+ void (*preHookFunc) (struct login_session_data *sd, int *result);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_auth_failed_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_auth_failed_pre[hIndex].func;
+ preHookFunc(sd, &result);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.auth_failed(sd, result);
+ }
+ if( HPMHooks.count.HP_login_auth_failed_post ) {
+ void (*postHookFunc) (struct login_session_data *sd, int *result);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_auth_failed_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_auth_failed_post[hIndex].func;
+ postHookFunc(sd, &result);
+ }
+ }
+ return;
+}
+void HP_login_login_error(int fd, uint8 status) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_login_error_pre ) {
+ void (*preHookFunc) (int *fd, uint8 *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_login_error_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_login_error_pre[hIndex].func;
+ preHookFunc(&fd, &status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.login_error(fd, status);
+ }
+ if( HPMHooks.count.HP_login_login_error_post ) {
+ void (*postHookFunc) (int *fd, uint8 *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_login_error_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_login_error_post[hIndex].func;
+ postHookFunc(&fd, &status);
+ }
+ }
+ return;
+}
+void HP_login_parse_ping(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_parse_ping_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_ping_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_ping_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.parse_ping(fd, sd);
+ }
+ if( HPMHooks.count.HP_login_parse_ping_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_ping_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_ping_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_login_parse_client_md5(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_parse_client_md5_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_client_md5_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_client_md5_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.parse_client_md5(fd, sd);
+ }
+ if( HPMHooks.count.HP_login_parse_client_md5_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_client_md5_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_client_md5_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+bool HP_login_parse_client_login(int fd, struct login_session_data *sd, const char *ip) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_login_parse_client_login_pre ) {
+ bool (*preHookFunc) (int *fd, struct login_session_data *sd, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_client_login_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_client_login_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, sd, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.parse_client_login(fd, sd, ip);
+ }
+ if( HPMHooks.count.HP_login_parse_client_login_post ) {
+ bool (*postHookFunc) (bool retVal___, int *fd, struct login_session_data *sd, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_client_login_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_client_login_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, sd, ip);
+ }
+ }
+ return retVal___;
+}
+void HP_login_send_coding_key(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_send_coding_key_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_send_coding_key_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_send_coding_key_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.send_coding_key(fd, sd);
+ }
+ if( HPMHooks.count.HP_login_send_coding_key_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_send_coding_key_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_send_coding_key_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_login_parse_request_coding_key(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_parse_request_coding_key_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_coding_key_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_request_coding_key_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.parse_request_coding_key(fd, sd);
+ }
+ if( HPMHooks.count.HP_login_parse_request_coding_key_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_coding_key_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_request_coding_key_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_login_char_server_connection_status(int fd, struct login_session_data *sd, uint8 status) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_char_server_connection_status_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd, uint8 *status);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_char_server_connection_status_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_char_server_connection_status_pre[hIndex].func;
+ preHookFunc(&fd, sd, &status);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.char_server_connection_status(fd, sd, status);
+ }
+ if( HPMHooks.count.HP_login_char_server_connection_status_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd, uint8 *status);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_char_server_connection_status_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_char_server_connection_status_post[hIndex].func;
+ postHookFunc(&fd, sd, &status);
+ }
+ }
+ return;
+}
+void HP_login_parse_request_connection(int fd, struct login_session_data *sd, const char *ip) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_login_parse_request_connection_pre ) {
+ void (*preHookFunc) (int *fd, struct login_session_data *sd, const char *ip);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_connection_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_request_connection_pre[hIndex].func;
+ preHookFunc(&fd, sd, ip);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.parse_request_connection(fd, sd, ip);
+ }
+ if( HPMHooks.count.HP_login_parse_request_connection_post ) {
+ void (*postHookFunc) (int *fd, struct login_session_data *sd, const char *ip);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_connection_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_request_connection_post[hIndex].func;
+ postHookFunc(&fd, sd, ip);
+ }
+ }
+ return;
+}
+int HP_login_parse_login(int fd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_login_parse_login_pre ) {
+ int (*preHookFunc) (int *fd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_login_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_login_parse_login_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.parse_login(fd);
+ }
+ if( HPMHooks.count.HP_login_parse_login_post ) {
+ int (*postHookFunc) (int retVal___, int *fd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_login_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_login_parse_login_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd);
+ }
+ }
+ return retVal___;
+}
diff --git a/src/plugins/HPMHooking/HPMHooking_login.sources.inc b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
new file mode 100644
index 000000000..aa1bb2625
--- /dev/null
+++ b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
@@ -0,0 +1,7 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+//
+// NOTE: This file was auto-generated and should never be manually edited,
+// as it will get overwritten.
+
+memcpy(&HPMHooks.source.login, login, sizeof(struct login_interface));
diff --git a/src/plugins/HPMHooking/HPMHooking.GetSymbol.inc b/src/plugins/HPMHooking/HPMHooking_map.GetSymbol.inc
index 8482b9f80..8482b9f80 100644
--- a/src/plugins/HPMHooking/HPMHooking.GetSymbol.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.GetSymbol.inc
diff --git a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index d73525b70..034b14b79 100644
--- a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -423,6 +423,8 @@ struct {
struct HPMHookPoint *HP_clif_send_post;
struct HPMHookPoint *HP_clif_send_sub_pre;
struct HPMHookPoint *HP_clif_send_sub_post;
+ struct HPMHookPoint *HP_clif_send_actual_pre;
+ struct HPMHookPoint *HP_clif_send_actual_post;
struct HPMHookPoint *HP_clif_parse_pre;
struct HPMHookPoint *HP_clif_parse_post;
struct HPMHookPoint *HP_clif_parse_cmd_pre;
@@ -505,6 +507,8 @@ struct {
struct HPMHookPoint *HP_clif_changetraplook_post;
struct HPMHookPoint *HP_clif_refreshlook_pre;
struct HPMHookPoint *HP_clif_refreshlook_post;
+ struct HPMHookPoint *HP_clif_sendlook_pre;
+ struct HPMHookPoint *HP_clif_sendlook_post;
struct HPMHookPoint *HP_clif_class_change_pre;
struct HPMHookPoint *HP_clif_class_change_post;
struct HPMHookPoint *HP_clif_skill_delunit_pre;
@@ -825,8 +829,8 @@ struct {
struct HPMHookPoint *HP_clif_specialeffect_value_post;
struct HPMHookPoint *HP_clif_millenniumshield_pre;
struct HPMHookPoint *HP_clif_millenniumshield_post;
- struct HPMHookPoint *HP_clif_charm_pre;
- struct HPMHookPoint *HP_clif_charm_post;
+ struct HPMHookPoint *HP_clif_spiritcharm_pre;
+ struct HPMHookPoint *HP_clif_spiritcharm_post;
struct HPMHookPoint *HP_clif_charm_single_pre;
struct HPMHookPoint *HP_clif_charm_single_post;
struct HPMHookPoint *HP_clif_snap_pre;
@@ -977,6 +981,8 @@ struct {
struct HPMHookPoint *HP_clif_party_show_picker_post;
struct HPMHookPoint *HP_clif_partyinvitationstate_pre;
struct HPMHookPoint *HP_clif_partyinvitationstate_post;
+ struct HPMHookPoint *HP_clif_PartyLeaderChanged_pre;
+ struct HPMHookPoint *HP_clif_PartyLeaderChanged_post;
struct HPMHookPoint *HP_clif_guild_created_pre;
struct HPMHookPoint *HP_clif_guild_created_post;
struct HPMHookPoint *HP_clif_guild_belonginfo_pre;
@@ -1299,6 +1305,10 @@ struct {
struct HPMHookPoint *HP_clif_npc_market_open_post;
struct HPMHookPoint *HP_clif_npc_market_purchase_ack_pre;
struct HPMHookPoint *HP_clif_npc_market_purchase_ack_post;
+ struct HPMHookPoint *HP_clif_parse_roulette_db_pre;
+ struct HPMHookPoint *HP_clif_parse_roulette_db_post;
+ struct HPMHookPoint *HP_clif_roulette_generate_ack_pre;
+ struct HPMHookPoint *HP_clif_roulette_generate_ack_post;
struct HPMHookPoint *HP_clif_pWantToConnection_pre;
struct HPMHookPoint *HP_clif_pWantToConnection_post;
struct HPMHookPoint *HP_clif_pLoadEndAck_pre;
@@ -1739,6 +1749,16 @@ struct {
struct HPMHookPoint *HP_clif_pBankOpen_post;
struct HPMHookPoint *HP_clif_pBankClose_pre;
struct HPMHookPoint *HP_clif_pBankClose_post;
+ struct HPMHookPoint *HP_clif_pRouletteOpen_pre;
+ struct HPMHookPoint *HP_clif_pRouletteOpen_post;
+ struct HPMHookPoint *HP_clif_pRouletteInfo_pre;
+ struct HPMHookPoint *HP_clif_pRouletteInfo_post;
+ struct HPMHookPoint *HP_clif_pRouletteClose_pre;
+ struct HPMHookPoint *HP_clif_pRouletteClose_post;
+ struct HPMHookPoint *HP_clif_pRouletteGenerate_pre;
+ struct HPMHookPoint *HP_clif_pRouletteGenerate_post;
+ struct HPMHookPoint *HP_clif_pRouletteRecvItem_pre;
+ struct HPMHookPoint *HP_clif_pRouletteRecvItem_post;
struct HPMHookPoint *HP_clif_pNPCShopClosed_pre;
struct HPMHookPoint *HP_clif_pNPCShopClosed_post;
struct HPMHookPoint *HP_clif_pNPCMarketClosed_pre;
@@ -1999,10 +2019,8 @@ struct {
struct HPMHookPoint *HP_guild_get_alliance_count_post;
struct HPMHookPoint *HP_guild_castle_reconnect_sub_pre;
struct HPMHookPoint *HP_guild_castle_reconnect_sub_post;
- struct HPMHookPoint *HP_gstorage_id2storage_pre;
- struct HPMHookPoint *HP_gstorage_id2storage_post;
- struct HPMHookPoint *HP_gstorage_id2storage2_pre;
- struct HPMHookPoint *HP_gstorage_id2storage2_post;
+ struct HPMHookPoint *HP_gstorage_ensure_pre;
+ struct HPMHookPoint *HP_gstorage_ensure_post;
struct HPMHookPoint *HP_gstorage_init_pre;
struct HPMHookPoint *HP_gstorage_init_post;
struct HPMHookPoint *HP_gstorage_final_pre;
@@ -2549,6 +2567,8 @@ struct {
struct HPMHookPoint *HP_itemdb_gendercheck_post;
struct HPMHookPoint *HP_itemdb_validate_entry_pre;
struct HPMHookPoint *HP_itemdb_validate_entry_post;
+ struct HPMHookPoint *HP_itemdb_readdb_additional_fields_pre;
+ struct HPMHookPoint *HP_itemdb_readdb_additional_fields_post;
struct HPMHookPoint *HP_itemdb_readdb_sql_sub_pre;
struct HPMHookPoint *HP_itemdb_readdb_sql_sub_post;
struct HPMHookPoint *HP_itemdb_readdb_libconfig_sub_pre;
@@ -2569,6 +2589,10 @@ struct {
struct HPMHookPoint *HP_itemdb_clear_post;
struct HPMHookPoint *HP_itemdb_id2combo_pre;
struct HPMHookPoint *HP_itemdb_id2combo_post;
+ struct HPMHookPoint *HP_itemdb_is_item_usable_pre;
+ struct HPMHookPoint *HP_itemdb_is_item_usable_post;
+ struct HPMHookPoint *HP_itemdb_lookup_const_pre;
+ struct HPMHookPoint *HP_itemdb_lookup_const_post;
struct HPMHookPoint *HP_logs_pick_pc_pre;
struct HPMHookPoint *HP_logs_pick_pc_post;
struct HPMHookPoint *HP_logs_pick_mob_pre;
@@ -2673,6 +2697,8 @@ struct {
struct HPMHookPoint *HP_map_get_new_object_id_post;
struct HPMHookPoint *HP_map_search_freecell_pre;
struct HPMHookPoint *HP_map_search_freecell_post;
+ struct HPMHookPoint *HP_map_closest_freecell_pre;
+ struct HPMHookPoint *HP_map_closest_freecell_post;
struct HPMHookPoint *HP_map_quit_pre;
struct HPMHookPoint *HP_map_quit_post;
struct HPMHookPoint *HP_map_addnpc_pre;
@@ -3169,6 +3195,8 @@ struct {
struct HPMHookPoint *HP_mob_load_post;
struct HPMHookPoint *HP_mob_clear_spawninfo_pre;
struct HPMHookPoint *HP_mob_clear_spawninfo_post;
+ struct HPMHookPoint *HP_mob_destroy_mob_db_pre;
+ struct HPMHookPoint *HP_mob_destroy_mob_db_post;
struct HPMHookPoint *HP_npc_init_pre;
struct HPMHookPoint *HP_npc_init_post;
struct HPMHookPoint *HP_npc_final_pre;
@@ -3185,6 +3213,8 @@ struct {
struct HPMHookPoint *HP_npc_ontouch_event_post;
struct HPMHookPoint *HP_npc_ontouch2_event_pre;
struct HPMHookPoint *HP_npc_ontouch2_event_post;
+ struct HPMHookPoint *HP_npc_onuntouch_event_pre;
+ struct HPMHookPoint *HP_npc_onuntouch_event_post;
struct HPMHookPoint *HP_npc_enable_sub_pre;
struct HPMHookPoint *HP_npc_enable_sub_post;
struct HPMHookPoint *HP_npc_enable_pre;
@@ -3233,6 +3263,8 @@ struct {
struct HPMHookPoint *HP_npc_touchnext_areanpc_post;
struct HPMHookPoint *HP_npc_touch_areanpc_pre;
struct HPMHookPoint *HP_npc_touch_areanpc_post;
+ struct HPMHookPoint *HP_npc_untouch_areanpc_pre;
+ struct HPMHookPoint *HP_npc_untouch_areanpc_post;
struct HPMHookPoint *HP_npc_touch_areanpc2_pre;
struct HPMHookPoint *HP_npc_touch_areanpc2_post;
struct HPMHookPoint *HP_npc_check_areanpc_pre;
@@ -3285,12 +3317,16 @@ struct {
struct HPMHookPoint *HP_npc_parseview_post;
struct HPMHookPoint *HP_npc_viewisid_pre;
struct HPMHookPoint *HP_npc_viewisid_post;
+ struct HPMHookPoint *HP_npc_create_npc_pre;
+ struct HPMHookPoint *HP_npc_create_npc_post;
struct HPMHookPoint *HP_npc_add_warp_pre;
struct HPMHookPoint *HP_npc_add_warp_post;
struct HPMHookPoint *HP_npc_parse_warp_pre;
struct HPMHookPoint *HP_npc_parse_warp_post;
struct HPMHookPoint *HP_npc_parse_shop_pre;
struct HPMHookPoint *HP_npc_parse_shop_post;
+ struct HPMHookPoint *HP_npc_parse_unknown_object_pre;
+ struct HPMHookPoint *HP_npc_parse_unknown_object_post;
struct HPMHookPoint *HP_npc_convertlabel_db_pre;
struct HPMHookPoint *HP_npc_convertlabel_db_post;
struct HPMHookPoint *HP_npc_skip_script_pre;
@@ -3323,6 +3359,8 @@ struct {
struct HPMHookPoint *HP_npc_parse_mob_post;
struct HPMHookPoint *HP_npc_parse_mapflag_pre;
struct HPMHookPoint *HP_npc_parse_mapflag_post;
+ struct HPMHookPoint *HP_npc_parse_unknown_mapflag_pre;
+ struct HPMHookPoint *HP_npc_parse_unknown_mapflag_post;
struct HPMHookPoint *HP_npc_parsesrcfile_pre;
struct HPMHookPoint *HP_npc_parsesrcfile_post;
struct HPMHookPoint *HP_npc_script_event_pre;
@@ -3471,6 +3509,10 @@ struct {
struct HPMHookPoint *HP_path_check_distance_post;
struct HPMHookPoint *HP_path_distance_pre;
struct HPMHookPoint *HP_path_distance_post;
+ struct HPMHookPoint *HP_path_check_distance_client_pre;
+ struct HPMHookPoint *HP_path_check_distance_client_post;
+ struct HPMHookPoint *HP_path_distance_client_pre;
+ struct HPMHookPoint *HP_path_distance_client_post;
struct HPMHookPoint *HP_pcg_init_pre;
struct HPMHookPoint *HP_pcg_init_post;
struct HPMHookPoint *HP_pcg_final_pre;
@@ -3501,10 +3543,6 @@ struct {
struct HPMHookPoint *HP_pc_get_dummy_sd_post;
struct HPMHookPoint *HP_pc_class2idx_pre;
struct HPMHookPoint *HP_pc_class2idx_post;
- struct HPMHookPoint *HP_pc_can_give_items_pre;
- struct HPMHookPoint *HP_pc_can_give_items_post;
- struct HPMHookPoint *HP_pc_can_give_bound_items_pre;
- struct HPMHookPoint *HP_pc_can_give_bound_items_post;
struct HPMHookPoint *HP_pc_can_talk_pre;
struct HPMHookPoint *HP_pc_can_talk_post;
struct HPMHookPoint *HP_pc_can_attack_pre;
@@ -3675,8 +3713,12 @@ struct {
struct HPMHookPoint *HP_pc_resethate_post;
struct HPMHookPoint *HP_pc_equipitem_pre;
struct HPMHookPoint *HP_pc_equipitem_post;
+ struct HPMHookPoint *HP_pc_equipitem_pos_pre;
+ struct HPMHookPoint *HP_pc_equipitem_pos_post;
struct HPMHookPoint *HP_pc_unequipitem_pre;
struct HPMHookPoint *HP_pc_unequipitem_post;
+ struct HPMHookPoint *HP_pc_unequipitem_pos_pre;
+ struct HPMHookPoint *HP_pc_unequipitem_pos_post;
struct HPMHookPoint *HP_pc_checkitem_pre;
struct HPMHookPoint *HP_pc_checkitem_post;
struct HPMHookPoint *HP_pc_useitem_pre;
@@ -3707,10 +3749,14 @@ struct {
struct HPMHookPoint *HP_pc_setcart_post;
struct HPMHookPoint *HP_pc_setfalcon_pre;
struct HPMHookPoint *HP_pc_setfalcon_post;
- struct HPMHookPoint *HP_pc_setriding_pre;
- struct HPMHookPoint *HP_pc_setriding_post;
+ struct HPMHookPoint *HP_pc_setridingpeco_pre;
+ struct HPMHookPoint *HP_pc_setridingpeco_post;
struct HPMHookPoint *HP_pc_setmadogear_pre;
struct HPMHookPoint *HP_pc_setmadogear_post;
+ struct HPMHookPoint *HP_pc_setridingdragon_pre;
+ struct HPMHookPoint *HP_pc_setridingdragon_post;
+ struct HPMHookPoint *HP_pc_setridingwug_pre;
+ struct HPMHookPoint *HP_pc_setridingwug_post;
struct HPMHookPoint *HP_pc_changelook_pre;
struct HPMHookPoint *HP_pc_changelook_post;
struct HPMHookPoint *HP_pc_equiplookall_pre;
@@ -3975,8 +4021,6 @@ struct {
struct HPMHookPoint *HP_pet_skill_bonus_timer_post;
struct HPMHookPoint *HP_pet_recovery_timer_pre;
struct HPMHookPoint *HP_pet_recovery_timer_post;
- struct HPMHookPoint *HP_pet_heal_timer_pre;
- struct HPMHookPoint *HP_pet_heal_timer_post;
struct HPMHookPoint *HP_pet_skill_support_timer_pre;
struct HPMHookPoint *HP_pet_skill_support_timer_post;
struct HPMHookPoint *HP_pet_read_db_pre;
@@ -4563,8 +4607,6 @@ struct {
struct HPMHookPoint *HP_skill_greed_post;
struct HPMHookPoint *HP_skill_destroy_trap_pre;
struct HPMHookPoint *HP_skill_destroy_trap_post;
- struct HPMHookPoint *HP_skill_icewall_block_pre;
- struct HPMHookPoint *HP_skill_icewall_block_post;
struct HPMHookPoint *HP_skill_unitgrouptickset_search_pre;
struct HPMHookPoint *HP_skill_unitgrouptickset_search_post;
struct HPMHookPoint *HP_skill_dance_switch_pre;
@@ -4973,6 +5015,10 @@ struct {
struct HPMHookPoint *HP_unit_stop_walking_post;
struct HPMHookPoint *HP_unit_skilluse_id_pre;
struct HPMHookPoint *HP_unit_skilluse_id_post;
+ struct HPMHookPoint *HP_unit_step_timer_pre;
+ struct HPMHookPoint *HP_unit_step_timer_post;
+ struct HPMHookPoint *HP_unit_stop_stepaction_pre;
+ struct HPMHookPoint *HP_unit_stop_stepaction_post;
struct HPMHookPoint *HP_unit_is_walking_pre;
struct HPMHookPoint *HP_unit_is_walking_post;
struct HPMHookPoint *HP_unit_can_move_pre;
@@ -5460,6 +5506,8 @@ struct {
int HP_clif_send_post;
int HP_clif_send_sub_pre;
int HP_clif_send_sub_post;
+ int HP_clif_send_actual_pre;
+ int HP_clif_send_actual_post;
int HP_clif_parse_pre;
int HP_clif_parse_post;
int HP_clif_parse_cmd_pre;
@@ -5542,6 +5590,8 @@ struct {
int HP_clif_changetraplook_post;
int HP_clif_refreshlook_pre;
int HP_clif_refreshlook_post;
+ int HP_clif_sendlook_pre;
+ int HP_clif_sendlook_post;
int HP_clif_class_change_pre;
int HP_clif_class_change_post;
int HP_clif_skill_delunit_pre;
@@ -5862,8 +5912,8 @@ struct {
int HP_clif_specialeffect_value_post;
int HP_clif_millenniumshield_pre;
int HP_clif_millenniumshield_post;
- int HP_clif_charm_pre;
- int HP_clif_charm_post;
+ int HP_clif_spiritcharm_pre;
+ int HP_clif_spiritcharm_post;
int HP_clif_charm_single_pre;
int HP_clif_charm_single_post;
int HP_clif_snap_pre;
@@ -6014,6 +6064,8 @@ struct {
int HP_clif_party_show_picker_post;
int HP_clif_partyinvitationstate_pre;
int HP_clif_partyinvitationstate_post;
+ int HP_clif_PartyLeaderChanged_pre;
+ int HP_clif_PartyLeaderChanged_post;
int HP_clif_guild_created_pre;
int HP_clif_guild_created_post;
int HP_clif_guild_belonginfo_pre;
@@ -6336,6 +6388,10 @@ struct {
int HP_clif_npc_market_open_post;
int HP_clif_npc_market_purchase_ack_pre;
int HP_clif_npc_market_purchase_ack_post;
+ int HP_clif_parse_roulette_db_pre;
+ int HP_clif_parse_roulette_db_post;
+ int HP_clif_roulette_generate_ack_pre;
+ int HP_clif_roulette_generate_ack_post;
int HP_clif_pWantToConnection_pre;
int HP_clif_pWantToConnection_post;
int HP_clif_pLoadEndAck_pre;
@@ -6776,6 +6832,16 @@ struct {
int HP_clif_pBankOpen_post;
int HP_clif_pBankClose_pre;
int HP_clif_pBankClose_post;
+ int HP_clif_pRouletteOpen_pre;
+ int HP_clif_pRouletteOpen_post;
+ int HP_clif_pRouletteInfo_pre;
+ int HP_clif_pRouletteInfo_post;
+ int HP_clif_pRouletteClose_pre;
+ int HP_clif_pRouletteClose_post;
+ int HP_clif_pRouletteGenerate_pre;
+ int HP_clif_pRouletteGenerate_post;
+ int HP_clif_pRouletteRecvItem_pre;
+ int HP_clif_pRouletteRecvItem_post;
int HP_clif_pNPCShopClosed_pre;
int HP_clif_pNPCShopClosed_post;
int HP_clif_pNPCMarketClosed_pre;
@@ -7036,10 +7102,8 @@ struct {
int HP_guild_get_alliance_count_post;
int HP_guild_castle_reconnect_sub_pre;
int HP_guild_castle_reconnect_sub_post;
- int HP_gstorage_id2storage_pre;
- int HP_gstorage_id2storage_post;
- int HP_gstorage_id2storage2_pre;
- int HP_gstorage_id2storage2_post;
+ int HP_gstorage_ensure_pre;
+ int HP_gstorage_ensure_post;
int HP_gstorage_init_pre;
int HP_gstorage_init_post;
int HP_gstorage_final_pre;
@@ -7586,6 +7650,8 @@ struct {
int HP_itemdb_gendercheck_post;
int HP_itemdb_validate_entry_pre;
int HP_itemdb_validate_entry_post;
+ int HP_itemdb_readdb_additional_fields_pre;
+ int HP_itemdb_readdb_additional_fields_post;
int HP_itemdb_readdb_sql_sub_pre;
int HP_itemdb_readdb_sql_sub_post;
int HP_itemdb_readdb_libconfig_sub_pre;
@@ -7606,6 +7672,10 @@ struct {
int HP_itemdb_clear_post;
int HP_itemdb_id2combo_pre;
int HP_itemdb_id2combo_post;
+ int HP_itemdb_is_item_usable_pre;
+ int HP_itemdb_is_item_usable_post;
+ int HP_itemdb_lookup_const_pre;
+ int HP_itemdb_lookup_const_post;
int HP_logs_pick_pc_pre;
int HP_logs_pick_pc_post;
int HP_logs_pick_mob_pre;
@@ -7710,6 +7780,8 @@ struct {
int HP_map_get_new_object_id_post;
int HP_map_search_freecell_pre;
int HP_map_search_freecell_post;
+ int HP_map_closest_freecell_pre;
+ int HP_map_closest_freecell_post;
int HP_map_quit_pre;
int HP_map_quit_post;
int HP_map_addnpc_pre;
@@ -8206,6 +8278,8 @@ struct {
int HP_mob_load_post;
int HP_mob_clear_spawninfo_pre;
int HP_mob_clear_spawninfo_post;
+ int HP_mob_destroy_mob_db_pre;
+ int HP_mob_destroy_mob_db_post;
int HP_npc_init_pre;
int HP_npc_init_post;
int HP_npc_final_pre;
@@ -8222,6 +8296,8 @@ struct {
int HP_npc_ontouch_event_post;
int HP_npc_ontouch2_event_pre;
int HP_npc_ontouch2_event_post;
+ int HP_npc_onuntouch_event_pre;
+ int HP_npc_onuntouch_event_post;
int HP_npc_enable_sub_pre;
int HP_npc_enable_sub_post;
int HP_npc_enable_pre;
@@ -8270,6 +8346,8 @@ struct {
int HP_npc_touchnext_areanpc_post;
int HP_npc_touch_areanpc_pre;
int HP_npc_touch_areanpc_post;
+ int HP_npc_untouch_areanpc_pre;
+ int HP_npc_untouch_areanpc_post;
int HP_npc_touch_areanpc2_pre;
int HP_npc_touch_areanpc2_post;
int HP_npc_check_areanpc_pre;
@@ -8322,12 +8400,16 @@ struct {
int HP_npc_parseview_post;
int HP_npc_viewisid_pre;
int HP_npc_viewisid_post;
+ int HP_npc_create_npc_pre;
+ int HP_npc_create_npc_post;
int HP_npc_add_warp_pre;
int HP_npc_add_warp_post;
int HP_npc_parse_warp_pre;
int HP_npc_parse_warp_post;
int HP_npc_parse_shop_pre;
int HP_npc_parse_shop_post;
+ int HP_npc_parse_unknown_object_pre;
+ int HP_npc_parse_unknown_object_post;
int HP_npc_convertlabel_db_pre;
int HP_npc_convertlabel_db_post;
int HP_npc_skip_script_pre;
@@ -8360,6 +8442,8 @@ struct {
int HP_npc_parse_mob_post;
int HP_npc_parse_mapflag_pre;
int HP_npc_parse_mapflag_post;
+ int HP_npc_parse_unknown_mapflag_pre;
+ int HP_npc_parse_unknown_mapflag_post;
int HP_npc_parsesrcfile_pre;
int HP_npc_parsesrcfile_post;
int HP_npc_script_event_pre;
@@ -8508,6 +8592,10 @@ struct {
int HP_path_check_distance_post;
int HP_path_distance_pre;
int HP_path_distance_post;
+ int HP_path_check_distance_client_pre;
+ int HP_path_check_distance_client_post;
+ int HP_path_distance_client_pre;
+ int HP_path_distance_client_post;
int HP_pcg_init_pre;
int HP_pcg_init_post;
int HP_pcg_final_pre;
@@ -8538,10 +8626,6 @@ struct {
int HP_pc_get_dummy_sd_post;
int HP_pc_class2idx_pre;
int HP_pc_class2idx_post;
- int HP_pc_can_give_items_pre;
- int HP_pc_can_give_items_post;
- int HP_pc_can_give_bound_items_pre;
- int HP_pc_can_give_bound_items_post;
int HP_pc_can_talk_pre;
int HP_pc_can_talk_post;
int HP_pc_can_attack_pre;
@@ -8712,8 +8796,12 @@ struct {
int HP_pc_resethate_post;
int HP_pc_equipitem_pre;
int HP_pc_equipitem_post;
+ int HP_pc_equipitem_pos_pre;
+ int HP_pc_equipitem_pos_post;
int HP_pc_unequipitem_pre;
int HP_pc_unequipitem_post;
+ int HP_pc_unequipitem_pos_pre;
+ int HP_pc_unequipitem_pos_post;
int HP_pc_checkitem_pre;
int HP_pc_checkitem_post;
int HP_pc_useitem_pre;
@@ -8744,10 +8832,14 @@ struct {
int HP_pc_setcart_post;
int HP_pc_setfalcon_pre;
int HP_pc_setfalcon_post;
- int HP_pc_setriding_pre;
- int HP_pc_setriding_post;
+ int HP_pc_setridingpeco_pre;
+ int HP_pc_setridingpeco_post;
int HP_pc_setmadogear_pre;
int HP_pc_setmadogear_post;
+ int HP_pc_setridingdragon_pre;
+ int HP_pc_setridingdragon_post;
+ int HP_pc_setridingwug_pre;
+ int HP_pc_setridingwug_post;
int HP_pc_changelook_pre;
int HP_pc_changelook_post;
int HP_pc_equiplookall_pre;
@@ -9012,8 +9104,6 @@ struct {
int HP_pet_skill_bonus_timer_post;
int HP_pet_recovery_timer_pre;
int HP_pet_recovery_timer_post;
- int HP_pet_heal_timer_pre;
- int HP_pet_heal_timer_post;
int HP_pet_skill_support_timer_pre;
int HP_pet_skill_support_timer_post;
int HP_pet_read_db_pre;
@@ -9600,8 +9690,6 @@ struct {
int HP_skill_greed_post;
int HP_skill_destroy_trap_pre;
int HP_skill_destroy_trap_post;
- int HP_skill_icewall_block_pre;
- int HP_skill_icewall_block_post;
int HP_skill_unitgrouptickset_search_pre;
int HP_skill_unitgrouptickset_search_post;
int HP_skill_dance_switch_pre;
@@ -10010,6 +10098,10 @@ struct {
int HP_unit_stop_walking_post;
int HP_unit_skilluse_id_pre;
int HP_unit_skilluse_id_post;
+ int HP_unit_step_timer_pre;
+ int HP_unit_step_timer_post;
+ int HP_unit_stop_stepaction_pre;
+ int HP_unit_stop_stepaction_post;
int HP_unit_is_walking_pre;
int HP_unit_is_walking_post;
int HP_unit_can_move_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 05d484d20..21f48134c 100644
--- a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -221,6 +221,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->refresh_ip, HP_clif_refresh_ip) },
{ HP_POP(clif->send, HP_clif_send) },
{ HP_POP(clif->send_sub, HP_clif_send_sub) },
+ { HP_POP(clif->send_actual, HP_clif_send_actual) },
{ HP_POP(clif->parse, HP_clif_parse) },
{ HP_POP(clif->parse_cmd, HP_clif_parse_cmd) },
{ HP_POP(clif->decrypt_cmd, HP_clif_decrypt_cmd) },
@@ -262,6 +263,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->changelook, HP_clif_changelook) },
{ HP_POP(clif->changetraplook, HP_clif_changetraplook) },
{ HP_POP(clif->refreshlook, HP_clif_refreshlook) },
+ { HP_POP(clif->sendlook, HP_clif_sendlook) },
{ HP_POP(clif->class_change, HP_clif_class_change) },
{ HP_POP(clif->skill_delunit, HP_clif_skill_delunit) },
{ HP_POP(clif->skillunit_update, HP_clif_skillunit_update) },
@@ -422,7 +424,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->specialeffect_single, HP_clif_specialeffect_single) },
{ HP_POP(clif->specialeffect_value, HP_clif_specialeffect_value) },
{ HP_POP(clif->millenniumshield, HP_clif_millenniumshield) },
- { HP_POP(clif->charm, HP_clif_charm) },
+ { HP_POP(clif->spiritcharm, HP_clif_spiritcharm) },
{ HP_POP(clif->charm_single, HP_clif_charm_single) },
{ HP_POP(clif->snap, HP_clif_snap) },
{ HP_POP(clif->weather_check, HP_clif_weather_check) },
@@ -498,6 +500,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->party_xy_remove, HP_clif_party_xy_remove) },
{ HP_POP(clif->party_show_picker, HP_clif_party_show_picker) },
{ HP_POP(clif->partyinvitationstate, HP_clif_partyinvitationstate) },
+ { HP_POP(clif->PartyLeaderChanged, HP_clif_PartyLeaderChanged) },
{ HP_POP(clif->guild_created, HP_clif_guild_created) },
{ HP_POP(clif->guild_belonginfo, HP_clif_guild_belonginfo) },
{ HP_POP(clif->guild_masterormember, HP_clif_guild_masterormember) },
@@ -659,6 +662,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->delay_damage_sub, HP_clif_delay_damage_sub) },
{ HP_POP(clif->npc_market_open, HP_clif_npc_market_open) },
{ HP_POP(clif->npc_market_purchase_ack, HP_clif_npc_market_purchase_ack) },
+ { HP_POP(clif->parse_roulette_db, HP_clif_parse_roulette_db) },
+ { HP_POP(clif->roulette_generate_ack, HP_clif_roulette_generate_ack) },
{ HP_POP(clif->pWantToConnection, HP_clif_pWantToConnection) },
{ HP_POP(clif->pLoadEndAck, HP_clif_pLoadEndAck) },
{ HP_POP(clif->pTickSend, HP_clif_pTickSend) },
@@ -879,6 +884,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pBankCheck, HP_clif_pBankCheck) },
{ HP_POP(clif->pBankOpen, HP_clif_pBankOpen) },
{ HP_POP(clif->pBankClose, HP_clif_pBankClose) },
+ { HP_POP(clif->pRouletteOpen, HP_clif_pRouletteOpen) },
+ { HP_POP(clif->pRouletteInfo, HP_clif_pRouletteInfo) },
+ { HP_POP(clif->pRouletteClose, HP_clif_pRouletteClose) },
+ { HP_POP(clif->pRouletteGenerate, HP_clif_pRouletteGenerate) },
+ { HP_POP(clif->pRouletteRecvItem, HP_clif_pRouletteRecvItem) },
{ HP_POP(clif->pNPCShopClosed, HP_clif_pNPCShopClosed) },
{ HP_POP(clif->pNPCMarketClosed, HP_clif_pNPCMarketClosed) },
{ HP_POP(clif->pNPCMarketPurchase, HP_clif_pNPCMarketPurchase) },
@@ -1013,8 +1023,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(guild->get_alliance_count, HP_guild_get_alliance_count) },
{ HP_POP(guild->castle_reconnect_sub, HP_guild_castle_reconnect_sub) },
/* gstorage */
- { HP_POP(gstorage->id2storage, HP_gstorage_id2storage) },
- { HP_POP(gstorage->id2storage2, HP_gstorage_id2storage2) },
+ { HP_POP(gstorage->ensure, HP_gstorage_ensure) },
{ HP_POP(gstorage->init, HP_gstorage_init) },
{ HP_POP(gstorage->final, HP_gstorage_final) },
{ HP_POP(gstorage->delete, HP_gstorage_delete) },
@@ -1293,6 +1302,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(itemdb->read_combos, HP_itemdb_read_combos) },
{ HP_POP(itemdb->gendercheck, HP_itemdb_gendercheck) },
{ HP_POP(itemdb->validate_entry, HP_itemdb_validate_entry) },
+ { HP_POP(itemdb->readdb_additional_fields, HP_itemdb_readdb_additional_fields) },
{ HP_POP(itemdb->readdb_sql_sub, HP_itemdb_readdb_sql_sub) },
{ HP_POP(itemdb->readdb_libconfig_sub, HP_itemdb_readdb_libconfig_sub) },
{ HP_POP(itemdb->readdb_libconfig, HP_itemdb_readdb_libconfig) },
@@ -1303,6 +1313,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(itemdb->final_sub, HP_itemdb_final_sub) },
{ HP_POP(itemdb->clear, HP_itemdb_clear) },
{ HP_POP(itemdb->id2combo, HP_itemdb_id2combo) },
+ { HP_POP(itemdb->is_item_usable, HP_itemdb_is_item_usable) },
+ { HP_POP(itemdb->lookup_const, HP_itemdb_lookup_const) },
/* logs */
{ HP_POP(logs->pick_pc, HP_logs_pick_pc) },
{ HP_POP(logs->pick_mob, HP_logs_pick_mob) },
@@ -1358,6 +1370,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(map->find_skill_unit_oncell, HP_map_find_skill_unit_oncell) },
{ HP_POP(map->get_new_object_id, HP_map_get_new_object_id) },
{ HP_POP(map->search_freecell, HP_map_search_freecell) },
+ { HP_POP(map->closest_freecell, HP_map_closest_freecell) },
{ HP_POP(map->quit, HP_map_quit) },
{ HP_POP(map->addnpc, HP_map_addnpc) },
{ HP_POP(map->clearflooritem_timer, HP_map_clearflooritem_timer) },
@@ -1610,6 +1623,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mob->readdb_itemratio, HP_mob_readdb_itemratio) },
{ HP_POP(mob->load, HP_mob_load) },
{ HP_POP(mob->clear_spawninfo, HP_mob_clear_spawninfo) },
+ { HP_POP(mob->destroy_mob_db, HP_mob_destroy_mob_db) },
/* npc */
{ HP_POP(npc->init, HP_npc_init) },
{ HP_POP(npc->final, HP_npc_final) },
@@ -1619,6 +1633,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->isnear, HP_npc_isnear) },
{ HP_POP(npc->ontouch_event, HP_npc_ontouch_event) },
{ HP_POP(npc->ontouch2_event, HP_npc_ontouch2_event) },
+ { HP_POP(npc->onuntouch_event, HP_npc_onuntouch_event) },
{ HP_POP(npc->enable_sub, HP_npc_enable_sub) },
{ HP_POP(npc->enable, HP_npc_enable) },
{ HP_POP(npc->name2id, HP_npc_name2id) },
@@ -1643,6 +1658,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->touch_areanpc_sub, HP_npc_touch_areanpc_sub) },
{ HP_POP(npc->touchnext_areanpc, HP_npc_touchnext_areanpc) },
{ HP_POP(npc->touch_areanpc, HP_npc_touch_areanpc) },
+ { HP_POP(npc->untouch_areanpc, HP_npc_untouch_areanpc) },
{ HP_POP(npc->touch_areanpc2, HP_npc_touch_areanpc2) },
{ HP_POP(npc->check_areanpc, HP_npc_check_areanpc) },
{ HP_POP(npc->checknear, HP_npc_checknear) },
@@ -1669,9 +1685,11 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->parsename, HP_npc_parsename) },
{ HP_POP(npc->parseview, HP_npc_parseview) },
{ HP_POP(npc->viewisid, HP_npc_viewisid) },
+ { HP_POP(npc->create_npc, HP_npc_create_npc) },
{ HP_POP(npc->add_warp, HP_npc_add_warp) },
{ HP_POP(npc->parse_warp, HP_npc_parse_warp) },
{ HP_POP(npc->parse_shop, HP_npc_parse_shop) },
+ { HP_POP(npc->parse_unknown_object, HP_npc_parse_unknown_object) },
{ HP_POP(npc->convertlabel_db, HP_npc_convertlabel_db) },
{ HP_POP(npc->skip_script, HP_npc_skip_script) },
{ HP_POP(npc->parse_script, HP_npc_parse_script) },
@@ -1688,6 +1706,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->parse_mob2, HP_npc_parse_mob2) },
{ HP_POP(npc->parse_mob, HP_npc_parse_mob) },
{ HP_POP(npc->parse_mapflag, HP_npc_parse_mapflag) },
+ { HP_POP(npc->parse_unknown_mapflag, HP_npc_parse_unknown_mapflag) },
{ HP_POP(npc->parsesrcfile, HP_npc_parsesrcfile) },
{ HP_POP(npc->script_event, HP_npc_script_event) },
{ HP_POP(npc->read_event_script, HP_npc_read_event_script) },
@@ -1764,6 +1783,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(path->search_long, HP_path_search_long) },
{ HP_POP(path->check_distance, HP_path_check_distance) },
{ HP_POP(path->distance, HP_path_distance) },
+ { HP_POP(path->check_distance_client, HP_path_check_distance_client) },
+ { HP_POP(path->distance_client, HP_path_distance_client) },
/* pcg */
{ HP_POP(pcg->init, HP_pcg_init) },
{ HP_POP(pcg->final, HP_pcg_final) },
@@ -1781,8 +1802,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->final, HP_pc_final) },
{ HP_POP(pc->get_dummy_sd, HP_pc_get_dummy_sd) },
{ HP_POP(pc->class2idx, HP_pc_class2idx) },
- { HP_POP(pc->can_give_items, HP_pc_can_give_items) },
- { HP_POP(pc->can_give_bound_items, HP_pc_can_give_bound_items) },
{ HP_POP(pc->can_talk, HP_pc_can_talk) },
{ HP_POP(pc->can_attack, HP_pc_can_attack) },
{ HP_POP(pc->can_use_command, HP_pc_can_use_command) },
@@ -1868,7 +1887,9 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->resetfeel, HP_pc_resetfeel) },
{ HP_POP(pc->resethate, HP_pc_resethate) },
{ HP_POP(pc->equipitem, HP_pc_equipitem) },
+ { HP_POP(pc->equipitem_pos, HP_pc_equipitem_pos) },
{ HP_POP(pc->unequipitem, HP_pc_unequipitem) },
+ { HP_POP(pc->unequipitem_pos, HP_pc_unequipitem_pos) },
{ HP_POP(pc->checkitem, HP_pc_checkitem) },
{ HP_POP(pc->useitem, HP_pc_useitem) },
{ HP_POP(pc->skillatk_bonus, HP_pc_skillatk_bonus) },
@@ -1884,8 +1905,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->setoption, HP_pc_setoption) },
{ HP_POP(pc->setcart, HP_pc_setcart) },
{ HP_POP(pc->setfalcon, HP_pc_setfalcon) },
- { HP_POP(pc->setriding, HP_pc_setriding) },
+ { HP_POP(pc->setridingpeco, HP_pc_setridingpeco) },
{ HP_POP(pc->setmadogear, HP_pc_setmadogear) },
+ { HP_POP(pc->setridingdragon, HP_pc_setridingdragon) },
+ { HP_POP(pc->setridingwug, HP_pc_setridingwug) },
{ HP_POP(pc->changelook, HP_pc_changelook) },
{ HP_POP(pc->equiplookall, HP_pc_equiplookall) },
{ HP_POP(pc->readparam, HP_pc_readparam) },
@@ -2019,7 +2042,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pet->lootitem_drop, HP_pet_lootitem_drop) },
{ HP_POP(pet->skill_bonus_timer, HP_pet_skill_bonus_timer) },
{ HP_POP(pet->recovery_timer, HP_pet_recovery_timer) },
- { HP_POP(pet->heal_timer, HP_pet_heal_timer) },
{ HP_POP(pet->skill_support_timer, HP_pet_skill_support_timer) },
{ HP_POP(pet->read_db, HP_pet_read_db) },
/* quest */
@@ -2317,7 +2339,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->frostjoke_scream, HP_skill_frostjoke_scream) },
{ HP_POP(skill->greed, HP_skill_greed) },
{ HP_POP(skill->destroy_trap, HP_skill_destroy_trap) },
- { HP_POP(skill->icewall_block, HP_skill_icewall_block) },
{ HP_POP(skill->unitgrouptickset_search, HP_skill_unitgrouptickset_search) },
{ HP_POP(skill->dance_switch, HP_skill_dance_switch) },
{ HP_POP(skill->check_condition_char_sub, HP_skill_check_condition_char_sub) },
@@ -2526,6 +2547,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(unit->warp, HP_unit_warp) },
{ HP_POP(unit->stop_walking, HP_unit_stop_walking) },
{ HP_POP(unit->skilluse_id, HP_unit_skilluse_id) },
+ { HP_POP(unit->step_timer, HP_unit_step_timer) },
+ { HP_POP(unit->stop_stepaction, HP_unit_stop_stepaction) },
{ HP_POP(unit->is_walking, HP_unit_is_walking) },
{ HP_POP(unit->can_move, HP_unit_can_move) },
{ HP_POP(unit->resume_running, HP_unit_resume_running) },
diff --git a/src/plugins/HPMHooking/HPMHooking.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 8f209fe5c..9078efe2e 100644
--- a/src/plugins/HPMHooking/HPMHooking.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -5688,6 +5688,33 @@ int HP_clif_send_sub(struct block_list *bl, va_list ap) {
}
return retVal___;
}
+int HP_clif_send_actual(int fd, void *buf, int len) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_clif_send_actual_pre ) {
+ int (*preHookFunc) (int *fd, void *buf, int *len);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_actual_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_send_actual_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, buf, &len);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.clif.send_actual(fd, buf, len);
+ }
+ if( HPMHooks.count.HP_clif_send_actual_post ) {
+ int (*postHookFunc) (int retVal___, int *fd, void *buf, int *len);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_actual_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_send_actual_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &fd, buf, &len);
+ }
+ }
+ return retVal___;
+}
int HP_clif_parse(int fd) {
int hIndex = 0;
int retVal___ = 0;
@@ -6757,6 +6784,32 @@ void HP_clif_refreshlook(struct block_list *bl, int id, int type, int val, enum
}
return;
}
+void HP_clif_sendlook(struct block_list *bl, int id, int type, int val, int val2, enum send_target target) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_sendlook_pre ) {
+ void (*preHookFunc) (struct block_list *bl, int *id, int *type, int *val, int *val2, enum send_target *target);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendlook_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_sendlook_pre[hIndex].func;
+ preHookFunc(bl, &id, &type, &val, &val2, &target);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.sendlook(bl, id, type, val, val2, target);
+ }
+ if( HPMHooks.count.HP_clif_sendlook_post ) {
+ void (*postHookFunc) (struct block_list *bl, int *id, int *type, int *val, int *val2, enum send_target *target);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendlook_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_sendlook_post[hIndex].func;
+ postHookFunc(bl, &id, &type, &val, &val2, &target);
+ }
+ }
+ return;
+}
void HP_clif_class_change(struct block_list *bl, int class_, int type) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_class_change_pre ) {
@@ -10959,13 +11012,13 @@ void HP_clif_millenniumshield(struct block_list *bl, short shields) {
}
return;
}
-void HP_clif_charm(struct map_session_data *sd, short type) {
+void HP_clif_spiritcharm(struct map_session_data *sd, short type) {
int hIndex = 0;
- if( HPMHooks.count.HP_clif_charm_pre ) {
+ if( HPMHooks.count.HP_clif_spiritcharm_pre ) {
void (*preHookFunc) (struct map_session_data *sd, short *type);
*HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_clif_charm_pre[hIndex].func;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritcharm_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_spiritcharm_pre[hIndex].func;
preHookFunc(sd, &type);
}
if( *HPMforce_return ) {
@@ -10974,12 +11027,12 @@ void HP_clif_charm(struct map_session_data *sd, short type) {
}
}
{
- HPMHooks.source.clif.charm(sd, type);
+ HPMHooks.source.clif.spiritcharm(sd, type);
}
- if( HPMHooks.count.HP_clif_charm_post ) {
+ if( HPMHooks.count.HP_clif_spiritcharm_post ) {
void (*postHookFunc) (struct map_session_data *sd, short *type);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_clif_charm_post[hIndex].func;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritcharm_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_spiritcharm_post[hIndex].func;
postHookFunc(sd, &type);
}
}
@@ -12937,6 +12990,32 @@ void HP_clif_partyinvitationstate(struct map_session_data *sd) {
}
return;
}
+void HP_clif_PartyLeaderChanged(struct map_session_data *sd, int prev_leader_aid, int new_leader_aid) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_PartyLeaderChanged_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, int *prev_leader_aid, int *new_leader_aid);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyLeaderChanged_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_PartyLeaderChanged_pre[hIndex].func;
+ preHookFunc(sd, &prev_leader_aid, &new_leader_aid);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.PartyLeaderChanged(sd, prev_leader_aid, new_leader_aid);
+ }
+ if( HPMHooks.count.HP_clif_PartyLeaderChanged_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, int *prev_leader_aid, int *new_leader_aid);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyLeaderChanged_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_PartyLeaderChanged_post[hIndex].func;
+ postHookFunc(sd, &prev_leader_aid, &new_leader_aid);
+ }
+ }
+ return;
+}
void HP_clif_guild_created(struct map_session_data *sd, int flag) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_guild_created_pre ) {
@@ -17135,6 +17214,59 @@ void HP_clif_npc_market_purchase_ack(struct map_session_data *sd, struct packet_
}
return;
}
+bool HP_clif_parse_roulette_db(void) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_clif_parse_roulette_db_pre ) {
+ bool (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_roulette_db_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_parse_roulette_db_pre[hIndex].func;
+ retVal___ = preHookFunc();
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.clif.parse_roulette_db();
+ }
+ if( HPMHooks.count.HP_clif_parse_roulette_db_post ) {
+ bool (*postHookFunc) (bool retVal___);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_roulette_db_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_parse_roulette_db_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+void HP_clif_roulette_generate_ack(struct map_session_data *sd, unsigned char result, short stage, short prizeIdx, short bonusItemID) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_roulette_generate_ack_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, unsigned char *result, short *stage, short *prizeIdx, short *bonusItemID);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_roulette_generate_ack_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_roulette_generate_ack_pre[hIndex].func;
+ preHookFunc(sd, &result, &stage, &prizeIdx, &bonusItemID);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.roulette_generate_ack(sd, result, stage, prizeIdx, bonusItemID);
+ }
+ if( HPMHooks.count.HP_clif_roulette_generate_ack_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, unsigned char *result, short *stage, short *prizeIdx, short *bonusItemID);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_roulette_generate_ack_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_roulette_generate_ack_post[hIndex].func;
+ postHookFunc(sd, &result, &stage, &prizeIdx, &bonusItemID);
+ }
+ }
+ return;
+}
void HP_clif_pWantToConnection(int fd, struct map_session_data *sd) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_pWantToConnection_pre ) {
@@ -22855,6 +22987,136 @@ void HP_clif_pBankClose(int fd, struct map_session_data *sd) {
}
return;
}
+void HP_clif_pRouletteOpen(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_pRouletteOpen_pre ) {
+ void (*preHookFunc) (int *fd, struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteOpen_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_pRouletteOpen_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pRouletteOpen(fd, sd);
+ }
+ if( HPMHooks.count.HP_clif_pRouletteOpen_post ) {
+ void (*postHookFunc) (int *fd, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteOpen_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_pRouletteOpen_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pRouletteInfo(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_pRouletteInfo_pre ) {
+ void (*preHookFunc) (int *fd, struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteInfo_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_pRouletteInfo_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pRouletteInfo(fd, sd);
+ }
+ if( HPMHooks.count.HP_clif_pRouletteInfo_post ) {
+ void (*postHookFunc) (int *fd, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteInfo_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_pRouletteInfo_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pRouletteClose(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_pRouletteClose_pre ) {
+ void (*preHookFunc) (int *fd, struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteClose_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_pRouletteClose_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pRouletteClose(fd, sd);
+ }
+ if( HPMHooks.count.HP_clif_pRouletteClose_post ) {
+ void (*postHookFunc) (int *fd, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteClose_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_pRouletteClose_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pRouletteGenerate(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_pRouletteGenerate_pre ) {
+ void (*preHookFunc) (int *fd, struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteGenerate_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_pRouletteGenerate_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pRouletteGenerate(fd, sd);
+ }
+ if( HPMHooks.count.HP_clif_pRouletteGenerate_post ) {
+ void (*postHookFunc) (int *fd, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteGenerate_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_pRouletteGenerate_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pRouletteRecvItem(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_pRouletteRecvItem_pre ) {
+ void (*preHookFunc) (int *fd, struct map_session_data *sd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteRecvItem_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_pRouletteRecvItem_pre[hIndex].func;
+ preHookFunc(&fd, sd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pRouletteRecvItem(fd, sd);
+ }
+ if( HPMHooks.count.HP_clif_pRouletteRecvItem_post ) {
+ void (*postHookFunc) (int *fd, struct map_session_data *sd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRouletteRecvItem_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_pRouletteRecvItem_post[hIndex].func;
+ postHookFunc(&fd, sd);
+ }
+ }
+ return;
+}
void HP_clif_pNPCShopClosed(int fd, struct map_session_data *sd) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_pNPCShopClosed_pre ) {
@@ -26404,41 +26666,14 @@ void HP_guild_castle_reconnect_sub(void *key, void *data, va_list ap) {
return;
}
/* gstorage */
-struct guild_storage* HP_gstorage_id2storage(int guild_id) {
- int hIndex = 0;
- struct guild_storage* retVal___ = NULL;
- if( HPMHooks.count.HP_gstorage_id2storage_pre ) {
- struct guild_storage* (*preHookFunc) (int *guild_id);
- *HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_gstorage_id2storage_pre[hIndex].func;
- retVal___ = preHookFunc(&guild_id);
- }
- if( *HPMforce_return ) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.gstorage.id2storage(guild_id);
- }
- if( HPMHooks.count.HP_gstorage_id2storage_post ) {
- struct guild_storage* (*postHookFunc) (struct guild_storage* retVal___, int *guild_id);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_gstorage_id2storage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, &guild_id);
- }
- }
- return retVal___;
-}
-struct guild_storage* HP_gstorage_id2storage2(int guild_id) {
+struct guild_storage* HP_gstorage_ensure(int guild_id) {
int hIndex = 0;
struct guild_storage* retVal___ = NULL;
- if( HPMHooks.count.HP_gstorage_id2storage2_pre ) {
+ if( HPMHooks.count.HP_gstorage_ensure_pre ) {
struct guild_storage* (*preHookFunc) (int *guild_id);
*HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage2_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_gstorage_id2storage2_pre[hIndex].func;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_ensure_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_gstorage_ensure_pre[hIndex].func;
retVal___ = preHookFunc(&guild_id);
}
if( *HPMforce_return ) {
@@ -26447,12 +26682,12 @@ struct guild_storage* HP_gstorage_id2storage2(int guild_id) {
}
}
{
- retVal___ = HPMHooks.source.gstorage.id2storage2(guild_id);
+ retVal___ = HPMHooks.source.gstorage.ensure(guild_id);
}
- if( HPMHooks.count.HP_gstorage_id2storage2_post ) {
+ if( HPMHooks.count.HP_gstorage_ensure_post ) {
struct guild_storage* (*postHookFunc) (struct guild_storage* retVal___, int *guild_id);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage2_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_gstorage_id2storage2_post[hIndex].func;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_ensure_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_gstorage_ensure_post[hIndex].func;
retVal___ = postHookFunc(retVal___, &guild_id);
}
}
@@ -33756,6 +33991,32 @@ int HP_itemdb_validate_entry(struct item_data *entry, int n, const char *source)
}
return retVal___;
}
+void HP_itemdb_readdb_additional_fields(int itemid, config_setting_t *it, int n, const char *source) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_itemdb_readdb_additional_fields_pre ) {
+ void (*preHookFunc) (int *itemid, config_setting_t *it, int *n, const char *source);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_additional_fields_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_itemdb_readdb_additional_fields_pre[hIndex].func;
+ preHookFunc(&itemid, it, &n, source);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.itemdb.readdb_additional_fields(itemid, it, n, source);
+ }
+ if( HPMHooks.count.HP_itemdb_readdb_additional_fields_post ) {
+ void (*postHookFunc) (int *itemid, config_setting_t *it, int *n, const char *source);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_additional_fields_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_itemdb_readdb_additional_fields_post[hIndex].func;
+ postHookFunc(&itemid, it, &n, source);
+ }
+ }
+ return;
+}
int HP_itemdb_readdb_sql_sub(Sql *handle, int n, const char *source) {
int hIndex = 0;
int retVal___ = 0;
@@ -34029,6 +34290,60 @@ struct item_combo* HP_itemdb_id2combo(unsigned short id) {
}
return retVal___;
}
+bool HP_itemdb_is_item_usable(struct item_data *item) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_itemdb_is_item_usable_pre ) {
+ bool (*preHookFunc) (struct item_data *item);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_is_item_usable_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_itemdb_is_item_usable_pre[hIndex].func;
+ retVal___ = preHookFunc(item);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.itemdb.is_item_usable(item);
+ }
+ if( HPMHooks.count.HP_itemdb_is_item_usable_post ) {
+ bool (*postHookFunc) (bool retVal___, struct item_data *item);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_is_item_usable_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_itemdb_is_item_usable_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, item);
+ }
+ }
+ return retVal___;
+}
+bool HP_itemdb_lookup_const(const config_setting_t *it, const char *name, int *value) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_itemdb_lookup_const_pre ) {
+ bool (*preHookFunc) (const config_setting_t *it, const char *name, int *value);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_lookup_const_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_itemdb_lookup_const_pre[hIndex].func;
+ retVal___ = preHookFunc(it, name, value);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.itemdb.lookup_const(it, name, value);
+ }
+ if( HPMHooks.count.HP_itemdb_lookup_const_post ) {
+ bool (*postHookFunc) (bool retVal___, const config_setting_t *it, const char *name, int *value);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_lookup_const_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_itemdb_lookup_const_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, it, name, value);
+ }
+ }
+ return retVal___;
+}
/* logs */
void HP_logs_pick_pc(struct map_session_data *sd, e_log_pick_type type, int amount, struct item *itm, struct item_data *data) {
int hIndex = 0;
@@ -35299,15 +35614,15 @@ int HP_map_moveblock(struct block_list *bl, int x1, int y1, int64 tick) {
}
return retVal___;
}
-int HP_map_count_oncell(int16 m, int16 x, int16 y, int type) {
+int HP_map_count_oncell(int16 m, int16 x, int16 y, int type, int flag) {
int hIndex = 0;
int retVal___ = 0;
if( HPMHooks.count.HP_map_count_oncell_pre ) {
- int (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *type);
+ int (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *type, int *flag);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_oncell_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_map_count_oncell_pre[hIndex].func;
- retVal___ = preHookFunc(&m, &x, &y, &type);
+ retVal___ = preHookFunc(&m, &x, &y, &type, &flag);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -35315,13 +35630,13 @@ int HP_map_count_oncell(int16 m, int16 x, int16 y, int type) {
}
}
{
- retVal___ = HPMHooks.source.map.count_oncell(m, x, y, type);
+ retVal___ = HPMHooks.source.map.count_oncell(m, x, y, type, flag);
}
if( HPMHooks.count.HP_map_count_oncell_post ) {
- int (*postHookFunc) (int retVal___, int16 *m, int16 *x, int16 *y, int *type);
+ int (*postHookFunc) (int retVal___, int16 *m, int16 *x, int16 *y, int *type, int *flag);
for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_oncell_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_map_count_oncell_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, &m, &x, &y, &type);
+ retVal___ = postHookFunc(retVal___, &m, &x, &y, &type, &flag);
}
}
return retVal___;
@@ -35407,6 +35722,33 @@ int HP_map_search_freecell(struct block_list *src, int16 m, int16 *x, int16 *y,
}
return retVal___;
}
+bool HP_map_closest_freecell(int16 m, int16 *x, int16 *y, int type, int flag) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_map_closest_freecell_pre ) {
+ bool (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *type, int *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_map_closest_freecell_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_map_closest_freecell_pre[hIndex].func;
+ retVal___ = preHookFunc(&m, x, y, &type, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.map.closest_freecell(m, x, y, type, flag);
+ }
+ if( HPMHooks.count.HP_map_closest_freecell_post ) {
+ bool (*postHookFunc) (bool retVal___, int16 *m, int16 *x, int16 *y, int *type, int *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_map_closest_freecell_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_map_closest_freecell_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &m, x, y, &type, &flag);
+ }
+ }
+ return retVal___;
+}
int HP_map_quit(struct map_session_data *sd) {
int hIndex = 0;
int retVal___ = 0;
@@ -42299,6 +42641,32 @@ void HP_mob_clear_spawninfo(void) {
}
return;
}
+void HP_mob_destroy_mob_db(int index) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_mob_destroy_mob_db_pre ) {
+ void (*preHookFunc) (int *index);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_destroy_mob_db_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_mob_destroy_mob_db_pre[hIndex].func;
+ preHookFunc(&index);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.mob.destroy_mob_db(index);
+ }
+ if( HPMHooks.count.HP_mob_destroy_mob_db_post ) {
+ void (*postHookFunc) (int *index);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_destroy_mob_db_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_mob_destroy_mob_db_post[hIndex].func;
+ postHookFunc(&index);
+ }
+ }
+ return;
+}
/* npc */
int HP_npc_init(bool minimal) {
int hIndex = 0;
@@ -42522,6 +42890,33 @@ int HP_npc_ontouch2_event(struct map_session_data *sd, struct npc_data *nd) {
}
return retVal___;
}
+int HP_npc_onuntouch_event(struct map_session_data *sd, struct npc_data *nd) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_npc_onuntouch_event_pre ) {
+ int (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_onuntouch_event_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_onuntouch_event_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, nd);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.onuntouch_event(sd, nd);
+ }
+ if( HPMHooks.count.HP_npc_onuntouch_event_post ) {
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct npc_data *nd);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_onuntouch_event_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_onuntouch_event_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, nd);
+ }
+ }
+ return retVal___;
+}
int HP_npc_enable_sub(struct block_list *bl, va_list ap) {
int hIndex = 0;
int retVal___ = 0;
@@ -43192,6 +43587,33 @@ int HP_npc_touch_areanpc(struct map_session_data *sd, int16 m, int16 x, int16 y)
}
return retVal___;
}
+int HP_npc_untouch_areanpc(struct map_session_data *sd, int16 m, int16 x, int16 y) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_npc_untouch_areanpc_pre ) {
+ int (*preHookFunc) (struct map_session_data *sd, int16 *m, int16 *x, int16 *y);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_untouch_areanpc_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_untouch_areanpc_pre[hIndex].func;
+ retVal___ = preHookFunc(sd, &m, &x, &y);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.untouch_areanpc(sd, m, x, y);
+ }
+ if( HPMHooks.count.HP_npc_untouch_areanpc_post ) {
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, int16 *m, int16 *x, int16 *y);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_untouch_areanpc_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_untouch_areanpc_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, &m, &x, &y);
+ }
+ }
+ return retVal___;
+}
int HP_npc_touch_areanpc2(struct mob_data *md) {
int hIndex = 0;
int retVal___ = 0;
@@ -43906,6 +44328,33 @@ bool HP_npc_viewisid(const char *viewid) {
}
return retVal___;
}
+struct npc_data* HP_npc_create_npc(int m, int x, int y) {
+ int hIndex = 0;
+ struct npc_data* retVal___ = NULL;
+ if( HPMHooks.count.HP_npc_create_npc_pre ) {
+ struct npc_data* (*preHookFunc) (int *m, int *x, int *y);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_create_npc_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_create_npc_pre[hIndex].func;
+ retVal___ = preHookFunc(&m, &x, &y);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.create_npc(m, x, y);
+ }
+ if( HPMHooks.count.HP_npc_create_npc_post ) {
+ struct npc_data* (*postHookFunc) (struct npc_data* retVal___, int *m, int *x, int *y);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_create_npc_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_create_npc_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &m, &x, &y);
+ }
+ }
+ return retVal___;
+}
struct npc_data* HP_npc_add_warp(char *name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y) {
int hIndex = 0;
struct npc_data* retVal___ = NULL;
@@ -43987,6 +44436,33 @@ const char* HP_npc_parse_shop(char *w1, char *w2, char *w3, char *w4, const char
}
return retVal___;
}
+const char* HP_npc_parse_unknown_object(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_npc_parse_unknown_object_pre ) {
+ const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_unknown_object_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_parse_unknown_object_pre[hIndex].func;
+ retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath, retval);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.npc.parse_unknown_object(w1, w2, w3, w4, start, buffer, filepath, retval);
+ }
+ if( HPMHooks.count.HP_npc_parse_unknown_object_post ) {
+ const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_unknown_object_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_parse_unknown_object_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath, retval);
+ }
+ }
+ return retVal___;
+}
void HP_npc_convertlabel_db(struct npc_label_list *label_list, const char *filepath) {
int hIndex = 0;
if( HPMHooks.count.HP_npc_convertlabel_db_pre ) {
@@ -44418,6 +44894,32 @@ const char* HP_npc_parse_mapflag(char *w1, char *w2, char *w3, char *w4, const c
}
return retVal___;
}
+void HP_npc_parse_unknown_mapflag(const char *name, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_npc_parse_unknown_mapflag_pre ) {
+ void (*preHookFunc) (const char *name, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_unknown_mapflag_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_npc_parse_unknown_mapflag_pre[hIndex].func;
+ preHookFunc(name, w3, w4, start, buffer, filepath, retval);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.npc.parse_unknown_mapflag(name, w3, w4, start, buffer, filepath, retval);
+ }
+ if( HPMHooks.count.HP_npc_parse_unknown_mapflag_post ) {
+ void (*postHookFunc) (const char *name, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_unknown_mapflag_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_npc_parse_unknown_mapflag_post[hIndex].func;
+ postHookFunc(name, w3, w4, start, buffer, filepath, retval);
+ }
+ }
+ return;
+}
int HP_npc_parsesrcfile(const char *filepath, bool runOnInit) {
int hIndex = 0;
int retVal___ = 0;
@@ -46375,11 +46877,11 @@ bool HP_path_search_long(struct shootpath_data *spd, int16 m, int16 x0, int16 y0
}
return retVal___;
}
-int HP_path_check_distance(int dx, int dy, int distance) {
+bool HP_path_check_distance(int dx, int dy, int distance) {
int hIndex = 0;
- int retVal___ = 0;
+ bool retVal___ = false;
if( HPMHooks.count.HP_path_check_distance_pre ) {
- int (*preHookFunc) (int *dx, int *dy, int *distance);
+ bool (*preHookFunc) (int *dx, int *dy, int *distance);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_path_check_distance_pre[hIndex].func;
@@ -46394,7 +46896,7 @@ int HP_path_check_distance(int dx, int dy, int distance) {
retVal___ = HPMHooks.source.path.check_distance(dx, dy, distance);
}
if( HPMHooks.count.HP_path_check_distance_post ) {
- int (*postHookFunc) (int retVal___, int *dx, int *dy, int *distance);
+ bool (*postHookFunc) (bool retVal___, int *dx, int *dy, int *distance);
for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_path_check_distance_post[hIndex].func;
retVal___ = postHookFunc(retVal___, &dx, &dy, &distance);
@@ -46429,6 +46931,60 @@ unsigned int HP_path_distance(int dx, int dy) {
}
return retVal___;
}
+bool HP_path_check_distance_client(int dx, int dy, int distance) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if( HPMHooks.count.HP_path_check_distance_client_pre ) {
+ bool (*preHookFunc) (int *dx, int *dy, int *distance);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_client_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_path_check_distance_client_pre[hIndex].func;
+ retVal___ = preHookFunc(&dx, &dy, &distance);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.path.check_distance_client(dx, dy, distance);
+ }
+ if( HPMHooks.count.HP_path_check_distance_client_post ) {
+ bool (*postHookFunc) (bool retVal___, int *dx, int *dy, int *distance);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_client_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_path_check_distance_client_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &dx, &dy, &distance);
+ }
+ }
+ return retVal___;
+}
+int HP_path_distance_client(int dx, int dy) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_path_distance_client_pre ) {
+ int (*preHookFunc) (int *dx, int *dy);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_path_distance_client_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_path_distance_client_pre[hIndex].func;
+ retVal___ = preHookFunc(&dx, &dy);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.path.distance_client(dx, dy);
+ }
+ if( HPMHooks.count.HP_path_distance_client_post ) {
+ int (*postHookFunc) (int retVal___, int *dx, int *dy);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_path_distance_client_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_path_distance_client_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &dx, &dy);
+ }
+ }
+ return retVal___;
+}
/* pcg */
void HP_pcg_init(void) {
int hIndex = 0;
@@ -46831,60 +47387,6 @@ int HP_pc_class2idx(int class_) {
}
return retVal___;
}
-bool HP_pc_can_give_items(struct map_session_data *sd) {
- int hIndex = 0;
- bool retVal___ = false;
- if( HPMHooks.count.HP_pc_can_give_items_pre ) {
- bool (*preHookFunc) (struct map_session_data *sd);
- *HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_items_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_pc_can_give_items_pre[hIndex].func;
- retVal___ = preHookFunc(sd);
- }
- if( *HPMforce_return ) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.pc.can_give_items(sd);
- }
- if( HPMHooks.count.HP_pc_can_give_items_post ) {
- bool (*postHookFunc) (bool retVal___, struct map_session_data *sd);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_items_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_pc_can_give_items_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd);
- }
- }
- return retVal___;
-}
-bool HP_pc_can_give_bound_items(struct map_session_data *sd) {
- int hIndex = 0;
- bool retVal___ = false;
- if( HPMHooks.count.HP_pc_can_give_bound_items_pre ) {
- bool (*preHookFunc) (struct map_session_data *sd);
- *HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_bound_items_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_pc_can_give_bound_items_pre[hIndex].func;
- retVal___ = preHookFunc(sd);
- }
- if( *HPMforce_return ) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.pc.can_give_bound_items(sd);
- }
- if( HPMHooks.count.HP_pc_can_give_bound_items_post ) {
- bool (*postHookFunc) (bool retVal___, struct map_session_data *sd);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_bound_items_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_pc_can_give_bound_items_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd);
- }
- }
- return retVal___;
-}
bool HP_pc_can_talk(struct map_session_data *sd) {
int hIndex = 0;
bool retVal___ = false;
@@ -49178,6 +49680,32 @@ int HP_pc_equipitem(struct map_session_data *sd, int n, int req_pos) {
}
return retVal___;
}
+void HP_pc_equipitem_pos(struct map_session_data *sd, struct item_data *id, int pos) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pc_equipitem_pos_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, struct item_data *id, int *pos);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equipitem_pos_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pc_equipitem_pos_pre[hIndex].func;
+ preHookFunc(sd, id, &pos);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pc.equipitem_pos(sd, id, pos);
+ }
+ if( HPMHooks.count.HP_pc_equipitem_pos_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, struct item_data *id, int *pos);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equipitem_pos_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pc_equipitem_pos_post[hIndex].func;
+ postHookFunc(sd, id, &pos);
+ }
+ }
+ return;
+}
int HP_pc_unequipitem(struct map_session_data *sd, int n, int flag) {
int hIndex = 0;
int retVal___ = 0;
@@ -49205,6 +49733,32 @@ int HP_pc_unequipitem(struct map_session_data *sd, int n, int flag) {
}
return retVal___;
}
+void HP_pc_unequipitem_pos(struct map_session_data *sd, int n, int pos) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pc_unequipitem_pos_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, int *n, int *pos);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_unequipitem_pos_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pc_unequipitem_pos_pre[hIndex].func;
+ preHookFunc(sd, &n, &pos);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pc.unequipitem_pos(sd, n, pos);
+ }
+ if( HPMHooks.count.HP_pc_unequipitem_pos_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, int *n, int *pos);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_unequipitem_pos_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pc_unequipitem_pos_post[hIndex].func;
+ postHookFunc(sd, &n, &pos);
+ }
+ }
+ return;
+}
int HP_pc_checkitem(struct map_session_data *sd) {
int hIndex = 0;
int retVal___ = 0;
@@ -49580,64 +50134,62 @@ int HP_pc_setcart(struct map_session_data *sd, int type) {
}
return retVal___;
}
-int HP_pc_setfalcon(struct map_session_data *sd, int flag) {
+void HP_pc_setfalcon(struct map_session_data *sd, bool flag) {
int hIndex = 0;
- int retVal___ = 0;
if( HPMHooks.count.HP_pc_setfalcon_pre ) {
- int (*preHookFunc) (struct map_session_data *sd, int *flag);
+ void (*preHookFunc) (struct map_session_data *sd, bool *flag);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setfalcon_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_pc_setfalcon_pre[hIndex].func;
- retVal___ = preHookFunc(sd, &flag);
+ preHookFunc(sd, &flag);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
- return retVal___;
+ return;
}
}
{
- retVal___ = HPMHooks.source.pc.setfalcon(sd, flag);
+ HPMHooks.source.pc.setfalcon(sd, flag);
}
if( HPMHooks.count.HP_pc_setfalcon_post ) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag);
+ void (*postHookFunc) (struct map_session_data *sd, bool *flag);
for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setfalcon_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_pc_setfalcon_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, &flag);
+ postHookFunc(sd, &flag);
}
}
- return retVal___;
+ return;
}
-int HP_pc_setriding(struct map_session_data *sd, int flag) {
+void HP_pc_setridingpeco(struct map_session_data *sd, bool flag) {
int hIndex = 0;
- int retVal___ = 0;
- if( HPMHooks.count.HP_pc_setriding_pre ) {
- int (*preHookFunc) (struct map_session_data *sd, int *flag);
+ if( HPMHooks.count.HP_pc_setridingpeco_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, bool *flag);
*HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setriding_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_pc_setriding_pre[hIndex].func;
- retVal___ = preHookFunc(sd, &flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingpeco_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pc_setridingpeco_pre[hIndex].func;
+ preHookFunc(sd, &flag);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
- return retVal___;
+ return;
}
}
{
- retVal___ = HPMHooks.source.pc.setriding(sd, flag);
+ HPMHooks.source.pc.setridingpeco(sd, flag);
}
- if( HPMHooks.count.HP_pc_setriding_post ) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setriding_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_pc_setriding_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, &flag);
+ if( HPMHooks.count.HP_pc_setridingpeco_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, bool *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingpeco_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pc_setridingpeco_post[hIndex].func;
+ postHookFunc(sd, &flag);
}
}
- return retVal___;
+ return;
}
-void HP_pc_setmadogear(struct map_session_data *sd, int flag) {
+void HP_pc_setmadogear(struct map_session_data *sd, bool flag) {
int hIndex = 0;
if( HPMHooks.count.HP_pc_setmadogear_pre ) {
- void (*preHookFunc) (struct map_session_data *sd, int *flag);
+ void (*preHookFunc) (struct map_session_data *sd, bool *flag);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setmadogear_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_pc_setmadogear_pre[hIndex].func;
@@ -49652,7 +50204,7 @@ void HP_pc_setmadogear(struct map_session_data *sd, int flag) {
HPMHooks.source.pc.setmadogear(sd, flag);
}
if( HPMHooks.count.HP_pc_setmadogear_post ) {
- void (*postHookFunc) (struct map_session_data *sd, int *flag);
+ void (*postHookFunc) (struct map_session_data *sd, bool *flag);
for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setmadogear_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_pc_setmadogear_post[hIndex].func;
postHookFunc(sd, &flag);
@@ -49660,6 +50212,58 @@ void HP_pc_setmadogear(struct map_session_data *sd, int flag) {
}
return;
}
+void HP_pc_setridingdragon(struct map_session_data *sd, unsigned int type) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pc_setridingdragon_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, unsigned int *type);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingdragon_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pc_setridingdragon_pre[hIndex].func;
+ preHookFunc(sd, &type);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pc.setridingdragon(sd, type);
+ }
+ if( HPMHooks.count.HP_pc_setridingdragon_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, unsigned int *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingdragon_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pc_setridingdragon_post[hIndex].func;
+ postHookFunc(sd, &type);
+ }
+ }
+ return;
+}
+void HP_pc_setridingwug(struct map_session_data *sd, bool flag) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_pc_setridingwug_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, bool *flag);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingwug_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_pc_setridingwug_pre[hIndex].func;
+ preHookFunc(sd, &flag);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.pc.setridingwug(sd, flag);
+ }
+ if( HPMHooks.count.HP_pc_setridingwug_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, bool *flag);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setridingwug_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_pc_setridingwug_post[hIndex].func;
+ postHookFunc(sd, &flag);
+ }
+ }
+ return;
+}
int HP_pc_changelook(struct map_session_data *sd, int type, int val) {
int hIndex = 0;
int retVal___ = 0;
@@ -53233,33 +53837,6 @@ int HP_pet_recovery_timer(int tid, int64 tick, int id, intptr_t data) {
}
return retVal___;
}
-int HP_pet_heal_timer(int tid, int64 tick, int id, intptr_t data) {
- int hIndex = 0;
- int retVal___ = 0;
- if( HPMHooks.count.HP_pet_heal_timer_pre ) {
- int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
- *HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_heal_timer_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_pet_heal_timer_pre[hIndex].func;
- retVal___ = preHookFunc(&tid, &tick, &id, &data);
- }
- if( *HPMforce_return ) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.pet.heal_timer(tid, tick, id, data);
- }
- if( HPMHooks.count.HP_pet_heal_timer_post ) {
- int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_heal_timer_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_pet_heal_timer_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
- }
- }
- return retVal___;
-}
int HP_pet_skill_support_timer(int tid, int64 tick, int id, intptr_t data) {
int hIndex = 0;
int retVal___ = 0;
@@ -53960,15 +54537,15 @@ void HP_script_warning(const char *src, const char *file, int start_line, const
}
return;
}
-bool HP_script_addScript(char *name, char *args, bool ( *func ) (struct script_state *st)) {
+bool HP_script_addScript(char *name, char *args, bool ( *func ) (struct script_state *st), bool isDeprecated) {
int hIndex = 0;
bool retVal___ = false;
if( HPMHooks.count.HP_script_addScript_pre ) {
- bool (*preHookFunc) (char *name, char *args, bool ( *func ) (struct script_state *st));
+ bool (*preHookFunc) (char *name, char *args, bool ( *func ) (struct script_state *st), bool *isDeprecated);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addScript_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_script_addScript_pre[hIndex].func;
- retVal___ = preHookFunc(name, args, func);
+ retVal___ = preHookFunc(name, args, func, &isDeprecated);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -53976,13 +54553,13 @@ bool HP_script_addScript(char *name, char *args, bool ( *func ) (struct script_s
}
}
{
- retVal___ = HPMHooks.source.script.addScript(name, args, func);
+ retVal___ = HPMHooks.source.script.addScript(name, args, func, isDeprecated);
}
if( HPMHooks.count.HP_script_addScript_post ) {
- bool (*postHookFunc) (bool retVal___, char *name, char *args, bool ( *func ) (struct script_state *st));
+ bool (*postHookFunc) (bool retVal___, char *name, char *args, bool ( *func ) (struct script_state *st), bool *isDeprecated);
for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addScript_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_script_addScript_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, name, args, func);
+ retVal___ = postHookFunc(retVal___, name, args, func, &isDeprecated);
}
}
return retVal___;
@@ -61331,39 +61908,6 @@ int HP_skill_destroy_trap(struct block_list *bl, va_list ap) {
}
return retVal___;
}
-int HP_skill_icewall_block(struct block_list *bl, va_list ap) {
- int hIndex = 0;
- int retVal___ = 0;
- if( HPMHooks.count.HP_skill_icewall_block_pre ) {
- int (*preHookFunc) (struct block_list *bl, va_list ap);
- *HPMforce_return = false;
- for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_icewall_block_pre; hIndex++ ) {
- va_list ap___copy; va_copy(ap___copy, ap);
- preHookFunc = HPMHooks.list.HP_skill_icewall_block_pre[hIndex].func;
- retVal___ = preHookFunc(bl, ap___copy);
- va_end(ap___copy);
- }
- if( *HPMforce_return ) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- va_list ap___copy; va_copy(ap___copy, ap);
- retVal___ = HPMHooks.source.skill.icewall_block(bl, ap___copy);
- va_end(ap___copy);
- }
- if( HPMHooks.count.HP_skill_icewall_block_post ) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_icewall_block_post; hIndex++ ) {
- va_list ap___copy; va_copy(ap___copy, ap);
- postHookFunc = HPMHooks.list.HP_skill_icewall_block_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, bl, ap___copy);
- va_end(ap___copy);
- }
- }
- return retVal___;
-}
struct skill_unit_group_tickset* HP_skill_unitgrouptickset_search(struct block_list *bl, struct skill_unit_group *group, int64 tick) {
int hIndex = 0;
struct skill_unit_group_tickset* retVal___ = NULL;
@@ -64467,15 +65011,15 @@ unsigned short HP_status_calc_batk(struct block_list *bl, struct status_change *
}
return retVal___;
}
-unsigned short HP_status_base_matk(const struct status_data *st, int level) {
+unsigned short HP_status_base_matk(struct block_list *bl, const struct status_data *st, int level) {
int hIndex = 0;
unsigned short retVal___ = 0;
if( HPMHooks.count.HP_status_base_matk_pre ) {
- unsigned short (*preHookFunc) (const struct status_data *st, int *level);
+ unsigned short (*preHookFunc) (struct block_list *bl, const struct status_data *st, int *level);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_matk_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_status_base_matk_pre[hIndex].func;
- retVal___ = preHookFunc(st, &level);
+ retVal___ = preHookFunc(bl, st, &level);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -64483,13 +65027,13 @@ unsigned short HP_status_base_matk(const struct status_data *st, int level) {
}
}
{
- retVal___ = HPMHooks.source.status.base_matk(st, level);
+ retVal___ = HPMHooks.source.status.base_matk(bl, st, level);
}
if( HPMHooks.count.HP_status_base_matk_post ) {
- unsigned short (*postHookFunc) (unsigned short retVal___, const struct status_data *st, int *level);
+ unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, const struct status_data *st, int *level);
for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_matk_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_status_base_matk_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, st, &level);
+ retVal___ = postHookFunc(retVal___, bl, st, &level);
}
}
return retVal___;
@@ -66920,6 +67464,59 @@ int HP_unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id,
}
return retVal___;
}
+int HP_unit_step_timer(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_unit_step_timer_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_step_timer_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_unit_step_timer_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.unit.step_timer(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_unit_step_timer_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_step_timer_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_unit_step_timer_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
+void HP_unit_stop_stepaction(struct block_list *bl) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_unit_stop_stepaction_pre ) {
+ void (*preHookFunc) (struct block_list *bl);
+ *HPMforce_return = false;
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_stepaction_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_unit_stop_stepaction_pre[hIndex].func;
+ preHookFunc(bl);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.unit.stop_stepaction(bl);
+ }
+ if( HPMHooks.count.HP_unit_stop_stepaction_post ) {
+ void (*postHookFunc) (struct block_list *bl);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_stepaction_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_unit_stop_stepaction_post[hIndex].func;
+ postHookFunc(bl);
+ }
+ }
+ return;
+}
int HP_unit_is_walking(struct block_list *bl) {
int hIndex = 0;
int retVal___ = 0;
@@ -67136,32 +67733,31 @@ int HP_unit_set_target(struct unit_data *ud, int target_id) {
}
return retVal___;
}
-int HP_unit_stop_attack(struct block_list *bl) {
+void HP_unit_stop_attack(struct block_list *bl) {
int hIndex = 0;
- int retVal___ = 0;
if( HPMHooks.count.HP_unit_stop_attack_pre ) {
- int (*preHookFunc) (struct block_list *bl);
+ void (*preHookFunc) (struct block_list *bl);
*HPMforce_return = false;
for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_attack_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_unit_stop_attack_pre[hIndex].func;
- retVal___ = preHookFunc(bl);
+ preHookFunc(bl);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
- return retVal___;
+ return;
}
}
{
- retVal___ = HPMHooks.source.unit.stop_attack(bl);
+ HPMHooks.source.unit.stop_attack(bl);
}
if( HPMHooks.count.HP_unit_stop_attack_post ) {
- int (*postHookFunc) (int retVal___, struct block_list *bl);
+ void (*postHookFunc) (struct block_list *bl);
for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_attack_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_unit_stop_attack_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, bl);
+ postHookFunc(bl);
}
}
- return retVal___;
+ return;
}
int HP_unit_unattackable(struct block_list *bl) {
int hIndex = 0;
diff --git a/src/plugins/HPMHooking/HPMHooking.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
index 53bb6bcad..53bb6bcad 100644
--- a/src/plugins/HPMHooking/HPMHooking.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in
index 77040d567..802d1015a 100644
--- a/src/plugins/Makefile.in
+++ b/src/plugins/Makefile.in
@@ -24,10 +24,11 @@ MYPLUGINS =
######### DO NOT EDIT ANYTHING BELOW THIS LINE!!! ##################
# All plugins in the src/plugins directory
-ALLPLUGINS = $(basename $(wildcard *.c))
+HPMHOOKING = $(addprefix HPMHooking_, login char map)
+ALLPLUGINS = $(filter-out HPMHooking, $(basename $(wildcard *.c))) $(HPMHOOKING)
# Plugins that will be built through 'make plugins' or 'make all'
-PLUGINS = sample db2sql HPMHooking $(MYPLUGINS)
+PLUGINS = sample db2sql HPMHooking_char HPMHooking_login HPMHooking_map $(MYPLUGINS)
COMMON_D = ../common
COMMON_H = $(wildcard $(COMMON_D)/*.h)
@@ -46,11 +47,14 @@ CC = @CC@
export CC
#####################################################################
-.PHONY: all $(ALLPLUGINS) clean buildclean help
+.PHONY: all $(ALLPLUGINS) HPMHooking clean buildclean help
all: $(PLUGINS) Makefile
$(ALLPLUGINS): %: ../../plugins/%@DLLEXT@
+ @echo " PLUGIN $@"
+
+HPMHooking: $(HPMHOOKING)
buildclean:
@echo " CLEAN plugins (build temp files)"
@@ -80,4 +84,12 @@ Makefile: Makefile.in
../../plugins/%@DLLEXT@: %.c $(ALL_H) $$(shell ls %/* 2>/dev/null)
@echo " CC $<"
- @$(CC) @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
+ @$(CC) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
+
+../../plugins/HPMHooking_login@DLLEXT@: HPMHOOKINGTYPE = LOGIN
+../../plugins/HPMHooking_char@DLLEXT@: HPMHOOKINGTYPE = CHAR
+../../plugins/HPMHooking_map@DLLEXT@: HPMHOOKINGTYPE = MAP
+
+../../plugins/HPMHooking_%@DLLEXT@: HPMHooking.c $(ALL_H) $$(shell ls HPMHooking/*_%* HPMHooking/*_common* 2>/dev/null)
+ @echo " CC $< ($(HPMHOOKINGTYPE))"
+ @$(CC) -DHPMHOOKING_$(HPMHOOKINGTYPE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $<
diff --git a/src/plugins/db2sql.c b/src/plugins/db2sql.c
index 751f4be8a..eda61d026 100644
--- a/src/plugins/db2sql.c
+++ b/src/plugins/db2sql.c
@@ -49,7 +49,7 @@ void hstr(const char *str) {
}
int db2sql(config_setting_t *entry, int n, const char *source) {
struct item_data *it = NULL;
-
+
if( (it = itemdb->exists(itemdb_readdb_libconfig_sub(entry,n,source))) ) {
char e_name[ITEM_NAME_LENGTH*2+1];
const char *bonus = NULL;
@@ -67,7 +67,7 @@ int db2sql(config_setting_t *entry, int n, const char *source) {
// name_english
SQL->EscapeString(NULL, e_name, it->name);
StrBuf->Printf(&buf, "'%s',", e_name);
-
+
// name_japanese
SQL->EscapeString(NULL, e_name, it->jname);
StrBuf->Printf(&buf, "'%s',", e_name);
@@ -200,7 +200,7 @@ int db2sql(config_setting_t *entry, int n, const char *source) {
SQL->EscapeString(NULL, tosql.buf[0].p, str);
}
StrBuf->Printf(&buf, "'%s',", it->script?tosql.buf[0].p:"");
-
+
// equip_script
if (it->equip_script) {
libconfig->setting_lookup_string(entry, "OnEquipScript", &bonus);
@@ -290,56 +290,56 @@ void do_db2sql(void) {
ShowInfo("db2sql: this should not be used with 'db_use_sql_item_db' enabled, skipping...\n");
return;
}
-
+
/* link */
itemdb_readdb_libconfig_sub = itemdb->readdb_libconfig_sub;
itemdb->readdb_libconfig_sub = db2sql;
/* */
-
+
if ((tosql.fp = fopen("sql-files/item_db_re.sql", "wt+")) == NULL) {
ShowError("itemdb_tosql: File not found \"%s\".\n", "sql-files/item_db_re.sql");
return;
- }
-
+ }
+
tosql.db_name = map->item_db_re_db;
totable();
-
+
memset(&tosql.buf, 0, sizeof(tosql.buf) );
-
+
itemdb->clear(false);
itemdb->readdb_libconfig("re/item_db.conf");
-
+
fclose(tosql.fp);
-
+
if ((tosql.fp = fopen("sql-files/item_db.sql", "wt+")) == NULL) {
ShowError("itemdb_tosql: File not found \"%s\".\n", "sql-files/item_db.sql");
return;
- }
-
+ }
+
tosql.db_name = map->item_db_db;
totable();
-
+
itemdb->clear(false);
itemdb->readdb_libconfig("pre-re/item_db.conf");
-
+
fclose(tosql.fp);
-
+
if ((tosql.fp = fopen("sql-files/item_db2.sql", "wt+")) == NULL) {
ShowError("itemdb_tosql: File not found \"%s\".\n", "sql-files/item_db2.sql");
return;
- }
-
+ }
+
tosql.db_name = map->item_db2_db;
totable();
-
+
itemdb->clear(false);
itemdb->readdb_libconfig("item_db2.conf");
-
+
fclose(tosql.fp);
-
+
/* unlink */
itemdb->readdb_libconfig_sub = itemdb_readdb_libconfig_sub;
-
+
if( tosql.buf[0].p ) aFree(tosql.buf[0].p);
if( tosql.buf[1].p ) aFree(tosql.buf[1].p);
if( tosql.buf[2].p ) aFree(tosql.buf[2].p);
@@ -359,7 +359,7 @@ HPExport void server_preinit (void) {
iMalloc = GET_SYMBOL("iMalloc");
libconfig = GET_SYMBOL("libconfig");
StrBuf = GET_SYMBOL("StrBuf");
-
+
addArg("--db2sql",false,db2sql_arg,NULL);
}
HPExport void plugin_init (void) {
diff --git a/src/plugins/dbghelpplug.c b/src/plugins/dbghelpplug.c
index d121e9492..bf43c0b23 100644
--- a/src/plugins/dbghelpplug.c
+++ b/src/plugins/dbghelpplug.c
@@ -44,65 +44,65 @@ HPExport struct hplugin_info pinfo = {
#ifdef _NO_CVCONST_H
typedef enum _BasicType {
- btNoType = 0,
- btVoid = 1,
- btChar = 2,
- btWChar = 3,
- btInt = 6,
- btUInt = 7,
- btFloat = 8,
- btBCD = 9,
- btBool = 10,
- btLong = 13,
- btULong = 14,
- btCurrency = 25,
- btDate = 26,
- btVariant = 27,
- btComplex = 28,
- btBit = 29,
- btBSTR = 30,
- btHresult = 31
+ btNoType = 0,
+ btVoid = 1,
+ btChar = 2,
+ btWChar = 3,
+ btInt = 6,
+ btUInt = 7,
+ btFloat = 8,
+ btBCD = 9,
+ btBool = 10,
+ btLong = 13,
+ btULong = 14,
+ btCurrency = 25,
+ btDate = 26,
+ btVariant = 27,
+ btComplex = 28,
+ btBit = 29,
+ btBSTR = 30,
+ btHresult = 31
} BasicType;
typedef enum _UdtKind
{
- UdtStruct,
- UdtClass,
- UdtUnion
+ UdtStruct,
+ UdtClass,
+ UdtUnion
} UdtKind;
/*
typedef enum _SymTag {
- SymTagNull = 0,
- SymTagExe = 1,
- SymTagCompiland = 2,
- SymTagCompilandDetails = 3,
- SymTagCompilandEnv = 4,
- SymTagFunction = 5,
- SymTagBlock = 6,
- SymTagData = 7,
- SymTagAnnotation = 8,
- SymTagLabel = 9,
- SymTagPublicSymbol = 10,
- SymTagUDT = 11,
- SymTagEnum = 12,
- SymTagFunctionType = 13,
- SymTagPointerType = 14,
- SymTagArrayType = 15,
- SymTagBaseType = 16,
- SymTagTypedef = 17,
- SymTagBaseClass = 18,
- SymTagFriend = 19,
- SymTagFunctionArgType = 20,
- SymTagFuncDebugStart = 21,
- SymTagFuncDebugEnd = 22,
- SymTagUsingNamespace = 23,
- SymTagVTableShape = 24,
- SymTagVTable = 25,
- SymTagCustom = 26,
- SymTagThunk = 27,
- SymTagCustomType = 28,
- SymTagManagedType = 29,
- SymTagDimension = 30
+ SymTagNull = 0,
+ SymTagExe = 1,
+ SymTagCompiland = 2,
+ SymTagCompilandDetails = 3,
+ SymTagCompilandEnv = 4,
+ SymTagFunction = 5,
+ SymTagBlock = 6,
+ SymTagData = 7,
+ SymTagAnnotation = 8,
+ SymTagLabel = 9,
+ SymTagPublicSymbol = 10,
+ SymTagUDT = 11,
+ SymTagEnum = 12,
+ SymTagFunctionType = 13,
+ SymTagPointerType = 14,
+ SymTagArrayType = 15,
+ SymTagBaseType = 16,
+ SymTagTypedef = 17,
+ SymTagBaseClass = 18,
+ SymTagFriend = 19,
+ SymTagFunctionArgType = 20,
+ SymTagFuncDebugStart = 21,
+ SymTagFuncDebugEnd = 22,
+ SymTagUsingNamespace = 23,
+ SymTagVTableShape = 24,
+ SymTagVTable = 25,
+ SymTagCustom = 26,
+ SymTagThunk = 27,
+ SymTagCustomType = 28,
+ SymTagManagedType = 29,
+ SymTagDimension = 30
} SymTag;
*/
#endif /* _NO_CVCONST_H */
@@ -429,17 +429,17 @@ Dhp__PrintProcessInfo(
fprintf(log_file,
"eip=%08x esp=%08x ebp=%08x iopl=%1x %s %s %s %s %s %s %s %s %s %s\n",
context->Eip, context->Esp, context->Ebp,
- (context->EFlags >> 12) & 3, // IOPL level value
- context->EFlags & 0x00100000 ? "vip" : " ", // VIP (virtual interrupt pending)
- context->EFlags & 0x00080000 ? "vif" : " ", // VIF (virtual interrupt flag)
- context->EFlags & 0x00000800 ? "ov" : "nv", // VIF (virtual interrupt flag)
- context->EFlags & 0x00000400 ? "dn" : "up", // OF (overflow flag)
- context->EFlags & 0x00000200 ? "ei" : "di", // IF (interrupt enable flag)
- context->EFlags & 0x00000080 ? "ng" : "pl", // SF (sign flag)
- context->EFlags & 0x00000040 ? "zr" : "nz", // ZF (zero flag)
- context->EFlags & 0x00000010 ? "ac" : "na", // AF (aux carry flag)
- context->EFlags & 0x00000004 ? "po" : "pe", // PF (parity flag)
- context->EFlags & 0x00000001 ? "cy" : "nc"); // CF (carry flag)
+ (context->EFlags >> 12) & 3, // IOPL level value
+ context->EFlags & 0x00100000 ? "vip" : " ", // VIP (virtual interrupt pending)
+ context->EFlags & 0x00080000 ? "vif" : " ", // VIF (virtual interrupt flag)
+ context->EFlags & 0x00000800 ? "ov" : "nv", // VIF (virtual interrupt flag)
+ context->EFlags & 0x00000400 ? "dn" : "up", // OF (overflow flag)
+ context->EFlags & 0x00000200 ? "ei" : "di", // IF (interrupt enable flag)
+ context->EFlags & 0x00000080 ? "ng" : "pl", // SF (sign flag)
+ context->EFlags & 0x00000040 ? "zr" : "nz", // ZF (zero flag)
+ context->EFlags & 0x00000010 ? "ac" : "na", // AF (aux carry flag)
+ context->EFlags & 0x00000004 ? "po" : "pe", // PF (parity flag)
+ context->EFlags & 0x00000001 ? "cy" : "nc"); // CF (carry flag)
}
if( context->ContextFlags & CONTEXT_SEGMENTS )
{
@@ -525,9 +525,9 @@ Dhp__PrintTypeName(
case btVoid: fprintf(log_file, "void"); break;
case btChar: fprintf(log_file, "char"); break;
case btWChar: fprintf(log_file, "wchar"); break;
- case btULong: fprintf(log_file, "unsigned "); // next
+ case btULong: fprintf(log_file, "unsigned "); // next
case btLong: fprintf(log_file, "long"); break;
- case btUInt: fprintf(log_file, "unsigned "); // next
+ case btUInt: fprintf(log_file, "unsigned "); // next
case btInt:
if( length == sizeof(char) ) fprintf(log_file, "char");
else if( length == sizeof(short) ) fprintf(log_file, "short");
@@ -870,7 +870,7 @@ Dhp__PrintValueCWideString(
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
- if( length ) Dhp__PrintValueWideChars(log_file, str, length*sizeof(WCHAR), TRUE); // print readable part
+ if( length ) Dhp__PrintValueWideChars(log_file, str, length*sizeof(WCHAR), TRUE); // print readable part
fprintf(log_file, "<invalid memory>");
return;
}
@@ -901,7 +901,7 @@ Dhp__PrintValueCString(
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
- if( length ) Dhp__PrintValueChars(log_file, str, length*sizeof(char), TRUE); // print readable part
+ if( length ) Dhp__PrintValueChars(log_file, str, length*sizeof(char), TRUE); // print readable part
fprintf(log_file, "<invalid memory>");
return;
}
@@ -954,7 +954,7 @@ Dhp__PrintDataValue(
ULONG i;
BYTE b = 0;
for( i = 0; i < length; ++i )
- b += p[i]; // add to make sure it's not optimized out in release mode
+ b += p[i]; // add to make sure it's not optimized out in release mode
// Don't continue if there's no valid data
if( b == 0 ) {
@@ -1091,7 +1091,7 @@ Dhp__PrintDataValue(
DWORD i;
// count children
- if( !SymGetTypeInfo_(hProcess, modBase, typeIndex, TI_GET_CHILDRENCOUNT, &childCount)
+ if( !SymGetTypeInfo_(hProcess, modBase, typeIndex, TI_GET_CHILDRENCOUNT, &childCount)
|| !childCount ) {
fprintf(log_file, "<no children found>");
Dhp__PrintValueBytes(log_file, (BYTE*)pVariable, length);
@@ -1228,28 +1228,27 @@ Dhp__PrintDataInfo(
nr_of_var = pInterData->nr_of_var;
// Determine the scope and address of the variable
- if( pSymInfo->Flags & SYMFLAG_REGREL )
- {
+ if( pSymInfo->Flags & SYMFLAG_REGREL ) {
pVariable = pStackframe->AddrFrame.Offset;
pVariable += (DWORD_PTR)pSymInfo->Address;
if( pSymInfo->Flags & SYMFLAG_PARAMETER )
- scope = PARAM; // parameter
+ scope = PARAM; // parameter
else if( pSymInfo->Flags & SYMFLAG_LOCAL )
{
- scope = LOCAL; // local
+ scope = LOCAL; // local
#if defined(_M_IX86)
- if( (LONG64)pSymInfo->Address > 0) scope = PARAM; // parameter as local (bug in DBGHELP 5.1)
+ if( (LONG64)pSymInfo->Address > 0) scope = PARAM; // parameter as local (bug in DBGHELP 5.1)
#endif
}
}
else if( pSymInfo->Flags & SYMFLAG_REGISTER )
{
- scope = ( pSymInfo->Flags & SYMFLAG_PARAMETER ? PARAM : LOCAL ); // register, optimized out(?)
+ scope = ( pSymInfo->Flags & SYMFLAG_PARAMETER ? PARAM : LOCAL ); // register, optimized out(?)
}
else
{
pVariable = (DWORD_PTR)pSymInfo->Address;
- scope = GLOBAL; // It must be a global variable
+ scope = GLOBAL; // It must be a global variable
}
// check if we should to log the variable
@@ -1311,7 +1310,7 @@ Dhp__EnumSymbolsCallback(
PVOID pData)
{
if( pSymInfo == NULL )
- return TRUE; // try other symbols
+ return TRUE; // try other symbols
if( pData == NULL )
{
@@ -1345,7 +1344,7 @@ Dhp__PrintSourceLine(
assert( log_file != NULL );
// generate search paths
- strcpy(path, filename); // original path
+ strcpy(path, filename); // original path
p = strrchr(path, '\\');
if( p )
{
@@ -1355,15 +1354,15 @@ Dhp__PrintSourceLine(
{
while( strstr(p+1, "\\src\\") )
p = strstr(p+1, "\\src\\");
- strcat(path, p+1); // last src folder path
+ strcat(path, p+1); // last src folder path
p = strrchr(path, '\\');
memcpy(p, ";\0", 2);
}
filename = strrchr(filename, '\\')+1;
}
else
- *path = '\0'; // no path
- strcat(path, "."); // current directoy
+ *path = '\0'; // no path
+ strcat(path, "."); // current directoy
// search for file and line
if( SearchPathA(path, filename, NULL, MAX_PATH, pathBuffer, NULL) )
@@ -1668,8 +1667,8 @@ Dhp__CreateFiles(
char* out_logFileName,
char* out_dmpFileName)
{
-#define LEN_TIMESTAMP 14 // "YYYYMMDDhhmmss"
-#define LEN_EXT 4 // ".rpt" or ".dmp"
+#define LEN_TIMESTAMP 14 // "YYYYMMDDhhmmss"
+#define LEN_EXT 4 // ".rpt" or ".dmp"
char baseFileName[MAX_PATH+1];
char timestamp[LEN_TIMESTAMP+1];
FILE* fp;
@@ -1682,7 +1681,7 @@ Dhp__CreateFiles(
char* pTerm = strrchr(baseFileName, '\\');
if( pTerm == NULL ) pTerm = baseFileName;
pTerm = strrchr(pTerm, '.');
- if( pTerm ) *pTerm = '\0'; // remove extension
+ if( pTerm ) *pTerm = '\0'; // remove extension
}
else if( GetTempPathA(MAX_PATH-6-LEN_TIMESTAMP-LEN_EXT, baseFileName) )
{// in temp folder
@@ -1700,20 +1699,20 @@ Dhp__CreateFiles(
strftime(timestamp, sizeof(timestamp), "%Y%m%d%H%M%S", localtime(&now));
#endif
timestamp[LEN_TIMESTAMP] = '\0';
-
+
sprintf(out_logFileName, "%s%s.rpt", baseFileName, timestamp);
fp = fopen(out_logFileName, "w");
if( fp == NULL )
- return FALSE; // failed to create log file
+ return FALSE; // failed to create log file
fclose(fp);
sprintf(out_dmpFileName, "%s%s.dmp", baseFileName, timestamp);
fp = fopen(out_dmpFileName, "w");
if( fp == NULL)
- return FALSE; // failed to create dump file
+ return FALSE; // failed to create dump file
fclose(fp);
- return TRUE; // success
+ return TRUE; // success
#undef LEN_EXT
#undef LEN_TIMESTAMP
}
diff --git a/src/plugins/sample.c b/src/plugins/sample.c
index 84df88e06..03d32b1f3 100644
--- a/src/plugins/sample.c
+++ b/src/plugins/sample.c
@@ -18,10 +18,10 @@
#include "../common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) */
HPExport struct hplugin_info pinfo = {
- "Sample", // Plugin name
- SERVER_TYPE_MAP,// Which server types this plugin works with?
- "0.1", // Plugin version
- HPM_VERSION, // HPM Version (don't change, macro is automatically updated)
+ "Sample", // Plugin name
+ SERVER_TYPE_CHAR|SERVER_TYPE_LOGIN|SERVER_TYPE_MAP,// Which server types this plugin works with?
+ "0.1", // Plugin version
+ HPM_VERSION, // HPM Version (don't change, macro is automatically updated)
};
ACMD(sample) {//@sample command - 5 params: const int fd, struct map_session_data* sd, const char* command, const char* message, struct AtCommandInfo *info
printf("I'm being run! message -> '%s' by %s\n",message,sd->status.name);
@@ -46,20 +46,20 @@ struct sample_data_struct {
void sample_packet0f3(int fd) {
struct map_session_data *sd = session[fd]->session_data;
struct sample_data_struct *data;
-
+
if( !sd ) return;/* socket didn't fully log-in? this packet shouldn't do anything then! */
-
+
ShowInfo("sample_packet0f3: Hello World! received 0xf3 for '%s', redirecting!\n",sd->status.name);
-
+
/* sample usage of appending data to a socket_data (session[]) entry */
if( !(data = getFromSession(session[fd],0)) ) {
CREATE(data,struct sample_data_struct,1);
-
+
data->lastMSGPosition.map = sd->status.last_point.map;
data->lastMSGPosition.x = sd->status.last_point.x;
data->lastMSGPosition.y = sd->status.last_point.y;
data->someNumber = rand()%777;
-
+
ShowInfo("Created Appended session[] data, %d %d %d %d\n",data->lastMSGPosition.map,data->lastMSGPosition.x,data->lastMSGPosition.y,data->someNumber);
addToSession(session[fd],data,0,true);
} else {
@@ -69,16 +69,16 @@ void sample_packet0f3(int fd) {
removeFromSession(session[fd],0);
}
}
-
+
/* sample usage of appending data to a map_session_data (sd) entry */
if( !(data = getFromMSD(sd,0)) ) {
CREATE(data,struct sample_data_struct,1);
-
+
data->lastMSGPosition.map = sd->status.last_point.map;
data->lastMSGPosition.x = sd->status.last_point.x;
data->lastMSGPosition.y = sd->status.last_point.y;
data->someNumber = rand()%777;
-
+
ShowInfo("Created Appended map_session_data data, %d %d %d %d\n",data->lastMSGPosition.map,data->lastMSGPosition.x,data->lastMSGPosition.y,data->someNumber);
addToMSD(sd,data,0,true);
} else {
@@ -89,7 +89,6 @@ void sample_packet0f3(int fd) {
}
}
-
clif->pGlobalMessage(fd,sd);
}
int my_pc_dropitem_storage;/* storage var */
@@ -120,7 +119,7 @@ void parse_my_setting(const char *val) {
HPExport void plugin_init (void) {
char *server_type;
char *server_name;
-
+
/* core vars */
server_type = GET_SYMBOL("SERVER_TYPE");
server_name = GET_SYMBOL("SERVER_NAME");
@@ -138,40 +137,40 @@ HPExport void plugin_init (void) {
session = GET_SYMBOL("session");
ShowInfo ("Server type is ");
-
+
switch (*server_type) {
case SERVER_TYPE_LOGIN: printf ("Login Server\n"); break;
case SERVER_TYPE_CHAR: printf ("Char Server\n"); break;
case SERVER_TYPE_MAP: printf ("Map Server\n"); break;
}
-
+
ShowInfo ("I'm being run from the '%s' filename\n", server_name);
-
+
/* addAtcommand("command-key",command-function) tells map server to call ACMD(sample) when "sample" command is used */
/* - it will print a warning when used on a non-map-server plugin */
addAtcommand("sample",sample);//link our '@sample' command
-
+
/* addScriptCommand("script-command-name","script-command-params-info",script-function) tells map server to call BUILDIN(sample) for the "sample(i)" command */
/* - it will print a warning when used on a non-map-server plugin */
addScriptCommand("sample","i",sample);
-
+
/* addCPCommand("console-command-name",command-function) tells server to call CPCMD(sample) for the 'this is a sample <optional-args>' console call */
/* in "console-command-name" usage of ':' indicates a category, for example 'this:is:a:sample' translates to 'this is a sample',
* therefore 'this -> is -> a -> sample', it can be used to aggregate multiple commands under the same category or to append commands to existing categories
* categories inherit the special keyword 'help' which prints the subsequent commands, e.g. 'server help' prints all categories and commands under 'server'
* therefore 'this help' would inform about 'is (category) -> a (category) -> sample (command)'*/
addCPCommand("this:is:a:sample",sample);
-
+
/* addPacket(packetID,packetLength,packetFunction,packetIncomingPoint) */
/* adds packetID of packetLength (-1 for dynamic length where length is defined in the packet { packetID (2 Byte) , packetLength (2 Byte) , ... })
* to trigger packetFunction in the packetIncomingPoint section ( available points listed in enum HPluginPacketHookingPoints within src/common/HPMi.h ) */
addPacket(0xf3,-1,sample_packet0f3,hpClif_Parse);
-
+
/* in this sample we add a PreHook to pc->dropitem */
/* to identify whether the item being dropped is on amount higher than 1 */
/* if so, it stores the amount on a variable (my_pc_dropitem_storage) and changes the amount to 1 */
addHookPre("pc->dropitem",my_pc_dropitem_pre);
-
+
/* in this sample we add a PostHook to pc->dropitem */
/* if the original pc->dropitem was successful and the amount stored on my_pc_dropitem_storage is higher than 1, */
/* our posthook will display a message to the user about the cap */
@@ -187,7 +186,6 @@ HPExport void server_preinit (void) {
}
/* run when server is ready (online) */
HPExport void server_online (void) {
-
}
/* run when server is shutting down */
HPExport void plugin_final (void) {
diff --git a/src/test/test_spinlock.c b/src/test/test_spinlock.c
index 19a25f9d2..1b31e9b46 100644
--- a/src/test/test_spinlock.c
+++ b/src/test/test_spinlock.c
@@ -25,19 +25,19 @@ static volatile int32 done_threads = 0;
static void *worker(void *p){
register int i;
-
+
for(i = 0; i < PERINC; i++){
EnterSpinLock(&lock);
EnterSpinLock(&lock);
-
+
val++;
-
+
LeaveSpinLock(&lock);
LeaveSpinLock(&lock);
}
-
+
InterlockedIncrement(&done_threads);
-
+
return NULL;
}//end: worker()
@@ -46,34 +46,31 @@ int do_init(int argc, char **argv){
rAthread *t[THRC];
int j, i;
int ok;
-
+
ShowStatus("==========\n");
ShowStatus("TEST: %u Runs, (%u Threads)\n", LOOPS, THRC);
ShowStatus("This can take a while\n");
ShowStatus("\n\n");
-
+
ok =0;
for(j = 0; j < LOOPS; j++){
val = 0;
done_threads = 0;
-
+
InitializeSpinLock(&lock);
-
for(i =0; i < THRC; i++){
t[i] = rathread_createEx( worker, NULL, 1024*512, RAT_PRIO_NORMAL);
}
-
-
+
while(1){
if(InterlockedCompareExchange(&done_threads, THRC, THRC) == THRC)
break;
-
rathread_yield();
}
-
+
FinalizeSpinLock(&lock);
-
+
// Everything fine?
if(val != (THRC*PERINC) ){
printf("FAILED! (Result: %u, Expected: %u)\n", val, (THRC*PERINC) );
@@ -83,7 +80,6 @@ int do_init(int argc, char **argv){
}
}
-
if(ok != LOOPS){
ShowFatalError("Test failed.\n");
diff --git a/src/tool/Makefile.in b/src/tool/Makefile.in
index 127d3841b..2d7699db0 100644
--- a/src/tool/Makefile.in
+++ b/src/tool/Makefile.in
@@ -36,7 +36,7 @@ mapcache: ../../mapcache@EXEEXT@
../../mapcache@EXEEXT@: $(MAPCACHE_DEPENDS) Makefile
@echo " LD $(notdir $@)"
- @$(CC) @LDFLAGS@ -o ../../mapcache@EXEEXT@ $(MAPCACHE_DEPENDS) @LIBS@
+ @$(CC) @STATIC@ @LDFLAGS@ -o ../../mapcache@EXEEXT@ $(MAPCACHE_DEPENDS) @LIBS@
buildclean:
@echo " CLEAN tool (build temp files)"
diff --git a/tools/HPMHookGen/HPMDataCheckGen.pl b/tools/HPMHookGen/HPMDataCheckGen.pl
index 7ec1ba7e4..06b58127a 100644
--- a/tools/HPMHookGen/HPMDataCheckGen.pl
+++ b/tools/HPMHookGen/HPMDataCheckGen.pl
@@ -13,19 +13,29 @@ local $ENV{XML_SIMPLE_PREFERRED_PARSER} = 'XML::Parser'; # 0m4.256s
#local $ENV{XML_SIMPLE_PREFERRED_PARSER} = 'XML::SAX::Expat'; # 0m14.186s
#local $ENV{XML_SIMPLE_PREFERRED_PARSER} = 'XML::LibXML::SAX'; # 0m7.055s
+my $HPMDataCheckAPIVer = 1;
+
my @files = grep { -f } grep { /[^h]\.xml/ } glob 'doxyoutput/xml/struct*.xml';
my %out;
foreach my $file (@files) {
my $xml = new XML::Simple;
- my $data = $xml->XMLin($file);
- next unless $data->{compounddef}->{includes}; # means its a struct from a .c file, plugins cant access those so we don't care.
- next if $data->{compounddef}->{compoundname} =~ /::/; # its a duplicate with a :: name e.g. struct script_state {<...>} ay;
- my @filepath = split(/[\/\\]/, $data->{compounddef}->{location}->{file});
+ my $data = $xml->XMLin($file, ForceArray => 1);
+ my $filekey = (keys %{ $data->{compounddef} })[0];
+ next unless $data->{compounddef}->{$filekey}->{includes}; # means its a struct from a .c file, plugins cant access those so we don't care.
+ next if $data->{compounddef}->{$filekey}->{compoundname}->[0] =~ /::/; # its a duplicate with a :: name e.g. struct script_state {<...>} ay;
+ my @filepath = split(/[\/\\]/, $data->{compounddef}->{$filekey}->{location}->[0]->{file});
my $foldername = uc($filepath[-2]);
my $filename = uc($filepath[-1]); $filename =~ s/-/_/g; $filename =~ s/\.[^.]*$//;
+ my $plugintypes = 'SERVER_TYPE_UNKNOWN';
+ $plugintypes = 'SERVER_TYPE_ALL' if $foldername eq 'COMMON';
+ $plugintypes = "SERVER_TYPE_${foldername}" if $foldername =~ /^(LOGIN|CHAR|MAP)/;
+ my $symboldata = {
+ name => $data->{compounddef}->{$filekey}->{compoundname}->[0],
+ type => $plugintypes,
+ };
my $name = "${foldername}_${filename}_H";
- push @{ $out{$name} }, $data->{compounddef}->{compoundname};
+ push @{ $out{$name} }, $symboldata;
}
my $fname = '../../src/common/HPMDataCheck.h';
@@ -49,8 +59,10 @@ foreach my $key (sort keys %out) {
#ifdef $key
EOF
foreach my $entry (@{ $out{$key} }) {
+ my $entryname = $$entry{name};
+ my $entrytype = $$entry{type};
print FH <<"EOF"
- { "$entry", sizeof(struct $entry) },
+ { "$entryname", sizeof(struct $entryname), $entrytype },
EOF
}
print FH <<"EOF"
@@ -62,6 +74,7 @@ EOF
print FH <<"EOF";
};
HPExport unsigned int HPMDataCheckLen = ARRAYLENGTH(HPMDataCheck);
+HPExport int HPMDataCheckVer = $HPMDataCheckAPIVer;
#endif /* HPM_DATA_CHECK_H */
EOF
diff --git a/tools/HPMHookGen/HPMHookGen.pl b/tools/HPMHookGen/HPMHookGen.pl
index 3e2a11e5d..c11293d93 100755
--- a/tools/HPMHookGen/HPMHookGen.pl
+++ b/tools/HPMHookGen/HPMHookGen.pl
@@ -250,16 +250,22 @@ sub parse($$) {
my %key2original;
my @files = grep { -f } glob 'doxyoutput/xml/*interface*.xml';
my %ifs;
-my @keys;
+my %keys = (
+ login => [ ],
+ char => [ ],
+ map => [ ],
+);
foreach my $file (@files) { # Loop through the xml files
my $xml = new XML::Simple;
- my $data = $xml->XMLin($file);
+ my $data = $xml->XMLin($file, ForceArray => 1);
- my $loc = $data->{compounddef}->{location};
- next unless $loc->{file} =~ /src\/map\//; # We only handle mapserver for the time being
+ my $filekey = (keys %{ $data->{compounddef} })[0];
+ my $loc = $data->{compounddef}->{$filekey}->{location}->[0];
+ next unless $loc->{file} =~ /src\/(map|char|login)\//;
+ my $servertype = $1;
- my $key = $data->{compounddef}->{compoundname};
+ my $key = $data->{compounddef}->{$filekey}->{compoundname}->[0];
my $original = $key;
# Some known interfaces with different names
@@ -267,6 +273,8 @@ foreach my $file (@files) { # Loop through the xml files
$key = "bg";
} elsif ($key =~ /guild_storage/) {
$key = "gstorage";
+ } elsif ($key =~ /inter_homunculus/) { # to avoid replace to homun
+ $key = "inter_homunculus";
} elsif ($key =~ /homunculus/) {
$key = "homun";
} elsif ($key =~ /irc_bot/) {
@@ -275,23 +283,23 @@ foreach my $file (@files) { # Loop through the xml files
$key = "logs";
} elsif ($key =~ /pc_groups_interface/) {
$key = "pcg";
+ } elsif ($key =~ /char_interface/) {
+ $key = "chr";
} else {
$key =~ s/_interface//;
}
- foreach my $v ($data->{compounddef}->{sectiondef}) { # Loop through the sections
+ foreach my $v ($data->{compounddef}->{$filekey}->{sectiondef}->[0]) { # Loop through the sections
my $memberdef = $v->{memberdef};
- foreach my $fk (sort { # Sort the members in declaration order according to what the xml says
- my $astart = $memberdef->{$a}->{location}->{bodystart} || $memberdef->{$a}->{location}->{line};
- my $bstart = $memberdef->{$b}->{location}->{bodystart} || $memberdef->{$b}->{location}->{line};
+ foreach my $f (sort { # Sort the members in declaration order according to what the xml says
+ my $astart = $a->{location}->[0]->{bodystart} || $a->{location}->[0]->{line};
+ my $bstart = $b->{location}->[0]->{bodystart} || $b->{location}->[0]->{line};
$astart <=> $bstart
- } keys %$memberdef) { # Loop through the members
- my $f = $memberdef->{$fk};
-
- my $t = $f->{argsstring};
+ } @$memberdef) { # Loop through the members
+ my $t = $f->{argsstring}->[0];
next unless ref $t ne 'HASH' and $t =~ /^[^\[]/; # If it's not a string, or if it starts with an array subscript, we can skip it
- my $if = parse($t, $f->{definition});
+ my $if = parse($t, $f->{definition}->[0]);
next unless scalar keys %$if; # If it returns an empty hash reference, an error must've occurred
# Skip variadic functions, we only allow hooks on their arglist equivalents.
@@ -370,25 +378,27 @@ foreach my $file (@files) { # Loop through the xml files
push(@{ $ifs{$key} }, $if);
}
}
- push(@keys, $key) if $key2original{$key};
+ push(@{ $keys{$servertype} }, $key) if $key2original{$key};
}
-# Some interfaces use different names
-my %exportsymbols = map {
- $_ => &{ sub ($) {
- return 'battlegrounds' if $_ =~ /^bg$/;
- return 'pc_groups' if $_ =~ /^pcg$/;
- return $_;
- }}($_);
-} @keys;
-
-my ($maxlen, $idx) = (0, 0);
-my $fname;
-$fname = "../../src/plugins/HPMHooking/HPMHooking.HookingPoints.inc";
-open(FH, ">", $fname)
- or die "cannot open > $fname: $!";
-
-print FH <<"EOF";
+foreach my $servertype (keys %keys) {
+ my $keysref = $keys{$servertype};
+ # Some interfaces use different names
+ my %exportsymbols = map {
+ $_ => &{ sub ($) {
+ return 'battlegrounds' if $servertype eq 'map' and $_ =~ /^bg$/;
+ return 'pc_groups' if $servertype eq 'map' and $_ =~ /^pcg$/;
+ return $_;
+ }}($_);
+ } @$keysref;
+
+ my ($maxlen, $idx) = (0, 0);
+ my $fname;
+ $fname = "../../src/plugins/HPMHooking/HPMHooking_${servertype}.HookingPoints.inc";
+ open(FH, ">", $fname)
+ or die "cannot open > $fname: $!";
+
+ print FH <<"EOF";
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
//
@@ -398,30 +408,30 @@ print FH <<"EOF";
struct HookingPointData HookingPoints[] = {
EOF
-foreach my $key (@keys) {
- print FH "/* ".$key." */\n";
- foreach my $if (@{ $ifs{$key} }) {
+ foreach my $key (@$keysref) {
+ print FH "/* ".$key." */\n";
+ foreach my $if (@{ $ifs{$key} }) {
- print FH <<"EOF";
+ print FH <<"EOF";
{ HP_POP($key\->$if->{name}, $if->{hname}) },
EOF
- $idx += 2;
- $maxlen = length($key."->".$if->{name}) if( length($key."->".$if->{name}) > $maxlen )
+ $idx += 2;
+ $maxlen = length($key."->".$if->{name}) if( length($key."->".$if->{name}) > $maxlen )
+ }
}
-}
-print FH <<"EOF";
+ print FH <<"EOF";
};
int HookingPointsLenMax = $maxlen;
EOF
-close FH;
+ close FH;
-$fname = "../../src/plugins/HPMHooking/HPMHooking.sources.inc";
-open(FH, ">", $fname)
- or die "cannot open > $fname: $!";
+ $fname = "../../src/plugins/HPMHooking/HPMHooking_${servertype}.sources.inc";
+ open(FH, ">", $fname)
+ or die "cannot open > $fname: $!";
-print FH <<"EOF";
+ print FH <<"EOF";
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
//
@@ -429,19 +439,19 @@ print FH <<"EOF";
// as it will get overwritten.
EOF
-foreach my $key (@keys) {
+ foreach my $key (@$keysref) {
- print FH <<"EOF";
+ print FH <<"EOF";
memcpy(&HPMHooks.source.$key, $key, sizeof(struct $key2original{$key}));
EOF
-}
-close FH;
+ }
+ close FH;
-$fname = "../../src/plugins/HPMHooking/HPMHooking.GetSymbol.inc";
-open(FH, ">", $fname)
- or die "cannot open > $fname: $!";
+ $fname = "../../src/plugins/HPMHooking/HPMHooking_${servertype}.GetSymbol.inc";
+ open(FH, ">", $fname)
+ or die "cannot open > $fname: $!";
-print FH <<"EOF";
+ print FH <<"EOF";
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
//
@@ -449,19 +459,19 @@ print FH <<"EOF";
// as it will get overwritten.
EOF
-foreach my $key (@keys) {
+ foreach my $key (@$keysref) {
- print FH <<"EOF";
+ print FH <<"EOF";
if( !($key = GET_SYMBOL("$exportsymbols{$key}") ) ) return false;
EOF
-}
-close FH;
+ }
+ close FH;
-$fname = "../../src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc";
-open(FH, ">", $fname)
- or die "cannot open > $fname: $!";
+ $fname = "../../src/plugins/HPMHooking/HPMHooking_${servertype}.HPMHooksCore.inc";
+ open(FH, ">", $fname)
+ or die "cannot open > $fname: $!";
-print FH <<"EOF";
+ print FH <<"EOF";
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
//
@@ -471,53 +481,53 @@ print FH <<"EOF";
struct {
EOF
-foreach my $key (@keys) {
- foreach my $if (@{ $ifs{$key} }) {
+ foreach my $key (@$keysref) {
+ foreach my $if (@{ $ifs{$key} }) {
- print FH <<"EOF";
+ print FH <<"EOF";
struct HPMHookPoint *$if->{hname}_pre;
struct HPMHookPoint *$if->{hname}_post;
EOF
+ }
}
-}
-print FH <<"EOF";
+ print FH <<"EOF";
} list;
struct {
EOF
-foreach my $key (@keys) {
- foreach my $if (@{ $ifs{$key} }) {
+ foreach my $key (@$keysref) {
+ foreach my $if (@{ $ifs{$key} }) {
- print FH <<"EOF";
+ print FH <<"EOF";
int $if->{hname}_pre;
int $if->{hname}_post;
EOF
+ }
}
-}
-print FH <<"EOF";
+ print FH <<"EOF";
} count;
struct {
EOF
-foreach my $key (@keys) {
+ foreach my $key (@$keysref) {
- print FH <<"EOF";
+ print FH <<"EOF";
struct $key2original{$key} $key;
EOF
-}
+ }
-print FH <<"EOF";
+ print FH <<"EOF";
} source;
EOF
-close FH;
+ close FH;
-$fname = "../../src/plugins/HPMHooking/HPMHooking.Hooks.inc";
-open(FH, ">", $fname)
- or die "cannot open > $fname: $!";
+ $fname = "../../src/plugins/HPMHooking/HPMHooking_${servertype}.Hooks.inc";
+ open(FH, ">", $fname)
+ or die "cannot open > $fname: $!";
-print FH <<"EOF";
+ print FH <<"EOF";
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
//
@@ -525,27 +535,27 @@ print FH <<"EOF";
// as it will get overwritten.
EOF
-foreach my $key (@keys) {
+ foreach my $key (@$keysref) {
- print FH <<"EOF";
+ print FH <<"EOF";
/* $key */
EOF
- foreach my $if (@{ $ifs{$key} }) {
- my ($initialization, $beforeblock3, $beforeblock2, $afterblock3, $afterblock2, $retval) = ('', '', '', '', '', '');
+ foreach my $if (@{ $ifs{$key} }) {
+ my ($initialization, $beforeblock3, $beforeblock2, $afterblock3, $afterblock2, $retval) = ('', '', '', '', '', '');
- unless ($if->{type} eq 'void') {
- $initialization = "\n\t$if->{type} retVal___$if->{typeinit};";
- $initialization .= "\n\tmemset(&retVal___, '\\0', sizeof($if->{type}));" if $if->{memset};
- }
+ unless ($if->{type} eq 'void') {
+ $initialization = "\n\t$if->{type} retVal___$if->{typeinit};";
+ $initialization .= "\n\tmemset(&retVal___, '\\0', sizeof($if->{type}));" if $if->{memset};
+ }
- $beforeblock3 .= "\n\t\t\t$_" foreach (@{ $if->{before} });
- $afterblock3 .= "\n\t\t\t$_" foreach (@{ $if->{after} });
- $beforeblock2 .= "\n\t\t$_" foreach (@{ $if->{before} });
- $afterblock2 .= "\n\t\t$_" foreach (@{ $if->{after} });
- $retval = ' retVal___' unless $if->{type} eq 'void';
+ $beforeblock3 .= "\n\t\t\t$_" foreach (@{ $if->{before} });
+ $afterblock3 .= "\n\t\t\t$_" foreach (@{ $if->{after} });
+ $beforeblock2 .= "\n\t\t$_" foreach (@{ $if->{before} });
+ $afterblock2 .= "\n\t\t$_" foreach (@{ $if->{after} });
+ $retval = ' retVal___' unless $if->{type} eq 'void';
- print FH <<"EOF";
+ print FH <<"EOF";
$if->{handlerdef} {$if->{notes}
int hIndex = 0;${initialization}
if( HPMHooks.count.$if->{hname}_pre ) {
@@ -573,8 +583,8 @@ $if->{handlerdef} {$if->{notes}
return$retval;
}
EOF
+ }
}
-}
-
-close FH;
+ close FH;
+}
diff --git a/tools/validateinterfaces.py b/tools/validateinterfaces.py
new file mode 100755
index 000000000..87ff46a85
--- /dev/null
+++ b/tools/validateinterfaces.py
@@ -0,0 +1,246 @@
+#! /usr/bin/env python
+# -*- coding: utf8 -*-
+#
+# Copyright (C) 2014 Andrei Karas (4144)
+
+import os
+import re
+import sys
+from sets import Set
+
+interfaceRe = re.compile("struct (?P<name1>[a-z_]+)_interface (?P<name2>[a-z_]+)_s;")
+
+class Tracker:
+ pass
+
+def searchDefault(r, ifname):
+ defaultStr = "void {0}_defaults(void)".format(ifname);
+ for line in r:
+ if line.find(defaultStr) == 0:
+ return True
+ return False
+
+def searchStructStart(r, ifname):
+ for line in r:
+ if line.find("struct {0}_interface".format(ifname)) == 0:
+ return True
+ return False
+
+def readCFile(tracker, cFile):
+ methods = Set()
+ shortIfName = ""
+ with open(cFile, "r") as r:
+ for line in r:
+# print "cline1: " + line
+ m = interfaceRe.search(line)
+ if m != None and m.group("name1") == m.group("name2"):
+ # found C file with interface
+ ifname = m.group("name1")
+ if searchDefault(r, ifname) == False:
+ return (None, shortIfName, methods)
+ lineRe = re.compile("(?P<ifname>[a-z_]+)->(?P<method>[\w_]+)[ ][=][ ](?P<fullmethod>[^;]+);")
+ for line in r:
+# print "cline2: " + line
+ test = line.strip()
+ if len(test) > 2 and test[0:2] == "//":
+ continue
+ if len(line) > 0 and line[0] == "}":
+ break
+ m = lineRe.search(line)
+ if m != None:
+ tmp = m.group("ifname")
+ if len(tmp) < 2 or tmp[0] != ifname[0]:
+ continue
+ if shortIfName == "":
+ shortIfName = m.group("ifname")
+# print "{2}: add {0}, from: {1}".format(m.group("method"), line, ifname)
+ methods.add(m.group("method"))
+ tracker.interfaces.add(ifname);
+ tracker.fullmethods.add(m.group("fullmethod"));
+ return (ifname, shortIfName, methods)
+ return (None, shortIfName, methods)
+
+def readHFile(tracker, hFile, ifname):
+ methods = Set()
+ with open(hFile, "r") as r:
+ if searchStructStart(r, ifname) == False:
+ return methods
+ lineRe = re.compile("[(][*](?P<method>[^)]+)[)]".format(ifname))
+ for line in r:
+# print "hline: " + line
+ test = line.strip()
+ if len(test) > 2 and test[0:2] == "//":
+ continue
+ if len(line) > 0 and line[0] == "}":
+ break
+ m = lineRe.search(line)
+ if m != None:
+# print "{2}: add {0}, from: {1}".format(m.group("method"), line, ifname)
+ methods.add(m.group("method"))
+ tracker.fullmethods.add(ifname + "_" + m.group("method"))
+ return methods
+
+def checkIfFile(tracker, cFile, hFile):
+ data = readCFile(tracker, cFile)
+ cMethods = data[2]
+ ifname = data[0]
+ shortIfName = data[1]
+ if len(cMethods) > 0:
+ hMethods = readHFile(tracker, hFile, ifname)
+ for method in hMethods:
+ tracker.arr[ifname + "_" + method] = list()
+ tracker.methods.add(ifname + "_" + method)
+ if method not in cMethods:
+ print "Missing initialisation in file {0}: {1}".format(cFile, method)
+ tracker.retCode = 1
+# for method in cMethods:
+# if method not in hMethods:
+# print "Extra method in file {0}: {1}".format(cFile, method)
+
+def processIfDir(tracker, srcDir):
+ files = os.listdir(srcDir)
+ for file1 in files:
+ if file1[0] == '.' or file1 == "..":
+ continue
+ cPath = os.path.abspath(srcDir + os.path.sep + file1)
+ if not os.path.isfile(cPath):
+ processIfDir(tracker, cPath)
+ else:
+ if file1[-2:] == ".c":
+ file2 = file1[:-2] + ".h"
+ hPath = srcDir + os.path.sep + file2;
+ if os.path.exists(hPath) and os.path.isfile(hPath):
+ checkIfFile(tracker, cPath, hPath)
+
+
+def checkChr(ch):
+ if (ch >= "a" and ch <= "z") or ch == "_" or (ch >= "0" and ch <= "9" or ch == "\"" or ch == ">"):
+ return True
+ return False
+
+def checkFile(tracker, cFile):
+# print "Checking: " + cFile
+ with open(cFile, "r") as r:
+ for line in r:
+ parts = re.findall(r'[\w_]+', line)
+ for part in parts:
+ if part in tracker.methods:
+ idx = line.find(part)
+ if idx > 0:
+ if idx + len(part) >= len(line):
+ continue
+ if checkChr(line[idx + len(part)]):
+ continue
+ if checkChr(line[idx - 1]):
+ continue
+ if line[0:3] == " * ":
+ continue;
+ if line[-1] == "\n":
+ line = line[:-1]
+ text = line.strip()
+ if text[0:2] == "/*" or text[0:2] == "//":
+ continue
+ idx2 = line.find("//")
+ if idx2 > 0 and idx2 < idx:
+ continue
+ tracker.arr[part].append(line)
+
+def processDir(tracker, srcDir):
+ files = os.listdir(srcDir)
+ for file1 in files:
+ if file1[0] == '.' or file1 == "..":
+ continue
+ cPath = os.path.abspath(srcDir + os.path.sep + file1)
+ if not os.path.isfile(cPath):
+ processDir(tracker, cPath)
+ elif file1[-2:] == ".c" or file1[-2:] == ".h":
+# elif file1[-2:] == ".c":
+ checkFile(tracker, cPath)
+
+def reportMethods(tracker):
+ print "\n"
+ for method in tracker.methods:
+ if len(tracker.arr[method]) > 2:
+ print method
+ for t in tracker.arr[method]:
+ print t
+ print "\n"
+
+
+def checkLostFile(tracker, cFile):
+# print "Checking: " + cFile
+ methodRe = re.compile("^([\w0-9* _]*)([ ]|[*])(?P<ifname>[a-z_]+)_(?P<method>[\w_]+)(|[ ])[(]")
+ with open(cFile, "r") as r:
+ for line in r:
+ if line.find("(") < 1 or len(line) < 3 or line[0] == "\t" or line[0] == " " or line.find("_defaults") > 0:
+ continue
+ m = methodRe.search(line)
+ if m != None:
+ name = "{0}_{1}".format(m.group("ifname"), m.group("method"))
+ if name[:name.find("_")] not in tracker.interfaces and m.group("ifname") not in tracker.interfaces:
+ continue
+ if name not in tracker.fullmethods:
+# print "src : " + line
+ print name
+
+def processLostDir(tracker, srcDir):
+ files = os.listdir(srcDir)
+ for file1 in files:
+ if file1[0] == '.' or file1 == "..":
+ continue
+ cPath = os.path.abspath(srcDir + os.path.sep + file1)
+ if not os.path.isfile(cPath):
+ processLostDir(tracker, cPath)
+ elif file1[-2:] == ".c":
+ checkLostFile(tracker, cPath)
+
+def runIf():
+ processIfDir(tracker, "../src/char");
+ processIfDir(tracker, "../src/map");
+ processIfDir(tracker, "../src/login");
+ processIfDir(tracker, "../src/common");
+
+def runLost():
+ processLostDir(tracker, "../src/char");
+ processLostDir(tracker, "../src/map");
+ processLostDir(tracker, "../src/login");
+ processLostDir(tracker, "../src/common");
+
+def runLong():
+ processDir(tracker, "../src/char");
+ processDir(tracker, "../src/map");
+ processDir(tracker, "../src/login");
+ processDir(tracker, "../src/common");
+ reportMethods(tracker)
+
+tracker = Tracker()
+tracker.arr = dict()
+tracker.methods = Set()
+tracker.fullmethods = Set()
+tracker.interfaces = Set()
+tracker.retCode = 0
+
+if len(sys.argv) > 1:
+ cmd = sys.argv[1]
+else:
+ cmd = "default"
+
+if cmd == "silent":
+ runIf()
+elif cmd == "init":
+ print "Checking interfaces initialisation"
+ runIf()
+elif cmd == "lost":
+ print "Checking not added functions to interfaces"
+ runLost();
+elif cmd == "long":
+ print "Checking interfaces usage"
+ runLong();
+else:
+ print "Checking interfaces initialisation"
+ runIf()
+ print "Checking not added functions to interfaces"
+ runLost();
+ print "Checking interfaces usage"
+ runLong();
+exit(tracker.retCode)
diff --git a/travis.sh b/travis.sh
index 6f2eced20..c04131e20 100755
--- a/travis.sh
+++ b/travis.sh
@@ -54,6 +54,7 @@ case "$MODE" in
mysql $DBUSER $DBPASS $DBNAME < sql-files/logs.sql || aborterror "Unable to import logs database."
;;
build)
+ (cd tools && ./validateinterfaces.py silent) || aborterror "Interface validation error."
./configure $@ || aborterror "Configure error, aborting build."
make sql -j3 || aborterror "Build failed."
if [ -f src/plugins/script_mapquit.c ]; then
diff --git a/vcproj-10/char-server.vcxproj b/vcproj-10/char-server.vcxproj
index 81f26e3ca..9659e7c56 100644
--- a/vcproj-10/char-server.vcxproj
+++ b/vcproj-10/char-server.vcxproj
@@ -153,13 +153,16 @@
<ClInclude Include="..\src\common\random.h" />
<ClInclude Include="..\src\common\showmsg.h" />
<ClInclude Include="..\src\common\socket.h" />
- <ClInclude Include="..\src\common\sysinfo.h" />
<ClInclude Include="..\src\common\sql.h" />
<ClInclude Include="..\src\common\strlib.h" />
+ <ClInclude Include="..\src\common\sysinfo.h" />
<ClInclude Include="..\src\common\thread.h" />
<ClInclude Include="..\src\common\timer.h" />
<ClInclude Include="..\src\common\utils.h" />
+ <ClInclude Include="..\src\common\winapi.h" />
+ <ClInclude Include="..\src\char\HPMchar.h" />
<ClInclude Include="..\src\char\char.h" />
+ <ClInclude Include="..\src\char\geoip.h" />
<ClInclude Include="..\src\char\int_auction.h" />
<ClInclude Include="..\src\char\int_elemental.h" />
<ClInclude Include="..\src\char\int_guild.h" />
@@ -171,8 +174,9 @@
<ClInclude Include="..\src\char\int_quest.h" />
<ClInclude Include="..\src\char\int_storage.h" />
<ClInclude Include="..\src\char\inter.h" />
+ <ClInclude Include="..\src\char\loginif.h" />
+ <ClInclude Include="..\src\char\mapif.h" />
<ClInclude Include="..\src\char\pincode.h" />
- <ClInclude Include="..\src\common\winapi.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\3rdparty\libconfig\grammar.c" />
@@ -200,7 +204,9 @@
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\common\timer.c" />
<ClCompile Include="..\src\common\utils.c" />
+ <ClCompile Include="..\src\char\HPMchar.c" />
<ClCompile Include="..\src\char\char.c" />
+ <ClCompile Include="..\src\char\geoip.c" />
<ClCompile Include="..\src\char\int_auction.c" />
<ClCompile Include="..\src\char\int_elemental.c" />
<ClCompile Include="..\src\char\int_guild.c" />
@@ -212,6 +218,8 @@
<ClCompile Include="..\src\char\int_quest.c" />
<ClCompile Include="..\src\char\int_storage.c" />
<ClCompile Include="..\src\char\inter.c" />
+ <ClCompile Include="..\src\char\loginif.c" />
+ <ClCompile Include="..\src\char\mapif.c" />
<ClCompile Include="..\src\char\pincode.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/vcproj-10/char-server.vcxproj.filters b/vcproj-10/char-server.vcxproj.filters
index 5497e291d..b3b9e49cd 100644
--- a/vcproj-10/char-server.vcxproj.filters
+++ b/vcproj-10/char-server.vcxproj.filters
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
+ <ClCompile Include="..\src\common\conf.c">
+ <Filter>common</Filter>
+ </ClCompile>
<ClCompile Include="..\src\common\core.c">
<Filter>common</Filter>
</ClCompile>
@@ -49,9 +52,15 @@
<ClCompile Include="..\src\common\utils.c">
<Filter>common</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\HPMchar.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\char.c">
<Filter>char_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\geoip.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\int_auction.c">
<Filter>char_sql</Filter>
</ClCompile>
@@ -85,6 +94,12 @@
<ClCompile Include="..\src\char\inter.c">
<Filter>char_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\loginif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\char\mapif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\pincode.c">
<Filter>char_sql</Filter>
</ClCompile>
@@ -112,14 +127,14 @@
<ClCompile Include="..\src\common\mutex.c">
<Filter>common</Filter>
</ClCompile>
- <ClCompile Include="..\src\common\conf.c">
- <Filter>common</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\common\cbasetypes.h">
<Filter>common</Filter>
</ClInclude>
+ <ClInclude Include="..\src\common\conf.h">
+ <Filter>common</Filter>
+ </ClInclude>
<ClInclude Include="..\src\common\core.h">
<Filter>common</Filter>
</ClInclude>
@@ -174,13 +189,13 @@
<ClInclude Include="..\src\common\utils.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\inter.h">
+ <ClInclude Include="..\src\char\HPMchar.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\pincode.h">
+ <ClInclude Include="..\src\char\char.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\char.h">
+ <ClInclude Include="..\src\char\geoip.h">
<Filter>char_sql</Filter>
</ClInclude>
<ClInclude Include="..\src\char\int_auction.h">
@@ -213,6 +228,18 @@
<ClInclude Include="..\src\char\int_storage.h">
<Filter>char_sql</Filter>
</ClInclude>
+ <ClInclude Include="..\src\char\inter.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\loginif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\mapif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\pincode.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
<ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h">
<Filter>3rdparty\mt19937ar</Filter>
</ClInclude>
@@ -246,9 +273,6 @@
<ClInclude Include="..\src\common\mutex.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\common\conf.h">
- <Filter>common</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="common">
diff --git a/vcproj-10/login-server.vcxproj b/vcproj-10/login-server.vcxproj
index ea7279bcb..d00797fb7 100644
--- a/vcproj-10/login-server.vcxproj
+++ b/vcproj-10/login-server.vcxproj
@@ -143,6 +143,7 @@
<ClInclude Include="..\src\common\thread.h" />
<ClInclude Include="..\src\common\winapi.h" />
<ClInclude Include="..\src\login\account.h" />
+ <ClInclude Include="..\src\login\HPMlogin.h" />
<ClInclude Include="..\src\login\ipban.h" />
<ClInclude Include="..\src\login\login.h" />
<ClInclude Include="..\src\login\loginlog.h" />
@@ -177,6 +178,7 @@
<ClCompile Include="..\src\common\mutex.c" />
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\login\account_sql.c" />
+ <ClCompile Include="..\src\login\HPMlogin.c" />
<ClCompile Include="..\src\login\ipban_sql.c" />
<ClCompile Include="..\src\login\login.c" />
<ClCompile Include="..\src\login\loginlog_sql.c" />
diff --git a/vcproj-10/login-server.vcxproj.filters b/vcproj-10/login-server.vcxproj.filters
index a8b460225..6d83824eb 100644
--- a/vcproj-10/login-server.vcxproj.filters
+++ b/vcproj-10/login-server.vcxproj.filters
@@ -88,6 +88,9 @@
<ClCompile Include="..\src\common\conf.c">
<Filter>common</Filter>
</ClCompile>
+ <ClCompile Include="..\src\login\HPMlogin.c">
+ <Filter>login_sql</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\login\account.h">
@@ -195,6 +198,9 @@
<ClInclude Include="..\src\common\conf.h">
<Filter>common</Filter>
</ClInclude>
+ <ClInclude Include="..\src\login\HPMlogin.h">
+ <Filter>login_sql</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="common">
diff --git a/vcproj-10/plugin-HPMHooking_char.vcxproj b/vcproj-10/plugin-HPMHooking_char.vcxproj
new file mode 100644
index 000000000..9b4610371
--- /dev/null
+++ b/vcproj-10/plugin-HPMHooking_char.vcxproj
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{337F99A2-528C-473C-97F0-BF202F197061}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_char</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_char</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_char</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_char</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-10/plugin-HPMHooking_login.vcxproj b/vcproj-10/plugin-HPMHooking_login.vcxproj
new file mode 100644
index 000000000..0ce039de4
--- /dev/null
+++ b/vcproj-10/plugin-HPMHooking_login.vcxproj
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{B7B66F36-2EE9-4F16-929A-5E4A64492DAE}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_login</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_login</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_login</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_login</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-10/plugin-HPMHooking.vcxproj b/vcproj-10/plugin-HPMHooking_map.vcxproj
index 4ded9cc92..cce245c50 100644
--- a/vcproj-10/plugin-HPMHooking.vcxproj
+++ b/vcproj-10/plugin-HPMHooking_map.vcxproj
@@ -12,9 +12,9 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{7ED92B9F-95E8-49B8-9D4F-C4C9BFDE0B22}</ProjectGuid>
- <RootNamespace>plugin-HPMHooking</RootNamespace>
+ <RootNamespace>plugin-HPMHooking_map</RootNamespace>
<Keyword>Win32Proj</Keyword>
- <ProjectName>plugin-HPMHooking</ProjectName>
+ <ProjectName>plugin-HPMHooking_map</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@@ -49,15 +49,15 @@
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking</TargetName>
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_map</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_map</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
diff --git a/vcproj-11/char-server.vcxproj b/vcproj-11/char-server.vcxproj
index d584c0404..08b4ed856 100644
--- a/vcproj-11/char-server.vcxproj
+++ b/vcproj-11/char-server.vcxproj
@@ -141,9 +141,9 @@
<ClInclude Include="..\3rdparty\libconfig\wincompat.h" />
<ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h" />
<ClInclude Include="..\src\common\cbasetypes.h" />
- <ClInclude Include="..\src\common\conf.h" />
+ <ClInclude Include="..\src\common\conf.h" />
<ClInclude Include="..\src\common\core.h" />
- <ClInclude Include="..\src\common\console.h" />
+ <ClInclude Include="..\src\common\console.h" />
<ClInclude Include="..\src\common\db.h" />
<ClInclude Include="..\src\common\ers.h" />
<ClInclude Include="..\src\common\HPM.h" />
@@ -162,7 +162,10 @@
<ClInclude Include="..\src\common\thread.h" />
<ClInclude Include="..\src\common\timer.h" />
<ClInclude Include="..\src\common\utils.h" />
+ <ClInclude Include="..\src\common\winapi.h" />
+ <ClInclude Include="..\src\char\HPMchar.h" />
<ClInclude Include="..\src\char\char.h" />
+ <ClInclude Include="..\src\char\geoip.h" />
<ClInclude Include="..\src\char\int_auction.h" />
<ClInclude Include="..\src\char\int_elemental.h" />
<ClInclude Include="..\src\char\int_guild.h" />
@@ -174,8 +177,9 @@
<ClInclude Include="..\src\char\int_quest.h" />
<ClInclude Include="..\src\char\int_storage.h" />
<ClInclude Include="..\src\char\inter.h" />
- <ClInclude Include="..\src\char\pincode.h" />
- <ClInclude Include="..\src\common\winapi.h" />
+ <ClInclude Include="..\src\char\loginif.h" />
+ <ClInclude Include="..\src\char\mapif.h" />
+ <ClInclude Include="..\src\char\pincode.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\3rdparty\libconfig\grammar.c" />
@@ -184,9 +188,9 @@
<ClCompile Include="..\3rdparty\libconfig\scanner.c" />
<ClCompile Include="..\3rdparty\libconfig\strbuf.c" />
<ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c" />
- <ClCompile Include="..\src\common\conf.c" />
+ <ClCompile Include="..\src\common\conf.c" />
<ClCompile Include="..\src\common\core.c" />
- <ClCompile Include="..\src\common\console.c" />
+ <ClCompile Include="..\src\common\console.c" />
<ClCompile Include="..\src\common\db.c" />
<ClCompile Include="..\src\common\ers.c" />
<ClCompile Include="..\src\common\HPM.c" />
@@ -203,7 +207,9 @@
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\common\timer.c" />
<ClCompile Include="..\src\common\utils.c" />
+ <ClCompile Include="..\src\char\HPMchar.c" />
<ClCompile Include="..\src\char\char.c" />
+ <ClCompile Include="..\src\char\geoip.c" />
<ClCompile Include="..\src\char\int_auction.c" />
<ClCompile Include="..\src\char\int_elemental.c" />
<ClCompile Include="..\src\char\int_guild.c" />
@@ -215,7 +221,9 @@
<ClCompile Include="..\src\char\int_quest.c" />
<ClCompile Include="..\src\char\int_storage.c" />
<ClCompile Include="..\src\char\inter.c" />
- <ClCompile Include="..\src\char\pincode.c" />
+ <ClCompile Include="..\src\char\loginif.c" />
+ <ClCompile Include="..\src\char\mapif.c" />
+ <ClCompile Include="..\src\char\pincode.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/vcproj-11/char-server.vcxproj.filters b/vcproj-11/char-server.vcxproj.filters
index 7034b8abc..b3b9e49cd 100644
--- a/vcproj-11/char-server.vcxproj.filters
+++ b/vcproj-11/char-server.vcxproj.filters
@@ -7,7 +7,7 @@
<ClCompile Include="..\src\common\core.c">
<Filter>common</Filter>
</ClCompile>
- <ClCompile Include="..\src\common\console.c">
+ <ClCompile Include="..\src\common\console.c">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\src\common\db.c">
@@ -52,9 +52,15 @@
<ClCompile Include="..\src\common\utils.c">
<Filter>common</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\HPMchar.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\char.c">
<Filter>char_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\geoip.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\int_auction.c">
<Filter>char_sql</Filter>
</ClCompile>
@@ -88,7 +94,13 @@
<ClCompile Include="..\src\char\inter.c">
<Filter>char_sql</Filter>
</ClCompile>
- <ClCompile Include="..\src\char\pincode.c">
+ <ClCompile Include="..\src\char\loginif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\char\mapif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\char\pincode.c">
<Filter>char_sql</Filter>
</ClCompile>
<ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c">
@@ -126,7 +138,7 @@
<ClInclude Include="..\src\common\core.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\common\console.h">
+ <ClInclude Include="..\src\common\console.h">
<Filter>common</Filter>
</ClInclude>
<ClInclude Include="..\src\common\db.h">
@@ -177,13 +189,13 @@
<ClInclude Include="..\src\common\utils.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\inter.h">
+ <ClInclude Include="..\src\char\HPMchar.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\pincode.h">
+ <ClInclude Include="..\src\char\char.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\char.h">
+ <ClInclude Include="..\src\char\geoip.h">
<Filter>char_sql</Filter>
</ClInclude>
<ClInclude Include="..\src\char\int_auction.h">
@@ -216,6 +228,18 @@
<ClInclude Include="..\src\char\int_storage.h">
<Filter>char_sql</Filter>
</ClInclude>
+ <ClInclude Include="..\src\char\inter.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\loginif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\mapif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\pincode.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
<ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h">
<Filter>3rdparty\mt19937ar</Filter>
</ClInclude>
diff --git a/vcproj-11/login-server.vcxproj b/vcproj-11/login-server.vcxproj
index 1a0325987..a452cba7d 100644
--- a/vcproj-11/login-server.vcxproj
+++ b/vcproj-11/login-server.vcxproj
@@ -147,6 +147,7 @@
<ClInclude Include="..\src\common\winapi.h" />
<ClInclude Include="..\src\login\account.h" />
<ClInclude Include="..\src\login\ipban.h" />
+ <ClInclude Include="..\src\login\HPMlogin.h" />
<ClInclude Include="..\src\login\login.h" />
<ClInclude Include="..\src\login\loginlog.h" />
<ClInclude Include="..\src\common\cbasetypes.h" />
@@ -181,6 +182,7 @@
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\login\account_sql.c" />
<ClCompile Include="..\src\login\ipban_sql.c" />
+ <ClCompile Include="..\src\login\HPMlogin.c" />
<ClCompile Include="..\src\login\login.c" />
<ClCompile Include="..\src\login\loginlog_sql.c" />
<ClCompile Include="..\src\common\conf.c" />
diff --git a/vcproj-11/login-server.vcxproj.filters b/vcproj-11/login-server.vcxproj.filters
index 3e338dfda..3bdb93f6f 100644
--- a/vcproj-11/login-server.vcxproj.filters
+++ b/vcproj-11/login-server.vcxproj.filters
@@ -4,6 +4,9 @@
<ClCompile Include="..\src\login\account_sql.c">
<Filter>login_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\login\HPMlogin.c">
+ <Filter>login_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\login\ipban_sql.c">
<Filter>login_sql</Filter>
</ClCompile>
@@ -93,6 +96,9 @@
<ClInclude Include="..\src\login\account.h">
<Filter>login_sql</Filter>
</ClInclude>
+ <ClInclude Include="..\src\login\HPMlogin.h">
+ <Filter>login_sql</Filter>
+ </ClInclude>
<ClInclude Include="..\src\login\ipban.h">
<Filter>login_sql</Filter>
</ClInclude>
diff --git a/vcproj-11/plugin-HPMHooking_char.vcxproj b/vcproj-11/plugin-HPMHooking_char.vcxproj
new file mode 100644
index 000000000..fced03de1
--- /dev/null
+++ b/vcproj-11/plugin-HPMHooking_char.vcxproj
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{ACEB1E80-4EA2-4193-AA7C-624B6C5664BA}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_char</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_char</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_char</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_char</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-11/plugin-HPMHooking_login.vcxproj b/vcproj-11/plugin-HPMHooking_login.vcxproj
new file mode 100644
index 000000000..046d61acf
--- /dev/null
+++ b/vcproj-11/plugin-HPMHooking_login.vcxproj
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{93DB46CC-FC44-4E43-820A-63DC7318F413}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_login</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_login</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_login</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_login</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-11/plugin-HPMHooking.vcxproj b/vcproj-11/plugin-HPMHooking_map.vcxproj
index b24dbf2e2..5b8a5cfb0 100644
--- a/vcproj-11/plugin-HPMHooking.vcxproj
+++ b/vcproj-11/plugin-HPMHooking_map.vcxproj
@@ -12,9 +12,9 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{745D4A8C-6A68-4721-A43A-D81BF59860A1}</ProjectGuid>
- <RootNamespace>plugin-HPMHooking</RootNamespace>
+ <RootNamespace>plugin-HPMHooking_map</RootNamespace>
<Keyword>Win32Proj</Keyword>
- <ProjectName>plugin-HPMHooking</ProjectName>
+ <ProjectName>plugin-HPMHooking_map</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@@ -51,15 +51,15 @@
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking</TargetName>
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_map</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_map</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
diff --git a/vcproj-12/char-server.vcxproj b/vcproj-12/char-server.vcxproj
index d281c2961..e7473369d 100644
--- a/vcproj-12/char-server.vcxproj
+++ b/vcproj-12/char-server.vcxproj
@@ -161,7 +161,10 @@
<ClInclude Include="..\src\common\thread.h" />
<ClInclude Include="..\src\common\timer.h" />
<ClInclude Include="..\src\common\utils.h" />
+ <ClInclude Include="..\src\common\winapi.h" />
+ <ClInclude Include="..\src\char\HPMchar.h" />
<ClInclude Include="..\src\char\char.h" />
+ <ClInclude Include="..\src\char\geoip.h" />
<ClInclude Include="..\src\char\int_auction.h" />
<ClInclude Include="..\src\char\int_elemental.h" />
<ClInclude Include="..\src\char\int_guild.h" />
@@ -173,8 +176,9 @@
<ClInclude Include="..\src\char\int_quest.h" />
<ClInclude Include="..\src\char\int_storage.h" />
<ClInclude Include="..\src\char\inter.h" />
+ <ClInclude Include="..\src\char\loginif.h" />
+ <ClInclude Include="..\src\char\mapif.h" />
<ClInclude Include="..\src\char\pincode.h" />
- <ClInclude Include="..\src\common\winapi.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\3rdparty\libconfig\grammar.c" />
@@ -202,7 +206,9 @@
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\common\timer.c" />
<ClCompile Include="..\src\common\utils.c" />
+ <ClCompile Include="..\src\char\HPMchar.c" />
<ClCompile Include="..\src\char\char.c" />
+ <ClCompile Include="..\src\char\geoip.c" />
<ClCompile Include="..\src\char\int_auction.c" />
<ClCompile Include="..\src\char\int_elemental.c" />
<ClCompile Include="..\src\char\int_guild.c" />
@@ -214,6 +220,8 @@
<ClCompile Include="..\src\char\int_quest.c" />
<ClCompile Include="..\src\char\int_storage.c" />
<ClCompile Include="..\src\char\inter.c" />
+ <ClCompile Include="..\src\char\loginif.c" />
+ <ClCompile Include="..\src\char\mapif.c" />
<ClCompile Include="..\src\char\pincode.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/vcproj-12/char-server.vcxproj.filters b/vcproj-12/char-server.vcxproj.filters
index 7034b8abc..b3b9e49cd 100644
--- a/vcproj-12/char-server.vcxproj.filters
+++ b/vcproj-12/char-server.vcxproj.filters
@@ -7,7 +7,7 @@
<ClCompile Include="..\src\common\core.c">
<Filter>common</Filter>
</ClCompile>
- <ClCompile Include="..\src\common\console.c">
+ <ClCompile Include="..\src\common\console.c">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\src\common\db.c">
@@ -52,9 +52,15 @@
<ClCompile Include="..\src\common\utils.c">
<Filter>common</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\HPMchar.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\char.c">
<Filter>char_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\char\geoip.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\char\int_auction.c">
<Filter>char_sql</Filter>
</ClCompile>
@@ -88,7 +94,13 @@
<ClCompile Include="..\src\char\inter.c">
<Filter>char_sql</Filter>
</ClCompile>
- <ClCompile Include="..\src\char\pincode.c">
+ <ClCompile Include="..\src\char\loginif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\char\mapif.c">
+ <Filter>char_sql</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\char\pincode.c">
<Filter>char_sql</Filter>
</ClCompile>
<ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c">
@@ -126,7 +138,7 @@
<ClInclude Include="..\src\common\core.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\common\console.h">
+ <ClInclude Include="..\src\common\console.h">
<Filter>common</Filter>
</ClInclude>
<ClInclude Include="..\src\common\db.h">
@@ -177,13 +189,13 @@
<ClInclude Include="..\src\common\utils.h">
<Filter>common</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\inter.h">
+ <ClInclude Include="..\src\char\HPMchar.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\pincode.h">
+ <ClInclude Include="..\src\char\char.h">
<Filter>char_sql</Filter>
</ClInclude>
- <ClInclude Include="..\src\char\char.h">
+ <ClInclude Include="..\src\char\geoip.h">
<Filter>char_sql</Filter>
</ClInclude>
<ClInclude Include="..\src\char\int_auction.h">
@@ -216,6 +228,18 @@
<ClInclude Include="..\src\char\int_storage.h">
<Filter>char_sql</Filter>
</ClInclude>
+ <ClInclude Include="..\src\char\inter.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\loginif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\mapif.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\char\pincode.h">
+ <Filter>char_sql</Filter>
+ </ClInclude>
<ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h">
<Filter>3rdparty\mt19937ar</Filter>
</ClInclude>
diff --git a/vcproj-12/login-server.vcxproj b/vcproj-12/login-server.vcxproj
index 671df4024..9420195fb 100644
--- a/vcproj-12/login-server.vcxproj
+++ b/vcproj-12/login-server.vcxproj
@@ -146,6 +146,7 @@
<ClInclude Include="..\src\common\thread.h" />
<ClInclude Include="..\src\common\winapi.h" />
<ClInclude Include="..\src\login\account.h" />
+ <ClInclude Include="..\src\login\HPMlogin.h" />
<ClInclude Include="..\src\login\ipban.h" />
<ClInclude Include="..\src\login\login.h" />
<ClInclude Include="..\src\login\loginlog.h" />
@@ -180,6 +181,7 @@
<ClCompile Include="..\src\common\mutex.c" />
<ClCompile Include="..\src\common\thread.c" />
<ClCompile Include="..\src\login\account_sql.c" />
+ <ClCompile Include="..\src\login\HPMlogin.c" />
<ClCompile Include="..\src\login\ipban_sql.c" />
<ClCompile Include="..\src\login\login.c" />
<ClCompile Include="..\src\login\loginlog_sql.c" />
diff --git a/vcproj-12/login-server.vcxproj.filters b/vcproj-12/login-server.vcxproj.filters
index 3e338dfda..3bdb93f6f 100644
--- a/vcproj-12/login-server.vcxproj.filters
+++ b/vcproj-12/login-server.vcxproj.filters
@@ -4,6 +4,9 @@
<ClCompile Include="..\src\login\account_sql.c">
<Filter>login_sql</Filter>
</ClCompile>
+ <ClCompile Include="..\src\login\HPMlogin.c">
+ <Filter>login_sql</Filter>
+ </ClCompile>
<ClCompile Include="..\src\login\ipban_sql.c">
<Filter>login_sql</Filter>
</ClCompile>
@@ -93,6 +96,9 @@
<ClInclude Include="..\src\login\account.h">
<Filter>login_sql</Filter>
</ClInclude>
+ <ClInclude Include="..\src\login\HPMlogin.h">
+ <Filter>login_sql</Filter>
+ </ClInclude>
<ClInclude Include="..\src\login\ipban.h">
<Filter>login_sql</Filter>
</ClInclude>
diff --git a/vcproj-12/plugin-HPMHooking_char.vcxproj b/vcproj-12/plugin-HPMHooking_char.vcxproj
new file mode 100644
index 000000000..f1b13d6c4
--- /dev/null
+++ b/vcproj-12/plugin-HPMHooking_char.vcxproj
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{D495824D-24D3-4623-A28C-4CA506084A09}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_char</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_char</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_char</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_char</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-12/plugin-HPMHooking_login.vcxproj b/vcproj-12/plugin-HPMHooking_login.vcxproj
new file mode 100644
index 000000000..62e723a3a
--- /dev/null
+++ b/vcproj-12/plugin-HPMHooking_login.vcxproj
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}</ProjectGuid>
+ <RootNamespace>plugin-HPMHooking_login</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>plugin-HPMHooking_login</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_login</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_login</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName).dll</OutputFile>
+ <ModuleDefinitionFile>
+ </ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\plugins\HPMHooking.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/vcproj-12/plugin-HPMHooking.vcxproj b/vcproj-12/plugin-HPMHooking_map.vcxproj
index 1357697b8..afa5ac197 100644
--- a/vcproj-12/plugin-HPMHooking.vcxproj
+++ b/vcproj-12/plugin-HPMHooking_map.vcxproj
@@ -12,9 +12,9 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{745D4A8C-6A68-4721-A43A-D81BF59860A1}</ProjectGuid>
- <RootNamespace>plugin-HPMHooking</RootNamespace>
+ <RootNamespace>plugin-HPMHooking_map</RootNamespace>
<Keyword>Win32Proj</Keyword>
- <ProjectName>plugin-HPMHooking</ProjectName>
+ <ProjectName>plugin-HPMHooking_map</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@@ -51,15 +51,15 @@
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking</TargetName>
- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_map</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_map</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src\common;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
diff --git a/vcproj-9/char-server.vcproj b/vcproj-9/char-server.vcproj
index 129a9b074..bed338264 100644
--- a/vcproj-9/char-server.vcproj
+++ b/vcproj-9/char-server.vcproj
@@ -453,6 +453,38 @@
>
</File>
<File
+ RelativePath="..\src\char\HPMchar.c"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\HPMchar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\loginif.c"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\loginif.h"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\mapif.c"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\mapif.h"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\geoip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\src\char\geoip.h"
+ >
+ </File>
+ <File
RelativePath="..\src\char\int_auction.c"
>
</File>
diff --git a/vcproj-9/login-server.vcproj b/vcproj-9/login-server.vcproj
index 2895f80c9..bb8dd3ffd 100644
--- a/vcproj-9/login-server.vcproj
+++ b/vcproj-9/login-server.vcproj
@@ -215,6 +215,14 @@
>
</File>
<File
+ RelativePath="..\src\login\HPMlogin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\src\login\HPMlogin.c"
+ >
+ </File>
+ <File
RelativePath="..\src\login\ipban.h"
>
</File>